@payloadcms/ui 3.44.0-internal.6b79dc2 → 3.45.0-canary.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 (171) hide show
  1. package/dist/elements/BulkUpload/FileSidebar/index.d.ts.map +1 -1
  2. package/dist/elements/BulkUpload/FileSidebar/index.js +74 -29
  3. package/dist/elements/BulkUpload/FileSidebar/index.js.map +1 -1
  4. package/dist/elements/BulkUpload/FileSidebar/index.scss +5 -4
  5. package/dist/elements/BulkUpload/FormsManager/index.d.ts +0 -1
  6. package/dist/elements/BulkUpload/FormsManager/index.d.ts.map +1 -1
  7. package/dist/elements/BulkUpload/FormsManager/index.js +37 -64
  8. package/dist/elements/BulkUpload/FormsManager/index.js.map +1 -1
  9. package/dist/elements/BulkUpload/FormsManager/reducer.d.ts +1 -0
  10. package/dist/elements/BulkUpload/FormsManager/reducer.d.ts.map +1 -1
  11. package/dist/elements/BulkUpload/FormsManager/reducer.js +1 -0
  12. package/dist/elements/BulkUpload/FormsManager/reducer.js.map +1 -1
  13. package/dist/elements/Button/index.d.ts.map +1 -1
  14. package/dist/elements/Button/index.js +2 -1
  15. package/dist/elements/Button/index.js.map +1 -1
  16. package/dist/elements/Button/index.scss +2 -2
  17. package/dist/elements/DocumentControls/index.d.ts +1 -0
  18. package/dist/elements/DocumentControls/index.d.ts.map +1 -1
  19. package/dist/elements/DocumentControls/index.js +26 -11
  20. package/dist/elements/DocumentControls/index.js.map +1 -1
  21. package/dist/elements/DocumentFields/index.d.ts.map +1 -1
  22. package/dist/elements/DocumentFields/index.js.map +1 -1
  23. package/dist/elements/LeaveWithoutSaving/usePreventLeave.d.ts.map +1 -1
  24. package/dist/elements/LeaveWithoutSaving/usePreventLeave.js +14 -10
  25. package/dist/elements/LeaveWithoutSaving/usePreventLeave.js.map +1 -1
  26. package/dist/elements/LivePreview/Device/index.d.ts +5 -0
  27. package/dist/elements/LivePreview/Device/index.d.ts.map +1 -0
  28. package/dist/elements/LivePreview/Device/index.js +92 -0
  29. package/dist/elements/LivePreview/Device/index.js.map +1 -0
  30. package/dist/elements/LivePreview/DeviceContainer/index.d.ts +5 -0
  31. package/dist/elements/LivePreview/DeviceContainer/index.d.ts.map +1 -0
  32. package/dist/elements/LivePreview/DeviceContainer/index.js +55 -0
  33. package/dist/elements/LivePreview/DeviceContainer/index.js.map +1 -0
  34. package/dist/elements/LivePreview/IFrame/index.d.ts +10 -0
  35. package/dist/elements/LivePreview/IFrame/index.d.ts.map +1 -0
  36. package/dist/elements/LivePreview/IFrame/index.js +30 -0
  37. package/dist/elements/LivePreview/IFrame/index.js.map +1 -0
  38. package/dist/elements/LivePreview/IFrame/index.scss +9 -0
  39. package/dist/elements/LivePreview/Toggler/index.d.ts +4 -0
  40. package/dist/elements/LivePreview/Toggler/index.d.ts.map +1 -0
  41. package/dist/elements/LivePreview/Toggler/index.js +30 -0
  42. package/dist/elements/LivePreview/Toggler/index.js.map +1 -0
  43. package/dist/elements/LivePreview/Toggler/index.scss +48 -0
  44. package/dist/elements/LivePreview/Toolbar/Controls/index.d.ts +5 -0
  45. package/dist/elements/LivePreview/Toolbar/Controls/index.d.ts.map +1 -0
  46. package/dist/elements/LivePreview/Toolbar/Controls/index.js +157 -0
  47. package/dist/elements/LivePreview/Toolbar/Controls/index.js.map +1 -0
  48. package/dist/elements/LivePreview/Toolbar/Controls/index.scss +61 -0
  49. package/dist/elements/LivePreview/Toolbar/SizeInput/index.d.ts +6 -0
  50. package/dist/elements/LivePreview/Toolbar/SizeInput/index.d.ts.map +1 -0
  51. package/dist/elements/LivePreview/Toolbar/SizeInput/index.js +101 -0
  52. package/dist/elements/LivePreview/Toolbar/SizeInput/index.js.map +1 -0
  53. package/dist/elements/LivePreview/Toolbar/SizeInput/index.scss +12 -0
  54. package/dist/elements/LivePreview/Toolbar/index.d.ts +7 -0
  55. package/dist/elements/LivePreview/Toolbar/index.d.ts.map +1 -0
  56. package/dist/elements/LivePreview/Toolbar/index.js +97 -0
  57. package/dist/elements/LivePreview/Toolbar/index.js.map +1 -0
  58. package/dist/elements/LivePreview/Toolbar/index.scss +43 -0
  59. package/dist/elements/LivePreview/ToolbarArea/index.d.ts +6 -0
  60. package/dist/elements/LivePreview/ToolbarArea/index.d.ts.map +1 -0
  61. package/dist/elements/LivePreview/ToolbarArea/index.js +41 -0
  62. package/dist/elements/LivePreview/ToolbarArea/index.js.map +1 -0
  63. package/dist/elements/LivePreview/ToolbarArea/index.scss +6 -0
  64. package/dist/elements/LivePreview/Window/index.d.ts +5 -0
  65. package/dist/elements/LivePreview/Window/index.d.ts.map +1 -0
  66. package/dist/elements/LivePreview/Window/index.js +182 -0
  67. package/dist/elements/LivePreview/Window/index.js.map +1 -0
  68. package/dist/elements/LivePreview/Window/index.scss +48 -0
  69. package/dist/elements/PreviewButton/index.d.ts +1 -0
  70. package/dist/elements/PreviewButton/index.d.ts.map +1 -1
  71. package/dist/elements/PreviewButton/index.js +13 -10
  72. package/dist/elements/PreviewButton/index.js.map +1 -1
  73. package/dist/elements/PreviewButton/index.scss +39 -0
  74. package/dist/elements/PreviewButton/usePreviewURL.d.ts.map +1 -1
  75. package/dist/elements/PreviewButton/usePreviewURL.js +1 -1
  76. package/dist/elements/PreviewButton/usePreviewURL.js.map +1 -1
  77. package/dist/elements/RelationshipTable/AddNewButton.d.ts +17 -0
  78. package/dist/elements/RelationshipTable/AddNewButton.d.ts.map +1 -0
  79. package/dist/elements/RelationshipTable/AddNewButton.js +64 -0
  80. package/dist/elements/RelationshipTable/AddNewButton.js.map +1 -0
  81. package/dist/elements/RelationshipTable/index.d.ts.map +1 -1
  82. package/dist/elements/RelationshipTable/index.js +35 -49
  83. package/dist/elements/RelationshipTable/index.js.map +1 -1
  84. package/dist/elements/RelationshipTable/index.scss +4 -0
  85. package/dist/elements/ShimmerEffect/index.d.ts +2 -0
  86. package/dist/elements/ShimmerEffect/index.d.ts.map +1 -1
  87. package/dist/elements/ShimmerEffect/index.js +5 -3
  88. package/dist/elements/ShimmerEffect/index.js.map +1 -1
  89. package/dist/elements/Table/index.scss +1 -0
  90. package/dist/elements/Thumbnail/createThumbnail.d.ts.map +1 -1
  91. package/dist/elements/Thumbnail/createThumbnail.js +8 -2
  92. package/dist/elements/Thumbnail/createThumbnail.js.map +1 -1
  93. package/dist/exports/client/{CodeEditor-Z3ZZJH7C.js → CodeEditor-YP63NRLU.js} +2 -2
  94. package/dist/exports/client/{chunk-CNCOIY3Y.js → chunk-5EP6VERX.js} +4 -4
  95. package/dist/exports/client/{chunk-CNCOIY3Y.js.map → chunk-5EP6VERX.js.map} +3 -3
  96. package/dist/exports/client/index.d.ts +3 -2
  97. package/dist/exports/client/index.d.ts.map +1 -1
  98. package/dist/exports/client/index.js +22 -22
  99. package/dist/exports/client/index.js.map +4 -4
  100. package/dist/exports/shared/index.js +1 -1
  101. package/dist/exports/shared/index.js.map +2 -2
  102. package/dist/fields/DateTime/index.d.ts.map +1 -1
  103. package/dist/fields/DateTime/index.js +1 -0
  104. package/dist/fields/DateTime/index.js.map +1 -1
  105. package/dist/forms/Form/index.d.ts.map +1 -1
  106. package/dist/forms/Form/index.js +1 -1
  107. package/dist/forms/Form/index.js.map +1 -1
  108. package/dist/forms/Form/mergeServerFormState.js +1 -1
  109. package/dist/forms/Form/mergeServerFormState.js.map +1 -1
  110. package/dist/hooks/usePopupWindow.d.ts +20 -0
  111. package/dist/hooks/usePopupWindow.d.ts.map +1 -0
  112. package/dist/hooks/usePopupWindow.js +144 -0
  113. package/dist/hooks/usePopupWindow.js.map +1 -0
  114. package/dist/icons/ExternalLink/index.d.ts.map +1 -0
  115. package/dist/icons/ExternalLink/index.js.map +1 -0
  116. package/dist/icons/Eye/index.d.ts +7 -0
  117. package/dist/icons/Eye/index.d.ts.map +1 -0
  118. package/dist/icons/Eye/index.js +28 -0
  119. package/dist/icons/Eye/index.js.map +1 -0
  120. package/dist/icons/Eye/index.scss +20 -0
  121. package/dist/providers/ListQuery/types.d.ts +2 -2
  122. package/dist/providers/ListQuery/types.d.ts.map +1 -1
  123. package/dist/providers/ListQuery/types.js.map +1 -1
  124. package/dist/providers/LivePreview/collisionDetection.d.ts +3 -0
  125. package/dist/providers/LivePreview/collisionDetection.d.ts.map +1 -0
  126. package/dist/providers/LivePreview/collisionDetection.js +29 -0
  127. package/dist/providers/LivePreview/collisionDetection.js.map +1 -0
  128. package/dist/providers/LivePreview/context.d.ts +55 -0
  129. package/dist/providers/LivePreview/context.d.ts.map +1 -0
  130. package/dist/providers/LivePreview/context.js +44 -0
  131. package/dist/providers/LivePreview/context.js.map +1 -0
  132. package/dist/providers/LivePreview/index.d.ts +16 -0
  133. package/dist/providers/LivePreview/index.d.ts.map +1 -0
  134. package/dist/providers/LivePreview/index.js +206 -0
  135. package/dist/providers/LivePreview/index.js.map +1 -0
  136. package/dist/providers/LivePreview/index.scss +68 -0
  137. package/dist/providers/LivePreview/sizeReducer.d.ts +20 -0
  138. package/dist/providers/LivePreview/sizeReducer.d.ts.map +1 -0
  139. package/dist/providers/LivePreview/sizeReducer.js +30 -0
  140. package/dist/providers/LivePreview/sizeReducer.js.map +1 -0
  141. package/dist/providers/TableColumns/buildColumnState/index.d.ts +3 -3
  142. package/dist/providers/TableColumns/buildColumnState/index.d.ts.map +1 -1
  143. package/dist/providers/TableColumns/buildColumnState/index.js.map +1 -1
  144. package/dist/providers/TableColumns/getInitialColumns.d.ts +2 -2
  145. package/dist/providers/TableColumns/getInitialColumns.d.ts.map +1 -1
  146. package/dist/providers/TableColumns/getInitialColumns.js.map +1 -1
  147. package/dist/providers/TableColumns/types.d.ts +2 -2
  148. package/dist/providers/TableColumns/types.d.ts.map +1 -1
  149. package/dist/providers/TableColumns/types.js.map +1 -1
  150. package/dist/styles.css +1 -1
  151. package/dist/utilities/buildTableState.d.ts +2 -2
  152. package/dist/utilities/buildTableState.d.ts.map +1 -1
  153. package/dist/utilities/buildTableState.js +4 -4
  154. package/dist/utilities/buildTableState.js.map +1 -1
  155. package/dist/utilities/formatDocTitle/index.js +2 -2
  156. package/dist/utilities/formatDocTitle/index.js.map +1 -1
  157. package/dist/utilities/renderTable.d.ts +3 -3
  158. package/dist/utilities/renderTable.d.ts.map +1 -1
  159. package/dist/utilities/renderTable.js.map +1 -1
  160. package/dist/views/Edit/index.d.ts.map +1 -1
  161. package/dist/views/Edit/index.js +52 -41
  162. package/dist/views/Edit/index.js.map +1 -1
  163. package/dist/views/Edit/index.scss +39 -1
  164. package/package.json +4 -4
  165. package/dist/elements/BulkUpload/index.scss +0 -0
  166. package/dist/graphics/ExternalLink/index.d.ts.map +0 -1
  167. package/dist/graphics/ExternalLink/index.js.map +0 -1
  168. /package/dist/exports/client/{CodeEditor-Z3ZZJH7C.js.map → CodeEditor-YP63NRLU.js.map} +0 -0
  169. /package/dist/{graphics → icons}/ExternalLink/index.d.ts +0 -0
  170. /package/dist/{graphics → icons}/ExternalLink/index.js +0 -0
  171. /package/dist/{graphics → icons}/ExternalLink/index.scss +0 -0
@@ -0,0 +1,157 @@
1
+ 'use client';
2
+
3
+ import { c as _c } from "react/compiler-runtime";
4
+ import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
5
+ import React from 'react';
6
+ import { ChevronIcon } from '../../../../icons/Chevron/index.js';
7
+ import { ExternalLinkIcon } from '../../../../icons/ExternalLink/index.js';
8
+ import { XIcon } from '../../../../icons/X/index.js';
9
+ import { useLivePreviewContext } from '../../../../providers/LivePreview/context.js';
10
+ import { useTranslation } from '../../../../providers/Translation/index.js';
11
+ import { Popup, PopupList } from '../../../Popup/index.js';
12
+ import { PreviewFrameSizeInput } from '../SizeInput/index.js';
13
+ import './index.scss';
14
+ const baseClass = 'live-preview-toolbar-controls';
15
+ const zoomOptions = [50, 75, 100, 125, 150, 200];
16
+ export const ToolbarControls = () => {
17
+ const $ = _c(14);
18
+ const {
19
+ breakpoint,
20
+ breakpoints,
21
+ setBreakpoint,
22
+ setPreviewWindowType,
23
+ setZoom,
24
+ url,
25
+ zoom
26
+ } = useLivePreviewContext();
27
+ const {
28
+ t
29
+ } = useTranslation();
30
+ let t0;
31
+ if ($[0] !== breakpoint || $[1] !== breakpoints || $[2] !== setBreakpoint || $[3] !== setPreviewWindowType || $[4] !== setZoom || $[5] !== t || $[6] !== url || $[7] !== zoom) {
32
+ const customOption = {
33
+ label: t("general:custom"),
34
+ value: "custom"
35
+ };
36
+ let t2;
37
+ if ($[9] !== setZoom || $[10] !== zoom) {
38
+ t2 = t3 => {
39
+ const {
40
+ close: close_0
41
+ } = t3;
42
+ return _jsx(PopupList.ButtonGroup, {
43
+ children: _jsx(React.Fragment, {
44
+ children: zoomOptions.map(zoomValue => _jsxs(PopupList.Button, {
45
+ active: zoom * 100 == zoomValue,
46
+ onClick: () => {
47
+ setZoom(zoomValue / 100);
48
+ close_0();
49
+ },
50
+ children: [zoomValue, "%"]
51
+ }, zoomValue))
52
+ })
53
+ });
54
+ };
55
+ $[9] = setZoom;
56
+ $[10] = zoom;
57
+ $[11] = t2;
58
+ } else {
59
+ t2 = $[11];
60
+ }
61
+ let t3;
62
+ if ($[12] !== setPreviewWindowType) {
63
+ t3 = e => {
64
+ e.preventDefault();
65
+ setPreviewWindowType("popup");
66
+ };
67
+ $[12] = setPreviewWindowType;
68
+ $[13] = t3;
69
+ } else {
70
+ t3 = $[13];
71
+ }
72
+ t0 = _jsxs("div", {
73
+ className: baseClass,
74
+ children: [breakpoints?.length > 0 && _jsx(Popup, {
75
+ button: _jsxs(React.Fragment, {
76
+ children: [_jsx("span", {
77
+ children: breakpoints.find(bp => bp.name == breakpoint)?.label ?? customOption.label
78
+ }), _jsx(ChevronIcon, {
79
+ className: `${baseClass}__chevron`
80
+ })]
81
+ }),
82
+ className: `${baseClass}__breakpoint`,
83
+ horizontalAlign: "right",
84
+ render: t1 => {
85
+ const {
86
+ close
87
+ } = t1;
88
+ return _jsx(PopupList.ButtonGroup, {
89
+ children: _jsxs(React.Fragment, {
90
+ children: [breakpoints.map(bp_0 => _jsx(PopupList.Button, {
91
+ active: bp_0.name == breakpoint,
92
+ onClick: () => {
93
+ setBreakpoint(bp_0.name);
94
+ close();
95
+ },
96
+ children: bp_0.label
97
+ }, bp_0.name)), breakpoint === "custom" && _jsx(PopupList.Button, {
98
+ active: breakpoint == customOption.value,
99
+ onClick: () => {
100
+ setBreakpoint(customOption.value);
101
+ close();
102
+ },
103
+ children: customOption.label
104
+ })]
105
+ })
106
+ });
107
+ },
108
+ showScrollbar: true,
109
+ verticalAlign: "bottom"
110
+ }), _jsxs("div", {
111
+ className: `${baseClass}__device-size`,
112
+ children: [_jsx(PreviewFrameSizeInput, {
113
+ axis: "x"
114
+ }), _jsx("span", {
115
+ className: `${baseClass}__size-divider`,
116
+ children: _jsx(XIcon, {})
117
+ }), _jsx(PreviewFrameSizeInput, {
118
+ axis: "y"
119
+ })]
120
+ }), _jsx(Popup, {
121
+ button: _jsxs(React.Fragment, {
122
+ children: [_jsxs("span", {
123
+ children: [zoom * 100, "%"]
124
+ }), _jsx(ChevronIcon, {
125
+ className: `${baseClass}__chevron`
126
+ })]
127
+ }),
128
+ className: `${baseClass}__zoom`,
129
+ horizontalAlign: "right",
130
+ render: t2,
131
+ showScrollbar: true,
132
+ verticalAlign: "bottom"
133
+ }), _jsx("a", {
134
+ className: `${baseClass}__external`,
135
+ href: url,
136
+ onClick: t3,
137
+ target: "_blank",
138
+ title: "Open in new window",
139
+ type: "button",
140
+ children: _jsx(ExternalLinkIcon, {})
141
+ })]
142
+ });
143
+ $[0] = breakpoint;
144
+ $[1] = breakpoints;
145
+ $[2] = setBreakpoint;
146
+ $[3] = setPreviewWindowType;
147
+ $[4] = setZoom;
148
+ $[5] = t;
149
+ $[6] = url;
150
+ $[7] = zoom;
151
+ $[8] = t0;
152
+ } else {
153
+ t0 = $[8];
154
+ }
155
+ return t0;
156
+ };
157
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","names":["c","_c","React","ChevronIcon","ExternalLinkIcon","XIcon","useLivePreviewContext","useTranslation","Popup","PopupList","PreviewFrameSizeInput","baseClass","zoomOptions","ToolbarControls","$","breakpoint","breakpoints","setBreakpoint","setPreviewWindowType","setZoom","url","zoom","t","t0","customOption","label","value","t2","t3","close","close_0","_jsx","ButtonGroup","children","Fragment","map","zoomValue","_jsxs","Button","active","onClick","e","preventDefault","className","length","button","find","bp","name","horizontalAlign","render","t1","bp_0","axis","href","target","title","type"],"sources":["../../../../../src/elements/LivePreview/Toolbar/Controls/index.tsx"],"sourcesContent":["'use client'\n\nimport type { EditViewProps } from 'payload'\n\nimport React from 'react'\n\nimport { ChevronIcon } from '../../../../icons/Chevron/index.js'\nimport { ExternalLinkIcon } from '../../../../icons/ExternalLink/index.js'\nimport { XIcon } from '../../../../icons/X/index.js'\nimport { useLivePreviewContext } from '../../../../providers/LivePreview/context.js'\nimport { useTranslation } from '../../../../providers/Translation/index.js'\nimport { Popup, PopupList } from '../../../Popup/index.js'\nimport { PreviewFrameSizeInput } from '../SizeInput/index.js'\nimport './index.scss'\n\nconst baseClass = 'live-preview-toolbar-controls'\nconst zoomOptions = [50, 75, 100, 125, 150, 200]\n\nexport const ToolbarControls: React.FC<EditViewProps> = () => {\n const { breakpoint, breakpoints, setBreakpoint, setPreviewWindowType, setZoom, url, zoom } =\n useLivePreviewContext()\n\n const { t } = useTranslation()\n\n const customOption = {\n label: t('general:custom'),\n value: 'custom',\n }\n\n return (\n <div className={baseClass}>\n {breakpoints?.length > 0 && (\n <Popup\n button={\n <React.Fragment>\n <span>\n {breakpoints.find((bp) => bp.name == breakpoint)?.label ?? customOption.label}\n </span>\n <ChevronIcon className={`${baseClass}__chevron`} />\n </React.Fragment>\n }\n className={`${baseClass}__breakpoint`}\n horizontalAlign=\"right\"\n render={({ close }) => (\n <PopupList.ButtonGroup>\n <React.Fragment>\n {breakpoints.map((bp) => (\n <PopupList.Button\n active={bp.name == breakpoint}\n key={bp.name}\n onClick={() => {\n setBreakpoint(bp.name)\n close()\n }}\n >\n {bp.label}\n </PopupList.Button>\n ))}\n {/* Dynamically add this option so that it only appears when the width and height inputs are explicitly changed */}\n {breakpoint === 'custom' && (\n <PopupList.Button\n active={breakpoint == customOption.value}\n onClick={() => {\n setBreakpoint(customOption.value)\n close()\n }}\n >\n {customOption.label}\n </PopupList.Button>\n )}\n </React.Fragment>\n </PopupList.ButtonGroup>\n )}\n showScrollbar\n verticalAlign=\"bottom\"\n />\n )}\n <div className={`${baseClass}__device-size`}>\n <PreviewFrameSizeInput axis=\"x\" />\n <span className={`${baseClass}__size-divider`}>\n <XIcon />\n </span>\n <PreviewFrameSizeInput axis=\"y\" />\n </div>\n <Popup\n button={\n <React.Fragment>\n <span>{zoom * 100}%</span>\n <ChevronIcon className={`${baseClass}__chevron`} />\n </React.Fragment>\n }\n className={`${baseClass}__zoom`}\n horizontalAlign=\"right\"\n render={({ close }) => (\n <PopupList.ButtonGroup>\n <React.Fragment>\n {zoomOptions.map((zoomValue) => (\n <PopupList.Button\n active={zoom * 100 == zoomValue}\n key={zoomValue}\n onClick={() => {\n setZoom(zoomValue / 100)\n close()\n }}\n >\n {zoomValue}%\n </PopupList.Button>\n ))}\n </React.Fragment>\n </PopupList.ButtonGroup>\n )}\n showScrollbar\n verticalAlign=\"bottom\"\n />\n <a\n className={`${baseClass}__external`}\n href={url}\n onClick={(e) => {\n e.preventDefault()\n setPreviewWindowType('popup')\n }}\n target=\"_blank\"\n title=\"Open in new window\"\n type=\"button\"\n >\n <ExternalLinkIcon />\n </a>\n </div>\n )\n}\n"],"mappings":"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","ignoreList":[]}
@@ -0,0 +1,61 @@
1
+ @import '../../../../scss/styles.scss';
2
+
3
+ @layer payload-default {
4
+ .live-preview-toolbar-controls {
5
+ display: flex;
6
+ align-items: center;
7
+ gap: calc(var(--base) / 3);
8
+
9
+ &__breakpoint {
10
+ border: none;
11
+ background: transparent;
12
+ height: var(--base);
13
+
14
+ &:focus {
15
+ outline: none;
16
+ }
17
+ }
18
+
19
+ &__device-size {
20
+ display: flex;
21
+ align-items: center;
22
+ }
23
+
24
+ &__size {
25
+ width: 50px;
26
+ height: var(--base);
27
+ display: flex;
28
+ align-items: center;
29
+ border: 1px solid var(--theme-elevation-200);
30
+ background: var(--theme-elevation-100);
31
+ border-radius: 2px;
32
+ font-size: small;
33
+ }
34
+
35
+ &__zoom {
36
+ width: 55px;
37
+ border: none;
38
+ background: transparent;
39
+ height: var(--base);
40
+
41
+ &:focus {
42
+ outline: none;
43
+ }
44
+ }
45
+
46
+ &__external {
47
+ flex-shrink: 0;
48
+ display: flex;
49
+ width: var(--base);
50
+ height: var(--base);
51
+ align-items: center;
52
+ justify-content: center;
53
+ padding: 6px 0;
54
+ }
55
+
56
+ .popup-button {
57
+ display: flex;
58
+ align-items: center;
59
+ }
60
+ }
61
+ }
@@ -0,0 +1,6 @@
1
+ import React from 'react';
2
+ import './index.scss';
3
+ export declare const PreviewFrameSizeInput: React.FC<{
4
+ axis?: 'x' | 'y';
5
+ }>;
6
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../../src/elements/LivePreview/Toolbar/SizeInput/index.tsx"],"names":[],"mappings":"AACA,OAAO,KAAiC,MAAM,OAAO,CAAA;AAGrD,OAAO,cAAc,CAAA;AAIrB,eAAO,MAAM,qBAAqB,EAAE,KAAK,CAAC,EAAE,CAAC;IAC3C,IAAI,CAAC,EAAE,GAAG,GAAG,GAAG,CAAA;CACjB,CA+DA,CAAA"}
@@ -0,0 +1,101 @@
1
+ 'use client';
2
+
3
+ import { c as _c } from "react/compiler-runtime";
4
+ import { jsx as _jsx } from "react/jsx-runtime";
5
+ import React, { useCallback, useEffect } from 'react';
6
+ import { useLivePreviewContext } from '../../../../providers/LivePreview/context.js';
7
+ import './index.scss';
8
+ const baseClass = 'toolbar-input';
9
+ export const PreviewFrameSizeInput = props => {
10
+ const $ = _c(18);
11
+ const {
12
+ axis
13
+ } = props;
14
+ const {
15
+ breakpoint,
16
+ measuredDeviceSize,
17
+ setBreakpoint,
18
+ setSize,
19
+ size,
20
+ zoom
21
+ } = useLivePreviewContext();
22
+ const [internalState, setInternalState] = React.useState((axis === "x" ? measuredDeviceSize?.width : measuredDeviceSize?.height) || 0);
23
+ let t0;
24
+ if ($[0] !== axis || $[1] !== measuredDeviceSize?.height || $[2] !== measuredDeviceSize?.width || $[3] !== setBreakpoint || $[4] !== setSize || $[5] !== zoom) {
25
+ t0 = e => {
26
+ let newValue = Number(e.target.value);
27
+ if (newValue < 0) {
28
+ newValue = 0;
29
+ }
30
+ setInternalState(newValue);
31
+ setBreakpoint("custom");
32
+ setSize({
33
+ type: "reset",
34
+ value: {
35
+ height: axis === "y" ? newValue : Number(measuredDeviceSize?.height.toFixed(0)) * zoom,
36
+ width: axis === "x" ? newValue : Number(measuredDeviceSize?.width.toFixed(0)) * zoom
37
+ }
38
+ });
39
+ };
40
+ $[0] = axis;
41
+ $[1] = measuredDeviceSize?.height;
42
+ $[2] = measuredDeviceSize?.width;
43
+ $[3] = setBreakpoint;
44
+ $[4] = setSize;
45
+ $[5] = zoom;
46
+ $[6] = t0;
47
+ } else {
48
+ t0 = $[6];
49
+ }
50
+ const handleChange = t0;
51
+ let t1;
52
+ let t2;
53
+ if ($[7] !== axis || $[8] !== breakpoint || $[9] !== measuredDeviceSize || $[10] !== size || $[11] !== zoom) {
54
+ t1 = () => {
55
+ if (breakpoint === "responsive" && measuredDeviceSize) {
56
+ if (axis === "x") {
57
+ setInternalState(Number(measuredDeviceSize.width.toFixed(0)) * zoom);
58
+ } else {
59
+ setInternalState(Number(measuredDeviceSize.height.toFixed(0)) * zoom);
60
+ }
61
+ }
62
+ if (breakpoint !== "responsive" && size) {
63
+ setInternalState(axis === "x" ? size.width : size.height);
64
+ }
65
+ };
66
+ t2 = [breakpoint, axis, measuredDeviceSize, size, zoom];
67
+ $[7] = axis;
68
+ $[8] = breakpoint;
69
+ $[9] = measuredDeviceSize;
70
+ $[10] = size;
71
+ $[11] = zoom;
72
+ $[12] = t1;
73
+ $[13] = t2;
74
+ } else {
75
+ t1 = $[12];
76
+ t2 = $[13];
77
+ }
78
+ useEffect(t1, t2);
79
+ const t3 = axis === "x" ? "live-preview-width" : "live-preview-height";
80
+ const t4 = internalState || 0;
81
+ let t5;
82
+ if ($[14] !== handleChange || $[15] !== t3 || $[16] !== t4) {
83
+ t5 = _jsx("input", {
84
+ className: baseClass,
85
+ min: 0,
86
+ name: t3,
87
+ onChange: handleChange,
88
+ step: 1,
89
+ type: "number",
90
+ value: t4
91
+ });
92
+ $[14] = handleChange;
93
+ $[15] = t3;
94
+ $[16] = t4;
95
+ $[17] = t5;
96
+ } else {
97
+ t5 = $[17];
98
+ }
99
+ return t5;
100
+ };
101
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","names":["c","_c","React","useCallback","useEffect","useLivePreviewContext","baseClass","PreviewFrameSizeInput","props","$","axis","breakpoint","measuredDeviceSize","setBreakpoint","setSize","size","zoom","internalState","setInternalState","useState","width","height","t0","e","newValue","Number","target","value","type","toFixed","handleChange","t1","t2","t3","t4","t5","_jsx","className","min","name","onChange","step"],"sources":["../../../../../src/elements/LivePreview/Toolbar/SizeInput/index.tsx"],"sourcesContent":["'use client'\nimport React, { useCallback, useEffect } from 'react'\n\nimport { useLivePreviewContext } from '../../../../providers/LivePreview/context.js'\nimport './index.scss'\n\nconst baseClass = 'toolbar-input'\n\nexport const PreviewFrameSizeInput: React.FC<{\n axis?: 'x' | 'y'\n}> = (props) => {\n const { axis } = props\n\n const { breakpoint, measuredDeviceSize, setBreakpoint, setSize, size, zoom } =\n useLivePreviewContext()\n\n const [internalState, setInternalState] = React.useState<number>(\n (axis === 'x' ? measuredDeviceSize?.width : measuredDeviceSize?.height) || 0,\n )\n\n // when the input is changed manually, we need to set the breakpoint as `custom`\n // this will then allow us to set an explicit width and height\n const handleChange = useCallback(\n (e: React.ChangeEvent<HTMLInputElement>) => {\n let newValue = Number(e.target.value)\n\n if (newValue < 0) {\n newValue = 0\n }\n\n setInternalState(newValue)\n setBreakpoint('custom')\n\n // be sure to set _both_ axis values to so that the other axis doesn't fallback to 0 on initial change\n // this is because the `responsive` size is '100%' in CSS, and `0` in initial state\n setSize({\n type: 'reset',\n value: {\n height: axis === 'y' ? newValue : Number(measuredDeviceSize?.height.toFixed(0)) * zoom,\n width: axis === 'x' ? newValue : Number(measuredDeviceSize?.width.toFixed(0)) * zoom,\n },\n })\n },\n [axis, setBreakpoint, measuredDeviceSize, setSize, zoom],\n )\n\n // if the breakpoint is `responsive` then the device's div will have `100%` width and height\n // so we need to take the measurements provided by `actualDeviceSize` and sync internal state\n useEffect(() => {\n if (breakpoint === 'responsive' && measuredDeviceSize) {\n if (axis === 'x') {\n setInternalState(Number(measuredDeviceSize.width.toFixed(0)) * zoom)\n } else {\n setInternalState(Number(measuredDeviceSize.height.toFixed(0)) * zoom)\n }\n }\n\n if (breakpoint !== 'responsive' && size) {\n setInternalState(axis === 'x' ? size.width : size.height)\n }\n }, [breakpoint, axis, measuredDeviceSize, size, zoom])\n\n return (\n <input\n className={baseClass}\n min={0}\n name={axis === 'x' ? 'live-preview-width' : 'live-preview-height'}\n onChange={handleChange}\n step={1}\n type=\"number\"\n value={internalState || 0}\n />\n )\n}\n"],"mappings":"AAAA;;AAAA,SAAAA,CAAA,IAAAC,EAAA;;AACA,OAAOC,KAAA,IAASC,WAAW,EAAEC,SAAS,QAAQ;AAE9C,SAASC,qBAAqB,QAAQ;AACtC,OAAO;AAEP,MAAMC,SAAA,GAAY;AAElB,OAAO,MAAMC,qBAAA,GAERC,KAAA;EAAA,MAAAC,CAAA,GAAAR,EAAA;EACH;IAAAS;EAAA,IAAiBF,KAAA;EAEjB;IAAAG,UAAA;IAAAC,kBAAA;IAAAC,aAAA;IAAAC,OAAA;IAAAC,IAAA;IAAAC;EAAA,IACEX,qBAAA;EAEF,OAAAY,aAAA,EAAAC,gBAAA,IAA0ChB,KAAA,CAAAiB,QAAA,CACxC,CAACT,IAAA,KAAS,MAAME,kBAAA,EAAAQ,KAAA,GAA4BR,kBAAA,EAAAS,MAAyB,MAAM;EAAA,IAAAC,EAAA;EAAA,IAAAb,CAAA,QAAAC,IAAA,IAAAD,CAAA,QAAAG,kBAAA,EAAAS,MAAA,IAAAZ,CAAA,QAAAG,kBAAA,EAAAQ,KAAA,IAAAX,CAAA,QAAAI,aAAA,IAAAJ,CAAA,QAAAK,OAAA,IAAAL,CAAA,QAAAO,IAAA;IAM3EM,EAAA,GAAAC,CAAA;MACE,IAAAC,QAAA,GAAeC,MAAA,CAAOF,CAAA,CAAAG,MAAA,CAAAC,KAAc;MAAA,IAEhCH,QAAA,IAAW;QACbA,QAAA,CAAAA,CAAA,CAAAA,CAAA;MAAA;MAGFN,gBAAA,CAAiBM,QAAA;MACjBX,aAAA,CAAc;MAIdC,OAAA;QAAAc,IAAA,EACQ;QAAAD,KAAA;UAAAN,MAAA,EAEIX,IAAA,KAAS,MAAMc,QAAA,GAAWC,MAAA,CAAOb,kBAAA,EAAAS,MAAA,CAAAQ,OAAA,GAAmC,IAAMb,IAAA;UAAAI,KAAA,EAC3EV,IAAA,KAAS,MAAMc,QAAA,GAAWC,MAAA,CAAOb,kBAAA,EAAAQ,KAAA,CAAAS,OAAA,GAAkC,IAAMb;QAAA;MAAA,CAEpF;IAAA;IACFP,CAAA,MAAAC,IAAA;IAAAD,CAAA,MAAAG,kBAAA,EAAAS,MAAA;IAAAZ,CAAA,MAAAG,kBAAA,EAAAQ,KAAA;IAAAX,CAAA,MAAAI,aAAA;IAAAJ,CAAA,MAAAK,OAAA;IAAAL,CAAA,MAAAO,IAAA;IAAAP,CAAA,MAAAa,EAAA;EAAA;IAAAA,EAAA,GAAAb,CAAA;EAAA;EApBF,MAAAqB,YAAA,GAAqBR,EAqBqC;EAAA,IAAAS,EAAA;EAAA,IAAAC,EAAA;EAAA,IAAAvB,CAAA,QAAAC,IAAA,IAAAD,CAAA,QAAAE,UAAA,IAAAF,CAAA,QAAAG,kBAAA,IAAAH,CAAA,SAAAM,IAAA,IAAAN,CAAA,SAAAO,IAAA;IAKhDe,EAAA,GAAAA,CAAA;MAAA,IACJpB,UAAA,KAAe,gBAAgBC,kBAAA;QAAA,IAC7BF,IAAA,KAAS;UACXQ,gBAAA,CAAiBO,MAAA,CAAOb,kBAAA,CAAAQ,KAAA,CAAAS,OAAA,EAAiC,KAAMb,IAAA;QAAA;UAE/DE,gBAAA,CAAiBO,MAAA,CAAOb,kBAAA,CAAAS,MAAA,CAAAQ,OAAA,EAAkC,KAAMb,IAAA;QAAA;MAAA;MAAA,IAIhEL,UAAA,KAAe,gBAAgBI,IAAA;QACjCG,gBAAA,CAAiBR,IAAA,KAAS,MAAMK,IAAA,CAAAK,KAAA,GAAaL,IAAA,CAAAM,MAAW;MAAA;IAAA;IAEzDW,EAAA,IAACrB,UAAA,EAAYD,IAAA,EAAME,kBAAA,EAAoBG,IAAA,EAAMC,IAAA;IAAKP,CAAA,MAAAC,IAAA;IAAAD,CAAA,MAAAE,UAAA;IAAAF,CAAA,MAAAG,kBAAA;IAAAH,CAAA,OAAAM,IAAA;IAAAN,CAAA,OAAAO,IAAA;IAAAP,CAAA,OAAAsB,EAAA;IAAAtB,CAAA,OAAAuB,EAAA;EAAA;IAAAD,EAAA,GAAAtB,CAAA;IAAAuB,EAAA,GAAAvB,CAAA;EAAA;EAZrDL,SAAA,CAAU2B,EAYV,EAAGC,EAAkD;EAM3C,MAAAC,EAAA,GAAAvB,IAAA,KAAS,MAAM,uBAAuB;EAIrC,MAAAwB,EAAA,GAAAjB,aAAA,KAAiB;EAAA,IAAAkB,EAAA;EAAA,IAAA1B,CAAA,SAAAqB,YAAA,IAAArB,CAAA,SAAAwB,EAAA,IAAAxB,CAAA,SAAAyB,EAAA;IAP1BC,EAAA,GAAAC,IAAA,CAAC;MAAAC,SAAA,EAAA/B,SAAA;MAAAgC,GAAA;MAAAC,IAAA,EAGON,EAAsC;MAAAO,QAAA,EAClCV,YAAA;MAAAW,IAAA;MAAAb,IAAA,EAEL;MAAAD,KAAA,EACEO;IAAiB,C;;;;;;;;SAP1BC,E;CAUJ","ignoreList":[]}
@@ -0,0 +1,12 @@
1
+ @layer payload-default {
2
+ .toolbar-input {
3
+ width: 50px;
4
+ height: var(--base);
5
+ display: flex;
6
+ align-items: center;
7
+ border: 1px solid var(--theme-elevation-200);
8
+ background: var(--theme-elevation-100);
9
+ border-radius: 2px;
10
+ font-size: small;
11
+ }
12
+ }
@@ -0,0 +1,7 @@
1
+ import type { EditViewProps } from 'payload';
2
+ import React from 'react';
3
+ import './index.scss';
4
+ export declare const LivePreviewToolbar: React.FC<{
5
+ draggable?: boolean;
6
+ } & EditViewProps>;
7
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../src/elements/LivePreview/Toolbar/index.tsx"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,SAAS,CAAA;AAG5C,OAAO,KAAK,MAAM,OAAO,CAAA;AAKzB,OAAO,cAAc,CAAA;AAgDrB,eAAO,MAAM,kBAAkB,EAAE,KAAK,CAAC,EAAE,CACvC;IACE,SAAS,CAAC,EAAE,OAAO,CAAA;CACpB,GAAG,aAAa,CASlB,CAAA"}
@@ -0,0 +1,97 @@
1
+ 'use client';
2
+
3
+ import { c as _c } from "react/compiler-runtime";
4
+ import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
5
+ import { useDraggable } from '@dnd-kit/core';
6
+ import React from 'react';
7
+ import { DragHandleIcon } from '../../../icons/DragHandle/index.js';
8
+ import { useLivePreviewContext } from '../../../providers/LivePreview/context.js';
9
+ import { ToolbarControls } from './Controls/index.js';
10
+ import './index.scss';
11
+ const baseClass = 'live-preview-toolbar';
12
+ const DraggableToolbar = props => {
13
+ const $ = _c(10);
14
+ const {
15
+ toolbarPosition
16
+ } = useLivePreviewContext();
17
+ let t0;
18
+ if ($[0] === Symbol.for("react.memo_cache_sentinel")) {
19
+ t0 = {
20
+ id: "live-preview-toolbar"
21
+ };
22
+ $[0] = t0;
23
+ } else {
24
+ t0 = $[0];
25
+ }
26
+ const {
27
+ attributes,
28
+ listeners,
29
+ setNodeRef,
30
+ transform
31
+ } = useDraggable(t0);
32
+ let t1;
33
+ if ($[1] === Symbol.for("react.memo_cache_sentinel")) {
34
+ t1 = [baseClass, `${baseClass}--draggable`];
35
+ $[1] = t1;
36
+ } else {
37
+ t1 = $[1];
38
+ }
39
+ const t2 = `${toolbarPosition.x}px`;
40
+ const t3 = `${toolbarPosition.y}px`;
41
+ let t4;
42
+ if ($[2] !== attributes || $[3] !== listeners || $[4] !== props || $[5] !== setNodeRef || $[6] !== t2 || $[7] !== t3 || $[8] !== transform) {
43
+ t4 = _jsxs("div", {
44
+ className: t1.join(" "),
45
+ style: {
46
+ left: t2,
47
+ top: t3,
48
+ ...(transform ? {
49
+ transform: transform ? `translate3d(${transform?.x || 0}px, ${transform?.y || 0}px, 0)` : undefined
50
+ } : {})
51
+ },
52
+ children: [_jsx("button", {
53
+ ...listeners,
54
+ ...attributes,
55
+ className: `${baseClass}__drag-handle`,
56
+ ref: setNodeRef,
57
+ type: "button",
58
+ children: _jsx(DragHandleIcon, {})
59
+ }), _jsx(ToolbarControls, {
60
+ ...props
61
+ })]
62
+ });
63
+ $[2] = attributes;
64
+ $[3] = listeners;
65
+ $[4] = props;
66
+ $[5] = setNodeRef;
67
+ $[6] = t2;
68
+ $[7] = t3;
69
+ $[8] = transform;
70
+ $[9] = t4;
71
+ } else {
72
+ t4 = $[9];
73
+ }
74
+ return t4;
75
+ };
76
+ const StaticToolbar = props => {
77
+ return /*#__PURE__*/_jsx("div", {
78
+ className: [baseClass, `${baseClass}--static`].join(' '),
79
+ children: /*#__PURE__*/_jsx(ToolbarControls, {
80
+ ...props
81
+ })
82
+ });
83
+ };
84
+ export const LivePreviewToolbar = props => {
85
+ const {
86
+ draggable
87
+ } = props;
88
+ if (draggable) {
89
+ return /*#__PURE__*/_jsx(DraggableToolbar, {
90
+ ...props
91
+ });
92
+ }
93
+ return /*#__PURE__*/_jsx(StaticToolbar, {
94
+ ...props
95
+ });
96
+ };
97
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","names":["c","_c","useDraggable","React","DragHandleIcon","useLivePreviewContext","ToolbarControls","baseClass","DraggableToolbar","props","$","toolbarPosition","t0","Symbol","for","id","attributes","listeners","setNodeRef","transform","t1","t2","x","t3","y","t4","_jsxs","className","join","style","left","top","undefined","children","_jsx","ref","type","StaticToolbar","LivePreviewToolbar","draggable"],"sources":["../../../../src/elements/LivePreview/Toolbar/index.tsx"],"sourcesContent":["'use client'\nimport type { EditViewProps } from 'payload'\n\nimport { useDraggable } from '@dnd-kit/core'\nimport React from 'react'\n\nimport { DragHandleIcon } from '../../../icons/DragHandle/index.js'\nimport { useLivePreviewContext } from '../../../providers/LivePreview/context.js'\nimport { ToolbarControls } from './Controls/index.js'\nimport './index.scss'\n\nconst baseClass = 'live-preview-toolbar'\n\nconst DraggableToolbar: React.FC<EditViewProps> = (props) => {\n const { toolbarPosition } = useLivePreviewContext()\n\n const { attributes, listeners, setNodeRef, transform } = useDraggable({\n id: 'live-preview-toolbar',\n })\n\n return (\n <div\n className={[baseClass, `${baseClass}--draggable`].join(' ')}\n style={{\n left: `${toolbarPosition.x}px`,\n top: `${toolbarPosition.y}px`,\n ...(transform\n ? {\n transform: transform\n ? `translate3d(${transform?.x || 0}px, ${transform?.y || 0}px, 0)`\n : undefined,\n }\n : {}),\n }}\n >\n <button\n {...listeners}\n {...attributes}\n className={`${baseClass}__drag-handle`}\n ref={setNodeRef}\n type=\"button\"\n >\n <DragHandleIcon />\n </button>\n <ToolbarControls {...props} />\n </div>\n )\n}\n\nconst StaticToolbar: React.FC<EditViewProps> = (props) => {\n return (\n <div className={[baseClass, `${baseClass}--static`].join(' ')}>\n <ToolbarControls {...props} />\n </div>\n )\n}\n\nexport const LivePreviewToolbar: React.FC<\n {\n draggable?: boolean\n } & EditViewProps\n> = (props) => {\n const { draggable } = props\n\n if (draggable) {\n return <DraggableToolbar {...props} />\n }\n\n return <StaticToolbar {...props} />\n}\n"],"mappings":"AAAA;;AAAA,SAAAA,CAAA,IAAAC,EAAA;;AAGA,SAASC,YAAY,QAAQ;AAC7B,OAAOC,KAAA,MAAW;AAElB,SAASC,cAAc,QAAQ;AAC/B,SAASC,qBAAqB,QAAQ;AACtC,SAASC,eAAe,QAAQ;AAChC,OAAO;AAEP,MAAMC,SAAA,GAAY;AAElB,MAAMC,gBAAA,GAA4CC,KAAA;EAAA,MAAAC,CAAA,GAAAT,EAAA;EAChD;IAAAU;EAAA,IAA4BN,qBAAA;EAAA,IAAAO,EAAA;EAAA,IAAAF,CAAA,QAAAG,MAAA,CAAAC,GAAA;IAE0CF,EAAA;MAAAG,EAAA,EAChE;IAAA;IACNL,CAAA,MAAAE,EAAA;EAAA;IAAAA,EAAA,GAAAF,CAAA;EAAA;EAFA;IAAAM,UAAA;IAAAC,SAAA;IAAAC,UAAA;IAAAC;EAAA,IAAyDjB,YAAA,CAAaU,EAEtE;EAAA,IAAAQ,EAAA;EAAA,IAAAV,CAAA,QAAAG,MAAA,CAAAC,GAAA;IAIeM,EAAA,IAAAb,SAAA,EAAY,GAAAA,SAAA,aAAyB;IAACG,CAAA,MAAAU,EAAA;EAAA;IAAAA,EAAA,GAAAV,CAAA;EAAA;EAEzC,MAAAW,EAAA,MAAGV,eAAA,CAAAW,CAAA,IAAqB;EACzB,MAAAC,EAAA,MAAGZ,eAAA,CAAAa,CAAA,IAAqB;EAAA,IAAAC,EAAA;EAAA,IAAAf,CAAA,QAAAM,UAAA,IAAAN,CAAA,QAAAO,SAAA,IAAAP,CAAA,QAAAD,KAAA,IAAAC,CAAA,QAAAQ,UAAA,IAAAR,CAAA,QAAAW,EAAA,IAAAX,CAAA,QAAAa,EAAA,IAAAb,CAAA,QAAAS,SAAA;IAJjCM,EAAA,GAAAC,KAAA,CAAC;MAAAC,SAAA,EACYP,EAAsC,CAAAQ,IAAA,CAAM;MAAAC,KAAA;QAAAC,IAAA,EAE/CT,EAAwB;QAAAU,GAAA,EACzBR,EAAwB;QAAA,IACzBJ,SAAA;UAAAA,SAAA,EAEaA,SAAA,GACP,eAAeA,SAAA,EAAAG,CAAA,KAAgB,OAAQH,SAAA,EAAAK,CAAA,KAAgB,QAAS,GAAAQ;QAChE,MAEJ;MAAA;MAAAC,QAAA,GAGRC,IAAA,CAAC;QAAA,GACKjB,SAAS;QAAA,GACTD,UAAU;QAAAW,SAAA,EACH,GAAApB,SAAA,eAA2B;QAAA4B,GAAA,EACjCjB,UAAA;QAAAkB,IAAA,EACA;QAAAH,QAAA,EAELC,IAAA,CAAA9B,cAAA,IAAC;MAAA,C,GAEH8B,IAAA,CAAA5B,eAAA;QAAA,GAAqBG;MAAK,C;;;;;;;;;;;;;SAvB5BgB,E;CA0BJ;AAEA,MAAMY,aAAA,GAA0C5B,KAAA;EAC9C,oBACEyB,IAAA,CAAC;IAAIP,SAAA,EAAW,CAACpB,SAAA,EAAW,GAAGA,SAAA,UAAmB,CAAC,CAACqB,IAAI,CAAC;cACvD,aAAAM,IAAA,CAAC5B,eAAA;MAAiB,GAAGG;;;AAG3B;AAEA,OAAO,MAAM6B,kBAAA,GAIR7B,KAAA;EACH,MAAM;IAAE8B;EAAS,CAAE,GAAG9B,KAAA;EAEtB,IAAI8B,SAAA,EAAW;IACb,oBAAOL,IAAA,CAAC1B,gBAAA;MAAkB,GAAGC;;EAC/B;EAEA,oBAAOyB,IAAA,CAACG,aAAA;IAAe,GAAG5B;;AAC5B","ignoreList":[]}
@@ -0,0 +1,43 @@
1
+ @import '../../../scss/styles.scss';
2
+
3
+ @layer payload-default {
4
+ .live-preview-toolbar {
5
+ display: flex;
6
+ background-color: var(--theme-bg);
7
+ color: var(--theme-text);
8
+ height: calc(var(--base) * 1.75);
9
+ align-items: center;
10
+ flex-shrink: 0;
11
+
12
+ &--static {
13
+ position: relative;
14
+ width: 100%;
15
+ justify-content: center;
16
+ border-bottom: 1px solid var(--theme-elevation-100);
17
+ }
18
+
19
+ &--draggable {
20
+ @include shadow-lg;
21
+ position: absolute;
22
+ top: 0;
23
+ left: 0;
24
+ margin: 0;
25
+ border-radius: 4px;
26
+ }
27
+
28
+ &__drag-handle {
29
+ background: transparent;
30
+ border: 0;
31
+ padding: 0;
32
+ cursor: grab;
33
+
34
+ .icon--drag-handle .fill {
35
+ fill: var(--theme-elevation-300);
36
+ }
37
+
38
+ &:active {
39
+ cursor: grabbing;
40
+ }
41
+ }
42
+ }
43
+ }
@@ -0,0 +1,6 @@
1
+ import React from 'react';
2
+ import './index.scss';
3
+ export declare const ToolbarArea: React.FC<{
4
+ children: React.ReactNode;
5
+ }>;
6
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../src/elements/LivePreview/ToolbarArea/index.tsx"],"names":[],"mappings":"AAEA,OAAO,KAAK,MAAM,OAAO,CAAA;AAEzB,OAAO,cAAc,CAAA;AAIrB,eAAO,MAAM,WAAW,EAAE,KAAK,CAAC,EAAE,CAAC;IACjC,QAAQ,EAAE,KAAK,CAAC,SAAS,CAAA;CAC1B,CAYA,CAAA"}
@@ -0,0 +1,41 @@
1
+ 'use client';
2
+
3
+ import { c as _c } from "react/compiler-runtime";
4
+ import { jsx as _jsx } from "react/jsx-runtime";
5
+ import { useDroppable } from '@dnd-kit/core';
6
+ import React from 'react';
7
+ import './index.scss';
8
+ const baseClass = 'toolbar-area';
9
+ export const ToolbarArea = props => {
10
+ const $ = _c(4);
11
+ const {
12
+ children
13
+ } = props;
14
+ let t0;
15
+ if ($[0] === Symbol.for("react.memo_cache_sentinel")) {
16
+ t0 = {
17
+ id: "live-preview-area"
18
+ };
19
+ $[0] = t0;
20
+ } else {
21
+ t0 = $[0];
22
+ }
23
+ const {
24
+ setNodeRef
25
+ } = useDroppable(t0);
26
+ let t1;
27
+ if ($[1] !== children || $[2] !== setNodeRef) {
28
+ t1 = _jsx("div", {
29
+ className: baseClass,
30
+ ref: setNodeRef,
31
+ children
32
+ });
33
+ $[1] = children;
34
+ $[2] = setNodeRef;
35
+ $[3] = t1;
36
+ } else {
37
+ t1 = $[3];
38
+ }
39
+ return t1;
40
+ };
41
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","names":["c","_c","useDroppable","React","baseClass","ToolbarArea","props","$","children","t0","Symbol","for","id","setNodeRef","t1","_jsx","className","ref"],"sources":["../../../../src/elements/LivePreview/ToolbarArea/index.tsx"],"sourcesContent":["'use client'\nimport { useDroppable } from '@dnd-kit/core'\nimport React from 'react'\n\nimport './index.scss'\n\nconst baseClass = 'toolbar-area'\n\nexport const ToolbarArea: React.FC<{\n children: React.ReactNode\n}> = (props) => {\n const { children } = props\n\n const { setNodeRef } = useDroppable({\n id: 'live-preview-area',\n })\n\n return (\n <div className={baseClass} ref={setNodeRef}>\n {children}\n </div>\n )\n}\n"],"mappings":"AAAA;;AAAA,SAAAA,CAAA,IAAAC,EAAA;;AACA,SAASC,YAAY,QAAQ;AAC7B,OAAOC,KAAA,MAAW;AAElB,OAAO;AAEP,MAAMC,SAAA,GAAY;AAElB,OAAO,MAAMC,WAAA,GAERC,KAAA;EAAA,MAAAC,CAAA,GAAAN,EAAA;EACH;IAAAO;EAAA,IAAqBF,KAAA;EAAA,IAAAG,EAAA;EAAA,IAAAF,CAAA,QAAAG,MAAA,CAAAC,GAAA;IAEeF,EAAA;MAAAG,EAAA,EAC9B;IAAA;IACNL,CAAA,MAAAE,EAAA;EAAA;IAAAA,EAAA,GAAAF,CAAA;EAAA;EAFA;IAAAM;EAAA,IAAuBX,YAAA,CAAaO,EAEpC;EAAA,IAAAK,EAAA;EAAA,IAAAP,CAAA,QAAAC,QAAA,IAAAD,CAAA,QAAAM,UAAA;IAGEC,EAAA,GAAAC,IAAA,CAAC;MAAAC,SAAA,EAAAZ,SAAA;MAAAa,GAAA,EAA+BJ,UAAA;MAAAL;IAAA,C;;;;;;;SAAhCM,E;CAIJ","ignoreList":[]}
@@ -0,0 +1,6 @@
1
+ @layer payload-default {
2
+ .toolbar-area {
3
+ width: 100%;
4
+ height: 100%;
5
+ }
6
+ }
@@ -0,0 +1,5 @@
1
+ import type { EditViewProps } from 'payload';
2
+ import React from 'react';
3
+ import './index.scss';
4
+ export declare const LivePreviewWindow: React.FC<EditViewProps>;
5
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../src/elements/LivePreview/Window/index.tsx"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,SAAS,CAAA;AAG5C,OAAO,KAAoB,MAAM,OAAO,CAAA;AAUxC,OAAO,cAAc,CAAA;AAIrB,eAAO,MAAM,iBAAiB,EAAE,KAAK,CAAC,EAAE,CAAC,aAAa,CA+HrD,CAAA"}