@pixelated-tech/components 3.3.6 → 3.4.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 (156) hide show
  1. package/README.COMPONENTS.md +126 -0
  2. package/README.md +14 -7
  3. package/dist/components/admin/componentusage/componentAnalysis.js +144 -0
  4. package/dist/components/admin/componentusage/componentDiscovery.js +85 -0
  5. package/dist/components/admin/deploy/deployment.integration.js +163 -0
  6. package/dist/components/admin/site-health/google-api-auth.js +69 -0
  7. package/dist/components/admin/site-health/seo-constants.js +14 -0
  8. package/dist/components/admin/site-health/seo-metrics.config.json +265 -0
  9. package/dist/components/admin/site-health/site-health-accessibility.js +158 -0
  10. package/dist/components/admin/site-health/site-health-axe-core.integration.js +119 -0
  11. package/dist/components/admin/site-health/site-health-axe-core.js +53 -0
  12. package/dist/components/admin/site-health/site-health-cache.js +23 -0
  13. package/dist/components/admin/site-health/site-health-core-web-vitals.integration.js +208 -0
  14. package/dist/components/admin/site-health/site-health-dependency-vulnerabilities.js +38 -0
  15. package/dist/components/admin/site-health/site-health-github.integration.js +81 -0
  16. package/dist/components/admin/site-health/site-health-github.js +34 -0
  17. package/dist/components/admin/site-health/site-health-google-analytics.integration.js +112 -0
  18. package/dist/components/admin/site-health/site-health-google-analytics.js +43 -0
  19. package/dist/components/admin/site-health/site-health-google-search-console.integration.js +118 -0
  20. package/dist/components/admin/site-health/site-health-google-search-console.js +43 -0
  21. package/dist/components/admin/site-health/site-health-indicators.js +71 -0
  22. package/dist/components/admin/site-health/site-health-on-site-seo.integration.js +669 -0
  23. package/dist/components/admin/site-health/site-health-on-site-seo.js +204 -0
  24. package/dist/components/admin/site-health/site-health-overview.js +65 -0
  25. package/dist/components/admin/site-health/site-health-performance.js +191 -0
  26. package/dist/components/admin/site-health/site-health-security.integration.js +109 -0
  27. package/dist/components/admin/site-health/site-health-security.js +169 -0
  28. package/dist/components/admin/site-health/site-health-seo.js +124 -0
  29. package/dist/components/admin/site-health/site-health-template.js +62 -0
  30. package/dist/components/admin/site-health/site-health-types.js +1 -0
  31. package/dist/components/admin/site-health/site-health-uptime.integration.js +29 -0
  32. package/dist/components/admin/site-health/site-health-uptime.js +30 -0
  33. package/dist/components/admin/site-health/site-health.css +427 -0
  34. package/dist/components/admin/sites/sites.integration.js +117 -0
  35. package/dist/components/cms/contentful.management.js +104 -0
  36. package/dist/components/cms/pixelated.linkedin1.js +0 -19
  37. package/dist/components/shoppingcart/shipping.from.json +101 -0
  38. package/dist/components/shoppingcart/shipping.parcel.json +112 -0
  39. package/dist/components/shoppingcart/shipping.to.json +422 -0
  40. package/dist/components/shoppingcart/shoppingCartDiscountCodes.json +26 -0
  41. package/dist/components/shoppingcart/shoppingcart.components.js +3 -2
  42. package/dist/components/sitebuilder/config/ConfigBuilder.js +36 -140
  43. package/dist/components/sitebuilder/config/siteinfo-form.json +200 -0
  44. package/dist/components/sitebuilder/config/visualdesignform.json +244 -0
  45. package/dist/components/structured/buzzwordbingo.js +3 -2
  46. package/dist/components/utilities/functions.js +5 -2
  47. package/dist/data/404-data.json +128 -102
  48. package/dist/data/flickr.json +25 -0
  49. package/dist/data/form.json +368 -368
  50. package/dist/data/recipes.json +3251 -3251
  51. package/dist/data/references.json +138 -137
  52. package/dist/data/requestform.json +111 -0
  53. package/dist/data/requests.json +136 -135
  54. package/dist/data/resume.json +2573 -2575
  55. package/dist/data/routes.json +238 -238
  56. package/dist/data/routes2.json +141 -140
  57. package/dist/index.js +17 -3
  58. package/dist/index.server.js +37 -15
  59. package/dist/types/components/admin/componentusage/componentAnalysis.d.ts +35 -0
  60. package/dist/types/components/admin/componentusage/componentAnalysis.d.ts.map +1 -0
  61. package/dist/types/components/admin/componentusage/componentDiscovery.d.ts +10 -0
  62. package/dist/types/components/admin/componentusage/componentDiscovery.d.ts.map +1 -0
  63. package/dist/types/components/admin/deploy/deployment.integration.d.ts +26 -0
  64. package/dist/types/components/admin/deploy/deployment.integration.d.ts.map +1 -0
  65. package/dist/types/components/admin/site-health/google-api-auth.d.ts +37 -0
  66. package/dist/types/components/admin/site-health/google-api-auth.d.ts.map +1 -0
  67. package/dist/types/components/admin/site-health/seo-constants.d.ts +8 -0
  68. package/dist/types/components/admin/site-health/seo-constants.d.ts.map +1 -0
  69. package/dist/types/components/admin/site-health/site-health-accessibility.d.ts +6 -0
  70. package/dist/types/components/admin/site-health/site-health-accessibility.d.ts.map +1 -0
  71. package/dist/types/components/admin/site-health/site-health-axe-core.d.ts +6 -0
  72. package/dist/types/components/admin/site-health/site-health-axe-core.d.ts.map +1 -0
  73. package/dist/types/components/admin/site-health/site-health-axe-core.integration.d.ts +63 -0
  74. package/dist/types/components/admin/site-health/site-health-axe-core.integration.d.ts.map +1 -0
  75. package/dist/types/components/admin/site-health/site-health-cache.d.ts +12 -0
  76. package/dist/types/components/admin/site-health/site-health-cache.d.ts.map +1 -0
  77. package/dist/types/components/admin/site-health/site-health-core-web-vitals.integration.d.ts +3 -0
  78. package/dist/types/components/admin/site-health/site-health-core-web-vitals.integration.d.ts.map +1 -0
  79. package/dist/types/components/admin/site-health/site-health-dependency-vulnerabilities.d.ts +6 -0
  80. package/dist/types/components/admin/site-health/site-health-dependency-vulnerabilities.d.ts.map +1 -0
  81. package/dist/types/components/admin/site-health/site-health-github.d.ts +8 -0
  82. package/dist/types/components/admin/site-health/site-health-github.d.ts.map +1 -0
  83. package/dist/types/components/admin/site-health/site-health-github.integration.d.ts +26 -0
  84. package/dist/types/components/admin/site-health/site-health-github.integration.d.ts.map +1 -0
  85. package/dist/types/components/admin/site-health/site-health-google-analytics.d.ts +8 -0
  86. package/dist/types/components/admin/site-health/site-health-google-analytics.d.ts.map +1 -0
  87. package/dist/types/components/admin/site-health/site-health-google-analytics.integration.d.ts +26 -0
  88. package/dist/types/components/admin/site-health/site-health-google-analytics.integration.d.ts.map +1 -0
  89. package/dist/types/components/admin/site-health/site-health-google-search-console.d.ts +8 -0
  90. package/dist/types/components/admin/site-health/site-health-google-search-console.d.ts.map +1 -0
  91. package/dist/types/components/admin/site-health/site-health-google-search-console.integration.d.ts +46 -0
  92. package/dist/types/components/admin/site-health/site-health-google-search-console.integration.d.ts.map +1 -0
  93. package/dist/types/components/admin/site-health/site-health-indicators.d.ts +73 -0
  94. package/dist/types/components/admin/site-health/site-health-indicators.d.ts.map +1 -0
  95. package/dist/types/components/admin/site-health/site-health-on-site-seo.d.ts +4 -0
  96. package/dist/types/components/admin/site-health/site-health-on-site-seo.d.ts.map +1 -0
  97. package/dist/types/components/admin/site-health/site-health-on-site-seo.integration.d.ts +34 -0
  98. package/dist/types/components/admin/site-health/site-health-on-site-seo.integration.d.ts.map +1 -0
  99. package/dist/types/components/admin/site-health/site-health-overview.d.ts +6 -0
  100. package/dist/types/components/admin/site-health/site-health-overview.d.ts.map +1 -0
  101. package/dist/types/components/admin/site-health/site-health-performance.d.ts +6 -0
  102. package/dist/types/components/admin/site-health/site-health-performance.d.ts.map +1 -0
  103. package/dist/types/components/admin/site-health/site-health-security.d.ts +6 -0
  104. package/dist/types/components/admin/site-health/site-health-security.d.ts.map +1 -0
  105. package/dist/types/components/admin/site-health/site-health-security.integration.d.ts +29 -0
  106. package/dist/types/components/admin/site-health/site-health-security.integration.d.ts.map +1 -0
  107. package/dist/types/components/admin/site-health/site-health-seo.d.ts +6 -0
  108. package/dist/types/components/admin/site-health/site-health-seo.d.ts.map +1 -0
  109. package/dist/types/components/admin/site-health/site-health-template.d.ts +12 -0
  110. package/dist/types/components/admin/site-health/site-health-template.d.ts.map +1 -0
  111. package/dist/types/components/admin/site-health/site-health-types.d.ts +186 -0
  112. package/dist/types/components/admin/site-health/site-health-types.d.ts.map +1 -0
  113. package/dist/types/components/admin/site-health/site-health-uptime.d.ts +6 -0
  114. package/dist/types/components/admin/site-health/site-health-uptime.d.ts.map +1 -0
  115. package/dist/types/components/admin/site-health/site-health-uptime.integration.d.ts +10 -0
  116. package/dist/types/components/admin/site-health/site-health-uptime.integration.d.ts.map +1 -0
  117. package/dist/types/components/admin/sites/sites.integration.d.ts +40 -0
  118. package/dist/types/components/admin/sites/sites.integration.d.ts.map +1 -0
  119. package/dist/types/components/cms/contentful.management.d.ts +41 -0
  120. package/dist/types/components/cms/contentful.management.d.ts.map +1 -1
  121. package/dist/types/components/cms/pixelated.linkedin1.d.ts.map +1 -1
  122. package/dist/types/components/sitebuilder/config/ConfigBuilder.d.ts +4 -4
  123. package/dist/types/components/sitebuilder/config/ConfigBuilder.d.ts.map +1 -1
  124. package/dist/types/components/structured/buzzwordbingo.d.ts +1 -1
  125. package/dist/types/components/structured/buzzwordbingo.d.ts.map +1 -1
  126. package/dist/types/components/structured/buzzwordbingo.words.d.ts +2 -0
  127. package/dist/types/components/structured/buzzwordbingo.words.d.ts.map +1 -0
  128. package/dist/types/components/utilities/functions.d.ts.map +1 -1
  129. package/dist/types/index.d.ts +17 -3
  130. package/dist/types/index.server.d.ts +37 -13
  131. package/dist/types/stories/admin/preview.d.ts +12 -0
  132. package/dist/types/stories/admin/preview.d.ts.map +1 -0
  133. package/dist/types/stories/admin/site-health.stories.d.ts +65 -0
  134. package/dist/types/stories/admin/site-health.stories.d.ts.map +1 -0
  135. package/dist/types/stories/carousel/tiles.stories.d.ts.map +1 -1
  136. package/dist/types/stories/structured/buzzword-bingo.stories.d.ts +1 -1
  137. package/dist/types/stories/structured/buzzword-bingo.stories.d.ts.map +1 -1
  138. package/dist/types/tests/site-health-axe-core.test.d.ts +2 -0
  139. package/dist/types/tests/site-health-axe-core.test.d.ts.map +1 -0
  140. package/dist/types/tests/site-health-cache.test.d.ts +2 -0
  141. package/dist/types/tests/site-health-cache.test.d.ts.map +1 -0
  142. package/dist/types/tests/site-health-indicators.test.d.ts +2 -0
  143. package/dist/types/tests/site-health-indicators.test.d.ts.map +1 -0
  144. package/dist/types/tests/site-health-overview.test.d.ts +2 -0
  145. package/dist/types/tests/site-health-overview.test.d.ts.map +1 -0
  146. package/dist/types/tests/site-health-template.test.d.ts +2 -0
  147. package/dist/types/tests/site-health-template.test.d.ts.map +1 -0
  148. package/dist/types/tests/sites.integration.test.d.ts +2 -0
  149. package/dist/types/tests/sites.integration.test.d.ts.map +1 -0
  150. package/package.json +14 -8
  151. package/dist/data/shipping.to.json +0 -422
  152. package/dist/data/siteinfo-form.json +0 -200
  153. package/dist/data/visualdesignform.json +0 -244
  154. package/dist/types/data/buzzwords.d.ts +0 -2
  155. package/dist/types/data/buzzwords.d.ts.map +0 -1
  156. /package/dist/{data/buzzwords.js → components/structured/buzzwordbingo.words.js} +0 -0
@@ -14,7 +14,7 @@ import { Table } from "../general/table";
14
14
  import { getCart, getShippingInfo, SetShippingInfo, setDiscountCodes, getRemoteDiscountCodes, getCheckoutData, RemoveFromShoppingCart, ClearShoppingCart, formatAsUSD, getCartItemCount } from "./shoppingcart.functions";
15
15
  import { usePixelatedConfig } from '../config/config.client';
16
16
  import { SmartImage } from '../cms/smartimage';
17
- import shippingToData from "../../data/shipping.to.json";
17
+ import shippingToData from "./shipping.to.json";
18
18
  import "./shoppingcart.css";
19
19
  const debug = false;
20
20
  /* ================================================ */
@@ -136,7 +136,8 @@ export function ShoppingCart(props) {
136
136
  'orderData': JSON.stringify(orderData, null, 2),
137
137
  };
138
138
  const sendMailResponse = emailJSON(json);
139
- console.log("SendMail Response:", sendMailResponse);
139
+ if (debug)
140
+ console.log("SendMail Response:", sendMailResponse);
140
141
  // ========== THANK YOU ==========
141
142
  const pmt = orderData.purchase_units[0].payments.captures[0];
142
143
  return (_jsxs("div", { className: "pixCart", children: [_jsx(CalloutHeader, { title: "Shopping Cart : " }), _jsx("br", {}), _jsx("div", { id: "paypal-button-container", className: "paypal-button-container" }), _jsxs("div", { children: [_jsx("h3", { children: "Thank you for your payment!" }), "Payment ID : ", pmt.id, " ", _jsx("br", {}), "Status : ", pmt.status, " ", _jsx("br", {}), "Amount : $", pmt.amount.value + " " + pmt.amount.currency_code, " ", _jsx("br", {}), "Created : ", pmt.create_time, " ", _jsx("br", {})] })] }));
@@ -5,10 +5,16 @@ import PropTypes from 'prop-types';
5
5
  import { Tab } from '../../general/tab';
6
6
  import { Accordion } from '../../general/accordion';
7
7
  import { FormEngine } from '../form/formengine';
8
- import siteInfoForm from '../../../data/siteinfo-form.json';
9
- import visualDesignForm from '../../../data/visualdesignform.json';
8
+ import siteInfoForm from './siteinfo-form.json';
9
+ import visualDesignForm from './visualdesignform.json';
10
10
  import defaultConfigData from '../../../data/routes.json';
11
11
  import './ConfigBuilder.css';
12
+ const RoutePropTypes = {
13
+ path: PropTypes.string.isRequired,
14
+ component: PropTypes.string.isRequired,
15
+ title: PropTypes.string,
16
+ description: PropTypes.string,
17
+ };
12
18
  const SiteInfoPropTypes = {
13
19
  name: PropTypes.string.isRequired,
14
20
  author: PropTypes.string.isRequired,
@@ -37,150 +43,40 @@ const SiteInfoPropTypes = {
37
43
  sameAs: PropTypes.arrayOf(PropTypes.string.isRequired),
38
44
  keywords: PropTypes.string,
39
45
  };
40
- const RoutePropTypes = {
41
- path: PropTypes.string.isRequired,
42
- component: PropTypes.string.isRequired,
43
- title: PropTypes.string,
44
- description: PropTypes.string,
46
+ const VisualDesignVariable = {
47
+ value: PropTypes.string.isRequired,
48
+ type: PropTypes.string.isRequired,
49
+ group: PropTypes.string.isRequired,
50
+ label: PropTypes.string.isRequired
45
51
  };
46
52
  const VisualDesignPropTypes = {
47
- 'primary-color': PropTypes.shape({
48
- value: PropTypes.string.isRequired,
49
- type: PropTypes.string.isRequired,
50
- group: PropTypes.string.isRequired,
51
- label: PropTypes.string.isRequired
52
- }).isRequired,
53
- 'secondary-color': PropTypes.shape({
54
- value: PropTypes.string.isRequired,
55
- type: PropTypes.string.isRequired,
56
- group: PropTypes.string.isRequired,
57
- label: PropTypes.string.isRequired
58
- }).isRequired,
59
- 'accent1-color': PropTypes.shape({
60
- value: PropTypes.string.isRequired,
61
- type: PropTypes.string.isRequired,
62
- group: PropTypes.string.isRequired,
63
- label: PropTypes.string.isRequired
64
- }).isRequired,
65
- 'accent2-color': PropTypes.shape({
66
- value: PropTypes.string.isRequired,
67
- type: PropTypes.string.isRequired,
68
- group: PropTypes.string.isRequired,
69
- label: PropTypes.string.isRequired
70
- }).isRequired,
71
- 'bg-color': PropTypes.shape({
72
- value: PropTypes.string.isRequired,
73
- type: PropTypes.string.isRequired,
74
- group: PropTypes.string.isRequired,
75
- label: PropTypes.string.isRequired
76
- }).isRequired,
77
- 'text-color': PropTypes.shape({
78
- value: PropTypes.string.isRequired,
79
- type: PropTypes.string.isRequired,
80
- group: PropTypes.string.isRequired,
81
- label: PropTypes.string.isRequired
82
- }).isRequired,
83
- 'header-font': PropTypes.shape({
84
- value: PropTypes.string.isRequired,
85
- type: PropTypes.string.isRequired,
86
- group: PropTypes.string.isRequired,
87
- label: PropTypes.string.isRequired
88
- }).isRequired,
89
- 'body-font': PropTypes.shape({
90
- value: PropTypes.string.isRequired,
91
- type: PropTypes.string.isRequired,
92
- group: PropTypes.string.isRequired,
93
- label: PropTypes.string.isRequired
94
- }).isRequired,
95
- 'font-size1-min': PropTypes.shape({
96
- value: PropTypes.string.isRequired,
97
- type: PropTypes.string.isRequired,
98
- group: PropTypes.string.isRequired,
99
- label: PropTypes.string.isRequired
100
- }).isRequired,
101
- 'font-size1-max': PropTypes.shape({
102
- value: PropTypes.string.isRequired,
103
- type: PropTypes.string.isRequired,
104
- group: PropTypes.string.isRequired,
105
- label: PropTypes.string.isRequired
106
- }).isRequired,
107
- 'font-size2-min': PropTypes.shape({
108
- value: PropTypes.string.isRequired,
109
- type: PropTypes.string.isRequired,
110
- group: PropTypes.string.isRequired,
111
- label: PropTypes.string.isRequired
112
- }).isRequired,
113
- 'font-size2-max': PropTypes.shape({
114
- value: PropTypes.string.isRequired,
115
- type: PropTypes.string.isRequired,
116
- group: PropTypes.string.isRequired,
117
- label: PropTypes.string.isRequired
118
- }).isRequired,
119
- 'font-size3-min': PropTypes.shape({
120
- value: PropTypes.string.isRequired,
121
- type: PropTypes.string.isRequired,
122
- group: PropTypes.string.isRequired,
123
- label: PropTypes.string.isRequired
124
- }).isRequired,
125
- 'font-size3-max': PropTypes.shape({
126
- value: PropTypes.string.isRequired,
127
- type: PropTypes.string.isRequired,
128
- group: PropTypes.string.isRequired,
129
- label: PropTypes.string.isRequired
130
- }).isRequired,
131
- 'font-size4-min': PropTypes.shape({
132
- value: PropTypes.string.isRequired,
133
- type: PropTypes.string.isRequired,
134
- group: PropTypes.string.isRequired,
135
- label: PropTypes.string.isRequired
136
- }).isRequired,
137
- 'font-size4-max': PropTypes.shape({
138
- value: PropTypes.string.isRequired,
139
- type: PropTypes.string.isRequired,
140
- group: PropTypes.string.isRequired,
141
- label: PropTypes.string.isRequired
142
- }).isRequired,
143
- 'font-size5-min': PropTypes.shape({
144
- value: PropTypes.string.isRequired,
145
- type: PropTypes.string.isRequired,
146
- group: PropTypes.string.isRequired,
147
- label: PropTypes.string.isRequired
148
- }).isRequired,
149
- 'font-size5-max': PropTypes.shape({
150
- value: PropTypes.string.isRequired,
151
- type: PropTypes.string.isRequired,
152
- group: PropTypes.string.isRequired,
153
- label: PropTypes.string.isRequired
154
- }).isRequired,
155
- 'font-size6-min': PropTypes.shape({
156
- value: PropTypes.string.isRequired,
157
- type: PropTypes.string.isRequired,
158
- group: PropTypes.string.isRequired,
159
- label: PropTypes.string.isRequired
160
- }).isRequired,
161
- 'font-size6-max': PropTypes.shape({
162
- value: PropTypes.string.isRequired,
163
- type: PropTypes.string.isRequired,
164
- group: PropTypes.string.isRequired,
165
- label: PropTypes.string.isRequired
166
- }).isRequired,
167
- 'font-min-screen': PropTypes.shape({
168
- value: PropTypes.string.isRequired,
169
- type: PropTypes.string.isRequired,
170
- group: PropTypes.string.isRequired,
171
- label: PropTypes.string.isRequired
172
- }).isRequired,
173
- 'font-max-screen': PropTypes.shape({
174
- value: PropTypes.string.isRequired,
175
- type: PropTypes.string.isRequired,
176
- group: PropTypes.string.isRequired,
177
- label: PropTypes.string.isRequired
178
- }).isRequired,
53
+ 'primary-color': PropTypes.shape(VisualDesignVariable).isRequired,
54
+ 'secondary-color': PropTypes.shape(VisualDesignVariable).isRequired,
55
+ 'accent1-color': PropTypes.shape(VisualDesignVariable).isRequired,
56
+ 'accent2-color': PropTypes.shape(VisualDesignVariable).isRequired,
57
+ 'bg-color': PropTypes.shape(VisualDesignVariable).isRequired,
58
+ 'text-color': PropTypes.shape(VisualDesignVariable).isRequired,
59
+ 'header-font': PropTypes.shape(VisualDesignVariable).isRequired,
60
+ 'body-font': PropTypes.shape(VisualDesignVariable).isRequired,
61
+ 'font-size1-min': PropTypes.shape(VisualDesignVariable).isRequired,
62
+ 'font-size1-max': PropTypes.shape(VisualDesignVariable).isRequired,
63
+ 'font-size2-min': PropTypes.shape(VisualDesignVariable).isRequired,
64
+ 'font-size2-max': PropTypes.shape(VisualDesignVariable).isRequired,
65
+ 'font-size3-min': PropTypes.shape(VisualDesignVariable).isRequired,
66
+ 'font-size3-max': PropTypes.shape(VisualDesignVariable).isRequired,
67
+ 'font-size4-min': PropTypes.shape(VisualDesignVariable).isRequired,
68
+ 'font-size4-max': PropTypes.shape(VisualDesignVariable).isRequired,
69
+ 'font-size5-min': PropTypes.shape(VisualDesignVariable).isRequired,
70
+ 'font-size5-max': PropTypes.shape(VisualDesignVariable).isRequired,
71
+ 'font-size6-min': PropTypes.shape(VisualDesignVariable).isRequired,
72
+ 'font-size6-max': PropTypes.shape(VisualDesignVariable).isRequired,
73
+ 'font-min-screen': PropTypes.shape(VisualDesignVariable).isRequired,
74
+ 'font-max-screen': PropTypes.shape(VisualDesignVariable).isRequired,
179
75
  };
180
76
  const SiteConfigPropTypes = {
181
77
  siteInfo: PropTypes.shape(SiteInfoPropTypes).isRequired,
182
78
  routes: PropTypes.arrayOf(PropTypes.shape(RoutePropTypes).isRequired).isRequired,
183
- visualdesign: PropTypes.shape(VisualDesignPropTypes),
79
+ visualdesign: PropTypes.shape(VisualDesignPropTypes).isRequired,
184
80
  };
185
81
  const ConfigBuilderPropTypes = {
186
82
  initialConfig: PropTypes.shape(SiteConfigPropTypes),
@@ -0,0 +1,200 @@
1
+ {
2
+ "fields": [
3
+ {
4
+ "component": "FormInput",
5
+ "props": {
6
+ "type": "text",
7
+ "id": "name",
8
+ "name": "name",
9
+ "label": "Site Name",
10
+ "required": true,
11
+ "placeholder": "Enter site name"
12
+ }
13
+ },
14
+ {
15
+ "component": "FormInput",
16
+ "props": {
17
+ "type": "text",
18
+ "id": "author",
19
+ "name": "author",
20
+ "label": "Author",
21
+ "required": true,
22
+ "placeholder": "Enter author name"
23
+ }
24
+ },
25
+ {
26
+ "component": "FormTextarea",
27
+ "props": {
28
+ "id": "description",
29
+ "name": "description",
30
+ "label": "Site Description",
31
+ "required": true,
32
+ "placeholder": "Enter site description",
33
+ "rows": "3"
34
+ }
35
+ },
36
+ {
37
+ "component": "FormInput",
38
+ "props": {
39
+ "type": "url",
40
+ "id": "url",
41
+ "name": "url",
42
+ "label": "Site URL",
43
+ "required": true,
44
+ "placeholder": "https://example.com"
45
+ }
46
+ },
47
+ {
48
+ "component": "FormInput",
49
+ "props": {
50
+ "type": "email",
51
+ "id": "email",
52
+ "name": "email",
53
+ "label": "Email",
54
+ "required": true,
55
+ "placeholder": "contact@example.com"
56
+ }
57
+ },
58
+ {
59
+ "component": "FormInput",
60
+ "props": {
61
+ "type": "text",
62
+ "id": "favicon",
63
+ "name": "favicon",
64
+ "label": "Favicon",
65
+ "required": true,
66
+ "placeholder": "/favicon.ico"
67
+ }
68
+ },
69
+ {
70
+ "component": "FormInput",
71
+ "props": {
72
+ "type": "text",
73
+ "id": "favicon_sizes",
74
+ "name": "favicon_sizes",
75
+ "label": "Favicon Sizes",
76
+ "required": true,
77
+ "placeholder": "64x64 32x32 24x24 16x16"
78
+ }
79
+ },
80
+ {
81
+ "component": "FormInput",
82
+ "props": {
83
+ "type": "text",
84
+ "id": "favicon_type",
85
+ "name": "favicon_type",
86
+ "label": "Favicon Type",
87
+ "required": true,
88
+ "placeholder": "image/x-icon"
89
+ }
90
+ },
91
+ {
92
+ "component": "FormInput",
93
+ "props": {
94
+ "type": "color",
95
+ "id": "theme_color",
96
+ "name": "theme_color",
97
+ "label": "Theme Color",
98
+ "required": true,
99
+ "placeholder": "#ffffff"
100
+ }
101
+ },
102
+ {
103
+ "component": "FormInput",
104
+ "props": {
105
+ "type": "color",
106
+ "id": "background_color",
107
+ "name": "background_color",
108
+ "label": "Background Color",
109
+ "required": true,
110
+ "placeholder": "#ffffff"
111
+ }
112
+ },
113
+ {
114
+ "component": "FormInput",
115
+ "props": {
116
+ "type": "text",
117
+ "id": "default_locale",
118
+ "name": "default_locale",
119
+ "label": "Default Locale",
120
+ "required": true,
121
+ "placeholder": "en"
122
+ }
123
+ },
124
+ {
125
+ "component": "FormSelect",
126
+ "props": {
127
+ "id": "display",
128
+ "name": "display",
129
+ "label": "Display Mode",
130
+ "required": true,
131
+ "options": [
132
+ { "value": "standalone", "label": "Standalone" },
133
+ { "value": "fullscreen", "label": "Fullscreen" },
134
+ { "value": "minimal-ui", "label": "Minimal UI" },
135
+ { "value": "browser", "label": "Browser" }
136
+ ]
137
+ }
138
+ },
139
+ {
140
+ "component": "FormInput",
141
+ "props": {
142
+ "type": "text",
143
+ "id": "image",
144
+ "name": "image",
145
+ "label": "Site Image",
146
+ "placeholder": "/images/site-image.jpg"
147
+ }
148
+ },
149
+ {
150
+ "component": "FormInput",
151
+ "props": {
152
+ "type": "text",
153
+ "id": "image_height",
154
+ "name": "image_height",
155
+ "label": "Image Height",
156
+ "placeholder": "512"
157
+ }
158
+ },
159
+ {
160
+ "component": "FormInput",
161
+ "props": {
162
+ "type": "text",
163
+ "id": "image_width",
164
+ "name": "image_width",
165
+ "label": "Image Width",
166
+ "placeholder": "512"
167
+ }
168
+ },
169
+ {
170
+ "component": "FormInput",
171
+ "props": {
172
+ "type": "tel",
173
+ "id": "telephone",
174
+ "name": "telephone",
175
+ "label": "Telephone",
176
+ "placeholder": "+1-555-123-4567"
177
+ }
178
+ },
179
+ {
180
+ "component": "FormInput",
181
+ "props": {
182
+ "type": "text",
183
+ "id": "priceRange",
184
+ "name": "priceRange",
185
+ "label": "Price Range",
186
+ "placeholder": "$$"
187
+ }
188
+ },
189
+ {
190
+ "component": "FormInput",
191
+ "props": {
192
+ "type": "text",
193
+ "id": "keywords",
194
+ "name": "keywords",
195
+ "label": "Keywords",
196
+ "placeholder": "web development, design, services"
197
+ }
198
+ }
199
+ ]
200
+ }
@@ -0,0 +1,244 @@
1
+ {
2
+ "fields": [
3
+ {
4
+ "component": "FormInput",
5
+ "props": {
6
+ "type": "color",
7
+ "id": "primary-color",
8
+ "name": "primary-color",
9
+ "label": "Primary color",
10
+ "required": true,
11
+ "placeholder": "#369"
12
+ }
13
+ },
14
+ {
15
+ "component": "FormInput",
16
+ "props": {
17
+ "type": "color",
18
+ "id": "secondary-color",
19
+ "name": "secondary-color",
20
+ "label": "Secondary color",
21
+ "required": true,
22
+ "placeholder": "#BCD"
23
+ }
24
+ },
25
+ {
26
+ "component": "FormInput",
27
+ "props": {
28
+ "type": "color",
29
+ "id": "accent1-color",
30
+ "name": "accent1-color",
31
+ "label": "Accent color 1",
32
+ "required": true,
33
+ "placeholder": "#CCC"
34
+ }
35
+ },
36
+ {
37
+ "component": "FormInput",
38
+ "props": {
39
+ "type": "color",
40
+ "id": "accent2-color",
41
+ "name": "accent2-color",
42
+ "label": "Accent color 2",
43
+ "required": true,
44
+ "placeholder": "#EEE"
45
+ }
46
+ },
47
+ {
48
+ "component": "FormInput",
49
+ "props": {
50
+ "type": "color",
51
+ "id": "bg-color",
52
+ "name": "bg-color",
53
+ "label": "Background color",
54
+ "required": true,
55
+ "placeholder": "#ffffff"
56
+ }
57
+ },
58
+ {
59
+ "component": "FormInput",
60
+ "props": {
61
+ "type": "color",
62
+ "id": "text-color",
63
+ "name": "text-color",
64
+ "label": "Font color",
65
+ "required": true,
66
+ "placeholder": "#000000"
67
+ }
68
+ },
69
+ {
70
+ "component": "CompoundFontSelector",
71
+ "props": {
72
+ "id": "header-font",
73
+ "name": "header-font",
74
+ "label": "Header Font Stack",
75
+ "required": true,
76
+ "value": "\"Montserrat\", Arial, sans-serif"
77
+ }
78
+ },
79
+ {
80
+ "component": "CompoundFontSelector",
81
+ "props": {
82
+ "id": "body-font",
83
+ "name": "body-font",
84
+ "label": "Body Font Stack",
85
+ "required": true,
86
+ "value": "\"Roboto\", Helvetica, sans-serif"
87
+ }
88
+ },
89
+ {
90
+ "component": "FormInput",
91
+ "props": {
92
+ "type": "text",
93
+ "id": "font-size1-min",
94
+ "name": "font-size1-min",
95
+ "label": "Font size 1 min",
96
+ "required": true,
97
+ "placeholder": "2.00rem"
98
+ }
99
+ },
100
+ {
101
+ "component": "FormInput",
102
+ "props": {
103
+ "type": "text",
104
+ "id": "font-size1-max",
105
+ "name": "font-size1-max",
106
+ "label": "Font size 1 max",
107
+ "required": true,
108
+ "placeholder": "3.00rem"
109
+ }
110
+ },
111
+ {
112
+ "component": "FormInput",
113
+ "props": {
114
+ "type": "text",
115
+ "id": "font-size2-min",
116
+ "name": "font-size2-min",
117
+ "label": "Font size 2 min",
118
+ "required": true,
119
+ "placeholder": "1.35rem"
120
+ }
121
+ },
122
+ {
123
+ "component": "FormInput",
124
+ "props": {
125
+ "type": "text",
126
+ "id": "font-size2-max",
127
+ "name": "font-size2-max",
128
+ "label": "Font size 2 max",
129
+ "required": true,
130
+ "placeholder": "1.75rem"
131
+ }
132
+ },
133
+ {
134
+ "component": "FormInput",
135
+ "props": {
136
+ "type": "text",
137
+ "id": "font-size3-min",
138
+ "name": "font-size3-min",
139
+ "label": "Font size 3 min",
140
+ "required": true,
141
+ "placeholder": "1.17rem"
142
+ }
143
+ },
144
+ {
145
+ "component": "FormInput",
146
+ "props": {
147
+ "type": "text",
148
+ "id": "font-size3-max",
149
+ "name": "font-size3-max",
150
+ "label": "Font size 3 max",
151
+ "required": true,
152
+ "placeholder": "1.35rem"
153
+ }
154
+ },
155
+ {
156
+ "component": "FormInput",
157
+ "props": {
158
+ "type": "text",
159
+ "id": "font-size4-min",
160
+ "name": "font-size4-min",
161
+ "label": "Font size 4 min",
162
+ "required": true,
163
+ "placeholder": "1.00rem"
164
+ }
165
+ },
166
+ {
167
+ "component": "FormInput",
168
+ "props": {
169
+ "type": "text",
170
+ "id": "font-size4-max",
171
+ "name": "font-size4-max",
172
+ "label": "Font size 4 max",
173
+ "required": true,
174
+ "placeholder": "1.25rem"
175
+ }
176
+ },
177
+ {
178
+ "component": "FormInput",
179
+ "props": {
180
+ "type": "text",
181
+ "id": "font-size5-min",
182
+ "name": "font-size5-min",
183
+ "label": "Font size 5 min",
184
+ "required": true,
185
+ "placeholder": "0.83rem"
186
+ }
187
+ },
188
+ {
189
+ "component": "FormInput",
190
+ "props": {
191
+ "type": "text",
192
+ "id": "font-size5-max",
193
+ "name": "font-size5-max",
194
+ "label": "Font size 5 max",
195
+ "required": true,
196
+ "placeholder": "1.00rem"
197
+ }
198
+ },
199
+ {
200
+ "component": "FormInput",
201
+ "props": {
202
+ "type": "text",
203
+ "id": "font-size6-min",
204
+ "name": "font-size6-min",
205
+ "label": "Font size 6 min",
206
+ "required": true,
207
+ "placeholder": "0.67rem"
208
+ }
209
+ },
210
+ {
211
+ "component": "FormInput",
212
+ "props": {
213
+ "type": "text",
214
+ "id": "font-size6-max",
215
+ "name": "font-size6-max",
216
+ "label": "Font size 6 max",
217
+ "required": true,
218
+ "placeholder": "0.85rem"
219
+ }
220
+ },
221
+ {
222
+ "component": "FormInput",
223
+ "props": {
224
+ "type": "text",
225
+ "id": "font-min-screen",
226
+ "name": "font-min-screen",
227
+ "label": "Font min screen",
228
+ "required": true,
229
+ "placeholder": "375px"
230
+ }
231
+ },
232
+ {
233
+ "component": "FormInput",
234
+ "props": {
235
+ "type": "text",
236
+ "id": "font-max-screen",
237
+ "name": "font-max-screen",
238
+ "label": "Font max screen",
239
+ "required": true,
240
+ "placeholder": "1440px"
241
+ }
242
+ }
243
+ ]
244
+ }
@@ -3,6 +3,7 @@ import { useState, useEffect } from 'react';
3
3
  import PropTypes from 'prop-types';
4
4
  import "../../css/pixelated.grid.scss";
5
5
  import './buzzwordbingo.css';
6
+ import { buzzwords as defaultBuzzwords } from './buzzwordbingo.words';
6
7
  function getBingoWords(arr, x) {
7
8
  var myBingoWords = [...arr].sort(() => Math.random() - 0.5); // Shuffle the array
8
9
  myBingoWords = myBingoWords.slice(0, x); // Return the first x elements
@@ -10,10 +11,10 @@ function getBingoWords(arr, x) {
10
11
  return myBingoWords;
11
12
  }
12
13
  BuzzwordBingo.propTypes = {
13
- buzzwords: PropTypes.array.isRequired,
14
+ buzzwords: PropTypes.array,
14
15
  };
15
16
  export function BuzzwordBingo(props) {
16
- const buzzwords = props.buzzwords;
17
+ const buzzwords = props.buzzwords || defaultBuzzwords;
17
18
  const myBingoHeaders = ["B", "I", "N", "G", "O"];
18
19
  const [bingoWords, setBingoWords] = useState([]);
19
20
  useEffect(() => {