@01.software/sdk 0.2.7 → 0.2.9-dev.260305.35fd2d4

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.
@@ -22,6 +22,18 @@ var __spreadValues = (a, b) => {
22
22
  return a;
23
23
  };
24
24
  var __spreadProps = (a, b) => __defProps(a, __getOwnPropDescs(b));
25
+ var __objRest = (source, exclude) => {
26
+ var target = {};
27
+ for (var prop in source)
28
+ if (__hasOwnProp.call(source, prop) && exclude.indexOf(prop) < 0)
29
+ target[prop] = source[prop];
30
+ if (source != null && __getOwnPropSymbols)
31
+ for (var prop of __getOwnPropSymbols(source)) {
32
+ if (exclude.indexOf(prop) < 0 && __propIsEnum.call(source, prop))
33
+ target[prop] = source[prop];
34
+ }
35
+ return target;
36
+ };
25
37
  var __export = (target, all) => {
26
38
  for (var name in all)
27
39
  __defProp(target, name, { get: all[name], enumerable: true });
@@ -70,35 +82,206 @@ __export(components_exports, {
70
82
  FormRenderer: () => FormRenderer,
71
83
  Image: () => Image,
72
84
  RichTextContent: () => RichTextContent,
85
+ StyledRichTextContent: () => StyledRichTextContent,
73
86
  toSubmissionData: () => toSubmissionData
74
87
  });
75
88
  module.exports = __toCommonJS(components_exports);
76
89
 
77
90
  // src/components/RichTextContent/index.tsx
91
+ var import_react2 = __toESM(require("react"), 1);
92
+ var import_react3 = require("@payloadcms/richtext-lexical/react");
93
+
94
+ // src/components/RichTextContent/styled.tsx
78
95
  var import_react = __toESM(require("react"), 1);
79
- var import_react2 = require("@payloadcms/richtext-lexical/react");
96
+ function createComponentConverters(components, internalDocToHref) {
97
+ const converters = {};
98
+ if (components.Heading) {
99
+ const Heading = components.Heading;
100
+ converters.heading = ({ node, nodesToJSX }) => /* @__PURE__ */ import_react.default.createElement(Heading, { tag: node.tag, node }, nodesToJSX({ nodes: node.children }));
101
+ }
102
+ if (components.Paragraph) {
103
+ const Paragraph = components.Paragraph;
104
+ converters.paragraph = ({ node, nodesToJSX }) => {
105
+ const children = nodesToJSX({ nodes: node.children });
106
+ return /* @__PURE__ */ import_react.default.createElement(Paragraph, { isEmpty: !(children == null ? void 0 : children.length), node }, (children == null ? void 0 : children.length) ? children : /* @__PURE__ */ import_react.default.createElement("br", null));
107
+ };
108
+ }
109
+ if (components.Blockquote) {
110
+ const Blockquote = components.Blockquote;
111
+ converters.quote = ({ node, nodesToJSX }) => /* @__PURE__ */ import_react.default.createElement(Blockquote, { node }, nodesToJSX({ nodes: node.children }));
112
+ }
113
+ if (components.List) {
114
+ const List = components.List;
115
+ converters.list = ({ node, nodesToJSX }) => /* @__PURE__ */ import_react.default.createElement(List, { tag: node.tag, listType: node.listType, node }, nodesToJSX({ nodes: node.children }));
116
+ }
117
+ if (components.ListItem) {
118
+ const ListItem = components.ListItem;
119
+ converters.listitem = ({ node, nodesToJSX }) => {
120
+ const hasSubLists = node.children.some(
121
+ (child) => child.type === "list"
122
+ );
123
+ return /* @__PURE__ */ import_react.default.createElement(
124
+ ListItem,
125
+ {
126
+ hasSubLists,
127
+ checked: node.checked,
128
+ value: node.value,
129
+ node
130
+ },
131
+ nodesToJSX({ nodes: node.children })
132
+ );
133
+ };
134
+ }
135
+ if (components.Link) {
136
+ const Link = components.Link;
137
+ const resolveHref = (node) => {
138
+ var _a;
139
+ if (node.fields.linkType === "internal") {
140
+ return internalDocToHref ? internalDocToHref({ linkNode: node }) : "#";
141
+ }
142
+ return (_a = node.fields.url) != null ? _a : "";
143
+ };
144
+ converters.link = ({ node, nodesToJSX }) => /* @__PURE__ */ import_react.default.createElement(
145
+ Link,
146
+ {
147
+ href: resolveHref(node),
148
+ rel: node.fields.newTab ? "noopener noreferrer" : void 0,
149
+ target: node.fields.newTab ? "_blank" : void 0,
150
+ node
151
+ },
152
+ nodesToJSX({ nodes: node.children })
153
+ );
154
+ converters.autolink = ({ node, nodesToJSX }) => {
155
+ var _a;
156
+ return /* @__PURE__ */ import_react.default.createElement(
157
+ Link,
158
+ {
159
+ href: (_a = node.fields.url) != null ? _a : "",
160
+ rel: node.fields.newTab ? "noopener noreferrer" : void 0,
161
+ target: node.fields.newTab ? "_blank" : void 0,
162
+ node
163
+ },
164
+ nodesToJSX({ nodes: node.children })
165
+ );
166
+ };
167
+ }
168
+ if (components.HorizontalRule) {
169
+ const HorizontalRule = components.HorizontalRule;
170
+ converters.horizontalrule = /* @__PURE__ */ import_react.default.createElement(HorizontalRule, null);
171
+ }
172
+ if (components.Upload) {
173
+ const Upload = components.Upload;
174
+ converters.upload = ({ node }) => {
175
+ var _a;
176
+ const uploadNode = node;
177
+ if (typeof uploadNode.value !== "object") return null;
178
+ const doc = uploadNode.value;
179
+ return /* @__PURE__ */ import_react.default.createElement(
180
+ Upload,
181
+ {
182
+ src: doc.url,
183
+ alt: ((_a = uploadNode.fields) == null ? void 0 : _a.alt) || (doc == null ? void 0 : doc.alt) || "",
184
+ width: doc.width,
185
+ height: doc.height,
186
+ mimeType: doc.mimeType,
187
+ filename: doc.filename,
188
+ sizes: doc.sizes,
189
+ node
190
+ }
191
+ );
192
+ };
193
+ }
194
+ if (components.Table) {
195
+ const Table = components.Table;
196
+ converters.table = ({ node, nodesToJSX }) => /* @__PURE__ */ import_react.default.createElement(Table, { node }, nodesToJSX({ nodes: node.children }));
197
+ }
198
+ if (components.TableRow) {
199
+ const TableRow = components.TableRow;
200
+ converters.tablerow = ({ node, nodesToJSX }) => /* @__PURE__ */ import_react.default.createElement(TableRow, { node }, nodesToJSX({ nodes: node.children }));
201
+ }
202
+ if (components.TableCell) {
203
+ const TableCell = components.TableCell;
204
+ converters.tablecell = ({ node, nodesToJSX }) => /* @__PURE__ */ import_react.default.createElement(
205
+ TableCell,
206
+ {
207
+ tag: node.headerState > 0 ? "th" : "td",
208
+ colSpan: node.colSpan > 1 ? node.colSpan : void 0,
209
+ rowSpan: node.rowSpan > 1 ? node.rowSpan : void 0,
210
+ backgroundColor: node.backgroundColor || void 0,
211
+ node
212
+ },
213
+ nodesToJSX({ nodes: node.children })
214
+ );
215
+ }
216
+ return converters;
217
+ }
218
+ function StyledRichTextContent(_a) {
219
+ var _b = _a, {
220
+ components = {},
221
+ internalDocToHref,
222
+ blocks,
223
+ textState
224
+ } = _b, props = __objRest(_b, [
225
+ "components",
226
+ "internalDocToHref",
227
+ "blocks",
228
+ "textState"
229
+ ]);
230
+ const converters = createComponentConverters(components, internalDocToHref);
231
+ return /* @__PURE__ */ import_react.default.createElement(
232
+ RichTextContent,
233
+ __spreadProps(__spreadValues({}, props), {
234
+ internalDocToHref,
235
+ converters,
236
+ blocks,
237
+ textState
238
+ })
239
+ );
240
+ }
241
+
242
+ // src/components/RichTextContent/index.tsx
243
+ function hyphenToCamel(str) {
244
+ return str.replace(/-([a-z])/g, (_, c) => c.toUpperCase());
245
+ }
246
+ function createTextStateConverter(state) {
247
+ const defaultTextConverter = import_react3.TextJSXConverter.text;
248
+ return (_a) => {
249
+ var _b = _a, { node } = _b, rest = __objRest(_b, ["node"]);
250
+ var _a2, _b2;
251
+ const base = defaultTextConverter(__spreadValues({ node }, rest));
252
+ const nodeState = node.$;
253
+ if (!nodeState || typeof nodeState !== "object") return base;
254
+ const style = {};
255
+ for (const stateKey in nodeState) {
256
+ const stateValue = nodeState[stateKey];
257
+ if (!stateValue) continue;
258
+ const css = (_b2 = (_a2 = state[stateKey]) == null ? void 0 : _a2[stateValue]) == null ? void 0 : _b2.css;
259
+ if (css) {
260
+ for (const prop in css) {
261
+ const val = css[prop];
262
+ if (val) style[hyphenToCamel(prop)] = val;
263
+ }
264
+ }
265
+ }
266
+ if (Object.keys(style).length === 0) return base;
267
+ return /* @__PURE__ */ import_react2.default.createElement("span", { style }, base);
268
+ };
269
+ }
80
270
  function RichTextContent({
81
271
  data,
82
272
  className,
83
273
  internalDocToHref,
84
- blocks
274
+ converters,
275
+ blocks,
276
+ disableDefaultConverters,
277
+ textState
85
278
  }) {
86
- return /* @__PURE__ */ import_react.default.createElement(
87
- import_react2.RichText,
88
- {
89
- data,
90
- className,
91
- converters: __spreadProps(__spreadValues(__spreadValues({}, import_react2.defaultJSXConverters), (0, import_react2.LinkJSXConverter)({
92
- internalDocToHref
93
- })), {
94
- blocks: blocks ? blocks : void 0
95
- })
96
- }
97
- );
279
+ const baseConverters = __spreadValues(__spreadValues(__spreadValues(__spreadValues(__spreadValues({}, disableDefaultConverters ? {} : import_react3.defaultJSXConverters), (0, import_react3.LinkJSXConverter)({ internalDocToHref })), textState ? { text: createTextStateConverter(textState) } : {}), converters), blocks ? { blocks } : {});
280
+ return /* @__PURE__ */ import_react2.default.createElement(import_react3.RichText, { data, className, converters: baseConverters });
98
281
  }
99
282
 
100
283
  // src/components/FormRenderer/index.tsx
101
- var import_react3 = __toESM(require("react"), 1);
284
+ var import_react4 = __toESM(require("react"), 1);
102
285
 
103
286
  // src/components/FormRenderer/countries.ts
104
287
  var COUNTRIES = [
@@ -437,15 +620,15 @@ function FormRenderer({
437
620
  renderButton
438
621
  }) {
439
622
  var _a;
440
- const [values, setValues] = (0, import_react3.useState)(
623
+ const [values, setValues] = (0, import_react4.useState)(
441
624
  () => getInitialValues(form.fields)
442
625
  );
443
- const [isSubmitting, setIsSubmitting] = (0, import_react3.useState)(false);
444
- const submittingRef = (0, import_react3.useRef)(false);
445
- (0, import_react3.useEffect)(() => {
626
+ const [isSubmitting, setIsSubmitting] = (0, import_react4.useState)(false);
627
+ const submittingRef = (0, import_react4.useRef)(false);
628
+ (0, import_react4.useEffect)(() => {
446
629
  setValues(getInitialValues(form.fields));
447
630
  }, [form.id]);
448
- const handleChange = (0, import_react3.useCallback)(
631
+ const handleChange = (0, import_react4.useCallback)(
449
632
  (name, value) => {
450
633
  setValues((prev) => __spreadProps(__spreadValues({}, prev), { [name]: value }));
451
634
  },
@@ -469,14 +652,14 @@ function FormRenderer({
469
652
  value: (_a2 = values[field.name]) != null ? _a2 : "",
470
653
  onChange: (v) => handleChange(field.name, v)
471
654
  };
472
- const el = /* @__PURE__ */ import_react3.default.createElement(
655
+ const el = /* @__PURE__ */ import_react4.default.createElement(
473
656
  "div",
474
657
  {
475
658
  key: (_b = field.id) != null ? _b : field.name,
476
659
  className: fieldClassName,
477
660
  style
478
661
  },
479
- field.label && /* @__PURE__ */ import_react3.default.createElement("label", { htmlFor: field.name }, field.label),
662
+ field.label && /* @__PURE__ */ import_react4.default.createElement("label", { htmlFor: field.name }, field.label),
480
663
  input
481
664
  );
482
665
  return renderField ? renderField(field, context, el) : el;
@@ -486,7 +669,7 @@ function FormRenderer({
486
669
  return wrapField(
487
670
  field,
488
671
  style,
489
- /* @__PURE__ */ import_react3.default.createElement(
672
+ /* @__PURE__ */ import_react4.default.createElement(
490
673
  "select",
491
674
  {
492
675
  id: field.name,
@@ -495,8 +678,8 @@ function FormRenderer({
495
678
  required: (_b = field.required) != null ? _b : false,
496
679
  onChange: (e) => handleChange(field.name, e.target.value)
497
680
  },
498
- /* @__PURE__ */ import_react3.default.createElement("option", { value: "" }, placeholder || "Select\u2026"),
499
- options.map((opt) => /* @__PURE__ */ import_react3.default.createElement("option", { key: opt.value, value: opt.value }, opt.label))
681
+ /* @__PURE__ */ import_react4.default.createElement("option", { value: "" }, placeholder || "Select\u2026"),
682
+ options.map((opt) => /* @__PURE__ */ import_react4.default.createElement("option", { key: opt.value, value: opt.value }, opt.label))
500
683
  )
501
684
  );
502
685
  };
@@ -508,7 +691,7 @@ function FormRenderer({
508
691
  return wrapField(
509
692
  field,
510
693
  style,
511
- /* @__PURE__ */ import_react3.default.createElement(
694
+ /* @__PURE__ */ import_react4.default.createElement(
512
695
  "input",
513
696
  {
514
697
  type: "text",
@@ -525,7 +708,7 @@ function FormRenderer({
525
708
  return wrapField(
526
709
  field,
527
710
  style,
528
- /* @__PURE__ */ import_react3.default.createElement(
711
+ /* @__PURE__ */ import_react4.default.createElement(
529
712
  "input",
530
713
  {
531
714
  type: "email",
@@ -541,7 +724,7 @@ function FormRenderer({
541
724
  return wrapField(
542
725
  field,
543
726
  style,
544
- /* @__PURE__ */ import_react3.default.createElement(
727
+ /* @__PURE__ */ import_react4.default.createElement(
545
728
  "input",
546
729
  {
547
730
  type: "number",
@@ -562,7 +745,7 @@ function FormRenderer({
562
745
  return wrapField(
563
746
  field,
564
747
  style,
565
- /* @__PURE__ */ import_react3.default.createElement(
748
+ /* @__PURE__ */ import_react4.default.createElement(
566
749
  "textarea",
567
750
  {
568
751
  id: field.name,
@@ -578,14 +761,14 @@ function FormRenderer({
578
761
  value: (_j = values[field.name]) != null ? _j : false,
579
762
  onChange: (v) => handleChange(field.name, v)
580
763
  };
581
- const el = /* @__PURE__ */ import_react3.default.createElement(
764
+ const el = /* @__PURE__ */ import_react4.default.createElement(
582
765
  "div",
583
766
  {
584
767
  key: (_k = field.id) != null ? _k : field.name,
585
768
  className: fieldClassName,
586
769
  style
587
770
  },
588
- /* @__PURE__ */ import_react3.default.createElement("label", { htmlFor: field.name }, /* @__PURE__ */ import_react3.default.createElement(
771
+ /* @__PURE__ */ import_react4.default.createElement("label", { htmlFor: field.name }, /* @__PURE__ */ import_react4.default.createElement(
589
772
  "input",
590
773
  {
591
774
  type: "checkbox",
@@ -595,7 +778,7 @@ function FormRenderer({
595
778
  required: (_l = field.required) != null ? _l : false,
596
779
  onChange: (e) => handleChange(field.name, e.target.checked)
597
780
  }
598
- ), field.label && /* @__PURE__ */ import_react3.default.createElement("span", null, field.label))
781
+ ), field.label && /* @__PURE__ */ import_react4.default.createElement("span", null, field.label))
599
782
  );
600
783
  return renderField ? renderField(field, context, el) : el;
601
784
  }
@@ -612,7 +795,7 @@ function FormRenderer({
612
795
  return renderSelectField(field, style, US_STATES);
613
796
  case "message":
614
797
  if (renderMessage && field.message) {
615
- return /* @__PURE__ */ import_react3.default.createElement(import_react3.default.Fragment, { key: (_p = (_o = field.id) != null ? _o : field.blockName) != null ? _p : "message" }, renderMessage(field.message));
798
+ return /* @__PURE__ */ import_react4.default.createElement(import_react4.default.Fragment, { key: (_p = (_o = field.id) != null ? _o : field.blockName) != null ? _p : "message" }, renderMessage(field.message));
616
799
  }
617
800
  return null;
618
801
  default:
@@ -620,7 +803,7 @@ function FormRenderer({
620
803
  }
621
804
  };
622
805
  const buttonLabel = form.submitButtonLabel || "Submit";
623
- return /* @__PURE__ */ import_react3.default.createElement("form", { onSubmit: handleSubmit, className }, (_a = form.fields) == null ? void 0 : _a.map((field) => renderFieldElement(field)), renderButton ? renderButton({ isSubmitting, label: buttonLabel }) : /* @__PURE__ */ import_react3.default.createElement(
806
+ return /* @__PURE__ */ import_react4.default.createElement("form", { onSubmit: handleSubmit, className }, (_a = form.fields) == null ? void 0 : _a.map((field) => renderFieldElement(field)), renderButton ? renderButton({ isSubmitting, label: buttonLabel }) : /* @__PURE__ */ import_react4.default.createElement(
624
807
  "button",
625
808
  {
626
809
  type: "submit",
@@ -632,7 +815,7 @@ function FormRenderer({
632
815
  }
633
816
 
634
817
  // src/components/Image/index.tsx
635
- var import_react4 = __toESM(require("react"), 1);
818
+ var import_react5 = __toESM(require("react"), 1);
636
819
 
637
820
  // src/utils/image.ts
638
821
  var IMAGE_SIZES = [384, 768, 1536];
@@ -697,8 +880,8 @@ function Image({
697
880
  imageRendering
698
881
  }) {
699
882
  var _a, _b;
700
- const [loaded, setLoaded] = (0, import_react4.useState)(false);
701
- const firedRef = (0, import_react4.useRef)(false);
883
+ const [loaded, setLoaded] = (0, import_react5.useState)(false);
884
+ const firedRef = (0, import_react5.useRef)(false);
702
885
  const isPixelRendering = imageRendering === "pixelated" || imageRendering === "crisp-edges";
703
886
  const placeholder = placeholderProp != null ? placeholderProp : isPixelRendering ? "none" : "blur";
704
887
  const loading = priority ? "eager" : loadingProp != null ? loadingProp : "lazy";
@@ -710,13 +893,13 @@ function Image({
710
893
  type: placeholder
711
894
  });
712
895
  const placeholderColor = !hasLqip && "backgroundColor" in placeholderStyle ? placeholderStyle.backgroundColor : void 0;
713
- const fireLoad = (0, import_react4.useCallback)(() => {
896
+ const fireLoad = (0, import_react5.useCallback)(() => {
714
897
  if (firedRef.current) return;
715
898
  firedRef.current = true;
716
899
  setLoaded(true);
717
900
  onLoad == null ? void 0 : onLoad();
718
901
  }, [onLoad]);
719
- const imgRef = (0, import_react4.useCallback)(
902
+ const imgRef = (0, import_react5.useCallback)(
720
903
  (node) => {
721
904
  if (node && node.complete && node.naturalWidth > 0) {
722
905
  fireLoad();
@@ -747,7 +930,7 @@ function Image({
747
930
  opacity: loaded ? 1 : 0,
748
931
  transition: "opacity 0.3s ease"
749
932
  }), imgStyle);
750
- return /* @__PURE__ */ import_react4.default.createElement("div", { className, style: containerStyle }, hasLqip && /* @__PURE__ */ import_react4.default.createElement(
933
+ return /* @__PURE__ */ import_react5.default.createElement("div", { className, style: containerStyle }, hasLqip && /* @__PURE__ */ import_react5.default.createElement(
751
934
  "img",
752
935
  {
753
936
  "aria-hidden": true,
@@ -760,7 +943,7 @@ function Image({
760
943
  transform: "scale(1.1)"
761
944
  })
762
945
  }
763
- ), placeholderColor && /* @__PURE__ */ import_react4.default.createElement(
946
+ ), placeholderColor && /* @__PURE__ */ import_react5.default.createElement(
764
947
  "div",
765
948
  {
766
949
  "aria-hidden": true,
@@ -768,7 +951,7 @@ function Image({
768
951
  backgroundColor: placeholderColor
769
952
  })
770
953
  }
771
- ), /* @__PURE__ */ import_react4.default.createElement(
954
+ ), /* @__PURE__ */ import_react5.default.createElement(
772
955
  "img",
773
956
  {
774
957
  ref: imgRef,