@measured/puck 0.14.2-canary.268ea53 → 0.14.2-canary.276d0f8

Sign up to get free protection for your applications and to get access to all the features.
package/README.md CHANGED
@@ -108,7 +108,7 @@ Available recipes include:
108
108
 
109
109
  Puck is developed and maintained by **Measured**, a small group of industry veterans with decades of experience helping companies solve hard UI problems. We offer consultancy and development services for scale-ups, SMEs and enterprises.
110
110
 
111
- If you need support integrating Puck or creating a beautiful component library, please reach out via [our website](https://measured.co).
111
+ If you need support integrating Puck or creating a beautiful component library, please reach out via the [Measured](https://measured.co) website.
112
112
 
113
113
  ## License
114
114
 
package/dist/index.css CHANGED
@@ -135,6 +135,9 @@
135
135
  }
136
136
 
137
137
  /* styles.css */
138
+ .Puck {
139
+ min-height: 100%;
140
+ }
138
141
 
139
142
  /* css-module:/home/runner/work/puck/puck/packages/core/components/Button/Button.module.css/#css-module-data */
140
143
  ._Button_1t64k_1 {
@@ -283,25 +286,25 @@
283
286
  }
284
287
 
285
288
  /* css-module:/home/runner/work/puck/puck/packages/core/components/DraggableComponent/styles.module.css/#css-module-data */
286
- ._DraggableComponent_1542z_1 {
289
+ ._DraggableComponent_59z7f_1 {
287
290
  pointer-events: auto;
288
291
  --overlay-background: color-mix( in srgb, var(--puck-color-azure-08) 30%, transparent );
289
292
  }
290
- ._DraggableComponent--isDragging_1542z_11 {
293
+ ._DraggableComponent--isDragging_59z7f_11 {
291
294
  background: color-mix(in srgb, var(--puck-color-azure-08) 10%, transparent);
292
295
  overflow: hidden;
293
296
  }
294
- ._DraggableComponent-contents_1542z_16 {
297
+ ._DraggableComponent-contents_59z7f_16 {
295
298
  position: relative;
296
299
  pointer-events: none;
297
300
  z-index: 0;
298
301
  }
299
- ._DraggableComponent-contents_1542z_16::before,
300
- ._DraggableComponent-contents_1542z_16::after {
302
+ ._DraggableComponent-contents_59z7f_16::before,
303
+ ._DraggableComponent-contents_59z7f_16::after {
301
304
  content: " ";
302
305
  display: table;
303
306
  }
304
- ._DraggableComponent-overlay_1542z_29 {
307
+ ._DraggableComponent-overlay_59z7f_29 {
305
308
  cursor: pointer;
306
309
  height: 100%;
307
310
  width: 100%;
@@ -312,13 +315,13 @@
312
315
  box-sizing: border-box;
313
316
  z-index: 1;
314
317
  }
315
- ._DraggableComponent_1542z_1:focus-visible > ._DraggableComponent-overlay_1542z_29 {
318
+ ._DraggableComponent_59z7f_1:focus-visible > ._DraggableComponent-overlay_59z7f_29 {
316
319
  outline: 1px solid var(--puck-color-azure-05);
317
320
  }
318
- ._DraggableComponent--isDragging_1542z_11 > ._DraggableComponent-overlay_1542z_29 {
319
- outline: 1px var(--puck-color-azure-09) solid !important;
321
+ ._DraggableComponent--isDragging_59z7f_11 > ._DraggableComponent-overlay_59z7f_29 {
322
+ outline: 2px var(--puck-color-azure-09) solid !important;
320
323
  }
321
- ._DraggableComponent-loadingOverlay_1542z_49 {
324
+ ._DraggableComponent-loadingOverlay_59z7f_49 {
322
325
  background: var(--puck-color-white);
323
326
  color: var(--puck-color-grey-03);
324
327
  border-radius: 4px;
@@ -333,32 +336,32 @@
333
336
  opacity: 0.8;
334
337
  z-index: 1;
335
338
  }
336
- ._DraggableComponent_1542z_1:hover:not(._DraggableComponent--isLocked_1542z_65) > ._DraggableComponent-overlay_1542z_29 {
339
+ ._DraggableComponent_59z7f_1:hover:not(._DraggableComponent--isLocked_59z7f_65) > ._DraggableComponent-overlay_59z7f_29 {
337
340
  background: var(--overlay-background);
338
341
  pointer-events: none;
339
342
  }
340
- ._DraggableComponent--forceHover_1542z_71 > ._DraggableComponent-overlay_1542z_29 {
343
+ ._DraggableComponent--forceHover_59z7f_71 > ._DraggableComponent-overlay_59z7f_29 {
341
344
  background: var(--overlay-background);
342
345
  pointer-events: none;
343
346
  }
344
- ._DraggableComponent_1542z_1:not(._DraggableComponent--isSelected_1542z_76):hover > ._DraggableComponent-overlay_1542z_29 {
347
+ ._DraggableComponent_59z7f_1:not(._DraggableComponent--isSelected_59z7f_76):hover > ._DraggableComponent-overlay_59z7f_29 {
345
348
  outline: 2px var(--puck-color-azure-09) solid !important;
346
349
  }
347
- ._DraggableComponent--indicativeHover_1542z_81 > ._DraggableComponent-overlay_1542z_29 {
350
+ ._DraggableComponent--indicativeHover_59z7f_81 > ._DraggableComponent-overlay_59z7f_29 {
348
351
  pointer-events: none;
349
352
  }
350
- ._DraggableComponent_1542z_1:not(._DraggableComponent--isSelected_1542z_76):has(._DraggableComponent_1542z_1:hover > ._DraggableComponent-overlay_1542z_29) > ._DraggableComponent-overlay_1542z_29 {
353
+ ._DraggableComponent_59z7f_1:not(._DraggableComponent--isSelected_59z7f_76):has(._DraggableComponent_59z7f_1:hover > ._DraggableComponent-overlay_59z7f_29) > ._DraggableComponent-overlay_59z7f_29 {
351
354
  display: none;
352
355
  }
353
- ._DraggableComponent--isSelected_1542z_76 > ._DraggableComponent-overlay_1542z_29 {
356
+ ._DraggableComponent--isSelected_59z7f_76 > ._DraggableComponent-overlay_59z7f_29 {
354
357
  outline: 2px var(--puck-color-azure-07) solid !important;
355
358
  }
356
- ._DraggableComponent--isSelected_1542z_76 > ._DraggableComponent-actionsOverlay_1542z_97 {
359
+ ._DraggableComponent--isSelected_59z7f_76 > ._DraggableComponent-actionsOverlay_59z7f_97 {
357
360
  display: block;
358
361
  position: sticky;
359
362
  z-index: 2;
360
363
  }
361
- ._DraggableComponent-actions_1542z_97 {
364
+ ._DraggableComponent-actions_59z7f_97 {
362
365
  position: absolute;
363
366
  width: auto;
364
367
  padding: 4px;
@@ -375,10 +378,10 @@
375
378
  box-sizing: border-box;
376
379
  transform-origin: right top;
377
380
  }
378
- ._DraggableComponent--isSelected_1542z_76 > ._DraggableComponent-actionsOverlay_1542z_97 > ._DraggableComponent-actions_1542z_97 {
381
+ ._DraggableComponent--isSelected_59z7f_76 > ._DraggableComponent-actionsOverlay_59z7f_97 > ._DraggableComponent-actions_59z7f_97 {
379
382
  display: flex;
380
383
  }
381
- ._DraggableComponent-actionsLabel_1542z_127 {
384
+ ._DraggableComponent-actionsLabel_59z7f_127 {
382
385
  color: var(--puck-color-grey-08);
383
386
  display: flex;
384
387
  font-size: var(--puck-font-size-xxxs);
@@ -392,7 +395,7 @@
392
395
  text-overflow: ellipsis;
393
396
  white-space: nowrap;
394
397
  }
395
- ._DraggableComponent-action_1542z_97 {
398
+ ._DraggableComponent-action_59z7f_97 {
396
399
  background: transparent;
397
400
  border: none;
398
401
  color: var(--puck-color-grey-08);
@@ -405,60 +408,60 @@
405
408
  justify-content: center;
406
409
  transition: color 50ms ease-in;
407
410
  }
408
- ._DraggableComponent-action_1542z_97:focus-visible {
411
+ ._DraggableComponent-action_59z7f_97:focus-visible {
409
412
  outline: 2px solid var(--puck-color-azure-05);
410
413
  outline-offset: -2px;
411
414
  }
412
415
  @media (hover: hover) and (pointer: fine) {
413
- ._DraggableComponent-action_1542z_97:hover {
416
+ ._DraggableComponent-action_59z7f_97:hover {
414
417
  color: var(--puck-color-azure-06);
415
418
  transition: none;
416
419
  }
417
420
  }
418
- ._DraggableComponent-action_1542z_97:active {
421
+ ._DraggableComponent-action_59z7f_97:active {
419
422
  color: var(--puck-color-azure-07);
420
423
  transition: none;
421
424
  }
422
425
 
423
426
  /* css-module:/home/runner/work/puck/puck/packages/core/components/DropZone/styles.module.css/#css-module-data */
424
- ._DropZone_w4btq_1 {
427
+ ._DropZone_djoti_1 {
425
428
  margin-left: auto;
426
429
  margin-right: auto;
427
430
  position: relative;
428
- height: 100%;
429
- outline-offset: -1px;
431
+ min-height: 100%;
432
+ outline-offset: -2px;
430
433
  width: 100%;
431
434
  }
432
- ._DropZone-content_w4btq_10 {
435
+ ._DropZone-content_djoti_10 {
433
436
  min-height: 128px;
434
437
  height: 100%;
435
438
  }
436
- ._DropZone--userIsDragging_w4btq_15 ._DropZone-content_w4btq_10 {
439
+ ._DropZone--userIsDragging_djoti_15 ._DropZone-content_djoti_10 {
437
440
  pointer-events: all;
438
441
  }
439
- ._DropZone--userIsDragging_w4btq_15:not(._DropZone--draggingOverArea_w4btq_19):not(._DropZone--draggingNewComponent_w4btq_20) > ._DropZone-content_w4btq_10 {
442
+ ._DropZone--userIsDragging_djoti_15:not(._DropZone--draggingOverArea_djoti_19):not(._DropZone--draggingNewComponent_djoti_20) > ._DropZone-content_djoti_10 {
440
443
  pointer-events: none;
441
444
  }
442
- ._DropZone--isAreaSelected_w4btq_26,
443
- ._DropZone--draggingOverArea_w4btq_19:not(:has(._DropZone--hoveringOverArea_w4btq_27)),
444
- ._DropZone--hoveringOverArea_w4btq_27:not(._DropZone--isDisabled_w4btq_28):not(._DropZone--isRootZone_w4btq_29):not(._DropZone--hasChildren_w4btq_30) {
445
+ ._DropZone--isAreaSelected_djoti_26,
446
+ ._DropZone--draggingOverArea_djoti_19:not(:has(._DropZone--hoveringOverArea_djoti_27)),
447
+ ._DropZone--hoveringOverArea_djoti_27:not(._DropZone--isDisabled_djoti_28):not(._DropZone--isRootZone_djoti_29):not(._DropZone--hasChildren_djoti_30) {
445
448
  background: color-mix(in srgb, var(--puck-color-azure-09) 30%, transparent);
446
449
  outline: 2px dashed var(--puck-color-azure-08);
447
450
  }
448
- ._DropZone_w4btq_1:not(._DropZone--hasChildren_w4btq_30) {
451
+ ._DropZone_djoti_1:not(._DropZone--hasChildren_djoti_30) {
449
452
  background: color-mix(in srgb, var(--puck-color-azure-09) 30%, transparent);
450
453
  outline: 2px dashed var(--puck-color-azure-08);
451
454
  }
452
- ._DropZone--isDestination_w4btq_40 {
455
+ ._DropZone--isDestination_djoti_40 {
453
456
  outline: 2px dashed var(--puck-color-azure-04) !important;
454
457
  }
455
- ._DropZone--isDestination_w4btq_40:not(._DropZone--isRootZone_w4btq_29) {
458
+ ._DropZone--isDestination_djoti_40:not(._DropZone--isRootZone_djoti_29) {
456
459
  background: color-mix(in srgb, var(--puck-color-azure-09) 30%, transparent) !important;
457
460
  }
458
- ._DropZone-item_w4btq_52 {
461
+ ._DropZone-item_djoti_52 {
459
462
  position: relative;
460
463
  }
461
- ._DropZone-hitbox_w4btq_56 {
464
+ ._DropZone-hitbox_djoti_56 {
462
465
  position: absolute;
463
466
  bottom: -12px;
464
467
  height: 24px;
@@ -1531,12 +1534,12 @@ textarea._Input-input_1qi5b_46 {
1531
1534
  }
1532
1535
 
1533
1536
  /* css-module:/home/runner/work/puck/puck/packages/core/components/Puck/components/Preview/styles.module.css/#css-module-data */
1534
- ._PuckPreview_1mia0_1 {
1537
+ ._PuckPreview_rxwlr_1 {
1535
1538
  height: 100%;
1536
1539
  }
1537
- ._PuckPreview-frame_1mia0_5 {
1540
+ ._PuckPreview-frame_rxwlr_5 {
1538
1541
  border: none;
1539
- height: 100%;
1542
+ min-height: 100%;
1540
1543
  width: 100%;
1541
1544
  }
1542
1545
 
package/dist/index.js CHANGED
@@ -29311,6 +29311,7 @@ var defaultViewports = [
29311
29311
  ];
29312
29312
 
29313
29313
  // components/Puck/context.tsx
29314
+ var import_ua_parser_js = require("ua-parser-js");
29314
29315
  var import_jsx_runtime2 = require("react/jsx-runtime");
29315
29316
  var defaultAppState = {
29316
29317
  data: { content: [], root: { props: { title: "" } } },
@@ -29350,7 +29351,8 @@ var defaultContext = {
29350
29351
  setZoomConfig: () => null,
29351
29352
  status: "LOADING",
29352
29353
  setStatus: () => null,
29353
- iframe: {}
29354
+ iframe: {},
29355
+ safariFallbackMode: false
29354
29356
  };
29355
29357
  var appContext = (0, import_react3.createContext)(defaultContext);
29356
29358
  var AppProvider = ({
@@ -29362,10 +29364,34 @@ var AppProvider = ({
29362
29364
  (0, import_react3.useEffect)(() => {
29363
29365
  setStatus("MOUNTED");
29364
29366
  }, []);
29367
+ const [safariFallbackMode, setSafariFallbackMode] = (0, import_react3.useState)(false);
29368
+ (0, import_react3.useEffect)(() => {
29369
+ var _a, _b, _c;
29370
+ const ua = new import_ua_parser_js.UAParser(navigator.userAgent);
29371
+ const { browser } = ua.getResult();
29372
+ if (browser.name === "Safari" && (((_a = browser.version) == null ? void 0 : _a.indexOf("17.2.")) || ((_b = browser.version) == null ? void 0 : _b.indexOf("17.3.")) || ((_c = browser.version) == null ? void 0 : _c.indexOf("17.4.")))) {
29373
+ if (process.env.NODE_ENV !== "production" && value.iframe.enabled) {
29374
+ console.warn(
29375
+ `Detected Safari ${browser.version}, which contains a bug that prevents Puck DropZones from detecting a mouseover event within an iframe. This affects Safari versions 17.2, 17.3 and 17.4.
29376
+
29377
+ Running in compatibility mode, which may have some DropZone side-effects. Alternatively, consider disabling iframes: https://puckeditor.com/docs/integrating-puck/viewports#opting-out-of-iframes.
29378
+
29379
+ See https://github.com/measuredco/puck/issues/411 for more information. This message will not show in production.`
29380
+ );
29381
+ }
29382
+ setSafariFallbackMode(true);
29383
+ }
29384
+ }, []);
29365
29385
  return /* @__PURE__ */ (0, import_jsx_runtime2.jsx)(
29366
29386
  appContext.Provider,
29367
29387
  {
29368
- value: __spreadProps(__spreadValues({}, value), { zoomConfig, setZoomConfig, status, setStatus }),
29388
+ value: __spreadProps(__spreadValues({}, value), {
29389
+ zoomConfig,
29390
+ setZoomConfig,
29391
+ status,
29392
+ setStatus,
29393
+ safariFallbackMode
29394
+ }),
29369
29395
  children
29370
29396
  }
29371
29397
  );
@@ -29589,7 +29615,7 @@ var import_dnd3 = require("@measured/dnd");
29589
29615
 
29590
29616
  // css-module:/home/runner/work/puck/puck/packages/core/components/DraggableComponent/styles.module.css#css-module
29591
29617
  init_react_import();
29592
- var styles_module_default3 = { "DraggableComponent": "_DraggableComponent_1542z_1", "DraggableComponent--isDragging": "_DraggableComponent--isDragging_1542z_11", "DraggableComponent-contents": "_DraggableComponent-contents_1542z_16", "DraggableComponent-overlay": "_DraggableComponent-overlay_1542z_29", "DraggableComponent-loadingOverlay": "_DraggableComponent-loadingOverlay_1542z_49", "DraggableComponent--isLocked": "_DraggableComponent--isLocked_1542z_65", "DraggableComponent--forceHover": "_DraggableComponent--forceHover_1542z_71", "DraggableComponent--isSelected": "_DraggableComponent--isSelected_1542z_76", "DraggableComponent--indicativeHover": "_DraggableComponent--indicativeHover_1542z_81", "DraggableComponent-actionsOverlay": "_DraggableComponent-actionsOverlay_1542z_97", "DraggableComponent-actions": "_DraggableComponent-actions_1542z_97", "DraggableComponent-actionsLabel": "_DraggableComponent-actionsLabel_1542z_127", "DraggableComponent-action": "_DraggableComponent-action_1542z_97" };
29618
+ var styles_module_default3 = { "DraggableComponent": "_DraggableComponent_59z7f_1", "DraggableComponent--isDragging": "_DraggableComponent--isDragging_59z7f_11", "DraggableComponent-contents": "_DraggableComponent-contents_59z7f_16", "DraggableComponent-overlay": "_DraggableComponent-overlay_59z7f_29", "DraggableComponent-loadingOverlay": "_DraggableComponent-loadingOverlay_59z7f_49", "DraggableComponent--isLocked": "_DraggableComponent--isLocked_59z7f_65", "DraggableComponent--forceHover": "_DraggableComponent--forceHover_59z7f_71", "DraggableComponent--isSelected": "_DraggableComponent--isSelected_59z7f_76", "DraggableComponent--indicativeHover": "_DraggableComponent--indicativeHover_59z7f_81", "DraggableComponent-actionsOverlay": "_DraggableComponent-actionsOverlay_59z7f_97", "DraggableComponent-actions": "_DraggableComponent-actions_59z7f_97", "DraggableComponent-actionsLabel": "_DraggableComponent-actionsLabel_59z7f_127", "DraggableComponent-action": "_DraggableComponent-action_59z7f_97" };
29593
29619
 
29594
29620
  // ../../node_modules/lucide-react/dist/esm/lucide-react.js
29595
29621
  init_react_import();
@@ -30000,7 +30026,7 @@ var DraggableComponent = ({
30000
30026
 
30001
30027
  // css-module:/home/runner/work/puck/puck/packages/core/components/DropZone/styles.module.css#css-module
30002
30028
  init_react_import();
30003
- var styles_module_default4 = { "DropZone": "_DropZone_w4btq_1", "DropZone-content": "_DropZone-content_w4btq_10", "DropZone--userIsDragging": "_DropZone--userIsDragging_w4btq_15", "DropZone--draggingOverArea": "_DropZone--draggingOverArea_w4btq_19", "DropZone--draggingNewComponent": "_DropZone--draggingNewComponent_w4btq_20", "DropZone--isAreaSelected": "_DropZone--isAreaSelected_w4btq_26", "DropZone--hoveringOverArea": "_DropZone--hoveringOverArea_w4btq_27", "DropZone--isDisabled": "_DropZone--isDisabled_w4btq_28", "DropZone--isRootZone": "_DropZone--isRootZone_w4btq_29", "DropZone--hasChildren": "_DropZone--hasChildren_w4btq_30", "DropZone--isDestination": "_DropZone--isDestination_w4btq_40", "DropZone-item": "_DropZone-item_w4btq_52", "DropZone-hitbox": "_DropZone-hitbox_w4btq_56" };
30029
+ var styles_module_default4 = { "DropZone": "_DropZone_djoti_1", "DropZone-content": "_DropZone-content_djoti_10", "DropZone--userIsDragging": "_DropZone--userIsDragging_djoti_15", "DropZone--draggingOverArea": "_DropZone--draggingOverArea_djoti_19", "DropZone--draggingNewComponent": "_DropZone--draggingNewComponent_djoti_20", "DropZone--isAreaSelected": "_DropZone--isAreaSelected_djoti_26", "DropZone--hoveringOverArea": "_DropZone--hoveringOverArea_djoti_27", "DropZone--isDisabled": "_DropZone--isDisabled_djoti_28", "DropZone--isRootZone": "_DropZone--isRootZone_djoti_29", "DropZone--hasChildren": "_DropZone--hasChildren_djoti_30", "DropZone--isDestination": "_DropZone--isDestination_djoti_40", "DropZone-item": "_DropZone-item_djoti_52", "DropZone-hitbox": "_DropZone-hitbox_djoti_56" };
30004
30030
 
30005
30031
  // components/DropZone/context.tsx
30006
30032
  init_react_import();
@@ -30193,7 +30219,11 @@ function DropZoneEdit({ zone, allow, disallow, style }) {
30193
30219
  let isEnabled = userWillDrag;
30194
30220
  if (userIsDragging) {
30195
30221
  if (draggingNewComponent) {
30196
- isEnabled = hoveringOverArea;
30222
+ if (appContext2.safariFallbackMode) {
30223
+ isEnabled = true;
30224
+ } else {
30225
+ isEnabled = hoveringOverArea;
30226
+ }
30197
30227
  } else {
30198
30228
  isEnabled = draggingOverArea && hoveringOverZone;
30199
30229
  }
@@ -32073,7 +32103,7 @@ var SelectField = ({
32073
32103
  disabled: readOnly,
32074
32104
  onChange: (e) => {
32075
32105
  if (e.currentTarget.value === "true" || e.currentTarget.value === "false") {
32076
- onChange(Boolean(e.currentTarget.value));
32106
+ onChange(JSON.parse(e.currentTarget.value));
32077
32107
  return;
32078
32108
  }
32079
32109
  onChange(e.currentTarget.value);
@@ -32602,7 +32632,7 @@ var import_auto_frame_component = __toESM(require("@measured/auto-frame-componen
32602
32632
 
32603
32633
  // css-module:/home/runner/work/puck/puck/packages/core/components/Puck/components/Preview/styles.module.css#css-module
32604
32634
  init_react_import();
32605
- var styles_module_default16 = { "PuckPreview": "_PuckPreview_1mia0_1", "PuckPreview-frame": "_PuckPreview-frame_1mia0_5" };
32635
+ var styles_module_default16 = { "PuckPreview": "_PuckPreview_rxwlr_1", "PuckPreview-frame": "_PuckPreview-frame_rxwlr_5" };
32606
32636
 
32607
32637
  // components/Puck/components/Preview/index.tsx
32608
32638
  var import_jsx_runtime29 = require("react/jsx-runtime");
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@measured/puck",
3
- "version": "0.14.2-canary.268ea53",
3
+ "version": "0.14.2-canary.276d0f8",
4
4
  "author": "Measured Corporation Ltd <hello@measured.co>",
5
5
  "repository": "measuredco/puck",
6
6
  "bugs": "https://github.com/measuredco/puck/issues",
@@ -46,6 +46,7 @@
46
46
  "@types/jest": "^29.5.4",
47
47
  "@types/react": "^18.2.0",
48
48
  "@types/react-dom": "^18.2.0",
49
+ "@types/ua-parser-js": "^0.7.39",
49
50
  "css-box-model": "^1.2.1",
50
51
  "eslint": "^7.32.0",
51
52
  "eslint-config-custom": "*",
@@ -59,11 +60,12 @@
59
60
  "typescript": "^4.5.2"
60
61
  },
61
62
  "dependencies": {
62
- "@measured/auto-frame-component": "0.1.1",
63
- "@measured/dnd": "16.6.0-canary.f472135",
63
+ "@measured/auto-frame-component": "0.1.6-canary.ae0f903",
64
+ "@measured/dnd": "16.6.0-canary.4cba1d1",
64
65
  "deep-diff": "^1.0.2",
65
66
  "react-hotkeys-hook": "^4.4.1",
66
67
  "react-spinners": "^0.13.8",
68
+ "ua-parser-js": "^1.0.37",
67
69
  "use-debounce": "^9.0.4",
68
70
  "uuid": "^9.0.1"
69
71
  },