heraspec 0.1.13 → 0.1.15
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/LICENSE +209 -22
- package/README.md +205 -137
- package/bin/heraspec.js +4950 -1161
- package/bin/heraspec.js.map +4 -4
- package/dist/core/templates/skills/CHANGELOG.md +117 -117
- package/dist/core/templates/skills/README-template.md +58 -58
- package/dist/core/templates/skills/README.md +35 -32
- package/dist/core/templates/skills/campaign-plan/skill.md +76 -0
- package/dist/core/templates/skills/campaign-plan/skill.vi.md +76 -0
- package/dist/core/templates/skills/campaign-plan-skill.md +76 -0
- package/dist/core/templates/skills/campaign-plan-skill.vi.md +76 -0
- package/dist/core/templates/skills/code-review/skill.md +70 -0
- package/dist/core/templates/skills/code-review/skill.vi.md +70 -0
- package/dist/core/templates/skills/code-review-skill.md +70 -0
- package/dist/core/templates/skills/code-review-skill.vi.md +70 -0
- package/dist/core/templates/skills/content-creation/skill.md +69 -0
- package/dist/core/templates/skills/content-creation/skill.vi.md +69 -0
- package/dist/core/templates/skills/content-creation-skill.md +69 -0
- package/dist/core/templates/skills/content-creation-skill.vi.md +69 -0
- package/dist/core/templates/skills/content-optimization/skill.md +104 -0
- package/dist/core/templates/skills/content-optimization-skill.md +104 -104
- package/dist/core/templates/skills/data/design-systems.csv +54 -0
- package/dist/core/templates/skills/data/pages-proposed.csv +21 -21
- package/dist/core/templates/skills/data/pages.csv +9 -9
- package/dist/core/templates/skills/data/typography.csv +57 -57
- package/dist/core/templates/skills/debug/skill.md +69 -0
- package/dist/core/templates/skills/debug/skill.vi.md +69 -0
- package/dist/core/templates/skills/debug-skill.md +69 -0
- package/dist/core/templates/skills/debug-skill.vi.md +69 -0
- package/dist/core/templates/skills/deploy-documentation/skill.md +408 -0
- package/dist/core/templates/skills/deploy-documentation-skill.md +408 -0
- package/dist/core/templates/skills/design-system/knowledge/design-systems/airbnb/DESIGN.md +246 -0
- package/dist/core/templates/skills/design-system/knowledge/design-systems/airtable/DESIGN.md +89 -0
- package/dist/core/templates/skills/design-system/knowledge/design-systems/apple/DESIGN.md +313 -0
- package/dist/core/templates/skills/design-system/knowledge/design-systems/bmw/DESIGN.md +180 -0
- package/dist/core/templates/skills/design-system/knowledge/design-systems/cal/DESIGN.md +259 -0
- package/dist/core/templates/skills/design-system/knowledge/design-systems/claude/DESIGN.md +312 -0
- package/dist/core/templates/skills/design-system/knowledge/design-systems/clay/DESIGN.md +304 -0
- package/dist/core/templates/skills/design-system/knowledge/design-systems/clickhouse/DESIGN.md +281 -0
- package/dist/core/templates/skills/design-system/knowledge/design-systems/cohere/DESIGN.md +266 -0
- package/dist/core/templates/skills/design-system/knowledge/design-systems/coinbase/DESIGN.md +129 -0
- package/dist/core/templates/skills/design-system/knowledge/design-systems/composio/DESIGN.md +307 -0
- package/dist/core/templates/skills/design-system/knowledge/design-systems/cursor/DESIGN.md +309 -0
- package/dist/core/templates/skills/design-system/knowledge/design-systems/elevenlabs/DESIGN.md +265 -0
- package/dist/core/templates/skills/design-system/knowledge/design-systems/expo/DESIGN.md +281 -0
- package/dist/core/templates/skills/design-system/knowledge/design-systems/figma/DESIGN.md +220 -0
- package/dist/core/templates/skills/design-system/knowledge/design-systems/framer/DESIGN.md +246 -0
- package/dist/core/templates/skills/design-system/knowledge/design-systems/hashicorp/DESIGN.md +278 -0
- package/dist/core/templates/skills/design-system/knowledge/design-systems/ibm/DESIGN.md +332 -0
- package/dist/core/templates/skills/design-system/knowledge/design-systems/index.json +72 -0
- package/dist/core/templates/skills/design-system/knowledge/design-systems/intercom/DESIGN.md +146 -0
- package/dist/core/templates/skills/design-system/knowledge/design-systems/kraken/DESIGN.md +125 -0
- package/dist/core/templates/skills/design-system/knowledge/design-systems/linear.app/DESIGN.md +367 -0
- package/dist/core/templates/skills/design-system/knowledge/design-systems/lovable/DESIGN.md +298 -0
- package/dist/core/templates/skills/design-system/knowledge/design-systems/minimax/DESIGN.md +257 -0
- package/dist/core/templates/skills/design-system/knowledge/design-systems/mintlify/DESIGN.md +326 -0
- package/dist/core/templates/skills/design-system/knowledge/design-systems/miro/DESIGN.md +108 -0
- package/dist/core/templates/skills/design-system/knowledge/design-systems/mistral.ai/DESIGN.md +261 -0
- package/dist/core/templates/skills/design-system/knowledge/design-systems/mongodb/DESIGN.md +266 -0
- package/dist/core/templates/skills/design-system/knowledge/design-systems/notion/DESIGN.md +309 -0
- package/dist/core/templates/skills/design-system/knowledge/design-systems/nvidia/DESIGN.md +293 -0
- package/dist/core/templates/skills/design-system/knowledge/design-systems/ollama/DESIGN.md +267 -0
- package/dist/core/templates/skills/design-system/knowledge/design-systems/opencode.ai/DESIGN.md +281 -0
- package/dist/core/templates/skills/design-system/knowledge/design-systems/pinterest/DESIGN.md +230 -0
- package/dist/core/templates/skills/design-system/knowledge/design-systems/posthog/DESIGN.md +256 -0
- package/dist/core/templates/skills/design-system/knowledge/design-systems/raycast/DESIGN.md +268 -0
- package/dist/core/templates/skills/design-system/knowledge/design-systems/replicate/DESIGN.md +261 -0
- package/dist/core/templates/skills/design-system/knowledge/design-systems/resend/DESIGN.md +303 -0
- package/dist/core/templates/skills/design-system/knowledge/design-systems/revolut/DESIGN.md +185 -0
- package/dist/core/templates/skills/design-system/knowledge/design-systems/runwayml/DESIGN.md +244 -0
- package/dist/core/templates/skills/design-system/knowledge/design-systems/sanity/DESIGN.md +357 -0
- package/dist/core/templates/skills/design-system/knowledge/design-systems/sentry/DESIGN.md +262 -0
- package/dist/core/templates/skills/design-system/knowledge/design-systems/spacex/DESIGN.md +194 -0
- package/dist/core/templates/skills/design-system/knowledge/design-systems/spotify/DESIGN.md +246 -0
- package/dist/core/templates/skills/design-system/knowledge/design-systems/stripe/DESIGN.md +322 -0
- package/dist/core/templates/skills/design-system/knowledge/design-systems/supabase/DESIGN.md +255 -0
- package/dist/core/templates/skills/design-system/knowledge/design-systems/superhuman/DESIGN.md +252 -0
- package/dist/core/templates/skills/design-system/knowledge/design-systems/together.ai/DESIGN.md +263 -0
- package/dist/core/templates/skills/design-system/knowledge/design-systems/uber/DESIGN.md +295 -0
- package/dist/core/templates/skills/design-system/knowledge/design-systems/vercel/DESIGN.md +310 -0
- package/dist/core/templates/skills/design-system/knowledge/design-systems/voltagent/DESIGN.md +323 -0
- package/dist/core/templates/skills/design-system/knowledge/design-systems/warp/DESIGN.md +253 -0
- package/dist/core/templates/skills/design-system/knowledge/design-systems/webflow/DESIGN.md +92 -0
- package/dist/core/templates/skills/design-system/knowledge/design-systems/wise/DESIGN.md +173 -0
- package/dist/core/templates/skills/design-system/knowledge/design-systems/x.ai/DESIGN.md +257 -0
- package/dist/core/templates/skills/design-system/knowledge/design-systems/zapier/DESIGN.md +328 -0
- package/dist/core/templates/skills/design-system/skill.md +176 -0
- package/dist/core/templates/skills/design-system-skill.md +176 -0
- package/dist/core/templates/skills/documents/skill.md +104 -0
- package/dist/core/templates/skills/documents/templates/documentation-landing-page.html +63 -63
- package/dist/core/templates/skills/documents/templates/documentation.html +49 -49
- package/dist/core/templates/skills/documents/templates/landing-script.js +38 -38
- package/dist/core/templates/skills/documents/templates/landing-style.css +158 -158
- package/dist/core/templates/skills/documents/templates/script.js +56 -56
- package/dist/core/templates/skills/documents/templates/style.css +155 -155
- package/dist/core/templates/skills/documents/templates/technical-doc-template.md +16 -16
- package/dist/core/templates/skills/documents/templates/user-guide-template.md +16 -16
- package/dist/core/templates/skills/documents-skill.md +104 -104
- package/dist/core/templates/skills/e2e-test/skill.md +119 -0
- package/dist/core/templates/skills/e2e-test-skill.md +119 -119
- package/dist/core/templates/skills/email-sequence/skill.md +68 -0
- package/dist/core/templates/skills/email-sequence/skill.vi.md +68 -0
- package/dist/core/templates/skills/email-sequence-skill.md +68 -0
- package/dist/core/templates/skills/email-sequence-skill.vi.md +68 -0
- package/dist/core/templates/skills/git-embed/skill.md +57 -0
- package/dist/core/templates/skills/git-embed-skill.md +57 -0
- package/dist/core/templates/skills/integration-test/skill.md +118 -0
- package/dist/core/templates/skills/integration-test-skill.md +118 -118
- package/dist/core/templates/skills/knowledge/README.md +63 -0
- package/dist/core/templates/skills/knowledge/design-systems/airbnb/DESIGN.md +246 -0
- package/dist/core/templates/skills/knowledge/design-systems/airtable/DESIGN.md +89 -0
- package/dist/core/templates/skills/knowledge/design-systems/apple/DESIGN.md +313 -0
- package/dist/core/templates/skills/knowledge/design-systems/bmw/DESIGN.md +180 -0
- package/dist/core/templates/skills/knowledge/design-systems/cal/DESIGN.md +259 -0
- package/dist/core/templates/skills/knowledge/design-systems/claude/DESIGN.md +312 -0
- package/dist/core/templates/skills/knowledge/design-systems/clay/DESIGN.md +304 -0
- package/dist/core/templates/skills/knowledge/design-systems/clickhouse/DESIGN.md +281 -0
- package/dist/core/templates/skills/knowledge/design-systems/cohere/DESIGN.md +266 -0
- package/dist/core/templates/skills/knowledge/design-systems/coinbase/DESIGN.md +129 -0
- package/dist/core/templates/skills/knowledge/design-systems/composio/DESIGN.md +307 -0
- package/dist/core/templates/skills/knowledge/design-systems/cursor/DESIGN.md +309 -0
- package/dist/core/templates/skills/knowledge/design-systems/elevenlabs/DESIGN.md +265 -0
- package/dist/core/templates/skills/knowledge/design-systems/expo/DESIGN.md +281 -0
- package/dist/core/templates/skills/knowledge/design-systems/figma/DESIGN.md +220 -0
- package/dist/core/templates/skills/knowledge/design-systems/framer/DESIGN.md +246 -0
- package/dist/core/templates/skills/knowledge/design-systems/hashicorp/DESIGN.md +278 -0
- package/dist/core/templates/skills/knowledge/design-systems/ibm/DESIGN.md +332 -0
- package/dist/core/templates/skills/knowledge/design-systems/index.json +72 -0
- package/dist/core/templates/skills/knowledge/design-systems/intercom/DESIGN.md +146 -0
- package/dist/core/templates/skills/knowledge/design-systems/kraken/DESIGN.md +125 -0
- package/dist/core/templates/skills/knowledge/design-systems/linear.app/DESIGN.md +367 -0
- package/dist/core/templates/skills/knowledge/design-systems/lovable/DESIGN.md +298 -0
- package/dist/core/templates/skills/knowledge/design-systems/minimax/DESIGN.md +257 -0
- package/dist/core/templates/skills/knowledge/design-systems/mintlify/DESIGN.md +326 -0
- package/dist/core/templates/skills/knowledge/design-systems/miro/DESIGN.md +108 -0
- package/dist/core/templates/skills/knowledge/design-systems/mistral.ai/DESIGN.md +261 -0
- package/dist/core/templates/skills/knowledge/design-systems/mongodb/DESIGN.md +266 -0
- package/dist/core/templates/skills/knowledge/design-systems/notion/DESIGN.md +309 -0
- package/dist/core/templates/skills/knowledge/design-systems/nvidia/DESIGN.md +293 -0
- package/dist/core/templates/skills/knowledge/design-systems/ollama/DESIGN.md +267 -0
- package/dist/core/templates/skills/knowledge/design-systems/opencode.ai/DESIGN.md +281 -0
- package/dist/core/templates/skills/knowledge/design-systems/pinterest/DESIGN.md +230 -0
- package/dist/core/templates/skills/knowledge/design-systems/posthog/DESIGN.md +256 -0
- package/dist/core/templates/skills/knowledge/design-systems/raycast/DESIGN.md +268 -0
- package/dist/core/templates/skills/knowledge/design-systems/replicate/DESIGN.md +261 -0
- package/dist/core/templates/skills/knowledge/design-systems/resend/DESIGN.md +303 -0
- package/dist/core/templates/skills/knowledge/design-systems/revolut/DESIGN.md +185 -0
- package/dist/core/templates/skills/knowledge/design-systems/runwayml/DESIGN.md +244 -0
- package/dist/core/templates/skills/knowledge/design-systems/sanity/DESIGN.md +357 -0
- package/dist/core/templates/skills/knowledge/design-systems/sentry/DESIGN.md +262 -0
- package/dist/core/templates/skills/knowledge/design-systems/spacex/DESIGN.md +194 -0
- package/dist/core/templates/skills/knowledge/design-systems/spotify/DESIGN.md +246 -0
- package/dist/core/templates/skills/knowledge/design-systems/stripe/DESIGN.md +322 -0
- package/dist/core/templates/skills/knowledge/design-systems/supabase/DESIGN.md +255 -0
- package/dist/core/templates/skills/knowledge/design-systems/superhuman/DESIGN.md +252 -0
- package/dist/core/templates/skills/knowledge/design-systems/together.ai/DESIGN.md +263 -0
- package/dist/core/templates/skills/knowledge/design-systems/uber/DESIGN.md +295 -0
- package/dist/core/templates/skills/knowledge/design-systems/vercel/DESIGN.md +310 -0
- package/dist/core/templates/skills/knowledge/design-systems/voltagent/DESIGN.md +323 -0
- package/dist/core/templates/skills/knowledge/design-systems/warp/DESIGN.md +253 -0
- package/dist/core/templates/skills/knowledge/design-systems/webflow/DESIGN.md +92 -0
- package/dist/core/templates/skills/knowledge/design-systems/wise/DESIGN.md +173 -0
- package/dist/core/templates/skills/knowledge/design-systems/x.ai/DESIGN.md +257 -0
- package/dist/core/templates/skills/knowledge/design-systems/zapier/DESIGN.md +328 -0
- package/dist/core/templates/skills/knowledge/frameworks/php/codeigniter/rise-cms/profile.json +27 -0
- package/dist/core/templates/skills/knowledge/frameworks/php/codeigniter/rise-cms/structure.md +137 -0
- package/dist/core/templates/skills/knowledge/frameworks/php/laravel/botble/profile.json +39 -0
- package/dist/core/templates/skills/knowledge/frameworks/php/laravel/botble/structure.md +208 -0
- package/dist/core/templates/skills/knowledge/frameworks/php/wordpress/core/profile.json +51 -0
- package/dist/core/templates/skills/knowledge/frameworks/php/wordpress/core/structure.md +369 -0
- package/dist/core/templates/skills/knowledge/index.json +65 -0
- package/dist/core/templates/skills/module-codebase-skill.md +110 -110
- package/dist/core/templates/skills/perfex-module/module-codebase/skill.md +110 -0
- package/dist/core/templates/skills/plugin-directory-skill.md +396 -396
- package/dist/core/templates/skills/project-memory/skill.md +222 -0
- package/dist/core/templates/skills/project-memory/skill.vi.md +223 -0
- package/dist/core/templates/skills/project-memory-skill.md +222 -0
- package/dist/core/templates/skills/project-memory-skill.vi.md +223 -0
- package/dist/core/templates/skills/scripts/CODE_EXPLANATION.md +394 -394
- package/dist/core/templates/skills/scripts/SEARCH_ALGORITHMS_COMPARISON.md +421 -421
- package/dist/core/templates/skills/scripts/SEARCH_MODES_GUIDE.md +238 -238
- package/dist/core/templates/skills/scripts/__pycache__/core.cpython-311.pyc +0 -0
- package/dist/core/templates/skills/scripts/core.py +391 -385
- package/dist/core/templates/skills/scripts/search.py +1 -1
- package/dist/core/templates/skills/seo-audit/skill.md +75 -0
- package/dist/core/templates/skills/seo-audit/skill.vi.md +75 -0
- package/dist/core/templates/skills/seo-audit-skill.md +75 -0
- package/dist/core/templates/skills/seo-audit-skill.vi.md +75 -0
- package/dist/core/templates/skills/smart-explore/skill.md +141 -0
- package/dist/core/templates/skills/smart-explore-skill.md +141 -0
- package/dist/core/templates/skills/sourcecode-analyzer/skill.md +210 -0
- package/dist/core/templates/skills/sourcecode-analyzer/skill.vi.md +210 -0
- package/dist/core/templates/skills/sourcecode-analyzer-skill.md +210 -0
- package/dist/core/templates/skills/sourcecode-analyzer-skill.vi.md +210 -0
- package/dist/core/templates/skills/spec-writer/skill.md +61 -0
- package/dist/core/templates/skills/spec-writer/skill.vi.md +61 -0
- package/dist/core/templates/skills/spec-writer-skill.md +61 -0
- package/dist/core/templates/skills/spec-writer-skill.vi.md +61 -0
- package/dist/core/templates/skills/sql-queries/skill.md +67 -0
- package/dist/core/templates/skills/sql-queries/skill.vi.md +67 -0
- package/dist/core/templates/skills/sql-queries-skill.md +67 -0
- package/dist/core/templates/skills/sql-queries-skill.vi.md +67 -0
- package/dist/core/templates/skills/suggestion/skill.md +118 -0
- package/dist/core/templates/skills/suggestion-skill.md +118 -118
- package/dist/core/templates/skills/system-design/skill.md +70 -0
- package/dist/core/templates/skills/system-design/skill.vi.md +70 -0
- package/dist/core/templates/skills/system-design-skill.md +70 -0
- package/dist/core/templates/skills/system-design-skill.vi.md +70 -0
- package/dist/core/templates/skills/tech-debt/skill.md +70 -0
- package/dist/core/templates/skills/tech-debt/skill.vi.md +70 -0
- package/dist/core/templates/skills/tech-debt-skill.md +70 -0
- package/dist/core/templates/skills/tech-debt-skill.vi.md +70 -0
- package/dist/core/templates/skills/templates/accessibility-checklist.md +40 -40
- package/dist/core/templates/skills/templates/example-prompt-full-theme.md +333 -333
- package/dist/core/templates/skills/templates/page-types-guide.md +338 -338
- package/dist/core/templates/skills/templates/pages-proposed-summary.md +273 -273
- package/dist/core/templates/skills/templates/pre-delivery-checklist.md +42 -42
- package/dist/core/templates/skills/templates/prompt-template-full-theme.md +313 -313
- package/dist/core/templates/skills/templates/responsive-design.md +40 -40
- package/dist/core/templates/skills/ui-ux/data/charts.csv +26 -0
- package/dist/core/templates/skills/ui-ux/data/colors.csv +97 -0
- package/dist/core/templates/skills/ui-ux/data/design-systems.csv +54 -0
- package/dist/core/templates/skills/ui-ux/data/landing.csv +31 -0
- package/dist/core/templates/skills/ui-ux/data/pages-proposed.csv +22 -0
- package/dist/core/templates/skills/ui-ux/data/pages.csv +10 -0
- package/dist/core/templates/skills/ui-ux/data/products.csv +97 -0
- package/dist/core/templates/skills/ui-ux/data/prompts.csv +24 -0
- package/dist/core/templates/skills/ui-ux/data/stacks/flutter.csv +53 -0
- package/dist/core/templates/skills/ui-ux/data/stacks/html-tailwind.csv +56 -0
- package/dist/core/templates/skills/ui-ux/data/stacks/nextjs.csv +53 -0
- package/dist/core/templates/skills/ui-ux/data/stacks/react-native.csv +52 -0
- package/dist/core/templates/skills/ui-ux/data/stacks/react.csv +54 -0
- package/dist/core/templates/skills/ui-ux/data/stacks/svelte.csv +54 -0
- package/dist/core/templates/skills/ui-ux/data/stacks/swiftui.csv +51 -0
- package/dist/core/templates/skills/ui-ux/data/stacks/vue.csv +50 -0
- package/dist/core/templates/skills/ui-ux/data/styles.csv +59 -0
- package/dist/core/templates/skills/ui-ux/data/typography.csv +58 -0
- package/dist/core/templates/skills/ui-ux/data/ux-guidelines.csv +100 -0
- package/dist/core/templates/skills/ui-ux/scripts/CODE_EXPLANATION.md +394 -0
- package/dist/core/templates/skills/ui-ux/scripts/SEARCH_ALGORITHMS_COMPARISON.md +421 -0
- package/dist/core/templates/skills/ui-ux/scripts/SEARCH_MODES_GUIDE.md +238 -0
- package/dist/core/templates/skills/ui-ux/scripts/core.py +391 -0
- package/dist/core/templates/skills/ui-ux/scripts/search.py +73 -0
- package/dist/core/templates/skills/ui-ux/skill.md +595 -0
- package/dist/core/templates/skills/ui-ux/templates/accessibility-checklist.md +40 -0
- package/dist/core/templates/skills/ui-ux/templates/example-prompt-full-theme.md +333 -0
- package/dist/core/templates/skills/ui-ux/templates/page-types-guide.md +338 -0
- package/dist/core/templates/skills/ui-ux/templates/pages-proposed-summary.md +273 -0
- package/dist/core/templates/skills/ui-ux/templates/pre-delivery-checklist.md +42 -0
- package/dist/core/templates/skills/ui-ux/templates/prompt-template-full-theme.md +313 -0
- package/dist/core/templates/skills/ui-ux/templates/responsive-design.md +40 -0
- package/dist/core/templates/skills/ui-ux-skill.md +595 -584
- package/dist/core/templates/skills/unit-test/skill.md +111 -0
- package/dist/core/templates/skills/unit-test-skill.md +111 -111
- package/dist/core/templates/skills/ux-element/templates/Controller.php +50 -50
- package/dist/core/templates/skills/ux-element/templates/Shortcode.php +23 -23
- package/dist/core/templates/skills/ux-element/templates/Template.html +20 -20
- package/dist/core/templates/skills/ux-element/templates/Thumbnail.svg +8 -8
- package/dist/core/templates/skills/ux-element/templates/View.php +21 -21
- package/dist/core/templates/skills/ux-element-skill.md +83 -83
- package/dist/core/templates/skills/wordpress/plugin-check/skill.md +151 -0
- package/dist/core/templates/skills/wordpress/plugin-directory/skill.md +396 -0
- package/dist/core/templates/skills/wordpress/plugin-standard/skill.md +100 -0
- package/dist/core/templates/skills/wordpress/plugin-standard/templates/admin-dashboard.php +47 -0
- package/dist/core/templates/skills/wordpress/plugin-standard/templates/admin-settings.php +60 -0
- package/dist/core/templates/skills/wordpress/plugin-standard/templates/assets/admin-css.css +22 -0
- package/dist/core/templates/skills/wordpress/plugin-standard/templates/assets/admin-js.js +15 -0
- package/dist/core/templates/skills/wordpress/plugin-standard/templates/plugin-main.php +169 -0
- package/dist/core/templates/skills/wordpress/plugin-standard/templates/readme.txt +41 -0
- package/dist/core/templates/skills/wordpress/plugin-standard/templates/uninstall.php +21 -0
- package/dist/core/templates/skills/wordpress/ux-element/skill.md +83 -0
- package/dist/core/templates/skills/wordpress/ux-element/templates/Controller.php +50 -0
- package/dist/core/templates/skills/wordpress/ux-element/templates/Shortcode.php +23 -0
- package/dist/core/templates/skills/wordpress/ux-element/templates/Template.html +20 -0
- package/dist/core/templates/skills/wordpress/ux-element/templates/Thumbnail.svg +8 -0
- package/dist/core/templates/skills/wordpress/ux-element/templates/View.php +21 -0
- package/dist/core/templates/skills/wordpress-plugin-check-skill.md +151 -151
- package/dist/core/templates/skills/wordpress-plugin-standard/templates/admin-dashboard.php +47 -47
- package/dist/core/templates/skills/wordpress-plugin-standard/templates/admin-settings.php +60 -60
- package/dist/core/templates/skills/wordpress-plugin-standard/templates/assets/admin-css.css +22 -22
- package/dist/core/templates/skills/wordpress-plugin-standard/templates/assets/admin-js.js +15 -15
- package/dist/core/templates/skills/wordpress-plugin-standard/templates/plugin-main.php +169 -169
- package/dist/core/templates/skills/wordpress-plugin-standard/templates/readme.txt +41 -41
- package/dist/core/templates/skills/wordpress-plugin-standard/templates/uninstall.php +21 -21
- package/dist/core/templates/skills/wordpress-plugin-standard-skill.md +100 -100
- package/dist/index.js +4237 -331
- package/package.json +75 -72
|
@@ -0,0 +1,169 @@
|
|
|
1
|
+
<?php
|
|
2
|
+
/**
|
|
3
|
+
* Plugin Name: {{plugin_name}}
|
|
4
|
+
* Description: A high-quality WordPress plugin following WP.org standards.
|
|
5
|
+
* Version: 1.0.0
|
|
6
|
+
* Author: Your Name
|
|
7
|
+
* Author URI: https://example.com
|
|
8
|
+
* License: GPL-2.0-or-later
|
|
9
|
+
* License URI: https://www.gnu.org/licenses/gpl-2.0.html
|
|
10
|
+
* Text Domain: {{text_domain}}
|
|
11
|
+
* Domain Path: /languages
|
|
12
|
+
*
|
|
13
|
+
* @package {{namespace}}
|
|
14
|
+
*/
|
|
15
|
+
|
|
16
|
+
// If this file is called directly, abort.
|
|
17
|
+
if ( ! defined( 'ABSPATH' ) ) {
|
|
18
|
+
exit;
|
|
19
|
+
}
|
|
20
|
+
|
|
21
|
+
/**
|
|
22
|
+
* The core plugin class.
|
|
23
|
+
*/
|
|
24
|
+
class {{namespace}}\Main {
|
|
25
|
+
|
|
26
|
+
/**
|
|
27
|
+
* Instance of this class.
|
|
28
|
+
*
|
|
29
|
+
* @var object
|
|
30
|
+
*/
|
|
31
|
+
protected static $instance = null;
|
|
32
|
+
|
|
33
|
+
/**
|
|
34
|
+
* Initialize the plugin.
|
|
35
|
+
*/
|
|
36
|
+
public function __construct() {
|
|
37
|
+
$this->define_constants();
|
|
38
|
+
$this->includes();
|
|
39
|
+
$this->init_hooks();
|
|
40
|
+
}
|
|
41
|
+
|
|
42
|
+
/**
|
|
43
|
+
* Return an instance of this class.
|
|
44
|
+
*/
|
|
45
|
+
public static function get_instance() {
|
|
46
|
+
if ( null === self::$instance ) {
|
|
47
|
+
self::$instance = new self();
|
|
48
|
+
}
|
|
49
|
+
return self::$instance;
|
|
50
|
+
}
|
|
51
|
+
|
|
52
|
+
/**
|
|
53
|
+
* Define constants.
|
|
54
|
+
*/
|
|
55
|
+
private function define_constants() {
|
|
56
|
+
define( '{{prefix|upper}}VERSION', '1.0.0' );
|
|
57
|
+
define( '{{prefix|upper}}PATH', plugin_dir_path( __FILE__ ) );
|
|
58
|
+
define( '{{prefix|upper}}URL', plugin_dir_url( __FILE__ ) );
|
|
59
|
+
}
|
|
60
|
+
|
|
61
|
+
/**
|
|
62
|
+
* Include required files.
|
|
63
|
+
*/
|
|
64
|
+
private function includes() {
|
|
65
|
+
// Include admin classes, helpers, etc.
|
|
66
|
+
}
|
|
67
|
+
|
|
68
|
+
/**
|
|
69
|
+
* Initialize hooks.
|
|
70
|
+
*/
|
|
71
|
+
private function init_hooks() {
|
|
72
|
+
add_action( 'admin_menu', [ $this, 'add_menu_pages' ] );
|
|
73
|
+
add_action( 'admin_enqueue_scripts', [ $this, 'enqueue_admin_assets' ] );
|
|
74
|
+
|
|
75
|
+
// Activation / Deactivation hooks
|
|
76
|
+
register_activation_hook( __FILE__, [ $this, 'activate' ] );
|
|
77
|
+
register_deactivation_hook( __FILE__, [ $this, 'deactivate' ] );
|
|
78
|
+
}
|
|
79
|
+
|
|
80
|
+
/**
|
|
81
|
+
* Add Admin Menu Pages.
|
|
82
|
+
*/
|
|
83
|
+
public function add_menu_pages() {
|
|
84
|
+
add_menu_page(
|
|
85
|
+
__( '{{plugin_name}}', '{{text_domain}}' ),
|
|
86
|
+
__( '{{plugin_name}}', '{{text_domain}}' ),
|
|
87
|
+
'manage_options',
|
|
88
|
+
'{{plugin_slug}}',
|
|
89
|
+
[ $this, 'render_dashboard_page' ],
|
|
90
|
+
'dashicons-admin-generic',
|
|
91
|
+
100
|
|
92
|
+
);
|
|
93
|
+
|
|
94
|
+
add_submenu_page(
|
|
95
|
+
'{{plugin_slug}}',
|
|
96
|
+
__( 'Dashboard', '{{text_domain}}' ),
|
|
97
|
+
__( 'Dashboard', '{{text_domain}}' ),
|
|
98
|
+
'manage_options',
|
|
99
|
+
'{{plugin_slug}}',
|
|
100
|
+
[ $this, 'render_dashboard_page' ]
|
|
101
|
+
);
|
|
102
|
+
|
|
103
|
+
add_submenu_page(
|
|
104
|
+
'{{plugin_slug}}',
|
|
105
|
+
__( 'Settings', '{{text_domain}}' ),
|
|
106
|
+
__( 'Settings', '{{text_domain}}' ),
|
|
107
|
+
'manage_options',
|
|
108
|
+
'{{plugin_slug}}-settings',
|
|
109
|
+
[ $this, 'render_settings_page' ]
|
|
110
|
+
);
|
|
111
|
+
}
|
|
112
|
+
|
|
113
|
+
/**
|
|
114
|
+
* Enqueue Admin Assets.
|
|
115
|
+
*/
|
|
116
|
+
public function enqueue_admin_assets( $hook ) {
|
|
117
|
+
// Only load on our plugin pages
|
|
118
|
+
if ( strpos( $hook, '{{plugin_slug}}' ) === false ) {
|
|
119
|
+
return;
|
|
120
|
+
}
|
|
121
|
+
|
|
122
|
+
wp_enqueue_style( '{{plugin_slug}}-admin', {{prefix|upper}}URL . 'assets/css/admin.css', [], {{prefix|upper}}VERSION );
|
|
123
|
+
wp_enqueue_script( '{{plugin_slug}}-admin', {{prefix|upper}}URL . 'assets/js/admin.js', [ 'jquery' ], {{prefix|upper}}VERSION, true );
|
|
124
|
+
|
|
125
|
+
wp_localize_script( '{{plugin_slug}}-admin', '{{prefix}}params', [
|
|
126
|
+
'ajax_url' => admin_url( 'admin-ajax.php' ),
|
|
127
|
+
'nonce' => wp_create_nonce( '{{prefix}}nonce' ),
|
|
128
|
+
]);
|
|
129
|
+
}
|
|
130
|
+
|
|
131
|
+
/**
|
|
132
|
+
* Render Dashboard Page.
|
|
133
|
+
*/
|
|
134
|
+
public function render_dashboard_page() {
|
|
135
|
+
// Include template file
|
|
136
|
+
include {{prefix|upper}}PATH . 'templates/admin-dashboard.php';
|
|
137
|
+
}
|
|
138
|
+
|
|
139
|
+
/**
|
|
140
|
+
* Render Settings Page.
|
|
141
|
+
*/
|
|
142
|
+
public function render_settings_page() {
|
|
143
|
+
// Include template file
|
|
144
|
+
include {{prefix|upper}}PATH . 'templates/admin-settings.php';
|
|
145
|
+
}
|
|
146
|
+
|
|
147
|
+
/**
|
|
148
|
+
* Activation logic.
|
|
149
|
+
*/
|
|
150
|
+
public function activate() {
|
|
151
|
+
// Setup database tables, default options, etc.
|
|
152
|
+
}
|
|
153
|
+
|
|
154
|
+
/**
|
|
155
|
+
* Deactivation logic.
|
|
156
|
+
*/
|
|
157
|
+
public function deactivate() {
|
|
158
|
+
// Clear scheduled tasks, etc.
|
|
159
|
+
}
|
|
160
|
+
}
|
|
161
|
+
|
|
162
|
+
/**
|
|
163
|
+
* Initialize the plugin.
|
|
164
|
+
*/
|
|
165
|
+
function {{prefix}}init() {
|
|
166
|
+
return {{namespace}}\Main::get_instance();
|
|
167
|
+
}
|
|
168
|
+
|
|
169
|
+
add_action( 'plugins_loaded', '{{prefix}}init' );
|
|
@@ -0,0 +1,41 @@
|
|
|
1
|
+
=== {{plugin_name}} ===
|
|
2
|
+
Contributors: yourname
|
|
3
|
+
Tags: wordpress, plugin, standard
|
|
4
|
+
Requires at least: 6.0
|
|
5
|
+
Tested up to: 6.4
|
|
6
|
+
Requires PHP: 7.4
|
|
7
|
+
Stable tag: 1.0.0
|
|
8
|
+
License: GPLv2 or later
|
|
9
|
+
License URI: https://www.gnu.org/licenses/gpl-2.0.html
|
|
10
|
+
|
|
11
|
+
{{plugin_name}} is a high-quality WordPress plugin built with HeraSpec.
|
|
12
|
+
|
|
13
|
+
== Description ==
|
|
14
|
+
|
|
15
|
+
Describe your plugin features here.
|
|
16
|
+
|
|
17
|
+
== Installation ==
|
|
18
|
+
|
|
19
|
+
1. Upload the plugin files to the `/wp-content/plugins/{{plugin_slug}}` directory.
|
|
20
|
+
2. Activate the plugin through the 'Plugins' screen in WordPress.
|
|
21
|
+
3. Go to {{plugin_name}} -> Settings to configure.
|
|
22
|
+
|
|
23
|
+
== Frequently Asked Questions ==
|
|
24
|
+
|
|
25
|
+
= Is this plugin free? =
|
|
26
|
+
|
|
27
|
+
Yes!
|
|
28
|
+
|
|
29
|
+
== Screenshots ==
|
|
30
|
+
|
|
31
|
+
1. Dashboard view.
|
|
32
|
+
|
|
33
|
+
== Changelog ==
|
|
34
|
+
|
|
35
|
+
= 1.0.0 =
|
|
36
|
+
* Initial release.
|
|
37
|
+
|
|
38
|
+
== Upgrade Notice ==
|
|
39
|
+
|
|
40
|
+
= 1.0.0 =
|
|
41
|
+
* First version.
|
|
@@ -0,0 +1,21 @@
|
|
|
1
|
+
<?php
|
|
2
|
+
/**
|
|
3
|
+
* Fired when the plugin is uninstalled.
|
|
4
|
+
*
|
|
5
|
+
* @package {{namespace}}
|
|
6
|
+
*/
|
|
7
|
+
|
|
8
|
+
// If uninstall not called from WordPress, then exit.
|
|
9
|
+
if ( ! defined( 'WP_UNINSTALL_PLUGIN' ) ) {
|
|
10
|
+
exit;
|
|
11
|
+
}
|
|
12
|
+
|
|
13
|
+
/**
|
|
14
|
+
* Clean up plugin data.
|
|
15
|
+
*/
|
|
16
|
+
delete_option( '{{prefix}}version' );
|
|
17
|
+
delete_option( '{{prefix}}api_key' );
|
|
18
|
+
|
|
19
|
+
// Delete custom tables if any...
|
|
20
|
+
// global $wpdb;
|
|
21
|
+
// $wpdb->query( "DROP TABLE IF EXISTS {$wpdb->prefix}your_table_name" );
|
|
@@ -0,0 +1,83 @@
|
|
|
1
|
+
# Skill: Flatsome UX Element
|
|
2
|
+
|
|
3
|
+
This skill guides the creation of custom UX Builder elements for the Flatsome theme within the PolyUtilities plugin.
|
|
4
|
+
|
|
5
|
+
## Purpose
|
|
6
|
+
Standardize the development of UX elements to ensure consistency across controllers, shortcodes, and templates, with special focus on real-time preview functionality. This skill is portable and uses dynamic prefixes for identity (Shortcode, Namespace, CSS Classes).
|
|
7
|
+
|
|
8
|
+
## Required Variables
|
|
9
|
+
When calling this skill, define the following identity prefixes:
|
|
10
|
+
- `{{namespace_prefix}}`: The root namespace (e.g., `polyxgo\PolyUtilities`).
|
|
11
|
+
- `{{shortcode_prefix}}`: Prefix for shortcode names (e.g., `poly_ux_`).
|
|
12
|
+
- `{{class_prefix}}`: Prefix for CSS classes (e.g., `poly-`).
|
|
13
|
+
- `{{plugin_dir_const}}`: The plugin directory constant (e.g., `__POLYUTILITIES_PLUGIN_DIR__`).
|
|
14
|
+
|
|
15
|
+
## Prerequisites
|
|
16
|
+
- Knowledge of PHP, WordPress Shortcodes, and AngularJS (for UX Builder templates).
|
|
17
|
+
- Access to `inc/Core/Helper.php` for utility functions.
|
|
18
|
+
|
|
19
|
+
## Implementation Steps
|
|
20
|
+
|
|
21
|
+
### 1. Register Shortcode Logic (The Controller)
|
|
22
|
+
Create a new controller class in `inc/Controllers/Elements/`.
|
|
23
|
+
- **Namespace**: `{{namespace_prefix}}\Controllers\Elements`
|
|
24
|
+
- **Method `register_hooks()`**: Add the shortcode `{{shortcode_prefix}}{{element_slug}}` and `ux_builder_setup` action.
|
|
25
|
+
- **Method `render_element($atts, $content)`**: Handle the frontend output.
|
|
26
|
+
|
|
27
|
+
### 2. Register UX Builder UI (The Shortcode)
|
|
28
|
+
Create a registration file in `inc/builder/shortcodes/`.
|
|
29
|
+
- Use `add_ux_builder_shortcode('{{shortcode_prefix}}{{element_slug}}', ...)`.
|
|
30
|
+
- Define options (textfield, select, colorpicker, slider, etc.).
|
|
31
|
+
- Link to the AngularJS template using `Helper::get_poly_ux_builder_template()`.
|
|
32
|
+
|
|
33
|
+
### 3. Build the Preview Template (AngularJS)
|
|
34
|
+
Create an HTML file in `inc/builder/shortcodes/templates/`.
|
|
35
|
+
- **CRITICAL**: Wrap the entire content in a `<span>` with `id="{{:: shortcode.$id }}"`.
|
|
36
|
+
- This ensures that clicking the element in the builder correctly selects it and shows options.
|
|
37
|
+
- Use `ng-style` and `style scope="scope"` for real-time CSS updates.
|
|
38
|
+
|
|
39
|
+
### 4. Create SVG Thumbnail
|
|
40
|
+
Create an SVG file in `inc/builder/shortcodes/thumbnails/`.
|
|
41
|
+
- **Naming**: Use `{{element_slug}}.svg`.
|
|
42
|
+
- **Dimensions**: Use `100x68px`.
|
|
43
|
+
- **Theme**: Use the "Pastel Red" theme (`#F87171` for accents, `#FCA5A5` for fills).
|
|
44
|
+
|
|
45
|
+
### 5. Create the Frontend View
|
|
46
|
+
(Optional) Extract the HTML into `inc/Views/elements/` for cleaner controllers.
|
|
47
|
+
|
|
48
|
+
## Standards and Rules
|
|
49
|
+
|
|
50
|
+
### The Wrapping Rule
|
|
51
|
+
Every UX Builder template MUST follow this structure:
|
|
52
|
+
```html
|
|
53
|
+
<span id="{{:: shortcode.$id }}">
|
|
54
|
+
<!-- Main element (e.g., <a>, <div>, <section>) -->
|
|
55
|
+
<div class="{{class_prefix}}{{element_slug}}" ng-style="{ 'color': shortcode.options.color }">
|
|
56
|
+
{{ shortcode.options.text }}
|
|
57
|
+
</div>
|
|
58
|
+
|
|
59
|
+
<!-- Scoped styles for hover effects or complex rules -->
|
|
60
|
+
<style scope="scope">
|
|
61
|
+
#{{::shortcode.$id }} .{{class_prefix}}{{element_slug}}:hover {
|
|
62
|
+
opacity: 0.8;
|
|
63
|
+
}
|
|
64
|
+
</style>
|
|
65
|
+
</span>
|
|
66
|
+
```
|
|
67
|
+
|
|
68
|
+
### Variable Naming (PHP vs AngularJS)
|
|
69
|
+
**CRITICAL**: When accessing shortcode options in the AngularJS template (`.html`), variables declared with underscores (`_`) in PHP MUST be accessed via **camelCase**.
|
|
70
|
+
- **PHP**: `bg_color` → **AngularJS**: `shortcode.options.bgColor`
|
|
71
|
+
- **PHP**: `pxg_clock_font` → **AngularJS**: `shortcode.options.pxgClockFont`
|
|
72
|
+
- **PHP**: `text_align` → **AngularJS**: `shortcode.options.textAlign`
|
|
73
|
+
|
|
74
|
+
### Color Handling
|
|
75
|
+
- Use HEX or RGBA strings consistently.
|
|
76
|
+
- Always provide default values in the shortcode registration or handle them in the template/controller.
|
|
77
|
+
|
|
78
|
+
## Templates
|
|
79
|
+
- [Controller.php](templates/Controller.php)
|
|
80
|
+
- [Shortcode.php](templates/Shortcode.php)
|
|
81
|
+
- [Template.html](templates/Template.html)
|
|
82
|
+
- [View.php](templates/View.php)
|
|
83
|
+
- [Thumbnail.svg](templates/Thumbnail.svg)
|
|
@@ -0,0 +1,50 @@
|
|
|
1
|
+
<?php
|
|
2
|
+
|
|
3
|
+
namespace {{namespace_prefix}}\Controllers\Elements;
|
|
4
|
+
|
|
5
|
+
use polyxgo\PolyUtilities\Core\Helper;
|
|
6
|
+
|
|
7
|
+
class Element{{ElementName}}Controller
|
|
8
|
+
{
|
|
9
|
+
public function register_hooks()
|
|
10
|
+
{
|
|
11
|
+
// 1. Frontend Shortcode
|
|
12
|
+
add_shortcode('{{shortcode_prefix}}{{element_slug}}', [$this, 'render_element']);
|
|
13
|
+
|
|
14
|
+
// 2. UX Builder Integration (Flatsome only)
|
|
15
|
+
if (Helper::is_flatsome_theme_activated()) {
|
|
16
|
+
add_action('ux_builder_setup', [$this, 'register_ux_builder_element']);
|
|
17
|
+
}
|
|
18
|
+
}
|
|
19
|
+
|
|
20
|
+
public function register_ux_builder_element()
|
|
21
|
+
{
|
|
22
|
+
if (function_exists('add_ux_builder_shortcode')) {
|
|
23
|
+
// Include the UI registration file
|
|
24
|
+
require_once Helper::get_poly_ux_builder_shortcode('{{element_slug}}');
|
|
25
|
+
}
|
|
26
|
+
}
|
|
27
|
+
|
|
28
|
+
public function render_element($atts, $content = null)
|
|
29
|
+
{
|
|
30
|
+
$atts = shortcode_atts([
|
|
31
|
+
'_id' => '{{element_slug}}-' . rand(),
|
|
32
|
+
'title' => '',
|
|
33
|
+
'class' => '',
|
|
34
|
+
'visibility' => '',
|
|
35
|
+
// Add more attributes here
|
|
36
|
+
], $atts, '{{shortcode_prefix}}{{element_slug}}');
|
|
37
|
+
|
|
38
|
+
ob_start();
|
|
39
|
+
$view_path = plugin_dir_path({{plugin_dir_const}}) . '/inc/Views/elements/{{element_slug}}.php';
|
|
40
|
+
|
|
41
|
+
if (file_exists($view_path)) {
|
|
42
|
+
include $view_path;
|
|
43
|
+
} else {
|
|
44
|
+
// Fallback inline rendering
|
|
45
|
+
echo '<div class="' . esc_attr($atts['class']) . '">' . esc_html($atts['title']) . '</div>';
|
|
46
|
+
}
|
|
47
|
+
|
|
48
|
+
return ob_get_clean();
|
|
49
|
+
}
|
|
50
|
+
}
|
|
@@ -0,0 +1,23 @@
|
|
|
1
|
+
<?php
|
|
2
|
+
|
|
3
|
+
use polyxgo\PolyUtilities\Core\Helper;
|
|
4
|
+
use polyxgo\PolyUtilities\Core\Options;
|
|
5
|
+
|
|
6
|
+
add_ux_builder_shortcode('{{shortcode_prefix}}{{element_slug}}', array(
|
|
7
|
+
'name' => __('{{ElementName}}', 'polyutilities'),
|
|
8
|
+
'category' => __('PolyUtilities', 'polyutilities'),
|
|
9
|
+
'template' => Helper::get_poly_ux_builder_template('{{element_slug}}'),
|
|
10
|
+
'thumbnail' => Helper::get_poly_ux_builder_thumbnail('{{element_slug}}'),
|
|
11
|
+
'info' => '{{ title }}',
|
|
12
|
+
'priority' => 10,
|
|
13
|
+
'options' => array(
|
|
14
|
+
'title' => array(
|
|
15
|
+
'type' => 'textfield',
|
|
16
|
+
'heading' => __('Title', 'polyutilities'),
|
|
17
|
+
'default' => 'Element Title',
|
|
18
|
+
'auto_focus' => true,
|
|
19
|
+
),
|
|
20
|
+
// Add more options here (colorpicker, slider, select, etc.)
|
|
21
|
+
'advanced_options' => require Helper::get_poly_ux_builder_element('commons', 'advanced'),
|
|
22
|
+
),
|
|
23
|
+
));
|
|
@@ -0,0 +1,20 @@
|
|
|
1
|
+
<span id="{{:: shortcode.$id }}">
|
|
2
|
+
<div class="{{class_prefix}}{{element_slug}} {{ shortcode.options.class }} {{ shortcode.options.visibility }}"
|
|
3
|
+
ng-style="{
|
|
4
|
+
'color': shortcode.options.textColor,
|
|
5
|
+
'background-color': shortcode.options.bgColor,
|
|
6
|
+
'font-family': shortcode.options.pxgClockFont
|
|
7
|
+
}">
|
|
8
|
+
<span ng-bind="shortcode.options.title"></span>
|
|
9
|
+
</div>
|
|
10
|
+
|
|
11
|
+
<style scope="scope">
|
|
12
|
+
#{{::shortcode.$id }} .{{class_prefix}}{{element_slug}} {
|
|
13
|
+
/* Add scoped styles here */
|
|
14
|
+
}
|
|
15
|
+
|
|
16
|
+
#{{::shortcode.$id }} .{{class_prefix}}{{element_slug}}:hover {
|
|
17
|
+
/* Hover effects */
|
|
18
|
+
}
|
|
19
|
+
</style>
|
|
20
|
+
</span>
|
|
@@ -0,0 +1,8 @@
|
|
|
1
|
+
<?xml version="1.0" encoding="UTF-8"?>
|
|
2
|
+
<svg width="100px" height="68px" viewBox="0 0 100 68" version="1.1" xmlns="http://www.w3.org/2000/svg">
|
|
3
|
+
<rect x="0" y="0" width="100" height="68" fill="#FFFFFF"></rect>
|
|
4
|
+
<!-- Placeholder: Replace with actual icon geometry -->
|
|
5
|
+
<rect x="25" y="20" width="50" height="28" rx="2" fill="#FCA5A5" stroke="#F87171" stroke-width="2"></rect>
|
|
6
|
+
<rect x="30" y="28" width="40" height="4" rx="1" fill="#FFFFFF"></rect>
|
|
7
|
+
<rect x="30" y="36" width="25" height="4" rx="1" fill="#FFFFFF"></rect>
|
|
8
|
+
</svg>
|
|
@@ -0,0 +1,21 @@
|
|
|
1
|
+
<?php
|
|
2
|
+
/**
|
|
3
|
+
* Frontend view for {{ElementName}}
|
|
4
|
+
*
|
|
5
|
+
* @var array $atts
|
|
6
|
+
*/
|
|
7
|
+
|
|
8
|
+
$classes = array('{{class_prefix}}{{element_slug}}');
|
|
9
|
+
if (!empty($atts['class'])) $classes[] = $atts['class'];
|
|
10
|
+
if (!empty($atts['visibility'])) $classes[] = $atts['visibility'];
|
|
11
|
+
|
|
12
|
+
$inline_style = '';
|
|
13
|
+
if (!empty($atts['textColor'])) $inline_style .= 'color: ' . esc_attr($atts['textColor']) . ';';
|
|
14
|
+
if (!empty($atts['bgColor'])) $inline_style .= 'background-color: ' . esc_attr($atts['bgColor']) . ';';
|
|
15
|
+
|
|
16
|
+
?>
|
|
17
|
+
<div id="<?php echo esc_attr($atts['_id']); ?>"
|
|
18
|
+
class="<?php echo esc_attr(implode(' ', $classes)); ?>"
|
|
19
|
+
style="<?php echo esc_attr($inline_style); ?>">
|
|
20
|
+
<?php echo esc_html($atts['title']); ?>
|
|
21
|
+
</div>
|