@bigbinary/neeto-molecules 5.1.17 → 5.1.19

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 (136) hide show
  1. package/dist/{Columns-gR00LMKF.js → Columns-BFBWAHqh.js} +2 -20
  2. package/dist/Columns-BFBWAHqh.js.map +1 -0
  3. package/dist/EmailForm.js +2 -0
  4. package/dist/EmailForm.js.map +1 -1
  5. package/dist/EmailPreview.js +1 -20
  6. package/dist/EmailPreview.js.map +1 -1
  7. package/dist/GoogleFontPicker.js +1 -449
  8. package/dist/GoogleFontPicker.js.map +1 -1
  9. package/dist/IconPicker.js +6 -914
  10. package/dist/IconPicker.js.map +1 -1
  11. package/dist/SendToFields.js +3 -1943
  12. package/dist/SendToFields.js.map +1 -1
  13. package/dist/ShareViaEmail.js +2 -0
  14. package/dist/ShareViaEmail.js.map +1 -1
  15. package/dist/avatar-placeholder-DEjUhVlU.js +23 -0
  16. package/dist/avatar-placeholder-DEjUhVlU.js.map +1 -0
  17. package/dist/cjs/{Columns-Brpr2a_M.js → Columns-CHOsnC9n.js} +3 -21
  18. package/dist/cjs/Columns-CHOsnC9n.js.map +1 -0
  19. package/dist/cjs/EmailForm.js +2 -0
  20. package/dist/cjs/EmailForm.js.map +1 -1
  21. package/dist/cjs/EmailPreview.js +2 -39
  22. package/dist/cjs/EmailPreview.js.map +1 -1
  23. package/dist/cjs/GoogleFontPicker.js +9 -457
  24. package/dist/cjs/GoogleFontPicker.js.map +1 -1
  25. package/dist/cjs/IconPicker.js +6 -914
  26. package/dist/cjs/IconPicker.js.map +1 -1
  27. package/dist/cjs/SendToFields.js +4 -1944
  28. package/dist/cjs/SendToFields.js.map +1 -1
  29. package/dist/cjs/ShareViaEmail.js +2 -0
  30. package/dist/cjs/ShareViaEmail.js.map +1 -1
  31. package/dist/cjs/avatar-placeholder-CSJpe1V0.js +44 -0
  32. package/dist/cjs/avatar-placeholder-CSJpe1V0.js.map +1 -0
  33. package/dist/cjs/download-B53zeKGa.js +21 -0
  34. package/dist/cjs/download-B53zeKGa.js.map +1 -0
  35. package/dist/cjs/grip-vertical-7cfWc2sE.js +24 -0
  36. package/dist/cjs/grip-vertical-7cfWc2sE.js.map +1 -0
  37. package/dist/cjs/index.es-Bcx0v5Pd.js +454 -0
  38. package/dist/cjs/index.es-Bcx0v5Pd.js.map +1 -0
  39. package/dist/cjs/index.esm-Bb1Vtlp2.js +919 -0
  40. package/dist/cjs/index.esm-Bb1Vtlp2.js.map +1 -0
  41. package/dist/cjs/papaparse-B5u_uWB3.js +1948 -0
  42. package/dist/cjs/papaparse-B5u_uWB3.js.map +1 -0
  43. package/dist/cjs/upload-C5ZnN-d5.js +21 -0
  44. package/dist/cjs/upload-C5ZnN-d5.js.map +1 -0
  45. package/dist/cjs/v2/BrowserPreview.js +51 -0
  46. package/dist/cjs/v2/BrowserPreview.js.map +1 -0
  47. package/dist/cjs/v2/Builder.js +872 -0
  48. package/dist/cjs/v2/Builder.js.map +1 -0
  49. package/dist/cjs/v2/CalendarView.js +3 -1
  50. package/dist/cjs/v2/CalendarView.js.map +1 -1
  51. package/dist/cjs/v2/Codeblock.js +62 -0
  52. package/dist/cjs/v2/Codeblock.js.map +1 -0
  53. package/dist/cjs/v2/Columns.js +2 -1
  54. package/dist/cjs/v2/Columns.js.map +1 -1
  55. package/dist/cjs/v2/Currency.js +920 -0
  56. package/dist/cjs/v2/Currency.js.map +1 -0
  57. package/dist/cjs/v2/DeleteArchiveModal.js +91 -0
  58. package/dist/cjs/v2/DeleteArchiveModal.js.map +1 -0
  59. package/dist/cjs/v2/DownloadMobileAppCallout.js +43 -0
  60. package/dist/cjs/v2/DownloadMobileAppCallout.js.map +1 -0
  61. package/dist/cjs/v2/EmailForm.js +622 -0
  62. package/dist/cjs/v2/EmailForm.js.map +1 -0
  63. package/dist/cjs/v2/EmailPreview.js +138 -0
  64. package/dist/cjs/v2/EmailPreview.js.map +1 -0
  65. package/dist/cjs/v2/EmojiReactions.js +82 -0
  66. package/dist/cjs/v2/EmojiReactions.js.map +1 -0
  67. package/dist/cjs/v2/FileUpload.js +5 -19
  68. package/dist/cjs/v2/FileUpload.js.map +1 -1
  69. package/dist/cjs/v2/GoogleFontPicker.js +130 -0
  70. package/dist/cjs/v2/GoogleFontPicker.js.map +1 -0
  71. package/dist/cjs/v2/IconPicker.js +274 -0
  72. package/dist/cjs/v2/IconPicker.js.map +1 -0
  73. package/dist/cjs/v2/SendToFields.js +313 -0
  74. package/dist/cjs/v2/SendToFields.js.map +1 -0
  75. package/dist/cjs/v2/SubHeader.js +6 -19
  76. package/dist/cjs/v2/SubHeader.js.map +1 -1
  77. package/dist/download-CZ7Q6k7-.js +19 -0
  78. package/dist/download-CZ7Q6k7-.js.map +1 -0
  79. package/dist/grip-vertical-FEAaqOeC.js +22 -0
  80. package/dist/grip-vertical-FEAaqOeC.js.map +1 -0
  81. package/dist/index.es-BQ-dr8y1.js +451 -0
  82. package/dist/index.es-BQ-dr8y1.js.map +1 -0
  83. package/dist/index.esm-DLni3-hz.js +917 -0
  84. package/dist/index.esm-DLni3-hz.js.map +1 -0
  85. package/dist/papaparse-p7fkGgWo.js +1946 -0
  86. package/dist/papaparse-p7fkGgWo.js.map +1 -0
  87. package/dist/upload-BNvlRoRJ.js +19 -0
  88. package/dist/upload-BNvlRoRJ.js.map +1 -0
  89. package/dist/v2/BrowserPreview.js +49 -0
  90. package/dist/v2/BrowserPreview.js.map +1 -0
  91. package/dist/v2/Builder.js +864 -0
  92. package/dist/v2/Builder.js.map +1 -0
  93. package/dist/v2/CalendarView.js +3 -1
  94. package/dist/v2/CalendarView.js.map +1 -1
  95. package/dist/v2/Codeblock.js +60 -0
  96. package/dist/v2/Codeblock.js.map +1 -0
  97. package/dist/v2/Columns.js +2 -1
  98. package/dist/v2/Columns.js.map +1 -1
  99. package/dist/v2/Currency.js +917 -0
  100. package/dist/v2/Currency.js.map +1 -0
  101. package/dist/v2/DeleteArchiveModal.js +89 -0
  102. package/dist/v2/DeleteArchiveModal.js.map +1 -0
  103. package/dist/v2/DownloadMobileAppCallout.js +41 -0
  104. package/dist/v2/DownloadMobileAppCallout.js.map +1 -0
  105. package/dist/v2/EmailForm.js +596 -0
  106. package/dist/v2/EmailForm.js.map +1 -0
  107. package/dist/v2/EmailPreview.js +136 -0
  108. package/dist/v2/EmailPreview.js.map +1 -0
  109. package/dist/v2/EmojiReactions.js +80 -0
  110. package/dist/v2/EmojiReactions.js.map +1 -0
  111. package/dist/v2/FileUpload.js +4 -18
  112. package/dist/v2/FileUpload.js.map +1 -1
  113. package/dist/v2/GoogleFontPicker.js +128 -0
  114. package/dist/v2/GoogleFontPicker.js.map +1 -0
  115. package/dist/v2/IconPicker.js +272 -0
  116. package/dist/v2/IconPicker.js.map +1 -0
  117. package/dist/v2/SendToFields.js +311 -0
  118. package/dist/v2/SendToFields.js.map +1 -0
  119. package/dist/v2/SubHeader.js +5 -18
  120. package/dist/v2/SubHeader.js.map +1 -1
  121. package/package.json +9 -9
  122. package/types/v2/BrowserPreview.d.ts +9 -0
  123. package/types/v2/Builder.d.ts +71 -0
  124. package/types/v2/Codeblock.d.ts +12 -0
  125. package/types/v2/Currency.d.ts +12 -0
  126. package/types/v2/DeleteArchiveModal.d.ts +16 -0
  127. package/types/v2/DownloadMobileAppCallout.d.ts +7 -0
  128. package/types/v2/EmailForm.d.ts +88 -0
  129. package/types/v2/EmailFormProvider.d.ts +29 -0
  130. package/types/v2/EmailPreview.d.ts +16 -0
  131. package/types/v2/EmojiReactions.d.ts +22 -0
  132. package/types/v2/GoogleFontPicker.d.ts +19 -0
  133. package/types/v2/IconPicker.d.ts +11 -0
  134. package/types/v2/SendToFields.d.ts +25 -0
  135. package/dist/Columns-gR00LMKF.js.map +0 -1
  136. package/dist/cjs/Columns-Brpr2a_M.js.map +0 -1
@@ -0,0 +1,864 @@
1
+ import _slicedToArray from '@babel/runtime/helpers/slicedToArray';
2
+ import { memo, createElement, useState, useMemo, useRef, useEffect } from 'react';
3
+ import { Typography, Tooltip, Button, Input } from '@bigbinary/neeto-atoms';
4
+ import classnames from 'classnames';
5
+ import { noop, isPresent, isNotEmpty, findById, hyphenate } from '@bigbinary/neeto-cist';
6
+ import useBreakpoints from '@bigbinary/neeto-commons-frontend/v2/react-utils/useBreakpoints';
7
+ import _defineProperty from '@babel/runtime/helpers/defineProperty';
8
+ import { joinHyphenCase, withEventTargetValue } from '@bigbinary/neeto-commons-frontend/v2/utils/general';
9
+ import { isEmpty, assoc, mergeRight } from 'ramda';
10
+ import { useTranslation } from 'react-i18next';
11
+ import { Draggable, Droppable } from '@hello-pangea/dnd';
12
+ import { withT } from '@bigbinary/neeto-commons-frontend/v2/react-utils';
13
+ import { jsx, jsxs, Fragment } from 'react/jsx-runtime';
14
+ import { G as GripVertical } from '../grip-vertical-FEAaqOeC.js';
15
+ import { X } from '../x-B1Er0oV4.js';
16
+ import _objectWithoutProperties from '@babel/runtime/helpers/objectWithoutProperties';
17
+ import { S as Search } from '../search-DCgpNjip.js';
18
+ import MoreDropdown from './MoreDropdown.js';
19
+ import { PLURAL } from '@bigbinary/neeto-commons-frontend/v2/constants';
20
+ import { P as Plus } from '../plus-clM1IC_E.js';
21
+ import { c as createLucideIcon } from '../createLucideIcon-mNMhCCpf.js';
22
+ import '../ellipsis-DpI9xqUK.js';
23
+
24
+ /**
25
+ * @license lucide-react v1.7.0 - ISC
26
+ *
27
+ * This source code is licensed under the ISC license.
28
+ * See the LICENSE file in the root directory of this source tree.
29
+ */
30
+
31
+
32
+ const __iconNode$2 = [
33
+ ["path", { d: "M12 5v14", key: "s699le" }],
34
+ ["path", { d: "m19 12-7 7-7-7", key: "1idqje" }]
35
+ ];
36
+ const ArrowDown = createLucideIcon("arrow-down", __iconNode$2);
37
+
38
+ /**
39
+ * @license lucide-react v1.7.0 - ISC
40
+ *
41
+ * This source code is licensed under the ISC license.
42
+ * See the LICENSE file in the root directory of this source tree.
43
+ */
44
+
45
+
46
+ const __iconNode$1 = [
47
+ ["rect", { width: "18", height: "18", x: "3", y: "3", rx: "2", key: "afitv7" }],
48
+ ["path", { d: "M9 3v18", key: "fh3hqa" }],
49
+ ["path", { d: "m16 15-3-3 3-3", key: "14y99z" }]
50
+ ];
51
+ const PanelLeftClose = createLucideIcon("panel-left-close", __iconNode$1);
52
+
53
+ /**
54
+ * @license lucide-react v1.7.0 - ISC
55
+ *
56
+ * This source code is licensed under the ISC license.
57
+ * See the LICENSE file in the root directory of this source tree.
58
+ */
59
+
60
+
61
+ const __iconNode = [
62
+ [
63
+ "path",
64
+ {
65
+ d: "M4 14a1 1 0 0 1-.78-1.63l9.9-10.2a.5.5 0 0 1 .86.46l-1.92 6.02A1 1 0 0 0 13 10h7a1 1 0 0 1 .78 1.63l-9.9 10.2a.5.5 0 0 1-.86-.46l1.92-6.02A1 1 0 0 0 11 14z",
66
+ key: "1xq2db"
67
+ }
68
+ ]
69
+ ];
70
+ const Zap = createLucideIcon("zap", __iconNode);
71
+
72
+ var PANEL_TYPES = {
73
+ SUMMARY: "summary",
74
+ ELEMENTS: "elements"
75
+ };
76
+ var SELECTED_ELEMENTS_LIST_DROPPABLE_ID = "droppable-selected-element-container";
77
+ var ELEMENTS_LIST_DROPPABLE_ID = "droppable-element-container";
78
+ var PREVIEW_CONTAINER_DROPPABLE_ID = "droppable-form-preview-container";
79
+ var DROPPABLE_TYPES = {
80
+ ELEMENT: "element",
81
+ SELECTED_ELEMENT: "selected_element"
82
+ };
83
+
84
+ var NoResults = withT(function (_ref) {
85
+ var t = _ref.t;
86
+ return /*#__PURE__*/jsx(Typography, {
87
+ className: "text-foreground flex h-full items-center justify-center text-base",
88
+ weight: "bold",
89
+ children: t("neetoMolecules.builderSidebar.noElements")
90
+ });
91
+ });
92
+ var NoResults$1 = /*#__PURE__*/memo(NoResults);
93
+
94
+ var Element = function Element(_ref) {
95
+ var label = _ref.label,
96
+ description = _ref.description,
97
+ tooltip = _ref.tooltip,
98
+ Icon = _ref.icon,
99
+ _ref$isCreatable = _ref.isCreatable,
100
+ isCreatable = _ref$isCreatable === void 0 ? true : _ref$isCreatable,
101
+ onClick = _ref.onClick,
102
+ _ref$isDragDisabled = _ref.isDragDisabled,
103
+ isDragDisabled = _ref$isDragDisabled === void 0 ? false : _ref$isDragDisabled,
104
+ disabledElementTooltip = _ref.disabledElementTooltip,
105
+ isPlaceholder = _ref.isPlaceholder,
106
+ isDraggingOver = _ref.isDraggingOver,
107
+ isAddingNewElement = _ref.isAddingNewElement;
108
+ var handleClick = function handleClick(event) {
109
+ if (!isCreatable || isAddingNewElement) {
110
+ event.preventDefault();
111
+ return;
112
+ }
113
+ onClick(event);
114
+ };
115
+ var tooltipContent = isCreatable ? tooltip : disabledElementTooltip === null || disabledElementTooltip === void 0 ? void 0 : disabledElementTooltip(label);
116
+ return /*#__PURE__*/jsx(Tooltip, {
117
+ content: tooltipContent,
118
+ disabled: isDraggingOver || !tooltipContent,
119
+ position: "top",
120
+ children: /*#__PURE__*/jsxs("div", {
121
+ "data-testid": "add-".concat(joinHyphenCase(label), "-element"),
122
+ className: classnames("border-border bg-background hover:bg-muted relative mb-2 flex items-center gap-2 rounded-lg border p-3 transition-all duration-300 ease-in-out", {
123
+ "bg-muted cursor-not-allowed": !isCreatable,
124
+ "cursor-pointer": isCreatable,
125
+ "opacity-50": isPlaceholder,
126
+ "h-10": !description
127
+ }),
128
+ onClick: handleClick,
129
+ children: [!isDragDisabled && /*#__PURE__*/jsx("span", {
130
+ className: "absolute end-full top-1/2 me-0.5 flex-shrink-0 -translate-y-1/2 cursor-grab",
131
+ "data-testid": "drag-handle",
132
+ children: /*#__PURE__*/jsx(GripVertical, {
133
+ className: "text-muted-foreground hover:text-foreground transition-all duration-300 ease-in-out",
134
+ size: 16
135
+ })
136
+ }), /*#__PURE__*/jsxs("div", {
137
+ className: "flex flex-grow items-center gap-2",
138
+ children: [Icon && /*#__PURE__*/jsx(Icon, {
139
+ "data-testid": "form-icon"
140
+ }), /*#__PURE__*/jsxs("div", {
141
+ className: "flex min-w-0 flex-col",
142
+ children: [/*#__PURE__*/jsx(Typography, {
143
+ className: "leading-4",
144
+ variant: "body2",
145
+ children: label
146
+ }), description && /*#__PURE__*/jsx(Typography, {
147
+ className: "text-muted-foreground mt-0.5",
148
+ "data-testid": "element-description",
149
+ variant: "body3",
150
+ children: description
151
+ })]
152
+ })]
153
+ })]
154
+ })
155
+ });
156
+ };
157
+
158
+ function ownKeys$5(e, r) { var t = Object.keys(e); if (Object.getOwnPropertySymbols) { var o = Object.getOwnPropertySymbols(e); r && (o = o.filter(function (r) { return Object.getOwnPropertyDescriptor(e, r).enumerable; })), t.push.apply(t, o); } return t; }
159
+ function _objectSpread$5(e) { for (var r = 1; r < arguments.length; r++) { var t = null != arguments[r] ? arguments[r] : {}; r % 2 ? ownKeys$5(Object(t), true).forEach(function (r) { _defineProperty(e, r, t[r]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(e, Object.getOwnPropertyDescriptors(t)) : ownKeys$5(Object(t)).forEach(function (r) { Object.defineProperty(e, r, Object.getOwnPropertyDescriptor(t, r)); }); } return e; }
160
+ var ElementContainer = function ElementContainer(_ref) {
161
+ var index = _ref.index,
162
+ isDragDisabled = _ref.isDragDisabled,
163
+ element = _ref.element,
164
+ disabledElementTooltip = _ref.disabledElementTooltip,
165
+ isCreatable = _ref.isCreatable,
166
+ onSelect = _ref.onSelect,
167
+ isDraggingOver = _ref.isDraggingOver,
168
+ isAddingNewElement = _ref.isAddingNewElement,
169
+ setVisiblePanel = _ref.setVisiblePanel;
170
+ var isCreatableElement = typeof isCreatable === "function" ? isCreatable(element.value) : true;
171
+ if (isDragDisabled) {
172
+ return /*#__PURE__*/jsx(Element, _objectSpread$5(_objectSpread$5({}, _objectSpread$5(_objectSpread$5({}, element), {}, {
173
+ disabledElementTooltip: disabledElementTooltip,
174
+ isAddingNewElement: isAddingNewElement,
175
+ isDragDisabled: isDragDisabled,
176
+ setVisiblePanel: setVisiblePanel
177
+ })), {}, {
178
+ isCreatable: isCreatableElement,
179
+ onClick: function onClick() {
180
+ return onSelect(element);
181
+ }
182
+ }));
183
+ }
184
+ return /*#__PURE__*/createElement(Draggable, {
185
+ index: index,
186
+ draggableId: element.value,
187
+ key: element.label,
188
+ isDragDisabled: isDragDisabled || !isCreatableElement || isAddingNewElement
189
+ }, function (provided, snapshot) {
190
+ return /*#__PURE__*/jsxs(Fragment, {
191
+ children: [/*#__PURE__*/jsx("div", _objectSpread$5(_objectSpread$5(_objectSpread$5({
192
+ ref: provided.innerRef
193
+ }, provided.draggableProps), provided.dragHandleProps), {}, {
194
+ style: _objectSpread$5(_objectSpread$5({}, provided.draggableProps.style), !snapshot.isDragging && {
195
+ transform: "none"
196
+ }),
197
+ children: /*#__PURE__*/jsx(Element, _objectSpread$5(_objectSpread$5({}, _objectSpread$5(_objectSpread$5({}, element), {}, {
198
+ disabledElementTooltip: disabledElementTooltip,
199
+ isAddingNewElement: isAddingNewElement,
200
+ isDragDisabled: isDragDisabled,
201
+ isDraggingOver: isDraggingOver,
202
+ setVisiblePanel: setVisiblePanel
203
+ })), {}, {
204
+ isCreatable: isCreatableElement,
205
+ onClick: function onClick() {
206
+ return onSelect(element);
207
+ }
208
+ }))
209
+ })), snapshot.isDragging && /*#__PURE__*/jsx(Element, _objectSpread$5(_objectSpread$5({
210
+ disabledElementTooltip: null
211
+ }, _objectSpread$5(_objectSpread$5({}, element), {}, {
212
+ isAddingNewElement: isAddingNewElement,
213
+ setVisiblePanel: setVisiblePanel
214
+ })), {}, {
215
+ isCreatable: false,
216
+ onClick: noop
217
+ }))]
218
+ });
219
+ });
220
+ };
221
+
222
+ var Section = function Section(_ref) {
223
+ var title = _ref.title,
224
+ elements = _ref.elements,
225
+ onSelect = _ref.onSelect,
226
+ isCreatable = _ref.isCreatable,
227
+ disabledElementTooltip = _ref.disabledElementTooltip,
228
+ isDragDisabled = _ref.isDragElementsDisabled,
229
+ isDraggingOver = _ref.isDraggingOver,
230
+ isAddingNewElement = _ref.isAddingNewElement,
231
+ setVisiblePanel = _ref.setVisiblePanel;
232
+ if (isEmpty(elements)) {
233
+ return null;
234
+ }
235
+ return /*#__PURE__*/jsxs(Fragment, {
236
+ children: [title && /*#__PURE__*/jsx(Typography, {
237
+ className: "mt-1 mb-3",
238
+ children: title
239
+ }), elements.map(function (element) {
240
+ return /*#__PURE__*/createElement(ElementContainer, {
241
+ disabledElementTooltip: disabledElementTooltip,
242
+ element: element,
243
+ isAddingNewElement: isAddingNewElement,
244
+ isCreatable: isCreatable,
245
+ isDragDisabled: isDragDisabled,
246
+ isDraggingOver: isDraggingOver,
247
+ onSelect: onSelect,
248
+ setVisiblePanel: setVisiblePanel,
249
+ index: element.elementIndex,
250
+ key: element.label
251
+ });
252
+ })]
253
+ });
254
+ };
255
+
256
+ function ownKeys$4(e, r) { var t = Object.keys(e); if (Object.getOwnPropertySymbols) { var o = Object.getOwnPropertySymbols(e); r && (o = o.filter(function (r) { return Object.getOwnPropertyDescriptor(e, r).enumerable; })), t.push.apply(t, o); } return t; }
257
+ function _objectSpread$4(e) { for (var r = 1; r < arguments.length; r++) { var t = null != arguments[r] ? arguments[r] : {}; r % 2 ? ownKeys$4(Object(t), true).forEach(function (r) { _defineProperty(e, r, t[r]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(e, Object.getOwnPropertyDescriptors(t)) : ownKeys$4(Object(t)).forEach(function (r) { Object.defineProperty(e, r, Object.getOwnPropertyDescriptor(t, r)); }); } return e; }
258
+ var SectionsContainer = function SectionsContainer(_ref) {
259
+ var isDragElementsDisabled = _ref.isDragElementsDisabled,
260
+ filteredSections = _ref.filteredSections,
261
+ isAddingNewElement = _ref.isAddingNewElement,
262
+ onSelect = _ref.onSelect,
263
+ setVisiblePanel = _ref.setVisiblePanel;
264
+ if (isEmpty(filteredSections)) {
265
+ return /*#__PURE__*/jsx(NoResults$1, {});
266
+ }
267
+ if (isDragElementsDisabled) {
268
+ return /*#__PURE__*/jsx(Fragment, {
269
+ children: filteredSections.map(function (section) {
270
+ return /*#__PURE__*/createElement(Section, _objectSpread$4(_objectSpread$4({}, _objectSpread$4({
271
+ isAddingNewElement: isAddingNewElement,
272
+ isDragElementsDisabled: isDragElementsDisabled,
273
+ onSelect: onSelect,
274
+ setVisiblePanel: setVisiblePanel
275
+ }, section)), {}, {
276
+ key: section.key
277
+ }));
278
+ })
279
+ });
280
+ }
281
+ return /*#__PURE__*/jsx(Droppable, {
282
+ droppableId: ELEMENTS_LIST_DROPPABLE_ID,
283
+ type: DROPPABLE_TYPES.ELEMENT,
284
+ children: function children(provided, snapshot) {
285
+ return /*#__PURE__*/jsx("div", {
286
+ ref: provided.innerRef,
287
+ children: filteredSections.map(function (section) {
288
+ return /*#__PURE__*/createElement(Section, _objectSpread$4(_objectSpread$4({}, _objectSpread$4({
289
+ isAddingNewElement: isAddingNewElement,
290
+ isDragElementsDisabled: isDragElementsDisabled,
291
+ onSelect: onSelect,
292
+ setVisiblePanel: setVisiblePanel
293
+ }, section)), {}, {
294
+ isDraggingOver: snapshot.isDraggingOver,
295
+ key: section.key
296
+ }));
297
+ })
298
+ });
299
+ }
300
+ });
301
+ };
302
+
303
+ var TitleBar$1 = withT(function (_ref) {
304
+ var t = _ref.t,
305
+ setVisiblePanel = _ref.setVisiblePanel;
306
+ return /*#__PURE__*/jsxs("div", {
307
+ className: "flex items-center justify-between p-6 pb-1",
308
+ "data-testid": "elements-panel-title",
309
+ children: [/*#__PURE__*/jsx(Typography, {
310
+ className: "leading-normal",
311
+ "data-testid": "elements-list-title",
312
+ variant: "h3",
313
+ weight: "semibold",
314
+ children: t("neetoMolecules.builderSidebar.addNewElement")
315
+ }), /*#__PURE__*/jsx(Button, {
316
+ "data-testid": "cancel-button",
317
+ icon: X,
318
+ size: "icon",
319
+ variant: "ghost",
320
+ onClick: function onClick() {
321
+ return setVisiblePanel(PANEL_TYPES.SUMMARY);
322
+ }
323
+ })]
324
+ });
325
+ });
326
+
327
+ var _excluded$1 = ["size"];
328
+ function ownKeys$3(e, r) { var t = Object.keys(e); if (Object.getOwnPropertySymbols) { var o = Object.getOwnPropertySymbols(e); r && (o = o.filter(function (r) { return Object.getOwnPropertyDescriptor(e, r).enumerable; })), t.push.apply(t, o); } return t; }
329
+ function _objectSpread$3(e) { for (var r = 1; r < arguments.length; r++) { var t = null != arguments[r] ? arguments[r] : {}; r % 2 ? ownKeys$3(Object(t), true).forEach(function (r) { _defineProperty(e, r, t[r]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(e, Object.getOwnPropertyDescriptors(t)) : ownKeys$3(Object(t)).forEach(function (r) { Object.defineProperty(e, r, Object.getOwnPropertyDescriptor(t, r)); }); } return e; }
330
+ var Body = function Body(_ref) {
331
+ var size = _ref.size,
332
+ props = _objectWithoutProperties(_ref, _excluded$1);
333
+ return /*#__PURE__*/jsx("div", _objectSpread$3(_objectSpread$3({}, props), {}, {
334
+ className: classnames("min-h-0 w-full grow overflow-y-auto px-6 pt-0 pb-2", size === "small" ? "h-[calc(100%_-_4.375rem_-_2.5rem)]" : "h-[calc(100%_-_4.375rem)]")
335
+ }));
336
+ };
337
+
338
+ function ownKeys$2(e, r) { var t = Object.keys(e); if (Object.getOwnPropertySymbols) { var o = Object.getOwnPropertySymbols(e); r && (o = o.filter(function (r) { return Object.getOwnPropertyDescriptor(e, r).enumerable; })), t.push.apply(t, o); } return t; }
339
+ function _objectSpread$2(e) { for (var r = 1; r < arguments.length; r++) { var t = null != arguments[r] ? arguments[r] : {}; r % 2 ? ownKeys$2(Object(t), true).forEach(function (r) { _defineProperty(e, r, t[r]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(e, Object.getOwnPropertyDescriptors(t)) : ownKeys$2(Object(t)).forEach(function (r) { Object.defineProperty(e, r, Object.getOwnPropertyDescriptor(t, r)); }); } return e; }
340
+ var ElementList = function ElementList(_ref) {
341
+ var setVisiblePanel = _ref.setVisiblePanel,
342
+ _ref$elementSections = _ref.elementSections,
343
+ elementSections = _ref$elementSections === void 0 ? [] : _ref$elementSections,
344
+ onSelect = _ref.onSelect,
345
+ isDragElementsDisabled = _ref.isDragElementsDisabled,
346
+ isAddingNewElement = _ref.isAddingNewElement;
347
+ var _useTranslation = useTranslation(),
348
+ t = _useTranslation.t;
349
+ var _useState = useState(""),
350
+ _useState2 = _slicedToArray(_useState, 2),
351
+ searchString = _useState2[0],
352
+ setSearchString = _useState2[1];
353
+ var filteredSections = useMemo(function () {
354
+ var elementIndex = 0;
355
+ var query = searchString.toLowerCase();
356
+ var matchesSearch = function matchesSearch(element) {
357
+ var _element$label$toLowe, _element$label, _element$description$, _element$description, _element$aliases;
358
+ if (!query) return true;
359
+ var label = (_element$label$toLowe = (_element$label = element.label) === null || _element$label === void 0 ? void 0 : _element$label.toLowerCase()) !== null && _element$label$toLowe !== void 0 ? _element$label$toLowe : "";
360
+ var description = (_element$description$ = (_element$description = element.description) === null || _element$description === void 0 ? void 0 : _element$description.toLowerCase()) !== null && _element$description$ !== void 0 ? _element$description$ : "";
361
+ var aliases = ((_element$aliases = element.aliases) !== null && _element$aliases !== void 0 ? _element$aliases : []).map(function (alias) {
362
+ return alias.toLowerCase();
363
+ });
364
+ return label.includes(query) || description.includes(query) || aliases.some(function (alias) {
365
+ return alias.includes(query);
366
+ });
367
+ };
368
+ return elementSections.map(function (section) {
369
+ return _objectSpread$2(_objectSpread$2({}, section), {}, {
370
+ elements: section.elements.filter(matchesSearch).map(function (element) {
371
+ return assoc("elementIndex", elementIndex++, element);
372
+ })
373
+ });
374
+ }).filter(function (section) {
375
+ return isPresent(searchString) ? isNotEmpty(section.elements) : true;
376
+ });
377
+ }, [searchString, elementSections]);
378
+ return /*#__PURE__*/jsxs(Fragment, {
379
+ children: [/*#__PURE__*/jsx(TitleBar$1, {
380
+ setVisiblePanel: setVisiblePanel
381
+ }), /*#__PURE__*/jsxs("div", {
382
+ className: "mb-1 px-6",
383
+ children: [/*#__PURE__*/jsx(Typography, {
384
+ className: "mb-3",
385
+ variant: "body3",
386
+ children: t("neetoMolecules.builderSidebar.addNewElementDescription")
387
+ }), /*#__PURE__*/jsx(Input, {
388
+ autoFocus: true,
389
+ "data-testid": "elements-panel-search-field",
390
+ placeholder: t("neetoMolecules.builderSidebar.searchElements"),
391
+ prefix: /*#__PURE__*/jsx(Search, {}),
392
+ type: "search",
393
+ value: searchString,
394
+ onChange: withEventTargetValue(setSearchString)
395
+ })]
396
+ }), /*#__PURE__*/jsx(Body, {
397
+ "data-testid": "elements-container",
398
+ size: "small",
399
+ children: /*#__PURE__*/jsx(SectionsContainer, {
400
+ filteredSections: filteredSections,
401
+ isAddingNewElement: isAddingNewElement,
402
+ isDragElementsDisabled: isDragElementsDisabled,
403
+ onSelect: onSelect,
404
+ setVisiblePanel: setVisiblePanel
405
+ })
406
+ })]
407
+ });
408
+ };
409
+
410
+ var _excluded = ["element", "isActive", "isSelectedElementActionsDisabled", "selectedElementActionsTooltipProps", "handleSelectElement", "isSelectable", "errors", "actions", "isDraggable"];
411
+ function ownKeys$1(e, r) { var t = Object.keys(e); if (Object.getOwnPropertySymbols) { var o = Object.getOwnPropertySymbols(e); r && (o = o.filter(function (r) { return Object.getOwnPropertyDescriptor(e, r).enumerable; })), t.push.apply(t, o); } return t; }
412
+ function _objectSpread$1(e) { for (var r = 1; r < arguments.length; r++) { var t = null != arguments[r] ? arguments[r] : {}; r % 2 ? ownKeys$1(Object(t), true).forEach(function (r) { _defineProperty(e, r, t[r]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(e, Object.getOwnPropertyDescriptors(t)) : ownKeys$1(Object(t)).forEach(function (r) { Object.defineProperty(e, r, Object.getOwnPropertyDescriptor(t, r)); }); } return e; }
413
+ var SelectedElement = function SelectedElement(_ref) {
414
+ var element = _ref.element,
415
+ isActive = _ref.isActive,
416
+ isSelectedElementActionsDisabled = _ref.isSelectedElementActionsDisabled,
417
+ selectedElementActionsTooltipProps = _ref.selectedElementActionsTooltipProps,
418
+ handleSelectElement = _ref.handleSelectElement,
419
+ _ref$isSelectable = _ref.isSelectable,
420
+ isSelectable = _ref$isSelectable === void 0 ? true : _ref$isSelectable,
421
+ _ref$errors = _ref.errors,
422
+ errors = _ref$errors === void 0 ? [] : _ref$errors,
423
+ _ref$actions = _ref.actions,
424
+ actions = _ref$actions === void 0 ? [] : _ref$actions,
425
+ _ref$isDraggable = _ref.isDraggable,
426
+ isDraggable = _ref$isDraggable === void 0 ? false : _ref$isDraggable,
427
+ props = _objectWithoutProperties(_ref, _excluded);
428
+ var Icon = element.icon;
429
+ var rootElementRef = useRef();
430
+ var onClick = function onClick() {
431
+ return handleSelectElement(element);
432
+ };
433
+ var shouldShowDropdown = isNotEmpty(actions);
434
+ var menuItems = typeof actions === "function" ? actions(element) : actions.map(function (action) {
435
+ return mergeRight(action, {
436
+ onClick: function onClick() {
437
+ action.onClick(element);
438
+ }
439
+ });
440
+ });
441
+ useEffect(function () {
442
+ var rootElement = rootElementRef.current;
443
+ if (!rootElement || !isActive || typeof (rootElement === null || rootElement === void 0 ? void 0 : rootElement.scrollIntoView) !== "function") {
444
+ return;
445
+ }
446
+ rootElement.scrollIntoView({
447
+ behavior: "smooth",
448
+ block: "nearest"
449
+ });
450
+ }, [isActive, rootElementRef]);
451
+ var error = findById(element.id, errors);
452
+ return /*#__PURE__*/jsxs("div", {
453
+ "data-testid": props["data-testid"],
454
+ ref: rootElementRef,
455
+ className: classnames("border-border bg-background hover:bg-muted relative mb-2 flex h-10 cursor-pointer items-center gap-2 rounded-lg border py-3 ps-4 pe-3 transition-all duration-300 ease-in-out", {
456
+ "!border-primary ring-primary ring-1": isActive
457
+ }, {
458
+ "bg-destructive/10 hover:bg-destructive/10": error
459
+ }),
460
+ onClick: isSelectable ? onClick : noop,
461
+ children: [isDraggable && /*#__PURE__*/jsx("span", {
462
+ className: "absolute end-full top-1/2 me-0.5 flex-shrink-0 -translate-y-1/2 cursor-grab",
463
+ "data-testid": "drag-handle",
464
+ children: /*#__PURE__*/jsx(GripVertical, {
465
+ className: "text-muted-foreground hover:text-foreground transition-all duration-300 ease-in-out",
466
+ size: 16
467
+ })
468
+ }), /*#__PURE__*/jsxs("div", {
469
+ className: "flex flex-grow items-center gap-2 overflow-hidden",
470
+ "data-testid": "new-element-field",
471
+ children: [Icon && /*#__PURE__*/jsx("div", {
472
+ className: "flex-shrink-0",
473
+ children: /*#__PURE__*/jsx(Icon, {})
474
+ }), /*#__PURE__*/jsx(Typography, {
475
+ className: "truncate leading-snug",
476
+ "data-testid": "".concat(hyphenate(element.label, "new-element"), "-label"),
477
+ variant: "body2",
478
+ children: element.label
479
+ })]
480
+ }), shouldShowDropdown && /*#__PURE__*/jsx(MoreDropdown, {
481
+ menuItems: menuItems,
482
+ isDisabled: element.isPending || isSelectedElementActionsDisabled,
483
+ dropdownButtonProps: _objectSpread$1({
484
+ onClick: function onClick(e) {
485
+ return e.stopPropagation();
486
+ },
487
+ className: "min-h-0 flex-shrink-0",
488
+ "data-testid": "".concat(hyphenate(element.label), "-more-dropdown"),
489
+ loading: element.isPending
490
+ }, isPresent(selectedElementActionsTooltipProps) && {
491
+ tooltipProps: selectedElementActionsTooltipProps
492
+ })
493
+ })]
494
+ });
495
+ };
496
+ var SelectedElement$1 = /*#__PURE__*/memo(SelectedElement);
497
+
498
+ var TitleBar = function TitleBar(_ref) {
499
+ var setVisiblePanel = _ref.setVisiblePanel,
500
+ isLoading = _ref.isLoading,
501
+ showElementsFillButton = _ref.showElementsFillButton,
502
+ isAddingAllElements = _ref.isAddingAllElements,
503
+ addAllElements = _ref.addAllElements,
504
+ isAddingNewElement = _ref.isAddingNewElement,
505
+ addNewElement = _ref.addNewElement,
506
+ addNewElementLabel = _ref.addNewElementLabel;
507
+ var _useTranslation = useTranslation(),
508
+ t = _useTranslation.t;
509
+ var handleAddNewElementClick = function handleAddNewElementClick() {
510
+ if (typeof addNewElement === "function") addNewElement();else setVisiblePanel(PANEL_TYPES.ELEMENTS);
511
+ };
512
+ return /*#__PURE__*/jsxs("div", {
513
+ className: "flex items-center justify-between p-6 pb-1",
514
+ "data-testid": "selected-elements-title",
515
+ children: [/*#__PURE__*/jsx(Typography, {
516
+ className: "leading-normal",
517
+ "data-testid": "elements-title",
518
+ variant: "h3",
519
+ weight: "semibold",
520
+ children: t("neetoMolecules.builderSidebar.element", PLURAL)
521
+ }), /*#__PURE__*/jsxs("div", {
522
+ className: "flex items-center justify-between gap-x-2",
523
+ children: [/*#__PURE__*/jsx(Button, {
524
+ "data-testid": "add-element-button",
525
+ disabled: isLoading,
526
+ icon: Plus,
527
+ iconPosition: "left",
528
+ loading: isAddingNewElement,
529
+ size: "sm",
530
+ variant: "link",
531
+ label: addNewElementLabel || t("neetoMolecules.builderSidebar.addNewElement"),
532
+ onClick: handleAddNewElementClick
533
+ }), showElementsFillButton && /*#__PURE__*/jsx(Button, {
534
+ "data-testid": "add-all-elements-button",
535
+ disabled: isAddingAllElements,
536
+ icon: Zap,
537
+ loading: isAddingAllElements,
538
+ size: "icon-sm",
539
+ variant: "secondary",
540
+ tooltipProps: {
541
+ content: t("neetoMolecules.builderSidebar.addAllElements")
542
+ },
543
+ onClick: addAllElements
544
+ })]
545
+ })]
546
+ });
547
+ };
548
+
549
+ function ownKeys(e, r) { var t = Object.keys(e); if (Object.getOwnPropertySymbols) { var o = Object.getOwnPropertySymbols(e); r && (o = o.filter(function (r) { return Object.getOwnPropertyDescriptor(e, r).enumerable; })), t.push.apply(t, o); } return t; }
550
+ function _objectSpread(e) { for (var r = 1; r < arguments.length; r++) { var t = null != arguments[r] ? arguments[r] : {}; r % 2 ? ownKeys(Object(t), true).forEach(function (r) { _defineProperty(e, r, t[r]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(e, Object.getOwnPropertyDescriptors(t)) : ownKeys(Object(t)).forEach(function (r) { Object.defineProperty(e, r, Object.getOwnPropertyDescriptor(t, r)); }); } return e; }
551
+ var SelectedElementsList = function SelectedElementsList(_ref) {
552
+ var handleSelectElement = _ref.handleSelectElement,
553
+ isReorderDisabled = _ref.isReorderDisabled,
554
+ isElementVisible = _ref.isElementVisible,
555
+ selectedElementId = _ref.selectedElementId,
556
+ selectedElements = _ref.selectedElements,
557
+ setVisiblePanel = _ref.setVisiblePanel,
558
+ fixedLastElement = _ref.fixedLastElement,
559
+ fixedFirstElement = _ref.fixedFirstElement,
560
+ anchoredElementIds = _ref.anchoredElementIds,
561
+ selectedElementActions = _ref.selectedElementActions,
562
+ addAllElements = _ref.addAllElements,
563
+ isAddingAllElements = _ref.isAddingAllElements,
564
+ showElementsFillButton = _ref.showElementsFillButton,
565
+ isAddingNewElement = _ref.isAddingNewElement,
566
+ addNewElement = _ref.addNewElement,
567
+ addNewElementLabel = _ref.addNewElementLabel,
568
+ isSelectedElementActionsDisabled = _ref.isSelectedElementActionsDisabled,
569
+ selectedElementActionsTooltipProps = _ref.selectedElementActionsTooltipProps,
570
+ renderElementsCount = _ref.renderElementsCount;
571
+ var renderSelectedElement = function renderSelectedElement(element) {
572
+ var index = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : 0;
573
+ return /*#__PURE__*/createElement(SelectedElement$1, {
574
+ element: element,
575
+ handleSelectElement: handleSelectElement,
576
+ index: index,
577
+ isSelectedElementActionsDisabled: isSelectedElementActionsDisabled,
578
+ selectedElementActionsTooltipProps: selectedElementActionsTooltipProps,
579
+ isSelectable: true,
580
+ actions: element.actions,
581
+ isActive: selectedElementId === element.id,
582
+ key: element.id || index,
583
+ "data-testid": "welcome-element".concat(Array.isArray(fixedFirstElement) ? "-".concat(index + 1) : "")
584
+ });
585
+ };
586
+ var _useTranslation = useTranslation(),
587
+ t = _useTranslation.t;
588
+ var checkIsVisible = function checkIsVisible(element) {
589
+ var _isElementVisible;
590
+ return (_isElementVisible = isElementVisible === null || isElementVisible === void 0 ? void 0 : isElementVisible(element)) !== null && _isElementVisible !== void 0 ? _isElementVisible : true;
591
+ };
592
+ var visibleCount = typeof renderElementsCount === "function" ? (selectedElements !== null && selectedElements !== void 0 ? selectedElements : []).filter(checkIsVisible).length : 0;
593
+ return /*#__PURE__*/jsxs(Fragment, {
594
+ children: [/*#__PURE__*/jsx(TitleBar, {
595
+ addAllElements: addAllElements,
596
+ addNewElement: addNewElement,
597
+ addNewElementLabel: addNewElementLabel,
598
+ isAddingAllElements: isAddingAllElements,
599
+ isAddingNewElement: isAddingNewElement,
600
+ setVisiblePanel: setVisiblePanel,
601
+ showElementsFillButton: showElementsFillButton
602
+ }), /*#__PURE__*/jsxs(Body, {
603
+ "data-testid": "selected-elements-container",
604
+ children: [/*#__PURE__*/jsx(Typography, {
605
+ className: "mb-3",
606
+ variant: "body3",
607
+ children: t("neetoMolecules.builderSidebar.elementsReorderDescription")
608
+ }), typeof renderElementsCount === "function" && renderElementsCount(visibleCount), Array.isArray(fixedFirstElement) ? isNotEmpty(fixedFirstElement) && fixedFirstElement.map(renderSelectedElement) : isPresent(fixedFirstElement) && renderSelectedElement(fixedFirstElement), /*#__PURE__*/jsx(Droppable, {
609
+ droppableId: SELECTED_ELEMENTS_LIST_DROPPABLE_ID,
610
+ type: DROPPABLE_TYPES.SELECTED_ELEMENT,
611
+ children: function children(_ref2) {
612
+ var innerRef = _ref2.innerRef,
613
+ droppableProps = _ref2.droppableProps,
614
+ placeholder = _ref2.placeholder;
615
+ return /*#__PURE__*/jsxs("div", _objectSpread(_objectSpread({
616
+ ref: innerRef
617
+ }, droppableProps), {}, {
618
+ "data-testid": "selected-elements-droppable-container",
619
+ children: [selectedElements === null || selectedElements === void 0 ? void 0 : selectedElements.filter(checkIsVisible).map(function (element, index) {
620
+ var _element$id, _element$id2;
621
+ var isAnchoredElement = anchoredElementIds.includes(element.id);
622
+ var isDragDisabled = isReorderDisabled || isAnchoredElement;
623
+ var key = (_element$id = element.id) !== null && _element$id !== void 0 ? _element$id : "element-".concat(joinHyphenCase(element.label));
624
+ return /*#__PURE__*/createElement(Draggable, {
625
+ index: index,
626
+ isDragDisabled: isDragDisabled,
627
+ draggableId: (_element$id2 = element.id) !== null && _element$id2 !== void 0 ? _element$id2 : "element-".concat(index),
628
+ key: key
629
+ }, function (_ref3) {
630
+ var _element$id3;
631
+ var innerRef = _ref3.innerRef,
632
+ draggableProps = _ref3.draggableProps,
633
+ dragHandleProps = _ref3.dragHandleProps;
634
+ return /*#__PURE__*/jsx("div", _objectSpread(_objectSpread(_objectSpread({
635
+ ref: innerRef
636
+ }, draggableProps), dragHandleProps), {}, {
637
+ children: /*#__PURE__*/createElement(SelectedElement$1, {
638
+ element: element,
639
+ handleSelectElement: handleSelectElement,
640
+ isSelectedElementActionsDisabled: isSelectedElementActionsDisabled,
641
+ selectedElementActionsTooltipProps: selectedElementActionsTooltipProps,
642
+ isSelectable: true,
643
+ actions: selectedElementActions,
644
+ isActive: selectedElementId === element.id,
645
+ isDraggable: !isDragDisabled,
646
+ key: (_element$id3 = element.id) !== null && _element$id3 !== void 0 ? _element$id3 : index
647
+ })
648
+ }));
649
+ });
650
+ }), placeholder]
651
+ }));
652
+ }
653
+ }), isPresent(fixedLastElement) && /*#__PURE__*/jsx(SelectedElement$1, {
654
+ handleSelectElement: handleSelectElement,
655
+ isSelectedElementActionsDisabled: isSelectedElementActionsDisabled,
656
+ selectedElementActionsTooltipProps: selectedElementActionsTooltipProps,
657
+ isSelectable: true,
658
+ actions: fixedLastElement.actions,
659
+ "data-testid": "submit-button-element",
660
+ element: fixedLastElement,
661
+ isActive: selectedElementId === fixedLastElement.id
662
+ })]
663
+ })]
664
+ });
665
+ };
666
+
667
+ var ElementsPanel = function ElementsPanel(_ref) {
668
+ var elementSections = _ref.elementSections,
669
+ _ref$selectedElements = _ref.selectedElements,
670
+ selectedElements = _ref$selectedElements === void 0 ? [] : _ref$selectedElements,
671
+ handleAddElement = _ref.handleAddElement,
672
+ isElementVisible = _ref.isElementVisible,
673
+ fixedFirstElement = _ref.fixedFirstElement,
674
+ fixedLastElement = _ref.fixedLastElement,
675
+ _ref$anchoredElementI = _ref.anchoredElementIds,
676
+ anchoredElementIds = _ref$anchoredElementI === void 0 ? [] : _ref$anchoredElementI,
677
+ _ref$isReorderDisable = _ref.isReorderDisabled,
678
+ isReorderDisabled = _ref$isReorderDisable === void 0 ? true : _ref$isReorderDisable,
679
+ _ref$isDragElementsDi = _ref.isDragElementsDisabled,
680
+ isDragElementsDisabled = _ref$isDragElementsDi === void 0 ? true : _ref$isDragElementsDi,
681
+ handleSelectElement = _ref.handleSelectElement,
682
+ selectedElementId = _ref.selectedElementId,
683
+ selectedElementActions = _ref.selectedElementActions,
684
+ _ref$addAllElements = _ref.addAllElements,
685
+ addAllElements = _ref$addAllElements === void 0 ? noop : _ref$addAllElements,
686
+ _ref$isAddingAllEleme = _ref.isAddingAllElements,
687
+ isAddingAllElements = _ref$isAddingAllEleme === void 0 ? false : _ref$isAddingAllEleme,
688
+ _ref$showElementsFill = _ref.showElementsFillButton,
689
+ showElementsFillButton = _ref$showElementsFill === void 0 ? false : _ref$showElementsFill,
690
+ _ref$isAddingNewEleme = _ref.isAddingNewElement,
691
+ isAddingNewElement = _ref$isAddingNewEleme === void 0 ? false : _ref$isAddingNewEleme,
692
+ addNewElement = _ref.addNewElement,
693
+ addNewElementLabel = _ref.addNewElementLabel,
694
+ _ref$isSelectedElemen = _ref.isSelectedElementActionsDisabled,
695
+ isSelectedElementActionsDisabled = _ref$isSelectedElemen === void 0 ? false : _ref$isSelectedElemen,
696
+ _ref$selectedElementA = _ref.selectedElementActionsTooltipProps,
697
+ selectedElementActionsTooltipProps = _ref$selectedElementA === void 0 ? {} : _ref$selectedElementA,
698
+ renderElementsCount = _ref.renderElementsCount;
699
+ var _useState = useState(PANEL_TYPES.SUMMARY),
700
+ _useState2 = _slicedToArray(_useState, 2),
701
+ visiblePanel = _useState2[0],
702
+ setVisiblePanel = _useState2[1];
703
+ var _useBreakpoints = useBreakpoints(),
704
+ isSize = _useBreakpoints.isSize;
705
+ var isLargerScreen = !isSize("mobile");
706
+ var _useState3 = useState(!isLargerScreen),
707
+ _useState4 = _slicedToArray(_useState3, 2),
708
+ isElementsPanelCollapsed = _useState4[0],
709
+ setIsElementsPanelCollapsed = _useState4[1];
710
+ useEffect(function () {
711
+ setIsElementsPanelCollapsed(!isLargerScreen);
712
+ }, [isLargerScreen]);
713
+ return /*#__PURE__*/jsxs(Fragment, {
714
+ children: [!isElementsPanelCollapsed && /*#__PURE__*/jsx("div", {
715
+ className: "fixed inset-0 z-[101] hidden bg-black/40 max-[767px]:block",
716
+ onClick: function onClick() {
717
+ setIsElementsPanelCollapsed(!isElementsPanelCollapsed);
718
+ }
719
+ }), /*#__PURE__*/jsxs("div", {
720
+ className: classnames("relative z-[101] h-full w-[360px] min-w-[360px] transition-all duration-150 motion-reduce:transition-none max-[767px]:fixed max-[767px]:start-0 max-[767px]:top-0 max-[767px]:transition-none max-[576px]:h-full max-[576px]:w-full max-[576px]:max-w-full max-[576px]:min-w-0 min-[768px]:max-[1279px]:w-[288px] min-[768px]:max-[1279px]:min-w-[288px]", {
721
+ "w-0 max-w-0 min-w-0": isElementsPanelCollapsed
722
+ }),
723
+ children: [/*#__PURE__*/jsx("div", {
724
+ className: "h-full w-full overflow-hidden",
725
+ children: /*#__PURE__*/jsx("div", {
726
+ className: classnames("border-border flex h-full w-[360px] min-w-[360px] flex-col border-e max-[576px]:w-full max-[576px]:min-w-0 max-[576px]:pt-6 min-[768px]:max-[1279px]:w-[288px] min-[768px]:max-[1279px]:min-w-[288px]", visiblePanel === PANEL_TYPES.SUMMARY ? "bg-background" : "bg-muted/40"),
727
+ onClick: function onClick(event) {
728
+ return event.stopPropagation();
729
+ },
730
+ children: visiblePanel === PANEL_TYPES.SUMMARY ? /*#__PURE__*/jsx(SelectedElementsList, {
731
+ addAllElements: addAllElements,
732
+ addNewElement: addNewElement,
733
+ addNewElementLabel: addNewElementLabel,
734
+ anchoredElementIds: anchoredElementIds,
735
+ fixedFirstElement: fixedFirstElement,
736
+ fixedLastElement: fixedLastElement,
737
+ handleSelectElement: handleSelectElement,
738
+ isAddingAllElements: isAddingAllElements,
739
+ isAddingNewElement: isAddingNewElement,
740
+ isElementVisible: isElementVisible,
741
+ isReorderDisabled: isReorderDisabled,
742
+ isSelectedElementActionsDisabled: isSelectedElementActionsDisabled,
743
+ renderElementsCount: renderElementsCount,
744
+ selectedElementActions: selectedElementActions,
745
+ selectedElementActionsTooltipProps: selectedElementActionsTooltipProps,
746
+ selectedElementId: selectedElementId,
747
+ selectedElements: selectedElements,
748
+ setVisiblePanel: setVisiblePanel,
749
+ showElementsFillButton: showElementsFillButton
750
+ }) : /*#__PURE__*/jsx(ElementList, {
751
+ elementSections: elementSections,
752
+ isAddingNewElement: isAddingNewElement,
753
+ isDragElementsDisabled: isDragElementsDisabled,
754
+ setVisiblePanel: setVisiblePanel,
755
+ onSelect: handleAddElement
756
+ })
757
+ })
758
+ }), /*#__PURE__*/jsx(Button, {
759
+ icon: PanelLeftClose,
760
+ size: "icon",
761
+ variant: "secondary",
762
+ className: classnames("absolute start-[calc(100%_+_8px)] top-2 shrink-0 transition-[color] duration-300 motion-reduce:transition-none max-[576px]:start-auto max-[576px]:end-6 min-[1024px]:pointer-events-none min-[1024px]:opacity-0", isElementsPanelCollapsed ? "-scale-x-100 max-[767px]:top-[109px] max-[576px]:start-2 max-[576px]:end-auto rtl:scale-x-100" : "rtl:-scale-x-100"),
763
+ onClick: function onClick() {
764
+ setIsElementsPanelCollapsed(!isElementsPanelCollapsed);
765
+ }
766
+ })]
767
+ })]
768
+ });
769
+ };
770
+
771
+ var EmptyProperty = withT(function (_ref) {
772
+ var t = _ref.t;
773
+ return /*#__PURE__*/jsxs("div", {
774
+ className: "flex flex-col gap-y-4",
775
+ children: [/*#__PURE__*/jsx("div", {
776
+ className: "bg-muted text-muted-foreground flex w-full flex-col items-center justify-center gap-y-2 rounded-lg px-16 py-8",
777
+ children: /*#__PURE__*/jsx(Typography, {
778
+ className: "text-center leading-normal",
779
+ "data-testid": "build-page-text-label",
780
+ variant: "body2",
781
+ children: t("neetoMolecules.builderSidebar.noQuestionProperties")
782
+ })
783
+ }), /*#__PURE__*/jsx("div", {
784
+ className: "bg-muted h-40 w-full rounded-lg"
785
+ }), /*#__PURE__*/jsx("div", {
786
+ className: "bg-muted h-72 w-full rounded-lg"
787
+ })]
788
+ });
789
+ });
790
+
791
+ var Skeleton = withT(function (_ref) {
792
+ var t = _ref.t;
793
+ return /*#__PURE__*/jsxs("div", {
794
+ className: "flex flex-col gap-y-4",
795
+ children: [/*#__PURE__*/jsx("div", {
796
+ className: "bg-muted h-12 w-full rounded-lg"
797
+ }), /*#__PURE__*/jsxs("div", {
798
+ className: "bg-muted text-muted-foreground flex w-full flex-col items-center justify-center gap-y-2 rounded-lg px-16 py-8",
799
+ children: [/*#__PURE__*/jsx(Typography, {
800
+ className: "text-center leading-normal",
801
+ "data-testid": "build-page-text-label",
802
+ variant: "body2",
803
+ children: t("neetoMolecules.builderSidebar.emptyQuestionProperties")
804
+ }), /*#__PURE__*/jsx(ArrowDown, {})]
805
+ }), /*#__PURE__*/jsx("div", {
806
+ className: "bg-muted h-40 w-full rounded-lg"
807
+ }), /*#__PURE__*/jsx("div", {
808
+ className: "bg-muted h-72 w-full rounded-lg"
809
+ })]
810
+ });
811
+ });
812
+
813
+ var PropertiesPanel = function PropertiesPanel(_ref) {
814
+ var id = _ref.id,
815
+ children = _ref.children,
816
+ onClose = _ref.onClose;
817
+ var _useBreakpoints = useBreakpoints(function (window) {
818
+ return {
819
+ largeDesktop: window.innerWidth >= 1280
820
+ };
821
+ }),
822
+ isSize = _useBreakpoints.isSize;
823
+ var isLargerScreen = isSize("largeDesktop");
824
+ var _useState = useState(!isLargerScreen),
825
+ _useState2 = _slicedToArray(_useState, 2),
826
+ isPropertiesPanelCollapsed = _useState2[0],
827
+ setIsPropertiesPanelCollapsed = _useState2[1];
828
+ useEffect(function () {
829
+ setIsPropertiesPanelCollapsed(!isLargerScreen);
830
+ }, [isLargerScreen]);
831
+ useEffect(function () {
832
+ if (!id) return;
833
+ setIsPropertiesPanelCollapsed(false);
834
+ }, [id]);
835
+ var handleCollapsePanel = function handleCollapsePanel() {
836
+ setIsPropertiesPanelCollapsed(!isPropertiesPanelCollapsed);
837
+ onClose === null || onClose === void 0 || onClose(id);
838
+ };
839
+ return /*#__PURE__*/jsxs(Fragment, {
840
+ children: [!isPropertiesPanelCollapsed && /*#__PURE__*/jsx("div", {
841
+ className: "fixed inset-0 z-[101] hidden bg-black/40 max-[1279px]:block",
842
+ onClick: handleCollapsePanel
843
+ }), /*#__PURE__*/jsxs("div", {
844
+ className: classnames("border-border relative z-[101] h-full w-[420px] min-w-[420px] border-s transition-all duration-150 motion-reduce:transition-none max-[1279px]:fixed max-[1279px]:end-0 max-[1279px]:top-0 max-[1279px]:transition-none max-[576px]:h-full max-[576px]:w-full max-[576px]:max-w-full max-[576px]:min-w-0", {
845
+ "w-0 max-w-0 min-w-0": isPropertiesPanelCollapsed
846
+ }),
847
+ children: [/*#__PURE__*/jsx("div", {
848
+ className: "bg-background flex h-full w-full min-w-0 flex-col overflow-y-auto p-6 max-[1279px]:pt-12",
849
+ "data-testid": "properties-panel",
850
+ children: children !== null && children !== void 0 ? children : /*#__PURE__*/jsx(Skeleton, {})
851
+ }), !isPropertiesPanelCollapsed && /*#__PURE__*/jsx(Button, {
852
+ className: "pointer-events-none absolute end-2 top-2 opacity-0 max-[1279px]:pointer-events-auto max-[1279px]:opacity-100",
853
+ icon: X,
854
+ size: "icon",
855
+ variant: "secondary",
856
+ onClick: handleCollapsePanel
857
+ })]
858
+ })]
859
+ });
860
+ };
861
+ PropertiesPanel.EmptyProperty = EmptyProperty;
862
+
863
+ export { DROPPABLE_TYPES, ELEMENTS_LIST_DROPPABLE_ID, ElementsPanel, PANEL_TYPES, PREVIEW_CONTAINER_DROPPABLE_ID, PropertiesPanel, SELECTED_ELEMENTS_LIST_DROPPABLE_ID };
864
+ //# sourceMappingURL=Builder.js.map