@01.software/sdk 0.2.0 → 0.2.1

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.
package/dist/index.cjs CHANGED
@@ -88,7 +88,9 @@ __export(src_exports, {
88
88
  CollectionQueryBuilder: () => CollectionQueryBuilder,
89
89
  ConfigError: () => ConfigError,
90
90
  CustomerAuth: () => CustomerAuth,
91
+ FormRenderer: () => FormRenderer,
91
92
  IMAGE_SIZES: () => IMAGE_SIZES,
93
+ Image: () => Image,
92
94
  NetworkError: () => NetworkError,
93
95
  OrderApi: () => OrderApi,
94
96
  ProductApi: () => ProductApi,
@@ -108,6 +110,9 @@ __export(src_exports, {
108
110
  decodeServerToken: () => decodeServerToken,
109
111
  formatOrderName: () => formatOrderName,
110
112
  generateOrderNumber: () => generateOrderNumber,
113
+ getImageLqip: () => getImageLqip,
114
+ getImagePalette: () => getImagePalette,
115
+ getImagePlaceholderStyle: () => getImagePlaceholderStyle,
111
116
  getImageSrcSet: () => getImageSrcSet,
112
117
  getImageUrl: () => getImageUrl,
113
118
  getQueryClient: () => getQueryClient,
@@ -123,6 +128,7 @@ __export(src_exports, {
123
128
  objectFor: () => objectFor,
124
129
  parseApiKey: () => parseApiKey,
125
130
  resolveRelation: () => resolveRelation,
131
+ toSubmissionData: () => toSubmissionData,
126
132
  verifyServerToken: () => verifyServerToken
127
133
  });
128
134
  module.exports = __toCommonJS(src_exports);
@@ -1136,6 +1142,7 @@ var COLLECTIONS = [
1136
1142
  "shipping-policies",
1137
1143
  "documents",
1138
1144
  "document-categories",
1145
+ "document-types",
1139
1146
  "document-images",
1140
1147
  "posts",
1141
1148
  "post-categories",
@@ -1916,6 +1923,39 @@ function getImageSrcSet(image) {
1916
1923
  }
1917
1924
  return parts.join(", ");
1918
1925
  }
1926
+ function getImageLqip(image) {
1927
+ var _a;
1928
+ return (_a = image.lqip) != null ? _a : void 0;
1929
+ }
1930
+ function getImagePalette(image) {
1931
+ var _a;
1932
+ return (_a = image.palette) != null ? _a : void 0;
1933
+ }
1934
+ function getImagePlaceholderStyle(image, options) {
1935
+ var _a, _b, _c;
1936
+ const type = (_a = options == null ? void 0 : options.type) != null ? _a : "blur";
1937
+ const paletteColor = (_b = options == null ? void 0 : options.paletteColor) != null ? _b : "muted";
1938
+ if (type === "none") return {};
1939
+ const color = (_c = image.palette) == null ? void 0 : _c[paletteColor];
1940
+ if (type === "blur") {
1941
+ const lqip = image.lqip;
1942
+ if (lqip) {
1943
+ return {
1944
+ backgroundImage: `url(${lqip})`,
1945
+ backgroundSize: "cover",
1946
+ backgroundPosition: "center"
1947
+ };
1948
+ }
1949
+ if (color) {
1950
+ return { backgroundColor: color };
1951
+ }
1952
+ return {};
1953
+ }
1954
+ if (color) {
1955
+ return { backgroundColor: color };
1956
+ }
1957
+ return {};
1958
+ }
1919
1959
 
1920
1960
  // src/utils/order/generateOrderNumber.ts
1921
1961
  var generateOrderNumber = () => {
@@ -1959,4 +1999,626 @@ function RichTextContent({
1959
1999
  }
1960
2000
  );
1961
2001
  }
2002
+
2003
+ // src/components/FormRenderer/index.tsx
2004
+ var import_react3 = __toESM(require("react"), 1);
2005
+
2006
+ // src/components/FormRenderer/countries.ts
2007
+ var COUNTRIES = [
2008
+ { value: "AF", label: "Afghanistan" },
2009
+ { value: "AX", label: "\xC5land Islands" },
2010
+ { value: "AL", label: "Albania" },
2011
+ { value: "DZ", label: "Algeria" },
2012
+ { value: "AS", label: "American Samoa" },
2013
+ { value: "AD", label: "Andorra" },
2014
+ { value: "AO", label: "Angola" },
2015
+ { value: "AI", label: "Anguilla" },
2016
+ { value: "AQ", label: "Antarctica" },
2017
+ { value: "AG", label: "Antigua and Barbuda" },
2018
+ { value: "AR", label: "Argentina" },
2019
+ { value: "AM", label: "Armenia" },
2020
+ { value: "AW", label: "Aruba" },
2021
+ { value: "AU", label: "Australia" },
2022
+ { value: "AT", label: "Austria" },
2023
+ { value: "AZ", label: "Azerbaijan" },
2024
+ { value: "BS", label: "Bahamas" },
2025
+ { value: "BH", label: "Bahrain" },
2026
+ { value: "BD", label: "Bangladesh" },
2027
+ { value: "BB", label: "Barbados" },
2028
+ { value: "BY", label: "Belarus" },
2029
+ { value: "BE", label: "Belgium" },
2030
+ { value: "BZ", label: "Belize" },
2031
+ { value: "BJ", label: "Benin" },
2032
+ { value: "BM", label: "Bermuda" },
2033
+ { value: "BT", label: "Bhutan" },
2034
+ { value: "BO", label: "Bolivia" },
2035
+ { value: "BA", label: "Bosnia and Herzegovina" },
2036
+ { value: "BW", label: "Botswana" },
2037
+ { value: "BV", label: "Bouvet Island" },
2038
+ { value: "BR", label: "Brazil" },
2039
+ { value: "IO", label: "British Indian Ocean Territory" },
2040
+ { value: "BN", label: "Brunei Darussalam" },
2041
+ { value: "BG", label: "Bulgaria" },
2042
+ { value: "BF", label: "Burkina Faso" },
2043
+ { value: "BI", label: "Burundi" },
2044
+ { value: "KH", label: "Cambodia" },
2045
+ { value: "CM", label: "Cameroon" },
2046
+ { value: "CA", label: "Canada" },
2047
+ { value: "CV", label: "Cape Verde" },
2048
+ { value: "KY", label: "Cayman Islands" },
2049
+ { value: "CF", label: "Central African Republic" },
2050
+ { value: "TD", label: "Chad" },
2051
+ { value: "CL", label: "Chile" },
2052
+ { value: "CN", label: "China" },
2053
+ { value: "CX", label: "Christmas Island" },
2054
+ { value: "CC", label: "Cocos (Keeling) Islands" },
2055
+ { value: "CO", label: "Colombia" },
2056
+ { value: "KM", label: "Comoros" },
2057
+ { value: "CG", label: "Congo" },
2058
+ { value: "CD", label: "Congo, Democratic Republic" },
2059
+ { value: "CK", label: "Cook Islands" },
2060
+ { value: "CR", label: "Costa Rica" },
2061
+ { value: "CI", label: "C\xF4te d'Ivoire" },
2062
+ { value: "HR", label: "Croatia" },
2063
+ { value: "CU", label: "Cuba" },
2064
+ { value: "CY", label: "Cyprus" },
2065
+ { value: "CZ", label: "Czech Republic" },
2066
+ { value: "DK", label: "Denmark" },
2067
+ { value: "DJ", label: "Djibouti" },
2068
+ { value: "DM", label: "Dominica" },
2069
+ { value: "DO", label: "Dominican Republic" },
2070
+ { value: "EC", label: "Ecuador" },
2071
+ { value: "EG", label: "Egypt" },
2072
+ { value: "SV", label: "El Salvador" },
2073
+ { value: "GQ", label: "Equatorial Guinea" },
2074
+ { value: "ER", label: "Eritrea" },
2075
+ { value: "EE", label: "Estonia" },
2076
+ { value: "ET", label: "Ethiopia" },
2077
+ { value: "FK", label: "Falkland Islands" },
2078
+ { value: "FO", label: "Faroe Islands" },
2079
+ { value: "FJ", label: "Fiji" },
2080
+ { value: "FI", label: "Finland" },
2081
+ { value: "FR", label: "France" },
2082
+ { value: "GF", label: "French Guiana" },
2083
+ { value: "PF", label: "French Polynesia" },
2084
+ { value: "TF", label: "French Southern Territories" },
2085
+ { value: "GA", label: "Gabon" },
2086
+ { value: "GM", label: "Gambia" },
2087
+ { value: "GE", label: "Georgia" },
2088
+ { value: "DE", label: "Germany" },
2089
+ { value: "GH", label: "Ghana" },
2090
+ { value: "GI", label: "Gibraltar" },
2091
+ { value: "GR", label: "Greece" },
2092
+ { value: "GL", label: "Greenland" },
2093
+ { value: "GD", label: "Grenada" },
2094
+ { value: "GP", label: "Guadeloupe" },
2095
+ { value: "GU", label: "Guam" },
2096
+ { value: "GT", label: "Guatemala" },
2097
+ { value: "GG", label: "Guernsey" },
2098
+ { value: "GN", label: "Guinea" },
2099
+ { value: "GW", label: "Guinea-Bissau" },
2100
+ { value: "GY", label: "Guyana" },
2101
+ { value: "HT", label: "Haiti" },
2102
+ { value: "VA", label: "Holy See (Vatican)" },
2103
+ { value: "HN", label: "Honduras" },
2104
+ { value: "HK", label: "Hong Kong" },
2105
+ { value: "HU", label: "Hungary" },
2106
+ { value: "IS", label: "Iceland" },
2107
+ { value: "IN", label: "India" },
2108
+ { value: "ID", label: "Indonesia" },
2109
+ { value: "IR", label: "Iran" },
2110
+ { value: "IQ", label: "Iraq" },
2111
+ { value: "IE", label: "Ireland" },
2112
+ { value: "IM", label: "Isle of Man" },
2113
+ { value: "IL", label: "Israel" },
2114
+ { value: "IT", label: "Italy" },
2115
+ { value: "JM", label: "Jamaica" },
2116
+ { value: "JP", label: "Japan" },
2117
+ { value: "JE", label: "Jersey" },
2118
+ { value: "JO", label: "Jordan" },
2119
+ { value: "KZ", label: "Kazakhstan" },
2120
+ { value: "KE", label: "Kenya" },
2121
+ { value: "KI", label: "Kiribati" },
2122
+ { value: "KP", label: "Korea, North" },
2123
+ { value: "KR", label: "Korea, South" },
2124
+ { value: "KW", label: "Kuwait" },
2125
+ { value: "KG", label: "Kyrgyzstan" },
2126
+ { value: "LA", label: "Laos" },
2127
+ { value: "LV", label: "Latvia" },
2128
+ { value: "LB", label: "Lebanon" },
2129
+ { value: "LS", label: "Lesotho" },
2130
+ { value: "LR", label: "Liberia" },
2131
+ { value: "LY", label: "Libya" },
2132
+ { value: "LI", label: "Liechtenstein" },
2133
+ { value: "LT", label: "Lithuania" },
2134
+ { value: "LU", label: "Luxembourg" },
2135
+ { value: "MO", label: "Macao" },
2136
+ { value: "MK", label: "North Macedonia" },
2137
+ { value: "MG", label: "Madagascar" },
2138
+ { value: "MW", label: "Malawi" },
2139
+ { value: "MY", label: "Malaysia" },
2140
+ { value: "MV", label: "Maldives" },
2141
+ { value: "ML", label: "Mali" },
2142
+ { value: "MT", label: "Malta" },
2143
+ { value: "MH", label: "Marshall Islands" },
2144
+ { value: "MQ", label: "Martinique" },
2145
+ { value: "MR", label: "Mauritania" },
2146
+ { value: "MU", label: "Mauritius" },
2147
+ { value: "YT", label: "Mayotte" },
2148
+ { value: "MX", label: "Mexico" },
2149
+ { value: "FM", label: "Micronesia" },
2150
+ { value: "MD", label: "Moldova" },
2151
+ { value: "MC", label: "Monaco" },
2152
+ { value: "MN", label: "Mongolia" },
2153
+ { value: "ME", label: "Montenegro" },
2154
+ { value: "MS", label: "Montserrat" },
2155
+ { value: "MA", label: "Morocco" },
2156
+ { value: "MZ", label: "Mozambique" },
2157
+ { value: "MM", label: "Myanmar" },
2158
+ { value: "NA", label: "Namibia" },
2159
+ { value: "NR", label: "Nauru" },
2160
+ { value: "NP", label: "Nepal" },
2161
+ { value: "NL", label: "Netherlands" },
2162
+ { value: "NC", label: "New Caledonia" },
2163
+ { value: "NZ", label: "New Zealand" },
2164
+ { value: "NI", label: "Nicaragua" },
2165
+ { value: "NE", label: "Niger" },
2166
+ { value: "NG", label: "Nigeria" },
2167
+ { value: "NU", label: "Niue" },
2168
+ { value: "NF", label: "Norfolk Island" },
2169
+ { value: "MP", label: "Northern Mariana Islands" },
2170
+ { value: "NO", label: "Norway" },
2171
+ { value: "OM", label: "Oman" },
2172
+ { value: "PK", label: "Pakistan" },
2173
+ { value: "PW", label: "Palau" },
2174
+ { value: "PS", label: "Palestine" },
2175
+ { value: "PA", label: "Panama" },
2176
+ { value: "PG", label: "Papua New Guinea" },
2177
+ { value: "PY", label: "Paraguay" },
2178
+ { value: "PE", label: "Peru" },
2179
+ { value: "PH", label: "Philippines" },
2180
+ { value: "PN", label: "Pitcairn" },
2181
+ { value: "PL", label: "Poland" },
2182
+ { value: "PT", label: "Portugal" },
2183
+ { value: "PR", label: "Puerto Rico" },
2184
+ { value: "QA", label: "Qatar" },
2185
+ { value: "RE", label: "R\xE9union" },
2186
+ { value: "RO", label: "Romania" },
2187
+ { value: "RU", label: "Russian Federation" },
2188
+ { value: "RW", label: "Rwanda" },
2189
+ { value: "BL", label: "Saint Barth\xE9lemy" },
2190
+ { value: "SH", label: "Saint Helena" },
2191
+ { value: "KN", label: "Saint Kitts and Nevis" },
2192
+ { value: "LC", label: "Saint Lucia" },
2193
+ { value: "MF", label: "Saint Martin" },
2194
+ { value: "PM", label: "Saint Pierre and Miquelon" },
2195
+ { value: "VC", label: "Saint Vincent and the Grenadines" },
2196
+ { value: "WS", label: "Samoa" },
2197
+ { value: "SM", label: "San Marino" },
2198
+ { value: "ST", label: "Sao Tome and Principe" },
2199
+ { value: "SA", label: "Saudi Arabia" },
2200
+ { value: "SN", label: "Senegal" },
2201
+ { value: "RS", label: "Serbia" },
2202
+ { value: "SC", label: "Seychelles" },
2203
+ { value: "SL", label: "Sierra Leone" },
2204
+ { value: "SG", label: "Singapore" },
2205
+ { value: "SX", label: "Sint Maarten" },
2206
+ { value: "SK", label: "Slovakia" },
2207
+ { value: "SI", label: "Slovenia" },
2208
+ { value: "SB", label: "Solomon Islands" },
2209
+ { value: "SO", label: "Somalia" },
2210
+ { value: "ZA", label: "South Africa" },
2211
+ { value: "GS", label: "South Georgia" },
2212
+ { value: "SS", label: "South Sudan" },
2213
+ { value: "ES", label: "Spain" },
2214
+ { value: "LK", label: "Sri Lanka" },
2215
+ { value: "SD", label: "Sudan" },
2216
+ { value: "SR", label: "Suriname" },
2217
+ { value: "SJ", label: "Svalbard and Jan Mayen" },
2218
+ { value: "SZ", label: "Eswatini" },
2219
+ { value: "SE", label: "Sweden" },
2220
+ { value: "CH", label: "Switzerland" },
2221
+ { value: "SY", label: "Syria" },
2222
+ { value: "TW", label: "Taiwan" },
2223
+ { value: "TJ", label: "Tajikistan" },
2224
+ { value: "TZ", label: "Tanzania" },
2225
+ { value: "TH", label: "Thailand" },
2226
+ { value: "TL", label: "Timor-Leste" },
2227
+ { value: "TG", label: "Togo" },
2228
+ { value: "TK", label: "Tokelau" },
2229
+ { value: "TO", label: "Tonga" },
2230
+ { value: "TT", label: "Trinidad and Tobago" },
2231
+ { value: "TN", label: "Tunisia" },
2232
+ { value: "TR", label: "Turkey" },
2233
+ { value: "TM", label: "Turkmenistan" },
2234
+ { value: "TC", label: "Turks and Caicos Islands" },
2235
+ { value: "TV", label: "Tuvalu" },
2236
+ { value: "UG", label: "Uganda" },
2237
+ { value: "UA", label: "Ukraine" },
2238
+ { value: "AE", label: "United Arab Emirates" },
2239
+ { value: "GB", label: "United Kingdom" },
2240
+ { value: "US", label: "United States" },
2241
+ { value: "UM", label: "U.S. Minor Outlying Islands" },
2242
+ { value: "UY", label: "Uruguay" },
2243
+ { value: "UZ", label: "Uzbekistan" },
2244
+ { value: "VU", label: "Vanuatu" },
2245
+ { value: "VE", label: "Venezuela" },
2246
+ { value: "VN", label: "Vietnam" },
2247
+ { value: "VG", label: "Virgin Islands, British" },
2248
+ { value: "VI", label: "Virgin Islands, U.S." },
2249
+ { value: "WF", label: "Wallis and Futuna" },
2250
+ { value: "EH", label: "Western Sahara" },
2251
+ { value: "YE", label: "Yemen" },
2252
+ { value: "ZM", label: "Zambia" },
2253
+ { value: "ZW", label: "Zimbabwe" }
2254
+ ];
2255
+ var US_STATES = [
2256
+ { value: "AL", label: "Alabama" },
2257
+ { value: "AK", label: "Alaska" },
2258
+ { value: "AZ", label: "Arizona" },
2259
+ { value: "AR", label: "Arkansas" },
2260
+ { value: "CA", label: "California" },
2261
+ { value: "CO", label: "Colorado" },
2262
+ { value: "CT", label: "Connecticut" },
2263
+ { value: "DE", label: "Delaware" },
2264
+ { value: "FL", label: "Florida" },
2265
+ { value: "GA", label: "Georgia" },
2266
+ { value: "HI", label: "Hawaii" },
2267
+ { value: "ID", label: "Idaho" },
2268
+ { value: "IL", label: "Illinois" },
2269
+ { value: "IN", label: "Indiana" },
2270
+ { value: "IA", label: "Iowa" },
2271
+ { value: "KS", label: "Kansas" },
2272
+ { value: "KY", label: "Kentucky" },
2273
+ { value: "LA", label: "Louisiana" },
2274
+ { value: "ME", label: "Maine" },
2275
+ { value: "MD", label: "Maryland" },
2276
+ { value: "MA", label: "Massachusetts" },
2277
+ { value: "MI", label: "Michigan" },
2278
+ { value: "MN", label: "Minnesota" },
2279
+ { value: "MS", label: "Mississippi" },
2280
+ { value: "MO", label: "Missouri" },
2281
+ { value: "MT", label: "Montana" },
2282
+ { value: "NE", label: "Nebraska" },
2283
+ { value: "NV", label: "Nevada" },
2284
+ { value: "NH", label: "New Hampshire" },
2285
+ { value: "NJ", label: "New Jersey" },
2286
+ { value: "NM", label: "New Mexico" },
2287
+ { value: "NY", label: "New York" },
2288
+ { value: "NC", label: "North Carolina" },
2289
+ { value: "ND", label: "North Dakota" },
2290
+ { value: "OH", label: "Ohio" },
2291
+ { value: "OK", label: "Oklahoma" },
2292
+ { value: "OR", label: "Oregon" },
2293
+ { value: "PA", label: "Pennsylvania" },
2294
+ { value: "RI", label: "Rhode Island" },
2295
+ { value: "SC", label: "South Carolina" },
2296
+ { value: "SD", label: "South Dakota" },
2297
+ { value: "TN", label: "Tennessee" },
2298
+ { value: "TX", label: "Texas" },
2299
+ { value: "UT", label: "Utah" },
2300
+ { value: "VT", label: "Vermont" },
2301
+ { value: "VA", label: "Virginia" },
2302
+ { value: "WA", label: "Washington" },
2303
+ { value: "WV", label: "West Virginia" },
2304
+ { value: "WI", label: "Wisconsin" },
2305
+ { value: "WY", label: "Wyoming" },
2306
+ { value: "DC", label: "District of Columbia" }
2307
+ ];
2308
+
2309
+ // src/components/FormRenderer/index.tsx
2310
+ function toSubmissionData(values) {
2311
+ return Object.entries(values).map(([field, value]) => ({
2312
+ field,
2313
+ value: String(value)
2314
+ }));
2315
+ }
2316
+ function getInitialValues(fields) {
2317
+ var _a, _b;
2318
+ const values = {};
2319
+ if (!fields) return values;
2320
+ for (const field of fields) {
2321
+ if (field.blockType === "message") continue;
2322
+ if (field.blockType === "checkbox") {
2323
+ values[field.name] = (_a = field.defaultValue) != null ? _a : false;
2324
+ } else if (field.blockType === "number" || field.blockType === "text" || field.blockType === "textarea" || field.blockType === "select") {
2325
+ values[field.name] = (_b = field.defaultValue) != null ? _b : "";
2326
+ } else {
2327
+ values[field.name] = "";
2328
+ }
2329
+ }
2330
+ return values;
2331
+ }
2332
+ function FormRenderer({
2333
+ form,
2334
+ onSubmit,
2335
+ className,
2336
+ fieldClassName,
2337
+ buttonClassName,
2338
+ renderField,
2339
+ renderMessage,
2340
+ renderButton
2341
+ }) {
2342
+ var _a;
2343
+ const [values, setValues] = (0, import_react3.useState)(
2344
+ () => getInitialValues(form.fields)
2345
+ );
2346
+ const [isSubmitting, setIsSubmitting] = (0, import_react3.useState)(false);
2347
+ const submittingRef = (0, import_react3.useRef)(false);
2348
+ (0, import_react3.useEffect)(() => {
2349
+ setValues(getInitialValues(form.fields));
2350
+ }, [form.id]);
2351
+ const handleChange = (0, import_react3.useCallback)(
2352
+ (name, value) => {
2353
+ setValues((prev) => __spreadProps(__spreadValues({}, prev), { [name]: value }));
2354
+ },
2355
+ []
2356
+ );
2357
+ const handleSubmit = (e) => __async(null, null, function* () {
2358
+ e.preventDefault();
2359
+ if (submittingRef.current) return;
2360
+ submittingRef.current = true;
2361
+ setIsSubmitting(true);
2362
+ try {
2363
+ yield onSubmit(values);
2364
+ } finally {
2365
+ submittingRef.current = false;
2366
+ setIsSubmitting(false);
2367
+ }
2368
+ });
2369
+ const wrapField = (field, style, input) => {
2370
+ var _a2, _b;
2371
+ const context = {
2372
+ value: (_a2 = values[field.name]) != null ? _a2 : "",
2373
+ onChange: (v) => handleChange(field.name, v)
2374
+ };
2375
+ const el = /* @__PURE__ */ import_react3.default.createElement(
2376
+ "div",
2377
+ {
2378
+ key: (_b = field.id) != null ? _b : field.name,
2379
+ className: fieldClassName,
2380
+ style
2381
+ },
2382
+ field.label && /* @__PURE__ */ import_react3.default.createElement("label", { htmlFor: field.name }, field.label),
2383
+ input
2384
+ );
2385
+ return renderField ? renderField(field, context, el) : el;
2386
+ };
2387
+ const renderSelectField = (field, style, options, placeholder) => {
2388
+ var _a2, _b;
2389
+ return wrapField(
2390
+ field,
2391
+ style,
2392
+ /* @__PURE__ */ import_react3.default.createElement(
2393
+ "select",
2394
+ {
2395
+ id: field.name,
2396
+ name: field.name,
2397
+ value: String((_a2 = values[field.name]) != null ? _a2 : ""),
2398
+ required: (_b = field.required) != null ? _b : false,
2399
+ onChange: (e) => handleChange(field.name, e.target.value)
2400
+ },
2401
+ /* @__PURE__ */ import_react3.default.createElement("option", { value: "" }, placeholder || "Select\u2026"),
2402
+ options.map((opt) => /* @__PURE__ */ import_react3.default.createElement("option", { key: opt.value, value: opt.value }, opt.label))
2403
+ )
2404
+ );
2405
+ };
2406
+ const renderFieldElement = (field) => {
2407
+ var _a2, _b, _c, _d, _e, _f, _g, _h, _i, _j, _k, _l, _m, _n, _o, _p;
2408
+ const style = field.blockType !== "message" && field.width ? { width: `${field.width}%` } : void 0;
2409
+ switch (field.blockType) {
2410
+ case "text":
2411
+ return wrapField(
2412
+ field,
2413
+ style,
2414
+ /* @__PURE__ */ import_react3.default.createElement(
2415
+ "input",
2416
+ {
2417
+ type: "text",
2418
+ id: field.name,
2419
+ name: field.name,
2420
+ value: String((_a2 = values[field.name]) != null ? _a2 : ""),
2421
+ placeholder: (_b = field.placeholder) != null ? _b : void 0,
2422
+ required: (_c = field.required) != null ? _c : false,
2423
+ onChange: (e) => handleChange(field.name, e.target.value)
2424
+ }
2425
+ )
2426
+ );
2427
+ case "email":
2428
+ return wrapField(
2429
+ field,
2430
+ style,
2431
+ /* @__PURE__ */ import_react3.default.createElement(
2432
+ "input",
2433
+ {
2434
+ type: "email",
2435
+ id: field.name,
2436
+ name: field.name,
2437
+ value: String((_d = values[field.name]) != null ? _d : ""),
2438
+ required: (_e = field.required) != null ? _e : false,
2439
+ onChange: (e) => handleChange(field.name, e.target.value)
2440
+ }
2441
+ )
2442
+ );
2443
+ case "number":
2444
+ return wrapField(
2445
+ field,
2446
+ style,
2447
+ /* @__PURE__ */ import_react3.default.createElement(
2448
+ "input",
2449
+ {
2450
+ type: "number",
2451
+ id: field.name,
2452
+ name: field.name,
2453
+ value: String((_f = values[field.name]) != null ? _f : ""),
2454
+ required: (_g = field.required) != null ? _g : false,
2455
+ onChange: (e) => {
2456
+ const v = e.target.value;
2457
+ if (v === "") return handleChange(field.name, "");
2458
+ const n = Number(v);
2459
+ if (Number.isFinite(n)) handleChange(field.name, n);
2460
+ }
2461
+ }
2462
+ )
2463
+ );
2464
+ case "textarea":
2465
+ return wrapField(
2466
+ field,
2467
+ style,
2468
+ /* @__PURE__ */ import_react3.default.createElement(
2469
+ "textarea",
2470
+ {
2471
+ id: field.name,
2472
+ name: field.name,
2473
+ value: String((_h = values[field.name]) != null ? _h : ""),
2474
+ required: (_i = field.required) != null ? _i : false,
2475
+ onChange: (e) => handleChange(field.name, e.target.value)
2476
+ }
2477
+ )
2478
+ );
2479
+ case "checkbox": {
2480
+ const context = {
2481
+ value: (_j = values[field.name]) != null ? _j : false,
2482
+ onChange: (v) => handleChange(field.name, v)
2483
+ };
2484
+ const el = /* @__PURE__ */ import_react3.default.createElement(
2485
+ "div",
2486
+ {
2487
+ key: (_k = field.id) != null ? _k : field.name,
2488
+ className: fieldClassName,
2489
+ style
2490
+ },
2491
+ /* @__PURE__ */ import_react3.default.createElement("label", { htmlFor: field.name }, /* @__PURE__ */ import_react3.default.createElement(
2492
+ "input",
2493
+ {
2494
+ type: "checkbox",
2495
+ id: field.name,
2496
+ name: field.name,
2497
+ checked: Boolean(values[field.name]),
2498
+ required: (_l = field.required) != null ? _l : false,
2499
+ onChange: (e) => handleChange(field.name, e.target.checked)
2500
+ }
2501
+ ), field.label && /* @__PURE__ */ import_react3.default.createElement("span", null, field.label))
2502
+ );
2503
+ return renderField ? renderField(field, context, el) : el;
2504
+ }
2505
+ case "select":
2506
+ return renderSelectField(
2507
+ field,
2508
+ style,
2509
+ (_m = field.options) != null ? _m : [],
2510
+ (_n = field.placeholder) != null ? _n : void 0
2511
+ );
2512
+ case "country":
2513
+ return renderSelectField(field, style, COUNTRIES);
2514
+ case "state":
2515
+ return renderSelectField(field, style, US_STATES);
2516
+ case "message":
2517
+ if (renderMessage && field.message) {
2518
+ 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));
2519
+ }
2520
+ return null;
2521
+ default:
2522
+ return null;
2523
+ }
2524
+ };
2525
+ const buttonLabel = form.submitButtonLabel || "Submit";
2526
+ 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(
2527
+ "button",
2528
+ {
2529
+ type: "submit",
2530
+ disabled: isSubmitting,
2531
+ className: buttonClassName
2532
+ },
2533
+ buttonLabel
2534
+ ));
2535
+ }
2536
+
2537
+ // src/components/Image/index.tsx
2538
+ var import_react4 = require("react");
2539
+ function Image({
2540
+ image,
2541
+ width,
2542
+ dpr = 1,
2543
+ placeholder = "blur",
2544
+ className,
2545
+ style,
2546
+ imgClassName,
2547
+ imgStyle,
2548
+ sizes,
2549
+ loading = "lazy",
2550
+ onLoad,
2551
+ objectFit = "cover"
2552
+ }) {
2553
+ var _a, _b;
2554
+ const [loaded, setLoaded] = (0, import_react4.useState)(false);
2555
+ const aspectRatio = image.width && image.height ? `${image.width} / ${image.height}` : void 0;
2556
+ const srcSet = getImageSrcSet(image);
2557
+ const src = (_a = image.url) != null ? _a : void 0;
2558
+ const placeholderStyle = getImagePlaceholderStyle(image, {
2559
+ type: placeholder
2560
+ });
2561
+ const hasLqip = placeholder === "blur" && !!image.lqip;
2562
+ const hasColorPlaceholder = !hasLqip && Object.keys(placeholderStyle).length > 0;
2563
+ const imgRef = (0, import_react4.useCallback)(
2564
+ (node) => {
2565
+ if (node && node.complete && node.naturalWidth > 0) {
2566
+ setLoaded(true);
2567
+ onLoad == null ? void 0 : onLoad();
2568
+ }
2569
+ },
2570
+ [onLoad]
2571
+ );
2572
+ const handleLoad = (0, import_react4.useCallback)(() => {
2573
+ setLoaded(true);
2574
+ onLoad == null ? void 0 : onLoad();
2575
+ }, [onLoad]);
2576
+ const containerStyle = __spreadValues(__spreadValues(__spreadValues({
2577
+ position: "relative",
2578
+ overflow: "hidden"
2579
+ }, aspectRatio ? { aspectRatio } : {}), hasColorPlaceholder ? placeholderStyle : {}), style);
2580
+ const imgBase = {
2581
+ display: "block",
2582
+ width: "100%",
2583
+ height: "100%",
2584
+ objectFit
2585
+ };
2586
+ const mainImgStyle = __spreadValues(__spreadProps(__spreadValues({}, imgBase), {
2587
+ opacity: loaded ? 1 : 0,
2588
+ transition: "opacity 0.3s ease"
2589
+ }), imgStyle);
2590
+ const lqipStyle = __spreadProps(__spreadValues({}, imgBase), {
2591
+ position: "absolute",
2592
+ top: 0,
2593
+ left: 0,
2594
+ filter: "blur(20px)",
2595
+ transform: "scale(1.1)",
2596
+ opacity: loaded ? 0 : 1,
2597
+ transition: "opacity 0.3s ease",
2598
+ pointerEvents: "none"
2599
+ });
2600
+ return /* @__PURE__ */ React.createElement("div", { className, style: containerStyle }, hasLqip && /* @__PURE__ */ React.createElement(
2601
+ "img",
2602
+ {
2603
+ "aria-hidden": true,
2604
+ alt: "",
2605
+ src: image.lqip,
2606
+ style: lqipStyle
2607
+ }
2608
+ ), /* @__PURE__ */ React.createElement(
2609
+ "img",
2610
+ {
2611
+ ref: imgRef,
2612
+ alt: (_b = image.alt) != null ? _b : "",
2613
+ src,
2614
+ srcSet: srcSet || void 0,
2615
+ sizes,
2616
+ width: width ? width * dpr : void 0,
2617
+ loading,
2618
+ onLoad: handleLoad,
2619
+ className: imgClassName,
2620
+ style: mainImgStyle
2621
+ }
2622
+ ));
2623
+ }
1962
2624
  //# sourceMappingURL=index.cjs.map