@crediblemark/build 0.22.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (52) hide show
  1. package/LICENSE +21 -0
  2. package/dist/Editor-XZF6CWVW.css +404 -0
  3. package/dist/Editor-ZC67OU2A.mjs +205 -0
  4. package/dist/Render-JBFI6HYN.mjs +55 -0
  5. package/dist/Render-WCX4AXOX.css +102 -0
  6. package/dist/actions-CEH_5LMY.d.mts +838 -0
  7. package/dist/actions-CEH_5LMY.d.ts +838 -0
  8. package/dist/chunk-3AJBFQU4.mjs +560 -0
  9. package/dist/chunk-4SQOX3ZQ.mjs +476 -0
  10. package/dist/chunk-B4BOBGYB.mjs +42 -0
  11. package/dist/chunk-CDMESQDA.mjs +148 -0
  12. package/dist/chunk-DSXRK4QJ.mjs +704 -0
  13. package/dist/chunk-GUJDGRSM.mjs +469 -0
  14. package/dist/chunk-HHBUU7WF.mjs +35 -0
  15. package/dist/chunk-IJHL7BIR.mjs +11 -0
  16. package/dist/chunk-PHGC6QYB.mjs +105 -0
  17. package/dist/chunk-QF3GD5WQ.mjs +65 -0
  18. package/dist/chunk-U2NVBXAC.mjs +2064 -0
  19. package/dist/chunk-VFD76OD5.mjs +55 -0
  20. package/dist/chunk-VGDMWS44.mjs +107 -0
  21. package/dist/chunk-VKBVSWU3.mjs +8538 -0
  22. package/dist/chunk-YH7AXYKP.mjs +109 -0
  23. package/dist/full-ABQQRJAO.css +301 -0
  24. package/dist/full-LJRK5736.mjs +94 -0
  25. package/dist/index-CkSfgrvw.d.ts +117 -0
  26. package/dist/index-Cxwg4vUV.d.mts +117 -0
  27. package/dist/index.css +2576 -0
  28. package/dist/index.d.mts +310 -0
  29. package/dist/index.d.ts +310 -0
  30. package/dist/index.js +15012 -0
  31. package/dist/index.mjs +83 -0
  32. package/dist/internal.d.mts +27 -0
  33. package/dist/internal.d.ts +27 -0
  34. package/dist/internal.js +960 -0
  35. package/dist/internal.mjs +13 -0
  36. package/dist/loaded-DWCENJKQ.mjs +55 -0
  37. package/dist/loaded-N7VXUR4O.mjs +59 -0
  38. package/dist/loaded-NE2PIHUQ.mjs +56 -0
  39. package/dist/loaded-SMEIWWHS.css +87 -0
  40. package/dist/no-external.css +2574 -0
  41. package/dist/no-external.d.mts +21 -0
  42. package/dist/no-external.d.ts +21 -0
  43. package/dist/no-external.js +15012 -0
  44. package/dist/no-external.mjs +83 -0
  45. package/dist/rsc.css +102 -0
  46. package/dist/rsc.d.mts +27 -0
  47. package/dist/rsc.d.ts +27 -0
  48. package/dist/rsc.js +1466 -0
  49. package/dist/rsc.mjs +147 -0
  50. package/dist/walk-tree-B4ZvMfxS.d.ts +29 -0
  51. package/dist/walk-tree-C78ZVz19.d.mts +29 -0
  52. package/package.json +145 -0
@@ -0,0 +1,109 @@
1
+ import {
2
+ __commonJS,
3
+ __toESM,
4
+ init_react_import
5
+ } from "./chunk-B4BOBGYB.mjs";
6
+
7
+ // ../node_modules/classnames/index.js
8
+ var require_classnames = __commonJS({
9
+ "../node_modules/classnames/index.js"(exports, module) {
10
+ "use strict";
11
+ init_react_import();
12
+ (function() {
13
+ "use strict";
14
+ var hasOwn = {}.hasOwnProperty;
15
+ function classNames() {
16
+ var classes = "";
17
+ for (var i = 0; i < arguments.length; i++) {
18
+ var arg = arguments[i];
19
+ if (arg) {
20
+ classes = appendClass(classes, parseValue(arg));
21
+ }
22
+ }
23
+ return classes;
24
+ }
25
+ function parseValue(arg) {
26
+ if (typeof arg === "string" || typeof arg === "number") {
27
+ return arg;
28
+ }
29
+ if (typeof arg !== "object") {
30
+ return "";
31
+ }
32
+ if (Array.isArray(arg)) {
33
+ return classNames.apply(null, arg);
34
+ }
35
+ if (arg.toString !== Object.prototype.toString && !arg.toString.toString().includes("[native code]")) {
36
+ return arg.toString();
37
+ }
38
+ var classes = "";
39
+ for (var key in arg) {
40
+ if (hasOwn.call(arg, key) && arg[key]) {
41
+ classes = appendClass(classes, key);
42
+ }
43
+ }
44
+ return classes;
45
+ }
46
+ function appendClass(value, newClass) {
47
+ if (!newClass) {
48
+ return value;
49
+ }
50
+ if (value) {
51
+ return value + " " + newClass;
52
+ }
53
+ return value + newClass;
54
+ }
55
+ if (typeof module !== "undefined" && module.exports) {
56
+ classNames.default = classNames;
57
+ module.exports = classNames;
58
+ } else if (typeof define === "function" && typeof define.amd === "object" && define.amd) {
59
+ define("classnames", [], function() {
60
+ return classNames;
61
+ });
62
+ } else {
63
+ window.classNames = classNames;
64
+ }
65
+ })();
66
+ }
67
+ });
68
+
69
+ // lib/get-class-name-factory.ts
70
+ init_react_import();
71
+ var import_classnames = __toESM(require_classnames());
72
+ var getClassNameFactory = (rootClass, styles, config = { baseClass: "" }) => (options = {}) => {
73
+ if (typeof options === "string") {
74
+ const descendant = options;
75
+ const style = styles[`${rootClass}-${descendant}`];
76
+ if (style) {
77
+ return config.baseClass + styles[`${rootClass}-${descendant}`] || "";
78
+ }
79
+ return "";
80
+ } else if (typeof options === "object") {
81
+ const modifiers = options;
82
+ const prefixedModifiers = {};
83
+ for (let modifier in modifiers) {
84
+ prefixedModifiers[styles[`${rootClass}--${modifier}`]] = modifiers[modifier];
85
+ }
86
+ const c = styles[rootClass];
87
+ return config.baseClass + (0, import_classnames.default)({
88
+ [c]: !!c,
89
+ // only apply the class if it exists
90
+ ...prefixedModifiers
91
+ });
92
+ } else {
93
+ return config.baseClass + styles[rootClass] || "";
94
+ }
95
+ };
96
+ var get_class_name_factory_default = getClassNameFactory;
97
+
98
+ export {
99
+ get_class_name_factory_default
100
+ };
101
+ /*! Bundled license information:
102
+
103
+ classnames/index.js:
104
+ (*!
105
+ Copyright (c) 2018 Jed Watson.
106
+ Licensed under the MIT License (MIT), see
107
+ http://jedwatson.github.io/classnames
108
+ *)
109
+ */
@@ -0,0 +1,301 @@
1
+ /* css-module:/home/crediblemark/Project/NEXT_CMS/packages/components/RichTextMenu/styles.module.css/#css-module-data */
2
+ ._RichTextMenu_193iw_1 {
3
+ display: flex;
4
+ flex-direction: row;
5
+ flex-wrap: nowrap;
6
+ }
7
+ ._RichTextMenu--form_193iw_7 {
8
+ border-top-left-radius: 4px;
9
+ border-top-right-radius: 4px;
10
+ padding: 6px 6px;
11
+ background-color: var(--credbuild-color-grey-12);
12
+ position: relative;
13
+ scrollbar-width: none;
14
+ overflow-x: auto;
15
+ }
16
+ ._RichTextMenu-group_193iw_17 {
17
+ display: flex;
18
+ align-items: space-between;
19
+ flex-direction: row;
20
+ flex-wrap: nowrap;
21
+ padding-inline: 6px;
22
+ gap: 2px;
23
+ position: relative;
24
+ }
25
+ ._RichTextMenu-group_193iw_17:first-of-type {
26
+ padding-left: 0;
27
+ }
28
+ ._RichTextMenu-group_193iw_17:last-of-type {
29
+ padding-right: 0;
30
+ }
31
+ ._RichTextMenu--inline_193iw_35 ._RichTextMenu-group_193iw_17 {
32
+ color: var(--credbuild-color-grey-08);
33
+ gap: 0px;
34
+ flex-wrap: nowrap;
35
+ }
36
+ ._RichTextMenu-group_193iw_17 + ._RichTextMenu-group_193iw_17 {
37
+ border-left: 1px solid var(--credbuild-color-grey-10);
38
+ }
39
+ ._RichTextMenu--inline_193iw_35 ._RichTextMenu-group_193iw_17 + ._RichTextMenu-group_193iw_17 {
40
+ border-left: 0.5px solid var(--credbuild-color-grey-05);
41
+ }
42
+
43
+ /* css-module:/home/crediblemark/Project/NEXT_CMS/packages/components/IconButton/IconButton.module.css/#css-module-data */
44
+ ._IconButton_1a0fz_1 {
45
+ align-items: center;
46
+ background: transparent;
47
+ border: none;
48
+ border-radius: var(--cb-radius-m);
49
+ color: currentColor;
50
+ display: flex;
51
+ font-family: var(--credbuild-font-family);
52
+ justify-content: center;
53
+ padding: 2px;
54
+ transition: all 0.2s ease;
55
+ }
56
+ ._IconButton--active_1a0fz_14 {
57
+ color: var(--credbuild-color-azure-04);
58
+ }
59
+ ._IconButton_1a0fz_1:focus-visible {
60
+ outline: 2px solid var(--credbuild-color-azure-05);
61
+ outline-offset: -2px;
62
+ }
63
+ @media (hover: hover) and (pointer: fine) {
64
+ ._IconButton_1a0fz_1:hover:not(._IconButton--disabled_1a0fz_24) {
65
+ background: var(--credbuild-color-grey-10);
66
+ color: var(--credbuild-color-azure-04);
67
+ cursor: pointer;
68
+ transition: none;
69
+ }
70
+ }
71
+ ._IconButton_1a0fz_1:active {
72
+ background: var(--credbuild-color-azure-11);
73
+ transition: none;
74
+ }
75
+ ._IconButton-title_1a0fz_37 {
76
+ clip: rect(0 0 0 0);
77
+ clip-path: inset(100%);
78
+ height: 1px;
79
+ overflow: hidden;
80
+ position: absolute;
81
+ white-space: nowrap;
82
+ width: 1px;
83
+ }
84
+ ._IconButton--disabled_1a0fz_24 {
85
+ color: var(--credbuild-color-grey-07);
86
+ }
87
+
88
+ /* css-module:/home/crediblemark/Project/NEXT_CMS/packages/components/Loader/styles.module.css/#css-module-data */
89
+ @keyframes _loader-animation_nacdm_1 {
90
+ 0% {
91
+ transform: rotate(0deg) scale(1);
92
+ }
93
+ 50% {
94
+ transform: rotate(180deg) scale(0.8);
95
+ }
96
+ 100% {
97
+ transform: rotate(360deg) scale(1);
98
+ }
99
+ }
100
+ ._Loader_nacdm_13 {
101
+ background: transparent;
102
+ border-radius: 100%;
103
+ border: 2px solid currentColor;
104
+ border-bottom-color: transparent;
105
+ display: inline-block;
106
+ animation: _loader-animation_nacdm_1 1s 0s infinite linear;
107
+ animation-fill-mode: both;
108
+ }
109
+
110
+ /* css-module:/home/crediblemark/Project/NEXT_CMS/packages/components/ActionBar/styles.module.css/#css-module-data */
111
+ ._ActionBar_ze0ci_1 {
112
+ align-items: center;
113
+ cursor: default;
114
+ display: flex;
115
+ width: auto;
116
+ padding: 4px;
117
+ padding-inline-start: 0;
118
+ padding-inline-end: 0;
119
+ border-top-left-radius: 8px;
120
+ border-top-right-radius: 8px;
121
+ border-radius: 8px;
122
+ background: var(--credbuild-color-grey-01);
123
+ color: var(--credbuild-color-white);
124
+ font-family: var(--credbuild-font-family);
125
+ min-height: 26px;
126
+ }
127
+ ._ActionBar-label_ze0ci_18 {
128
+ color: var(--credbuild-color-grey-08);
129
+ font-size: var(--credbuild-font-size-xxxs);
130
+ font-weight: 500;
131
+ padding-inline-start: 8px;
132
+ padding-inline-end: 8px;
133
+ margin-inline-start: 4px;
134
+ margin-inline-end: 4px;
135
+ text-overflow: ellipsis;
136
+ white-space: nowrap;
137
+ }
138
+ ._ActionBarAction_ze0ci_30 + ._ActionBar-label_ze0ci_18 {
139
+ padding-inline-start: 0;
140
+ }
141
+ ._ActionBar-label_ze0ci_18 + ._ActionBarAction_ze0ci_30 {
142
+ margin-inline-start: -4px;
143
+ }
144
+ ._ActionBar-group_ze0ci_38 {
145
+ align-items: center;
146
+ border-inline-start: 0.5px solid var(--credbuild-color-grey-05);
147
+ display: flex;
148
+ height: 100%;
149
+ padding-inline-start: 4px;
150
+ padding-inline-end: 4px;
151
+ }
152
+ ._ActionBar-group_ze0ci_38:first-of-type {
153
+ border-inline-start: 0;
154
+ }
155
+ ._ActionBar-group_ze0ci_38:empty {
156
+ display: none;
157
+ }
158
+ ._ActionBarAction_ze0ci_30 {
159
+ background: transparent;
160
+ border: none;
161
+ color: var(--credbuild-color-grey-08);
162
+ cursor: pointer;
163
+ padding: 6px;
164
+ margin-inline-start: 4px;
165
+ margin-inline-end: 4px;
166
+ border-radius: 4px;
167
+ overflow: hidden;
168
+ display: flex;
169
+ align-items: center;
170
+ justify-content: center;
171
+ transition: color 50ms ease-in;
172
+ }
173
+ ._ActionBarAction--disabled_ze0ci_71 {
174
+ cursor: auto;
175
+ color: var(--credbuild-color-grey-06);
176
+ }
177
+ ._ActionBarAction_ze0ci_30 svg {
178
+ max-width: none !important;
179
+ }
180
+ ._ActionBarAction_ze0ci_30:focus-visible {
181
+ outline: 2px solid var(--credbuild-color-azure-05);
182
+ outline-offset: -2px;
183
+ }
184
+ @media (hover: hover) and (pointer: fine) {
185
+ ._ActionBarAction_ze0ci_30:hover:not(._ActionBarAction--disabled_ze0ci_71) {
186
+ color: var(--credbuild-color-azure-06);
187
+ transition: none;
188
+ }
189
+ }
190
+ ._ActionBarAction_ze0ci_30:active:not(._ActionBarAction--disabled_ze0ci_71),
191
+ ._ActionBarAction--active_ze0ci_93 {
192
+ color: var(--credbuild-color-azure-07);
193
+ transition: none;
194
+ }
195
+ ._ActionBar-group_ze0ci_38 * {
196
+ margin: 0;
197
+ }
198
+ ._ActionBar-separator_ze0ci_102 {
199
+ background: var(--credbuild-color-grey-05);
200
+ margin-inline: 4px;
201
+ width: 0.5px;
202
+ height: 100%;
203
+ }
204
+
205
+ /* css-module:/home/crediblemark/Project/NEXT_CMS/packages/components/RichTextMenu/components/Control/styles.module.css/#css-module-data */
206
+ ._Control_1aveu_1 .lucide {
207
+ height: 18px;
208
+ width: 18px;
209
+ }
210
+ ._Control--inline_1aveu_6 .lucide {
211
+ height: 16px;
212
+ width: 16px;
213
+ }
214
+
215
+ /* css-module:/home/crediblemark/Project/NEXT_CMS/packages/components/Select/styles.module.css/#css-module-data */
216
+ ._Select_16son_1 {
217
+ position: relative;
218
+ z-index: 1;
219
+ }
220
+ ._Select-button_16son_6 {
221
+ align-items: center;
222
+ background: transparent;
223
+ border: none;
224
+ border-radius: 4px;
225
+ display: flex;
226
+ justify-content: center;
227
+ gap: 0px;
228
+ height: 100%;
229
+ padding: 4px;
230
+ padding-right: 2px;
231
+ }
232
+ ._Select--hasOptions_16son_19 ._Select-button_16son_6 {
233
+ color: currentColor;
234
+ }
235
+ ._Select--hasOptions_16son_19:not(._Select--disabled_16son_23) ._Select-button_16son_6 {
236
+ cursor: pointer;
237
+ }
238
+ ._Select-buttonIcon_16son_27 {
239
+ align-items: center;
240
+ display: flex;
241
+ justify-content: center;
242
+ }
243
+ ._Select--standalone_16son_33 ._Select-buttonIcon_16son_27 .lucide {
244
+ height: 18px;
245
+ width: 18px;
246
+ }
247
+ ._Select--actionBar_16son_38 ._Select-buttonIcon_16son_27 .lucide {
248
+ height: 16px;
249
+ width: 16px;
250
+ }
251
+ ._Select--hasOptions_16son_19:not(._Select--disabled_16son_23) ._Select-button_16son_6:hover,
252
+ ._Select--hasValue_16son_44 ._Select-button_16son_6 {
253
+ background: var(--credbuild-color-grey-10);
254
+ color: var(--credbuild-color-azure-04);
255
+ }
256
+ ._Select--disabled_16son_23 ._Select-button_16son_6 {
257
+ color: var(--credbuild-color-grey-07);
258
+ }
259
+ ._Select--actionBar_16son_38 {
260
+ &._Select--hasOptions_16son_19 ._Select-button_16son_6:hover,
261
+ &._Select--hasValue_16son_44 ._Select-button_16son_6 {
262
+ background: none;
263
+ color: var(--credbuild-color-azure-07);
264
+ }
265
+ }
266
+ ._Select-items_16son_61 {
267
+ background: white;
268
+ border: 1px solid var(--credbuild-color-grey-09);
269
+ border-radius: 8px;
270
+ margin: 10px 8px;
271
+ margin-left: 0;
272
+ padding: 4px;
273
+ z-index: 2;
274
+ list-style: none;
275
+ }
276
+ ._SelectItem_16son_72 {
277
+ background: transparent;
278
+ border-radius: 4px;
279
+ border: none;
280
+ color: var(--credbuild-color-grey-04);
281
+ cursor: pointer;
282
+ display: flex;
283
+ gap: 8px;
284
+ align-items: center;
285
+ font-size: var(--credbuild-font-size-xxs);
286
+ margin: 0;
287
+ padding: 8px 12px;
288
+ width: 100%;
289
+ }
290
+ ._SelectItem--isSelected_16son_87 {
291
+ background: var(--credbuild-color-azure-11);
292
+ color: var(--credbuild-color-azure-04);
293
+ font-weight: 500;
294
+ }
295
+ ._SelectItem--isSelected_16son_87 ._SelectItem-icon_16son_93 {
296
+ color: var(--credbuild-color-azure-04);
297
+ }
298
+ ._SelectItem_16son_72:hover {
299
+ background: var(--credbuild-color-azure-11);
300
+ color: var(--credbuild-color-azure-04);
301
+ }
@@ -0,0 +1,94 @@
1
+ import {
2
+ LoadedRichTextMenuInner
3
+ } from "./chunk-DSXRK4QJ.mjs";
4
+ import "./chunk-VFD76OD5.mjs";
5
+ import "./chunk-QF3GD5WQ.mjs";
6
+ import "./chunk-HHBUU7WF.mjs";
7
+ import "./chunk-U2NVBXAC.mjs";
8
+ import "./chunk-3AJBFQU4.mjs";
9
+ import "./chunk-CDMESQDA.mjs";
10
+ import "./chunk-YH7AXYKP.mjs";
11
+ import "./chunk-GUJDGRSM.mjs";
12
+ import {
13
+ init_react_import
14
+ } from "./chunk-B4BOBGYB.mjs";
15
+
16
+ // components/RichTextMenu/full.tsx
17
+ init_react_import();
18
+ import { useEditorState } from "@tiptap/react";
19
+ import { useMemo } from "react";
20
+
21
+ // components/RichTextEditor/selector.ts
22
+ init_react_import();
23
+ var defaultEditorState = (ctx, readOnly) => {
24
+ const editor = ctx.editor;
25
+ if (!editor) return {};
26
+ const canChain = () => editor.can().chain();
27
+ return {
28
+ isAlignLeft: editor.isActive({ textAlign: "left" }),
29
+ canAlignLeft: !readOnly && canChain().setTextAlign?.("left").run(),
30
+ isAlignCenter: editor.isActive({ textAlign: "center" }),
31
+ canAlignCenter: !readOnly && canChain().setTextAlign?.("center").run(),
32
+ isAlignRight: editor.isActive({ textAlign: "right" }),
33
+ canAlignRight: !readOnly && canChain().setTextAlign?.("right").run(),
34
+ isAlignJustify: editor.isActive({ textAlign: "justify" }),
35
+ canAlignJustify: !readOnly && canChain().setTextAlign?.("justify").run(),
36
+ isBold: editor.isActive("bold"),
37
+ canBold: !readOnly && canChain().toggleBold?.().run(),
38
+ isItalic: editor.isActive("italic"),
39
+ canItalic: !readOnly && canChain().toggleItalic?.().run(),
40
+ isUnderline: editor.isActive("underline"),
41
+ canUnderline: !readOnly && canChain().toggleUnderline?.().run(),
42
+ isStrike: editor.isActive("strike"),
43
+ canStrike: !readOnly && canChain().toggleStrike?.().run(),
44
+ isInlineCode: editor.isActive("code"),
45
+ canInlineCode: !readOnly && canChain().toggleCode?.().run(),
46
+ isBulletList: editor.isActive("bulletList"),
47
+ canBulletList: !readOnly && canChain().toggleBulletList?.().run(),
48
+ isOrderedList: editor.isActive("orderedList"),
49
+ canOrderedList: !readOnly && canChain().toggleOrderedList?.().run(),
50
+ isCodeBlock: editor.isActive("codeBlock"),
51
+ canCodeBlock: !readOnly && canChain().toggleCodeBlock?.().run(),
52
+ isBlockquote: editor.isActive("blockquote"),
53
+ canBlockquote: !readOnly && canChain().toggleBlockquote?.().run(),
54
+ canHorizontalRule: !readOnly && canChain().setHorizontalRule?.().run()
55
+ };
56
+ };
57
+
58
+ // components/RichTextMenu/full.tsx
59
+ import { jsx } from "react/jsx-runtime";
60
+ var LoadedRichTextMenuFull = ({
61
+ editor,
62
+ field,
63
+ readOnly,
64
+ inline
65
+ }) => {
66
+ const { tiptap = {} } = field;
67
+ const { selector } = tiptap;
68
+ const resolvedSelector = useMemo(() => {
69
+ return (ctx) => ({
70
+ ...defaultEditorState(ctx, readOnly),
71
+ ...selector ? selector(ctx, readOnly) : {}
72
+ });
73
+ }, [selector, readOnly]);
74
+ const editorState = useEditorState({
75
+ editor,
76
+ selector: resolvedSelector
77
+ });
78
+ if (!editor || !editorState) {
79
+ return null;
80
+ }
81
+ return /* @__PURE__ */ jsx(
82
+ LoadedRichTextMenuInner,
83
+ {
84
+ editor,
85
+ editorState,
86
+ field,
87
+ readOnly,
88
+ inline
89
+ }
90
+ );
91
+ };
92
+ export {
93
+ LoadedRichTextMenuFull
94
+ };
@@ -0,0 +1,117 @@
1
+ import { H as History, g as Permissions, c as ComponentData, a as Config, U as UserGenerics, F as Fields, C as CredBuildAction, h as RootDataWithProps, i as ResolveDataTrigger, j as Plugin, k as Overrides, V as Viewports, I as IframeConfig, l as UiState, m as ComponentConfig, A as AppState, M as Metadata, n as FieldTransforms, o as RichtextField } from './actions-CEH_5LMY.js';
2
+ import { Editor } from '@tiptap/react';
3
+
4
+ type HistorySlice<D = any> = {
5
+ index: number;
6
+ hasPast: () => boolean;
7
+ hasFuture: () => boolean;
8
+ histories: History<D>[];
9
+ record: (data: D) => void;
10
+ back: VoidFunction;
11
+ forward: VoidFunction;
12
+ currentHistory: () => History;
13
+ nextHistory: () => History<D> | null;
14
+ prevHistory: () => History<D> | null;
15
+ setHistories: (histories: History[]) => void;
16
+ setHistoryIndex: (index: number) => void;
17
+ initialAppState: D;
18
+ };
19
+
20
+ type NodeHandle = {
21
+ sync: () => void;
22
+ hideOverlay: () => void;
23
+ showOverlay: () => void;
24
+ };
25
+ type NodesSlice = {
26
+ registerNode: (id: string, handle: NodeHandle) => void;
27
+ unregisterNode: (id: string) => void;
28
+ syncNode: (id?: string | null) => void;
29
+ syncNodes: (ids: Array<string | null | undefined>) => void;
30
+ setOverlayVisible: (id: string | null | undefined, visible: boolean) => void;
31
+ };
32
+
33
+ type PermissionsArgs<UserConfig extends Config = Config, G extends UserGenerics<UserConfig> = UserGenerics<UserConfig>> = {
34
+ item?: G["UserComponentData"] | null;
35
+ type?: keyof G["UserProps"];
36
+ root?: boolean;
37
+ };
38
+ type GetPermissions<UserConfig extends Config = Config> = (params?: PermissionsArgs<UserConfig>) => Permissions;
39
+ type ResolvePermissions<UserConfig extends Config = Config> = (params?: PermissionsArgs<UserConfig>, force?: boolean) => void;
40
+ type RefreshPermissions<UserConfig extends Config = Config> = (params?: PermissionsArgs<UserConfig>, force?: boolean) => void;
41
+ type Cache = Record<string, {
42
+ lastPermissions: Partial<Permissions>;
43
+ lastData: ComponentData | null;
44
+ lastParentId: string | null;
45
+ }>;
46
+ type PermissionsSlice = {
47
+ cache: Cache;
48
+ globalPermissions: Permissions;
49
+ resolvedPermissions: Record<string, Partial<Permissions> | undefined>;
50
+ getPermissions: GetPermissions<Config>;
51
+ resolvePermissions: ResolvePermissions<Config>;
52
+ refreshPermissions: RefreshPermissions<Config>;
53
+ };
54
+
55
+ type ComponentOrRootData = Omit<ComponentData<any>, "type">;
56
+ type FieldsSlice = {
57
+ fields: Fields | Partial<Fields>;
58
+ loading: boolean;
59
+ lastResolvedData: Partial<ComponentOrRootData>;
60
+ id: string | undefined;
61
+ };
62
+
63
+ type Status = "LOADING" | "MOUNTED" | "READY";
64
+ type ZoomConfig = {
65
+ autoZoom: number;
66
+ rootHeight: number;
67
+ zoom: number;
68
+ };
69
+ type ComponentState = Record<string, {
70
+ loadingCount: number;
71
+ }>;
72
+ type AppStore<UserConfig extends Config = Config, G extends UserGenerics<UserConfig> = UserGenerics<UserConfig>> = {
73
+ instanceId: string;
74
+ state: G["UserAppState"];
75
+ dispatch: (action: CredBuildAction) => void;
76
+ config: UserConfig;
77
+ componentState: ComponentState;
78
+ setComponentState: (componentState: ComponentState) => void;
79
+ setComponentLoading: (id: string, loading?: boolean, defer?: number) => () => void;
80
+ unsetComponentLoading: (id: string) => void;
81
+ pendingLoadTimeouts: Record<string, NodeJS.Timeout>;
82
+ resolveComponentData: <T extends ComponentData | RootDataWithProps>(componentData: T, trigger: ResolveDataTrigger) => Promise<{
83
+ node: T;
84
+ didChange: boolean;
85
+ }>;
86
+ resolveAndCommitData: () => void;
87
+ plugins: Plugin[];
88
+ overrides: Partial<Overrides>;
89
+ viewports: Viewports;
90
+ zoomConfig: ZoomConfig;
91
+ setZoomConfig: (zoomConfig: ZoomConfig) => void;
92
+ status: Status;
93
+ setStatus: (status: Status) => void;
94
+ iframe: IframeConfig;
95
+ _experimentalFullScreenCanvas: boolean;
96
+ _experimentalVirtualization: boolean;
97
+ selectedItem?: G["UserData"]["content"][0] | null;
98
+ getCurrentData: () => G["UserData"]["content"][0] | G["UserData"]["root"];
99
+ setUi: (ui: Partial<UiState>, recordHistory?: boolean) => void;
100
+ getComponentConfig: (type?: string) => ComponentConfig | null | undefined;
101
+ onAction?: (action: CredBuildAction, newState: AppState, state: AppState) => void;
102
+ metadata: Metadata;
103
+ fields: FieldsSlice;
104
+ history: HistorySlice;
105
+ nodes: NodesSlice;
106
+ permissions: PermissionsSlice;
107
+ fieldTransforms: FieldTransforms;
108
+ currentRichText?: {
109
+ inlineComponentId?: string;
110
+ inline: boolean;
111
+ field: RichtextField;
112
+ editor: Editor;
113
+ id: string;
114
+ } | null;
115
+ };
116
+
117
+ export type { AppStore as A, GetPermissions as G, HistorySlice as H, RefreshPermissions as R };