@bigbinary/neeto-molecules 4.3.0 → 4.3.2

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 (201) hide show
  1. package/dist/{Columns-DpeV3Jzz.js → Columns-gR00LMKF.js} +2 -2
  2. package/dist/Columns-gR00LMKF.js.map +1 -0
  3. package/dist/{ConfigureView-B0UvLoJe.js → ConfigureView-CG1M2-3b.js} +4 -15
  4. package/dist/ConfigureView-CG1M2-3b.js.map +1 -0
  5. package/dist/check-DvxzqR83.js +15 -0
  6. package/dist/check-DvxzqR83.js.map +1 -0
  7. package/dist/chevron-down-BMerqYpK.js +15 -0
  8. package/dist/chevron-down-BMerqYpK.js.map +1 -0
  9. package/dist/chevron-left-BTVCxPw8.js +15 -0
  10. package/dist/chevron-left-BTVCxPw8.js.map +1 -0
  11. package/dist/cjs/{Columns-C2ke8N58.js → Columns-Brpr2a_M.js} +2 -2
  12. package/dist/cjs/Columns-Brpr2a_M.js.map +1 -0
  13. package/dist/cjs/{ConfigureView-Coy1ViRc.js → ConfigureView-BVRHqVpb.js} +5 -16
  14. package/dist/cjs/ConfigureView-BVRHqVpb.js.map +1 -0
  15. package/dist/cjs/check-VgZf0qTr.js +17 -0
  16. package/dist/cjs/check-VgZf0qTr.js.map +1 -0
  17. package/dist/cjs/chevron-down-DwiliwN1.js +17 -0
  18. package/dist/cjs/chevron-down-DwiliwN1.js.map +1 -0
  19. package/dist/cjs/chevron-left-DWN80ILn.js +17 -0
  20. package/dist/cjs/chevron-left-DWN80ILn.js.map +1 -0
  21. package/dist/cjs/{useKeyboardShortcutsPaneState-BG_xVteC.js → useKeyboardShortcutsPaneState-DZUnpw9v.js} +2 -2
  22. package/dist/cjs/useKeyboardShortcutsPaneState-DZUnpw9v.js.map +1 -0
  23. package/dist/cjs/v2/AuditLogs.js +8 -8
  24. package/dist/cjs/v2/AuditLogs.js.map +1 -1
  25. package/dist/cjs/v2/BoardView.js +427 -0
  26. package/dist/cjs/v2/BoardView.js.map +1 -0
  27. package/dist/cjs/v2/Breadcrumbs.js +2 -2
  28. package/dist/cjs/v2/Breadcrumbs.js.map +1 -1
  29. package/dist/cjs/v2/CalendarView.js +429 -0
  30. package/dist/cjs/v2/CalendarView.js.map +1 -0
  31. package/dist/cjs/v2/Columns.js +2 -2
  32. package/dist/cjs/v2/ConfigurePageSidebar.js +4 -3
  33. package/dist/cjs/v2/ConfigurePageSidebar.js.map +1 -1
  34. package/dist/cjs/v2/CopyToClipboardButton.js +3 -13
  35. package/dist/cjs/v2/CopyToClipboardButton.js.map +1 -1
  36. package/dist/cjs/v2/DateFormat.js +42 -0
  37. package/dist/cjs/v2/DateFormat.js.map +1 -0
  38. package/dist/cjs/v2/DocumentEditor.js +329 -0
  39. package/dist/cjs/v2/DocumentEditor.js.map +1 -0
  40. package/dist/cjs/v2/EmojiPicker.js +125 -0
  41. package/dist/cjs/v2/EmojiPicker.js.map +1 -0
  42. package/dist/cjs/v2/Engagements.js +283 -0
  43. package/dist/cjs/v2/Engagements.js.map +1 -0
  44. package/dist/cjs/v2/ErrorPage.js +1 -1
  45. package/dist/cjs/v2/ErrorPage.js.map +1 -1
  46. package/dist/cjs/v2/FileUpload.js +644 -0
  47. package/dist/cjs/v2/FileUpload.js.map +1 -0
  48. package/dist/cjs/v2/FinderModal.js +253 -0
  49. package/dist/cjs/v2/FinderModal.js.map +1 -0
  50. package/dist/cjs/v2/FloatingActionMenu.js +11 -9
  51. package/dist/cjs/v2/FloatingActionMenu.js.map +1 -1
  52. package/dist/cjs/v2/Header.js +6 -6
  53. package/dist/cjs/v2/InlineInput.js +293 -0
  54. package/dist/cjs/v2/InlineInput.js.map +1 -0
  55. package/dist/cjs/v2/KeyboardShortcuts.js +3 -3
  56. package/dist/cjs/v2/KeyboardShortcuts.js.map +1 -1
  57. package/dist/cjs/v2/LoginPage.js +1 -1
  58. package/dist/cjs/v2/LoginPage.js.map +1 -1
  59. package/dist/cjs/v2/MenuBar.js +2 -2
  60. package/dist/cjs/v2/MenuBar.js.map +1 -1
  61. package/dist/cjs/v2/MoreDropdown.js +1 -1
  62. package/dist/cjs/v2/MoreDropdown.js.map +1 -1
  63. package/dist/cjs/v2/NavigationHeader.js +328 -0
  64. package/dist/cjs/v2/NavigationHeader.js.map +1 -0
  65. package/dist/cjs/v2/PublishBlock.js +414 -0
  66. package/dist/cjs/v2/PublishBlock.js.map +1 -0
  67. package/dist/cjs/v2/Rename.js +350 -0
  68. package/dist/cjs/v2/Rename.js.map +1 -0
  69. package/dist/cjs/v2/Scrollable.js +37 -0
  70. package/dist/cjs/v2/Scrollable.js.map +1 -0
  71. package/dist/cjs/v2/Search.js +5 -5
  72. package/dist/cjs/v2/Search.js.map +1 -1
  73. package/dist/cjs/v2/Settings.js +6 -6
  74. package/dist/cjs/v2/Settings.js.map +1 -1
  75. package/dist/cjs/v2/Sidebar.js +8 -7
  76. package/dist/cjs/v2/Sidebar.js.map +1 -1
  77. package/dist/cjs/v2/StickyRibbonsContainer.js +4 -4
  78. package/dist/cjs/v2/StickyRibbonsContainer.js.map +1 -1
  79. package/dist/cjs/v2/SubHeader.js +3 -3
  80. package/dist/cjs/v2/SubHeader.js.map +1 -1
  81. package/dist/cjs/v2/TimeFormat.js +15 -0
  82. package/dist/cjs/v2/TimeFormat.js.map +1 -0
  83. package/dist/{useKeyboardShortcutsPaneState-dNIbb_PI.js → useKeyboardShortcutsPaneState-BlyFMEtW.js} +2 -2
  84. package/dist/useKeyboardShortcutsPaneState-BlyFMEtW.js.map +1 -0
  85. package/dist/v2/AuditLogs.js +8 -8
  86. package/dist/v2/AuditLogs.js.map +1 -1
  87. package/dist/v2/BoardView.js +425 -0
  88. package/dist/v2/BoardView.js.map +1 -0
  89. package/dist/v2/Breadcrumbs.js +2 -2
  90. package/dist/v2/Breadcrumbs.js.map +1 -1
  91. package/dist/v2/CalendarView.js +427 -0
  92. package/dist/v2/CalendarView.js.map +1 -0
  93. package/dist/v2/Columns.js +2 -2
  94. package/dist/v2/ConfigurePageSidebar.js +4 -3
  95. package/dist/v2/ConfigurePageSidebar.js.map +1 -1
  96. package/dist/v2/CopyToClipboardButton.js +2 -12
  97. package/dist/v2/CopyToClipboardButton.js.map +1 -1
  98. package/dist/v2/DateFormat.js +40 -0
  99. package/dist/v2/DateFormat.js.map +1 -0
  100. package/dist/v2/DocumentEditor.js +327 -0
  101. package/dist/v2/DocumentEditor.js.map +1 -0
  102. package/dist/v2/EmojiPicker.js +123 -0
  103. package/dist/v2/EmojiPicker.js.map +1 -0
  104. package/dist/v2/Engagements.js +281 -0
  105. package/dist/v2/Engagements.js.map +1 -0
  106. package/dist/v2/ErrorPage.js +1 -1
  107. package/dist/v2/ErrorPage.js.map +1 -1
  108. package/dist/v2/FileUpload.js +641 -0
  109. package/dist/v2/FileUpload.js.map +1 -0
  110. package/dist/v2/FinderModal.js +251 -0
  111. package/dist/v2/FinderModal.js.map +1 -0
  112. package/dist/v2/FloatingActionMenu.js +11 -9
  113. package/dist/v2/FloatingActionMenu.js.map +1 -1
  114. package/dist/v2/Header.js +6 -6
  115. package/dist/v2/InlineInput.js +290 -0
  116. package/dist/v2/InlineInput.js.map +1 -0
  117. package/dist/v2/KeyboardShortcuts.js +3 -3
  118. package/dist/v2/KeyboardShortcuts.js.map +1 -1
  119. package/dist/v2/LoginPage.js +1 -1
  120. package/dist/v2/LoginPage.js.map +1 -1
  121. package/dist/v2/MenuBar.js +2 -2
  122. package/dist/v2/MenuBar.js.map +1 -1
  123. package/dist/v2/MoreDropdown.js +1 -1
  124. package/dist/v2/MoreDropdown.js.map +1 -1
  125. package/dist/v2/NavigationHeader.js +326 -0
  126. package/dist/v2/NavigationHeader.js.map +1 -0
  127. package/dist/v2/PublishBlock.js +412 -0
  128. package/dist/v2/PublishBlock.js.map +1 -0
  129. package/dist/v2/Rename.js +348 -0
  130. package/dist/v2/Rename.js.map +1 -0
  131. package/dist/v2/Scrollable.js +35 -0
  132. package/dist/v2/Scrollable.js.map +1 -0
  133. package/dist/v2/Search.js +5 -5
  134. package/dist/v2/Search.js.map +1 -1
  135. package/dist/v2/Settings.js +6 -6
  136. package/dist/v2/Settings.js.map +1 -1
  137. package/dist/v2/Sidebar.js +8 -7
  138. package/dist/v2/Sidebar.js.map +1 -1
  139. package/dist/v2/StickyRibbonsContainer.js +4 -4
  140. package/dist/v2/StickyRibbonsContainer.js.map +1 -1
  141. package/dist/v2/SubHeader.js +3 -3
  142. package/dist/v2/SubHeader.js.map +1 -1
  143. package/dist/v2/TimeFormat.js +13 -0
  144. package/dist/v2/TimeFormat.js.map +1 -0
  145. package/package.json +5 -5
  146. package/src/translations/ar.json +4 -2
  147. package/src/translations/bg.json +4 -2
  148. package/src/translations/ca.json +4 -2
  149. package/src/translations/cs.json +4 -2
  150. package/src/translations/da.json +4 -2
  151. package/src/translations/de.json +4 -2
  152. package/src/translations/en.json +4 -2
  153. package/src/translations/es-MX.json +4 -2
  154. package/src/translations/es.json +4 -2
  155. package/src/translations/et.json +4 -2
  156. package/src/translations/fi.json +4 -2
  157. package/src/translations/fil.json +4 -2
  158. package/src/translations/fr.json +4 -2
  159. package/src/translations/he.json +4 -2
  160. package/src/translations/hi.json +4 -2
  161. package/src/translations/hr.json +4 -2
  162. package/src/translations/hu.json +4 -2
  163. package/src/translations/id.json +4 -2
  164. package/src/translations/it.json +4 -2
  165. package/src/translations/ja.json +4 -2
  166. package/src/translations/ko.json +4 -2
  167. package/src/translations/nl.json +4 -2
  168. package/src/translations/pl.json +4 -2
  169. package/src/translations/pt-BR.json +4 -2
  170. package/src/translations/pt.json +4 -2
  171. package/src/translations/ro.json +4 -2
  172. package/src/translations/ru.json +4 -2
  173. package/src/translations/sk.json +4 -2
  174. package/src/translations/sl.json +4 -2
  175. package/src/translations/sv.json +4 -2
  176. package/src/translations/th.json +4 -2
  177. package/src/translations/tr.json +4 -2
  178. package/src/translations/uk.json +4 -2
  179. package/src/translations/vi.json +4 -2
  180. package/src/translations/zh-CN.json +4 -2
  181. package/src/translations/zh-TW.json +4 -2
  182. package/types/v2/BoardView.d.ts +27 -0
  183. package/types/v2/CalendarView.d.ts +40 -0
  184. package/types/v2/DateFormat.d.ts +19 -0
  185. package/types/v2/DocumentEditor.d.ts +20 -0
  186. package/types/v2/EmojiPicker.d.ts +14 -0
  187. package/types/v2/Engagements.d.ts +50 -0
  188. package/types/v2/FileUpload.d.ts +30 -0
  189. package/types/v2/FinderModal.d.ts +24 -0
  190. package/types/v2/InlineInput.d.ts +28 -0
  191. package/types/v2/NavigationHeader.d.ts +80 -0
  192. package/types/v2/PublishBlock.d.ts +39 -0
  193. package/types/v2/Rename.d.ts +33 -0
  194. package/types/v2/Scrollable.d.ts +15 -0
  195. package/types/v2/TimeFormat.d.ts +17 -0
  196. package/dist/Columns-DpeV3Jzz.js.map +0 -1
  197. package/dist/ConfigureView-B0UvLoJe.js.map +0 -1
  198. package/dist/cjs/Columns-C2ke8N58.js.map +0 -1
  199. package/dist/cjs/ConfigureView-Coy1ViRc.js.map +0 -1
  200. package/dist/cjs/useKeyboardShortcutsPaneState-BG_xVteC.js.map +0 -1
  201. package/dist/useKeyboardShortcutsPaneState-dNIbb_PI.js.map +0 -1
@@ -0,0 +1,348 @@
1
+ import _defineProperty from '@babel/runtime/helpers/defineProperty';
2
+ import _slicedToArray from '@babel/runtime/helpers/slicedToArray';
3
+ import { useRef, useLayoutEffect, useEffect, useState, useMemo } from 'react';
4
+ import classnames from 'classnames';
5
+ import { isPresent, notEquals, isNotEmpty } from '@bigbinary/neeto-cist';
6
+ import useOnClickOutside from '@bigbinary/neeto-commons-frontend/v2/react-utils/useOnClickOutside';
7
+ import useStateWithDependency from '@bigbinary/neeto-commons-frontend/v2/react-utils/useStateWithDependency';
8
+ import { isEmpty } from 'ramda';
9
+ import { Input, Button } from '@bigbinary/neeto-atoms';
10
+ import { withEventTargetValue } from '@bigbinary/neeto-commons-frontend/v2/utils/general';
11
+ import useHotkeys from '@bigbinary/neeto-hotkeys';
12
+ import { jsxs, jsx } from 'react/jsx-runtime';
13
+ import { C as Check } from '../check-DvxzqR83.js';
14
+ import { X } from '../x-B1Er0oV4.js';
15
+ import _toConsumableArray from '@babel/runtime/helpers/toConsumableArray';
16
+ import { withT } from '@bigbinary/neeto-commons-frontend/v2/react-utils';
17
+ import MoreDropdown from './MoreDropdown.js';
18
+ import Breadcrumbs from './Breadcrumbs.js';
19
+ import '../createLucideIcon-mNMhCCpf.js';
20
+ import '@babel/runtime/helpers/objectWithoutProperties';
21
+ import 'react-i18next';
22
+ import '../ellipsis-DpI9xqUK.js';
23
+ import '@bigbinary/neeto-atoms/primitives';
24
+ import 'react-router-dom';
25
+
26
+ var mergeRefs = function mergeRefs() {
27
+ for (var _len = arguments.length, refs = new Array(_len), _key = 0; _key < _len; _key++) {
28
+ refs[_key] = arguments[_key];
29
+ }
30
+ return function (node) {
31
+ return refs.forEach(function (ref) {
32
+ return typeof ref === "function" ? ref(node) : ref.current = node;
33
+ });
34
+ };
35
+ };
36
+
37
+ 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; }
38
+ 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; }
39
+ var Editor = function Editor(_ref) {
40
+ var placeholder = _ref.placeholder,
41
+ allowEmptySubmission = _ref.allowEmptySubmission,
42
+ name = _ref.name,
43
+ isLoading = _ref.isLoading,
44
+ handleRename = _ref.handleRename,
45
+ submitButtonProps = _ref.submitButtonProps,
46
+ handleClose = _ref.handleClose,
47
+ cancelButtonProps = _ref.cancelButtonProps,
48
+ setName = _ref.setName,
49
+ inputProps = _ref.inputProps,
50
+ editMode = _ref.editMode;
51
+ var inputRef = useRef();
52
+ var wrapperRef = useRef();
53
+ var closeRef = useHotkeys("escape", function (event) {
54
+ return handleClose({
55
+ event: event
56
+ });
57
+ }, {
58
+ mode: "scoped",
59
+ enabled: editMode
60
+ });
61
+ var submitRef = useHotkeys(["command+return", "return"], function (event) {
62
+ if (isEmpty(name) && !allowEmptySubmission) return;
63
+ handleRename(event, name);
64
+ }, {
65
+ mode: "scoped",
66
+ enabled: editMode
67
+ });
68
+ useLayoutEffect(function () {
69
+ var _wrapperRef$current;
70
+ var inputElement = (_wrapperRef$current = wrapperRef.current) === null || _wrapperRef$current === void 0 ? void 0 : _wrapperRef$current.querySelector("input");
71
+ mergeRefs(closeRef, submitRef, inputRef)(inputElement);
72
+ });
73
+ useEffect(function () {
74
+ var _inputRef$current;
75
+ (_inputRef$current = inputRef.current) === null || _inputRef$current === void 0 || _inputRef$current.select();
76
+ }, []);
77
+ return /*#__PURE__*/jsxs("div", {
78
+ className: "relative flex max-w-full min-w-0 flex-grow",
79
+ ref: wrapperRef,
80
+ children: [/*#__PURE__*/jsx("span", {
81
+ className: "invisible me-[4.25rem] inline-flex min-h-[2.125rem] max-w-full min-w-[7.5rem] cursor-pointer overflow-hidden rounded border border-transparent px-2 py-2 text-sm leading-tight font-semibold whitespace-nowrap",
82
+ children: name.replace(/\s/g, ".") || placeholder
83
+ }), /*#__PURE__*/jsx(Input, _objectSpread$3(_objectSpread$3({
84
+ placeholder: placeholder,
85
+ autoFocus: true,
86
+ className: "absolute inset-0 w-full",
87
+ "data-testid": "form-rename-text-field",
88
+ value: name,
89
+ suffix: /*#__PURE__*/jsxs("div", {
90
+ className: "flex items-center justify-end",
91
+ children: [/*#__PURE__*/jsx(Button, _objectSpread$3({
92
+ "data-testid": "form-rename-submit-button",
93
+ disabled: !allowEmptySubmission && isEmpty(name) || isLoading,
94
+ icon: Check,
95
+ loading: isLoading,
96
+ size: "icon-sm",
97
+ variant: "ghost",
98
+ onClick: function onClick(event) {
99
+ return handleRename(event, name);
100
+ }
101
+ }, submitButtonProps)), /*#__PURE__*/jsx(Button, _objectSpread$3({
102
+ "data-testid": "form-rename-close-button",
103
+ disabled: isLoading,
104
+ icon: X,
105
+ size: "icon-sm",
106
+ variant: "ghost",
107
+ onClick: function onClick(event) {
108
+ return handleClose({
109
+ event: event
110
+ });
111
+ }
112
+ }, cancelButtonProps))]
113
+ }),
114
+ onChange: withEventTargetValue(setName),
115
+ onClick: function onClick(event) {
116
+ return event.stopPropagation();
117
+ }
118
+ }, inputProps), {}, {
119
+ label: null
120
+ }))]
121
+ });
122
+ };
123
+
124
+ 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; }
125
+ 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; }
126
+ var RenameMenu = withT(function (_ref) {
127
+ var t = _ref.t,
128
+ handleRenameClick = _ref.handleRenameClick,
129
+ disabled = _ref.disabled,
130
+ dropdownItems = _ref.dropdownItems,
131
+ onArchiveStatusToggle = _ref.onArchiveStatusToggle,
132
+ onDisableStatusToggle = _ref.onDisableStatusToggle,
133
+ onClone = _ref.onClone,
134
+ onDelete = _ref.onDelete,
135
+ isArchived = _ref.isArchived,
136
+ isDisabled = _ref.isDisabled,
137
+ dropdownButtonProps = _ref.dropdownButtonProps,
138
+ dropdownProps = _ref.dropdownProps;
139
+ return /*#__PURE__*/jsx(MoreDropdown, {
140
+ dropdownButtonProps: _objectSpread$2({
141
+ "data-testid": "neeto-molecules-menu-button"
142
+ }, dropdownButtonProps),
143
+ dropdownProps: _objectSpread$2({
144
+ position: "bottom-start",
145
+ onClick: function onClick(event) {
146
+ return event.stopPropagation();
147
+ }
148
+ }, dropdownProps),
149
+ menuItems: [{
150
+ "data-testid": "form-rename-button",
151
+ onClick: handleRenameClick,
152
+ label: t("neetoMolecules.common.actions.rename"),
153
+ isVisible: !disabled,
154
+ key: "edit-name-menu"
155
+ }, {
156
+ "data-testid": "form-clone-button",
157
+ onClick: onClone,
158
+ label: t("neetoMolecules.common.actions.clone"),
159
+ isVisible: isPresent(onClone),
160
+ key: "clone-entity-menu"
161
+ }, {
162
+ "data-testid": "form-archive-button",
163
+ onClick: onArchiveStatusToggle,
164
+ label: isArchived ? t("neetoMolecules.common.actions.unArchive") : t("neetoMolecules.common.actions.archive"),
165
+ isVisible: isPresent(onArchiveStatusToggle),
166
+ key: "archive-entity-menu"
167
+ }, {
168
+ "data-testid": "form-enable-button",
169
+ onClick: onDisableStatusToggle,
170
+ label: isDisabled ? t("neetoMolecules.common.actions.enable") : t("neetoMolecules.common.actions.disable"),
171
+ isVisible: isPresent(onDisableStatusToggle),
172
+ key: "enable-entity-menu"
173
+ }, {
174
+ "data-testid": "form-delete-button",
175
+ onClick: onDelete,
176
+ label: t("neetoMolecules.common.actions.delete"),
177
+ isVisible: isPresent(onDelete),
178
+ key: "delete-entity-menu"
179
+ }].concat(_toConsumableArray(dropdownItems))
180
+ });
181
+ });
182
+
183
+ 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; }
184
+ 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; }
185
+ var ViewName = function ViewName(_ref) {
186
+ var disabled = _ref.disabled,
187
+ textProps = _ref.textProps,
188
+ formatText = _ref.formatText,
189
+ handleRenameClick = _ref.handleRenameClick,
190
+ name = _ref.name;
191
+ return /*#__PURE__*/jsx("p", _objectSpread$1(_objectSpread$1({
192
+ "data-testid": "form-title",
193
+ className: classnames("neeto-molecules-rename__text neeto-molecules-rename__display-text bg-card hover:border-input text-foreground flex h-[2.125rem] w-full max-w-md items-center truncate rounded border border-transparent px-2 text-sm leading-tight font-semibold transition", {
194
+ "cursor-pointer": !disabled,
195
+ "pointer-events-none cursor-text": disabled
196
+ }),
197
+ onClick: handleRenameClick
198
+ }, textProps), {}, {
199
+ children: typeof formatText === "function" ? formatText(name) : name
200
+ }));
201
+ };
202
+
203
+ 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; }
204
+ 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; }
205
+ var Rename = function Rename(_ref) {
206
+ var value = _ref.value,
207
+ onRename = _ref.onRename,
208
+ onClone = _ref.onClone,
209
+ onArchiveStatusToggle = _ref.onArchiveStatusToggle,
210
+ onDisableStatusToggle = _ref.onDisableStatusToggle,
211
+ onDelete = _ref.onDelete,
212
+ isArchived = _ref.isArchived,
213
+ isDisabled = _ref.isDisabled,
214
+ _ref$isOpen = _ref.isOpen,
215
+ isOpen = _ref$isOpen === void 0 ? false : _ref$isOpen,
216
+ _ref$isLoading = _ref.isLoading,
217
+ isLoading = _ref$isLoading === void 0 ? false : _ref$isLoading,
218
+ _ref$placeholder = _ref.placeholder,
219
+ placeholder = _ref$placeholder === void 0 ? "" : _ref$placeholder,
220
+ _ref$hideMenu = _ref.hideMenu,
221
+ hideMenu = _ref$hideMenu === void 0 ? false : _ref$hideMenu,
222
+ _ref$disabled = _ref.disabled,
223
+ disabled = _ref$disabled === void 0 ? false : _ref$disabled,
224
+ _ref$dropdownItems = _ref.dropdownItems,
225
+ dropdownItems = _ref$dropdownItems === void 0 ? [] : _ref$dropdownItems,
226
+ _ref$breadcrumbs = _ref.breadcrumbs,
227
+ breadcrumbs = _ref$breadcrumbs === void 0 ? [] : _ref$breadcrumbs,
228
+ _ref$textProps = _ref.textProps,
229
+ textProps = _ref$textProps === void 0 ? {} : _ref$textProps,
230
+ _ref$inputProps = _ref.inputProps,
231
+ inputProps = _ref$inputProps === void 0 ? {} : _ref$inputProps,
232
+ _ref$submitButtonProp = _ref.submitButtonProps,
233
+ submitButtonProps = _ref$submitButtonProp === void 0 ? {} : _ref$submitButtonProp,
234
+ _ref$cancelButtonProp = _ref.cancelButtonProps,
235
+ cancelButtonProps = _ref$cancelButtonProp === void 0 ? {} : _ref$cancelButtonProp,
236
+ _ref$className = _ref.className,
237
+ className = _ref$className === void 0 ? "" : _ref$className,
238
+ _ref$allowEmptySubmis = _ref.allowEmptySubmission,
239
+ allowEmptySubmission = _ref$allowEmptySubmis === void 0 ? false : _ref$allowEmptySubmis,
240
+ _ref$defaultName = _ref.defaultName,
241
+ defaultName = _ref$defaultName === void 0 ? "" : _ref$defaultName,
242
+ formatText = _ref.formatText,
243
+ _ref$dropdownButtonPr = _ref.dropdownButtonProps,
244
+ dropdownButtonProps = _ref$dropdownButtonPr === void 0 ? {} : _ref$dropdownButtonPr,
245
+ _ref$dropdownProps = _ref.dropdownProps,
246
+ dropdownProps = _ref$dropdownProps === void 0 ? {} : _ref$dropdownProps,
247
+ _ref$secondaryInfo = _ref.secondaryInfo,
248
+ secondaryInfo = _ref$secondaryInfo === void 0 ? "" : _ref$secondaryInfo;
249
+ var _useStateWithDependen = useStateWithDependency(value !== null && value !== void 0 ? value : ""),
250
+ _useStateWithDependen2 = _slicedToArray(_useStateWithDependen, 2),
251
+ name = _useStateWithDependen2[0],
252
+ setName = _useStateWithDependen2[1];
253
+ var _useState = useState(isOpen),
254
+ _useState2 = _slicedToArray(_useState, 2),
255
+ editMode = _useState2[0],
256
+ setEditMode = _useState2[1];
257
+ var renameRef = useRef(null);
258
+ var initialName = useMemo(function () {
259
+ return name;
260
+ }, [editMode]);
261
+ useOnClickOutside(renameRef, function () {
262
+ return editMode && handleClose({
263
+ saveOnOutsideClick: notEquals(name, initialName)
264
+ });
265
+ });
266
+ var handleRename = function handleRename(event, name) {
267
+ event === null || event === void 0 || event.stopPropagation();
268
+ var newName = allowEmptySubmission && isEmpty(name) ? defaultName : name;
269
+ setName(newName);
270
+ onRename === null || onRename === void 0 || onRename(newName);
271
+ setEditMode(false);
272
+ };
273
+ var handleClose = function handleClose(_ref2) {
274
+ var _ref2$event = _ref2.event,
275
+ event = _ref2$event === void 0 ? null : _ref2$event,
276
+ _ref2$saveOnOutsideCl = _ref2.saveOnOutsideClick,
277
+ saveOnOutsideClick = _ref2$saveOnOutsideCl === void 0 ? false : _ref2$saveOnOutsideCl;
278
+ event === null || event === void 0 || event.stopPropagation();
279
+ saveOnOutsideClick ? handleRename(event, name) : setName(value);
280
+ setEditMode(false);
281
+ };
282
+ var handleRenameClick = function handleRenameClick(event) {
283
+ event.stopPropagation();
284
+ !disabled && setEditMode(true);
285
+ };
286
+ var isDefaultMenuCallbacksPresent = isPresent(onArchiveStatusToggle) || isPresent(onDisableStatusToggle) || isPresent(onDelete) || isPresent(onClone);
287
+ var isMenuVisible = !editMode && !hideMenu && (isNotEmpty(dropdownItems) || !disabled || isDefaultMenuCallbacksPresent);
288
+ var editNameProps = {
289
+ allowEmptySubmission: allowEmptySubmission,
290
+ cancelButtonProps: cancelButtonProps,
291
+ handleClose: handleClose,
292
+ handleRename: handleRename,
293
+ inputProps: inputProps,
294
+ isLoading: isLoading,
295
+ name: name,
296
+ placeholder: placeholder,
297
+ setName: setName,
298
+ submitButtonProps: submitButtonProps,
299
+ editMode: editMode
300
+ };
301
+ var viewNameProps = {
302
+ disabled: disabled,
303
+ formatText: formatText,
304
+ handleRenameClick: handleRenameClick,
305
+ name: name,
306
+ textProps: textProps
307
+ };
308
+ var renameMenuProps = {
309
+ disabled: disabled,
310
+ dropdownButtonProps: dropdownButtonProps,
311
+ dropdownItems: dropdownItems,
312
+ dropdownProps: dropdownProps,
313
+ handleRenameClick: handleRenameClick,
314
+ isArchived: isArchived,
315
+ isDisabled: isDisabled,
316
+ onArchiveStatusToggle: onArchiveStatusToggle,
317
+ onClone: onClone,
318
+ onDelete: onDelete,
319
+ onDisableStatusToggle: onDisableStatusToggle
320
+ };
321
+ return /*#__PURE__*/jsxs("div", {
322
+ ref: renameRef,
323
+ className: classnames("neeto-molecules-rename flex max-w-md min-w-0", className),
324
+ children: [/*#__PURE__*/jsxs("div", {
325
+ className: "flex max-w-full flex-1 flex-col items-start",
326
+ children: [/*#__PURE__*/jsxs("div", {
327
+ className: "flex max-w-full flex-col items-start md:flex-row md:items-center",
328
+ children: [isNotEmpty(breadcrumbs) && /*#__PURE__*/jsx(Breadcrumbs, {
329
+ breadcrumbs: breadcrumbs,
330
+ hasTrailingSeparator: true,
331
+ className: "neeto-molecules-rename-breadcrumbs"
332
+ }), /*#__PURE__*/jsx("div", {
333
+ className: "flex max-w-full items-center",
334
+ children: editMode ? /*#__PURE__*/jsx(Editor, _objectSpread({}, editNameProps)) : /*#__PURE__*/jsx(ViewName, _objectSpread({}, viewNameProps))
335
+ })]
336
+ }), isNotEmpty(secondaryInfo) && !editMode && /*#__PURE__*/jsx("div", {
337
+ className: "text-muted-foreground ms-2 -mt-1 max-w-full truncate text-xs leading-tight",
338
+ children: secondaryInfo
339
+ })]
340
+ }), isMenuVisible && /*#__PURE__*/jsx("div", {
341
+ className: "ms-1 flex items-center self-center",
342
+ children: /*#__PURE__*/jsx(RenameMenu, _objectSpread({}, renameMenuProps))
343
+ })]
344
+ });
345
+ };
346
+
347
+ export { Rename as default };
348
+ //# sourceMappingURL=Rename.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"Rename.js","sources":["../../src/v2/components/Rename/utils.js","../../src/v2/components/Rename/EditName.jsx","../../src/v2/components/Rename/RenameMenu.jsx","../../src/v2/components/Rename/ViewName.jsx","../../src/v2/components/Rename/index.jsx"],"sourcesContent":["export const mergeRefs =\n (...refs) =>\n node =>\n refs.forEach(ref =>\n typeof ref === \"function\" ? ref(node) : (ref.current = node)\n );\n","import { useEffect, useLayoutEffect, useRef } from \"react\";\n\nimport { Button, Input } from \"@bigbinary/neeto-atoms\";\nimport { Check, X } from \"lucide-react\";\nimport { withEventTargetValue } from \"neetocommons/v2/utils/general\";\nimport useHotkeys from \"neetohotkeys\";\nimport { isEmpty } from \"ramda\";\n\nimport { mergeRefs } from \"./utils\";\n\nconst Editor = ({\n placeholder,\n allowEmptySubmission,\n name,\n isLoading,\n handleRename,\n submitButtonProps,\n handleClose,\n cancelButtonProps,\n setName,\n inputProps,\n editMode,\n}) => {\n const inputRef = useRef();\n const wrapperRef = useRef();\n\n const closeRef = useHotkeys(\"escape\", event => handleClose({ event }), {\n mode: \"scoped\",\n enabled: editMode,\n });\n\n const submitRef = useHotkeys(\n [\"command+return\", \"return\"],\n event => {\n if (isEmpty(name) && !allowEmptySubmission) return;\n handleRename(event, name);\n },\n { mode: \"scoped\", enabled: editMode }\n );\n\n useLayoutEffect(() => {\n const inputElement = wrapperRef.current?.querySelector(\"input\");\n mergeRefs(closeRef, submitRef, inputRef)(inputElement);\n });\n\n useEffect(() => {\n inputRef.current?.select();\n }, []);\n\n return (\n <div\n className=\"relative flex max-w-full min-w-0 flex-grow\"\n ref={wrapperRef}\n >\n <span className=\"invisible me-[4.25rem] inline-flex min-h-[2.125rem] max-w-full min-w-[7.5rem] cursor-pointer overflow-hidden rounded border border-transparent px-2 py-2 text-sm leading-tight font-semibold whitespace-nowrap\">\n {name.replace(/\\s/g, \".\") || placeholder}\n </span>\n <Input\n {...{ placeholder }}\n autoFocus\n className=\"absolute inset-0 w-full\"\n data-testid=\"form-rename-text-field\"\n value={name}\n suffix={\n <div className=\"flex items-center justify-end\">\n <Button\n data-testid=\"form-rename-submit-button\"\n disabled={(!allowEmptySubmission && isEmpty(name)) || isLoading}\n icon={Check}\n loading={isLoading}\n size=\"icon-sm\"\n variant=\"ghost\"\n onClick={event => handleRename(event, name)}\n {...submitButtonProps}\n />\n <Button\n data-testid=\"form-rename-close-button\"\n disabled={isLoading}\n icon={X}\n size=\"icon-sm\"\n variant=\"ghost\"\n onClick={event => handleClose({ event })}\n {...cancelButtonProps}\n />\n </div>\n }\n onChange={withEventTargetValue(setName)}\n onClick={event => event.stopPropagation()}\n {...inputProps}\n label={null}\n />\n </div>\n );\n};\n\nexport default Editor;\n","import { isPresent } from \"neetocist\";\nimport { withT } from \"neetocommons/v2/react-utils\";\n\nimport MoreDropdown from \"../MoreDropdown\";\n\nconst RenameMenu = withT(\n ({\n t,\n handleRenameClick,\n disabled,\n dropdownItems,\n onArchiveStatusToggle,\n onDisableStatusToggle,\n onClone,\n onDelete,\n isArchived,\n isDisabled,\n dropdownButtonProps,\n dropdownProps,\n }) => (\n <MoreDropdown\n dropdownButtonProps={{\n \"data-testid\": \"neeto-molecules-menu-button\",\n ...dropdownButtonProps,\n }}\n dropdownProps={{\n position: \"bottom-start\",\n onClick: event => event.stopPropagation(),\n ...dropdownProps,\n }}\n menuItems={[\n {\n \"data-testid\": \"form-rename-button\",\n onClick: handleRenameClick,\n label: t(\"neetoMolecules.common.actions.rename\"),\n isVisible: !disabled,\n key: \"edit-name-menu\",\n },\n {\n \"data-testid\": \"form-clone-button\",\n onClick: onClone,\n label: t(\"neetoMolecules.common.actions.clone\"),\n isVisible: isPresent(onClone),\n key: \"clone-entity-menu\",\n },\n {\n \"data-testid\": \"form-archive-button\",\n onClick: onArchiveStatusToggle,\n label: isArchived\n ? t(\"neetoMolecules.common.actions.unArchive\")\n : t(\"neetoMolecules.common.actions.archive\"),\n isVisible: isPresent(onArchiveStatusToggle),\n key: \"archive-entity-menu\",\n },\n {\n \"data-testid\": \"form-enable-button\",\n onClick: onDisableStatusToggle,\n label: isDisabled\n ? t(\"neetoMolecules.common.actions.enable\")\n : t(\"neetoMolecules.common.actions.disable\"),\n isVisible: isPresent(onDisableStatusToggle),\n key: \"enable-entity-menu\",\n },\n {\n \"data-testid\": \"form-delete-button\",\n onClick: onDelete,\n label: t(\"neetoMolecules.common.actions.delete\"),\n isVisible: isPresent(onDelete),\n key: \"delete-entity-menu\",\n },\n ...dropdownItems,\n ]}\n />\n )\n);\n\nexport default RenameMenu;\n","import classNames from \"classnames\";\n\nconst ViewName = ({\n disabled,\n textProps,\n formatText,\n handleRenameClick,\n name,\n}) => (\n <p\n data-testid=\"form-title\"\n className={classNames(\n \"neeto-molecules-rename__text neeto-molecules-rename__display-text bg-card hover:border-input text-foreground flex h-[2.125rem] w-full max-w-md items-center truncate rounded border border-transparent px-2 text-sm leading-tight font-semibold transition\",\n {\n \"cursor-pointer\": !disabled,\n \"pointer-events-none cursor-text\": disabled,\n }\n )}\n onClick={handleRenameClick}\n {...textProps}\n >\n {typeof formatText === \"function\" ? formatText(name) : name}\n </p>\n);\n\nexport default ViewName;\n","import { useState, useRef, useMemo } from \"react\";\n\nimport classnames from \"classnames\";\nimport { isNotEmpty, isPresent, notEquals } from \"neetocist\";\nimport useOnClickOutside from \"neetocommons/v2/react-utils/useOnClickOutside\";\nimport useStateWithDependency from \"neetocommons/v2/react-utils/useStateWithDependency\";\nimport PropTypes from \"prop-types\";\nimport { isEmpty } from \"ramda\";\n\nimport EditName from \"./EditName\";\nimport RenameMenu from \"./RenameMenu\";\nimport ViewName from \"./ViewName\";\n\nimport Breadcrumbs from \"../Breadcrumbs\";\n\nconst Rename = ({\n value,\n onRename,\n onClone,\n onArchiveStatusToggle,\n onDisableStatusToggle,\n onDelete,\n isArchived,\n isDisabled,\n isOpen = false,\n isLoading = false,\n placeholder = \"\",\n hideMenu = false,\n disabled = false,\n dropdownItems = [],\n breadcrumbs = [],\n textProps = {},\n inputProps = {},\n submitButtonProps = {},\n cancelButtonProps = {},\n className = \"\",\n allowEmptySubmission = false,\n defaultName = \"\",\n formatText,\n dropdownButtonProps = {},\n dropdownProps = {},\n secondaryInfo = \"\",\n}) => {\n const [name, setName] = useStateWithDependency(value ?? \"\");\n const [editMode, setEditMode] = useState(isOpen);\n const renameRef = useRef(null);\n\n const initialName = useMemo(() => name, [editMode]);\n\n useOnClickOutside(\n renameRef,\n () =>\n editMode &&\n handleClose({ saveOnOutsideClick: notEquals(name, initialName) })\n );\n\n const handleRename = (event, name) => {\n event?.stopPropagation();\n const newName = allowEmptySubmission && isEmpty(name) ? defaultName : name;\n setName(newName);\n onRename?.(newName);\n setEditMode(false);\n };\n\n const handleClose = ({ event = null, saveOnOutsideClick = false }) => {\n event?.stopPropagation();\n saveOnOutsideClick ? handleRename(event, name) : setName(value);\n setEditMode(false);\n };\n\n const handleRenameClick = event => {\n event.stopPropagation();\n !disabled && setEditMode(true);\n };\n\n const isDefaultMenuCallbacksPresent =\n isPresent(onArchiveStatusToggle) ||\n isPresent(onDisableStatusToggle) ||\n isPresent(onDelete) ||\n isPresent(onClone);\n\n const isMenuVisible =\n !editMode &&\n !hideMenu &&\n (isNotEmpty(dropdownItems) || !disabled || isDefaultMenuCallbacksPresent);\n\n const editNameProps = {\n allowEmptySubmission,\n cancelButtonProps,\n handleClose,\n handleRename,\n inputProps,\n isLoading,\n name,\n placeholder,\n setName,\n submitButtonProps,\n editMode,\n };\n\n const viewNameProps = {\n disabled,\n formatText,\n handleRenameClick,\n name,\n textProps,\n };\n\n const renameMenuProps = {\n disabled,\n dropdownButtonProps,\n dropdownItems,\n dropdownProps,\n handleRenameClick,\n isArchived,\n isDisabled,\n onArchiveStatusToggle,\n onClone,\n onDelete,\n onDisableStatusToggle,\n };\n\n return (\n <div\n ref={renameRef}\n className={classnames(\n \"neeto-molecules-rename flex max-w-md min-w-0\",\n className\n )}\n >\n <div className=\"flex max-w-full flex-1 flex-col items-start\">\n <div className=\"flex max-w-full flex-col items-start md:flex-row md:items-center\">\n {isNotEmpty(breadcrumbs) && (\n <Breadcrumbs\n {...{ breadcrumbs }}\n hasTrailingSeparator\n className=\"neeto-molecules-rename-breadcrumbs\"\n />\n )}\n <div className=\"flex max-w-full items-center\">\n {editMode ? (\n <EditName {...editNameProps} />\n ) : (\n <ViewName {...viewNameProps} />\n )}\n </div>\n </div>\n {isNotEmpty(secondaryInfo) && !editMode && (\n <div className=\"text-muted-foreground ms-2 -mt-1 max-w-full truncate text-xs leading-tight\">\n {secondaryInfo}\n </div>\n )}\n </div>\n {isMenuVisible && (\n <div className=\"ms-1 flex items-center self-center\">\n <RenameMenu {...renameMenuProps} />\n </div>\n )}\n </div>\n );\n};\n\nRename.propTypes = {\n className: PropTypes.string,\n allowEmptySubmission: PropTypes.bool,\n defaultName: PropTypes.string,\n value: PropTypes.string,\n onRename: PropTypes.func,\n onClone: PropTypes.func,\n onArchiveStatusToggle: PropTypes.func,\n onDisableStatusToggle: PropTypes.func,\n isArchived: PropTypes.bool,\n isDisabled: PropTypes.bool,\n onDelete: PropTypes.func,\n isOpen: PropTypes.bool,\n isLoading: PropTypes.bool,\n placeholder: PropTypes.string,\n hideMenu: PropTypes.bool,\n disabled: PropTypes.bool,\n dropdownItems: PropTypes.array,\n breadcrumbs: PropTypes.arrayOf(\n PropTypes.shape({ text: PropTypes.string, link: PropTypes.string })\n ),\n textProps: PropTypes.object,\n inputProps: PropTypes.object,\n formatText: PropTypes.func,\n submitButtonProps: PropTypes.object,\n cancelButtonProps: PropTypes.object,\n secondaryInfo: PropTypes.string,\n};\n\nexport default Rename;\n"],"names":["mergeRefs","_len","arguments","length","refs","Array","_key","node","forEach","ref","current","Editor","_ref","placeholder","allowEmptySubmission","name","isLoading","handleRename","submitButtonProps","handleClose","cancelButtonProps","setName","inputProps","editMode","inputRef","useRef","wrapperRef","closeRef","useHotkeys","event","mode","enabled","submitRef","isEmpty","useLayoutEffect","_wrapperRef$current","inputElement","querySelector","useEffect","_inputRef$current","select","_jsxs","className","children","_jsx","replace","Input","_objectSpread","autoFocus","value","suffix","Button","disabled","icon","Check","loading","size","variant","onClick","X","onChange","withEventTargetValue","stopPropagation","label","RenameMenu","withT","t","handleRenameClick","dropdownItems","onArchiveStatusToggle","onDisableStatusToggle","onClone","onDelete","isArchived","isDisabled","dropdownButtonProps","dropdownProps","MoreDropdown","position","menuItems","isVisible","key","isPresent","concat","_toConsumableArray","ViewName","textProps","formatText","classNames","Rename","onRename","_ref$isOpen","isOpen","_ref$isLoading","_ref$placeholder","_ref$hideMenu","hideMenu","_ref$disabled","_ref$dropdownItems","_ref$breadcrumbs","breadcrumbs","_ref$textProps","_ref$inputProps","_ref$submitButtonProp","_ref$cancelButtonProp","_ref$className","_ref$allowEmptySubmis","_ref$defaultName","defaultName","_ref$dropdownButtonPr","_ref$dropdownProps","_ref$secondaryInfo","secondaryInfo","_useStateWithDependen","useStateWithDependency","_useStateWithDependen2","_slicedToArray","_useState","useState","_useState2","setEditMode","renameRef","initialName","useMemo","useOnClickOutside","saveOnOutsideClick","notEquals","newName","_ref2","_ref2$event","_ref2$saveOnOutsideCl","isDefaultMenuCallbacksPresent","isMenuVisible","isNotEmpty","editNameProps","viewNameProps","renameMenuProps","classnames","Breadcrumbs","hasTrailingSeparator","EditName"],"mappings":"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"}
@@ -0,0 +1,35 @@
1
+ import _defineProperty from '@babel/runtime/helpers/defineProperty';
2
+ import _objectWithoutProperties from '@babel/runtime/helpers/objectWithoutProperties';
3
+ import classnames from 'classnames';
4
+ import { jsx } from 'react/jsx-runtime';
5
+
6
+ var SIZES = {
7
+ nano: "nano",
8
+ small: "small",
9
+ medium: "medium",
10
+ large: "large",
11
+ viewport: "viewport"
12
+ };
13
+ var SCROLLABLE_BASE_CLASS = "neeto-molecules-scrollable";
14
+ var SIZE_CLASSES = _defineProperty(_defineProperty(_defineProperty(_defineProperty(_defineProperty({}, SIZES.nano, "[height:calc(100dvh-var(--neeto-molecules-effective-header-height)-var(--neeto-molecules-effective-subheader-height)-var(--neeto-molecules-sub-header-bottom-margin))]"), SIZES.small, "[height:calc(100dvh-var(--neeto-molecules-effective-header-height)-var(--neeto-molecules-effective-subheader-height)-var(--neeto-molecules-sub-header-bottom-margin))]"), SIZES.medium, "[height:calc(100dvh-var(--neeto-molecules-effective-header-height))]"), SIZES.large, "[height:calc(100dvh-var(--neeto-molecules-effective-header-height))]"), SIZES.viewport, "h-dvh");
15
+
16
+ var _excluded = ["children", "className", "size"];
17
+ 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; }
18
+ 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; }
19
+ var Scrollable = function Scrollable(_ref) {
20
+ var children = _ref.children,
21
+ _ref$className = _ref.className,
22
+ className = _ref$className === void 0 ? "" : _ref$className,
23
+ _ref$size = _ref.size,
24
+ size = _ref$size === void 0 ? "small" : _ref$size,
25
+ otherProps = _objectWithoutProperties(_ref, _excluded);
26
+ return /*#__PURE__*/jsx("div", _objectSpread(_objectSpread({
27
+ "data-size": size,
28
+ className: classnames(SCROLLABLE_BASE_CLASS, "flex-grow overflow-y-auto", SIZE_CLASSES[size], className)
29
+ }, otherProps), {}, {
30
+ children: children
31
+ }));
32
+ };
33
+
34
+ export { Scrollable as default };
35
+ //# sourceMappingURL=Scrollable.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"Scrollable.js","sources":["../../src/v2/components/Scrollable/constants.js","../../src/v2/components/Scrollable/index.jsx"],"sourcesContent":["const SIZES = {\n nano: \"nano\",\n small: \"small\",\n medium: \"medium\",\n large: \"large\",\n viewport: \"viewport\",\n};\n\nconst SCROLLABLE_BASE_CLASS = \"neeto-molecules-scrollable\";\n\nconst SIZE_CLASSES = {\n [SIZES.nano]:\n \"[height:calc(100dvh-var(--neeto-molecules-effective-header-height)-var(--neeto-molecules-effective-subheader-height)-var(--neeto-molecules-sub-header-bottom-margin))]\",\n [SIZES.small]:\n \"[height:calc(100dvh-var(--neeto-molecules-effective-header-height)-var(--neeto-molecules-effective-subheader-height)-var(--neeto-molecules-sub-header-bottom-margin))]\",\n [SIZES.medium]:\n \"[height:calc(100dvh-var(--neeto-molecules-effective-header-height))]\",\n [SIZES.large]:\n \"[height:calc(100dvh-var(--neeto-molecules-effective-header-height))]\",\n [SIZES.viewport]: \"h-dvh\",\n};\n\nexport { SIZES, SCROLLABLE_BASE_CLASS, SIZE_CLASSES };\n","import classnames from \"classnames\";\nimport PropTypes from \"prop-types\";\n\nimport { SCROLLABLE_BASE_CLASS, SIZE_CLASSES, SIZES } from \"./constants\";\n\nconst Scrollable = ({\n children,\n className = \"\",\n size = \"small\",\n ...otherProps\n}) => (\n <div\n data-size={size}\n className={classnames(\n SCROLLABLE_BASE_CLASS,\n \"flex-grow overflow-y-auto\",\n SIZE_CLASSES[size],\n className\n )}\n {...otherProps}\n >\n {children}\n </div>\n);\n\nScrollable.propTypes = {\n /**\n * To specify the components to be rendered inside the Scrollable.\n */\n children: PropTypes.node,\n /**\n * To specify vertical size of the Scrollable.\n *\n * `large` - for size with an offset of `Header` height.\n *\n * `medium` - for size with an offset of `Header` with breadcrumbs height.\n *\n * `small` - for size with an offset of `Header` height and `SubHeader` height.\n *\n * `nano` - for size with an offset of `Header` with breadcrumbs height and `SubHeader` height.\n *\n * `viewport` - for Scrollable with viewport height.\n */\n size: PropTypes.oneOf(Object.keys(SIZES)),\n /**\n * To provide external classNames.\n */\n className: PropTypes.string,\n};\n\nexport default Scrollable;\n"],"names":["SIZES","nano","small","medium","large","viewport","SCROLLABLE_BASE_CLASS","SIZE_CLASSES","_defineProperty","Scrollable","_ref","children","_ref$className","className","_ref$size","size","otherProps","_objectWithoutProperties","_excluded","_jsx","_objectSpread","classnames"],"mappings":";;;;;AAAA,IAAMA,KAAK,GAAG;AACZC,EAAAA,IAAI,EAAE,MAAM;AACZC,EAAAA,KAAK,EAAE,OAAO;AACdC,EAAAA,MAAM,EAAE,QAAQ;AAChBC,EAAAA,KAAK,EAAE,OAAO;AACdC,EAAAA,QAAQ,EAAE;AACZ,CAAC;AAED,IAAMC,qBAAqB,GAAG,4BAA4B;AAE1D,IAAMC,YAAY,GAAAC,eAAA,CAAAA,eAAA,CAAAA,eAAA,CAAAA,eAAA,CAAAA,eAAA,KACfR,KAAK,CAACC,IAAI,EACT,wKAAwK,GACzKD,KAAK,CAACE,KAAK,EACV,wKAAwK,CAAA,EACzKF,KAAK,CAACG,MAAM,EACX,sEAAsE,CAAA,EACvEH,KAAK,CAACI,KAAK,EACV,sEAAsE,CAAA,EACvEJ,KAAK,CAACK,QAAQ,EAAG,OAAO,CAC1B;;;;;ACfD,IAAMI,UAAU,GAAG,SAAbA,UAAUA,CAAAC,IAAA,EAAA;AAAA,EAAA,IACdC,QAAQ,GAAAD,IAAA,CAARC,QAAQ;IAAAC,cAAA,GAAAF,IAAA,CACRG,SAAS;AAATA,IAAAA,SAAS,GAAAD,cAAA,KAAA,MAAA,GAAG,EAAE,GAAAA,cAAA;IAAAE,SAAA,GAAAJ,IAAA,CACdK,IAAI;AAAJA,IAAAA,IAAI,GAAAD,SAAA,KAAA,MAAA,GAAG,OAAO,GAAAA,SAAA;AACXE,IAAAA,UAAU,GAAAC,wBAAA,CAAAP,IAAA,EAAAQ,SAAA,CAAA;AAAA,EAAA,oBAEbC,GAAA,CAAA,KAAA,EAAAC,aAAA,CAAAA,aAAA,CAAA;AACE,IAAA,WAAA,EAAWL,IAAK;AAChBF,IAAAA,SAAS,EAAEQ,UAAU,CACnBf,qBAAqB,EACrB,2BAA2B,EAC3BC,YAAY,CAACQ,IAAI,CAAC,EAClBF,SACF;AAAE,GAAA,EACEG,UAAU,CAAA,EAAA,EAAA,EAAA;AAAAL,IAAAA,QAAA,EAEbA;AAAQ,GAAA,CACN,CAAC;AAAA;;;;"}
package/dist/v2/Search.js CHANGED
@@ -3,14 +3,14 @@ import _slicedToArray from '@babel/runtime/helpers/slicedToArray';
3
3
  import _objectWithoutProperties from '@babel/runtime/helpers/objectWithoutProperties';
4
4
  import { useId, useState, useRef, useEffect } from 'react';
5
5
  import { Input } from '@bigbinary/neeto-atoms';
6
- import useFuncDebounce from '@bigbinary/neeto-commons-frontend/react-utils/useFuncDebounce';
7
- import useQueryParams from '@bigbinary/neeto-commons-frontend/react-utils/useQueryParams';
8
- import useUpdateEffect from '@bigbinary/neeto-commons-frontend/react-utils/useUpdateEffect';
9
- import { buildUrl } from '@bigbinary/neeto-commons-frontend/utils/general';
6
+ import useFuncDebounce from '@bigbinary/neeto-commons-frontend/v2/react-utils/useFuncDebounce';
7
+ import useQueryParams from '@bigbinary/neeto-commons-frontend/v2/react-utils/useQueryParams';
8
+ import useUpdateEffect from '@bigbinary/neeto-commons-frontend/v2/react-utils/useUpdateEffect';
9
+ import { buildUrl } from '@bigbinary/neeto-commons-frontend/v2/utils/general';
10
10
  import { mergeLeft, omit } from 'ramda';
11
11
  import { useTranslation } from 'react-i18next';
12
12
  import { useHistory } from 'react-router-dom';
13
- import { getQueryParams } from '@bigbinary/neeto-commons-frontend/utils';
13
+ import { getQueryParams } from '@bigbinary/neeto-commons-frontend/v2/utils';
14
14
  import { jsx } from 'react/jsx-runtime';
15
15
  import { S as Search$1 } from '../search-DCgpNjip.js';
16
16
  import '../createLucideIcon-mNMhCCpf.js';
@@ -1 +1 @@
1
- {"version":3,"file":"Search.js","sources":["../../src/v2/components/Search/utils.js","../../src/v2/components/Search/index.jsx"],"sourcesContent":["import { getQueryParams } from \"neetocommons/utils\";\n\nexport const getInitialSearchValue = ({\n initialValue = \"\",\n enableUrlSync,\n searchParamName,\n}) => {\n if (enableUrlSync) {\n const queryParams = getQueryParams({ toCamelCase: false });\n\n return queryParams[searchParamName] ?? \"\";\n }\n\n return initialValue;\n};\n","import { useEffect, useId, useRef, useState } from \"react\";\n\nimport { Input } from \"@bigbinary/neeto-atoms\";\nimport { Search as SearchIcon } from \"lucide-react\";\nimport useFuncDebounce from \"neetocommons/react-utils/useFuncDebounce\";\nimport useQueryParams from \"neetocommons/react-utils/useQueryParams\";\nimport useUpdateEffect from \"neetocommons/react-utils/useUpdateEffect\";\nimport { buildUrl } from \"neetocommons/utils/general\";\nimport PropTypes from \"prop-types\";\nimport { mergeLeft, omit } from \"ramda\";\nimport { useTranslation } from \"react-i18next\";\nimport { useHistory } from \"react-router-dom\";\n\nimport { getInitialSearchValue } from \"./utils\";\n\nconst Search = ({\n value,\n debounceTime = 300,\n onSearch,\n onChange,\n enableUrlSync = false,\n searchParamName = \"search_term\",\n className,\n label,\n ...inputProps\n}) => {\n const { t } = useTranslation();\n const queryParams = useQueryParams({ toCamelCase: false });\n const history = useHistory();\n const inputId = useId();\n\n const [internalValue, setInternalValue] = useState(\n getInitialSearchValue({\n initialValue: value,\n enableUrlSync,\n searchParamName,\n })\n );\n const trimmedValue = value?.trim();\n\n useUpdateEffect(() => {\n if (!enableUrlSync) return;\n\n const searchParamValue = queryParams?.[searchParamName] ?? \"\";\n setInternalValue(searchParamValue);\n }, [queryParams?.[searchParamName]]);\n\n const handleSearchQueryParams = trimmedValue => {\n if (!trimmedValue && !queryParams?.[searchParamName]) return;\n\n if (trimmedValue === queryParams?.[searchParamName]) return;\n\n const pathname = history.location.pathname;\n\n if (trimmedValue) {\n history.push(\n buildUrl(\n pathname,\n mergeLeft({ [searchParamName]: trimmedValue }, queryParams)\n )\n );\n } else {\n history.push(buildUrl(pathname, omit([searchParamName], queryParams)));\n }\n };\n\n const handleDebouncedSearchTermChange = useFuncDebounce(trimmedValue => {\n if (onSearch) onSearch(trimmedValue);\n else if (enableUrlSync) handleSearchQueryParams(trimmedValue);\n }, debounceTime);\n\n useUpdateEffect(() => {\n handleDebouncedSearchTermChange(trimmedValue);\n }, [trimmedValue]);\n\n const prevValueRef = useRef(value);\n if (value !== undefined && value !== prevValueRef.current) {\n setInternalValue(value);\n prevValueRef.current = value;\n }\n\n const handleOnChange = e => {\n const trimmedValue = e.target.value?.trim();\n onChange?.(e);\n setInternalValue(e.target.value);\n\n if (internalValue?.trim() !== trimmedValue) {\n handleDebouncedSearchTermChange(trimmedValue);\n }\n };\n\n useEffect(() => handleDebouncedSearchTermChange.cancel, []);\n\n return (\n <Input\n {...{ className, label }}\n id={inputId}\n placeholder={t(\"neetoMolecules.common.actions.search\")}\n prefix={<SearchIcon />}\n type=\"search\"\n value={internalValue}\n onChange={handleOnChange}\n {...inputProps}\n />\n );\n};\n\nSearch.propTypes = {\n value: PropTypes.string,\n debounceTime: PropTypes.number,\n onChange: PropTypes.func,\n onSearch: PropTypes.func,\n enableUrlSync: PropTypes.bool,\n searchParamName: PropTypes.string,\n inputProps: PropTypes.object,\n};\n\nexport default Search;\n"],"names":["getInitialSearchValue","_ref","_ref$initialValue","initialValue","enableUrlSync","searchParamName","_queryParams$searchPa","queryParams","getQueryParams","toCamelCase","Search","value","_ref$debounceTime","debounceTime","onSearch","onChange","_ref$enableUrlSync","_ref$searchParamName","className","label","inputProps","_objectWithoutProperties","_excluded","_useTranslation","useTranslation","t","useQueryParams","history","useHistory","inputId","useId","_useState","useState","_useState2","_slicedToArray","internalValue","setInternalValue","trimmedValue","trim","useUpdateEffect","searchParamValue","handleSearchQueryParams","pathname","location","push","buildUrl","mergeLeft","_defineProperty","omit","handleDebouncedSearchTermChange","useFuncDebounce","prevValueRef","useRef","undefined","current","handleOnChange","e","_e$target$value","target","useEffect","cancel","_jsx","Input","_objectSpread","id","placeholder","prefix","SearchIcon","type"],"mappings":"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"}
1
+ {"version":3,"file":"Search.js","sources":["../../src/v2/components/Search/utils.js","../../src/v2/components/Search/index.jsx"],"sourcesContent":["import { getQueryParams } from \"neetocommons/v2/utils\";\n\nexport const getInitialSearchValue = ({\n initialValue = \"\",\n enableUrlSync,\n searchParamName,\n}) => {\n if (enableUrlSync) {\n const queryParams = getQueryParams({ toCamelCase: false });\n\n return queryParams[searchParamName] ?? \"\";\n }\n\n return initialValue;\n};\n","import { useEffect, useId, useRef, useState } from \"react\";\n\nimport { Input } from \"@bigbinary/neeto-atoms\";\nimport { Search as SearchIcon } from \"lucide-react\";\nimport useFuncDebounce from \"neetocommons/v2/react-utils/useFuncDebounce\";\nimport useQueryParams from \"neetocommons/v2/react-utils/useQueryParams\";\nimport useUpdateEffect from \"neetocommons/v2/react-utils/useUpdateEffect\";\nimport { buildUrl } from \"neetocommons/v2/utils/general\";\nimport PropTypes from \"prop-types\";\nimport { mergeLeft, omit } from \"ramda\";\nimport { useTranslation } from \"react-i18next\";\nimport { useHistory } from \"react-router-dom\";\n\nimport { getInitialSearchValue } from \"./utils\";\n\nconst Search = ({\n value,\n debounceTime = 300,\n onSearch,\n onChange,\n enableUrlSync = false,\n searchParamName = \"search_term\",\n className,\n label,\n ...inputProps\n}) => {\n const { t } = useTranslation();\n const queryParams = useQueryParams({ toCamelCase: false });\n const history = useHistory();\n const inputId = useId();\n\n const [internalValue, setInternalValue] = useState(\n getInitialSearchValue({\n initialValue: value,\n enableUrlSync,\n searchParamName,\n })\n );\n const trimmedValue = value?.trim();\n\n useUpdateEffect(() => {\n if (!enableUrlSync) return;\n\n const searchParamValue = queryParams?.[searchParamName] ?? \"\";\n setInternalValue(searchParamValue);\n }, [queryParams?.[searchParamName]]);\n\n const handleSearchQueryParams = trimmedValue => {\n if (!trimmedValue && !queryParams?.[searchParamName]) return;\n\n if (trimmedValue === queryParams?.[searchParamName]) return;\n\n const pathname = history.location.pathname;\n\n if (trimmedValue) {\n history.push(\n buildUrl(\n pathname,\n mergeLeft({ [searchParamName]: trimmedValue }, queryParams)\n )\n );\n } else {\n history.push(buildUrl(pathname, omit([searchParamName], queryParams)));\n }\n };\n\n const handleDebouncedSearchTermChange = useFuncDebounce(trimmedValue => {\n if (onSearch) onSearch(trimmedValue);\n else if (enableUrlSync) handleSearchQueryParams(trimmedValue);\n }, debounceTime);\n\n useUpdateEffect(() => {\n handleDebouncedSearchTermChange(trimmedValue);\n }, [trimmedValue]);\n\n const prevValueRef = useRef(value);\n if (value !== undefined && value !== prevValueRef.current) {\n setInternalValue(value);\n prevValueRef.current = value;\n }\n\n const handleOnChange = e => {\n const trimmedValue = e.target.value?.trim();\n onChange?.(e);\n setInternalValue(e.target.value);\n\n if (internalValue?.trim() !== trimmedValue) {\n handleDebouncedSearchTermChange(trimmedValue);\n }\n };\n\n useEffect(() => handleDebouncedSearchTermChange.cancel, []);\n\n return (\n <Input\n {...{ className, label }}\n id={inputId}\n placeholder={t(\"neetoMolecules.common.actions.search\")}\n prefix={<SearchIcon />}\n type=\"search\"\n value={internalValue}\n onChange={handleOnChange}\n {...inputProps}\n />\n );\n};\n\nSearch.propTypes = {\n value: PropTypes.string,\n debounceTime: PropTypes.number,\n onChange: PropTypes.func,\n onSearch: PropTypes.func,\n enableUrlSync: PropTypes.bool,\n searchParamName: PropTypes.string,\n inputProps: PropTypes.object,\n};\n\nexport default Search;\n"],"names":["getInitialSearchValue","_ref","_ref$initialValue","initialValue","enableUrlSync","searchParamName","_queryParams$searchPa","queryParams","getQueryParams","toCamelCase","Search","value","_ref$debounceTime","debounceTime","onSearch","onChange","_ref$enableUrlSync","_ref$searchParamName","className","label","inputProps","_objectWithoutProperties","_excluded","_useTranslation","useTranslation","t","useQueryParams","history","useHistory","inputId","useId","_useState","useState","_useState2","_slicedToArray","internalValue","setInternalValue","trimmedValue","trim","useUpdateEffect","searchParamValue","handleSearchQueryParams","pathname","location","push","buildUrl","mergeLeft","_defineProperty","omit","handleDebouncedSearchTermChange","useFuncDebounce","prevValueRef","useRef","undefined","current","handleOnChange","e","_e$target$value","target","useEffect","cancel","_jsx","Input","_objectSpread","id","placeholder","prefix","SearchIcon","type"],"mappings":"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"}
@@ -1,14 +1,14 @@
1
1
  import _defineProperty from '@babel/runtime/helpers/defineProperty';
2
2
  import { memo, useEffect, createElement } from 'react';
3
3
  import classnames from 'classnames';
4
- import useQueryParams from '@bigbinary/neeto-commons-frontend/react-utils/useQueryParams';
4
+ import useQueryParams from '@bigbinary/neeto-commons-frontend/v2/react-utils/useQueryParams';
5
5
  import { omit, isEmpty } from 'ramda';
6
6
  import { useTranslation } from 'react-i18next';
7
7
  import { Typography, Badge } from '@bigbinary/neeto-atoms';
8
8
  import { hyphenate, isPresent, filterBy, isNotEmpty } from '@bigbinary/neeto-cist';
9
- import { useBreakpoints } from '@bigbinary/neeto-commons-frontend/react-utils';
9
+ import { useBreakpoints } from '@bigbinary/neeto-commons-frontend/v2/react-utils';
10
10
  import _objectWithoutProperties from '@babel/runtime/helpers/objectWithoutProperties';
11
- import { joinHyphenCase } from '@bigbinary/neeto-commons-frontend/utils/general';
11
+ import { joinHyphenCase } from '@bigbinary/neeto-commons-frontend/v2/utils/general';
12
12
  import { Link } from 'react-router-dom';
13
13
  import { jsxs, jsx } from 'react/jsx-runtime';
14
14
  import Header from './Header.js';
@@ -21,9 +21,9 @@ import './MoreDropdown.js';
21
21
  import '../ellipsis-DpI9xqUK.js';
22
22
  import './Search.js';
23
23
  import '@babel/runtime/helpers/slicedToArray';
24
- import '@bigbinary/neeto-commons-frontend/react-utils/useFuncDebounce';
25
- import '@bigbinary/neeto-commons-frontend/react-utils/useUpdateEffect';
26
- import '@bigbinary/neeto-commons-frontend/utils';
24
+ import '@bigbinary/neeto-commons-frontend/v2/react-utils/useFuncDebounce';
25
+ import '@bigbinary/neeto-commons-frontend/v2/react-utils/useUpdateEffect';
26
+ import '@bigbinary/neeto-commons-frontend/v2/utils';
27
27
  import '../search-DCgpNjip.js';
28
28
 
29
29
  var UNSUPPORTED_LINK_PROPS = ["staticContext", "tReady"];