@pixelated-tech/components 3.11.0 → 3.11.2

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.
@@ -158,7 +158,10 @@ FormInput.propTypes = {
158
158
  maxLength: PropTypes.string,
159
159
  placeholder: PropTypes.string,
160
160
  autoComplete: PropTypes.string,
161
+ tabIndex: PropTypes.number,
162
+ style: PropTypes.object,
161
163
  "aria-label": PropTypes.string,
164
+ "aria-hidden": PropTypes.string,
162
165
  min: PropTypes.string,
163
166
  max: PropTypes.string,
164
167
  step: PropTypes.string,
@@ -466,5 +469,30 @@ FormFieldset.propTypes = {};
466
469
  export function FormFieldset(props) {
467
470
  return (_jsx(_Fragment, {}));
468
471
  }
472
+ /*
473
+ FormHoneypot — MVP
474
+ - id: "winnie" (canonical)
475
+ - default name: "website"
476
+ - inline off-screen styling: { position: 'absolute', top: '-9999px' }
477
+ - aria-hidden + tabIndex -1 + autocomplete="off"
478
+ - no label / no validation / no required
479
+ */
480
+ FormHoneypot.propTypes = {
481
+ id: PropTypes.string.isRequired,
482
+ name: PropTypes.string,
483
+ };
484
+ export function FormHoneypot({ id = "winnie", name }) {
485
+ const hpProps = {
486
+ type: 'text',
487
+ id: "winnie",
488
+ name: name || 'website',
489
+ defaultValue: null,
490
+ autoComplete: 'off',
491
+ 'aria-hidden': 'true',
492
+ tabIndex: -1,
493
+ style: { position: 'absolute', top: '-9999px' },
494
+ };
495
+ return (_jsx(FormInput, { ...hpProps }));
496
+ }
469
497
  // Re-export FontSelector for use in forms
470
498
  export { FontSelector, CompoundFontSelector };
@@ -7,16 +7,35 @@ subject: ""
7
7
  }
8
8
  */
9
9
  export async function emailFormData(e, callback) {
10
+ const debug = false;
10
11
  // const sendmail_api = "https://nlbqdrixmj.execute-api.us-east-2.amazonaws.com/default/sendmail";
11
12
  const sendmail_api = "https://sendmail.pixelated.tech/default/sendmail";
12
13
  const target = e.target;
13
14
  const myform = document.getElementById(target.id);
14
- e.preventDefault();
15
+ e.preventDefault?.();
15
16
  const myFormData = {};
16
17
  const formData = new FormData(myform);
17
18
  for (const [key, value] of formData.entries()) {
18
19
  myFormData[key] = value;
19
20
  }
21
+ const hpField = myform?.elements.namedItem('winnie');
22
+ const hpFieldVal = hpField?.value.toString();
23
+ // If either DOM or FormData indicate a filled honeypot, silently drop the submission.
24
+ if ((hpField && hpFieldVal.trim())) {
25
+ // Prevent native navigation where possible and mirror success path.
26
+ try {
27
+ e?.preventDefault?.();
28
+ }
29
+ catch (err) {
30
+ if (debug)
31
+ console.debug('preventDefault failed in honeypot guard', err);
32
+ }
33
+ if (debug)
34
+ console.info('honeypot triggered — dropping submit');
35
+ // Ensure callback is invoked so calling code shows the same UX as a normal submit
36
+ callback(e);
37
+ return;
38
+ }
20
39
  myFormData.Date = new Date().toLocaleDateString();
21
40
  myFormData.Status = "Submitted";
22
41
  await fetch(sendmail_api, {
@@ -34,6 +53,8 @@ export async function emailFormData(e, callback) {
34
53
  }
35
54
  return response.json();
36
55
  });
56
+ if (debug)
57
+ console.debug('emailFormData — submission data:', myFormData);
37
58
  callback(e);
38
59
  }
39
60
  export async function emailJSON(jsonData, callback) {
@@ -43,6 +64,13 @@ export async function emailJSON(jsonData, callback) {
43
64
  for (const [key, value] of Object.entries(jsonData)) {
44
65
  myJsonData[key] = value;
45
66
  }
67
+ // MVP honeypot guard: check both the canonical id/key 'winnie' and the
68
+ // FormHoneypot default name 'website' to cover both DOM- and JSON-based calls.
69
+ if (myJsonData['winnie'] || myJsonData['website']) {
70
+ if (callback)
71
+ callback();
72
+ return;
73
+ }
46
74
  myJsonData.Date = new Date().toLocaleDateString();
47
75
  myJsonData.Status = "Submitted";
48
76
  await fetch(sendmail_api, {
@@ -26,6 +26,9 @@ function FormEngineInner(props) {
26
26
  console.log("Generating Form Props");
27
27
  // Create a clean copy without non-serializable properties
28
28
  const { formData, onSubmitHandler, ...formProps } = props;
29
+ // Safety: default to POST to avoid accidental GET navigation (prevents query leakage)
30
+ if (!formProps.method)
31
+ formProps.method = 'post';
29
32
  return formProps;
30
33
  }
31
34
  generateNewFields.propTypes = {
@@ -1 +1 @@
1
- pxl:v1:3f481a2cd7f5ad57638e8bee:855f0159f90b4111272402268a590c55:0bb71ae7ab631b7113b6af9bc361b176295904022f96cd6976d6d733472eef8c82e55e0b974e4baa74e82b93c695add88152fda55bf6273532b41acda35af8d326b2962ad5180a25d42486a2581597d85b2d530cf1248e43df471ba83f9d924ab279856d3db1060cc5e5d7b6b678f3f390d815fe3f3ab9ef90f57e1989d0986d4fd3a45bd44b24ced99f19f1a1c33a5e57446b94d991a65d498c2d9dc3e7f24ceb86ca890d24e951d74ff709460f4a9891568f2673e348653d6f4ed3d695456e25f19b2c86851b2b63d0b8e816a36cf0b72707352fd074a020fd0d38be126372980bc9bd3dba99bc69fb0bc7fd0ed8bb16f54cbbfcda01a424e7141d44874e372b826142e44a430f6ae63ad2d1898777a76ab249df5eb1f1f2b75a0980977d7b6e203d2957a654a56d73f3048a0c3335efee7406ac3957a14afc5da6880226a762c075b5d9bf022ad4dc76764259c562e3ec7f46ab1d30318e6798899390f0ae0c7c971af758360d38e07fdb431319a282fb6ac9db7bd5d61f794b667e25284324ce2f38ea6b6758f686883d7d357403dff548190206af30d042e43881e5db3e8922edf7f3404dc52113a752dc14b10c31bcf0830d22388c3a6348f15922dd78ef356c0719bcd0ace9feda62f4b903c7cdd03a6ac96f296bf2f29881696ea125cfe2da984aca88020f0a3c96f1b5d641fc32b0d7c3850657762eb2dd151d0a7f4e774e0e228cbd86f4691c44e3d205af4f659b66da5f63dc9593f7887b8606eb5438e1436124101304cedc19fdb8deb56a8da925ff89f43acb2a7fc1c01c14427048aee2e7e01a6722ccc0dc49c0b77feb5c7ed9f55df85118902caafa981bac1397b931a7e9ce1150a5c8278f9d1217297a08eda88fdc95c69f62f7f0ed5d54e944b924d88c2c9488f06b715a9f07f7cc673dc704b90c353c26afcf3728f8f4707d47b8ef883a00feface769fdba93988ac2a57579b5b26160f2d8a51437365554560c351d6d1620d5334b099761c3d7acf463016b765faa45ca19bd384de2612608a41969e5ad2384a22defae9c876111fd700b832682cdc12a57218f11057c6f87c226a1de74f9f163305a8fecf6d2f5a958727620a4bbee2738ae4fc4c975a3162d19e9afdfe2a3cf4d1922959a3f7006e123b212ef7f00cc71c73c44bffb8609f72351aee8e37ca67214408762983c4cc03e5c5ec958208f695c46199db6f10a4b96f5837eec22ca9ae2a68ce2b04c991b8ff91c9cf553a65d30030ffc795e24ead8982488abafa11b23ade4d2fcf72ffea2995f1e4634584ddefe6a7056f13312915d454f4a1a5580398cf1330346debe07c0770069b257e4ad42930fd9c0af406bd4e3a001f8a08cbc6bee058b0688d620f4dce2d2d26626f3c872965b6dece263a27a3407d701c0174c3577dcb914af8fbecdb8c7c6895d920df15f49b3f8d7494674912393e26c3842e5caec83a3c2537390a5f27db328af1c0f84c6fcd689c87ee1d415cc4abf9b778c2a74a41c2218fc983aa1b8ed73538ed5efe8fae9535776b4d0943a33a8a942ecb66b7b2beb9db037d1b0f25489316077718d38d3fa27666c25314f04763d5993efbf7112fd70f4ecdc254c6dc368a8bbef4724014edb3ee74f0cbc9f7ed2907cb8334ff9bebca990df0522b3af52d931b034adda04b333b8ef484b951b0796c2904852b8f90e74e9163179ef2c69727edb07ffa87e82176a12ed7a5e54cb88104e7fb0cd9abd9ad36ff505a43d649b2912d565c55d8c50a720c83a3c15871b7a20974416cdeb5fa66c233fba989c4892e6af28a678418340e4c056958ab23eac62b8cbeb02a54a557555bc6333df228fd65d19141e1d84c0838b050ee77ccc5c7ae7e20b8cf2797444051882d26a106491c5d617a9a4391aac36a8cd317cf8be339f91785441df7d5b39005ce862c5d8958199aec9fa8e483945b4eef9edc795ed5bb76c58d0767cadf35dc99b910a6b29783c610eeb13d23ba33cd2df2a435b41fceb2bb9d8fe181b7efdb219d94a6b8f5d62b1258200d82bec1dcc64ec10af2ca7598646e82cbf4297c98fdcba0e729db3ccd547d734696691b6d36c41894784d0309402e52cde4261029821a09ed0d084478faaa10bf4354c29289cd857b13576fbfeb8b1dd934c8d20eff3fa43b95174bf2e2b14e7b8429907e595d90cf9e7a770273d95cc0debe84471e2d4d84136186c9382c8d4ee637d0f251fe62364806c315983e2c6502d268a2e6a75f37150b3d851dc50ca02dfb0117154633a38a51f9247d5eea4163186b21fa19926a89f63755aeaf62f98ab840c15afde3b011e5ba08e7931afa38d4a48b932723de97e5c8ce8e19087dc818797aa01fa542de7e5edbd2bec792e59b29ff81377ac305a9b8182e70af480b49a45050f79db912297cfc94b94d78b520fd72ecdcac4cc24a79f902d71cccc7d69b9e97ca3db8e430f94b40deacff153230ecece173c25249d673ab1fb45e3b96c7610f51bf456007ff1762eacb0c3ddb9822a6bc322709a963230ac7a836e27dc9bd39bc77482dfb2f1816fab10f99edb0d8c2828e23ebc5eb63946c8af65d41ec66ff80f062b97ae98dd5500f36aeaeb04c3e920907b0004aa30a719c7e4c5958f971a1a21ad77a775cb34ecd31a0f6a42a17c66f4717cda306777aa60d3414e2121807aa3d1167c7bd37839fb5cc32a293b86f4fa49ce751d926cd93bcacf829dee86ebfc83f1d0f7482728446b01e61abbe6169c6132cb9aa0494286e8713f82e26de0f909abeab2b06c0c8ba9acc466b078f9e18ee99779ebcfa7bb3426eed70b8d1d1118bd71d5dbd65034ccb7eed28bbd3963b5e478a4e13abd5b652b324d44178968d2da2dade17656deff8c22e456368ab1b737a01de3393e9523fa59fbec9cde95a594a69940ff91f63cd657ae0855d07e364ce7036801a3c5646ea2e380096cda97045f2e7f180b428fdcb2bbf59dbee200a2711f6c26c3c4776fdafd90e3d29aedaee47552daac8e0abca599757b38579a787eef6deee54d6eb51b567b23dbb59e959dd016b1c9b2a505472d30f7d262273933ffb8494f8c05369cf09806c5682eea402f627b399a899c48e563b50e87da9af357cabfb3b08d6a594bb2d7961c4d0c3a39094af2048b813999ebe006c11f61afe95cea05b046191079325570245c6055351030f4168c2b26ad06fa9476272eec40621d4511ac615c83a704113d976dc7cf9752251f87628ae8a3d2b7eaea92fe492ac3f80ad5db06487514e89b3335b81799e4a8937c88ebef5901a2959b1f72ddeaa3bf350cdf1cd29715d0aa9fadd874f505070bb9eb3e3ecc42147ba51e7bd6f45c20ac5aafd1088115907a674c267208d08268c991677b365dab96235134e866e9ea8bcfc2a48b130b78fc2b39c412479b24bf91b7c3525f447e9d3cea3902fdfaacac45500d03971a7f7a056e976c1a101d6c0011f99dc23e0c1a215ecfd3cd146b2d4cbe49ba950dd1a5c2675a1ab4ef6f6191e12e3819a725fac94018a44e24c50e747ed198f112e291f4d3bc61f06655abbf1e533878cee855bcf9cb44c5ec18c384ad81026282345eec371aab5808f2063faea69d0971006455f3d7b10e14d808c7168534b0302efd787ae1ee073b6ce35c578b8c67835b733a6096f01190cb043cd6a3241923eeb36568163e7a53f75800077b2be6ba5dc2d7f79a38a2614b19a612443bfb48fde9fbe3b464b49a0f95dd27c73800f06e952e04defa86b76c4e26c9251832c0b4ce8e281f85f6d0fb702ec2fa4a8e919cc7cd81881f3e12c076fcc5b540f30f600e2a1f06f0a9e21841fdc8f4a53062239c8ad83a9c27802d8710d0e1e5156fdc05d4f0de08f5900cd58a51de26c0f3b887ba5011c9cc3faa244b971d573d3c220768425576b98cc637c823084fd72dade3ec8708d350e822bb738edf9c24ac8992ab2b61f41758ff64c6eba52a6bc6b46e9b112adf808d8f4f35e0c83298ff7100d832e574700ca0a4838a671ddf9b13f544781aa2106b116912df6c5975ab71593269597ac8d52bfc3259b6c00f4247f8468bc579990886ca867a2019687dbf33f3a323b3d2e55b795d6d8d4ec7e96c35c94534fac4ebfbbccada5187d21b4c192e86f999e8cc4dad4fceb9b35a07104e7433e1e9deb891533a57b0a97ec630ed8c0028ea511917fa5f49c71eb330cb9e7cb134e81ec09d30994dd87b4be8aa2b37933267a84ac2ae8b3a1ac45de61dec9c52061d7ebc8be55d9c59c47f883ca4d1176aa33be527c57eef7925850dfa55373c37a085c8b36564fbab9ead5b71e17a6c84e1e7671fbc78ec37333684a6a32f8ff212346178fa7d40cca347bf59aeb5342f373a05b8228efcdb7c4e155ce6f11793f33edab5c91f17072a4c8887c45669ffff60289710e544c95e7f7a9faabff8d2a80a3edbf238bc326384880cb0792f276fb065c9e906332d7fea0fff599f93b1ecba729ad25088d69a2c598bdf393ccba9c57fe975dc39eec2300d94fcdf4625ffeb025c5abf5d92c41022ec6baa2a856444fb5b652fc3828d886781275aab5fa67da55a4c4a07c84b3b07fe066f2f74f9407c51a4dcc0ac1b62e33dd478dc342efd89b3da289662e33392ec157d054666b1f8ea3ceb304e0d0fbfab2d25759ad1ee93cf85d0296a0884d4274f4ab318123fe694c1915f8fbd0a1953e5c09b4ea1da5503eff6628ed7b053d788766ddc02850fa5b00333e26a7fc221269e1b28fb1c65092a700369a681a61937b0016c6e65fa26c3991dcf68f899ae669fadef453f6a54168ab03e8918a88f208a8f45491bb7acd1ea38132f2dbdcd2f612bd1d6540d67c7c0b9bc391708c4344bb6a225136b2e60b00b71f53c9966fcf3e6434c998a8ecb565f47a28099b9e2291e66dfe53ee2f0f6ef6e3e214892bba0d0e8c8490391e29efdd10a93b36ed18f43c744553e82d89cf7e3bb1fa041aef7f76f4f1f1f3d695dca352dbd1b6814c0fa6023dced8caa314261869933b5241532425357787c4113a2c06c0715d7130fde3ec4b2dea5c818b563ef6c8ed82e2ff531239d81b175a366bc7787804734bb65a98e18128310ea7c7d5b08e67a157ad4eb56eaf65fa32b9ed2ecd04474b270f691f1dec4b3700ed771b59cf68a01ad1bc1fbd44d25290b2789fcbc904
1
+ pxl:v1:9b93a0054684e42a36e1bf4c:4349f4740c87bf559c74977e3384cc2a:76c5d9a21ff4b084598fe6b4b3a16e882e1791a7684ce0d84c779c1618f3e58b4e313e92ebf9a65343d9d3d6742fdbe39235b350ad2dec57fc4d40e61f763b383e156f194f2e9d4c0722c0888dcc1d72243993f6967bef84e373d6872ba68def35a13bf92be5dea221982ef82d6bb629dd9620bd5fa7021e1947f73e4c781918107eec08cf57c8245ec08f9dcfedf41d7caca6f17e58c51d529b86a2b443e7c75a606c90bff2ae26bc5311741f531b6c02335d65c41b94458c0379470ead213b99569fe8e37d8e390c392792901e1e092e1ccbad533b636f0e0ec22c78856c404f487a85205f1506d7fafc651dd0cf5cb5916a8bd9f245dbf24d4b830beb6788c8d3ac50e547138bed3f814cc7200d6a625af83c7b1cd809d0f586376dd8c324ca702bc7f9c63f6552d7e122d3d0d3fb3b3fa09c222b65079882a3b6ec4e3678c152d98ffbe0d2808c5124c63ed86d64ecfc01a443c7401d28585a0a4344909758ae34f32ca9a773e19706517b3116dd66a70da629cc577cc7d82b268846c6e1afdb4a6e93ed6157345a15508dd15cfab86adc6effb40136b0d427410d25d2e44e477d35b19f599ac247f6e774ed6c5686092a7529b8901e1b925d9302219bed92a395a22090887e333e785ed66be1b5472cd8f673b7aa383be6385d1c8112c49ea85f0829969a11a59d6e52403a8b83e189f64409ca408ee045a9e6f9a6a9b83c69d108b8e6f93fbd417ac80ee8fab2b08183c93582871f155623c0adcd0711df3e8d52b195deeb7581ac4e12be304a1accee35ef8b1ffb32f460b2afba7ff5193b009ed1172c08d111e9ca6d6b7532a5c40ac8dd2316ec7dd4a82ed90837afbc96e6289cf442d9b14ac2183c4aded31bb88adfdc7935289493806e21566abf26f96e82ab633e70ae88b0fbf263d16e2bb97dcf85b7d1ea4254c3037bbbe006060ff415f5021bbd18c94379b7de8346aa91b962637fe2c783a2b314d6b729149be633b1f6ce3b3bc652b86fba4064bda7ec00d32c686fe85cc8552004b409dbfce9bcd266ca7e05d00b93f8c6b6bd9d7fb8c2ed68ecf986d1493528d5f92830c20c813a597342ac630c15830c0e7d786c92351492d11fd86340840c58ecd8086306a46ef4404e5b3bdb1d873395b8d12fe043dac7808b023b9b1109ba3c5a5d78193558f1cff977d2b8ea422818114c52722b1e838dbaa43052ddb7104a5d653142ccec4be43db7b2eb450e25c70a37ae0f7ccccc085f85e698ba60787204ec9f9e26cd6d8bd6e40d2cff06c7b42e3b9449d283e9d55e4954e2a8957fddd59b26338882fcd1126300d073c0cf93a99861fd23dff6ad5c5ed536ca8a9682a2e63bd89c8daf4b8dd9936e3fe2493b05db57e6cd92bcafc9c11343ef1475871f5f57cfedc9bde6a21d06f5113b25c68f5ae85da0cb1010cfd85fad9cea3ee9334c7351b2b8fd71c0a60021284a1b8acbe8c1212755c85dd872ad614618f97e28b6513c9cf0ce670a83ce4107ce20d74152c303b2fb27bddf22baf522832da674dfdfb154269a694cac7cbdc1ade1d924915575ab0613d6aeecd638993f8a9fadfa77e62db0f0caace4c5342849ccff72df1f19700892bb86da51f9ecb02fcce2105802bdf1a22c0c5ef7aace31f19c8ac9472be539f4465827984624a945738879d1edb862cd6be7619128ccf3275c6bcbde10aa85c59376cf1712b2f8ad9942223cf436849918b4e591cb77a18fa0b9c93264d8a621163d15b703d10cd80cd397091fc7b63f3ec12b2c2c88f7dff0a06f8c62c90748c85ac8055e2f412021c3fd991d2a7a4f0f39f90ccb850a55929845983c196b9eb7dea2552beca53eaf87e9a3cf194d70c320143baca93190ef55bdd43894a743f55cd8ee425709e69debff9cb3f5cf48a3431b6aa181e86b081b6c2c7764526f469fc324ddd820db8f874e56dd07bb5c3a06a5285f5983515ea367f405a7f1af09296a43444966d2c94fe554edc2e9afb0d7af1fd08958a3c8ce048afe83e158ec84ce8af8dad0649e1822d1531e75d605bcfad8da2f43b2ebde683d3283ade22e8c7dcc0d4653ff0f8ffd9c5f51887e147270471a15ef036a5bd1725e79b26f2f3905d42b45f422df7f37a99b86df1c6b9c680820d3d9211074b8b1f6ec71c44e272ec082a16a14ef47562b83849998587e5e1623770ff534897a56433d760b96d5ad936028a05f2199981e5a28ee38fce5f24e6a75fc956f485249fff260effaf6866b7ab5a9aef284352da444e87e68aa7f1e4964ecd4ec9572c7b7bdde3afc692e003f519dc1c6d7cee76ec2a113ea87e45b1025a102b65b1e4a874411f4f33c1facb1452fef8da2cce7b4b3074076b3c6ad33f07289e932a5652daa3514b983bf3dc57cbf4da25e53f66db56d8dc70e0660563fb8d427b978b7c3031cea35b6a4c57c51b81a36ab58d2a4b4743c016503eeefbc5df595484e17a2132729a0479c03bdb2d78531de988f1cd3caf532f73ed1a19050ea2c986b1ae8c1c3b9ebbd42d0a20c8ee107f891bcd4a51fdc912336f161dfb7c4528da8a0cc8c9dcd54f6ad856c5107bfe9e343df72a17bdc3bf62869eaf64c9699f16afe8a2b70b8f20a750a434c26f4db07c519cfc6ee003635d83790bfaef377d2b5a5e3337f5a302ff2aac19b04ff089fcfd0da6ee9123295ea7d97a4a89ded9d9d4b2a6a32633c64f93d46226b1c11a4ef4d4826f9b31596120d43174ca7bcd83cec94607b7e3c06acff1c1b5a08de0f7bf7de4c250ed5dbad94f1d6ac6bb456282d14e194b5467837c011c8bbd23d8db2b9e286309d831eadf829642355040fad9a81b02cd6b30fe7852a7095359b69d6cf91331577f7f673a73104a09c8bef95b72421556a324d7631d1b73997ba88d33d5c01669d7cf042b91ebb69be0283604dd4b9056cd9360c3a6dac5d9b49a7650c2aced38f8bf397b1bcf401a4dc6b16c5eddfe05c162136006e451b910aacc1f3298f8cf829bb9265289a16045ea1d8553cfa90ce3b02c0fa6f6cbc43a46a071c74e3c5d19caf4ee5f4377e09212536a79584046893b7df5aa678481cc1369516e71604c272337cb89b3f4e42ab321abcb9337da176f90346f06ff34a19377688ac337ea84e4b736b3c69e26270dc52df45d31e102d60a47c25180fdf4759bd5fbf341db9dfb3799bc4cdf5a64c9249dbd46aad212b64baf9a86ae83774afd995be9ca67c281f1fa9be8faee6594b4be68917069b39170f6b9fe500ccf362f12aa5623503bb8703969bff093450fc56ee9fd81b39fa0809f15fcdc1de3b3f1d498c88979b46f797a9c5190bb43a48a9a55c799d053a770ee6d284ca5dbc30bfc8ed43e6a7db9cecce3c8e2262a910d94a5fc3d9ab175dc30d9416a7e067e71371dd060484ff1271d77553091cebc41770959de3e8007aa1311705e9b6efb202d26b500363bb5968a283c1c9e8db5d622fbe46c0e59c2a12f1e0fce1f8f9bc042c92cfa357204bb7e6b40a5ceacdf8e67fc7dcaf44c315343b61e943bdc2d64f2fb4ff2908b45ba47a538dc0a58b35db969c718c2056c59d920c8a177ec75f9004ce34bc066085774c8ebb591621fd8bc77e008c652843ada84675320dfcefffe9c2b4ba65ca710fd73aa54c825615ced42421778303f50775a478c8c247e963d41129dca9b300a7ee205f20724635a58b7912bb94c8200383cd1beeefd843705d696cc514c104371e6c6df9c10f008d37b849626e37e1f633b10a183722d56142c6c00f1c19a14583250bcc6b1f1b16b5b71ef0da418618ccd9d2a2491936ce8ef72cec3d9307cd7331ad458f5d776a4d3159afdc130674d3a290e7a30f459ded0d55bcd73a96d7d13ddb02fa670e13be0b3aa66177f569f9aed094dfa43b91b3e295127b2eff71aeaffd970d7c234bd2d345620ace82714f90eeb075ae1c5f97805591d42754d0b3ad8ff5c328e1350042e047f473abba89b5418df34641e4e4c1004f54c1c9496eb5dfd058f3b1f2f093b1c5af854b9c6a1af652b72a806dd0babe25c1008b3507a4c894b4cc73d900b18a4ba6ee480d72bbf6bf0a9f9e9605ef810659fa05d03f2730715512b23e026300575bdb3f866484914526d382aed34e69b7b8bf8d1c5b347078183ca58d332e2953977232caf4f819b1fcb4fa1d26f95c97d656541516581bcd52ac32f950c5721a12b5d7e56f64f2280712935bf42656671ed7422cae379783ec8f1101370f33848eecac624b11a761a3a9e224d89b0c59c64742e9bb29af7712692f5d8c9209187c5ea450f232852128c4ccfcb1769df4030b5355245f936605bff1a79b4155d7dd1cd9903d4740edd8a29f070f1d58a8fe8706e71a863dfeb0e268112fdb6df0f105adbb037a5c09a4e1b9ec6df09e2bd06323e99a78dcc4e3e5e16a81e9a989fd752fb649004c89c51175233210518e9eefb8e66427cd42a91b995b35fd70c40f44516154bbe104ea5cc75b2a394f09e0a38155e270828079da80edfbd78cc69cee894063524eff9f920100f5dbe68cde22aa07378824367b3e96af78549c11a992c6f6b902d65b96904fe502d7eadfbb14041215596f214b8c9c5278491401741a1e08691438e121a4dc654444358803f7cc24f71cc108c8b35d44002be7e31d5e6c971dac20035db116dcbb30a525d8006cc8128b8acd8288eb0f4b83b4b8f6863aa8f9e6046e5ad4b7d2d06f7b2f72df2b8931484bad852a4421399c25df3ad77e29be34094de4ecf8e1ad44fb87cb11a04344a96289a4031a6608fa38e735f2d847066be89ee18603f415b450ff64b9308ae4bd1cec7b1736fd2cf8cd2114a2794e89358a6720599c7661f35285b54f35e69f5e09b3994543febb588b5ea700f4f24026c719a71408e4202950aedab90bc3c73d767658e8fa710f682e73eecb3e976a7960acfcf207e4d0901ba7f8df5a1a5814d52a775daac952ebe04930ce7d00e8c4f3e84f9d723b434a6a94a4a7c0a7d63902ec9d2b866c4e1e8914bd30ddfc0bb54c7e0d752679f33764674001a777a97a7bd23c6d16944d0be4f30bd1f3139ad5b90c1e8d85f4350df83471ee8d706473b3ff82d44b283334eae7166265f3b210e2d6e4cc171669b056097ff5d378a238ad1ed9d453a98b981ba20ddcb3dc02e51f139fd3eeee2514ee23f37a70f9aa9abd15
@@ -46,7 +46,10 @@ export declare namespace FormInput {
46
46
  maxLength: PropTypes.Requireable<string>;
47
47
  placeholder: PropTypes.Requireable<string>;
48
48
  autoComplete: PropTypes.Requireable<string>;
49
+ tabIndex: PropTypes.Requireable<number>;
50
+ style: PropTypes.Requireable<object>;
49
51
  "aria-label": PropTypes.Requireable<string>;
52
+ "aria-hidden": PropTypes.Requireable<string>;
50
53
  min: PropTypes.Requireable<string>;
51
54
  max: PropTypes.Requireable<string>;
52
55
  step: PropTypes.Requireable<string>;
@@ -220,5 +223,13 @@ export declare function FormFieldset(props: FormFieldsetType): import("react/jsx
220
223
  export declare namespace FormFieldset {
221
224
  var propTypes: {};
222
225
  }
226
+ export type FormHoneypotType = InferProps<typeof FormHoneypot.propTypes>;
227
+ export declare function FormHoneypot({ id, name }: FormHoneypotType): import("react/jsx-runtime").JSX.Element;
228
+ export declare namespace FormHoneypot {
229
+ var propTypes: {
230
+ id: PropTypes.Validator<string>;
231
+ name: PropTypes.Requireable<string>;
232
+ };
233
+ }
223
234
  export { FontSelector, CompoundFontSelector };
224
235
  //# sourceMappingURL=formcomponents.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"formcomponents.d.ts","sourceRoot":"","sources":["../../../../../src/components/sitebuilder/form/formcomponents.tsx"],"names":[],"mappings":"AAIA,OAAO,SAAS,EAAE,EAAE,UAAU,EAAE,MAAM,YAAY,CAAC;AAInD,OAAO,EAAE,YAAY,EAAE,MAAM,wBAAwB,CAAC;AACtD,OAAO,EAAE,oBAAoB,EAAE,MAAM,gCAAgC,CAAC;AACtE,OAAO,YAAY,CAAC;AAuIpB,MAAM,MAAM,aAAa,GAAG,UAAU,CAAC,OAAO,SAAS,CAAC,SAAS,CAAC,CAAC;AACnE,iBAAS,SAAS,CAAC,KAAK,EAAE,aAAa,2CAYtC;kBAZQ,SAAS;;;;;;;;;;;;;AA4BlB,MAAM,MAAM,eAAe,GAAG,UAAU,CAAC,OAAO,WAAW,CAAC,SAAS,CAAC,CAAC;AACvE,iBAAS,WAAW,CAAC,KAAK,EAAE,eAAe,kDA2C1C;kBA3CQ,WAAW;;;;;;;;;;;;AAiFpB,MAAM,MAAM,aAAa,GAAG,UAAU,CAAC,OAAO,SAAS,CAAC,SAAS,CAAC,CAAC;AACnE,wBAAgB,SAAS,CAAC,KAAK,EAAE,aAAa,2CAmB7C;yBAnBe,SAAS;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAoDzB,MAAM,MAAM,cAAc,GAAG,UAAU,CAAC,OAAO,UAAU,CAAC,SAAS,CAAC,CAAC;AACrE,wBAAgB,UAAU,CAAC,KAAK,EAAE,cAAc,2CAc/C;yBAde,UAAU;;;;;;;;;;;;;;;;;;;;;AA6B1B,MAAM,MAAM,oBAAoB,GAAG,UAAU,CAAC,OAAO,gBAAgB,CAAC,SAAS,CAAC,CAAC;AACjF,iBAAS,gBAAgB,CAAC,KAAK,EAAE,oBAAoB,2CAUpD;kBAVQ,gBAAgB;;;;;;;AAyCzB,MAAM,MAAM,gBAAgB,GAAG,UAAU,CAAC,OAAO,YAAY,CAAC,SAAS,CAAC,CAAC;AACzE,wBAAgB,YAAY,CAAC,KAAK,EAAE,gBAAgB,2CAWnD;yBAXe,YAAY;;;;;;;;;;;;;;;;;;;;;;AAmC5B,MAAM,MAAM,aAAa,GAAG,UAAU,CAAC,OAAO,SAAS,CAAC,SAAS,CAAC,CAAC;AACnE,wBAAgB,SAAS,CAAC,KAAK,EAAE,aAAa,2CAY7C;yBAZe,SAAS;;;;;;;;;;;;;;;;AA4BzB,MAAM,MAAM,mBAAmB,GAAG,UAAU,CAAC,OAAO,eAAe,CAAC,SAAS,CAAC,CAAC;AAC/E,iBAAS,eAAe,CAAC,KAAK,EAAE,mBAAmB,2CA4BlD;kBA5BQ,eAAe;;;;;;;;;AAmDxB,MAAM,MAAM,gBAAgB,GAAG,UAAU,CAAC,OAAO,YAAY,CAAC,SAAS,CAAC,CAAC;AACzE,wBAAgB,YAAY,CAAC,KAAK,EAAE,gBAAgB,2CAYnD;yBAZe,YAAY;;;;;;;;;;;;;;;;AA6B5B,MAAM,MAAM,sBAAsB,GAAG,UAAU,CAAC,OAAO,kBAAkB,CAAC,SAAS,CAAC,CAAC;AACrF,iBAAS,kBAAkB,CAAC,KAAK,EAAE,sBAAsB,2CA2BxD;kBA3BQ,kBAAkB;;;;;;;;AA0C3B,MAAM,MAAM,cAAc,GAAG,UAAU,CAAC,OAAO,UAAU,CAAC,SAAS,CAAC,CAAC;AACrE,wBAAgB,UAAU,CAAC,KAAK,EAAE,cAAc,2CAU/C;yBAVe,UAAU;;;;;;;;;AAuB1B,MAAM,MAAM,gBAAgB,GAAG,UAAU,CAAC,OAAO,YAAY,CAAC,SAAS,CAAC,CAAC;AACzE,wBAAgB,YAAY,CAAC,KAAK,EAAE,gBAAgB,2CAWnD;yBAXe,YAAY;;;;;;AAuC5B,MAAM,MAAM,gBAAgB,GAAG,UAAU,CAAC,OAAO,YAAY,CAAC,SAAS,CAAC,CAAC;AACzE,wBAAgB,YAAY,CAAC,KAAK,EAAE,gBAAgB,2CA2HnD;yBA3He,YAAY;;;;;;;;;;;;;;;;;;;AAsI5B,MAAM,MAAM,gBAAgB,GAAG,UAAU,CAAC,OAAO,YAAY,CAAC,SAAS,CAAC,CAAC;AACzE,wBAAgB,YAAY,CAAC,KAAK,EAAE,gBAAgB,2CAInD;yBAJe,YAAY;;;AAO5B,OAAO,EAAE,YAAY,EAAE,oBAAoB,EAAE,CAAC"}
1
+ {"version":3,"file":"formcomponents.d.ts","sourceRoot":"","sources":["../../../../../src/components/sitebuilder/form/formcomponents.tsx"],"names":[],"mappings":"AAIA,OAAO,SAAS,EAAE,EAAE,UAAU,EAAE,MAAM,YAAY,CAAC;AAInD,OAAO,EAAE,YAAY,EAAE,MAAM,wBAAwB,CAAC;AACtD,OAAO,EAAE,oBAAoB,EAAE,MAAM,gCAAgC,CAAC;AACtE,OAAO,YAAY,CAAC;AAuIpB,MAAM,MAAM,aAAa,GAAG,UAAU,CAAC,OAAO,SAAS,CAAC,SAAS,CAAC,CAAC;AACnE,iBAAS,SAAS,CAAC,KAAK,EAAE,aAAa,2CAYtC;kBAZQ,SAAS;;;;;;;;;;;;;AA4BlB,MAAM,MAAM,eAAe,GAAG,UAAU,CAAC,OAAO,WAAW,CAAC,SAAS,CAAC,CAAC;AACvE,iBAAS,WAAW,CAAC,KAAK,EAAE,eAAe,kDA2C1C;kBA3CQ,WAAW;;;;;;;;;;;;AAoFpB,MAAM,MAAM,aAAa,GAAG,UAAU,CAAC,OAAO,SAAS,CAAC,SAAS,CAAC,CAAC;AACnE,wBAAgB,SAAS,CAAC,KAAK,EAAE,aAAa,2CAmB7C;yBAnBe,SAAS;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAoDzB,MAAM,MAAM,cAAc,GAAG,UAAU,CAAC,OAAO,UAAU,CAAC,SAAS,CAAC,CAAC;AACrE,wBAAgB,UAAU,CAAC,KAAK,EAAE,cAAc,2CAc/C;yBAde,UAAU;;;;;;;;;;;;;;;;;;;;;AA6B1B,MAAM,MAAM,oBAAoB,GAAG,UAAU,CAAC,OAAO,gBAAgB,CAAC,SAAS,CAAC,CAAC;AACjF,iBAAS,gBAAgB,CAAC,KAAK,EAAE,oBAAoB,2CAUpD;kBAVQ,gBAAgB;;;;;;;AAyCzB,MAAM,MAAM,gBAAgB,GAAG,UAAU,CAAC,OAAO,YAAY,CAAC,SAAS,CAAC,CAAC;AACzE,wBAAgB,YAAY,CAAC,KAAK,EAAE,gBAAgB,2CAWnD;yBAXe,YAAY;;;;;;;;;;;;;;;;;;;;;;AAmC5B,MAAM,MAAM,aAAa,GAAG,UAAU,CAAC,OAAO,SAAS,CAAC,SAAS,CAAC,CAAC;AACnE,wBAAgB,SAAS,CAAC,KAAK,EAAE,aAAa,2CAY7C;yBAZe,SAAS;;;;;;;;;;;;;;;;AA4BzB,MAAM,MAAM,mBAAmB,GAAG,UAAU,CAAC,OAAO,eAAe,CAAC,SAAS,CAAC,CAAC;AAC/E,iBAAS,eAAe,CAAC,KAAK,EAAE,mBAAmB,2CA4BlD;kBA5BQ,eAAe;;;;;;;;;AAmDxB,MAAM,MAAM,gBAAgB,GAAG,UAAU,CAAC,OAAO,YAAY,CAAC,SAAS,CAAC,CAAC;AACzE,wBAAgB,YAAY,CAAC,KAAK,EAAE,gBAAgB,2CAYnD;yBAZe,YAAY;;;;;;;;;;;;;;;;AA6B5B,MAAM,MAAM,sBAAsB,GAAG,UAAU,CAAC,OAAO,kBAAkB,CAAC,SAAS,CAAC,CAAC;AACrF,iBAAS,kBAAkB,CAAC,KAAK,EAAE,sBAAsB,2CA2BxD;kBA3BQ,kBAAkB;;;;;;;;AA0C3B,MAAM,MAAM,cAAc,GAAG,UAAU,CAAC,OAAO,UAAU,CAAC,SAAS,CAAC,CAAC;AACrE,wBAAgB,UAAU,CAAC,KAAK,EAAE,cAAc,2CAU/C;yBAVe,UAAU;;;;;;;;;AAuB1B,MAAM,MAAM,gBAAgB,GAAG,UAAU,CAAC,OAAO,YAAY,CAAC,SAAS,CAAC,CAAC;AACzE,wBAAgB,YAAY,CAAC,KAAK,EAAE,gBAAgB,2CAWnD;yBAXe,YAAY;;;;;;AAuC5B,MAAM,MAAM,gBAAgB,GAAG,UAAU,CAAC,OAAO,YAAY,CAAC,SAAS,CAAC,CAAC;AACzE,wBAAgB,YAAY,CAAC,KAAK,EAAE,gBAAgB,2CA2HnD;yBA3He,YAAY;;;;;;;;;;;;;;;;;;;AAsI5B,MAAM,MAAM,gBAAgB,GAAG,UAAU,CAAC,OAAO,YAAY,CAAC,SAAS,CAAC,CAAC;AACzE,wBAAgB,YAAY,CAAC,KAAK,EAAE,gBAAgB,2CAInD;yBAJe,YAAY;;;AAyB5B,MAAM,MAAM,gBAAgB,GAAG,UAAU,CAAC,OAAO,YAAY,CAAC,SAAS,CAAC,CAAC;AACzE,wBAAgB,YAAY,CAAC,EAAE,EAAa,EAAE,IAAI,EAAE,EAAE,gBAAgB,2CAcrE;yBAde,YAAY;;;;;;AAsB5B,OAAO,EAAE,YAAY,EAAE,oBAAoB,EAAE,CAAC"}
@@ -1 +1 @@
1
- {"version":3,"file":"formemailer.d.ts","sourceRoot":"","sources":["../../../../../src/components/sitebuilder/form/formemailer.tsx"],"names":[],"mappings":"AASA,wBAAsB,aAAa,CAAC,CAAC,EAAE,KAAK,EAAE,QAAQ,EAAE,CAAC,CAAC,EAAE,KAAK,KAAK,IAAI,iBA6BzE;AAID,wBAAsB,SAAS,CAAC,QAAQ,EAAE,GAAG,EAAE,QAAQ,CAAC,EAAE,MAAM,IAAI,iBAyBnE"}
1
+ {"version":3,"file":"formemailer.d.ts","sourceRoot":"","sources":["../../../../../src/components/sitebuilder/form/formemailer.tsx"],"names":[],"mappings":"AASA,wBAAsB,aAAa,CAAC,CAAC,EAAE,KAAK,EAAE,QAAQ,EAAE,CAAC,CAAC,EAAE,KAAK,KAAK,IAAI,iBAoDzE;AAID,wBAAsB,SAAS,CAAC,QAAQ,EAAE,GAAG,EAAE,QAAQ,CAAC,EAAE,MAAM,IAAI,iBA+BnE"}
@@ -0,0 +1,20 @@
1
+ declare const _default: {
2
+ title: string;
3
+ parameters: {
4
+ layout: string;
5
+ docs: {
6
+ description: {
7
+ component: string;
8
+ };
9
+ };
10
+ };
11
+ };
12
+ export default _default;
13
+ export declare const HoneypotReject: {
14
+ (): import("react/jsx-runtime").JSX.Element;
15
+ storyName: string;
16
+ play(context: {
17
+ canvasElement: HTMLElement;
18
+ }): Promise<void>;
19
+ };
20
+ //# sourceMappingURL=form.honeypot.stories.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"form.honeypot.stories.d.ts","sourceRoot":"","sources":["../../../../src/stories/sitebuilder/form.honeypot.stories.tsx"],"names":[],"mappings":";;;;;;;;;;;AAKA,wBAME;AAEF,eAAO,MAAM,cAAc;;;kBAmFW;QAAE,aAAa,EAAE,WAAW,CAAA;KAAE;CAJnE,CAAC"}
@@ -0,0 +1,2 @@
1
+ export {};
2
+ //# sourceMappingURL=formemailer.honeypot.test.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"formemailer.honeypot.test.d.ts","sourceRoot":"","sources":["../../../src/tests/formemailer.honeypot.test.ts"],"names":[],"mappings":""}
@@ -0,0 +1,2 @@
1
+ export {};
2
+ //# sourceMappingURL=formengine.honeypot.integration.test.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"formengine.honeypot.integration.test.d.ts","sourceRoot":"","sources":["../../../src/tests/formengine.honeypot.integration.test.tsx"],"names":[],"mappings":""}
@@ -0,0 +1,2 @@
1
+ export {};
2
+ //# sourceMappingURL=formengine.method.test.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"formengine.method.test.d.ts","sourceRoot":"","sources":["../../../src/tests/formengine.method.test.tsx"],"names":[],"mappings":""}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@pixelated-tech/components",
3
- "version": "3.11.0",
3
+ "version": "3.11.2",
4
4
  "private": false,
5
5
  "author": {
6
6
  "name": "Pixelated Technologies",
@@ -103,12 +103,12 @@
103
103
  },
104
104
  "dependencies": {
105
105
  "date-fns": "^4.1.0",
106
- "globals": "^17.0.0",
106
+ "globals": "^17.1.0",
107
107
  "html-entities": "^2.6.0"
108
108
  },
109
109
  "devDependencies": {
110
- "@aws-sdk/client-amplify": "^3.972.0",
111
- "@aws-sdk/client-iam": "^3.972.0",
110
+ "@aws-sdk/client-amplify": "^3.974.0",
111
+ "@aws-sdk/client-iam": "^3.974.0",
112
112
  "@babel/cli": "^7.28.6",
113
113
  "@babel/core": "^7.28.6",
114
114
  "@babel/plugin-proposal-class-properties": "^7.18.6",
@@ -132,8 +132,8 @@
132
132
  "@typescript-eslint/eslint-plugin": "^8.53.1",
133
133
  "@typescript-eslint/parser": "^8.53.1",
134
134
  "@vitejs/plugin-react": "^5.1.2",
135
- "@vitest/coverage-v8": "^4.0.17",
136
- "@vitest/ui": "^4.0.17",
135
+ "@vitest/coverage-v8": "^4.0.18",
136
+ "@vitest/ui": "^4.0.18",
137
137
  "ajv": "^8.17.1",
138
138
  "ajv-keywords": "^5.1.0",
139
139
  "babel-loader": "^10.0.0",
@@ -149,7 +149,7 @@
149
149
  "eslint-plugin-react": "^7.37.4",
150
150
  "eslint-plugin-storybook": "^10.2.0",
151
151
  "file-loader": "^6.2.0",
152
- "happy-dom": "^20.3.4",
152
+ "happy-dom": "^20.3.7",
153
153
  "jsdom": "^27.4.0",
154
154
  "less-loader": "^12.3.0",
155
155
  "mini-css-extract-plugin": "^2.10.0",
@@ -168,7 +168,7 @@
168
168
  "ts-loader": "^9.5.4",
169
169
  "typescript": "^5.9.3",
170
170
  "url-loader": "^4.1.1",
171
- "vitest": "^4.0.17",
171
+ "vitest": "^4.0.18",
172
172
  "webpack": "^5.104.1",
173
173
  "webpack-cli": "^6.0.1",
174
174
  "webpack-dev-server": "^5.2.3",
@@ -180,11 +180,11 @@
180
180
  "react-dom": "^19.2.0"
181
181
  },
182
182
  "optionalDependencies": {
183
- "@aws-sdk/client-cloudwatch": "^3.972.0",
184
- "@aws-sdk/client-route-53": "^3.972.0",
183
+ "@aws-sdk/client-cloudwatch": "^3.974.0",
184
+ "@aws-sdk/client-route-53": "^3.974.0",
185
185
  "googleapis": "^170.1.0",
186
186
  "md5": "^2.3.0",
187
- "puppeteer": "^24.35.0",
187
+ "puppeteer": "^24.36.0",
188
188
  "react-redux": "*",
189
189
  "recharts": "^3.7.0",
190
190
  "redux": "*"