@stacksjs/defaults 0.70.206 → 0.70.208

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 (408) hide show
  1. package/TODO.md +21 -0
  2. package/ai/AGENTS.md +79 -0
  3. package/ai/README.md +45 -0
  4. package/ai/claude/launch.json +12 -0
  5. package/ai/skills/stacks-actions/SKILL.md +128 -0
  6. package/ai/skills/stacks-ai/SKILL.md +276 -0
  7. package/ai/skills/stacks-alias/SKILL.md +94 -0
  8. package/ai/skills/stacks-analytics/SKILL.md +91 -0
  9. package/ai/skills/stacks-api/SKILL.md +738 -0
  10. package/ai/skills/stacks-arrays/SKILL.md +277 -0
  11. package/ai/skills/stacks-auth/SKILL.md +422 -0
  12. package/ai/skills/stacks-auto-imports/SKILL.md +138 -0
  13. package/ai/skills/stacks-brandkit/SKILL.md +811 -0
  14. package/ai/skills/stacks-browse/SKILL.md +127 -0
  15. package/ai/skills/stacks-browse/scripts/browse.ts +492 -0
  16. package/ai/skills/stacks-browser/SKILL.md +145 -0
  17. package/ai/skills/stacks-buddy/SKILL.md +676 -0
  18. package/ai/skills/stacks-build/SKILL.md +163 -0
  19. package/ai/skills/stacks-cache/SKILL.md +125 -0
  20. package/ai/skills/stacks-calendar/SKILL.md +113 -0
  21. package/ai/skills/stacks-chat/SKILL.md +371 -0
  22. package/ai/skills/stacks-cli/SKILL.md +112 -0
  23. package/ai/skills/stacks-cloud/SKILL.md +192 -0
  24. package/ai/skills/stacks-cms/SKILL.md +217 -0
  25. package/ai/skills/stacks-collections/SKILL.md +82 -0
  26. package/ai/skills/stacks-commerce/SKILL.md +114 -0
  27. package/ai/skills/stacks-composables/SKILL.md +161 -0
  28. package/ai/skills/stacks-config/SKILL.md +144 -0
  29. package/ai/skills/stacks-configuration/SKILL.md +154 -0
  30. package/ai/skills/stacks-cron/SKILL.md +123 -0
  31. package/ai/skills/stacks-crosswind/SKILL.md +190 -0
  32. package/ai/skills/stacks-dashboard/SKILL.md +173 -0
  33. package/ai/skills/stacks-database/SKILL.md +286 -0
  34. package/ai/skills/stacks-datetime/SKILL.md +269 -0
  35. package/ai/skills/stacks-dependencies/SKILL.md +111 -0
  36. package/ai/skills/stacks-deploy/SKILL.md +102 -0
  37. package/ai/skills/stacks-design-brutalist/SKILL.md +110 -0
  38. package/ai/skills/stacks-design-minimalist/SKILL.md +115 -0
  39. package/ai/skills/stacks-design-output/SKILL.md +55 -0
  40. package/ai/skills/stacks-design-soft/SKILL.md +156 -0
  41. package/ai/skills/stacks-design-taste/SKILL.md +1012 -0
  42. package/ai/skills/stacks-design-taste-codex/SKILL.md +294 -0
  43. package/ai/skills/stacks-desktop/SKILL.md +78 -0
  44. package/ai/skills/stacks-development/SKILL.md +298 -0
  45. package/ai/skills/stacks-dns/SKILL.md +149 -0
  46. package/ai/skills/stacks-docs/SKILL.md +109 -0
  47. package/ai/skills/stacks-email/SKILL.md +236 -0
  48. package/ai/skills/stacks-enums/SKILL.md +100 -0
  49. package/ai/skills/stacks-env/SKILL.md +181 -0
  50. package/ai/skills/stacks-error-handling/SKILL.md +137 -0
  51. package/ai/skills/stacks-events/SKILL.md +228 -0
  52. package/ai/skills/stacks-faker/SKILL.md +158 -0
  53. package/ai/skills/stacks-git/SKILL.md +158 -0
  54. package/ai/skills/stacks-guard/SKILL.md +98 -0
  55. package/ai/skills/stacks-health/SKILL.md +75 -0
  56. package/ai/skills/stacks-http/SKILL.md +316 -0
  57. package/ai/skills/stacks-i18n/SKILL.md +198 -0
  58. package/ai/skills/stacks-image-to-code/SKILL.md +629 -0
  59. package/ai/skills/stacks-imagegen-mobile/SKILL.md +1474 -0
  60. package/ai/skills/stacks-imagegen-web/SKILL.md +998 -0
  61. package/ai/skills/stacks-investigate/SKILL.md +119 -0
  62. package/ai/skills/stacks-jobs/SKILL.md +136 -0
  63. package/ai/skills/stacks-lint/SKILL.md +184 -0
  64. package/ai/skills/stacks-listeners/SKILL.md +99 -0
  65. package/ai/skills/stacks-logging/SKILL.md +78 -0
  66. package/ai/skills/stacks-mail/SKILL.md +120 -0
  67. package/ai/skills/stacks-middleware/SKILL.md +249 -0
  68. package/ai/skills/stacks-migrations/SKILL.md +105 -0
  69. package/ai/skills/stacks-models/SKILL.md +267 -0
  70. package/ai/skills/stacks-new-feature/SKILL.md +206 -0
  71. package/ai/skills/stacks-notifications/SKILL.md +210 -0
  72. package/ai/skills/stacks-objects/SKILL.md +205 -0
  73. package/ai/skills/stacks-office-hours/SKILL.md +134 -0
  74. package/ai/skills/stacks-orm/SKILL.md +342 -0
  75. package/ai/skills/stacks-path/SKILL.md +118 -0
  76. package/ai/skills/stacks-payments/SKILL.md +373 -0
  77. package/ai/skills/stacks-plan-review/SKILL.md +152 -0
  78. package/ai/skills/stacks-plugins/SKILL.md +149 -0
  79. package/ai/skills/stacks-push/SKILL.md +376 -0
  80. package/ai/skills/stacks-query-builder/SKILL.md +128 -0
  81. package/ai/skills/stacks-queue/SKILL.md +559 -0
  82. package/ai/skills/stacks-realtime/SKILL.md +442 -0
  83. package/ai/skills/stacks-redesign/SKILL.md +182 -0
  84. package/ai/skills/stacks-registry/SKILL.md +58 -0
  85. package/ai/skills/stacks-repl/SKILL.md +80 -0
  86. package/ai/skills/stacks-retro/SKILL.md +122 -0
  87. package/ai/skills/stacks-review/SKILL.md +135 -0
  88. package/ai/skills/stacks-router/SKILL.md +231 -0
  89. package/ai/skills/stacks-routes/SKILL.md +105 -0
  90. package/ai/skills/stacks-scaffolding/SKILL.md +162 -0
  91. package/ai/skills/stacks-scheduler/SKILL.md +363 -0
  92. package/ai/skills/stacks-search-engine/SKILL.md +112 -0
  93. package/ai/skills/stacks-security/SKILL.md +129 -0
  94. package/ai/skills/stacks-security-audit/SKILL.md +128 -0
  95. package/ai/skills/stacks-server/SKILL.md +458 -0
  96. package/ai/skills/stacks-shell/SKILL.md +62 -0
  97. package/ai/skills/stacks-slug/SKILL.md +87 -0
  98. package/ai/skills/stacks-sms/SKILL.md +385 -0
  99. package/ai/skills/stacks-socials/SKILL.md +303 -0
  100. package/ai/skills/stacks-storage/SKILL.md +576 -0
  101. package/ai/skills/stacks-strings/SKILL.md +416 -0
  102. package/ai/skills/stacks-stx/SKILL.md +176 -0
  103. package/ai/skills/stacks-technical-diagrams/LICENSE +22 -0
  104. package/ai/skills/stacks-technical-diagrams/SKILL.md +290 -0
  105. package/ai/skills/stacks-technical-diagrams/agents/openai.yaml +4 -0
  106. package/ai/skills/stacks-technical-diagrams/assets/template.html +1252 -0
  107. package/ai/skills/stacks-technical-diagrams/bin/technical-diagrams.mjs +289 -0
  108. package/ai/skills/stacks-technical-diagrams/bunfig.toml +1 -0
  109. package/ai/skills/stacks-technical-diagrams/examples/agent-run.lifecycle.json +64 -0
  110. package/ai/skills/stacks-technical-diagrams/examples/agent-tool-call.workflow.json +88 -0
  111. package/ai/skills/stacks-technical-diagrams/examples/cache-miss-request.sequence.json +75 -0
  112. package/ai/skills/stacks-technical-diagrams/examples/product-analytics.dataflow.json +70 -0
  113. package/ai/skills/stacks-technical-diagrams/examples/web-app.architecture.json +41 -0
  114. package/ai/skills/stacks-technical-diagrams/renderers/architecture/grid.mjs +62 -0
  115. package/ai/skills/stacks-technical-diagrams/renderers/architecture/render-architecture.mjs +371 -0
  116. package/ai/skills/stacks-technical-diagrams/renderers/dataflow/README.md +82 -0
  117. package/ai/skills/stacks-technical-diagrams/renderers/dataflow/render-dataflow.mjs +295 -0
  118. package/ai/skills/stacks-technical-diagrams/renderers/lifecycle/README.md +91 -0
  119. package/ai/skills/stacks-technical-diagrams/renderers/lifecycle/render-lifecycle.mjs +384 -0
  120. package/ai/skills/stacks-technical-diagrams/renderers/sequence/README.md +84 -0
  121. package/ai/skills/stacks-technical-diagrams/renderers/sequence/render-sequence.mjs +257 -0
  122. package/ai/skills/stacks-technical-diagrams/renderers/shared/cli.mjs +42 -0
  123. package/ai/skills/stacks-technical-diagrams/renderers/shared/generated-validators.mjs +13 -0
  124. package/ai/skills/stacks-technical-diagrams/renderers/shared/geometry.mjs +230 -0
  125. package/ai/skills/stacks-technical-diagrams/renderers/shared/layout-report.mjs +40 -0
  126. package/ai/skills/stacks-technical-diagrams/renderers/shared/utils.mjs +88 -0
  127. package/ai/skills/stacks-technical-diagrams/renderers/shared/validator.mjs +40 -0
  128. package/ai/skills/stacks-technical-diagrams/renderers/workflow/README.md +103 -0
  129. package/ai/skills/stacks-technical-diagrams/renderers/workflow/render-workflow.mjs +481 -0
  130. package/ai/skills/stacks-technical-diagrams/schemas/README.md +68 -0
  131. package/ai/skills/stacks-technical-diagrams/schemas/architecture.schema.json +121 -0
  132. package/ai/skills/stacks-technical-diagrams/schemas/common.schema.json +43 -0
  133. package/ai/skills/stacks-technical-diagrams/schemas/dataflow.schema.json +221 -0
  134. package/ai/skills/stacks-technical-diagrams/schemas/lifecycle.schema.json +241 -0
  135. package/ai/skills/stacks-technical-diagrams/schemas/sequence.schema.json +186 -0
  136. package/ai/skills/stacks-technical-diagrams/schemas/workflow.schema.json +332 -0
  137. package/ai/skills/stacks-technical-diagrams/scripts/check-render-output.mjs +297 -0
  138. package/ai/skills/stacks-technical-diagrams/scripts/render-examples.mjs +28 -0
  139. package/ai/skills/stacks-testing/SKILL.md +129 -0
  140. package/ai/skills/stacks-tunnel/SKILL.md +125 -0
  141. package/ai/skills/stacks-types/SKILL.md +178 -0
  142. package/ai/skills/stacks-ui/SKILL.md +246 -0
  143. package/ai/skills/stacks-utils/SKILL.md +444 -0
  144. package/ai/skills/stacks-validation/SKILL.md +371 -0
  145. package/ai/skills/stacks-whois/SKILL.md +315 -0
  146. package/assets/world-map-data.ts +121 -0
  147. package/bootstrap.ts +114 -0
  148. package/docs/api-examples.md +46 -0
  149. package/docs/index.md +24 -0
  150. package/docs/markdown-examples.md +87 -0
  151. package/functions/analytics.ts +97 -0
  152. package/functions/api.ts +143 -0
  153. package/functions/auth.ts +208 -0
  154. package/functions/billing/payments.ts +149 -0
  155. package/functions/blog.ts +120 -0
  156. package/functions/cms/categorizables.ts +107 -0
  157. package/functions/cms/pages.ts +108 -0
  158. package/functions/cms/posts.ts +100 -0
  159. package/functions/cms/taggables.ts +102 -0
  160. package/functions/commerce/coupons.ts +128 -0
  161. package/functions/commerce/customers.ts +128 -0
  162. package/functions/commerce/gift-cards.ts +119 -0
  163. package/functions/commerce/orders.ts +112 -0
  164. package/functions/commerce/payments.ts +119 -0
  165. package/functions/commerce/products/categories.ts +123 -0
  166. package/functions/commerce/products/manufacturers.ts +123 -0
  167. package/functions/commerce/products/products.ts +123 -0
  168. package/functions/commerce/products/reviews.ts +123 -0
  169. package/functions/commerce/products/units.ts +123 -0
  170. package/functions/commerce/products/variants.ts +123 -0
  171. package/functions/commerce/shippings/delivery-routes.ts +123 -0
  172. package/functions/commerce/shippings/digital-deliveries.ts +119 -0
  173. package/functions/commerce/shippings/drivers.ts +123 -0
  174. package/functions/commerce/shippings/license-keys.ts +123 -0
  175. package/functions/commerce/shippings/shipping-methods.ts +123 -0
  176. package/functions/commerce/shippings/shipping-rates.ts +119 -0
  177. package/functions/commerce/shippings/shipping-zones.ts +119 -0
  178. package/functions/commerce/taxes.ts +119 -0
  179. package/functions/commerce/waitlist/products.ts +123 -0
  180. package/functions/commerce/waitlist/restaurants.ts +123 -0
  181. package/functions/craft.ts +107 -0
  182. package/functions/dashboard.ts +153 -0
  183. package/functions/inbox.ts +95 -0
  184. package/functions/jobs.ts +86 -0
  185. package/functions/monitoring/errors.ts +295 -0
  186. package/functions/queue.ts +111 -0
  187. package/functions/realtime/websockets.ts +96 -0
  188. package/functions/realtime.ts +52 -0
  189. package/functions/releases.ts +49 -0
  190. package/functions/search.ts +126 -0
  191. package/functions/toasts.ts +95 -0
  192. package/functions/uploads.ts +216 -0
  193. package/ide/.gitignore +4 -0
  194. package/ide/cursor/rules/auto-imports.mdc +574 -0
  195. package/ide/cursor/rules/code-style.mdc +12 -0
  196. package/ide/cursor/rules/documentation.mdc +9 -0
  197. package/ide/cursor/rules/error-handling-validation.mdc +11 -0
  198. package/ide/cursor/rules/key-conventions.mdc +11 -0
  199. package/ide/cursor/rules/project-structure.mdc +169 -0
  200. package/ide/cursor/rules/readme.mdc +318 -0
  201. package/ide/cursor/rules/syntax-formatting.mdc +9 -0
  202. package/ide/cursor/rules/testing.mdc +10 -0
  203. package/ide/cursor/rules/typescript.mdc +9 -0
  204. package/ide/cursor/rules/ui-styling.mdc +0 -0
  205. package/ide/dictionary.txt +397 -0
  206. package/ide/jetbrains/.fleet/settings.json +4 -0
  207. package/ide/jetbrains/.idea/.gitignore +5 -0
  208. package/ide/jetbrains/.idea/.name +1 -0
  209. package/ide/jetbrains/.idea/inspectionProfiles/Project_Default.xml +6 -0
  210. package/ide/jetbrains/.idea/jsLinters/eslint.xml +7 -0
  211. package/ide/jetbrains/.idea/modules.xml +8 -0
  212. package/ide/jetbrains/.idea/stacks.iml +22 -0
  213. package/ide/jetbrains/.idea/vcs.xml +6 -0
  214. package/ide/jetbrains/.idea/webResources.xml +14 -0
  215. package/ide/jetbrains/IntelliJ IDEA Global Settings +0 -0
  216. package/ide/jetbrains/installed.txt +4 -0
  217. package/ide/jetbrains/options/github-copilot.xml +5 -0
  218. package/ide/jetbrains/options/nodejs.xml +7 -0
  219. package/ide/jetbrains/options/templates.xml +124 -0
  220. package/ide/jetbrains/templates/JavaScript.xml +6 -0
  221. package/ide/jetbrains/templates/Stacks.xml +8 -0
  222. package/ide/vscode/.vscode/README.md +23 -0
  223. package/ide/vscode/.vscode/extensions.json +5 -0
  224. package/ide/vscode/.vscode/settings.json +176 -0
  225. package/ide/vscode/.vscode/stacks.code-snippets +181 -0
  226. package/ide/vscode/LICENSE.md +21 -0
  227. package/ide/vscode/README.md +36 -0
  228. package/ide/vscode/logo.png +0 -0
  229. package/ide/vscode/package.json +79 -0
  230. package/ide/zed/.zed/settings.json +139 -0
  231. package/lang/README.md +28 -0
  232. package/lang/de.yml +14 -0
  233. package/lang/en.yml +15 -0
  234. package/package.json +19 -3
  235. package/project/bootstrap +161 -0
  236. package/project/buddy +175 -0
  237. package/project/storage/framework/tsconfig.app.json +50 -0
  238. package/project/storage/framework/tsconfig.base.json +58 -0
  239. package/routes/core.ts +78 -0
  240. package/routes/dashboard-api.ts +233 -0
  241. package/routes/dashboard.ts +739 -0
  242. package/routes/email.ts +129 -0
  243. package/stores/[name].stx +16 -0
  244. package/stores/git.ts +71 -0
  245. package/stores/payment.ts +474 -0
  246. package/stores/queue.ts +43 -0
  247. package/stores/user.ts +29 -0
  248. package/stx-components-plugin.ts +25 -0
  249. package/styles/design-tokens.css +597 -0
  250. package/types/dashboard.ts +70 -0
  251. package/types/defaults.ts +438 -0
  252. package/vcs/github/CODE_OF_CONDUCT.md +83 -0
  253. package/vcs/github/CONTRIBUTING.md +187 -0
  254. package/vcs/github/EXPLANATIONS.md +41 -0
  255. package/vcs/github/FUNDING.yml +1 -0
  256. package/vcs/github/ISSUE_TEMPLATE/bug_report.yml +49 -0
  257. package/vcs/github/ISSUE_TEMPLATE/config.yml +10 -0
  258. package/vcs/github/ISSUE_TEMPLATE/feature_request.yml +44 -0
  259. package/vcs/github/SECURITY.md +70 -0
  260. package/vcs/github/renovate.json +5 -0
  261. package/vcs/github/stale.yml +14 -0
  262. package/vcs/github/workflows/README.md +16 -0
  263. package/vcs/github/workflows/ci.yml +114 -0
  264. package/vcs/github/workflows/export-size.yml +25 -0
  265. package/vcs/github/workflows/labeler.yml +13 -0
  266. package/vcs/github/workflows/release.yml +219 -0
  267. package/views/[...all].stx +8 -0
  268. package/views/about.md +3 -0
  269. package/views/auth/login.stx +1 -0
  270. package/views/auth/signup.stx +85 -0
  271. package/views/dashboard/.discovered-models.json +542 -0
  272. package/views/dashboard/AUDIT.md +904 -0
  273. package/views/dashboard/[...all].stx +89 -0
  274. package/views/dashboard/access-tokens/index.stx +177 -0
  275. package/views/dashboard/actions/index.stx +129 -0
  276. package/views/dashboard/analytics/blog/index.stx +356 -0
  277. package/views/dashboard/analytics/browsers/index.stx +263 -0
  278. package/views/dashboard/analytics/commerce/sales/index.stx +329 -0
  279. package/views/dashboard/analytics/commerce/web/index.stx +379 -0
  280. package/views/dashboard/analytics/countries/index.stx +289 -0
  281. package/views/dashboard/analytics/devices/index.stx +305 -0
  282. package/views/dashboard/analytics/events/index.stx +536 -0
  283. package/views/dashboard/analytics/index.stx +88 -0
  284. package/views/dashboard/analytics/marketing/index.stx +315 -0
  285. package/views/dashboard/analytics/pages/index.stx +271 -0
  286. package/views/dashboard/analytics/referrers/index.stx +319 -0
  287. package/views/dashboard/analytics/web/index.stx +356 -0
  288. package/views/dashboard/buddy/index.stx +198 -0
  289. package/views/dashboard/ci/index.stx +462 -0
  290. package/views/dashboard/cloud/index.stx +452 -0
  291. package/views/dashboard/commands/index.stx +295 -0
  292. package/views/dashboard/commerce/categories/index.stx +406 -0
  293. package/views/dashboard/commerce/coupons/index.stx +485 -0
  294. package/views/dashboard/commerce/customers/index.stx +410 -0
  295. package/views/dashboard/commerce/dashboard/index.stx +287 -0
  296. package/views/dashboard/commerce/delivery/delivery-routes.stx +305 -0
  297. package/views/dashboard/commerce/delivery/digital-delivery.stx +332 -0
  298. package/views/dashboard/commerce/delivery/drivers.stx +397 -0
  299. package/views/dashboard/commerce/delivery/index.stx +18 -0
  300. package/views/dashboard/commerce/delivery/license-keys.stx +380 -0
  301. package/views/dashboard/commerce/delivery/shipping-methods.stx +346 -0
  302. package/views/dashboard/commerce/delivery/shipping-rates.stx +338 -0
  303. package/views/dashboard/commerce/delivery/shipping-zones.stx +302 -0
  304. package/views/dashboard/commerce/delivery/tabs.ts +25 -0
  305. package/views/dashboard/commerce/gift-cards/index.stx +561 -0
  306. package/views/dashboard/commerce/manufacturers/index.stx +308 -0
  307. package/views/dashboard/commerce/orders/index.stx +247 -0
  308. package/views/dashboard/commerce/payments/index.stx +535 -0
  309. package/views/dashboard/commerce/pos/index.stx +653 -0
  310. package/views/dashboard/commerce/printers/devices/index.stx +273 -0
  311. package/views/dashboard/commerce/printers/receipts/index.stx +308 -0
  312. package/views/dashboard/commerce/products/detail.stx +563 -0
  313. package/views/dashboard/commerce/products/index.stx +370 -0
  314. package/views/dashboard/commerce/reviews/index.stx +656 -0
  315. package/views/dashboard/commerce/reviews/index.ts +0 -0
  316. package/views/dashboard/commerce/taxes/index.stx +377 -0
  317. package/views/dashboard/commerce/units/index.stx +317 -0
  318. package/views/dashboard/commerce/variants/index.stx +319 -0
  319. package/views/dashboard/commerce/waitlist/products.stx +942 -0
  320. package/views/dashboard/commerce/waitlist/restaurant.stx +1024 -0
  321. package/views/dashboard/components/index.stx +330 -0
  322. package/views/dashboard/composables/index.ts +19 -0
  323. package/views/dashboard/composables/useChart.ts +77 -0
  324. package/views/dashboard/composables/useNavigation.ts +99 -0
  325. package/views/dashboard/composables/useRole.ts +58 -0
  326. package/views/dashboard/composables/useTheme.ts +74 -0
  327. package/views/dashboard/content/authors/index.stx +171 -0
  328. package/views/dashboard/content/blog/index.stx +493 -0
  329. package/views/dashboard/content/categories/index.stx +169 -0
  330. package/views/dashboard/content/comments/index.stx +189 -0
  331. package/views/dashboard/content/dashboard.stx +383 -0
  332. package/views/dashboard/content/files/index.stx +706 -0
  333. package/views/dashboard/content/pages/index.stx +174 -0
  334. package/views/dashboard/content/posts/index.stx +269 -0
  335. package/views/dashboard/content/seo/index.stx +240 -0
  336. package/views/dashboard/content/tags/index.stx +167 -0
  337. package/views/dashboard/data/activity/index.stx +261 -0
  338. package/views/dashboard/data/dashboard/index.stx +116 -0
  339. package/views/dashboard/data/subscribers.stx +270 -0
  340. package/views/dashboard/data/teams.stx +275 -0
  341. package/views/dashboard/data/users.stx +279 -0
  342. package/views/dashboard/dependencies/index.stx +178 -0
  343. package/views/dashboard/deployments/[id].stx +234 -0
  344. package/views/dashboard/deployments/index.stx +9 -0
  345. package/views/dashboard/dns/index.stx +163 -0
  346. package/views/dashboard/environment/index.stx +283 -0
  347. package/views/dashboard/errors/index.stx +274 -0
  348. package/views/dashboard/forgot-password.stx +57 -0
  349. package/views/dashboard/functions/index.stx +159 -0
  350. package/views/dashboard/health/index.stx +248 -0
  351. package/views/dashboard/inbox/activity.stx +350 -0
  352. package/views/dashboard/inbox/index.stx +452 -0
  353. package/views/dashboard/inbox/settings.stx +290 -0
  354. package/views/dashboard/index.stx +252 -0
  355. package/views/dashboard/insights/index.stx +529 -0
  356. package/views/dashboard/jobs/[id].stx +430 -0
  357. package/views/dashboard/jobs/history.stx +222 -0
  358. package/views/dashboard/jobs/index.stx +214 -0
  359. package/views/dashboard/kanban/[id].stx +899 -0
  360. package/views/dashboard/kanban/index.stx +260 -0
  361. package/views/dashboard/layouts/default.stx +565 -0
  362. package/views/dashboard/layouts/guest.stx +10 -0
  363. package/views/dashboard/login.stx +48 -0
  364. package/views/dashboard/logs/index.stx +540 -0
  365. package/views/dashboard/mailboxes/index.stx +149 -0
  366. package/views/dashboard/management/permissions/index.stx +490 -0
  367. package/views/dashboard/marketing/campaigns/index.stx +604 -0
  368. package/views/dashboard/marketing/lists/index.stx +514 -0
  369. package/views/dashboard/marketing/reviews/index.stx +475 -0
  370. package/views/dashboard/marketing/social-posts/index.stx +560 -0
  371. package/views/dashboard/models/[model].stx +195 -0
  372. package/views/dashboard/models/index.stx +159 -0
  373. package/views/dashboard/monitoring/errors/index.stx +415 -0
  374. package/views/dashboard/notifications/dashboard.stx +383 -0
  375. package/views/dashboard/notifications/email.stx +336 -0
  376. package/views/dashboard/notifications/history.stx +373 -0
  377. package/views/dashboard/notifications/sms.stx +332 -0
  378. package/views/dashboard/packages/index.stx +195 -0
  379. package/views/dashboard/queries/[id].stx +381 -0
  380. package/views/dashboard/queries/history.stx +227 -0
  381. package/views/dashboard/queries/index.stx +335 -0
  382. package/views/dashboard/queries/slow.stx +318 -0
  383. package/views/dashboard/queue/index.stx +427 -0
  384. package/views/dashboard/realtime/index.stx +429 -0
  385. package/views/dashboard/register.stx +46 -0
  386. package/views/dashboard/releases/index.stx +389 -0
  387. package/views/dashboard/requests/index.stx +462 -0
  388. package/views/dashboard/serverless/index.stx +475 -0
  389. package/views/dashboard/servers/[id].stx +299 -0
  390. package/views/dashboard/servers/index.stx +483 -0
  391. package/views/dashboard/settings/billing.stx +50 -0
  392. package/views/dashboard/settings/index.stx +256 -0
  393. package/views/dashboard/settings/mail.stx +252 -0
  394. package/views/dashboard/stores/auth.ts +123 -0
  395. package/views/dashboard/stores/ci.ts +342 -0
  396. package/views/dashboard/stores/index.ts +129 -0
  397. package/views/dashboard/stores/kanban.ts +723 -0
  398. package/views/dashboard/stores/rbac.ts +350 -0
  399. package/views/dashboard/stx.config.ts +34 -0
  400. package/views/dashboard/teams/[id].stx +170 -0
  401. package/views/forum/category.stx +92 -0
  402. package/views/forum/index.stx +209 -0
  403. package/views/forum/new-topic.stx +113 -0
  404. package/views/forum/profile.stx +1 -0
  405. package/views/forum/topic.stx +143 -0
  406. package/views/hello-world/[name].stx +47 -0
  407. package/views/index.stx +21 -0
  408. package/views/system-tray/index.stx +147 -0
@@ -0,0 +1,234 @@
1
+ @extends('layouts/default')
2
+
3
+ @section('content')
4
+ <div :show="hasWorkflowRun" class="px-4 py-8 sm:px-6 lg:px-8">
5
+ <div class="px-6 py-8 text-sm bg-white dark:bg-neutral-800 rounded-lg">
6
+ <div class="px-4 sm:px-0">
7
+ <h3 class="font-semibold leading-7 text-base text-gray-900 dark:text-neutral-100">Latest Deployment</h3>
8
+ </div>
9
+ <div class="mt-6 border-gray-100 border-t dark:border-neutral-600">
10
+ <dl class="divide-gray-100 divide-y dark:divide-neutral-600">
11
+ <div class="sm:grid sm:gap-4 sm:grid-cols-3 px-4 py-6 sm:px-0">
12
+ <dt class="font-medium leading-6 text-gray-900 text-sm dark:text-neutral-100">Status</dt>
13
+ <dd class="flex items-center sm:col-span-2 mt-1 sm:mt-0 leading-6 text-gray-700 text-sm dark:text-neutral-200">
14
+ <span>{{ statusLabel() }}</span>
15
+ <svg fill="none" class="ml-2 h-5 w-5 text-green-500" stroke="currentColor" stroke-width="1.5" viewBox="0 0 24 24" xmlns="http://www.w3.org/2000/svg" aria-hidden="true">
16
+ <path stroke-linecap="round" stroke-linejoin="round" d="M9 12.75L11.25 15 15 9.75M21 12a9 9 0 11-18 0 9 9 0 0118 0z" />
17
+ </svg>
18
+ </dd>
19
+ </div>
20
+
21
+ <div class="sm:grid sm:gap-4 sm:grid-cols-3 px-4 py-6 sm:px-0">
22
+ <dt class="font-medium leading-6 text-gray-900 text-sm dark:text-neutral-100">Duration</dt>
23
+ <dd class="sm:col-span-2 mt-1 sm:mt-0 leading-6 text-gray-700 text-sm dark:text-neutral-200">{{ durationLabel() }}</dd>
24
+ </div>
25
+ <div class="sm:grid sm:gap-4 sm:grid-cols-3 px-4 py-6 sm:px-0">
26
+ <dt class="font-medium leading-6 text-gray-900 text-sm dark:text-neutral-100">Domain</dt>
27
+ <dd class="sm:col-span-2 mt-1 sm:mt-0 leading-6 text-gray-700 text-sm dark:text-neutral-200">www.stacks.com</dd>
28
+ </div>
29
+ <div class="sm:grid sm:gap-4 sm:grid-cols-3 px-4 py-6 sm:px-0">
30
+ <dt class="font-medium leading-6 text-gray-900 text-sm dark:text-neutral-100">Source</dt>
31
+ <dd class="sm:col-span-2 mt-1 sm:mt-0 leading-6 text-gray-700 text-sm dark:text-neutral-200">
32
+ <div class="flex items-center">
33
+ <svg class="with-icon_icon__MHUeb" data-testid="geist-icon" fill="none" height="24" shape-rendering="geometricPrecision" stroke="currentColor" stroke-linecap="round" stroke-linejoin="round" stroke-width="1.5" viewBox="0 0 24 24" width="24" style="color: currentcolor; width: 16px; height: 16px;">
34
+ <path d="M6 3v12" />
35
+ <circle cx="18" cy="6" r="3" />
36
+ <circle cx="6" cy="18" r="3" />
37
+ <path d="M18 9a9 9 0 01-9 9" />
38
+ </svg>
39
+ <a href="#" class="hover:underline"><code class="pl-1 text-xs">main</code></a>
40
+ </div>
41
+ <div class="flex items-center">
42
+ <svg class="with-icon_icon__MHUeb" data-testid="geist-icon" fill="none" height="24" shape-rendering="geometricPrecision" stroke="currentColor" stroke-linecap="round" stroke-linejoin="round" stroke-width="1.5" viewBox="0 0 24 24" width="24" style="color: currentcolor; width: 16px; height: 16px;">
43
+ <circle cx="12" cy="12" r="4" />
44
+ <path d="M1.05 12H7" />
45
+ <path d="M17.01 12h5.95" />
46
+ </svg>
47
+ <a :show="hasHeadCommit" href="#" class="hover:underline">
48
+ <code class="text-xs">{{ headCommitId() }}</code>
49
+ <span class="pl-1">{{ headCommitMessage() }}</span>
50
+ </a>
51
+ </div>
52
+ </dd>
53
+ </div>
54
+ </dl>
55
+ </div>
56
+ </div>
57
+
58
+ <div class="mt-12 px-6 py-8 text-sm bg-white dark:bg-neutral-800 rounded-lg">
59
+ <h2 class="font-bold leading-10 text-2xl text-gray-900 tracking-tight dark:text-neutral-100">Deployment Details</h2>
60
+ <div>
61
+ <ul role="list" class="mt-8 border divide-gray-200 divide-y rounded-md dark:divide-neutral-600">
62
+ <li class="relative flex-col cursor-pointer" @click="toggleFlag()">
63
+ <div class="flex justify-between px-4 py-5">
64
+ <div class="flex gap-x-4">
65
+ <div class="flex-auto min-w-0">
66
+ <div class="flex items-center font-semibold leading-6 text-gray-900 text-sm dark:text-neutral-100">
67
+ <div class="flex-none h-6 w-6 text-gray-400 i-hugeicons-chevron-right-20-solid"></div>
68
+ <span>Building</span>
69
+ </div>
70
+ </div>
71
+ </div>
72
+ <div class="flex gap-x-4 items-center">
73
+ <div class="sm:flex sm:flex-col sm:items-end">
74
+ <div class="h-6 w-6 text-green-500 i-hugeicons-check-circle-20-solid"></div>
75
+ </div>
76
+ </div>
77
+ </div>
78
+
79
+ <div :show="flag" class="border-t">
80
+ <pre v-highlightjs class="-mb-10 -mt-5">
81
+ <code class="bash">
82
+ Running build in Cleveland, USA (East) – cle1
83
+ Cloning github.com/chrisbbreuer/chrisbbreuer (Branch: main, Commit: b0f6755)
84
+ Previous build cache not available
85
+ Cloning completed: 529.499ms
86
+ Running "vercel build"
87
+ Vercel CLI 28.18.5
88
+ Installing dependencies...
89
+ added 770 packages in 12s
90
+ 228 packages are looking for funding
91
+ run `npm fund` for details
92
+ Detected Next.js version: 13.0.2
93
+ Detected `package-lock.json` generated by npm 7+...
94
+ Running "npm run build"
95
+ </code>
96
+ </pre>
97
+ </div>
98
+ </li>
99
+ <li class="relative flex-col cursor-pointer" @click="toggleFlag()">
100
+ <div class="flex justify-between px-4 py-5">
101
+ <div class="flex gap-x-4">
102
+ <div class="flex-auto min-w-0">
103
+ <div class="flex items-center font-semibold leading-6 text-gray-900 text-sm dark:text-neutral-100">
104
+ <div class="flex-none h-6 w-6 text-gray-400 i-hugeicons-chevron-right-20-solid"></div>
105
+ <span>Deployment Summary</span>
106
+ </div>
107
+ </div>
108
+ </div>
109
+ <div class="flex gap-x-4 items-center">
110
+ <div class="sm:flex sm:flex-col sm:items-end">
111
+ <div class="h-6 w-6 text-green-500 i-hugeicons-check-circle-20-solid"></div>
112
+ </div>
113
+ </div>
114
+ </div>
115
+
116
+ <div :show="flag" class="border-t">
117
+ <pre v-highlightjs class="-mb-10 -mt-5">
118
+ <code class="bash">
119
+ Running build in Cleveland, USA (East) – cle1
120
+ Cloning github.com/chrisbbreuer/chrisbbreuer (Branch: main, Commit: b0f6755)
121
+ Previous build cache not available
122
+ Cloning completed: 529.499ms
123
+ Running "vercel build"
124
+ Vercel CLI 28.18.5
125
+ Installing dependencies...
126
+ added 770 packages in 12s
127
+ 228 packages are looking for funding
128
+ run `npm fund` for details
129
+ Detected Next.js version: 13.0.2
130
+ Detected `package-lock.json` generated by npm 7+...
131
+ Running "npm run build"
132
+ </code>
133
+ </pre>
134
+ </div>
135
+ </li>
136
+ <li class="relative flex-col cursor-pointer" @click="toggleFlag()">
137
+ <div class="flex justify-between px-4 py-5">
138
+ <div class="flex gap-x-4">
139
+ <div class="flex-auto min-w-0">
140
+ <div class="flex items-center font-semibold leading-6 text-gray-900 text-sm dark:text-neutral-100">
141
+ <div class="flex-none h-6 w-6 text-gray-400 i-hugeicons-chevron-right-20-solid"></div>
142
+ <span>Running Checks</span>
143
+ </div>
144
+ </div>
145
+ </div>
146
+ <div class="flex gap-x-4 items-center">
147
+ <div class="sm:flex sm:flex-col sm:items-end">
148
+ <div class="h-6 w-6 text-red-500 i-hugeicons-x-circle-20-solid"></div>
149
+ </div>
150
+ </div>
151
+ </div>
152
+
153
+ <div :show="flag" class="border-t">
154
+ <pre v-highlightjs class="-mb-10 -mt-5">
155
+ <code class="bash">
156
+ Running build in Cleveland, USA (East) – cle1
157
+ Cloning github.com/chrisbbreuer/chrisbbreuer (Branch: main, Commit: b0f6755)
158
+ Previous build cache not available
159
+ Cloning completed: 529.499ms
160
+ Running "vercel build"
161
+ Vercel CLI 28.18.5
162
+ Installing dependencies...
163
+ added 770 packages in 12s
164
+ 228 packages are looking for funding
165
+ run `npm fund` for details
166
+ Detected Next.js version: 13.0.2
167
+ Detected `package-lock.json` generated by npm 7+...
168
+ Running "npm run build"
169
+ </code>
170
+ </pre>
171
+ </div>
172
+ </li>
173
+ </ul>
174
+ </div>
175
+ </div>
176
+ </div>
177
+
178
+ <script client>
179
+ interface HeadCommit {
180
+ id: string
181
+ message: string
182
+ }
183
+
184
+ interface WorkflowRun {
185
+ conclusion?: string
186
+ created_at?: string
187
+ updated_at?: string
188
+ head_commit?: HeadCommit
189
+ }
190
+
191
+ const route = useRoute()
192
+
193
+ const flag = state(false)
194
+ const workflowRun = state<WorkflowRun | null>(null)
195
+
196
+ const hasWorkflowRun = derived(() => workflowRun() !== null)
197
+ const hasHeadCommit = derived(() => Boolean(workflowRun()?.head_commit))
198
+
199
+ function statusLabel(): string {
200
+ return workflowRun()?.conclusion === 'success' ? 'Ready' : 'Failed'
201
+ }
202
+
203
+ function durationLabel(): string {
204
+ const run = workflowRun()
205
+ if (!run?.created_at || !run?.updated_at)
206
+ return ''
207
+ const ms = new Date(run.updated_at).getTime() - new Date(run.created_at).getTime()
208
+ const seconds = Math.floor(ms / 1000)
209
+ if (seconds < 60)
210
+ return `${seconds}s`
211
+ const minutes = Math.floor(seconds / 60)
212
+ return `${minutes}m ${seconds % 60}s`
213
+ }
214
+
215
+ function headCommitId(): string {
216
+ return workflowRun()?.head_commit?.id?.slice(0, 10) ?? ''
217
+ }
218
+
219
+ function headCommitMessage(): string {
220
+ return workflowRun()?.head_commit?.message ?? ''
221
+ }
222
+
223
+ function toggleFlag(): void {
224
+ flag.update(v => !v)
225
+ }
226
+
227
+ onMount(async () => {
228
+ // Hook up to GitHub workflow data when the helper lands.
229
+ // Until then the page renders the empty state via :show="hasWorkflowRun".
230
+ void route.params.id
231
+ })
232
+ </script>
233
+
234
+ @endsection
@@ -0,0 +1,9 @@
1
+ @extends('layouts/default')
2
+
3
+ @section('content')
4
+ @title('Dashboard - Deployments')
5
+ <DeploymentList />
6
+
7
+ <!-- <ActivityFeed /> -->
8
+
9
+ @endsection
@@ -0,0 +1,163 @@
1
+ @extends('layouts/default')
2
+
3
+ @section('content')
4
+ @title('Dashboard - DNS')
5
+ <div class="py-4 lg:py-8 min-h-screen dark:bg-neutral-800">
6
+ <div class="px-4 sm:px-6 lg:px-8">
7
+ <div class="mb-8">
8
+ <div class="bg-white dark:bg-neutral-700 rounded-lg shadow">
9
+ <div class="p-6">
10
+ <div class="flex items-center justify-between mb-6">
11
+ <div>
12
+ <h3 class="font-medium text-base text-gray-900 dark:text-neutral-100">DNS Records Over Time</h3>
13
+ <p class="mt-1 text-gray-500 text-sm dark:text-neutral-400">Distribution of DNS record types</p>
14
+ </div>
15
+ <select x-model="timeRange" class="pl-3 pr-8 py-1.5 h-9 text-gray-900 text-sm dark:text-neutral-100 bg-gray-50 dark:bg-neutral-600 border-0 ring-1 ring-gray-300 ring-inset rounded-md dark:ring-neutral-600 focus:ring-2 focus:ring-blue-600">
16
+ <option value="day">Last 24 Hours</option>
17
+ <option value="week">Last 7 Days</option>
18
+ <option value="month">Last 30 Days</option>
19
+ <option value="year">Last Year</option>
20
+ </select>
21
+ </div>
22
+ <div class="relative h-[300px]">
23
+ <div :show="isLoading" class="flex absolute inset-0 z-10 items-center justify-center bg-opacity-75 bg-white dark:bg-neutral-700 dark:bg-opacity-75">
24
+ <div class="h-8 w-8 border-b-2 border-blue-500 rounded-full animate-spin"></div>
25
+ </div>
26
+ <canvas id="dns_records_chart"></canvas>
27
+ </div>
28
+ </div>
29
+ </div>
30
+ </div>
31
+
32
+ <div class="sm:flex sm:items-center sm:justify-between">
33
+ <div>
34
+ <h1 class="font-semibold leading-6 text-base text-gray-900 dark:text-neutral-100">DNS Records</h1>
35
+ <p class="mt-2 text-gray-700 text-sm dark:text-neutral-400">A list of all your project DNS records.</p>
36
+ </div>
37
+ <button type="button" class="block mt-4 px-3 py-2 sm:mt-0 font-semibold text-center text-sm text-white bg-blue-600 hover:bg-blue-500 rounded-md focus-visible:outline focus-visible:outline-2 focus-visible:outline-blue-600 focus-visible:outline-offset-2 shadow-sm">Add Record</button>
38
+ </div>
39
+
40
+ <div class="flow-root mt-8">
41
+ <div class="overflow-x-auto -mx-4 -my-2 sm:-mx-6 lg:-mx-8">
42
+ <div class="inline-block py-2 sm:px-6 lg:px-8 min-w-full align-middle">
43
+ <div class="overflow-hidden ring-1 ring-black ring-opacity-5 sm:rounded-lg shadow">
44
+ <table class="min-w-full divide-gray-300 divide-y">
45
+ <thead class="bg-gray-50 dark:bg-neutral-700/50">
46
+ <tr>
47
+ <th scope="col" class="pl-4 pr-3 py-3.5 sm:pl-6 font-semibold text-gray-900 text-left text-sm">Type</th>
48
+ <th scope="col" class="px-3 py-3.5 font-semibold text-gray-900 text-left text-sm">Name</th>
49
+ <th scope="col" class="px-3 py-3.5 font-semibold text-gray-900 text-left text-sm">Content</th>
50
+ <th scope="col" class="px-3 py-3.5 font-semibold text-gray-900 text-left text-sm">TTL</th>
51
+ <th scope="col" class="px-3 py-3.5 font-semibold text-gray-900 text-left text-sm">Status</th>
52
+ <th scope="col" class="relative pl-3 pr-4 py-3.5 sm:pr-6"><span class="sr-only">Edit</span></th>
53
+ </tr>
54
+ </thead>
55
+
56
+ <tbody class="bg-white dark:bg-neutral-800 divide-gray-200 divide-y">
57
+ <tr>
58
+ <td class="pl-4 pr-3 py-4 sm:pl-6 font-medium text-gray-900 text-sm whitespace-nowrap">A</td>
59
+ <td class="px-3 py-4 text-gray-500 text-sm whitespace-nowrap">admin-api</td>
60
+ <td class="px-3 py-4 text-gray-500 text-sm whitespace-nowrap">666.666.666</td>
61
+ <td class="px-3 py-4 text-gray-500 text-sm whitespace-nowrap">Auto</td>
62
+ <td class="px-3 py-4 text-gray-500 text-sm whitespace-nowrap">Proxied</td>
63
+ <td class="relative pl-3 pr-4 py-4 sm:pr-6 font-medium text-right text-sm whitespace-nowrap">
64
+ <a href="#" class="text-blue-600 hover:text-blue-900">View<span class="sr-only">, DNS Record</span></a>
65
+ </td>
66
+ </tr>
67
+ </tbody>
68
+ </table>
69
+ </div>
70
+ </div>
71
+ </div>
72
+ </div>
73
+ </div>
74
+ </div>
75
+
76
+ <script client>
77
+
78
+ interface ChartLike { destroy: () => void }
79
+ type ChartCtor = new (canvas: HTMLElement, config: { type: string, data: unknown, options?: unknown }) => ChartLike
80
+
81
+ const timeRange = state('day')
82
+ const isLoading = state(false)
83
+
84
+ let chartHandle: { destroy: () => void } | null = null
85
+
86
+ const chartOptions = {
87
+ responsive: true,
88
+ maintainAspectRatio: false,
89
+ scales: {
90
+ y: {
91
+ beginAtZero: true,
92
+ grid: { color: 'rgba(200, 200, 200, 0.1)' },
93
+ ticks: { color: 'rgb(156, 163, 175)', font: { family: "'JetBrains Mono', monospace" } },
94
+ },
95
+ x: {
96
+ grid: { display: false },
97
+ ticks: { color: 'rgb(156, 163, 175)', font: { family: "'JetBrains Mono', monospace" } },
98
+ },
99
+ },
100
+ plugins: {
101
+ legend: {
102
+ display: true,
103
+ position: 'top',
104
+ align: 'end',
105
+ labels: { color: 'rgb(156, 163, 175)', font: { family: "'JetBrains Mono', monospace" }, boxWidth: 12, padding: 15 },
106
+ },
107
+ tooltip: { mode: 'index', intersect: false },
108
+ },
109
+ }
110
+
111
+ function getDNSRecordsData() {
112
+ const labels = Array.from({ length: 24 }, (_, i) => `${i}:00`)
113
+ return {
114
+ labels,
115
+ datasets: [
116
+ {
117
+ label: 'A Records',
118
+ data: Array.from({ length: 24 }, () => Math.floor(Math.random() * 10) + 5),
119
+ borderColor: 'rgb(59, 130, 246)',
120
+ backgroundColor: 'rgba(59, 130, 246, 0.1)',
121
+ fill: true,
122
+ },
123
+ {
124
+ label: 'CNAME Records',
125
+ data: Array.from({ length: 24 }, () => Math.floor(Math.random() * 8) + 3),
126
+ borderColor: 'rgb(16, 185, 129)',
127
+ backgroundColor: 'rgba(16, 185, 129, 0.1)',
128
+ fill: true,
129
+ },
130
+ {
131
+ label: 'MX Records',
132
+ data: Array.from({ length: 24 }, () => Math.floor(Math.random() * 5) + 1),
133
+ borderColor: 'rgb(245, 158, 11)',
134
+ backgroundColor: 'rgba(245, 158, 11, 0.1)',
135
+ fill: true,
136
+ },
137
+ ],
138
+ }
139
+ }
140
+
141
+ onMount(async () => {
142
+ isLoading.set(true)
143
+ const { Chart, registerables } = await import('@stacksjs/charts')
144
+ Chart.register(...registerables)
145
+ const handle = useChart({
146
+ Chart: Chart as unknown as ChartCtor,
147
+ id: 'dns_records_chart',
148
+ type: 'line',
149
+ data: getDNSRecordsData(),
150
+ options: chartOptions,
151
+ })
152
+ chartHandle = handle
153
+ await new Promise(resolve => setTimeout(resolve, 500))
154
+ isLoading.set(false)
155
+ })
156
+
157
+ onDestroy(() => {
158
+ chartHandle?.destroy()
159
+ chartHandle = null
160
+ })
161
+ </script>
162
+
163
+ @endsection