@pixelated-tech/components 3.11.3 → 3.11.4

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (24) hide show
  1. package/dist/components/admin/site-health/site-health-axe-core.integration.js +1 -1
  2. package/dist/components/admin/site-health/site-health-github.integration.js +0 -1
  3. package/dist/components/general/tiles.css +132 -32
  4. package/dist/components/general/tiles.js +12 -2
  5. package/dist/components/sitebuilder/form/formutils.js +12 -1
  6. package/dist/config/pixelated.config.json.enc +1 -1
  7. package/dist/scripts/pixelated-eslint-plugin.js +110 -0
  8. package/dist/types/components/admin/site-health/site-health-axe-core.integration.d.ts +1 -63
  9. package/dist/types/components/admin/site-health/site-health-axe-core.integration.d.ts.map +1 -1
  10. package/dist/types/components/admin/site-health/site-health-github.integration.d.ts +1 -6
  11. package/dist/types/components/admin/site-health/site-health-github.integration.d.ts.map +1 -1
  12. package/dist/types/components/admin/site-health/site-health-security.integration.d.ts +1 -8
  13. package/dist/types/components/admin/site-health/site-health-security.integration.d.ts.map +1 -1
  14. package/dist/types/components/admin/site-health/site-health-types.d.ts +2 -0
  15. package/dist/types/components/admin/site-health/site-health-types.d.ts.map +1 -1
  16. package/dist/types/components/general/tiles.d.ts +9 -0
  17. package/dist/types/components/general/tiles.d.ts.map +1 -1
  18. package/dist/types/components/sitebuilder/form/formutils.d.ts +0 -4
  19. package/dist/types/components/sitebuilder/form/formutils.d.ts.map +1 -1
  20. package/dist/types/scripts/pixelated-eslint-plugin.d.ts +48 -0
  21. package/dist/types/stories/general/tiles.stories.d.ts +12 -0
  22. package/dist/types/stories/general/tiles.stories.d.ts.map +1 -1
  23. package/dist/types/stories/sitebuilder/form.honeypot.stories.d.ts.map +1 -1
  24. package/package.json +1 -1
@@ -2,6 +2,7 @@
2
2
  import puppeteer from 'puppeteer';
3
3
  import fs from 'fs';
4
4
  import path from 'path';
5
+ import { getFullPixelatedConfig } from '../../config/config';
5
6
  const debug = false;
6
7
  export async function performAxeCoreAnalysis(url, runtime_env = 'auto') {
7
8
  try {
@@ -66,7 +67,6 @@ export async function performAxeCoreAnalysis(url, runtime_env = 'auto') {
66
67
  };
67
68
  }
68
69
  }
69
- import { getFullPixelatedConfig } from '../../config/config';
70
70
  /**
71
71
  * runAxeCoreAnalysis(url, runtime_env)
72
72
  *
@@ -1,7 +1,6 @@
1
1
  "use server";
2
2
  import { getFullPixelatedConfig } from '../../config/config';
3
3
  import path from 'path';
4
- // Version extraction: we derive a version from commit messages (e.g., v1.2.3) instead of fetching tags and fuzzy-matching.
5
4
  // Debug logging is off by default. Set to true/false here (do not use env vars).
6
5
  const debug = false;
7
6
  /**
@@ -11,12 +11,9 @@
11
11
  }
12
12
 
13
13
  .tile-image {
14
- position: relative;
15
- aspect-ratio: 1;
16
14
  border: 2px solid #CCC;
17
15
  /* border-radius: 20px; */
18
16
  overflow: hidden;
19
- margin: 10px;
20
17
  }
21
18
 
22
19
  .tile-image.clickable {
@@ -26,23 +23,11 @@
26
23
  .tile-image img {
27
24
  width: 100%;
28
25
  height: 100% !important;
29
- position: relative;
30
- display: inline-block;
31
26
  align-self: start;
32
27
  object-fit: cover;
33
28
  }
34
29
 
35
30
  .tile-image-overlay {
36
- visibility: hidden;
37
- position: absolute;
38
- width: 0%;
39
- height: 100%;
40
- bottom: 0;
41
- left: 0;
42
- display: inline-block;
43
- background: rgba(51, 102, 153, .7);
44
- transition: all 0.25s ease-in-out;
45
- /* All other styling - see example */
46
31
  img {
47
32
  vertical-align: top; /* Default is baseline, this fixes a common alignment issue */
48
33
  }
@@ -54,27 +39,10 @@
54
39
  cursor: pointer;
55
40
  }
56
41
 
57
- .tile-image:hover .tile-image-overlay {
58
- visibility: visible;
59
- width: 100% !important;
60
- }
61
-
62
42
  .tile-image-overlay-text {
63
- position: absolute;
64
43
  padding: 20px;
65
- left: 0;
66
- bottom: 0;
67
- color: white;
68
44
  font-size: 20px;
69
45
  font-weight: bold;
70
- visibility: hidden;
71
- transition: visibility 0s ease-in-out;
72
- transition-delay: 0s;
73
- }
74
-
75
- .tile-image:hover .tile-image-overlay-text {
76
- visibility: visible;
77
- transition-delay: 0.25s;
78
46
  }
79
47
 
80
48
  .tile-image-overlay-title {
@@ -85,3 +53,135 @@
85
53
  font-size: 16px;
86
54
  font-weight: initial;
87
55
  }
56
+
57
+
58
+
59
+
60
+ /* ====== OVERLAY VARIANT (CSS-only) ======
61
+ - Applied by adding `variant="overlay"` to <Tiles/> (adds `.overlay` to each `.tile`)
62
+ */
63
+
64
+ .tile.overlay {
65
+
66
+ .tile-image {
67
+ position: relative;
68
+ aspect-ratio: 1;
69
+ margin: 10px;
70
+ }
71
+
72
+ .tile-image img {
73
+ width: 100%;
74
+ height: 100% !important;
75
+ position: relative;
76
+ display: inline-block;
77
+ align-self: start;
78
+ object-fit: cover;
79
+ }
80
+
81
+ .tile-image-overlay {
82
+ visibility: hidden;
83
+ position: absolute;
84
+ width: 0%;
85
+ height: 100%;
86
+ bottom: 0;
87
+ left: 0;
88
+ display: inline-block;
89
+ background: rgba(51, 102, 153, .7);
90
+ transition: all 0.25s ease-in-out;
91
+ /* All other styling - see example */
92
+ img {
93
+ vertical-align: top; /* Default is baseline, this fixes a common alignment issue */
94
+ }
95
+ }
96
+
97
+ .tile-image:hover .tile-image-overlay {
98
+ visibility: visible;
99
+ width: 100% !important;
100
+ }
101
+
102
+ .tile-image-overlay-text {
103
+ position: absolute;
104
+ padding: 20px;
105
+ left: 0;
106
+ bottom: 0;
107
+ color: white;
108
+ font-size: 20px;
109
+ font-weight: bold;
110
+ visibility: hidden;
111
+ transition: visibility 0s ease-in-out;
112
+ transition-delay: 0s;
113
+ }
114
+
115
+ .tile-image:hover .tile-image-overlay-text {
116
+ visibility: visible;
117
+ transition-delay: 0.25s;
118
+ }
119
+
120
+ .tile-image-overlay-title {
121
+ margin-bottom: 10px;
122
+ }
123
+
124
+ .tile-image-overlay-body{
125
+ font-size: 16px;
126
+ font-weight: initial;
127
+ }
128
+ }
129
+
130
+
131
+
132
+
133
+
134
+
135
+ /* ====== CAPTION VARIANT (CSS-only) ======
136
+ - Applied by adding `variant="caption"` to <Tiles/> (adds `.caption` to each `.tile`)
137
+ */
138
+ .tile.caption {
139
+ * {
140
+ visibility: visible;
141
+ display: block;
142
+ position: relative;
143
+ }
144
+
145
+ .tile-image {
146
+ aspect-ratio: auto;
147
+ border-radius: 10px;
148
+ }
149
+
150
+ .tile-image img {
151
+ width: 100%;
152
+ height: 100% !important;
153
+ align-self: start;
154
+ object-fit: cover;
155
+ aspect-ratio: 1;
156
+ }
157
+
158
+ .tile-image-overlay {
159
+ background-color: #EEEEEE;
160
+ height: 100px !important;
161
+ }
162
+
163
+ .tile-image-overlay,
164
+ .tile-image-overlay * {
165
+ width: 100% !important;
166
+ height: auto;
167
+ transition: none;
168
+ }
169
+
170
+ .tile-image-overlay-title {
171
+ margin-bottom: 0px;
172
+ color: black;
173
+ }
174
+
175
+ .tile-image-overlay-text {
176
+ transition: none;
177
+ color: black;
178
+ padding: 10px;
179
+ }
180
+
181
+ .tile-image-overlay-body{
182
+ font-size: var(--font-size-base);
183
+ font-weight: bold;
184
+ color: black;
185
+ }
186
+
187
+ }
@@ -6,15 +6,21 @@ import { SmartImage } from "./smartimage";
6
6
  import { usePixelatedConfig } from '../config/config.client';
7
7
  import "../../css/pixelated.grid.scss";
8
8
  import "./tiles.css";
9
+ export const TilesVariants = ['caption', 'overlay'];
9
10
  Tiles.propTypes = {
10
11
  cards: PropTypes.array.isRequired,
11
12
  rowCount: PropTypes.number,
12
13
  imgClick: PropTypes.func,
14
+ /**
15
+ * Optional visual variant. Allowed values are enumerated so consumers get
16
+ * a discoverable, typed API.
17
+ */
18
+ variant: PropTypes.oneOf(TilesVariants),
13
19
  };
14
20
  export function Tiles(props) {
15
21
  const rowCount = props.rowCount ?? 2;
16
22
  if (props.cards && props.cards.length > 0) {
17
- return (_jsx("div", { className: "tiles-container", children: _jsx("div", { className: `tile-container row-${rowCount}col`, children: props.cards.map((card, i) => (_jsx("div", { className: "gridItem", children: _jsx(Tile, { index: i, cardLength: props.cards.length, link: card.link, image: card.image, imageAlt: card.imageAlt, bodyText: card.bodyText, imgClick: props.imgClick }) }, i))) }) }));
23
+ return (_jsx("div", { className: "tiles-container", children: _jsx("div", { className: `tile-container row-${rowCount}col`, children: props.cards.map((card, i) => (_jsx("div", { className: "gridItem", children: _jsx(Tile, { index: i, cardLength: props.cards.length, link: card.link, image: card.image, imageAlt: card.imageAlt, bodyText: card.bodyText, imgClick: props.imgClick, variant: (props.variant ?? "overlay") }) }, i))) }) }));
18
24
  }
19
25
  else {
20
26
  return (_jsx(Loading, {}));
@@ -29,12 +35,16 @@ Tile.propTypes = {
29
35
  imageAlt: PropTypes.string,
30
36
  bodyText: PropTypes.string,
31
37
  imgClick: PropTypes.func,
38
+ /** 'caption' - visual caption beneath image (prefers bodyText, falls back to imageAlt) */
39
+ variant: PropTypes.oneOf(TilesVariants),
32
40
  };
33
41
  function Tile(props) {
34
42
  const config = usePixelatedConfig();
35
43
  const imgClick = props.imgClick;
44
+ const captionText = (props.bodyText && props.bodyText.length > 0) ? props.bodyText : (props.imageAlt ?? "");
36
45
  const tileBody = _jsxs("div", { className: "tile-image" + (imgClick ? " clickable" : ""), children: [_jsx(SmartImage, { src: props.image, title: props?.imageAlt ?? undefined, alt: props?.imageAlt ?? "", onClick: imgClick ? (event) => imgClick(event, props.image) : undefined, cloudinaryEnv: config?.cloudinary?.product_env ?? undefined }), _jsx("div", { className: "tile-image-overlay", children: _jsxs("div", { className: "tile-image-overlay-text", children: [_jsx("div", { className: "tile-image-overlay-title", children: props.imageAlt }), _jsx("div", { className: "tile-image-overlay-body", children: props.bodyText })] }) })] });
37
- return (_jsx("div", { className: "tile", id: 'tile-' + props.index, children: props.link ?
46
+ const rootClass = `tile${(props.variant) ? ' ' + props.variant : ''}`;
47
+ return (_jsx("div", { className: rootClass, id: 'tile-' + props.index, children: props.link ?
38
48
  _jsx("a", { href: props.link, className: "tileLink", children: tileBody })
39
49
  :
40
50
  tileBody }));
@@ -18,8 +18,19 @@ export function mapTypeToComponent(myType) {
18
18
  }
19
19
  /**
20
20
  * Generates field JSON for form building
21
+ *
22
+ * NOTE: This implementation is currently unused by other modules in-repo and
23
+ * is exported by the package barrel which previously caused a duplicate
24
+ * export collision with `componentGeneration.generateFieldJSON` during
25
+ * Storybook's webpack build. To avoid accidental breakage for external
26
+ * consumers we are making this implementation internal (non-exported)
27
+ * and marking it for removal in a future maintenance sweep.
28
+ *
29
+ * TODO (cleanup): remove this function and any remaining aliases once
30
+ * consumers have migrated — see `docs/roadmap.md` (Refactoring & Cleanup).
31
+ * @deprecated internal-only — slated for removal
21
32
  */
22
- export function generateFieldJSON(component, type) {
33
+ function generateFieldJSON(component, type) {
23
34
  const form = {};
24
35
  form.fields = [];
25
36
  // Common fields for all components
@@ -1 +1 @@
1
- pxl:v1:eb6d72dafab78c0eefe9d579:4138458b03a639bfb6a82644b3fd2e1d:eaa2c5ebc40c1939cc1532f810b308d2b32bcc06ea5ed0127a0da346f57f8e244d32648b2a08b3666f30c3bf6a475d5ab4c2c749772f77bd95a7bddc0884ec351ba4973c7a381cb0dbf97adc3c66fbeb7e14b239589f9e080dbe51b66158194d49023f903bd07f322be8bb4c667042b1c66c0d956c04c01fdd84200eaad64bdf626693e900ef5f849b029fe48875bbdad00e90ae804088a18eae59112206c9a7abe93e61cc180f5588ae6f2f33748f746d36e0f1ddd43d7146273a1af62cf68b210527a9bdbe4ec1524abc4a4d9bc4b5abfe3478ae58d74f94a13e7deea1d3e2cbe3ffc735ed82cbd243b44b4bb13c5a1f5830f9a0495e712d189e4edbeaccdd0a6d7cca095bd89f2a058f7d765bd56d678835bd736e083b0f3e455eb48baed144c62370d9e2d6e5460334712af4ae6dba0cb45d0f34fd862299118d05a41fc2b448ddc25198a5d22d49013572a8bf451828df02de3cf85e660fe5e33c4287407758cf815d0ae0549faa075769940c7571570235e134055444991edffb76a13740a7bd6617b1cb172679f2c52a2d31e8320c3d7ce91d8547165685fcd3269cda3f6913f98bacd9d547c440ea27fe5119fc5a2410c98665cb95b27ca4e8a59afd050d3e69cd6602ee2e45122692a8050707c3065e7051e81f650894d657db6f3f30eb1391b19632ae2c61145c4d151d92ac90e190ba99e243bd5e17e591252d9e6209f7063e451fd45dac5e74e50d035c2f2709192670aeaeae43a3b0eb1fa678a22a032b453abd773e581c82a8caf701be8e99a7ff9e69dcabc18bd074afb7faeced2c5f5a1fc7199ba5980ef54674aa70edfcaa82c3e1bc72b73fe30eb4dd7d45087aed84aec5aae9b64f482a369bcd63bb7d3b67511ac50907af175824bf4c38b3dfbfb335385f3b632cd45cca7b245bd4269e8fcf38e4c3f9215abc560ce31ab3ad602ca7d2c1c4bab91d2d7feac7f46fb7bf21d70a08929396d073e38ba3eba8ff9cd465982d8f097b7e7b773db65ca5310101856926f5f269396086c0a44112577f6502e80b076be27c57b23bd0e26abf0eabfabbaf03730bdb41f747e67625390a3598c6151a388c7071efa45368f56ea6a10f6714c4ad61b35316e3780200eb45a30eace17e01d388f31fc201b20bba22715b357a54eaf9be45eb15a8d79b97368de3083276d45a81a6998b29adc4580cf28fbfb35ef3bdd32518d16614211a8bd4faecaeadecce6c4bd0934c2fbc98f3c5b26dc1ce4c5b7fd0fd3631ec6623dd61219fadc4540020d8ac8fba9b56846247165635e6702277dc1085ff28db46af7e253333657837692196f729e739fb2af6e2b4a8ffb9107eda51146acacf40f51e20e36d63bb68b4de074221e5c48c9fab56e864e29d65231a7519de47e12e2400b3086d955e6a51ad602ad51610fd789d2928b705b23a489101dcaa528fa56b1a693ce764e401ee9527446a3ae0041b4039c89564cf1b56a0ef34a8d9c6daf2df951e57bcdfef0841aafb609d4d72366b0aea29cb7890e3f14e16e73f402319f25627e1461f39f573d40303609607d685dcf9bd31368c7b8e981fc471dc83fecf6884c0f87be924ecc401134fc00857f9dae345e4d2ff40a5a693318d05b3f6e5835a26f900c36a92bd41fd0ce7f81b1c37f45f882d8355562f85b6bd92c080366b76b83c653cbc913664576a2d8178968fd4a68ef598e3c5e435199931dd68ba414841912ebdeb28130740bfbf74d8bd2c5a7abfc3d6003702263499505ec47b213053cbf9e062764c6bc1b93279692c8857cfb542606ada1e8eac54f0b941e33e6fee04f2eba2a7da357620eea334dc52c661020b31fd42047744dde9245f637a6e87e694a65ecf13ce0582045145db1804061cc13226a30fe8a268cb28786d4ed7e1562cd217b34af307e1d4eb7079e9a15a78e493c7bccc98825795ba58d4ac821cd678763a85263b2b754c2da5d95245caade7565a228402bf01753740b95c14e60ea6b01314df5d15308fb5e2320c9d6fd98b9a230c33afc432b3785078f09e4732e4b1289ea9f630a61d14ff32168a739883a11d4f825342e3790ae8ea9297af874bcd432d818c4739a5d61a73607e14b1999dc43e161da4ea1c86906d96e6eaa62f921bfad0f5b2a7bd84dbaeba8f3c91b5999d33d7c5c478feb6b12c68de9bb7bf0c0fea7e891f3418aaac4496e73cc0c595801ab06a3a697aa3dab77cacf9b690c688d3727547b0f9c4f386f977aca556a67615ab7960765b7b58ab400b16d6b1f971d42c3b63ee273e0cb327c47a8675daf82340f34f6ed5723c4bbf7e12152acd1f19bbaef8487c9d289f5a7d9cd4d2349d7919fa1ddc57932a9e6f490d849e40ace7ccf6a7466333f0450f5db31cd2f34733613d0638ec66888b111b222739311e34ec9ab9ccea4d2c890dc3ec3a566f9b4adf01962e3486dc6d51c928b16937d6bceffe6cabb3a17444466829b5523f3b7497d8a1cf101b237c14a1522bde1bafd346596715cc47a792462aef35b4d4945e92c5791af72e571171caad124cd1732d0faf2066dbdc360437c52eccae79000e2a376b60997b00ec3e001b76ca894f25ab65996c9c9df5cc44a2be077bff590c9e597a105d58d38366aab9ea19627b9c8b50eb304f87f99db6ce973306b91f2a4033bbbe46b8c175ca525e26a841d40a76606e4607fbca40d6547a0b0ae94bccb7aeb74c0b2a62fad12c022d567b1eee35abe506fe046e87663e18da17fd37028c620e7652d1832203f8faaafdebc24c7247bf6e6a0fac189471fb42e146e962fe07302f4589b6a4edb1125b6870ee8c0650744989694ecd8dcfcd822c6018c0f21eb7f3bd60f33014302ee34822bed13bf9cfc471fdb660388a489bb305730f173a817607eb63df9f36f10665934be8d5c36521ceb2b4d3976746d2c23a520bc5b7d1b1ee38a031c3c91df5f02f4e992aa511e52fbe0d41bc6b55c361eb0542185cc911941cc088e2ef937fd855f99dbcf483dd00ece10433157abf53a3543f68dd8af2d79d474daf1115fbfb8fc1c130caf01d5c03a13b16cfdd4b35b750cc5655e68c6835aa9c59da99eb01e5f1ab49b31829de16824c86e57c27823a7ee9f1746d6ccfa733a0d670cbd7a8ab8dabcc3bab3efe319a89edd5afe48f2d59e6428ca91be477c85f3c80e3b1f1d6dbb4a1fca83d1fa8fce3875a4dca6bb299d6616e52796895253897330ffb0577b2db78de6d49c233bce6dc9151a3a9835ae4183515db2c6ceff19233fe5e838caaf1e6e2d6c3fcf1478db36516dabea111f91ba48d8ce771d87ae545526244add76dfa7eae914bea40b49abf7fc620e4ad892f941353bafb5155d71f17ec2f1203237ab3994fd82c998ab6d2ad62a4288fb24bd12ab90b34bd590edf2e7ac1feda516ef4e3cae4127a40d146416c54f2c7c5c5389d5f9b622e53bfa79e9b72d5d5e561e246e6ded3c30f7205926f76ce6fd41d9457e49997c5f3d2df9e6229b1b26913bf7f6017203950b38e2ba068a8cb4c47296f0da266f5f7bed3c400a18ec344b48475bd9b8aadca3c2d5bfcd62c4d7dcc2dcd02d59b6c11ab5d2e98dcec056a60b368efab9efe64fa67f518b48e2448ee0d5ec7a360dea54d11d85e606e2186d641aed98d74310caf9998500088d8b40e419d1e1f0fa3210416f962adcfa1126ca0f396fe3956f39a1ac2fb7b9b5f74eee81aac59a33d768fa5acf0e9d61fdeb32bc6eee488c78053d301b3b3705254a89f8f80ec3b527e2166272ce4847f2c9a867cf6a8f11ba7235d9ced0dac1ac524faf608ba973bbb3cbabc7c02e6be8b0f76bba4212bf94c042d61dfcde2d1fbea4ece31886c05c6a67e84a2b8864d874e8e7c3f10d02464b2f50b33029749a86be2d433f7d646a9fe79e71ac82658aa9102917307736d3c137c8e2b7a5ba6f7d29aa15c28200f20d71db8f26416f831b7ceaedc5cbc1e9b613eec6318b233f88e65b3ab18bade67d5d9a51e60a38ef0b021d8ac712f757022cd65884a8fa0d4eceff9f51d758f8e914ca7e5684b0c7d4a3bd5556a9cb87ae320197fb846fc73b6f0d1268a4ee141676fce515f114293bdbc1d6911e9c174c9e48f086fb9f07b3528529b3307de49d31b8c31ebab672e22f07e152edc0fa456a454a7d6f4f0a9c64fe4e4b4d7745fb9ade45658518bc8962e6446104d0108d12a0e648158b7cbc3388931ba3f623ec9767a04b23b030aec90f3d80678ef897026f1e3d51c9d31349f5732f5e4f1256f1a396a0d28d4619756b72cffff6302a543932289a690ac5bc9537dd97d7a0000a94afdb81b6ab14e462190397510861d776126f6e8609a25bee734ffe46d63e73187e0ff38c35837ae635f399a249e0310cbcf45b3d2d42337a99a98027c3721f4adbffe5852e4ea6695641129a51fadb30bcd6bb87fb0ab8a139e4b0d34b4197c81ac3fb8a07aa5183e89e06a45137cce9b586265ac1bfb8b80b863610c851fc40d371eff6d901db4c5ae7d888e705c61958a059e03d766f5402e14fb52636a0a67073a9fa13654d91ac2c96339b7806f12a5c48bb59c0032cbe6cb76f699010c8b908316e1f1a38de95b8ed7c21bbb4a938148d106905066604e13f140bfa61c658398fd81f6d41ec262350cd6ab7e53a7f0e45327fff179d7b34d0965154e041584e290c8feacd22d78889d41696982d702b5ce860edd17bfecaa9df1e7bbcd39cbd63e6b530035509ab2d4e4dba81a9877688baebd2e9eef7b16e1be4ddab2264b5707bd1ed755bd6c314f6875769fc010a6c13affee72fd4add31030612cc8fa75aa3d5a4393feedcb4a96790d18e62388ea28fe03619952645b3753a67f98c8e9b8105626acc3a200353fc87be6e7d1c67c6725ac46d9fc66860313921998ffbd8210c61edbf0daf149a59693132a38630a49df21bbef85a50df65bfd55177ea8d108de56649fd63a7c932f4bd415a7d124eeab1d1d125401ae94aa05a5ec31218dbaa30526e131b07572cfa9b0b93e82ef4478421da9b1780b3225bb47bbf3cb1360ab72abd9b781d957d7abdecdda6097ea5784fb709ad5ec0cdab2016deb326e079ba694b31461b6f5a465927ac72689daf787b4560fc6cfe0535663494c79bbfac815497b3c6a0c06a32dbe7da75b46ec4f7131c115673d7d38a3534e0d6a6d62d
1
+ pxl:v1:b15a24756358d6e6b02272a2:9bfd2086414fa1eaa92153908ed0e15d:ab8b7769a766de9be76c08c748e59ffeb147312bb908995fd88456c5cc76366350bf44d28f9b3ed9ebabb70ca106e4fa9196e559e81ce591b6764abce5415bb5013dc07538d6d0d92a377d46c1a6f2f96327c06d269053672fb532a274bc5b8483bf06b8a9f6e16d9733be3c5033a967d91527ffb53f1e5c65dfd66b983e4e3f2ec086e01ddd68a0a4d85a2b3dc3bef21024e50c11b2c8256c8dd1b2f2c8c71aaba175063b61f5253d05c0c2847ecf4ddb6b40f8aa9af5de027598b1f747b72cdd6ba85025fdf30f35d47f9c10de625209bd28ea11bd73decc15f1de580be1b155032b2857ee9ac8212aeb943c42a773fa75a0867413c455cce15bc77406bf2b5ba0f5da75cd14735f53b3d22962b27c04c418bcb7e241850f64a873649c3a52c67a84db2f9a3c4a7605ec5114ad1f74a0eef57d57b1dd98d87b144336d516b2d48324df0143e5687abdbd5ffbb9a0751e5f91577742fe460c390c519d73b3da3da2c1a4d32a738875106a58c91b6b04016eba50f57a026c9d67312bdfb53992ac025e503ee818aed29959337947e1d0d81e6cccd0d1a921cfe31d225ce744cc82340ce4af6aa308677cee985a7e7ae1d1b7d21274ca8264ee6481e5f001d1d4dea91dc0eb787d2cf1b990d9690e9bb83489d0e354d1071bff8a1668550303f04256f7e60736146a5da09e15b65d467af7194ece67feefc45736d009f8043d76c30b9263e04224977d8b9ce64b5e6317e6f3a604c76b1290ffa410e51dd069258321448675382907f32c6b51dfede27fa6db5244952f883c57b8d6cf9572e6cfa7a4d973f86c1ab3b54a7bf765deee12ea7d381eef24e1424f09dcdddd219930826dcc69d924ccd1937538b4edb8e347da359b638aeb475b38b08307d5ec568b959ac9c4dfd1889bf2c963b7bc0b65bdbef0d89a75b026ca4af6e87641ff604ae2da4b3c19a1c6a3a3f32ad870343f342d609946392d3e540044d7df067b00eb7ec16284a9b42439f853bdd6492163382d1e90d6e24e46b5ff1061cb51e8089ddfa3985775d03551f082cef25b0feeda0a9cc416a25f01d71f4797332b654895ee0766735dc02329e48f56d4583eb5fb9ca9e0f9c71b7ac21b3abecb55edca90731d7d69c16dbd31c0f01f3842fc1b4322383932c70e0131e6a723d95f26adbe8777f9d0bfaa75f310b411d9203689a8e13238328f04ae7ebb34e9212b77edd89b54f6924654a31d17c646a24bff9a096305be689c10a1dad1830199679568f5054616fe18572f44aac4846c3649e6b58509b6096efdbbf5a0bbcec5e97a48fb7497ab2d74376e76f269366b1d5dfd426fbcace4ee5bf775e9c9b804eb87363c8f9394a96c703c84cef79d1a9ae846c537ffcbb5daaaf4efdab9c6cf2ba12f6df46b8ea62acefa01f1201432808758b38643e6154bb74d0b7af6f01461357b58e51c726df49dd59585ed034473469de5f9454aff9794c0f08af4e7a976de871a3e67a7769a2b7d69aea8438767a06dd12815471bfe359c274e8b3e9e9b0419712c85d59b1844034bdf2d486cd9cb94b875672acbcd0dcbb3156e5b52c69a4f0f2339c682183b31a7a0f0757b505fa4c33e31e4554f535d001b441daed3122f7a6d6fd9563ad55d71ef0c361bd908370f52d63c96488f3dd7aa1f480e562fb8275119e5b3c866e4536c5a1dbb6f3e89ccca9ccf44cd7f60ba5e2de6f68b8f22c6fec7ff146bb4eb84230712ea1638b515bfb5e00518fe4ab4c7465c4a0b7b422fa9ecfb3dc7f5ff44915dd3aa982e6f9304e3068446e45dfa4e61eb6c7649cd8b4918ac3c369f42a7d71a9ce69afb63b9a4bd421c6e65e1e781b11aee3d22d85a776f8306a80d00956ca44163c7c7517d8fdb916808f42714bde340d39dc85aa606507f4f8942b28aa596ee67b478eab4439f3f8462d07a37555a8405eface5b4e45fe62c779e818c0e0f2ffb1c8885a2873e08a39e6731a421a4edd82fd0f18b16a3ed249e4a8fe3e41ea1c20e2d886a57ca64115b85c494879f9d1f0538c67c87c32d38225c2516b5d57138a0ac1741b88a076952042c75ea75a344e3154ce7729bfe524afc79ba82b5e80f0cac64d15d9af1e0fc4065415613f72942013db82178e9458d598c1e4c933ff7be954ad45e903fc1c0fa97bd1af49aa9cb6bf5ab4a14e801cfb2f9ebc3a1116ee7ec210cc07e9dd5bbd40b286028f2a4f1859473cdcbfdefd782c4eea8484e238d90081b48b5c6010dd16069a95485095fbe0fbdf5b50ba89dea877fa254d6583958bba61bd01f5edd53b6182678cd5df5c26adecb0427ba8b4763f83d281c93a3fa220528b25b6f14cdd8978d86f2bb402b9d576b390edf2738b243dd7a334951199dc63effb2c826e70257d310e56848a85f2e47042f934a0937d4f0d5ffd8dc06822cd5a3cecd12b628842c3f4e994989a655af25e7170dc9d24bbe3dc244606e3f196d062240defafe6d8276e02cf2da35514fbf93e8a3457631af251b1d4d707986c85b88d34ee81e77f3f9ca8507c00319bacdf1458656d9dc4198d81db75333e232ecb1366c5aa51d0fe2053c33cac284f9be16c9a6994de0227f55fc944ddf6277be6f0fad647ab3f35fbf3a75c0432025d41773dea229c021d508f30f2771e04b37bfb6471ac26ff9ad282cb5454464f6b1d26d02fa86ea2c6727ed637a2f0622d84891324368cefdb4ac6b9726372cfb9be4f05f47ea0005f3d892f8ab4aeabb666001f120b87207801cf279625f94cdc3ae93ce019c631e18d0ea88d70c88464d94274a8ab767c4b959c598c5472b6263358c29599351f74d9c73375e921d2d239f1675dd55b02a0450d99f8d0b5d7a83a3559f133f1af11c21c4f639929cecb7dbf3d97d81b5b19260800977ecf63c2cda31c82960e2c8f20eee1cc803d3613d7b324dfd6c54176f39fcdda99cf4f90ad4366dccf12b35a095de628fb63fa40fe39cd7f87dc85e287c9a9b6636e4444bd47650d85d01b58c06174fe725bc7737b9d3fdf7c61da147fcb2ce39cb74514650a1a7266bd91a8eae5f76149bf6ce4332d235ca5509ff7d53e51480f0e89294ea83edb84d91bbd8deaba4dbc850bab27fdd2d8e01a9e8dc51a1cacb27fb9e6c551ea5c9d0994245384f21ca9b0de3594c7a597ad52bdbddb81b706ffd05dc21ba766bb8cd13a1de888af0217ff9905069c19a7ca0cf1ce3b9a5111caffd50f65a0a0d24982ffda39c7343d73b1992ec3a3c5048c6d96ebd1064be6c3cc65ee4bc843fc552f6b25cc960919c35c41910e354e7aa2fa6c00bbd8b605e666338378794e9ed210ac265e92c1958b4e6eaca420c0e546b135b2cf4cf25a206424a3619f6cd3fef71f6f34960ee36a0236711e8b1b2e4ac03f78d94d54975f798bfa8826e409de8790c0feda76c6f85c0275de2dd08302766147a06e105f48e9e5db0f820110d24ab91561bc3cf4eb27c60d21eaf81d38964fc0ece16418ab2b561c9c0acada88dfd577ff0a3762139efa8edc09a23b6c33fd47b0bb5b52fc7afd09e66cce984452133a15d2c4de8d4779511175c946fca6933b016191f96f7c3ba9f8cbac7fc1267c1f01777817424c38bde51842213e3e1e5d84333fb2d805da2860d57009908a80e0e012b9683808a2e1759b48c0b64b043a04a35bf962e082b041853f5c5d7466ea2f714b8f2422fd6162daeb4a236546e493b06f15edfe0d7869aeffbaafc8bf9a138301fc121783832aef1a5e17dd7e548421115135b26b56bdfc0f0322d99653b7a3bad31e3e34e032e1803b31e46a20c2c1232b10cd2020c06106c8f795b7241c6253d9080498cc60e7c7b93549522c0d0c5c33e3c87e6096096cde13c0233dde2c59d32e40b5f21d8b114f84fbe98df27cacb130353ab81aa531b1884d99fef4e115c60d7b110ef05300a90270d8d7e9d5a761465973b37d1f9c4ae569e80b08e900423aeb5bb839f066de9e687d97a8405482ffb14bc942cc909b1507f0a98b98b2e907cb522078da150d977814e3985359a4eaf4325c2f8f271da8bb7927b35862db461a7c10b88f95be8a1ffbb11c15b6615eecf9a48687c3106aba3245934f5900d3049bd704cc6439919fb085a51d19ec883801fa6156031cc17b1b608f2a9c64a505373b62d90fed060ba14390e9d7a1fcc48ed4c9f15879dc8f827095f73fe6a21558311c4dd4cac91d1f1c128e8e378ecf91b04ac87d92cd3d9026e8b4a9439254c98930a7987f3dc8e8dc84d330ed25f65207822b03896ce43c18ad1cf0d9abe6ca5d092f14a19a202600679353b041a6f9bbdc17791e527a9dcd223b034f983add3c57052ec62ae4b61f6c3b8e5099c3ec0aa8ce5d4f0e1f308ff46803c5c72a5f902d02b65d713101dc83a252dfdb0fd4c36cf14030221a34b993fcb4f3261eb9aa884eb7ebc41fcef9b72765e09b63e2fc818a80f7128b153e763883ef632c6f97b77ea84ab070d85d129eb7cf2bd3d44419fa271ca0531339d9a2470a7ff37dc2c6da56c08b7bbff47d47c9d5cec9f106b3a3f23c98b65128e995dd47251d21acff2566614ca911318ad0416f1658eb8d31956d8f5ff0d22ab4390fee5e3cdf251bbc113b68b847203c3d65edeb7feb7a929ea25f2153837acd99486cf3b368b15cbd2ca3fe377bd95ef17b4fb77d8e633b747adc89f2738741a794a6058b5cf94bbb4a8849d6a3de88de7649155ba279f41f36895ed5b2161710c541c1bcbfd64bde555fd35aa0ed950725d9c595447fb73b52d4ab4b1affc5756babe36a42649d24b121244d9205344ffe6668a097c5c4fc83dff002c3af4ca6f357dd184c864b6cda545301ae0e333cc0ebccdbf00cad40fa4b133f8961751746feb4eb45d1b426e2a02effc5d4eb0f39df08c2aff63db26575df75f827ef33e20db0e1775f3c08d3833812b15348fa8cf8aba7643926ba11a87d11c34981690811019e7d1c109e5ec9863b4c49b65a6df5126e26a2c5867432632bf15389c243af3eba40e75ddbba75b315ab387a4d27c2000c56ec136808505087389b4a81466d08a2e32ee7de86efedd17d5390bb14aa1e79dcbe4103eb1bca793ef5f4a0ccfa3fe60d1210ef26dd955fc0b59180eaf04fd258272b173815596bda4575788156e3408c2aaaecb99293e83b1d85b3857e5432c8e158738d92a11cd783cf4af
@@ -697,6 +697,112 @@ const requiredFaqRule = {
697
697
  },
698
698
  };
699
699
 
700
+ /* ===== RULE: file-name-kebab-case ===== */
701
+ const fileNameKebabCaseRule = (function fileNameKebabCaseRule(){
702
+ const KEBAB_RE = /^[a-z0-9]+(?:-[a-z0-9]+)*$/;
703
+ const rule = {
704
+ meta: {
705
+ type: 'suggestion',
706
+ docs: { description: 'enforce kebab-case file names (lowercase-with-hyphens)', category: 'Stylistic Issues', recommended: true },
707
+ fixable: null,
708
+ schema: [ { type: 'object', properties: { allow: { type: 'array', items: { type: 'string' } } }, additionalProperties: false } ],
709
+ messages: { notKebab: 'File name "{{name}}" is not kebab-case. Rename to "{{expected}}" (exceptions: index, tests/stories, .d.ts, docs).' },
710
+ },
711
+ create(context) {
712
+ const opts = (context.options && context.options[0]) || {};
713
+ const allow = Array.isArray(opts.allow) ? opts.allow : [];
714
+ return {
715
+ Program(node) {
716
+ try {
717
+ const filename = context.getFilename();
718
+ if (!filename || filename === '<input>') return;
719
+ const fn = filename.replace(/\\\\/g, '/').split('/').pop();
720
+ if (!fn) return;
721
+ if (/^README(\.|$)/i.test(fn)) return;
722
+ let core = fn.replace(/\.d\.ts$/i, '').replace(/\.[^.]+$/, '');
723
+ core = core.replace(/\.(test|spec|stories|honeypot\.test)$/i, '');
724
+ if (!core || core === 'index') return;
725
+ if (/\/(?:docs|src\/tests|src\/stories)\//.test(filename)) return;
726
+ if (allow.includes(fn)) return;
727
+ if (!KEBAB_RE.test(core)) {
728
+ const expected = core.replace(/([A-Z])/g, (m) => '-' + m.toLowerCase()).replace(/[_\s]+/g, '-').replace(/--+/g, '-').replace(/^[-]+|[-]+$/g, '');
729
+ const suggested = expected || core.toLowerCase();
730
+ context.report({ node, messageId: 'notKebab', data: { name: fn, expected: suggested } });
731
+ }
732
+ } catch (err) { /* defensive */ }
733
+ }
734
+ };
735
+ }
736
+ };
737
+ return rule;
738
+ })();
739
+
740
+ /* ===== RULE: no-duplicate-export-names ===== */
741
+ const noDuplicateExportNamesRule = {
742
+ meta: {
743
+ type: 'problem',
744
+ docs: { description: 'Disallow duplicate exported identifiers from multiple source modules in a barrel file', category: 'Possible Errors', recommended: true },
745
+ schema: [],
746
+ messages: { duplicateExport: 'Duplicate export "{{name}}" found in multiple modules: {{modules}}' },
747
+ },
748
+ create(context) {
749
+ const filename = context.getFilename();
750
+ return {
751
+ Program() {
752
+ try {
753
+ const sourceCode = context.getSourceCode();
754
+ const exportAll = sourceCode.ast.body.filter(n => n.type === 'ExportAllDeclaration');
755
+ if (exportAll.length < 2) return; // nothing to compare
756
+
757
+ const nameMap = new Map();
758
+ for (const node of exportAll) {
759
+ if (!node.source || node.source.type !== 'Literal') continue;
760
+ const spec = String(node.source.value);
761
+ if (!spec.startsWith('.') && !spec.startsWith('/')) continue; // only local modules
762
+ let resolved;
763
+ try {
764
+ resolved = require.resolve(spec, { paths: [path.dirname(filename)] });
765
+ } catch (err) {
766
+ const alt = path.resolve(path.dirname(filename), spec);
767
+ if (fs.existsSync(alt + '.ts')) resolved = alt + '.ts';
768
+ else if (fs.existsSync(alt + '.tsx')) resolved = alt + '.tsx';
769
+ else if (fs.existsSync(alt + '.js')) resolved = alt + '.js';
770
+ else continue;
771
+ }
772
+ let content = '';
773
+ try { content = fs.readFileSync(resolved, 'utf8'); } catch (err) { continue; }
774
+
775
+ // best-effort: collect exported identifiers via regex (covers common TS/JS exports)
776
+ const exports = new Set();
777
+ const patterns = [ /export\s+function\s+([A-Za-z0-9_$]+)/g, /export\s+(?:const|let|var)\s+([A-Za-z0-9_$]+)/g, /export\s+class\s+([A-Za-z0-9_$]+)/g, /export\s+(?:type|interface|enum)\s+([A-Za-z0-9_$]+)/g, /export\s*\{([^}]+)\}/g ];
778
+ for (const re of patterns) {
779
+ let m;
780
+ while ((m = re.exec(content))) {
781
+ if (m[1]) {
782
+ m[1].split(',').map(s => s.trim().split(/\s+as\s+/)[0].trim()).filter(Boolean).forEach(n => exports.add(n));
783
+ }
784
+ }
785
+ }
786
+ for (const name of exports) {
787
+ if (!nameMap.has(name)) nameMap.set(name, []);
788
+ nameMap.get(name).push(spec);
789
+ }
790
+ }
791
+
792
+ // report duplicates collected across all export * sources
793
+ for (const [name, modules] of nameMap.entries()) {
794
+ if (modules.length > 1) {
795
+ context.report({ node: sourceCode.ast, messageId: 'duplicateExport', data: { name, modules: modules.join(', ') } });
796
+ }
797
+ }
798
+ } catch (err) {
799
+ // defensive: do not allow rule errors to crash ESLint
800
+ }
801
+ }
802
+ };
803
+ }
804
+ };
805
+
700
806
  export default {
701
807
  rules: {
702
808
  'prop-types-inferprops': propTypesInferPropsRule,
@@ -708,6 +814,8 @@ export default {
708
814
  'validate-test-locations': validateTestLocationsRule,
709
815
  'no-process-env': noProcessEnvRule,
710
816
  'no-debug-true': noDebugTrueRule,
817
+ 'file-name-kebab-case': fileNameKebabCaseRule,
818
+ 'no-duplicate-export-names': noDuplicateExportNamesRule,
711
819
  },
712
820
  configs: {
713
821
  recommended: {
@@ -721,6 +829,8 @@ export default {
721
829
  'pixelated/validate-test-locations': 'error',
722
830
  'pixelated/no-process-env': ['error', { allowed: ALLOWED_ENV_VARS } ],
723
831
  'pixelated/no-debug-true': 'warn',
832
+ 'pixelated/file-name-kebab-case': 'off',
833
+ 'pixelated/no-duplicate-export-names': 'warn',
724
834
  },
725
835
  },
726
836
  },
@@ -1,65 +1,3 @@
1
- /**
2
- * Axe-Core Accessibility Analysis Integration Services
3
- * Server-side utilities for performing comprehensive accessibility analysis on websites
4
- * Note: This makes external HTTP requests and should only be used server-side
5
- */
6
- interface AxeNode {
7
- target: string[];
8
- html: string;
9
- failureSummary?: string;
10
- ancestry?: string[];
11
- }
12
- interface AxeViolation {
13
- id: string;
14
- impact: 'minor' | 'moderate' | 'serious' | 'critical';
15
- description: string;
16
- help: string;
17
- helpUrl: string;
18
- nodes: AxeNode[];
19
- tags: string[];
20
- }
21
- interface AxeResult {
22
- violations: AxeViolation[];
23
- passes: AxeViolation[];
24
- incomplete: AxeViolation[];
25
- inapplicable: AxeViolation[];
26
- testEngine: {
27
- name: string;
28
- version: string;
29
- };
30
- testRunner: {
31
- name: string;
32
- };
33
- testEnvironment: {
34
- userAgent: string;
35
- windowWidth: number;
36
- windowHeight: number;
37
- orientationAngle?: number;
38
- orientationType?: string;
39
- };
40
- timestamp: string;
41
- url: string;
42
- }
43
- export interface AxeCoreData {
44
- site: string;
45
- url: string;
46
- result: AxeResult;
47
- summary: {
48
- violations: number;
49
- passes: number;
50
- incomplete: number;
51
- inapplicable: number;
52
- critical: number;
53
- serious: number;
54
- moderate: number;
55
- minor: number;
56
- };
57
- timestamp: string;
58
- status: 'success' | 'error';
59
- warnings?: string[];
60
- error?: string;
61
- injectionSource?: string;
62
- }
1
+ import type { AxeCoreData } from './site-health-types';
63
2
  export declare function performAxeCoreAnalysis(url: string, runtime_env?: 'auto' | 'local' | 'prod'): Promise<AxeCoreData>;
64
- export {};
65
3
  //# sourceMappingURL=site-health-axe-core.integration.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"site-health-axe-core.integration.d.ts","sourceRoot":"","sources":["../../../../../src/components/admin/site-health/site-health-axe-core.integration.ts"],"names":[],"mappings":"AAQA;;;;GAIG;AAEH,UAAU,OAAO;IACf,MAAM,EAAE,MAAM,EAAE,CAAC;IACjB,IAAI,EAAE,MAAM,CAAC;IACb,cAAc,CAAC,EAAE,MAAM,CAAC;IACxB,QAAQ,CAAC,EAAE,MAAM,EAAE,CAAC;CACrB;AAED,UAAU,YAAY;IACpB,EAAE,EAAE,MAAM,CAAC;IACX,MAAM,EAAE,OAAO,GAAG,UAAU,GAAG,SAAS,GAAG,UAAU,CAAC;IACtD,WAAW,EAAE,MAAM,CAAC;IACpB,IAAI,EAAE,MAAM,CAAC;IACb,OAAO,EAAE,MAAM,CAAC;IAChB,KAAK,EAAE,OAAO,EAAE,CAAC;IACjB,IAAI,EAAE,MAAM,EAAE,CAAC;CAChB;AAED,UAAU,SAAS;IACjB,UAAU,EAAE,YAAY,EAAE,CAAC;IAC3B,MAAM,EAAE,YAAY,EAAE,CAAC;IACvB,UAAU,EAAE,YAAY,EAAE,CAAC;IAC3B,YAAY,EAAE,YAAY,EAAE,CAAC;IAC7B,UAAU,EAAE;QACV,IAAI,EAAE,MAAM,CAAC;QACb,OAAO,EAAE,MAAM,CAAC;KACjB,CAAC;IACF,UAAU,EAAE;QACV,IAAI,EAAE,MAAM,CAAC;KACd,CAAC;IACF,eAAe,EAAE;QACf,SAAS,EAAE,MAAM,CAAC;QAClB,WAAW,EAAE,MAAM,CAAC;QACpB,YAAY,EAAE,MAAM,CAAC;QACrB,gBAAgB,CAAC,EAAE,MAAM,CAAC;QAC1B,eAAe,CAAC,EAAE,MAAM,CAAC;KAC1B,CAAC;IACF,SAAS,EAAE,MAAM,CAAC;IAClB,GAAG,EAAE,MAAM,CAAC;CACb;AAED,MAAM,WAAW,WAAW;IAC1B,IAAI,EAAE,MAAM,CAAC;IACb,GAAG,EAAE,MAAM,CAAC;IACZ,MAAM,EAAE,SAAS,CAAC;IAClB,OAAO,EAAE;QACP,UAAU,EAAE,MAAM,CAAC;QACnB,MAAM,EAAE,MAAM,CAAC;QACf,UAAU,EAAE,MAAM,CAAC;QACnB,YAAY,EAAE,MAAM,CAAC;QACrB,QAAQ,EAAE,MAAM,CAAC;QACjB,OAAO,EAAE,MAAM,CAAC;QAChB,QAAQ,EAAE,MAAM,CAAC;QACjB,KAAK,EAAE,MAAM,CAAC;KACf,CAAC;IACF,SAAS,EAAE,MAAM,CAAC;IAClB,MAAM,EAAE,SAAS,GAAG,OAAO,CAAC;IAC5B,QAAQ,CAAC,EAAE,MAAM,EAAE,CAAC;IACpB,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,eAAe,CAAC,EAAE,MAAM,CAAC;CAC1B;AAED,wBAAsB,sBAAsB,CAAC,GAAG,EAAE,MAAM,EAAE,WAAW,GAAE,MAAM,GAAG,OAAO,GAAG,MAAe,GAAG,OAAO,CAAC,WAAW,CAAC,CA+D/H"}
1
+ {"version":3,"file":"site-health-axe-core.integration.d.ts","sourceRoot":"","sources":["../../../../../src/components/admin/site-health/site-health-axe-core.integration.ts"],"names":[],"mappings":"AAOA,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,qBAAqB,CAAC;AAmDvD,wBAAsB,sBAAsB,CAAC,GAAG,EAAE,MAAM,EAAE,WAAW,GAAE,MAAM,GAAG,OAAO,GAAG,MAAe,GAAG,OAAO,CAAC,WAAW,CAAC,CA+D/H"}
@@ -1,9 +1,4 @@
1
- export interface GitCommit {
2
- hash: string;
3
- date: string;
4
- message: string;
5
- author: string;
6
- }
1
+ import type { GitCommit } from './site-health-types';
7
2
  export interface GitHealthResult {
8
3
  commits: GitCommit[];
9
4
  timestamp: string;
@@ -1 +1 @@
1
- {"version":3,"file":"site-health-github.integration.d.ts","sourceRoot":"","sources":["../../../../../src/components/admin/site-health/site-health-github.integration.ts"],"names":[],"mappings":"AAYA,MAAM,WAAW,SAAS;IACxB,IAAI,EAAE,MAAM,CAAC;IACb,IAAI,EAAE,MAAM,CAAC;IACb,OAAO,EAAE,MAAM,CAAC;IAChB,MAAM,EAAE,MAAM,CAAC;CAChB;AAED,MAAM,WAAW,eAAe;IAC9B,OAAO,EAAE,SAAS,EAAE,CAAC;IACrB,SAAS,EAAE,MAAM,CAAC;IAClB,MAAM,EAAE,SAAS,GAAG,OAAO,CAAC;IAC5B,KAAK,CAAC,EAAE,MAAM,CAAC;CAChB;AAED,MAAM,WAAW,UAAU;IACzB,IAAI,EAAE,MAAM,CAAC;IACb,mFAAmF;IACnF,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,qCAAqC;IACrC,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,mCAAmC;IACnC,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,6DAA6D;IAC7D,SAAS,CAAC,EAAE,MAAM,CAAC;CACpB;AAED;;;GAGG;AACH,wBAAsB,gBAAgB,CAAC,UAAU,EAAE,UAAU,EAAE,SAAS,CAAC,EAAE,MAAM,EAAE,OAAO,CAAC,EAAE,MAAM,EAAE,SAAS,CAAC,EAAE,CAAC,KAAK,EAAE,WAAW,EAAE,IAAI,CAAC,EAAE,WAAW,KAAK,OAAO,CAAC,GAAG,CAAC,GAAG,OAAO,CAAC,eAAe,CAAC,CAgHnM"}
1
+ {"version":3,"file":"site-health-github.integration.d.ts","sourceRoot":"","sources":["../../../../../src/components/admin/site-health/site-health-github.integration.ts"],"names":[],"mappings":"AAIA,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,qBAAqB,CAAC;AAMrD,MAAM,WAAW,eAAe;IAC9B,OAAO,EAAE,SAAS,EAAE,CAAC;IACrB,SAAS,EAAE,MAAM,CAAC;IAClB,MAAM,EAAE,SAAS,GAAG,OAAO,CAAC;IAC5B,KAAK,CAAC,EAAE,MAAM,CAAC;CAChB;AAED,MAAM,WAAW,UAAU;IACzB,IAAI,EAAE,MAAM,CAAC;IACb,mFAAmF;IACnF,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,qCAAqC;IACrC,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,mCAAmC;IACnC,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,6DAA6D;IAC7D,SAAS,CAAC,EAAE,MAAM,CAAC;CACpB;AAED;;;GAGG;AACH,wBAAsB,gBAAgB,CAAC,UAAU,EAAE,UAAU,EAAE,SAAS,CAAC,EAAE,MAAM,EAAE,OAAO,CAAC,EAAE,MAAM,EAAE,SAAS,CAAC,EAAE,CAAC,KAAK,EAAE,WAAW,EAAE,IAAI,CAAC,EAAE,WAAW,KAAK,OAAO,CAAC,GAAG,CAAC,GAAG,OAAO,CAAC,eAAe,CAAC,CAgHnM"}
@@ -1,11 +1,4 @@
1
- export interface Vulnerability {
2
- name: string;
3
- severity: 'info' | 'low' | 'moderate' | 'high' | 'critical';
4
- title: string;
5
- url?: string;
6
- range: string;
7
- fixAvailable: boolean;
8
- }
1
+ import type { Vulnerability } from './site-health-types';
9
2
  export interface SecurityScanResult {
10
3
  status: 'success' | 'error';
11
4
  data?: {
@@ -1 +1 @@
1
- {"version":3,"file":"site-health-security.integration.d.ts","sourceRoot":"","sources":["../../../../../src/components/admin/site-health/site-health-security.integration.ts"],"names":[],"mappings":"AAOA,MAAM,WAAW,aAAa;IAC5B,IAAI,EAAE,MAAM,CAAC;IACb,QAAQ,EAAE,MAAM,GAAG,KAAK,GAAG,UAAU,GAAG,MAAM,GAAG,UAAU,CAAC;IAC5D,KAAK,EAAE,MAAM,CAAC;IACd,GAAG,CAAC,EAAE,MAAM,CAAC;IACb,KAAK,EAAE,MAAM,CAAC;IACd,YAAY,EAAE,OAAO,CAAC;CACvB;AAED,MAAM,WAAW,kBAAkB;IACjC,MAAM,EAAE,SAAS,GAAG,OAAO,CAAC;IAC5B,IAAI,CAAC,EAAE;QACL,MAAM,EAAE,MAAM,CAAC;QACf,OAAO,CAAC,EAAE,MAAM,CAAC;QACjB,eAAe,EAAE,aAAa,EAAE,CAAC;QACjC,OAAO,EAAE;YACP,IAAI,EAAE,MAAM,CAAC;YACb,GAAG,EAAE,MAAM,CAAC;YACZ,QAAQ,EAAE,MAAM,CAAC;YACjB,IAAI,EAAE,MAAM,CAAC;YACb,QAAQ,EAAE,MAAM,CAAC;YACjB,KAAK,EAAE,MAAM,CAAC;SACf,CAAC;QACF,YAAY,EAAE,MAAM,CAAC;QACrB,iBAAiB,EAAE,MAAM,CAAC;KAC3B,CAAC;IACF,KAAK,CAAC,EAAE,MAAM,CAAC;CAChB;AAqCD,wBAAsB,qBAAqB,CAAC,SAAS,EAAE,MAAM,EAAE,QAAQ,CAAC,EAAE,MAAM,EAAE,QAAQ,CAAC,EAAE,MAAM,GAAG,OAAO,CAAC,kBAAkB,CAAC,CAiHhI"}
1
+ {"version":3,"file":"site-health-security.integration.d.ts","sourceRoot":"","sources":["../../../../../src/components/admin/site-health/site-health-security.integration.ts"],"names":[],"mappings":"AAIA,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,qBAAqB,CAAC;AAIzD,MAAM,WAAW,kBAAkB;IACjC,MAAM,EAAE,SAAS,GAAG,OAAO,CAAC;IAC5B,IAAI,CAAC,EAAE;QACL,MAAM,EAAE,MAAM,CAAC;QACf,OAAO,CAAC,EAAE,MAAM,CAAC;QACjB,eAAe,EAAE,aAAa,EAAE,CAAC;QACjC,OAAO,EAAE;YACP,IAAI,EAAE,MAAM,CAAC;YACb,GAAG,EAAE,MAAM,CAAC;YACZ,QAAQ,EAAE,MAAM,CAAC;YACjB,IAAI,EAAE,MAAM,CAAC;YACb,QAAQ,EAAE,MAAM,CAAC;YACjB,KAAK,EAAE,MAAM,CAAC;SACf,CAAC;QACF,YAAY,EAAE,MAAM,CAAC;QACrB,iBAAiB,EAAE,MAAM,CAAC;KAC3B,CAAC;IACF,KAAK,CAAC,EAAE,MAAM,CAAC;CAChB;AAqCD,wBAAsB,qBAAqB,CAAC,SAAS,EAAE,MAAM,EAAE,QAAQ,CAAC,EAAE,MAAM,EAAE,QAAQ,CAAC,EAAE,MAAM,GAAG,OAAO,CAAC,kBAAkB,CAAC,CAiHhI"}
@@ -121,6 +121,8 @@ export interface AxeCoreData {
121
121
  };
122
122
  timestamp: string;
123
123
  status: 'success' | 'error';
124
+ warnings?: string[];
125
+ injectionSource?: string;
124
126
  error?: string;
125
127
  }
126
128
  export interface AxeCoreResponse {
@@ -1 +1 @@
1
- {"version":3,"file":"site-health-types.d.ts","sourceRoot":"","sources":["../../../../../src/components/admin/site-health/site-health-types.ts"],"names":[],"mappings":"AACA,MAAM,WAAW,QAAQ;IACvB,EAAE,EAAE,MAAM,CAAC;IACX,KAAK,EAAE,MAAM,CAAC;IACd,WAAW,EAAE,MAAM,CAAC;IACpB,KAAK,EAAE,MAAM,GAAG,IAAI,CAAC;IACrB,gBAAgB,EAAE,MAAM,CAAC;IACzB,YAAY,CAAC,EAAE,MAAM,CAAC;IACtB,YAAY,CAAC,EAAE,MAAM,CAAC;IACtB,OAAO,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;CACnC;AAED,MAAM,WAAW,WAAW;IAC1B,EAAE,EAAE,MAAM,CAAC;IACX,KAAK,EAAE,MAAM,CAAC;IACd,KAAK,EAAE,MAAM,GAAG,IAAI,CAAC;IACrB,MAAM,EAAE,QAAQ,EAAE,CAAC;CACpB;AAED,MAAM,WAAW,SAAS;IACxB,WAAW,EAAE,MAAM,GAAG,IAAI,CAAC;IAC3B,aAAa,EAAE,MAAM,GAAG,IAAI,CAAC;IAC7B,gBAAgB,EAAE,MAAM,GAAG,IAAI,CAAC;IAChC,GAAG,EAAE,MAAM,GAAG,IAAI,CAAC;IACnB,GAAG,EAAE,MAAM,GAAG,IAAI,CAAC;CACpB;AA8BD,MAAM,WAAW,aAAa;IAC5B,IAAI,EAAE,MAAM,CAAC;IACb,QAAQ,EAAE,MAAM,GAAG,KAAK,GAAG,UAAU,GAAG,MAAM,GAAG,UAAU,CAAC;IAC5D,KAAK,EAAE,MAAM,CAAC;IACd,GAAG,CAAC,EAAE,MAAM,CAAC;IACb,KAAK,EAAE,MAAM,CAAC;IACd,YAAY,EAAE,OAAO,CAAC;CACvB;AAED,MAAM,WAAW,cAAc;IAC7B,OAAO,EAAE,OAAO,CAAC;IACjB,MAAM,EAAE,MAAM,CAAC;IACf,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,SAAS,EAAE,MAAM,CAAC;IAClB,GAAG,CAAC,EAAE,MAAM,CAAC;IACb,eAAe,EAAE,aAAa,EAAE,CAAC;IACjC,OAAO,EAAE;QACP,IAAI,EAAE,MAAM,CAAC;QACb,GAAG,EAAE,MAAM,CAAC;QACZ,QAAQ,EAAE,MAAM,CAAC;QACjB,IAAI,EAAE,MAAM,CAAC;QACb,QAAQ,EAAE,MAAM,CAAC;QACjB,KAAK,EAAE,MAAM,CAAC;KACf,CAAC;IACF,YAAY,EAAE,MAAM,CAAC;IACrB,iBAAiB,EAAE,MAAM,CAAC;IAC1B,KAAK,CAAC,EAAE,MAAM,CAAC;CAChB;AAGD,MAAM,WAAW,UAAU;IACzB,OAAO,EAAE,OAAO,CAAC;IACjB,MAAM,EAAE,SAAS,GAAG,WAAW,GAAG,SAAS,CAAC;IAC5C,SAAS,EAAE,MAAM,CAAC;IAClB,GAAG,CAAC,EAAE,MAAM,CAAC;IACb,OAAO,CAAC,EAAE,MAAM,CAAC;CAClB;AAGD,MAAM,WAAW,SAAS;IACxB,IAAI,EAAE,MAAM,CAAC;IACb,IAAI,EAAE,MAAM,CAAC;IACb,OAAO,EAAE,MAAM,CAAC;IAChB,MAAM,EAAE,MAAM,CAAC;IACf,OAAO,CAAC,EAAE,MAAM,CAAC;CAClB;AAED,MAAM,WAAW,OAAO;IACtB,OAAO,EAAE,OAAO,CAAC;IACjB,OAAO,CAAC,EAAE,SAAS,EAAE,CAAC;IACtB,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,SAAS,EAAE,MAAM,CAAC;CACnB;AAGD,MAAM,WAAW,OAAO;IACtB,MAAM,EAAE,MAAM,EAAE,CAAC;IACjB,IAAI,EAAE,MAAM,CAAC;IACb,cAAc,CAAC,EAAE,MAAM,CAAC;IACxB,QAAQ,CAAC,EAAE,MAAM,EAAE,CAAC;CACrB;AAED,MAAM,WAAW,YAAY;IAC3B,EAAE,EAAE,MAAM,CAAC;IACX,MAAM,EAAE,OAAO,GAAG,UAAU,GAAG,SAAS,GAAG,UAAU,CAAC;IACtD,WAAW,EAAE,MAAM,CAAC;IACpB,IAAI,EAAE,MAAM,CAAC;IACb,OAAO,EAAE,MAAM,CAAC;IAChB,KAAK,EAAE,OAAO,EAAE,CAAC;IACjB,IAAI,EAAE,MAAM,EAAE,CAAC;CAChB;AAED,MAAM,WAAW,SAAS;IACxB,UAAU,EAAE,YAAY,EAAE,CAAC;IAC3B,MAAM,EAAE,YAAY,EAAE,CAAC;IACvB,UAAU,EAAE,YAAY,EAAE,CAAC;IAC3B,YAAY,EAAE,YAAY,EAAE,CAAC;IAC7B,UAAU,EAAE;QACV,IAAI,EAAE,MAAM,CAAC;QACb,OAAO,EAAE,MAAM,CAAC;KACjB,CAAC;IACF,UAAU,EAAE;QACV,IAAI,EAAE,MAAM,CAAC;KACd,CAAC;IACF,eAAe,EAAE;QACf,SAAS,EAAE,MAAM,CAAC;QAClB,WAAW,EAAE,MAAM,CAAC;QACpB,YAAY,EAAE,MAAM,CAAC;QACrB,gBAAgB,CAAC,EAAE,MAAM,CAAC;QAC1B,eAAe,CAAC,EAAE,MAAM,CAAC;KAC1B,CAAC;IACF,SAAS,EAAE,MAAM,CAAC;IAClB,GAAG,EAAE,MAAM,CAAC;CACb;AAED,MAAM,WAAW,WAAW;IAC1B,IAAI,EAAE,MAAM,CAAC;IACb,GAAG,EAAE,MAAM,CAAC;IACZ,MAAM,EAAE,SAAS,CAAC;IAClB,OAAO,EAAE;QACP,UAAU,EAAE,MAAM,CAAC;QACnB,MAAM,EAAE,MAAM,CAAC;QACf,UAAU,EAAE,MAAM,CAAC;QACnB,YAAY,EAAE,MAAM,CAAC;QACrB,QAAQ,EAAE,MAAM,CAAC;QACjB,OAAO,EAAE,MAAM,CAAC;QAChB,QAAQ,EAAE,MAAM,CAAC;QACjB,KAAK,EAAE,MAAM,CAAC;KACf,CAAC;IACF,SAAS,EAAE,MAAM,CAAC;IAClB,MAAM,EAAE,SAAS,GAAG,OAAO,CAAC;IAC5B,KAAK,CAAC,EAAE,MAAM,CAAC;CAChB;AAED,MAAM,WAAW,eAAe;IAC9B,OAAO,EAAE,OAAO,CAAC;IACjB,IAAI,CAAC,EAAE,WAAW,EAAE,CAAC;IACrB,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,OAAO,CAAC,EAAE,MAAM,CAAC;CAClB;AAGD,MAAM,WAAW,oBAAoB;IACnC,GAAG,EAAE,MAAM,CAAC;IACZ,GAAG,EAAE,MAAM,CAAC;IACZ,GAAG,EAAE,MAAM,CAAC;IACZ,GAAG,EAAE,MAAM,CAAC;IACZ,IAAI,EAAE,MAAM,CAAC;IACb,UAAU,EAAE,MAAM,CAAC;IACnB,WAAW,EAAE,MAAM,CAAC;IACpB,iBAAiB,EAAE,MAAM,CAAC;IAC1B,oBAAoB,EAAE,MAAM,CAAC;CAC9B;AAED,MAAM,WAAW,iBAAiB;IAChC,IAAI,EAAE,MAAM,CAAC;IACb,GAAG,EAAE,MAAM,CAAC;IACZ,OAAO,EAAE,oBAAoB,CAAC;IAC9B,MAAM,EAAE,SAAS,CAAC;IAClB,UAAU,EAAE;QACV,WAAW,EAAE,WAAW,CAAC;QACzB,aAAa,EAAE,WAAW,CAAC;QAC3B,gBAAgB,EAAE,WAAW,CAAC;QAC9B,GAAG,EAAE,WAAW,CAAC;QACjB,GAAG,EAAE,WAAW,CAAC;KAClB,CAAC;IACF,SAAS,EAAE,MAAM,CAAC;IAClB,MAAM,EAAE,SAAS,GAAG,OAAO,CAAC;IAC5B,KAAK,CAAC,EAAE,MAAM,CAAC;CAChB;AAED,MAAM,WAAW,qBAAqB;IACpC,OAAO,EAAE,OAAO,CAAC;IACjB,IAAI,CAAC,EAAE,iBAAiB,EAAE,CAAC;IAC3B,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,OAAO,CAAC,EAAE,MAAM,CAAC;CAClB"}
1
+ {"version":3,"file":"site-health-types.d.ts","sourceRoot":"","sources":["../../../../../src/components/admin/site-health/site-health-types.ts"],"names":[],"mappings":"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"}
@@ -1,6 +1,8 @@
1
1
  import PropTypes, { InferProps } from "prop-types";
2
2
  import "../../css/pixelated.grid.scss";
3
3
  import "./tiles.css";
4
+ export declare const TilesVariants: readonly ["caption", "overlay"];
5
+ export type TilesVariantType = typeof TilesVariants[number] | undefined;
4
6
  export type TilesType = InferProps<typeof Tiles.propTypes>;
5
7
  export declare function Tiles(props: TilesType): import("react/jsx-runtime").JSX.Element;
6
8
  export declare namespace Tiles {
@@ -8,6 +10,11 @@ export declare namespace Tiles {
8
10
  cards: PropTypes.Validator<any[]>;
9
11
  rowCount: PropTypes.Requireable<number>;
10
12
  imgClick: PropTypes.Requireable<(...args: any[]) => any>;
13
+ /**
14
+ * Optional visual variant. Allowed values are enumerated so consumers get
15
+ * a discoverable, typed API.
16
+ */
17
+ variant: PropTypes.Requireable<"caption" | "overlay">;
11
18
  };
12
19
  }
13
20
  export type TileType = InferProps<typeof Tile.propTypes>;
@@ -21,6 +28,8 @@ declare namespace Tile {
21
28
  imageAlt: PropTypes.Requireable<string>;
22
29
  bodyText: PropTypes.Requireable<string>;
23
30
  imgClick: PropTypes.Requireable<(...args: any[]) => any>;
31
+ /** 'caption' - visual caption beneath image (prefers bodyText, falls back to imageAlt) */
32
+ variant: PropTypes.Requireable<"caption" | "overlay">;
24
33
  };
25
34
  }
26
35
  export {};
@@ -1 +1 @@
1
- {"version":3,"file":"tiles.d.ts","sourceRoot":"","sources":["../../../../src/components/general/tiles.tsx"],"names":[],"mappings":"AAGA,OAAO,SAAS,EAAE,EAAE,UAAU,EAAE,MAAM,YAAY,CAAC;AAKnD,OAAO,+BAA+B,CAAC;AACvC,OAAO,aAAa,CAAC;AAQrB,MAAM,MAAM,SAAS,GAAG,UAAU,CAAC,OAAO,KAAK,CAAC,SAAS,CAAC,CAAC;AAC3D,wBAAgB,KAAK,CAAC,KAAK,EAAE,SAAS,2CA2BrC;yBA3Be,KAAK;;;;;;;AAyCrB,MAAM,MAAM,QAAQ,GAAG,UAAU,CAAC,OAAO,IAAI,CAAC,SAAS,CAAC,CAAC;AACzD,iBAAS,IAAI,CAAE,KAAK,EAAE,QAAQ,2CAyB7B;kBAzBQ,IAAI"}
1
+ {"version":3,"file":"tiles.d.ts","sourceRoot":"","sources":["../../../../src/components/general/tiles.tsx"],"names":[],"mappings":"AAGA,OAAO,SAAS,EAAE,EAAE,UAAU,EAAE,MAAM,YAAY,CAAC;AAKnD,OAAO,+BAA+B,CAAC;AACvC,OAAO,aAAa,CAAC;AAErB,eAAO,MAAM,aAAa,iCAAoC,CAAC;AAC/D,MAAM,MAAM,gBAAgB,GAAG,OAAO,aAAa,CAAC,MAAM,CAAC,GAAG,SAAS,CAAC;AAWxE,MAAM,MAAM,SAAS,GAAG,UAAU,CAAC,OAAO,KAAK,CAAC,SAAS,CAAC,CAAC;AAC3D,wBAAgB,KAAK,CAAC,KAAK,EAAE,SAAS,2CA4BrC;yBA5Be,KAAK;;;;;QAPpB;;;WAGG;;;;AAgDJ,MAAM,MAAM,QAAQ,GAAG,UAAU,CAAC,OAAO,IAAI,CAAC,SAAS,CAAC,CAAC;AACzD,iBAAS,IAAI,CAAE,KAAK,EAAE,QAAQ,2CA2B7B;kBA3BQ,IAAI;;;;;;;;;QAJZ,0FAA0F"}
@@ -3,10 +3,6 @@ import { generateKey, capitalize, attributeMap } from '../../general/utilities';
3
3
  * Maps input type to form component name
4
4
  */
5
5
  export declare function mapTypeToComponent(myType: string): string;
6
- /**
7
- * Generates field JSON for form building
8
- */
9
- export declare function generateFieldJSON(component: string, type: string): any;
10
6
  /**
11
7
  * Generates type selection field for form builder
12
8
  */
@@ -1 +1 @@
1
- {"version":3,"file":"formutils.d.ts","sourceRoot":"","sources":["../../../../../src/components/sitebuilder/form/formutils.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,WAAW,EAAE,UAAU,EAAE,YAAY,EAAE,MAAM,yBAAyB,CAAC;AAIhF;;GAEG;AACH,wBAAgB,kBAAkB,CAAC,MAAM,EAAE,MAAM,GAAG,MAAM,CAWzD;AAED;;GAEG;AACH,wBAAgB,iBAAiB,CAAC,SAAS,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,GAAG,GAAG,CA+ItE;AAED;;GAEG;AACH,wBAAgB,iBAAiB,IAAI,GAAG,CAwBvC;AAED;;GAEG;AACH,wBAAgB,mBAAmB,CAAC,KAAK,EAAE,GAAG,GAAG,IAAI,CAgBpD;AAGD,OAAO,EAAE,WAAW,EAAE,UAAU,EAAE,YAAY,EAAE,CAAC"}
1
+ {"version":3,"file":"formutils.d.ts","sourceRoot":"","sources":["../../../../../src/components/sitebuilder/form/formutils.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,WAAW,EAAE,UAAU,EAAE,YAAY,EAAE,MAAM,yBAAyB,CAAC;AAIhF;;GAEG;AACH,wBAAgB,kBAAkB,CAAC,MAAM,EAAE,MAAM,GAAG,MAAM,CAWzD;AAiKD;;GAEG;AACH,wBAAgB,iBAAiB,IAAI,GAAG,CAwBvC;AAED;;GAEG;AACH,wBAAgB,mBAAmB,CAAC,KAAK,EAAE,GAAG,GAAG,IAAI,CAgBpD;AAGD,OAAO,EAAE,WAAW,EAAE,UAAU,EAAE,YAAY,EAAE,CAAC"}
@@ -193,6 +193,52 @@ declare namespace _default {
193
193
  AssignmentExpression(node: any): void;
194
194
  };
195
195
  };
196
+ 'file-name-kebab-case': {
197
+ meta: {
198
+ type: string;
199
+ docs: {
200
+ description: string;
201
+ category: string;
202
+ recommended: boolean;
203
+ };
204
+ fixable: null;
205
+ schema: {
206
+ type: string;
207
+ properties: {
208
+ allow: {
209
+ type: string;
210
+ items: {
211
+ type: string;
212
+ };
213
+ };
214
+ };
215
+ additionalProperties: boolean;
216
+ }[];
217
+ messages: {
218
+ notKebab: string;
219
+ };
220
+ };
221
+ create(context: any): {
222
+ Program(node: any): void;
223
+ };
224
+ };
225
+ 'no-duplicate-export-names': {
226
+ meta: {
227
+ type: string;
228
+ docs: {
229
+ description: string;
230
+ category: string;
231
+ recommended: boolean;
232
+ };
233
+ schema: never[];
234
+ messages: {
235
+ duplicateExport: string;
236
+ };
237
+ };
238
+ create(context: any): {
239
+ Program(): void;
240
+ };
241
+ };
196
242
  };
197
243
  namespace configs {
198
244
  namespace recommended {
@@ -208,6 +254,8 @@ declare namespace _default {
208
254
  allowed: string[];
209
255
  })[];
210
256
  'pixelated/no-debug-true': string;
257
+ 'pixelated/file-name-kebab-case': string;
258
+ 'pixelated/no-duplicate-export-names': string;
211
259
  };
212
260
  export { rules_1 as rules };
213
261
  }
@@ -4,5 +4,17 @@ declare namespace _default {
4
4
  }
5
5
  export default _default;
6
6
  export function TilesStory(): import("react/jsx-runtime").JSX.Element;
7
+ export function TilesPlayground(): import("react/jsx-runtime").JSX.Element;
8
+ export namespace TilesPlayground {
9
+ let storyName: string;
10
+ }
11
+ export function Caption(): import("react/jsx-runtime").JSX.Element;
12
+ export namespace Caption {
13
+ let storyName_1: string;
14
+ export { storyName_1 as storyName };
15
+ export function play({ canvasElement }: {
16
+ canvasElement: any;
17
+ }): Promise<void>;
18
+ }
7
19
  import { Tiles } from "@/components/general/tiles";
8
20
  //# sourceMappingURL=tiles.stories.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"tiles.stories.d.ts","sourceRoot":"","sources":["../../../../src/stories/general/tiles.stories.js"],"names":[],"mappings":";;;;;AAsEO,sEAAwC;sBArEzB,4BAA4B"}
1
+ {"version":3,"file":"tiles.stories.d.ts","sourceRoot":"","sources":["../../../../src/stories/general/tiles.stories.js"],"names":[],"mappings":";;;;;AAoFO,sEAAwC;AAIxC,2EAeN;;;;AAIM,mEAiBN;;;;IAID;;sBAsBC;;sBArJqB,4BAA4B"}
@@ -1 +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"}
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;;;kBAqGW;QAAE,aAAa,EAAE,WAAW,CAAA;KAAE;CAJnE,CAAC"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@pixelated-tech/components",
3
- "version": "3.11.3",
3
+ "version": "3.11.4",
4
4
  "private": false,
5
5
  "author": {
6
6
  "name": "Pixelated Technologies",