@pixelated-tech/components 3.14.1 → 3.14.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.
@@ -73,8 +73,8 @@ export async function createSearchConsoleClient(config) {
73
73
  auth: result.auth
74
74
  };
75
75
  }
76
- // Cache for analytics data (1 hour) — isolated per domain
77
- const analyticsCache = new CacheManager({ domain: getDomain(), namespace: 'analytics', ttl: 60 * 60 * 1000 });
76
+ // Cache for analytics data (1 day, localStorage) — isolated per domain
77
+ const analyticsCache = new CacheManager({ domain: getDomain(), namespace: 'analytics', ttl: 1000 * 60 * 60 * 24, mode: 'local' });
78
78
  /**
79
79
  * Get Google Analytics data for a site with current/previous period comparison
80
80
  */
@@ -169,8 +169,8 @@ export async function getGoogleAnalyticsData(config, siteName, startDate, endDat
169
169
  };
170
170
  }
171
171
  }
172
- // Cache for search console data (1 hour) — isolated per domain
173
- const searchConsoleCache = new CacheManager({ domain: getDomain(), namespace: 'searchconsole', ttl: 60 * 60 * 1000 });
172
+ // Cache for search console data (1 day, localStorage) — isolated per domain
173
+ const searchConsoleCache = new CacheManager({ domain: getDomain(), namespace: 'searchconsole', ttl: 1000 * 60 * 60 * 24, mode: 'local' });
174
174
  /**
175
175
  * Get Google Search Console data for a site with current/previous period comparison
176
176
  */
@@ -50,6 +50,23 @@ export function generateUUID() {
50
50
  // var d8 = crypto.randomUUID();
51
51
  return window.URL.createObjectURL(new Blob([])).substr(-36);
52
52
  }
53
+ /**
54
+ * Simple universal hash function for strings (Java-style hashCode)
55
+ * Works in browser, Node, Next.js, etc. Not cryptographically secure.
56
+ * @param str - Input string to hash
57
+ * @returns String hash (may be negative, always string)
58
+ */
59
+ export function hashCode(str) {
60
+ let hash = 0, i, chr;
61
+ if (str.length === 0)
62
+ return '0';
63
+ for (i = 0; i < str.length; i++) {
64
+ chr = str.charCodeAt(i);
65
+ hash = ((hash << 5) - hash) + chr;
66
+ hash |= 0; // Convert to 32bit integer
67
+ }
68
+ return hash.toString();
69
+ }
53
70
  export function capitalize(str) {
54
71
  return str[0].toUpperCase() + str.toLowerCase().slice(1);
55
72
  }
@@ -1,26 +1,45 @@
1
1
  import PropTypes from 'prop-types';
2
2
  import { mergeDeep } from '../general/utilities';
3
+ import { hashCode } from '../general/utilities';
4
+ import { CacheManager } from '../general/cache-manager';
5
+ import { getDomain } from '../general/utilities';
3
6
  // Flickr API base URL - non-secret configuration
4
7
  const FLICKR_API_BASE_URL = 'https://api.flickr.com/services/rest/?';
5
8
  const defaultFlickr = {
6
- flickr: {
7
- baseURL: FLICKR_API_BASE_URL,
8
- urlProps: {
9
- method: 'flickr.photos.search',
10
- // api_key and user_id must come from props or config provider - do not hardcode
11
- api_key: '',
12
- user_id: '',
13
- tags: 'pixelatedviewsgallery',
14
- extras: 'date_taken,description,owner_name',
15
- sort: 'date-taken-desc',
16
- per_page: 500,
17
- format: 'json',
18
- photoSize: 'Medium',
19
- nojsoncallback: 'true' /*,
9
+ baseURL: FLICKR_API_BASE_URL,
10
+ proxyURL: '',
11
+ urlProps: {
12
+ method: 'flickr.photos.search',
13
+ // api_key and user_id must come from props or config provider - do not hardcode
14
+ api_key: '',
15
+ user_id: '',
16
+ tags: 'pixelatedviewsgallery',
17
+ extras: 'date_taken,description,owner_name',
18
+ sort: 'date-taken-desc',
19
+ per_page: 500,
20
+ format: 'json',
21
+ photoSize: 'Medium',
22
+ nojsoncallback: 'true' /*,
20
23
  startPos: 0 */
21
- }
22
- },
24
+ }
23
25
  };
26
+ // Utility to build the final Flickr API URL, using proxy if available
27
+ function buildFlickrApiUrl(flickr) {
28
+ let baseUrl = flickr.baseURL;
29
+ let queryParams = '';
30
+ Object.keys(flickr.urlProps).forEach((prop) => {
31
+ const value = flickr.urlProps[prop];
32
+ queryParams += (queryParams.length === 0) ? prop + '=' + value : '&' + prop + '=' + value;
33
+ });
34
+ const apiUrl = baseUrl + queryParams;
35
+ // Prefer flickr.proxyURL, then globalConfig.proxyUrl, else direct
36
+ if (flickr.proxyURL) {
37
+ return flickr.proxyURL + encodeURIComponent(apiUrl);
38
+ }
39
+ else {
40
+ return apiUrl;
41
+ }
42
+ }
24
43
  function getFlickrSize(size) {
25
44
  // https://www.flickr.com/services/api/misc.urls.html
26
45
  switch (size) {
@@ -52,30 +71,40 @@ function getFlickrSize(size) {
52
71
  */
53
72
  GetFlickrData.propTypes = {
54
73
  /** Flickr-specific query overrides */
55
- flickr: PropTypes.object,
74
+ flickr: PropTypes.any,
56
75
  /** Optional provider configuration for Flickr requests */
57
- config: PropTypes.object,
76
+ config: PropTypes.any,
58
77
  };
59
78
  export function GetFlickrData(props) {
60
79
  const debug = false;
61
80
  // Use provided flickr config, or fall back to config provider, or use defaults
62
- let flickrConfig = { ...defaultFlickr.flickr };
81
+ let flickrConfig = { ...defaultFlickr };
63
82
  if (props.config) {
64
- flickrConfig = mergeDeep(flickrConfig, props.config);
83
+ if (props.config.global?.proxyURL) {
84
+ flickrConfig.proxyURL = props.config.global.proxyURL;
85
+ }
86
+ if (props.config.flickr)
87
+ flickrConfig = mergeDeep(flickrConfig, props.config.flickr);
65
88
  }
66
89
  if (props.flickr) {
67
90
  flickrConfig = mergeDeep(flickrConfig, props.flickr);
68
91
  }
69
- const flickr = flickrConfig;
70
- // Build URL with query parameters
71
- let myURL = flickr.baseURL;
72
- let queryParams = '';
73
- Object.keys(flickr.urlProps).forEach((prop) => {
74
- const value = flickr.urlProps[prop];
75
- queryParams += (queryParams.length === 0) ? prop + '=' + value : '&' + prop + '=' + value;
92
+ const myURL = buildFlickrApiUrl(flickrConfig);
93
+ // CacheManager: localStorage, 1 week TTL, domain isolation, namespace 'flickr'
94
+ const flickrCache = new CacheManager({
95
+ mode: 'local',
96
+ ttl: 1000 * 60 * 60 * 24 * 7, // 1 week
97
+ domain: getDomain(),
98
+ namespace: 'flickr'
76
99
  });
77
- myURL += queryParams;
78
100
  const fetchFlickrData = async () => {
101
+ const cacheKey = hashCode(myURL);
102
+ let cached = flickrCache.get(cacheKey);
103
+ if (cached) {
104
+ if (debug)
105
+ console.log('Flickr cache hit:', cacheKey);
106
+ return cached;
107
+ }
79
108
  try {
80
109
  const response = await fetch(myURL);
81
110
  if (!response.ok) {
@@ -97,12 +126,10 @@ export function GetFlickrData(props) {
97
126
  myFlickrImages.sort((a, b) => {
98
127
  return new Date(b.datetaken).getTime() - new Date(a.datetaken).getTime();
99
128
  }); // b - a for reverse sort
129
+ flickrCache.set(cacheKey, myFlickrImages);
100
130
  if (debug)
101
131
  console.log('Flickr Cards:', myFlickrImages);
102
132
  return myFlickrImages;
103
- // const myFlickrCards = GenerateFlickrCards(myFlickrImages);
104
- // console.log('Flickr Cards:', myFlickrCards);
105
- // return myFlickrCards;
106
133
  }
107
134
  catch (err) {
108
135
  console.log('Error fetching Flickr data:', err);
@@ -1 +1 @@
1
- pxl:v1:f5acd15a1c2ad9b70597c5cf:f5b05491e993840f9a4966148ba78627:13eadc864008b51c8b4b279b9eefd183d16af6cea44c38b4aa5dbe927a001ef4f108b3f5a74fed1a13c86649f1b25adc4e18cfdad3ed322f3c4fe8f55efbde59941f31aa1de85aa2b25aae4bfe48f6ead0b659366278aa88c69137ab9e224aa09757be7ae44a2f7659fb7954df2c8a250fbe2dbf8b5591e2382b2a7937a3c49898476fe412022e9679feaae15f1b67ca3baa44b08122877a541d81ff6588cb50ecc16fc0785f34856c2e06809bd88f1b571ffd92c968b1e1fb18fceca98a1f32a5ccdb7f653b8274579a24ccee99d911a46e5da66109bcfb7461fbd3a5af92b705a471958dc87305e32480913d2eae98f3b8a1ce129b2b4c4eaa6e5c89466e91293207952e4de97a39deecc4011a0b32ca6e92b5b1161e9090af75f02e5b8a43c05569433aef7210d202329a897fd8ca227d843c3eeaa12464006e18b3b69c0a1e1e6878d49f5f0e3bda91dd31a9281ee41eb253be56bf05f679e0b7e252e1a7b1d06c0baa0c6ef16b2a9d70473e0941c4c821fbc3fe3c432f1125fa3b9893d61bf8566f235c0bb9685da0ff33bcca5870c9b7ed466e3bd2116d3e705222344057a4a13fe8ee99f40588a02de5bb67e9c43c012fa5808446e356f74ea8c42d65f9fb7bddcfafd3f56f3d17101eb9b3c06957bdc76ec5ce07cbcf53fb8ace5d5a3d4f18db650d6aaab38424fe008d323f0b1bedef33a0a8086c1d325a32a4c581989512892c1ed801222d25938fad3cf5eebd7c6fc115e9b8dcf7fc2188849b7ef038ed834a6ab2a50c510d47cc9ff4d36c4cb8abfcb25601aff8e378c6b10bedaea7e14be1d2662ee3aeeda97523995e6d42f0531b473e6aa0bb363af3f3bd507a5d683dcad2ef2826f7c570a72aeddeab1e1efda823b27f78ad5da590640122e6fba89caa6a8c9d9aed22d0a1c087a2922e115feb44f2f715a161308fa208390fa0b17a457d47943b3bbf9362662147371b303bf7ddd0ad09b56dc7ee1291aeec7687bafe88bc394fd5eaaf5e2ce5926172c6dbbcfa402d85dbdf14da2a818e3cff84605205b3a9b907cf9b62d4d3f37dad0e0c2846ad20209366b7230db8283ce83ac80f1fb8796b1385f5bda68b2f93c3d64f970f12fc3a054b8c44f74a42167f09337bc9624cf89cb136d57bdc5e5a55a45ee672854845943498c49d273fbfb171efe142d84453404d15e3f967270b10a9395b43928a34f719467a848a972ae747aa3fb30c3b4bfff41fb8c68d84808075b59218c68661df6db584e70f3cc0031f7b99974cfe5d9d7ca958efe3602d09b2ae528d958a9b898a2c3525ee9a26cd48bab64828b3e69c962268a49cc152bac4425a0fab758c303ea467a8cbc571692b18dff2e071e0c6d99b681e4511e5d217fd3f3e3b455794297d4b2a0d338807c742729b475e3acc6f7854cb66aaa763f840d91be86b40486bc6bcd3758130bfa02f7ef1f08c8bde1b8301e707f7370a71c46593739fe70fd3ae9e5441df33558aac04a95bed54e47e4cd4ff1b7d8d03086cee14a45ea5117019afe15a6a7bcc866139987036f9a09ab12a058131c274250951c7c530bcf8e4a2e2dad370f92276aadbc4f15cc48460ba72665035e231260687680590918878c14324b47d37017cc9f253e5080c8f24317c6437648d8d0ff691bacb80508364a5e3e4f46699027377fdb650eef9331d6d5448da63fca6e30789de7b18c3ff44626f621216b83109d14a661a98d4d3164e6d70891790e164c79a50fcd20c1a7144eb3e8902a46562391e89eac46a977170a11285381f7141fd1a57ad7d47e3ccfdb7f39ef0fdc0fdef9d1e651bc051319eda410b890e4d1808de41203e0331331cf110cd77ff6e8f2e37f58ca33e79913789f69d0ae5487edbc6c8befd60266c8f15170125afdaca8e4e02d8d5055540b3f4966470e5dbb3032799fd78d2db708ff34d0671236a3296befb86273cefb0b1c538b600f7128359ead6521e68d5bca46a5cbe4aa17c2e85a55d7c4c0be8a47137db064c3436f0a571b8759387ab67175296ca9db5f7ff1c91ba2e711015dd18305953a2b6d35aef11d2410887742c874291fba6f59bd423e470f3737af63de945034d13c2e99c9cda396697a62f555df62fe108541e5945c474fd8cf2b09433582f240b23e9811050427a491c1f3d6ec517a8da0c534ef1e82eeb6768dab11cd72271dda7c7c8a195c8159b6949eddd6ddec07b98b8c801a2a8bc9d33044c9e758cd8f0cdf03163ca596a28411a6890b065b8d01181375586a908355d489fce7f8389688f5bd680227e39927e0a18e73592ffb660bbf47a2100f4e23e4add399c1fef82f35d87f2fc78ad567defb74c045e2373c5a79ee6932271177410359509a43635df1bb65a121da9a5822920bd36be8a4cfd47cec21247996064585d8e36c61cf06b41a2d0568762417133fc78e74dae161fbcc93472532c3cd67608b1a45ac5474667faf31e451fd35d7f997e8f45e8634b71788529ce0f829ea0c2e131e1922f8598c89ce24063a6b016317b956c7df3e5bdc0d53db01b70b92445d9db0911123e2e7ab17fdb101a39be21d30c410e116e7f75350f4f4d9c68fa3f0ba031e6a0c4614d778ff010884b687028420ec8548d1ad16a7571f45ba3e6f7610995eacd6ab9140521eb4b3d56a5320b9f58774e9144519e310f8bad7a6668dada8ae96247a93539846ab0c74507768d367958caf5d90dffd23b6b03da6b04bb88207f749a2ca7a505b96c6f334f6f2bdd35e1d293cdcac8dc71b9819e9dfbc7519347de68a4cdeb65beb6d2ab98d9ae7f2218a18c76d6041654ee8d9b538b404f5404a3eb0d37640c7bb092cb9fb37a50efb5a4afc971dac518d1672e29128bacc572b4eb67b82258afed1aa824dda2fa012512d42d663fd1e4d9b313eef138a0b280f9ee58515773ab97a5e2f34ec8efa3ded652854fc9b004f3d89f0fb6bfcca19cef5908fc5d347b956293000ea290c927da01b65d31bbe79f85993602cf77b7f9ea064fe2591a8381e6c85c84fdb1b0653113b62ed23ac91d74cca0cf5c37c1999bf1c5f2f24191484c8be09f2a8e5d5bebf3415069d5b3200bba5d7fd06182798fa2d2cec88e2ecc4ce8277ba007017f56290d351723768416bea212d930db5e0c2d59bbc979769784ce882288ecff26697567123a7570b5f5b7d759a84d27f22bd7e2fa76fbb34431b4973a1aa8f870d719056352767b7c593ec1dbd0a2c311c6e5bb4b7115252df638dbbdb02216b1c5a9affc1167bd57153957d8968058a4b16e54703fbfd8e142c9037a3ea452c80d033f3e343395c8fbab29a96d3796ae520f97fe095a8b1f4fbca9a72f2cea4833fcdc308fac8412d0d015ff4baa037cd8694bd5cb5ca32584a98eccd85e847a4efc32f3f827786589c38b491d7ae5d5afead669d8f3e90d9e9fa6c3fe2bbb6f3494c85cca743aef4b4682754a672eabcfe671d03e8a242fd28a147c96e89883f1791de74c8fb08b7b24b03494a8bb36ee7961e2669ec74830bc205331fdc448d44706a993db925be4df34fa9a5e055773930609cd9fabaa36cf52bd5569173e8444a9d5370ab4053e5adf1a78682b1e444c3799fb1a09239404c9bc410d75a6ab3bd31aeb02376a9bce00b99ab6530797745ec14898430a19903d36824a8d4b3b12e7272f3e0440220d1f6e2ec2a58cb1d36f2c51abc6afe32229bdcc23593a49ae5655f3619f592585922dd9465ee6bcc6801c1fa8081a9d52011c2626f654287850862c750eaa4ffecfaf5aeae4ae173fb085ae269a44de5ea5e595c3fb2ddbc06b7a403cd6c52f999f64b7782b7d932f8340e9a41d0353d7c49636d16f03d6a9c56d461bf07ff8184ac61b0f6416c5c091c8c4e8cd057ed73161b96ad9d23fb50209a578226c7a0e79fbb5e4bc5b136fe37665d3746cf0c343629459d8cccbbe28097d6168d94f4895b702a77366dfe31379ffb9a61c841c9b09fb0257dd162519279057bdd44b39c995410a41c1dbef376005fc07cd3f172fa27c2ebfbb9ca10dc8854936b9c61b2966d351c0c8d873612d706bbeefe8d788176f6c2779890b9bfdc05576eacd1ca1f2f7603d0fe2282d10dcae2ce886e5d4adadab4a97127a626db5372720c9be33a2c670eed1dc46496065569f030d17daac5003a124a32053c03ffe4a69689e18451a8614cdf8dce27f610b0110b1ba115d8255e620a8f617d88c483e1ba5d46ddb3cab1b2290bc3896d7c6c2faf71c25d4cd5808ac9720e1432bfe6f134d14eb0697c194c5fc3c0ad6cdd164a3504c60d4a72252e1053bc69bbc0292bc93aa50aa5c31e694c2e7c50280540b64df800243fcaee6a70874eb3635931bbf3f9fe301577c4e52a4e7599e358b75984029028a6e791f5a934d4fa8404f0b7b89da5b252cc5e123b10e37d8b1625be2020698d9766d7f94a1421822b27982770549355f91f45fa5686b02e67645f7b75af3b34dcbcf42dd7fd39f32d2822b1a1c934a356b79c8bdec020b7336f1cb34dfe990768b95da771ca7948d52d37205bf012ef4ae1d7dee2b48530907cd924aac6d44bcc2a77177f0743396bb84d9bba6b036465a9e49565efeecc79ae793ebcec3ca8d7b148182918f5e71f305dfa387841fe47b0f3c891fb2d3d0373f4f1a45c51e574ceaa0f433f1b70a900097fbb00077e183d98da74201bb3fbee97c4f0a4e4892773391a33135bf43d78b48a86749bfb27fc82e068c008f53dbba9d948c9045f4159778a83c67acf84f5d4213607b349258b6448dc3fa8634be0eacddef4f96bbf3b93103dbd4672b89b07314c2614bfa6eeab30d417f3ee36cf6ff29331a504b5bde23e28b419b32b5492c98bb7b0d3a3ebfa055230a3c518d8648a371f4e36a6e3dc96adea09b9b9ec536d264e402d2af74073a44aed65c578b67aea227965b1be367f0116fc51f40f61311c49328e9d7843b1553cb7f5e5f0af2ea5bb6c90a5dc0748cdf8f35c79015e8e734596c81f468e16001b02ad9b81c643b74dd289bead40d687f47c7befcc7fd4f4f73edb2c13ea1d78035cfa9c759d3b189e05a90d276feddf53747f7e55595e7f706af78a7e1db0eaed7a44575f5b3d43b21162ac26e1f47a7954aab77f3a8436941d05d5dbeea386c5ffb3122e9e311c5d4d8f3d0d9133e027bf321220f245a789493e7e340d97d0657da3b6091f389d58265ce7d562cdcdece89d89d5aa6ee05e0768dfbc66517210755fc998450b52dfba14bb1979177210f75d8214d1dd0d853bde2f03dbd6e20b0abb9ea9ec21f7d10624744c63cd4f2fe44db1e6f3ef727c5d18c00c5150d23e7b0c82aba9a8e86ba8fb2eaa3d6db6215718cd31e6df6918c48e5637f91eaf3534e610ba2c309aabf2e08ee776b4ba0e6082328bd28e72adc9c88e802218d4f191bea53f3367f482bc317797de99dec32fa9d3c2cc4fe2504ea51493604b14508806a3fd6491cc5edca57392bdbaadd12565d0941c817806d5f137f2f2a03c925b3248e952b051ae5944c2c24fc671a675cb7f92b5a65446ee32d7c34be3b850ae5d8292c565bf3b291841cf7f680094b653e5eba5f273b0fa8eca16ebc622bd28f957b2fdff3a3dd1551016ac4ad8bcb95ebf3934af61528a09d743aadd75229eb29500b8fdf80aa6149d14933d069e60b536729620866e54d06b7f1ebec27feee263f7ea8690dec42ca71477ed364dd77b5298986f6d437ec261b5c7421aa2fe62cf88a9608a5ee8a9ae6ca21b9af780d6ad006c385ffc2b4265e96d952a176ab7be7e9ea400402886db2b9240d03ead2000dedda11002c948bcbd9acb3452247
1
+ pxl:v1:d547f3844470f71724d93b73:55e3f315a289e4585ea21eefa26dd794:c801d8c607c276011893f65b0c6133663ccd09123c25eb5716eaa92de4393ac0a06debfc471fa174b68311d7bc7cea0cec14d2c5a0578c733998d1b9d52f4863a48840cf3391b634ec7226ac9df3b9e6606dc6d0587297c496ee074a3d890c7f0d57e1ebad580ae5472b5127570dde88d158b99dbae28a78ddeeee73af92bc08ba850621c54c7f28a1a0a5c1aecbe6dbe40e407156a6e636257cbf3620a1dc9c9c273438112e048484bdb676dab927efa3a36833a0ed51f241e47ba0482f6d54a349b686841569152c09b240583cc06be92a380c4b0aa2c54f48dd5bd5c29c6d4c33378f06b863f8be388d59e270daecac860fbe70be50b79fc00400be7adcf92d19fbb790b87aa8bd1b7ac23cdbafb115edade7e2075c22a692187396e85ca07241ed422d274fa9621380014af873235606e472fa4025385a20180fbeb5d02cdadef6bb9ec770aa8d2b0683c6286ef4741ec5c1f25f2781e68d666970f2ff91c4aed23d67107c305bf1700559da614a365b132ec9c86e04ab3e63a820edbbb32758360cb5710687deaacd08ce54d45440ce92b0106fc2b19d08700309449547d0fda6ce5dabd9c6b5cb3a08cef70182aa7697c1e69eae7e5e1eaad65aadaaf48e081b38a3b958914c83cfc7eb03994fa34d37103cd4283d5deadf5b50f380e53d4c7b92f5a91d1284281759f6aeb2ad5bbd7f9c6546da156949dcbe4135c2177045ed2afd81e01c3992d122a423341c47c54df018973268bc1156729df679305d1f2ce4286c7eb1db703a0d7440d7fe4cfb92db3f667617786f3a9b099eced2b4f93141cf7db2456cd630ec073b4a4bde75594404360c07dc6c255745927c6dff72013d65087bf3a22769658017f29a82573cd7fbcfa03f9f35963b7145b8c906c4999f3942a063ac8617d91a532a3dea55626de584786c06b2ca1606b98811d5e0d6c3500445e6d1fee1cd47fb5f9d7ca6f7578690f0f204dff984175ec44c827090bfa6f6413a13eaf4f799b633ff3d979d1f93eb67573c34fea1ff2e4f4559d75cb9d5997d10bba2d7bc274a03b16404506c9a0021ad4873b79ceb56c75ba6657c0e07c1d11f845481b1f56d5944cfc362d309530427a7eb9856f474ae538eb140de1a002b573c788b6132b0ea8f056f408287bb93e2b292228e4f0ad4f311a69b8fda4421fdb29d47c5b42ba971f0c377ae3b352b0a1766fb0f831b0fb5dbca2f4af483c93875842bdee65f18d0a5c262d098376f6bc270cb4e0938046d95bdb1b20d2dae44f45e4289f13e1f9d8d9a0702c04fa49b0a700fae7bc3c8c1f2a12800203076b2a9e910fb327257c0b3b1dc4914a59c66afbd3fab86706f6c9522a7b4d43df3695e7bd254a8c977d927dc39ff30030a8b540c16cc77dcf108dc088af74587c03f52530f9c74ae877c82cac87c821ce307e19ab6ccf1c80a1384599e032b6e117a74e6fd39919610d2c1bfeec3a6fba13449bf880f8551e84b0d872b244cf36fa4d3f8ea59e64cace29857ee286302b1587689a4d6896d9edc14ae6e3f1faedbb15f7c197af7dce6400046c42dc4553a6c7538bc6fbefe5fed74a51843eb3bbab7c3d4c7eb8fca8549b47fca42b6eac69c6456a10e8b1b9f9217045de6d47ae74a001a888218cef7265ab61b1e2851e5fed20f5792298b01ee6ed1240edf2efdece1f14ebfd892ba97be3505b4bd5380a0466461d4bebe0f2eeb2d589da159f4e29b70a06407c00419c93efebabde21932a098888ea238d147caf289574d8a01b2b39e48fa1a55d8c42fdbf15978a92135265716b62c2832bbb36b9b6127ef8f15a0b144130b0886f99f4b2a602a817d8fdd4c423784b815c265ec78b297aa18186f41079dee70cc3508a490278e251f0a8c678809c3fcd85fd9f64c6b8df60053427bed951b81da8970282288b81533c64d80364134695969109bea909bf4cbdf4ae5c88b9bdb44d67e81d77ff38fe5ec6a6c529401be859c70188525bdf6a462a82e599e8e9f264cfe99079a926495f9379fa7d0881d0a1bbe62fb48d252c876a4487f2dd177bf9abc908a1d7046f276fdeed958cd57b0180cf861ecce46da4a0b9eb160db8a5c59722e5c4c1ec7ba5d6cf76d4983d8d9f1fc943b1919667c131ad596393c43ec7925f71b6cf58e4031039ac079c91d27680bc7d80da2c38c67b3ff4d9d6515f7e1f713e53d03073207fc255664d0c6676f5e21e791bc722a7e2da0f0df22ca2e0838518bed526b4cc659a4217bb3bf325f18346aedec7dc1e93786e008d057ce37e1d3d38a6cee74b958fa5d3426d890111aefd401de90d703bdb87ddff7a237e43f26f15a55d004c51b0042c25532e12ce47a2a5a80138f43d44647f37db50541b7b2ddf310f4b09cf549f61fbd9efa9673761d238760285dd64c5916936670cb2cbbf57b6153dab93c68340837fcb117c00f88ea67643e52e257f74b1e6213151730419da99c7c27cf289b8018f300399505f3c87e221df7978f5869880994394ad445f24f9c7c5e1747c17557848c96a6c589c9d12f4197a41166a306ccb708f934064008d0a2e8969b08b6e2abc0b43e65313226cde40f6addd23063fa79303efb3f93a6b74d2983a8dcf1ed12e10865c326b5b087c72be0984df7f0fdcb91a426f6a1b27db60b2c6464be7ca7e4dda9914cfc71affb7496cd33345f42ca4ed47ea71813299b62ff2baec0384bc96d830d43b90e77ae5fdd9088f01100f413cffff2f85600aa36abf214ff62b9450d8df4d086d6976ec8340052ca649d7d1590638935e75ed9dc859949ccb489ab00cae443682e6d32fd6522281971972a4a20a3ab181a706c3ffe3b6355faeaa3f23548871a97df4f2afc6056263450166defe4529830bf8c89b333adb98b6f28b911f5bca3c47d39083bba1c96f68c6acaf2989b5f629b77dfe589312da9eb1f87c5a0fd328f0427c8ff33f3e85fc3b402d5792e54f1eb9dd57936247f5184a59e602b11b7e6118a46f4bc16d230d4fe7d70f41a231f44aa9002eb9002b67f8b1725cbce6e8707e4d4b3f270e23e6cd31ad4e6a5819b77bd35ee2b827242d018935b69700ab14657defb0e76b19bd20988bca3ec1f2a9820b82cc9f0d230d2d325c24360584f5ba9888d83acffd3e98c3a4afa9faf239b3b65047288dc62850436d6b0be92cc14edc9970bfff74152c959b3495030e4426872fdfb69023445758b67a5915f5d8fd93165e9c45ed821c209f9f64ecc7a6ceac0e892eac266805b5931ca35017d708e6c57717c70c8d73700c5f0157ba0d143bd0f3f0feed6e8c09d9eab04d1cc496cb9b4ecb5581167a3e32d90abd1d537e9ecde947972795c29b99d119f369d8820961191028f9794d1903ae07edda74adcd97d9d5fb6fdc4522fbf4e42c29c2e0645c975eace63ca1895989a0bb98b11ce80e41acbe4b35c1eaceba416939daf05438a98c310c230b3ef21800f74ca09c88ece2c8d0bd03706c1e42bb2ae8496b3a3f8a4fe9d273eecc2d62aa0812c582db98ec4d19b0e70c91dde34d701e32a44743105d058e0cc2cd509298db4c2cac3e244b714674b0745f7c5cbb62cb0009bbea3e0e64f6a98c09aa2935d4000f0c6f69492e4955887caa245e6a076bd66f19fa3c54b8f46739a66761d5bec1a21ce879e504f0f16093eb01806c28a8713dad7efae48477d2126c4d6732a67c68ef01bd3f9e79183e8562b07766323063c528155e37499f9d6c02c9d480cd7f0b31053b8621faf7bf1fc9eed343a633b7449dfc42e247cec3757e9ac2fa8d1d9027a45d81b2abb7486406ae2d749542253601a5ecd96341edb9521d2e4f23c9df89def64f07e5d8d14733c4bbd2497b266e930d5e7cee5638cd5b9f0113230259dd5c0547c236d81a528f57324ea23baa41dd5da5721462c47083d816cd4575777d74ca4324eca3e3dbfacaef014441c9412329b980929f228754dd27ca0c96e62c7663907f77f8c854446124fbc797421a36bf1bfde7f82f6a5947ae3f4bda3c1bd9b4b070fd0a8a98b11aa14c98d85d33a85cff13336b9d1647797555263f59fdc3f9a42cae1cf0b0c0b26505bb0c9904c2a52536383354434c4ad4860d1c4c2749ae9bcce5a51456a1a8d7cccc23ebebd95e13b8b64a533881bc792981caf612ce6870fc38ad76aeb691ee8dc3d690a10216b5cee7d5b00894d3acb2b4d167dbbed74bfd7a63dab3390fffd6a568f271a308f5a6404aee45ad0c564ef7ea9d9b32de21983db5f396498811a57f723e8148ea6157cc96e8b83d0adef0dde316188f3cf9625a99f464f16e8faadaaa150552141639ae6b37fbf1f936e47c6e54df69709f41a1b3cec8e14492f45429f61bd401807456b4bace6959ba51e4954ebfd3aeeacb748b4bb144d158e3d3e8dca0232d6b1969a0577220b684bf52ba46f8d63d65ccc8a3535e2f0f75bcac5f0a2832ceecc2002cb8bfb2c343ff4509af686a822a09d7e9be3b121783eb6e6b0dfef50852a71f1a038a7616687160921c40dffb4d3fa6f94f30456b4312f0bb5a9fae23ba7d31f9a89427dcdbd74719fbde8c9199943ccbc308244db05105eee4b28cb85dd6de5dd2cb8494898e46a4275a4fd83ccaff196126c2da4aef68881c1e51ba9455fc8fd303317b560daa4d9e706b8323a071067b710bc674ad927e60d956ad6c59e2efb8785e2240befde746c5126d9440a459a28893d1b790a884d1e86a3e480af07256f9e86ebe33fd4ab43b9179dfa406265b3e0948d8dea967368a29d7e9f84f6ead40182e0c6383dab672f2c0f354a48b696ba4b0a9643ec86eb1a4c834ebc4c275e542c3c45bc7ac5650cff3edbd823d7543ddcc04af51d650c9b5876f4ec97dd3b3ca49b5ac1848d656b233abc952323f6067440d8af882fa29486de82e712eb3a1ec5afe71a9d20034e9a46ebf3e505098cd902e979469892237f23e20b02c07b76129b46ce2b8e64fcde1a0b47537c7c7353a0201a80b8b09447d8396ca929bda72628210f6ca40e38bb7f9fa7b1db9d0a95c3115f75f7b487cea2b2e05e238a4e37a151b2f3872d8ea41ea5731f26b88b1f3f11ee84ef0056c6b7be2be6b8b47b7fcf88197d6c490de217ebd21bcc8d2560b5d80c82dec787c689c5f4f1677a1de3b38aa55280e38c03c648aa89001a9b0daa62498c47606a0384e6b2484d2d63d5a0bb17b4b4d76daf86d2bd0d2d0295527303398c4c62d5f599e11ebeb27a3541c77807bf901b2fe05dfabb5622e87d1c092a7004546b59476a22896ab9e03b7c6688b273d3aa9b5c0130144d34ac03ca150437d346c67087c65ffd1e7927fbdc177f3d141a29e30d72f6df0666728a1d7b20e11f3ca6efd147c27af8851374301967d283022b75443d83383d675c163c84d0cbe1d7a687d360072d3cd525e949dd1c3e7fac5beac3f9c03e261ea11b9b4dfb7baeedb305a43623b6eae1f7270a82824a639005497c806809e14a34c03cbcbc933fb923682344a567857dd04994e7a1930bcc7fb8cf111c0db3a9061e5c24f256fbfadeffc6bd59e557ec29c814c54c0781dd14ea703ab9aec34b723292aa5e655349ebf22f83af9c5e3043e569f287a40869f2077f2303cac74d1bf0fc67804761bfd15b9a16c4b00188169bbc0f098c7d366ae3097f22e0a23dcafeafbda0840a8bfdd929f91d3d311e79a9d879a23e8d3ea64c61ce1690657908ccfdcfda0fa7956de75c9eb3182ac27be771bea5903ba590ac9f6157c2647d3ce3b29465282e8ee27b5124913aaf6de85cbeb3a32ebee6c5c26dd7703b5b1a92ecb7e00a4a773d28d0333730c8245a7e9618e0b8
@@ -1,6 +1,7 @@
1
1
  // Admin client entry point - client components for admin functionality
2
2
  // This entry requires optional dependencies: recharts
3
3
  // Sites using admin client components should import from 'pixelated-components/adminclient'
4
+ export * from './components/admin/site-health/google.api.integration';
4
5
  export * from './components/admin/site-health/site-health-accessibility';
5
6
  export * from './components/admin/site-health/site-health-axe-core';
6
7
  export * from './components/admin/site-health/site-health-cloudwatch';
@@ -19,7 +19,6 @@ export * from './components/general/well-known';
19
19
  export * from './components/general/utilities';
20
20
  export * from './components/integrations/contentful.delivery';
21
21
  export * from './components/integrations/contentful.management';
22
- export * from './components/integrations/flickr';
23
22
  export * from './components/integrations/gemini-api.server';
24
23
  export * from './components/integrations/googleplaces';
25
24
  export * from './components/integrations/googlemap';
@@ -44,6 +44,7 @@ export interface EbayConfig {
44
44
  }
45
45
  export interface FlickrConfig {
46
46
  baseURL: string;
47
+ proxyURL?: string;
47
48
  urlProps: {
48
49
  method?: string;
49
50
  api_key: string;
@@ -1 +1 @@
1
- {"version":3,"file":"config.types.d.ts","sourceRoot":"","sources":["../../../../src/components/config/config.types.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"config.types.d.ts","sourceRoot":"","sources":["../../../../src/components/config/config.types.ts"],"names":[],"mappings":"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"}
@@ -13,7 +13,7 @@ export declare function Callout({ variant, boxShape, layout, direction, gridColu
13
13
  export declare namespace Callout {
14
14
  var propTypes: {
15
15
  /** Visual variant selector (e.g., 'default', 'boxed', 'grid', 'full'). */
16
- variant: PropTypes.Requireable<"split" | "grid" | "overlay" | "default" | "boxed" | "boxed grid" | "full">;
16
+ variant: PropTypes.Requireable<"default" | "split" | "grid" | "overlay" | "boxed" | "boxed grid" | "full">;
17
17
  /** Corner/box shape for boxed variants. */
18
18
  boxShape: PropTypes.Requireable<"round" | "square" | "bevel" | "squircle">;
19
19
  /** Layout direction: 'horizontal' or 'vertical'. */
@@ -5,6 +5,13 @@ export declare function mergeDeep(a: any, b: any): {
5
5
  export declare function randomBetween(min: number, max: number): number;
6
6
  export declare function generateKey(): string;
7
7
  export declare function generateUUID(): string;
8
+ /**
9
+ * Simple universal hash function for strings (Java-style hashCode)
10
+ * Works in browser, Node, Next.js, etc. Not cryptographically secure.
11
+ * @param str - Input string to hash
12
+ * @returns String hash (may be negative, always string)
13
+ */
14
+ export declare function hashCode(str: string): string;
8
15
  export declare function capitalize(str: string): string;
9
16
  /** Capitalize the first letter of each word in `input`. */
10
17
  export declare function capitalizeWords(input: string): string;
@@ -1 +1 @@
1
- {"version":3,"file":"utilities.d.ts","sourceRoot":"","sources":["../../../../src/components/general/utilities.ts"],"names":[],"mappings":"AAKA,wBAAgB,QAAQ,CAAE,GAAG,EAAE,MAAM,oBASpC;AAID,wBAAgB,SAAS,CAAE,CAAC,EAAE,GAAG,EAAE,CAAC,EAAE,GAAG;;EAmBxC;AAID,wBAAgB,aAAa,CAAE,GAAG,EAAE,MAAM,EAAE,GAAG,EAAE,MAAM,UAOtD;AAID,wBAAgB,WAAW,WAc1B;AAID,wBAAgB,YAAY,WAK3B;AAID,wBAAgB,UAAU,CAAE,GAAG,EAAE,MAAM,UAEtC;AAID,2DAA2D;AAC3D,wBAAgB,eAAe,CAAC,KAAK,EAAE,MAAM,GAAG,MAAM,CAKrD;AAWD;;;;;;;;;;;;;;;;;;;;;;GAsBG;AACH,wBAAgB,SAAS,IAAI,MAAM,CASlC;AAID;;;;;;;;;;;GAWG;AACH,wBAAgB,iBAAiB,CAAC,QAAQ,EAAE,MAAM,GAAG,MAAM,CAiB1D;AAID,wBAAgB,YAAY,CAAE,YAAY,EAAE,MAAM,UAgCjD;AAID;;;;OAII;AACJ,wBAAgB,YAAY,SAoB3B;AAOD;;;GAGG;AACH,eAAO,MAAM,oBAAoB,UA0BhC,CAAC;AAKF;;GAEG;AACH,eAAO,MAAM,uBAAuB,UAQnC,CAAC;AAIF,eAAO,MAAM,wBAAwB,UAOpC,CAAC;AAKF;;GAEG;AACH,eAAO,MAAM,oBAAoB,UAoBhC,CAAC;AAIF,wBAAgB,eAAe,CAAE,GAAG,EAAE,MAAM,UAa3C;AAID,wBAAgB,YAAY,CAAC,GAAG,EAAE,MAAM,GAAG,MAAM,CAsBhD"}
1
+ {"version":3,"file":"utilities.d.ts","sourceRoot":"","sources":["../../../../src/components/general/utilities.ts"],"names":[],"mappings":"AAKA,wBAAgB,QAAQ,CAAE,GAAG,EAAE,MAAM,oBASpC;AAID,wBAAgB,SAAS,CAAE,CAAC,EAAE,GAAG,EAAE,CAAC,EAAE,GAAG;;EAmBxC;AAID,wBAAgB,aAAa,CAAE,GAAG,EAAE,MAAM,EAAE,GAAG,EAAE,MAAM,UAOtD;AAID,wBAAgB,WAAW,WAc1B;AAID,wBAAgB,YAAY,WAK3B;AAKD;;;;;GAKG;AACH,wBAAgB,QAAQ,CAAC,GAAG,EAAE,MAAM,GAAG,MAAM,CAS5C;AAKD,wBAAgB,UAAU,CAAE,GAAG,EAAE,MAAM,UAEtC;AAID,2DAA2D;AAC3D,wBAAgB,eAAe,CAAC,KAAK,EAAE,MAAM,GAAG,MAAM,CAKrD;AAWD;;;;;;;;;;;;;;;;;;;;;;GAsBG;AACH,wBAAgB,SAAS,IAAI,MAAM,CASlC;AAID;;;;;;;;;;;GAWG;AACH,wBAAgB,iBAAiB,CAAC,QAAQ,EAAE,MAAM,GAAG,MAAM,CAiB1D;AAID,wBAAgB,YAAY,CAAE,YAAY,EAAE,MAAM,UAgCjD;AAID;;;;OAII;AACJ,wBAAgB,YAAY,SAoB3B;AAOD;;;GAGG;AACH,eAAO,MAAM,oBAAoB,UA0BhC,CAAC;AAKF;;GAEG;AACH,eAAO,MAAM,uBAAuB,UAQnC,CAAC;AAIF,eAAO,MAAM,wBAAwB,UAOpC,CAAC;AAKF;;GAEG;AACH,eAAO,MAAM,oBAAoB,UAoBhC,CAAC;AAIF,wBAAgB,eAAe,CAAE,GAAG,EAAE,MAAM,UAa3C;AAID,wBAAgB,YAAY,CAAC,GAAG,EAAE,MAAM,GAAG,MAAM,CAsBhD"}
@@ -5,9 +5,9 @@ export declare function GetFlickrData(props: GetFlickrDataType): Promise<any>;
5
5
  export declare namespace GetFlickrData {
6
6
  var propTypes: {
7
7
  /** Flickr-specific query overrides */
8
- flickr: PropTypes.Requireable<object>;
8
+ flickr: PropTypes.Requireable<any>;
9
9
  /** Optional provider configuration for Flickr requests */
10
- config: PropTypes.Requireable<object>;
10
+ config: PropTypes.Requireable<any>;
11
11
  };
12
12
  }
13
13
  export type GenerateFlickrCardsType = InferProps<typeof GenerateFlickrCards.propTypes>;
@@ -1 +1 @@
1
- {"version":3,"file":"flickr.d.ts","sourceRoot":"","sources":["../../../../src/components/integrations/flickr.ts"],"names":[],"mappings":"AACA,OAAO,SAAS,EAAE,EAAE,UAAU,EAAE,MAAM,YAAY,CAAC;AAEnD,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,qBAAqB,CAAC;AAkF5D,MAAM,MAAM,iBAAiB,GAAG,UAAU,CAAC,OAAO,aAAa,CAAC,SAAS,CAAC,CAAC;AAC3E,wBAAgB,aAAa,CAAE,KAAK,EAAE,iBAAiB,gBA2DtD;yBA3De,aAAa;;QAN7B,sCAAsC;;QAErC,0DAA0D;;;;AA+E3D,MAAM,MAAM,uBAAuB,GAAG,UAAU,CAAC,OAAO,mBAAmB,CAAC,SAAS,CAAC,CAAC;AACvF,wBAAgB,mBAAmB,CAAC,KAAK,EAAE,uBAAuB;;;;;;;gBAejE;yBAfe,mBAAmB;;QANnC,yBAAyB;;QAExB,+BAA+B;;;;AAoDhC,MAAM,MAAM,iBAAiB,GAAG,UAAU,CAAC,OAAO,aAAa,CAAC,SAAS,CAAC,CAAC;AAC3E,wBAAgB,aAAa,CAAE,KAAK,EAAE,iBAAiB,2CA0CtD;yBA1Ce,aAAa;;QAjB7B,wBAAwB;;QAEvB,qBAAqB;;QAErB,qBAAqB;;QAErB,wBAAwB;;QAExB,wBAAwB;;QAExB,yDAAyD;;QAEzD,6EAA6E"}
1
+ {"version":3,"file":"flickr.d.ts","sourceRoot":"","sources":["../../../../src/components/integrations/flickr.ts"],"names":[],"mappings":"AACA,OAAO,SAAS,EAAE,EAAE,UAAU,EAAE,MAAM,YAAY,CAAC;AAKnD,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,qBAAqB,CAAC;AAoF5D,MAAM,MAAM,iBAAiB,GAAG,UAAU,CAAC,OAAO,aAAa,CAAC,SAAS,CAAC,CAAC;AAC3E,wBAAgB,aAAa,CAAC,KAAK,EAAE,iBAAiB,gBA2DrD;yBA3De,aAAa;;QAN5B,sCAAsC;;QAEtC,0DAA0D;;;;AA+E3D,MAAM,MAAM,uBAAuB,GAAG,UAAU,CAAC,OAAO,mBAAmB,CAAC,SAAS,CAAC,CAAC;AACvF,wBAAgB,mBAAmB,CAAC,KAAK,EAAE,uBAAuB;;;;;;;gBAejE;yBAfe,mBAAmB;;QANlC,yBAAyB;;QAEzB,+BAA+B;;;;AAoDhC,MAAM,MAAM,iBAAiB,GAAG,UAAU,CAAC,OAAO,aAAa,CAAC,SAAS,CAAC,CAAC;AAC3E,wBAAgB,aAAa,CAAC,KAAK,EAAE,iBAAiB,2CA0CrD;yBA1Ce,aAAa;;QAjB5B,wBAAwB;;QAExB,qBAAqB;;QAErB,qBAAqB;;QAErB,wBAAwB;;QAExB,wBAAwB;;QAExB,yDAAyD;;QAEzD,6EAA6E"}
@@ -1,7 +1,7 @@
1
1
  import PropTypes, { InferProps } from "prop-types";
2
2
  import './socialcard.css';
3
3
  export type SocialCardsType = InferProps<typeof SocialCards.propTypes>;
4
- export declare function SocialCards(props: SocialCardsType): import("react/jsx-runtime").JSX.Element | never[];
4
+ export declare function SocialCards(props: SocialCardsType): never[] | import("react/jsx-runtime").JSX.Element;
5
5
  export declare namespace SocialCards {
6
6
  var propTypes: {
7
7
  /** Map of feed source configurations (e.g., { instagram: { userID, entryCount }, blog: { url, entryCount }, ... }) */
@@ -1,3 +1,4 @@
1
+ export * from "./components/admin/site-health/google.api.integration";
1
2
  export * from "./components/admin/site-health/site-health-accessibility";
2
3
  export * from "./components/admin/site-health/site-health-axe-core";
3
4
  export * from "./components/admin/site-health/site-health-cloudwatch";
@@ -15,7 +15,6 @@ export * from "./components/general/well-known";
15
15
  export * from "./components/general/utilities";
16
16
  export * from "./components/integrations/contentful.delivery";
17
17
  export * from "./components/integrations/contentful.management";
18
- export * from "./components/integrations/flickr";
19
18
  export * from "./components/integrations/gemini-api.server";
20
19
  export * from "./components/integrations/googleplaces";
21
20
  export * from "./components/integrations/googlemap";
@@ -128,7 +128,7 @@ export declare const SmartImagePlayground: {
128
128
  quality: import("prop-types").Requireable<number>;
129
129
  placeholder: import("prop-types").Requireable<string>;
130
130
  variant: import("prop-types").Requireable<string>;
131
- }, "cloudinaryDomain" | "quality" | "width" | "style" | "title" | "cloudinaryEnv" | "cloudinaryTransforms" | "height" | "aboveFold" | "loading" | "preload" | "decoding" | "fetchPriority" | "sizes" | "srcSet" | "className" | "id" | "name" | "placeholder" | "variant">>> & React.ImgHTMLAttributes<HTMLImageElement>>;
131
+ }, "style" | "title" | "className" | "id" | "cloudinaryDomain" | "quality" | "width" | "cloudinaryEnv" | "cloudinaryTransforms" | "height" | "aboveFold" | "loading" | "preload" | "decoding" | "fetchPriority" | "sizes" | "srcSet" | "name" | "placeholder" | "variant">>> & React.ImgHTMLAttributes<HTMLImageElement>>;
132
132
  args: {
133
133
  src: string;
134
134
  alt: string;
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@pixelated-tech/components",
3
- "version": "3.14.1",
3
+ "version": "3.14.2",
4
4
  "type": "module",
5
5
  "private": false,
6
6
  "author": {
@@ -159,7 +159,7 @@
159
159
  "jsdom": "^29.0.1",
160
160
  "less-loader": "^12.3.2",
161
161
  "mini-css-extract-plugin": "^2.10.2",
162
- "next": "16.2.1",
162
+ "next": "16.2.2",
163
163
  "null-loader": "^4.0.1",
164
164
  "prop-types": "^15.8.1",
165
165
  "react": "19.2.4",
@@ -184,7 +184,7 @@
184
184
  "flatted": "^3.4.2"
185
185
  },
186
186
  "peerDependencies": {
187
- "next": "^16.2.1",
187
+ "next": "^16.2.2",
188
188
  "react": "^19.2.4",
189
189
  "react-dom": "^19.2.4"
190
190
  },