@byline/ui 2.5.2 → 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.
Files changed (211) hide show
  1. package/dist/dnd/draggable-sortable/demo/draggable-list-demo.js +1 -1
  2. package/dist/react.d.ts +18 -54
  3. package/dist/react.js +0 -35
  4. package/dist/uikit.d.ts +1 -0
  5. package/dist/uikit.js +1 -0
  6. package/package.json +2 -8
  7. package/src/dnd/draggable-sortable/demo/draggable-list-demo.tsx +1 -1
  8. package/src/react.ts +20 -68
  9. package/src/uikit.ts +1 -0
  10. package/dist/admin/group.d.ts +0 -27
  11. package/dist/admin/group.js +0 -14
  12. package/dist/admin/group.module.js +0 -6
  13. package/dist/admin/group_module.css +0 -19
  14. package/dist/admin/row.d.ts +0 -25
  15. package/dist/admin/row.js +0 -8
  16. package/dist/admin/row.module.js +0 -5
  17. package/dist/admin/row_module.css +0 -18
  18. package/dist/admin/tabs.d.ts +0 -25
  19. package/dist/admin/tabs.js +0 -35
  20. package/dist/admin/tabs.module.js +0 -10
  21. package/dist/admin/tabs_module.css +0 -68
  22. package/dist/fields/array/array-field.d.ts +0 -14
  23. package/dist/fields/array/array-field.js +0 -176
  24. package/dist/fields/array/array-field.module.js +0 -11
  25. package/dist/fields/array/array-field_module.css +0 -32
  26. package/dist/fields/blocks/blocks-field.d.ts +0 -13
  27. package/dist/fields/blocks/blocks-field.js +0 -244
  28. package/dist/fields/blocks/blocks-field.module.js +0 -26
  29. package/dist/fields/blocks/blocks-field_module.css +0 -107
  30. package/dist/fields/checkbox/checkbox-field.d.ts +0 -16
  31. package/dist/fields/checkbox/checkbox-field.js +0 -28
  32. package/dist/fields/checkbox/checkbox-field.module.js +0 -6
  33. package/dist/fields/checkbox/checkbox-field_module.css +0 -4
  34. package/dist/fields/column-formatter.d.ts +0 -20
  35. package/dist/fields/column-formatter.js +0 -15
  36. package/dist/fields/date-time-formatter.d.ts +0 -16
  37. package/dist/fields/date-time-formatter.js +0 -8
  38. package/dist/fields/datetime/datetime-field.d.ts +0 -16
  39. package/dist/fields/datetime/datetime-field.js +0 -37
  40. package/dist/fields/datetime/datetime-field.module.js +0 -5
  41. package/dist/fields/datetime/datetime-field_module.css +0 -4
  42. package/dist/fields/draggable-context-menu.d.ts +0 -6
  43. package/dist/fields/draggable-context-menu.js +0 -83
  44. package/dist/fields/draggable-context-menu.module.js +0 -15
  45. package/dist/fields/draggable-context-menu_module.css +0 -91
  46. package/dist/fields/field-helpers.d.ts +0 -26
  47. package/dist/fields/field-helpers.js +0 -50
  48. package/dist/fields/field-renderer.d.ts +0 -37
  49. package/dist/fields/field-renderer.js +0 -206
  50. package/dist/fields/field-renderer.module.js +0 -8
  51. package/dist/fields/field-renderer_module.css +0 -11
  52. package/dist/fields/file/file-field.d.ts +0 -19
  53. package/dist/fields/file/file-field.js +0 -226
  54. package/dist/fields/file/file-field.module.js +0 -18
  55. package/dist/fields/file/file-field_module.css +0 -131
  56. package/dist/fields/file/file-upload-field.d.ts +0 -21
  57. package/dist/fields/file/file-upload-field.js +0 -128
  58. package/dist/fields/file/file-upload-field.module.js +0 -15
  59. package/dist/fields/file/file-upload-field_module.css +0 -74
  60. package/dist/fields/group/group-field.d.ts +0 -15
  61. package/dist/fields/group/group-field.js +0 -59
  62. package/dist/fields/group/group-field.module.js +0 -9
  63. package/dist/fields/group/group-field_module.css +0 -27
  64. package/dist/fields/image/image-field.d.ts +0 -19
  65. package/dist/fields/image/image-field.js +0 -242
  66. package/dist/fields/image/image-field.module.js +0 -22
  67. package/dist/fields/image/image-field_module.css +0 -121
  68. package/dist/fields/image/image-upload-field.d.ts +0 -21
  69. package/dist/fields/image/image-upload-field.js +0 -187
  70. package/dist/fields/image/image-upload-field.module.js +0 -19
  71. package/dist/fields/image/image-upload-field_module.css +0 -92
  72. package/dist/fields/local-date-time.d.ts +0 -27
  73. package/dist/fields/local-date-time.js +0 -49
  74. package/dist/fields/locale-badge.d.ts +0 -18
  75. package/dist/fields/locale-badge.js +0 -10
  76. package/dist/fields/locale-badge.module.js +0 -5
  77. package/dist/fields/locale-badge_module.css +0 -27
  78. package/dist/fields/numerical/numerical-field.d.ts +0 -18
  79. package/dist/fields/numerical/numerical-field.js +0 -74
  80. package/dist/fields/relation/relation-display.d.ts +0 -40
  81. package/dist/fields/relation/relation-display.js +0 -58
  82. package/dist/fields/relation/relation-display.module.js +0 -9
  83. package/dist/fields/relation/relation-display_module.css +0 -21
  84. package/dist/fields/relation/relation-field.d.ts +0 -18
  85. package/dist/fields/relation/relation-field.js +0 -146
  86. package/dist/fields/relation/relation-field.module.js +0 -13
  87. package/dist/fields/relation/relation-field_module.css +0 -62
  88. package/dist/fields/relation/relation-picker.d.ts +0 -49
  89. package/dist/fields/relation/relation-picker.js +0 -233
  90. package/dist/fields/relation/relation-picker.module.js +0 -26
  91. package/dist/fields/relation/relation-picker_module.css +0 -124
  92. package/dist/fields/relation/relation-summary.d.ts +0 -31
  93. package/dist/fields/relation/relation-summary.js +0 -50
  94. package/dist/fields/relation/relation-summary.module.js +0 -11
  95. package/dist/fields/relation/relation-summary_module.css +0 -37
  96. package/dist/fields/select/select-field.d.ts +0 -16
  97. package/dist/fields/select/select-field.js +0 -50
  98. package/dist/fields/select/select-field.module.js +0 -5
  99. package/dist/fields/select/select-field_module.css +0 -4
  100. package/dist/fields/sortable-item.d.ts +0 -15
  101. package/dist/fields/sortable-item.js +0 -80
  102. package/dist/fields/sortable-item.module.js +0 -22
  103. package/dist/fields/sortable-item_module.css +0 -124
  104. package/dist/fields/text/text-field.d.ts +0 -20
  105. package/dist/fields/text/text-field.js +0 -104
  106. package/dist/fields/text/text-field.module.js +0 -6
  107. package/dist/fields/text/text-field_module.css +0 -5
  108. package/dist/fields/text-area/text-area-field.d.ts +0 -20
  109. package/dist/fields/text-area/text-area-field.js +0 -105
  110. package/dist/fields/text-area/text-area-field.module.js +0 -6
  111. package/dist/fields/text-area/text-area-field_module.css +0 -5
  112. package/dist/fields/use-field-change-handler.d.ts +0 -23
  113. package/dist/fields/use-field-change-handler.js +0 -52
  114. package/dist/forms/document-actions.d.ts +0 -48
  115. package/dist/forms/document-actions.js +0 -469
  116. package/dist/forms/document-actions.module.js +0 -34
  117. package/dist/forms/document-actions_module.css +0 -118
  118. package/dist/forms/form-context.d.ts +0 -89
  119. package/dist/forms/form-context.js +0 -466
  120. package/dist/forms/form-renderer.d.ts +0 -98
  121. package/dist/forms/form-renderer.js +0 -591
  122. package/dist/forms/form-renderer.module.js +0 -46
  123. package/dist/forms/form-renderer_module.css +0 -245
  124. package/dist/forms/navigation-guard.d.ts +0 -54
  125. package/dist/forms/navigation-guard.js +0 -22
  126. package/dist/forms/path-widget.d.ts +0 -36
  127. package/dist/forms/path-widget.js +0 -107
  128. package/dist/forms/path-widget.module.js +0 -8
  129. package/dist/forms/path-widget_module.css +0 -29
  130. package/dist/forms/upload-executor.d.ts +0 -57
  131. package/dist/forms/upload-executor.js +0 -92
  132. package/dist/services/field-services-context.d.ts +0 -16
  133. package/dist/services/field-services-context.js +0 -13
  134. package/dist/services/field-services-types.d.ts +0 -63
  135. package/dist/services/field-services-types.js +0 -1
  136. package/dist/widgets/diff-viewer/diff-modal.d.ts +0 -22
  137. package/dist/widgets/diff-viewer/diff-modal.js +0 -146
  138. package/dist/widgets/diff-viewer/diff-modal.module.js +0 -14
  139. package/dist/widgets/diff-viewer/diff-modal_module.css +0 -56
  140. package/dist/widgets/status-badge/status-badge.d.ts +0 -25
  141. package/dist/widgets/status-badge/status-badge.js +0 -35
  142. package/dist/widgets/status-badge/status-badge.module.js +0 -7
  143. package/dist/widgets/status-badge/status-badge_module.css +0 -20
  144. package/src/admin/group.module.css +0 -41
  145. package/src/admin/group.tsx +0 -40
  146. package/src/admin/row.module.css +0 -32
  147. package/src/admin/row.tsx +0 -33
  148. package/src/admin/tabs.module.css +0 -107
  149. package/src/admin/tabs.tsx +0 -82
  150. package/src/fields/array/array-field.module.css +0 -48
  151. package/src/fields/array/array-field.tsx +0 -266
  152. package/src/fields/blocks/blocks-field.module.css +0 -148
  153. package/src/fields/blocks/blocks-field.tsx +0 -312
  154. package/src/fields/checkbox/checkbox-field.module.css +0 -4
  155. package/src/fields/checkbox/checkbox-field.tsx +0 -54
  156. package/src/fields/column-formatter.tsx +0 -31
  157. package/src/fields/date-time-formatter.tsx +0 -22
  158. package/src/fields/datetime/datetime-field.module.css +0 -13
  159. package/src/fields/datetime/datetime-field.tsx +0 -54
  160. package/src/fields/draggable-context-menu.module.css +0 -127
  161. package/src/fields/draggable-context-menu.tsx +0 -85
  162. package/src/fields/field-helpers.ts +0 -69
  163. package/src/fields/field-renderer.module.css +0 -22
  164. package/src/fields/field-renderer.tsx +0 -288
  165. package/src/fields/file/file-field.module.css +0 -153
  166. package/src/fields/file/file-field.tsx +0 -271
  167. package/src/fields/file/file-upload-field.module.css +0 -101
  168. package/src/fields/file/file-upload-field.tsx +0 -183
  169. package/src/fields/group/group-field.module.css +0 -43
  170. package/src/fields/group/group-field.tsx +0 -84
  171. package/src/fields/image/image-field.module.css +0 -155
  172. package/src/fields/image/image-field.tsx +0 -291
  173. package/src/fields/image/image-upload-field.module.css +0 -123
  174. package/src/fields/image/image-upload-field.tsx +0 -270
  175. package/src/fields/local-date-time.tsx +0 -88
  176. package/src/fields/locale-badge.module.css +0 -37
  177. package/src/fields/locale-badge.tsx +0 -32
  178. package/src/fields/numerical/numerical-field.tsx +0 -114
  179. package/src/fields/relation/relation-display.module.css +0 -36
  180. package/src/fields/relation/relation-display.tsx +0 -130
  181. package/src/fields/relation/relation-field.module.css +0 -83
  182. package/src/fields/relation/relation-field.tsx +0 -206
  183. package/src/fields/relation/relation-picker.module.css +0 -168
  184. package/src/fields/relation/relation-picker.tsx +0 -325
  185. package/src/fields/relation/relation-summary.module.css +0 -55
  186. package/src/fields/relation/relation-summary.tsx +0 -123
  187. package/src/fields/select/select-field.module.css +0 -13
  188. package/src/fields/select/select-field.tsx +0 -61
  189. package/src/fields/sortable-item.module.css +0 -167
  190. package/src/fields/sortable-item.tsx +0 -101
  191. package/src/fields/text/text-field.module.css +0 -13
  192. package/src/fields/text/text-field.tsx +0 -146
  193. package/src/fields/text-area/text-area-field.module.css +0 -13
  194. package/src/fields/text-area/text-area-field.tsx +0 -147
  195. package/src/fields/use-field-change-handler.ts +0 -112
  196. package/src/forms/document-actions.module.css +0 -160
  197. package/src/forms/document-actions.tsx +0 -487
  198. package/src/forms/form-context.tsx +0 -704
  199. package/src/forms/form-renderer.module.css +0 -321
  200. package/src/forms/form-renderer.tsx +0 -888
  201. package/src/forms/navigation-guard.tsx +0 -98
  202. package/src/forms/path-widget.module.css +0 -41
  203. package/src/forms/path-widget.test.tsx +0 -217
  204. package/src/forms/path-widget.tsx +0 -181
  205. package/src/forms/upload-executor.ts +0 -190
  206. package/src/services/field-services-context.tsx +0 -35
  207. package/src/services/field-services-types.ts +0 -68
  208. package/src/widgets/diff-viewer/diff-modal.module.css +0 -79
  209. package/src/widgets/diff-viewer/diff-modal.tsx +0 -184
  210. package/src/widgets/status-badge/status-badge.module.css +0 -31
  211. package/src/widgets/status-badge/status-badge.tsx +0 -69
@@ -1,59 +0,0 @@
1
- import { jsx, jsxs } from "react/jsx-runtime";
2
- import { useMemo } from "react";
3
- import classnames from "classnames";
4
- import { placeholderForField } from "../field-helpers.js";
5
- import { FieldRenderer } from "../field-renderer.js";
6
- import { useFieldError } from "../../forms/form-context.js";
7
- import { ErrorText } from "../../uikit.js";
8
- import group_field_module from "./group-field.module.js";
9
- const GroupField = ({ field, defaultValue, path })=>{
10
- const fieldError = useFieldError(field.name);
11
- const groupData = useMemo(()=>{
12
- if (defaultValue && 'object' == typeof defaultValue && !Array.isArray(defaultValue)) return defaultValue;
13
- const placeholder = {};
14
- for (const childField of field.fields)placeholder[childField.name] = placeholderForField(childField);
15
- return placeholder;
16
- }, [
17
- defaultValue,
18
- field.fields
19
- ]);
20
- return /*#__PURE__*/ jsxs("div", {
21
- className: `byline-field-group ${field.name}`,
22
- children: [
23
- field.label && /*#__PURE__*/ jsxs("div", {
24
- className: classnames('byline-field-group-header', group_field_module.header),
25
- children: [
26
- /*#__PURE__*/ jsxs("h3", {
27
- className: classnames('byline-field-group-title', group_field_module.title),
28
- children: [
29
- field.label,
30
- ' ',
31
- !field.optional && /*#__PURE__*/ jsx("span", {
32
- className: classnames('byline-field-group-required', group_field_module.required),
33
- children: "*"
34
- })
35
- ]
36
- }),
37
- field.helpText && /*#__PURE__*/ jsx("p", {
38
- className: classnames('byline-field-group-help', group_field_module.help),
39
- children: field.helpText
40
- })
41
- ]
42
- }),
43
- /*#__PURE__*/ jsx("div", {
44
- className: classnames('byline-field-group-body', group_field_module.body),
45
- children: field.fields.map((innerField)=>/*#__PURE__*/ jsx(FieldRenderer, {
46
- field: innerField,
47
- defaultValue: groupData[innerField.name],
48
- basePath: path,
49
- disableSorting: true
50
- }, innerField.name))
51
- }),
52
- fieldError && /*#__PURE__*/ jsx(ErrorText, {
53
- id: `${field.name}-error`,
54
- text: fieldError
55
- })
56
- ]
57
- });
58
- };
59
- export { GroupField };
@@ -1,9 +0,0 @@
1
- import "./group-field_module.css";
2
- const group_field_module = {
3
- header: "header-QiCfGn",
4
- title: "title-N84bq9",
5
- required: "required-aR0X2E",
6
- help: "help-xFiofl",
7
- body: "body-_PqbfY"
8
- };
9
- export default group_field_module;
@@ -1,27 +0,0 @@
1
- :is(.header-QiCfGn, .byline-field-group-header) {
2
- margin-bottom: var(--spacing-8);
3
- flex-direction: column;
4
- gap: .125rem;
5
- display: flex;
6
- }
7
-
8
- :is(.title-N84bq9, .byline-field-group-title) {
9
- font-size: 1rem;
10
- font-weight: var(--font-weight-medium);
11
- }
12
-
13
- :is(.required-aR0X2E, .byline-field-group-required) {
14
- color: var(--red-500);
15
- }
16
-
17
- :is(.help-xFiofl, .byline-field-group-help) {
18
- color: var(--gray-500);
19
- font-size: var(--font-size-xs);
20
- }
21
-
22
- :is(.body-_PqbfY, .byline-field-group-body) {
23
- gap: var(--spacing-8);
24
- flex-direction: column;
25
- display: flex;
26
- }
27
-
@@ -1,19 +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 ImageField as FieldType, type StoredFileValue } from '@byline/core';
9
- interface ImageFieldProps {
10
- field: FieldType;
11
- /** Collection path required to call the /upload endpoint. */
12
- collectionPath?: string;
13
- value?: StoredFileValue | null;
14
- defaultValue?: StoredFileValue | null;
15
- onChange?: (value: StoredFileValue | null) => void;
16
- path?: string;
17
- }
18
- export declare const ImageField: ({ field, collectionPath, value, defaultValue, onChange: _onChange, path, }: ImageFieldProps) => import("react").JSX.Element;
19
- export {};
@@ -1,242 +0,0 @@
1
- import { Fragment, jsx, jsxs } from "react/jsx-runtime";
2
- import { useState } from "react";
3
- import { isPendingStoredFileValue } from "@byline/core";
4
- import classnames from "classnames";
5
- import { IconButton } from "../../components/button/icon-button.js";
6
- import { useFieldError, useFieldValue, useFormContext, useIsDirty, useIsFieldUploading } from "../../forms/form-context.js";
7
- import { CloseIcon } from "../../icons/close-icon.js";
8
- import { ErrorText, HelpText, Label, LoaderRing } from "../../uikit.js";
9
- import { ImageLightbox } from "../../widgets/image-lightbox/image-lightbox.js";
10
- import { useFieldChangeHandler } from "../use-field-change-handler.js";
11
- import image_field_module from "./image-field.module.js";
12
- import { ImageUploadField } from "./image-upload-field.js";
13
- const ImageField = ({ field, collectionPath, value, defaultValue, onChange: _onChange, path })=>{
14
- const fieldPath = path ?? field.name;
15
- const fieldError = useFieldError(fieldPath);
16
- const isDirty = useIsDirty(fieldPath);
17
- const fieldValue = useFieldValue(fieldPath);
18
- const isUploading = useIsFieldUploading(fieldPath);
19
- const { removePendingUpload } = useFormContext();
20
- const handleChange = useFieldChangeHandler(field, fieldPath);
21
- const incomingValue = isDirty ? fieldValue ?? null : value ?? fieldValue ?? defaultValue ?? null;
22
- const isPending = isPendingStoredFileValue(incomingValue);
23
- const isOldPlaceholder = (v)=>{
24
- if (!v || 'object' != typeof v) return false;
25
- const maybe = v;
26
- return 'placeholder' === maybe.storageProvider && 'pending' === maybe.storagePath;
27
- };
28
- const showUploadWidget = null == incomingValue || isOldPlaceholder(incomingValue);
29
- const thumbVariant = incomingValue && !isPendingStoredFileValue(incomingValue) ? incomingValue.variants?.find((v)=>'thumbnail' === v.name) : void 0;
30
- const previewUrl = thumbVariant?.storageUrl ?? incomingValue?.storageUrl;
31
- const handleRemove = ()=>{
32
- if (isPending) removePendingUpload(fieldPath);
33
- handleChange(null);
34
- };
35
- const [lightboxOpen, setLightboxOpen] = useState(false);
36
- const canOpenLightbox = !isPending && !!incomingValue?.storageUrl;
37
- const htmlId = fieldPath;
38
- return /*#__PURE__*/ jsxs("div", {
39
- className: `byline-field-image ${field.name}`,
40
- children: [
41
- /*#__PURE__*/ jsx("div", {
42
- className: classnames('byline-field-image-header', image_field_module.header),
43
- children: /*#__PURE__*/ jsx(Label, {
44
- id: htmlId,
45
- htmlFor: htmlId,
46
- label: field.label ?? field.name,
47
- required: !field.optional
48
- })
49
- }),
50
- showUploadWidget ? collectionPath ? /*#__PURE__*/ jsx(ImageUploadField, {
51
- field: field,
52
- collectionPath: collectionPath,
53
- fieldPath: fieldPath,
54
- onUploaded: (uploaded)=>{
55
- handleChange(uploaded);
56
- }
57
- }) : /*#__PURE__*/ jsx("div", {
58
- className: classnames('byline-field-image-empty', image_field_module.empty),
59
- children: "No image selected"
60
- }) : /*#__PURE__*/ jsxs("div", {
61
- className: classnames('byline-field-image-tile', image_field_module.tile),
62
- children: [
63
- isUploading && /*#__PURE__*/ jsx("div", {
64
- className: classnames('byline-field-image-uploading', image_field_module.uploading),
65
- "aria-live": "polite",
66
- "aria-busy": "true",
67
- children: /*#__PURE__*/ jsx(LoaderRing, {})
68
- }),
69
- collectionPath && /*#__PURE__*/ jsx("div", {
70
- className: classnames('byline-field-image-remove', image_field_module.remove),
71
- children: /*#__PURE__*/ jsx(IconButton, {
72
- type: "button",
73
- intent: "noeffect",
74
- onClick: handleRemove,
75
- size: "xs",
76
- disabled: isUploading,
77
- "aria-label": "Remove image",
78
- children: /*#__PURE__*/ jsx(CloseIcon, {
79
- width: "15px",
80
- height: "15px"
81
- })
82
- })
83
- }),
84
- previewUrl && /*#__PURE__*/ jsxs("div", {
85
- className: classnames('byline-field-image-preview-wrap', image_field_module["preview-wrap"]),
86
- children: [
87
- canOpenLightbox ? /*#__PURE__*/ jsx("button", {
88
- type: "button",
89
- onClick: ()=>setLightboxOpen(true),
90
- "aria-label": "Open full-size preview",
91
- className: classnames('byline-field-image-preview-button', image_field_module["preview-button"]),
92
- children: /*#__PURE__*/ jsx("img", {
93
- src: previewUrl,
94
- alt: incomingValue.originalFilename ?? incomingValue.filename,
95
- className: classnames('byline-field-image-preview', image_field_module.preview, 'image/svg+xml' === incomingValue.mimeType && [
96
- 'byline-field-image-preview-svg',
97
- image_field_module["preview-svg"]
98
- ])
99
- })
100
- }) : /*#__PURE__*/ jsx("img", {
101
- src: previewUrl,
102
- alt: incomingValue.originalFilename ?? incomingValue.filename,
103
- className: classnames('byline-field-image-preview', image_field_module.preview, 'image/svg+xml' === incomingValue.mimeType && [
104
- 'byline-field-image-preview-svg',
105
- image_field_module["preview-svg"]
106
- ])
107
- }),
108
- isPending && /*#__PURE__*/ jsx("div", {
109
- className: classnames('byline-field-image-pending', image_field_module.pending),
110
- children: "Pending upload"
111
- })
112
- ]
113
- }),
114
- /*#__PURE__*/ jsxs("div", {
115
- className: classnames('byline-field-image-meta', image_field_module.meta),
116
- children: [
117
- /*#__PURE__*/ jsxs("div", {
118
- children: [
119
- /*#__PURE__*/ jsx("span", {
120
- className: classnames('byline-field-image-meta-key', image_field_module["meta-key"]),
121
- children: "Filename:"
122
- }),
123
- ' ',
124
- incomingValue?.filename
125
- ]
126
- }),
127
- /*#__PURE__*/ jsxs("div", {
128
- children: [
129
- /*#__PURE__*/ jsx("span", {
130
- className: classnames('byline-field-image-meta-key', image_field_module["meta-key"]),
131
- children: "Original:"
132
- }),
133
- ' ',
134
- incomingValue?.originalFilename
135
- ]
136
- }),
137
- /*#__PURE__*/ jsxs("div", {
138
- children: [
139
- /*#__PURE__*/ jsx("span", {
140
- className: classnames('byline-field-image-meta-key', image_field_module["meta-key"]),
141
- children: "Type:"
142
- }),
143
- ' ',
144
- incomingValue?.mimeType
145
- ]
146
- }),
147
- /*#__PURE__*/ jsxs("div", {
148
- children: [
149
- /*#__PURE__*/ jsx("span", {
150
- className: classnames('byline-field-image-meta-key', image_field_module["meta-key"]),
151
- children: "Size:"
152
- }),
153
- ' ',
154
- incomingValue?.fileSize
155
- ]
156
- }),
157
- isPending ? /*#__PURE__*/ jsxs("div", {
158
- children: [
159
- /*#__PURE__*/ jsx("span", {
160
- className: classnames('byline-field-image-meta-key', image_field_module["meta-key"]),
161
- children: "Status:"
162
- }),
163
- ' ',
164
- /*#__PURE__*/ jsx("span", {
165
- className: classnames('byline-field-image-meta-pending', image_field_module["meta-pending"]),
166
- children: "Will upload on save"
167
- })
168
- ]
169
- }) : /*#__PURE__*/ jsxs(Fragment, {
170
- children: [
171
- /*#__PURE__*/ jsxs("div", {
172
- children: [
173
- /*#__PURE__*/ jsx("span", {
174
- className: classnames('byline-field-image-meta-key', image_field_module["meta-key"]),
175
- children: "Storage:"
176
- }),
177
- ' ',
178
- incomingValue?.storageProvider
179
- ]
180
- }),
181
- incomingValue?.imageWidth != null && /*#__PURE__*/ jsxs("div", {
182
- children: [
183
- /*#__PURE__*/ jsx("span", {
184
- className: classnames('byline-field-image-meta-key', image_field_module["meta-key"]),
185
- children: "Dimensions:"
186
- }),
187
- ' ',
188
- incomingValue.imageWidth,
189
- null != incomingValue.imageHeight ? `×${incomingValue.imageHeight}` : ''
190
- ]
191
- }),
192
- incomingValue?.imageFormat != null && /*#__PURE__*/ jsxs("div", {
193
- children: [
194
- /*#__PURE__*/ jsx("span", {
195
- className: classnames('byline-field-image-meta-key', image_field_module["meta-key"]),
196
- children: "Format:"
197
- }),
198
- ' ',
199
- incomingValue.imageFormat
200
- ]
201
- }),
202
- /*#__PURE__*/ jsxs("div", {
203
- children: [
204
- /*#__PURE__*/ jsx("span", {
205
- className: classnames('byline-field-image-meta-key', image_field_module["meta-key"]),
206
- children: "Thumbnail:"
207
- }),
208
- ' ',
209
- thumbVariant ? 'Generated' : 'Pending'
210
- ]
211
- })
212
- ]
213
- })
214
- ]
215
- })
216
- ]
217
- }),
218
- field.helpText && /*#__PURE__*/ jsx(HelpText, {
219
- text: field.helpText
220
- }),
221
- fieldError && /*#__PURE__*/ jsx(ErrorText, {
222
- id: `${field.name}-error`,
223
- text: fieldError
224
- }),
225
- canOpenLightbox && incomingValue?.storageUrl && /*#__PURE__*/ jsx(ImageLightbox, {
226
- isOpen: lightboxOpen,
227
- onDismiss: ()=>setLightboxOpen(false),
228
- src: incomingValue.storageUrl,
229
- alt: incomingValue.originalFilename ?? incomingValue.filename,
230
- downloadFilename: incomingValue.originalFilename ?? incomingValue.filename,
231
- title: incomingValue.originalFilename ?? incomingValue.filename,
232
- meta: {
233
- width: incomingValue.imageWidth,
234
- height: incomingValue.imageHeight,
235
- fileSize: incomingValue.fileSize,
236
- mimeType: incomingValue.mimeType
237
- }
238
- })
239
- ]
240
- });
241
- };
242
- export { ImageField };
@@ -1,22 +0,0 @@
1
- import "./image-field_module.css";
2
- const image_field_module = {
3
- header: "header-qe_E_5",
4
- remove: "remove-ib7eKx",
5
- empty: "empty-b8pdoJ",
6
- tile: "tile-izbLn0",
7
- "preview-wrap": "preview-wrap-Cjr0PD",
8
- previewWrap: "preview-wrap-Cjr0PD",
9
- "preview-button": "preview-button-LAsENX",
10
- previewButton: "preview-button-LAsENX",
11
- preview: "preview-DIASGB",
12
- "preview-svg": "preview-svg-sCwreb",
13
- previewSvg: "preview-svg-sCwreb",
14
- pending: "pending-s6X_52",
15
- uploading: "uploading-nqh2Gh",
16
- meta: "meta-uHyKiu",
17
- "meta-key": "meta-key-eR6iRU",
18
- metaKey: "meta-key-eR6iRU",
19
- "meta-pending": "meta-pending-lEdTAj",
20
- metaPending: "meta-pending-lEdTAj"
21
- };
22
- export default image_field_module;
@@ -1,121 +0,0 @@
1
- :is(.header-qe_E_5, .byline-field-image-header) {
2
- align-items: baseline;
3
- gap: var(--spacing-8);
4
- margin-bottom: .25rem;
5
- display: flex;
6
- }
7
-
8
- :is(.remove-ib7eKx, .byline-field-image-remove) {
9
- top: var(--spacing-6);
10
- right: var(--spacing-6);
11
- z-index: 1;
12
- position: absolute;
13
- }
14
-
15
- .byline-field-image-remove .byline-button {
16
- color: var(--gray-900);
17
- }
18
-
19
- :is(.dark .byline-field-image-remove .byline-button, [data-theme="dark"] .byline-field-image-remove .byline-button) {
20
- color: var(--gray-200);
21
- }
22
-
23
- :is(.empty-b8pdoJ, .byline-field-image-empty) {
24
- color: var(--gray-500);
25
- font-size: var(--font-size-xs);
26
- font-style: italic;
27
- }
28
-
29
- :is(.tile-izbLn0, .byline-field-image-tile) {
30
- gap: var(--spacing-16);
31
- padding: var(--spacing-8);
32
- border: var(--border-width-thin) var(--border-style-solid) var(--primary-500);
33
- border-radius: var(--border-radius-md);
34
- margin-top: .25rem;
35
- display: flex;
36
- position: relative;
37
- }
38
-
39
- :is(.preview-wrap-Cjr0PD, .byline-field-image-preview-wrap) {
40
- position: relative;
41
- }
42
-
43
- :is(.preview-button-LAsENX, .byline-field-image-preview-button) {
44
- appearance: none;
45
- cursor: pointer;
46
- border-radius: var(--border-radius-sm);
47
- background: none;
48
- border: none;
49
- margin: 0;
50
- padding: 0;
51
- display: block;
52
- }
53
-
54
- :is(.preview-button-LAsENX:focus-visible, .byline-field-image-preview-button:focus-visible) {
55
- outline: 2px solid var(--primary-500);
56
- outline-offset: 2px;
57
- }
58
-
59
- :is(.preview-button-LAsENX img, .byline-field-image-preview-button img) {
60
- transition: opacity .12s;
61
- }
62
-
63
- :is(.preview-button-LAsENX:hover img, .byline-field-image-preview-button:hover img) {
64
- opacity: .85;
65
- }
66
-
67
- :is(.preview-DIASGB, .byline-field-image-preview) {
68
- border: var(--border-width-thin) var(--border-style-solid) var(--gray-600);
69
- border-radius: var(--border-radius-sm);
70
- object-fit: contain;
71
- min-width: 4rem;
72
- min-height: 4rem;
73
- max-height: 10rem;
74
- }
75
-
76
- :is(.preview-svg-sCwreb, .byline-field-image-preview-svg) {
77
- width: 271px;
78
- height: 159px;
79
- max-height: none;
80
- }
81
-
82
- :is(.pending-s6X_52, .byline-field-image-pending) {
83
- background-color: oklch(from var(--yellow-600) l c h / .9);
84
- color: var(--yellow-100);
85
- font-size: .6rem;
86
- font-weight: var(--font-weight-medium);
87
- border-radius: var(--border-radius-sm);
88
- padding: .125rem .375rem;
89
- position: absolute;
90
- top: .25rem;
91
- left: .25rem;
92
- }
93
-
94
- :is(.uploading-nqh2Gh, .byline-field-image-uploading) {
95
- z-index: 2;
96
- background-color: oklch(from var(--gray-950) l c h / .5);
97
- border-radius: var(--border-radius-md);
98
- justify-content: center;
99
- align-items: center;
100
- display: flex;
101
- position: absolute;
102
- inset: 0;
103
- }
104
-
105
- :is(.meta-uHyKiu, .byline-field-image-meta) {
106
- padding-right: var(--spacing-32);
107
- color: var(--gray-200);
108
- font-size: var(--font-size-xs);
109
- flex-direction: column;
110
- gap: .125rem;
111
- display: flex;
112
- }
113
-
114
- :is(.meta-key-eR6iRU, .byline-field-image-meta-key) {
115
- font-weight: var(--font-weight-semibold);
116
- }
117
-
118
- :is(.meta-pending-lEdTAj, .byline-field-image-meta-pending) {
119
- color: var(--yellow-400);
120
- }
121
-
@@ -1,21 +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 ImageField as FieldType, type PendingStoredFileValue, type StoredFileValue } from '@byline/core';
9
- interface ImageUploadFieldProps {
10
- field: FieldType;
11
- /** Collection path used to build the upload URL (e.g. `'media'`). */
12
- collectionPath: string;
13
- /** Field path in the form (e.g. `'image'` or `'content.0.image'`). */
14
- fieldPath: string;
15
- /** Called with the PendingStoredFileValue for immediate preview. */
16
- onUploaded: (value: StoredFileValue | PendingStoredFileValue) => void;
17
- /** Optional accepted-file MIME types string for the native file input. */
18
- accept?: string;
19
- }
20
- export declare const ImageUploadField: ({ field: _field, collectionPath, fieldPath, onUploaded, accept, }: ImageUploadFieldProps) => import("react").JSX.Element;
21
- export {};