@flamingo-stack/openframe-frontend-core 0.0.227 → 0.0.228

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 (87) hide show
  1. package/dist/{chunk-E3DB4D43.cjs → chunk-6PWR6K2K.cjs} +9 -9
  2. package/dist/{chunk-E3DB4D43.cjs.map → chunk-6PWR6K2K.cjs.map} +1 -1
  3. package/dist/{chunk-K252FYE5.js → chunk-G6EKFWIC.js} +2213 -2192
  4. package/dist/chunk-G6EKFWIC.js.map +1 -0
  5. package/dist/{chunk-JUWPBMQM.cjs → chunk-GYRRSOTR.cjs} +50 -2
  6. package/dist/chunk-GYRRSOTR.cjs.map +1 -0
  7. package/dist/{chunk-LEM4FLCU.cjs → chunk-HLKC2OBT.cjs} +12 -12
  8. package/dist/{chunk-LEM4FLCU.cjs.map → chunk-HLKC2OBT.cjs.map} +1 -1
  9. package/dist/{chunk-QFC725WU.cjs → chunk-L65QBRV5.cjs} +59 -38
  10. package/dist/chunk-L65QBRV5.cjs.map +1 -0
  11. package/dist/{chunk-53EA4QPZ.js → chunk-LLTUSEHF.js} +50 -2
  12. package/dist/chunk-LLTUSEHF.js.map +1 -0
  13. package/dist/{chunk-CUBRHI6D.js → chunk-LWJJP64X.js} +3 -3
  14. package/dist/{chunk-X3KKG6IU.js → chunk-MT5GO55P.js} +2 -2
  15. package/dist/{chunk-EURLSRHW.js → chunk-QLOU4BDD.js} +10 -5
  16. package/dist/chunk-QLOU4BDD.js.map +1 -0
  17. package/dist/{chunk-HO2VEMEX.cjs → chunk-TAWNR7IW.cjs} +32 -27
  18. package/dist/chunk-TAWNR7IW.cjs.map +1 -0
  19. package/dist/{chunk-E3WJQQGW.cjs → chunk-VXYYZFVV.cjs} +7 -7
  20. package/dist/{chunk-E3WJQQGW.cjs.map → chunk-VXYYZFVV.cjs.map} +1 -1
  21. package/dist/{chunk-YE62NF6I.js → chunk-WLCBY6ZO.js} +2 -2
  22. package/dist/components/chat/index.cjs +3 -3
  23. package/dist/components/chat/index.js +2 -2
  24. package/dist/components/contact/contact-form.d.ts.map +1 -1
  25. package/dist/components/contact/index.cjs +4 -4
  26. package/dist/components/contact/index.js +3 -3
  27. package/dist/components/features/index.cjs +3 -3
  28. package/dist/components/features/index.js +2 -2
  29. package/dist/components/features/waitlist-form.d.ts +6 -3
  30. package/dist/components/features/waitlist-form.d.ts.map +1 -1
  31. package/dist/components/index.cjs +81 -79
  32. package/dist/components/index.cjs.map +1 -1
  33. package/dist/components/index.js +7 -5
  34. package/dist/components/index.js.map +1 -1
  35. package/dist/components/navigation/index.cjs +3 -3
  36. package/dist/components/navigation/index.js +2 -2
  37. package/dist/components/onboarding-guides/index.cjs +26 -26
  38. package/dist/components/onboarding-guides/index.js +4 -4
  39. package/dist/components/tickets/index.cjs +67 -67
  40. package/dist/components/tickets/index.js +5 -5
  41. package/dist/components/ui/honeypot-field.d.ts +18 -0
  42. package/dist/components/ui/honeypot-field.d.ts.map +1 -0
  43. package/dist/components/ui/index.cjs +5 -3
  44. package/dist/components/ui/index.cjs.map +1 -1
  45. package/dist/components/ui/index.d.ts +1 -0
  46. package/dist/components/ui/index.d.ts.map +1 -1
  47. package/dist/components/ui/index.js +4 -2
  48. package/dist/hooks/index.cjs +4 -2
  49. package/dist/hooks/index.cjs.map +1 -1
  50. package/dist/hooks/index.d.ts +1 -0
  51. package/dist/hooks/index.d.ts.map +1 -1
  52. package/dist/hooks/index.js +3 -1
  53. package/dist/hooks/use-humanity-signals.d.ts +26 -0
  54. package/dist/hooks/use-humanity-signals.d.ts.map +1 -0
  55. package/dist/index.cjs +19 -3
  56. package/dist/index.cjs.map +1 -1
  57. package/dist/index.js +18 -2
  58. package/dist/utils/humanity-signals.cjs +30 -0
  59. package/dist/utils/humanity-signals.cjs.map +1 -0
  60. package/dist/utils/humanity-signals.d.ts +45 -0
  61. package/dist/utils/humanity-signals.d.ts.map +1 -0
  62. package/dist/utils/humanity-signals.js +23 -0
  63. package/dist/utils/humanity-signals.js.map +1 -0
  64. package/dist/utils/index.cjs +26 -0
  65. package/dist/utils/index.cjs.map +1 -1
  66. package/dist/utils/index.d.ts +1 -0
  67. package/dist/utils/index.d.ts.map +1 -1
  68. package/dist/utils/index.js +21 -1
  69. package/dist/utils/index.js.map +1 -1
  70. package/package.json +7 -1
  71. package/src/components/contact/contact-form.tsx +11 -1
  72. package/src/components/features/waitlist-form.tsx +14 -4
  73. package/src/components/ui/honeypot-field.tsx +30 -0
  74. package/src/components/ui/index.ts +1 -0
  75. package/src/hooks/index.ts +4 -0
  76. package/src/hooks/use-humanity-signals.ts +47 -0
  77. package/src/utils/humanity-signals.ts +57 -0
  78. package/src/utils/index.ts +6 -0
  79. package/dist/chunk-53EA4QPZ.js.map +0 -1
  80. package/dist/chunk-EURLSRHW.js.map +0 -1
  81. package/dist/chunk-HO2VEMEX.cjs.map +0 -1
  82. package/dist/chunk-JUWPBMQM.cjs.map +0 -1
  83. package/dist/chunk-K252FYE5.js.map +0 -1
  84. package/dist/chunk-QFC725WU.cjs.map +0 -1
  85. /package/dist/{chunk-CUBRHI6D.js.map → chunk-LWJJP64X.js.map} +0 -0
  86. /package/dist/{chunk-X3KKG6IU.js.map → chunk-MT5GO55P.js.map} +0 -0
  87. /package/dist/{chunk-YE62NF6I.js.map → chunk-WLCBY6ZO.js.map} +0 -0
@@ -2967,6 +2967,47 @@ function useOgPlaceholder(buildUrl, title, siteName = "", enabled = true, aspect
2967
2967
  }, [buildUrl, title, siteName, enabled, aspect]);
2968
2968
  }
2969
2969
 
2970
+ // src/hooks/use-humanity-signals.ts
2971
+ import { useCallback as useCallback13, useRef as useRef12 } from "react";
2972
+
2973
+ // src/utils/humanity-signals.ts
2974
+ var HONEYPOT_FIELD = "contact_url_confirm";
2975
+ var ELAPSED_MS_FIELD = "form_elapsed_ms";
2976
+ var DEFAULT_MIN_FILL_MS = 700;
2977
+ function extractHumanitySignals(body) {
2978
+ const b = body ?? {};
2979
+ const rawHp = b[HONEYPOT_FIELD];
2980
+ const honeypot = rawHp == null ? "" : String(rawHp);
2981
+ const rawMs = b[ELAPSED_MS_FIELD];
2982
+ const elapsedMs = typeof rawMs === "number" && Number.isFinite(rawMs) ? rawMs : null;
2983
+ return { honeypot, elapsedMs };
2984
+ }
2985
+ function evaluateHumanitySignals(body, opts) {
2986
+ const { honeypot, elapsedMs } = extractHumanitySignals(body);
2987
+ if (honeypot.trim() !== "") return { ok: false, reason: "honeypot" };
2988
+ if (elapsedMs !== null && elapsedMs < opts.minFillMs) return { ok: false, reason: "too_fast" };
2989
+ return { ok: true };
2990
+ }
2991
+ var splitCsvEnv = (s) => s?.split(",").map((t) => t.trim()).filter(Boolean) ?? [];
2992
+
2993
+ // src/hooks/use-humanity-signals.ts
2994
+ function useHumanitySignals() {
2995
+ const ref = useRef12(null);
2996
+ const mountedAt = useRef12(typeof performance !== "undefined" ? performance.now() : 0);
2997
+ const getSignals = useCallback13(
2998
+ () => ({
2999
+ [HONEYPOT_FIELD]: ref.current?.value ?? "",
3000
+ [ELAPSED_MS_FIELD]: typeof performance !== "undefined" ? Math.round(performance.now() - mountedAt.current) : 0
3001
+ }),
3002
+ []
3003
+ );
3004
+ const resetSignals = useCallback13(() => {
3005
+ if (ref.current) ref.current.value = "";
3006
+ if (typeof performance !== "undefined") mountedAt.current = performance.now();
3007
+ }, []);
3008
+ return { honeypotInputProps: { ref, name: HONEYPOT_FIELD }, getSignals, resetSignals };
3009
+ }
3010
+
2970
3011
  export {
2971
3012
  useAutoLimitTags,
2972
3013
  useDebounce,
@@ -3053,6 +3094,13 @@ export {
3053
3094
  consumeAccessCode,
3054
3095
  validateAndConsumeAccessCode,
3055
3096
  useAccessCodeIntegration,
3056
- useOgPlaceholder
3097
+ useOgPlaceholder,
3098
+ HONEYPOT_FIELD,
3099
+ ELAPSED_MS_FIELD,
3100
+ DEFAULT_MIN_FILL_MS,
3101
+ extractHumanitySignals,
3102
+ evaluateHumanitySignals,
3103
+ splitCsvEnv,
3104
+ useHumanitySignals
3057
3105
  };
3058
- //# sourceMappingURL=chunk-53EA4QPZ.js.map
3106
+ //# sourceMappingURL=chunk-LLTUSEHF.js.map