@pixelated-tech/components 3.11.9 → 3.13.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/components/admin/componentusage/componentAnalysis.js +2 -0
- package/dist/components/admin/deploy/deployment.integration.js +8 -0
- package/dist/components/admin/site-health/site-health-accessibility.js +6 -0
- package/dist/components/admin/site-health/site-health-axe-core.js +6 -0
- package/dist/components/admin/site-health/site-health-cloudwatch.js +10 -0
- package/dist/components/admin/site-health/site-health-dependency-vulnerabilities.js +6 -0
- package/dist/components/admin/site-health/site-health-github.js +10 -0
- package/dist/components/admin/site-health/site-health-google-analytics.js +10 -0
- package/dist/components/admin/site-health/site-health-google-search-console.js +10 -0
- package/dist/components/admin/site-health/site-health-mock-context.js +8 -0
- package/dist/components/admin/site-health/site-health-on-site-seo.js +6 -0
- package/dist/components/admin/site-health/site-health-overview.js +6 -0
- package/dist/components/admin/site-health/site-health-performance.js +6 -0
- package/dist/components/admin/site-health/site-health-security.js +6 -0
- package/dist/components/admin/site-health/site-health-seo.js +6 -0
- package/dist/components/admin/site-health/site-health-template.js +28 -0
- package/dist/components/admin/site-health/site-health-uptime.js +6 -0
- package/dist/components/config/config.js +41 -2
- package/dist/components/config/config.server.js +8 -0
- package/dist/components/general/404.js +6 -0
- package/dist/components/general/accordion.js +11 -0
- package/dist/components/general/buzzwordbingo.js +18 -0
- package/dist/components/general/callout.js +65 -2
- package/dist/components/general/carousel.drag.js +12 -0
- package/dist/components/general/carousel.js +50 -0
- package/dist/components/general/faq-accordion.js +15 -0
- package/dist/components/general/global-error.js +12 -0
- package/dist/components/general/hero.js +13 -0
- package/dist/components/general/loading.js +10 -1
- package/dist/components/general/markdown.js +6 -0
- package/dist/components/general/menu-accordion.js +30 -1
- package/dist/components/general/menu-expando.js +24 -1
- package/dist/components/general/menu-simple.js +21 -0
- package/dist/components/general/metadata.components.js +10 -0
- package/dist/components/general/metadata.functions.js +1 -1
- package/dist/components/general/microinteractions.js +22 -0
- package/dist/components/general/modal.js +12 -0
- package/dist/components/general/nerdjoke.js +11 -1
- package/dist/components/general/proxy-handler.js +7 -7
- package/dist/components/general/recipe.js +46 -1
- package/dist/components/general/resume.js +82 -0
- package/dist/components/general/schema-blogposting.js +6 -0
- package/dist/components/general/schema-localbusiness.js +36 -0
- package/dist/components/general/schema-recipe.js +20 -0
- package/dist/components/general/semantic.js +178 -0
- package/dist/components/general/sidepanel.js +26 -0
- package/dist/components/general/sitemap.js +50 -0
- package/dist/components/general/skeleton-loading.js +10 -1
- package/dist/components/general/skeleton.js +15 -0
- package/dist/components/general/smartimage.js +48 -2
- package/dist/components/general/splitscroll.js +21 -10
- package/dist/components/general/styleguide.js +6 -0
- package/dist/components/general/tab.js +12 -0
- package/dist/components/general/table.js +12 -0
- package/dist/components/general/tiles.js +32 -1
- package/dist/components/general/timeline.js +22 -0
- package/dist/components/general/well-known.js +137 -0
- package/dist/components/integrations/calendly.js +10 -0
- package/dist/components/integrations/cloudinary.js +16 -0
- package/dist/components/integrations/contentful.delivery.js +84 -0
- package/dist/components/integrations/contentful.items.components.js +46 -0
- package/dist/components/integrations/contentful.management.js +25 -25
- package/dist/components/integrations/flickr.js +34 -0
- package/dist/components/integrations/google.reviews.components.js +14 -0
- package/dist/components/integrations/googleanalytics.js +14 -0
- package/dist/components/integrations/googlemap.js +20 -0
- package/dist/components/integrations/googlesearch.js +6 -0
- package/dist/components/integrations/gravatar.components.js +59 -0
- package/dist/components/integrations/hubspot.components.js +30 -0
- package/dist/components/integrations/instagram.components.js +18 -0
- package/dist/components/integrations/lipsum.js +45 -0
- package/dist/components/integrations/loremipsum.js +12 -0
- package/dist/components/integrations/socialcard.js +20 -1
- package/dist/components/integrations/wordpress.components.js +40 -0
- package/dist/components/integrations/wordpress.functions.js +24 -0
- package/dist/components/integrations/yelp.js +8 -0
- package/dist/components/shoppingcart/ebay.components.js +70 -0
- package/dist/components/shoppingcart/ebay.functions.js +52 -0
- package/dist/components/shoppingcart/shoppingcart.components.js +89 -0
- package/dist/components/sitebuilder/config/CompoundFontSelector.js +32 -0
- package/dist/components/sitebuilder/config/ConfigBuilder.js +8 -0
- package/dist/components/sitebuilder/config/FontSelector.js +40 -0
- package/dist/components/sitebuilder/form/formbuilder.js +10 -1
- package/dist/components/sitebuilder/form/formcomponents.js +325 -6
- package/dist/components/sitebuilder/form/formengine.js +35 -1
- package/dist/components/sitebuilder/form/formextractor.js +33 -1
- package/dist/components/sitebuilder/form/formutils.js +0 -4
- package/dist/components/sitebuilder/form/formvalidator.js +6 -0
- package/dist/components/sitebuilder/page/components/ComponentPropertiesForm.js +8 -0
- package/dist/components/sitebuilder/page/components/ComponentSelector.js +10 -0
- package/dist/components/sitebuilder/page/components/ComponentTree.js +20 -0
- package/dist/components/sitebuilder/page/components/PageBuilderUI.js +6 -0
- package/dist/components/sitebuilder/page/components/PageEngine.js +20 -0
- package/dist/components/sitebuilder/page/components/SaveLoadSection.js +10 -0
- package/dist/components/sitebuilder/page/lib/pageStorageContentful.js +4 -4
- package/dist/config/pixelated.config.json.enc +1 -1
- package/dist/index.js +1 -1
- package/dist/index.server.js +4 -4
- package/dist/scripts/pixelated-eslint-plugin.js +105 -1
- package/dist/scripts/release.sh +12 -21
- package/dist/types/components/admin/componentusage/componentAnalysis.d.ts +2 -5
- package/dist/types/components/admin/componentusage/componentAnalysis.d.ts.map +1 -1
- package/dist/types/components/admin/deploy/deployment.integration.d.ts +1 -5
- package/dist/types/components/admin/deploy/deployment.integration.d.ts.map +1 -1
- package/dist/types/components/admin/site-health/site-health-accessibility.d.ts +1 -0
- package/dist/types/components/admin/site-health/site-health-accessibility.d.ts.map +1 -1
- package/dist/types/components/admin/site-health/site-health-axe-core.d.ts +1 -0
- package/dist/types/components/admin/site-health/site-health-axe-core.d.ts.map +1 -1
- package/dist/types/components/admin/site-health/site-health-cloudwatch.d.ts +3 -0
- package/dist/types/components/admin/site-health/site-health-cloudwatch.d.ts.map +1 -1
- package/dist/types/components/admin/site-health/site-health-dependency-vulnerabilities.d.ts +1 -0
- package/dist/types/components/admin/site-health/site-health-dependency-vulnerabilities.d.ts.map +1 -1
- package/dist/types/components/admin/site-health/site-health-github.d.ts +3 -0
- package/dist/types/components/admin/site-health/site-health-github.d.ts.map +1 -1
- package/dist/types/components/admin/site-health/site-health-github.integration.d.ts +1 -11
- package/dist/types/components/admin/site-health/site-health-github.integration.d.ts.map +1 -1
- package/dist/types/components/admin/site-health/site-health-google-analytics.d.ts +3 -0
- package/dist/types/components/admin/site-health/site-health-google-analytics.d.ts.map +1 -1
- package/dist/types/components/admin/site-health/site-health-google-search-console.d.ts +3 -0
- package/dist/types/components/admin/site-health/site-health-google-search-console.d.ts.map +1 -1
- package/dist/types/components/admin/site-health/site-health-mock-context.d.ts +8 -0
- package/dist/types/components/admin/site-health/site-health-mock-context.d.ts.map +1 -1
- package/dist/types/components/admin/site-health/site-health-on-site-seo.d.ts +1 -0
- package/dist/types/components/admin/site-health/site-health-on-site-seo.d.ts.map +1 -1
- package/dist/types/components/admin/site-health/site-health-overview.d.ts +1 -0
- package/dist/types/components/admin/site-health/site-health-overview.d.ts.map +1 -1
- package/dist/types/components/admin/site-health/site-health-performance.d.ts +1 -0
- package/dist/types/components/admin/site-health/site-health-performance.d.ts.map +1 -1
- package/dist/types/components/admin/site-health/site-health-security.d.ts +1 -0
- package/dist/types/components/admin/site-health/site-health-security.d.ts.map +1 -1
- package/dist/types/components/admin/site-health/site-health-seo.d.ts +1 -0
- package/dist/types/components/admin/site-health/site-health-seo.d.ts.map +1 -1
- package/dist/types/components/admin/site-health/site-health-template.d.ts +12 -0
- package/dist/types/components/admin/site-health/site-health-template.d.ts.map +1 -1
- package/dist/types/components/admin/site-health/site-health-uptime.d.ts +1 -0
- package/dist/types/components/admin/site-health/site-health-uptime.d.ts.map +1 -1
- package/dist/types/components/admin/sites/sites.integration.d.ts +7 -1
- package/dist/types/components/admin/sites/sites.integration.d.ts.map +1 -1
- package/dist/types/components/config/config.d.ts.map +1 -1
- package/dist/types/components/config/config.server.d.ts +2 -0
- package/dist/types/components/config/config.server.d.ts.map +1 -1
- package/dist/types/components/config/config.types.d.ts +2 -2
- package/dist/types/components/config/config.types.d.ts.map +1 -1
- package/dist/types/components/general/404.d.ts +1 -0
- package/dist/types/components/general/404.d.ts.map +1 -1
- package/dist/types/components/general/accordion.d.ts +2 -0
- package/dist/types/components/general/accordion.d.ts.map +1 -1
- package/dist/types/components/general/buzzwordbingo.d.ts +3 -0
- package/dist/types/components/general/buzzwordbingo.d.ts.map +1 -1
- package/dist/types/components/general/callout.d.ts +24 -0
- package/dist/types/components/general/callout.d.ts.map +1 -1
- package/dist/types/components/general/carousel.d.ts +13 -0
- package/dist/types/components/general/carousel.d.ts.map +1 -1
- package/dist/types/components/general/carousel.drag.d.ts +4 -0
- package/dist/types/components/general/carousel.drag.d.ts.map +1 -1
- package/dist/types/components/general/faq-accordion.d.ts +5 -0
- package/dist/types/components/general/faq-accordion.d.ts.map +1 -1
- package/dist/types/components/general/global-error.d.ts +4 -0
- package/dist/types/components/general/global-error.d.ts.map +1 -1
- package/dist/types/components/general/hero.d.ts +4 -0
- package/dist/types/components/general/hero.d.ts.map +1 -1
- package/dist/types/components/general/loading.d.ts +1 -0
- package/dist/types/components/general/loading.d.ts.map +1 -1
- package/dist/types/components/general/markdown.d.ts +1 -0
- package/dist/types/components/general/markdown.d.ts.map +1 -1
- package/dist/types/components/general/menu-accordion.d.ts +7 -0
- package/dist/types/components/general/menu-accordion.d.ts.map +1 -1
- package/dist/types/components/general/menu-expando.d.ts +6 -0
- package/dist/types/components/general/menu-expando.d.ts.map +1 -1
- package/dist/types/components/general/menu-simple.d.ts +6 -0
- package/dist/types/components/general/menu-simple.d.ts.map +1 -1
- package/dist/types/components/general/metadata.components.d.ts +3 -0
- package/dist/types/components/general/metadata.components.d.ts.map +1 -1
- package/dist/types/components/general/microinteractions.d.ts +9 -0
- package/dist/types/components/general/microinteractions.d.ts.map +1 -1
- package/dist/types/components/general/modal.d.ts +4 -0
- package/dist/types/components/general/modal.d.ts.map +1 -1
- package/dist/types/components/general/nerdjoke.d.ts +2 -0
- package/dist/types/components/general/nerdjoke.d.ts.map +1 -1
- package/dist/types/components/general/proxy-handler.d.ts +7 -7
- package/dist/types/components/general/proxy-handler.d.ts.map +1 -1
- package/dist/types/components/general/recipe.d.ts +13 -0
- package/dist/types/components/general/recipe.d.ts.map +1 -1
- package/dist/types/components/general/resume.d.ts +21 -0
- package/dist/types/components/general/resume.d.ts.map +1 -1
- package/dist/types/components/general/schema-blogposting.d.ts +1 -0
- package/dist/types/components/general/schema-blogposting.d.ts.map +1 -1
- package/dist/types/components/general/schema-localbusiness.d.ts +16 -0
- package/dist/types/components/general/schema-localbusiness.d.ts.map +1 -1
- package/dist/types/components/general/schema-recipe.d.ts +1 -0
- package/dist/types/components/general/schema-recipe.d.ts.map +1 -1
- package/dist/types/components/general/semantic.d.ts +67 -0
- package/dist/types/components/general/semantic.d.ts.map +1 -1
- package/dist/types/components/general/sidepanel.d.ts +11 -0
- package/dist/types/components/general/sidepanel.d.ts.map +1 -1
- package/dist/types/components/general/sitemap.d.ts +19 -0
- package/dist/types/components/general/sitemap.d.ts.map +1 -1
- package/dist/types/components/general/skeleton-loading.d.ts +3 -6
- package/dist/types/components/general/skeleton-loading.d.ts.map +1 -1
- package/dist/types/components/general/skeleton.d.ts +5 -0
- package/dist/types/components/general/skeleton.d.ts.map +1 -1
- package/dist/types/components/general/smartimage.d.ts +22 -0
- package/dist/types/components/general/smartimage.d.ts.map +1 -1
- package/dist/types/components/general/splitscroll.d.ts +18 -40
- package/dist/types/components/general/splitscroll.d.ts.map +1 -1
- package/dist/types/components/general/styleguide.d.ts +1 -0
- package/dist/types/components/general/styleguide.d.ts.map +1 -1
- package/dist/types/components/general/tab.d.ts +4 -0
- package/dist/types/components/general/tab.d.ts.map +1 -1
- package/dist/types/components/general/table.d.ts +4 -0
- package/dist/types/components/general/table.d.ts.map +1 -1
- package/dist/types/components/general/tiles.d.ts +12 -1
- package/dist/types/components/general/tiles.d.ts.map +1 -1
- package/dist/types/components/general/timeline.d.ts +5 -0
- package/dist/types/components/general/timeline.d.ts.map +1 -1
- package/dist/types/components/general/well-known.d.ts +56 -0
- package/dist/types/components/general/well-known.d.ts.map +1 -0
- package/dist/types/components/integrations/calendly.d.ts +3 -0
- package/dist/types/components/integrations/calendly.d.ts.map +1 -1
- package/dist/types/components/integrations/cloudinary.d.ts +4 -0
- package/dist/types/components/integrations/cloudinary.d.ts.map +1 -1
- package/dist/types/components/integrations/contentful.delivery.d.ts +22 -0
- package/dist/types/components/integrations/contentful.delivery.d.ts.map +1 -1
- package/dist/types/components/integrations/contentful.items.components.d.ts +10 -0
- package/dist/types/components/integrations/contentful.items.components.d.ts.map +1 -1
- package/dist/types/components/integrations/contentful.management.d.ts +1 -5
- package/dist/types/components/integrations/contentful.management.d.ts.map +1 -1
- package/dist/types/components/integrations/flickr.d.ts +11 -0
- package/dist/types/components/integrations/flickr.d.ts.map +1 -1
- package/dist/types/components/integrations/google.reviews.components.d.ts +5 -0
- package/dist/types/components/integrations/google.reviews.components.d.ts.map +1 -1
- package/dist/types/components/integrations/googleanalytics.d.ts +3 -0
- package/dist/types/components/integrations/googleanalytics.d.ts.map +1 -1
- package/dist/types/components/integrations/googlemap.d.ts +8 -0
- package/dist/types/components/integrations/googlemap.d.ts.map +1 -1
- package/dist/types/components/integrations/googlesearch.d.ts +1 -0
- package/dist/types/components/integrations/googlesearch.d.ts.map +1 -1
- package/dist/types/components/integrations/gravatar.components.d.ts +35 -0
- package/dist/types/components/integrations/gravatar.components.d.ts.map +1 -1
- package/dist/types/components/integrations/hubspot.components.d.ts +9 -0
- package/dist/types/components/integrations/hubspot.components.d.ts.map +1 -1
- package/dist/types/components/integrations/instagram.components.d.ts +7 -0
- package/dist/types/components/integrations/instagram.components.d.ts.map +1 -1
- package/dist/types/components/integrations/lipsum.d.ts +14 -0
- package/dist/types/components/integrations/lipsum.d.ts.map +1 -0
- package/dist/types/components/integrations/loremipsum.d.ts +4 -0
- package/dist/types/components/integrations/loremipsum.d.ts.map +1 -1
- package/dist/types/components/integrations/socialcard.d.ts +4 -0
- package/dist/types/components/integrations/socialcard.d.ts.map +1 -1
- package/dist/types/components/integrations/wordpress.components.d.ts +14 -0
- package/dist/types/components/integrations/wordpress.components.d.ts.map +1 -1
- package/dist/types/components/integrations/wordpress.functions.d.ts +6 -0
- package/dist/types/components/integrations/wordpress.functions.d.ts.map +1 -1
- package/dist/types/components/integrations/yelp.d.ts +2 -0
- package/dist/types/components/integrations/yelp.d.ts.map +1 -1
- package/dist/types/components/shoppingcart/ebay.components.d.ts +15 -0
- package/dist/types/components/shoppingcart/ebay.components.d.ts.map +1 -1
- package/dist/types/components/shoppingcart/ebay.functions.d.ts +14 -2
- package/dist/types/components/shoppingcart/ebay.functions.d.ts.map +1 -1
- package/dist/types/components/shoppingcart/paypal.d.ts.map +1 -1
- package/dist/types/components/shoppingcart/shoppingcart.components.d.ts +30 -0
- package/dist/types/components/shoppingcart/shoppingcart.components.d.ts.map +1 -1
- package/dist/types/components/shoppingcart/shoppingcart.functions.d.ts +20 -12
- package/dist/types/components/shoppingcart/shoppingcart.functions.d.ts.map +1 -1
- package/dist/types/components/sitebuilder/config/CompoundFontSelector.d.ts +12 -0
- package/dist/types/components/sitebuilder/config/CompoundFontSelector.d.ts.map +1 -1
- package/dist/types/components/sitebuilder/config/ConfigBuilder.d.ts +2 -0
- package/dist/types/components/sitebuilder/config/ConfigBuilder.d.ts.map +1 -1
- package/dist/types/components/sitebuilder/config/FontSelector.d.ts +16 -0
- package/dist/types/components/sitebuilder/config/FontSelector.d.ts.map +1 -1
- package/dist/types/components/sitebuilder/form/formbuilder.d.ts +5 -1
- package/dist/types/components/sitebuilder/form/formbuilder.d.ts.map +1 -1
- package/dist/types/components/sitebuilder/form/formcomponents.d.ts +129 -0
- package/dist/types/components/sitebuilder/form/formcomponents.d.ts.map +1 -1
- package/dist/types/components/sitebuilder/form/formengine.d.ts +5 -0
- package/dist/types/components/sitebuilder/form/formengine.d.ts.map +1 -1
- package/dist/types/components/sitebuilder/form/formextractor.d.ts +6 -0
- package/dist/types/components/sitebuilder/form/formextractor.d.ts.map +1 -1
- package/dist/types/components/sitebuilder/form/formutils.d.ts +0 -2
- package/dist/types/components/sitebuilder/form/formutils.d.ts.map +1 -1
- package/dist/types/components/sitebuilder/form/formvalidator.d.ts +1 -0
- package/dist/types/components/sitebuilder/form/formvalidator.d.ts.map +1 -1
- package/dist/types/components/sitebuilder/page/components/ComponentPropertiesForm.d.ts +2 -0
- package/dist/types/components/sitebuilder/page/components/ComponentPropertiesForm.d.ts.map +1 -1
- package/dist/types/components/sitebuilder/page/components/ComponentSelector.d.ts +3 -0
- package/dist/types/components/sitebuilder/page/components/ComponentSelector.d.ts.map +1 -1
- package/dist/types/components/sitebuilder/page/components/ComponentTree.d.ts +8 -0
- package/dist/types/components/sitebuilder/page/components/ComponentTree.d.ts.map +1 -1
- package/dist/types/components/sitebuilder/page/components/PageBuilderUI.d.ts +1 -0
- package/dist/types/components/sitebuilder/page/components/PageBuilderUI.d.ts.map +1 -1
- package/dist/types/components/sitebuilder/page/components/PageEngine.d.ts +8 -0
- package/dist/types/components/sitebuilder/page/components/PageEngine.d.ts.map +1 -1
- package/dist/types/components/sitebuilder/page/components/SaveLoadSection.d.ts +3 -0
- package/dist/types/components/sitebuilder/page/components/SaveLoadSection.d.ts.map +1 -1
- package/dist/types/components/sitebuilder/page/lib/pageStorageContentful.d.ts +1 -1
- package/dist/types/components/sitebuilder/page/lib/pageStorageContentful.d.ts.map +1 -1
- package/dist/types/index.d.ts +1 -1
- package/dist/types/index.server.d.ts +4 -4
- package/dist/types/scripts/pixelated-eslint-plugin.d.ts +36 -0
- package/dist/types/stories/general/skeleton-loading.stories.d.ts +1 -1
- package/dist/types/stories/general/skeleton-loading.stories.d.ts.map +1 -1
- package/dist/types/stories/integrations/lipsum.stories.d.ts +38 -0
- package/dist/types/stories/integrations/lipsum.stories.d.ts.map +1 -0
- package/dist/types/stories/shoppingcart/shoppingcart.stories.d.ts +3 -1
- package/dist/types/stories/shoppingcart/shoppingcart.stories.d.ts.map +1 -1
- package/dist/types/tests/args.test.d.ts +2 -0
- package/dist/types/tests/args.test.d.ts.map +1 -0
- package/dist/types/tests/lipsum.test.d.ts +2 -0
- package/dist/types/tests/lipsum.test.d.ts.map +1 -0
- package/dist/types/tests/securitytxt.test.d.ts +2 -0
- package/dist/types/tests/securitytxt.test.d.ts.map +1 -0
- package/dist/types/tests/storybook-docgen.test.d.ts +2 -0
- package/dist/types/tests/storybook-docgen.test.d.ts.map +1 -0
- package/package.json +17 -14
- package/dist/components/config/config.utils.js +0 -52
- package/dist/components/general/humanstxt.js +0 -81
- package/dist/types/components/config/config.utils.d.ts +0 -6
- package/dist/types/components/config/config.utils.d.ts.map +0 -1
- package/dist/types/components/general/humanstxt.d.ts +0 -37
- package/dist/types/components/general/humanstxt.d.ts.map +0 -1
|
@@ -50,9 +50,19 @@ function getMergedEbayConfig(providedApiProps) {
|
|
|
50
50
|
}
|
|
51
51
|
return apiProps;
|
|
52
52
|
}
|
|
53
|
+
/**
|
|
54
|
+
* getShoppingCartItem — Convert an eBay API item object into the internal ShoppingCartType shape used by the cart.
|
|
55
|
+
*
|
|
56
|
+
* @param {any} [props.thisItem] - Raw eBay item object from the API.
|
|
57
|
+
* @param {string} [props.cloudinaryProductEnv] - Optional Cloudinary cloud name to transform image URLs.
|
|
58
|
+
* @param {any} [props.apiProps] - eBay API properties used to determine category/availability.
|
|
59
|
+
*/
|
|
53
60
|
getShoppingCartItem.propTypes = {
|
|
61
|
+
/** Raw eBay item object */
|
|
54
62
|
thisItem: PropTypes.any.isRequired,
|
|
63
|
+
/** Optional Cloudinary product environment */
|
|
55
64
|
cloudinaryProductEnv: PropTypes.string,
|
|
65
|
+
/** eBay API properties */
|
|
56
66
|
apiProps: PropTypes.any,
|
|
57
67
|
};
|
|
58
68
|
export function getShoppingCartItem(props) {
|
|
@@ -91,7 +101,13 @@ item tokenScope: 'https://api.ebay.com/oauth/api_scope/buy.item.bulk',
|
|
|
91
101
|
getItem tokenScope: 'https://api.ebay.com/oauth/api_scope',
|
|
92
102
|
*/
|
|
93
103
|
/* ========== GET TOKEN ========== */
|
|
104
|
+
/**
|
|
105
|
+
* getEbayAppToken — Retrieve an application access token from eBay for API calls.
|
|
106
|
+
*
|
|
107
|
+
* @param {object} [props.apiProps] - eBay API configuration (appId, appCertId, proxyURL, baseTokenURL, etc.).
|
|
108
|
+
*/
|
|
94
109
|
getEbayAppToken.propTypes = {
|
|
110
|
+
/** eBay API configuration for token retrieval */
|
|
95
111
|
apiProps: PropTypes.object.isRequired,
|
|
96
112
|
};
|
|
97
113
|
export function getEbayAppToken(props) {
|
|
@@ -127,8 +143,16 @@ export function getEbayAppToken(props) {
|
|
|
127
143
|
return fetchToken();
|
|
128
144
|
}
|
|
129
145
|
/* ========== ITEM SEARCH ========== */
|
|
146
|
+
/**
|
|
147
|
+
* getEbayBrowseSearch — Execute a browse search request against the eBay Browse API and return results.
|
|
148
|
+
*
|
|
149
|
+
* @param {object} [props.apiProps] - eBay API configuration and query parameters.
|
|
150
|
+
* @param {string} [props.token] - OAuth token used to authorize the request.
|
|
151
|
+
*/
|
|
130
152
|
getEbayBrowseSearch.propTypes = {
|
|
153
|
+
/** eBay API configuration */
|
|
131
154
|
apiProps: PropTypes.object.isRequired,
|
|
155
|
+
/** OAuth token to authorize the request */
|
|
132
156
|
token: PropTypes.string.isRequired,
|
|
133
157
|
};
|
|
134
158
|
export function getEbayBrowseSearch(props) {
|
|
@@ -172,8 +196,16 @@ export function getEbayBrowseSearch(props) {
|
|
|
172
196
|
return fetchData(props.token);
|
|
173
197
|
}
|
|
174
198
|
/* ========== GET ITEM ========== */
|
|
199
|
+
/**
|
|
200
|
+
* getEbayBrowseItem — Retrieve a single item detail from the eBay Browse API.
|
|
201
|
+
*
|
|
202
|
+
* @param {object} [props.apiProps] - eBay API configuration (item URL/qsItemURL).
|
|
203
|
+
* @param {string} [props.token] - OAuth token used to authorize the request.
|
|
204
|
+
*/
|
|
175
205
|
getEbayBrowseItem.propTypes = {
|
|
206
|
+
/** eBay API configuration */
|
|
176
207
|
apiProps: PropTypes.object.isRequired,
|
|
208
|
+
/** OAuth token to authorize the request */
|
|
177
209
|
token: PropTypes.string.isRequired,
|
|
178
210
|
};
|
|
179
211
|
export function getEbayBrowseItem(props) {
|
|
@@ -217,8 +249,16 @@ export function getEbayBrowseItem(props) {
|
|
|
217
249
|
return fetchData(props.token);
|
|
218
250
|
}
|
|
219
251
|
/* ========== RATE LIMITS ========== */
|
|
252
|
+
/**
|
|
253
|
+
* getEbayRateLimits — Fetch API rate limit information for the eBay analytics endpoints.
|
|
254
|
+
*
|
|
255
|
+
* @param {object} [props.apiProps] - eBay analytics API config (baseAnalyticsURL, proxyURL).
|
|
256
|
+
* @param {string} [props.token] - OAuth token used to authorize analytics requests.
|
|
257
|
+
*/
|
|
220
258
|
getEbayRateLimits.propTypes = {
|
|
259
|
+
/** eBay analytics API configuration */
|
|
221
260
|
apiProps: PropTypes.object.isRequired,
|
|
261
|
+
/** OAuth token for analytics requests */
|
|
222
262
|
token: PropTypes.string.isRequired,
|
|
223
263
|
};
|
|
224
264
|
export function getEbayRateLimits(props) {
|
|
@@ -260,7 +300,13 @@ export function getEbayRateLimits(props) {
|
|
|
260
300
|
}
|
|
261
301
|
/* ========== EXPORTED FUNCTIONS ========== */
|
|
262
302
|
/* ========== GET EBAY ITEMS ========== */
|
|
303
|
+
/**
|
|
304
|
+
* getEbayItems — Fetch a list of eBay items using the configured browse search helper.
|
|
305
|
+
*
|
|
306
|
+
* @param {object} [props.apiProps] - eBay API configuration and query parameters.
|
|
307
|
+
*/
|
|
263
308
|
getEbayItems.propTypes = {
|
|
309
|
+
/** eBay API configuration and query params */
|
|
264
310
|
apiProps: PropTypes.object.isRequired,
|
|
265
311
|
};
|
|
266
312
|
export async function getEbayItems(props) {
|
|
@@ -281,7 +327,13 @@ export async function getEbayItems(props) {
|
|
|
281
327
|
return {};
|
|
282
328
|
}
|
|
283
329
|
/* ========== GET EBAY ITEMS ========== */
|
|
330
|
+
/**
|
|
331
|
+
* getEbayItem — Fetch a single eBay item using the configured eBay item helper.
|
|
332
|
+
*
|
|
333
|
+
* @param {object} [props.apiProps] - eBay API item config (baseItemURL, qsItemURL, proxyURL).
|
|
334
|
+
*/
|
|
284
335
|
getEbayItem.propTypes = {
|
|
336
|
+
/** eBay API item config */
|
|
285
337
|
apiProps: PropTypes.object.isRequired,
|
|
286
338
|
};
|
|
287
339
|
export async function getEbayItem(props) {
|
|
@@ -20,7 +20,14 @@ const debug = false;
|
|
|
20
20
|
/* ================================================ */
|
|
21
21
|
/* ========== SHOPPING CART UI COMPONENT ========== */
|
|
22
22
|
/* ================================================ */
|
|
23
|
+
/**
|
|
24
|
+
* ShoppingCart — page-level shopping cart UI that handles items, shipping, and checkout flows.
|
|
25
|
+
*
|
|
26
|
+
* Props:
|
|
27
|
+
* @param {string} [props.payPalClientID] - Optional PayPal client ID to enable the PayPal checkout button.
|
|
28
|
+
*/
|
|
23
29
|
ShoppingCart.propTypes = {
|
|
30
|
+
/** Optional PayPal client ID to enable PayPal checkout */
|
|
24
31
|
payPalClientID: PropTypes.string,
|
|
25
32
|
};
|
|
26
33
|
export function ShoppingCart(props) {
|
|
@@ -120,7 +127,13 @@ export function ShoppingCart(props) {
|
|
|
120
127
|
const formObject = Object.fromEntries(formData);
|
|
121
128
|
setShippingInfo(formObject);
|
|
122
129
|
}
|
|
130
|
+
/**
|
|
131
|
+
* handleOnApprove — PayPal approval handler invoked after successful payment.
|
|
132
|
+
*
|
|
133
|
+
* @param {object} [props.data] - Payment approval payload returned by PayPal's onApprove.
|
|
134
|
+
*/
|
|
123
135
|
handleOnApprove.propTypes = {
|
|
136
|
+
/** PayPal onApprove payload */
|
|
124
137
|
data: PropTypes.object.isRequired
|
|
125
138
|
};
|
|
126
139
|
function handleOnApprove(props) {
|
|
@@ -160,13 +173,31 @@ export function ShoppingCart(props) {
|
|
|
160
173
|
return (_jsxs("div", { className: "pixCart", children: [_jsx(CalloutHeader, { title: "Shopping Cart : " }), _jsx("br", {}), _jsx("div", { className: "centered", children: "No items in your shopping cart" }), _jsx("div", { id: "paypal-button-container", className: "paypal-button-container" })] }));
|
|
161
174
|
}
|
|
162
175
|
}
|
|
176
|
+
/**
|
|
177
|
+
* ShoppingCartItem — Render a single cart line item showing thumbnail, title, quantity and price.
|
|
178
|
+
*
|
|
179
|
+
* @param {shape} [props.item] - Shopping cart line item with id, title, image, quantity and cost.
|
|
180
|
+
* @param {string} [props.itemID] - Unique identifier for the cart item.
|
|
181
|
+
* @param {string} [props.itemURL] - Optional item detail URL to link the title and image.
|
|
182
|
+
* @param {string} [props.itemTitle] - Display title for the item.
|
|
183
|
+
* @param {string} [props.itemImageURL] - Thumbnail image URL for the item.
|
|
184
|
+
* @param {number} [props.itemQuantity] - Quantity of this line item in the cart.
|
|
185
|
+
* @param {number} [props.itemCost] - Per-item cost (numeric) used to compute totals.
|
|
186
|
+
*/
|
|
163
187
|
ShoppingCartItem.propTypes = {
|
|
188
|
+
/** Shopping cart line item object */
|
|
164
189
|
item: PropTypes.shape({
|
|
190
|
+
/** Unique item id */
|
|
165
191
|
itemID: PropTypes.string.isRequired,
|
|
192
|
+
/** Optional URL for the item details */
|
|
166
193
|
itemURL: PropTypes.string,
|
|
194
|
+
/** Item display title */
|
|
167
195
|
itemTitle: PropTypes.string.isRequired,
|
|
196
|
+
/** Thumbnail image URL */
|
|
168
197
|
itemImageURL: PropTypes.string,
|
|
198
|
+
/** Line item quantity */
|
|
169
199
|
itemQuantity: PropTypes.number.isRequired,
|
|
200
|
+
/** Per-item price */
|
|
170
201
|
itemCost: PropTypes.number.isRequired,
|
|
171
202
|
}).isRequired
|
|
172
203
|
};
|
|
@@ -182,15 +213,35 @@ export function ShoppingCartItem(props) {
|
|
|
182
213
|
? _jsx("a", { href: thisItem.itemURL, target: thisItemTarget, rel: "noopener noreferrer", children: _jsx("h2", { className: "", children: thisItem.itemTitle }) })
|
|
183
214
|
: _jsx("h2", { className: "", children: thisItem.itemTitle }) }) }), _jsxs("div", { className: "pixCartItemDetails grid12", children: [_jsx("br", {}), _jsxs("div", { children: [_jsx("b", { children: "Item ID: " }), thisItem.itemID] }), _jsxs("div", { children: [_jsx("b", { children: "Quantity: " }), thisItem.itemQuantity] }), _jsx("br", {}), _jsx("div", { children: _jsx(FormButton, { className: "pixCartButton", type: "button", id: `btn-rm-${thisItem.itemID}`, text: "Remove Item From Cart", onClick: () => removeFromShoppingCart(thisItem) }) })] })] }), _jsx("div", { className: "grid-s11-e13", children: _jsx("div", { className: "pixCartItemPrice", children: formatAsUSD(thisItem.itemCost) }) })] }));
|
|
184
215
|
}
|
|
216
|
+
/**
|
|
217
|
+
* CheckoutItems — Display a checkout summary with itemized lines and shipping information.
|
|
218
|
+
*
|
|
219
|
+
* @param {arrayOf} [props.items] - Cart items included in the checkout summary.
|
|
220
|
+
* @param {shape} [props.shippingTo] - Shipping address object with name, street1, city, state and zip.
|
|
221
|
+
* @param {number} [props.subtotal_discount] - Discount amount applied to subtotal.
|
|
222
|
+
* @param {number} [props.subtotal] - Subtotal amount before shipping and taxes.
|
|
223
|
+
* @param {number} [props.shippingCost] - Shipping cost for the order.
|
|
224
|
+
* @param {number} [props.handlingFee] - Optional handling fees.
|
|
225
|
+
* @param {number} [props.salesTax] - Sales tax amount.
|
|
226
|
+
* @param {number} [props.total] - Final total amount charged.
|
|
227
|
+
*/
|
|
185
228
|
CheckoutItems.propTypes = {
|
|
229
|
+
/** Array of cart items to summarize */
|
|
186
230
|
items: PropTypes.arrayOf(PropTypes.shape({
|
|
231
|
+
/** Item identifier */
|
|
187
232
|
itemID: PropTypes.string.isRequired,
|
|
233
|
+
/** Item detail URL (optional) */
|
|
188
234
|
itemURL: PropTypes.string,
|
|
235
|
+
/** Item title */
|
|
189
236
|
itemTitle: PropTypes.string.isRequired,
|
|
237
|
+
/** Item image URL */
|
|
190
238
|
itemImageURL: PropTypes.string,
|
|
239
|
+
/** Quantity for this item */
|
|
191
240
|
itemQuantity: PropTypes.number.isRequired,
|
|
241
|
+
/** Per-item price */
|
|
192
242
|
itemCost: PropTypes.number.isRequired,
|
|
193
243
|
})).isRequired,
|
|
244
|
+
/** Shipping address object */
|
|
194
245
|
shippingTo: PropTypes.shape({
|
|
195
246
|
name: PropTypes.string.isRequired,
|
|
196
247
|
street1: PropTypes.string.isRequired,
|
|
@@ -198,11 +249,17 @@ CheckoutItems.propTypes = {
|
|
|
198
249
|
state: PropTypes.string.isRequired,
|
|
199
250
|
zip: PropTypes.string.isRequired,
|
|
200
251
|
}).isRequired,
|
|
252
|
+
/** Discount amount applied to subtotal */
|
|
201
253
|
subtotal_discount: PropTypes.number.isRequired,
|
|
254
|
+
/** Subtotal amount before shipping and taxes */
|
|
202
255
|
subtotal: PropTypes.number.isRequired,
|
|
256
|
+
/** Shipping cost for the order */
|
|
203
257
|
shippingCost: PropTypes.number.isRequired,
|
|
258
|
+
/** Handling fee applied to the order */
|
|
204
259
|
handlingFee: PropTypes.number.isRequired,
|
|
260
|
+
/** Sales tax amount */
|
|
205
261
|
salesTax: PropTypes.number.isRequired,
|
|
262
|
+
/** Final total amount */
|
|
206
263
|
total: PropTypes.number.isRequired,
|
|
207
264
|
};
|
|
208
265
|
export function CheckoutItems(props) {
|
|
@@ -250,7 +307,13 @@ export function CheckoutItems(props) {
|
|
|
250
307
|
}
|
|
251
308
|
return (_jsx(Table, { id: "pixCheckout", data: checkoutTableData }));
|
|
252
309
|
}
|
|
310
|
+
/**
|
|
311
|
+
* CartButton — Render a cart button showing the current cart item count and navigates to the cart page when clicked.
|
|
312
|
+
*
|
|
313
|
+
* @param {string} [props.href] - Destination URL for the cart page.
|
|
314
|
+
*/
|
|
253
315
|
CartButton.propTypes = {
|
|
316
|
+
/** Destination URL for viewing the shopping cart */
|
|
254
317
|
href: PropTypes.string.isRequired,
|
|
255
318
|
};
|
|
256
319
|
export function CartButton(props) {
|
|
@@ -277,16 +340,34 @@ export function CartButton(props) {
|
|
|
277
340
|
}, [cartCount]);
|
|
278
341
|
return (_jsx("div", { className: "pixCart", children: _jsxs("button", { className: "pixCartButton", type: "button", id: "pixCartButton", onClick: () => window.location.href = props.href, children: [_jsx(SmartImage, { src: "/images/icons/cart-icon.png", title: "View Shopping Cart", alt: "View Shopping Cart", cloudinaryEnv: config?.cloudinary?.product_env, cloudinaryDomain: config?.cloudinary?.baseUrl, cloudinaryTransforms: config?.cloudinary?.transforms }), _jsxs("span", { children: ["\u00A0", `(${cartCount})`] })] }) }));
|
|
279
342
|
}
|
|
343
|
+
/**
|
|
344
|
+
* ViewItemDetails — Button to navigate to an item detail page for a given item ID.
|
|
345
|
+
*
|
|
346
|
+
* @param {string} [props.href] - Base URL for the item detail page.
|
|
347
|
+
* @param {string} [props.itemID] - Item identifier appended to the URL when navigating.
|
|
348
|
+
*/
|
|
280
349
|
ViewItemDetails.propTypes = {
|
|
350
|
+
/** Base URL for item details */
|
|
281
351
|
href: PropTypes.string.isRequired,
|
|
352
|
+
/** Item identifier to navigate to */
|
|
282
353
|
itemID: PropTypes.string.isRequired,
|
|
283
354
|
};
|
|
284
355
|
export function ViewItemDetails(props) {
|
|
285
356
|
return (_jsx("div", { children: _jsx(FormButton, { className: "pixCartButton", type: "button", id: `btn-item-${props.itemID}`, text: "View Item Details", onClick: () => window.location.href = `${props.href}/${props.itemID}` }) }));
|
|
286
357
|
}
|
|
358
|
+
/**
|
|
359
|
+
* AddToCartButton — Button that adds an item to the shopping cart and displays a confirmation modal.
|
|
360
|
+
*
|
|
361
|
+
* @param {function} [props.handler] - Handler function that performs the add-to-cart action (receives the item object).
|
|
362
|
+
* @param {object} [props.item] - Shopping cart item object to add.
|
|
363
|
+
* @param {string} [props.itemID] - Unique identifier for the item used for modal IDs and button IDs.
|
|
364
|
+
*/
|
|
287
365
|
AddToCartButton.propTypes = {
|
|
366
|
+
/** Handler called to add the item to cart */
|
|
288
367
|
handler: PropTypes.func.isRequired,
|
|
368
|
+
/** Shopping cart item object */
|
|
289
369
|
item: PropTypes.object.isRequired,
|
|
370
|
+
/** Unique item identifier */
|
|
290
371
|
itemID: PropTypes.string.isRequired,
|
|
291
372
|
};
|
|
292
373
|
export function AddToCartButton(props) {
|
|
@@ -301,8 +382,16 @@ export function AddToCartButton(props) {
|
|
|
301
382
|
}
|
|
302
383
|
return (_jsxs("div", { children: [_jsx(FormButton, { className: "pixCartButton", type: "button", id: `btn-add-${props.itemID}`, text: "Add to Shopping Cart", onClick: (e) => handleClick(e) }), modalContent && _jsx(Modal, { modalContent: modalContent, modalID: "-" + props.itemID })] }));
|
|
303
384
|
}
|
|
385
|
+
/**
|
|
386
|
+
* GoToCartButton — Button that navigates the user to the shopping cart page.
|
|
387
|
+
*
|
|
388
|
+
* @param {string} [props.href] - Destination URL for the shopping cart.
|
|
389
|
+
* @param {string} [props.itemID] - ID used to compose button id attributes (not required for navigation).
|
|
390
|
+
*/
|
|
304
391
|
GoToCartButton.propTypes = {
|
|
392
|
+
/** Cart page URL */
|
|
305
393
|
href: PropTypes.string.isRequired,
|
|
394
|
+
/** Item ID used for button id attributes */
|
|
306
395
|
itemID: PropTypes.string.isRequired,
|
|
307
396
|
};
|
|
308
397
|
export function GoToCartButton(props) {
|
|
@@ -3,12 +3,28 @@ import { useState, useEffect } from 'react';
|
|
|
3
3
|
import PropTypes from 'prop-types';
|
|
4
4
|
import { FontSelector } from './FontSelector';
|
|
5
5
|
import './CompoundFontSelector.css';
|
|
6
|
+
/**
|
|
7
|
+
* CompoundFontSelector — Combined font selector that exposes primary, fallback and generic font fields as one compound value.
|
|
8
|
+
*
|
|
9
|
+
* @param {string} [props.id] - Base id used for the internal font inputs.
|
|
10
|
+
* @param {string} [props.name] - Base name used for the internal font inputs.
|
|
11
|
+
* @param {string} [props.label] - Label displayed above the compound selector.
|
|
12
|
+
* @param {boolean} [props.required] - Whether selecting a primary font is required.
|
|
13
|
+
* @param {string} [props.value] - Current combined font value (comma-separated stack).
|
|
14
|
+
* @param {function} [props.onChange] - Callback invoked with the combined font stack when any part changes.
|
|
15
|
+
*/
|
|
6
16
|
CompoundFontSelector.propTypes = {
|
|
17
|
+
/** Base id for internal inputs */
|
|
7
18
|
id: PropTypes.string.isRequired,
|
|
19
|
+
/** Base name for internal inputs */
|
|
8
20
|
name: PropTypes.string.isRequired,
|
|
21
|
+
/** Display label for the control */
|
|
9
22
|
label: PropTypes.string.isRequired,
|
|
23
|
+
/** Required flag for the primary font */
|
|
10
24
|
required: PropTypes.bool,
|
|
25
|
+
/** Combined font stack value */
|
|
11
26
|
value: PropTypes.string,
|
|
27
|
+
/** onChange callback receiving combined font string */
|
|
12
28
|
onChange: PropTypes.func,
|
|
13
29
|
};
|
|
14
30
|
export function CompoundFontSelector(props) {
|
|
@@ -40,11 +56,27 @@ export function CompoundFontSelector(props) {
|
|
|
40
56
|
};
|
|
41
57
|
return (_jsxs("div", { className: "compound-font-selector", children: [_jsx("label", { children: label }), _jsxs("div", { className: "compound-container", children: [_jsx(FontSelector, { id: `${id}-primary`, name: `${name}-primary`, label: "Primary Font", fontType: "google", required: !!required, placeholder: "Select Google Font", value: fonts.primary, onChange: (val) => handleFontChange('primary', val) }), _jsx(FontSelector, { id: `${id}-fallback`, name: `${name}-fallback`, label: "Fallback Font", fontType: "websafe", required: false, placeholder: "Select web-safe font", value: fonts.fallback, onChange: (val) => handleFontChange('fallback', val) }), _jsx(FontSelector, { id: `${id}-generic`, name: `${name}-generic`, label: "Generic Family", fontType: "generic", required: false, placeholder: "Select generic family", value: fonts.generic, onChange: (val) => handleFontChange('generic', val) })] })] }));
|
|
42
58
|
}
|
|
59
|
+
/**
|
|
60
|
+
* CompoundFontSelector — Combined font selector that exposes primary, fallback and generic font fields as one compound value.
|
|
61
|
+
*
|
|
62
|
+
* @param {string} [props.id] - Base id used for the internal font inputs.
|
|
63
|
+
* @param {string} [props.name] - Base name used for the internal font inputs.
|
|
64
|
+
* @param {string} [props.label] - Label displayed above the compound selector.
|
|
65
|
+
* @param {boolean} [props.required] - Whether selecting a primary font is required.
|
|
66
|
+
* @param {string} [props.value] - Current combined font value (comma-separated stack).
|
|
67
|
+
* @param {function} [props.onChange] - Callback invoked with the combined font stack when any part changes.
|
|
68
|
+
*/
|
|
43
69
|
CompoundFontSelector.propTypes = {
|
|
70
|
+
/** Base id for internal inputs */
|
|
44
71
|
id: PropTypes.string.isRequired,
|
|
72
|
+
/** Base name for internal inputs */
|
|
45
73
|
name: PropTypes.string.isRequired,
|
|
74
|
+
/** Display label for the control */
|
|
46
75
|
label: PropTypes.string.isRequired,
|
|
76
|
+
/** Required flag for the primary font */
|
|
47
77
|
required: PropTypes.bool,
|
|
78
|
+
/** Combined font stack value */
|
|
48
79
|
value: PropTypes.string,
|
|
80
|
+
/** onChange callback receiving combined font string */
|
|
49
81
|
onChange: PropTypes.func,
|
|
50
82
|
};
|
|
@@ -103,8 +103,16 @@ const SiteConfigPropTypes = {
|
|
|
103
103
|
routes: PropTypes.arrayOf(PropTypes.shape(RoutePropTypes).isRequired).isRequired,
|
|
104
104
|
visualdesign: PropTypes.shape(VisualDesignPropTypes).isRequired,
|
|
105
105
|
};
|
|
106
|
+
/**
|
|
107
|
+
* ConfigBuilder — Interactive configuration editor for site-level settings (siteInfo, routes, visual design) with optional AI-assisted recommendations.
|
|
108
|
+
*
|
|
109
|
+
* @param {shape} [props.initialConfig] - Initial configuration object used to prepopulate the editor.
|
|
110
|
+
* @param {function} [props.onSave] - Callback invoked when the user saves the configuration (receives the full config object).
|
|
111
|
+
*/
|
|
106
112
|
ConfigBuilder.propTypes = {
|
|
113
|
+
/** Initial site configuration to edit */
|
|
107
114
|
initialConfig: PropTypes.shape(SiteConfigPropTypes),
|
|
115
|
+
/** Save callback to persist config changes */
|
|
108
116
|
onSave: PropTypes.func,
|
|
109
117
|
};
|
|
110
118
|
export function ConfigBuilder(props) {
|
|
@@ -4,14 +4,34 @@ import PropTypes from 'prop-types';
|
|
|
4
4
|
import { getFontOptions } from './google-fonts';
|
|
5
5
|
import { WEB_SAFE_FONTS, GENERIC_FAMILIES } from './fonts';
|
|
6
6
|
import './FontSelector.css';
|
|
7
|
+
/**
|
|
8
|
+
* FontSelector — Single-font picker that supports Google Fonts, web-safe fonts, and generic families with autocomplete.
|
|
9
|
+
*
|
|
10
|
+
* @param {string} [props.id] - Input id attribute.
|
|
11
|
+
* @param {string} [props.name] - Input name attribute.
|
|
12
|
+
* @param {string} [props.label] - Display label for the selector.
|
|
13
|
+
* @param {oneOf} [props.fontType] - Font source type: 'google' | 'websafe' | 'generic'.
|
|
14
|
+
* @param {boolean} [props.required] - Whether the field is required.
|
|
15
|
+
* @param {string} [props.placeholder] - Placeholder text shown when empty.
|
|
16
|
+
* @param {string} [props.value] - Current selected font value.
|
|
17
|
+
* @param {function} [props.onChange] - Callback invoked when selection changes (receives the font value).
|
|
18
|
+
*/
|
|
7
19
|
FontSelector.propTypes = {
|
|
20
|
+
/** Input id attribute */
|
|
8
21
|
id: PropTypes.string.isRequired,
|
|
22
|
+
/** Input name attribute */
|
|
9
23
|
name: PropTypes.string.isRequired,
|
|
24
|
+
/** Display label */
|
|
10
25
|
label: PropTypes.string.isRequired,
|
|
26
|
+
/** Font source type */
|
|
11
27
|
fontType: PropTypes.oneOf(['google', 'websafe', 'generic']).isRequired,
|
|
28
|
+
/** Required flag */
|
|
12
29
|
required: PropTypes.bool,
|
|
30
|
+
/** Placeholder text */
|
|
13
31
|
placeholder: PropTypes.string,
|
|
32
|
+
/** Selected font value */
|
|
14
33
|
value: PropTypes.string,
|
|
34
|
+
/** Change handler receives new font value */
|
|
15
35
|
onChange: PropTypes.func,
|
|
16
36
|
};
|
|
17
37
|
export function FontSelector(props) {
|
|
@@ -85,13 +105,33 @@ export function FontSelector(props) {
|
|
|
85
105
|
}
|
|
86
106
|
}, tabIndex: 0, role: "option", "aria-selected": inputValue === option.value, children: [_jsx("span", { className: "font-selector-font-name", children: option.label }), option.category && (_jsxs("span", { className: "font-selector-font-category", children: ["(", option.category, ")"] }))] }, option.value)))) }))] })] }));
|
|
87
107
|
}
|
|
108
|
+
/**
|
|
109
|
+
* FontSelector — Single-font picker that supports Google Fonts, web-safe fonts, and generic families with autocomplete.
|
|
110
|
+
*
|
|
111
|
+
* @param {string} [props.id] - Input id attribute.
|
|
112
|
+
* @param {string} [props.name] - Input name attribute.
|
|
113
|
+
* @param {string} [props.label] - Display label for the selector.
|
|
114
|
+
* @param {oneOf} [props.fontType] - Font source type: 'google' | 'websafe' | 'generic'.
|
|
115
|
+
* @param {boolean} [props.required] - Whether the field is required.
|
|
116
|
+
* @param {string} [props.placeholder] - Placeholder text shown when empty.
|
|
117
|
+
* @param {string} [props.value] - Current selected font value.
|
|
118
|
+
* @param {function} [props.onChange] - Callback invoked when selection changes (receives the font value).
|
|
119
|
+
*/
|
|
88
120
|
FontSelector.propTypes = {
|
|
121
|
+
/** Input id attribute */
|
|
89
122
|
id: PropTypes.string.isRequired,
|
|
123
|
+
/** Input name attribute */
|
|
90
124
|
name: PropTypes.string.isRequired,
|
|
125
|
+
/** Display label */
|
|
91
126
|
label: PropTypes.string.isRequired,
|
|
127
|
+
/** Font source type */
|
|
92
128
|
fontType: PropTypes.oneOf(['google', 'websafe', 'generic']).isRequired,
|
|
129
|
+
/** Required flag */
|
|
93
130
|
required: PropTypes.bool,
|
|
131
|
+
/** Placeholder text */
|
|
94
132
|
placeholder: PropTypes.string,
|
|
133
|
+
/** Selected font value */
|
|
95
134
|
value: PropTypes.string,
|
|
135
|
+
/** Change handler receives new font value */
|
|
96
136
|
onChange: PropTypes.func,
|
|
97
137
|
};
|
|
@@ -9,7 +9,15 @@ const debug = false;
|
|
|
9
9
|
/* ===== FORM BUILDER =====
|
|
10
10
|
Display all the components for a Form Builder -
|
|
11
11
|
Element Buttons, Element Details, and the Form */
|
|
12
|
-
|
|
12
|
+
/**
|
|
13
|
+
* FormBuilder — Visual editor for composing forms via JSON schema. Provides a field editor and a live preview powered by `FormEngine`.
|
|
14
|
+
*
|
|
15
|
+
* @param {function} [props.setFormData] - Callback that receives generated field JSON when building a new field (used by the UI to pass schema to the preview).
|
|
16
|
+
*/
|
|
17
|
+
FormBuilder.propTypes = {
|
|
18
|
+
/** Callback invoked with generated form JSON */
|
|
19
|
+
setFormData: PropTypes.func,
|
|
20
|
+
};
|
|
13
21
|
export function FormBuilder() {
|
|
14
22
|
const [formData, setFormData] = useState({ fields: [] });
|
|
15
23
|
const [fieldFormData, setFieldFormData] = useState({ fields: [] });
|
|
@@ -57,6 +65,7 @@ Dynamically generate, component by component, and prop by prop,
|
|
|
57
65
|
the JSON to create a form via FormEngine
|
|
58
66
|
*/
|
|
59
67
|
FormBuild.propTypes = {
|
|
68
|
+
/** Callback used to set the generated field JSON in the parent */
|
|
60
69
|
setFormData: PropTypes.func.isRequired,
|
|
61
70
|
};
|
|
62
71
|
export function FormBuild(props) {
|