@byline/admin 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.
Files changed (260) hide show
  1. package/dist/fields/array/array-field.d.ts +14 -0
  2. package/dist/fields/array/array-field.js +177 -0
  3. package/dist/fields/array/array-field.module.js +11 -0
  4. package/dist/fields/array/array-field_module.css +32 -0
  5. package/dist/fields/blocks/blocks-field.d.ts +13 -0
  6. package/dist/fields/blocks/blocks-field.js +245 -0
  7. package/dist/fields/blocks/blocks-field.module.js +26 -0
  8. package/dist/fields/blocks/blocks-field_module.css +107 -0
  9. package/dist/fields/checkbox/checkbox-field.d.ts +16 -0
  10. package/dist/fields/checkbox/checkbox-field.js +28 -0
  11. package/dist/fields/checkbox/checkbox-field.module.js +6 -0
  12. package/dist/fields/checkbox/checkbox-field_module.css +4 -0
  13. package/dist/fields/column-formatter.d.ts +20 -0
  14. package/dist/fields/column-formatter.js +15 -0
  15. package/dist/fields/date-time-formatter.d.ts +16 -0
  16. package/dist/fields/date-time-formatter.js +8 -0
  17. package/dist/fields/datetime/datetime-field.d.ts +16 -0
  18. package/dist/fields/datetime/datetime-field.js +37 -0
  19. package/dist/fields/datetime/datetime-field.module.js +5 -0
  20. package/dist/fields/datetime/datetime-field_module.css +4 -0
  21. package/dist/fields/draggable-context-menu.d.ts +6 -0
  22. package/dist/fields/draggable-context-menu.js +85 -0
  23. package/dist/fields/draggable-context-menu.module.js +15 -0
  24. package/dist/fields/draggable-context-menu_module.css +91 -0
  25. package/dist/fields/field-helpers.d.ts +26 -0
  26. package/dist/fields/field-helpers.js +50 -0
  27. package/dist/fields/field-renderer.d.ts +37 -0
  28. package/dist/fields/field-renderer.js +206 -0
  29. package/dist/fields/field-renderer.module.js +8 -0
  30. package/dist/fields/field-renderer_module.css +11 -0
  31. package/dist/fields/field-services-context.d.ts +16 -0
  32. package/dist/fields/field-services-context.js +13 -0
  33. package/dist/fields/field-services-types.d.ts +63 -0
  34. package/dist/fields/field-services-types.js +1 -0
  35. package/dist/fields/file/file-field.d.ts +19 -0
  36. package/dist/fields/file/file-field.js +225 -0
  37. package/dist/fields/file/file-field.module.js +18 -0
  38. package/dist/fields/file/file-field_module.css +131 -0
  39. package/dist/fields/file/file-upload-field.d.ts +21 -0
  40. package/dist/fields/file/file-upload-field.js +130 -0
  41. package/dist/fields/file/file-upload-field.module.js +15 -0
  42. package/dist/fields/file/file-upload-field_module.css +74 -0
  43. package/dist/fields/group/group-field.d.ts +15 -0
  44. package/dist/fields/group/group-field.js +59 -0
  45. package/dist/fields/group/group-field.module.js +9 -0
  46. package/dist/fields/group/group-field_module.css +27 -0
  47. package/dist/fields/image/image-field.d.ts +19 -0
  48. package/dist/fields/image/image-field.js +241 -0
  49. package/dist/fields/image/image-field.module.js +22 -0
  50. package/dist/fields/image/image-field_module.css +121 -0
  51. package/dist/fields/image/image-upload-field.d.ts +21 -0
  52. package/dist/fields/image/image-upload-field.js +190 -0
  53. package/dist/fields/image/image-upload-field.module.js +19 -0
  54. package/dist/fields/image/image-upload-field_module.css +92 -0
  55. package/dist/fields/local-date-time.d.ts +27 -0
  56. package/dist/fields/local-date-time.js +49 -0
  57. package/dist/fields/locale-badge.d.ts +18 -0
  58. package/dist/fields/locale-badge.js +10 -0
  59. package/dist/fields/locale-badge.module.js +5 -0
  60. package/dist/fields/locale-badge_module.css +27 -0
  61. package/dist/fields/numerical/numerical-field.d.ts +18 -0
  62. package/dist/fields/numerical/numerical-field.js +74 -0
  63. package/dist/fields/relation/relation-display.d.ts +40 -0
  64. package/dist/fields/relation/relation-display.js +58 -0
  65. package/dist/fields/relation/relation-display.module.js +9 -0
  66. package/dist/fields/relation/relation-display_module.css +21 -0
  67. package/dist/fields/relation/relation-field.d.ts +18 -0
  68. package/dist/fields/relation/relation-field.js +138 -0
  69. package/dist/fields/relation/relation-field.module.js +13 -0
  70. package/dist/fields/relation/relation-field_module.css +62 -0
  71. package/dist/fields/relation/relation-picker.d.ts +49 -0
  72. package/dist/fields/relation/relation-picker.js +236 -0
  73. package/dist/fields/relation/relation-picker.module.js +26 -0
  74. package/dist/fields/relation/relation-picker_module.css +124 -0
  75. package/dist/fields/relation/relation-summary.d.ts +31 -0
  76. package/dist/fields/relation/relation-summary.js +50 -0
  77. package/dist/fields/relation/relation-summary.module.js +11 -0
  78. package/dist/fields/relation/relation-summary_module.css +37 -0
  79. package/dist/fields/select/select-field.d.ts +16 -0
  80. package/dist/fields/select/select-field.js +50 -0
  81. package/dist/fields/select/select-field.module.js +5 -0
  82. package/dist/fields/select/select-field_module.css +4 -0
  83. package/dist/fields/sortable-item.d.ts +15 -0
  84. package/dist/fields/sortable-item.js +81 -0
  85. package/dist/fields/sortable-item.module.js +22 -0
  86. package/dist/fields/sortable-item_module.css +124 -0
  87. package/dist/fields/text/text-field.d.ts +20 -0
  88. package/dist/fields/text/text-field.js +104 -0
  89. package/dist/fields/text/text-field.module.js +6 -0
  90. package/dist/fields/text/text-field_module.css +5 -0
  91. package/dist/fields/text-area/text-area-field.d.ts +20 -0
  92. package/dist/fields/text-area/text-area-field.js +105 -0
  93. package/dist/fields/text-area/text-area-field.module.js +6 -0
  94. package/dist/fields/text-area/text-area-field_module.css +5 -0
  95. package/dist/fields/use-field-change-handler.d.ts +23 -0
  96. package/dist/fields/use-field-change-handler.js +52 -0
  97. package/dist/forms/document-actions.d.ts +48 -0
  98. package/dist/forms/document-actions.js +475 -0
  99. package/dist/forms/document-actions.module.js +34 -0
  100. package/dist/forms/document-actions_module.css +118 -0
  101. package/dist/forms/form-context.d.ts +89 -0
  102. package/dist/forms/form-context.js +466 -0
  103. package/dist/forms/form-renderer.d.ts +98 -0
  104. package/dist/forms/form-renderer.js +597 -0
  105. package/dist/forms/form-renderer.module.js +46 -0
  106. package/dist/forms/form-renderer_module.css +245 -0
  107. package/dist/forms/navigation-guard.d.ts +54 -0
  108. package/dist/forms/navigation-guard.js +22 -0
  109. package/dist/forms/path-widget.d.ts +36 -0
  110. package/dist/forms/path-widget.js +116 -0
  111. package/dist/forms/path-widget.module.js +8 -0
  112. package/dist/forms/path-widget_module.css +29 -0
  113. package/dist/forms/upload-executor.d.ts +57 -0
  114. package/dist/forms/upload-executor.js +94 -0
  115. package/dist/lib/translate-validation-error.d.ts +36 -0
  116. package/dist/lib/translate-validation-error.js +11 -0
  117. package/dist/modules/admin-account/commands.d.ts +2 -1
  118. package/dist/modules/admin-account/commands.js +13 -2
  119. package/dist/modules/admin-account/components/change-password.js +45 -36
  120. package/dist/modules/admin-account/components/container.js +185 -134
  121. package/dist/modules/admin-account/components/preferences.d.ts +8 -0
  122. package/dist/modules/admin-account/components/preferences.js +152 -0
  123. package/dist/modules/admin-account/components/preferences.module.js +11 -0
  124. package/dist/modules/admin-account/components/preferences_module.css +41 -0
  125. package/dist/modules/admin-account/components/update.js +50 -31
  126. package/dist/modules/admin-account/index.d.ts +3 -3
  127. package/dist/modules/admin-account/index.js +2 -2
  128. package/dist/modules/admin-account/schemas.d.ts +4 -0
  129. package/dist/modules/admin-account/schemas.js +4 -1
  130. package/dist/modules/admin-account/service.d.ts +1 -0
  131. package/dist/modules/admin-account/service.js +8 -0
  132. package/dist/modules/admin-permissions/components/inspector.js +31 -41
  133. package/dist/modules/admin-roles/components/create.js +43 -26
  134. package/dist/modules/admin-roles/components/permissions.js +26 -35
  135. package/dist/modules/admin-roles/components/update.js +26 -16
  136. package/dist/modules/admin-users/components/create.js +60 -40
  137. package/dist/modules/admin-users/components/roles.js +9 -15
  138. package/dist/modules/admin-users/components/set-password.js +30 -31
  139. package/dist/modules/admin-users/components/update.js +58 -39
  140. package/dist/modules/admin-users/dto.js +1 -0
  141. package/dist/modules/admin-users/repository.d.ts +17 -0
  142. package/dist/modules/admin-users/schemas.d.ts +4 -0
  143. package/dist/modules/admin-users/schemas.js +6 -2
  144. package/dist/modules/auth/components/sign-in-form.js +10 -8
  145. package/dist/presentation/group.d.ts +27 -0
  146. package/dist/presentation/group.js +14 -0
  147. package/dist/presentation/group.module.js +6 -0
  148. package/dist/presentation/group_module.css +19 -0
  149. package/dist/presentation/row.d.ts +25 -0
  150. package/dist/presentation/row.js +8 -0
  151. package/dist/presentation/row.module.js +5 -0
  152. package/dist/presentation/row_module.css +18 -0
  153. package/dist/presentation/tabs.d.ts +25 -0
  154. package/dist/presentation/tabs.js +39 -0
  155. package/dist/presentation/tabs.module.js +10 -0
  156. package/dist/presentation/tabs_module.css +68 -0
  157. package/dist/react.d.ts +66 -0
  158. package/dist/react.js +36 -0
  159. package/dist/services/admin-services-types.d.ts +16 -0
  160. package/dist/widgets/diff-viewer/diff-modal.d.ts +22 -0
  161. package/dist/widgets/diff-viewer/diff-modal.js +149 -0
  162. package/dist/widgets/diff-viewer/diff-modal.module.js +14 -0
  163. package/dist/widgets/diff-viewer/diff-modal_module.css +56 -0
  164. package/dist/widgets/status-badge/status-badge.d.ts +25 -0
  165. package/dist/widgets/status-badge/status-badge.js +37 -0
  166. package/dist/widgets/status-badge/status-badge.module.js +7 -0
  167. package/dist/widgets/status-badge/status-badge_module.css +20 -0
  168. package/package.json +14 -4
  169. package/src/fields/array/array-field.module.css +48 -0
  170. package/src/fields/array/array-field.tsx +267 -0
  171. package/src/fields/blocks/blocks-field.module.css +148 -0
  172. package/src/fields/blocks/blocks-field.tsx +323 -0
  173. package/src/fields/checkbox/checkbox-field.module.css +4 -0
  174. package/src/fields/checkbox/checkbox-field.tsx +54 -0
  175. package/src/fields/column-formatter.tsx +31 -0
  176. package/src/fields/date-time-formatter.tsx +22 -0
  177. package/src/fields/datetime/datetime-field.module.css +13 -0
  178. package/src/fields/datetime/datetime-field.tsx +54 -0
  179. package/src/fields/draggable-context-menu.module.css +127 -0
  180. package/src/fields/draggable-context-menu.tsx +87 -0
  181. package/src/fields/field-helpers.ts +69 -0
  182. package/src/fields/field-renderer.module.css +22 -0
  183. package/src/fields/field-renderer.tsx +288 -0
  184. package/src/fields/field-services-context.tsx +35 -0
  185. package/src/fields/field-services-types.ts +68 -0
  186. package/src/fields/file/file-field.module.css +153 -0
  187. package/src/fields/file/file-field.tsx +286 -0
  188. package/src/fields/file/file-upload-field.module.css +101 -0
  189. package/src/fields/file/file-upload-field.tsx +187 -0
  190. package/src/fields/group/group-field.module.css +43 -0
  191. package/src/fields/group/group-field.tsx +84 -0
  192. package/src/fields/image/image-field.module.css +155 -0
  193. package/src/fields/image/image-field.tsx +306 -0
  194. package/src/fields/image/image-upload-field.module.css +123 -0
  195. package/src/fields/image/image-upload-field.tsx +276 -0
  196. package/src/fields/local-date-time.tsx +88 -0
  197. package/src/fields/locale-badge.module.css +37 -0
  198. package/src/fields/locale-badge.tsx +32 -0
  199. package/src/fields/numerical/numerical-field.tsx +114 -0
  200. package/src/fields/relation/relation-display.module.css +36 -0
  201. package/src/fields/relation/relation-display.tsx +130 -0
  202. package/src/fields/relation/relation-field.module.css +83 -0
  203. package/src/fields/relation/relation-field.tsx +211 -0
  204. package/src/fields/relation/relation-picker.module.css +168 -0
  205. package/src/fields/relation/relation-picker.tsx +326 -0
  206. package/src/fields/relation/relation-summary.module.css +55 -0
  207. package/src/fields/relation/relation-summary.tsx +123 -0
  208. package/src/fields/select/select-field.module.css +13 -0
  209. package/src/fields/select/select-field.tsx +61 -0
  210. package/src/fields/sortable-item.module.css +167 -0
  211. package/src/fields/sortable-item.tsx +106 -0
  212. package/src/fields/text/text-field.module.css +13 -0
  213. package/src/fields/text/text-field.tsx +146 -0
  214. package/src/fields/text-area/text-area-field.module.css +13 -0
  215. package/src/fields/text-area/text-area-field.tsx +147 -0
  216. package/src/fields/use-field-change-handler.ts +112 -0
  217. package/src/forms/document-actions.module.css +160 -0
  218. package/src/forms/document-actions.tsx +482 -0
  219. package/src/forms/form-context.tsx +704 -0
  220. package/src/forms/form-renderer.module.css +321 -0
  221. package/src/forms/form-renderer.tsx +891 -0
  222. package/src/forms/navigation-guard.tsx +98 -0
  223. package/src/forms/path-widget.module.css +41 -0
  224. package/src/forms/path-widget.test.tsx +217 -0
  225. package/src/forms/path-widget.tsx +183 -0
  226. package/src/forms/upload-executor.ts +192 -0
  227. package/src/lib/translate-validation-error.ts +56 -0
  228. package/src/modules/admin-account/commands.ts +13 -0
  229. package/src/modules/admin-account/components/change-password.tsx +46 -31
  230. package/src/modules/admin-account/components/container.tsx +83 -38
  231. package/src/modules/admin-account/components/preferences.module.css +60 -0
  232. package/src/modules/admin-account/components/preferences.tsx +203 -0
  233. package/src/modules/admin-account/components/update.tsx +53 -27
  234. package/src/modules/admin-account/index.ts +3 -0
  235. package/src/modules/admin-account/schemas.ts +13 -0
  236. package/src/modules/admin-account/service.ts +12 -0
  237. package/src/modules/admin-permissions/components/inspector.tsx +22 -14
  238. package/src/modules/admin-roles/components/create.tsx +51 -23
  239. package/src/modules/admin-roles/components/permissions.tsx +25 -21
  240. package/src/modules/admin-roles/components/update.tsx +37 -19
  241. package/src/modules/admin-users/components/create.tsx +63 -34
  242. package/src/modules/admin-users/components/roles.tsx +9 -8
  243. package/src/modules/admin-users/components/set-password.tsx +34 -28
  244. package/src/modules/admin-users/components/update.tsx +58 -36
  245. package/src/modules/admin-users/dto.ts +1 -0
  246. package/src/modules/admin-users/repository.ts +17 -0
  247. package/src/modules/admin-users/schemas.ts +12 -0
  248. package/src/modules/auth/components/sign-in-form.tsx +14 -8
  249. package/src/presentation/group.module.css +41 -0
  250. package/src/presentation/group.tsx +40 -0
  251. package/src/presentation/row.module.css +32 -0
  252. package/src/presentation/row.tsx +33 -0
  253. package/src/presentation/tabs.module.css +107 -0
  254. package/src/presentation/tabs.tsx +84 -0
  255. package/src/react.ts +84 -0
  256. package/src/services/admin-services-types.ts +18 -0
  257. package/src/widgets/diff-viewer/diff-modal.module.css +79 -0
  258. package/src/widgets/diff-viewer/diff-modal.tsx +186 -0
  259. package/src/widgets/status-badge/status-badge.module.css +31 -0
  260. package/src/widgets/status-badge/status-badge.tsx +71 -0
@@ -0,0 +1,475 @@
1
+ "use client";
2
+ import { Fragment, jsx, jsxs } from "react/jsx-runtime";
3
+ import { useState } from "react";
4
+ import { useTranslation } from "@byline/i18n/react";
5
+ import { Button, Checkbox, CloseIcon, DeleteIcon, Dropdown, EllipsisIcon, IconButton, Modal, Select } from "@byline/ui/react";
6
+ import classnames from "classnames";
7
+ import document_actions_module from "./document-actions.module.js";
8
+ const DUPLICATE_TITLE_SUFFIX = ' (copy)';
9
+ function DocumentActions({ publishedVersion, onUnpublish, onDelete, onDuplicate, sourceTitle, onCopyToLocale, sourceLocale, contentLocales }) {
10
+ const { t } = useTranslation('byline-admin');
11
+ const [showDeleteConfirm, setShowDeleteConfirm] = useState(false);
12
+ const [showDuplicateConfirm, setShowDuplicateConfirm] = useState(false);
13
+ const [duplicateBusy, setDuplicateBusy] = useState(false);
14
+ const availableTargetLocales = (contentLocales ?? []).filter((loc)=>loc.code !== sourceLocale);
15
+ const copyToLocaleAvailable = null != onCopyToLocale && availableTargetLocales.length > 0;
16
+ const [showCopyToLocaleConfirm, setShowCopyToLocaleConfirm] = useState(false);
17
+ const [copyToLocaleBusy, setCopyToLocaleBusy] = useState(false);
18
+ const [copyTargetLocale, setCopyTargetLocale] = useState(availableTargetLocales[0]?.code ?? '');
19
+ const [copyOverwrite, setCopyOverwrite] = useState(false);
20
+ const handleOnDelete = ()=>{
21
+ setShowDeleteConfirm(false);
22
+ if (onDelete) onDelete();
23
+ };
24
+ const handleOnDuplicate = async ()=>{
25
+ if (!onDuplicate) return;
26
+ setDuplicateBusy(true);
27
+ try {
28
+ await onDuplicate();
29
+ setShowDuplicateConfirm(false);
30
+ } finally{
31
+ setDuplicateBusy(false);
32
+ }
33
+ };
34
+ const handleOpenCopyToLocale = ()=>{
35
+ setCopyTargetLocale(availableTargetLocales[0]?.code ?? '');
36
+ setCopyOverwrite(false);
37
+ setShowCopyToLocaleConfirm(true);
38
+ };
39
+ const handleOnCopyToLocale = async ()=>{
40
+ if (!onCopyToLocale || !copyTargetLocale) return;
41
+ setCopyToLocaleBusy(true);
42
+ try {
43
+ await onCopyToLocale({
44
+ targetLocale: copyTargetLocale,
45
+ overwrite: copyOverwrite
46
+ });
47
+ setShowCopyToLocaleConfirm(false);
48
+ } finally{
49
+ setCopyToLocaleBusy(false);
50
+ }
51
+ };
52
+ const duplicatePreviewBefore = sourceTitle ?? '';
53
+ const duplicatePreviewAfter = (sourceTitle ?? '') + DUPLICATE_TITLE_SUFFIX;
54
+ const sourceLocaleLabel = contentLocales?.find((loc)=>loc.code === sourceLocale)?.label ?? sourceLocale ?? '';
55
+ return /*#__PURE__*/ jsxs(Fragment, {
56
+ children: [
57
+ /*#__PURE__*/ jsxs(Dropdown.Root, {
58
+ children: [
59
+ /*#__PURE__*/ jsx(Dropdown.Trigger, {
60
+ render: /*#__PURE__*/ jsx(IconButton, {
61
+ variant: "text",
62
+ intent: "noeffect",
63
+ size: "sm"
64
+ }),
65
+ children: /*#__PURE__*/ jsx(EllipsisIcon, {
66
+ className: classnames('byline-form-actions-icon', document_actions_module.icon),
67
+ width: "15px",
68
+ height: "15px"
69
+ })
70
+ }),
71
+ /*#__PURE__*/ jsx(Dropdown.Portal, {
72
+ children: /*#__PURE__*/ jsxs(Dropdown.Content, {
73
+ className: classnames('byline-form-actions-menu', document_actions_module.menu),
74
+ align: "end",
75
+ "data-side": "top",
76
+ sideOffset: 10,
77
+ children: [
78
+ copyToLocaleAvailable && /*#__PURE__*/ jsx(Dropdown.Item, {
79
+ onClick: handleOpenCopyToLocale,
80
+ children: /*#__PURE__*/ jsx("div", {
81
+ className: classnames('byline-form-actions-item', document_actions_module.item),
82
+ children: /*#__PURE__*/ jsx("span", {
83
+ className: classnames('byline-form-actions-item-text', document_actions_module["item-text"]),
84
+ children: /*#__PURE__*/ jsx("button", {
85
+ type: "button",
86
+ children: t('documentActions.copyToLocaleMenuItem')
87
+ })
88
+ })
89
+ })
90
+ }),
91
+ onDuplicate && /*#__PURE__*/ jsx(Dropdown.Item, {
92
+ onClick: ()=>{
93
+ setShowDuplicateConfirm(true);
94
+ },
95
+ children: /*#__PURE__*/ jsx("div", {
96
+ className: classnames('byline-form-actions-item', document_actions_module.item),
97
+ children: /*#__PURE__*/ jsx("span", {
98
+ className: classnames('byline-form-actions-item-text', document_actions_module["item-text"]),
99
+ children: /*#__PURE__*/ jsx("button", {
100
+ type: "button",
101
+ children: t('common.actions.duplicate')
102
+ })
103
+ })
104
+ })
105
+ }),
106
+ /*#__PURE__*/ jsx(Dropdown.Separator, {}),
107
+ /*#__PURE__*/ jsx(Dropdown.Item, {
108
+ onClick: ()=>{
109
+ setShowDeleteConfirm(true);
110
+ },
111
+ children: /*#__PURE__*/ jsxs("div", {
112
+ className: classnames('byline-form-actions-item', document_actions_module.item),
113
+ children: [
114
+ /*#__PURE__*/ jsx("span", {
115
+ className: classnames('byline-form-actions-item-icon', document_actions_module["item-icon"]),
116
+ children: /*#__PURE__*/ jsx(DeleteIcon, {
117
+ width: "16px",
118
+ height: "16px"
119
+ })
120
+ }),
121
+ /*#__PURE__*/ jsx("span", {
122
+ className: classnames('byline-form-actions-item-text', document_actions_module["item-text"]),
123
+ children: /*#__PURE__*/ jsx("button", {
124
+ type: "button",
125
+ className: classnames('byline-form-actions-delete', document_actions_module["delete"]),
126
+ children: t('common.actions.delete')
127
+ })
128
+ })
129
+ ]
130
+ })
131
+ })
132
+ ]
133
+ })
134
+ })
135
+ ]
136
+ }),
137
+ /*#__PURE__*/ jsx(Modal, {
138
+ isOpen: showDeleteConfirm,
139
+ closeOnOverlayClick: true,
140
+ onDismiss: ()=>{
141
+ setShowDeleteConfirm(false);
142
+ },
143
+ children: /*#__PURE__*/ jsxs(Modal.Container, {
144
+ style: {
145
+ maxWidth: '500px'
146
+ },
147
+ children: [
148
+ /*#__PURE__*/ jsxs(Modal.Header, {
149
+ className: classnames('byline-form-actions-modal-head', document_actions_module["modal-head"]),
150
+ children: [
151
+ /*#__PURE__*/ jsx("h3", {
152
+ className: classnames('byline-form-actions-modal-title', document_actions_module["modal-title"]),
153
+ children: t('documentActions.delete.title')
154
+ }),
155
+ /*#__PURE__*/ jsx(IconButton, {
156
+ "arial-label": t('common.actions.close'),
157
+ size: "xs",
158
+ onClick: ()=>{
159
+ setShowDeleteConfirm(false);
160
+ },
161
+ children: /*#__PURE__*/ jsx(CloseIcon, {
162
+ width: "16px",
163
+ height: "16px",
164
+ svgClassName: "white-icon"
165
+ })
166
+ })
167
+ ]
168
+ }),
169
+ /*#__PURE__*/ jsx(Modal.Content, {
170
+ children: /*#__PURE__*/ jsx("p", {
171
+ children: t('documentActions.delete.warning')
172
+ })
173
+ }),
174
+ /*#__PURE__*/ jsxs(Modal.Actions, {
175
+ children: [
176
+ /*#__PURE__*/ jsx("button", {
177
+ "data-autofocus": true,
178
+ type: "button",
179
+ tabIndex: 0,
180
+ className: classnames('byline-form-actions-sr-only', document_actions_module["sr-only"]),
181
+ children: "no action"
182
+ }),
183
+ /*#__PURE__*/ jsx(Button, {
184
+ size: "sm",
185
+ style: {
186
+ minWidth: '80px'
187
+ },
188
+ intent: "noeffect",
189
+ onClick: ()=>{
190
+ setShowDeleteConfirm(false);
191
+ },
192
+ children: t('common.actions.cancel')
193
+ }),
194
+ /*#__PURE__*/ jsx(Button, {
195
+ size: "sm",
196
+ style: {
197
+ minWidth: '80px'
198
+ },
199
+ intent: "danger",
200
+ onClick: handleOnDelete,
201
+ children: t('common.actions.delete')
202
+ })
203
+ ]
204
+ })
205
+ ]
206
+ })
207
+ }),
208
+ /*#__PURE__*/ jsx(Modal, {
209
+ isOpen: showDuplicateConfirm,
210
+ closeOnOverlayClick: !duplicateBusy,
211
+ onDismiss: ()=>{
212
+ if (!duplicateBusy) setShowDuplicateConfirm(false);
213
+ },
214
+ children: /*#__PURE__*/ jsxs(Modal.Container, {
215
+ style: {
216
+ maxWidth: '560px'
217
+ },
218
+ children: [
219
+ /*#__PURE__*/ jsxs(Modal.Header, {
220
+ className: classnames('byline-form-actions-modal-head', document_actions_module["modal-head"]),
221
+ children: [
222
+ /*#__PURE__*/ jsx("h3", {
223
+ className: classnames('byline-form-actions-modal-title', document_actions_module["modal-title"]),
224
+ children: t('documentActions.duplicate.title')
225
+ }),
226
+ /*#__PURE__*/ jsx(IconButton, {
227
+ "arial-label": t('common.actions.close'),
228
+ size: "xs",
229
+ onClick: ()=>{
230
+ if (!duplicateBusy) setShowDuplicateConfirm(false);
231
+ },
232
+ children: /*#__PURE__*/ jsx(CloseIcon, {
233
+ width: "16px",
234
+ height: "16px",
235
+ svgClassName: "white-icon"
236
+ })
237
+ })
238
+ ]
239
+ }),
240
+ /*#__PURE__*/ jsxs(Modal.Content, {
241
+ className: "prose",
242
+ children: [
243
+ /*#__PURE__*/ jsx("p", {
244
+ className: "m-0",
245
+ children: t('documentActions.duplicate.intro')
246
+ }),
247
+ /*#__PURE__*/ jsxs("ul", {
248
+ className: classnames('byline-form-actions-list', document_actions_module.list),
249
+ children: [
250
+ /*#__PURE__*/ jsxs("li", {
251
+ children: [
252
+ t('documentActions.duplicate.bulletTitle'),
253
+ ' ',
254
+ /*#__PURE__*/ jsx("code", {
255
+ children: DUPLICATE_TITLE_SUFFIX.trim()
256
+ }),
257
+ "."
258
+ ]
259
+ }),
260
+ /*#__PURE__*/ jsx("li", {
261
+ children: t('documentActions.duplicate.bulletPath')
262
+ })
263
+ ]
264
+ }),
265
+ null != sourceTitle && sourceTitle.length > 0 && /*#__PURE__*/ jsxs("div", {
266
+ className: classnames('byline-form-actions-preview', document_actions_module.preview),
267
+ children: [
268
+ /*#__PURE__*/ jsx("div", {
269
+ className: classnames('byline-form-actions-preview-label', document_actions_module["preview-label"]),
270
+ children: t('documentActions.duplicate.previewLabel')
271
+ }),
272
+ /*#__PURE__*/ jsxs("div", {
273
+ className: classnames('byline-form-actions-preview-row', document_actions_module["preview-row"]),
274
+ children: [
275
+ /*#__PURE__*/ jsx("span", {
276
+ className: classnames('byline-form-actions-preview-before', document_actions_module["preview-before"]),
277
+ children: duplicatePreviewBefore
278
+ }),
279
+ /*#__PURE__*/ jsx("span", {
280
+ className: classnames('byline-form-actions-preview-arrow', document_actions_module["preview-arrow"]),
281
+ children: "→"
282
+ }),
283
+ /*#__PURE__*/ jsx("span", {
284
+ className: classnames('byline-form-actions-preview-after', document_actions_module["preview-after"]),
285
+ children: duplicatePreviewAfter
286
+ })
287
+ ]
288
+ })
289
+ ]
290
+ })
291
+ ]
292
+ }),
293
+ /*#__PURE__*/ jsxs(Modal.Actions, {
294
+ children: [
295
+ /*#__PURE__*/ jsx("button", {
296
+ "data-autofocus": true,
297
+ type: "button",
298
+ tabIndex: 0,
299
+ className: classnames('byline-form-actions-sr-only', document_actions_module["sr-only"]),
300
+ children: "no action"
301
+ }),
302
+ /*#__PURE__*/ jsx(Button, {
303
+ size: "sm",
304
+ style: {
305
+ minWidth: '80px'
306
+ },
307
+ intent: "noeffect",
308
+ onClick: ()=>{
309
+ if (!duplicateBusy) setShowDuplicateConfirm(false);
310
+ },
311
+ disabled: duplicateBusy,
312
+ children: t('common.actions.cancel')
313
+ }),
314
+ /*#__PURE__*/ jsx(Button, {
315
+ size: "sm",
316
+ style: {
317
+ minWidth: '80px'
318
+ },
319
+ intent: "primary",
320
+ onClick: handleOnDuplicate,
321
+ disabled: duplicateBusy,
322
+ children: duplicateBusy ? t('documentActions.duplicate.busyButton') : t('common.actions.duplicate')
323
+ })
324
+ ]
325
+ })
326
+ ]
327
+ })
328
+ }),
329
+ /*#__PURE__*/ jsx(Modal, {
330
+ isOpen: showCopyToLocaleConfirm,
331
+ closeOnOverlayClick: !copyToLocaleBusy,
332
+ onDismiss: ()=>{
333
+ if (!copyToLocaleBusy) setShowCopyToLocaleConfirm(false);
334
+ },
335
+ children: /*#__PURE__*/ jsxs(Modal.Container, {
336
+ style: {
337
+ maxWidth: '560px'
338
+ },
339
+ children: [
340
+ /*#__PURE__*/ jsxs(Modal.Header, {
341
+ className: classnames('byline-form-actions-modal-head', document_actions_module["modal-head"]),
342
+ children: [
343
+ /*#__PURE__*/ jsx("h3", {
344
+ className: classnames('byline-form-actions-modal-title', document_actions_module["modal-title"]),
345
+ children: t('documentActions.copyToLocale.title')
346
+ }),
347
+ /*#__PURE__*/ jsx(IconButton, {
348
+ "arial-label": t('common.actions.close'),
349
+ size: "xs",
350
+ onClick: ()=>{
351
+ if (!copyToLocaleBusy) setShowCopyToLocaleConfirm(false);
352
+ },
353
+ children: /*#__PURE__*/ jsx(CloseIcon, {
354
+ width: "16px",
355
+ height: "16px",
356
+ svgClassName: "white-icon"
357
+ })
358
+ })
359
+ ]
360
+ }),
361
+ /*#__PURE__*/ jsxs(Modal.Content, {
362
+ children: [
363
+ /*#__PURE__*/ jsx("p", {
364
+ children: t('documentActions.copyToLocale.intro')
365
+ }),
366
+ /*#__PURE__*/ jsxs("div", {
367
+ className: classnames('byline-form-actions-copy-row', document_actions_module["copy-row"]),
368
+ style: {
369
+ marginTop: 'var(--spacing-12)'
370
+ },
371
+ children: [
372
+ /*#__PURE__*/ jsxs("span", {
373
+ className: classnames('byline-form-actions-copy-label', document_actions_module["copy-label"]),
374
+ style: {
375
+ fontWeight: 500
376
+ },
377
+ children: [
378
+ t('documentActions.copyToLocale.fromLabel'),
379
+ "\xa0"
380
+ ]
381
+ }),
382
+ /*#__PURE__*/ jsx("span", {
383
+ className: classnames('byline-form-actions-copy-source', document_actions_module["copy-source"]),
384
+ children: sourceLocaleLabel
385
+ })
386
+ ]
387
+ }),
388
+ /*#__PURE__*/ jsxs("div", {
389
+ className: classnames('byline-form-actions-copy-row', document_actions_module["copy-row"]),
390
+ style: {
391
+ marginTop: 'var(--spacing-12)'
392
+ },
393
+ children: [
394
+ /*#__PURE__*/ jsx("span", {
395
+ className: classnames('byline-form-actions-copy-label', document_actions_module["copy-label"]),
396
+ style: {
397
+ fontWeight: 500,
398
+ marginRight: 'var(--spacing-8)'
399
+ },
400
+ children: t('documentActions.copyToLocale.toLabel')
401
+ }),
402
+ /*#__PURE__*/ jsx(Select, {
403
+ size: "sm",
404
+ ariaLabel: t('documentActions.copyToLocale.targetAriaLabel'),
405
+ value: copyTargetLocale,
406
+ items: availableTargetLocales.map((loc)=>({
407
+ value: loc.code,
408
+ label: loc.label
409
+ })),
410
+ onValueChange: (value)=>{
411
+ if (null != value) setCopyTargetLocale(value);
412
+ },
413
+ disabled: copyToLocaleBusy
414
+ })
415
+ ]
416
+ }),
417
+ /*#__PURE__*/ jsx("div", {
418
+ className: classnames('byline-form-actions-copy-row', document_actions_module["copy-row"]),
419
+ style: {
420
+ marginTop: 'var(--spacing-16)'
421
+ },
422
+ children: /*#__PURE__*/ jsx(Checkbox, {
423
+ id: "copy-to-locale-overwrite",
424
+ name: "overwrite",
425
+ label: t('documentActions.copyToLocale.overwriteLabel'),
426
+ checked: copyOverwrite,
427
+ disabled: copyToLocaleBusy,
428
+ helpText: t('documentActions.copyToLocale.overwriteHelp'),
429
+ onCheckedChange: (value)=>{
430
+ setCopyOverwrite(true === value);
431
+ }
432
+ })
433
+ })
434
+ ]
435
+ }),
436
+ /*#__PURE__*/ jsxs(Modal.Actions, {
437
+ children: [
438
+ /*#__PURE__*/ jsx("button", {
439
+ "data-autofocus": true,
440
+ type: "button",
441
+ tabIndex: 0,
442
+ className: classnames('byline-form-actions-sr-only', document_actions_module["sr-only"]),
443
+ children: "no action"
444
+ }),
445
+ /*#__PURE__*/ jsx(Button, {
446
+ size: "sm",
447
+ style: {
448
+ minWidth: '80px'
449
+ },
450
+ intent: "noeffect",
451
+ onClick: ()=>{
452
+ if (!copyToLocaleBusy) setShowCopyToLocaleConfirm(false);
453
+ },
454
+ disabled: copyToLocaleBusy,
455
+ children: t('common.actions.cancel')
456
+ }),
457
+ /*#__PURE__*/ jsx(Button, {
458
+ size: "sm",
459
+ style: {
460
+ minWidth: '80px'
461
+ },
462
+ intent: "primary",
463
+ onClick: handleOnCopyToLocale,
464
+ disabled: copyToLocaleBusy || !copyTargetLocale,
465
+ children: copyToLocaleBusy ? t('documentActions.copyToLocale.busyButton') : t('documentActions.copyToLocale.confirmButton')
466
+ })
467
+ ]
468
+ })
469
+ ]
470
+ })
471
+ })
472
+ ]
473
+ });
474
+ }
475
+ export { DocumentActions };
@@ -0,0 +1,34 @@
1
+ import "./document-actions_module.css";
2
+ const document_actions_module = {
3
+ icon: "icon-s8mBo2",
4
+ menu: "menu-IxqAyg",
5
+ item: "item-k3szmy",
6
+ "item-icon": "item-icon-G0Twql",
7
+ itemIcon: "item-icon-G0Twql",
8
+ "item-text": "item-text-QjsRkV",
9
+ itemText: "item-text-QjsRkV",
10
+ delete: "delete-xmSRLN",
11
+ "modal-head": "modal-head-T7hzCI",
12
+ modalHead: "modal-head-T7hzCI",
13
+ "modal-title": "modal-title-e2sqE2",
14
+ modalTitle: "modal-title-e2sqE2",
15
+ "sr-only": "sr-only-VaKvc6",
16
+ srOnly: "sr-only-VaKvc6",
17
+ list: "list-TuqTao",
18
+ preview: "preview-oePPZR",
19
+ "preview-label": "preview-label-bvWDqG",
20
+ previewLabel: "preview-label-bvWDqG",
21
+ "preview-row": "preview-row-NyFKjX",
22
+ previewRow: "preview-row-NyFKjX",
23
+ "preview-before": "preview-before-tmxeNQ",
24
+ previewBefore: "preview-before-tmxeNQ",
25
+ "preview-arrow": "preview-arrow-plq330",
26
+ previewArrow: "preview-arrow-plq330",
27
+ "preview-after": "preview-after-pYlSUr",
28
+ previewAfter: "preview-after-pYlSUr",
29
+ "copy-row": "copy-row-EGqeNw",
30
+ copyRow: "copy-row-EGqeNw",
31
+ "copy-source": "copy-source-IV71b6",
32
+ copySource: "copy-source-IV71b6"
33
+ };
34
+ export default document_actions_module;
@@ -0,0 +1,118 @@
1
+ :is(.icon-s8mBo2, .byline-form-actions-icon) {
2
+ color: var(--primary-500);
3
+ transform: rotate(90deg);
4
+ }
5
+
6
+ :is(.menu-IxqAyg, .byline-form-actions-menu) {
7
+ min-width: 140px;
8
+ }
9
+
10
+ :is(.item-k3szmy, .byline-form-actions-item) {
11
+ margin-left: var(--spacing-8);
12
+ align-items: center;
13
+ display: flex;
14
+ }
15
+
16
+ :is(.item-icon-G0Twql, .byline-form-actions-item-icon) {
17
+ width: 28px;
18
+ display: inline-block;
19
+ }
20
+
21
+ :is(.item-text-QjsRkV, .byline-form-actions-item-text) {
22
+ width: 100%;
23
+ font-size: var(--font-size-sm);
24
+ text-align: left;
25
+ flex: 1;
26
+ display: inline-block;
27
+ }
28
+
29
+ :is(.delete-xmSRLN, .byline-form-actions-delete) {
30
+ width: 100%;
31
+ color: var(--red-600);
32
+ text-align: left;
33
+ cursor: pointer;
34
+ background: none;
35
+ border: none;
36
+ flex: 1;
37
+ padding: 0;
38
+ line-height: 1;
39
+ }
40
+
41
+ :is(.modal-head-T7hzCI, .byline-form-actions-modal-head) {
42
+ margin-bottom: var(--spacing-8);
43
+ padding-top: 1rem;
44
+ }
45
+
46
+ :is(.modal-title-e2sqE2, .byline-form-actions-modal-title) {
47
+ margin: 0 0 var(--spacing-8) 0;
48
+ font-size: var(--font-size-2xl);
49
+ }
50
+
51
+ :is(.sr-only-VaKvc6, .byline-form-actions-sr-only) {
52
+ clip: rect(0, 0, 0, 0);
53
+ white-space: nowrap;
54
+ border: 0;
55
+ width: 1px;
56
+ height: 1px;
57
+ margin: -1px;
58
+ padding: 0;
59
+ position: absolute;
60
+ overflow: hidden;
61
+ }
62
+
63
+ :is(.list-TuqTao, .byline-form-actions-list) {
64
+ margin: var(--spacing-8) 0;
65
+ font-size: var(--font-size-sm);
66
+ padding-left: 1.25rem;
67
+ }
68
+
69
+ :is(.preview-oePPZR, .byline-form-actions-preview) {
70
+ margin-top: var(--spacing-16);
71
+ padding: var(--spacing-8) var(--spacing-12);
72
+ background: var(--surface-2, #00000008);
73
+ border: 1px solid var(--border-subtle, #00000014);
74
+ border-radius: var(--radius-md, 4px);
75
+ font-size: var(--font-size-sm);
76
+ }
77
+
78
+ :is(.preview-label-bvWDqG, .byline-form-actions-preview-label) {
79
+ margin-bottom: var(--spacing-4);
80
+ opacity: .75;
81
+ font-weight: 500;
82
+ }
83
+
84
+ :is(.preview-row-NyFKjX, .byline-form-actions-preview-row) {
85
+ align-items: center;
86
+ gap: var(--spacing-8);
87
+ flex-wrap: wrap;
88
+ display: flex;
89
+ }
90
+
91
+ :is(.preview-before-tmxeNQ, .byline-form-actions-preview-before) {
92
+ font-family: var(--font-mono, monospace);
93
+ opacity: .7;
94
+ }
95
+
96
+ :is(.preview-arrow-plq330, .byline-form-actions-preview-arrow) {
97
+ opacity: .5;
98
+ }
99
+
100
+ :is(.preview-after-pYlSUr, .byline-form-actions-preview-after) {
101
+ font-family: var(--font-mono, monospace);
102
+ font-weight: 500;
103
+ }
104
+
105
+ :is(.copy-row-EGqeNw, .byline-form-actions-copy-row) {
106
+ flex-wrap: wrap;
107
+ align-items: center;
108
+ display: flex;
109
+ }
110
+
111
+ :is(.copy-source-IV71b6, .byline-form-actions-copy-source) {
112
+ font-family: var(--font-mono, monospace);
113
+ }
114
+
115
+ :is(:is([data-theme="dark"], .dark) .delete-xmSRLN, :is([data-theme="dark"], .dark) .byline-form-actions-delete) {
116
+ color: var(--red-400);
117
+ }
118
+