@pixelated-tech/components 3.5.0 → 3.5.1

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 (30) hide show
  1. package/dist/components/admin/site-health/site-health-core-web-vitals.integration.js +3 -3
  2. package/dist/components/admin/site-health/site-health-github.js +2 -2
  3. package/dist/components/admin/site-health/site-health-security.js +2 -2
  4. package/dist/components/admin/site-health/site-health-template.js +1 -0
  5. package/dist/components/general/accordion.js +4 -3
  6. package/dist/components/general/modal.js +1 -1
  7. package/dist/components/seo/faq-accordion.css +125 -0
  8. package/dist/components/seo/faq-accordion.js +56 -0
  9. package/dist/components/seo/schema-faq.js +6 -0
  10. package/dist/index.adminserver.js +1 -3
  11. package/dist/index.js +8 -1
  12. package/dist/index.server.js +1 -0
  13. package/dist/types/components/admin/site-health/site-health-accessibility.d.ts.map +1 -1
  14. package/dist/types/components/admin/site-health/site-health-security.d.ts.map +1 -1
  15. package/dist/types/components/admin/site-health/site-health-seo.d.ts.map +1 -1
  16. package/dist/types/components/admin/site-health/site-health-template.d.ts +1 -0
  17. package/dist/types/components/admin/site-health/site-health-template.d.ts.map +1 -1
  18. package/dist/types/components/admin/site-health/site-health-types.d.ts +0 -21
  19. package/dist/types/components/admin/site-health/site-health-types.d.ts.map +1 -1
  20. package/dist/types/components/general/accordion.d.ts +3 -2
  21. package/dist/types/components/general/accordion.d.ts.map +1 -1
  22. package/dist/types/components/general/modal.d.ts.map +1 -1
  23. package/dist/types/components/seo/faq-accordion.d.ts +18 -0
  24. package/dist/types/components/seo/faq-accordion.d.ts.map +1 -0
  25. package/dist/types/components/seo/schema-faq.d.ts +6 -0
  26. package/dist/types/components/seo/schema-faq.d.ts.map +1 -0
  27. package/dist/types/index.adminserver.d.ts +1 -0
  28. package/dist/types/index.d.ts +8 -1
  29. package/dist/types/index.server.d.ts +1 -0
  30. package/package.json +1 -1
@@ -88,7 +88,7 @@ async function fetchPSIData(url) {
88
88
  if (!apiKey) {
89
89
  throw new Error('GOOGLE_API_KEY environment variable is not set');
90
90
  }
91
- const psiUrl = `https://www.googleapis.com/pagespeedonline/v5/runPagespeed?url=${encodeURIComponent(url)}&key=${apiKey}&strategy=mobile&category=performance&category=accessibility&category=best-practices&category=seo&category=pwa`;
91
+ const psiUrl = `https://www.googleapis.com/pagespeedonline/v5/runPagespeed?url=${encodeURIComponent(url)}&key=${apiKey}&strategy=mobile&category=performance&category=accessibility&category=best-practices&category=seo`;
92
92
  const fetchWithRetry = async (url, maxRetries = 2) => {
93
93
  for (let attempt = 0; attempt <= maxRetries; attempt++) {
94
94
  try {
@@ -104,13 +104,13 @@ async function fetchPSIData(url) {
104
104
  return response;
105
105
  }
106
106
  catch (error) {
107
- if (attempt === maxRetries || error instanceof Error && error.name === 'AbortError') {
107
+ if (attempt === maxRetries) {
108
108
  const errorMessage = error instanceof Error && error.name === 'AbortError'
109
109
  ? 'PSI API request timed out after 60 seconds'
110
110
  : `PSI API request failed: ${error instanceof Error ? error.message : 'Unknown error'}`;
111
111
  throw new Error(errorMessage);
112
112
  }
113
- // Wait before retry (exponential backoff)
113
+ // Wait before retry (exponential backoff) - retry on both network errors and timeouts
114
114
  await new Promise(resolve => setTimeout(resolve, Math.pow(2, attempt) * 1000));
115
115
  }
116
116
  }
@@ -10,12 +10,12 @@ SiteHealthGit.propTypes = {
10
10
  };
11
11
  export function SiteHealthGit({ siteName, startDate, endDate }) {
12
12
  const fetchGitData = async (site) => {
13
- const params = new URLSearchParams({ site: encodeURIComponent(site) });
13
+ const params = new URLSearchParams({ siteName: encodeURIComponent(site) });
14
14
  if (startDate)
15
15
  params.append('startDate', startDate);
16
16
  if (endDate)
17
17
  params.append('endDate', endDate);
18
- const response = await fetch(`/api/site-health/git?${params.toString()}`);
18
+ const response = await fetch(`/api/site-health/github?${params.toString()}`);
19
19
  if (!response.ok) {
20
20
  throw new Error('Failed to fetch git data');
21
21
  }
@@ -13,7 +13,7 @@ export function SiteHealthSecurity({ siteName }) {
13
13
  const psiResponse = await fetch(`/api/site-health/core-web-vitals?siteName=${encodeURIComponent(site)}`);
14
14
  const psiResult = await psiResponse.json();
15
15
  return {
16
- psiData: psiResult.success ? psiResult.data : undefined
16
+ psiData: psiResult.success ? psiResult : undefined
17
17
  };
18
18
  }, []);
19
19
  return (_jsx(SiteHealthTemplate, { siteName: siteName, title: "PageSpeed - Site Security", fetchData: fetchSecurityData, children: (data) => {
@@ -154,7 +154,7 @@ export function SiteHealthSecurity({ siteName }) {
154
154
  }
155
155
  return 'Details available';
156
156
  };
157
- const psiData = data?.psiData?.[0];
157
+ const psiData = data?.psiData?.data?.[0];
158
158
  if (!psiData) {
159
159
  return (_jsx("p", { style: { color: '#6b7280' }, children: "No security data available for this site." }));
160
160
  }
@@ -3,6 +3,7 @@ import { jsx as _jsx, jsxs as _jsxs, Fragment as _Fragment } from "react/jsx-run
3
3
  import { useEffect, useState } from 'react';
4
4
  import PropTypes from 'prop-types';
5
5
  import { PageGridItem } from '../../general/semantic';
6
+ import "./site-health.css";
6
7
  SiteHealthTemplate.propTypes = {
7
8
  siteName: PropTypes.string.isRequired,
8
9
  title: PropTypes.string,
@@ -5,10 +5,11 @@ import './accordion.css';
5
5
  Accordion.propTypes = {
6
6
  items: PropTypes.arrayOf(PropTypes.shape({
7
7
  title: PropTypes.string.isRequired,
8
- content: PropTypes.oneOfType([PropTypes.string, PropTypes.node]).isRequired,
8
+ content: PropTypes.oneOfType([PropTypes.string, PropTypes.node]),
9
9
  open: PropTypes.bool,
10
10
  })).isRequired,
11
+ onToggle: PropTypes.func,
11
12
  };
12
- export function Accordion({ items }) {
13
- return (_jsx("div", { className: "accordion", children: items?.map((item, index) => (item ? (_jsxs("details", { className: "accordion-item", open: item.open ?? undefined, children: [_jsx("summary", { className: "accordion-title", children: _jsx("h3", { id: `accordion-header-${index}`, children: item.title }) }), _jsx("div", { className: "accordion-content", role: "region", "aria-labelledby": `accordion-header-${index}`, children: typeof item.content === 'string' ? (_jsx("p", { children: item.content })) : (item.content) })] }, index)) : null)) }));
13
+ export function Accordion({ items, onToggle }) {
14
+ return (_jsx("div", { className: "accordion", children: items?.map((item, index) => (item ? (_jsxs("details", { className: "accordion-item", open: item.open ?? undefined, onToggle: onToggle ? (e) => onToggle(index, e.target.open) : undefined, children: [_jsx("summary", { className: "accordion-title", children: _jsx("h3", { id: `accordion-header-${index}`, children: item.title }) }), _jsx("div", { className: "accordion-content", role: "region", "aria-labelledby": `accordion-header-${index}`, children: typeof item.content === 'string' ? (_jsx("p", { children: item.content })) : (item.content) })] }, index)) : null)) }));
14
15
  }
@@ -81,7 +81,7 @@ export function Modal({ modalContent, modalID, isOpen = false, handleCloseEvent
81
81
  handleCloseEvent();
82
82
  }
83
83
  } : undefined;
84
- return (_jsx("div", { id: myModalID, className: "modal", style: { display: isOpen ? 'block' : 'none' }, ref: modalRef, onClick: handleModalClick, children: _jsxs("div", { className: "modal-content", role: "dialog", "aria-modal": "true", children: [_jsx("button", { id: myModalCloseID, className: "modal-close", "aria-label": "Close modal", onClick: handleCloseClick, onKeyDown: handleCloseKeyDown, type: "button", children: "\u00D7" }), modalContent] }) }));
84
+ return (_jsx("div", { id: myModalID, className: "modal", style: { display: isOpen ? 'block' : 'none' }, ref: modalRef, onClick: handleModalClick, onKeyDown: handleModalKeyDown, tabIndex: -1, "aria-label": "Modal overlay", children: _jsxs("div", { className: "modal-content", role: "dialog", "aria-modal": "true", children: [_jsx("button", { id: myModalCloseID, className: "modal-close", "aria-label": "Close modal", onClick: handleCloseClick, onKeyDown: handleCloseKeyDown, type: "button", children: "\u00D7" }), modalContent] }) }));
85
85
  }
86
86
  export const handleModalOpen = (event, modalID) => {
87
87
  const myModalID = "myModal" + (modalID ?? '');
@@ -0,0 +1,125 @@
1
+ /* FAQ Accordion Styles */
2
+
3
+ .faq-container {
4
+ width: 100%;
5
+ margin: 0 auto;
6
+ padding: 1.5rem; /* p-6 */
7
+ background-color: white;
8
+ border-radius: 0.5rem; /* rounded-lg */
9
+ box-shadow: 0 1px 3px 0 rgba(0, 0, 0, 0.1), 0 1px 2px 0 rgba(0, 0, 0, 0.06); /* shadow-sm */
10
+ }
11
+
12
+ .faq-toolbar {
13
+ display: flex;
14
+ justify-content: space-between;
15
+ align-items: center;
16
+ margin-bottom: 1.5rem; /* mb-6 */
17
+ }
18
+
19
+ .search-box {
20
+ flex: 1;
21
+ max-width: 28rem; /* max-w-md */
22
+ }
23
+
24
+ .search-input {
25
+ width: 100%;
26
+ padding: 0.5rem 1rem; /* px-4 py-2 */
27
+ border: 1px solid #d1d5db; /* border-gray-300 */
28
+ border-radius: 0.5rem; /* rounded-lg */
29
+ color: #374151; /* text-gray-700 */
30
+ transition: border-color 0.15s ease-in-out, box-shadow 0.15s ease-in-out;
31
+ }
32
+
33
+ .search-input:focus {
34
+ outline: none;
35
+ border-color: #3b82f6; /* focus:ring-blue-200 */
36
+ box-shadow: 0 0 0 3px rgba(59, 130, 246, 0.1); /* focus:ring-2 */
37
+ }
38
+
39
+ .expand-buttons {
40
+ display: flex;
41
+ gap: 0.5rem;
42
+ }
43
+
44
+ .expand-button {
45
+ padding: 0.5rem 1rem; /* px-4 py-2 */
46
+ background-color: #dbeafe; /* bg-blue-100 */
47
+ color: #1d4ed8; /* text-blue-700 */
48
+ border-radius: 0.5rem; /* rounded-lg */
49
+ border: none;
50
+ cursor: pointer;
51
+ transition: background-color 0.15s ease-in-out, transform 0.1s ease-in-out;
52
+ font-size: 1.25rem;
53
+ font-weight: bold;
54
+ min-width: 3rem;
55
+ }
56
+
57
+ .expand-button:hover {
58
+ background-color: #bfdbfe; /* hover:bg-blue-200 */
59
+ transform: scale(1.05);
60
+ }
61
+
62
+ .expand-button:focus {
63
+ outline: 2px solid #3b82f6;
64
+ outline-offset: 2px;
65
+ }
66
+
67
+ .faq-list {
68
+ display: flex;
69
+ flex-direction: column;
70
+ gap: 1rem; /* space-y-4 */
71
+ }
72
+
73
+ /* Override general accordion styles for FAQ-specific appearance */
74
+ .faq-list .accordion-item {
75
+ margin-bottom: 0.5rem;
76
+ border: 1px solid #e5e7eb; /* border-gray-200 */
77
+ border-radius: 0.5rem; /* rounded-lg */
78
+ background: #fff;
79
+ }
80
+
81
+ .faq-list .accordion-title {
82
+ padding: 1rem 1.5rem; /* px-6 py-4 */
83
+ font-weight: 500; /* font-medium */
84
+ background-color: #f9fafb; /* bg-gray-50 */
85
+ color: #1f2937; /* text-gray-800 */
86
+ transition: background-color 0.15s ease-in-out;
87
+ }
88
+
89
+ .faq-list .accordion-title:hover {
90
+ background-color: #f3f4f6; /* hover:bg-gray-100 */
91
+ }
92
+
93
+ .faq-list .accordion-title:focus {
94
+ outline: 2px solid #3b82f6;
95
+ outline-offset: 2px;
96
+ background-color: #f3f4f6;
97
+ }
98
+
99
+ .faq-list .accordion-content {
100
+ padding: 1rem 1.5rem; /* px-6 py-4 */
101
+ background-color: white;
102
+ transition: background-color 0.15s ease-in-out;
103
+ }
104
+
105
+ .faq-list .accordion-content:hover {
106
+ background-color: var(--accent2-color, #fefefe);
107
+ }
108
+
109
+ .sr-only {
110
+ position: absolute;
111
+ width: 1px;
112
+ height: 1px;
113
+ padding: 0;
114
+ margin: -1px;
115
+ overflow: hidden;
116
+ clip: rect(0, 0, 0, 0);
117
+ white-space: nowrap;
118
+ border: 0;
119
+ }
120
+
121
+ .no-results {
122
+ text-align: center;
123
+ color: #6b7280; /* text-gray-500 */
124
+ padding: 2rem 0; /* py-8 */
125
+ }
@@ -0,0 +1,56 @@
1
+ import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
2
+ import { useState, useMemo } from 'react';
3
+ import PropTypes from 'prop-types';
4
+ import { Accordion } from '../general/accordion';
5
+ import './faq-accordion.css';
6
+ const categoryIcons = {
7
+ 'Getting Started': '🚀',
8
+ 'Process & Timeline': '⏱️',
9
+ 'Technical Details': '⚙️',
10
+ 'Content & Management': '📝',
11
+ 'Support & Maintenance': '🛠️',
12
+ 'Ownership & Legal': '📋',
13
+ 'Services': '💼'
14
+ };
15
+ FAQAccordion.propTypes = {
16
+ faqsData: PropTypes.shape({
17
+ mainEntity: PropTypes.arrayOf(PropTypes.shape({
18
+ name: PropTypes.string,
19
+ category: PropTypes.string,
20
+ acceptedAnswer: PropTypes.shape({
21
+ text: PropTypes.string,
22
+ }),
23
+ })),
24
+ }).isRequired,
25
+ };
26
+ export function FAQAccordion({ faqsData }) {
27
+ const [searchTerm, setSearchTerm] = useState('');
28
+ const [expandedStates, setExpandedStates] = useState(faqsData.mainEntity?.map(() => false) || []);
29
+ const filteredFaqs = useMemo(() => {
30
+ if (!faqsData.mainEntity)
31
+ return [];
32
+ if (!searchTerm)
33
+ return faqsData.mainEntity;
34
+ return faqsData.mainEntity.filter((faq) => faq.name.toLowerCase().includes(searchTerm.toLowerCase()) ||
35
+ faq.acceptedAnswer.text.toLowerCase().includes(searchTerm.toLowerCase()));
36
+ }, [faqsData.mainEntity, searchTerm]);
37
+ const expandAll = () => {
38
+ setExpandedStates(expandedStates.map(() => true));
39
+ };
40
+ const collapseAll = () => {
41
+ setExpandedStates(expandedStates.map(() => false));
42
+ };
43
+ const handleToggle = (index, open) => {
44
+ setExpandedStates(prev => prev.map((state, i) => i === index ? open : state));
45
+ };
46
+ // Transform FAQ data to Accordion format
47
+ const accordionItems = filteredFaqs.map((faq, index) => {
48
+ const content = _jsx("div", { dangerouslySetInnerHTML: { __html: faq.acceptedAnswer.text } });
49
+ return {
50
+ title: `${categoryIcons[faq.category] || '❓'} ${faq.name}`,
51
+ content,
52
+ open: expandedStates[index] || undefined
53
+ };
54
+ });
55
+ return (_jsxs("div", { className: "faq-container", role: "region", "aria-label": "Frequently Asked Questions", children: [_jsxs("div", { className: "faq-toolbar", children: [_jsxs("div", { className: "search-box", children: [_jsx("input", { type: "text", placeholder: "Search FAQs...", value: searchTerm, onChange: (e) => setSearchTerm(e.target.value), className: "search-input", "aria-describedby": "search-help" }), _jsx("div", { id: "search-help", className: "sr-only", children: "Search through frequently asked questions by typing keywords" })] }), _jsxs("div", { className: "expand-buttons", children: [_jsx("button", { onClick: expandAll, className: "expand-button expand-all", "aria-label": "Expand all FAQ answers", title: "Expand all answers", children: "+" }), _jsx("button", { onClick: collapseAll, className: "expand-button collapse-all", "aria-label": "Collapse all FAQ answers", title: "Collapse all answers", children: "\u2212" })] })] }), _jsx("div", { className: "faq-list", "aria-live": "polite", "aria-atomic": "false", children: _jsx(Accordion, { items: accordionItems, onToggle: handleToggle }) })] }));
56
+ }
@@ -0,0 +1,6 @@
1
+ import { jsx as _jsx } from "react/jsx-runtime";
2
+ export function SchemaFAQ({ faqsData }) {
3
+ return (_jsx("script", { type: "application/ld+json", dangerouslySetInnerHTML: {
4
+ __html: JSON.stringify(faqsData),
5
+ } }));
6
+ }
@@ -1,6 +1,3 @@
1
- // Admin entry point - server-side integrations and utilities for admin functionality
2
- // This entry requires optional dependencies: recharts, googleapis, puppeteer, @aws-sdk/*, etc.
3
- // Sites using admin features should import server functions from 'pixelated-components/admin'
4
1
  export * from './components/admin/componentusage/componentDiscovery';
5
2
  export * from './components/admin/componentusage/componentAnalysis';
6
3
  export * from './components/admin/deploy/deployment.integration';
@@ -19,3 +16,4 @@ export * from './components/admin/site-health/site-health-security.integration';
19
16
  export * from './components/admin/site-health/site-health-types';
20
17
  export * from './components/admin/site-health/site-health-uptime.integration';
21
18
  export * from './components/admin/sites/sites.integration';
19
+ export * from './components/cms/contentful.management';
package/dist/index.js CHANGED
@@ -77,6 +77,8 @@ export * from './components/seo/schema-services';
77
77
  export * from './components/seo/schema-website';
78
78
  export * from './components/seo/schema-blogposting';
79
79
  export * from './components/seo/schema-blogposting.functions';
80
+ export * from './components/seo/schema-faq';
81
+ export * from './components/seo/faq-accordion';
80
82
  export * from './components/seo/manifest';
81
83
  export * from './components/seo/metadata.functions';
82
84
  export * from './components/seo/metadata.components';
@@ -94,4 +96,9 @@ export * from './components/structured/socialcard';
94
96
  export * from './components/structured/timeline';
95
97
  export * from './components/utilities/functions';
96
98
  export * from './components/utilities/gemini-api.client';
97
- export * from './components/utilities/gemini-api.server';
99
+ export * from './components/admin/site-health/site-health-overview';
100
+ export * from './components/admin/site-health/site-health-template';
101
+ export * from './components/admin/site-health/site-health-accessibility';
102
+ export * from './components/admin/site-health/site-health-performance';
103
+ export * from './components/admin/site-health/site-health-security';
104
+ export * from './components/admin/site-health/site-health-seo';
@@ -22,6 +22,7 @@ export * from './components/seo/manifest';
22
22
  export * from './components/seo/metadata.functions';
23
23
  export * from './components/seo/schema-blogposting';
24
24
  export * from './components/seo/schema-blogposting.functions';
25
+ export * from './components/seo/schema-faq';
25
26
  export * from './components/seo/schema-localbusiness';
26
27
  export * from './components/seo/schema-recipe';
27
28
  export * from './components/seo/schema-services';
@@ -1 +1 @@
1
- {"version":3,"file":"site-health-accessibility.d.ts","sourceRoot":"","sources":["../../../../../src/components/admin/site-health/site-health-accessibility.tsx"],"names":[],"mappings":"AAGA,OAAO,SAAS,EAAE,EAAE,UAAU,EAAE,MAAM,YAAY,CAAC;AAenD,MAAM,MAAM,2BAA2B,GAAG,UAAU,CAAC,OAAO,uBAAuB,CAAC,SAAS,CAAC,CAAC;AAC/F,wBAAgB,uBAAuB,CAAC,EAAE,QAAQ,EAAE,EAAE,2BAA2B,2CA4PhF;yBA5Pe,uBAAuB"}
1
+ {"version":3,"file":"site-health-accessibility.d.ts","sourceRoot":"","sources":["../../../../../src/components/admin/site-health/site-health-accessibility.tsx"],"names":[],"mappings":"AAGA,OAAO,SAAS,EAAE,EAAE,UAAU,EAAE,MAAM,YAAY,CAAC;AAQnD,MAAM,MAAM,2BAA2B,GAAG,UAAU,CAAC,OAAO,uBAAuB,CAAC,SAAS,CAAC,CAAC;AAC/F,wBAAgB,uBAAuB,CAAC,EAAE,QAAQ,EAAE,EAAE,2BAA2B,2CA4PhF;yBA5Pe,uBAAuB"}
@@ -1 +1 @@
1
- {"version":3,"file":"site-health-security.d.ts","sourceRoot":"","sources":["../../../../../src/components/admin/site-health/site-health-security.tsx"],"names":[],"mappings":"AAGA,OAAO,SAAS,EAAE,EAAE,UAAU,EAAE,MAAM,YAAY,CAAC;AAiBnD,MAAM,MAAM,sBAAsB,GAAG,UAAU,CAAC,OAAO,kBAAkB,CAAC,SAAS,CAAC,CAAC;AACrF,wBAAgB,kBAAkB,CAAC,EAAE,QAAQ,EAAE,EAAE,sBAAsB,2CA2QtE;yBA3Qe,kBAAkB"}
1
+ {"version":3,"file":"site-health-security.d.ts","sourceRoot":"","sources":["../../../../../src/components/admin/site-health/site-health-security.tsx"],"names":[],"mappings":"AAGA,OAAO,SAAS,EAAE,EAAE,UAAU,EAAE,MAAM,YAAY,CAAC;AAYnD,MAAM,MAAM,sBAAsB,GAAG,UAAU,CAAC,OAAO,kBAAkB,CAAC,SAAS,CAAC,CAAC;AACrF,wBAAgB,kBAAkB,CAAC,EAAE,QAAQ,EAAE,EAAE,sBAAsB,2CA2QtE;yBA3Qe,kBAAkB"}
@@ -1 +1 @@
1
- {"version":3,"file":"site-health-seo.d.ts","sourceRoot":"","sources":["../../../../../src/components/admin/site-health/site-health-seo.tsx"],"names":[],"mappings":"AAGA,OAAO,SAAS,EAAE,EAAE,UAAU,EAAE,MAAM,YAAY,CAAC;AAenD,MAAM,MAAM,iBAAiB,GAAG,UAAU,CAAC,OAAO,aAAa,CAAC,SAAS,CAAC,CAAC;AAC3E,wBAAgB,aAAa,CAAC,EAAE,QAAQ,EAAE,EAAE,iBAAiB,2CA0N5D;yBA1Ne,aAAa"}
1
+ {"version":3,"file":"site-health-seo.d.ts","sourceRoot":"","sources":["../../../../../src/components/admin/site-health/site-health-seo.tsx"],"names":[],"mappings":"AAGA,OAAO,SAAS,EAAE,EAAE,UAAU,EAAE,MAAM,YAAY,CAAC;AAQnD,MAAM,MAAM,iBAAiB,GAAG,UAAU,CAAC,OAAO,aAAa,CAAC,SAAS,CAAC,CAAC;AAC3E,wBAAgB,aAAa,CAAC,EAAE,QAAQ,EAAE,EAAE,iBAAiB,2CA0N5D;yBA1Ne,aAAa"}
@@ -1,4 +1,5 @@
1
1
  import PropTypes, { InferProps } from 'prop-types';
2
+ import "./site-health.css";
2
3
  export type SiteHealthTemplateType = InferProps<typeof SiteHealthTemplate.propTypes>;
3
4
  export declare function SiteHealthTemplate<T>(props: SiteHealthTemplateType): import("react/jsx-runtime").JSX.Element | null;
4
5
  export declare namespace SiteHealthTemplate {
@@ -1 +1 @@
1
- {"version":3,"file":"site-health-template.d.ts","sourceRoot":"","sources":["../../../../../src/components/admin/site-health/site-health-template.tsx"],"names":[],"mappings":"AAGA,OAAO,SAAS,EAAE,EAAE,UAAU,EAAE,MAAM,YAAY,CAAC;AAWnD,MAAM,MAAM,sBAAsB,GAAG,UAAU,CAAC,OAAO,kBAAkB,CAAC,SAAS,CAAC,CAAC;AACrF,wBAAgB,kBAAkB,CAAC,CAAC,EACnC,KAAK,EAAE,sBAAsB,kDAuG7B;yBAxGe,kBAAkB"}
1
+ {"version":3,"file":"site-health-template.d.ts","sourceRoot":"","sources":["../../../../../src/components/admin/site-health/site-health-template.tsx"],"names":[],"mappings":"AAGA,OAAO,SAAS,EAAE,EAAE,UAAU,EAAE,MAAM,YAAY,CAAC;AAEnD,OAAO,mBAAmB,CAAC;AAU3B,MAAM,MAAM,sBAAsB,GAAG,UAAU,CAAC,OAAO,kBAAkB,CAAC,SAAS,CAAC,CAAC;AACrF,wBAAgB,kBAAkB,CAAC,CAAC,EACnC,KAAK,EAAE,sBAAsB,kDAuG7B;yBAxGe,kBAAkB"}
@@ -21,27 +21,6 @@ export interface PSIScores {
21
21
  seo: number | null;
22
22
  pwa: number | null;
23
23
  }
24
- export interface SiteHealthData {
25
- site: string;
26
- url: string;
27
- scores: PSIScores;
28
- categories: {
29
- performance: PSICategory;
30
- accessibility: PSICategory;
31
- 'best-practices': PSICategory;
32
- seo: PSICategory;
33
- pwa: PSICategory;
34
- };
35
- timestamp: string;
36
- status: 'success' | 'error';
37
- error?: string;
38
- }
39
- export interface SiteHealthResponse {
40
- success: boolean;
41
- data?: SiteHealthData[];
42
- error?: string;
43
- details?: string;
44
- }
45
24
  export interface Vulnerability {
46
25
  name: string;
47
26
  severity: 'info' | 'low' | 'moderate' | 'high' | 'critical';
@@ -1 +1 @@
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
+ {"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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"}
@@ -7,14 +7,15 @@ export interface AccordionItem {
7
7
  open?: boolean | null;
8
8
  }
9
9
  export type AccordionType = InferProps<typeof Accordion.propTypes>;
10
- export declare function Accordion({ items }: AccordionType): import("react/jsx-runtime").JSX.Element;
10
+ export declare function Accordion({ items, onToggle }: AccordionType): import("react/jsx-runtime").JSX.Element;
11
11
  export declare namespace Accordion {
12
12
  var propTypes: {
13
13
  items: PropTypes.Validator<(PropTypes.InferProps<{
14
14
  title: PropTypes.Validator<string>;
15
- content: PropTypes.Validator<NonNullable<NonNullable<PropTypes.ReactNodeLike>>>;
15
+ content: PropTypes.Requireable<NonNullable<PropTypes.ReactNodeLike>>;
16
16
  open: PropTypes.Requireable<boolean>;
17
17
  }> | null | undefined)[]>;
18
+ onToggle: PropTypes.Requireable<(...args: any[]) => any>;
18
19
  };
19
20
  }
20
21
  //# sourceMappingURL=accordion.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"accordion.d.ts","sourceRoot":"","sources":["../../../../src/components/general/accordion.tsx"],"names":[],"mappings":"AAEA,OAAO,KAAK,MAAM,OAAO,CAAC;AAC1B,OAAO,SAAS,EAAE,EAAE,UAAU,EAAE,MAAM,YAAY,CAAC;AACnD,OAAO,iBAAiB,CAAC;AAEzB,MAAM,WAAW,aAAa;IAC5B,KAAK,EAAE,MAAM,CAAC;IACd,OAAO,EAAE,MAAM,GAAG,KAAK,CAAC,SAAS,CAAC;IAClC,IAAI,CAAC,EAAE,OAAO,GAAG,IAAI,CAAC;CACvB;AAWD,MAAM,MAAM,aAAa,GAAG,UAAU,CAAC,OAAO,SAAS,CAAC,SAAS,CAAC,CAAC;AACnE,wBAAgB,SAAS,CAAC,EAAE,KAAK,EAAE,EAAE,aAAa,2CA2BjD;yBA3Be,SAAS"}
1
+ {"version":3,"file":"accordion.d.ts","sourceRoot":"","sources":["../../../../src/components/general/accordion.tsx"],"names":[],"mappings":"AAEA,OAAO,KAAK,MAAM,OAAO,CAAC;AAC1B,OAAO,SAAS,EAAE,EAAE,UAAU,EAAE,MAAM,YAAY,CAAC;AACnD,OAAO,iBAAiB,CAAC;AAEzB,MAAM,WAAW,aAAa;IAC5B,KAAK,EAAE,MAAM,CAAC;IACd,OAAO,EAAE,MAAM,GAAG,KAAK,CAAC,SAAS,CAAC;IAClC,IAAI,CAAC,EAAE,OAAO,GAAG,IAAI,CAAC;CACvB;AAYD,MAAM,MAAM,aAAa,GAAG,UAAU,CAAC,OAAO,SAAS,CAAC,SAAS,CAAC,CAAC;AACnE,wBAAgB,SAAS,CAAC,EAAE,KAAK,EAAE,QAAQ,EAAE,EAAE,aAAa,2CAgC3D;yBAhCe,SAAS"}
@@ -1 +1 @@
1
- {"version":3,"file":"modal.d.ts","sourceRoot":"","sources":["../../../../src/components/general/modal.tsx"],"names":[],"mappings":"AAGA,OAAO,SAAS,EAAE,EAAE,UAAU,EAAE,MAAM,YAAY,CAAC;AACnD,OAAO,aAAa,CAAC;AAYrB,MAAM,MAAM,SAAS,GAAG,UAAU,CAAC,OAAO,KAAK,CAAC,SAAS,CAAC,CAAC;AAC3D,wBAAgB,KAAK,CAAC,EAAE,YAAY,EAAE,OAAO,EAAE,MAAc,EAAE,gBAAgB,EAAE,EAAE,SAAS,2CA0F3F;yBA1Fe,KAAK;;;;;;;;AA4FrB,eAAO,MAAM,eAAe,GAAI,OAAO,UAAU,EAAE,UAAU,MAAM,SAKlE,CAAC"}
1
+ {"version":3,"file":"modal.d.ts","sourceRoot":"","sources":["../../../../src/components/general/modal.tsx"],"names":[],"mappings":"AAGA,OAAO,SAAS,EAAE,EAAE,UAAU,EAAE,MAAM,YAAY,CAAC;AACnD,OAAO,aAAa,CAAC;AAYrB,MAAM,MAAM,SAAS,GAAG,UAAU,CAAC,OAAO,KAAK,CAAC,SAAS,CAAC,CAAC;AAC3D,wBAAgB,KAAK,CAAC,EAAE,YAAY,EAAE,OAAO,EAAE,MAAc,EAAE,gBAAgB,EAAE,EAAE,SAAS,2CA6F3F;yBA7Fe,KAAK;;;;;;;;AA+FrB,eAAO,MAAM,eAAe,GAAI,OAAO,UAAU,EAAE,UAAU,MAAM,SAKlE,CAAC"}
@@ -0,0 +1,18 @@
1
+ import PropTypes, { InferProps } from 'prop-types';
2
+ import './faq-accordion.css';
3
+ export type FAQAccordionType = InferProps<typeof FAQAccordion.propTypes>;
4
+ export declare function FAQAccordion({ faqsData }: FAQAccordionType): import("react/jsx-runtime").JSX.Element;
5
+ export declare namespace FAQAccordion {
6
+ var propTypes: {
7
+ faqsData: PropTypes.Validator<NonNullable<PropTypes.InferProps<{
8
+ mainEntity: PropTypes.Requireable<(PropTypes.InferProps<{
9
+ name: PropTypes.Requireable<string>;
10
+ category: PropTypes.Requireable<string>;
11
+ acceptedAnswer: PropTypes.Requireable<PropTypes.InferProps<{
12
+ text: PropTypes.Requireable<string>;
13
+ }>>;
14
+ }> | null | undefined)[]>;
15
+ }>>>;
16
+ };
17
+ }
18
+ //# sourceMappingURL=faq-accordion.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"faq-accordion.d.ts","sourceRoot":"","sources":["../../../../src/components/seo/faq-accordion.tsx"],"names":[],"mappings":"AACA,OAAO,SAAS,EAAE,EAAE,UAAU,EAAE,MAAM,YAAY,CAAC;AAEnD,OAAO,qBAAqB,CAAC;AA2B7B,MAAM,MAAM,gBAAgB,GAAG,UAAU,CAAC,OAAO,YAAY,CAAC,SAAS,CAAC,CAAC;AACzE,wBAAgB,YAAY,CAAC,EAAE,QAAQ,EAAE,EAAE,gBAAgB,2CA2E1D;yBA3Ee,YAAY"}
@@ -0,0 +1,6 @@
1
+ interface SchemaFAQProps {
2
+ faqsData: any;
3
+ }
4
+ export declare function SchemaFAQ({ faqsData }: SchemaFAQProps): import("react/jsx-runtime").JSX.Element;
5
+ export {};
6
+ //# sourceMappingURL=schema-faq.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"schema-faq.d.ts","sourceRoot":"","sources":["../../../../src/components/seo/schema-faq.tsx"],"names":[],"mappings":"AAEA,UAAU,cAAc;IACtB,QAAQ,EAAE,GAAG,CAAC;CACf;AAED,wBAAgB,SAAS,CAAC,EAAE,QAAQ,EAAE,EAAE,cAAc,2CASrD"}
@@ -16,4 +16,5 @@ export * from "./components/admin/site-health/site-health-security.integration";
16
16
  export * from "./components/admin/site-health/site-health-types";
17
17
  export * from "./components/admin/site-health/site-health-uptime.integration";
18
18
  export * from "./components/admin/sites/sites.integration";
19
+ export * from "./components/cms/contentful.management";
19
20
  //# sourceMappingURL=index.adminserver.d.ts.map
@@ -76,6 +76,8 @@ export * from "./components/seo/schema-services";
76
76
  export * from "./components/seo/schema-website";
77
77
  export * from "./components/seo/schema-blogposting";
78
78
  export * from "./components/seo/schema-blogposting.functions";
79
+ export * from "./components/seo/schema-faq";
80
+ export * from "./components/seo/faq-accordion";
79
81
  export * from "./components/seo/manifest";
80
82
  export * from "./components/seo/metadata.functions";
81
83
  export * from "./components/seo/metadata.components";
@@ -93,5 +95,10 @@ export * from "./components/structured/socialcard";
93
95
  export * from "./components/structured/timeline";
94
96
  export * from "./components/utilities/functions";
95
97
  export * from "./components/utilities/gemini-api.client";
96
- export * from "./components/utilities/gemini-api.server";
98
+ export * from "./components/admin/site-health/site-health-overview";
99
+ export * from "./components/admin/site-health/site-health-template";
100
+ export * from "./components/admin/site-health/site-health-accessibility";
101
+ export * from "./components/admin/site-health/site-health-performance";
102
+ export * from "./components/admin/site-health/site-health-security";
103
+ export * from "./components/admin/site-health/site-health-seo";
97
104
  //# sourceMappingURL=index.d.ts.map
@@ -14,6 +14,7 @@ export * from "./components/seo/manifest";
14
14
  export * from "./components/seo/metadata.functions";
15
15
  export * from "./components/seo/schema-blogposting";
16
16
  export * from "./components/seo/schema-blogposting.functions";
17
+ export * from "./components/seo/schema-faq";
17
18
  export * from "./components/seo/schema-localbusiness";
18
19
  export * from "./components/seo/schema-recipe";
19
20
  export * from "./components/seo/schema-services";
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@pixelated-tech/components",
3
- "version": "3.5.0",
3
+ "version": "3.5.1",
4
4
  "private": false,
5
5
  "author": {
6
6
  "name": "Pixelated Technologies",