├── export
├── content
│ ├── assets
│ │ ├── .gitkeep
│ │ └── assets.yaml
│ ├── globals
│ │ ├── .gitkeep
│ │ ├── scripts.yaml
│ │ ├── strings.yaml
│ │ ├── browser_appearance.yaml
│ │ ├── newsletter.yaml
│ │ ├── banner.yaml
│ │ ├── social_media.yaml
│ │ └── theme.yaml
│ ├── trees
│ │ ├── .gitkeep
│ │ ├── collections
│ │ │ ├── team.yaml
│ │ │ └── pages.yaml
│ │ └── navigation
│ │ │ ├── bottom_footer.yaml
│ │ │ └── footer.yaml
│ ├── collections
│ │ ├── .gitkeep
│ │ ├── pages.yaml
│ │ ├── posts.yaml
│ │ ├── testimonials.yaml
│ │ ├── team.yaml
│ │ ├── pages
│ │ │ ├── search.md
│ │ │ ├── blog.md
│ │ │ └── results.md
│ │ ├── testimonials
│ │ │ ├── ian-dooley.md
│ │ │ ├── albert-dera.md
│ │ │ ├── michele-dam.md
│ │ │ ├── evie-maralyn.md
│ │ │ ├── ayo-ogunseinde.md
│ │ │ ├── brook-cagle.md
│ │ │ ├── jess-nackos.md
│ │ │ ├── alexander-hipp.md
│ │ │ ├── jane-scott.md
│ │ │ ├── alexandru-zdrobau.md
│ │ │ ├── clarisse-meyer.md
│ │ │ ├── joseph-gonzalez.md
│ │ │ ├── prince-akachi.md
│ │ │ ├── anna-balobanov.md
│ │ │ ├── monica-campbell.md
│ │ │ ├── christian-buehner.md
│ │ │ ├── jurica-koletic.md
│ │ │ └── imansyah-putera.md
│ │ ├── team
│ │ │ ├── albert-dera.md
│ │ │ ├── ayo-ogunseinde.md
│ │ │ ├── ian-dooley.md
│ │ │ ├── anna-balobanov.md
│ │ │ ├── alexander-hipp.md
│ │ │ └── joseph-gonzalez.md
│ │ └── posts
│ │ │ ├── 2024-05-22.data-driven-decisions-using-insights-to-guide-your-next-move.md
│ │ │ ├── 2024-08-14.finding-your-niche-standing-out-in-a-saturated-market.md
│ │ │ ├── 2024-03-06.the-power-of-authenticity-how-honesty-builds-brand-loyalty.md
│ │ │ ├── 2024-09-12.leading-through-uncertainty-building-resilience-in-your-team.md
│ │ │ ├── 2024-04-02.storytelling-for-impact-crafting-narratives-that-resonate.md
│ │ │ ├── 2024-06-21.engaging-audiences-tips-for-building-genuine-social-communities.md
│ │ │ ├── 2022-08-02.beyond-acquisition-strategies-to-keep-customers-coming-back.md
│ │ │ ├── 2024-07-10.scaling-sustainably-balancing-ambition-with-operational-readiness.md
│ │ │ └── 2024-01-10.title-beyond-the-funnel-creating-a-customer-journey-map-that-converts.md
│ ├── navigation
│ │ ├── .gitkeep
│ │ ├── bottom_footer.yaml
│ │ ├── footer.yaml
│ │ └── header.yaml
│ ├── taxonomies
│ │ ├── .gitkeep
│ │ ├── categories.yaml
│ │ └── categories
│ │ │ ├── branding.yaml
│ │ │ ├── business.yaml
│ │ │ ├── leadership.yaml
│ │ │ ├── marketing.yaml
│ │ │ └── research.yaml
│ └── seo.yaml
├── public
│ ├── assets
│ │ ├── .gitkeep
│ │ ├── avatars
│ │ │ ├── .gitkeep
│ │ │ ├── ben-scott-twb7isl9cny-unsplash.jpg
│ │ │ ├── aiony-haust-jmati5q_ygy-unsplash.jpg
│ │ │ ├── albert-dera-ilip77sbmoe-unsplash.jpg
│ │ │ ├── ian-dooley-d1upkifd04a-unsplash.jpg
│ │ │ ├── jake-nackos-if9tk5uy-ki-unsplash.jpg
│ │ │ ├── michael-dam-mez3pofgs_k-unsplash.jpg
│ │ │ ├── alexander-hipp-ieebwgy_6la-unsplash.jpg
│ │ │ ├── ayo-ogunseinde-sibvworyqs0-unsplash.jpg
│ │ │ ├── brooke-cagle-w7pk4ffrsy0-unsplash.jpg
│ │ │ ├── clarisse-meyer-x9cxi2eqlbw-unsplash.jpg
│ │ │ ├── jurica-koletic-7yvzyzeitc8-unsplash.jpg
│ │ │ ├── prince-akachi-4yv84vgqkrm-unsplash.jpg
│ │ │ ├── joseph-gonzalez-ifgrcqhznqg-unsplash.jpg
│ │ │ ├── kirill-balobanov-ef3aokt6hhg-unsplash.jpg
│ │ │ ├── alexandru-zdrobau-bgz8vo3pk8k-unsplash.jpg
│ │ │ ├── christian-buehner-ditylc26zvi-unsplash.jpg
│ │ │ ├── christopher-campbell-rdeovte7vos-unsplash.jpg
│ │ │ ├── imansyah-muhamad-putera-n4kewlkfozw-unsplash.jpg
│ │ │ └── .meta
│ │ │ │ ├── ben-scott-twb7isl9cny-unsplash.jpg.yaml
│ │ │ │ ├── ian-dooley-d1upkifd04a-unsplash.jpg.yaml
│ │ │ │ ├── aiony-haust-jmati5q_ygy-unsplash.jpg.yaml
│ │ │ │ ├── albert-dera-ilip77sbmoe-unsplash.jpg.yaml
│ │ │ │ ├── alexander-hipp-ieebwgy_6la-unsplash.jpg.yaml
│ │ │ │ ├── brooke-cagle-w7pk4ffrsy0-unsplash.jpg.yaml
│ │ │ │ ├── jake-nackos-if9tk5uy-ki-unsplash.jpg.yaml
│ │ │ │ ├── joseph-gonzalez-ifgrcqhznqg-unsplash.jpg.yaml
│ │ │ │ ├── michael-dam-mez3pofgs_k-unsplash.jpg.yaml
│ │ │ │ ├── prince-akachi-4yv84vgqkrm-unsplash.jpg.yaml
│ │ │ │ ├── alexandru-zdrobau-bgz8vo3pk8k-unsplash.jpg.yaml
│ │ │ │ ├── ayo-ogunseinde-sibvworyqs0-unsplash.jpg.yaml
│ │ │ │ ├── christian-buehner-ditylc26zvi-unsplash.jpg.yaml
│ │ │ │ ├── clarisse-meyer-x9cxi2eqlbw-unsplash.jpg.yaml
│ │ │ │ ├── jurica-koletic-7yvzyzeitc8-unsplash.jpg.yaml
│ │ │ │ ├── kirill-balobanov-ef3aokt6hhg-unsplash.jpg.yaml
│ │ │ │ ├── christopher-campbell-rdeovte7vos-unsplash.jpg.yaml
│ │ │ │ └── imansyah-muhamad-putera-n4kewlkfozw-unsplash.jpg.yaml
│ │ ├── images
│ │ │ ├── .gitkeep
│ │ │ ├── bedrock-screenshot-social.png
│ │ │ ├── blake-wisz--jjg90oanwi-unsplash.jpg
│ │ │ ├── carlos-muza-hpjsku2uysu-unsplash.jpg
│ │ │ ├── jed-villejo-becc0nyip2g-unsplash.jpg
│ │ │ ├── krakenimages-y5bvrlccx8k-unsplash.jpg
│ │ │ ├── matt-howard-a4il43vunly-unsplash.jpg
│ │ │ ├── dmitry-novikov-49gi04retc4-unsplash.jpg
│ │ │ ├── jeremy-bishop-vgjgvtsfys4-unsplash.jpg
│ │ │ ├── melanie-deziel-84g0uqydlt0-unsplash.jpg
│ │ │ ├── campaign-creators-pypeceajezy-unsplash.jpg
│ │ │ ├── jacopo-maiarelli--goux23dnks-unsplash.jpg
│ │ │ └── .meta
│ │ │ │ ├── blake-wisz--jjg90oanwi-unsplash.jpg.yaml
│ │ │ │ ├── carlos-muza-hpjsku2uysu-unsplash.jpg.yaml
│ │ │ │ ├── jed-villejo-becc0nyip2g-unsplash.jpg.yaml
│ │ │ │ ├── jeremy-bishop-vgjgvtsfys4-unsplash.jpg.yaml
│ │ │ │ ├── krakenimages-y5bvrlccx8k-unsplash.jpg.yaml
│ │ │ │ ├── matt-howard-a4il43vunly-unsplash.jpg.yaml
│ │ │ │ ├── melanie-deziel-84g0uqydlt0-unsplash.jpg.yaml
│ │ │ │ ├── campaign-creators-pypeceajezy-unsplash.jpg.yaml
│ │ │ │ ├── dmitry-novikov-49gi04retc4-unsplash.jpg.yaml
│ │ │ │ ├── jacopo-maiarelli--goux23dnks-unsplash.jpg.yaml
│ │ │ │ └── bedrock-screenshot-social.png.yaml
│ │ └── logos
│ │ │ └── .meta
│ │ │ ├── logo-brand.svg.yaml
│ │ │ ├── logo-brand-fixed.svg.yaml
│ │ │ ├── logoipsum-logo-1.svg.yaml
│ │ │ ├── logoipsum-logo-2.svg.yaml
│ │ │ ├── logoipsum-logo-3.svg.yaml
│ │ │ ├── logoipsum-logo-4.svg.yaml
│ │ │ └── logoipsum-logo-5.svg.yaml
│ └── favicon
│ │ ├── favicon.ico
│ │ ├── favicon-96x96.png
│ │ ├── apple-touch-icon.png
│ │ ├── web-app-manifest-192x192.png
│ │ ├── web-app-manifest-512x512.png
│ │ ├── favicon.svg
│ │ └── site.webmanifest
├── resources
│ ├── views
│ │ ├── .gitkeep
│ │ ├── sets
│ │ │ ├── text.blade.php
│ │ │ ├── buttons.blade.php
│ │ │ ├── picture.blade.php
│ │ │ ├── faqs.blade.php
│ │ │ ├── pull-quote.blade.php
│ │ │ └── video.blade.php
│ │ ├── components
│ │ │ ├── ui
│ │ │ │ ├── form
│ │ │ │ │ ├── integer.blade.php
│ │ │ │ │ ├── dictionary.blade.php
│ │ │ │ │ ├── submit.blade.php
│ │ │ │ │ ├── honeypot.blade.php
│ │ │ │ │ ├── files.blade.php
│ │ │ │ │ ├── textarea.blade.php
│ │ │ │ │ ├── radio.blade.php
│ │ │ │ │ ├── select.blade.php
│ │ │ │ │ ├── checkboxes.blade.php
│ │ │ │ │ └── text.blade.php
│ │ │ │ ├── pagination
│ │ │ │ │ ├── item-slider.blade.php
│ │ │ │ │ ├── item.blade.php
│ │ │ │ │ └── item-current.blade.php
│ │ │ │ ├── input-instructions.blade.php
│ │ │ │ ├── label.blade.php
│ │ │ │ ├── tabs
│ │ │ │ │ ├── tabs.blade.php
│ │ │ │ │ ├── panel.blade.php
│ │ │ │ │ └── trigger.blade.php
│ │ │ │ ├── carousel
│ │ │ │ │ ├── slide.blade.php
│ │ │ │ │ ├── previous.blade.php
│ │ │ │ │ └── next.blade.php
│ │ │ │ ├── avatar.blade.php
│ │ │ │ ├── badge.blade.php
│ │ │ │ ├── dropdown
│ │ │ │ │ └── item.blade.php
│ │ │ │ ├── input-error.blade.php
│ │ │ │ ├── collapsible.blade.php
│ │ │ │ ├── banner.blade.php
│ │ │ │ └── alert.blade.php
│ │ │ ├── faqs.blade.php
│ │ │ ├── logo.blade.php
│ │ │ ├── section-header.blade.php
│ │ │ ├── entry-meta.blade.php
│ │ │ ├── cp-toolbar.blade.php
│ │ │ ├── entry-posts.blade.php
│ │ │ ├── faqs-item.blade.php
│ │ │ ├── buttons.blade.php
│ │ │ ├── form-field.blade.php
│ │ │ ├── search-form.blade.php
│ │ │ ├── breadcrumbs.blade.php
│ │ │ └── entry-testimonials.blade.php
│ │ ├── partials
│ │ │ ├── skip-to-content.blade.php
│ │ │ ├── prose-class.blade.php
│ │ │ ├── nav-social.blade.php
│ │ │ ├── nav-bottom-footer.blade.php
│ │ │ ├── related-posts.blade.php
│ │ │ ├── nav-footer.blade.php
│ │ │ ├── fallback-description.blade.php
│ │ │ ├── nav-header-item.blade.php
│ │ │ ├── browser-appearance.blade.php
│ │ │ └── footer.blade.php
│ │ ├── default.blade.php
│ │ ├── blocks
│ │ │ ├── search-form.blade.php
│ │ │ ├── article.blade.php
│ │ │ ├── contact.blade.php
│ │ │ ├── faqs.blade.php
│ │ │ ├── blog-excerpt.blade.php
│ │ │ ├── blog-paginated.blade.php
│ │ │ ├── team.blade.php
│ │ │ └── search-results.blade.php
│ │ ├── errors
│ │ │ └── 404.blade.php
│ │ ├── posts
│ │ │ └── show.blade.php
│ │ ├── sitemap
│ │ │ └── sitemap.antlers.xml
│ │ └── layout.blade.php
│ ├── blueprints
│ │ ├── .gitkeep
│ │ ├── assets
│ │ │ ├── social_images.yaml
│ │ │ └── assets.yaml
│ │ ├── globals
│ │ │ ├── strings.yaml
│ │ │ ├── scripts.yaml
│ │ │ ├── newsletter.yaml
│ │ │ ├── banner.yaml
│ │ │ └── theme.yaml
│ │ ├── user.yaml
│ │ ├── taxonomies
│ │ │ └── categories
│ │ │ │ └── category.yaml
│ │ ├── navigation
│ │ │ └── header.yaml
│ │ └── collections
│ │ │ ├── testimonials
│ │ │ └── testimonial.yaml
│ │ │ ├── team
│ │ │ └── team.yaml
│ │ │ └── pages
│ │ │ └── page.yaml
│ ├── fieldsets
│ │ ├── .gitkeep
│ │ ├── style_guide.yaml
│ │ ├── picture.yaml
│ │ ├── search_form.yaml
│ │ ├── newsletter.yaml
│ │ ├── pull_quote.yaml
│ │ ├── video.yaml
│ │ ├── buttons.yaml
│ │ ├── seo_json-ld_schema.yaml
│ │ ├── hero_demo.yaml
│ │ ├── blog_paginated.yaml
│ │ ├── search_results.yaml
│ │ ├── seo_basic.yaml
│ │ ├── contact.yaml
│ │ ├── table.yaml
│ │ ├── blog_excerpt.yaml
│ │ ├── testimonials.yaml
│ │ ├── faqs_set.yaml
│ │ ├── seo_sitemap.yaml
│ │ ├── team.yaml
│ │ ├── faqs.yaml
│ │ ├── seo_open_graph.yaml
│ │ └── seo_advanced.yaml
│ ├── js
│ │ ├── components
│ │ │ ├── actions
│ │ │ │ └── .gitkeep
│ │ │ ├── fieldtypes
│ │ │ │ └── ExampleFieldtype.vue
│ │ │ ├── stepper.js
│ │ │ ├── newsletter.js
│ │ │ └── toaster.js
│ │ ├── lite-yt-embed.js
│ │ ├── embla.js
│ │ ├── cp.js
│ │ ├── site.js
│ │ └── lib
│ │ │ └── utils.js
│ ├── css
│ │ ├── cp.css
│ │ ├── lite-yt-embed.css
│ │ ├── utilities
│ │ │ ├── site-grid.css
│ │ │ ├── container.css
│ │ │ ├── fill-current-nested.css
│ │ │ └── br-hidden.css
│ │ ├── elements
│ │ │ ├── images.css
│ │ │ ├── typography.css
│ │ │ ├── page.css
│ │ │ ├── borders.css
│ │ │ └── links.css
│ │ ├── objects
│ │ │ └── layout.css
│ │ ├── components
│ │ │ ├── misc.css
│ │ │ ├── card.css
│ │ │ ├── scrollbar.css
│ │ │ ├── typography.css
│ │ │ ├── headings.css
│ │ │ ├── badge.css
│ │ │ ├── tooltip.css
│ │ │ ├── alert.css
│ │ │ └── button.css
│ │ ├── fonts.css
│ │ ├── typography.css
│ │ └── site.css
│ ├── forms
│ │ └── contact.yaml
│ ├── fonts
│ │ └── Mona-Sans.woff2
│ └── svg
│ │ ├── heroicons-outline
│ │ ├── minus.svg
│ │ ├── plus.svg
│ │ ├── chevron-left.svg
│ │ ├── chevron-right.svg
│ │ ├── x-mark.svg
│ │ ├── bars-3.svg
│ │ ├── cursor-arrow-rays.svg
│ │ ├── square-3-stack-3d.svg
│ │ ├── adjustments-horizontal.svg
│ │ ├── swatch.svg
│ │ ├── square-plus.svg
│ │ └── cog-6-tooth.svg
│ │ └── social
│ │ ├── email.svg
│ │ ├── x.svg
│ │ ├── facebook.svg
│ │ ├── linkedin.svg
│ │ ├── youtube.svg
│ │ ├── github.svg
│ │ └── instagram.svg
├── app
│ ├── Console
│ │ └── Commands
│ │ │ └── Scaffold
│ │ │ └── stubs
│ │ │ ├── fieldset_set.yaml.stub
│ │ │ ├── set.blade.php.stub
│ │ │ ├── block.blade.php.stub
│ │ │ └── fieldset_block.yaml.stub
│ ├── Support
│ │ └── Yaml
│ │ │ ├── ArticleYaml.php
│ │ │ └── BlocksYaml.php
│ ├── Http
│ │ ├── Controllers
│ │ │ └── NewsletterController.php
│ │ └── Requests
│ │ │ └── NewsletterRequest.php
│ ├── View
│ │ └── Components
│ │ │ ├── CpToolbar.php
│ │ │ ├── Ui
│ │ │ └── Banner.php
│ │ │ ├── FormField.php
│ │ │ └── Faqs.php
│ └── Tags
│ │ └── YoutubeId.php
├── config
│ └── statamic
│ │ └── editions.php
├── .gitignore
├── routes
│ └── web.php
├── prettier.config.js
├── package.json
├── vite.config.js
└── .env.example
├── composer.json
├── StarterKitPostInstall.php
├── starter-kit.yaml
├── README.md
└── .github
└── ISSUE_TEMPLATE
└── bug_report.yaml
/export/content/assets/.gitkeep:
--------------------------------------------------------------------------------
1 |
--------------------------------------------------------------------------------
/export/content/globals/.gitkeep:
--------------------------------------------------------------------------------
1 |
--------------------------------------------------------------------------------
/export/content/trees/.gitkeep:
--------------------------------------------------------------------------------
1 |
--------------------------------------------------------------------------------
/export/public/assets/.gitkeep:
--------------------------------------------------------------------------------
1 |
--------------------------------------------------------------------------------
/export/resources/views/.gitkeep:
--------------------------------------------------------------------------------
1 |
--------------------------------------------------------------------------------
/export/content/collections/.gitkeep:
--------------------------------------------------------------------------------
1 |
--------------------------------------------------------------------------------
/export/content/navigation/.gitkeep:
--------------------------------------------------------------------------------
1 |
--------------------------------------------------------------------------------
/export/content/taxonomies/.gitkeep:
--------------------------------------------------------------------------------
1 |
--------------------------------------------------------------------------------
/export/public/assets/avatars/.gitkeep:
--------------------------------------------------------------------------------
1 |
--------------------------------------------------------------------------------
/export/public/assets/images/.gitkeep:
--------------------------------------------------------------------------------
1 |
--------------------------------------------------------------------------------
/export/resources/blueprints/.gitkeep:
--------------------------------------------------------------------------------
1 |
--------------------------------------------------------------------------------
/export/resources/fieldsets/.gitkeep:
--------------------------------------------------------------------------------
1 |
--------------------------------------------------------------------------------
/export/resources/js/components/actions/.gitkeep:
--------------------------------------------------------------------------------
1 |
--------------------------------------------------------------------------------
/export/content/globals/scripts.yaml:
--------------------------------------------------------------------------------
1 | title: Scripts
2 |
--------------------------------------------------------------------------------
/export/resources/css/cp.css:
--------------------------------------------------------------------------------
1 | /* This is all you. */
2 |
--------------------------------------------------------------------------------
/export/content/assets/assets.yaml:
--------------------------------------------------------------------------------
1 | title: Assets
2 | disk: assets
--------------------------------------------------------------------------------
/export/content/taxonomies/categories.yaml:
--------------------------------------------------------------------------------
1 | title: Categories
2 |
--------------------------------------------------------------------------------
/export/resources/views/sets/text.blade.php:
--------------------------------------------------------------------------------
1 | {!! $text !!}
2 |
--------------------------------------------------------------------------------
/export/content/navigation/bottom_footer.yaml:
--------------------------------------------------------------------------------
1 | title: 'Bottom footer'
2 |
--------------------------------------------------------------------------------
/export/resources/fieldsets/style_guide.yaml:
--------------------------------------------------------------------------------
1 | title: 'Styleguide'
2 | fields: [ ]
3 |
--------------------------------------------------------------------------------
/export/resources/forms/contact.yaml:
--------------------------------------------------------------------------------
1 | title: Contact
2 | honeypot: fax_number
3 |
--------------------------------------------------------------------------------
/export/resources/js/lite-yt-embed.js:
--------------------------------------------------------------------------------
1 | import 'lite-youtube-embed/src/lite-yt-embed.js'
2 |
--------------------------------------------------------------------------------
/export/resources/css/lite-yt-embed.css:
--------------------------------------------------------------------------------
1 | @import 'lite-youtube-embed/src/lite-yt-embed.css';
2 |
--------------------------------------------------------------------------------
/export/resources/views/sets/buttons.blade.php:
--------------------------------------------------------------------------------
1 |
2 |
--------------------------------------------------------------------------------
/export/content/globals/strings.yaml:
--------------------------------------------------------------------------------
1 | title: Strings
2 | data:
3 | related_posts: 'Related posts'
4 |
--------------------------------------------------------------------------------
/export/content/navigation/footer.yaml:
--------------------------------------------------------------------------------
1 | title: Footer
2 | collections:
3 | - pages
4 | max_depth: 2
5 |
--------------------------------------------------------------------------------
/export/content/navigation/header.yaml:
--------------------------------------------------------------------------------
1 | title: Header
2 | collections:
3 | - pages
4 | max_depth: 2
5 |
--------------------------------------------------------------------------------
/export/app/Console/Commands/Scaffold/stubs/fieldset_set.yaml.stub:
--------------------------------------------------------------------------------
1 | title: '{{ name }}'
2 | fields: [ ]
3 |
--------------------------------------------------------------------------------
/export/public/favicon/favicon.ico:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/jasonbaciulis/bedrock/HEAD/export/public/favicon/favicon.ico
--------------------------------------------------------------------------------
/export/resources/blueprints/assets/social_images.yaml:
--------------------------------------------------------------------------------
1 | sections:
2 | main:
3 | display: Main
4 | fields: { }
5 |
--------------------------------------------------------------------------------
/export/resources/js/embla.js:
--------------------------------------------------------------------------------
1 | import EmblaCarousel from 'embla-carousel'
2 |
3 | window.EmblaCarousel = EmblaCarousel
4 |
--------------------------------------------------------------------------------
/export/resources/css/utilities/site-grid.css:
--------------------------------------------------------------------------------
1 | @utility site-grid {
2 | @apply grid gap-6 sm:grid-cols-12 lg:gap-8;
3 | }
4 |
--------------------------------------------------------------------------------
/export/resources/css/utilities/container.css:
--------------------------------------------------------------------------------
1 | @utility container {
2 | @apply mx-auto w-full max-w-screen-xl px-6 md:px-8;
3 | }
4 |
--------------------------------------------------------------------------------
/export/resources/fonts/Mona-Sans.woff2:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/jasonbaciulis/bedrock/HEAD/export/resources/fonts/Mona-Sans.woff2
--------------------------------------------------------------------------------
/export/app/Console/Commands/Scaffold/stubs/set.blade.php.stub:
--------------------------------------------------------------------------------
1 |
2 |
🔧
{{ name }}
3 |
4 |
--------------------------------------------------------------------------------
/export/public/favicon/favicon-96x96.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/jasonbaciulis/bedrock/HEAD/export/public/favicon/favicon-96x96.png
--------------------------------------------------------------------------------
/export/public/favicon/apple-touch-icon.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/jasonbaciulis/bedrock/HEAD/export/public/favicon/apple-touch-icon.png
--------------------------------------------------------------------------------
/export/resources/css/utilities/fill-current-nested.css:
--------------------------------------------------------------------------------
1 | @utility fill-current-nested {
2 | & * {
3 | @apply fill-current;
4 | }
5 | }
6 |
--------------------------------------------------------------------------------
/export/public/favicon/web-app-manifest-192x192.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/jasonbaciulis/bedrock/HEAD/export/public/favicon/web-app-manifest-192x192.png
--------------------------------------------------------------------------------
/export/public/favicon/web-app-manifest-512x512.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/jasonbaciulis/bedrock/HEAD/export/public/favicon/web-app-manifest-512x512.png
--------------------------------------------------------------------------------
/export/resources/views/components/ui/form/integer.blade.php:
--------------------------------------------------------------------------------
1 | @props(['model'])
2 |
3 | @include('components.ui.form.text', ['model' => $model, ...$attributes])
4 |
--------------------------------------------------------------------------------
/export/content/trees/collections/team.yaml:
--------------------------------------------------------------------------------
1 | tree:
2 | -
3 | entry: bcab7536-8e22-44c7-b727-30252f40786c
4 | -
5 | entry: df7cd462-3b98-4e40-b109-e0948d8a90c7
6 |
--------------------------------------------------------------------------------
/export/public/assets/images/bedrock-screenshot-social.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/jasonbaciulis/bedrock/HEAD/export/public/assets/images/bedrock-screenshot-social.png
--------------------------------------------------------------------------------
/export/resources/views/components/ui/form/dictionary.blade.php:
--------------------------------------------------------------------------------
1 | @props(['model'])
2 |
3 | @include('components.ui.form.combobox', ['model' => $model, ...$attributes])
4 |
--------------------------------------------------------------------------------
/export/content/taxonomies/categories/branding.yaml:
--------------------------------------------------------------------------------
1 | title: Branding
2 | updated_by: 6d26d0a8-ff9c-4c3e-a25e-7e036508908c
3 | updated_at: 1734444221
4 | blueprint: category
5 |
--------------------------------------------------------------------------------
/export/content/taxonomies/categories/business.yaml:
--------------------------------------------------------------------------------
1 | title: Business
2 | updated_by: 6d26d0a8-ff9c-4c3e-a25e-7e036508908c
3 | updated_at: 1734444156
4 | blueprint: category
5 |
--------------------------------------------------------------------------------
/export/content/taxonomies/categories/leadership.yaml:
--------------------------------------------------------------------------------
1 | title: Leadership
2 | updated_by: 6d26d0a8-ff9c-4c3e-a25e-7e036508908c
3 | updated_at: 1734444636
4 | blueprint: category
5 |
--------------------------------------------------------------------------------
/export/content/taxonomies/categories/marketing.yaml:
--------------------------------------------------------------------------------
1 | title: Marketing
2 | updated_by: 6d26d0a8-ff9c-4c3e-a25e-7e036508908c
3 | updated_at: 1734438131
4 | blueprint: category
5 |
--------------------------------------------------------------------------------
/export/content/taxonomies/categories/research.yaml:
--------------------------------------------------------------------------------
1 | title: Research
2 | updated_by: 6d26d0a8-ff9c-4c3e-a25e-7e036508908c
3 | updated_at: 1734444376
4 | blueprint: category
5 |
--------------------------------------------------------------------------------
/export/resources/css/elements/images.css:
--------------------------------------------------------------------------------
1 | @layer components {
2 | img {
3 | @apply italic;
4 | }
5 |
6 | svg {
7 | @apply max-h-full;
8 | }
9 | }
10 |
--------------------------------------------------------------------------------
/export/public/assets/avatars/ben-scott-twb7isl9cny-unsplash.jpg:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/jasonbaciulis/bedrock/HEAD/export/public/assets/avatars/ben-scott-twb7isl9cny-unsplash.jpg
--------------------------------------------------------------------------------
/export/public/assets/images/blake-wisz--jjg90oanwi-unsplash.jpg:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/jasonbaciulis/bedrock/HEAD/export/public/assets/images/blake-wisz--jjg90oanwi-unsplash.jpg
--------------------------------------------------------------------------------
/export/resources/css/elements/typography.css:
--------------------------------------------------------------------------------
1 | @layer components {
2 | q {
3 | quotes: '“ ”';
4 | }
5 |
6 | strong {
7 | @apply font-bold;
8 | }
9 | }
10 |
--------------------------------------------------------------------------------
/export/config/statamic/editions.php:
--------------------------------------------------------------------------------
1 | env('STATAMIC_PRO_ENABLED', true),
5 |
6 | 'addons' => [
7 | //
8 | ],
9 | ];
10 |
--------------------------------------------------------------------------------
/export/public/assets/avatars/aiony-haust-jmati5q_ygy-unsplash.jpg:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/jasonbaciulis/bedrock/HEAD/export/public/assets/avatars/aiony-haust-jmati5q_ygy-unsplash.jpg
--------------------------------------------------------------------------------
/export/public/assets/avatars/albert-dera-ilip77sbmoe-unsplash.jpg:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/jasonbaciulis/bedrock/HEAD/export/public/assets/avatars/albert-dera-ilip77sbmoe-unsplash.jpg
--------------------------------------------------------------------------------
/export/public/assets/avatars/ian-dooley-d1upkifd04a-unsplash.jpg:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/jasonbaciulis/bedrock/HEAD/export/public/assets/avatars/ian-dooley-d1upkifd04a-unsplash.jpg
--------------------------------------------------------------------------------
/export/public/assets/avatars/jake-nackos-if9tk5uy-ki-unsplash.jpg:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/jasonbaciulis/bedrock/HEAD/export/public/assets/avatars/jake-nackos-if9tk5uy-ki-unsplash.jpg
--------------------------------------------------------------------------------
/export/public/assets/avatars/michael-dam-mez3pofgs_k-unsplash.jpg:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/jasonbaciulis/bedrock/HEAD/export/public/assets/avatars/michael-dam-mez3pofgs_k-unsplash.jpg
--------------------------------------------------------------------------------
/export/public/assets/images/carlos-muza-hpjsku2uysu-unsplash.jpg:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/jasonbaciulis/bedrock/HEAD/export/public/assets/images/carlos-muza-hpjsku2uysu-unsplash.jpg
--------------------------------------------------------------------------------
/export/public/assets/images/jed-villejo-becc0nyip2g-unsplash.jpg:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/jasonbaciulis/bedrock/HEAD/export/public/assets/images/jed-villejo-becc0nyip2g-unsplash.jpg
--------------------------------------------------------------------------------
/export/public/assets/images/krakenimages-y5bvrlccx8k-unsplash.jpg:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/jasonbaciulis/bedrock/HEAD/export/public/assets/images/krakenimages-y5bvrlccx8k-unsplash.jpg
--------------------------------------------------------------------------------
/export/public/assets/images/matt-howard-a4il43vunly-unsplash.jpg:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/jasonbaciulis/bedrock/HEAD/export/public/assets/images/matt-howard-a4il43vunly-unsplash.jpg
--------------------------------------------------------------------------------
/export/resources/css/elements/page.css:
--------------------------------------------------------------------------------
1 | @layer components {
2 | html {
3 | @apply scroll-smooth;
4 | }
5 |
6 | hr {
7 | @apply border-gray-200;
8 | }
9 | }
10 |
--------------------------------------------------------------------------------
/export/public/assets/avatars/alexander-hipp-ieebwgy_6la-unsplash.jpg:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/jasonbaciulis/bedrock/HEAD/export/public/assets/avatars/alexander-hipp-ieebwgy_6la-unsplash.jpg
--------------------------------------------------------------------------------
/export/public/assets/avatars/ayo-ogunseinde-sibvworyqs0-unsplash.jpg:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/jasonbaciulis/bedrock/HEAD/export/public/assets/avatars/ayo-ogunseinde-sibvworyqs0-unsplash.jpg
--------------------------------------------------------------------------------
/export/public/assets/avatars/brooke-cagle-w7pk4ffrsy0-unsplash.jpg:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/jasonbaciulis/bedrock/HEAD/export/public/assets/avatars/brooke-cagle-w7pk4ffrsy0-unsplash.jpg
--------------------------------------------------------------------------------
/export/public/assets/avatars/clarisse-meyer-x9cxi2eqlbw-unsplash.jpg:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/jasonbaciulis/bedrock/HEAD/export/public/assets/avatars/clarisse-meyer-x9cxi2eqlbw-unsplash.jpg
--------------------------------------------------------------------------------
/export/public/assets/avatars/jurica-koletic-7yvzyzeitc8-unsplash.jpg:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/jasonbaciulis/bedrock/HEAD/export/public/assets/avatars/jurica-koletic-7yvzyzeitc8-unsplash.jpg
--------------------------------------------------------------------------------
/export/public/assets/avatars/prince-akachi-4yv84vgqkrm-unsplash.jpg:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/jasonbaciulis/bedrock/HEAD/export/public/assets/avatars/prince-akachi-4yv84vgqkrm-unsplash.jpg
--------------------------------------------------------------------------------
/export/public/assets/images/dmitry-novikov-49gi04retc4-unsplash.jpg:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/jasonbaciulis/bedrock/HEAD/export/public/assets/images/dmitry-novikov-49gi04retc4-unsplash.jpg
--------------------------------------------------------------------------------
/export/public/assets/images/jeremy-bishop-vgjgvtsfys4-unsplash.jpg:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/jasonbaciulis/bedrock/HEAD/export/public/assets/images/jeremy-bishop-vgjgvtsfys4-unsplash.jpg
--------------------------------------------------------------------------------
/export/public/assets/images/melanie-deziel-84g0uqydlt0-unsplash.jpg:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/jasonbaciulis/bedrock/HEAD/export/public/assets/images/melanie-deziel-84g0uqydlt0-unsplash.jpg
--------------------------------------------------------------------------------
/export/public/assets/avatars/joseph-gonzalez-ifgrcqhznqg-unsplash.jpg:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/jasonbaciulis/bedrock/HEAD/export/public/assets/avatars/joseph-gonzalez-ifgrcqhznqg-unsplash.jpg
--------------------------------------------------------------------------------
/export/public/assets/avatars/kirill-balobanov-ef3aokt6hhg-unsplash.jpg:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/jasonbaciulis/bedrock/HEAD/export/public/assets/avatars/kirill-balobanov-ef3aokt6hhg-unsplash.jpg
--------------------------------------------------------------------------------
/export/public/assets/images/campaign-creators-pypeceajezy-unsplash.jpg:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/jasonbaciulis/bedrock/HEAD/export/public/assets/images/campaign-creators-pypeceajezy-unsplash.jpg
--------------------------------------------------------------------------------
/export/public/assets/images/jacopo-maiarelli--goux23dnks-unsplash.jpg:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/jasonbaciulis/bedrock/HEAD/export/public/assets/images/jacopo-maiarelli--goux23dnks-unsplash.jpg
--------------------------------------------------------------------------------
/export/public/assets/logos/.meta/logo-brand.svg.yaml:
--------------------------------------------------------------------------------
1 | data: { }
2 | size: 8380
3 | last_modified: 1729069243
4 | width: '237'
5 | height: '46'
6 | mime_type: image/svg+xml
7 | duration: null
8 |
--------------------------------------------------------------------------------
/export/content/collections/pages.yaml:
--------------------------------------------------------------------------------
1 | title: Pages
2 | template: default
3 | layout: layout
4 | revisions: false
5 | route: '{parent_uri}/{slug}'
6 | sort_dir: asc
7 | structure:
8 | root: true
9 |
--------------------------------------------------------------------------------
/export/public/assets/avatars/alexandru-zdrobau-bgz8vo3pk8k-unsplash.jpg:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/jasonbaciulis/bedrock/HEAD/export/public/assets/avatars/alexandru-zdrobau-bgz8vo3pk8k-unsplash.jpg
--------------------------------------------------------------------------------
/export/public/assets/avatars/christian-buehner-ditylc26zvi-unsplash.jpg:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/jasonbaciulis/bedrock/HEAD/export/public/assets/avatars/christian-buehner-ditylc26zvi-unsplash.jpg
--------------------------------------------------------------------------------
/export/public/assets/logos/.meta/logo-brand-fixed.svg.yaml:
--------------------------------------------------------------------------------
1 | data: { }
2 | size: 8392
3 | last_modified: 1729145856
4 | width: '237'
5 | height: '46'
6 | mime_type: image/svg+xml
7 | duration: null
8 |
--------------------------------------------------------------------------------
/export/public/assets/logos/.meta/logoipsum-logo-1.svg.yaml:
--------------------------------------------------------------------------------
1 | data: { }
2 | size: 2169
3 | last_modified: 1729069243
4 | width: '132'
5 | height: '35'
6 | mime_type: image/svg+xml
7 | duration: null
8 |
--------------------------------------------------------------------------------
/export/public/assets/logos/.meta/logoipsum-logo-2.svg.yaml:
--------------------------------------------------------------------------------
1 | data: { }
2 | size: 4484
3 | last_modified: 1729069243
4 | width: '132'
5 | height: '35'
6 | mime_type: image/svg+xml
7 | duration: null
8 |
--------------------------------------------------------------------------------
/export/public/assets/logos/.meta/logoipsum-logo-3.svg.yaml:
--------------------------------------------------------------------------------
1 | data: { }
2 | size: 2303
3 | last_modified: 1729069243
4 | width: '140'
5 | height: '30'
6 | mime_type: image/svg+xml
7 | duration: null
8 |
--------------------------------------------------------------------------------
/export/public/assets/logos/.meta/logoipsum-logo-4.svg.yaml:
--------------------------------------------------------------------------------
1 | data: { }
2 | size: 1883
3 | last_modified: 1729069243
4 | width: '100'
5 | height: '51'
6 | mime_type: image/svg+xml
7 | duration: null
8 |
--------------------------------------------------------------------------------
/export/public/assets/logos/.meta/logoipsum-logo-5.svg.yaml:
--------------------------------------------------------------------------------
1 | data: { }
2 | size: 570
3 | last_modified: 1729069243
4 | width: '119'
5 | height: '30'
6 | mime_type: image/svg+xml
7 | duration: null
8 |
--------------------------------------------------------------------------------
/export/public/assets/avatars/christopher-campbell-rdeovte7vos-unsplash.jpg:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/jasonbaciulis/bedrock/HEAD/export/public/assets/avatars/christopher-campbell-rdeovte7vos-unsplash.jpg
--------------------------------------------------------------------------------
/export/public/assets/avatars/imansyah-muhamad-putera-n4kewlkfozw-unsplash.jpg:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/jasonbaciulis/bedrock/HEAD/export/public/assets/avatars/imansyah-muhamad-putera-n4kewlkfozw-unsplash.jpg
--------------------------------------------------------------------------------
/export/resources/css/utilities/br-hidden.css:
--------------------------------------------------------------------------------
1 | @utility br-hidden {
2 | br {
3 | display: none;
4 | }
5 | }
6 |
7 | @utility br-visible {
8 | br {
9 | display: block;
10 | }
11 | }
12 |
--------------------------------------------------------------------------------
/export/public/assets/images/.meta/blake-wisz--jjg90oanwi-unsplash.jpg.yaml:
--------------------------------------------------------------------------------
1 | data: { }
2 | size: 203223
3 | last_modified: 1734445510
4 | width: 1920
5 | height: 1280
6 | mime_type: image/jpeg
7 | duration: null
8 |
--------------------------------------------------------------------------------
/export/public/assets/images/.meta/carlos-muza-hpjsku2uysu-unsplash.jpg.yaml:
--------------------------------------------------------------------------------
1 | data: { }
2 | size: 279196
3 | last_modified: 1734445548
4 | width: 1920
5 | height: 1368
6 | mime_type: image/jpeg
7 | duration: null
8 |
--------------------------------------------------------------------------------
/export/public/assets/images/.meta/jed-villejo-becc0nyip2g-unsplash.jpg.yaml:
--------------------------------------------------------------------------------
1 | data: { }
2 | size: 551057
3 | last_modified: 1734445615
4 | width: 1920
5 | height: 1517
6 | mime_type: image/jpeg
7 | duration: null
8 |
--------------------------------------------------------------------------------
/export/public/assets/images/.meta/jeremy-bishop-vgjgvtsfys4-unsplash.jpg.yaml:
--------------------------------------------------------------------------------
1 | data: { }
2 | size: 1408910
3 | last_modified: 1734445148
4 | width: 5184
5 | height: 3456
6 | mime_type: image/jpeg
7 | duration: null
8 |
--------------------------------------------------------------------------------
/export/public/assets/images/.meta/krakenimages-y5bvrlccx8k-unsplash.jpg.yaml:
--------------------------------------------------------------------------------
1 | data: { }
2 | size: 596111
3 | last_modified: 1734445721
4 | width: 1920
5 | height: 2880
6 | mime_type: image/jpeg
7 | duration: null
8 |
--------------------------------------------------------------------------------
/export/public/assets/images/.meta/matt-howard-a4il43vunly-unsplash.jpg.yaml:
--------------------------------------------------------------------------------
1 | data: { }
2 | size: 2091439
3 | last_modified: 1734444976
4 | width: 3992
5 | height: 2242
6 | mime_type: image/jpeg
7 | duration: null
8 |
--------------------------------------------------------------------------------
/export/public/assets/images/.meta/melanie-deziel-84g0uqydlt0-unsplash.jpg.yaml:
--------------------------------------------------------------------------------
1 | data: { }
2 | size: 384852
3 | last_modified: 1734445445
4 | width: 1920
5 | height: 1249
6 | mime_type: image/jpeg
7 | duration: null
8 |
--------------------------------------------------------------------------------
/export/resources/css/objects/layout.css:
--------------------------------------------------------------------------------
1 | @layer components {
2 | .p-section {
3 | @apply py-24 sm:py-32 lg:py-40;
4 | }
5 |
6 | .m-section {
7 | @apply my-24 sm:my-32 lg:my-40;
8 | }
9 | }
10 |
--------------------------------------------------------------------------------
/export/resources/svg/heroicons-outline/minus.svg:
--------------------------------------------------------------------------------
1 |
4 |
--------------------------------------------------------------------------------
/export/resources/views/components/ui/pagination/item-slider.blade.php:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
6 |
--------------------------------------------------------------------------------
/export/resources/views/components/ui/pagination/item.blade.php:
--------------------------------------------------------------------------------
1 | @props(['url', 'page'])
2 |
3 |
4 |
5 | {{ $page }}
6 |
7 |
8 |
--------------------------------------------------------------------------------
/export/public/assets/images/.meta/campaign-creators-pypeceajezy-unsplash.jpg.yaml:
--------------------------------------------------------------------------------
1 | data: { }
2 | size: 626871
3 | last_modified: 1734445095
4 | width: 3008
5 | height: 2177
6 | mime_type: image/jpeg
7 | duration: null
8 |
--------------------------------------------------------------------------------
/export/public/assets/images/.meta/dmitry-novikov-49gi04retc4-unsplash.jpg.yaml:
--------------------------------------------------------------------------------
1 | data: { }
2 | size: 1546606
3 | last_modified: 1734445296
4 | width: 3968
5 | height: 5952
6 | mime_type: image/jpeg
7 | duration: null
8 |
--------------------------------------------------------------------------------
/export/public/assets/images/.meta/jacopo-maiarelli--goux23dnks-unsplash.jpg.yaml:
--------------------------------------------------------------------------------
1 | data: { }
2 | size: 694004
3 | last_modified: 1734445667
4 | width: 1920
5 | height: 1280
6 | mime_type: image/jpeg
7 | duration: null
8 |
--------------------------------------------------------------------------------
/export/resources/blueprints/assets/assets.yaml:
--------------------------------------------------------------------------------
1 | title: Asset
2 | fields:
3 | -
4 | handle: alt
5 | field:
6 | display: 'Alt Text'
7 | type: text
8 | instructions: 'Description of the image'
9 |
--------------------------------------------------------------------------------
/export/public/assets/avatars/.meta/ben-scott-twb7isl9cny-unsplash.jpg.yaml:
--------------------------------------------------------------------------------
1 | data:
2 | focus: 49-33-1
3 | size: 95312
4 | last_modified: 1736254135
5 | width: 640
6 | height: 960
7 | mime_type: image/jpeg
8 | duration: null
9 |
--------------------------------------------------------------------------------
/export/public/assets/avatars/.meta/ian-dooley-d1upkifd04a-unsplash.jpg.yaml:
--------------------------------------------------------------------------------
1 | data:
2 | focus: 51-43-1
3 | size: 66028
4 | last_modified: 1736254143
5 | width: 640
6 | height: 960
7 | mime_type: image/jpeg
8 | duration: null
9 |
--------------------------------------------------------------------------------
/composer.json:
--------------------------------------------------------------------------------
1 | {
2 | "name": "jasonbaciulis/bedrock",
3 | "extra": {
4 | "statamic": {
5 | "name": "Bedrock",
6 | "description": "The Foundation for your Statamic projects"
7 | }
8 | }
9 | }
10 |
--------------------------------------------------------------------------------
/export/public/assets/avatars/.meta/aiony-haust-jmati5q_ygy-unsplash.jpg.yaml:
--------------------------------------------------------------------------------
1 | data:
2 | focus: 55-39-1.2
3 | size: 79632
4 | last_modified: 1736254253
5 | width: 640
6 | height: 960
7 | mime_type: image/jpeg
8 | duration: null
9 |
--------------------------------------------------------------------------------
/export/public/assets/avatars/.meta/albert-dera-ilip77sbmoe-unsplash.jpg.yaml:
--------------------------------------------------------------------------------
1 | data:
2 | focus: 49-31-1
3 | size: 148958
4 | last_modified: 1736253712
5 | width: 640
6 | height: 960
7 | mime_type: image/jpeg
8 | duration: null
9 |
--------------------------------------------------------------------------------
/export/public/assets/avatars/.meta/alexander-hipp-ieebwgy_6la-unsplash.jpg.yaml:
--------------------------------------------------------------------------------
1 | data:
2 | focus: 50-32-1
3 | size: 45533
4 | last_modified: 1736253713
5 | width: 640
6 | height: 640
7 | mime_type: image/jpeg
8 | duration: null
9 |
--------------------------------------------------------------------------------
/export/public/assets/avatars/.meta/brooke-cagle-w7pk4ffrsy0-unsplash.jpg.yaml:
--------------------------------------------------------------------------------
1 | data:
2 | focus: 44-43-1.4
3 | size: 107834
4 | last_modified: 1736254137
5 | width: 640
6 | height: 960
7 | mime_type: image/jpeg
8 | duration: null
9 |
--------------------------------------------------------------------------------
/export/public/assets/avatars/.meta/jake-nackos-if9tk5uy-ki-unsplash.jpg.yaml:
--------------------------------------------------------------------------------
1 | data:
2 | focus: 50-52-1.3
3 | size: 58392
4 | last_modified: 1736253722
5 | width: 640
6 | height: 805
7 | mime_type: image/jpeg
8 | duration: null
9 |
--------------------------------------------------------------------------------
/export/public/assets/avatars/.meta/joseph-gonzalez-ifgrcqhznqg-unsplash.jpg.yaml:
--------------------------------------------------------------------------------
1 | data:
2 | focus: 46-35-1
3 | size: 67908
4 | last_modified: 1736253723
5 | width: 640
6 | height: 960
7 | mime_type: image/jpeg
8 | duration: null
9 |
--------------------------------------------------------------------------------
/export/public/assets/avatars/.meta/michael-dam-mez3pofgs_k-unsplash.jpg.yaml:
--------------------------------------------------------------------------------
1 | data:
2 | focus: 49-32-1.4
3 | size: 60855
4 | last_modified: 1736253729
5 | width: 640
6 | height: 960
7 | mime_type: image/jpeg
8 | duration: null
9 |
--------------------------------------------------------------------------------
/export/public/assets/avatars/.meta/prince-akachi-4yv84vgqkrm-unsplash.jpg.yaml:
--------------------------------------------------------------------------------
1 | data:
2 | focus: 39-34-1.6
3 | size: 84245
4 | last_modified: 1736253734
5 | width: 640
6 | height: 960
7 | mime_type: image/jpeg
8 | duration: null
9 |
--------------------------------------------------------------------------------
/export/resources/css/elements/borders.css:
--------------------------------------------------------------------------------
1 | @layer base {
2 | *,
3 | ::after,
4 | ::before,
5 | ::backdrop,
6 | ::file-selector-button {
7 | border-color: var(--color-border, currentColor);
8 | }
9 | }
10 |
--------------------------------------------------------------------------------
/export/resources/svg/heroicons-outline/plus.svg:
--------------------------------------------------------------------------------
1 |
4 |
--------------------------------------------------------------------------------
/export/public/assets/avatars/.meta/alexandru-zdrobau-bgz8vo3pk8k-unsplash.jpg.yaml:
--------------------------------------------------------------------------------
1 | data:
2 | focus: 54-27-1.2
3 | size: 94391
4 | last_modified: 1736254134
5 | width: 640
6 | height: 963
7 | mime_type: image/jpeg
8 | duration: null
9 |
--------------------------------------------------------------------------------
/export/public/assets/avatars/.meta/ayo-ogunseinde-sibvworyqs0-unsplash.jpg.yaml:
--------------------------------------------------------------------------------
1 | data:
2 | focus: 55-37-1.2
3 | size: 65683
4 | last_modified: 1736253717
5 | width: 640
6 | height: 427
7 | mime_type: image/jpeg
8 | duration: null
9 |
--------------------------------------------------------------------------------
/export/public/assets/avatars/.meta/christian-buehner-ditylc26zvi-unsplash.jpg.yaml:
--------------------------------------------------------------------------------
1 | data:
2 | focus: 64-40-1.4
3 | size: 44012
4 | last_modified: 1736253718
5 | width: 640
6 | height: 427
7 | mime_type: image/jpeg
8 | duration: null
9 |
--------------------------------------------------------------------------------
/export/public/assets/avatars/.meta/clarisse-meyer-x9cxi2eqlbw-unsplash.jpg.yaml:
--------------------------------------------------------------------------------
1 | data:
2 | focus: 52-44-2.4
3 | size: 111128
4 | last_modified: 1736254142
5 | width: 640
6 | height: 960
7 | mime_type: image/jpeg
8 | duration: null
9 |
--------------------------------------------------------------------------------
/export/public/assets/avatars/.meta/jurica-koletic-7yvzyzeitc8-unsplash.jpg.yaml:
--------------------------------------------------------------------------------
1 | data:
2 | focus: 51-34-1.1
3 | size: 114431
4 | last_modified: 1736253728
5 | width: 640
6 | height: 960
7 | mime_type: image/jpeg
8 | duration: null
9 |
--------------------------------------------------------------------------------
/export/public/assets/avatars/.meta/kirill-balobanov-ef3aokt6hhg-unsplash.jpg.yaml:
--------------------------------------------------------------------------------
1 | data:
2 | focus: 44-33-1.3
3 | size: 20726
4 | last_modified: 1736254250
5 | width: 640
6 | height: 420
7 | mime_type: image/jpeg
8 | duration: null
9 |
--------------------------------------------------------------------------------
/export/public/assets/avatars/.meta/christopher-campbell-rdeovte7vos-unsplash.jpg.yaml:
--------------------------------------------------------------------------------
1 | data:
2 | focus: 52-41-1.2
3 | size: 33113
4 | last_modified: 1736253720
5 | width: 640
6 | height: 427
7 | mime_type: image/jpeg
8 | duration: null
9 |
--------------------------------------------------------------------------------
/export/public/assets/avatars/.meta/imansyah-muhamad-putera-n4kewlkfozw-unsplash.jpg.yaml:
--------------------------------------------------------------------------------
1 | data:
2 | focus: 62-53-1
3 | size: 42121
4 | last_modified: 1736254144
5 | width: 640
6 | height: 640
7 | mime_type: image/jpeg
8 | duration: null
9 |
--------------------------------------------------------------------------------
/export/resources/css/components/misc.css:
--------------------------------------------------------------------------------
1 | /* Used to hide alpine elements before being rendered. */
2 | [x-cloak] {
3 | @apply !hidden;
4 | }
5 |
6 | .no-scroll {
7 | @apply h-full overflow-hidden pr-[var(--scrollbar-width)];
8 | }
9 |
--------------------------------------------------------------------------------
/export/resources/svg/heroicons-outline/chevron-left.svg:
--------------------------------------------------------------------------------
1 |
4 |
--------------------------------------------------------------------------------
/export/resources/svg/heroicons-outline/chevron-right.svg:
--------------------------------------------------------------------------------
1 |
4 |
--------------------------------------------------------------------------------
/export/resources/views/components/ui/pagination/item-current.blade.php:
--------------------------------------------------------------------------------
1 | @props(['url', 'page'])
2 |
3 |
4 |
5 | {{ $page }}
6 |
7 |
8 |
--------------------------------------------------------------------------------
/export/resources/svg/heroicons-outline/x-mark.svg:
--------------------------------------------------------------------------------
1 |
4 |
--------------------------------------------------------------------------------
/export/content/trees/navigation/bottom_footer.yaml:
--------------------------------------------------------------------------------
1 | tree:
2 | -
3 | id: e2b72cc1-795c-4b38-ae70-69e9714b0610
4 | title: Terms
5 | url: '#'
6 | -
7 | id: 7729099b-6d44-4a1a-a85f-3a3a80673769
8 | title: Privacy
9 | url: '#'
10 |
--------------------------------------------------------------------------------
/export/resources/fieldsets/picture.yaml:
--------------------------------------------------------------------------------
1 | title: Picture
2 | fields:
3 | -
4 | handle: image
5 | field: common.image
6 | -
7 | handle: caption
8 | field:
9 | type: text
10 | localizable: true
11 | display: Caption
12 |
--------------------------------------------------------------------------------
/export/resources/views/components/ui/input-instructions.blade.php:
--------------------------------------------------------------------------------
1 | @props(['id', 'instructions'])
2 |
3 | class(['text-muted-foreground text-sm']) }}
5 | id="{{ $id }}-instructions"
6 | >
7 | {{ $instructions }}
8 |
9 |
--------------------------------------------------------------------------------
/export/content/seo.yaml:
--------------------------------------------------------------------------------
1 | title: '@seo:title'
2 | site_name: 'Site Name'
3 | site_name_position: after
4 | site_name_separator: '|'
5 | canonical_url: '@seo:permalink'
6 | robots:
7 | - noindex
8 | image: false
9 | priority: 0.5
10 | change_frequency: monthly
11 |
--------------------------------------------------------------------------------
/export/public/assets/images/.meta/bedrock-screenshot-social.png.yaml:
--------------------------------------------------------------------------------
1 | data:
2 | alt: 'Bedrock Statamic starter-kit demo components screenshot'
3 | size: 65641
4 | last_modified: 1756634011
5 | width: 1200
6 | height: 600
7 | mime_type: image/png
8 | duration: null
9 |
--------------------------------------------------------------------------------
/export/resources/svg/heroicons-outline/bars-3.svg:
--------------------------------------------------------------------------------
1 |
4 |
--------------------------------------------------------------------------------
/export/resources/views/partials/skip-to-content.blade.php:
--------------------------------------------------------------------------------
1 |
5 | Skip to content
6 |
7 |
--------------------------------------------------------------------------------
/export/resources/fieldsets/search_form.yaml:
--------------------------------------------------------------------------------
1 | title: 'Search form'
2 | fields:
3 | -
4 | handle: title
5 | field:
6 | display: Title
7 | type: text
8 | -
9 | handle: text
10 | field: common.text_plain
11 | config:
12 | display: Text
13 |
--------------------------------------------------------------------------------
/export/app/Console/Commands/Scaffold/stubs/block.blade.php.stub:
--------------------------------------------------------------------------------
1 |
6 |
--------------------------------------------------------------------------------
/export/content/trees/collections/pages.yaml:
--------------------------------------------------------------------------------
1 | tree:
2 | -
3 | entry: home
4 | -
5 | entry: 506c8e50-bc23-4c16-b691-c8aca71c1258
6 | -
7 | entry: 00527668-31b8-4658-88e3-b41fba9dc10c
8 | children:
9 | -
10 | entry: d50dbcf7-2ed9-4a10-91c5-5b5557d694ea
11 |
--------------------------------------------------------------------------------
/export/content/globals/browser_appearance.yaml:
--------------------------------------------------------------------------------
1 | title: 'Browser appearance'
2 | data:
3 | disable_phone_detection: false
4 | disable_email_detection: false
5 | disable_address_detection: false
6 | theme_color: '#171717'
7 | apple_mobile_web_app: false
8 | android_mobile_web_app: false
9 |
--------------------------------------------------------------------------------
/export/resources/css/elements/links.css:
--------------------------------------------------------------------------------
1 | @layer components {
2 | a,
3 | button {
4 | @apply focus-visible:border-ring focus-visible:ring-ring/50 rounded-lg transition focus:outline-none focus-visible:ring-3;
5 | }
6 |
7 | button {
8 | @apply cursor-pointer;
9 | }
10 | }
11 |
--------------------------------------------------------------------------------
/export/resources/fieldsets/newsletter.yaml:
--------------------------------------------------------------------------------
1 | title: Newsletter
2 | fields:
3 | -
4 | handle: form
5 | field:
6 | type: section
7 | display: Form
8 | instructions: 'Form content is configured inside [Globals](/cp/globals/newsletter).'
9 | hide_display: true
10 |
--------------------------------------------------------------------------------
/export/content/globals/newsletter.yaml:
--------------------------------------------------------------------------------
1 | title: Newsletter
2 | data:
3 | title: 'Sign up for our newsletter'
4 | text: 'This is where you make your best pitch on why anyone should subscribe.'
5 | input_placeholder: 'Enter your email'
6 | button_label: Subscribe
7 | success_message: "Congrats, you're in!"
8 |
--------------------------------------------------------------------------------
/export/resources/views/sets/picture.blade.php:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 | @isset($caption)
5 |
6 | {!! $caption !!}
7 |
8 | @endisset
9 |
10 |
--------------------------------------------------------------------------------
/export/resources/views/default.blade.php:
--------------------------------------------------------------------------------
1 | @extends('layout')
2 |
3 | @section('body')
4 |
5 | @foreach ($page->blocks as $block)
6 | @include('blocks.'.str_replace('_', '-', $block->type), ['block' => $block])
7 | @endforeach
8 |
9 | @endsection
10 |
--------------------------------------------------------------------------------
/export/resources/fieldsets/pull_quote.yaml:
--------------------------------------------------------------------------------
1 | title: 'Pull Quote'
2 | fields:
3 | -
4 | handle: quote
5 | field:
6 | type: textarea
7 | localizable: true
8 | display: Quote
9 | -
10 | handle: author
11 | field:
12 | type: text
13 | localizable: true
14 | display: Author
15 |
--------------------------------------------------------------------------------
/export/resources/views/components/faqs.blade.php:
--------------------------------------------------------------------------------
1 | except(['items']) }}>
2 | {{ $slot }}
3 |
4 |
5 | @section('json_ld')
6 |
9 | @endsection
10 |
--------------------------------------------------------------------------------
/export/resources/views/sets/faqs.blade.php:
--------------------------------------------------------------------------------
1 |
2 |
3 | @foreach ($items as $item)
4 |
5 | @endforeach
6 |
7 |
8 |
--------------------------------------------------------------------------------
/export/resources/fieldsets/video.yaml:
--------------------------------------------------------------------------------
1 | title: Video
2 | fields:
3 | -
4 | handle: youtube_url
5 | field:
6 | display: 'YouTube URL'
7 | type: video
8 | always_save: false
9 | -
10 | handle: caption
11 | field:
12 | type: text
13 | localizable: true
14 | display: Caption
15 |
--------------------------------------------------------------------------------
/export/resources/views/components/ui/label.blade.php:
--------------------------------------------------------------------------------
1 | @props(['id', 'display', 'color' => 'text-foreground', 'hide_display' => false])
2 |
3 |
10 |
--------------------------------------------------------------------------------
/export/resources/views/sets/pull-quote.blade.php:
--------------------------------------------------------------------------------
1 |
2 | “{!! $quote !!}”
3 | @isset($author)
4 | — {!! $author !!}
5 | @endisset
6 |
7 |
--------------------------------------------------------------------------------
/export/resources/css/fonts.css:
--------------------------------------------------------------------------------
1 | @font-face {
2 | font-family: 'Mona Sans';
3 | src:
4 | url('/resources/fonts/Mona-Sans.woff2') format('woff2 supports variations'),
5 | url('/resources/fonts/Mona-Sans.woff2') format('woff2-variations');
6 | font-weight: 400 700;
7 | font-stretch: 100%;
8 | font-display: swap;
9 | }
10 |
--------------------------------------------------------------------------------
/export/resources/svg/social/email.svg:
--------------------------------------------------------------------------------
1 |
5 |
--------------------------------------------------------------------------------
/export/resources/fieldsets/buttons.yaml:
--------------------------------------------------------------------------------
1 | title: Buttons
2 | fields:
3 | -
4 | handle: buttons
5 | field:
6 | mode: stacked
7 | add_row: 'Add button'
8 | type: grid
9 | localizable: true
10 | display: Buttons
11 | replicator_preview: false
12 | fields:
13 | -
14 | import: button
15 |
--------------------------------------------------------------------------------
/export/app/Console/Commands/Scaffold/stubs/fieldset_block.yaml.stub:
--------------------------------------------------------------------------------
1 | title: '{{ name }}'
2 | fields:
3 | -
4 | handle: title
5 | field:
6 | display: Title
7 | type: text
8 | -
9 | handle: text
10 | field: common.text_plain
11 | config:
12 | display: Text
13 | -
14 | handle: image
15 | field: common.image
16 |
--------------------------------------------------------------------------------
/export/app/Support/Yaml/ArticleYaml.php:
--------------------------------------------------------------------------------
1 | class(['flex flex-col gap-2']) }}>
7 | attributes }}>
8 | {{ $list }}
9 |
10 |
11 | {{ $panels }}
12 |
13 |
--------------------------------------------------------------------------------
/export/resources/views/components/ui/carousel/slide.blade.php:
--------------------------------------------------------------------------------
1 | class(['min-w-0 shrink-0 grow-0 basis-full']) }}
3 | role="group"
4 | aria-roledescription="slide"
5 | x-bind:class="{
6 | 'pl-4': orientation === 'horizontal',
7 | 'pt-4': orientation === 'vertical',
8 | }"
9 | >
10 | {{ $slot }}
11 |
12 |
--------------------------------------------------------------------------------
/export/content/collections/posts.yaml:
--------------------------------------------------------------------------------
1 | title: Posts
2 | template: posts/show
3 | layout: layout
4 | taxonomies:
5 | - categories
6 | revisions: false
7 | route: '/posts/{slug}'
8 | date: true
9 | sort_dir: desc
10 | date_behavior:
11 | past: public
12 | future: private
13 | preview_targets:
14 | -
15 | label: Entry
16 | url: '{permalink}'
17 | refresh: true
18 |
--------------------------------------------------------------------------------
/export/resources/svg/heroicons-outline/cursor-arrow-rays.svg:
--------------------------------------------------------------------------------
1 |
2 |
--------------------------------------------------------------------------------
/export/resources/views/components/logo.blade.php:
--------------------------------------------------------------------------------
1 | {{--
2 | Set the logo inside Control Panel in /cp/globals/theme
3 | --}}
4 |
5 | @props([
6 | 'logo',
7 | 'url' => config('app.url'),
8 | 'aria_label' => config('app.name').' logo',
9 | ])
10 |
11 |
12 |
13 |
14 |
--------------------------------------------------------------------------------
/export/resources/views/components/ui/avatar.blade.php:
--------------------------------------------------------------------------------
1 | @props(['image', 'w', 'h', 'name'])
2 |
3 | class(['shrink-0 rounded-full overflow-hidden bg-primary-foreground']) }}>
4 |
5 |
6 |
7 |
8 |
--------------------------------------------------------------------------------
/export/content/collections/testimonials.yaml:
--------------------------------------------------------------------------------
1 | title: Testimonials
2 | template: default
3 | layout: layout
4 | revisions: false
5 | slugs: false
6 | sort_dir: asc
7 | date_behavior:
8 | past: public
9 | future: private
10 | preview_targets:
11 | -
12 | label: Entry
13 | url: '{permalink}'
14 | refresh: true
15 | structure:
16 | root: false
17 | max_depth: 1
18 |
--------------------------------------------------------------------------------
/export/resources/svg/heroicons-outline/square-3-stack-3d.svg:
--------------------------------------------------------------------------------
1 |
2 |
--------------------------------------------------------------------------------
/export/content/collections/team.yaml:
--------------------------------------------------------------------------------
1 | title: Team
2 | template: default
3 | layout: layouts/site
4 | revisions: false
5 | title_format: '{first_name} {last_name}'
6 | sort_dir: asc
7 | date_behavior:
8 | past: public
9 | future: private
10 | preview_targets:
11 | -
12 | label: Entry
13 | url: '{permalink}'
14 | refresh: true
15 | structure:
16 | root: false
17 | max_depth: 1
18 |
--------------------------------------------------------------------------------
/export/resources/svg/heroicons-outline/adjustments-horizontal.svg:
--------------------------------------------------------------------------------
1 |
2 |
--------------------------------------------------------------------------------
/export/resources/fieldsets/hero_demo.yaml:
--------------------------------------------------------------------------------
1 | title: 'Hero Demo'
2 | fields:
3 | -
4 | handle: title
5 | field: common.text_plain
6 | config:
7 | display: Title
8 | instructions: 'You can use `shift+enter` to control line breaks on large screens'
9 | -
10 | handle: text
11 | field: common.text_plain
12 | config:
13 | display: Text
14 | -
15 | import: buttons
16 |
--------------------------------------------------------------------------------
/export/resources/css/components/card.css:
--------------------------------------------------------------------------------
1 | @layer components {
2 | .card {
3 | @apply bg-card text-card-foreground flex flex-col gap-5 rounded-xl border p-6 shadow-sm;
4 | }
5 |
6 | .card__header {
7 | @apply flex flex-col gap-1.5;
8 | }
9 |
10 | .card__content {
11 | @apply flex flex-1 flex-col gap-5;
12 | }
13 |
14 | .card__footer {
15 | @apply flex items-center;
16 | }
17 | }
18 |
--------------------------------------------------------------------------------
/export/resources/svg/social/x.svg:
--------------------------------------------------------------------------------
1 |
4 |
--------------------------------------------------------------------------------
/export/resources/js/components/fieldtypes/ExampleFieldtype.vue:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
6 |
7 |
16 |
--------------------------------------------------------------------------------
/export/resources/views/components/section-header.blade.php:
--------------------------------------------------------------------------------
1 | @props([
2 | 'title',
3 | 'text',
4 | 'margin' => 'mb-20',
5 | ])
6 |
7 | class(['mx-auto max-w-xl text-center', $margin]) }}>
8 |
{!! $title !!}
9 |
10 | @isset($text)
11 |
{!! $text !!}
12 | @endisset
13 |
14 |
--------------------------------------------------------------------------------
/export/resources/svg/social/facebook.svg:
--------------------------------------------------------------------------------
1 |
4 |
--------------------------------------------------------------------------------
/export/resources/views/blocks/search-form.blade.php:
--------------------------------------------------------------------------------
1 |
10 |
--------------------------------------------------------------------------------
/export/resources/views/blocks/article.blade.php:
--------------------------------------------------------------------------------
1 |
2 |
5 | @foreach ($block->article as $set)
6 | @include('sets.'.str_replace('_', '-', $set->type), [...$set])
7 | @endforeach
8 |
9 |
10 |
--------------------------------------------------------------------------------
/export/resources/views/components/ui/form/submit.blade.php:
--------------------------------------------------------------------------------
1 | @props([
2 | 'label' => 'Submit',
3 | ])
4 |
5 |
17 |
--------------------------------------------------------------------------------
/export/resources/views/components/ui/badge.blade.php:
--------------------------------------------------------------------------------
1 | @props(['variant' => 'primary', 'as' => 'span'])
2 |
3 | <{{ $as }}
4 | {{
5 | $attributes->class([
6 | 'badge',
7 | 'badge--primary' => $variant === 'primary',
8 | 'badge--secondary' => $variant === 'secondary',
9 | 'badge--outline' => $variant === 'outline',
10 | ])
11 | }}
12 | >
13 | {{ $slot }}
14 | {{ $as }}>
15 |
--------------------------------------------------------------------------------
/export/content/globals/banner.yaml:
--------------------------------------------------------------------------------
1 | title: Banner
2 | data:
3 | show: true
4 | text:
5 | -
6 | type: paragraph
7 | content:
8 | -
9 | type: text
10 | marks:
11 | -
12 | type: bold
13 | text: 'Big news!'
14 | -
15 | type: text
16 | text: " We're excited to announce a brand new product. Check it out →"
17 | link_url: '#'
18 | cookie_expires: 7
19 |
--------------------------------------------------------------------------------
/export/resources/svg/social/linkedin.svg:
--------------------------------------------------------------------------------
1 |
4 |
--------------------------------------------------------------------------------
/export/resources/js/cp.js:
--------------------------------------------------------------------------------
1 | /**
2 | * When extending the control panel, be sure to uncomment the necessary code for your build process:
3 | * https://statamic.dev/extending/control-panel
4 | */
5 |
6 | Statamic.booting(() => {
7 | // Field actions allow you to modify value for specific fields:
8 | // https://statamic.dev/extending/field-actions
9 | // Action registration example
10 | // Statamic.$fieldActions.add('slug-fieldtype', action)
11 | })
12 |
--------------------------------------------------------------------------------
/export/resources/css/components/scrollbar.css:
--------------------------------------------------------------------------------
1 | @layer components {
2 | .scrollbar {
3 | scrollbar-width: thin;
4 | scrollbar-color: theme('colors.gray.400') transparent;
5 |
6 | &::-webkit-scrollbar {
7 | @apply w-1 pr-1;
8 | }
9 |
10 | &::-webkit-scrollbar-track {
11 | @apply rounded-full bg-transparent;
12 | }
13 |
14 | &::-webkit-scrollbar-thumb {
15 | @apply rounded-full bg-gray-400;
16 | }
17 | }
18 | }
19 |
--------------------------------------------------------------------------------
/export/resources/blueprints/globals/strings.yaml:
--------------------------------------------------------------------------------
1 | tabs:
2 | main:
3 | display: Main
4 | sections:
5 | -
6 | display: Strings
7 | instructions: 'Strings that still need to be updated in CP but make more sense to be set globally instead of inside a Block or every Entry'
8 | fields:
9 | -
10 | handle: related_posts
11 | field:
12 | display: 'Related posts'
13 | type: text
14 |
--------------------------------------------------------------------------------
/export/content/collections/pages/search.md:
--------------------------------------------------------------------------------
1 | ---
2 | id: 00527668-31b8-4658-88e3-b41fba9dc10c
3 | blueprint: page
4 | title: Search
5 | seo_noindex: false
6 | seo_nofollow: false
7 | seo_canonical_type: entry
8 | sitemap_change_frequency: weekly
9 | sitemap_priority: 0.5
10 | updated_by: 6d26d0a8-ff9c-4c3e-a25e-7e036508908c
11 | updated_at: 1736333700
12 | blocks:
13 | -
14 | id: m5ns90sh
15 | title: Search
16 | type: search_form
17 | enabled: true
18 | ---
19 |
--------------------------------------------------------------------------------
/export/resources/views/components/ui/carousel/previous.blade.php:
--------------------------------------------------------------------------------
1 |
13 |
--------------------------------------------------------------------------------
/export/resources/views/blocks/contact.blade.php:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
6 |
11 |
12 |
13 |
14 |
--------------------------------------------------------------------------------
/export/resources/svg/social/youtube.svg:
--------------------------------------------------------------------------------
1 |
4 |
--------------------------------------------------------------------------------
/export/resources/views/components/ui/carousel/next.blade.php:
--------------------------------------------------------------------------------
1 |
14 |
--------------------------------------------------------------------------------
/export/resources/views/components/ui/form/honeypot.blade.php:
--------------------------------------------------------------------------------
1 | @props([
2 | 'model',
3 | 'handle',
4 | 'formHandle',
5 | ])
6 |
7 |
8 |
9 |
17 |
18 |
--------------------------------------------------------------------------------
/export/resources/fieldsets/blog_paginated.yaml:
--------------------------------------------------------------------------------
1 | title: 'Blog Paginated'
2 | fields:
3 | -
4 | handle: title
5 | field:
6 | display: Title
7 | type: text
8 | -
9 | handle: text
10 | field: common.text_plain
11 | config:
12 | display: Text
13 | -
14 | handle: limit
15 | field:
16 | default: '9'
17 | display: Limit
18 | type: integer
19 | width: 50
20 | if:
21 | query: 'not custom'
22 | instructions: 'Entries per page'
23 |
--------------------------------------------------------------------------------
/export/content/collections/testimonials/ian-dooley.md:
--------------------------------------------------------------------------------
1 | ---
2 | id: 96a0905f-ab61-4a12-9449-a4f8c8ec9721
3 | blueprint: testimonial
4 | title: 'Ian Dooley'
5 | first_name: Ian
6 | last_name: Dooley
7 | quote: 'I deployed my Statamic site in record time. This kit is like instant coffee—just add water and enjoy!'
8 | avatar: avatars/ian-dooley-d1upkifd04a-unsplash.jpg
9 | author_title: 'Statamic developer'
10 | featured: false
11 | updated_by: 6d26d0a8-ff9c-4c3e-a25e-7e036508908c
12 | updated_at: 1736256806
13 | ---
14 |
--------------------------------------------------------------------------------
/export/resources/fieldsets/search_results.yaml:
--------------------------------------------------------------------------------
1 | title: 'Search results'
2 | fields:
3 | -
4 | handle: title
5 | field:
6 | type: text
7 | display: Title
8 | -
9 | handle: no_results_text
10 | field: common.text_plain
11 | config:
12 | display: 'No results text'
13 | -
14 | handle: limit
15 | field:
16 | default: 6
17 | display: Limit
18 | type: integer
19 | instructions: 'Entries per page'
20 | width: 50
21 | always_save: false
22 |
--------------------------------------------------------------------------------
/export/resources/views/components/entry-meta.blade.php:
--------------------------------------------------------------------------------
1 | @props(['date', 'categories'])
2 |
3 | class(['flex items-center gap-4']) }}>
4 |
10 | @isset($categories->title)
11 | {!! $categories->title !!}
12 | @endisset
13 |
14 |
--------------------------------------------------------------------------------
/export/content/collections/testimonials/albert-dera.md:
--------------------------------------------------------------------------------
1 | ---
2 | id: 84b0c988-3fdc-4f37-a548-df1d444961a4
3 | blueprint: testimonial
4 | title: 'Albert Dera'
5 | first_name: Albert
6 | last_name: Dera
7 | quote: "This kit is my new secret weapon. It's like having a personal coding ninja stashed in my project folder."
8 | avatar: avatars/albert-dera-ilip77sbmoe-unsplash.jpg
9 | author_title: 'Laravel developer'
10 | featured: false
11 | updated_by: 6d26d0a8-ff9c-4c3e-a25e-7e036508908c
12 | updated_at: 1736256298
13 | ---
14 |
--------------------------------------------------------------------------------
/export/content/collections/testimonials/michele-dam.md:
--------------------------------------------------------------------------------
1 | ---
2 | id: 05c77479-d67e-4cd3-8696-38b1c80446cc
3 | blueprint: testimonial
4 | title: 'Michele Dam'
5 | first_name: Michele
6 | last_name: Dam
7 | quote: "It's like Laravel Forge for your front-end. I spin up sites so fast, my boss thinks I'm a coding wizard!"
8 | avatar: avatars/michael-dam-mez3pofgs_k-unsplash.jpg
9 | author_title: 'Statamic developer'
10 | featured: false
11 | updated_by: 6d26d0a8-ff9c-4c3e-a25e-7e036508908c
12 | updated_at: 1736258332
13 | ---
14 |
--------------------------------------------------------------------------------
/export/resources/views/components/ui/dropdown/item.blade.php:
--------------------------------------------------------------------------------
1 | @props([
2 | 'as' => 'a',
3 | ])
4 |
5 | <{{ $as }}
6 | {{
7 | $attributes->class([
8 | 'hover:bg-accent hover:text-accent-foreground [&_svg:not([class*="text-"])]:text-muted-foreground relative flex items-center gap-2 rounded-md px-2 py-1.5 text-sm outline-hidden select-none [&_svg]:pointer-events-none [&_svg]:shrink-0 [&_svg:not([class*="size-"])]:size-4',
9 | ])
10 | }}
11 | >
12 | {{ $slot }}
13 | {{ $as }}>
14 |
--------------------------------------------------------------------------------
/export/content/collections/testimonials/evie-maralyn.md:
--------------------------------------------------------------------------------
1 | ---
2 | id: ddbd1fc2-e109-4db3-9774-403011160fcb
3 | blueprint: testimonial
4 | title: 'Aiony Haust'
5 | quote: 'I spun this kit up in minutes, and my dev environment never looked so sharp.'
6 | author: 'Evie Maralyn'
7 | author_title: 'Statamic developer'
8 | featured: false
9 | updated_by: 6d26d0a8-ff9c-4c3e-a25e-7e036508908c
10 | updated_at: 1736256234
11 | first_name: Aiony
12 | last_name: Haust
13 | avatar: avatars/aiony-haust-jmati5q_ygy-unsplash.jpg
14 | ---
15 |
--------------------------------------------------------------------------------
/export/resources/css/components/typography.css:
--------------------------------------------------------------------------------
1 | @layer components {
2 | .tagline {
3 | @apply text-sm font-semibold tracking-wide uppercase sm:text-base;
4 | }
5 |
6 | .content-xl {
7 | @apply text-xl sm:text-2xl;
8 | }
9 |
10 | .content-lg {
11 | @apply text-lg sm:text-xl/8;
12 | }
13 |
14 | .content {
15 | @apply text-base sm:text-lg;
16 | }
17 |
18 | .content-sm {
19 | @apply text-sm sm:text-base;
20 | }
21 |
22 | .content-xs {
23 | @apply text-xs sm:text-sm;
24 | }
25 | }
26 |
--------------------------------------------------------------------------------
/export/resources/views/components/ui/input-error.blade.php:
--------------------------------------------------------------------------------
1 | {{--
2 | Display error when there is a validation error with the name field.
3 | Uses Laravel Precognition:
4 | https://laravel.com/docs/12.x/precognition#using-alpine
5 | --}}
6 |
7 | @props(['handle', 'id'])
8 |
9 |
10 | class(['text-destructive text-sm']) }}
13 | x-text="form.errors.{{ $handle }}"
14 | >
15 |
16 |
--------------------------------------------------------------------------------
/export/content/collections/testimonials/ayo-ogunseinde.md:
--------------------------------------------------------------------------------
1 | ---
2 | id: d594d5da-ed13-4d42-8530-f0e85e74a38e
3 | blueprint: testimonial
4 | title: 'Ayo Ogunseinde'
5 | first_name: Ayo
6 | last_name: Ogunseinde
7 | quote: "One install, and I'm in. It's the easiest CMS setup since npm init—fewer weird errors, more coding mojo!"
8 | avatar: avatars/ayo-ogunseinde-sibvworyqs0-unsplash.jpg
9 | author_title: 'Statamic developer'
10 | featured: false
11 | updated_by: 6d26d0a8-ff9c-4c3e-a25e-7e036508908c
12 | updated_at: 1736256488
13 | ---
14 |
--------------------------------------------------------------------------------
/export/content/collections/testimonials/brook-cagle.md:
--------------------------------------------------------------------------------
1 | ---
2 | id: a9c0391b-565a-47cb-a5d2-578116ba027d
3 | blueprint: testimonial
4 | title: 'Brook Cagle'
5 | first_name: Brook
6 | last_name: Cagle
7 | quote: 'Seriously powerful, yet beginner-friendly. My favorite trifecta: speed, simplicity, and total control over content.'
8 | avatar: avatars/brooke-cagle-w7pk4ffrsy0-unsplash.jpg
9 | author_title: 'Full-stack developer'
10 | featured: false
11 | updated_by: 6d26d0a8-ff9c-4c3e-a25e-7e036508908c
12 | updated_at: 1736256601
13 | ---
14 |
--------------------------------------------------------------------------------
/export/content/collections/testimonials/jess-nackos.md:
--------------------------------------------------------------------------------
1 | ---
2 | id: 5f54a892-98ce-4840-a832-bc578044fa6c
3 | blueprint: testimonial
4 | title: 'Jess Nackos'
5 | first_name: Jess
6 | last_name: Nackos
7 | quote: 'Saves me time, keeps my code squeaky clean, and impresses clients. This kit is the triple threat for Statamic devs.'
8 | avatar: avatars/jake-nackos-if9tk5uy-ki-unsplash.jpg
9 | author_title: 'Statamic developer'
10 | featured: false
11 | updated_by: 6d26d0a8-ff9c-4c3e-a25e-7e036508908c
12 | updated_at: 1736256895
13 | ---
14 |
--------------------------------------------------------------------------------
/export/resources/js/site.js:
--------------------------------------------------------------------------------
1 | import Alpine from 'alpinejs'
2 | import Collapse from '@alpinejs/collapse'
3 | import Persist from '@alpinejs/persist'
4 | import Focus from '@alpinejs/focus'
5 | import Intersect from '@alpinejs/intersect'
6 | import Mask from '@alpinejs/mask'
7 | import Precognition from 'laravel-precognition-alpine'
8 | import Cookies from 'js-cookie'
9 |
10 | window.Cookies = Cookies
11 | window.Alpine = Alpine
12 |
13 | Alpine.plugin([Collapse, Focus, Persist, Intersect, Mask, Precognition])
14 | Alpine.start()
15 |
--------------------------------------------------------------------------------
/export/resources/views/components/ui/tabs/panel.blade.php:
--------------------------------------------------------------------------------
1 | @props([
2 | 'name',
3 | 'alpine_property' => 'activeTab', // Alpine property of the parent component that controls the active tab.
4 | ])
5 |
6 |
15 | {{ $slot }}
16 |
17 |
--------------------------------------------------------------------------------
/export/content/collections/testimonials/alexander-hipp.md:
--------------------------------------------------------------------------------
1 | ---
2 | id: 753bb167-dff2-4a9c-99f6-bf6dfe579a73
3 | blueprint: testimonial
4 | title: 'Alexander Hipp'
5 | first_name: Alexander
6 | last_name: Hipp
7 | quote: 'No more wrestling with front-end config. This starter kit handles the heavy lifting so I can code the fun stuff!'
8 | avatar: avatars/alexander-hipp-ieebwgy_6la-unsplash.jpg
9 | author_title: 'Laravel developer'
10 | featured: false
11 | updated_by: 6d26d0a8-ff9c-4c3e-a25e-7e036508908c
12 | updated_at: 1736256373
13 | ---
14 |
--------------------------------------------------------------------------------
/export/content/collections/testimonials/jane-scott.md:
--------------------------------------------------------------------------------
1 | ---
2 | id: 5f43de73-acf2-4038-9dc5-5f7ba5fb6c0d
3 | blueprint: testimonial
4 | title: 'Jane Scott'
5 | first_name: Jane
6 | last_name: Scott
7 | quote: "I love how everything's so modular. I can hack features, push code, and watch the updates go live without manual tinkering."
8 | avatar: avatars/ben-scott-twb7isl9cny-unsplash.jpg
9 | author_title: 'Full-stack developer'
10 | featured: false
11 | updated_by: 6d26d0a8-ff9c-4c3e-a25e-7e036508908c
12 | updated_at: 1736256563
13 | ---
14 |
--------------------------------------------------------------------------------
/export/content/collections/testimonials/alexandru-zdrobau.md:
--------------------------------------------------------------------------------
1 | ---
2 | id: f0e82659-2eec-4afc-b711-7fd98c94e85b
3 | blueprint: testimonial
4 | title: 'Alexandru Zdrobau'
5 | first_name: Alexandru
6 | last_name: Zdrobau
7 | quote: 'Statamic plus this starter kit = unstoppable developer flow. My Git commits have never been so consistent!'
8 | avatar: avatars/alexandru-zdrobau-bgz8vo3pk8k-unsplash.jpg
9 | author_title: 'Laravel developer'
10 | featured: false
11 | updated_by: 6d26d0a8-ff9c-4c3e-a25e-7e036508908c
12 | updated_at: 1736256447
13 | ---
14 |
--------------------------------------------------------------------------------
/export/content/collections/testimonials/clarisse-meyer.md:
--------------------------------------------------------------------------------
1 | ---
2 | id: 645f8dad-3f0d-4ea4-9fc9-a63b4d43f417
3 | blueprint: testimonial
4 | title: 'Clarisse Meyer'
5 | first_name: Clarisse
6 | last_name: Meyer
7 | quote: 'The codebase is so clean, my linter basically took a nap. Couldn’t ask for a more robust jumpstart to my projects!'
8 | avatar: avatars/clarisse-meyer-x9cxi2eqlbw-unsplash.jpg
9 | author_title: 'Statamic developer'
10 | featured: false
11 | updated_by: 6d26d0a8-ff9c-4c3e-a25e-7e036508908c
12 | updated_at: 1736256774
13 | ---
14 |
--------------------------------------------------------------------------------
/export/content/collections/testimonials/joseph-gonzalez.md:
--------------------------------------------------------------------------------
1 | ---
2 | id: f7a8e63c-ce48-4d45-87a0-f36ea3a62f4c
3 | blueprint: testimonial
4 | title: 'Joseph Gonzalez'
5 | first_name: Joseph
6 | last_name: Gonzalez
7 | quote: "Zero to production in half the time. I'm officially spoiled and can't go back to my old workflows. Awesome kit!"
8 | avatar: avatars/joseph-gonzalez-ifgrcqhznqg-unsplash.jpg
9 | author_title: 'Full-stack developer'
10 | featured: false
11 | updated_by: 6d26d0a8-ff9c-4c3e-a25e-7e036508908c
12 | updated_at: 1736256935
13 | ---
14 |
--------------------------------------------------------------------------------
/export/content/collections/testimonials/prince-akachi.md:
--------------------------------------------------------------------------------
1 | ---
2 | id: 8ca28192-f142-4531-8a61-44adbb845504
3 | blueprint: testimonial
4 | title: 'Prince Akachi'
5 | first_name: Prince
6 | last_name: Akachi
7 | quote: 'This starter kit is my new jam. I can focus on building epic content instead of fumbling around with boilerplate code.'
8 | avatar: avatars/prince-akachi-4yv84vgqkrm-unsplash.jpg
9 | author_title: 'Laravel developer'
10 | featured: false
11 | updated_by: 6d26d0a8-ff9c-4c3e-a25e-7e036508908c
12 | updated_at: 1736258367
13 | ---
14 |
--------------------------------------------------------------------------------
/export/public/favicon/favicon.svg:
--------------------------------------------------------------------------------
1 |
--------------------------------------------------------------------------------
/export/.gitignore:
--------------------------------------------------------------------------------
1 | /node_modules
2 | /public/hot
3 | /public/storage
4 | /public/vendor/statamic
5 | /public/img/
6 | /public/static/
7 | /storage/*.key
8 | /vendor
9 | .env
10 | .env.backup
11 | .phpunit.result.cache
12 | .php_cs.cache
13 | docker-compose.override.yml
14 | Homestead.json
15 | Homestead.yaml
16 | npm-debug.log
17 | yarn-error.log
18 | .DS_Store
19 | /.idea
20 | /.vscode
21 | /.cursor
22 | /.claude
23 | # Comment the following lines if you don't compile your assets on the server:
24 | /public/build/
25 | /public/css/
26 | /public/js/
27 |
--------------------------------------------------------------------------------
/export/content/collections/testimonials/anna-balobanov.md:
--------------------------------------------------------------------------------
1 | ---
2 | id: b725af43-e73a-4432-99d3-125d4c9f908a
3 | blueprint: testimonial
4 | title: 'Anna Balobanov'
5 | first_name: Anna
6 | last_name: Balobanov
7 | quote: "If you hate repetitive setup tasks, this kit is your new BFF. It's like a framework buddy that always has your back!"
8 | avatar: avatars/kirill-balobanov-ef3aokt6hhg-unsplash.jpg
9 | author_title: 'Statamic developer'
10 | featured: false
11 | updated_by: 6d26d0a8-ff9c-4c3e-a25e-7e036508908c
12 | updated_at: 1736258292
13 | ---
14 |
--------------------------------------------------------------------------------
/export/content/collections/testimonials/monica-campbell.md:
--------------------------------------------------------------------------------
1 | ---
2 | id: 10500ffa-361c-45aa-8f50-e3fddd4919a1
3 | blueprint: testimonial
4 | title: 'Monica Campbell'
5 | first_name: Monica
6 | last_name: Campbell
7 | quote: "If coding were a game, this starter kit is the cheat code. It's simply unstoppable for rapid Statamic builds!"
8 | avatar: avatars/christopher-campbell-rdeovte7vos-unsplash.jpg
9 | author_title: 'Full-stack developer'
10 | featured: false
11 | updated_by: 6d26d0a8-ff9c-4c3e-a25e-7e036508908c
12 | updated_at: 1736256733
13 | ---
14 |
--------------------------------------------------------------------------------
/export/content/collections/testimonials/christian-buehner.md:
--------------------------------------------------------------------------------
1 | ---
2 | id: ba7aa295-efa7-44e3-a619-a41fe441082d
3 | blueprint: testimonial
4 | title: 'Christian Buehner'
5 | first_name: Christian
6 | last_name: Buehner
7 | quote: 'Goodbye, messy config. Hello, streamlined layout. This starter kit made my Statamic dev a pure joy to work with!'
8 | avatar: avatars/christian-buehner-ditylc26zvi-unsplash.jpg
9 | author_title: 'Statamic developer'
10 | featured: false
11 | updated_by: 6d26d0a8-ff9c-4c3e-a25e-7e036508908c
12 | updated_at: 1736256634
13 | ---
14 |
--------------------------------------------------------------------------------
/export/content/collections/testimonials/jurica-koletic.md:
--------------------------------------------------------------------------------
1 | ---
2 | id: 5ed5da46-4bea-42e4-9305-b52353fcd120
3 | blueprint: testimonial
4 | title: 'Jurica Koletic'
5 | first_name: Jurica
6 | last_name: Koletic
7 | quote: "Finally, a starter kit that doesn't require me to fight with plugins. It's like coding on easy mode, but with pro-level results!"
8 | avatar: avatars/jurica-koletic-7yvzyzeitc8-unsplash.jpg
9 | author_title: 'Laravel developer'
10 | featured: false
11 | updated_by: 6d26d0a8-ff9c-4c3e-a25e-7e036508908c
12 | updated_at: 1736258238
13 | ---
14 |
--------------------------------------------------------------------------------
/export/content/collections/testimonials/imansyah-putera.md:
--------------------------------------------------------------------------------
1 | ---
2 | id: a0a78c1b-6494-4690-a807-f144b970dc19
3 | blueprint: testimonial
4 | title: 'Imansyah Putera'
5 | first_name: Imansyah
6 | last_name: Putera
7 | quote: 'I love how the file structure is a breeze to navigate. My debugging sessions got a whole lot shorter thanks to this kit!'
8 | avatar: avatars/imansyah-muhamad-putera-n4kewlkfozw-unsplash.jpg
9 | author_title: 'Laravel developer'
10 | featured: false
11 | updated_by: 6d26d0a8-ff9c-4c3e-a25e-7e036508908c
12 | updated_at: 1736256860
13 | ---
14 |
--------------------------------------------------------------------------------
/export/resources/views/blocks/faqs.blade.php:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
6 | @foreach ($block->items as $item)
7 |
8 | @endforeach
9 |
10 |
11 |
12 |
--------------------------------------------------------------------------------
/export/content/collections/pages/blog.md:
--------------------------------------------------------------------------------
1 | ---
2 | id: 506c8e50-bc23-4c16-b691-c8aca71c1258
3 | blueprint: pages
4 | title: Blog
5 | seo_noindex: false
6 | seo_nofollow: false
7 | seo_canonical_type: entry
8 | sitemap_change_frequency: weekly
9 | sitemap_priority: 0.5
10 | updated_by: 6d26d0a8-ff9c-4c3e-a25e-7e036508908c
11 | updated_at: 1734455434
12 | blocks:
13 | -
14 | id: m4sowj8r
15 | title: 'Our blog'
16 | text: 'Everything about marketing, growth and running a business'
17 | type: blog_paginated
18 | enabled: true
19 | limit: 9
20 | ---
21 |
--------------------------------------------------------------------------------
/export/resources/svg/heroicons-outline/swatch.svg:
--------------------------------------------------------------------------------
1 |
2 |
--------------------------------------------------------------------------------
/export/content/collections/pages/results.md:
--------------------------------------------------------------------------------
1 | ---
2 | id: d50dbcf7-2ed9-4a10-91c5-5b5557d694ea
3 | blueprint: page
4 | title: Results
5 | seo_noindex: false
6 | seo_nofollow: false
7 | seo_canonical_type: entry
8 | sitemap_change_frequency: weekly
9 | sitemap_priority: 0.5
10 | updated_by: 6d26d0a8-ff9c-4c3e-a25e-7e036508908c
11 | updated_at: 1736333682
12 | blocks:
13 | -
14 | id: m5nrsdbk
15 | no_results_text: "Sorry, we couldn't find any results for this search."
16 | limit: 6
17 | type: search_results
18 | enabled: true
19 | title: 'Search results'
20 | ---
21 |
--------------------------------------------------------------------------------
/export/resources/svg/heroicons-outline/square-plus.svg:
--------------------------------------------------------------------------------
1 |
2 |
--------------------------------------------------------------------------------
/export/content/collections/team/albert-dera.md:
--------------------------------------------------------------------------------
1 | ---
2 | id: df7cd462-3b98-4e40-b109-e0948d8a90c7
3 | blueprint: team
4 | title: 'Albert Dera'
5 | first_name: Albert
6 | last_name: Dera
7 | position: 'Senior developer'
8 | bio: 'Praesentium iure error aliquam voluptas ut libero. Commodi placeat sit iure nulla officiis. Ut ex sit repellat tempora. Qui est accusamus exercitationem natus ut voluptas. Officiis velit eos ducimus.'
9 | image: avatars/albert-dera-ilip77sbmoe-unsplash.jpg
10 | featured: false
11 | updated_by: 6d26d0a8-ff9c-4c3e-a25e-7e036508908c
12 | updated_at: 1736270955
13 | ---
14 |
--------------------------------------------------------------------------------
/export/public/favicon/site.webmanifest:
--------------------------------------------------------------------------------
1 | {
2 | "name": "Bedrock Statamic starter-kit",
3 | "short_name": "Bedrock",
4 | "icons": [
5 | {
6 | "src": "/favicon/web-app-manifest-192x192.png",
7 | "sizes": "192x192",
8 | "type": "image/png",
9 | "purpose": "maskable"
10 | },
11 | {
12 | "src": "/favicon/web-app-manifest-512x512.png",
13 | "sizes": "512x512",
14 | "type": "image/png",
15 | "purpose": "maskable"
16 | }
17 | ],
18 | "theme_color": "#ffffff",
19 | "background_color": "#ffffff",
20 | "display": "standalone"
21 | }
--------------------------------------------------------------------------------
/export/resources/blueprints/user.yaml:
--------------------------------------------------------------------------------
1 | title: User
2 | fields:
3 | -
4 | handle: name
5 | field:
6 | type: text
7 | display: Name
8 | -
9 | handle: email
10 | field:
11 | type: text
12 | input: email
13 | display: Email Address
14 | -
15 | handle: roles
16 | field:
17 | type: user_roles
18 | width: 50
19 | -
20 | handle: groups
21 | field:
22 | type: user_groups
23 | width: 50
24 | -
25 | handle: avatar
26 | field:
27 | type: assets
28 | max_files: 1
29 | container: assets
30 |
--------------------------------------------------------------------------------
/export/routes/web.php:
--------------------------------------------------------------------------------
1 | middleware([HandlePrecognitiveRequests::class])
10 | ->name('newsletter');
11 |
12 | // The Sitemap route to the sitemap.xml
13 | Route::statamic('/sitemap.xml', 'sitemap/sitemap', [
14 | 'layout' => null,
15 | 'content_type' => 'application/xml',
16 | ]);
17 |
--------------------------------------------------------------------------------
/export/content/collections/team/ayo-ogunseinde.md:
--------------------------------------------------------------------------------
1 | ---
2 | id: e2f70ac4-b15b-43eb-9e0c-320cf947862e
3 | blueprint: team
4 | title: 'Ayo Ogunseinde'
5 | first_name: Ayo
6 | last_name: Ogunseinde
7 | position: 'Full-stack developer'
8 | bio: 'Aliquet adipiscing lectus praesent cras sed quis lectus egestas erat. Bibendum curabitur eget habitant feugiat nec faucibus eu lorem suscipit. Vitae vitae tempor enim eget lacus nulla leo.'
9 | image: avatars/ayo-ogunseinde-sibvworyqs0-unsplash.jpg
10 | featured: false
11 | updated_by: 6d26d0a8-ff9c-4c3e-a25e-7e036508908c
12 | updated_at: 1736271434
13 | ---
14 |
--------------------------------------------------------------------------------
/export/content/collections/team/ian-dooley.md:
--------------------------------------------------------------------------------
1 | ---
2 | id: 44263a4c-b477-406a-8f26-5429532e4bdd
3 | blueprint: team
4 | title: 'Ian Dooley'
5 | first_name: Ian
6 | last_name: Dooley
7 | position: Copywriter
8 | bio: 'Turpis lectus et amet elementum. Mi duis integer sed in vitae consequat. Nam vitae, in felis mi dui tempus. Porta at turpis eu odio. Et, sed duis in blandit bibendum accumsan. Purus viverra facilisi suspendisse quis est.'
9 | image: avatars/ian-dooley-d1upkifd04a-unsplash.jpg
10 | featured: false
11 | updated_by: 6d26d0a8-ff9c-4c3e-a25e-7e036508908c
12 | updated_at: 1736271612
13 | ---
14 |
--------------------------------------------------------------------------------
/export/resources/fieldsets/seo_basic.yaml:
--------------------------------------------------------------------------------
1 | title: 'SEO basic'
2 | fields:
3 | -
4 | handle: seo_title
5 | field:
6 | type: text
7 | localizable: true
8 | display: 'Page title'
9 | character_limit: 70
10 | instructions: 'This entries title, defaults to title. Max 70 chars including the site name.'
11 | -
12 | handle: seo_description
13 | field: common.text_plain
14 | config:
15 | listable: hidden
16 | display: 'Meta description'
17 | character_limit: 160
18 | instructions: 'This entries meta description. Max 160 chars.'
19 |
--------------------------------------------------------------------------------
/export/content/collections/team/anna-balobanov.md:
--------------------------------------------------------------------------------
1 | ---
2 | id: 4f77e94c-1234-418e-bec7-b715e140799b
3 | blueprint: team
4 | title: 'Anna Balobanov'
5 | first_name: Anna
6 | last_name: Balobanov
7 | position: 'Product designer'
8 | bio: 'Praesentium iure error aliquam voluptas ut libero. Commodi placeat sit iure nulla officiis. Ut ex sit repellat tempora. Qui est accusamus exercitationem natus ut voluptas. Officiis velit eos ducimus.'
9 | image: avatars/kirill-balobanov-ef3aokt6hhg-unsplash.jpg
10 | featured: false
11 | updated_by: 6d26d0a8-ff9c-4c3e-a25e-7e036508908c
12 | updated_at: 1736271536
13 | ---
14 |
--------------------------------------------------------------------------------
/export/resources/fieldsets/contact.yaml:
--------------------------------------------------------------------------------
1 | title: Contact
2 | fields:
3 | -
4 | handle: title
5 | field:
6 | display: Title
7 | type: text
8 | -
9 | handle: text
10 | field: common.text_plain
11 | config:
12 | display: Text
13 | -
14 | handle: form
15 | field:
16 | max_items: 1
17 | type: form
18 | display: Form
19 | -
20 | handle: submit_label
21 | field:
22 | type: text
23 | display: 'Submit label'
24 | -
25 | handle: success_message
26 | field: common.text_plain
27 | config:
28 | display: 'Success message'
29 |
--------------------------------------------------------------------------------
/export/content/collections/team/alexander-hipp.md:
--------------------------------------------------------------------------------
1 | ---
2 | id: bcab7536-8e22-44c7-b727-30252f40786c
3 | blueprint: team
4 | title: 'Alexander hipp'
5 | first_name: Alexander
6 | last_name: hipp
7 | position: 'Managing director'
8 | bio: 'Turpis lectus et amet elementum. Mi duis integer sed in vitae consequat. Nam vitae, in felis mi dui tempus. Porta at turpis eu odio. Et, sed duis in blandit bibendum accumsan. Purus viverra facilisi suspendisse quis est.'
9 | image: avatars/alexander-hipp-ieebwgy_6la-unsplash.jpg
10 | featured: false
11 | updated_by: 6d26d0a8-ff9c-4c3e-a25e-7e036508908c
12 | updated_at: 1736271831
13 | ---
14 |
--------------------------------------------------------------------------------
/export/resources/views/components/ui/tabs/trigger.blade.php:
--------------------------------------------------------------------------------
1 | @props([
2 | 'name',
3 | 'alpine_property' => 'activeTab', // Alpine property of the parent component that controls the active tab.
4 | ])
5 |
6 |
18 |
--------------------------------------------------------------------------------
/export/resources/css/components/headings.css:
--------------------------------------------------------------------------------
1 | @layer components {
2 | .h1,
3 | .h2,
4 | .h3,
5 | .h4,
6 | .h5 {
7 | @apply font-semibold tracking-tight text-neutral-950;
8 | }
9 |
10 | .h1 {
11 | @apply text-5xl sm:text-6xl lg:text-7xl;
12 | }
13 |
14 | .h2 {
15 | @apply text-4xl sm:text-5xl;
16 | }
17 |
18 | .h3 {
19 | @apply text-3xl sm:text-4xl;
20 | }
21 |
22 | .h4 {
23 | @apply text-2xl sm:text-3xl;
24 | }
25 |
26 | .h5 {
27 | @apply text-xl sm:text-2xl;
28 | }
29 |
30 | .h6 {
31 | @apply text-lg font-semibold text-neutral-950 sm:text-xl;
32 | }
33 | }
34 |
--------------------------------------------------------------------------------
/export/resources/views/partials/prose-class.blade.php:
--------------------------------------------------------------------------------
1 | {{-- format-ignore-start --}}
2 | prose
3 | prose-p:content
4 | prose-p:my-0
5 | prose-headings:mt-em
6 | prose-headings:mb-0
7 | prose-h2:h2
8 | prose-h3:h3
9 | prose-h4:h4
10 | prose-ul:my-0
11 | prose-ol:my-0
12 | prose-ul:space-y-em
13 | prose-ol:space-y-em
14 | prose-li:my-0
15 | prose-blockquote:my-0
16 | prose-blockquote:border-primary-700
17 | prose-blockquote:pl-7
18 | prose-blockquote:not-italic
19 | prose-li:marker:text-primary
20 | prose-pre:whitespace-pre-wrap
21 | prose-pre:my-0
22 | prose-strong:text-neutral-900
23 | prose-code:text-rose
24 | max-w-none
25 |
26 |
--------------------------------------------------------------------------------
/export/resources/css/components/badge.css:
--------------------------------------------------------------------------------
1 | @layer components {
2 | .badge {
3 | @apply inline-flex shrink-0 items-center justify-center gap-1 rounded-full border border-transparent px-2 py-0.5 text-xs font-medium [&>svg]:pointer-events-none [&>svg]:size-3;
4 | }
5 |
6 | .badge--primary {
7 | @apply bg-primary text-primary-foreground [a&]:hover:bg-primary/90;
8 | }
9 |
10 | .badge--secondary {
11 | @apply bg-secondary text-secondary-foreground [a&]:hover:bg-secondary/90;
12 | }
13 |
14 | .badge--outline {
15 | @apply text-foreground bg-background border-border [a&]:hover:bg-accent;
16 | }
17 | }
18 |
--------------------------------------------------------------------------------
/export/content/collections/team/joseph-gonzalez.md:
--------------------------------------------------------------------------------
1 | ---
2 | id: 62f96708-51c4-4739-b821-aa5bb9c3ca62
3 | blueprint: team
4 | title: 'Joseph Gonzalez'
5 | first_name: Joseph
6 | last_name: Gonzalez
7 | position: 'Sales director'
8 | bio: 'Quis bibendum velit diam tellus sed ut. Faucibus posuere enim, vitae enim eget neque tortor. Metus lectus mattis id id. Tellus ornare etiam id velit ut enim lacinia congue ultrices. Sit morbi vel elit a maecenas mauris elit lectus magna.'
9 | image: avatars/joseph-gonzalez-ifgrcqhznqg-unsplash.jpg
10 | featured: false
11 | updated_by: 6d26d0a8-ff9c-4c3e-a25e-7e036508908c
12 | updated_at: 1736271779
13 | ---
14 |
--------------------------------------------------------------------------------
/export/resources/js/lib/utils.js:
--------------------------------------------------------------------------------
1 | /**
2 | * Slugify a string.
3 | *
4 | * @param {string} input - The input string.
5 | * @returns {string} - The slugified string.
6 | */
7 | export function slugify(input) {
8 | if (!input) return ''
9 |
10 | const asString = String(input)
11 | const normalized = asString.normalize('NFKD').replace(/[\u0300-\u036f]/g, '')
12 | const slug = normalized
13 | .toLowerCase()
14 | .replace(/&/g, ' and ')
15 | .replace(/\//g, '-')
16 | .replace(/[\s_]+/g, '-')
17 | .replace(/[^a-z0-9-]/g, '')
18 | .replace(/-+/g, '-')
19 | .replace(/^-+|-+$/g, '')
20 |
21 | return slug
22 | }
23 |
--------------------------------------------------------------------------------
/export/resources/views/components/cp-toolbar.blade.php:
--------------------------------------------------------------------------------
1 | {{--
2 | Control panel Toolbar.
3 | Only show if the toolbar is enabled for the current environment (inside: cp/preferences/edit#toolbar) and the user has edit entries permission.
4 | Use nocache to ensure the toolbar works with static caching enabled.
5 | --}}
6 |
7 |
8 |
9 |
15 |
16 |
17 |
--------------------------------------------------------------------------------
/export/resources/blueprints/taxonomies/categories/category.yaml:
--------------------------------------------------------------------------------
1 | tabs:
2 | main:
3 | display: Main
4 | sections:
5 | -
6 | fields:
7 | -
8 | handle: title
9 | field:
10 | type: text
11 | required: true
12 | validate:
13 | - required
14 | sidebar:
15 | display: Sidebar
16 | sections:
17 | -
18 | fields:
19 | -
20 | handle: slug
21 | field:
22 | type: slug
23 | required: true
24 | validate:
25 | - required
26 | - 'max:200'
27 | title: Category
28 |
--------------------------------------------------------------------------------
/export/resources/css/components/tooltip.css:
--------------------------------------------------------------------------------
1 | @layer components {
2 | .tooltip {
3 | @apply relative z-40;
4 |
5 | &::before {
6 | @apply bg-gray invisible absolute -top-1 left-1/2 w-32 -translate-x-1/2 -translate-y-full rounded-lg p-2.5 text-sm opacity-0 ring-1 ring-gray-300/10 transition content-[attr(data-tooltip)] sm:w-64;
7 | }
8 |
9 | &::after {
10 | @apply bg-gray invisible absolute -top-[9px] left-1/2 h-2.5 w-2.5 -translate-x-1/2 rotate-45 rounded-br-sm border-r border-b border-gray-300/10 opacity-0 transition content-[''];
11 | }
12 | }
13 |
14 | .tooltip:hover::before,
15 | .tooltip:hover::after {
16 | @apply visible opacity-100;
17 | }
18 | }
19 |
--------------------------------------------------------------------------------
/export/resources/views/partials/nav-social.blade.php:
--------------------------------------------------------------------------------
1 | @if (count($social_media->platforms))
2 |
3 | @foreach ($social_media->platforms as $platform)
4 |
11 |
12 |
13 | @endforeach
14 |
15 | @endif
16 |
--------------------------------------------------------------------------------
/export/prettier.config.js:
--------------------------------------------------------------------------------
1 | export default {
2 | trailingComma: 'es5',
3 | trailingCommaPHP: true,
4 | printWidth: 100,
5 | tabWidth: 2,
6 | overrides: [
7 | {
8 | files: ['*.php', '*.vue'],
9 | options: {
10 | tabWidth: 4,
11 | },
12 | },
13 | {
14 | files: ['*.blade.php'],
15 | options: {
16 | tabWidth: 4,
17 | parser: 'blade',
18 | },
19 | },
20 | ],
21 | semi: false,
22 | singleQuote: true,
23 | jsxSingleQuote: false,
24 | bracketSpacing: true,
25 | jsxBracketSameLine: false,
26 | arrowParens: 'avoid',
27 | plugins: ['@prettier/plugin-php', 'prettier-plugin-tailwindcss', 'prettier-plugin-blade'],
28 | }
29 |
--------------------------------------------------------------------------------
/export/resources/blueprints/globals/scripts.yaml:
--------------------------------------------------------------------------------
1 | tabs:
2 | head:
3 | display: Head
4 | sections:
5 | -
6 | fields:
7 | -
8 | handle: code_head
9 | field:
10 | display: 'Head scripts'
11 | instructions: 'Scripts placed right before the closing of head tag'
12 | type: code
13 | footer:
14 | display: Footer
15 | sections:
16 | -
17 | fields:
18 | -
19 | handle: code_footer
20 | field:
21 | display: 'Footer scripts'
22 | instructions: 'Scripts placed after the site JS, right before the closing of body tag'
23 | type: code
24 |
--------------------------------------------------------------------------------
/export/resources/views/partials/nav-bottom-footer.blade.php:
--------------------------------------------------------------------------------
1 |
2 |
16 |
17 |
--------------------------------------------------------------------------------
/export/resources/css/typography.css:
--------------------------------------------------------------------------------
1 | @plugin '@tailwindcss/typography';
2 |
3 | @utility prose {
4 | --tw-prose-body: var(--color-neutral-800);
5 | --tw-prose-headings: var(--color-neutral-950);
6 | --tw-prose-counters: var(--color-primary);
7 | --tw-prose-bullets: var(--color-neutral-950);
8 | --tw-prose-quotes: var(--color-neutral-950);
9 | --tw-prose-quote-borders: var(--color-primary);
10 | --tw-prose-bold: var(--color-neutral-950);
11 | --tw-prose-links: var(--color-primary);
12 | }
13 |
14 | @layer components {
15 | .prose {
16 | ul > li p,
17 | ol > li p {
18 | @apply !my-0;
19 | }
20 |
21 | a {
22 | @apply font-medium no-underline underline-offset-4 hover:underline;
23 | }
24 | }
25 | }
26 |
--------------------------------------------------------------------------------
/export/app/Http/Controllers/NewsletterController.php:
--------------------------------------------------------------------------------
1 | json(
21 | [
22 | 'success' => true,
23 | ],
24 | Response::HTTP_OK
25 | );
26 | }
27 | }
28 |
--------------------------------------------------------------------------------
/export/app/Http/Requests/NewsletterRequest.php:
--------------------------------------------------------------------------------
1 | |string>
21 | */
22 | public function rules(): array
23 | {
24 | return [
25 | 'email' => ['required', 'email:rfc,dns'],
26 | ];
27 | }
28 | }
29 |
--------------------------------------------------------------------------------
/export/resources/views/components/entry-posts.blade.php:
--------------------------------------------------------------------------------
1 | @props(['image', 'url', 'title', 'excerpt', 'date', 'categories'])
2 |
3 |
4 |
7 |
8 |
9 |
10 |
11 |
12 |
13 | {!! $title !!}
14 |
15 | {!! $excerpt !!}
16 |
17 |
18 |
19 |
--------------------------------------------------------------------------------
/export/resources/views/errors/404.blade.php:
--------------------------------------------------------------------------------
1 | @extends('layout')
2 |
3 | @section('body')
4 |
5 |
6 |
7 |
8 |
404 Error
9 |
The page you're looking for does not exist.
10 |
15 |
16 |
17 |
18 |
19 | @endsection
20 |
--------------------------------------------------------------------------------
/export/resources/views/partials/related-posts.blade.php:
--------------------------------------------------------------------------------
1 |
2 |
3 |
{!! $strings->related_posts !!}
4 |
5 |
6 |
7 |
16 |
17 |
18 |
19 |
20 |
--------------------------------------------------------------------------------
/export/resources/css/components/alert.css:
--------------------------------------------------------------------------------
1 | @layer components {
2 | .alert {
3 | @apply bg-card text-card-foreground relative flex items-start gap-x-3 rounded-lg border px-4 py-3 text-sm;
4 | }
5 |
6 | .alert__content {
7 | @apply min-h-4 space-y-0.5;
8 | }
9 |
10 | .alert__icon {
11 | @apply size-4 shrink-0 translate-y-0.5;
12 | }
13 |
14 | /* .alert--success {
15 | .alert__content {}
16 |
17 | .alert__icon {
18 | @apply text-green-400;
19 | }
20 | } */
21 |
22 | /* .alert--warning {
23 | .alert__content {}
24 |
25 | .alert__icon {
26 | @apply text-yellow-400;
27 | }
28 | } */
29 |
30 | .alert--error {
31 | .alert__content {
32 | @apply text-destructive;
33 | }
34 |
35 | .alert__icon {
36 | @apply text-destructive;
37 | }
38 | }
39 | }
40 |
--------------------------------------------------------------------------------
/export/resources/views/components/ui/form/files.blade.php:
--------------------------------------------------------------------------------
1 | @props([
2 | 'model',
3 | 'max_files' => 1,
4 | 'handle',
5 | 'id',
6 | 'instructions',
7 | ])
8 |
9 | merge([
13 | 'multiple' => $max_files !== 1,
14 | ])
15 | }}
16 | id="{{ $id }}"
17 | name="{{ $handle }}{{ $max_files !== 1 ? '[]' : '' }}"
18 | type="file"
19 | x-bind:aria-invalid="form.invalid('{{ $handle }}')"
20 | @isset($instructions)
21 | x-bind:aria-describedby="form.invalid('{{ $handle }}') ? '{{ $id }}-error' : '{{ $id }}-instructions'"
22 | @else
23 | x-bind:aria-describedby="form.invalid('{{ $handle }}') ? '{{ $id }}-error' : false"
24 | @endisset
25 | x-on:change="form.validate('{{ $handle }}')"
26 | />
27 |
--------------------------------------------------------------------------------
/export/resources/views/components/faqs-item.blade.php:
--------------------------------------------------------------------------------
1 | @props(['title', 'text'])
2 |
3 | merge(['class' => 'group']) }}>
4 |
7 | {!! $title !!}
8 |
9 |
10 |
11 |
12 |
13 |
14 |
15 |
16 | {!! $text !!}
17 |
18 |
19 |
20 |
--------------------------------------------------------------------------------
/export/resources/fieldsets/table.yaml:
--------------------------------------------------------------------------------
1 | title: Table
2 | fields:
3 | -
4 | handle: first_row_headers
5 | field:
6 | display: 'First row as header'
7 | type: toggle
8 | width: 50
9 | instructions: 'Show the first row as header and give it a header styling.'
10 | instructions_position: below
11 | -
12 | handle: first_column_headers
13 | field:
14 | display: 'First column as header'
15 | type: toggle
16 | width: 50
17 | instructions: 'Show the first column as header and give it a header styling.'
18 | instructions_position: below
19 | -
20 | handle: table
21 | field:
22 | display: Table
23 | type: table
24 | localizable: true
25 | -
26 | handle: caption
27 | field:
28 | type: text
29 | localizable: true
30 | display: Caption
31 |
--------------------------------------------------------------------------------
/export/resources/svg/social/github.svg:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
--------------------------------------------------------------------------------
/export/content/globals/social_media.yaml:
--------------------------------------------------------------------------------
1 | title: 'Social media'
2 | data:
3 | platforms:
4 | -
5 | id: m32jlzlr
6 | url: JasonBaciulis
7 | prefix: 'https://x.com/'
8 | type: x
9 | enabled: true
10 | -
11 | id: 1pQqfxOP
12 | handle: in/jasonbaciulis/
13 | prefix: 'https://www.linkedin.com/'
14 | type: linkedin
15 | enabled: true
16 | url: in/jasonbaciulis
17 | -
18 | id: m32k08y1
19 | url: JasonBaciulis
20 | prefix: 'https://www.github.com/'
21 | type: github
22 | enabled: true
23 | -
24 | id: m32k0hix
25 | url: statamic
26 | prefix: 'https://www.youtube.com/'
27 | type: youtube
28 | enabled: true
29 | -
30 | id: m32kbi2g
31 | url: jason@remarkable.dev
32 | prefix: 'mailto:'
33 | type: email
34 | enabled: true
35 |
--------------------------------------------------------------------------------
/export/resources/views/components/buttons.blade.php:
--------------------------------------------------------------------------------
1 | @props([
2 | 'buttons' => [],
3 | 'size' => null,
4 | ])
5 |
6 | @isset($buttons)
7 | class(['flex flex-wrap gap-4' => count($buttons) > 1]) }}>
8 | @foreach ($buttons as $button)
9 |
21 | {!! $button->label !!}
22 |
23 | @endforeach
24 |
25 | @endisset
26 |
--------------------------------------------------------------------------------
/export/resources/views/partials/nav-footer.blade.php:
--------------------------------------------------------------------------------
1 |
2 |
3 |
{!! $title !!}
4 | @if (count($children))
5 |
18 | @endif
19 |
20 |
21 |
--------------------------------------------------------------------------------
/export/resources/fieldsets/blog_excerpt.yaml:
--------------------------------------------------------------------------------
1 | title: 'Blog Excerpt'
2 | fields:
3 | -
4 | handle: title
5 | field:
6 | display: Title
7 | type: text
8 | -
9 | handle: text
10 | field: common.text_plain
11 | -
12 | handle: query
13 | field:
14 | options:
15 | latest: Latest
16 | featured: Featured
17 | custom: Custom
18 | max_items: 1
19 | default: latest
20 | display: Query
21 | type: select
22 | width: 50
23 | validate:
24 | - required
25 | -
26 | handle: limit
27 | field:
28 | default: '3'
29 | display: Limit
30 | type: integer
31 | width: 50
32 | if:
33 | query: 'not custom'
34 | -
35 | handle: entries
36 | field:
37 | collections:
38 | - posts
39 | display: Entries
40 | type: entries
41 | if:
42 | query: 'equals custom'
43 |
--------------------------------------------------------------------------------
/export/resources/fieldsets/testimonials.yaml:
--------------------------------------------------------------------------------
1 | title: Testimonials
2 | fields:
3 | -
4 | handle: title
5 | field:
6 | display: Title
7 | type: text
8 | -
9 | handle: text
10 | field: common.text_plain
11 | -
12 | handle: query
13 | field:
14 | options:
15 | latest: Latest
16 | featured: Featured
17 | custom: Custom
18 | max_items: 1
19 | default: latest
20 | display: Query
21 | type: select
22 | width: 50
23 | validate:
24 | - required
25 | -
26 | handle: limit
27 | field:
28 | default: 6
29 | display: Limit
30 | type: integer
31 | width: 50
32 | if:
33 | query: 'not custom'
34 | -
35 | handle: entries
36 | field:
37 | collections:
38 | - testimonials
39 | display: Entries
40 | type: entries
41 | if:
42 | query: 'equals custom'
43 |
--------------------------------------------------------------------------------
/export/resources/views/sets/video.blade.php:
--------------------------------------------------------------------------------
1 | @once
2 | @push('scripts')
3 | @vite('resources/css/lite-yt-embed.css')
4 | @vite('resources/js/lite-yt-embed.js')
5 | @endpush
6 | @endonce
7 |
8 | @php($youtube_id = Statamic::tag('youtube_id')->youtubeUrl($youtube_url)->fetch())
9 |
10 |
11 |
16 |
17 | Play Video
18 |
19 |
20 |
21 | @isset($caption)
22 |
23 | {!! $caption !!}
24 |
25 | @endisset
26 |
27 |
--------------------------------------------------------------------------------
/StarterKitPostInstall.php:
--------------------------------------------------------------------------------
1 | starRepo();
12 | }
13 |
14 | protected function starRepo(): void
15 | {
16 | if (!confirm('Would you like to star the Bedrock repo?')) {
17 | return;
18 | }
19 |
20 | if (PHP_OS_FAMILY === 'Darwin') {
21 | exec('open https://github.com/jasonbaciulis/bedrock');
22 | }
23 |
24 | if (PHP_OS_FAMILY === 'Windows') {
25 | exec('start https://github.com/jasonbaciulis/bedrock');
26 | }
27 |
28 | if (PHP_OS_FAMILY === 'Linux') {
29 | exec('xdg-open https://github.com/jasonbaciulis/bedrock');
30 | }
31 |
32 | info('Thank you!');
33 | }
34 | }
35 |
--------------------------------------------------------------------------------
/export/resources/views/components/ui/form/textarea.blade.php:
--------------------------------------------------------------------------------
1 | @props([
2 | 'model',
3 | 'rows' => 5,
4 | 'placeholder' => null,
5 | 'character_limit' => null,
6 | 'handle',
7 | 'id',
8 | 'instructions',
9 | 'display',
10 | ])
11 |
12 |
31 |
--------------------------------------------------------------------------------
/export/resources/views/components/form-field.blade.php:
--------------------------------------------------------------------------------
1 |
2 | class(['grid content-start gap-3', 'hidden' => ($input_type ?? null) === 'hidden', $containerClass()]) }}
4 | >
5 | @unless (in_array($type, $fieldsWithoutLabels()) || ($input_type ?? null) === 'hidden')
6 |
7 | @endunless
8 |
9 |
10 | @component('components.ui.form.'.$type, [
11 | 'model' => 'form.'.$handle,
12 | ...$field,
13 | ])
14 |
15 | @endcomponent
16 |
17 | @if ($instructions && ! in_array($type, $fieldsWithoutLabels()))
18 |
19 | @endif
20 |
21 |
22 |
23 |
24 |
25 |
--------------------------------------------------------------------------------
/starter-kit.yaml:
--------------------------------------------------------------------------------
1 | export_paths:
2 | - app/Console/Commands
3 | - app/Fieldtypes
4 | - app/Http/Controllers/NewsletterController.php
5 | - app/Http/Requests/NewsletterRequest.php
6 | - app/Providers/AppServiceProvider.php
7 | - app/Tags
8 | - app/View/Components
9 | - app/Support/Yaml
10 | - config/statamic/editions.php
11 | - config/statamic/git.php
12 | - config/statamic/search.php
13 | - content
14 | - public/assets
15 | - public/favicon
16 | - resources/blueprints
17 | - resources/css
18 | - resources/fieldsets
19 | - resources/fonts
20 | - resources/forms
21 | - resources/js
22 | - resources/svg
23 | - resources/views
24 | - routes/web.php
25 | - .env.example
26 | - .gitignore
27 | - .cursorrules
28 | - package.json
29 | - prettier.config.js
30 | - AGENTS.md
31 | - vite.config.js
32 | dependencies:
33 | blade-ui-kit/blade-icons: ^1.8
34 | mallardduck/blade-lucide-icons: ^1.23
35 | dependencies_dev:
36 | laravel/boost: ^1.0
37 |
--------------------------------------------------------------------------------
/export/app/View/Components/CpToolbar.php:
--------------------------------------------------------------------------------
1 | collection_defaults)->where('collection', $collection->value()->handle())->first())
2 | @php($fallback = $item['fallback']->value())
3 | @if ($fallback === 'field')
4 | @php($field = $page->{$item['field_handle']})
5 | @if (is_array($field))
6 | {!! Statamic::modify($field)->bardText()->stripTags()->trim()->safeTruncate([160, '…']) !!}
7 | @else
8 | {!! Statamic::modify($field)->stripTags()->trim()->safeTruncate([160, '…']) !!}
9 | @endif
10 | @elseif ($fallback === 'custom_text')
11 | {!! $item['custom_text'] !!}
12 | @elseif ($fallback === 'blocks')
13 | @if ($first_block = Arr::first($page->blocks)?->all())
14 | @isset($first_block['text'])
15 | {!! Statamic::modify($first_block['text'])->stripTags()->trim()->safeTruncate([160, '…']) !!}
16 | @endisset
17 | @endif
18 | @endif
19 | @endif
20 |
--------------------------------------------------------------------------------
/export/app/View/Components/Ui/Banner.php:
--------------------------------------------------------------------------------
1 | banner->show;
20 | }
21 |
22 | public function data(): array
23 | {
24 | return [
25 | 'cookie_expires' => $this->banner->cookie_expires,
26 | 'link_url' => $this->banner->link_url,
27 | 'text' => $this->banner->text,
28 | ];
29 | }
30 |
31 | /**
32 | * Get the view / contents that represent the component.
33 | */
34 | public function render(): View|Closure|string
35 | {
36 | return view('components.ui.banner');
37 | }
38 | }
39 |
--------------------------------------------------------------------------------
/export/resources/fieldsets/seo_sitemap.yaml:
--------------------------------------------------------------------------------
1 | title: 'SEO sitemap'
2 | fields:
3 | -
4 | handle: sitemap_change_frequency
5 | field:
6 | options:
7 | always: Always
8 | hourly: Hourly
9 | daily: Daily
10 | weekly: Weekly
11 | monthly: Monthly
12 | yearly: Yearly
13 | never: Never
14 | type: select
15 | instructions: 'How often to instruct search engines to crawl.'
16 | instructions_position: below
17 | width: 50
18 | default: weekly
19 | listable: false
20 | display: 'Change frequency'
21 | -
22 | handle: sitemap_priority
23 | field:
24 | type: text
25 | display: Priority
26 | default: 0.5
27 | instructions: 'Valid values range from 0.0 to 1.0. This value does not affect how your pages are compared to pages on other sites, it only lets the search engines know which pages you deem most important for the crawlers.'
28 | instructions_position: below
29 | width: 50
30 | listable: false
31 |
--------------------------------------------------------------------------------
/export/package.json:
--------------------------------------------------------------------------------
1 | {
2 | "private": true,
3 | "type": "module",
4 | "scripts": {
5 | "dev": "vite",
6 | "build": "vite build"
7 | },
8 | "devDependencies": {
9 | "@alpinejs/collapse": "^3.13.0",
10 | "@alpinejs/focus": "^3.13.0",
11 | "@alpinejs/intersect": "^3.14.9",
12 | "@alpinejs/mask": "^3.14.9",
13 | "@alpinejs/persist": "^3.13.0",
14 | "@prettier/plugin-php": "^0.22.4",
15 | "@tailwindcss/forms": "^0.5.10",
16 | "@tailwindcss/typography": "^0.5.16",
17 | "@tailwindcss/vite": "^4.1.11",
18 | "alpinejs": "^3.14.0",
19 | "concurrently": "^9.2.0",
20 | "embla-carousel": "^8.6.0",
21 | "js-cookie": "^3.0.5",
22 | "laravel-precognition-alpine": "^0.7.2",
23 | "laravel-vite-plugin": "^1.2.0",
24 | "lite-youtube-embed": "^0.3.3",
25 | "prettier": "^3.5.3",
26 | "prettier-plugin-blade": "^2.1.21",
27 | "prettier-plugin-tailwindcss": "^0.6.14",
28 | "tailwindcss": "^4.1.11",
29 | "vite": "^6.3.5",
30 | "vue-template-compiler": "^2.7.16"
31 | }
32 | }
33 |
--------------------------------------------------------------------------------
/export/resources/fieldsets/team.yaml:
--------------------------------------------------------------------------------
1 | title: Team
2 | fields:
3 | -
4 | handle: title
5 | field:
6 | display: Title
7 | type: text
8 | -
9 | handle: text
10 | field: common.text_plain
11 | config:
12 | display: Text
13 | -
14 | handle: query
15 | field:
16 | options:
17 | -
18 | key: ordered
19 | value: Ordered
20 | -
21 | key: featured
22 | value: Featured
23 | -
24 | key: custom
25 | value: Custom
26 | max_items: 1
27 | default: latest
28 | display: Query
29 | type: select
30 | width: 50
31 | validate:
32 | - required
33 | -
34 | handle: limit
35 | field:
36 | default: 6
37 | display: Limit
38 | type: integer
39 | width: 50
40 | if:
41 | query: 'not custom'
42 | -
43 | handle: entries
44 | field:
45 | collections:
46 | - team
47 | display: Entries
48 | type: entries
49 | if:
50 | query: 'equals custom'
51 |
--------------------------------------------------------------------------------
/export/resources/views/partials/nav-header-item.blade.php:
--------------------------------------------------------------------------------
1 |
6 | @unless (empty($icon->value()))
7 |
11 | @endunless
12 |
13 |
14 |
15 | {!! $title !!}
16 |
17 | @unless (empty($badge->value()))
18 |
19 | {!! $badge !!}
20 |
21 | @endunless
22 |
23 | @isset($description)
24 |
25 | {!! $description !!}
26 |
27 | @endisset
28 |
29 |
30 |
--------------------------------------------------------------------------------
/export/app/View/Components/FormField.php:
--------------------------------------------------------------------------------
1 | field['width'] ?? 100);
24 | return match ($width) {
25 | 25 => 'md:col-span-3',
26 | 33 => 'md:col-span-4',
27 | 50 => 'md:col-span-6',
28 | 66 => 'md:col-span-8',
29 | 75 => 'md:col-span-9',
30 | default => 'md:col-span-12',
31 | };
32 | }
33 |
34 | /**
35 | * Get the view / contents that represent the component.
36 | */
37 | public function render(): View|Closure|string
38 | {
39 | return view('components.form-field', [...$this->field]);
40 | }
41 | }
42 |
--------------------------------------------------------------------------------
/export/resources/js/components/stepper.js:
--------------------------------------------------------------------------------
1 | document.addEventListener('alpine:init', () => {
2 | Alpine.data('stepper', (min = 0, max = 9999, step = 1) => ({
3 | count: 0,
4 | min: min,
5 | max: max,
6 | step: step,
7 |
8 | isAtMax() {
9 | return this.count >= this.max
10 | },
11 |
12 | isAtMin() {
13 | return this.count <= this.min
14 | },
15 |
16 | increment() {
17 | let newValue = parseInt(this.count) + this.step
18 |
19 | if (newValue > this.max) {
20 | newValue = this.max
21 | }
22 |
23 | this.count = newValue
24 | },
25 |
26 | decrement() {
27 | let newValue = parseInt(this.count) - this.step
28 |
29 | if (newValue < this.min) {
30 | newValue = this.min
31 | }
32 |
33 | this.count = newValue
34 | },
35 |
36 | handleInput(event) {
37 | const count = parseInt(event.target.value) || 0
38 | if (count >= this.max) {
39 | event.target.value = this.max
40 | } else if (count <= this.min) {
41 | event.target.value = this.min
42 | } else {
43 | this.count = count
44 | }
45 | },
46 | }))
47 | })
48 |
--------------------------------------------------------------------------------
/export/content/globals/theme.yaml:
--------------------------------------------------------------------------------
1 | title: Theme
2 | data:
3 | logo: logos/logo-brand.svg
4 | search_results: d50dbcf7-2ed9-4a10-91c5-5b5557d694ea
5 | header_buttons:
6 | -
7 | id: 1wCZptZ7
8 | link_type: url
9 | target_blank: false
10 | url: '#'
11 | variant: ghost
12 | label: 'Sign in'
13 | -
14 | id: k0sBnlT1
15 | link_type: url
16 | target_blank: false
17 | url: '#faqs'
18 | variant: primary
19 | label: 'Get started'
20 | about: 'Features shadcn/ui style Alpine.js components that you can customize, extend, and build on. Plus page builder and complete SEO setup.'
21 | copyright_text:
22 | -
23 | type: paragraph
24 | content:
25 | -
26 | type: text
27 | text: ':copyright_year Bedrock. Built by '
28 | -
29 | type: text
30 | marks:
31 | -
32 | type: link
33 | attrs:
34 | href: 'https://remarkable.dev'
35 | rel: noopener
36 | target: _blank
37 | title: null
38 | text: 'Jason Baciulis'
39 | -
40 | type: text
41 | text: .
42 |
--------------------------------------------------------------------------------
/export/resources/blueprints/globals/newsletter.yaml:
--------------------------------------------------------------------------------
1 | tabs:
2 | main:
3 | display: Main
4 | sections:
5 | -
6 | display: Newsletter
7 | instructions: 'Configure email opt-in form that can be used inside the Newsletter block'
8 | fields:
9 | -
10 | handle: title
11 | field:
12 | type: text
13 | display: Title
14 | localizable: true
15 | -
16 | handle: text
17 | field: common.text_plain
18 | config:
19 | display: Text
20 | -
21 | handle: input_placeholder
22 | field:
23 | type: text
24 | display: 'Input placeholder'
25 | width: 50
26 | localizable: true
27 | -
28 | handle: button_label
29 | field:
30 | type: text
31 | display: 'Button label'
32 | width: 50
33 | localizable: true
34 | -
35 | handle: success_message
36 | field:
37 | type: text
38 | display: 'Success message'
39 | localizable: true
40 |
--------------------------------------------------------------------------------
/export/resources/views/components/ui/collapsible.blade.php:
--------------------------------------------------------------------------------
1 | @props([
2 | 'trigger',
3 | 'content',
4 | 'name' => Str::random(8),
5 | ])
6 |
7 | class(['relative']) }}
18 | >
19 |
20 |
32 |
33 | attributes->class(['relative']) }}
41 | >
42 | {{ $content }}
43 |
44 |
45 |
--------------------------------------------------------------------------------
/export/resources/views/posts/show.blade.php:
--------------------------------------------------------------------------------
1 | @extends('layout')
2 |
3 | @section('body')
4 |
5 |
6 |
7 |
8 |
9 |
16 |
17 |
{{ $page->title }}
18 |
19 | @include('partials.social-sharing', ['class' => 'mt-6'])
20 |
21 |
22 |
23 | @include('blocks.article', ['block' => $page])
24 |
25 | @if ($page->show_related_posts)
26 | @include('partials.related-posts')
27 | @endif
28 |
29 | @endsection
30 |
--------------------------------------------------------------------------------
/export/resources/svg/heroicons-outline/cog-6-tooth.svg:
--------------------------------------------------------------------------------
1 |
2 |
--------------------------------------------------------------------------------
/export/resources/fieldsets/faqs.yaml:
--------------------------------------------------------------------------------
1 | title: FAQs
2 | fields:
3 | -
4 | handle: title
5 | field:
6 | display: Title
7 | type: text
8 | -
9 | handle: text
10 | field: common.text_plain
11 | config:
12 | display: Text
13 | -
14 | handle: items
15 | field:
16 | collapse: true
17 | display: Items
18 | type: replicator
19 | if:
20 | block_type: 'equals collapsed'
21 | button_label: 'Add Item'
22 | sets:
23 | main:
24 | display: Main
25 | sets:
26 | item:
27 | display: Item
28 | hide: true
29 | fields:
30 | -
31 | handle: title
32 | field:
33 | display: Title
34 | type: text
35 | -
36 | handle: text
37 | field: common.text_basic
38 | config:
39 | buttons:
40 | - bold
41 | - italic
42 | - unorderedlist
43 | - orderedlist
44 | - removeformat
45 | - anchor
46 | display: Text
47 |
--------------------------------------------------------------------------------
/export/app/View/Components/Faqs.php:
--------------------------------------------------------------------------------
1 | items ?? [])
19 | ->map(function ($item) {
20 | return [
21 | '@type' => 'Question',
22 | 'name' => $item->title,
23 | 'acceptedAnswer' => [
24 | '@type' => 'Answer',
25 | 'text' => $item->text,
26 | ],
27 | ];
28 | })
29 | ->all();
30 |
31 | return [
32 | '@context' => 'https://schema.org',
33 | '@type' => 'FAQPage',
34 | 'mainEntity' => $faqEntities,
35 | ];
36 | }
37 |
38 | /**
39 | * Get the view / contents that represent the component.
40 | */
41 | public function render(): View|Closure|string
42 | {
43 | return view('components.faqs');
44 | }
45 | }
46 |
--------------------------------------------------------------------------------
/export/content/collections/posts/2024-05-22.data-driven-decisions-using-insights-to-guide-your-next-move.md:
--------------------------------------------------------------------------------
1 | ---
2 | id: 30b072fb-c998-4b68-a148-92118e960d8f
3 | blueprint: posts
4 | title: 'Data-Driven Decisions: Using Insights to Guide Your Next Move'
5 | seo_noindex: false
6 | seo_nofollow: false
7 | seo_canonical_type: entry
8 | sitemap_change_frequency: weekly
9 | sitemap_priority: 0.5
10 | featured: false
11 | updated_by: 6d26d0a8-ff9c-4c3e-a25e-7e036508908c
12 | updated_at: 1734445551
13 | excerpt: 'Guesswork is risky business. Successful entrepreneurs rely on data—sales figures, customer interviews, competitor analysis—to inform their strategies.'
14 | show_related_posts: false
15 | article:
16 | -
17 | type: paragraph
18 | content:
19 | -
20 | type: text
21 | text: 'Guesswork is risky business. Successful entrepreneurs rely on data—sales figures, customer interviews, competitor analysis—to inform their strategies. Market research helps identify trends, test assumptions, and refine messaging. Collect qualitative and quantitative data from a range of sources, then distill it into actionable insights. Over time, this rigorous approach leads to informed decisions, minimized risks, and more confident leadership.'
22 | categories: research
23 | image: images/carlos-muza-hpjsku2uysu-unsplash.jpg
24 | ---
25 |
--------------------------------------------------------------------------------
/export/content/collections/posts/2024-08-14.finding-your-niche-standing-out-in-a-saturated-market.md:
--------------------------------------------------------------------------------
1 | ---
2 | id: 63ee432c-f3f7-42dd-9b3f-d318729b2125
3 | blueprint: posts
4 | title: 'Finding Your Niche: Standing Out in a Saturated Market'
5 | seo_noindex: false
6 | seo_nofollow: false
7 | seo_canonical_type: entry
8 | sitemap_change_frequency: weekly
9 | sitemap_priority: 0.5
10 | featured: false
11 | updated_by: 6d26d0a8-ff9c-4c3e-a25e-7e036508908c
12 | updated_at: 1734445669
13 | image: images/jacopo-maiarelli--goux23dnks-unsplash.jpg
14 | excerpt: 'When everyone seems to offer similar products, meaningful differentiation is key. Analyze competitor messaging and identify gaps in the market.'
15 | show_related_posts: false
16 | article:
17 | -
18 | type: paragraph
19 | content:
20 | -
21 | type: text
22 | text: 'When everyone seems to offer similar products, meaningful differentiation is key. Analyze competitor messaging and identify gaps in the market. Focus on specialized expertise, unique product features, or an underserved customer segment. Position your brand as the top choice for a particular problem by consistently highlighting what sets you apart. Over time, a clear positioning strategy cements brand recognition and attracts an audience that values what you do best.'
23 | categories: branding
24 | ---
25 |
--------------------------------------------------------------------------------
/export/resources/views/blocks/blog-excerpt.blade.php:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 | @if ($block->query->value() === 'custom')
6 | @php($entries = $block->entries)
7 | @elseif ($block->query->value() === 'latest')
8 | @php($entries = Statamic::tag('collection:posts')->limit($block->limit)->sort('date:desc')->fetch())
9 | @elseif ($block->query->value() === 'featured')
10 | @php($entries = Statamic::tag('collection:posts')->limit($block->limit)->featured()->sort('order')->fetch())
11 | @endif
12 |
13 |
14 | @foreach ($entries as $entry)
15 |
24 | @endforeach
25 |
26 |
27 |
28 |
--------------------------------------------------------------------------------
/export/content/collections/posts/2024-03-06.the-power-of-authenticity-how-honesty-builds-brand-loyalty.md:
--------------------------------------------------------------------------------
1 | ---
2 | id: 962469cf-df9b-4744-a46a-b0acee4d453f
3 | blueprint: posts
4 | title: 'The Power of Authenticity: How Honesty Builds Brand Loyalty'
5 | seo_noindex: false
6 | seo_nofollow: false
7 | seo_canonical_type: entry
8 | sitemap_change_frequency: weekly
9 | sitemap_priority: 0.5
10 | featured: false
11 | updated_by: 6d26d0a8-ff9c-4c3e-a25e-7e036508908c
12 | updated_at: 1734445318
13 | excerpt: 'In a crowded marketplace, authenticity stands out. Consumers are increasingly drawn to brands that communicate openly, transparently, and honestly.'
14 | show_related_posts: false
15 | article:
16 | -
17 | type: paragraph
18 | content:
19 | -
20 | type: text
21 | text: 'In a crowded marketplace, authenticity stands out. Consumers are increasingly drawn to brands that communicate openly, transparently, and honestly. To forge genuine connections, share your company’s values, admit mistakes promptly, and celebrate the people behind the product. Authentic brands humanize their messaging and listen closely to customer feedback. The result: strengthened trust, loyal customers, and a reputation that sets you apart from the competition.'
22 | categories: branding
23 | image: images/dmitry-novikov-49gi04retc4-unsplash.jpg
24 | ---
25 |
--------------------------------------------------------------------------------
/export/resources/views/blocks/blog-paginated.blade.php:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
12 | @isset($posts)
13 |
14 | @foreach ($posts as $post)
15 |
24 | @endforeach
25 |
26 | @endisset
27 |
28 | @isset($paginate)
29 |
30 | @endisset
31 |
32 |
33 |
34 |
--------------------------------------------------------------------------------
/export/content/collections/posts/2024-09-12.leading-through-uncertainty-building-resilience-in-your-team.md:
--------------------------------------------------------------------------------
1 | ---
2 | id: fe1c34f1-e1ec-4be9-8479-9f404b83bd6c
3 | blueprint: posts
4 | title: 'Leading Through Uncertainty: Building Resilience in Your Team'
5 | seo_noindex: false
6 | seo_nofollow: false
7 | seo_canonical_type: entry
8 | sitemap_change_frequency: weekly
9 | sitemap_priority: 0.5
10 | featured: false
11 | updated_by: 6d26d0a8-ff9c-4c3e-a25e-7e036508908c
12 | updated_at: 1734445724
13 | show_related_posts: false
14 | article:
15 | -
16 | type: paragraph
17 | content:
18 | -
19 | type: text
20 | text: 'In volatile markets and unpredictable economies, strong leadership can steady the ship. Transparent communication, flexible planning, and empathy for employees’ concerns help build trust. Encourage team members to experiment, learn from failures, and embrace change. With the right support and vision, leaders can cultivate a resilient team that remains cohesive, innovative, and productive, no matter what the business environment throws their way.'
21 | categories: leadership
22 | image: images/krakenimages-y5bvrlccx8k-unsplash.jpg
23 | excerpt: 'In volatile markets and unpredictable economies, strong leadership can steady the ship. Transparent communication, flexible planning, and empathy for employees’ concerns help build trust.'
24 | ---
25 |
--------------------------------------------------------------------------------
/export/resources/blueprints/globals/banner.yaml:
--------------------------------------------------------------------------------
1 | tabs:
2 | main:
3 | display: Main
4 | sections:
5 | -
6 | display: Banner
7 | instructions: 'Announce new product releases, rebranding, or any other important stuff that warrants prime real estate on your website.'
8 | fields:
9 | -
10 | handle: show
11 | field:
12 | display: Show
13 | type: toggle
14 | instructions: 'Displays banner sitewide at the very top of the page'
15 | -
16 | handle: text
17 | field: common.text_basic
18 | config:
19 | display: Text
20 | if:
21 | show: 'equals true'
22 | -
23 | handle: link_url
24 | field:
25 | display: 'Link URL'
26 | type: link
27 | if:
28 | show: 'equals true'
29 | -
30 | handle: cookie_expires
31 | field:
32 | input_type: number
33 | default: '7'
34 | display: 'Cookie expires'
35 | type: text
36 | instructions: 'After a user clicks dismiss button how many days to not show the banner'
37 | if:
38 | show: 'equals true'
39 | width: 66
40 | append: days
41 |
--------------------------------------------------------------------------------
/export/content/collections/posts/2024-04-02.storytelling-for-impact-crafting-narratives-that-resonate.md:
--------------------------------------------------------------------------------
1 | ---
2 | id: 22b8cbf2-f005-4bea-8d63-01160d1ef63a
3 | blueprint: posts
4 | title: 'Storytelling for Impact: Crafting Narratives That Resonate'
5 | seo_noindex: false
6 | seo_nofollow: false
7 | seo_canonical_type: entry
8 | sitemap_change_frequency: weekly
9 | sitemap_priority: 0.5
10 | featured: false
11 | updated_by: 6d26d0a8-ff9c-4c3e-a25e-7e036508908c
12 | updated_at: 1734445448
13 | excerpt: 'Content marketing isn’t just about pushing information—it’s about captivating audiences with compelling stories. Great narratives solve problems, convey emotion, and inspire action.'
14 | show_related_posts: false
15 | article:
16 | -
17 | type: paragraph
18 | content:
19 | -
20 | type: text
21 | text: 'Content marketing isn’t just about pushing information—it’s about captivating audiences with compelling stories. Great narratives solve problems, convey emotion, and inspire action. Start by understanding who your audience is, what they care about, and the obstacles they face. Use character-driven stories, vivid imagery, and relatable scenarios to show how your brand can be part of their solution. Thoughtful storytelling not only informs but also motivates, turning casual readers into loyal followers.'
22 | categories: marketing
23 | image: images/melanie-deziel-84g0uqydlt0-unsplash.jpg
24 | ---
25 |
--------------------------------------------------------------------------------
/export/content/collections/posts/2024-06-21.engaging-audiences-tips-for-building-genuine-social-communities.md:
--------------------------------------------------------------------------------
1 | ---
2 | id: b8e36eb0-4626-4e78-894a-84f916802dfe
3 | blueprint: posts
4 | title: 'Engaging Audiences: Tips for Building Genuine Social Communities'
5 | seo_noindex: false
6 | seo_nofollow: false
7 | seo_canonical_type: entry
8 | sitemap_change_frequency: weekly
9 | sitemap_priority: 0.5
10 | featured: false
11 | updated_by: 6d26d0a8-ff9c-4c3e-a25e-7e036508908c
12 | updated_at: 1734445617
13 | image: images/jed-villejo-becc0nyip2g-unsplash.jpg
14 | excerpt: 'Social media marketing isn’t just about posting content; it’s about fostering meaningful interactions. Start with platforms that align with your audience’s preferences and craft messages that invite conversation.'
15 | show_related_posts: false
16 | article:
17 | -
18 | type: paragraph
19 | content:
20 | -
21 | type: text
22 | text: 'Social media marketing isn’t just about posting content; it’s about fostering meaningful interactions. Start with platforms that align with your audience’s preferences and craft messages that invite conversation. Encourage user-generated content, respond to comments promptly, and show appreciation for feedback. Leveraging polls, Q&A sessions, and behind-the-scenes glimpses can create a sense of community, turning passive followers into active brand ambassadors.'
23 | categories: marketing
24 | ---
25 |
--------------------------------------------------------------------------------
/export/content/collections/posts/2022-08-02.beyond-acquisition-strategies-to-keep-customers-coming-back.md:
--------------------------------------------------------------------------------
1 | ---
2 | id: 0c78480a-f6ae-40f9-bcdf-a415ecf2964a
3 | blueprint: posts
4 | title: 'Beyond Acquisition: Strategies to Keep Customers Coming Back'
5 | seo_noindex: false
6 | seo_nofollow: false
7 | seo_canonical_type: entry
8 | sitemap_change_frequency: weekly
9 | sitemap_priority: 0.5
10 | featured: false
11 | updated_by: 6d26d0a8-ff9c-4c3e-a25e-7e036508908c
12 | updated_at: 1734445512
13 | excerpt: 'Acquiring new customers is expensive, so smart businesses focus on nurturing existing relationships. Personalized email campaigns, loyalty programs, and attentive support teams all contribute to a stronger bond.'
14 | show_related_posts: false
15 | article:
16 | -
17 | type: paragraph
18 | content:
19 | -
20 | type: text
21 | text: 'Acquiring new customers is expensive, so smart businesses focus on nurturing existing relationships. Personalized email campaigns, loyalty programs, and attentive support teams all contribute to a stronger bond. Regular check-ins, surveys, and social media listening provide insights into evolving needs and preferences. By valuing and rewarding existing customers, you create brand advocates who keep revenue flowing and help attract new prospects through positive word-of-mouth.'
22 | categories: marketing
23 | image: images/blake-wisz--jjg90oanwi-unsplash.jpg
24 | ---
25 |
--------------------------------------------------------------------------------
/export/vite.config.js:
--------------------------------------------------------------------------------
1 | import { defineConfig, loadEnv } from 'vite'
2 | import laravel from 'laravel-vite-plugin'
3 | import tailwindcss from '@tailwindcss/vite'
4 | // import vue2 from '@vitejs/plugin-vue2';
5 |
6 | export default defineConfig(({ command, mode }) => {
7 | const env = loadEnv(mode, process.cwd(), '')
8 | return {
9 | plugins: [
10 | laravel({
11 | input: [
12 | 'resources/css/site.css',
13 | 'resources/css/fonts.css',
14 | 'resources/js/site.js',
15 | 'resources/js/embla.js',
16 | 'resources/js/lite-yt-embed.js',
17 | 'resources/css/lite-yt-embed.css',
18 | 'resources/js/fetchEntries.js',
19 | 'resources/js/components/cookieDialog.js',
20 | 'resources/js/components/newsletter.js',
21 | 'resources/js/components/combobox.js',
22 | 'resources/js/components/stepper.js',
23 | 'resources/js/components/toaster.js',
24 |
25 | // Control Panel assets.
26 | // https://statamic.dev/extending/control-panel#adding-css-and-js-assets
27 | // 'resources/css/cp.css',
28 | 'resources/js/cp.js',
29 | ],
30 | refresh: true,
31 | detectTls: false,
32 | }),
33 | tailwindcss(),
34 | // vue2(),
35 | ],
36 | server: {
37 | open: env.APP_URL,
38 | },
39 | define: {
40 | appName: JSON.stringify(env.APP_NAME),
41 | },
42 | }
43 | })
44 |
--------------------------------------------------------------------------------
/export/content/collections/posts/2024-07-10.scaling-sustainably-balancing-ambition-with-operational-readiness.md:
--------------------------------------------------------------------------------
1 | ---
2 | id: 2d3bbac9-62e6-4f40-b470-d7a8ecf0c05b
3 | blueprint: posts
4 | title: 'Scaling Sustainably: Balancing Ambition with Operational Readiness'
5 | seo_noindex: false
6 | seo_nofollow: false
7 | seo_canonical_type: entry
8 | sitemap_change_frequency: weekly
9 | sitemap_priority: 0.5
10 | featured: false
11 | updated_by: 6d26d0a8-ff9c-4c3e-a25e-7e036508908c
12 | updated_at: 1734445153
13 | excerpt: 'The allure of fast growth can tempt business leaders to push sales and marketing aggressively. Yet, sustainable scaling requires more than a healthy sales pipeline.'
14 | show_related_posts: false
15 | article:
16 | -
17 | type: paragraph
18 | content:
19 | -
20 | type: text
21 | text: 'The allure of fast growth can tempt business leaders to push sales and marketing aggressively. Yet, sustainable scaling requires more than a healthy sales pipeline. It demands well-structured operations, robust supply chains, and efficient customer support systems. By aligning sales forecasts with production capacity, regularly reviewing key performance metrics, and nurturing a strong organizational culture, businesses can scale without sacrificing quality. The ultimate goal is to achieve steady, manageable expansion that enhances brand reputation and profitability.'
22 | categories: business
23 | image: images/jeremy-bishop-vgjgvtsfys4-unsplash.jpg
24 | ---
25 |
--------------------------------------------------------------------------------
/export/resources/views/sitemap/sitemap.antlers.xml:
--------------------------------------------------------------------------------
1 | {{ xml_header }}
2 |
3 | {{ seo:sitemap_collections }}
4 | {{ collection from="{handle}" seo_noindex:isnt="true" as="results" }}
5 | {{ results where (x => x.permalink !== null) }}
6 | {{ if permalink }}
7 |
8 | {{ permalink }}
9 | {{ updated_at format="Y-m-d" }}
10 | {{ sitemap_change_frequency ?? 'weekly' }}
11 | {{ sitemap_priority ?? '0.5' }}
12 | {{ if {locales:count} > 1 }}
13 | {{ once }}
14 | {{ section:namespace}}
15 | xmlns:xhtml="http://www.w3.org/1999/xhtml"
16 | {{ /section:namespace}}
17 | {{ /once }}
18 | {{ locales }}
19 |
20 | {{ /locales }}
21 | {{ /if }}
22 |
23 | {{ /if }}
24 | {{ /results }}
25 | {{ /collection }}
26 | {{ /seo:sitemap_collections }}
27 |
28 |
--------------------------------------------------------------------------------
/export/resources/views/components/ui/banner.blade.php:
--------------------------------------------------------------------------------
1 | {{--
2 | Configure Banner inside Control Panel in /cp/globals/banner
3 | Relies on a tiny `js-cookie` npm package for setting and getting cookies.
4 | --}}
5 |
6 |
30 |
35 |
36 |
44 |
45 |
46 |
--------------------------------------------------------------------------------
/export/resources/blueprints/globals/theme.yaml:
--------------------------------------------------------------------------------
1 | tabs:
2 | general:
3 | display: General
4 | sections:
5 | -
6 | fields:
7 | -
8 | handle: logo
9 | field: common.image
10 | config:
11 | display: Logo
12 | -
13 | display: Search
14 | fields:
15 | -
16 | handle: search_results
17 | field: common.entry
18 | config:
19 | display: 'Search results'
20 | instructions: 'Used inside the search form to point to a page that contains the "Search results" Block.'
21 | collections:
22 | - pages
23 | header:
24 | display: Header
25 | sections:
26 | -
27 | fields:
28 | -
29 | import: buttons
30 | prefix: header_
31 | footer:
32 | display: Footer
33 | sections:
34 | -
35 | fields:
36 | -
37 | handle: about
38 | field: common.text_plain
39 | config:
40 | display: About
41 | -
42 | handle: copyright_text
43 | field: common.text_basic
44 | config:
45 | display: 'Copyright text'
46 | instructions: 'Company name, registration, address, etc. You can use `:copyright_year` placeholder string to automatically replace it with a copy symbol and a current year.'
47 | default: 'All rights reserved.'
48 |
--------------------------------------------------------------------------------
/export/content/collections/posts/2024-01-10.title-beyond-the-funnel-creating-a-customer-journey-map-that-converts.md:
--------------------------------------------------------------------------------
1 | ---
2 | id: 12c9c024-8225-46f9-8fa3-894ea054f8be
3 | blueprint: posts
4 | title: 'Beyond the Funnel: Creating a Customer Journey Map That Converts'
5 | seo_noindex: false
6 | seo_nofollow: false
7 | seo_canonical_type: entry
8 | sitemap_change_frequency: weekly
9 | sitemap_priority: 0.5
10 | featured: false
11 | updated_by: 6d26d0a8-ff9c-4c3e-a25e-7e036508908c
12 | updated_at: 1736333415
13 | show_related_posts: false
14 | article:
15 | -
16 | type: paragraph
17 | content:
18 | -
19 | type: text
20 | text: 'Traditional marketing funnels often focus solely on the initial sale, but true success comes from understanding the entire customer journey. By mapping every stage of interaction—from the first brand introduction to repeat purchases—marketers can identify what inspires, frustrates, and influences customers. Start by analyzing data, conducting interviews, and observing user behavior. Then, transform these insights into a visual roadmap that highlights touchpoints, motivations, and pain points. The result is a blueprint for more personalized messaging, improved customer experiences, and higher long-term retention.'
21 | categories: marketing
22 | excerpt: 'Traditional marketing funnels often focus solely on the initial sale, but true success comes from understanding the entire customer journey.'
23 | image: images/matt-howard-a4il43vunly-unsplash.jpg
24 | ---
25 |
--------------------------------------------------------------------------------
/export/app/Tags/YoutubeId.php:
--------------------------------------------------------------------------------
1 | params->get('youtube_url');
34 |
35 | if (empty($youtubeUrl)) {
36 | return false;
37 | }
38 |
39 | // Checks if it matches a pattern and returns the value
40 | if (preg_match($pattern, $youtubeUrl, $match)) {
41 | return $match[1];
42 | }
43 |
44 | // if no match return false.
45 | return false;
46 | }
47 | }
48 |
--------------------------------------------------------------------------------
/export/resources/views/components/search-form.blade.php:
--------------------------------------------------------------------------------
1 | {{--
2 | Set the search results URL inside Control Panel in /cp/globals/theme
3 | Docs: https://statamic.dev/search#forms
4 | --}}
5 |
6 | @props([
7 | 'action',
8 | 'query' => request()->get('q'),
9 | 'total_results' => null,
10 | 'placeholder' => 'Search…',
11 | ])
12 |
13 |
48 |
--------------------------------------------------------------------------------
/export/resources/views/partials/browser-appearance.blade.php:
--------------------------------------------------------------------------------
1 | @if ($browser_appearance->disable_phone_detection)
2 |
3 | @endif
4 |
5 | @if ($browser_appearance->disable_email_detection)
6 |
7 | @endif
8 |
9 | @if ($browser_appearance->disable_address_detection)
10 |
11 | @endif
12 |
13 | @if ($browser_appearance->apple_mobile_web_app)
14 |
15 | @if ($browser_appearance->apple_status_bar_black)
16 |
17 | @endif
18 | @endif
19 |
20 | @if ($browser_appearance->android_mobile_web_app)
21 |
22 | @endif
23 |
24 | @isset($browser_appearance->theme_color)
25 |
26 | @endisset
27 |
28 | {{--
29 | Generate favicons here:
30 | https://realfavicongenerator.net
31 | --}}
32 |
33 |
34 |
35 |
36 |
37 |
38 |
--------------------------------------------------------------------------------
/export/resources/css/site.css:
--------------------------------------------------------------------------------
1 | /*
2 | Instead of rellying 100% on TailwindCSS utility classes,
3 | for highly reusable UI elements we create BEM CSS components.
4 | We think this approach is faster and more maintainable and eliminates the
5 | need to create/import a bunch of tiny Blade components with a single HTML tag.
6 |
7 | Introduction to BEM:
8 | @see http://getbem.com/introduction/
9 | @see https://cssguidelin.es/#bem-like-naming
10 |
11 | CSS folder structure is based on ITCSS:
12 | @see https://www.xfive.co/blog/itcss-scalable-maintainable-css-architecture/
13 | */
14 |
15 | /* Configs */
16 | @import 'tailwindcss';
17 | @import './config.css';
18 | @import './typography.css';
19 |
20 | /* Elements */
21 | @import './elements/borders.css';
22 | @import './elements/images.css';
23 | @import './elements/inputs.css';
24 | @import './elements/links.css';
25 | @import './elements/page.css';
26 | @import './elements/typography.css';
27 |
28 | /* Objects */
29 | @import './objects/layout.css';
30 |
31 | /* Components */
32 | @import './components/alert.css';
33 | @import './components/badge.css';
34 | @import './components/button.css';
35 | @import './components/card.css';
36 | @import './components/headings.css';
37 | @import './components/misc.css';
38 | @import './components/scrollbar.css';
39 | @import './components/tooltip.css';
40 | @import './components/typography.css';
41 |
42 | /* Utilities */
43 | @import './utilities/br-hidden.css';
44 | @import './utilities/container.css';
45 | @import './utilities/fill-current-nested.css';
46 | @import './utilities/site-grid.css';
47 |
--------------------------------------------------------------------------------
/export/resources/fieldsets/seo_open_graph.yaml:
--------------------------------------------------------------------------------
1 | title: 'SEO open graph'
2 | fields:
3 | -
4 | handle: og_title
5 | field:
6 | type: text
7 | localizable: true
8 | listable: false
9 | display: 'Social title'
10 | instructions: 'This entries OG title, defaults to custom SEO title and title. Recommended max 70 chars.'
11 | character_limit: 70
12 | -
13 | handle: og_description
14 | field: common.text_plain
15 | config:
16 | listable: false
17 | display: 'Social description'
18 | instructions: 'This entries OG description, defaults to meta description. Recommended max 200 chars.'
19 | character_limit: 200
20 | width: 100
21 | -
22 | handle: og_image
23 | field: common.image
24 | config:
25 | container: assets
26 | mode: grid
27 | listable: false
28 | display: 'Social image'
29 | instructions: 'This entries OG image. Defaults to global site OG image. The recommended size is 1200px x 630px. The image will be focal cropped to this dimension.'
30 | instructions_position: below
31 | width: 50
32 | -
33 | handle: twitter_image
34 | field: common.image
35 | config:
36 | container: assets
37 | mode: grid
38 | listable: false
39 | display: 'Twitter image'
40 | instructions: 'This entries Twitter Summary with large image. Defaults to global site Twitter image. Images should have an aspect ratio of 2:1 with minimum dimensions of 1200 x 600px. This image will be focal cropped to this dimension.'
41 | instructions_position: below
42 | width: 50
43 |
--------------------------------------------------------------------------------
/export/content/trees/navigation/footer.yaml:
--------------------------------------------------------------------------------
1 | tree:
2 | -
3 | id: fe2d2a59-9774-418b-b56d-540b0ed2ca65
4 | title: Product
5 | children:
6 | -
7 | id: beb0ec14-bc6e-44d3-99a8-91a6ddc72372
8 | title: Blocks
9 | url: '#faqs'
10 | -
11 | id: d2af953f-3b02-4a34-af90-5d3c96218a6c
12 | title: Components
13 | url: '#components'
14 | -
15 | id: 519f57d4-f444-4d30-9f1b-413daa367b64
16 | title: Styleguide
17 | url: '#style-guide'
18 | -
19 | id: 522da2da-89bb-407f-a491-b12c03714125
20 | title: Company
21 | children:
22 | -
23 | id: de58fcc1-fe3f-4b89-855b-b96423b87c64
24 | title: Terms
25 | url: '#'
26 | -
27 | id: 95168561-8954-407f-b2c2-691d56231500
28 | title: Privacy
29 | url: '#'
30 | -
31 | id: 4a3e3ee2-331b-4fad-8293-af6ef3089cd9
32 | title: Resources
33 | children:
34 | -
35 | id: 59596fc1-dbbf-40bf-874c-289334b67bd4
36 | title: About
37 | url: '#'
38 | -
39 | id: 32bc32da-5c3d-43ea-82a7-f8ef2ce8f44d
40 | title: Careers
41 | url: '#'
42 | -
43 | id: 71c00076-7635-45a0-a880-c1efccc55d08
44 | entry: 506c8e50-bc23-4c16-b691-c8aca71c1258
45 | -
46 | id: 6168f495-da0a-4563-9a1e-2e4630054508
47 | title: Support
48 | children:
49 | -
50 | id: 20c48043-51f3-47ef-965a-b58ee8fc97f3
51 | title: Documentation
52 | url: '#'
53 | -
54 | id: a41aa20a-e854-4d35-98ad-0c8de510ba02
55 | title: 'Help Center'
56 | url: '#'
57 |
--------------------------------------------------------------------------------
/export/resources/views/components/ui/form/radio.blade.php:
--------------------------------------------------------------------------------
1 | @props([
2 | 'model',
3 | 'options',
4 | 'display',
5 | 'handle',
6 | 'id',
7 | 'instructions',
8 | ])
9 |
10 |
44 |
--------------------------------------------------------------------------------
/export/resources/blueprints/collections/testimonials/testimonial.yaml:
--------------------------------------------------------------------------------
1 | title: Testimonials
2 | tabs:
3 | main:
4 | display: Main
5 | sections:
6 | -
7 | fields:
8 | -
9 | handle: title
10 | field:
11 | type: text
12 | required: true
13 | validate:
14 | - required
15 | -
16 | handle: quote
17 | field: common.text_plain
18 | config:
19 | display: Quote
20 | validate:
21 | - required
22 | -
23 | handle: avatar
24 | field: common.image
25 | config:
26 | mode: list
27 | display: Avatar
28 | width: 50
29 | validate:
30 | - required
31 | always_save: false
32 | -
33 | handle: author_title
34 | field:
35 | display: 'Author title'
36 | type: text
37 | width: 50
38 | sidebar:
39 | display: Sidebar
40 | sections:
41 | -
42 | fields:
43 | -
44 | handle: slug
45 | field:
46 | type: slug
47 | localizable: true
48 | validate: 'max:200'
49 | show_regenerate: true
50 | -
51 | handle: featured
52 | field:
53 | display: Featured
54 | type: toggle
55 | instructions: 'Used inside the Testimonials block to create a query with only featured entries'
56 | always_save: false
57 |
--------------------------------------------------------------------------------
/README.md:
--------------------------------------------------------------------------------
1 | # [Bedrock](https://bedrock.remarkable.dev)
2 |
3 | ## The Foundation for your Statamic projects.
4 |
5 | Features shadcn/ui style Alpine.js components that you can customize, extend, and build on. Plus a block-based page builder with CLI tools and complete SEO setup.
6 |
7 | ## Features
8 | - **shadcn/ui style Alpine.js components**. 10+ beautifully-designed, accessible components for rapid development.
9 | - **Blocks**. Blocks are based on Replicator Fieldtype and are like LEGO bricks that provide you the maximum flexibility when building pages. You can use CLI commands to quickly create or remove Blocks. Bedrock includes a few commonly used Blocks like FAQs and Form.
10 | - **Blade templates**. Unlocks the full potential of Laravel, while still utilizing Statamic modifiers and tags.
11 | - **SEO**. Full SEO settings without extra addon. Including cookie consent dialog that works with GTM.
12 | - **Style guide.** A Block that’s very useful when starting projects. It’s more of an upgrade to your dev process that let’s you see all your small UI parts in one place before starting to build other Blocks and pages.
13 |
14 | ## Installation
15 |
16 | Using the [Statamic CLI](https://github.com/statamic/cli) tool run the following command:
17 |
18 | ```bash
19 | statamic new {sitename} jasonbaciulis/bedrock
20 | ```
21 |
22 | ## Documentation
23 | You can find [docs on GitHub](https://github.com/jasonbaciulis/bedrock/blob/main/DOCUMENTATION.md).
24 |
25 | ## Contributing
26 |
27 | If you found a bug or have some ideas how to make Bedrock even better, please [create an issue](https://github.com/jasonbaciulis/bedrock/issues/new) or submit a PR on GitHub.
28 |
--------------------------------------------------------------------------------
/export/resources/js/components/newsletter.js:
--------------------------------------------------------------------------------
1 | document.addEventListener('alpine:init', () => {
2 | const persistKey = appName.toLowerCase().replaceAll(' ', '_') + '_newsletter_subscribed'
3 |
4 | Alpine.data('newsletter', ({ form }) => ({
5 | // component state
6 | success: false,
7 | error: false,
8 | subscribed: Alpine.$persist(false).as(persistKey),
9 | form,
10 |
11 | init() {
12 | this.form.setValidationTimeout(100)
13 | },
14 |
15 | // derived state
16 | get isSubscribed() {
17 | return this.subscribed
18 | },
19 | set isSubscribed(status) {
20 | this.subscribed = !!status
21 | },
22 |
23 | /** main submit flow */
24 | async submit() {
25 | try {
26 | // honeypot: pretend success (don’t surface errors to bots)
27 | if (this.form.honeypot) {
28 | this.form.reset()
29 | this.success = true
30 | this.error = false
31 | return
32 | }
33 |
34 | this.form
35 | .submit()
36 | .then(response => {
37 | if (response?.data?.success) {
38 | this.success = true
39 | this.error = false
40 | this.isSubscribed = true
41 | this.form.reset()
42 | } else {
43 | this.success = false
44 | this.error = true
45 | }
46 | })
47 | .catch(error => {
48 | console.log(error)
49 | })
50 | } catch (error) {
51 | console.error(error)
52 | this.success = false
53 | this.error = true
54 | }
55 | },
56 | }))
57 | })
58 |
--------------------------------------------------------------------------------
/export/resources/views/components/ui/form/select.blade.php:
--------------------------------------------------------------------------------
1 | @props([
2 | 'model',
3 | 'options',
4 | 'placeholder' => 'Select a value…',
5 | 'multiple' => false,
6 | 'handle',
7 | 'id',
8 | 'instructions',
9 | 'searchable' => false,
10 | ])
11 |
12 | @if ($searchable)
13 | @include('components.ui.form.combobox', [...$attributes, 'model' => $model])
14 | @else
15 |
47 | @endif
48 |
--------------------------------------------------------------------------------
/export/resources/views/components/breadcrumbs.blade.php:
--------------------------------------------------------------------------------
1 |
38 |
--------------------------------------------------------------------------------
/export/resources/views/partials/footer.blade.php:
--------------------------------------------------------------------------------
1 |
41 |
--------------------------------------------------------------------------------
/export/resources/views/components/entry-testimonials.blade.php:
--------------------------------------------------------------------------------
1 | @props([
2 | 'entry',
3 | 'fetched_from_rest_api' => false,
4 | ])
5 |
6 |
7 |
8 | @if ($fetched_from_rest_api)
9 |
10 | @else
11 | “{!! $entry->quote !!}”
12 | @endif
13 |
14 |
15 | @if ($fetched_from_rest_api)
16 |
17 |
![]()
23 |
24 | @else
25 |
32 | @endif
33 |
34 | @if ($fetched_from_rest_api)
35 |
36 |
37 | @else
38 |
{!! $entry->title !!}
39 |
{!! $entry->author_title !!}
40 | @endif
41 |
42 |
43 |
44 |
--------------------------------------------------------------------------------
/export/resources/blueprints/collections/team/team.yaml:
--------------------------------------------------------------------------------
1 | title: Team
2 | tabs:
3 | main:
4 | display: Main
5 | sections:
6 | -
7 | fields:
8 | -
9 | handle: title
10 | field:
11 | type: hidden
12 | required: false
13 | -
14 | handle: first_name
15 | field:
16 | type: text
17 | display: 'First name'
18 | width: 50
19 | validate:
20 | - required
21 | -
22 | handle: last_name
23 | field:
24 | type: text
25 | display: 'Last name'
26 | width: 50
27 | validate:
28 | - required
29 | -
30 | handle: position
31 | field:
32 | display: Position
33 | type: text
34 | -
35 | handle: bio
36 | field: common.text_plain
37 | config:
38 | display: Bio
39 | -
40 | handle: image
41 | field: common.image
42 | sidebar:
43 | display: Sidebar
44 | sections:
45 | -
46 | fields:
47 | -
48 | handle: slug
49 | field:
50 | type: slug
51 | localizable: true
52 | validate: 'max:200'
53 | show_regenerate: true
54 | -
55 | handle: featured
56 | field:
57 | display: Featured
58 | type: toggle
59 | instructions: 'Used inside the Team block to create a query with only featured team members'
60 | always_save: false
61 |
--------------------------------------------------------------------------------
/export/resources/views/blocks/team.blade.php:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 | @if ($block->query->value() === 'custom')
6 | @php($entries = $block->entries)
7 | @elseif ($block->query->value() === 'ordered')
8 | @php($entries = Statamic::tag('collection:team')->limit($block->limit)->sort('order')->fetch())
9 | @elseif ($block->query->value() === 'featured')
10 | @php($entries = Statamic::tag('collection:team')->limit($block->limit)->featured()->sort('order')->fetch())
11 | @endif
12 |
13 |
14 | @foreach ($entries as $entry)
15 |
16 |
19 |
26 |
27 |
{!! $entry->title !!}
28 |
{!! $entry->position !!}
29 |
{!! $entry->bio !!}
30 |
31 | @endforeach
32 |
33 |
34 |
35 |
--------------------------------------------------------------------------------
/export/resources/svg/social/instagram.svg:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
--------------------------------------------------------------------------------
/export/resources/views/components/ui/alert.blade.php:
--------------------------------------------------------------------------------
1 | @props([
2 | 'style' => 'success', // success, warning, error
3 | 'title',
4 | 'description' => null,
5 | 'dismissible' => false,
6 | ])
7 |
8 | class([
10 | 'alert',
11 | 'alert--success' => $style === 'success',
12 | 'alert--warning' => $style === 'warning',
13 | 'alert--error' => $style === 'error',
14 | ]) }}
15 | @if ($dismissible)
16 | x-data="{ dismissed: false }"
17 | x-show="!dismissed"
18 | @endif
19 | >
20 |
21 | @if ($style === 'success')
22 |
23 | @elseif ($style === 'warning')
24 |
25 | @elseif ($style === 'error')
26 |
27 | @endif
28 |
29 |
30 |
{!! $title !!}
31 | @isset($description)
32 |
{!! $description !!}
33 | @endisset
34 |
35 |
36 | @if ($dismissible)
37 |
38 |
39 |
47 |
48 |
49 | @endif
50 |
51 |
--------------------------------------------------------------------------------
/export/resources/views/components/ui/form/checkboxes.blade.php:
--------------------------------------------------------------------------------
1 | @props([
2 | 'model',
3 | 'options',
4 | 'display',
5 | 'handle',
6 | 'id',
7 | 'instructions',
8 | ])
9 |
10 |
48 |
--------------------------------------------------------------------------------
/export/.env.example:
--------------------------------------------------------------------------------
1 | APP_NAME=Bedrock
2 | APP_ENV=local
3 | APP_KEY=
4 | APP_DEBUG=true
5 | APP_URL=http://127.0.0.1:8000
6 |
7 | APP_LOCALE=en
8 | APP_FALLBACK_LOCALE=en
9 | APP_FAKER_LOCALE=en_US
10 |
11 | APP_MAINTENANCE_DRIVER=file
12 | # APP_MAINTENANCE_STORE=file
13 |
14 | BCRYPT_ROUNDS=12
15 |
16 | LOG_CHANNEL=stack
17 | LOG_STACK=single
18 | LOG_DEPRECATIONS_CHANNEL=null
19 | LOG_LEVEL=debug
20 |
21 | DB_CONNECTION=sqlite
22 | # DB_HOST=127.0.0.1
23 | # DB_PORT=3306
24 | # DB_DATABASE=laravel
25 | # DB_USERNAME=root
26 | # DB_PASSWORD=
27 |
28 | SESSION_DRIVER=file
29 | SESSION_LIFETIME=120
30 | SESSION_ENCRYPT=false
31 | SESSION_PATH=/
32 | SESSION_DOMAIN=null
33 |
34 | BROADCAST_CONNECTION=log
35 | FILESYSTEM_DISK=local
36 | QUEUE_CONNECTION=sync
37 |
38 | CACHE_STORE=file
39 | CACHE_PREFIX=
40 |
41 | MEMCACHED_HOST=127.0.0.1
42 |
43 | REDIS_CLIENT=phpredis
44 | REDIS_HOST=127.0.0.1
45 | REDIS_PASSWORD=null
46 | REDIS_PORT=6379
47 |
48 | MAIL_MAILER=log
49 | MAIL_HOST=127.0.0.1
50 | MAIL_PORT=2525
51 | MAIL_USERNAME=null
52 | MAIL_PASSWORD=null
53 | MAIL_ENCRYPTION=null
54 | MAIL_FROM_ADDRESS="hello@example.com"
55 | MAIL_FROM_NAME="${APP_NAME}"
56 |
57 | AWS_ACCESS_KEY_ID=
58 | AWS_SECRET_ACCESS_KEY=
59 | AWS_DEFAULT_REGION=us-east-1
60 | AWS_BUCKET=
61 | AWS_USE_PATH_STYLE_ENDPOINT=false
62 |
63 | VITE_APP_NAME="${APP_NAME}"
64 |
65 | STATAMIC_LICENSE_KEY=
66 | STATAMIC_PRO_ENABLED=true
67 | STATAMIC_STACHE_WATCHER=auto
68 | STATAMIC_STATIC_CACHING_STRATEGY=null
69 | STATAMIC_REVISIONS_ENABLED=false
70 | STATAMIC_GRAPHQL_ENABLED=false
71 | STATAMIC_API_ENABLED=false
72 | STATAMIC_GIT_ENABLED=false
73 |
74 | STATAMIC_THEME=business
75 | STATAMIC_CUSTOM_CMS_NAME="${APP_NAME}"
76 | STATAMIC_CUSTOM_LOGO_URL='/assets/logos/logo-brand-fixed.svg'
77 |
78 | DEBUGBAR_ENABLED=false
79 |
--------------------------------------------------------------------------------
/export/resources/fieldsets/seo_advanced.yaml:
--------------------------------------------------------------------------------
1 | title: 'SEO advanced'
2 | fields:
3 | -
4 | handle: seo_noindex
5 | field:
6 | type: toggle
7 | instructions: 'Instruct crawlers not to index this entry, also excludes it from the sitemap.xml.'
8 | instructions_position: below
9 | width: 50
10 | display: No-index
11 | -
12 | handle: seo_nofollow
13 | field:
14 | type: toggle
15 | instructions: 'Instruct crawlers not to follow links on this page.'
16 | instructions_position: below
17 | width: 50
18 | display: No-follow
19 | -
20 | handle: seo_canonical_type
21 | field:
22 | options:
23 | -
24 | key: entry
25 | value: 'Current entry'
26 | -
27 | key: domain
28 | value: 'Current domain'
29 | -
30 | key: external
31 | value: 'External domain'
32 | display: 'Canonical type'
33 | type: button_group
34 | default: entry
35 | instructions: 'Where should the canonical URL for this entry point to.'
36 | listable: false
37 | -
38 | handle: seo_canonical_domain
39 | field: common.entry
40 | config:
41 | localizable: true
42 | listable: false
43 | display: 'Canonical URL'
44 | width: 66
45 | instructions: 'If this is an entry with duplicate content. Enter the original URL for this content.'
46 | validate:
47 | - 'required_if:seo_canonical_type,domain'
48 | if:
49 | seo_canonical_type: 'equals domain'
50 | -
51 | handle: seo_canonical_external
52 | field:
53 | input_type: url
54 | display: 'Canonical URL'
55 | type: text
56 | listable: false
57 | validate:
58 | - 'required_if:seo_canonical_type,external'
59 | if:
60 | seo_canonical_type: 'equals external'
61 |
--------------------------------------------------------------------------------
/export/resources/blueprints/collections/pages/page.yaml:
--------------------------------------------------------------------------------
1 | title: Page
2 | tabs:
3 | main:
4 | display: Main
5 | sections:
6 | -
7 | fields:
8 | -
9 | handle: title
10 | field:
11 | type: text
12 | required: true
13 | validate:
14 | - required
15 | -
16 | import: blocks
17 | seo:
18 | display: SEO
19 | sections:
20 | -
21 | display: Basic
22 | instructions: 'Basic SEO settings'
23 | fields:
24 | -
25 | import: seo_basic
26 | -
27 | display: Advanced
28 | instructions: 'Advanced SEO settings'
29 | fields:
30 | -
31 | import: seo_advanced
32 | -
33 | display: 'Open Graph'
34 | instructions: 'Open Graph meta tags for social sharing'
35 | fields:
36 | -
37 | import: seo_open_graph
38 | -
39 | display: Sitemap
40 | instructions: 'Sitemap configuration'
41 | fields:
42 | -
43 | import: seo_sitemap
44 | -
45 | display: 'JSON-ld Schema'
46 | instructions: 'Custom JSON-ld schema objects'
47 | fields:
48 | -
49 | import: seo_json-ld_schema
50 | sidebar:
51 | display: Sidebar
52 | sections:
53 | -
54 | fields:
55 | -
56 | handle: slug
57 | field:
58 | type: slug
59 | localizable: true
60 | validate: 'max:200'
61 | show_regenerate: true
62 | -
63 | handle: parent
64 | field:
65 | type: entries
66 | collections:
67 | - pages
68 | max_items: 1
69 | listable: false
70 | localizable: true
71 |
--------------------------------------------------------------------------------
/.github/ISSUE_TEMPLATE/bug_report.yaml:
--------------------------------------------------------------------------------
1 | name: Bug report
2 | description: Fill out a bug report to help me improve Bedrock.
3 | body:
4 | - type: textarea
5 | attributes:
6 | label: Bug description
7 | description: What happened? What did you expect to happen? Feel free to drop any screenshots in here.
8 | placeholder: I did this thing over here, and saw this error…
9 | validations:
10 | required: true
11 | - type: textarea
12 | attributes:
13 | label: How to reproduce
14 | description: List the steps so I'm able to recreate this bug. Bonus points if you can provide an example GitHub repo with this bug reproduced.
15 | placeholder: Go here, Type this, Click that, Look over there.
16 | validations:
17 | required: true
18 | - type: textarea
19 | attributes:
20 | label: Logs
21 | description: You can paste any relevant logs here, they'll be automatically rendered in code blocks. You can find your logs in `storage/logs`.
22 | render: shell
23 | - type: textarea
24 | attributes:
25 | label: Environment
26 | description: |
27 | Please paste the *full* output of the `php please support:details` command. It gives me some context about your project.
28 | render: yaml # the format of the command is close to yaml and gets highlighted nicely
29 | validations:
30 | required: true
31 | - type: dropdown
32 | attributes:
33 | label: Installation
34 | description: How did you install Statamic?
35 | options:
36 | - Fresh statamic/statamic site via CLI
37 | - Starter Kit using via CLI
38 | - Existing Laravel app
39 | - Other (please explain)
40 | validations:
41 | required: true
42 | - type: textarea
43 | attributes:
44 | label: Additional details
45 | description: Fancy setup? Anything else you need to share?
46 |
--------------------------------------------------------------------------------
/export/resources/views/components/ui/form/text.blade.php:
--------------------------------------------------------------------------------
1 | @props([
2 | 'model',
3 | 'prepend' => null,
4 | 'append' => null,
5 | 'character_limit' => null,
6 | 'autocomplete' => null,
7 | 'visibility' => null,
8 | 'placeholder' => null,
9 | 'id',
10 | 'handle',
11 | 'input_type' => 'text',
12 | 'instructions' => null,
13 | ])
14 |
15 |
16 | @isset($prepend)
17 |
18 | {!! $prepend !!}
19 |
20 | @endisset
21 |
22 |
class(['pl-10' => $prepend, 'pr-10' => $append])
27 | ->merge([
28 | 'maxlength' => $character_limit,
29 | 'autocomplete' => $autocomplete,
30 | 'readonly' => $visibility === 'read_only' ? 'readonly' : null,
31 | 'placeholder' => $placeholder,
32 | ])
33 | }}
34 | id="{{ $id }}"
35 | name="{{ $handle }}"
36 | type="{{ $input_type }}"
37 | x-bind:aria-invalid="form.invalid('{{ $handle }}')"
38 | @isset($instructions)
39 | x-bind:aria-describedby="form.invalid('{{ $handle }}') ? '{{ $id }}-error' : '{{ $id }}-instructions'"
40 | @else
41 | x-bind:aria-describedby="form.invalid('{{ $handle }}') ? '{{ $id }}-error' : false"
42 | @endisset
43 | x-on:change="form.validate('{{ $handle }}')"
44 | />
45 | @isset($append)
46 |
47 | {!! $append !!}
48 |
49 | @endisset
50 |
51 |
--------------------------------------------------------------------------------
/export/resources/css/components/button.css:
--------------------------------------------------------------------------------
1 | @layer components {
2 | .btn {
3 | @apply focus-visible:border-ring focus-visible:ring-ring/50 aria-invalid:ring-destructive/20 dark:aria-invalid:ring-destructive/40 aria-invalid:border-destructive inline-flex shrink-0 items-center justify-center gap-2 rounded-lg text-sm font-medium whitespace-nowrap transition-all outline-none focus-visible:ring-3 disabled:pointer-events-none disabled:opacity-50 has-[>svg]:px-3 [&_svg]:pointer-events-none [&_svg]:shrink-0 [&_svg:not([class*='size-'])]:size-4;
4 | }
5 |
6 | .btn--primary {
7 | @apply bg-primary text-primary-foreground hover:bg-primary/90 active:bg-primary/90 h-9 px-4 py-2 shadow-xs;
8 | }
9 |
10 | .btn--secondary {
11 | @apply bg-secondary text-secondary-foreground hover:bg-secondary/80 h-9 px-4 py-2 shadow-xs;
12 | }
13 |
14 | .btn--outline {
15 | @apply bg-background hover:bg-accent hover:text-accent-foreground dark:bg-input/30 dark:border-input dark:hover:bg-input/50 h-9 border px-4 py-2 shadow-xs;
16 | }
17 |
18 | .btn--link {
19 | @apply text-neutral-900 underline-offset-4 hover:underline active:underline;
20 | }
21 |
22 | .btn--ghost {
23 | @apply hover:bg-accent hover:text-accent-foreground dark:hover:bg-accent/50 h-9 px-4 py-2 text-neutral-900;
24 | }
25 |
26 | .btn--destructive {
27 | @apply bg-destructive hover:bg-destructive/90 focus-visible:ring-destructive/20 dark:focus-visible:ring-destructive/40 dark:bg-destructive/60 h-9 px-4 py-2 text-white shadow-xs;
28 | }
29 |
30 | .btn--round {
31 | @apply w-9 rounded-full p-0;
32 | }
33 |
34 | .btn--square {
35 | @apply w-9 p-0;
36 | }
37 |
38 | .btn--sm {
39 | @apply h-8 gap-1.5 px-3 has-[>svg]:px-2.5;
40 |
41 | &.btn--round,
42 | &.btn--square {
43 | @apply w-8;
44 | }
45 | }
46 |
47 | .btn--lg {
48 | @apply h-10 px-6 has-[>svg]:px-4;
49 | }
50 |
51 | .btn--xl {
52 | @apply h-12 px-8 has-[>svg]:px-4;
53 | }
54 | }
55 |
--------------------------------------------------------------------------------
/export/resources/views/blocks/search-results.blade.php:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 | {{--
6 | You can set index in config/statamic/search.php
7 | Docs: https://statamic.dev/search#indexes
8 | --}}
9 |
16 | @isset($results)
17 |
18 |
19 |
23 |
24 |
25 | @forelse ($results as $result)
26 |
35 | @empty
36 |
37 |
{!! $block->no_results_text !!}
38 |
39 | @endforelse
40 |
41 | @endisset
42 |
43 | @isset($paginate)
44 |
45 | @endisset
46 |
47 |
48 |
49 |
--------------------------------------------------------------------------------
/export/resources/views/layout.blade.php:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
6 |
7 |
8 | @include('partials.seo')
9 | @include('partials.browser-appearance')
10 |
11 |
12 |
13 | {{--
14 | Async-load fonts:
15 | 1) Preload fonts.css (rel="preload" as="style") so it starts downloading early without applying.
16 | 2) Load again with media="print", then switch to media="all" onload to avoid render blocking.
17 | With font-display: swap in fonts.css, fallback text paints immediately; the webfont swaps in when ready.
18 | --}}
19 |
20 |
25 |
26 | {{-- Scripts global --}}
27 | {!! $scripts->code_head !!}
28 |
29 |
32 | @include('partials.skip-to-content')
33 | @yield('seo_body')
34 |
35 | {{-- Banner global --}}
36 |
37 |
38 | @include('partials.header')
39 | @yield('body')
40 | @include('partials.footer')
41 |
42 | {{-- Control panel toolbar --}}
43 |
44 |
45 | {{-- Notifications --}}
46 |
47 |
48 | {{-- Push scripts when various components are added --}}
49 | @stack('scripts')
50 |
51 |
52 | {{-- Scripts global --}}
53 | {!! $scripts->code_footer !!}
54 |
55 |
56 |
--------------------------------------------------------------------------------
/export/resources/js/components/toaster.js:
--------------------------------------------------------------------------------
1 | const VISIBLE_TOASTS_LIMIT = 3
2 | const TOAST_LIFETIME = 4000
3 | const ALLOWED_TYPES = ['success', 'error', 'warning', 'info', 'default']
4 |
5 | // To show a toast, dispatch a custom event:
6 | // this.$dispatch('toast', { message: 'Hello, world!', description: 'This is a description', type: 'success', dismissible: true })
7 |
8 | document.addEventListener('alpine:init', () => {
9 | Alpine.data('toaster', () => {
10 | return {
11 | toasts: [],
12 | toastsCounter: 1,
13 |
14 | enqueue(detail) {
15 | const toast = this.create(detail)
16 |
17 | if (!toast) {
18 | return
19 | }
20 |
21 | if (this.toasts.length >= VISIBLE_TOASTS_LIMIT) {
22 | this.dismiss(this.toasts[0]?.id)
23 | }
24 |
25 | this.toasts.push(toast)
26 |
27 | toast.timeout = window.setTimeout(() => {
28 | this.dismiss(toast.id)
29 | }, TOAST_LIFETIME)
30 | },
31 |
32 | dismiss(id) {
33 | if (!id) {
34 | return
35 | }
36 |
37 | const toast = this.toasts.find(item => item.id === id)
38 |
39 | if (!toast) {
40 | return
41 | }
42 |
43 | if (toast.timeout) {
44 | window.clearTimeout(toast.timeout)
45 | }
46 |
47 | this.toasts = this.toasts.filter(item => item.id !== id)
48 | },
49 |
50 | create(detail) {
51 | const id = this.toastsCounter++
52 | const type = this.resolveType(detail.type)
53 | const message = detail.message ?? ''
54 | const description = detail.description ?? ''
55 |
56 | if (!message && !description) {
57 | return null
58 | }
59 |
60 | return {
61 | id: this.$id('toast', id),
62 | message,
63 | description,
64 | type,
65 | dismissible: Boolean(detail?.dismissible),
66 | timeout: null,
67 | }
68 | },
69 |
70 | resolveType(type) {
71 | return ALLOWED_TYPES.includes(type) ? type : 'default'
72 | },
73 | }
74 | })
75 | })
76 |
--------------------------------------------------------------------------------