@feathery/react 2.46.1 → 2.47.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.
Files changed (121) hide show
  1. package/cjs/elements/basic/ProgressBarElement/index.d.ts.map +1 -1
  2. package/cjs/elements/fields/PinInputField/index.d.ts.map +1 -1
  3. package/cjs/elements/fields/index.d.ts.map +1 -1
  4. package/cjs/elements/styles.d.ts +2 -2
  5. package/cjs/elements/styles.d.ts.map +1 -1
  6. package/cjs/elements/utils/labelStyleResolver.d.ts +17 -0
  7. package/cjs/elements/utils/labelStyleResolver.d.ts.map +1 -0
  8. package/cjs/{fthry_AssistantChat.HOs10x7Z.js → fthry_AssistantChat.Dln3sZaO.js} +4 -4
  9. package/cjs/{fthry_FormControl.BCnywRvR.js → fthry_FormControl.uHE9YK1E.js} +1 -1
  10. package/cjs/{fthry_InlineTooltip.BrQ_NavS.js → fthry_InlineTooltip.WDUHsUpe.js} +2 -2
  11. package/cjs/{fthry_Overlay.Cox2aMBR.js → fthry_Overlay.DFZNkWx6.js} +1 -1
  12. package/cjs/{fthry_PaymentMethodField.D7WieLLu.js → fthry_PaymentMethodField.DNKVy7YX.js} +4 -4
  13. package/cjs/{fthry_Placeholder.DGm6CD0p.js → fthry_Placeholder.CmetQCQE.js} +1 -1
  14. package/cjs/{fthry_ShowEyeIcon._dlQ9RG4.js → fthry_ShowEyeIcon.SF-0EcQK.js} +1 -1
  15. package/cjs/{fthry_TabsElement.Dwsd3nJY.js → fthry_TabsElement.B86k8Otw.js} +1 -1
  16. package/cjs/{fthry_auto-track.DNILVaNt.js → fthry_auto-track.B8u_S9bg.js} +2 -2
  17. package/cjs/{fthry_highlighted-body-TPN3WLV5.DS2P4VEd.js → fthry_highlighted-body-TPN3WLV5.BOwN5M9q.js} +3 -3
  18. package/cjs/{fthry_index.B_yDQniC.js → fthry_index.7SaIy83W.js} +2 -2
  19. package/cjs/{fthry_index.CY6lv9KR.js → fthry_index.B2OL7yZ5.js} +5 -5
  20. package/cjs/{fthry_index.CeXif7Vl.js → fthry_index.B4AWuG0t.js} +2 -2
  21. package/cjs/{fthry_index.Ba4qXhhL.js → fthry_index.BMoX9PfE.js} +1 -1
  22. package/cjs/{fthry_index.CgpgSFYK.js → fthry_index.BX9qw-9b.js} +4 -4
  23. package/cjs/{fthry_index.C6mwkNq0.js → fthry_index.BaVk4tgy.js} +5 -5
  24. package/cjs/{fthry_index.Q9itgMrp.js → fthry_index.BbiJ8b80.js} +1 -1
  25. package/cjs/{fthry_index.BxesbtXq.js → fthry_index.Bgg1tAqO.js} +6 -6
  26. package/cjs/{fthry_index.DGWKihY8.js → fthry_index.BqhqvxIr.js} +1 -1
  27. package/cjs/{fthry_index.OG-qCoBg.js → fthry_index.C5KKdRP7.js} +2 -2
  28. package/cjs/{fthry_index.CsRCaxBt.js → fthry_index.CFidkPLb.js} +2 -7
  29. package/cjs/{fthry_index.T6fGK-2P.js → fthry_index.CKcWYWE3.js} +8 -8
  30. package/cjs/{fthry_index.Ch9e5m7Z.js → fthry_index.CcMmad74.js} +6 -6
  31. package/cjs/{fthry_index.Bahw0zTu.js → fthry_index.CkCNeXPC.js} +1 -1
  32. package/cjs/{fthry_index.xNRRgFMX.js → fthry_index.ClgzWTFY.js} +2 -2
  33. package/cjs/{fthry_index.wd-TQD32.js → fthry_index.Cs-el-3L.js} +1 -1
  34. package/cjs/{fthry_index.CPW-fnJ-.js → fthry_index.CxSzzRrN.js} +6 -6
  35. package/cjs/{fthry_index.Dhj5PRqV.js → fthry_index.D1kfpnZK.js} +1 -1
  36. package/cjs/{fthry_index.B71fbZDC.js → fthry_index.DAmqQesG.js} +1 -1
  37. package/cjs/{fthry_index.DCn2JiDV.js → fthry_index.DBXIqF8K.js} +5 -5
  38. package/cjs/{fthry_index.C88ZvXRq.js → fthry_index.DJ-urDuh.js} +2 -2
  39. package/cjs/{fthry_index.DTGqEN1O.js → fthry_index.DMuFvVjE.js} +3 -3
  40. package/cjs/{fthry_index.Br71heKi.js → fthry_index.DOAZq3jf.js} +10 -10
  41. package/cjs/{fthry_index.DhvOAnQV.js → fthry_index.DPUGS9Bb.js} +6 -6
  42. package/cjs/{fthry_index.mmYUsEaq.js → fthry_index.D_PrDgA_.js} +2 -2
  43. package/cjs/{fthry_index.BlVDbFmx.js → fthry_index.DjmiOyRF.js} +1 -1
  44. package/cjs/{fthry_index.F2CK3YlC.js → fthry_index.DqBPUCFx.js} +5 -5
  45. package/cjs/{fthry_index.Bjd-CSdg.js → fthry_index.FRl5eejL.js} +3 -3
  46. package/cjs/{fthry_index.DPW7uNdh.js → fthry_index.JBMhMwS2.js} +4 -4
  47. package/cjs/{fthry_index.D8AsCw2u.js → fthry_index.Qhei31XB.js} +1 -1
  48. package/cjs/{fthry_index.CTVFS4Vy.js → fthry_index.daHEECTd.js} +153 -57
  49. package/cjs/{fthry_index.umd.CofTGXct.js → fthry_index.umd.ZElFDCsB.js} +1 -1
  50. package/cjs/{fthry_input.D5-KIrGW.js → fthry_input.dHDe7wx2.js} +1 -1
  51. package/cjs/{fthry_mermaid-O7DHMXV3.ap_mdd02.js → fthry_mermaid-O7DHMXV3.BtqFYP4B.js} +3 -3
  52. package/cjs/{fthry_script.BOjeKqCa.js → fthry_script.CeLoALnM.js} +1 -1
  53. package/cjs/{fthry_styles.bWLFQ_JH.js → fthry_styles.DoMopnrI.js} +1 -1
  54. package/cjs/{fthry_useElementSize.VE6YQEiT.js → fthry_useElementSize.Bke0oCAL.js} +1 -1
  55. package/cjs/{fthry_useSalesforceSync.DPqzIkSq.js → fthry_useSalesforceSync.D43AFN7K.js} +1 -1
  56. package/cjs/{fthry_webfontloader.SuENK1p_.js → fthry_webfontloader.C_rnGebJ.js} +1 -1
  57. package/cjs/index.d.ts +2 -1
  58. package/cjs/index.d.ts.map +1 -1
  59. package/cjs/index.js +2 -1
  60. package/dist/elements/basic/ProgressBarElement/index.d.ts.map +1 -1
  61. package/dist/elements/fields/PinInputField/index.d.ts.map +1 -1
  62. package/dist/elements/fields/index.d.ts.map +1 -1
  63. package/dist/elements/styles.d.ts +2 -2
  64. package/dist/elements/styles.d.ts.map +1 -1
  65. package/dist/elements/utils/labelStyleResolver.d.ts +17 -0
  66. package/dist/elements/utils/labelStyleResolver.d.ts.map +1 -0
  67. package/dist/{fthry_AssistantChat.Bfgmqkzl.js → fthry_AssistantChat.DFDdD7HC.js} +4 -4
  68. package/dist/{fthry_FormControl.CAhm8ZXM.js → fthry_FormControl.Cf0g4Yuy.js} +1 -1
  69. package/dist/{fthry_InlineTooltip.JmJty7AA.js → fthry_InlineTooltip.ihbwfFj5.js} +2 -2
  70. package/dist/{fthry_Overlay.CGkAk1s0.js → fthry_Overlay.ioiTUFxQ.js} +1 -1
  71. package/dist/{fthry_PaymentMethodField.du3tHlek.js → fthry_PaymentMethodField.iNvu0x8P.js} +4 -4
  72. package/dist/{fthry_Placeholder.BSu_TyIu.js → fthry_Placeholder.C_pZrH49.js} +1 -1
  73. package/dist/{fthry_ShowEyeIcon.BUTfoSgP.js → fthry_ShowEyeIcon.CttzKP8O.js} +1 -1
  74. package/dist/{fthry_TabsElement.nxxfFxDb.js → fthry_TabsElement.CWHCfLq7.js} +1 -1
  75. package/dist/{fthry_auto-track.XRTa46F7.js → fthry_auto-track.TB7HSzBP.js} +2 -2
  76. package/dist/{fthry_highlighted-body-TPN3WLV5.Cxz4qA2z.js → fthry_highlighted-body-TPN3WLV5.ALdNpxk8.js} +3 -3
  77. package/dist/{fthry_index.xrI7gFP3.js → fthry_index.B-GzRywW.js} +1 -1
  78. package/dist/{fthry_index.DKZ7feYO.js → fthry_index.BAy-nO-r.js} +2 -2
  79. package/dist/{fthry_index.WLqtnrL3.js → fthry_index.BTIaieTN.js} +5 -5
  80. package/dist/{fthry_index.BKfyK2M-.js → fthry_index.BX7wsRXd.js} +3 -3
  81. package/dist/{fthry_index.BAKnDzFx.js → fthry_index.BaWv1OCZ.js} +8 -8
  82. package/dist/{fthry_index.DFiXQhWg.js → fthry_index.BkYj8-gr.js} +2 -2
  83. package/dist/{fthry_index.DV0eqSIv.js → fthry_index.Boi26UPs.js} +2 -2
  84. package/dist/{fthry_index.CYwGLSpK.js → fthry_index.C1ZXJfal.js} +5 -5
  85. package/dist/{fthry_index.DmqlgMr_.js → fthry_index.C3FNTdYq.js} +5 -5
  86. package/dist/{fthry_index.CxkbJjx-.js → fthry_index.C64c135y.js} +153 -58
  87. package/dist/{fthry_index.CbJbvY_A.js → fthry_index.CKDBFYpw.js} +1 -1
  88. package/dist/{fthry_index.CrB3PkBk.js → fthry_index.CKQ5eeYE.js} +4 -4
  89. package/dist/{fthry_index.CyZrB_5D.js → fthry_index.CSRDeZ2F.js} +1 -1
  90. package/dist/{fthry_index.D1ljQbW8.js → fthry_index.CdiNFndQ.js} +1 -1
  91. package/dist/{fthry_index.D3LJY5SV.js → fthry_index.Cpcx1Ibk.js} +4 -4
  92. package/dist/{fthry_index.BSEJQL5u.js → fthry_index.Cr0_Lviv.js} +6 -6
  93. package/dist/{fthry_index.WuxO4ka6.js → fthry_index.D-XsMPmv.js} +1 -1
  94. package/dist/{fthry_index.C4eaBXfD.js → fthry_index.D-aXaZYJ.js} +2 -2
  95. package/dist/{fthry_index.D5CnrpOt.js → fthry_index.D283rxnO.js} +1 -1
  96. package/dist/{fthry_index.CTKvRzYj.js → fthry_index.D7BfGXcC.js} +1 -1
  97. package/dist/{fthry_index.C4iEQySO.js → fthry_index.DDITnGK6.js} +2 -2
  98. package/dist/{fthry_index.p_CCQjYQ.js → fthry_index.DFuron9d.js} +3 -3
  99. package/dist/{fthry_index.BBD3bwVt.js → fthry_index.DMFzi3Wa.js} +2 -2
  100. package/dist/{fthry_index.-uI_70vu.js → fthry_index.DUAotEAB.js} +1 -1
  101. package/dist/{fthry_index.CHYvS-vh.js → fthry_index.DYneV-Jm.js} +6 -6
  102. package/dist/{fthry_index.Ce02KRp8.js → fthry_index.DhFIBL2H.js} +10 -10
  103. package/dist/{fthry_index.CeUirh30.js → fthry_index.DpeXNy1J.js} +5 -5
  104. package/dist/{fthry_index.qX_NNusL.js → fthry_index.Qj3KEaC9.js} +5 -5
  105. package/dist/{fthry_index.CqzqJIHn.js → fthry_index.XmFRz7k0.js} +1 -1
  106. package/dist/{fthry_index.DpDik8Bo.js → fthry_index.lfZeXIue.js} +2 -7
  107. package/dist/{fthry_index.umd.DxjEZrwl.js → fthry_index.umd.CsHjvjeq.js} +1 -1
  108. package/dist/{fthry_index.BVnnUQo3.js → fthry_index.zxvFHqTv.js} +6 -6
  109. package/dist/{fthry_input.DyFVf-WI.js → fthry_input.BrxKUPgu.js} +1 -1
  110. package/dist/{fthry_mermaid-O7DHMXV3.BpKfY8Ij.js → fthry_mermaid-O7DHMXV3.CwrfkQpk.js} +3 -3
  111. package/dist/{fthry_script.B4J_jM0m.js → fthry_script.D4FZKxbJ.js} +1 -1
  112. package/dist/{fthry_styles.BTAWQ-tm.js → fthry_styles.BSgxYrQN.js} +1 -1
  113. package/dist/{fthry_useElementSize.Bod3Ua7_.js → fthry_useElementSize.o4eh-fH6.js} +1 -1
  114. package/dist/{fthry_useSalesforceSync.toyFl_i0.js → fthry_useSalesforceSync.2wdSr9qo.js} +1 -1
  115. package/dist/{fthry_webfontloader.Ceo4yWpt.js → fthry_webfontloader.uLtMUJ6J.js} +1 -1
  116. package/dist/index.d.ts +2 -1
  117. package/dist/index.d.ts.map +1 -1
  118. package/dist/index.js +1 -1
  119. package/package.json +1 -1
  120. package/umd/{PinInputField.ddc30797191dfbed7fe3.js → PinInputField.8116b03689657937daa0.js} +1 -1
  121. package/umd/index.js +1 -1
@@ -41089,7 +41089,7 @@ function useTrackUserInteraction(formRef, activeStep, stepKey, formName) {
41089
41089
  }, [activeStep, stepKey, formName]);
41090
41090
  }
41091
41091
 
41092
- var LazyAssistantChat = React.lazy(function () { return Promise.resolve().then(function () { return require(/* webpackChunkName: "AssistantChat" */ './fthry_AssistantChat.HOs10x7Z.js'); }).then(function (n) { return n.AssistantChat; }); });
41092
+ var LazyAssistantChat = React.lazy(function () { return Promise.resolve().then(function () { return require(/* webpackChunkName: "AssistantChat" */ './fthry_AssistantChat.Dln3sZaO.js'); }).then(function (n) { return n.AssistantChat; }); });
41093
41093
  var AssistantChat = function (props) { return (jsx$1(React.Suspense, exports.__assign({ fallback: null }, { children: jsx$1(LazyAssistantChat, exports.__assign({}, props)) }))); };
41094
41094
 
41095
41095
  var AssistantClient = /** @class */ (function () {
@@ -45130,7 +45130,7 @@ function loadSegment(segmentConfig, queue) {
45130
45130
  case 0:
45131
45131
  _a.trys.push([0, 2, , 3]);
45132
45132
  return [4 /*yield*/, Promise.resolve().then(function () { return require(
45133
- /* webpackChunkName: "segment" */ './fthry_index.Br71heKi.js'); }).then(function (n) { return n.index; })];
45133
+ /* webpackChunkName: "segment" */ './fthry_index.DOAZq3jf.js'); }).then(function (n) { return n.index; })];
45134
45134
  case 1:
45135
45135
  (AnalyticsBrowserClass = (_a.sent()).AnalyticsBrowser);
45136
45136
  return [3 /*break*/, 3];
@@ -47765,9 +47765,9 @@ function init(sdkKey, options) {
47765
47765
  if (runningInClient()) {
47766
47766
  // Dynamically load libraries that must be client side
47767
47767
  global.scriptjsLoadPromise = Promise.resolve().then(function () { return require(
47768
- /* webpackChunkName: "scriptjs" */ './fthry_script.BOjeKqCa.js'); }).then(function (n) { return n.script; });
47768
+ /* webpackChunkName: "scriptjs" */ './fthry_script.CeLoALnM.js'); }).then(function (n) { return n.script; });
47769
47769
  global.webfontloaderPromise = Promise.resolve().then(function () { return require(
47770
- /* webpackChunkName: "webfontloader" */ './fthry_webfontloader.SuENK1p_.js'); }).then(function (n) { return n.webfontloader; });
47770
+ /* webpackChunkName: "webfontloader" */ './fthry_webfontloader.C_rnGebJ.js'); }).then(function (n) { return n.webfontloader; });
47771
47771
  // Client-side tracking logic
47772
47772
  if (initState.userTracking === 'cookie') {
47773
47773
  var cookieKey = "feathery-user-id-".concat(sdkKey);
@@ -47954,7 +47954,7 @@ function loadCompletedSteps(client) {
47954
47954
  });
47955
47955
  }
47956
47956
  function logFeatheryBadge() {
47957
- console.log('%c Feathery %c v' + "2.46.1" + ' ', // replaced with real version during build
47957
+ console.log('%c Feathery %c v' + "2.47.1" + ' ', // replaced with real version during build
47958
47958
  '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;');
47959
47959
  }
47960
47960
 
@@ -48829,29 +48829,47 @@ var ResponsiveStyles = /** @class */ (function () {
48829
48829
  return _a = {}, _a[cssProp] = color, _a;
48830
48830
  });
48831
48831
  };
48832
- ResponsiveStyles.prototype.applyFontStyles = function (target, placeholder, ignoreSelectorFontColor) {
48832
+ ResponsiveStyles.prototype.applyFontStyles = function (target, placeholder, ignoreSelectorFontColor, prefix, skipUnset) {
48833
+ var _this = this;
48833
48834
  if (placeholder === void 0) { placeholder = false; }
48834
48835
  if (ignoreSelectorFontColor === void 0) { ignoreSelectorFontColor = false; }
48835
- this.apply(target, 'font_weight', function (a) { return ({
48836
+ if (prefix === void 0) { prefix = ''; }
48837
+ if (skipUnset === void 0) { skipUnset = false; }
48838
+ // With skipUnset, properties without a value emit no CSS at all (instead
48839
+ // of defaults like lineHeight: 'normal') so the target inherits them from
48840
+ // its parent. Used for labels, which inherit the field's font unless a
48841
+ // label_* property is explicitly set.
48842
+ var apply = function (target, properties, get) {
48843
+ return _this.apply(target, properties, skipUnset
48844
+ ? function () {
48845
+ var vals = [];
48846
+ for (var _i = 0; _i < arguments.length; _i++) {
48847
+ vals[_i] = arguments[_i];
48848
+ }
48849
+ return vals.every(function (v) { return v === undefined; }) ? {} : get.apply(void 0, __spreadArray([], __read(vals), false));
48850
+ }
48851
+ : get);
48852
+ };
48853
+ apply(target, "".concat(prefix, "font_weight"), function (a) { return ({
48836
48854
  fontWeight: a
48837
48855
  }); });
48838
- this.applyFontFamily(target);
48839
- this.apply(target, 'font_size', function (a) { return ({
48856
+ this.applyFontFamily(target, prefix);
48857
+ apply(target, "".concat(prefix, "font_size"), function (a) { return ({
48840
48858
  fontSize: "".concat(a, "px")
48841
48859
  }); });
48842
- this.apply(target, 'line_height', function (a) { return ({
48860
+ apply(target, "".concat(prefix, "line_height"), function (a) { return ({
48843
48861
  lineHeight: isNum(a) ? "".concat(a, "px") : 'normal'
48844
48862
  }); });
48845
- this.apply(target, 'letter_spacing', function (a) { return ({
48863
+ apply(target, "".concat(prefix, "letter_spacing"), function (a) { return ({
48846
48864
  letterSpacing: isNum(a) ? "".concat(a, "px") : 'normal'
48847
48865
  }); });
48848
- this.apply(target, 'text_transform', function (a) { return ({
48866
+ apply(target, "".concat(prefix, "text_transform"), function (a) { return ({
48849
48867
  textTransform: a || 'none'
48850
48868
  }); });
48851
- this.apply(target, placeholder ? 'placeholder_italic' : 'font_italic', function (a) { return ({
48869
+ apply(target, placeholder ? "".concat(prefix, "placeholder_italic") : "".concat(prefix, "font_italic"), function (a) { return ({
48852
48870
  fontStyle: a ? 'italic' : 'normal'
48853
48871
  }); });
48854
- this.apply(target, placeholder ? 'placeholder_color' : 'font_color', function (a) { return ({
48872
+ apply(target, placeholder ? "".concat(prefix, "placeholder_color") : "".concat(prefix, "font_color"), function (a) { return ({
48855
48873
  color: "#".concat(a),
48856
48874
  '&:disabled': {
48857
48875
  color: "#".concat(a),
@@ -48865,14 +48883,14 @@ var ResponsiveStyles = /** @class */ (function () {
48865
48883
  }
48866
48884
  }); });
48867
48885
  if (!placeholder && !ignoreSelectorFontColor) {
48868
- this.apply(target, 'hover_font_color', function (color) { return ({
48886
+ apply(target, "".concat(prefix, "hover_font_color"), function (color) { return ({
48869
48887
  '&:hover': color ? { color: "#".concat(color) } : {}
48870
48888
  }); });
48871
- this.apply(target, 'selected_font_color', function (color) { return ({
48889
+ apply(target, "".concat(prefix, "selected_font_color"), function (color) { return ({
48872
48890
  '&:focus': color ? { color: "#".concat(color) } : {}
48873
48891
  }); });
48874
48892
  }
48875
- this.apply(target, ['font_strike', 'font_underline'], function (a, b) {
48893
+ apply(target, ["".concat(prefix, "font_strike"), "".concat(prefix, "font_underline")], function (a, b) {
48876
48894
  var lines = [];
48877
48895
  if (a)
48878
48896
  lines.push('line-through');
@@ -48907,9 +48925,10 @@ var ResponsiveStyles = /** @class */ (function () {
48907
48925
  .join(', ');
48908
48926
  return families;
48909
48927
  };
48910
- ResponsiveStyles.prototype.applyFontFamily = function (target) {
48928
+ ResponsiveStyles.prototype.applyFontFamily = function (target, prefix) {
48911
48929
  var _this = this;
48912
- this.apply(target, 'font_family', function (a) {
48930
+ if (prefix === void 0) { prefix = ''; }
48931
+ this.apply(target, "".concat(prefix, "font_family"), function (a) {
48913
48932
  if (!a)
48914
48933
  return {};
48915
48934
  return { fontFamily: _this.transformFontFamilies(a) };
@@ -49467,66 +49486,128 @@ breakpoint) {
49467
49486
  return styles.getTarget('inner-container', undefined, viewport === 'mobile');
49468
49487
  };
49469
49488
 
49489
+ // Authoritative resolution of a field label's effective typography.
49490
+ //
49491
+ // At render time (see elements/fields/index.tsx) unset `label_*` font properties
49492
+ // emit no CSS (applyFontStyles with skipUnset=true) so the <label> inherits the
49493
+ // field's font_* from its `'fc'` container via the CSS cascade, and an unset
49494
+ // `label_text_align` is forced to LABEL_TEXT_ALIGN_DEFAULT. The renderer relies on
49495
+ // CSS inheritance rather than calling this resolver for fonts, so this function
49496
+ // must encode the *same* semantic. Any UI that needs the concrete value a label
49497
+ // will display (e.g. a style panel) should call this instead of re-deriving the
49498
+ // fallback, keeping the panel and the render path in sync.
49499
+ var LABEL_INHERITED_FONT_KEYS = [
49500
+ 'font_family',
49501
+ 'font_weight',
49502
+ 'font_size',
49503
+ 'font_color',
49504
+ 'font_italic',
49505
+ 'line_height',
49506
+ 'letter_spacing',
49507
+ 'text_transform'
49508
+ ];
49509
+ var LABEL_TEXT_ALIGN_DEFAULT = 'left';
49510
+ // The label's default gap (marginBottom) is applied inline on the <label> in
49511
+ // elements/fields/index.tsx — checkbox fields get no gap, everything else 10px.
49512
+ var LABEL_GAP_DEFAULT = 10;
49513
+ var LABEL_GAP_DEFAULT_CHECKBOX = 0;
49514
+ function getLabelGapDefault(fieldType) {
49515
+ return fieldType === 'checkbox'
49516
+ ? LABEL_GAP_DEFAULT_CHECKBOX
49517
+ : LABEL_GAP_DEFAULT;
49518
+ }
49519
+ /**
49520
+ * Given a field's resolved style (containing both the field's `font_*` keys and
49521
+ * any explicitly-set `label_*` keys), return the concrete `label_*` values a UI
49522
+ * should display. Font props fall back to the field's value when the label key is
49523
+ * unset; text-align and gap fall back to the renderer's forced defaults.
49524
+ *
49525
+ * `opts.fieldType` is needed only to resolve the gap default (checkbox has none).
49526
+ */
49527
+ function resolveLabelStyle(style, opts) {
49528
+ var e_1, _a;
49529
+ var _b, _c, _d;
49530
+ if (style === void 0) { style = {}; }
49531
+ if (opts === void 0) { opts = {}; }
49532
+ var out = {};
49533
+ try {
49534
+ for (var LABEL_INHERITED_FONT_KEYS_1 = __values(LABEL_INHERITED_FONT_KEYS), LABEL_INHERITED_FONT_KEYS_1_1 = LABEL_INHERITED_FONT_KEYS_1.next(); !LABEL_INHERITED_FONT_KEYS_1_1.done; LABEL_INHERITED_FONT_KEYS_1_1 = LABEL_INHERITED_FONT_KEYS_1.next()) {
49535
+ var key = LABEL_INHERITED_FONT_KEYS_1_1.value;
49536
+ out["label_".concat(key)] = (_b = style["label_".concat(key)]) !== null && _b !== void 0 ? _b : style[key];
49537
+ }
49538
+ }
49539
+ catch (e_1_1) { e_1 = { error: e_1_1 }; }
49540
+ finally {
49541
+ try {
49542
+ if (LABEL_INHERITED_FONT_KEYS_1_1 && !LABEL_INHERITED_FONT_KEYS_1_1.done && (_a = LABEL_INHERITED_FONT_KEYS_1.return)) _a.call(LABEL_INHERITED_FONT_KEYS_1);
49543
+ }
49544
+ finally { if (e_1) throw e_1.error; }
49545
+ }
49546
+ out.label_text_align = (_c = style.label_text_align) !== null && _c !== void 0 ? _c : LABEL_TEXT_ALIGN_DEFAULT;
49547
+ out.label_gap = (_d = style.label_gap) !== null && _d !== void 0 ? _d : getLabelGapDefault(opts.fieldType);
49548
+ return out;
49549
+ }
49550
+
49470
49551
  var fieldLoaders = {
49471
49552
  AddressLine1: function () {
49472
- return Promise.resolve().then(function () { return require(/* webpackChunkName: "AddressField" */ './fthry_index.C6mwkNq0.js'); });
49553
+ return Promise.resolve().then(function () { return require(/* webpackChunkName: "AddressField" */ './fthry_index.BaVk4tgy.js'); });
49473
49554
  },
49474
49555
  ButtonGroupField: function () {
49475
- return Promise.resolve().then(function () { return require(/* webpackChunkName: "ButtonGroupField" */ './fthry_index.DPW7uNdh.js'); });
49556
+ return Promise.resolve().then(function () { return require(/* webpackChunkName: "ButtonGroupField" */ './fthry_index.JBMhMwS2.js'); });
49476
49557
  },
49477
49558
  CheckboxField: function () {
49478
- return Promise.resolve().then(function () { return require(/* webpackChunkName: "CheckboxField" */ './fthry_index.Ba4qXhhL.js'); });
49559
+ return Promise.resolve().then(function () { return require(/* webpackChunkName: "CheckboxField" */ './fthry_index.BMoX9PfE.js'); });
49479
49560
  },
49480
49561
  CheckboxGroupField: function () {
49481
- return Promise.resolve().then(function () { return require(/* webpackChunkName: "CheckboxGroupField" */ './fthry_index.BxesbtXq.js'); });
49562
+ return Promise.resolve().then(function () { return require(/* webpackChunkName: "CheckboxGroupField" */ './fthry_index.Bgg1tAqO.js'); });
49482
49563
  },
49483
49564
  ColorPickerField: function () {
49484
- return Promise.resolve().then(function () { return require(/* webpackChunkName: "ColorPickerField" */ './fthry_index.Dhj5PRqV.js'); });
49565
+ return Promise.resolve().then(function () { return require(/* webpackChunkName: "ColorPickerField" */ './fthry_index.D1kfpnZK.js'); });
49485
49566
  },
49486
49567
  CustomField: function () {
49487
- return Promise.resolve().then(function () { return require(/* webpackChunkName: "CustomField" */ './fthry_index.DGWKihY8.js'); });
49568
+ return Promise.resolve().then(function () { return require(/* webpackChunkName: "CustomField" */ './fthry_index.BqhqvxIr.js'); });
49488
49569
  },
49489
49570
  DateSelectorField: function () {
49490
- return Promise.resolve().then(function () { return require(/* webpackChunkName: "DateSelectorField" */ './fthry_index.DhvOAnQV.js'); });
49571
+ return Promise.resolve().then(function () { return require(/* webpackChunkName: "DateSelectorField" */ './fthry_index.DPUGS9Bb.js'); });
49491
49572
  },
49492
49573
  DropdownField: function () {
49493
- return Promise.resolve().then(function () { return require(/* webpackChunkName: "DropdownField" */ './fthry_index.F2CK3YlC.js'); });
49574
+ return Promise.resolve().then(function () { return require(/* webpackChunkName: "DropdownField" */ './fthry_index.DqBPUCFx.js'); });
49494
49575
  },
49495
49576
  DropdownMultiField: function () {
49496
- return Promise.resolve().then(function () { return require(/* webpackChunkName: "DropdownMultiField" */ './fthry_index.CY6lv9KR.js'); });
49577
+ return Promise.resolve().then(function () { return require(/* webpackChunkName: "DropdownMultiField" */ './fthry_index.B2OL7yZ5.js'); });
49497
49578
  },
49498
49579
  FileUploadField: function () {
49499
- return Promise.resolve().then(function () { return require(/* webpackChunkName: "FileUploadField" */ './fthry_index.D8AsCw2u.js'); });
49580
+ return Promise.resolve().then(function () { return require(/* webpackChunkName: "FileUploadField" */ './fthry_index.Qhei31XB.js'); });
49500
49581
  },
49501
49582
  MatrixField: function () {
49502
- return Promise.resolve().then(function () { return require(/* webpackChunkName: "MatrixField" */ './fthry_index.Bjd-CSdg.js'); });
49583
+ return Promise.resolve().then(function () { return require(/* webpackChunkName: "MatrixField" */ './fthry_index.FRl5eejL.js'); });
49503
49584
  },
49504
49585
  PasswordField: function () {
49505
- return Promise.resolve().then(function () { return require(/* webpackChunkName: "PasswordField" */ './fthry_index.DCn2JiDV.js'); });
49586
+ return Promise.resolve().then(function () { return require(/* webpackChunkName: "PasswordField" */ './fthry_index.DBXIqF8K.js'); });
49506
49587
  },
49507
49588
  PaymentMethodField: function () {
49508
- return Promise.resolve().then(function () { return require(/* webpackChunkName: "PaymentMethodField" */ './fthry_PaymentMethodField.D7WieLLu.js'); });
49589
+ return Promise.resolve().then(function () { return require(/* webpackChunkName: "PaymentMethodField" */ './fthry_PaymentMethodField.DNKVy7YX.js'); });
49509
49590
  },
49510
- PhoneField: function () { return Promise.resolve().then(function () { return require(/* webpackChunkName: "PhoneField" */ './fthry_index.Ch9e5m7Z.js'); }); },
49591
+ PhoneField: function () { return Promise.resolve().then(function () { return require(/* webpackChunkName: "PhoneField" */ './fthry_index.CcMmad74.js'); }); },
49511
49592
  PinInputField: function () {
49512
- return Promise.resolve().then(function () { return require(/* webpackChunkName: "PinInputField" */ './fthry_index.CsRCaxBt.js'); });
49593
+ return Promise.resolve().then(function () { return require(/* webpackChunkName: "PinInputField" */ './fthry_index.CFidkPLb.js'); });
49513
49594
  },
49514
- QRScanner: function () { return Promise.resolve().then(function () { return require(/* webpackChunkName: "QRScanner" */ './fthry_index.B_yDQniC.js'); }); },
49595
+ QRScanner: function () { return Promise.resolve().then(function () { return require(/* webpackChunkName: "QRScanner" */ './fthry_index.7SaIy83W.js'); }); },
49515
49596
  RadioButtonGroupField: function () {
49516
49597
  return Promise.resolve().then(function () { return require(
49517
- /* webpackChunkName: "RadioButtonGroupField" */ './fthry_index.CPW-fnJ-.js'); });
49598
+ /* webpackChunkName: "RadioButtonGroupField" */ './fthry_index.CxSzzRrN.js'); });
49518
49599
  },
49519
49600
  RatingField: function () {
49520
- return Promise.resolve().then(function () { return require(/* webpackChunkName: "RatingField" */ './fthry_index.wd-TQD32.js'); });
49601
+ return Promise.resolve().then(function () { return require(/* webpackChunkName: "RatingField" */ './fthry_index.Cs-el-3L.js'); });
49521
49602
  },
49522
49603
  SignatureField: function () {
49523
- return Promise.resolve().then(function () { return require(/* webpackChunkName: "SignatureField" */ './fthry_index.DTGqEN1O.js'); });
49604
+ return Promise.resolve().then(function () { return require(/* webpackChunkName: "SignatureField" */ './fthry_index.DMuFvVjE.js'); });
49524
49605
  },
49525
49606
  SliderField: function () {
49526
- return Promise.resolve().then(function () { return require(/* webpackChunkName: "SliderField" */ './fthry_index.CeXif7Vl.js'); });
49607
+ return Promise.resolve().then(function () { return require(/* webpackChunkName: "SliderField" */ './fthry_index.B4AWuG0t.js'); });
49527
49608
  },
49528
- TextField: function () { return Promise.resolve().then(function () { return require(/* webpackChunkName: "TextField" */ './fthry_index.T6fGK-2P.js'); }); },
49529
- TextArea: function () { return Promise.resolve().then(function () { return require(/* webpackChunkName: "TextArea" */ './fthry_index.CgpgSFYK.js'); }); }
49609
+ TextField: function () { return Promise.resolve().then(function () { return require(/* webpackChunkName: "TextField" */ './fthry_index.CKcWYWE3.js'); }); },
49610
+ TextArea: function () { return Promise.resolve().then(function () { return require(/* webpackChunkName: "TextArea" */ './fthry_index.BX9qw-9b.js'); }); }
49530
49611
  };
49531
49612
  var getPositionKey = function (element) { var _a; return ((_a = element.position) === null || _a === void 0 ? void 0 : _a.join(',')) || 'root'; };
49532
49613
  // Share the resolved component between preload and render. A separate
@@ -49688,14 +49769,31 @@ var defaultBorderFields = [
49688
49769
  'file_upload'
49689
49770
  ];
49690
49771
  var DROPDOWN_Z_INDEX = 10;
49772
+ function applyLabelFontStyles(styles) {
49773
+ // skipUnset: unset label_* properties emit no CSS so the label inherits the
49774
+ // field's font from its container instead of getting font-style defaults.
49775
+ // NOTE: resolveLabelStyle (../labelStyleResolver) mirrors this font-inheritance
49776
+ // semantic for UIs that need the concrete displayed value — keep the two in sync.
49777
+ styles.applyFontStyles('fieldLabel', false, true, 'label_', true);
49778
+ }
49691
49779
  function applyFieldStyles(field, styles) {
49692
49780
  var type = field.servar.type;
49693
- styles.addTargets('fc', 'sub-fc', 'field', 'error', 'active', 'hover', 'disabled', 'tooltipIcon');
49781
+ styles.addTargets('fc', 'sub-fc', 'field', 'error', 'active', 'hover', 'disabled', 'tooltipIcon', 'fieldLabel');
49694
49782
  // For these fields, selector font colors
49695
49783
  // apply to the checkmark / radio fill
49696
49784
  var ignoreSelectorColors = ['select', 'multiselect', 'checkbox'].includes(type);
49697
49785
  styles.applyFontStyles('fc', false, true);
49698
49786
  styles.applyFontStyles('field', false, ignoreSelectorColors);
49787
+ // Label styling is independent of the field. When a label_* property is
49788
+ // unset, nothing is applied and the label inherits the field's font from its
49789
+ // container ('fc'), preserving prior behavior.
49790
+ applyLabelFontStyles(styles);
49791
+ styles.apply('fieldLabel', 'label_gap', function (a) {
49792
+ return a === undefined ? {} : { marginBottom: "".concat(a, "px") };
49793
+ });
49794
+ styles.apply('fieldLabel', 'label_text_align', function (a) {
49795
+ return a === undefined ? { textAlign: LABEL_TEXT_ALIGN_DEFAULT } : { textAlign: a };
49796
+ });
49699
49797
  // These are fields that don't have content inside, which won't be shifted by
49700
49798
  // a default border
49701
49799
  var hasBorder = defaultBorderFields.includes(type);
@@ -50019,15 +50117,10 @@ Object.entries(Fields).map(function (_a) {
50019
50117
  Fields[key] = React.memo(function (_a) {
50020
50118
  var element = _a.element, responsiveStyles = _a.responsiveStyles, props = __rest$1(_a, ["element", "responsiveStyles"]);
50021
50119
  var servar = element.servar;
50120
+ var styles = React.useMemo(function () { return applyFieldStyles(element, responsiveStyles); }, [element]);
50022
50121
  var fieldLabel = (servar === null || servar === void 0 ? void 0 : servar.name) ? (jsx$1("label", exports.__assign({
50023
50122
  // Doesn't work for repeats currently since repeating field IDs aren't unique
50024
- htmlFor: servar.repeated ? undefined : servar.key, style: {
50025
- marginBottom: servar.type === 'checkbox' ? 0 : '10px',
50026
- display: 'inline-block',
50027
- whiteSpace: 'pre-wrap',
50028
- overflowWrap: 'anywhere'
50029
- } }, { children: servar.name }))) : null;
50030
- var styles = React.useMemo(function () { return applyFieldStyles(element, responsiveStyles); }, [element]);
50123
+ htmlFor: servar.repeated ? undefined : servar.key, style: exports.__assign({ marginBottom: "".concat(getLabelGapDefault(servar.type), "px"), display: 'inline-block', whiteSpace: 'pre-wrap', overflowWrap: 'anywhere' }, styles.getTarget('fieldLabel')) }, { children: servar.name }))) : null;
50031
50124
  return (jsx$1(Field, exports.__assign({ element: element, fieldLabel: fieldLabel, responsiveStyles: styles }, props)));
50032
50125
  });
50033
50126
  });
@@ -50566,10 +50659,10 @@ function applyProgressBarStyles(responsiveStyles) {
50566
50659
  return responsiveStyles;
50567
50660
  }
50568
50661
  function ProgressBarElement(_a) {
50569
- var _b, _c, _d, _e, _f, _g;
50570
- var element = _a.element, responsiveStyles = _a.responsiveStyles, progress = _a.progress, _h = _a.curDepth, curDepth = _h === void 0 ? 1 : _h, _j = _a.maxDepth, maxDepth = _j === void 0 ? 1 : _j, stepKey = _a.stepKey, runElementActions = _a.runElementActions, client = _a.client, _k = _a.elementProps, elementProps = _k === void 0 ? {} : _k, children = _a.children;
50662
+ var _b, _c, _d, _e, _f, _g, _h, _j;
50663
+ var element = _a.element, responsiveStyles = _a.responsiveStyles, progress = _a.progress, _k = _a.curDepth, curDepth = _k === void 0 ? 1 : _k, _l = _a.maxDepth, maxDepth = _l === void 0 ? 1 : _l, stepKey = _a.stepKey, runElementActions = _a.runElementActions, client = _a.client, _m = _a.elementProps, elementProps = _m === void 0 ? {} : _m, children = _a.children;
50571
50664
  var styles = React.useMemo(function () { return applyProgressBarStyles(responsiveStyles); }, [responsiveStyles]);
50572
- var _l = __read(React.useReducer(function (x) { return x + 1; }, 0), 2), rerender = _l[1];
50665
+ var _o = __read(React.useReducer(function (x) { return x + 1; }, 0), 2), rerender = _o[1];
50573
50666
  var isStepper = !!((_b = element.properties) === null || _b === void 0 ? void 0 : _b.stepper);
50574
50667
  // Fetch prior step completion the first time a stepper renders (deduped per
50575
50668
  // form inside loadCompletedSteps), then re-render this stepper to show it
@@ -50591,7 +50684,9 @@ function ProgressBarElement(_a) {
50591
50684
  actions: [{ type: ACTION_NEXT, next_step_key: targetStepKey }]
50592
50685
  });
50593
50686
  };
50594
- return (jsxs("div", exports.__assign({}, containerProps, { children: [children, jsx$1(StepperBar, { styles: styles, stepConfigs: (_e = (_d = element.properties) === null || _d === void 0 ? void 0 : _d.entries) !== null && _e !== void 0 ? _e : [], stepKey: stepKey, textPlacement: element.styles.percent_text_layout, onStepClick: onStepClick, allowAllNavigation: allowAllNavigation, vertical: vertical, style: vertical ? { flex: 1 } : undefined })] })));
50687
+ return (jsxs("div", exports.__assign({}, containerProps, { children: [children, jsx$1(StepperBar, { styles: styles,
50688
+ // TODO: remove stepper_steps after BE migration
50689
+ stepConfigs: (_g = (_e = (_d = element.properties) === null || _d === void 0 ? void 0 : _d.entries) !== null && _e !== void 0 ? _e : (_f = element.properties) === null || _f === void 0 ? void 0 : _f.stepper_steps) !== null && _g !== void 0 ? _g : [], stepKey: stepKey, textPlacement: element.styles.percent_text_layout, onStepClick: onStepClick, allowAllNavigation: allowAllNavigation, vertical: vertical, style: vertical ? { flex: 1 } : undefined })] })));
50595
50690
  }
50596
50691
  var userProgress, userSegments;
50597
50692
  if (![null, undefined].includes(progress)) {
@@ -50600,10 +50695,10 @@ function ProgressBarElement(_a) {
50600
50695
  }
50601
50696
  else {
50602
50697
  userProgress = progress.progress;
50603
- userSegments = (_f = progress.segments) !== null && _f !== void 0 ? _f : element.properties.num_segments;
50698
+ userSegments = (_h = progress.segments) !== null && _h !== void 0 ? _h : element.properties.num_segments;
50604
50699
  }
50605
50700
  }
50606
- userProgress = userProgress !== null && userProgress !== void 0 ? userProgress : (_g = element.properties) === null || _g === void 0 ? void 0 : _g.progress;
50701
+ userProgress = userProgress !== null && userProgress !== void 0 ? userProgress : (_j = element.properties) === null || _j === void 0 ? void 0 : _j.progress;
50607
50702
  var percent = isNum(userProgress)
50608
50703
  ? userProgress
50609
50704
  : Math.round((100 * (curDepth + 1)) / ((maxDepth || 1) + 1));
@@ -50774,8 +50869,8 @@ function ElementSkeleton(_a) {
50774
50869
  }
50775
50870
  var templateObject_1;
50776
50871
 
50777
- var TableElement = React.lazy(function () { return Promise.resolve().then(function () { return require(/* webpackChunkName: "TableElement" */ './fthry_index.Bahw0zTu.js'); }); });
50778
- var TabsElement = React.lazy(function () { return Promise.resolve().then(function () { return require(/* webpackChunkName: "TabsElement" */ './fthry_TabsElement.Dwsd3nJY.js'); }); });
50872
+ var TableElement = React.lazy(function () { return Promise.resolve().then(function () { return require(/* webpackChunkName: "TableElement" */ './fthry_index.CkCNeXPC.js'); }); });
50873
+ var TabsElement = React.lazy(function () { return Promise.resolve().then(function () { return require(/* webpackChunkName: "TabsElement" */ './fthry_TabsElement.B86k8Otw.js'); }); });
50779
50874
  var Basic = {
50780
50875
  ImageElement: ImageElement,
50781
50876
  VideoElement: VideoElement,
@@ -51160,6 +51255,7 @@ exports.renderAt = renderAt;
51160
51255
  exports.replace = replace;
51161
51256
  exports.replaceTextVariables = replaceTextVariables;
51162
51257
  exports.resetStyles = resetStyles;
51258
+ exports.resolveLabelStyle = resolveLabelStyle;
51163
51259
  exports.rulesheet = rulesheet;
51164
51260
  exports.serialize = serialize;
51165
51261
  exports.setFieldValues = setFieldValues;
@@ -1,6 +1,6 @@
1
1
  'use strict';
2
2
 
3
- var index = require('./fthry_index.CTVFS4Vy.js');
3
+ var index = require('./fthry_index.daHEECTd.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.BlVDbFmx.js');
4
+ var index = require('./fthry_index.DjmiOyRF.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.HOs10x7Z.js');
4
- require('./fthry_index.CTVFS4Vy.js');
3
+ var AssistantChat = require('./fthry_AssistantChat.Dln3sZaO.js');
4
+ require('./fthry_index.daHEECTd.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.Q9itgMrp.js');
11
+ require('./fthry_index.BbiJ8b80.js');
12
12
 
13
13
 
14
14
 
@@ -1,6 +1,6 @@
1
1
  'use strict';
2
2
 
3
- var index = require('./fthry_index.CTVFS4Vy.js');
3
+ var index = require('./fthry_index.daHEECTd.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.CTVFS4Vy.js');
4
+ var index = require('./fthry_index.daHEECTd.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.CTVFS4Vy.js');
3
+ var index = require('./fthry_index.daHEECTd.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.CTVFS4Vy.js');
3
+ var index = require('./fthry_index.daHEECTd.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.CTVFS4Vy.js');
3
+ var index = require('./fthry_index.daHEECTd.js');
4
4
 
5
5
  function _mergeNamespaces(n, m) {
6
6
  m.forEach(function (e) {
package/cjs/index.d.ts CHANGED
@@ -7,6 +7,7 @@ import { FormContext } from './types/Form';
7
7
  import LoginForm from './auth/LoginForm';
8
8
  import useAuthClient from './auth/useAuthClient';
9
9
  import { AssistantChat } from './assistant';
10
+ import { resolveLabelStyle } from './elements/utils/labelStyleResolver';
10
11
  import './utils/polyfills';
11
12
  /**
12
13
  * Utility function which renders a form with the provided props in the DOM element with the provided ID.
@@ -204,7 +205,7 @@ declare const Feathery: {
204
205
  getFieldValues: typeof getFieldValues;
205
206
  renderAt: typeof renderAt;
206
207
  };
207
- export { Form, Elements, init, updateUserId, updateTheme, setFieldValues, getFieldValues, renderAt, LoginForm, useAuthClient, AssistantChat, Feathery, StyledContainer };
208
+ export { Form, Elements, init, updateUserId, updateTheme, setFieldValues, getFieldValues, resolveLabelStyle, renderAt, LoginForm, useAuthClient, AssistantChat, Feathery, StyledContainer };
208
209
  export type { OPERATOR_CODE, FormContext };
209
210
  export type { StyledContainerProps } from './Form/grid/StyledContainer';
210
211
  //# sourceMappingURL=index.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.tsx"],"names":[],"mappings":";AACA,OAAO,QAAQ,MAAM,YAAY,CAAC;AAClC,OAAO,IAAI,EAAE,EAAU,KAAK,IAAI,SAAS,EAAE,eAAe,EAAE,MAAM,QAAQ,CAAC;AAC3E,OAAO,EACL,IAAI,EACJ,YAAY,EACZ,cAAc,EACd,cAAc,EACd,WAAW,EACZ,MAAM,cAAc,CAAC;AACtB,OAAO,EAAE,aAAa,EAAE,MAAM,eAAe,CAAC;AAI9C,OAAO,EAAE,WAAW,EAAE,MAAM,cAAc,CAAC;AAC3C,OAAO,SAAS,MAAM,kBAAkB,CAAC;AACzC,OAAO,aAAa,MAAM,sBAAsB,CAAC;AACjD,OAAO,EAAE,aAAa,EAAE,MAAM,aAAa,CAAC;AAC5C,OAAO,mBAAmB,CAAC;AAG3B;;;;GAIG;AACH,iBAAS,QAAQ,CAAC,SAAS,EAAE,GAAG,EAAE,KAAK,EAAE,SAAS,EAAE,YAAY,UAAQ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;EAgCvE;AAGD,QAAA,MAAM,QAAQ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CASb,CAAC;AAEF,OAAO,EACL,IAAI,EACJ,QAAQ,EACR,IAAI,EACJ,YAAY,EACZ,WAAW,EACX,cAAc,EACd,cAAc,EACd,QAAQ,EACR,SAAS,EACT,aAAa,EACb,aAAa,EACb,QAAQ,EACR,eAAe,EAChB,CAAC;AAEF,YAAY,EAAE,aAAa,EAAE,WAAW,EAAE,CAAC;AAC3C,YAAY,EAAE,oBAAoB,EAAE,MAAM,6BAA6B,CAAC"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.tsx"],"names":[],"mappings":";AACA,OAAO,QAAQ,MAAM,YAAY,CAAC;AAClC,OAAO,IAAI,EAAE,EAAU,KAAK,IAAI,SAAS,EAAE,eAAe,EAAE,MAAM,QAAQ,CAAC;AAC3E,OAAO,EACL,IAAI,EACJ,YAAY,EACZ,cAAc,EACd,cAAc,EACd,WAAW,EACZ,MAAM,cAAc,CAAC;AACtB,OAAO,EAAE,aAAa,EAAE,MAAM,eAAe,CAAC;AAI9C,OAAO,EAAE,WAAW,EAAE,MAAM,cAAc,CAAC;AAC3C,OAAO,SAAS,MAAM,kBAAkB,CAAC;AACzC,OAAO,aAAa,MAAM,sBAAsB,CAAC;AACjD,OAAO,EAAE,aAAa,EAAE,MAAM,aAAa,CAAC;AAC5C,OAAO,EAAE,iBAAiB,EAAE,MAAM,qCAAqC,CAAC;AACxE,OAAO,mBAAmB,CAAC;AAG3B;;;;GAIG;AACH,iBAAS,QAAQ,CAAC,SAAS,EAAE,GAAG,EAAE,KAAK,EAAE,SAAS,EAAE,YAAY,UAAQ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;EAgCvE;AAGD,QAAA,MAAM,QAAQ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CASb,CAAC;AAEF,OAAO,EACL,IAAI,EACJ,QAAQ,EACR,IAAI,EACJ,YAAY,EACZ,WAAW,EACX,cAAc,EACd,cAAc,EACd,iBAAiB,EACjB,QAAQ,EACR,SAAS,EACT,aAAa,EACb,aAAa,EACb,QAAQ,EACR,eAAe,EAChB,CAAC;AAEF,YAAY,EAAE,aAAa,EAAE,WAAW,EAAE,CAAC;AAC3C,YAAY,EAAE,oBAAoB,EAAE,MAAM,6BAA6B,CAAC"}
package/cjs/index.js CHANGED
@@ -1,6 +1,6 @@
1
1
  'use strict';
2
2
 
3
- var index = require('./fthry_index.CTVFS4Vy.js');
3
+ var index = require('./fthry_index.daHEECTd.js');
4
4
  require('react-dom/client');
5
5
  require('react/jsx-runtime');
6
6
  require('react');
@@ -18,6 +18,7 @@ exports.StyledContainer = index.StyledContainer;
18
18
  exports.getFieldValues = index.getFieldValues;
19
19
  exports.init = index.init;
20
20
  exports.renderAt = index.renderAt;
21
+ exports.resolveLabelStyle = index.resolveLabelStyle;
21
22
  exports.setFieldValues = index.setFieldValues;
22
23
  exports.updateTheme = index.updateTheme;
23
24
  exports.updateUserId = index.updateUserId;
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../src/elements/basic/ProgressBarElement/index.tsx"],"names":[],"mappings":"AA2BA,iBAAS,kBAAkB,CAAC,EAC1B,OAAO,EACP,gBAAgB,EAChB,QAAQ,EACR,QAAY,EACZ,QAAY,EACZ,OAAO,EACP,iBAAiB,EACjB,MAAM,EACN,YAAiB,EACjB,QAAQ,EACT,EAAE,GAAG,oDA6HL;AAED,eAAe,kBAAkB,CAAC"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../src/elements/basic/ProgressBarElement/index.tsx"],"names":[],"mappings":"AA2BA,iBAAS,kBAAkB,CAAC,EAC1B,OAAO,EACP,gBAAgB,EAChB,QAAQ,EACR,QAAY,EACZ,QAAY,EACZ,OAAO,EACP,iBAAiB,EACjB,MAAM,EACN,YAAiB,EACjB,QAAQ,EACT,EAAE,GAAG,oDAkIL;AAED,eAAe,kBAAkB,CAAC"}
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../src/elements/fields/PinInputField/index.tsx"],"names":[],"mappings":"AAqTA,iBAAS,aAAa,CAAC,EACrB,OAAO,EACP,gBAAgB,EAChB,UAAU,EACV,WAAW,EACX,SAAiB,EACjB,QAAa,EACb,QAAQ,EACR,QAAmB,EACnB,OAAkB,EAClB,YAAiB,EACjB,QAAgB,EAChB,YAAY,EACZ,QAAQ,EACT,EAAE,GAAG,oDA0BL;AAED,eAAe,aAAa,CAAC"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../src/elements/fields/PinInputField/index.tsx"],"names":[],"mappings":"AAqTA,iBAAS,aAAa,CAAC,EACrB,OAAO,EACP,gBAAgB,EAChB,UAAU,EACV,WAAW,EACX,SAAiB,EACjB,QAAa,EACb,QAAQ,EACR,QAAmB,EACnB,OAAkB,EAClB,YAAiB,EACjB,QAAgB,EAChB,YAAY,EACZ,QAAQ,EACT,EAAE,GAAG,oDA2BL;AAED,eAAe,aAAa,CAAC"}
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/elements/fields/index.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAwB,MAAM,OAAO,CAAC;AAI7C,aAAK,gBAAgB,GAAG,MAAM,CAAC,MAAM,EAAE,OAAO,EAAE,CAAC,CAAC;AAmDlD,aAAK,gBAAgB,GAAG,KAAK,CAAC,aAAa,CAAC,GAAG,CAAC,GAAG;IACjD,OAAO,EAAE,MAAM,OAAO,CAAC,GAAG,CAAC,CAAC;CAC7B,CAAC;AAmJF,eAAO,MAAM,iBAAiB,SACtB,GAAG,oBACS,gBAAgB,mBAenC,CAAC;AAEF,QAAA,MAAM,MAAM;;;;;;;;;;;;;;;;;;;;;;;CAA2B,CAAC;AAkBxC,eAAO,MAAM,gBAAgB,KAAK,CAAC;AA+ZnC,eAAe,MAAM,CAAC"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/elements/fields/index.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAwB,MAAM,OAAO,CAAC;AAQ7C,aAAK,gBAAgB,GAAG,MAAM,CAAC,MAAM,EAAE,OAAO,EAAE,CAAC,CAAC;AAmDlD,aAAK,gBAAgB,GAAG,KAAK,CAAC,aAAa,CAAC,GAAG,CAAC,GAAG;IACjD,OAAO,EAAE,MAAM,OAAO,CAAC,GAAG,CAAC,CAAC;CAC7B,CAAC;AAmJF,eAAO,MAAM,iBAAiB,SACtB,GAAG,oBACS,gBAAgB,mBAenC,CAAC;AAEF,QAAA,MAAM,MAAM;;;;;;;;;;;;;;;;;;;;;;;CAA2B,CAAC;AAkBxC,eAAO,MAAM,gBAAgB,KAAK,CAAC;AAobnC,eAAe,MAAM,CAAC"}
@@ -45,10 +45,10 @@ export default class ResponsiveStyles {
45
45
  applyHeight(target: string, prefix?: string, force?: boolean): void;
46
46
  applyWidth(target: string, prefix?: string, force?: boolean): void;
47
47
  applyColor(target: string, jsonProp: any, cssProp: any, important?: boolean): void;
48
- applyFontStyles(target: string, placeholder?: boolean, ignoreSelectorFontColor?: boolean): void;
48
+ applyFontStyles(target: string, placeholder?: boolean, ignoreSelectorFontColor?: boolean, prefix?: string, skipUnset?: boolean): void;
49
49
  applySpanSelectorStyles(target: string, prefix?: string): void;
50
50
  transformFontFamilies(families: string): string;
51
- applyFontFamily(target: string): void;
51
+ applyFontFamily(target: string, prefix?: string): void;
52
52
  getRichFontStyles(attrs: any): Record<string, any>;
53
53
  _getRichFontScreenStyles(attrs: any, isMobile?: boolean): Record<string, any>;
54
54
  applyPlaceholderStyles(type: any, styles: any): void;
@@ -1 +1 @@
1
- {"version":3,"file":"styles.d.ts","sourceRoot":"","sources":["../../src/elements/styles.ts"],"names":[],"mappings":"AAQA,OAAO,EAAE,aAAa,EAAE,MAAM,OAAO,CAAC;AAEtC,eAAO,MAAM,yBAAyB,MAAM,CAAC;AAE7C,eAAO,MAAM,WAAW,+CAEvB,CAAC;AAEF,eAAO,MAAM,gBAAgB,UAK5B,CAAC;AAEF,eAAO,MAAM,gBAAgB,UAK5B,CAAC;AAEF;;;GAGG;AACH,MAAM,CAAC,OAAO,OAAO,gBAAgB;IACnC,OAAO,EAAE,GAAG,CAAC;IACb,YAAY,EAAE,OAAO,CAAC;IACtB,YAAY,EAAE,GAAG,CAAC;IAClB,aAAa,EAAE,GAAG,CAAC;IACnB,MAAM,EAAE,GAAG,CAAC;IACZ,OAAO,EAAE,GAAG,CAAC;IACb,gBAAgB,EAAE,MAAM,CAAC;IACzB,mBAAmB,EAAE,MAAM,CAAC;gBAG1B,OAAO,EAAE,GAAG,EACZ,OAAO,EAAE,MAAM,EAAE,EACjB,YAAY,UAAQ,EACpB,gBAAgB,SAA4B;IAiB9C,mBAAmB;IAInB,mBAAmB,CAAC,UAAU,EAAE,MAAM;IAKtC,UAAU,CAAC,GAAG,OAAO,EAAE,MAAM,EAAE;IAQ/B,SAAS,CAAC,QAAQ,EAAE,MAAM,EAAE,WAAW,UAAQ,EAAE,aAAa,UAAQ;IAqBtE,UAAU,CAAC,GAAG,OAAO,EAAE,MAAM,EAAE;IAgB/B,QAAQ,CAAC,MAAM,EAAE,MAAM,EAAE,GAAG,EAAE,MAAM,EAAE,GAAG,EAAE,GAAG;IAM9C,KAAK,CAAC,MAAM,EAAE,MAAM,EAAE,UAAU,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG;IAuB/C,kBAAkB,CAAC,MAAM,EAAE,MAAM,EAAE,MAAM,SAAK;IAU9C,iBAAiB,CAAC,MAAM,EAAE,MAAM,EAAE,MAAM,SAAK;IAU7C,cAAc,CAAC,MAAM,EAAE,MAAM,EAAE,MAAM,SAAK;IAM1C,YAAY,CAAC,EAAE,MAAW,EAAE,MAAW,EAAE,SAAgB,EAAE;;;;KAAA;IAuC3D,mBAAmB,CACjB,MAAM,EAAE,MAAM,EACd,EAAE,MAAW,EAAE,SAAiB,EAAE,SAAgB,EAAE,UAAkB,EAAE;;;;;KAAA;IAiB1E,YAAY,CAAC,MAAM,EAAE,MAAM,EAAE,MAAM,SAAK,EAAE,MAAM,UAAQ;IAgBxD,WAAW,CAAC,MAAM,EAAE,MAAM,EAAE,MAAM,SAAK;IAgBvC,YAAY,CAAC,MAAM,EAAE,MAAM;IAgB3B,cAAc,CAAC,MAAM,EAAE,MAAM;IAgB7B,WAAW,CAAC,MAAM,EAAE,MAAM,EAAE,MAAM,SAAK,EAAE,KAAK,UAAQ;IA0BtD,UAAU,CAAC,MAAM,EAAE,MAAM,EAAE,MAAM,SAAK,EAAE,KAAK,UAAQ;IAgBrD,UAAU,CAAC,MAAM,EAAE,MAAM,EAAE,QAAQ,EAAE,GAAG,EAAE,OAAO,EAAE,GAAG,EAAE,SAAS,UAAQ;IASzE,eAAe,CACb,MAAM,EAAE,MAAM,EACd,WAAW,UAAQ,EACnB,uBAAuB,UAAQ;IA2DjC,uBAAuB,CAAC,MAAM,EAAE,MAAM,EAAE,MAAM,SAAK;IASnD,qBAAqB,CAAC,QAAQ,EAAE,MAAM;IAgBtC,eAAe,CAAC,MAAM,EAAE,MAAM;IAO9B,iBAAiB,CAAC,KAAK,EAAE,GAAG;IAgB5B,wBAAwB,CAAC,KAAK,EAAE,GAAG,EAAE,QAAQ,UAAQ;IA2BrD,sBAAsB,CAAC,IAAI,EAAE,GAAG,EAAE,MAAM,EAAE,GAAG;IA6C7C,4BAA4B,CAAC,MAAM,EAAE,MAAM;IAY3C,0BAA0B,CAAC,MAAM,EAAE,MAAM;CA+C1C;AAED,eAAO,MAAM,kBAAkB,EAAE,aAMhC,CAAC;AAEF,eAAO,MAAM,WAAW,EAAE,aAKzB,CAAC;AAEF,eAAO,MAAM,gBAAgB,EAAE,aAM9B,CAAC;AAEF,eAAO,MAAM,WAAW,YAAY,CAAC;AAErC,wBAAgB,iBAAiB,CAC/B,MAAM,EAAE,GAAG,EACX,MAAM,EAAE,GAAG,EACX,UAAU,SAA4B;;EAOvC"}
1
+ {"version":3,"file":"styles.d.ts","sourceRoot":"","sources":["../../src/elements/styles.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,17 @@
1
+ export declare const LABEL_INHERITED_FONT_KEYS: readonly ["font_family", "font_weight", "font_size", "font_color", "font_italic", "line_height", "letter_spacing", "text_transform"];
2
+ export declare const LABEL_TEXT_ALIGN_DEFAULT = "left";
3
+ export declare const LABEL_GAP_DEFAULT = 10;
4
+ export declare const LABEL_GAP_DEFAULT_CHECKBOX = 0;
5
+ export declare function getLabelGapDefault(fieldType?: string): number;
6
+ /**
7
+ * Given a field's resolved style (containing both the field's `font_*` keys and
8
+ * any explicitly-set `label_*` keys), return the concrete `label_*` values a UI
9
+ * should display. Font props fall back to the field's value when the label key is
10
+ * unset; text-align and gap fall back to the renderer's forced defaults.
11
+ *
12
+ * `opts.fieldType` is needed only to resolve the gap default (checkbox has none).
13
+ */
14
+ export declare function resolveLabelStyle(style?: Record<string, any>, opts?: {
15
+ fieldType?: string;
16
+ }): Record<string, any>;
17
+ //# sourceMappingURL=labelStyleResolver.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"labelStyleResolver.d.ts","sourceRoot":"","sources":["../../../src/elements/utils/labelStyleResolver.ts"],"names":[],"mappings":"AAWA,eAAO,MAAM,yBAAyB,sIAS5B,CAAC;AAEX,eAAO,MAAM,wBAAwB,SAAS,CAAC;AAI/C,eAAO,MAAM,iBAAiB,KAAK,CAAC;AACpC,eAAO,MAAM,0BAA0B,IAAI,CAAC;AAE5C,wBAAgB,kBAAkB,CAAC,SAAS,CAAC,EAAE,MAAM,GAAG,MAAM,CAI7D;AAED;;;;;;;GAOG;AACH,wBAAgB,iBAAiB,CAC/B,KAAK,GAAE,MAAM,CAAC,MAAM,EAAE,GAAG,CAAM,EAC/B,IAAI,GAAE;IAAE,SAAS,CAAC,EAAE,MAAM,CAAA;CAAO,GAChC,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,CAQrB"}