@jxsuite/starters 0.34.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (440) hide show
  1. package/index.ts +72 -0
  2. package/package.json +28 -0
  3. package/registry.json +178 -0
  4. package/sites/blog/components/bl-author-bio.json +82 -0
  5. package/sites/blog/components/bl-contact-form.json +114 -0
  6. package/sites/blog/components/bl-contact-info.json +54 -0
  7. package/sites/blog/components/bl-cta.json +62 -0
  8. package/sites/blog/components/bl-footer.json +145 -0
  9. package/sites/blog/components/bl-masthead.json +128 -0
  10. package/sites/blog/components/bl-nav.json +97 -0
  11. package/sites/blog/components/bl-newsletter-cta.json +120 -0
  12. package/sites/blog/components/bl-post-card.json +114 -0
  13. package/sites/blog/components/bl-post-list.json +17 -0
  14. package/sites/blog/components/bl-prose.json +74 -0
  15. package/sites/blog/components/bl-section-header.json +53 -0
  16. package/sites/blog/components/bl-tag-pill.json +26 -0
  17. package/sites/blog/content/posts/designing-for-slowness.md +25 -0
  18. package/sites/blog/content/posts/notes-from-a-long-walk.md +27 -0
  19. package/sites/blog/content/posts/the-city-as-a-text.md +27 -0
  20. package/sites/blog/content/posts/the-quiet-craft-of-revision.md +27 -0
  21. package/sites/blog/content/posts/tools-that-disappear.md +27 -0
  22. package/sites/blog/content/posts/what-i-learned-rereading.md +27 -0
  23. package/sites/blog/images.json +54 -0
  24. package/sites/blog/layouts/base.json +22 -0
  25. package/sites/blog/layouts/post.json +15 -0
  26. package/sites/blog/package.json +15 -0
  27. package/sites/blog/pages/[slug].json +148 -0
  28. package/sites/blog/pages/about.md +32 -0
  29. package/sites/blog/pages/contact.md +18 -0
  30. package/sites/blog/pages/index.md +48 -0
  31. package/sites/blog/project.json +107 -0
  32. package/sites/blog/public/favicon.svg +6 -0
  33. package/sites/blog/public/images/author.jpg +0 -0
  34. package/sites/blog/public/images/hero.jpg +0 -0
  35. package/sites/blog/public/images/post-1.jpg +0 -0
  36. package/sites/blog/public/images/post-2.jpg +0 -0
  37. package/sites/blog/public/images/post-3.jpg +0 -0
  38. package/sites/blog/public/images/post-4.jpg +0 -0
  39. package/sites/blog/public/images/post-5.jpg +0 -0
  40. package/sites/blog/public/images/post-6.jpg +0 -0
  41. package/sites/course/components/co-application.json +170 -0
  42. package/sites/course/components/co-cta.json +74 -0
  43. package/sites/course/components/co-curriculum-accordion.json +1476 -0
  44. package/sites/course/components/co-faq.json +524 -0
  45. package/sites/course/components/co-footer.json +145 -0
  46. package/sites/course/components/co-hero.json +139 -0
  47. package/sites/course/components/co-instructor-card.json +76 -0
  48. package/sites/course/components/co-module-card.json +93 -0
  49. package/sites/course/components/co-nav.json +119 -0
  50. package/sites/course/components/co-outcome-card.json +58 -0
  51. package/sites/course/components/co-pricing.json +133 -0
  52. package/sites/course/components/co-section-header.json +53 -0
  53. package/sites/course/components/co-stat.json +36 -0
  54. package/sites/course/components/co-testimonial-card.json +54 -0
  55. package/sites/course/content/modules/backend.md +8 -0
  56. package/sites/course/content/modules/capstone.md +8 -0
  57. package/sites/course/content/modules/foundations.md +8 -0
  58. package/sites/course/content/modules/frameworks.md +8 -0
  59. package/sites/course/content/modules/html-css.md +8 -0
  60. package/sites/course/content/modules/javascript.md +8 -0
  61. package/sites/course/images.json +24 -0
  62. package/sites/course/layouts/base.json +22 -0
  63. package/sites/course/package.json +15 -0
  64. package/sites/course/pages/about.md +44 -0
  65. package/sites/course/pages/curriculum.md +31 -0
  66. package/sites/course/pages/enroll.md +46 -0
  67. package/sites/course/pages/index.md +86 -0
  68. package/sites/course/project.json +102 -0
  69. package/sites/course/public/favicon.svg +5 -0
  70. package/sites/course/public/images/about.jpg +0 -0
  71. package/sites/course/public/images/hero.jpg +0 -0
  72. package/sites/course/public/images/instructor.jpg +0 -0
  73. package/sites/event/components/ev-agenda-tabs.json +542 -0
  74. package/sites/event/components/ev-cta.json +97 -0
  75. package/sites/event/components/ev-feature.json +58 -0
  76. package/sites/event/components/ev-footer.json +145 -0
  77. package/sites/event/components/ev-hero.json +196 -0
  78. package/sites/event/components/ev-nav.json +123 -0
  79. package/sites/event/components/ev-savedate.json +244 -0
  80. package/sites/event/components/ev-section-header.json +53 -0
  81. package/sites/event/components/ev-session-row.json +72 -0
  82. package/sites/event/components/ev-speaker-card.json +84 -0
  83. package/sites/event/components/ev-stat.json +42 -0
  84. package/sites/event/components/ev-ticket-card.json +196 -0
  85. package/sites/event/components/ev-venue.json +59 -0
  86. package/sites/event/content/sessions/01-opening-keynote.md +9 -0
  87. package/sites/event/content/sessions/02-designing-for-trust.md +9 -0
  88. package/sites/event/content/sessions/03-reactive-islands.md +9 -0
  89. package/sites/event/content/sessions/04-scaling-systems.md +9 -0
  90. package/sites/event/content/sessions/05-motion-and-meaning.md +9 -0
  91. package/sites/event/content/sessions/06-ship-it.md +9 -0
  92. package/sites/event/images.json +42 -0
  93. package/sites/event/layouts/base.json +22 -0
  94. package/sites/event/package.json +15 -0
  95. package/sites/event/pages/index.md +65 -0
  96. package/sites/event/pages/schedule.md +89 -0
  97. package/sites/event/pages/speakers.md +102 -0
  98. package/sites/event/pages/tickets.md +33 -0
  99. package/sites/event/project.json +103 -0
  100. package/sites/event/public/favicon.svg +5 -0
  101. package/sites/event/public/images/hero.jpg +0 -0
  102. package/sites/event/public/images/speaker-1.jpg +0 -0
  103. package/sites/event/public/images/speaker-2.jpg +0 -0
  104. package/sites/event/public/images/speaker-3.jpg +0 -0
  105. package/sites/event/public/images/speaker-4.jpg +0 -0
  106. package/sites/event/public/images/venue.jpg +0 -0
  107. package/sites/fitness-studio/components/fs-class-card.json +112 -0
  108. package/sites/fitness-studio/components/fs-class-grid.json +36 -0
  109. package/sites/fitness-studio/components/fs-cta.json +62 -0
  110. package/sites/fitness-studio/components/fs-feature.json +42 -0
  111. package/sites/fitness-studio/components/fs-footer.json +145 -0
  112. package/sites/fitness-studio/components/fs-hero.json +128 -0
  113. package/sites/fitness-studio/components/fs-hours.json +90 -0
  114. package/sites/fitness-studio/components/fs-instructor-card.json +73 -0
  115. package/sites/fitness-studio/components/fs-intro.json +59 -0
  116. package/sites/fitness-studio/components/fs-nav.json +97 -0
  117. package/sites/fitness-studio/components/fs-pricing-card.json +223 -0
  118. package/sites/fitness-studio/components/fs-pricing-table.json +458 -0
  119. package/sites/fitness-studio/components/fs-review.json +54 -0
  120. package/sites/fitness-studio/components/fs-section-header.json +53 -0
  121. package/sites/fitness-studio/content/classes/hiit-circuit.md +10 -0
  122. package/sites/fitness-studio/content/classes/pilates-core.md +10 -0
  123. package/sites/fitness-studio/content/classes/power-yoga.md +10 -0
  124. package/sites/fitness-studio/content/classes/restorative-yoga.md +10 -0
  125. package/sites/fitness-studio/content/classes/strength-tone.md +10 -0
  126. package/sites/fitness-studio/content/classes/vinyasa-flow.md +10 -0
  127. package/sites/fitness-studio/images.json +48 -0
  128. package/sites/fitness-studio/layouts/base.json +22 -0
  129. package/sites/fitness-studio/package.json +15 -0
  130. package/sites/fitness-studio/pages/classes.md +37 -0
  131. package/sites/fitness-studio/pages/contact.md +53 -0
  132. package/sites/fitness-studio/pages/index.md +112 -0
  133. package/sites/fitness-studio/pages/pricing.md +41 -0
  134. package/sites/fitness-studio/project.json +104 -0
  135. package/sites/fitness-studio/public/favicon.svg +5 -0
  136. package/sites/fitness-studio/public/images/about.jpg +0 -0
  137. package/sites/fitness-studio/public/images/class-1.jpg +0 -0
  138. package/sites/fitness-studio/public/images/class-2.jpg +0 -0
  139. package/sites/fitness-studio/public/images/class-3.jpg +0 -0
  140. package/sites/fitness-studio/public/images/hero.jpg +0 -0
  141. package/sites/fitness-studio/public/images/instructor-1.jpg +0 -0
  142. package/sites/fitness-studio/public/images/instructor-2.jpg +0 -0
  143. package/sites/home-services/components/hs-cta.json +123 -0
  144. package/sites/home-services/components/hs-feature.json +43 -0
  145. package/sites/home-services/components/hs-footer.json +157 -0
  146. package/sites/home-services/components/hs-gallery.json +53 -0
  147. package/sites/home-services/components/hs-hero.json +128 -0
  148. package/sites/home-services/components/hs-intro.json +59 -0
  149. package/sites/home-services/components/hs-nav.json +113 -0
  150. package/sites/home-services/components/hs-reservation.json +146 -0
  151. package/sites/home-services/components/hs-review.json +54 -0
  152. package/sites/home-services/components/hs-section-header.json +53 -0
  153. package/sites/home-services/components/hs-service-card.json +79 -0
  154. package/sites/home-services/components/hs-step.json +53 -0
  155. package/sites/home-services/components/hs-trust-bar.json +108 -0
  156. package/sites/home-services/content/services/ac-installation.md +8 -0
  157. package/sites/home-services/content/services/ac-repair.md +8 -0
  158. package/sites/home-services/content/services/furnace-installation.md +8 -0
  159. package/sites/home-services/content/services/furnace-repair.md +8 -0
  160. package/sites/home-services/content/services/heat-pumps.md +8 -0
  161. package/sites/home-services/content/services/maintenance-plans.md +8 -0
  162. package/sites/home-services/images.json +42 -0
  163. package/sites/home-services/layouts/base.json +22 -0
  164. package/sites/home-services/package.json +15 -0
  165. package/sites/home-services/pages/about.md +40 -0
  166. package/sites/home-services/pages/contact.md +53 -0
  167. package/sites/home-services/pages/index.md +87 -0
  168. package/sites/home-services/pages/services.md +39 -0
  169. package/sites/home-services/project.json +103 -0
  170. package/sites/home-services/public/favicon.svg +7 -0
  171. package/sites/home-services/public/images/about.jpg +0 -0
  172. package/sites/home-services/public/images/cta-bg.jpg +0 -0
  173. package/sites/home-services/public/images/gallery-1.jpg +0 -0
  174. package/sites/home-services/public/images/gallery-2.jpg +0 -0
  175. package/sites/home-services/public/images/gallery-3.jpg +0 -0
  176. package/sites/home-services/public/images/hero.jpg +0 -0
  177. package/sites/nonprofit/components/np-contact-form.json +134 -0
  178. package/sites/nonprofit/components/np-contact-info.json +153 -0
  179. package/sites/nonprofit/components/np-cta.json +128 -0
  180. package/sites/nonprofit/components/np-donate-tier.json +89 -0
  181. package/sites/nonprofit/components/np-feature.json +53 -0
  182. package/sites/nonprofit/components/np-footer.json +187 -0
  183. package/sites/nonprofit/components/np-hero.json +132 -0
  184. package/sites/nonprofit/components/np-intro.json +59 -0
  185. package/sites/nonprofit/components/np-nav.json +137 -0
  186. package/sites/nonprofit/components/np-program-card.json +69 -0
  187. package/sites/nonprofit/components/np-section-header.json +53 -0
  188. package/sites/nonprofit/components/np-stat.json +48 -0
  189. package/sites/nonprofit/components/np-step.json +55 -0
  190. package/sites/nonprofit/components/np-team-member.json +67 -0
  191. package/sites/nonprofit/components/np-testimonial.json +54 -0
  192. package/sites/nonprofit/content/programs/community-garden.md +8 -0
  193. package/sites/nonprofit/content/programs/food-pantry.md +8 -0
  194. package/sites/nonprofit/content/programs/housing-support.md +8 -0
  195. package/sites/nonprofit/content/programs/job-training.md +8 -0
  196. package/sites/nonprofit/content/programs/youth-mentoring.md +8 -0
  197. package/sites/nonprofit/images.json +54 -0
  198. package/sites/nonprofit/layouts/base.json +22 -0
  199. package/sites/nonprofit/package.json +15 -0
  200. package/sites/nonprofit/pages/about.md +54 -0
  201. package/sites/nonprofit/pages/contact.md +17 -0
  202. package/sites/nonprofit/pages/get-involved.md +63 -0
  203. package/sites/nonprofit/pages/index.md +87 -0
  204. package/sites/nonprofit/pages/programs.md +39 -0
  205. package/sites/nonprofit/project.json +103 -0
  206. package/sites/nonprofit/public/favicon.svg +5 -0
  207. package/sites/nonprofit/public/images/about.jpg +0 -0
  208. package/sites/nonprofit/public/images/cta-bg.jpg +0 -0
  209. package/sites/nonprofit/public/images/hero.jpg +0 -0
  210. package/sites/nonprofit/public/images/program-1.jpg +0 -0
  211. package/sites/nonprofit/public/images/program-2.jpg +0 -0
  212. package/sites/nonprofit/public/images/program-3.jpg +0 -0
  213. package/sites/nonprofit/public/images/program-4.jpg +0 -0
  214. package/sites/nonprofit/public/images/program-5.jpg +0 -0
  215. package/sites/portfolio/components/pv-about-split.json +59 -0
  216. package/sites/portfolio/components/pv-category-pill.json +24 -0
  217. package/sites/portfolio/components/pv-contact-form.json +137 -0
  218. package/sites/portfolio/components/pv-cta.json +64 -0
  219. package/sites/portfolio/components/pv-feature.json +48 -0
  220. package/sites/portfolio/components/pv-footer.json +145 -0
  221. package/sites/portfolio/components/pv-gallery.json +50 -0
  222. package/sites/portfolio/components/pv-hero.json +132 -0
  223. package/sites/portfolio/components/pv-nav.json +106 -0
  224. package/sites/portfolio/components/pv-project-card.json +103 -0
  225. package/sites/portfolio/components/pv-project-grid.json +22 -0
  226. package/sites/portfolio/components/pv-section-header.json +53 -0
  227. package/sites/portfolio/content/projects/architecture.md +12 -0
  228. package/sites/portfolio/content/projects/editorial.md +12 -0
  229. package/sites/portfolio/content/projects/food.md +12 -0
  230. package/sites/portfolio/content/projects/portraits.md +12 -0
  231. package/sites/portfolio/content/projects/travel.md +12 -0
  232. package/sites/portfolio/content/projects/weddings.md +12 -0
  233. package/sites/portfolio/images.json +54 -0
  234. package/sites/portfolio/layouts/base.json +22 -0
  235. package/sites/portfolio/package.json +15 -0
  236. package/sites/portfolio/pages/[slug].json +260 -0
  237. package/sites/portfolio/pages/about.md +40 -0
  238. package/sites/portfolio/pages/contact.md +42 -0
  239. package/sites/portfolio/pages/index.md +45 -0
  240. package/sites/portfolio/pages/work.md +39 -0
  241. package/sites/portfolio/project.json +105 -0
  242. package/sites/portfolio/public/favicon.svg +7 -0
  243. package/sites/portfolio/public/images/about.jpg +0 -0
  244. package/sites/portfolio/public/images/hero.jpg +0 -0
  245. package/sites/portfolio/public/images/project-1.jpg +0 -0
  246. package/sites/portfolio/public/images/project-2.jpg +0 -0
  247. package/sites/portfolio/public/images/project-3.jpg +0 -0
  248. package/sites/portfolio/public/images/project-4.jpg +0 -0
  249. package/sites/portfolio/public/images/project-5.jpg +0 -0
  250. package/sites/portfolio/public/images/project-6.jpg +0 -0
  251. package/sites/professional-firm/components/pf-article-header.json +79 -0
  252. package/sites/professional-firm/components/pf-contact-form.json +138 -0
  253. package/sites/professional-firm/components/pf-cta.json +62 -0
  254. package/sites/professional-firm/components/pf-feature.json +55 -0
  255. package/sites/professional-firm/components/pf-footer.json +172 -0
  256. package/sites/professional-firm/components/pf-hero.json +128 -0
  257. package/sites/professional-firm/components/pf-insight-card.json +99 -0
  258. package/sites/professional-firm/components/pf-intro.json +59 -0
  259. package/sites/professional-firm/components/pf-logo-bar.json +112 -0
  260. package/sites/professional-firm/components/pf-nav.json +110 -0
  261. package/sites/professional-firm/components/pf-section-header.json +53 -0
  262. package/sites/professional-firm/components/pf-service-card.json +77 -0
  263. package/sites/professional-firm/components/pf-stat.json +37 -0
  264. package/sites/professional-firm/components/pf-team-member.json +70 -0
  265. package/sites/professional-firm/content/insights/cash-flow-forecasting.md +15 -0
  266. package/sites/professional-firm/content/insights/choosing-business-entity.md +15 -0
  267. package/sites/professional-firm/content/insights/r-and-d-tax-credits.md +15 -0
  268. package/sites/professional-firm/content/insights/when-to-hire-cfo.md +15 -0
  269. package/sites/professional-firm/content/insights/year-end-tax-moves.md +15 -0
  270. package/sites/professional-firm/images.json +48 -0
  271. package/sites/professional-firm/layouts/article.json +48 -0
  272. package/sites/professional-firm/layouts/base.json +22 -0
  273. package/sites/professional-firm/package.json +15 -0
  274. package/sites/professional-firm/pages/contact.md +36 -0
  275. package/sites/professional-firm/pages/index.md +81 -0
  276. package/sites/professional-firm/pages/insights/[slug].json +118 -0
  277. package/sites/professional-firm/pages/insights.md +29 -0
  278. package/sites/professional-firm/pages/services.md +39 -0
  279. package/sites/professional-firm/pages/team.md +33 -0
  280. package/sites/professional-firm/project.json +104 -0
  281. package/sites/professional-firm/public/favicon.svg +5 -0
  282. package/sites/professional-firm/public/images/about.jpg +0 -0
  283. package/sites/professional-firm/public/images/hero.jpg +0 -0
  284. package/sites/professional-firm/public/images/insight-cover.jpg +0 -0
  285. package/sites/professional-firm/public/images/team-1.jpg +0 -0
  286. package/sites/professional-firm/public/images/team-2.jpg +0 -0
  287. package/sites/professional-firm/public/images/team-3.jpg +0 -0
  288. package/sites/professional-firm/public/images/team-4.jpg +0 -0
  289. package/sites/real-estate/components/re-agent-card.json +66 -0
  290. package/sites/real-estate/components/re-contact-form.json +132 -0
  291. package/sites/real-estate/components/re-cta.json +63 -0
  292. package/sites/real-estate/components/re-detail-row.json +26 -0
  293. package/sites/real-estate/components/re-feature.json +53 -0
  294. package/sites/real-estate/components/re-footer.json +151 -0
  295. package/sites/real-estate/components/re-hero.json +183 -0
  296. package/sites/real-estate/components/re-intro.json +59 -0
  297. package/sites/real-estate/components/re-listing-card.json +126 -0
  298. package/sites/real-estate/components/re-listings-filter.json +337 -0
  299. package/sites/real-estate/components/re-nav.json +117 -0
  300. package/sites/real-estate/components/re-section-header.json +53 -0
  301. package/sites/real-estate/components/re-stat.json +36 -0
  302. package/sites/real-estate/components/re-step.json +55 -0
  303. package/sites/real-estate/components/re-testimonial.json +54 -0
  304. package/sites/real-estate/content/listings.csv +7 -0
  305. package/sites/real-estate/images.json +84 -0
  306. package/sites/real-estate/layouts/base.json +22 -0
  307. package/sites/real-estate/package.json +15 -0
  308. package/sites/real-estate/pages/[slug].json +327 -0
  309. package/sites/real-estate/pages/about.md +42 -0
  310. package/sites/real-estate/pages/contact.md +54 -0
  311. package/sites/real-estate/pages/index.md +77 -0
  312. package/sites/real-estate/pages/listings.md +13 -0
  313. package/sites/real-estate/project.json +109 -0
  314. package/sites/real-estate/public/favicon.svg +5 -0
  315. package/sites/real-estate/public/images/about.jpg +0 -0
  316. package/sites/real-estate/public/images/agent-1.jpg +0 -0
  317. package/sites/real-estate/public/images/agent-2.jpg +0 -0
  318. package/sites/real-estate/public/images/agent-3.jpg +0 -0
  319. package/sites/real-estate/public/images/hero.jpg +0 -0
  320. package/sites/real-estate/public/images/interior-1.jpg +0 -0
  321. package/sites/real-estate/public/images/interior-2.jpg +0 -0
  322. package/sites/real-estate/public/images/listing-1.jpg +0 -0
  323. package/sites/real-estate/public/images/listing-2.jpg +0 -0
  324. package/sites/real-estate/public/images/listing-3.jpg +0 -0
  325. package/sites/real-estate/public/images/listing-4.jpg +0 -0
  326. package/sites/real-estate/public/images/listing-5.jpg +0 -0
  327. package/sites/real-estate/public/images/listing-6.jpg +0 -0
  328. package/sites/restaurant/components/bit-cta.json +62 -0
  329. package/sites/restaurant/components/bit-feature.json +42 -0
  330. package/sites/restaurant/components/bit-footer.json +145 -0
  331. package/sites/restaurant/components/bit-gallery.json +65 -0
  332. package/sites/restaurant/components/bit-hero.json +128 -0
  333. package/sites/restaurant/components/bit-hours.json +90 -0
  334. package/sites/restaurant/components/bit-intro.json +59 -0
  335. package/sites/restaurant/components/bit-menu-group.json +29 -0
  336. package/sites/restaurant/components/bit-menu-item.json +57 -0
  337. package/sites/restaurant/components/bit-nav.json +97 -0
  338. package/sites/restaurant/components/bit-reservation.json +134 -0
  339. package/sites/restaurant/components/bit-review.json +54 -0
  340. package/sites/restaurant/components/bit-section-header.json +53 -0
  341. package/sites/restaurant/content/menu/bruschetta.md +9 -0
  342. package/sites/restaurant/content/menu/cappuccino.md +9 -0
  343. package/sites/restaurant/content/menu/chocolate-tart.md +9 -0
  344. package/sites/restaurant/content/menu/house-coffee.md +9 -0
  345. package/sites/restaurant/content/menu/mushroom-tagliatelle.md +9 -0
  346. package/sites/restaurant/content/menu/roast-chicken.md +9 -0
  347. package/sites/restaurant/content/menu/seared-salmon.md +9 -0
  348. package/sites/restaurant/content/menu/squash-soup.md +9 -0
  349. package/sites/restaurant/content/menu/tiramisu.md +9 -0
  350. package/sites/restaurant/images.json +66 -0
  351. package/sites/restaurant/layouts/base.json +22 -0
  352. package/sites/restaurant/package.json +15 -0
  353. package/sites/restaurant/pages/about.md +30 -0
  354. package/sites/restaurant/pages/contact.md +28 -0
  355. package/sites/restaurant/pages/index.md +63 -0
  356. package/sites/restaurant/pages/menu.md +80 -0
  357. package/sites/restaurant/project.json +105 -0
  358. package/sites/restaurant/public/favicon.svg +7 -0
  359. package/sites/restaurant/public/images/about.jpg +0 -0
  360. package/sites/restaurant/public/images/dish-desserts.jpg +0 -0
  361. package/sites/restaurant/public/images/dish-mains.jpg +0 -0
  362. package/sites/restaurant/public/images/dish-starters.jpg +0 -0
  363. package/sites/restaurant/public/images/gallery-1.jpg +0 -0
  364. package/sites/restaurant/public/images/gallery-2.jpg +0 -0
  365. package/sites/restaurant/public/images/gallery-3.jpg +0 -0
  366. package/sites/restaurant/public/images/gallery-4.jpg +0 -0
  367. package/sites/restaurant/public/images/hero.jpg +0 -0
  368. package/sites/restaurant/public/images/intro.jpg +0 -0
  369. package/sites/saas/components/sa-check-item.json +40 -0
  370. package/sites/saas/components/sa-contact-form.json +153 -0
  371. package/sites/saas/components/sa-cta.json +102 -0
  372. package/sites/saas/components/sa-faq.json +413 -0
  373. package/sites/saas/components/sa-feature-card.json +59 -0
  374. package/sites/saas/components/sa-feature-split.json +60 -0
  375. package/sites/saas/components/sa-footer.json +145 -0
  376. package/sites/saas/components/sa-hero.json +160 -0
  377. package/sites/saas/components/sa-logo-cloud.json +119 -0
  378. package/sites/saas/components/sa-nav.json +130 -0
  379. package/sites/saas/components/sa-pricing.json +427 -0
  380. package/sites/saas/components/sa-section-header.json +55 -0
  381. package/sites/saas/components/sa-stat.json +40 -0
  382. package/sites/saas/components/sa-testimonial-card.json +57 -0
  383. package/sites/saas/content/testimonials/marcus-bell.md +8 -0
  384. package/sites/saas/content/testimonials/nadia-okafor.md +8 -0
  385. package/sites/saas/content/testimonials/priya-raman.md +8 -0
  386. package/sites/saas/content/testimonials/theo-lindqvist.md +8 -0
  387. package/sites/saas/images.json +30 -0
  388. package/sites/saas/layouts/base.json +22 -0
  389. package/sites/saas/package.json +15 -0
  390. package/sites/saas/pages/contact.md +39 -0
  391. package/sites/saas/pages/features.md +87 -0
  392. package/sites/saas/pages/index.md +122 -0
  393. package/sites/saas/pages/pricing.md +39 -0
  394. package/sites/saas/project.json +134 -0
  395. package/sites/saas/public/favicon.svg +5 -0
  396. package/sites/saas/public/images/feature-1.jpg +0 -0
  397. package/sites/saas/public/images/feature-2.jpg +0 -0
  398. package/sites/saas/public/images/feature-3.jpg +0 -0
  399. package/sites/saas/public/images/hero.jpg +0 -0
  400. package/sites/shop/components/shp-badge.json +18 -0
  401. package/sites/shop/components/shp-contact-form.json +156 -0
  402. package/sites/shop/components/shp-cta.json +63 -0
  403. package/sites/shop/components/shp-feature.json +55 -0
  404. package/sites/shop/components/shp-footer.json +145 -0
  405. package/sites/shop/components/shp-hero.json +128 -0
  406. package/sites/shop/components/shp-intro.json +59 -0
  407. package/sites/shop/components/shp-nav.json +104 -0
  408. package/sites/shop/components/shp-product-card.json +131 -0
  409. package/sites/shop/components/shp-product-filter.json +184 -0
  410. package/sites/shop/components/shp-review.json +54 -0
  411. package/sites/shop/components/shp-section-header.json +53 -0
  412. package/sites/shop/components/shp-service.json +83 -0
  413. package/sites/shop/components/shp-stat.json +37 -0
  414. package/sites/shop/components/shp-visit-info.json +132 -0
  415. package/sites/shop/content/product/aero-road-helmet.md +10 -0
  416. package/sites/shop/content/product/apex-carbon-road.md +10 -0
  417. package/sites/shop/content/product/backroad-gravel-adv.md +10 -0
  418. package/sites/shop/content/product/boulder-enduro.md +10 -0
  419. package/sites/shop/content/product/rambler-kids-20.md +10 -0
  420. package/sites/shop/content/product/summit-trail-29er.md +10 -0
  421. package/sites/shop/content/product/trailhead-pannier-set.md +10 -0
  422. package/sites/shop/content/product/velocity-alloy-road.md +10 -0
  423. package/sites/shop/images.json +54 -0
  424. package/sites/shop/layouts/base.json +22 -0
  425. package/sites/shop/package.json +15 -0
  426. package/sites/shop/pages/about.md +42 -0
  427. package/sites/shop/pages/contact.md +15 -0
  428. package/sites/shop/pages/index.md +82 -0
  429. package/sites/shop/pages/products/[sku].json +191 -0
  430. package/sites/shop/pages/products.md +29 -0
  431. package/sites/shop/project.json +105 -0
  432. package/sites/shop/public/favicon.svg +6 -0
  433. package/sites/shop/public/images/about.jpg +0 -0
  434. package/sites/shop/public/images/hero.jpg +0 -0
  435. package/sites/shop/public/images/product-1.jpg +0 -0
  436. package/sites/shop/public/images/product-2.jpg +0 -0
  437. package/sites/shop/public/images/product-3.jpg +0 -0
  438. package/sites/shop/public/images/product-4.jpg +0 -0
  439. package/sites/shop/public/images/product-5.jpg +0 -0
  440. package/sites/shop/public/images/product-6.jpg +0 -0
@@ -0,0 +1,99 @@
1
+ {
2
+ "tagName": "pf-insight-card",
3
+ "state": {
4
+ "title": "",
5
+ "excerpt": "",
6
+ "date": "",
7
+ "author": "",
8
+ "href": "/insights/"
9
+ },
10
+ "style": {
11
+ "display": "flex",
12
+ "flexDirection": "column",
13
+ "backgroundColor": "var(--color-bg-white)",
14
+ "borderRadius": "var(--radius)",
15
+ "border": "1px solid var(--color-border)",
16
+ "padding": "1.75rem",
17
+ "transition": "box-shadow 0.15s, border-color 0.15s",
18
+ ":hover": {
19
+ "boxShadow": "0 12px 32px rgba(15,23,42,0.10)",
20
+ "borderColor": "var(--color-primary)"
21
+ }
22
+ },
23
+ "children": [
24
+ {
25
+ "tagName": "div",
26
+ "style": {
27
+ "display": "flex",
28
+ "gap": "0.6rem",
29
+ "alignItems": "center",
30
+ "fontSize": "0.8rem",
31
+ "color": "var(--color-text-muted)",
32
+ "textTransform": "uppercase",
33
+ "letterSpacing": "0.08em",
34
+ "marginBottom": "0.9rem"
35
+ },
36
+ "children": [
37
+ {
38
+ "tagName": "span",
39
+ "textContent": "${state.date}"
40
+ },
41
+ {
42
+ "tagName": "span",
43
+ "style": { "display": "${state.author ? 'inline' : 'none'}", "opacity": "0.5" },
44
+ "textContent": "·"
45
+ },
46
+ {
47
+ "tagName": "span",
48
+ "style": { "display": "${state.author ? 'inline' : 'none'}" },
49
+ "textContent": "${state.author}"
50
+ }
51
+ ]
52
+ },
53
+ {
54
+ "tagName": "h3",
55
+ "style": {
56
+ "fontFamily": "var(--font-heading)",
57
+ "fontSize": "1.3rem",
58
+ "fontWeight": "600",
59
+ "lineHeight": "1.25",
60
+ "margin": "0 0 0.6rem"
61
+ },
62
+ "children": [
63
+ {
64
+ "tagName": "a",
65
+ "attributes": { "href": "${state.href}" },
66
+ "style": {
67
+ "color": "var(--color-text-primary)",
68
+ "textDecoration": "none",
69
+ ":hover": { "color": "var(--color-primary)" }
70
+ },
71
+ "textContent": "${state.title}"
72
+ }
73
+ ]
74
+ },
75
+ {
76
+ "tagName": "p",
77
+ "style": {
78
+ "margin": "0 0 1.25rem",
79
+ "color": "var(--color-text-muted)",
80
+ "fontSize": "0.98rem",
81
+ "lineHeight": "1.65",
82
+ "flex": "1"
83
+ },
84
+ "textContent": "${state.excerpt}"
85
+ },
86
+ {
87
+ "tagName": "a",
88
+ "attributes": { "href": "${state.href}" },
89
+ "style": {
90
+ "color": "var(--color-primary)",
91
+ "fontWeight": "600",
92
+ "fontSize": "0.95rem",
93
+ "textDecoration": "none",
94
+ ":hover": { "color": "var(--color-primary-hover)" }
95
+ },
96
+ "textContent": "Read insight →"
97
+ }
98
+ ]
99
+ }
@@ -0,0 +1,59 @@
1
+ {
2
+ "tagName": "pf-intro",
3
+ "state": {
4
+ "image": { "type": "string", "format": "image", "default": "" },
5
+ "imageAlt": "",
6
+ "reverse": false
7
+ },
8
+ "style": {
9
+ "display": "block",
10
+ "padding": "clamp(3.5rem, 8vw, 6rem) 1.5rem"
11
+ },
12
+ "children": [
13
+ {
14
+ "tagName": "div",
15
+ "style": {
16
+ "maxWidth": "var(--max-width)",
17
+ "margin": "0 auto",
18
+ "display": "grid",
19
+ "gridTemplateColumns": "1fr 1fr",
20
+ "gap": "clamp(2rem, 5vw, 4rem)",
21
+ "alignItems": "center",
22
+ "@--md": { "gridTemplateColumns": "1fr" }
23
+ },
24
+ "children": [
25
+ {
26
+ "tagName": "div",
27
+ "style": { "order": "${state.reverse ? '2' : '1'}" },
28
+ "children": [
29
+ {
30
+ "tagName": "img",
31
+ "attributes": {
32
+ "src": "${state.image}",
33
+ "alt": "${state.imageAlt}",
34
+ "loading": "lazy"
35
+ },
36
+ "style": {
37
+ "width": "100%",
38
+ "height": "auto",
39
+ "borderRadius": "var(--radius)",
40
+ "display": "block",
41
+ "boxShadow": "0 12px 40px rgba(15,23,42,0.14)"
42
+ }
43
+ }
44
+ ]
45
+ },
46
+ {
47
+ "tagName": "div",
48
+ "style": {
49
+ "order": "${state.reverse ? '1' : '2'}",
50
+ "fontSize": "1.08rem",
51
+ "lineHeight": "1.8",
52
+ "color": "var(--color-text-primary)"
53
+ },
54
+ "children": [{ "tagName": "slot" }]
55
+ }
56
+ ]
57
+ }
58
+ ]
59
+ }
@@ -0,0 +1,112 @@
1
+ {
2
+ "tagName": "pf-logo-bar",
3
+ "state": {
4
+ "label": "Trusted by teams across the region",
5
+ "logo1": "Northwind Labs",
6
+ "logo2": "Harbor Freight Co.",
7
+ "logo3": "Cedar & Vine",
8
+ "logo4": "Atlas Robotics",
9
+ "logo5": "Riverstone Health"
10
+ },
11
+ "style": {
12
+ "display": "block",
13
+ "backgroundColor": "var(--color-bg-cream)",
14
+ "borderTop": "1px solid var(--color-border)",
15
+ "borderBottom": "1px solid var(--color-border)",
16
+ "padding": "2.5rem 1.5rem"
17
+ },
18
+ "children": [
19
+ {
20
+ "tagName": "div",
21
+ "style": {
22
+ "maxWidth": "var(--max-width)",
23
+ "margin": "0 auto"
24
+ },
25
+ "children": [
26
+ {
27
+ "tagName": "p",
28
+ "style": {
29
+ "textAlign": "center",
30
+ "textTransform": "uppercase",
31
+ "letterSpacing": "0.14em",
32
+ "fontSize": "0.75rem",
33
+ "fontWeight": "600",
34
+ "color": "var(--color-text-muted)",
35
+ "margin": "0 0 1.5rem"
36
+ },
37
+ "textContent": "${state.label}"
38
+ },
39
+ {
40
+ "tagName": "div",
41
+ "style": {
42
+ "display": "flex",
43
+ "flexWrap": "wrap",
44
+ "alignItems": "center",
45
+ "justifyContent": "space-between",
46
+ "gap": "1.5rem 2.5rem"
47
+ },
48
+ "children": [
49
+ {
50
+ "tagName": "span",
51
+ "style": {
52
+ "fontFamily": "var(--font-heading)",
53
+ "fontSize": "1.2rem",
54
+ "fontWeight": "700",
55
+ "color": "var(--color-text-primary)",
56
+ "opacity": "0.6"
57
+ },
58
+ "textContent": "${state.logo1}"
59
+ },
60
+ {
61
+ "tagName": "span",
62
+ "style": {
63
+ "fontFamily": "var(--font-heading)",
64
+ "fontSize": "1.2rem",
65
+ "fontWeight": "700",
66
+ "color": "var(--color-text-primary)",
67
+ "opacity": "0.6"
68
+ },
69
+ "textContent": "${state.logo2}"
70
+ },
71
+ {
72
+ "tagName": "span",
73
+ "style": {
74
+ "fontFamily": "var(--font-heading)",
75
+ "fontSize": "1.2rem",
76
+ "fontWeight": "700",
77
+ "color": "var(--color-text-primary)",
78
+ "opacity": "0.6",
79
+ "@--sm": { "display": "none" }
80
+ },
81
+ "textContent": "${state.logo3}"
82
+ },
83
+ {
84
+ "tagName": "span",
85
+ "style": {
86
+ "fontFamily": "var(--font-heading)",
87
+ "fontSize": "1.2rem",
88
+ "fontWeight": "700",
89
+ "color": "var(--color-text-primary)",
90
+ "opacity": "0.6",
91
+ "@--md": { "display": "none" }
92
+ },
93
+ "textContent": "${state.logo4}"
94
+ },
95
+ {
96
+ "tagName": "span",
97
+ "style": {
98
+ "fontFamily": "var(--font-heading)",
99
+ "fontSize": "1.2rem",
100
+ "fontWeight": "700",
101
+ "color": "var(--color-text-primary)",
102
+ "opacity": "0.6",
103
+ "@--md": { "display": "none" }
104
+ },
105
+ "textContent": "${state.logo5}"
106
+ }
107
+ ]
108
+ }
109
+ ]
110
+ }
111
+ ]
112
+ }
@@ -0,0 +1,110 @@
1
+ {
2
+ "tagName": "pf-nav",
3
+ "state": {
4
+ "brand": "Meridian Advisory"
5
+ },
6
+ "style": {
7
+ "display": "block",
8
+ "position": "sticky",
9
+ "top": "0",
10
+ "zIndex": "50",
11
+ "backgroundColor": "rgba(255, 255, 255, 0.9)",
12
+ "backdropFilter": "blur(8px)",
13
+ "borderBottom": "1px solid var(--color-border)"
14
+ },
15
+ "children": [
16
+ {
17
+ "tagName": "div",
18
+ "style": {
19
+ "maxWidth": "var(--max-width)",
20
+ "margin": "0 auto",
21
+ "padding": "1rem 1.5rem",
22
+ "display": "flex",
23
+ "alignItems": "center",
24
+ "justifyContent": "space-between",
25
+ "gap": "1.5rem"
26
+ },
27
+ "children": [
28
+ {
29
+ "tagName": "a",
30
+ "attributes": { "href": "/" },
31
+ "style": {
32
+ "fontFamily": "var(--font-heading)",
33
+ "fontSize": "1.4rem",
34
+ "fontWeight": "700",
35
+ "color": "var(--color-text-primary)",
36
+ "textDecoration": "none",
37
+ "letterSpacing": "-0.01em"
38
+ },
39
+ "textContent": "${state.brand}"
40
+ },
41
+ {
42
+ "tagName": "nav",
43
+ "style": {
44
+ "display": "flex",
45
+ "alignItems": "center",
46
+ "gap": "1.75rem",
47
+ "@--sm": { "gap": "1rem" }
48
+ },
49
+ "children": [
50
+ {
51
+ "tagName": "a",
52
+ "attributes": { "href": "/services/" },
53
+ "style": {
54
+ "color": "var(--color-text-primary)",
55
+ "textDecoration": "none",
56
+ "fontWeight": "500",
57
+ "fontSize": "0.95rem",
58
+ ":hover": { "color": "var(--color-primary)" }
59
+ },
60
+ "textContent": "Services"
61
+ },
62
+ {
63
+ "tagName": "a",
64
+ "attributes": { "href": "/team/" },
65
+ "style": {
66
+ "color": "var(--color-text-primary)",
67
+ "textDecoration": "none",
68
+ "fontWeight": "500",
69
+ "fontSize": "0.95rem",
70
+ "@--sm": { "display": "none" },
71
+ ":hover": { "color": "var(--color-primary)" }
72
+ },
73
+ "textContent": "Team"
74
+ },
75
+ {
76
+ "tagName": "a",
77
+ "attributes": { "href": "/insights/" },
78
+ "style": {
79
+ "color": "var(--color-text-primary)",
80
+ "textDecoration": "none",
81
+ "fontWeight": "500",
82
+ "fontSize": "0.95rem",
83
+ "@--sm": { "display": "none" },
84
+ ":hover": { "color": "var(--color-primary)" }
85
+ },
86
+ "textContent": "Insights"
87
+ },
88
+ {
89
+ "tagName": "a",
90
+ "attributes": { "href": "/contact/" },
91
+ "style": {
92
+ "display": "inline-block",
93
+ "backgroundColor": "var(--color-primary)",
94
+ "color": "var(--color-text-white)",
95
+ "padding": "0.55rem 1.25rem",
96
+ "borderRadius": "var(--radius)",
97
+ "textDecoration": "none",
98
+ "fontWeight": "600",
99
+ "fontSize": "0.95rem",
100
+ "transition": "background-color 0.15s",
101
+ ":hover": { "backgroundColor": "var(--color-primary-hover)" }
102
+ },
103
+ "textContent": "Book a Consultation"
104
+ }
105
+ ]
106
+ }
107
+ ]
108
+ }
109
+ ]
110
+ }
@@ -0,0 +1,53 @@
1
+ {
2
+ "tagName": "pf-section-header",
3
+ "state": {
4
+ "eyebrow": "",
5
+ "heading": "",
6
+ "subheading": "",
7
+ "align": "center"
8
+ },
9
+ "style": {
10
+ "display": "block",
11
+ "maxWidth": "var(--max-width-narrow)",
12
+ "margin": "0 auto 2.5rem",
13
+ "textAlign": "${state.align}"
14
+ },
15
+ "children": [
16
+ {
17
+ "tagName": "p",
18
+ "style": {
19
+ "display": "${state.eyebrow ? 'block' : 'none'}",
20
+ "textTransform": "uppercase",
21
+ "letterSpacing": "0.16em",
22
+ "fontSize": "0.8rem",
23
+ "fontWeight": "600",
24
+ "color": "var(--color-primary)",
25
+ "margin": "0 0 0.75rem"
26
+ },
27
+ "textContent": "${state.eyebrow}"
28
+ },
29
+ {
30
+ "tagName": "h2",
31
+ "style": {
32
+ "fontFamily": "var(--font-heading)",
33
+ "fontSize": "clamp(1.9rem, 4vw, 2.6rem)",
34
+ "fontWeight": "700",
35
+ "lineHeight": "1.15",
36
+ "letterSpacing": "-0.02em",
37
+ "margin": "0"
38
+ },
39
+ "textContent": "${state.heading}"
40
+ },
41
+ {
42
+ "tagName": "p",
43
+ "style": {
44
+ "display": "${state.subheading ? 'block' : 'none'}",
45
+ "fontSize": "1.1rem",
46
+ "lineHeight": "1.7",
47
+ "color": "var(--color-text-muted)",
48
+ "margin": "1rem 0 0"
49
+ },
50
+ "textContent": "${state.subheading}"
51
+ }
52
+ ]
53
+ }
@@ -0,0 +1,77 @@
1
+ {
2
+ "tagName": "pf-service-card",
3
+ "state": {
4
+ "icon": "",
5
+ "title": "",
6
+ "text": "",
7
+ "link": "",
8
+ "linkHref": "/services/"
9
+ },
10
+ "style": {
11
+ "display": "flex",
12
+ "flexDirection": "column",
13
+ "padding": "2rem",
14
+ "backgroundColor": "var(--color-bg-white)",
15
+ "borderRadius": "var(--radius)",
16
+ "border": "1px solid var(--color-border)",
17
+ "boxShadow": "0 4px 20px rgba(15,23,42,0.04)",
18
+ "transition": "box-shadow 0.15s, border-color 0.15s",
19
+ ":hover": {
20
+ "boxShadow": "0 12px 32px rgba(15,23,42,0.10)",
21
+ "borderColor": "var(--color-primary)"
22
+ }
23
+ },
24
+ "children": [
25
+ {
26
+ "tagName": "div",
27
+ "style": {
28
+ "width": "3rem",
29
+ "height": "3rem",
30
+ "display": "flex",
31
+ "alignItems": "center",
32
+ "justifyContent": "center",
33
+ "borderRadius": "var(--radius)",
34
+ "backgroundColor": "var(--color-bg-cream)",
35
+ "fontSize": "1.5rem",
36
+ "lineHeight": "1",
37
+ "marginBottom": "1.25rem"
38
+ },
39
+ "textContent": "${state.icon}"
40
+ },
41
+ {
42
+ "tagName": "h3",
43
+ "style": {
44
+ "fontFamily": "var(--font-heading)",
45
+ "fontSize": "1.3rem",
46
+ "fontWeight": "600",
47
+ "margin": "0 0 0.6rem"
48
+ },
49
+ "textContent": "${state.title}"
50
+ },
51
+ {
52
+ "tagName": "p",
53
+ "style": {
54
+ "margin": "0",
55
+ "color": "var(--color-text-muted)",
56
+ "fontSize": "0.98rem",
57
+ "lineHeight": "1.65",
58
+ "flex": "1"
59
+ },
60
+ "textContent": "${state.text}"
61
+ },
62
+ {
63
+ "tagName": "a",
64
+ "attributes": { "href": "${state.linkHref}" },
65
+ "style": {
66
+ "display": "${state.link ? 'inline-block' : 'none'}",
67
+ "marginTop": "1.25rem",
68
+ "color": "var(--color-primary)",
69
+ "fontWeight": "600",
70
+ "fontSize": "0.95rem",
71
+ "textDecoration": "none",
72
+ ":hover": { "color": "var(--color-primary-hover)" }
73
+ },
74
+ "textContent": "${state.link}"
75
+ }
76
+ ]
77
+ }
@@ -0,0 +1,37 @@
1
+ {
2
+ "tagName": "pf-stat",
3
+ "state": {
4
+ "number": "",
5
+ "label": ""
6
+ },
7
+ "style": {
8
+ "display": "block",
9
+ "textAlign": "center",
10
+ "padding": "1rem"
11
+ },
12
+ "children": [
13
+ {
14
+ "tagName": "div",
15
+ "style": {
16
+ "fontFamily": "var(--font-heading)",
17
+ "fontSize": "clamp(2.5rem, 5vw, 3.5rem)",
18
+ "fontWeight": "700",
19
+ "lineHeight": "1",
20
+ "letterSpacing": "-0.02em",
21
+ "color": "var(--color-primary)"
22
+ },
23
+ "textContent": "${state.number}"
24
+ },
25
+ {
26
+ "tagName": "div",
27
+ "style": {
28
+ "marginTop": "0.6rem",
29
+ "fontSize": "0.95rem",
30
+ "color": "var(--color-text-muted)",
31
+ "textTransform": "uppercase",
32
+ "letterSpacing": "0.08em"
33
+ },
34
+ "textContent": "${state.label}"
35
+ }
36
+ ]
37
+ }
@@ -0,0 +1,70 @@
1
+ {
2
+ "tagName": "pf-team-member",
3
+ "state": {
4
+ "photo": { "type": "string", "format": "image", "default": "" },
5
+ "name": "",
6
+ "role": "",
7
+ "bio": ""
8
+ },
9
+ "style": {
10
+ "display": "block",
11
+ "backgroundColor": "var(--color-bg-white)",
12
+ "borderRadius": "var(--radius)",
13
+ "border": "1px solid var(--color-border)",
14
+ "overflow": "hidden",
15
+ "boxShadow": "0 4px 20px rgba(15,23,42,0.05)"
16
+ },
17
+ "children": [
18
+ {
19
+ "tagName": "img",
20
+ "attributes": {
21
+ "src": "${state.photo}",
22
+ "alt": "${state.name}",
23
+ "loading": "lazy"
24
+ },
25
+ "style": {
26
+ "width": "100%",
27
+ "aspectRatio": "4 / 5",
28
+ "objectFit": "cover",
29
+ "display": "block"
30
+ }
31
+ },
32
+ {
33
+ "tagName": "div",
34
+ "style": { "padding": "1.5rem" },
35
+ "children": [
36
+ {
37
+ "tagName": "h3",
38
+ "style": {
39
+ "fontFamily": "var(--font-heading)",
40
+ "fontSize": "1.25rem",
41
+ "fontWeight": "600",
42
+ "margin": "0 0 0.2rem"
43
+ },
44
+ "textContent": "${state.name}"
45
+ },
46
+ {
47
+ "tagName": "div",
48
+ "style": {
49
+ "color": "var(--color-primary)",
50
+ "fontWeight": "600",
51
+ "fontSize": "0.9rem",
52
+ "marginBottom": "0.75rem"
53
+ },
54
+ "textContent": "${state.role}"
55
+ },
56
+ {
57
+ "tagName": "p",
58
+ "style": {
59
+ "display": "${state.bio ? 'block' : 'none'}",
60
+ "margin": "0",
61
+ "color": "var(--color-text-muted)",
62
+ "fontSize": "0.95rem",
63
+ "lineHeight": "1.65"
64
+ },
65
+ "textContent": "${state.bio}"
66
+ }
67
+ ]
68
+ }
69
+ ]
70
+ }
@@ -0,0 +1,15 @@
1
+ ---
2
+ title: Why Profitable Companies Still Run Out of Cash
3
+ excerpt: Profit and cash are not the same thing. A thirteen-week forecast is the single most useful tool for a business that is growing faster than its bank balance.
4
+ date: November 12, 2025
5
+ author: Marcus Bell
6
+ order: 2
7
+ ---
8
+
9
+ A business can be profitable on paper and still miss payroll. Profit is an accounting measure that recognizes revenue when it is earned and expenses when they are incurred. Cash is the money actually in the account on a given morning. Growth widens the gap between the two, because you pay for inventory, wages, and marketing long before your customers pay you.
10
+
11
+ The remedy is not complicated, but it is often neglected. A rolling thirteen-week cash forecast lays out expected receipts and disbursements week by week, so you can see a shortfall three weeks before it arrives rather than three days after. Thirteen weeks is long enough to give you room to act and short enough to forecast with real confidence.
12
+
13
+ Build the forecast from the bottom up. List the invoices you expect to collect and the bills you know are coming, then layer in payroll, rent, taxes, and loan payments. Update it every week against what actually happened, and your estimates will sharpen quickly.
14
+
15
+ Once the forecast is in place, it changes how you make decisions. You can time a large purchase for a strong collection week, negotiate supplier terms with evidence in hand, and approach your lender before a crunch rather than during one. Visibility turns cash from a source of anxiety into a lever you control.
@@ -0,0 +1,15 @@
1
+ ---
2
+ title: "LLC, S-Corp, or C-Corp: Choosing the Right Entity"
3
+ excerpt: The structure you register determines how you are taxed, how you raise money, and how much paperwork you carry. Here is how to think it through.
4
+ date: October 21, 2025
5
+ author: Priya Nair
6
+ order: 3
7
+ ---
8
+
9
+ The entity you choose is one of the few decisions that touches taxes, liability, fundraising, and administration all at once. It is worth getting right early, because changing structure later can trigger tax and legal friction you would rather avoid.
10
+
11
+ A limited liability company is the flexible default for most small businesses. It separates your personal assets from the company, keeps compliance light, and by default passes profits straight through to your personal return. For many owner-operators, that simplicity is exactly what they need.
12
+
13
+ Electing to be taxed as an S-corporation can reduce self-employment tax once profits are consistent, because only your reasonable salary is subject to payroll tax while the remaining distribution is not. The trade-off is more formality: a real payroll, a separate return, and stricter rules about who can own shares.
14
+
15
+ A C-corporation makes sense when you plan to raise venture capital or reinvest profits for growth rather than distribute them. It can issue multiple classes of stock and qualify for certain investor tax benefits, at the cost of a second layer of tax on dividends. The right answer depends on where you are heading, not just where you are today, which is exactly why the choice deserves a conversation rather than a default.
@@ -0,0 +1,15 @@
1
+ ---
2
+ title: The R&D Credit Is Not Just for Laboratories
3
+ excerpt: Software teams, manufacturers, and product companies routinely qualify for research credits they never claim. Here is what actually counts.
4
+ date: September 8, 2025
5
+ author: Marcus Bell
6
+ order: 5
7
+ ---
8
+
9
+ The research and development tax credit carries a reputation for belonging to pharmaceutical companies and hardware labs. In practice the definition is far broader, and many ordinary businesses leave the credit unclaimed simply because they assume it does not apply to them.
10
+
11
+ The test is about the nature of the work, not the industry. If your team is developing or improving a product, process, or piece of software, resolving genuine technical uncertainty through experimentation, that activity often qualifies. Building new features, automating a production line, or engineering a more reliable system can all count.
12
+
13
+ Qualified costs usually include the wages of the people doing and directly supervising the work, the supplies consumed in testing, and a portion of what you pay outside contractors. For a company with even a modest engineering payroll, the credit can reach into six figures and, unlike a deduction, it reduces tax dollar for dollar.
14
+
15
+ The catch is documentation. The credit rewards businesses that can tie specific projects to specific costs and show the technical uncertainty they were working through. Capturing that trail as the work happens, rather than reconstructing it under deadline, is the difference between a credit you can defend and one you quietly forfeit.