@eeacms/volto-eea-design-system 1.60.8 → 1.61.0

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.
package/.gitleaks.toml ADDED
@@ -0,0 +1,101 @@
1
+ title = "Betterleaks config"
2
+
3
+ [extend]
4
+ useDefault = true
5
+
6
+ [[rules]]
7
+ id = "secret-literal-assignment"
8
+ description = "Secret-like literal assignment in source, YAML, env and config files"
9
+ regex = '''(?i)([A-Za-z0-9_.-]*(?:password|passwd|pwd|api[_-]?key|apikey|access[_-]?key|secret[_-]?access[_-]?key|private[_-]?key|client[_-]?secret|consumer[_-]?key|consumer[_-]?secret|(?:auth|access|refresh|session|api|bearer|id|jwt|csrf|xsrf|oauth)[_-]?token|translate[_-]?auth|translation[_-]?auth|auth[_-]?password|auth[_-]?key|auth[_-]?credentials|database[_-]?url|connection[_-]?string)[A-Za-z0-9_.-]*)[ \t]*[:=][ \t]*["'']?([^"''[:space:]#{}$.][^"''\n#{}]{2,})["'']?'''
10
+ secretGroup = 2
11
+ keywords = [
12
+ "password",
13
+ "passwd",
14
+ "pwd",
15
+ "api_key",
16
+ "apikey",
17
+ "access_key",
18
+ "private_key",
19
+ "client_secret",
20
+ "consumer_key",
21
+ "consumer_secret",
22
+ "auth_token",
23
+ "access_token",
24
+ "refresh_token",
25
+ "session_token",
26
+ "api_token",
27
+ "bearer_token",
28
+ "id_token",
29
+ "jwt_token",
30
+ "csrf_token",
31
+ "xsrf_token",
32
+ "oauth_token",
33
+ "translate_auth",
34
+ "translation_auth",
35
+ "auth_password",
36
+ "auth_key",
37
+ "auth_credentials",
38
+ "database_url",
39
+ "connection_string"
40
+ ]
41
+ tags = ["literal-secret"]
42
+
43
+ [[rules]]
44
+ id = "env-short-secret-assignment"
45
+ description = "Uppercase env-style PASS/TOKEN/SECRET assignment"
46
+ regex = '''\b((?:PASS|TOKEN|SECRET|[A-Z0-9_]*(?:_PASS|_TOKEN|_SECRET|PASS_|TOKEN_|SECRET_)[A-Z0-9_]*))[ \t]*[:=][ \t]*["'']?([^"''[:space:]#{}$.][^"''\n#{}]{2,})["'']?'''
47
+ secretGroup = 2
48
+ keywords = [
49
+ "PASS",
50
+ "TOKEN",
51
+ "SECRET"
52
+ ]
53
+ tags = ["env", "literal-secret"]
54
+
55
+ [[rules]]
56
+ id = "standalone-sk-token"
57
+ description = "Standalone sk-* token not attached to a secret-like variable name"
58
+ regex = '''(?i)\b(sk-[A-Za-z0-9][A-Za-z0-9_-]{20,})\b'''
59
+ secretGroup = 1
60
+ entropy = 2.5
61
+ keywords = ["sk-"]
62
+ tags = ["standalone-token", "generic"]
63
+
64
+ [[rules]]
65
+ id = "dotenv-only-jest-setup"
66
+ description = ".env may only contain the committed Jest setup lines"
67
+ path = '''(?i)(^|/)\.env$'''
68
+ regex = '''(?m)^(.+)$'''
69
+ secretGroup = 1
70
+ tags = ["file", "dotenv"]
71
+ [[rules.allowlists]]
72
+ regexTarget = "match"
73
+ regexes = [
74
+ '''^JEST_USE_SETUP=OFF # Jest configuration variables: ON, OFF\r?$''',
75
+ ]
76
+
77
+ [[rules]]
78
+ id = "forbidden-secret-file"
79
+ description = "Forbidden secret-bearing file committed to repository"
80
+ path = '''(?i)(^|/)(\.env\..*|\.npmrc|\.pypirc|id_rsa|id_ed25519|.*\.(pem|key|p12|pfx|jks|kubeconfig))$'''
81
+ regex = '''(?s).{1,}'''
82
+ tags = ["file", "secret-file"]
83
+
84
+ [[allowlists]]
85
+ description = "Allow Jenkins SonarQube token environment variable reference"
86
+ regexTarget = "match"
87
+ regexes = [
88
+ '''SONAR_AUTH_TOKEN''',
89
+ ]
90
+
91
+ [[allowlists]]
92
+ description = "Allow generated documentation assets"
93
+ paths = [
94
+ '''^docs/assets/''',
95
+ ]
96
+
97
+ [[allowlists]]
98
+ description = "Semantic UI flag stylesheet uses ISO country-code selectors like `.pw:before` (Palau), not credentials"
99
+ paths = [
100
+ '''(^|/)theme/themes/eea/elements/flag\.overrides$''',
101
+ ]
package/CHANGELOG.md CHANGED
@@ -4,7 +4,24 @@ All notable changes to this project will be documented in this file. Dates are d
4
4
 
5
5
  Generated by [`auto-changelog`](https://github.com/CookPete/auto-changelog).
6
6
 
7
- ### [1.60.8](https://github.com/eea/volto-eea-design-system/compare/1.60.7...1.60.8) - 10 June 2026
7
+ ### [1.61.0](https://github.com/eea/volto-eea-design-system/compare/1.60.8...1.61.0) - 7 September 2026
8
+
9
+ #### :rocket: New Features
10
+
11
+ - feat: tie header search icon to the AI summary preference - refs #307513 [Miu Razvan - [`7476093`](https://github.com/eea/volto-eea-design-system/commit/747609399df476b6092b49e91760db5068c0010b)]
12
+
13
+ #### :bug: Bug Fixes
14
+
15
+ - fix: Add betterleaks github action - refs #304517 [dobri1408 - [`dd4b4da`](https://github.com/eea/volto-eea-design-system/commit/dd4b4da5ef18454ac76c1cbff1e2a7d5baa5c550)]
16
+
17
+ #### :house: Internal changes
18
+
19
+ - chore(gitleaks): allowlist flag.overrides stylesheet [Claudia Ifrim - [`d3ac637`](https://github.com/eea/volto-eea-design-system/commit/d3ac637ed1396c04e600971abf50b26ae3bcdaa3)]
20
+
21
+ #### :hammer_and_wrench: Others
22
+
23
+ - test: pin Chromium version 149 to work with Cypress [valentinab25 - [`0be5062`](https://github.com/eea/volto-eea-design-system/commit/0be5062d18dcff0350c7e37a2b42ae82be66cd63)]
24
+ ### [1.60.8](https://github.com/eea/volto-eea-design-system/compare/1.60.7...1.60.8) - 11 June 2026
8
25
 
9
26
  #### :bug: Bug Fixes
10
27
 
@@ -90,8 +107,6 @@ Generated by [`auto-changelog`](https://github.com/CookPete/auto-changelog).
90
107
 
91
108
  #### :house: Internal changes
92
109
 
93
- - chore: [JENKINSFILE] add package version in sonarqube [valentinab25 - [`a2500ee`](https://github.com/eea/volto-eea-design-system/commit/a2500ee91c3d926183403b7e55ef717f697eb736)]
94
- - chore: [JENKINSFILE] use sonarqube branches [EEA Jenkins - [`79058be`](https://github.com/eea/volto-eea-design-system/commit/79058be6ad228970127ee388bbc78ad69b92465b)]
95
110
 
96
111
  #### :hammer_and_wrench: Others
97
112
 
@@ -128,7 +143,6 @@ Generated by [`auto-changelog`](https://github.com/CookPete/auto-changelog).
128
143
  #### :hammer_and_wrench: Others
129
144
 
130
145
  - add rule for eeacms/countup to jest-config.js [David Ichim - [`59244c2`](https://github.com/eea/volto-eea-design-system/commit/59244c2e85447766e9e2a051e080652d93f67458)]
131
- - Add Sonarqube tag using bise-frontend addons list [EEA Jenkins - [`314266b`](https://github.com/eea/volto-eea-design-system/commit/314266bd8131b8ade427f23f81a084714f0104af)]
132
146
  ### [1.40.0](https://github.com/eea/volto-eea-design-system/compare/1.39.1...1.40.0) - 4 November 2025
133
147
 
134
148
  ### [1.39.1](https://github.com/eea/volto-eea-design-system/compare/1.39.0...1.39.1) - 22 September 2025
@@ -204,10 +218,8 @@ Generated by [`auto-changelog`](https://github.com/CookPete/auto-changelog).
204
218
 
205
219
  #### :hammer_and_wrench: Others
206
220
 
207
- - Add Sonarqube tag using fise-frontend addons list [EEA Jenkins - [`d3a993f`](https://github.com/eea/volto-eea-design-system/commit/d3a993f7c9f687d709e1c8bc48b4972aca7a161e)]
208
221
  - Fix with sed the issue from line 714 missing } [David Ichim - [`e4e10a0`](https://github.com/eea/volto-eea-design-system/commit/e4e10a0a8a82c1fa20dcff9fa8178a6a938a7fd5)]
209
222
  - Fixed link for don't use more than six colors [David Ichim - [`f42c698`](https://github.com/eea/volto-eea-design-system/commit/f42c69895258291ef72c0299e348f5671b2c127b)]
210
- - Add Sonarqube tag using ied-frontend addons list [EEA Jenkins - [`a8fa4e1`](https://github.com/eea/volto-eea-design-system/commit/a8fa4e157f6351939fd6ee126f733efc1adf6dfe)]
211
223
  - lint fix [David Ichim - [`5d4d60a`](https://github.com/eea/volto-eea-design-system/commit/5d4d60ac305b8694fec64a9cce625a1015e8486f)]
212
224
  ### [1.36.3](https://github.com/eea/volto-eea-design-system/compare/1.36.2...1.36.3) - 4 March 2025
213
225
 
@@ -241,7 +253,6 @@ Generated by [`auto-changelog`](https://github.com/CookPete/auto-changelog).
241
253
  #### :hammer_and_wrench: Others
242
254
 
243
255
  - Update package.json [Ichim David - [`40ae6a7`](https://github.com/eea/volto-eea-design-system/commit/40ae6a70377c54256f7365a12bded4e25b0c322e)]
244
- - Add Sonarqube tag using bise-frontend addons list [EEA Jenkins - [`b433236`](https://github.com/eea/volto-eea-design-system/commit/b433236f3e264304c86082281da90384da7ab0ff)]
245
256
  ### [1.34.1](https://github.com/eea/volto-eea-design-system/compare/1.34.0...1.34.1) - 14 October 2024
246
257
 
247
258
  ### [1.34.0](https://github.com/eea/volto-eea-design-system/compare/1.33.1...1.34.0) - 11 October 2024
@@ -323,7 +334,6 @@ Generated by [`auto-changelog`](https://github.com/CookPete/auto-changelog).
323
334
 
324
335
  #### :hammer_and_wrench: Others
325
336
 
326
- - Add Sonarqube tag using marine-frontend addons list [EEA Jenkins - [`dfa1d1b`](https://github.com/eea/volto-eea-design-system/commit/dfa1d1bd53ae63b20aa0ef64c37bf71faf376290)]
327
337
  ### [1.31.0](https://github.com/eea/volto-eea-design-system/compare/1.23.8...1.31.0) - 22 May 2024
328
338
 
329
339
  #### :boom: Breaking Change
@@ -352,7 +362,6 @@ Generated by [`auto-changelog`](https://github.com/CookPete/auto-changelog).
352
362
 
353
363
  #### :hammer_and_wrench: Others
354
364
 
355
- - Add Sonarqube tag using insitu-frontend addons list [EEA Jenkins - [`2ccf437`](https://github.com/eea/volto-eea-design-system/commit/2ccf4372f93d56ce3cc8bfd66de5c9fbb2698cf4)]
356
365
  ### [1.23.5](https://github.com/eea/volto-eea-design-system/compare/1.23.4...1.23.5) - 5 April 2024
357
366
 
358
367
  #### :nail_care: Enhancements
@@ -388,8 +397,6 @@ Generated by [`auto-changelog`](https://github.com/CookPete/auto-changelog).
388
397
  - Update package.json version to 1.23.0 [David Ichim - [`4b2eeee`](https://github.com/eea/volto-eea-design-system/commit/4b2eeee398b771ac80111e1755f67273c8940ced)]
389
398
  - fixed merge conflict [David Ichim - [`efe0f4b`](https://github.com/eea/volto-eea-design-system/commit/efe0f4b7df1782f5143e1bee31c997801427d35c)]
390
399
  - Update react-slick version to 0.30.1 [David Ichim - [`62d4570`](https://github.com/eea/volto-eea-design-system/commit/62d457014866fc075a3203fd0f9e66354aa73fe5)]
391
- - Add Sonarqube tag using freshwater-frontend addons list [EEA Jenkins - [`c6c74f0`](https://github.com/eea/volto-eea-design-system/commit/c6c74f049ee787632b8ad0ec0f28531ac4d0f20f)]
392
- - Add Sonarqube tag using insitu-frontend addons list [EEA Jenkins - [`d3d7793`](https://github.com/eea/volto-eea-design-system/commit/d3d779363caa10f384d829a7e4242c5d54268099)]
393
400
  ### [1.23.0](https://github.com/eea/volto-eea-design-system/compare/1.22.7...1.23.0) - 19 February 2024
394
401
 
395
402
  ### [1.22.7](https://github.com/eea/volto-eea-design-system/compare/1.22.6...1.22.7) - 22 January 2024
@@ -475,11 +482,7 @@ Generated by [`auto-changelog`](https://github.com/CookPete/auto-changelog).
475
482
  - Add dropdown test case to Header component [David Ichim - [`9ea3234`](https://github.com/eea/volto-eea-design-system/commit/9ea3234c2c0f1c819c7c2b54a75c56cda7812c56)]
476
483
  - Remove unused import in Header.test.jsx [David Ichim - [`082069e`](https://github.com/eea/volto-eea-design-system/commit/082069e1f057786e0f1fb00c98d54b8e03b5d9c5)]
477
484
  - Added some tests for TopDropdownMenu mobile and dropdown interaction [David Ichim - [`9d24488`](https://github.com/eea/volto-eea-design-system/commit/9d24488c1e97b2b1b14bd9bd8cb6f5b68414794b)]
478
- - test: [JENKINS] Run cypress in started frontend container [valentinab25 - [`eadf018`](https://github.com/eea/volto-eea-design-system/commit/eadf018aa1f32d310619ce4ef08f9b11950a20dc)]
479
485
  - Lint fix [David Ichim - [`e29fd50`](https://github.com/eea/volto-eea-design-system/commit/e29fd50ee73477007dcf94a268596e6c11176d7b)]
480
- - test: [JENKINS] Add cpu limit on cypress docker [valentinab25 - [`947cb92`](https://github.com/eea/volto-eea-design-system/commit/947cb929c01ebb6f46bf124833fe1fec0f385edb)]
481
- - test: [JENKINS] Increase shm-size to cypress docker [valentinab25 - [`8356dfe`](https://github.com/eea/volto-eea-design-system/commit/8356dfe929039dcd165af0692cbbfc771a0f7fb4)]
482
- - test: [JENKINS] Improve cypress time [valentinab25 - [`e38f17e`](https://github.com/eea/volto-eea-design-system/commit/e38f17ed735e743e59df7d06ca723c1218bdb569)]
483
486
  ### [1.20.0](https://github.com/eea/volto-eea-design-system/compare/1.19.0...1.20.0) - 2 November 2023
484
487
 
485
488
  #### :rocket: New Features
@@ -512,9 +515,6 @@ Generated by [`auto-changelog`](https://github.com/CookPete/auto-changelog).
512
515
 
513
516
  #### :house: Internal changes
514
517
 
515
- - chore: [JENKINS] do not run tests on PR comments [valentinab25 - [`51b68fc`](https://github.com/eea/volto-eea-design-system/commit/51b68fc76a956996e01521b784262c67e7094d35)]
516
- - chore: [JENKINS] add comment step [valentinab25 - [`5022758`](https://github.com/eea/volto-eea-design-system/commit/50227587db2c72d17e26e7b66f28d4c09b760873)]
517
- - chore: [JENKINS] Refactor automated testing [valentinab25 - [`a70ca64`](https://github.com/eea/volto-eea-design-system/commit/a70ca642918f578d6737d975e4769bac8312f48d)]
518
518
  - chore: husky, lint-staged use fixed versions [valentinab25 - [`59ecb8e`](https://github.com/eea/volto-eea-design-system/commit/59ecb8e28b259472303324f9655b0cbbcbbf9c23)]
519
519
 
520
520
  #### :hammer_and_wrench: Others
@@ -640,7 +640,6 @@ Generated by [`auto-changelog`](https://github.com/CookPete/auto-changelog).
640
640
 
641
641
  #### :hammer_and_wrench: Others
642
642
 
643
- - test: Fix eslint and yarn i18n [Alin Voinea - [`331149f`](https://github.com/eea/volto-eea-design-system/commit/331149f5eb16a9cc6f2d996f7b793909773063c2)]
644
643
  - i18n: Add en [Alin Voinea - [`4584295`](https://github.com/eea/volto-eea-design-system/commit/458429530d993c27cfb962ddfe2f376f3568bf01)]
645
644
  - Release 1.17.0 [Alin Voinea - [`e3c25ee`](https://github.com/eea/volto-eea-design-system/commit/e3c25eeeca5e863244faae396b5aa915d0702633)]
646
645
  - test: add unit tests for DS components - refs #254313 [ana-oprea - [`0c4d4d1`](https://github.com/eea/volto-eea-design-system/commit/0c4d4d118b8e13082c576dc5c2dce6a715f49006)]
@@ -750,7 +749,6 @@ Generated by [`auto-changelog`](https://github.com/CookPete/auto-changelog).
750
749
  #### :hammer_and_wrench: Others
751
750
 
752
751
  - Release 1.14.0 [Alin Voinea - [`cb9084f`](https://github.com/eea/volto-eea-design-system/commit/cb9084fb2246dc1b729e12a419a26daa12c26f7a)]
753
- - test: [JENKINS] set pipe fail [valentinab25 - [`1cdfc39`](https://github.com/eea/volto-eea-design-system/commit/1cdfc39d08f1ae301dea57f1e4be5265c4a4c6f9)]
754
752
  - test: try storybook upload [valentinab25 - [`6d5833d`](https://github.com/eea/volto-eea-design-system/commit/6d5833d4419d00f1ac04c9eb78a0884214f9a494)]
755
753
  - test: remove useless code [valentinab25 - [`2c14b0c`](https://github.com/eea/volto-eea-design-system/commit/2c14b0ce4596cfc11a81b9762677596d1861acfe)]
756
754
  ### [1.13.2](https://github.com/eea/volto-eea-design-system/compare/1.13.1...1.13.2) - 13 June 2023
@@ -789,7 +787,6 @@ Generated by [`auto-changelog`](https://github.com/CookPete/auto-changelog).
789
787
 
790
788
  #### :house: Internal changes
791
789
 
792
- - chore: [JENKINS] Deprecate circularity website [valentinab25 - [`fb2b166`](https://github.com/eea/volto-eea-design-system/commit/fb2b166d64f95a1c183901abfe0fe0254d1bbc7a)]
793
790
 
794
791
  #### :house: Documentation changes
795
792
 
@@ -1123,7 +1120,6 @@ Generated by [`auto-changelog`](https://github.com/CookPete/auto-changelog).
1123
1120
 
1124
1121
  - Release 1.0.0-beta.5 [Alin Voinea - [`e4417e1`](https://github.com/eea/volto-eea-design-system/commit/e4417e121477511c350ae3fbe4e70aadb445ed86)]
1125
1122
  - better useOnScreen hook [Andrei Grigore - [`c214b6b`](https://github.com/eea/volto-eea-design-system/commit/c214b6b76443f81c795ce2f3aa457562ec088b30)]
1126
- - Add Sonarqube tag using eea-website-frontend addons list [EEA Jenkins - [`b227cf8`](https://github.com/eea/volto-eea-design-system/commit/b227cf8a8c44b9d91e9fda8a7999fb0a42bacdca)]
1127
1123
  - feature(mobile): increased performance by lazy loading footer images #303 from eea/increase_performance [ichim-david - [`80d1df1`](https://github.com/eea/volto-eea-design-system/commit/80d1df1c459680331d486f9e8e6a95c9db0adbf6)]
1128
1124
  - prettier [David Ichim - [`a7f8384`](https://github.com/eea/volto-eea-design-system/commit/a7f838470c1bcc4e2be115d514d92a1b686a5e9b)]
1129
1125
  - fixed less build failure due to changes in footer.less [David Ichim - [`190bc8c`](https://github.com/eea/volto-eea-design-system/commit/190bc8cfa88191b45808f1e27c6e2737ee3d15b1)]
@@ -1194,7 +1190,6 @@ Generated by [`auto-changelog`](https://github.com/CookPete/auto-changelog).
1194
1190
 
1195
1191
  #### :house: Internal changes
1196
1192
 
1197
- - chore(docusaurus): ignore website/.yarn [Giorgos Stamatis - [`0b33ffd`](https://github.com/eea/volto-eea-design-system/commit/0b33ffd1dda61b126e3cc5ff48888124d6aee41b)]
1198
1193
  - style(header): react syntax fix [Antonis Tarantilis - [`3add127`](https://github.com/eea/volto-eea-design-system/commit/3add1271c785a92bea0ef925d7bc562cef1e0d92)]
1199
1194
 
1200
1195
  #### :house: Documentation changes
@@ -1391,7 +1386,6 @@ Generated by [`auto-changelog`](https://github.com/CookPete/auto-changelog).
1391
1386
 
1392
1387
  - Release 1.0.0-alpha.10 [Alin Voinea - [`7014d08`](https://github.com/eea/volto-eea-design-system/commit/7014d080ce114bd0bc039abeecbd7229333b0971)]
1393
1388
  - Add variable definitions [kreafox - [`293fe65`](https://github.com/eea/volto-eea-design-system/commit/293fe65e2f24e6290e1286229169a77f9be4750e)]
1394
- - Add Sonarqube tag using advisory-board-frontend addons list [EEA Jenkins - [`ef58a6f`](https://github.com/eea/volto-eea-design-system/commit/ef58a6f5ad8deea26b1395a86778fe1159b7617b)]
1395
1389
  - Back to dev [Alin Voinea - [`31d4616`](https://github.com/eea/volto-eea-design-system/commit/31d461662b9184a7bbe190e86f3c47fab39229fe)]
1396
1390
  ### [1.0.0-alpha.9](https://github.com/eea/volto-eea-design-system/compare/1.0.0-alpha.8...1.0.0-alpha.9) - 28 December 2022
1397
1391
 
@@ -1449,7 +1443,6 @@ Generated by [`auto-changelog`](https://github.com/CookPete/auto-changelog).
1449
1443
  - bump package version [David Ichim - [`b4628be`](https://github.com/eea/volto-eea-design-system/commit/b4628bed134abc76e38a243d4e98143e19cef989)]
1450
1444
  - feature(docusaurus, storybook): logos selection for sites plus inverted options #253 from eea/doc-logo-page [ichim-david - [`dbfc90d`](https://github.com/eea/volto-eea-design-system/commit/dbfc90d035dc40e9d4054347f00fde4de486d63d)]
1451
1445
  - (feat): Add ability to disable the language select from website top menu - refs #158616 [dobri1408 - [`411c8e4`](https://github.com/eea/volto-eea-design-system/commit/411c8e4afaf0b2b9edfdeeecdca22aa4cc41f329)]
1452
- - Add Sonarqube tag using advisory-board-frontend addons list [EEA Jenkins - [`c4769e9`](https://github.com/eea/volto-eea-design-system/commit/c4769e987d525f5dcafac8e6cf8a89fd8111667d)]
1453
1446
  - test(Jenkins): Run tests and cypress with latest canary @plone/volto [Alin Voinea - [`92feea0`](https://github.com/eea/volto-eea-design-system/commit/92feea09796c9ef0530f65fa1d34139905133215)]
1454
1447
  - Proof reading page header section [ichim-david - [`230239e`](https://github.com/eea/volto-eea-design-system/commit/230239e1b22734fb8606656985bc5e513731e244)]
1455
1448
  ### [1.0.0-alpha.7](https://github.com/eea/volto-eea-design-system/compare/1.0.0-alpha.6...1.0.0-alpha.7) - 16 December 2022
@@ -1481,7 +1474,6 @@ Generated by [`auto-changelog`](https://github.com/CookPete/auto-changelog).
1481
1474
  #### :hammer_and_wrench: Others
1482
1475
 
1483
1476
  - Release 1.0.0-alpha.7 [Alin Voinea - [`7e66bcc`](https://github.com/eea/volto-eea-design-system/commit/7e66bcc296b389bc55073e7f99681534977dce3a)]
1484
- - Add Sonarqube tag using cca-frontend addons list [EEA Jenkins - [`ce47e9b`](https://github.com/eea/volto-eea-design-system/commit/ce47e9b163bcb4eda988e3a87718b54ffbd3f99f)]
1485
1477
  - added back descriptionDistance variable until package release [David Ichim - [`3af811a`](https://github.com/eea/volto-eea-design-system/commit/3af811a8d86a132e16de118697ba5a4302a8a4da)]
1486
1478
  - Back to dev [Alin Voinea - [`cb531c9`](https://github.com/eea/volto-eea-design-system/commit/cb531c933c907bdbb88c9de0f1df2eb7ce899a4c)]
1487
1479
  - Proper paths if the package is not installed, but in development [Tiberiu Ichim - [`7a2655f`](https://github.com/eea/volto-eea-design-system/commit/7a2655f7cf9d3c687f172eefcf2b4cff4b12f832)]
@@ -1569,7 +1561,6 @@ Generated by [`auto-changelog`](https://github.com/CookPete/auto-changelog).
1569
1561
  #### :hammer_and_wrench: Others
1570
1562
 
1571
1563
  - feature(Docusaurus): Updates on color palette information including thematic websites #231 from eea/refactor-docusaurus [ichim-david - [`ec7843d`](https://github.com/eea/volto-eea-design-system/commit/ec7843dea07f626dc1c71ae1baa8bb5b0caa52f3)]
1572
- - Upgrade Jenkinsfile storybook to yarn 3 [Alin Voinea - [`d20de8d`](https://github.com/eea/volto-eea-design-system/commit/d20de8d6e21a14660b7b5125a80218a8a6f19e62)]
1573
1564
  - Back to dev [Alin Voinea - [`563fbc5`](https://github.com/eea/volto-eea-design-system/commit/563fbc5fac0d4b0295690d0a3a4e04271753f18a)]
1574
1565
  - perf(docusaurus): added remixicon and roboto locally [Giorgos Stamatis - [`b67b1a7`](https://github.com/eea/volto-eea-design-system/commit/b67b1a72bc9cdc7c62a25967e81b430f8b62d558)]
1575
1566
  ### [1.0.0-alpha.4](https://github.com/eea/volto-eea-design-system/compare/1.0.0-alpha.3...1.0.0-alpha.4) - 22 November 2022
@@ -1662,7 +1653,6 @@ Generated by [`auto-changelog`](https://github.com/CookPete/auto-changelog).
1662
1653
  - modified left value of full width classes with toolbars [David Ichim - [`70d82d4`](https://github.com/eea/volto-eea-design-system/commit/70d82d47fbc2c00a3a709de0d5c087c8443a1eae)]
1663
1654
  - WIP settings column grid width when using full size class [David Ichim - [`affc7ac`](https://github.com/eea/volto-eea-design-system/commit/affc7ac99527aa92d5a192d90dc8c9ec46a66404)]
1664
1655
  - fix eslint [Miu Razvan - [`30c52e4`](https://github.com/eea/volto-eea-design-system/commit/30c52e4eb443555ca44c1b35df064e73d52c0a8b)]
1665
- - Add Sonarqube tag using circularity-frontend addons list [EEA Jenkins - [`76a41c7`](https://github.com/eea/volto-eea-design-system/commit/76a41c786995fd54afe4d1c345de939f683ffa70)]
1666
1656
  - fix broken variable call for contentBox.variables introduced in previous commit by mistake [David Ichim - [`d249c11`](https://github.com/eea/volto-eea-design-system/commit/d249c1160d19bedb174a2fde3fdab48d9ce297d4)]
1667
1657
  - clean up [Miu Razvan - [`89f3cb3`](https://github.com/eea/volto-eea-design-system/commit/89f3cb33d70a14806a953f0acd1807e94169ee5c)]
1668
1658
  - Feature(container): flexible container size #260 from eea/feature-flexible-container [ichim-david - [`8f84c5b`](https://github.com/eea/volto-eea-design-system/commit/8f84c5b67afe9cbe01b2a44a8f92a9a554e1036a)]
@@ -1764,7 +1754,6 @@ Generated by [`auto-changelog`](https://github.com/CookPete/auto-changelog).
1764
1754
 
1765
1755
  #### :nail_care: Enhancements
1766
1756
 
1767
- - change(jenkins): added yarn policy for storybook building [ichim-david - [`3d1b844`](https://github.com/eea/volto-eea-design-system/commit/3d1b844efeea40b99c00c9aa97089e0a0be58a57)]
1768
1757
  - change(docusaurus): typography updates [ichim-david - [`60a93a4`](https://github.com/eea/volto-eea-design-system/commit/60a93a4aece4e478ae13c2dfe697fd3703aa178a)]
1769
1758
  - change(accordion): allow customization of accordion title with css variables [David Ichim - [`15e7d27`](https://github.com/eea/volto-eea-design-system/commit/15e7d27f02c640df582f51a51ef36e645723f842)]
1770
1759
  - change(content-box): added css variables that will set text color and background for children [David Ichim - [`86cac53`](https://github.com/eea/volto-eea-design-system/commit/86cac531cc94386b6022e1be80dba826b39f2443)]
@@ -1799,7 +1788,6 @@ Generated by [`auto-changelog`](https://github.com/CookPete/auto-changelog).
1799
1788
  #### :hammer_and_wrench: Others
1800
1789
 
1801
1790
  - Merge pull request #243 from eea/develop [ichim-david - [`576564c`](https://github.com/eea/volto-eea-design-system/commit/576564ce395ee6ac9e74bcb19d5c4f0b4cd3c33b)]
1802
- - Add Sonarqube tag using eea-website-frontend addons list [EEA Jenkins - [`4a5be6e`](https://github.com/eea/volto-eea-design-system/commit/4a5be6eec78dae230626e61ea2c77e7f3c62510d)]
1803
1791
  - Back to dev [Alin Voinea - [`b251255`](https://github.com/eea/volto-eea-design-system/commit/b251255a7ed14d8290717726d86eaf54b87aa2d4)]
1804
1792
  ### [0.9.0](https://github.com/eea/volto-eea-design-system/compare/0.8.1...0.9.0) - 19 September 2022
1805
1793
 
@@ -2555,10 +2543,6 @@ Generated by [`auto-changelog`](https://github.com/CookPete/auto-changelog).
2555
2543
  #### :hammer_and_wrench: Others
2556
2544
 
2557
2545
  - prettier changes [David Ichim - [`134da52`](https://github.com/eea/volto-eea-design-system/commit/134da52549b9d5eac5a12b7ad3005073500ac2c4)]
2558
- - [JENKINSFILE] remove debug, add error per stage [valentinab25 - [`903eecd`](https://github.com/eea/volto-eea-design-system/commit/903eecdb6bcbb8d73cff5e447d80c85e2a2c906d)]
2559
- - [JENKINSFILE] mention comment author in comment [valentinab25 - [`39a26aa`](https://github.com/eea/volto-eea-design-system/commit/39a26aa1ff0f35e93e8df9f442c29c5ab79ff493)]
2560
- - [JENKINSFILE] format PR comments [valentinab25 - [`739438c`](https://github.com/eea/volto-eea-design-system/commit/739438c64950c745d630d1998314a2bed595b23a)]
2561
- - [JENKINSFILE] Add failure comment, no jenkins fail [valentinab25 - [`c325bf1`](https://github.com/eea/volto-eea-design-system/commit/c325bf14f3fb0da150f2a56cda0a9f03d8d8a628)]
2562
2546
  ### [0.2.3](https://github.com/eea/volto-eea-design-system/compare/0.2.2...0.2.3) - 29 April 2022
2563
2547
 
2564
2548
  #### :rocket: New Features
@@ -2983,7 +2967,6 @@ Generated by [`auto-changelog`](https://github.com/CookPete/auto-changelog).
2983
2967
  - set profile section overflow to auto [nileshgulia1 - [`71ab47f`](https://github.com/eea/volto-eea-design-system/commit/71ab47f89a433233c14b394c3824e607dd18a393)]
2984
2968
  - remove segment custom width [nileshgulia1 - [`1d3ea40`](https://github.com/eea/volto-eea-design-system/commit/1d3ea40f98bbdc1eab95b4da739a659b5e29ec16)]
2985
2969
  - fix profile section css overflow [nileshgulia1 - [`db5126f`](https://github.com/eea/volto-eea-design-system/commit/db5126fc902e191d1e18fb7e4c54877c8d8786e6)]
2986
- - Add Sonarqube tag using eea-website-frontend addons list [EEA Jenkins - [`647a6e3`](https://github.com/eea/volto-eea-design-system/commit/647a6e3e2093f2c4884c356eb148453551c8f33f)]
2987
2970
  - fix warning related to proptype [nileshgulia1 - [`946c6c6`](https://github.com/eea/volto-eea-design-system/commit/946c6c6bc9dece0985ae4b9f9cad6ece2be0ff2c)]
2988
2971
  - removed override already present in card.less [ichim-david - [`50d2ab2`](https://github.com/eea/volto-eea-design-system/commit/50d2ab26f85c8f409da02ec128cc1df34848ca69)]
2989
2972
  - update [Miu Razvan - [`bbcab87`](https://github.com/eea/volto-eea-design-system/commit/bbcab87ef4c8475f347f0daf4ab7e428e69c2316)]
@@ -3070,7 +3053,6 @@ Generated by [`auto-changelog`](https://github.com/CookPete/auto-changelog).
3070
3053
  - remove segment custom width [nileshgulia1 - [`4a60d84`](https://github.com/eea/volto-eea-design-system/commit/4a60d84d5fe76578b7760aa1dad6eef9a20916a7)]
3071
3054
  - Reformat header.less [Tiberiu Ichim - [`1f99dfc`](https://github.com/eea/volto-eea-design-system/commit/1f99dfc82c165304ca5600ce5138c1233615ab69)]
3072
3055
  - fix profile section css overflow [nileshgulia1 - [`8fd2654`](https://github.com/eea/volto-eea-design-system/commit/8fd265413149f1b5e033dffa0fbcb5ef5ecad15f)]
3073
- - Add Sonarqube tag using eea-website-frontend addons list [EEA Jenkins - [`6051724`](https://github.com/eea/volto-eea-design-system/commit/6051724437a38675e659c797bb5586ef81286ec0)]
3074
3056
  - fix warning related to proptype [nileshgulia1 - [`824b9be`](https://github.com/eea/volto-eea-design-system/commit/824b9beff77aae139882cd50a1d670a02ec6f723)]
3075
3057
  - refactor breadcrumbs component, make it functional and customizable [nileshgulia1 - [`4ec374e`](https://github.com/eea/volto-eea-design-system/commit/4ec374e20565eb0a5aed0ff67a02cd6f77eba1f0)]
3076
3058
  - removed override already present in card.less [ichim-david - [`93c4e5a`](https://github.com/eea/volto-eea-design-system/commit/93c4e5aac9cc85ff2cc6c04180f6655d5f5616dc)]
@@ -3639,7 +3621,6 @@ Generated by [`auto-changelog`](https://github.com/CookPete/auto-changelog).
3639
3621
  - Refs #142010 - Optimize Volto-addons gitflow pipelines [valentinab25 - [`3af46d2`](https://github.com/eea/volto-eea-design-system/commit/3af46d2b14fa0b1ef44736f25b0f9ac93b23d18d)]
3640
3622
  - Refs #140454 updated eea-design-system readme with extra info on package contents [David Ichim - [`d2efc3d`](https://github.com/eea/volto-eea-design-system/commit/d2efc3ddae7b91efc82cf3bce8fb8e42d696a780)]
3641
3623
  - Refs #140454 add h1 to the list of elements that are max 800px and centered [David Ichim - [`7d3c30f`](https://github.com/eea/volto-eea-design-system/commit/7d3c30f409aa4cb43810839f8960589456cc1b2e)]
3642
- - Add Sonarqube tag using ims-frontend addons list [EEA Jenkins - [`8d657d0`](https://github.com/eea/volto-eea-design-system/commit/8d657d056cde5163cfe90ac66bc973f55d82e5e9)]
3643
3624
  ### [0.1.0](https://github.com/eea/volto-eea-design-system/compare/0.0.1...0.1.0) - 17 November 2021
3644
3625
 
3645
3626
  #### :hammer_and_wrench: Others
package/README.md CHANGED
@@ -119,6 +119,65 @@ See [RELEASE.md](https://github.com/eea/volto-eea-design-system/blob/master/RELE
119
119
 
120
120
  See [DEVELOP.md](https://github.com/eea/volto-eea-design-system/blob/master/DEVELOP.md).
121
121
 
122
+ ## Secret Scanning
123
+
124
+ This repository uses the Betterleaks GitHub Action to scan the current
125
+ repository content on every push and pull request. The scan uses the rules in
126
+ `.gitleaks.toml` and uploads a `betterleaks-report` artifact when a finding is
127
+ detected.
128
+
129
+ If the optional SMTP secrets are configured, failed scans also send an email to
130
+ the last commit committer. The workflow expects these repository or
131
+ organization secrets:
132
+
133
+ - `SMTP_URL`
134
+ - `SMTP_PORT` (optional, defaults to `25`)
135
+ - `SMTP_EMAIL`
136
+ - `SMTP_PASSWORD` (optional if the SMTP server does not require authentication)
137
+
138
+ Port `465` is sent with direct TLS; other ports use the default SMTP handshake.
139
+ The email includes a short finding summary from the redacted Betterleaks report,
140
+ including the redacted matched line from each finding.
141
+
142
+ There are three common outcomes:
143
+
144
+ 1. **Everything is OK.** The `Betterleaks / Scan for secrets` check is green and
145
+ no action is needed. Regular references to runtime values are OK, for example:
146
+
147
+ ```js
148
+ const tokenFromCookie = req.universalCookies.get('auth_token');
149
+ ```
150
+
151
+ 2. **A real secret was found.** The check is red and the workflow log asks you to
152
+ download the `betterleaks-report` artifact. Open the artifact from the GitHub
153
+ Actions run and check the reported file, line and rule. Remove the committed
154
+ value, move it to the proper secret store, and rotate it if it was exposed.
155
+ A report entry looks like this:
156
+
157
+ ```json
158
+ {
159
+ "RuleID": "secret-literal-assignment",
160
+ "File": "src/config.js",
161
+ "StartLine": 12,
162
+ "Secret": "[REDACTED]"
163
+ }
164
+ ```
165
+
166
+ 3. **The finding is a false positive.** Keep the value only if it is clearly not
167
+ sensitive, such as a test fixture, placeholder, or public example. Add
168
+ `betterleaks:allow` on the same line and include a short explanation in the
169
+ pull request.
170
+
171
+ ```js
172
+ const testPassword = 'admin'; //betterleaks:allow
173
+ ```
174
+
175
+ ```yaml
176
+ password: "admin" #betterleaks:allow
177
+ ```
178
+
179
+ Do not add `betterleaks:allow` to real credentials.
180
+
122
181
  ## Copyright and license
123
182
 
124
183
  The Initial Owner of the Original Code is European Environment Agency (EEA).
package/RELEASE.md CHANGED
@@ -33,7 +33,7 @@ Release-it is a tool that automates 4 important steps in the release process:
33
33
  To configure the authentification, you need to export GITHUB_TOKEN for [GitHub](https://github.com/settings/tokens)
34
34
 
35
35
  ```
36
- export GITHUB_TOKEN=XXX-XXXXXXXXXXXXXXXXXXXXXX
36
+ export GITHUB_TOKEN="${GITHUB_TOKEN}"
37
37
  ```
38
38
 
39
39
  To configure npm, you can use the `npm login` command or use a configuration file with a TOKEN :
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@eeacms/volto-eea-design-system",
3
- "version": "1.60.8",
3
+ "version": "1.61.0",
4
4
  "description": "@eeacms/volto-eea-design-system: Volto add-on",
5
5
  "main": "src/index.js",
6
6
  "author": "European Environment Agency: IDM2 A-Team",
@@ -16,6 +16,7 @@ import burgerIcon from '@eeacms/volto-eea-design-system/../theme/themes/eea/asse
16
16
 
17
17
  import HeaderSearchPopUp from './HeaderSearchPopUp';
18
18
  import HeaderMenuPopUp from './HeaderMenuPopUp';
19
+ import { useAISummaryToggle } from './useAISummaryToggle';
19
20
  import { findBestMatchingMenuItem, isMenuItemActive } from './utils';
20
21
  import PropTypes from 'prop-types';
21
22
  import omit from 'lodash/omit';
@@ -166,7 +167,12 @@ const Main = ({
166
167
  state.reduxAsyncConnect?.headerSettings?.useAISearchIcon || false,
167
168
  );
168
169
 
169
- const searchIcon = useAISearchIcon ? aiSearchIcon : searchSVG;
170
+ const [aiSummaryEnabled] = useAISummaryToggle();
171
+
172
+ // The AI sparkle only shows when the AI search icon is configured and
173
+ // the user has not opted out of AI summaries.
174
+ const searchIcon =
175
+ useAISearchIcon && aiSummaryEnabled ? aiSearchIcon : searchSVG;
170
176
 
171
177
  const itemsLayouts =
172
178
  menuItemsLayouts || config.settings?.menuItemsLayouts || {};
@@ -770,3 +770,58 @@ test('menu click outside behavior with different active states', async () => {
770
770
  expect(burgerButton).toHaveAttribute('aria-expanded', 'false');
771
771
  expect(searchButton).toHaveAttribute('aria-expanded', 'false');
772
772
  });
773
+
774
+ describe('header search icon and AI summary state', () => {
775
+ const renderMain = () =>
776
+ renderWithProvider(
777
+ <Router history={createMemoryHistory()}>
778
+ <Header>
779
+ <Header.Main
780
+ pathname="/test"
781
+ menuItems={[
782
+ { '@id': '/test', url: '/test', title: 'Test', items: [] },
783
+ ]}
784
+ renderGlobalMenuItem={(item) => (
785
+ <a href={item.url} title={item.title}>
786
+ {item.title}
787
+ </a>
788
+ )}
789
+ />
790
+ </Header>
791
+ </Router>,
792
+ );
793
+
794
+ beforeEach(() => {
795
+ window.localStorage.clear();
796
+ mockState.reduxAsyncConnect.headerSettings.useAISearchIcon = false;
797
+ });
798
+
799
+ it('shows the plain magnifier when useAISearchIcon is false', () => {
800
+ const { container } = renderMain();
801
+ expect(container.querySelector('img[alt="Global search"]')).toHaveAttribute(
802
+ 'src',
803
+ 'search-line.svg',
804
+ );
805
+ });
806
+
807
+ it('shows the AI sparkle when useAISearchIcon is true and AI summaries are enabled', () => {
808
+ mockState.reduxAsyncConnect.headerSettings.useAISearchIcon = true;
809
+
810
+ const { container } = renderMain();
811
+ expect(container.querySelector('img[alt="Global search"]')).toHaveAttribute(
812
+ 'src',
813
+ 'ai-search.svg',
814
+ );
815
+ });
816
+
817
+ it('shows the plain magnifier when useAISearchIcon is true but AI summaries are disabled', () => {
818
+ mockState.reduxAsyncConnect.headerSettings.useAISearchIcon = true;
819
+ window.localStorage.setItem('eea-ai-summary-enabled', '0');
820
+
821
+ const { container } = renderMain();
822
+ expect(container.querySelector('img[alt="Global search"]')).toHaveAttribute(
823
+ 'src',
824
+ 'search-line.svg',
825
+ );
826
+ });
827
+ });
@@ -9,6 +9,7 @@ import { handleEnterKeyPress } from '@eeacms/volto-eea-design-system/helpers';
9
9
 
10
10
  import searchSVG from '@eeacms/volto-eea-design-system/../theme/themes/eea/assets/images/Header/search-line.svg';
11
11
  import aiSearchIcon from '@eeacms/volto-eea-design-system/../theme/themes/eea/assets/images/Header/ai-search.svg';
12
+ import { useAISummaryToggle } from './useAISummaryToggle';
12
13
 
13
14
  const getRandomItems = (arr, max) => {
14
15
  return (
@@ -96,7 +97,12 @@ function HeaderSearchPopUp({
96
97
  state.reduxAsyncConnect?.headerSettings?.useAISearchIcon || false,
97
98
  );
98
99
 
99
- const searchIcon = useAISearchIcon ? aiSearchIcon : searchSVG;
100
+ const [aiSummaryEnabled] = useAISummaryToggle();
101
+
102
+ // The AI sparkle only shows when the AI search icon is configured and
103
+ // the user has not opted out of AI summaries.
104
+ const searchIcon =
105
+ useAISearchIcon && aiSummaryEnabled ? aiSearchIcon : searchSVG;
100
106
 
101
107
  useEffect(() => {
102
108
  setVisibileSuggestions(getRandomItems(suggestions, maxToShow));
@@ -248,4 +248,53 @@ describe('HeaderSearchPopUp', () => {
248
248
  expect(screen.getByPlaceholderText('Search')).toBeInTheDocument();
249
249
  expect(screen.queryByText('Suggestions Title')).not.toBeInTheDocument();
250
250
  });
251
+
252
+ describe('search icon and AI summary state', () => {
253
+ beforeEach(() => {
254
+ window.localStorage.clear();
255
+ mockState.reduxAsyncConnect.headerSettings.useAISearchIcon = false;
256
+ });
257
+
258
+ const renderPopup = () =>
259
+ render(
260
+ <Provider store={mockStore}>
261
+ <Router history={history}>
262
+ <HeaderSearchPopUp
263
+ headerSearchBox={sampleHeaderSearchBox}
264
+ onClose={mockOnClose}
265
+ triggerRefs={[]}
266
+ />
267
+ </Router>
268
+ </Provider>,
269
+ );
270
+
271
+ it('shows the plain magnifier when useAISearchIcon is false', () => {
272
+ const { container } = renderPopup();
273
+ expect(container.querySelector('img')).toHaveAttribute(
274
+ 'src',
275
+ 'search-line.svg',
276
+ );
277
+ });
278
+
279
+ it('shows the AI sparkle when useAISearchIcon is true and AI summaries are enabled', () => {
280
+ mockState.reduxAsyncConnect.headerSettings.useAISearchIcon = true;
281
+
282
+ const { container } = renderPopup();
283
+ expect(container.querySelector('img')).toHaveAttribute(
284
+ 'src',
285
+ 'ai-search.svg',
286
+ );
287
+ });
288
+
289
+ it('shows the plain magnifier when useAISearchIcon is true but AI summaries are disabled', () => {
290
+ mockState.reduxAsyncConnect.headerSettings.useAISearchIcon = true;
291
+ window.localStorage.setItem('eea-ai-summary-enabled', '0');
292
+
293
+ const { container } = renderPopup();
294
+ expect(container.querySelector('img')).toHaveAttribute(
295
+ 'src',
296
+ 'search-line.svg',
297
+ );
298
+ });
299
+ });
251
300
  });
@@ -0,0 +1,60 @@
1
+ import { useCallback, useEffect, useState } from 'react';
2
+
3
+ /**
4
+ * AI Summary opt-in/opt-out state.
5
+ *
6
+ * Shared contract with the AI summary gating in
7
+ * @eeacms/volto-searchlib (lib/aiSummaryToggle):
8
+ * - the header search icons in this addon use the state to decide between
9
+ * the AI sparkle and the plain magnifier
10
+ * - the advanced-search AI Summary box (volto-searchlib) hosts the
11
+ * user-facing opt-in/opt-out controls
12
+ * - localStorage key: `eea-ai-summary-enabled` ("1" on, "0" off, default on)
13
+ * - CustomEvent `eea:ai-summary-toggle` (detail: boolean) for same-tab sync
14
+ * - native `storage` event for cross-tab sync
15
+ */
16
+
17
+ export const AI_SUMMARY_STORAGE_KEY = 'eea-ai-summary-enabled';
18
+ export const AI_SUMMARY_TOGGLE_EVENT = 'eea:ai-summary-toggle';
19
+
20
+ export const readAISummaryEnabled = (storage = window.localStorage) =>
21
+ storage.getItem(AI_SUMMARY_STORAGE_KEY) !== '0';
22
+
23
+ export const writeAISummaryEnabled = (
24
+ enabled,
25
+ storage = window.localStorage,
26
+ ) => {
27
+ storage.setItem(AI_SUMMARY_STORAGE_KEY, enabled ? '1' : '0');
28
+ window.dispatchEvent(
29
+ new CustomEvent(AI_SUMMARY_TOGGLE_EVENT, { detail: enabled }),
30
+ );
31
+ };
32
+
33
+ export const useAISummaryToggle = () => {
34
+ const [enabled, setEnabled] = useState(readAISummaryEnabled);
35
+
36
+ useEffect(() => {
37
+ const onToggleEvent = (event) => {
38
+ if (typeof event?.detail === 'boolean') setEnabled(event.detail);
39
+ };
40
+ const onStorageEvent = (event) => {
41
+ if (event.key === AI_SUMMARY_STORAGE_KEY) {
42
+ setEnabled(event.newValue !== '0');
43
+ }
44
+ };
45
+ window.addEventListener(AI_SUMMARY_TOGGLE_EVENT, onToggleEvent);
46
+ window.addEventListener('storage', onStorageEvent);
47
+ return () => {
48
+ window.removeEventListener(AI_SUMMARY_TOGGLE_EVENT, onToggleEvent);
49
+ window.removeEventListener('storage', onStorageEvent);
50
+ };
51
+ }, []);
52
+
53
+ const toggle = useCallback(() => {
54
+ const next = !readAISummaryEnabled();
55
+ writeAISummaryEnabled(next);
56
+ setEnabled(next);
57
+ }, []);
58
+
59
+ return [enabled, toggle];
60
+ };