@feathery/react 2.39.4 → 2.39.5

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 (86) hide show
  1. package/cjs/elements/components/QuikFormViewer/transforms/form.d.ts.map +1 -1
  2. package/cjs/{fthry_AssistantChat.DnWwYHQn.js → fthry_AssistantChat.YQCuhhst.js} +4 -4
  3. package/cjs/{fthry_FormControl.CsTMtkK6.js → fthry_FormControl._40lAY3B.js} +1 -1
  4. package/cjs/{fthry_InlineTooltip.C7AC8sKh.js → fthry_InlineTooltip.BfrVpfYj.js} +2 -2
  5. package/cjs/{fthry_Overlay.CdKK4u2g.js → fthry_Overlay.C6scqGHc.js} +1 -1
  6. package/cjs/{fthry_PaymentMethodField.Bm2DR5ZM.js → fthry_PaymentMethodField.FKIxWFGb.js} +4 -4
  7. package/cjs/{fthry_Placeholder.CAlnRoL9.js → fthry_Placeholder.BYp77nuH.js} +1 -1
  8. package/cjs/{fthry_ShowEyeIcon.y6CzT3OY.js → fthry_ShowEyeIcon.C9PPQrMG.js} +1 -1
  9. package/cjs/{fthry_highlighted-body-TPN3WLV5.B7_ff94b.js → fthry_highlighted-body-TPN3WLV5.DV7vusTB.js} +3 -3
  10. package/cjs/{fthry_index.CuKuHOLx.js → fthry_index.BKgdz8wA.js} +6 -6
  11. package/cjs/{fthry_index.BJnsdnO7.js → fthry_index.BMoZkdA6.js} +5 -5
  12. package/cjs/{fthry_index.DpKzKR1Y.js → fthry_index.B_DcdLHz.js} +6 -6
  13. package/cjs/{fthry_index.Jn-fry1W.js → fthry_index.BeoZ7ahe.js} +6 -6
  14. package/cjs/{fthry_index.Bq5bNmC5.js → fthry_index.Blb-S2FV.js} +1 -1
  15. package/cjs/{fthry_index.CK11RRjf.js → fthry_index.BqjGgn8c.js} +3 -3
  16. package/cjs/{fthry_index.vtzgpOYZ.js → fthry_index.C6B_9YEq.js} +1 -1
  17. package/cjs/{fthry_index.0p5YTe6g.js → fthry_index.CAyIvRN9.js} +1 -1
  18. package/cjs/{fthry_index.CLoBO1ES.js → fthry_index.CDpXSBnO.js} +1 -1
  19. package/cjs/{fthry_index.B0nu8Nbi.js → fthry_index.CN5FWNGo.js} +5 -5
  20. package/cjs/{fthry_index.C6V-5sVJ.js → fthry_index.CSa2GNkT.js} +5 -5
  21. package/cjs/{fthry_index.CY4QhZTQ.js → fthry_index.CXfcph5D.js} +1 -1
  22. package/cjs/{fthry_index.NqLsD4p5.js → fthry_index.D71_kAqf.js} +2 -2
  23. package/cjs/{fthry_index.DgfUQV0p.js → fthry_index.DcGjJE6I.js} +8 -8
  24. package/cjs/{fthry_index.DsHYiGx7.js → fthry_index.DcuaSdF3.js} +6 -6
  25. package/cjs/{fthry_index.rd6jbLis.js → fthry_index.DhA0OYaa.js} +1 -1
  26. package/cjs/{fthry_index.B4qFJMWZ.js → fthry_index.DuFt4scb.js} +5 -5
  27. package/cjs/{fthry_index.CEYVccUV.js → fthry_index.Dx_qH62x.js} +1 -1
  28. package/cjs/{fthry_index.CofFj5ER.js → fthry_index.ErupPDHm.js} +1 -1
  29. package/cjs/{fthry_index.BWebQH-E.js → fthry_index.F9ntcl8d.js} +2 -2
  30. package/cjs/{fthry_index.lwxn3wtK.js → fthry_index.UL-HkR2L.js} +100 -68
  31. package/cjs/{fthry_index.Dw8XsWmo.js → fthry_index.WGuV-KCz.js} +4 -4
  32. package/cjs/{fthry_index.DAifQRmo.js → fthry_index.WT4DAN_S.js} +3 -3
  33. package/cjs/{fthry_index.Bf-r5Hyx.js → fthry_index.ZWVnlGH6.js} +4 -4
  34. package/cjs/{fthry_index.DvXrxU9b.js → fthry_index.sT-w-rf1.js} +1 -1
  35. package/cjs/{fthry_input.CR_ydNbL.js → fthry_input.DIy-Ecsj.js} +1 -1
  36. package/cjs/{fthry_mermaid-O7DHMXV3.DD6KKcMU.js → fthry_mermaid-O7DHMXV3.Kmx4whY_.js} +3 -3
  37. package/cjs/{fthry_script.EDJ1t7HJ.js → fthry_script.4CA-i2YC.js} +1 -1
  38. package/cjs/{fthry_styles.rCHJiVa8.js → fthry_styles.2InnXe-4.js} +1 -1
  39. package/cjs/{fthry_useElementSize.DLBCwcXn.js → fthry_useElementSize.BsJKStem.js} +1 -1
  40. package/cjs/{fthry_useSalesforceSync.2JVcfRRm.js → fthry_useSalesforceSync.xD4e3uQO.js} +1 -1
  41. package/cjs/{fthry_webfontloader.DczITgMn.js → fthry_webfontloader.DMtsPRTb.js} +1 -1
  42. package/cjs/index.js +1 -1
  43. package/dist/elements/components/QuikFormViewer/transforms/form.d.ts.map +1 -1
  44. package/dist/{fthry_AssistantChat.DyxRadsO.js → fthry_AssistantChat.hnRlYNVg.js} +4 -4
  45. package/dist/{fthry_FormControl.DW-PzCTD.js → fthry_FormControl.8pSBTA31.js} +1 -1
  46. package/dist/{fthry_InlineTooltip.DH0_bhWT.js → fthry_InlineTooltip.Bq9500oG.js} +2 -2
  47. package/dist/{fthry_Overlay.B-EoMj6i.js → fthry_Overlay.DEggBAsa.js} +1 -1
  48. package/dist/{fthry_PaymentMethodField.4z01I9c2.js → fthry_PaymentMethodField.BKglAUrx.js} +4 -4
  49. package/dist/{fthry_Placeholder.CsEb_0jP.js → fthry_Placeholder.CVnQrsv8.js} +1 -1
  50. package/dist/{fthry_ShowEyeIcon.CY7vkrxH.js → fthry_ShowEyeIcon.DqjkGj6h.js} +1 -1
  51. package/dist/{fthry_highlighted-body-TPN3WLV5.WhfSZUph.js → fthry_highlighted-body-TPN3WLV5.BF-Qm433.js} +3 -3
  52. package/dist/{fthry_index.YBkOgnF3.js → fthry_index.7adkb-Yo.js} +8 -8
  53. package/dist/{fthry_index.DvCeSc1i.js → fthry_index.B0dTcALC.js} +100 -68
  54. package/dist/{fthry_index.DOusftvr.js → fthry_index.B3z3FXtp.js} +1 -1
  55. package/dist/{fthry_index.CWQ5TF9P.js → fthry_index.BAJON1mr.js} +1 -1
  56. package/dist/{fthry_index.BGbb010x.js → fthry_index.BBA4M9Ym.js} +1 -1
  57. package/dist/{fthry_index.CaLdEUIs.js → fthry_index.BMui71Q7.js} +1 -1
  58. package/dist/{fthry_index.D-yMY95w.js → fthry_index.BWxZjCVE.js} +1 -1
  59. package/dist/{fthry_index.TGIOgm1P.js → fthry_index.BXJn-2VJ.js} +1 -1
  60. package/dist/{fthry_index.DZHccCmm.js → fthry_index.Bd4KkVao.js} +1 -1
  61. package/dist/{fthry_index.CMIcXXN7.js → fthry_index.BdnUxvNg.js} +1 -1
  62. package/dist/{fthry_index.D-taV-bR.js → fthry_index.CFwYUXZ8.js} +2 -2
  63. package/dist/{fthry_index.DPzStrPv.js → fthry_index.CPcpxgDL.js} +5 -5
  64. package/dist/{fthry_index.DT5K1q45.js → fthry_index.CS-REvYp.js} +6 -6
  65. package/dist/{fthry_index.DcJaXrNb.js → fthry_index.CSxTJscJ.js} +5 -5
  66. package/dist/{fthry_index.BBN9ErVH.js → fthry_index.Cr_PhEG5.js} +3 -3
  67. package/dist/{fthry_index.DJW01HJc.js → fthry_index.CsB6qfcs.js} +1 -1
  68. package/dist/{fthry_index.BxdW5LSK.js → fthry_index.CwkH8CR1.js} +5 -5
  69. package/dist/{fthry_index.BTDPz6lF.js → fthry_index.CzxXXkNC.js} +6 -6
  70. package/dist/{fthry_index.C4i92P7n.js → fthry_index.D0WpbHv8.js} +5 -5
  71. package/dist/{fthry_index.CuSdRZlr.js → fthry_index.D3ON8w4i.js} +2 -2
  72. package/dist/{fthry_index.9cP9rowY.js → fthry_index.DmeA3gX-.js} +4 -4
  73. package/dist/{fthry_index.BcuhnRVe.js → fthry_index.Dvx8Ucl2.js} +5 -5
  74. package/dist/{fthry_index.CRN7fgaA.js → fthry_index.Iziq-Kbr.js} +3 -3
  75. package/dist/{fthry_index.dEOj4jGg.js → fthry_index.LnYfWd3O.js} +4 -4
  76. package/dist/{fthry_index.C5s-ri9w.js → fthry_index.V-k8b4Uk.js} +6 -6
  77. package/dist/{fthry_input.CYfy5c88.js → fthry_input.C9_eZY4n.js} +1 -1
  78. package/dist/{fthry_mermaid-O7DHMXV3.B07qWrrr.js → fthry_mermaid-O7DHMXV3.CMda8-_P.js} +3 -3
  79. package/dist/{fthry_script.COjfzI9f.js → fthry_script.BzA0wgMM.js} +1 -1
  80. package/dist/{fthry_styles.B0A-Aezb.js → fthry_styles.CecGNp-8.js} +1 -1
  81. package/dist/{fthry_useElementSize.D_HDphFt.js → fthry_useElementSize.DlGauB6l.js} +1 -1
  82. package/dist/{fthry_useSalesforceSync.DlGyAqqs.js → fthry_useSalesforceSync.t_h78aUg.js} +1 -1
  83. package/dist/{fthry_webfontloader.z0J580qI.js → fthry_webfontloader.B3Cs903r.js} +1 -1
  84. package/dist/index.js +1 -1
  85. package/package.json +1 -1
  86. package/umd/index.js +1 -1
@@ -1,6 +1,6 @@
1
1
  'use strict';
2
2
 
3
- var index = require('./fthry_index.lwxn3wtK.js');
3
+ var index = require('./fthry_index.UL-HkR2L.js');
4
4
 
5
5
  var ae = [
6
6
  { name: 'Abu Dhabi', code: 'AZ' },
@@ -1,11 +1,11 @@
1
1
  'use strict';
2
2
 
3
- var index$1 = require('./fthry_index.lwxn3wtK.js');
3
+ var index$1 = require('./fthry_index.UL-HkR2L.js');
4
4
  var React = require('react');
5
- var InlineTooltip = require('./fthry_InlineTooltip.C7AC8sKh.js');
6
- var Placeholder$2 = require('./fthry_Placeholder.CAlnRoL9.js');
7
- var useSalesforceSync = require('./fthry_useSalesforceSync.2JVcfRRm.js');
8
- var Overlay = require('./fthry_Overlay.CdKK4u2g.js');
5
+ var InlineTooltip = require('./fthry_InlineTooltip.BfrVpfYj.js');
6
+ var Placeholder$2 = require('./fthry_Placeholder.BYp77nuH.js');
7
+ var useSalesforceSync = require('./fthry_useSalesforceSync.xD4e3uQO.js');
8
+ var Overlay = require('./fthry_Overlay.C6scqGHc.js');
9
9
  var ReactDOM = require('react-dom');
10
10
  require('react/jsx-runtime');
11
11
  require('react-dom/client');
@@ -1,6 +1,6 @@
1
1
  'use strict';
2
2
 
3
- var index$1 = require('./fthry_index.lwxn3wtK.js');
3
+ var index$1 = require('./fthry_index.UL-HkR2L.js');
4
4
  var React = require('react');
5
5
  require('react/jsx-runtime');
6
6
  require('react-dom/client');
@@ -1,6 +1,6 @@
1
1
  'use strict';
2
2
 
3
- var index = require('./fthry_index.lwxn3wtK.js');
3
+ var index = require('./fthry_index.UL-HkR2L.js');
4
4
  var React = require('react');
5
5
  require('react/jsx-runtime');
6
6
  require('react-dom/client');
@@ -1,8 +1,8 @@
1
1
  'use strict';
2
2
 
3
- var index = require('./fthry_index.lwxn3wtK.js');
3
+ var index = require('./fthry_index.UL-HkR2L.js');
4
4
  var React = require('react');
5
- var styles = require('./fthry_styles.rCHJiVa8.js');
5
+ var styles = require('./fthry_styles.2InnXe-4.js');
6
6
  require('react/jsx-runtime');
7
7
  require('react-dom/client');
8
8
  require('jszip');
@@ -23667,7 +23667,20 @@ function generateHeaderElement(doc, inline) {
23667
23667
  return newHeader;
23668
23668
  }
23669
23669
 
23670
- var FORM_STYLES = "\n #QFVFormPage {\n display: flex;\n flex: 1;\n flex-direction: column;\n width: 100%;\n margin: 0 auto;\n }\n #wrapper {\n position: static;\n background: #f6f7fa;\n overflow: auto;\n width: 100% !important;\n height: 100%;\n }\n #scroller {\n width: auto;\n position: static;\n max-width: 1000px;\n margin: 0 auto;\n background: none !important;\n }\n\n #QFVPageList {\n position: relative;\n border: none !important;\n }\n\n #QFVPageList li {\n position: relative;\n margin: 5% 15pt;\n border: none !important;\n box-shadow: 0px 1.05px 5.27px 0px #23254340;\n border-radius: 8px;\n overflow: hidden;\n }\n\n #QFVPageList li > div {\n width: 100% !important;\n height: auto !important;\n position: relative;\n overflow: hidden;\n }\n\n #QFVPageList li > div > div {\n background: none !important;\n }\n\n #QFVPageList li > div > div > img {\n width: 100% !important;\n }\n\n .input-label {\n border: none !important;\n }\n\n #QFVPageList .input-label > span {\n width: 100% !important;\n aspect-ratio: 1 / 1;\n height: auto !important;\n background-size: contain;\n }\n";
23670
+ var FORM_STYLES = "\n #QFVFormPage {\n display: flex;\n flex: 1;\n flex-direction: column;\n width: 100%;\n margin: 0 auto;\n }\n #wrapper {\n position: static;\n background: #f6f7fa;\n overflow: auto;\n width: 100% !important;\n height: 100%;\n }\n #scroller {\n width: auto;\n position: static;\n max-width: 1000px;\n margin: 0 auto;\n background: none !important;\n }\n\n #QFVPageList {\n position: relative;\n border: none !important;\n }\n\n /*\n * Each <li> is the responsive \"card\". Its aspect-ratio (set inline per page\n * from the page's pt dimensions) reserves the correct height as the column\n * width changes, since the scaled page below does not contribute layout size.\n */\n #QFVPageList li {\n position: relative;\n margin: 5% 15pt;\n border: none !important;\n box-shadow: 0px 1.05px 5.27px 0px #23254340;\n border-radius: 8px;\n overflow: hidden;\n }\n\n /*\n * The page itself stays at its natural pt size and is scaled to fill the card\n * with a single uniform transform. Because the page image and every overlay\n * live in this one rigid coordinate space, they scale together and cannot\n * drift relative to each other at any width. --quik-page-scale is set per\n * page by the injected ResizeObserver (see PAGE_SCALE_SCRIPT).\n */\n #QFVPageList li > div {\n position: absolute;\n top: 0;\n left: 0;\n transform-origin: top left;\n transform: scale(var(--quik-page-scale, 1));\n }\n\n #QFVPageList li > div > div {\n background: none !important;\n }\n\n #QFVPageList li > div > div > img {\n width: 100% !important;\n display: block !important;\n }\n\n /*\n * Overlay inputs are sized in pt that already account for their padding and\n * border (the source renders them border-box via its external CSS/JS, which\n * does not run inside this restructured iframe). Force border-box so the pt\n * width/height is the rendered box \u2014 otherwise content-box adds padding +\n * border on top and the boxes render too large, most visibly in height.\n */\n #QFVPageList input,\n #QFVPageList textarea,\n #QFVPageList select,\n #QFVPageList label {\n box-sizing: border-box !important;\n }\n\n .input-label {\n border: none !important;\n }\n\n #QFVPageList .input-label > span {\n width: 100% !important;\n aspect-ratio: 1 / 1;\n height: auto !important;\n background-size: contain;\n }\n";
23671
+ /**
23672
+ * Left inset (in pt) that every overlay's source 'left' carries relative to the
23673
+ * page-width basis. Subtracted from all elements so inputs align with the page
23674
+ * image the same way labels already did.
23675
+ */
23676
+ var PAGE_LEFT_OFFSET_PT = 2;
23677
+ /**
23678
+ * Per-page top inset (in pt) baked into the source coordinate system: each page
23679
+ * contributes a 2px (= 1.5pt at 96dpi) top border, so page N's origin is
23680
+ * `1.5 + N * (pageHeight + 1.5)`. Confirmed empirically — before this offset the
23681
+ * residual vertical drift was exactly 1.5pt × (pageIndex + 1).
23682
+ */
23683
+ var PAGE_TOP_GAP_PT = 1.5;
23671
23684
  /**
23672
23685
  * Parses a CSS style value (e.g., "123pt" or "calc(2*456pt)") and returns the numerical value in 'pt'.
23673
23686
  * This function handles simple 'pt' values and 'calc()' expressions by using a safe evaluation.
@@ -23678,60 +23691,65 @@ function parsePtValue(styleValue) {
23678
23691
  return styleValue ? parseFloat(styleValue.replace('pt', '')) : 0;
23679
23692
  }
23680
23693
  /**
23681
- * Recalculates the 'top', 'left', 'width', and 'height' of all elements to be
23682
- * relative to their page container and converts them to percentage values.
23694
+ * Makes the Quik document responsive by localizing each overlay onto its page
23695
+ * (in native `pt`) and scaling each page as a single rigid unit to fill its
23696
+ * responsive container.
23683
23697
  *
23684
- * This function is designed to work with the provided HTML structure where
23685
- * elements have absolute positioning based on the entire document and page
23686
- * containers have their dimensions defined in `pt` in their style attribute.
23687
- * It makes the layout responsive by converting these fixed `pt` values to
23688
- * percentages based on the parent page's dimensions.
23698
+ * The source HTML positions every overlay absolutely against one document-wide
23699
+ * container, so coordinates are cumulative across pages and page dimensions are
23700
+ * declared in `pt`. Rather than re-deriving per-axis percentages (which couples
23701
+ * alignment to containing-block and box-model behavior), this keeps the page's
23702
+ * exact coordinate space intact and applies a uniform CSS transform, so the
23703
+ * page image and its overlays can never drift relative to one another.
23689
23704
  *
23690
23705
  * @param doc The document object to manipulate.
23691
23706
  */
23692
23707
  function repositionFormInputs(doc) {
23693
- var pageOffsetPt = 1.5; // original positions include 2px (1.5pt) top border per page
23708
+ // Overlays are absolutely positioned against a single document-wide container
23709
+ // (#scroller in the source), so their `top` values are cumulative across all
23710
+ // pages. Each page contributes its height plus a 2px (1.5pt) top border, so
23711
+ // the running origin starts at one border and grows by height + border.
23712
+ var pageOffsetPt = PAGE_TOP_GAP_PT;
23694
23713
  var pages = doc.querySelectorAll('#QFVPageList > li > div');
23695
23714
  pages.forEach(function (page) {
23696
- // Dynamically get the page's dimensions from its style attribute.
23697
23715
  var pageWidthPt = parsePtValue(page.style.width);
23698
23716
  var pageHeightPt = parsePtValue(page.style.height);
23699
23717
  if (pageWidthPt === 0 || pageHeightPt === 0) {
23700
23718
  console.error('Could not determine page dimensions from style attribute:', page);
23701
- return; // Skip this page if dimensions are not found.
23719
+ // Still advance the cumulative origin so later pages stay in sync.
23720
+ pageOffsetPt += pageHeightPt + PAGE_TOP_GAP_PT;
23721
+ return;
23702
23722
  }
23703
- // Get all child elements of the page, not just inputs.
23704
- var elements = Array.from(page.children);
23705
- elements.forEach(function (element) {
23706
- if (element instanceof HTMLElement) {
23707
- var style = element.style;
23708
- // Get original pt values for all relevant properties.
23709
- var currentTopPt = parsePtValue(style.top);
23710
- var currentLeftPt = parsePtValue(style.left);
23711
- var currentWidthPt = parsePtValue(style.width);
23712
- var currentHeightPt = parsePtValue(style.height);
23713
- // Recalculate relative top position in pt by subtracting the cumulative page offset.
23714
- var relativeTopPt = currentTopPt - pageOffsetPt;
23715
- if (element.tagName === 'LABEL') {
23716
- currentLeftPt -= 2; // Adjust for label (radio box)'s left offset
23717
- }
23718
- // Convert pt values to percentages.
23719
- var newTopPercent = (relativeTopPt / pageHeightPt) * 100;
23720
- var newLeftPercent = (currentLeftPt / pageWidthPt) * 100;
23721
- var newWidthPercent = (currentWidthPt / pageWidthPt) * 100;
23722
- var newHeightPercent = (currentHeightPt / pageHeightPt) * 100;
23723
- // Update the element's style with percentage values.
23724
- style.top = "".concat(newTopPercent.toFixed(2), "%");
23725
- style.left = "".concat(newLeftPercent.toFixed(2), "%");
23726
- style.width = "".concat(newWidthPercent.toFixed(2), "%");
23727
- style.height = "".concat(newHeightPercent.toFixed(2), "%");
23728
- if (element.tagName === 'LABEL') {
23729
- element.className = "input-label ".concat(element.className);
23730
- }
23723
+ // Localize each overlay from the document-wide cumulative coordinate system
23724
+ // onto this page, keeping native pt units. The whole page is scaled as one
23725
+ // rigid unit (see below), so overlays cannot drift relative to the image.
23726
+ Array.from(page.children).forEach(function (element) {
23727
+ if (!(element instanceof HTMLElement))
23728
+ return;
23729
+ // The page image fills the page box; leave it at its natural size.
23730
+ if (element.tagName === 'IMG' || element.querySelector('img'))
23731
+ return;
23732
+ var localTopPt = parsePtValue(element.style.top) - pageOffsetPt;
23733
+ // The source 'left' carries a small (~2pt) inset relative to the page
23734
+ // image's left edge; remove it so overlays sit on the artwork.
23735
+ var localLeftPt = parsePtValue(element.style.left) - PAGE_LEFT_OFFSET_PT;
23736
+ element.style.top = "".concat(localTopPt, "pt");
23737
+ element.style.left = "".concat(localLeftPt, "pt");
23738
+ // width/height stay in their native pt units and scale with the page.
23739
+ if (element.tagName === 'LABEL') {
23740
+ element.className = "input-label ".concat(element.className);
23731
23741
  }
23732
23742
  });
23733
- // Update the cumulative page offset for the next page.
23734
- pageOffsetPt += pageHeightPt + 1.5; // Add 1.5pt for the top border of the next page
23743
+ // Pin the page to its natural pt size; the injected ResizeObserver scales it
23744
+ // (via --quik-page-scale) to fill the responsive <li> card. The <li> gets
23745
+ // the matching aspect-ratio so it reserves the correct layout height.
23746
+ page.style.width = "".concat(pageWidthPt, "pt");
23747
+ page.style.height = "".concat(pageHeightPt, "pt");
23748
+ page.dataset.quikPageWidthPt = "".concat(pageWidthPt);
23749
+ var li = page.parentElement;
23750
+ if (li)
23751
+ li.style.aspectRatio = "".concat(pageWidthPt, " / ").concat(pageHeightPt);
23752
+ pageOffsetPt += pageHeightPt + PAGE_TOP_GAP_PT;
23735
23753
  });
23736
23754
  }
23737
23755
  function generateFormElement(doc) {
@@ -23742,12 +23760,26 @@ function generateFormElement(doc) {
23742
23760
  }
23743
23761
  repositionFormInputs(doc);
23744
23762
  injectFormStyles(doc);
23763
+ injectPageScaleScript(doc);
23745
23764
  return form;
23746
23765
  }
23747
23766
  function injectFormStyles(doc) {
23748
23767
  var customFormStyle = doc.createElement('style');
23749
23768
  customFormStyle.innerHTML = FORM_STYLES;
23750
23769
  doc.head.appendChild(customFormStyle);
23770
+ }
23771
+ /** Points-to-pixels factor at 96dpi (CSS reference pixel: 96px === 72pt). */
23772
+ var PT_TO_PX = 96 / 72;
23773
+ /**
23774
+ * Sets each page's --quik-page-scale so its natural pt width fills the
23775
+ * responsive <li> card, and keeps it updated on resize. Runs inside the form
23776
+ * iframe. Kept dependency-free and ES5-safe since it executes verbatim there.
23777
+ */
23778
+ var PAGE_SCALE_SCRIPT = "\n(function () {\n var PT_TO_PX = ".concat(PT_TO_PX, ";\n function applyScale() {\n var pages = document.querySelectorAll(\n '#QFVPageList > li > div[data-quik-page-width-pt]'\n );\n for (var i = 0; i < pages.length; i++) {\n var page = pages[i];\n var li = page.parentElement;\n if (!li) continue;\n var widthPt = parseFloat(page.getAttribute('data-quik-page-width-pt'));\n if (!widthPt) continue;\n var naturalPx = widthPt * PT_TO_PX;\n var scale = li.clientWidth / naturalPx;\n if (scale > 0 && isFinite(scale)) {\n page.style.setProperty('--quik-page-scale', String(scale));\n }\n }\n }\n if (document.readyState === 'loading') {\n document.addEventListener('DOMContentLoaded', applyScale);\n } else {\n applyScale();\n }\n window.addEventListener('resize', applyScale);\n if (typeof ResizeObserver !== 'undefined') {\n var list = document.querySelector('#QFVPageList');\n if (list) new ResizeObserver(applyScale).observe(list);\n }\n})();\n");
23779
+ function injectPageScaleScript(doc) {
23780
+ var script = doc.createElement('script');
23781
+ script.textContent = PAGE_SCALE_SCRIPT;
23782
+ doc.body.appendChild(script);
23751
23783
  }
23752
23784
 
23753
23785
  var SIDEBAR_WIDTH = '200px';
@@ -40912,7 +40944,7 @@ function useTrackUserInteraction(formRef, activeStep, stepKey, formName) {
40912
40944
  }, [activeStep, stepKey, formName]);
40913
40945
  }
40914
40946
 
40915
- var LazyAssistantChat = React.lazy(function () { return Promise.resolve().then(function () { return require(/* webpackChunkName: "AssistantChat" */ './fthry_AssistantChat.DnWwYHQn.js'); }).then(function (n) { return n.AssistantChat; }); });
40947
+ var LazyAssistantChat = React.lazy(function () { return Promise.resolve().then(function () { return require(/* webpackChunkName: "AssistantChat" */ './fthry_AssistantChat.YQCuhhst.js'); }).then(function (n) { return n.AssistantChat; }); });
40916
40948
  var AssistantChat = function (props) { return (jsx$1(React.Suspense, exports.__assign({ fallback: null }, { children: jsx$1(LazyAssistantChat, exports.__assign({}, props)) }))); };
40917
40949
 
40918
40950
  var AssistantClient = /** @class */ (function () {
@@ -47518,9 +47550,9 @@ function init(sdkKey, options) {
47518
47550
  if (runningInClient()) {
47519
47551
  // Dynamically load libraries that must be client side
47520
47552
  global.scriptjsLoadPromise = Promise.resolve().then(function () { return require(
47521
- /* webpackChunkName: "scriptjs" */ './fthry_script.EDJ1t7HJ.js'); }).then(function (n) { return n.script; });
47553
+ /* webpackChunkName: "scriptjs" */ './fthry_script.4CA-i2YC.js'); }).then(function (n) { return n.script; });
47522
47554
  global.webfontloaderPromise = Promise.resolve().then(function () { return require(
47523
- /* webpackChunkName: "webfontloader" */ './fthry_webfontloader.DczITgMn.js'); }).then(function (n) { return n.webfontloader; });
47555
+ /* webpackChunkName: "webfontloader" */ './fthry_webfontloader.DMtsPRTb.js'); }).then(function (n) { return n.webfontloader; });
47524
47556
  // Client-side tracking logic
47525
47557
  if (initState.userTracking === 'cookie') {
47526
47558
  var cookieKey = "feathery-user-id-".concat(sdkKey);
@@ -47666,7 +47698,7 @@ function getFieldValues() {
47666
47698
  return exports.__assign({}, exports.fieldValues);
47667
47699
  }
47668
47700
  function logFeatheryBadge() {
47669
- console.log('%c Feathery %c v' + "2.39.4" + ' ', // replaced with real version during build
47701
+ console.log('%c Feathery %c v' + "2.39.5" + ' ', // replaced with real version during build
47670
47702
  'background: #e2626e; color: white; padding: 2px 6px; border-radius: 3px 0 0 3px; font-weight: bold;', 'background: #fce7e9; color: #c5495a; padding: 2px 6px; border-radius: 0 3px 3px 0;');
47671
47703
  }
47672
47704
 
@@ -49181,64 +49213,64 @@ breakpoint) {
49181
49213
 
49182
49214
  var fieldLoaders = {
49183
49215
  AddressLine1: function () {
49184
- return Promise.resolve().then(function () { return require(/* webpackChunkName: "AddressField" */ './fthry_index.BJnsdnO7.js'); });
49216
+ return Promise.resolve().then(function () { return require(/* webpackChunkName: "AddressField" */ './fthry_index.BMoZkdA6.js'); });
49185
49217
  },
49186
49218
  ButtonGroupField: function () {
49187
- return Promise.resolve().then(function () { return require(/* webpackChunkName: "ButtonGroupField" */ './fthry_index.Dw8XsWmo.js'); });
49219
+ return Promise.resolve().then(function () { return require(/* webpackChunkName: "ButtonGroupField" */ './fthry_index.WGuV-KCz.js'); });
49188
49220
  },
49189
49221
  CheckboxField: function () {
49190
- return Promise.resolve().then(function () { return require(/* webpackChunkName: "CheckboxField" */ './fthry_index.CofFj5ER.js'); });
49222
+ return Promise.resolve().then(function () { return require(/* webpackChunkName: "CheckboxField" */ './fthry_index.ErupPDHm.js'); });
49191
49223
  },
49192
49224
  CheckboxGroupField: function () {
49193
- return Promise.resolve().then(function () { return require(/* webpackChunkName: "CheckboxGroupField" */ './fthry_index.Jn-fry1W.js'); });
49225
+ return Promise.resolve().then(function () { return require(/* webpackChunkName: "CheckboxGroupField" */ './fthry_index.BeoZ7ahe.js'); });
49194
49226
  },
49195
49227
  ColorPickerField: function () {
49196
- return Promise.resolve().then(function () { return require(/* webpackChunkName: "ColorPickerField" */ './fthry_index.CY4QhZTQ.js'); });
49228
+ return Promise.resolve().then(function () { return require(/* webpackChunkName: "ColorPickerField" */ './fthry_index.CXfcph5D.js'); });
49197
49229
  },
49198
49230
  CustomField: function () {
49199
- return Promise.resolve().then(function () { return require(/* webpackChunkName: "CustomField" */ './fthry_index.CEYVccUV.js'); });
49231
+ return Promise.resolve().then(function () { return require(/* webpackChunkName: "CustomField" */ './fthry_index.Dx_qH62x.js'); });
49200
49232
  },
49201
49233
  DateSelectorField: function () {
49202
- return Promise.resolve().then(function () { return require(/* webpackChunkName: "DateSelectorField" */ './fthry_index.DpKzKR1Y.js'); });
49234
+ return Promise.resolve().then(function () { return require(/* webpackChunkName: "DateSelectorField" */ './fthry_index.B_DcdLHz.js'); });
49203
49235
  },
49204
49236
  DropdownField: function () {
49205
- return Promise.resolve().then(function () { return require(/* webpackChunkName: "DropdownField" */ './fthry_index.C6V-5sVJ.js'); });
49237
+ return Promise.resolve().then(function () { return require(/* webpackChunkName: "DropdownField" */ './fthry_index.CSa2GNkT.js'); });
49206
49238
  },
49207
49239
  DropdownMultiField: function () {
49208
- return Promise.resolve().then(function () { return require(/* webpackChunkName: "DropdownMultiField" */ './fthry_index.B4qFJMWZ.js'); });
49240
+ return Promise.resolve().then(function () { return require(/* webpackChunkName: "DropdownMultiField" */ './fthry_index.DuFt4scb.js'); });
49209
49241
  },
49210
49242
  FileUploadField: function () {
49211
- return Promise.resolve().then(function () { return require(/* webpackChunkName: "FileUploadField" */ './fthry_index.vtzgpOYZ.js'); });
49243
+ return Promise.resolve().then(function () { return require(/* webpackChunkName: "FileUploadField" */ './fthry_index.C6B_9YEq.js'); });
49212
49244
  },
49213
49245
  MatrixField: function () {
49214
- return Promise.resolve().then(function () { return require(/* webpackChunkName: "MatrixField" */ './fthry_index.CK11RRjf.js'); });
49246
+ return Promise.resolve().then(function () { return require(/* webpackChunkName: "MatrixField" */ './fthry_index.BqjGgn8c.js'); });
49215
49247
  },
49216
49248
  PasswordField: function () {
49217
- return Promise.resolve().then(function () { return require(/* webpackChunkName: "PasswordField" */ './fthry_index.B0nu8Nbi.js'); });
49249
+ return Promise.resolve().then(function () { return require(/* webpackChunkName: "PasswordField" */ './fthry_index.CN5FWNGo.js'); });
49218
49250
  },
49219
49251
  PaymentMethodField: function () {
49220
- return Promise.resolve().then(function () { return require(/* webpackChunkName: "PaymentMethodField" */ './fthry_PaymentMethodField.Bm2DR5ZM.js'); });
49252
+ return Promise.resolve().then(function () { return require(/* webpackChunkName: "PaymentMethodField" */ './fthry_PaymentMethodField.FKIxWFGb.js'); });
49221
49253
  },
49222
- PhoneField: function () { return Promise.resolve().then(function () { return require(/* webpackChunkName: "PhoneField" */ './fthry_index.DsHYiGx7.js'); }); },
49254
+ PhoneField: function () { return Promise.resolve().then(function () { return require(/* webpackChunkName: "PhoneField" */ './fthry_index.DcuaSdF3.js'); }); },
49223
49255
  PinInputField: function () {
49224
- return Promise.resolve().then(function () { return require(/* webpackChunkName: "PinInputField" */ './fthry_index.0p5YTe6g.js'); });
49256
+ return Promise.resolve().then(function () { return require(/* webpackChunkName: "PinInputField" */ './fthry_index.CAyIvRN9.js'); });
49225
49257
  },
49226
- QRScanner: function () { return Promise.resolve().then(function () { return require(/* webpackChunkName: "QRScanner" */ './fthry_index.NqLsD4p5.js'); }); },
49258
+ QRScanner: function () { return Promise.resolve().then(function () { return require(/* webpackChunkName: "QRScanner" */ './fthry_index.D71_kAqf.js'); }); },
49227
49259
  RadioButtonGroupField: function () {
49228
49260
  return Promise.resolve().then(function () { return require(
49229
- /* webpackChunkName: "RadioButtonGroupField" */ './fthry_index.CuKuHOLx.js'); });
49261
+ /* webpackChunkName: "RadioButtonGroupField" */ './fthry_index.BKgdz8wA.js'); });
49230
49262
  },
49231
49263
  RatingField: function () {
49232
- return Promise.resolve().then(function () { return require(/* webpackChunkName: "RatingField" */ './fthry_index.CLoBO1ES.js'); });
49264
+ return Promise.resolve().then(function () { return require(/* webpackChunkName: "RatingField" */ './fthry_index.CDpXSBnO.js'); });
49233
49265
  },
49234
49266
  SignatureField: function () {
49235
- return Promise.resolve().then(function () { return require(/* webpackChunkName: "SignatureField" */ './fthry_index.DAifQRmo.js'); });
49267
+ return Promise.resolve().then(function () { return require(/* webpackChunkName: "SignatureField" */ './fthry_index.WT4DAN_S.js'); });
49236
49268
  },
49237
49269
  SliderField: function () {
49238
- return Promise.resolve().then(function () { return require(/* webpackChunkName: "SliderField" */ './fthry_index.BWebQH-E.js'); });
49270
+ return Promise.resolve().then(function () { return require(/* webpackChunkName: "SliderField" */ './fthry_index.F9ntcl8d.js'); });
49239
49271
  },
49240
- TextField: function () { return Promise.resolve().then(function () { return require(/* webpackChunkName: "TextField" */ './fthry_index.DgfUQV0p.js'); }); },
49241
- TextArea: function () { return Promise.resolve().then(function () { return require(/* webpackChunkName: "TextArea" */ './fthry_index.Bf-r5Hyx.js'); }); }
49272
+ TextField: function () { return Promise.resolve().then(function () { return require(/* webpackChunkName: "TextField" */ './fthry_index.DcGjJE6I.js'); }); },
49273
+ TextArea: function () { return Promise.resolve().then(function () { return require(/* webpackChunkName: "TextArea" */ './fthry_index.ZWVnlGH6.js'); }); }
49242
49274
  };
49243
49275
  var getPositionKey = function (element) { var _a; return ((_a = element.position) === null || _a === void 0 ? void 0 : _a.join(',')) || 'root'; };
49244
49276
  // Share the resolved component between preload and render. A separate
@@ -50432,7 +50464,7 @@ function ElementSkeleton(_a) {
50432
50464
  }
50433
50465
  var templateObject_1;
50434
50466
 
50435
- var TableElement = React.lazy(function () { return Promise.resolve().then(function () { return require(/* webpackChunkName: "TableElement" */ './fthry_index.DvXrxU9b.js'); }); });
50467
+ var TableElement = React.lazy(function () { return Promise.resolve().then(function () { return require(/* webpackChunkName: "TableElement" */ './fthry_index.sT-w-rf1.js'); }); });
50436
50468
  var Basic = {
50437
50469
  ImageElement: ImageElement,
50438
50470
  VideoElement: VideoElement,
@@ -1,14 +1,14 @@
1
1
  'use strict';
2
2
 
3
- var index = require('./fthry_index.lwxn3wtK.js');
3
+ var index = require('./fthry_index.UL-HkR2L.js');
4
4
  var React = require('react');
5
- var InlineTooltip = require('./fthry_InlineTooltip.C7AC8sKh.js');
6
- var useSalesforceSync = require('./fthry_useSalesforceSync.2JVcfRRm.js');
5
+ var InlineTooltip = require('./fthry_InlineTooltip.BfrVpfYj.js');
6
+ var useSalesforceSync = require('./fthry_useSalesforceSync.xD4e3uQO.js');
7
7
  require('react/jsx-runtime');
8
8
  require('react-dom/client');
9
9
  require('jszip');
10
10
  require('react-dom');
11
- require('./fthry_Overlay.CdKK4u2g.js');
11
+ require('./fthry_Overlay.C6scqGHc.js');
12
12
 
13
13
  function ButtonGroupField(_a) {
14
14
  var element = _a.element, responsiveStyles = _a.responsiveStyles, fieldLabel = _a.fieldLabel, inlineError = _a.inlineError, _b = _a.fieldVal, fieldVal = _b === void 0 ? null : _b, _c = _a.repeatIndex, repeatIndex = _c === void 0 ? null : _c, editMode = _a.editMode, _d = _a.onClick, onClick = _d === void 0 ? function () { } : _d, _e = _a.elementProps, elementProps = _e === void 0 ? {} : _e, _f = _a.disabled, disabled = _f === void 0 ? false : _f, children = _a.children;
@@ -1,8 +1,8 @@
1
1
  'use strict';
2
2
 
3
- var index = require('./fthry_index.lwxn3wtK.js');
3
+ var index = require('./fthry_index.UL-HkR2L.js');
4
4
  var React = require('react');
5
- var index$1 = require('./fthry_index.Bq5bNmC5.js');
5
+ var index$1 = require('./fthry_index.Blb-S2FV.js');
6
6
  require('react/jsx-runtime');
7
7
  require('react-dom/client');
8
8
  require('jszip');
@@ -1479,7 +1479,7 @@ function SignatureField(_a) {
1479
1479
  React.useEffect(function () {
1480
1480
  if (!global.webfontloaderPromise)
1481
1481
  global.webfontloaderPromise = Promise.resolve().then(function () { return require(
1482
- /* webpackChunkName: "webfontloader" */ './fthry_webfontloader.DczITgMn.js'); }).then(function (n) { return n.webfontloader; });
1482
+ /* webpackChunkName: "webfontloader" */ './fthry_webfontloader.DMtsPRTb.js'); }).then(function (n) { return n.webfontloader; });
1483
1483
  global.webfontloaderPromise.then(function (WebFont) {
1484
1484
  WebFont.load({ google: { families: ['La Belle Aurore'] } });
1485
1485
  });
@@ -1,14 +1,14 @@
1
1
  'use strict';
2
2
 
3
- var index$1 = require('./fthry_index.lwxn3wtK.js');
3
+ var index$1 = require('./fthry_index.UL-HkR2L.js');
4
4
  var React = require('react');
5
- var Placeholder = require('./fthry_Placeholder.CAlnRoL9.js');
6
- var InlineTooltip = require('./fthry_InlineTooltip.C7AC8sKh.js');
5
+ var Placeholder = require('./fthry_Placeholder.BYp77nuH.js');
6
+ var InlineTooltip = require('./fthry_InlineTooltip.BfrVpfYj.js');
7
7
  require('react/jsx-runtime');
8
8
  require('react-dom/client');
9
9
  require('jszip');
10
10
  require('react-dom');
11
- require('./fthry_Overlay.CdKK4u2g.js');
11
+ require('./fthry_Overlay.C6scqGHc.js');
12
12
 
13
13
  function TextArea(_a) {
14
14
  var element = _a.element, responsiveStyles = _a.responsiveStyles, fieldLabel = _a.fieldLabel, _b = _a.elementProps, elementProps = _b === void 0 ? {} : _b, _c = _a.required, required = _c === void 0 ? false : _c, _d = _a.disabled, disabled = _d === void 0 ? false : _d, editMode = _a.editMode, _e = _a.onChange, onChange = _e === void 0 ? function () { } : _e, _f = _a.setRef, setRef = _f === void 0 ? function () { } : _f, _g = _a.rawValue, rawValue = _g === void 0 ? '' : _g, inlineError = _a.inlineError, _h = _a.repeatIndex, repeatIndex = _h === void 0 ? null : _h, children = _a.children;
@@ -1,6 +1,6 @@
1
1
  'use strict';
2
2
 
3
- var index = require('./fthry_index.lwxn3wtK.js');
3
+ var index = require('./fthry_index.UL-HkR2L.js');
4
4
  var React = require('react');
5
5
  var ReactDOM = require('react-dom');
6
6
  require('react/jsx-runtime');
@@ -1,7 +1,7 @@
1
1
  'use strict';
2
2
 
3
3
  var React = require('react');
4
- var index = require('./fthry_index.Bq5bNmC5.js');
4
+ var index = require('./fthry_index.Blb-S2FV.js');
5
5
 
6
6
  /** Checks if value is string */
7
7
  function isString(str) {
@@ -1,14 +1,14 @@
1
1
  'use strict';
2
2
 
3
- var AssistantChat = require('./fthry_AssistantChat.DnWwYHQn.js');
4
- require('./fthry_index.lwxn3wtK.js');
3
+ var AssistantChat = require('./fthry_AssistantChat.YQCuhhst.js');
4
+ require('./fthry_index.UL-HkR2L.js');
5
5
  require('react/jsx-runtime');
6
6
  require('react');
7
7
  require('react-dom/client');
8
8
  require('jszip');
9
9
  require('react-dom');
10
10
  require('./fthry_clsx.BtxeOLZW.js');
11
- require('./fthry_index.rd6jbLis.js');
11
+ require('./fthry_index.DhA0OYaa.js');
12
12
 
13
13
 
14
14
 
@@ -1,6 +1,6 @@
1
1
  'use strict';
2
2
 
3
- var index = require('./fthry_index.lwxn3wtK.js');
3
+ var index = require('./fthry_index.UL-HkR2L.js');
4
4
 
5
5
  function _mergeNamespaces(n, m) {
6
6
  m.forEach(function (e) {
@@ -1,7 +1,7 @@
1
1
  'use strict';
2
2
 
3
3
  var React = require('react');
4
- var index = require('./fthry_index.lwxn3wtK.js');
4
+ var index = require('./fthry_index.UL-HkR2L.js');
5
5
  var ReactDOM = require('react-dom');
6
6
 
7
7
  function _interopNamespaceDefault(e) {
@@ -1,6 +1,6 @@
1
1
  'use strict';
2
2
 
3
- var index = require('./fthry_index.lwxn3wtK.js');
3
+ var index = require('./fthry_index.UL-HkR2L.js');
4
4
  var React = require('react');
5
5
 
6
6
  function useElementSize(anchorRef) {
@@ -1,6 +1,6 @@
1
1
  'use strict';
2
2
 
3
- var index = require('./fthry_index.lwxn3wtK.js');
3
+ var index = require('./fthry_index.UL-HkR2L.js');
4
4
  var React = require('react');
5
5
 
6
6
  function useSalesforceSync(salesforceSync, editMode) {
@@ -1,6 +1,6 @@
1
1
  'use strict';
2
2
 
3
- var index = require('./fthry_index.lwxn3wtK.js');
3
+ var index = require('./fthry_index.UL-HkR2L.js');
4
4
 
5
5
  function _mergeNamespaces(n, m) {
6
6
  m.forEach(function (e) {
package/cjs/index.js CHANGED
@@ -1,6 +1,6 @@
1
1
  'use strict';
2
2
 
3
- var index = require('./fthry_index.lwxn3wtK.js');
3
+ var index = require('./fthry_index.UL-HkR2L.js');
4
4
  require('react-dom/client');
5
5
  require('react/jsx-runtime');
6
6
  require('react');
@@ -1 +1 @@
1
- {"version":3,"file":"form.d.ts","sourceRoot":"","sources":["../../../../../src/elements/components/QuikFormViewer/transforms/form.tsx"],"names":[],"mappings":"AAmJA,wBAAgB,mBAAmB,CACjC,GAAG,EAAE,QAAQ,GACZ,eAAe,GAAG,SAAS,CAS7B"}
1
+ {"version":3,"file":"form.d.ts","sourceRoot":"","sources":["../../../../../src/elements/components/QuikFormViewer/transforms/form.tsx"],"names":[],"mappings":"AA+LA,wBAAgB,mBAAmB,CACjC,GAAG,EAAE,QAAQ,GACZ,eAAe,GAAG,SAAS,CAU7B"}