@bigbinary/neeto-molecules 1.0.111 → 1.0.113

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.
@@ -0,0 +1,609 @@
1
+ import React, { useEffect, useState, useRef, Fragment } from 'react';
2
+ import { isNotEmpty, noop, isPresent } from '@bigbinary/neeto-commons-frontend/pure';
3
+ import { Dropdown, Typography, Input, Button, Tooltip, Alert } from '@bigbinary/neetoui';
4
+ import { isEmpty, mergeDeepRight } from 'ramda';
5
+ import { Link, NavLink } from 'react-router-dom';
6
+ import { useStateWithDependency, useOnClickOutside, useHotKeys, withT } from '@bigbinary/neeto-commons-frontend/react-utils';
7
+ import { Check, Close, MenuHorizontal, Home, ExternalLink, Undo } from '@bigbinary/neeto-icons';
8
+ import { useTranslation } from 'react-i18next';
9
+ import { t as t$1 } from 'i18next';
10
+ import { joinHyphenCase } from '@bigbinary/neeto-commons-frontend/utils';
11
+
12
+ function _extends() {
13
+ _extends = Object.assign ? Object.assign.bind() : function (target) {
14
+ for (var i = 1; i < arguments.length; i++) {
15
+ var source = arguments[i];
16
+ for (var key in source) {
17
+ if (Object.prototype.hasOwnProperty.call(source, key)) {
18
+ target[key] = source[key];
19
+ }
20
+ }
21
+ }
22
+ return target;
23
+ };
24
+ return _extends.apply(this, arguments);
25
+ }
26
+
27
+ function _arrayWithHoles(arr) {
28
+ if (Array.isArray(arr)) return arr;
29
+ }
30
+
31
+ function _iterableToArrayLimit(arr, i) {
32
+ var _i = null == arr ? null : "undefined" != typeof Symbol && arr[Symbol.iterator] || arr["@@iterator"];
33
+ if (null != _i) {
34
+ var _s,
35
+ _e,
36
+ _x,
37
+ _r,
38
+ _arr = [],
39
+ _n = !0,
40
+ _d = !1;
41
+ try {
42
+ if (_x = (_i = _i.call(arr)).next, 0 === i) {
43
+ if (Object(_i) !== _i) return;
44
+ _n = !1;
45
+ } else for (; !(_n = (_s = _x.call(_i)).done) && (_arr.push(_s.value), _arr.length !== i); _n = !0);
46
+ } catch (err) {
47
+ _d = !0, _e = err;
48
+ } finally {
49
+ try {
50
+ if (!_n && null != _i["return"] && (_r = _i["return"](), Object(_r) !== _r)) return;
51
+ } finally {
52
+ if (_d) throw _e;
53
+ }
54
+ }
55
+ return _arr;
56
+ }
57
+ }
58
+
59
+ function _arrayLikeToArray(arr, len) {
60
+ if (len == null || len > arr.length) len = arr.length;
61
+ for (var i = 0, arr2 = new Array(len); i < len; i++) arr2[i] = arr[i];
62
+ return arr2;
63
+ }
64
+
65
+ function _unsupportedIterableToArray(o, minLen) {
66
+ if (!o) return;
67
+ if (typeof o === "string") return _arrayLikeToArray(o, minLen);
68
+ var n = Object.prototype.toString.call(o).slice(8, -1);
69
+ if (n === "Object" && o.constructor) n = o.constructor.name;
70
+ if (n === "Map" || n === "Set") return Array.from(o);
71
+ if (n === "Arguments" || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)) return _arrayLikeToArray(o, minLen);
72
+ }
73
+
74
+ function _nonIterableRest() {
75
+ throw new TypeError("Invalid attempt to destructure non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.");
76
+ }
77
+
78
+ function _slicedToArray(arr, i) {
79
+ return _arrayWithHoles(arr) || _iterableToArrayLimit(arr, i) || _unsupportedIterableToArray(arr, i) || _nonIterableRest();
80
+ }
81
+
82
+ var classnames = {exports: {}};
83
+
84
+ /*!
85
+ Copyright (c) 2018 Jed Watson.
86
+ Licensed under the MIT License (MIT), see
87
+ http://jedwatson.github.io/classnames
88
+ */
89
+
90
+ (function (module) {
91
+ /* global define */
92
+
93
+ (function () {
94
+
95
+ var hasOwn = {}.hasOwnProperty;
96
+
97
+ function classNames() {
98
+ var classes = [];
99
+
100
+ for (var i = 0; i < arguments.length; i++) {
101
+ var arg = arguments[i];
102
+ if (!arg) continue;
103
+
104
+ var argType = typeof arg;
105
+
106
+ if (argType === 'string' || argType === 'number') {
107
+ classes.push(arg);
108
+ } else if (Array.isArray(arg)) {
109
+ if (arg.length) {
110
+ var inner = classNames.apply(null, arg);
111
+ if (inner) {
112
+ classes.push(inner);
113
+ }
114
+ }
115
+ } else if (argType === 'object') {
116
+ if (arg.toString !== Object.prototype.toString && !arg.toString.toString().includes('[native code]')) {
117
+ classes.push(arg.toString());
118
+ continue;
119
+ }
120
+
121
+ for (var key in arg) {
122
+ if (hasOwn.call(arg, key) && arg[key]) {
123
+ classes.push(key);
124
+ }
125
+ }
126
+ }
127
+ }
128
+
129
+ return classes.join(' ');
130
+ }
131
+
132
+ if (module.exports) {
133
+ classNames.default = classNames;
134
+ module.exports = classNames;
135
+ } else {
136
+ window.classNames = classNames;
137
+ }
138
+ }());
139
+ } (classnames));
140
+
141
+ var classNames = classnames.exports;
142
+
143
+ var MIN_WIDTH = 150;
144
+
145
+ var DummySpan = function DummySpan(_ref) {
146
+ var name = _ref.name,
147
+ placeholderRef = _ref.placeholderRef,
148
+ setInputWidth = _ref.setInputWidth;
149
+ useEffect(function () {
150
+ var _placeholderRef$curre;
151
+ //To handle the input width on initial render.
152
+ var placeholderSpanWidth = (_placeholderRef$curre = placeholderRef.current) === null || _placeholderRef$curre === void 0 ? void 0 : _placeholderRef$curre.offsetWidth;
153
+ setInputWidth(placeholderSpanWidth);
154
+ }, [name]);
155
+ return (
156
+ /*#__PURE__*/
157
+ // Dummy element to calculate the width to be set for the input. Do not remove.
158
+ React.createElement("div", {
159
+ className: "dummy-span pointer-events-none invisible absolute",
160
+ ref: placeholderRef
161
+ }, name.split(" ").join("."))
162
+ );
163
+ };
164
+
165
+ var e=[],t=[];function n(n,r){if(n&&"undefined"!=typeof document){var a,s=!0===r.prepend?"prepend":"append",d=!0===r.singleTag,i="string"==typeof r.container?document.querySelector(r.container):document.getElementsByTagName("head")[0];if(d){var u=e.indexOf(i);-1===u&&(u=e.push(i)-1,t[u]={}),a=t[u]&&t[u][s]?t[u][s]:t[u][s]=c();}else a=c();65279===n.charCodeAt(0)&&(n=n.substring(1)),a.styleSheet?a.styleSheet.cssText+=n:a.appendChild(document.createTextNode(n));}function c(){var e=document.createElement("style");if(e.setAttribute("type","text/css"),r.attributes)for(var t=Object.keys(r.attributes),n=0;n<t.length;n++)e.setAttribute(t[n],r.attributes[t[n]]);var a="prepend"===s?"afterbegin":"beforeend";return i.insertAdjacentElement(a,e),e}}
166
+
167
+ var css$2 = ".neeto-molecules-rename__input{height:32px;margin-left:4px;max-width:100%;position:relative;transition:width .2s ease-in-out;width:-moz-max-content;width:max-content}.neeto-molecules-rename__input .neeto-ui-input{border-color:transparent}.neeto-molecules-rename__input .neeto-ui-input:focus-within{border-color:rgb(var(--neeto-ui-primary-500))}.neeto-molecules-rename__input .neeto-ui-input .neeto-ui-input__suffix{margin-right:0!important}.neeto-molecules-rename__input .neeto-ui-input input{min-width:150px}.neeto-molecules-rename__text{background-color:rgb(var(--neeto-ui-white));border:thin solid rgb(var(--neeto-ui-white));border-radius:var(--neeto-ui-rounded);cursor:pointer;font-size:var(--neeto-ui-text-sm);font-weight:400;letter-spacing:.005em;line-height:1;margin:0 1px;max-height:32px;max-width:448px;padding:8px 5px;transition:var(--neeto-ui-transition)}.neeto-molecules-rename__breadcrumb-text{color:rgb(var(--neeto-ui-gray-500))}.neeto-molecules-rename__breadcrumb-text:hover,.neeto-molecules-rename__display-text{color:rgb(var(--neeto-ui-gray-800))}.neeto-molecules-rename__display-text:hover{border:thin solid rgb(var(--neeto-ui-gray-300))}.neeto-molecules-breadcrumb__divider{font-weight:400;letter-spacing:.005em;line-height:16px;max-height:32px;padding:0;pointer-events:none}.dummy-span{font-size:14px;font-weight:400;padding:5px 8px}";
168
+ n(css$2,{});
169
+
170
+ var mergeRefs = function mergeRefs() {
171
+ for (var _len = arguments.length, refs = new Array(_len), _key = 0; _key < _len; _key++) {
172
+ refs[_key] = arguments[_key];
173
+ }
174
+ return function (node) {
175
+ return refs.forEach(function (ref) {
176
+ return typeof ref === "function" ? ref(node) : ref.current = node;
177
+ });
178
+ };
179
+ };
180
+
181
+ var Menu = Dropdown.Menu,
182
+ MenuItem = Dropdown.MenuItem;
183
+ var Rename = function Rename(_ref) {
184
+ var value = _ref.value,
185
+ _ref$onRename = _ref.onRename,
186
+ onRename = _ref$onRename === void 0 ? noop : _ref$onRename,
187
+ _ref$isOpen = _ref.isOpen,
188
+ isOpen = _ref$isOpen === void 0 ? false : _ref$isOpen,
189
+ _ref$isLoading = _ref.isLoading,
190
+ isLoading = _ref$isLoading === void 0 ? false : _ref$isLoading,
191
+ _ref$placeholder = _ref.placeholder,
192
+ placeholder = _ref$placeholder === void 0 ? "" : _ref$placeholder,
193
+ _ref$hideMenu = _ref.hideMenu,
194
+ hideMenu = _ref$hideMenu === void 0 ? false : _ref$hideMenu,
195
+ _ref$disabled = _ref.disabled,
196
+ disabled = _ref$disabled === void 0 ? false : _ref$disabled,
197
+ _ref$dropdownItems = _ref.dropdownItems,
198
+ dropdownItems = _ref$dropdownItems === void 0 ? [] : _ref$dropdownItems,
199
+ _ref$breadcrumbs = _ref.breadcrumbs,
200
+ breadcrumbs = _ref$breadcrumbs === void 0 ? [] : _ref$breadcrumbs,
201
+ _ref$textProps = _ref.textProps,
202
+ textProps = _ref$textProps === void 0 ? {} : _ref$textProps,
203
+ _ref$inputProps = _ref.inputProps,
204
+ inputProps = _ref$inputProps === void 0 ? {} : _ref$inputProps,
205
+ _ref$className = _ref.className,
206
+ className = _ref$className === void 0 ? "" : _ref$className,
207
+ formatText = _ref.formatText;
208
+ var _useTranslation = useTranslation(),
209
+ t = _useTranslation.t;
210
+ var _useStateWithDependen = useStateWithDependency(value !== null && value !== void 0 ? value : ""),
211
+ _useStateWithDependen2 = _slicedToArray(_useStateWithDependen, 2),
212
+ name = _useStateWithDependen2[0],
213
+ setName = _useStateWithDependen2[1];
214
+ var _useState = useState(isOpen),
215
+ _useState2 = _slicedToArray(_useState, 2),
216
+ editMode = _useState2[0],
217
+ setEditMode = _useState2[1];
218
+ var _useState3 = useState(MIN_WIDTH),
219
+ _useState4 = _slicedToArray(_useState3, 2),
220
+ inputWidth = _useState4[0],
221
+ setInputWidth = _useState4[1];
222
+ var renameRef = useRef(null);
223
+ var placeholderRef = useRef(null);
224
+ useOnClickOutside(renameRef, function () {
225
+ return editMode && handleClose();
226
+ });
227
+ var handleRename = function handleRename(name) {
228
+ onRename(name);
229
+ setEditMode(false);
230
+ };
231
+ var handleClose = function handleClose() {
232
+ setName(value);
233
+ setEditMode(false);
234
+ };
235
+ var handleRenameButton = function handleRenameButton(event) {
236
+ event.stopPropagation();
237
+ setEditMode(true);
238
+ };
239
+ var closeRef = useHotKeys("escape", handleClose, {
240
+ mode: "scoped",
241
+ enabled: editMode
242
+ });
243
+ var submitRef = useHotKeys(["command+return", "return"], function () {
244
+ return isNotEmpty(name) && handleRename(name);
245
+ }, {
246
+ mode: "scoped",
247
+ enabled: editMode
248
+ });
249
+ return /*#__PURE__*/React.createElement("div", {
250
+ ref: renameRef,
251
+ className: classNames("flex min-w-0 max-w-md flex-row items-center", className)
252
+ }, breadcrumbs.map(function (_ref2) {
253
+ var text = _ref2.text,
254
+ link = _ref2.link;
255
+ return /*#__PURE__*/React.createElement(Fragment, {
256
+ key: text
257
+ }, /*#__PURE__*/React.createElement(Link, _extends({
258
+ className: "neeto-molecules-rename__text neeto-molecules-rename__breadcrumb-text",
259
+ "data-testid": "neeto-molecules-value-display",
260
+ to: link
261
+ }, textProps), text), /*#__PURE__*/React.createElement(Typography, {
262
+ className: "neeto-molecules-rename__breadcrumb-text neeto-molecules-breadcrumb__divider",
263
+ component: "span"
264
+ }, "/"));
265
+ }), /*#__PURE__*/React.createElement(DummySpan, {
266
+ name: name,
267
+ placeholderRef: placeholderRef,
268
+ setInputWidth: setInputWidth
269
+ }), editMode ? /*#__PURE__*/React.createElement("div", {
270
+ className: "flex min-w-0 max-w-full flex-grow"
271
+ }, /*#__PURE__*/React.createElement(Input, _extends({
272
+ autoFocus: true,
273
+ className: "neeto-molecules-rename__input flex-grow",
274
+ "data-cy": "form-rename-text-field",
275
+ "data-testid": "neeto-molecules-name-input",
276
+ placeholder: placeholder,
277
+ ref: mergeRefs(closeRef, submitRef),
278
+ style: {
279
+ width: inputWidth
280
+ },
281
+ value: name,
282
+ suffix: /*#__PURE__*/React.createElement("div", {
283
+ className: "flex items-center justify-end"
284
+ }, /*#__PURE__*/React.createElement(Button, {
285
+ className: "neeto-ui-rounded-none",
286
+ "data-cy": "form-rename-submit-button",
287
+ "data-testid": "neeto-molecules-rename-button",
288
+ disabled: isEmpty(name) || isLoading,
289
+ icon: Check,
290
+ loading: isLoading,
291
+ style: "text",
292
+ onClick: function onClick() {
293
+ return handleRename(name);
294
+ }
295
+ }), /*#__PURE__*/React.createElement(Button, {
296
+ className: "neeto-ui-rounded-none",
297
+ "data-cy": "form-rename-close-button",
298
+ "data-testid": "neeto-molecules-cancel-button",
299
+ disabled: isLoading,
300
+ icon: Close,
301
+ style: "text",
302
+ onClick: handleClose
303
+ })),
304
+ onChange: function onChange(event) {
305
+ return setName(event.target.value);
306
+ }
307
+ }, inputProps))) : /*#__PURE__*/React.createElement(React.Fragment, null, /*#__PURE__*/React.createElement(Typography, _extends({
308
+ component: "p",
309
+ "data-cy": "form-title",
310
+ "data-testid": "neeto-molecules-value-display",
311
+ style: "body2",
312
+ className: classNames("neeto-molecules-rename__text neeto-molecules-rename__display-text w-full truncate", {
313
+ "cursor-pointer": !disabled,
314
+ "pointer-events-none cursor-text": disabled
315
+ }),
316
+ onClick: function onClick() {
317
+ return !disabled && setEditMode(!editMode);
318
+ }
319
+ }, textProps), typeof formatText === "function" ? formatText(name) : name), !hideMenu && (isNotEmpty(dropdownItems) || !disabled) && /*#__PURE__*/React.createElement(Dropdown, {
320
+ buttonStyle: "text",
321
+ icon: MenuHorizontal,
322
+ position: "bottom-start",
323
+ buttonProps: {
324
+ "data-testid": "neeto-molecules-menu-button",
325
+ className: "flex-shrink-0"
326
+ },
327
+ onClick: function onClick(event) {
328
+ return event.stopPropagation();
329
+ }
330
+ }, /*#__PURE__*/React.createElement(Menu, null, !disabled && /*#__PURE__*/React.createElement(MenuItem.Button, {
331
+ "data-cy": "form-rename-button",
332
+ onClick: handleRenameButton
333
+ }, t("neetoMolecules.common.actions.rename")), dropdownItems.map(function (item) {
334
+ return /*#__PURE__*/React.createElement(MenuItem.Button, _extends({
335
+ "data-cy": "form-clone-button",
336
+ key: item.label
337
+ }, item), item.label);
338
+ })))));
339
+ };
340
+
341
+ var DEFAULT_HOME_BUTTON_PROPS = {
342
+ tooltip: {
343
+ content: t$1("neetoMolecules.navigationHeader.home"),
344
+ position: "bottom"
345
+ },
346
+ homeUrl: "/",
347
+ icon: /*#__PURE__*/React.createElement(Home, null)
348
+ };
349
+
350
+ var LeftBlock = function LeftBlock(_ref) {
351
+ var customHomeButtonProps = _ref.homeButtonProps,
352
+ homeUrl = _ref.homeUrl,
353
+ renameProps = _ref.renameProps,
354
+ children = _ref.children;
355
+ var homeButtonProps = mergeDeepRight(DEFAULT_HOME_BUTTON_PROPS, customHomeButtonProps);
356
+ return /*#__PURE__*/React.createElement("div", {
357
+ className: "flex items-center gap-2",
358
+ "data-testid": "navigation-header-left-block"
359
+ }, /*#__PURE__*/React.createElement(Tooltip, {
360
+ content: homeButtonProps.tooltip.content,
361
+ position: homeButtonProps.tooltip.position
362
+ }, /*#__PURE__*/React.createElement(Link, {
363
+ "data-cy": "home-button",
364
+ "data-testid": "home-button",
365
+ to: homeUrl
366
+ }, /*#__PURE__*/React.createElement("div", {
367
+ className: "neeto-ui-rounded hover:neeto-ui-bg-gray-200 p-1"
368
+ }, homeButtonProps.icon))), isPresent(renameProps) && /*#__PURE__*/React.createElement(Rename, {
369
+ dropdownItems: renameProps.dropdownItems,
370
+ value: renameProps.value,
371
+ renameProps: renameProps
372
+ }), children);
373
+ };
374
+
375
+ var NavigationLinks = function NavigationLinks(_ref) {
376
+ var headerLinks = _ref.headerLinks;
377
+ return /*#__PURE__*/React.createElement("div", {
378
+ className: "flex w-full items-center justify-center gap-6",
379
+ "data-testid": "navigation-header-navigation-links"
380
+ }, headerLinks.map(function (headerLink) {
381
+ return /*#__PURE__*/React.createElement(NavLink, {
382
+ activeClassName: "active",
383
+ className: "neeto-form-builder-header__link capitalize no-underline",
384
+ "data-cy": "".concat(joinHyphenCase(headerLink.key), "-tab"),
385
+ key: headerLink.key,
386
+ to: headerLink.to
387
+ }, /*#__PURE__*/React.createElement(Typography, {
388
+ lineHeight: "normal",
389
+ style: "h4",
390
+ weight: "semibold"
391
+ }, headerLink.label));
392
+ }));
393
+ };
394
+
395
+ function _objectWithoutPropertiesLoose(source, excluded) {
396
+ if (source == null) return {};
397
+ var target = {};
398
+ var sourceKeys = Object.keys(source);
399
+ var key, i;
400
+ for (i = 0; i < sourceKeys.length; i++) {
401
+ key = sourceKeys[i];
402
+ if (excluded.indexOf(key) >= 0) continue;
403
+ target[key] = source[key];
404
+ }
405
+ return target;
406
+ }
407
+
408
+ function _objectWithoutProperties(source, excluded) {
409
+ if (source == null) return {};
410
+ var target = _objectWithoutPropertiesLoose(source, excluded);
411
+ var key, i;
412
+ if (Object.getOwnPropertySymbols) {
413
+ var sourceSymbolKeys = Object.getOwnPropertySymbols(source);
414
+ for (i = 0; i < sourceSymbolKeys.length; i++) {
415
+ key = sourceSymbolKeys[i];
416
+ if (excluded.indexOf(key) >= 0) continue;
417
+ if (!Object.prototype.propertyIsEnumerable.call(source, key)) continue;
418
+ target[key] = source[key];
419
+ }
420
+ }
421
+ return target;
422
+ }
423
+
424
+ var AlertBlock = function AlertBlock(props) {
425
+ var _useTranslation = useTranslation(),
426
+ t = _useTranslation.t;
427
+ return /*#__PURE__*/React.createElement(Alert, _extends({
428
+ "data-cy": "reset-alert",
429
+ "data-testid": "reset-alert",
430
+ submitButtonLabel: t("neetoMolecules.common.actions.reset")
431
+ }, props));
432
+ };
433
+
434
+ var css$1 = ".neeto-molecules-publish-block{align-items:center;display:flex;gap:12px;justify-content:flex-end}.neeto-molecules-publish-block__action-btn{align-items:center;display:inline-flex;flex-direction:row;gap:1px;justify-content:center}.neeto-molecules-publish-block__action-btn>.neeto-ui-btn:first-child{border-bottom-right-radius:0;border-top-right-radius:0}.neeto-molecules-publish-block__action-btn>.neeto-ui-btn:last-child{border-bottom-left-radius:0;border-top-left-radius:0}";
435
+ n(css$1,{});
436
+
437
+ var _excluded = ["t"],
438
+ _excluded2 = ["t"],
439
+ _excluded3 = ["t"],
440
+ _excluded4 = ["t"];
441
+ var ViewDraftButton = withT(function (_ref) {
442
+ var t = _ref.t,
443
+ props = _objectWithoutProperties(_ref, _excluded);
444
+ return /*#__PURE__*/React.createElement(Button, _extends({
445
+ "data-cy": "view-draft-button",
446
+ "data-testid": "view-draft-button",
447
+ icon: ExternalLink,
448
+ style: "secondary",
449
+ target: "_blank",
450
+ tooltipProps: {
451
+ content: t("neetoMolecules.publishBlock.viewDraftVersion"),
452
+ position: "top"
453
+ }
454
+ }, props));
455
+ });
456
+ var ResetDraftButton = withT(function (_ref2) {
457
+ var t = _ref2.t,
458
+ props = _objectWithoutProperties(_ref2, _excluded2);
459
+ return /*#__PURE__*/React.createElement(Button, _extends({
460
+ "data-cy": "draft-button",
461
+ "data-testid": "draft-button",
462
+ icon: Undo,
463
+ style: "secondary",
464
+ tooltipProps: {
465
+ content: t("neetoMolecules.publishBlock.deleteDraftVersion"),
466
+ position: "top"
467
+ }
468
+ }, props));
469
+ });
470
+ var PublishButton = withT(function (_ref3) {
471
+ var t = _ref3.t,
472
+ props = _objectWithoutProperties(_ref3, _excluded3);
473
+ return /*#__PURE__*/React.createElement(Button, _extends({
474
+ "data-cy": "publish-button",
475
+ "data-testid": "publish-button",
476
+ label: t("neetoMolecules.common.actions.publish")
477
+ }, props));
478
+ });
479
+ var PublishPreviewButton = withT(function (_ref4) {
480
+ var t = _ref4.t,
481
+ props = _objectWithoutProperties(_ref4, _excluded4);
482
+ return /*#__PURE__*/React.createElement(Button, _extends({
483
+ "data-cy": "publish-preview-button",
484
+ "data-testid": "publish-preview-button",
485
+ icon: ExternalLink,
486
+ target: "_blank",
487
+ className: classNames({
488
+ "pointer-events-none": props.disabled
489
+ }, props.className),
490
+ tooltipProps: {
491
+ content: t("neetoMolecules.publishBlock.viewPublishedVersion"),
492
+ position: "top"
493
+ }
494
+ }, props));
495
+ });
496
+ var PublishBlock = function PublishBlock(_ref5) {
497
+ var renderDraftButtons = _ref5.renderDraftButtons,
498
+ renderPublishButtons = _ref5.renderPublishButtons;
499
+ var _useTranslation = useTranslation(),
500
+ t = _useTranslation.t;
501
+ var draftBlockButtons = renderDraftButtons({
502
+ ViewDraftButton: ViewDraftButton,
503
+ ResetDraftButton: ResetDraftButton
504
+ });
505
+ return /*#__PURE__*/React.createElement("div", {
506
+ className: "neeto-molecules-publish-block",
507
+ "data-testid": "neeto-molecules-publish-block"
508
+ }, draftBlockButtons && /*#__PURE__*/React.createElement(React.Fragment, null, /*#__PURE__*/React.createElement("div", {
509
+ className: "flex items-center gap-2"
510
+ }, /*#__PURE__*/React.createElement(Typography, {
511
+ className: "neeto-ui-text-gray-700",
512
+ lineHeight: "normal",
513
+ style: "body2"
514
+ }, t("neetoMolecules.common.actions.draft")), /*#__PURE__*/React.createElement("div", {
515
+ className: "space-x-1"
516
+ }, draftBlockButtons)), /*#__PURE__*/React.createElement("div", {
517
+ className: "neeto-ui-bg-gray-300 h-full w-px"
518
+ })), /*#__PURE__*/React.createElement("div", {
519
+ className: "neeto-molecules-publish-block__action-btn"
520
+ }, renderPublishButtons({
521
+ PublishButton: PublishButton,
522
+ PublishPreviewButton: PublishPreviewButton
523
+ })));
524
+ };
525
+ PublishBlock.Alert = AlertBlock;
526
+
527
+ var css = ".standalone-publish-preview-button{border-radius:var(--neeto-ui-rounded)!important}";
528
+ n(css,{});
529
+
530
+ var RightBlock = function RightBlock(_ref) {
531
+ var isDraftBlockHidden = _ref.isDraftBlockHidden,
532
+ previewDraftUrl = _ref.previewDraftUrl,
533
+ isResetDraftButtonVisible = _ref.isResetDraftButtonVisible,
534
+ onResetClick = _ref.onResetClick,
535
+ isResetting = _ref.isResetting,
536
+ isPublishDisabled = _ref.isPublishDisabled,
537
+ isPublishing = _ref.isPublishing,
538
+ handlePublish = _ref.handlePublish,
539
+ isPublishPreviewDisabled = _ref.isPublishPreviewDisabled,
540
+ previewPublishedUrl = _ref.previewPublishedUrl,
541
+ isPublishButtonVisible = _ref.isPublishButtonVisible,
542
+ isResetAlertOpen = _ref.isResetAlertOpen,
543
+ setIsResetAlertOpen = _ref.setIsResetAlertOpen,
544
+ handleReset = _ref.handleReset,
545
+ publishAlertTitle = _ref.publishAlertTitle,
546
+ publishAlertDescription = _ref.publishAlertDescription;
547
+ var _useTranslation = useTranslation(),
548
+ t = _useTranslation.t;
549
+ var renderDraftButtons = function renderDraftButtons(_ref2) {
550
+ var ViewDraftButton = _ref2.ViewDraftButton,
551
+ ResetDraftButton = _ref2.ResetDraftButton;
552
+ return !isDraftBlockHidden && /*#__PURE__*/React.createElement(React.Fragment, null, /*#__PURE__*/React.createElement(ViewDraftButton, {
553
+ to: previewDraftUrl
554
+ }), isResetDraftButtonVisible && /*#__PURE__*/React.createElement(ResetDraftButton, {
555
+ loading: isResetting,
556
+ onClick: function onClick() {
557
+ return onResetClick();
558
+ }
559
+ }));
560
+ };
561
+ var renderPublishButtons = function renderPublishButtons(_ref3) {
562
+ var PublishButton = _ref3.PublishButton,
563
+ PublishPreviewButton = _ref3.PublishPreviewButton;
564
+ return /*#__PURE__*/React.createElement(React.Fragment, null, isPublishButtonVisible && /*#__PURE__*/React.createElement(PublishButton, {
565
+ disabled: isPublishDisabled,
566
+ loading: isPublishing,
567
+ onClick: function onClick() {
568
+ return handlePublish();
569
+ }
570
+ }), /*#__PURE__*/React.createElement(PublishPreviewButton, {
571
+ disabled: isPublishPreviewDisabled,
572
+ to: previewPublishedUrl,
573
+ className: classNames({
574
+ "standalone-publish-preview-button": !isPublishButtonVisible
575
+ })
576
+ }));
577
+ };
578
+ return /*#__PURE__*/React.createElement(React.Fragment, null, /*#__PURE__*/React.createElement(PublishBlock, {
579
+ renderDraftButtons: renderDraftButtons,
580
+ renderPublishButtons: renderPublishButtons
581
+ }), /*#__PURE__*/React.createElement(PublishBlock.Alert, {
582
+ isOpen: isResetAlertOpen,
583
+ isSubmitting: isResetting,
584
+ message: publishAlertDescription || t("neetoMolecules.navigationHeader.resetDescription"),
585
+ title: publishAlertTitle || t("neetoMolecules.navigationHeader.resetTitle"),
586
+ onClose: function onClose() {
587
+ return setIsResetAlertOpen(false);
588
+ },
589
+ onSubmit: handleReset
590
+ }));
591
+ };
592
+
593
+ var NavigationHeader = function NavigationHeader(_ref) {
594
+ var leftActionBlock = _ref.leftActionBlock,
595
+ navigationLinks = _ref.navigationLinks,
596
+ rightActionBlock = _ref.rightActionBlock;
597
+ return /*#__PURE__*/React.createElement("div", {
598
+ className: "neeto-form-builder-header neeto-ui-border-gray-200 neeto-ui-bg-white flex h-16 w-full flex-shrink-0 items-center border-b px-6 py-2",
599
+ "data-testid": "navigation-header"
600
+ }, /*#__PURE__*/React.createElement("div", {
601
+ className: "grid w-full grid-cols-3 gap-2"
602
+ }, leftActionBlock, navigationLinks, rightActionBlock));
603
+ };
604
+ NavigationHeader.LeftActionBlock = LeftBlock;
605
+ NavigationHeader.NavigationLinks = NavigationLinks;
606
+ NavigationHeader.RightActionBlock = RightBlock;
607
+
608
+ export { NavigationHeader as default };
609
+ //# sourceMappingURL=NavigationHeader.js.map