@stacksjs/defaults 0.70.207 → 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.
- package/TODO.md +21 -0
- package/ai/AGENTS.md +79 -0
- package/ai/README.md +45 -0
- package/ai/claude/launch.json +12 -0
- package/ai/skills/stacks-actions/SKILL.md +128 -0
- package/ai/skills/stacks-ai/SKILL.md +276 -0
- package/ai/skills/stacks-alias/SKILL.md +94 -0
- package/ai/skills/stacks-analytics/SKILL.md +91 -0
- package/ai/skills/stacks-api/SKILL.md +738 -0
- package/ai/skills/stacks-arrays/SKILL.md +277 -0
- package/ai/skills/stacks-auth/SKILL.md +422 -0
- package/ai/skills/stacks-auto-imports/SKILL.md +138 -0
- package/ai/skills/stacks-brandkit/SKILL.md +811 -0
- package/ai/skills/stacks-browse/SKILL.md +127 -0
- package/ai/skills/stacks-browse/scripts/browse.ts +492 -0
- package/ai/skills/stacks-browser/SKILL.md +145 -0
- package/ai/skills/stacks-buddy/SKILL.md +676 -0
- package/ai/skills/stacks-build/SKILL.md +163 -0
- package/ai/skills/stacks-cache/SKILL.md +125 -0
- package/ai/skills/stacks-calendar/SKILL.md +113 -0
- package/ai/skills/stacks-chat/SKILL.md +371 -0
- package/ai/skills/stacks-cli/SKILL.md +112 -0
- package/ai/skills/stacks-cloud/SKILL.md +192 -0
- package/ai/skills/stacks-cms/SKILL.md +217 -0
- package/ai/skills/stacks-collections/SKILL.md +82 -0
- package/ai/skills/stacks-commerce/SKILL.md +114 -0
- package/ai/skills/stacks-composables/SKILL.md +161 -0
- package/ai/skills/stacks-config/SKILL.md +144 -0
- package/ai/skills/stacks-configuration/SKILL.md +154 -0
- package/ai/skills/stacks-cron/SKILL.md +123 -0
- package/ai/skills/stacks-crosswind/SKILL.md +190 -0
- package/ai/skills/stacks-dashboard/SKILL.md +173 -0
- package/ai/skills/stacks-database/SKILL.md +286 -0
- package/ai/skills/stacks-datetime/SKILL.md +269 -0
- package/ai/skills/stacks-dependencies/SKILL.md +111 -0
- package/ai/skills/stacks-deploy/SKILL.md +102 -0
- package/ai/skills/stacks-design-brutalist/SKILL.md +110 -0
- package/ai/skills/stacks-design-minimalist/SKILL.md +115 -0
- package/ai/skills/stacks-design-output/SKILL.md +55 -0
- package/ai/skills/stacks-design-soft/SKILL.md +156 -0
- package/ai/skills/stacks-design-taste/SKILL.md +1012 -0
- package/ai/skills/stacks-design-taste-codex/SKILL.md +294 -0
- package/ai/skills/stacks-desktop/SKILL.md +78 -0
- package/ai/skills/stacks-development/SKILL.md +298 -0
- package/ai/skills/stacks-dns/SKILL.md +149 -0
- package/ai/skills/stacks-docs/SKILL.md +109 -0
- package/ai/skills/stacks-email/SKILL.md +236 -0
- package/ai/skills/stacks-enums/SKILL.md +100 -0
- package/ai/skills/stacks-env/SKILL.md +181 -0
- package/ai/skills/stacks-error-handling/SKILL.md +137 -0
- package/ai/skills/stacks-events/SKILL.md +228 -0
- package/ai/skills/stacks-faker/SKILL.md +158 -0
- package/ai/skills/stacks-git/SKILL.md +158 -0
- package/ai/skills/stacks-guard/SKILL.md +98 -0
- package/ai/skills/stacks-health/SKILL.md +75 -0
- package/ai/skills/stacks-http/SKILL.md +316 -0
- package/ai/skills/stacks-i18n/SKILL.md +198 -0
- package/ai/skills/stacks-image-to-code/SKILL.md +629 -0
- package/ai/skills/stacks-imagegen-mobile/SKILL.md +1474 -0
- package/ai/skills/stacks-imagegen-web/SKILL.md +998 -0
- package/ai/skills/stacks-investigate/SKILL.md +119 -0
- package/ai/skills/stacks-jobs/SKILL.md +136 -0
- package/ai/skills/stacks-lint/SKILL.md +184 -0
- package/ai/skills/stacks-listeners/SKILL.md +99 -0
- package/ai/skills/stacks-logging/SKILL.md +78 -0
- package/ai/skills/stacks-mail/SKILL.md +120 -0
- package/ai/skills/stacks-middleware/SKILL.md +249 -0
- package/ai/skills/stacks-migrations/SKILL.md +105 -0
- package/ai/skills/stacks-models/SKILL.md +267 -0
- package/ai/skills/stacks-new-feature/SKILL.md +206 -0
- package/ai/skills/stacks-notifications/SKILL.md +210 -0
- package/ai/skills/stacks-objects/SKILL.md +205 -0
- package/ai/skills/stacks-office-hours/SKILL.md +134 -0
- package/ai/skills/stacks-orm/SKILL.md +342 -0
- package/ai/skills/stacks-path/SKILL.md +118 -0
- package/ai/skills/stacks-payments/SKILL.md +373 -0
- package/ai/skills/stacks-plan-review/SKILL.md +152 -0
- package/ai/skills/stacks-plugins/SKILL.md +149 -0
- package/ai/skills/stacks-push/SKILL.md +376 -0
- package/ai/skills/stacks-query-builder/SKILL.md +128 -0
- package/ai/skills/stacks-queue/SKILL.md +559 -0
- package/ai/skills/stacks-realtime/SKILL.md +442 -0
- package/ai/skills/stacks-redesign/SKILL.md +182 -0
- package/ai/skills/stacks-registry/SKILL.md +58 -0
- package/ai/skills/stacks-repl/SKILL.md +80 -0
- package/ai/skills/stacks-retro/SKILL.md +122 -0
- package/ai/skills/stacks-review/SKILL.md +135 -0
- package/ai/skills/stacks-router/SKILL.md +231 -0
- package/ai/skills/stacks-routes/SKILL.md +105 -0
- package/ai/skills/stacks-scaffolding/SKILL.md +162 -0
- package/ai/skills/stacks-scheduler/SKILL.md +363 -0
- package/ai/skills/stacks-search-engine/SKILL.md +112 -0
- package/ai/skills/stacks-security/SKILL.md +129 -0
- package/ai/skills/stacks-security-audit/SKILL.md +128 -0
- package/ai/skills/stacks-server/SKILL.md +458 -0
- package/ai/skills/stacks-shell/SKILL.md +62 -0
- package/ai/skills/stacks-slug/SKILL.md +87 -0
- package/ai/skills/stacks-sms/SKILL.md +385 -0
- package/ai/skills/stacks-socials/SKILL.md +303 -0
- package/ai/skills/stacks-storage/SKILL.md +576 -0
- package/ai/skills/stacks-strings/SKILL.md +416 -0
- package/ai/skills/stacks-stx/SKILL.md +176 -0
- package/ai/skills/stacks-technical-diagrams/LICENSE +22 -0
- package/ai/skills/stacks-technical-diagrams/SKILL.md +290 -0
- package/ai/skills/stacks-technical-diagrams/agents/openai.yaml +4 -0
- package/ai/skills/stacks-technical-diagrams/assets/template.html +1252 -0
- package/ai/skills/stacks-technical-diagrams/bin/technical-diagrams.mjs +289 -0
- package/ai/skills/stacks-technical-diagrams/bunfig.toml +1 -0
- package/ai/skills/stacks-technical-diagrams/examples/agent-run.lifecycle.json +64 -0
- package/ai/skills/stacks-technical-diagrams/examples/agent-tool-call.workflow.json +88 -0
- package/ai/skills/stacks-technical-diagrams/examples/cache-miss-request.sequence.json +75 -0
- package/ai/skills/stacks-technical-diagrams/examples/product-analytics.dataflow.json +70 -0
- package/ai/skills/stacks-technical-diagrams/examples/web-app.architecture.json +41 -0
- package/ai/skills/stacks-technical-diagrams/renderers/architecture/grid.mjs +62 -0
- package/ai/skills/stacks-technical-diagrams/renderers/architecture/render-architecture.mjs +371 -0
- package/ai/skills/stacks-technical-diagrams/renderers/dataflow/README.md +82 -0
- package/ai/skills/stacks-technical-diagrams/renderers/dataflow/render-dataflow.mjs +295 -0
- package/ai/skills/stacks-technical-diagrams/renderers/lifecycle/README.md +91 -0
- package/ai/skills/stacks-technical-diagrams/renderers/lifecycle/render-lifecycle.mjs +384 -0
- package/ai/skills/stacks-technical-diagrams/renderers/sequence/README.md +84 -0
- package/ai/skills/stacks-technical-diagrams/renderers/sequence/render-sequence.mjs +257 -0
- package/ai/skills/stacks-technical-diagrams/renderers/shared/cli.mjs +42 -0
- package/ai/skills/stacks-technical-diagrams/renderers/shared/generated-validators.mjs +13 -0
- package/ai/skills/stacks-technical-diagrams/renderers/shared/geometry.mjs +230 -0
- package/ai/skills/stacks-technical-diagrams/renderers/shared/layout-report.mjs +40 -0
- package/ai/skills/stacks-technical-diagrams/renderers/shared/utils.mjs +88 -0
- package/ai/skills/stacks-technical-diagrams/renderers/shared/validator.mjs +40 -0
- package/ai/skills/stacks-technical-diagrams/renderers/workflow/README.md +103 -0
- package/ai/skills/stacks-technical-diagrams/renderers/workflow/render-workflow.mjs +481 -0
- package/ai/skills/stacks-technical-diagrams/schemas/README.md +68 -0
- package/ai/skills/stacks-technical-diagrams/schemas/architecture.schema.json +121 -0
- package/ai/skills/stacks-technical-diagrams/schemas/common.schema.json +43 -0
- package/ai/skills/stacks-technical-diagrams/schemas/dataflow.schema.json +221 -0
- package/ai/skills/stacks-technical-diagrams/schemas/lifecycle.schema.json +241 -0
- package/ai/skills/stacks-technical-diagrams/schemas/sequence.schema.json +186 -0
- package/ai/skills/stacks-technical-diagrams/schemas/workflow.schema.json +332 -0
- package/ai/skills/stacks-technical-diagrams/scripts/check-render-output.mjs +297 -0
- package/ai/skills/stacks-technical-diagrams/scripts/render-examples.mjs +28 -0
- package/ai/skills/stacks-testing/SKILL.md +129 -0
- package/ai/skills/stacks-tunnel/SKILL.md +125 -0
- package/ai/skills/stacks-types/SKILL.md +178 -0
- package/ai/skills/stacks-ui/SKILL.md +246 -0
- package/ai/skills/stacks-utils/SKILL.md +444 -0
- package/ai/skills/stacks-validation/SKILL.md +371 -0
- package/ai/skills/stacks-whois/SKILL.md +315 -0
- package/assets/world-map-data.ts +121 -0
- package/bootstrap.ts +114 -0
- package/docs/api-examples.md +46 -0
- package/docs/index.md +24 -0
- package/docs/markdown-examples.md +87 -0
- package/functions/analytics.ts +97 -0
- package/functions/api.ts +143 -0
- package/functions/auth.ts +208 -0
- package/functions/billing/payments.ts +149 -0
- package/functions/blog.ts +120 -0
- package/functions/cms/categorizables.ts +107 -0
- package/functions/cms/pages.ts +108 -0
- package/functions/cms/posts.ts +100 -0
- package/functions/cms/taggables.ts +102 -0
- package/functions/commerce/coupons.ts +128 -0
- package/functions/commerce/customers.ts +128 -0
- package/functions/commerce/gift-cards.ts +119 -0
- package/functions/commerce/orders.ts +112 -0
- package/functions/commerce/payments.ts +119 -0
- package/functions/commerce/products/categories.ts +123 -0
- package/functions/commerce/products/manufacturers.ts +123 -0
- package/functions/commerce/products/products.ts +123 -0
- package/functions/commerce/products/reviews.ts +123 -0
- package/functions/commerce/products/units.ts +123 -0
- package/functions/commerce/products/variants.ts +123 -0
- package/functions/commerce/shippings/delivery-routes.ts +123 -0
- package/functions/commerce/shippings/digital-deliveries.ts +119 -0
- package/functions/commerce/shippings/drivers.ts +123 -0
- package/functions/commerce/shippings/license-keys.ts +123 -0
- package/functions/commerce/shippings/shipping-methods.ts +123 -0
- package/functions/commerce/shippings/shipping-rates.ts +119 -0
- package/functions/commerce/shippings/shipping-zones.ts +119 -0
- package/functions/commerce/taxes.ts +119 -0
- package/functions/commerce/waitlist/products.ts +123 -0
- package/functions/commerce/waitlist/restaurants.ts +123 -0
- package/functions/craft.ts +107 -0
- package/functions/dashboard.ts +153 -0
- package/functions/inbox.ts +95 -0
- package/functions/jobs.ts +86 -0
- package/functions/monitoring/errors.ts +295 -0
- package/functions/queue.ts +111 -0
- package/functions/realtime/websockets.ts +96 -0
- package/functions/realtime.ts +52 -0
- package/functions/releases.ts +49 -0
- package/functions/search.ts +126 -0
- package/functions/toasts.ts +95 -0
- package/functions/uploads.ts +216 -0
- package/ide/.gitignore +4 -0
- package/ide/cursor/rules/auto-imports.mdc +574 -0
- package/ide/cursor/rules/code-style.mdc +12 -0
- package/ide/cursor/rules/documentation.mdc +9 -0
- package/ide/cursor/rules/error-handling-validation.mdc +11 -0
- package/ide/cursor/rules/key-conventions.mdc +11 -0
- package/ide/cursor/rules/project-structure.mdc +169 -0
- package/ide/cursor/rules/readme.mdc +318 -0
- package/ide/cursor/rules/syntax-formatting.mdc +9 -0
- package/ide/cursor/rules/testing.mdc +10 -0
- package/ide/cursor/rules/typescript.mdc +9 -0
- package/ide/cursor/rules/ui-styling.mdc +0 -0
- package/ide/dictionary.txt +397 -0
- package/ide/jetbrains/.fleet/settings.json +4 -0
- package/ide/jetbrains/.idea/.gitignore +5 -0
- package/ide/jetbrains/.idea/.name +1 -0
- package/ide/jetbrains/.idea/inspectionProfiles/Project_Default.xml +6 -0
- package/ide/jetbrains/.idea/jsLinters/eslint.xml +7 -0
- package/ide/jetbrains/.idea/modules.xml +8 -0
- package/ide/jetbrains/.idea/stacks.iml +22 -0
- package/ide/jetbrains/.idea/vcs.xml +6 -0
- package/ide/jetbrains/.idea/webResources.xml +14 -0
- package/ide/jetbrains/IntelliJ IDEA Global Settings +0 -0
- package/ide/jetbrains/installed.txt +4 -0
- package/ide/jetbrains/options/github-copilot.xml +5 -0
- package/ide/jetbrains/options/nodejs.xml +7 -0
- package/ide/jetbrains/options/templates.xml +124 -0
- package/ide/jetbrains/templates/JavaScript.xml +6 -0
- package/ide/jetbrains/templates/Stacks.xml +8 -0
- package/ide/vscode/.vscode/README.md +23 -0
- package/ide/vscode/.vscode/extensions.json +5 -0
- package/ide/vscode/.vscode/settings.json +176 -0
- package/ide/vscode/.vscode/stacks.code-snippets +181 -0
- package/ide/vscode/LICENSE.md +21 -0
- package/ide/vscode/README.md +36 -0
- package/ide/vscode/logo.png +0 -0
- package/ide/vscode/package.json +79 -0
- package/ide/zed/.zed/settings.json +139 -0
- package/lang/README.md +28 -0
- package/lang/de.yml +14 -0
- package/lang/en.yml +15 -0
- package/package.json +19 -3
- package/project/bootstrap +161 -0
- package/project/buddy +175 -0
- package/project/storage/framework/tsconfig.app.json +50 -0
- package/project/storage/framework/tsconfig.base.json +58 -0
- package/routes/core.ts +78 -0
- package/routes/dashboard-api.ts +233 -0
- package/routes/dashboard.ts +739 -0
- package/routes/email.ts +129 -0
- package/stores/[name].stx +16 -0
- package/stores/git.ts +71 -0
- package/stores/payment.ts +474 -0
- package/stores/queue.ts +43 -0
- package/stores/user.ts +29 -0
- package/stx-components-plugin.ts +25 -0
- package/styles/design-tokens.css +597 -0
- package/types/dashboard.ts +70 -0
- package/types/defaults.ts +438 -0
- package/vcs/github/CODE_OF_CONDUCT.md +83 -0
- package/vcs/github/CONTRIBUTING.md +187 -0
- package/vcs/github/EXPLANATIONS.md +41 -0
- package/vcs/github/FUNDING.yml +1 -0
- package/vcs/github/ISSUE_TEMPLATE/bug_report.yml +49 -0
- package/vcs/github/ISSUE_TEMPLATE/config.yml +10 -0
- package/vcs/github/ISSUE_TEMPLATE/feature_request.yml +44 -0
- package/vcs/github/SECURITY.md +70 -0
- package/vcs/github/renovate.json +5 -0
- package/vcs/github/stale.yml +14 -0
- package/vcs/github/workflows/README.md +16 -0
- package/vcs/github/workflows/ci.yml +114 -0
- package/vcs/github/workflows/export-size.yml +25 -0
- package/vcs/github/workflows/labeler.yml +13 -0
- package/vcs/github/workflows/release.yml +219 -0
- package/views/[...all].stx +8 -0
- package/views/about.md +3 -0
- package/views/auth/login.stx +1 -0
- package/views/auth/signup.stx +85 -0
- package/views/dashboard/.discovered-models.json +542 -0
- package/views/dashboard/AUDIT.md +904 -0
- package/views/dashboard/[...all].stx +89 -0
- package/views/dashboard/access-tokens/index.stx +177 -0
- package/views/dashboard/actions/index.stx +129 -0
- package/views/dashboard/analytics/blog/index.stx +356 -0
- package/views/dashboard/analytics/browsers/index.stx +263 -0
- package/views/dashboard/analytics/commerce/sales/index.stx +329 -0
- package/views/dashboard/analytics/commerce/web/index.stx +379 -0
- package/views/dashboard/analytics/countries/index.stx +289 -0
- package/views/dashboard/analytics/devices/index.stx +305 -0
- package/views/dashboard/analytics/events/index.stx +536 -0
- package/views/dashboard/analytics/index.stx +88 -0
- package/views/dashboard/analytics/marketing/index.stx +315 -0
- package/views/dashboard/analytics/pages/index.stx +271 -0
- package/views/dashboard/analytics/referrers/index.stx +319 -0
- package/views/dashboard/analytics/web/index.stx +356 -0
- package/views/dashboard/buddy/index.stx +198 -0
- package/views/dashboard/ci/index.stx +462 -0
- package/views/dashboard/cloud/index.stx +452 -0
- package/views/dashboard/commands/index.stx +295 -0
- package/views/dashboard/commerce/categories/index.stx +406 -0
- package/views/dashboard/commerce/coupons/index.stx +485 -0
- package/views/dashboard/commerce/customers/index.stx +410 -0
- package/views/dashboard/commerce/dashboard/index.stx +287 -0
- package/views/dashboard/commerce/delivery/delivery-routes.stx +305 -0
- package/views/dashboard/commerce/delivery/digital-delivery.stx +332 -0
- package/views/dashboard/commerce/delivery/drivers.stx +397 -0
- package/views/dashboard/commerce/delivery/index.stx +18 -0
- package/views/dashboard/commerce/delivery/license-keys.stx +380 -0
- package/views/dashboard/commerce/delivery/shipping-methods.stx +346 -0
- package/views/dashboard/commerce/delivery/shipping-rates.stx +338 -0
- package/views/dashboard/commerce/delivery/shipping-zones.stx +302 -0
- package/views/dashboard/commerce/delivery/tabs.ts +25 -0
- package/views/dashboard/commerce/gift-cards/index.stx +561 -0
- package/views/dashboard/commerce/manufacturers/index.stx +308 -0
- package/views/dashboard/commerce/orders/index.stx +247 -0
- package/views/dashboard/commerce/payments/index.stx +535 -0
- package/views/dashboard/commerce/pos/index.stx +653 -0
- package/views/dashboard/commerce/printers/devices/index.stx +273 -0
- package/views/dashboard/commerce/printers/receipts/index.stx +308 -0
- package/views/dashboard/commerce/products/detail.stx +563 -0
- package/views/dashboard/commerce/products/index.stx +370 -0
- package/views/dashboard/commerce/reviews/index.stx +656 -0
- package/views/dashboard/commerce/reviews/index.ts +0 -0
- package/views/dashboard/commerce/taxes/index.stx +377 -0
- package/views/dashboard/commerce/units/index.stx +317 -0
- package/views/dashboard/commerce/variants/index.stx +319 -0
- package/views/dashboard/commerce/waitlist/products.stx +942 -0
- package/views/dashboard/commerce/waitlist/restaurant.stx +1024 -0
- package/views/dashboard/components/index.stx +330 -0
- package/views/dashboard/composables/index.ts +19 -0
- package/views/dashboard/composables/useChart.ts +77 -0
- package/views/dashboard/composables/useNavigation.ts +99 -0
- package/views/dashboard/composables/useRole.ts +58 -0
- package/views/dashboard/composables/useTheme.ts +74 -0
- package/views/dashboard/content/authors/index.stx +171 -0
- package/views/dashboard/content/blog/index.stx +493 -0
- package/views/dashboard/content/categories/index.stx +169 -0
- package/views/dashboard/content/comments/index.stx +189 -0
- package/views/dashboard/content/dashboard.stx +383 -0
- package/views/dashboard/content/files/index.stx +706 -0
- package/views/dashboard/content/pages/index.stx +174 -0
- package/views/dashboard/content/posts/index.stx +269 -0
- package/views/dashboard/content/seo/index.stx +240 -0
- package/views/dashboard/content/tags/index.stx +167 -0
- package/views/dashboard/data/activity/index.stx +261 -0
- package/views/dashboard/data/dashboard/index.stx +116 -0
- package/views/dashboard/data/subscribers.stx +270 -0
- package/views/dashboard/data/teams.stx +275 -0
- package/views/dashboard/data/users.stx +279 -0
- package/views/dashboard/dependencies/index.stx +178 -0
- package/views/dashboard/deployments/[id].stx +234 -0
- package/views/dashboard/deployments/index.stx +9 -0
- package/views/dashboard/dns/index.stx +163 -0
- package/views/dashboard/environment/index.stx +283 -0
- package/views/dashboard/errors/index.stx +274 -0
- package/views/dashboard/forgot-password.stx +57 -0
- package/views/dashboard/functions/index.stx +159 -0
- package/views/dashboard/health/index.stx +248 -0
- package/views/dashboard/inbox/activity.stx +350 -0
- package/views/dashboard/inbox/index.stx +452 -0
- package/views/dashboard/inbox/settings.stx +290 -0
- package/views/dashboard/index.stx +252 -0
- package/views/dashboard/insights/index.stx +529 -0
- package/views/dashboard/jobs/[id].stx +430 -0
- package/views/dashboard/jobs/history.stx +222 -0
- package/views/dashboard/jobs/index.stx +214 -0
- package/views/dashboard/kanban/[id].stx +899 -0
- package/views/dashboard/kanban/index.stx +260 -0
- package/views/dashboard/layouts/default.stx +565 -0
- package/views/dashboard/layouts/guest.stx +10 -0
- package/views/dashboard/login.stx +48 -0
- package/views/dashboard/logs/index.stx +540 -0
- package/views/dashboard/mailboxes/index.stx +149 -0
- package/views/dashboard/management/permissions/index.stx +490 -0
- package/views/dashboard/marketing/campaigns/index.stx +604 -0
- package/views/dashboard/marketing/lists/index.stx +514 -0
- package/views/dashboard/marketing/reviews/index.stx +475 -0
- package/views/dashboard/marketing/social-posts/index.stx +560 -0
- package/views/dashboard/models/[model].stx +195 -0
- package/views/dashboard/models/index.stx +159 -0
- package/views/dashboard/monitoring/errors/index.stx +415 -0
- package/views/dashboard/notifications/dashboard.stx +383 -0
- package/views/dashboard/notifications/email.stx +336 -0
- package/views/dashboard/notifications/history.stx +373 -0
- package/views/dashboard/notifications/sms.stx +332 -0
- package/views/dashboard/packages/index.stx +195 -0
- package/views/dashboard/queries/[id].stx +381 -0
- package/views/dashboard/queries/history.stx +227 -0
- package/views/dashboard/queries/index.stx +335 -0
- package/views/dashboard/queries/slow.stx +318 -0
- package/views/dashboard/queue/index.stx +427 -0
- package/views/dashboard/realtime/index.stx +429 -0
- package/views/dashboard/register.stx +46 -0
- package/views/dashboard/releases/index.stx +389 -0
- package/views/dashboard/requests/index.stx +462 -0
- package/views/dashboard/serverless/index.stx +475 -0
- package/views/dashboard/servers/[id].stx +299 -0
- package/views/dashboard/servers/index.stx +483 -0
- package/views/dashboard/settings/billing.stx +50 -0
- package/views/dashboard/settings/index.stx +256 -0
- package/views/dashboard/settings/mail.stx +252 -0
- package/views/dashboard/stores/auth.ts +123 -0
- package/views/dashboard/stores/ci.ts +342 -0
- package/views/dashboard/stores/index.ts +129 -0
- package/views/dashboard/stores/kanban.ts +723 -0
- package/views/dashboard/stores/rbac.ts +350 -0
- package/views/dashboard/stx.config.ts +34 -0
- package/views/dashboard/teams/[id].stx +170 -0
- package/views/forum/category.stx +92 -0
- package/views/forum/index.stx +209 -0
- package/views/forum/new-topic.stx +113 -0
- package/views/forum/profile.stx +1 -0
- package/views/forum/topic.stx +143 -0
- package/views/hello-world/[name].stx +47 -0
- package/views/index.stx +21 -0
- 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,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
|