@stacksjs/defaults 0.70.229 → 0.70.230
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/ai/AGENTS.md +4 -4
- package/ai/skills/stacks-actions/SKILL.md +48 -12
- package/ai/skills/stacks-api/SKILL.md +12 -7
- package/ai/skills/stacks-auth/SKILL.md +2 -1
- package/ai/skills/stacks-auto-imports/SKILL.md +7 -0
- package/ai/skills/stacks-browse/SKILL.md +12 -0
- package/ai/skills/stacks-browse/scripts/browse.ts +310 -14
- package/ai/skills/stacks-dashboard/SKILL.md +315 -84
- package/ai/skills/stacks-dashboard/scripts/audit.ts +374 -0
- package/ai/skills/stacks-database/SKILL.md +4 -0
- package/ai/skills/stacks-development/SKILL.md +9 -6
- package/ai/skills/stacks-email/SKILL.md +29 -3
- package/ai/skills/stacks-env/SKILL.md +25 -5
- package/ai/skills/stacks-faker/SKILL.md +3 -3
- package/ai/skills/stacks-migrations/SKILL.md +21 -2
- package/ai/skills/stacks-models/SKILL.md +58 -1
- package/ai/skills/stacks-notifications/SKILL.md +14 -10
- package/ai/skills/stacks-orm/SKILL.md +15 -1
- package/ai/skills/stacks-payments/SKILL.md +32 -0
- package/ai/skills/stacks-search-engine/SKILL.md +21 -13
- package/ai/skills/stacks-stx/SKILL.md +109 -16
- package/ai/skills/stacks-technical-diagrams/assets/template.html +49 -49
- package/app/Actions/Auth/CreateTokenAction.ts +13 -12
- package/app/Actions/Auth/ListTokensAction.ts +1 -1
- package/app/Actions/Auth/token-request.test.ts +26 -0
- package/app/Actions/Auth/token-request.ts +22 -0
- package/app/Actions/Commerce/CouponDestroyAction.ts +8 -2
- package/app/Actions/Commerce/CouponShowAction.ts +7 -1
- package/app/Actions/Commerce/CouponStoreAction.ts +2 -1
- package/app/Actions/Commerce/CouponUpdateAction.ts +11 -13
- package/app/Actions/Commerce/CustomerDestroyAction.ts +8 -2
- package/app/Actions/Commerce/CustomerShowAction.ts +7 -1
- package/app/Actions/Commerce/CustomerStoreAction.ts +6 -3
- package/app/Actions/Commerce/CustomerUpdateAction.ts +15 -5
- package/app/Actions/Commerce/GiftCardDestroyAction.ts +8 -2
- package/app/Actions/Commerce/GiftCardShowAction.ts +7 -1
- package/app/Actions/Commerce/GiftCardStoreAction.ts +3 -16
- package/app/Actions/Commerce/GiftCardUpdateAction.ts +12 -9
- package/app/Actions/Commerce/OrderDestroyAction.ts +8 -2
- package/app/Actions/Commerce/OrderShowAction.ts +7 -1
- package/app/Actions/Commerce/OrderStoreAction.ts +3 -13
- package/app/Actions/Commerce/OrderUpdateAction.ts +12 -17
- package/app/Actions/Commerce/PaymentDestroyAction.ts +8 -2
- package/app/Actions/Commerce/PaymentShowAction.ts +7 -1
- package/app/Actions/Commerce/PaymentUpdateAction.ts +8 -3
- package/app/Actions/Commerce/PrintDeviceDestroyAction.ts +10 -4
- package/app/Actions/Commerce/PrintDeviceShowAction.ts +7 -1
- package/app/Actions/Commerce/PrintDeviceStoreAction.ts +4 -12
- package/app/Actions/Commerce/PrintDeviceUpdateAction.ts +12 -13
- package/app/Actions/Commerce/Product/ManufacturerDestroyAction.ts +10 -6
- package/app/Actions/Commerce/Product/ManufacturerShowAction.ts +9 -3
- package/app/Actions/Commerce/Product/ManufacturerStoreAction.ts +7 -2
- package/app/Actions/Commerce/Product/ManufacturerUpdateAction.ts +27 -0
- package/app/Actions/Commerce/Product/ProductCategoryDestroyAction.ts +23 -0
- package/app/Actions/Commerce/Product/ProductCategoryStoreAction.ts +5 -2
- package/app/Actions/Commerce/Product/ProductCategoryUpdateAction.ts +27 -0
- package/app/Actions/Commerce/Product/ProductDestroyAction.ts +8 -2
- package/app/Actions/Commerce/Product/ProductShowAction.ts +7 -1
- package/app/Actions/Commerce/Product/ProductStoreAction.ts +2 -0
- package/app/Actions/Commerce/Product/ProductUnitDestroyAction.ts +10 -4
- package/app/Actions/Commerce/Product/ProductUnitShowAction.ts +7 -1
- package/app/Actions/Commerce/Product/ProductUnitStoreAction.ts +7 -2
- package/app/Actions/Commerce/Product/ProductUnitUpdateAction.ts +27 -0
- package/app/Actions/Commerce/Product/ProductUpdateAction.ts +12 -2
- package/app/Actions/Commerce/Product/ProductVariantDestroyAction.ts +10 -4
- package/app/Actions/Commerce/Product/ProductVariantShowAction.ts +7 -1
- package/app/Actions/Commerce/Product/ProductVariantStoreAction.ts +7 -2
- package/app/Actions/Commerce/Product/ProductVariantUpdateAction.ts +13 -3
- package/app/Actions/Commerce/ReceiptDestroyAction.ts +10 -4
- package/app/Actions/Commerce/ReceiptShowAction.ts +7 -1
- package/app/Actions/Commerce/ReceiptStoreAction.ts +4 -13
- package/app/Actions/Commerce/ReceiptUpdateAction.ts +12 -16
- package/app/Actions/Commerce/ReviewDestroyAction.ts +22 -0
- package/app/Actions/Commerce/ReviewShowAction.ts +7 -1
- package/app/Actions/Commerce/ReviewStoreAction.ts +4 -11
- package/app/Actions/Commerce/ReviewUpdateAction.ts +12 -14
- package/app/Actions/Commerce/Shipping/DeliveryRouteDestroyAction.ts +8 -2
- package/app/Actions/Commerce/Shipping/DeliveryRouteShowAction.ts +7 -1
- package/app/Actions/Commerce/Shipping/DeliveryRouteStoreAction.ts +12 -2
- package/app/Actions/Commerce/Shipping/DeliveryRouteUpdateAction.ts +21 -4
- package/app/Actions/Commerce/Shipping/DigitalDeliveryDestroyAction.ts +8 -2
- package/app/Actions/Commerce/Shipping/DigitalDeliveryShowAction.ts +7 -1
- package/app/Actions/Commerce/Shipping/DigitalDeliveryStoreAction.ts +2 -0
- package/app/Actions/Commerce/Shipping/DigitalDeliveryUpdateAction.ts +13 -3
- package/app/Actions/Commerce/{DriverDestroyAction.ts → Shipping/DriverDestroyAction.ts} +8 -4
- package/app/Actions/Commerce/Shipping/DriverShowAction.ts +7 -1
- package/app/Actions/Commerce/Shipping/DriverStoreAction.ts +4 -1
- package/app/Actions/Commerce/Shipping/DriverUpdateAction.ts +13 -3
- package/app/Actions/Commerce/Shipping/LicenseKeyDestroyAction.ts +8 -2
- package/app/Actions/Commerce/Shipping/LicenseKeyShowAction.ts +7 -1
- package/app/Actions/Commerce/Shipping/LicenseKeyStoreAction.ts +12 -2
- package/app/Actions/Commerce/Shipping/LicenseKeyUpdateAction.ts +21 -4
- package/app/Actions/Commerce/Shipping/ShippingMethodDestroyAction.ts +8 -2
- package/app/Actions/Commerce/Shipping/ShippingMethodShowAction.ts +7 -1
- package/app/Actions/Commerce/Shipping/ShippingMethodStoreAction.ts +3 -1
- package/app/Actions/Commerce/Shipping/ShippingMethodUpdateAction.ts +12 -2
- package/app/Actions/Commerce/Shipping/ShippingRateDestroyAction.ts +8 -2
- package/app/Actions/Commerce/Shipping/ShippingRateShowAction.ts +7 -1
- package/app/Actions/Commerce/Shipping/ShippingRateStoreAction.ts +11 -2
- package/app/Actions/Commerce/Shipping/ShippingRateUpdateAction.ts +20 -3
- package/app/Actions/Commerce/Shipping/ShippingZoneDestroyAction.ts +8 -2
- package/app/Actions/Commerce/Shipping/ShippingZoneShowAction.ts +7 -1
- package/app/Actions/Commerce/Shipping/ShippingZoneStoreAction.ts +3 -1
- package/app/Actions/Commerce/Shipping/ShippingZoneUpdateAction.ts +12 -2
- package/app/Actions/Commerce/TaxRateDestroyAction.ts +10 -4
- package/app/Actions/Commerce/TaxRateShowAction.ts +7 -1
- package/app/Actions/Commerce/TaxRateStoreAction.ts +4 -9
- package/app/Actions/Commerce/TaxRateUpdateAction.ts +12 -10
- package/app/Actions/Commerce/WaitlistProductDestroyAction.ts +10 -4
- package/app/Actions/Commerce/WaitlistProductShowAction.ts +7 -1
- package/app/Actions/Commerce/WaitlistProductStoreAction.ts +4 -12
- package/app/Actions/Commerce/WaitlistProductUpdateAction.ts +12 -15
- package/app/Actions/Commerce/WaitlistRestaurantDestroyAction.ts +10 -4
- package/app/Actions/Commerce/WaitlistRestaurantShowAction.ts +7 -1
- package/app/Actions/Commerce/WaitlistRestaurantStoreAction.ts +4 -16
- package/app/Actions/Commerce/WaitlistRestaurantUpdateAction.ts +12 -19
- package/app/Actions/Commerce/commerce-action.test.ts +31 -0
- package/app/Actions/Commerce/commerce-action.ts +23 -0
- package/app/Actions/Dashboard/Actions/GetActions.ts +12 -9
- package/app/Actions/Dashboard/Analytics/BlogAnalyticsAction.ts +2 -63
- package/app/Actions/Dashboard/Analytics/BrowserAnalyticsAction.ts +2 -47
- package/app/Actions/Dashboard/Analytics/CommerceAnalyticsAction.ts +2 -69
- package/app/Actions/Dashboard/Analytics/CountryAnalyticsAction.ts +2 -46
- package/app/Actions/Dashboard/Analytics/DeviceAnalyticsAction.ts +2 -63
- package/app/Actions/Dashboard/Analytics/EventAnalyticsAction.ts +47 -84
- package/app/Actions/Dashboard/Analytics/EventStoreAction.ts +60 -0
- package/app/Actions/Dashboard/Analytics/MarketingAnalyticsAction.ts +52 -70
- package/app/Actions/Dashboard/Analytics/PageAnalyticsAction.ts +2 -50
- package/app/Actions/Dashboard/Analytics/ReferrerAnalyticsAction.ts +2 -77
- package/app/Actions/Dashboard/Analytics/SalesAnalyticsAction.ts +88 -60
- package/app/Actions/Dashboard/Analytics/WebAnalyticsAction.ts +24 -108
- package/app/Actions/Dashboard/Analytics/analytics-record.test.ts +35 -0
- package/app/Actions/Dashboard/Analytics/analytics-record.ts +93 -0
- package/app/Actions/Dashboard/Analytics/campaign-analytics.test.ts +97 -0
- package/app/Actions/Dashboard/Analytics/campaign-analytics.ts +174 -0
- package/app/Actions/Dashboard/Analytics/event-analytics.test.ts +56 -0
- package/app/Actions/Dashboard/Analytics/event-analytics.ts +136 -0
- package/app/Actions/Dashboard/Analytics/request-analytics.test.ts +132 -0
- package/app/Actions/Dashboard/Analytics/request-analytics.ts +286 -0
- package/app/Actions/Dashboard/Analytics/sales-analytics.test.ts +66 -0
- package/app/Actions/Dashboard/Analytics/sales-analytics.ts +226 -0
- package/app/Actions/Dashboard/Buddy/BuddyChatAction.ts +57 -0
- package/app/Actions/Dashboard/Buddy/BuddyChatClearAction.ts +14 -0
- package/app/Actions/Dashboard/Buddy/BuddyChatStateAction.ts +31 -0
- package/app/Actions/Dashboard/Buddy/buddy-chat.test.ts +31 -0
- package/app/Actions/Dashboard/Buddy/buddy-chat.ts +49 -0
- package/app/Actions/Dashboard/BuddyDashboardAction.ts +2 -34
- package/app/Actions/Dashboard/Ci/failure-notifier.ts +1 -1
- package/app/Actions/Dashboard/Ci/runner-pressure-monitor.ts +1 -1
- package/app/Actions/Dashboard/Cloud/CloudIndexAction.ts +4 -53
- package/app/Actions/Dashboard/Cloud/ServerlessIndexAction.ts +20 -0
- package/app/Actions/Dashboard/Cloud/cloud-overview.test.ts +180 -0
- package/app/Actions/Dashboard/Cloud/cloud-overview.ts +575 -0
- package/app/Actions/Dashboard/Commerce/CommerceCategoriesAction.ts +32 -0
- package/app/Actions/Dashboard/Commerce/CommerceCouponsAction.ts +23 -37
- package/app/Actions/Dashboard/Commerce/CommerceCustomersAction.ts +21 -36
- package/app/Actions/Dashboard/Commerce/CommerceDashboardAction.ts +50 -84
- package/app/Actions/Dashboard/Commerce/CommerceDeliveryAction.ts +23 -52
- package/app/Actions/Dashboard/Commerce/CommerceGiftCardsAction.ts +23 -37
- package/app/Actions/Dashboard/Commerce/CommerceOrdersAction.ts +50 -39
- package/app/Actions/Dashboard/Commerce/CommercePaymentsAction.ts +28 -47
- package/app/Actions/Dashboard/Commerce/CommercePosAction.ts +71 -0
- package/app/Actions/Dashboard/Commerce/CommercePosCheckoutAction.ts +355 -0
- package/app/Actions/Dashboard/Commerce/CommercePrintDevicesAction.ts +27 -0
- package/app/Actions/Dashboard/Commerce/CommercePrintLogsAction.ts +124 -0
- package/app/Actions/Dashboard/Commerce/CommerceProductDetailAction.ts +68 -0
- package/app/Actions/Dashboard/Commerce/CommerceProductsAction.ts +50 -38
- package/app/Actions/Dashboard/Commerce/CommerceTaxesAction.ts +15 -34
- package/app/Actions/Dashboard/Commerce/DeliveryRouteIndexAction.ts +29 -0
- package/app/Actions/Dashboard/Commerce/DigitalDeliveryIndexAction.ts +23 -0
- package/app/Actions/Dashboard/Commerce/DriverIndexAction.ts +26 -0
- package/app/Actions/Dashboard/Commerce/LicenseKeyIndexAction.ts +39 -0
- package/app/Actions/Dashboard/Commerce/LicenseKeyOptionsAction.ts +34 -0
- package/app/Actions/Dashboard/Commerce/ManufacturerIndexAction.ts +39 -0
- package/app/Actions/Dashboard/Commerce/PaymentRefundAction.ts +36 -0
- package/app/Actions/Dashboard/Commerce/PosIndexAction.ts +1 -57
- package/app/Actions/Dashboard/Commerce/ProductUnitDefaultAction.ts +23 -0
- package/app/Actions/Dashboard/Commerce/ProductUnitIndexAction.ts +38 -0
- package/app/Actions/Dashboard/Commerce/ProductVariantIndexAction.ts +37 -0
- package/app/Actions/Dashboard/Commerce/ProductWaitlistIndexAction.ts +41 -0
- package/app/Actions/Dashboard/Commerce/RestaurantWaitlistIndexAction.ts +36 -0
- package/app/Actions/Dashboard/Commerce/ReviewIndexAction.ts +37 -38
- package/app/Actions/Dashboard/Commerce/ShippingMethodIndexAction.ts +32 -0
- package/app/Actions/Dashboard/Commerce/ShippingRateIndexAction.ts +35 -0
- package/app/Actions/Dashboard/Commerce/ShippingZoneIndexAction.ts +31 -0
- package/app/Actions/Dashboard/Commerce/TaxRateDefaultAction.ts +23 -0
- package/app/Actions/Dashboard/Commerce/commerce-category-records.test.ts +81 -0
- package/app/Actions/Dashboard/Commerce/commerce-category-records.ts +62 -0
- package/app/Actions/Dashboard/Commerce/commerce-customer-records.test.ts +72 -0
- package/app/Actions/Dashboard/Commerce/commerce-customer-records.ts +66 -0
- package/app/Actions/Dashboard/Commerce/commerce-dashboard.test.ts +158 -0
- package/app/Actions/Dashboard/Commerce/commerce-dashboard.ts +511 -0
- package/app/Actions/Dashboard/Commerce/commerce-delivery.test.ts +115 -0
- package/app/Actions/Dashboard/Commerce/commerce-delivery.ts +281 -0
- package/app/Actions/Dashboard/Commerce/commerce-order-records.test.ts +136 -0
- package/app/Actions/Dashboard/Commerce/commerce-order-records.ts +213 -0
- package/app/Actions/Dashboard/Commerce/commerce-pos.test.ts +95 -0
- package/app/Actions/Dashboard/Commerce/commerce-pos.ts +260 -0
- package/app/Actions/Dashboard/Commerce/commerce-product-records.test.ts +139 -0
- package/app/Actions/Dashboard/Commerce/commerce-product-records.ts +298 -0
- package/app/Actions/Dashboard/Commerce/commerce-record.test.ts +58 -0
- package/app/Actions/Dashboard/Commerce/commerce-record.ts +213 -0
- package/app/Actions/Dashboard/Commerce/coupon-records.test.ts +91 -0
- package/app/Actions/Dashboard/Commerce/coupon-records.ts +141 -0
- package/app/Actions/Dashboard/Commerce/delivery-route-records.test.ts +52 -0
- package/app/Actions/Dashboard/Commerce/delivery-route-records.ts +113 -0
- package/app/Actions/Dashboard/Commerce/digital-delivery-records.test.ts +52 -0
- package/app/Actions/Dashboard/Commerce/digital-delivery-records.ts +70 -0
- package/app/Actions/Dashboard/Commerce/driver-records.test.ts +42 -0
- package/app/Actions/Dashboard/Commerce/driver-records.ts +92 -0
- package/app/Actions/Dashboard/Commerce/gift-card-records.test.ts +120 -0
- package/app/Actions/Dashboard/Commerce/gift-card-records.ts +181 -0
- package/app/Actions/Dashboard/Commerce/license-key-records.test.ts +68 -0
- package/app/Actions/Dashboard/Commerce/license-key-records.ts +135 -0
- package/app/Actions/Dashboard/Commerce/manufacturer-records.test.ts +63 -0
- package/app/Actions/Dashboard/Commerce/manufacturer-records.ts +84 -0
- package/app/Actions/Dashboard/Commerce/payment-records.test.ts +105 -0
- package/app/Actions/Dashboard/Commerce/payment-records.ts +227 -0
- package/app/Actions/Dashboard/Commerce/print-device-records.test.ts +66 -0
- package/app/Actions/Dashboard/Commerce/print-device-records.ts +76 -0
- package/app/Actions/Dashboard/Commerce/print-log-records.test.ts +110 -0
- package/app/Actions/Dashboard/Commerce/print-log-records.ts +121 -0
- package/app/Actions/Dashboard/Commerce/product-unit-records.test.ts +90 -0
- package/app/Actions/Dashboard/Commerce/product-unit-records.ts +97 -0
- package/app/Actions/Dashboard/Commerce/product-variant-records.test.ts +85 -0
- package/app/Actions/Dashboard/Commerce/product-variant-records.ts +90 -0
- package/app/Actions/Dashboard/Commerce/product-waitlist-records.test.ts +101 -0
- package/app/Actions/Dashboard/Commerce/product-waitlist-records.ts +156 -0
- package/app/Actions/Dashboard/Commerce/restaurant-waitlist-records.test.ts +108 -0
- package/app/Actions/Dashboard/Commerce/restaurant-waitlist-records.ts +186 -0
- package/app/Actions/Dashboard/Commerce/review-records.test.ts +125 -0
- package/app/Actions/Dashboard/Commerce/review-records.ts +149 -0
- package/app/Actions/Dashboard/Commerce/shipping-method-records.test.ts +55 -0
- package/app/Actions/Dashboard/Commerce/shipping-method-records.ts +106 -0
- package/app/Actions/Dashboard/Commerce/shipping-rate-records.test.ts +48 -0
- package/app/Actions/Dashboard/Commerce/shipping-rate-records.ts +147 -0
- package/app/Actions/Dashboard/Commerce/shipping-zone-records.test.ts +54 -0
- package/app/Actions/Dashboard/Commerce/shipping-zone-records.ts +88 -0
- package/app/Actions/Dashboard/Commerce/tax-rate-records.test.ts +100 -0
- package/app/Actions/Dashboard/Commerce/tax-rate-records.ts +67 -0
- package/app/Actions/Dashboard/Content/AuthorStoreAction.ts +12 -14
- package/app/Actions/Dashboard/Content/AuthorUpdateAction.ts +50 -0
- package/app/Actions/Dashboard/Content/CategoryDestroyAction.ts +7 -6
- package/app/Actions/Dashboard/Content/CategoryStoreAction.ts +7 -0
- package/app/Actions/Dashboard/Content/ContentDashboardAction.test.ts +118 -0
- package/app/Actions/Dashboard/Content/ContentDashboardAction.ts +248 -47
- package/app/Actions/Dashboard/Content/FileDestroyAction.ts +24 -0
- package/app/Actions/Dashboard/Content/FileDirectoryStoreAction.ts +25 -0
- package/app/Actions/Dashboard/Content/FileIndexAction.ts +16 -16
- package/app/Actions/Dashboard/Content/FileUploadAction.ts +42 -0
- package/app/Actions/Dashboard/Content/PageStoreAction.ts +12 -13
- package/app/Actions/Dashboard/Content/PageUpdateAction.ts +46 -0
- package/app/Actions/Dashboard/Content/PostDestroyAction.ts +9 -12
- package/app/Actions/Dashboard/Content/PostIndexAction.ts +48 -7
- package/app/Actions/Dashboard/Content/PostStoreAction.ts +20 -3
- package/app/Actions/Dashboard/Content/PostUpdateAction.ts +20 -3
- package/app/Actions/Dashboard/Content/TagDestroyAction.ts +7 -6
- package/app/Actions/Dashboard/Content/TagIndexAction.ts +22 -12
- package/app/Actions/Dashboard/Content/TagStoreAction.ts +2 -3
- package/app/Actions/Dashboard/Content/author-input.ts +34 -0
- package/app/Actions/Dashboard/Content/content-record-input.test.ts +45 -0
- package/app/Actions/Dashboard/Content/file-manager.test.ts +165 -0
- package/app/Actions/Dashboard/Content/file-manager.ts +487 -0
- package/app/Actions/Dashboard/Content/page-input.ts +27 -0
- package/app/Actions/Dashboard/Content/post-input.ts +68 -0
- package/app/Actions/Dashboard/DashboardActivityAction.ts +35 -48
- package/app/Actions/Dashboard/DashboardHealthAction.ts +21 -43
- package/app/Actions/Dashboard/DashboardHomeAction.test.ts +24 -2
- package/app/Actions/Dashboard/DashboardHomeAction.ts +88 -75
- package/app/Actions/Dashboard/DashboardLegacyActions.test.ts +32 -0
- package/app/Actions/Dashboard/DashboardStatsAction.ts +39 -17
- package/app/Actions/Dashboard/Data/ActivityIndexAction.ts +33 -14
- package/app/Actions/Dashboard/Data/SubscriberIndexAction.ts +30 -30
- package/app/Actions/Dashboard/Data/TeamIndexAction.ts +31 -25
- package/app/Actions/Dashboard/Data/UserIndexAction.ts +29 -31
- package/app/Actions/Dashboard/Data/data-records.test.ts +19 -0
- package/app/Actions/Dashboard/Data/data-records.ts +28 -0
- package/app/Actions/Dashboard/Deployments/CreateDeployment.ts +105 -2
- package/app/Actions/Dashboard/Deployments/GetAverageDeploymentTime.ts +5 -5
- package/app/Actions/Dashboard/Deployments/GetDeployScript.ts +26 -2
- package/app/Actions/Dashboard/Deployments/GetDeployment.ts +31 -0
- package/app/Actions/Dashboard/Deployments/GetDeploymentCount.ts +3 -2
- package/app/Actions/Dashboard/Deployments/GetDeploymentLiveTerminalOutput.ts +29 -2
- package/app/Actions/Dashboard/Deployments/GetDeployments.ts +9 -4
- package/app/Actions/Dashboard/Deployments/GetRecentDeployments.ts +4 -2
- package/app/Actions/Dashboard/Deployments/UpdateDeployScript.ts +31 -1
- package/app/Actions/Dashboard/Deployments/deployment-input.test.ts +50 -0
- package/app/Actions/Dashboard/Deployments/deployment-input.ts +48 -0
- package/app/Actions/Dashboard/Email/CapturedMailIndexAction.ts +27 -0
- package/app/Actions/Dashboard/Email/CapturedMailShowAction.ts +31 -0
- package/app/Actions/Dashboard/Email/InboxActivityAction.ts +250 -0
- package/app/Actions/Dashboard/Email/InboxDeleteAction.ts +26 -0
- package/app/Actions/Dashboard/Email/InboxIndexAction.ts +5 -12
- package/app/Actions/Dashboard/Email/InboxMarkReadAction.ts +13 -23
- package/app/Actions/Dashboard/Email/InboxMarkUnreadAction.ts +26 -0
- package/app/Actions/Dashboard/Email/InboxPreferenceShowAction.ts +18 -0
- package/app/Actions/Dashboard/Email/InboxPreferenceUpdateAction.ts +163 -0
- package/app/Actions/Dashboard/Email/InboxSendAction.ts +44 -0
- package/app/Actions/Dashboard/Email/InboxShowAction.ts +11 -16
- package/app/Actions/Dashboard/Email/InboxStatsAction.ts +5 -13
- package/app/Actions/Dashboard/Email/captured-mail.test.ts +77 -0
- package/app/Actions/Dashboard/Email/captured-mail.ts +223 -0
- package/app/Actions/Dashboard/Email/mail-preference.test.ts +72 -0
- package/app/Actions/Dashboard/Email/mail-preference.ts +185 -0
- package/app/Actions/Dashboard/Email/sanitize-inbox-html.test.ts +32 -0
- package/app/Actions/Dashboard/Email/sanitize-inbox-html.ts +70 -0
- package/app/Actions/Dashboard/Infrastructure/CommandIndexAction.ts +39 -8
- package/app/Actions/Dashboard/Infrastructure/DnsIndexAction.ts +3 -91
- package/app/Actions/Dashboard/Infrastructure/EnvironmentIndexAction.ts +8 -59
- package/app/Actions/Dashboard/Infrastructure/EnvironmentUpdateAction.ts +46 -0
- package/app/Actions/Dashboard/Infrastructure/InsightsAction.ts +239 -16
- package/app/Actions/Dashboard/Infrastructure/LogIndexAction.ts +102 -38
- package/app/Actions/Dashboard/Infrastructure/MailboxIndexAction.ts +2 -75
- package/app/Actions/Dashboard/Infrastructure/PermissionIndexAction.ts +37 -42
- package/app/Actions/Dashboard/Infrastructure/RequestIndexAction.ts +30 -31
- package/app/Actions/Dashboard/Infrastructure/ServerIndexAction.ts +12 -92
- package/app/Actions/Dashboard/Infrastructure/ServerShowAction.ts +32 -0
- package/app/Actions/Dashboard/Infrastructure/dns-overview.test.ts +55 -0
- package/app/Actions/Dashboard/Infrastructure/dns-overview.ts +106 -0
- package/app/Actions/Dashboard/Infrastructure/environment-file.test.ts +100 -0
- package/app/Actions/Dashboard/Infrastructure/environment-file.ts +287 -0
- package/app/Actions/Dashboard/Infrastructure/insights-dashboard.test.ts +47 -0
- package/app/Actions/Dashboard/Infrastructure/insights-dashboard.ts +64 -0
- package/app/Actions/Dashboard/Infrastructure/log-dashboard.test.ts +58 -0
- package/app/Actions/Dashboard/Infrastructure/log-dashboard.ts +94 -0
- package/app/Actions/Dashboard/Infrastructure/mailbox-overview.test.ts +57 -0
- package/app/Actions/Dashboard/Infrastructure/mailbox-overview.ts +150 -0
- package/app/Actions/Dashboard/Infrastructure/server-detail.test.ts +77 -0
- package/app/Actions/Dashboard/Infrastructure/server-detail.ts +64 -0
- package/app/Actions/Dashboard/Jobs/JobIndexAction.ts +9 -87
- package/app/Actions/Dashboard/Jobs/JobRetryAction.ts +11 -4
- package/app/Actions/Dashboard/Jobs/JobShowAction.ts +43 -0
- package/app/Actions/Dashboard/Jobs/JobStatsAction.ts +5 -8
- package/app/Actions/Dashboard/Jobs/job-records.test.ts +159 -0
- package/app/Actions/Dashboard/Jobs/job-records.ts +221 -0
- package/app/Actions/Dashboard/Kanban/BoardDestroyAction.ts +6 -23
- package/app/Actions/Dashboard/Kanban/BoardShowAction.ts +4 -6
- package/app/Actions/Dashboard/Kanban/BoardStoreAction.ts +19 -34
- package/app/Actions/Dashboard/Kanban/BoardUpdateAction.ts +22 -28
- package/app/Actions/Dashboard/Kanban/BoardsIndexAction.ts +2 -7
- package/app/Actions/Dashboard/Kanban/BoardsReorderAction.ts +8 -15
- package/app/Actions/Dashboard/Kanban/CardAssigneesSyncAction.ts +10 -14
- package/app/Actions/Dashboard/Kanban/CardCommentDestroyAction.ts +3 -2
- package/app/Actions/Dashboard/Kanban/CardCommentStoreAction.ts +6 -5
- package/app/Actions/Dashboard/Kanban/CardDestroyAction.ts +6 -10
- package/app/Actions/Dashboard/Kanban/CardLabelsSyncAction.ts +10 -14
- package/app/Actions/Dashboard/Kanban/CardShowAction.ts +4 -3
- package/app/Actions/Dashboard/Kanban/CardStoreAction.ts +30 -46
- package/app/Actions/Dashboard/Kanban/CardUpdateAction.ts +27 -30
- package/app/Actions/Dashboard/Kanban/CardsReorderAction.ts +14 -21
- package/app/Actions/Dashboard/Kanban/ColumnDestroyAction.ts +6 -10
- package/app/Actions/Dashboard/Kanban/ColumnStoreAction.ts +19 -32
- package/app/Actions/Dashboard/Kanban/ColumnUpdateAction.ts +23 -25
- package/app/Actions/Dashboard/Kanban/ColumnsReorderAction.ts +10 -14
- package/app/Actions/Dashboard/Kanban/LabelDestroyAction.ts +6 -10
- package/app/Actions/Dashboard/Kanban/LabelStoreAction.ts +13 -26
- package/app/Actions/Dashboard/Kanban/LabelUpdateAction.ts +28 -30
- package/app/Actions/Dashboard/Kanban/UsersListAction.ts +2 -1
- package/app/Actions/Dashboard/Kanban/kanban-model.test.ts +49 -0
- package/app/Actions/Dashboard/Kanban/kanban-model.ts +37 -0
- package/app/Actions/Dashboard/Kanban/kanban-response.ts +5 -0
- package/app/Actions/Dashboard/Library/CreateComponent.ts +23 -6
- package/app/Actions/Dashboard/Library/CreateFunction.ts +21 -4
- package/app/Actions/Dashboard/Library/DependencyIndexAction.ts +59 -43
- package/app/Actions/Dashboard/Library/GetAverageReleaseTime.ts +20 -2
- package/app/Actions/Dashboard/Library/GetComponents.ts +9 -13
- package/app/Actions/Dashboard/Library/GetComponentsDownloadCount.ts +5 -2
- package/app/Actions/Dashboard/Library/GetDownloadCount.ts +7 -2
- package/app/Actions/Dashboard/Library/GetFunctions.ts +7 -11
- package/app/Actions/Dashboard/Library/GetFunctionsDownloadCount.ts +5 -2
- package/app/Actions/Dashboard/Library/GetReleaseCount.ts +7 -2
- package/app/Actions/Dashboard/Library/GetReleases.ts +10 -15
- package/app/Actions/Dashboard/Library/PackageIndexAction.ts +9 -16
- package/app/Actions/Dashboard/Library/library-source.ts +205 -0
- package/app/Actions/Dashboard/Marketing/CampaignCancelAction.ts +26 -0
- package/app/Actions/Dashboard/Marketing/CampaignDestroyAction.ts +33 -0
- package/app/Actions/Dashboard/Marketing/CampaignIndexAction.ts +50 -36
- package/app/Actions/Dashboard/Marketing/CampaignScheduleAction.ts +49 -0
- package/app/Actions/Dashboard/Marketing/CampaignSendAction.ts +42 -0
- package/app/Actions/Dashboard/Marketing/CampaignStoreAction.ts +36 -0
- package/app/Actions/Dashboard/Marketing/CampaignUpdateAction.ts +38 -0
- package/app/Actions/Dashboard/Marketing/ListDestroyAction.ts +41 -0
- package/app/Actions/Dashboard/Marketing/ListIndexAction.ts +35 -32
- package/app/Actions/Dashboard/Marketing/ListStoreAction.ts +36 -0
- package/app/Actions/Dashboard/Marketing/ListUpdateAction.ts +35 -0
- package/app/Actions/Dashboard/Marketing/SocialPostDestroyAction.ts +18 -0
- package/app/Actions/Dashboard/Marketing/SocialPostIndexAction.ts +10 -39
- package/app/Actions/Dashboard/Marketing/SocialPostStoreAction.ts +29 -0
- package/app/Actions/Dashboard/Marketing/SocialPostUpdateAction.ts +28 -0
- package/app/Actions/Dashboard/Marketing/campaign-delivery.test.ts +46 -0
- package/app/Actions/Dashboard/Marketing/campaign-delivery.ts +60 -0
- package/app/Actions/Dashboard/Marketing/campaign-records.test.ts +74 -0
- package/app/Actions/Dashboard/Marketing/campaign-records.ts +277 -0
- package/app/Actions/Dashboard/Marketing/marketing-list-records.test.ts +71 -0
- package/app/Actions/Dashboard/Marketing/marketing-list-records.ts +161 -0
- package/app/Actions/Dashboard/Marketing/social-post-records.test.ts +71 -0
- package/app/Actions/Dashboard/Marketing/social-post-records.ts +163 -0
- package/app/Actions/Dashboard/Models/GetModels.ts +4 -4
- package/app/Actions/Dashboard/Models/GetSubscriberCount.ts +2 -2
- package/app/Actions/Dashboard/Models/ModelDestroyAction.ts +1 -1
- package/app/Actions/Dashboard/Models/ModelShowAction.ts +111 -44
- package/app/Actions/Dashboard/Models/ModelStoreAction.ts +39 -0
- package/app/Actions/Dashboard/Models/ModelUpdateAction.ts +8 -8
- package/app/Actions/Dashboard/Models/ModelsIndexAction.ts +58 -35
- package/app/Actions/Dashboard/Models/model-write.ts +268 -4
- package/app/Actions/Dashboard/Notifications/NotificationDeliveryHistoryAction.ts +100 -0
- package/app/Actions/Dashboard/Notifications/NotificationDeliveryIndexAction.ts +61 -0
- package/app/Actions/Dashboard/Notifications/NotificationDeliveryOverviewAction.ts +120 -0
- package/app/Actions/Dashboard/Notifications/NotificationDeliveryRetryAction.ts +61 -0
- package/app/Actions/Dashboard/Notifications/notification-delivery-index.test.ts +18 -0
- package/app/Actions/Dashboard/Notifications/notification-delivery.test.ts +17 -0
- package/app/Actions/Dashboard/Notifications/notification-delivery.ts +71 -0
- package/app/Actions/Dashboard/Queries/QueryDashboardAction.ts +35 -0
- package/app/Actions/Dashboard/Queries/QueryIndexAction.ts +2 -22
- package/app/Actions/Dashboard/Queries/QueryShowAction.ts +35 -0
- package/app/Actions/Dashboard/Queries/query-dashboard.test.ts +56 -0
- package/app/Actions/Dashboard/Queries/query-dashboard.ts +136 -0
- package/app/Actions/Dashboard/Queue/QueueRetryFailedAction.ts +4 -1
- package/app/Actions/Dashboard/Queue/QueueStatsAction.ts +5 -14
- package/app/Actions/Dashboard/Queue/QueueWorkersAction.ts +6 -3
- package/app/Actions/Dashboard/Rbac/PermissionDestroyAction.ts +7 -3
- package/app/Actions/Dashboard/Rbac/PermissionStoreAction.ts +10 -3
- package/app/Actions/Dashboard/Rbac/PermissionsIndexAction.ts +2 -1
- package/app/Actions/Dashboard/Rbac/RoleDestroyAction.ts +7 -3
- package/app/Actions/Dashboard/Rbac/RolePermissionsShowAction.ts +9 -5
- package/app/Actions/Dashboard/Rbac/RolePermissionsSyncAction.ts +12 -8
- package/app/Actions/Dashboard/Rbac/RoleStoreAction.ts +10 -3
- package/app/Actions/Dashboard/Rbac/RolesIndexAction.ts +2 -1
- package/app/Actions/Dashboard/Rbac/UserRolesShowAction.ts +14 -3
- package/app/Actions/Dashboard/Rbac/UserRolesSyncAction.ts +16 -7
- package/app/Actions/Dashboard/Rbac/UsersListAction.ts +14 -6
- package/app/Actions/Dashboard/Realtime/RealtimeStatsAction.ts +28 -34
- package/app/Actions/Dashboard/Realtime/realtime-stats.test.ts +30 -0
- package/app/Actions/Dashboard/Realtime/realtime-stats.ts +40 -0
- package/app/Actions/Dashboard/Releases/ReleaseIndexAction.ts +10 -11
- package/app/Actions/Dashboard/Releases/release-records.test.ts +42 -0
- package/app/Actions/Dashboard/Releases/release-records.ts +56 -0
- package/app/Actions/Dashboard/Search/GlobalSearchAction.ts +239 -15
- package/app/Actions/Dashboard/ServiceHealthAction.ts +1 -243
- package/app/Actions/Dashboard/Settings/BillingShowAction.test.ts +43 -0
- package/app/Actions/Dashboard/Settings/BillingShowAction.ts +93 -0
- package/app/Actions/Dashboard/Settings/MailSettingsGetAction.ts +8 -12
- package/app/Actions/Dashboard/Settings/MailSettingsUpdateAction.ts +28 -3
- package/app/Actions/Dashboard/Settings/SettingsIndexAction.ts +5 -32
- package/app/Actions/Dashboard/Settings/mail-settings.test.ts +155 -0
- package/app/Actions/Dashboard/Settings/mail-settings.ts +387 -0
- package/app/Actions/Dashboard/Settings/settings-summary.test.ts +56 -0
- package/app/Actions/Dashboard/Settings/settings-summary.ts +118 -0
- package/app/Actions/Dashboard/Source/source-inventory.test.ts +42 -0
- package/app/Actions/Dashboard/Source/source-inventory.ts +106 -0
- package/app/Actions/Dashboard/Teams/TeamInvitationDestroyAction.ts +48 -0
- package/app/Actions/Dashboard/Teams/TeamInvitationResendAction.ts +82 -0
- package/app/Actions/Dashboard/Teams/TeamInviteAction.ts +138 -0
- package/app/Actions/Dashboard/Teams/TeamMemberDestroyAction.ts +41 -0
- package/app/Actions/Dashboard/Teams/TeamMemberUpdateAction.ts +55 -0
- package/app/Actions/Dashboard/Teams/TeamPeopleIndexAction.ts +83 -0
- package/app/Actions/Dashboard/Teams/team-invitation-delivery.ts +57 -0
- package/app/Actions/Dashboard/Teams/team-member-count.ts +20 -0
- package/app/Actions/Dashboard/Teams/team-records.test.ts +43 -0
- package/app/Actions/Dashboard/Teams/team-records.ts +79 -0
- package/app/Actions/Dashboard/legacy-dashboard-actions.test.ts +44 -0
- package/app/Actions/LogAction.ts +2 -2
- package/app/Actions/Monitoring/ErrorDestroyAction.ts +2 -2
- package/app/Actions/Monitoring/ErrorGroupAction.ts +2 -2
- package/app/Actions/Teams/AcceptInvitationAction.ts +114 -0
- package/app/Actions/Teams/ShowInvitationAction.ts +46 -0
- package/app/Jobs/SendCampaignJob.ts +22 -2
- package/app/Mail/TeamInvitation.ts +38 -0
- package/app/Middleware/Auth.ts +43 -39
- package/app/Middleware/Csrf.ts +52 -41
- package/app/Models/Activity.ts +1 -0
- package/app/Models/AnalyticsEvent.ts +70 -0
- package/app/Models/Board.ts +1 -0
- package/app/Models/BoardColumn.ts +1 -0
- package/app/Models/Campaign.ts +19 -1
- package/app/Models/Card.ts +1 -0
- package/app/Models/CardComment.ts +1 -0
- package/app/Models/Comment.ts +1 -0
- package/app/Models/Content/Author.ts +1 -1
- package/app/Models/Content/Page.ts +4 -0
- package/app/Models/Content/Post.ts +72 -9
- package/app/Models/Deployment.ts +1 -0
- package/app/Models/EmailList.ts +8 -0
- package/app/Models/Error.ts +7 -0
- package/app/Models/FailedJob.ts +22 -0
- package/app/Models/Job.ts +11 -5
- package/app/Models/Label.ts +1 -0
- package/app/Models/Log.ts +24 -0
- package/app/Models/MailPreference.ts +213 -0
- package/app/Models/Notification.ts +11 -62
- package/app/Models/NotificationDelivery.ts +99 -0
- package/app/Models/QueryLog.ts +182 -0
- package/app/Models/Release.ts +0 -4
- package/app/Models/Request.ts +20 -1
- package/app/Models/SocialPost.ts +8 -0
- package/app/Models/Tag.ts +38 -20
- package/app/Models/Team.ts +5 -2
- package/app/Models/TeamInvitation.ts +146 -0
- package/app/Models/TeamMember.ts +88 -0
- package/app/Models/User.ts +5 -0
- package/app/Models/commerce/Cart.ts +1 -0
- package/app/Models/commerce/CartItem.ts +1 -0
- package/app/Models/commerce/Category.ts +15 -0
- package/app/Models/commerce/Coupon.ts +6 -1
- package/app/Models/commerce/Customer.ts +4 -4
- package/app/Models/commerce/DeliveryRoute.ts +5 -5
- package/app/Models/commerce/DigitalDelivery.ts +3 -2
- package/app/Models/commerce/Driver.ts +1 -0
- package/app/Models/commerce/GiftCard.ts +6 -2
- package/app/Models/commerce/LicenseKey.ts +4 -2
- package/app/Models/commerce/LoyaltyPoint.ts +1 -0
- package/app/Models/commerce/Manufacturer.ts +1 -0
- package/app/Models/commerce/Order.ts +24 -9
- package/app/Models/commerce/OrderIdempotency.ts +34 -0
- package/app/Models/commerce/Payment.ts +26 -7
- package/app/Models/commerce/PrintDevice.ts +5 -2
- package/app/Models/commerce/ProductUnit.ts +2 -1
- package/app/Models/commerce/Receipt.ts +26 -10
- package/app/Models/commerce/Review.ts +6 -2
- package/app/Models/commerce/ShippingMethod.ts +1 -1
- package/app/Models/commerce/TaxRate.ts +1 -1
- package/app/Models/commerce/Transaction.ts +1 -0
- package/app/Models/commerce/WaitlistProduct.ts +2 -0
- package/app/Models/commerce/WaitlistRestaurant.ts +2 -0
- package/app/Models/realtime/Websocket.ts +1 -0
- package/bootstrap.ts +3 -0
- package/functions/analytics.ts +250 -25
- package/functions/api-url.ts +22 -0
- package/functions/api.ts +2 -1
- package/functions/auth.ts +61 -39
- package/functions/billing/dashboard.ts +140 -0
- package/functions/billing/payments.ts +5 -5
- package/functions/blog.ts +3 -2
- package/functions/buddy-chat.ts +45 -0
- package/functions/captured-mail.ts +39 -0
- package/functions/cms/categorizables.ts +4 -2
- package/functions/cms/pages.ts +4 -2
- package/functions/cms/posts.ts +4 -2
- package/functions/cms/taggables.ts +12 -10
- package/functions/commerce/coupons.ts +4 -3
- package/functions/commerce/customers.ts +3 -2
- package/functions/commerce/gift-cards.ts +3 -2
- package/functions/commerce/orders.ts +3 -2
- package/functions/commerce/payments.ts +3 -2
- package/functions/commerce/products/categories.ts +3 -2
- package/functions/commerce/products/manufacturers.ts +3 -2
- package/functions/commerce/products/products.ts +3 -2
- package/functions/commerce/products/reviews.ts +3 -2
- package/functions/commerce/products/units.ts +3 -2
- package/functions/commerce/products/variants.ts +3 -2
- package/functions/commerce/shippings/dashboard-resource.ts +93 -0
- package/functions/commerce/shippings/delivery-routes.ts +12 -116
- package/functions/commerce/shippings/digital-deliveries.ts +13 -111
- package/functions/commerce/shippings/drivers.ts +12 -116
- package/functions/commerce/shippings/license-keys.ts +36 -112
- package/functions/commerce/shippings/shipping-methods.ts +12 -116
- package/functions/commerce/shippings/shipping-rates.ts +12 -112
- package/functions/commerce/shippings/shipping-zones.ts +12 -112
- package/functions/commerce/taxes.ts +3 -2
- package/functions/commerce/waitlist/products.ts +3 -2
- package/functions/commerce/waitlist/restaurants.ts +3 -2
- package/functions/craft.ts +116 -5
- package/functions/dashboard-api.ts +37 -15
- package/functions/dashboard.test.ts +26 -0
- package/functions/dashboard.ts +108 -88
- package/functions/data.ts +66 -0
- package/functions/deployments.test.ts +81 -0
- package/functions/deployments.ts +144 -0
- package/functions/inbox.test.ts +54 -0
- package/functions/inbox.ts +238 -2
- package/functions/jobs.ts +104 -42
- package/functions/mail-preferences.ts +67 -0
- package/functions/monitoring/errors.test.ts +12 -0
- package/functions/monitoring/errors.ts +25 -31
- package/functions/notifications/deliveries.ts +134 -0
- package/functions/queries.ts +42 -0
- package/functions/queue.ts +30 -4
- package/functions/realtime/websockets.ts +4 -2
- package/functions/realtime.ts +53 -15
- package/functions/releases.ts +2 -1
- package/functions/search.ts +23 -103
- package/functions/toasts.ts +20 -3
- package/ide/vscode/package.json +1 -1
- package/package.json +3 -2
- package/resources/components/Dashboard/Analytics/AnalyticsHub.stx +89 -0
- package/resources/components/Dashboard/Analytics/AnalyticsPageHeader.stx +43 -0
- package/resources/components/Dashboard/Analytics/CampaignAnalytics.stx +246 -0
- package/resources/components/Dashboard/Analytics/EventAnalytics.stx +298 -0
- package/resources/components/Dashboard/Analytics/SalesAnalytics.stx +228 -0
- package/resources/components/Dashboard/Analytics/WebAnalyticsBreakdown.stx +210 -0
- package/resources/components/Dashboard/Analytics/WebAnalyticsDashboard.stx +312 -0
- package/resources/components/Dashboard/App/RequestsOverview.stx +253 -0
- package/resources/components/Dashboard/App/SourceInventory.stx +228 -0
- package/resources/components/Dashboard/Auth/AccessTokens.stx +400 -0
- package/resources/components/Dashboard/Auth/ForgotPassword.stx +39 -57
- package/resources/components/Dashboard/Auth/ForgotPasswordDashboard.stx +42 -0
- package/resources/components/Dashboard/Auth/LegalDocument.stx +38 -0
- package/resources/components/Dashboard/Auth/Login.stx +75 -146
- package/resources/components/Dashboard/Auth/LoginDashboard.stx +45 -0
- package/resources/components/Dashboard/Auth/PrivacyDashboard.stx +38 -0
- package/resources/components/Dashboard/Auth/Register.stx +97 -165
- package/resources/components/Dashboard/Auth/RegisterDashboard.stx +47 -0
- package/resources/components/Dashboard/Auth/TermsDashboard.stx +38 -0
- package/resources/components/Dashboard/Billing/BillingPaymentMethodsPanel.stx +48 -0
- package/resources/components/Dashboard/Billing/BillingPlanSummary.stx +62 -0
- package/resources/components/Dashboard/Billing/BillingSettings.stx +88 -0
- package/resources/components/Dashboard/Billing/BillingTransactionHistory.stx +50 -0
- package/resources/components/Dashboard/Buddy/BuddyAssistant.stx +190 -0
- package/resources/components/Dashboard/Ci/CiDashboard.stx +441 -0
- package/resources/components/Dashboard/CodeEditor.stx +64 -32
- package/resources/components/Dashboard/Commerce/CommerceCategoriesDashboard.stx +300 -0
- package/resources/components/Dashboard/Commerce/CommerceCategoriesTable.stx +43 -0
- package/resources/components/Dashboard/Commerce/CommerceCategoryDeleteDialog.stx +17 -0
- package/resources/components/Dashboard/Commerce/CommerceCategoryDetailsDialog.stx +54 -0
- package/resources/components/Dashboard/Commerce/CommerceCategoryDialog.stx +146 -0
- package/resources/components/Dashboard/Commerce/CommerceCategoryHierarchy.stx +35 -0
- package/resources/components/Dashboard/Commerce/CommerceCouponBreakdown.stx +34 -0
- package/resources/components/Dashboard/Commerce/CommerceCouponDeleteDialog.stx +16 -0
- package/resources/components/Dashboard/Commerce/CommerceCouponDetailsDialog.stx +53 -0
- package/resources/components/Dashboard/Commerce/CommerceCouponDialog.stx +116 -0
- package/resources/components/Dashboard/Commerce/CommerceCouponsDashboard.stx +310 -0
- package/resources/components/Dashboard/Commerce/CommerceCouponsTable.stx +65 -0
- package/resources/components/Dashboard/Commerce/CommerceCustomerDeleteDialog.stx +17 -0
- package/resources/components/Dashboard/Commerce/CommerceCustomerDetailsDialog.stx +64 -0
- package/resources/components/Dashboard/Commerce/CommerceCustomerDialog.stx +105 -0
- package/resources/components/Dashboard/Commerce/CommerceCustomersDashboard.stx +318 -0
- package/resources/components/Dashboard/Commerce/CommerceCustomersTable.stx +65 -0
- package/resources/components/Dashboard/Commerce/CommerceGiftCardBreakdown.stx +52 -0
- package/resources/components/Dashboard/Commerce/CommerceGiftCardDeleteDialog.stx +17 -0
- package/resources/components/Dashboard/Commerce/CommerceGiftCardDetailsDialog.stx +68 -0
- package/resources/components/Dashboard/Commerce/CommerceGiftCardDialog.stx +193 -0
- package/resources/components/Dashboard/Commerce/CommerceGiftCardsDashboard.stx +327 -0
- package/resources/components/Dashboard/Commerce/CommerceGiftCardsTable.stx +98 -0
- package/resources/components/Dashboard/Commerce/CommerceManufacturerDeleteDialog.stx +25 -0
- package/resources/components/Dashboard/Commerce/CommerceManufacturerDialog.stx +88 -0
- package/resources/components/Dashboard/Commerce/CommerceManufacturersDashboard.stx +267 -0
- package/resources/components/Dashboard/Commerce/CommerceManufacturersTable.stx +71 -0
- package/resources/components/Dashboard/Commerce/CommerceOrderDeleteDialog.stx +17 -0
- package/resources/components/Dashboard/Commerce/CommerceOrderDetailsDialog.stx +73 -0
- package/resources/components/Dashboard/Commerce/CommerceOrderDialog.stx +140 -0
- package/resources/components/Dashboard/Commerce/CommerceOrdersDashboard.stx +365 -0
- package/resources/components/Dashboard/Commerce/CommerceOrdersTable.stx +70 -0
- package/resources/components/Dashboard/Commerce/CommerceOverviewCharts.stx +118 -0
- package/resources/components/Dashboard/Commerce/CommerceOverviewDashboard.stx +98 -0
- package/resources/components/Dashboard/Commerce/CommerceOverviewOrdersTable.stx +81 -0
- package/resources/components/Dashboard/Commerce/CommerceOverviewProductsTable.stx +41 -0
- package/resources/components/Dashboard/Commerce/CommerceOverviewStats.stx +45 -0
- package/resources/components/Dashboard/Commerce/CommercePaymentsBreakdown.stx +107 -0
- package/resources/components/Dashboard/Commerce/CommercePaymentsDashboard.stx +220 -0
- package/resources/components/Dashboard/Commerce/CommercePaymentsTable.stx +70 -0
- package/resources/components/Dashboard/Commerce/CommercePosCart.stx +72 -0
- package/resources/components/Dashboard/Commerce/CommercePosCatalog.stx +85 -0
- package/resources/components/Dashboard/Commerce/CommercePosCheckoutDialog.stx +85 -0
- package/resources/components/Dashboard/Commerce/CommercePosDashboard.stx +346 -0
- package/resources/components/Dashboard/Commerce/CommercePosReceiptDialog.stx +68 -0
- package/resources/components/Dashboard/Commerce/CommerceProductDeleteDialog.stx +23 -0
- package/resources/components/Dashboard/Commerce/CommerceProductDetailDashboard.stx +268 -0
- package/resources/components/Dashboard/Commerce/CommerceProductDialog.stx +137 -0
- package/resources/components/Dashboard/Commerce/CommerceProductsDashboard.stx +337 -0
- package/resources/components/Dashboard/Commerce/CommerceProductsTable.stx +54 -0
- package/resources/components/Dashboard/Commerce/CommerceReviewDeleteDialog.stx +27 -0
- package/resources/components/Dashboard/Commerce/CommerceReviewEditDialog.stx +100 -0
- package/resources/components/Dashboard/Commerce/CommerceReviewsDashboard.stx +396 -0
- package/resources/components/Dashboard/Commerce/CommerceReviewsTable.stx +94 -0
- package/resources/components/Dashboard/Commerce/CommerceTaxDeleteDialog.stx +23 -0
- package/resources/components/Dashboard/Commerce/CommerceTaxDialog.stx +125 -0
- package/resources/components/Dashboard/Commerce/CommerceTaxesDashboard.stx +283 -0
- package/resources/components/Dashboard/Commerce/CommerceTaxesTable.stx +68 -0
- package/resources/components/Dashboard/Commerce/CommerceUnitDeleteDialog.stx +26 -0
- package/resources/components/Dashboard/Commerce/CommerceUnitDialog.stx +122 -0
- package/resources/components/Dashboard/Commerce/CommerceUnitsDashboard.stx +301 -0
- package/resources/components/Dashboard/Commerce/CommerceUnitsTable.stx +71 -0
- package/resources/components/Dashboard/Commerce/CommerceVariantDeleteDialog.stx +17 -0
- package/resources/components/Dashboard/Commerce/CommerceVariantDialog.stx +86 -0
- package/resources/components/Dashboard/Commerce/CommerceVariantsDashboard.stx +245 -0
- package/resources/components/Dashboard/Commerce/CommerceVariantsTable.stx +34 -0
- package/resources/components/Dashboard/Commerce/Delivery/DeliveryOverviewDashboard.stx +330 -0
- package/resources/components/Dashboard/Commerce/Delivery/DeliveryPagination.stx +128 -0
- package/resources/components/Dashboard/Commerce/Delivery/DeliveryRouteDeleteDialog.stx +28 -0
- package/resources/components/Dashboard/Commerce/Delivery/DeliveryRouteDialog.stx +153 -0
- package/resources/components/Dashboard/Commerce/Delivery/DeliveryRoutesDashboard.stx +272 -0
- package/resources/components/Dashboard/Commerce/Delivery/DeliveryRoutesTable.stx +103 -75
- package/resources/components/Dashboard/Commerce/Delivery/DigitalDeliveriesDashboard.stx +236 -0
- package/resources/components/Dashboard/Commerce/Delivery/DigitalDeliveryDeleteDialog.stx +28 -0
- package/resources/components/Dashboard/Commerce/Delivery/DigitalDeliveryDialog.stx +111 -0
- package/resources/components/Dashboard/Commerce/Delivery/DigitalDeliveryTable.stx +95 -79
- package/resources/components/Dashboard/Commerce/Delivery/DriverDeleteDialog.stx +28 -0
- package/resources/components/Dashboard/Commerce/Delivery/DriverDialog.stx +119 -0
- package/resources/components/Dashboard/Commerce/Delivery/DriversDashboard.stx +268 -0
- package/resources/components/Dashboard/Commerce/Delivery/DriversTable.stx +97 -93
- package/resources/components/Dashboard/Commerce/Delivery/LicenseKeyDeleteDialog.stx +28 -0
- package/resources/components/Dashboard/Commerce/Delivery/LicenseKeyDialog.stx +159 -0
- package/resources/components/Dashboard/Commerce/Delivery/LicenseKeysDashboard.stx +286 -0
- package/resources/components/Dashboard/Commerce/Delivery/LicenseKeysTable.stx +125 -85
- package/resources/components/Dashboard/Commerce/Delivery/SearchFilter.stx +19 -18
- package/resources/components/Dashboard/Commerce/Delivery/ShippingMethodDeleteDialog.stx +28 -0
- package/resources/components/Dashboard/Commerce/Delivery/ShippingMethodDialog.stx +93 -0
- package/resources/components/Dashboard/Commerce/Delivery/ShippingMethodsDashboard.stx +243 -0
- package/resources/components/Dashboard/Commerce/Delivery/ShippingMethodsTable.stx +107 -75
- package/resources/components/Dashboard/Commerce/Delivery/ShippingRateDeleteDialog.stx +29 -0
- package/resources/components/Dashboard/Commerce/Delivery/ShippingRateDialog.stx +123 -0
- package/resources/components/Dashboard/Commerce/Delivery/ShippingRatesDashboard.stx +280 -0
- package/resources/components/Dashboard/Commerce/Delivery/ShippingRatesTable.stx +96 -54
- package/resources/components/Dashboard/Commerce/Delivery/ShippingZoneDeleteDialog.stx +28 -0
- package/resources/components/Dashboard/Commerce/Delivery/ShippingZoneDialog.stx +140 -0
- package/resources/components/Dashboard/Commerce/Delivery/ShippingZonesDashboard.stx +287 -0
- package/resources/components/Dashboard/Commerce/Delivery/ShippingZonesTable.stx +145 -65
- package/resources/components/Dashboard/Commerce/Delivery/TabNavigation.stx +39 -27
- package/resources/components/Dashboard/Commerce/PaymentDetailsDialog.stx +68 -0
- package/resources/components/Dashboard/Commerce/PaymentRefundDialog.stx +70 -0
- package/resources/components/Dashboard/Commerce/PrintDeviceBreakdown.stx +80 -0
- package/resources/components/Dashboard/Commerce/PrintDeviceDeleteDialog.stx +20 -0
- package/resources/components/Dashboard/Commerce/PrintDeviceDetailsDialog.stx +63 -0
- package/resources/components/Dashboard/Commerce/PrintDeviceDialog.stx +85 -0
- package/resources/components/Dashboard/Commerce/PrintDevicesDashboard.stx +304 -0
- package/resources/components/Dashboard/Commerce/PrintDevicesTable.stx +83 -0
- package/resources/components/Dashboard/Commerce/PrintLogBreakdown.stx +78 -0
- package/resources/components/Dashboard/Commerce/PrintLogDeleteDialog.stx +16 -0
- package/resources/components/Dashboard/Commerce/PrintLogDetailsDialog.stx +42 -0
- package/resources/components/Dashboard/Commerce/PrintLogsDashboard.stx +244 -0
- package/resources/components/Dashboard/Commerce/PrintLogsTable.stx +45 -0
- package/resources/components/Dashboard/Commerce/ProductWaitlistDashboard.stx +224 -0
- package/resources/components/Dashboard/Commerce/ProductWaitlistDeleteDialog.stx +27 -0
- package/resources/components/Dashboard/Commerce/ProductWaitlistEntryDialog.stx +209 -0
- package/resources/components/Dashboard/Commerce/ProductWaitlistTable.stx +81 -0
- package/resources/components/Dashboard/Commerce/RestaurantWaitlistDashboard.stx +294 -0
- package/resources/components/Dashboard/Commerce/RestaurantWaitlistDeleteDialog.stx +27 -0
- package/resources/components/Dashboard/Commerce/RestaurantWaitlistEntryDialog.stx +208 -0
- package/resources/components/Dashboard/Commerce/RestaurantWaitlistTable.stx +100 -0
- package/resources/components/Dashboard/Content/AuthorsDashboard.stx +207 -0
- package/resources/components/Dashboard/Content/BlogDashboard.stx +489 -0
- package/resources/components/Dashboard/Content/CommentsDashboard.stx +172 -0
- package/resources/components/Dashboard/Content/ContentDashboard.stx +441 -0
- package/resources/components/Dashboard/Content/ContentTaxonomyDashboard.stx +234 -0
- package/resources/components/Dashboard/Content/FileManagerDashboard.stx +604 -0
- package/resources/components/Dashboard/Content/PagesDashboard.stx +199 -0
- package/resources/components/Dashboard/Content/PostsDashboard.stx +275 -0
- package/resources/components/Dashboard/Content/SeoDashboard.stx +389 -0
- package/resources/components/Dashboard/CreateRecordModal.stx +131 -345
- package/resources/components/Dashboard/DashboardLayout.stx +37 -111
- package/resources/components/Dashboard/Data/DataRecords.stx +285 -0
- package/resources/components/Dashboard/Deployments/DeployScript.stx +100 -19
- package/resources/components/Dashboard/Deployments/DeploymentDetail.stx +149 -0
- package/resources/components/Dashboard/Deployments/DeploymentList.stx +202 -84
- package/resources/components/Dashboard/Deployments/DeploymentTable.stx +87 -0
- package/resources/components/Dashboard/Deployments/LiveTerminalOutput.stx +93 -12
- package/resources/components/Dashboard/Elements/DropdownNavigation.stx +55 -0
- package/resources/components/Dashboard/Email/CapturedMailDashboard.stx +117 -0
- package/resources/components/Dashboard/Email/CapturedMailDetail.stx +76 -0
- package/resources/components/Dashboard/Email/CapturedMailList.stx +77 -0
- package/resources/components/Dashboard/Email/EmailActivityDashboard.stx +417 -0
- package/resources/components/Dashboard/Email/EmailBodyPreview.stx +33 -0
- package/resources/components/Dashboard/Email/EmailNavigation.stx +24 -0
- package/resources/components/Dashboard/Email/EmailSettingsList.stx +47 -0
- package/resources/components/Dashboard/Email/EmailSettingsNavigation.stx +36 -0
- package/resources/components/Dashboard/Email/EmailSidebar.stx +106 -116
- package/resources/components/Dashboard/Email/InboxComposer.stx +45 -0
- package/resources/components/Dashboard/Email/InboxDashboard.stx +317 -0
- package/resources/components/Dashboard/Email/InboxMessageDetail.stx +87 -0
- package/resources/components/Dashboard/Email/InboxMessageList.stx +80 -0
- package/resources/components/Dashboard/Email/InboxSettingsDashboard.stx +465 -0
- package/resources/components/Dashboard/Environment/EnvironmentDashboard.stx +301 -0
- package/resources/components/Dashboard/FileViewer/MediaCard.stx +33 -61
- package/resources/components/Dashboard/FileViewer/MediaInfoPanel.stx +44 -88
- package/resources/components/Dashboard/GlobalSearch.stx +182 -71
- package/resources/components/Dashboard/Home/DashboardHome.stx +168 -0
- package/resources/components/Dashboard/Infrastructure/CloudDashboard.stx +249 -0
- package/resources/components/Dashboard/Infrastructure/CloudDetailsDialog.stx +36 -0
- package/resources/components/Dashboard/Infrastructure/CloudResourceButton.stx +62 -0
- package/resources/components/Dashboard/Infrastructure/CloudStatusBadge.stx +29 -0
- package/resources/components/Dashboard/Infrastructure/DnsDashboard.stx +252 -0
- package/resources/components/Dashboard/Infrastructure/DnsRecordDialog.stx +34 -0
- package/resources/components/Dashboard/Infrastructure/HealthCheckCard.stx +51 -0
- package/resources/components/Dashboard/Infrastructure/HealthDashboard.stx +234 -0
- package/resources/components/Dashboard/Infrastructure/InsightMetricCard.stx +30 -0
- package/resources/components/Dashboard/Infrastructure/InsightResourceCard.stx +23 -0
- package/resources/components/Dashboard/Infrastructure/InsightsDashboard.stx +471 -0
- package/resources/components/Dashboard/Infrastructure/LogDetailsDialog.stx +46 -0
- package/resources/components/Dashboard/Infrastructure/LogLevelBadge.stx +35 -0
- package/resources/components/Dashboard/Infrastructure/LogsDashboard.stx +317 -0
- package/resources/components/Dashboard/Infrastructure/MailboxDetailsDialog.stx +31 -0
- package/resources/components/Dashboard/Infrastructure/MailboxesDashboard.stx +241 -0
- package/resources/components/Dashboard/Infrastructure/ServerDetailsDashboard.stx +203 -0
- package/resources/components/Dashboard/Infrastructure/ServerlessDashboard.stx +246 -0
- package/resources/components/Dashboard/Infrastructure/ServersDashboard.stx +432 -0
- package/resources/components/Dashboard/Jobs/JobDashboard.stx +100 -0
- package/resources/components/Dashboard/Jobs/JobDetail.stx +188 -0
- package/resources/components/Dashboard/Jobs/JobHistory.stx +139 -0
- package/resources/components/Dashboard/Jobs/JobTable.stx +91 -0
- package/resources/components/Dashboard/Kanban/KanbanBoardDashboard.stx +912 -0
- package/resources/components/Dashboard/Kanban/KanbanBoardsDashboard.stx +285 -0
- package/resources/components/Dashboard/Library/ComponentsDashboard.stx +296 -0
- package/resources/components/Dashboard/Library/DependenciesDashboard.stx +92 -0
- package/resources/components/Dashboard/Library/FunctionsDashboard.stx +130 -0
- package/resources/components/Dashboard/Library/PackagesDashboard.stx +82 -0
- package/resources/components/Dashboard/Management/PermissionsDashboard.stx +639 -0
- package/resources/components/Dashboard/Marketing/CampaignDeleteDialog.stx +22 -0
- package/resources/components/Dashboard/Marketing/CampaignDeliveryDialog.stx +94 -0
- package/resources/components/Dashboard/Marketing/CampaignDialog.stx +225 -0
- package/resources/components/Dashboard/Marketing/CampaignsDashboard.stx +324 -0
- package/resources/components/Dashboard/Marketing/CampaignsTable.stx +94 -0
- package/resources/components/Dashboard/Marketing/MarketingListDeleteDialog.stx +25 -0
- package/resources/components/Dashboard/Marketing/MarketingListDialog.stx +129 -0
- package/resources/components/Dashboard/Marketing/MarketingListsDashboard.stx +258 -0
- package/resources/components/Dashboard/Marketing/MarketingListsTable.stx +82 -0
- package/resources/components/Dashboard/Marketing/SocialPostDeleteDialog.stx +22 -0
- package/resources/components/Dashboard/Marketing/SocialPostDialog.stx +121 -0
- package/resources/components/Dashboard/Marketing/SocialPostsDashboard.stx +240 -0
- package/resources/components/Dashboard/Marketing/SocialPostsTable.stx +79 -0
- package/resources/components/Dashboard/MobileSidebar.stx +108 -38
- package/resources/components/Dashboard/Modals/BaseModal.stx +39 -32
- package/resources/components/Dashboard/Modals/Popups/Alert.stx +100 -89
- package/resources/components/Dashboard/Modals/Popups/Toast.stx +57 -64
- package/resources/components/Dashboard/Modals/ToastWrapper.stx +37 -28
- package/resources/components/Dashboard/Models/ModelRecordsDashboard.stx +641 -0
- package/resources/components/Dashboard/Models/ModelsOverview.stx +214 -0
- package/resources/components/Dashboard/Monitoring/ErrorDashboard.stx +393 -0
- package/resources/components/Dashboard/Monitoring/ErrorTable.stx +134 -0
- package/resources/components/Dashboard/Navbar.stx +106 -153
- package/resources/components/Dashboard/NotFoundDashboard.stx +81 -0
- package/resources/components/Dashboard/Notifications/NotificationDeliveries.stx +208 -0
- package/resources/components/Dashboard/Notifications/NotificationDeliveryDialog.stx +84 -0
- package/resources/components/Dashboard/Notifications/NotificationDeliveryHistory.stx +219 -0
- package/resources/components/Dashboard/Notifications/NotificationDeliveryOverview.stx +161 -0
- package/resources/components/Dashboard/Notifications/NotificationDeliveryTable.stx +125 -0
- package/resources/components/Dashboard/Notifications/NotificationNavigation.stx +24 -0
- package/resources/components/Dashboard/Queries/QueryDashboard.stx +272 -0
- package/resources/components/Dashboard/Queries/QueryDetail.stx +147 -0
- package/resources/components/Dashboard/Queue/QueueDashboard.stx +209 -0
- package/resources/components/Dashboard/Realtime/RealtimeDashboard.stx +242 -0
- package/resources/components/Dashboard/Releases/ReleaseDashboard.stx +191 -0
- package/resources/components/Dashboard/Settings/AppearanceSettingsDashboard.stx +332 -0
- package/resources/components/Dashboard/Settings/MailSettingsDashboard.stx +506 -0
- package/resources/components/Dashboard/Settings/SettingsDashboard.stx +288 -0
- package/resources/components/Dashboard/Teams/TeamInvitationDashboard.stx +146 -0
- package/resources/components/Dashboard/Teams/TeamPeopleDashboard.stx +463 -0
- package/resources/components/Dashboard/Transaction/index.stx +1 -7
- package/resources/components/Dashboard/UI/ActivityTable.stx +68 -47
- package/resources/components/Dashboard/UI/Avatar.stx +1 -3
- package/resources/components/Dashboard/UI/Button.stx +83 -22
- package/resources/components/Dashboard/UI/Card.stx +54 -13
- package/resources/components/Dashboard/UI/ChartCard.stx +1 -4
- package/resources/components/Dashboard/UI/Checkbox.stx +83 -67
- package/resources/components/Dashboard/UI/ConfirmDialog.stx +64 -50
- package/resources/components/Dashboard/UI/Dropdown.stx +57 -57
- package/resources/components/Dashboard/UI/EmptyState.stx +25 -44
- package/resources/components/Dashboard/UI/FilterBar.stx +47 -33
- package/resources/components/Dashboard/UI/Input.stx +84 -61
- package/resources/components/Dashboard/UI/Modal.stx +36 -30
- package/resources/components/Dashboard/UI/Pagination.stx +106 -116
- package/resources/components/Dashboard/UI/QuickLinks.stx +67 -25
- package/resources/components/Dashboard/UI/Select.stx +86 -65
- package/resources/components/Dashboard/UI/ServiceHealth.stx +50 -28
- package/resources/components/Dashboard/UI/StatsCard.stx +40 -30
- package/resources/components/Dashboard/UI/Table.stx +179 -118
- package/resources/components/Dashboard/UI/Tabs.stx +96 -33
- package/resources/components/Dashboard/UI/Textarea.stx +98 -78
- package/resources/components/Dashboard/UI/Toggle.stx +75 -70
- package/resources/components/Dashboard/UI/WindowControls.stx +91 -107
- package/resources/components/Dashboard/index.ts +8 -24
- package/resources/components/index.ts +1 -2
- package/resources/emails/team-invitation.stx +43 -0
- package/resources/functions/counter.ts +4 -9
- package/resources/functions/dashboard/analytics.ts +20 -21
- package/resources/functions/dashboard/config-io.ts +130 -45
- package/resources/functions/dashboard/data.test.ts +45 -0
- package/resources/functions/dashboard/data.ts +128 -99
- package/resources/functions/dashboard/sidebar.ts +113 -210
- package/resources/functions/dashboard/toggles.ts +106 -0
- package/resources/layouts/dashboard/default.stx +9 -6
- package/routes/dashboard-api.ts +280 -42
- package/routes/dashboard.ts +15 -30
- package/stores/payment.ts +64 -94
- package/types/dashboard.ts +8 -1
- package/views/dashboard/.discovered-models.json +58 -0
- package/views/dashboard/AUDIT.md +148 -899
- package/views/dashboard/[...all].stx +5 -83
- package/views/dashboard/access-tokens/index.stx +4 -173
- package/views/dashboard/actions/index.stx +4 -125
- package/views/dashboard/analytics/blog/index.stx +7 -349
- package/views/dashboard/analytics/browsers/index.stx +6 -256
- package/views/dashboard/analytics/commerce/sales/index.stx +2 -323
- package/views/dashboard/analytics/commerce/web/index.stx +7 -372
- package/views/dashboard/analytics/countries/index.stx +6 -282
- package/views/dashboard/analytics/devices/index.stx +6 -298
- package/views/dashboard/analytics/events/index.stx +2 -530
- package/views/dashboard/analytics/index.stx +3 -83
- package/views/dashboard/analytics/marketing/index.stx +2 -309
- package/views/dashboard/analytics/pages/index.stx +6 -264
- package/views/dashboard/analytics/referrers/index.stx +6 -312
- package/views/dashboard/analytics/web/index.stx +1 -350
- package/views/dashboard/buddy/index.stx +4 -194
- package/views/dashboard/ci/index.stx +2 -457
- package/views/dashboard/cloud/index.stx +4 -446
- package/views/dashboard/commands/index.stx +4 -291
- package/views/dashboard/commerce/categories/index.stx +3 -399
- package/views/dashboard/commerce/coupons/index.stx +3 -478
- package/views/dashboard/commerce/customers/index.stx +3 -403
- package/views/dashboard/commerce/dashboard/index.stx +3 -280
- package/views/dashboard/commerce/delivery/delivery-routes.stx +2 -297
- package/views/dashboard/commerce/delivery/digital-delivery.stx +2 -324
- package/views/dashboard/commerce/delivery/drivers.stx +2 -389
- package/views/dashboard/commerce/delivery/index.stx +6 -12
- package/views/dashboard/commerce/delivery/license-keys.stx +2 -372
- package/views/dashboard/commerce/delivery/shipping-methods.stx +2 -338
- package/views/dashboard/commerce/delivery/shipping-rates.stx +2 -330
- package/views/dashboard/commerce/delivery/shipping-zones.stx +2 -294
- package/views/dashboard/commerce/gift-cards/index.stx +4 -555
- package/views/dashboard/commerce/manufacturers/index.stx +4 -302
- package/views/dashboard/commerce/orders/index.stx +3 -240
- package/views/dashboard/commerce/payments/index.stx +3 -528
- package/views/dashboard/commerce/pos/index.stx +4 -647
- package/views/dashboard/commerce/printers/devices/index.stx +3 -266
- package/views/dashboard/commerce/printers/receipts/index.stx +3 -301
- package/views/dashboard/commerce/products/[id].stx +10 -0
- package/views/dashboard/commerce/products/index.stx +3 -363
- package/views/dashboard/commerce/reviews/index.stx +3 -649
- package/views/dashboard/commerce/taxes/index.stx +4 -371
- package/views/dashboard/commerce/units/index.stx +4 -311
- package/views/dashboard/commerce/variants/index.stx +4 -313
- package/views/dashboard/commerce/waitlist/products.stx +4 -936
- package/views/dashboard/commerce/waitlist/restaurant.stx +3 -1017
- package/views/dashboard/composables/index.ts +23 -2
- package/views/dashboard/composables/useAppearance.ts +316 -0
- package/views/dashboard/composables/useChart.ts +55 -7
- package/views/dashboard/composables/useRole.ts +4 -2
- package/views/dashboard/content/authors/index.stx +3 -164
- package/views/dashboard/content/blog/index.stx +1 -487
- package/views/dashboard/content/categories/index.stx +8 -163
- package/views/dashboard/content/comments/index.stx +3 -182
- package/views/dashboard/content/dashboard.stx +3 -376
- package/views/dashboard/content/files/index.stx +1 -699
- package/views/dashboard/content/pages/index.stx +3 -167
- package/views/dashboard/content/posts/index.stx +3 -262
- package/views/dashboard/content/seo/index.stx +2 -235
- package/views/dashboard/content/tags/index.stx +8 -161
- package/views/dashboard/data/activity/index.stx +3 -256
- package/views/dashboard/data/dashboard/index.stx +6 -111
- package/views/dashboard/data/subscribers.stx +3 -265
- package/views/dashboard/data/teams.stx +4 -271
- package/views/dashboard/data/users.stx +4 -275
- package/views/dashboard/dependencies/index.stx +3 -171
- package/views/dashboard/deployments/[id].stx +4 -230
- package/views/dashboard/deployments/index.stx +3 -4
- package/views/dashboard/dns/index.stx +2 -155
- package/views/dashboard/environment/index.stx +2 -278
- package/views/dashboard/errors/index.stx +4 -270
- package/views/dashboard/forgot-password.stx +1 -52
- package/views/dashboard/functions/index.stx +4 -153
- package/views/dashboard/health/index.stx +3 -241
- package/views/dashboard/inbox/activity.stx +2 -344
- package/views/dashboard/inbox/captured.stx +8 -0
- package/views/dashboard/inbox/index.stx +3 -447
- package/views/dashboard/inbox/settings.stx +1 -284
- package/views/dashboard/index.stx +2 -248
- package/views/dashboard/insights/index.stx +2 -521
- package/views/dashboard/jobs/[id].stx +4 -426
- package/views/dashboard/jobs/history.stx +4 -218
- package/views/dashboard/jobs/index.stx +3 -209
- package/views/dashboard/kanban/[id].stx +2 -894
- package/views/dashboard/kanban/index.stx +2 -255
- package/views/dashboard/layouts/default.stx +516 -205
- package/views/dashboard/layouts/guest.stx +6 -1
- package/views/dashboard/library/components/index.stx +10 -0
- package/views/dashboard/login.stx +1 -43
- package/views/dashboard/logs/index.stx +3 -533
- package/views/dashboard/mailboxes/index.stx +3 -142
- package/views/dashboard/management/permissions/index.stx +1 -484
- package/views/dashboard/marketing/campaigns/index.stx +2 -596
- package/views/dashboard/marketing/lists/index.stx +1 -505
- package/views/dashboard/marketing/reviews/index.stx +8 -470
- package/views/dashboard/marketing/social-posts/index.stx +2 -552
- package/views/dashboard/models/[model].stx +2 -570
- package/views/dashboard/models/index.stx +7 -155
- package/views/dashboard/monitoring/errors/index.stx +3 -410
- package/views/dashboard/notifications/dashboard.stx +1 -376
- package/views/dashboard/notifications/email.stx +5 -329
- package/views/dashboard/notifications/history.stx +1 -366
- package/views/dashboard/notifications/sms.stx +5 -325
- package/views/dashboard/packages/index.stx +4 -189
- package/views/dashboard/privacy.stx +6 -0
- package/views/dashboard/queries/[id].stx +4 -377
- package/views/dashboard/queries/history.stx +4 -223
- package/views/dashboard/queries/index.stx +3 -330
- package/views/dashboard/queries/slow.stx +3 -313
- package/views/dashboard/queue/index.stx +3 -422
- package/views/dashboard/realtime/index.stx +3 -424
- package/views/dashboard/register.stx +1 -41
- package/views/dashboard/releases/index.stx +2 -381
- package/views/dashboard/requests/index.stx +3 -457
- package/views/dashboard/serverless/index.stx +2 -467
- package/views/dashboard/servers/[id].stx +3 -292
- package/views/dashboard/servers/index.stx +2 -475
- package/views/dashboard/settings/appearance.stx +7 -0
- package/views/dashboard/settings/billing.stx +4 -44
- package/views/dashboard/settings/index.stx +2 -251
- package/views/dashboard/settings/mail.stx +3 -246
- package/views/dashboard/stores/auth.ts +3 -4
- package/views/dashboard/stores/ci.ts +17 -18
- package/views/dashboard/stores/index.ts +10 -8
- package/views/dashboard/stores/kanban.ts +32 -74
- package/views/dashboard/stores/rbac.ts +86 -78
- package/views/dashboard/team-invitations/[token].stx +7 -0
- package/views/dashboard/teams/[id].stx +2 -164
- package/views/dashboard/terms.stx +6 -0
- package/views/hello-world/[name].stx +2 -2
- package/app/Actions/Commerce/Product/ProductManufacturerDestroyAction.ts +0 -18
- package/app/Actions/Commerce/Product/ProductManufacturerIndexAction.ts +0 -14
- package/app/Actions/Commerce/Product/ProductManufacturerShowAction.ts +0 -16
- package/app/Actions/Commerce/Product/ProductManufacturerStoreAction.ts +0 -14
- package/app/Actions/Commerce/Product/ProductManufacturerUpdateAction.ts +0 -18
- package/app/Actions/Dashboard/Actions/CreateAction.ts +0 -11
- package/app/Actions/Dashboard/Actions/GetActionCount.ts +0 -12
- package/app/Actions/Dashboard/Commands/CreateCommand.ts +0 -11
- package/app/Actions/Dashboard/Commands/GetAverageCommandTime.ts +0 -12
- package/app/Actions/Dashboard/Commands/GetCommandCount.ts +0 -12
- package/app/Actions/Dashboard/Commands/GetCommandSuccessRate.ts +0 -12
- package/app/Actions/Dashboard/Commands/GetCommands.ts +0 -12
- package/app/Actions/Dashboard/Content/SeoIndexAction.ts +0 -17
- package/app/Actions/Dashboard/CreateDnsRecords.ts +0 -11
- package/app/Actions/Dashboard/CreateMailbox.ts +0 -11
- package/app/Actions/Dashboard/Data/AccessTokenIndexAction.ts +0 -65
- package/app/Actions/Dashboard/Data/DataDashboardAction.ts +0 -67
- package/app/Actions/Dashboard/GetDnsRecords.ts +0 -12
- package/app/Actions/Dashboard/GetEmailInboxes.ts +0 -12
- package/app/Actions/Dashboard/GetProjects.ts +0 -13
- package/app/Actions/Dashboard/GetRecentCommits.ts +0 -13
- package/app/Actions/Dashboard/Inbox/InboxIndexAction.ts +0 -144
- package/app/Actions/Dashboard/Inbox/InboxShowAction.ts +0 -89
- package/app/Actions/Dashboard/Jobs/CreateJob.ts +0 -11
- package/app/Actions/Dashboard/Jobs/GetAverageJobTime.ts +0 -12
- package/app/Actions/Dashboard/Jobs/GetJobHistory.ts +0 -12
- package/app/Actions/Dashboard/Jobs/GetJobs.ts +0 -11
- package/app/Actions/Dashboard/Jobs/GetJobsPerMinute.ts +0 -12
- package/app/Actions/Dashboard/Notifications/CreateNotification.ts +0 -11
- package/app/Actions/Dashboard/Notifications/GetAverageNotificationTime.ts +0 -12
- package/app/Actions/Dashboard/Notifications/GetNotificationCount.ts +0 -12
- package/app/Actions/Dashboard/Notifications/GetNotificationDeliveryRate.ts +0 -12
- package/app/Actions/Dashboard/Notifications/GetNotificationHistory.ts +0 -12
- package/app/Actions/Dashboard/Notifications/GetNotifications.ts +0 -12
- package/app/Actions/Dashboard/Notifications/NotificationDashboardAction.ts +0 -43
- package/app/Actions/Dashboard/Requests/GetAverageRequestTime.ts +0 -12
- package/app/Actions/Dashboard/Requests/GetRequestCount.ts +0 -12
- package/app/Actions/Dashboard/Requests/GetRequestSuccessRate.ts +0 -12
- package/app/Actions/Dashboard/Requests/GetRequests.ts +0 -12
- package/app/Actions/Dashboard/Settings/UpdateAiConfig.ts +0 -27
- package/app/Actions/Dashboard/Settings/UpdateAnalyticsConfig.ts +0 -38
- package/app/Actions/Dashboard/Settings/UpdateAppConfig.ts +0 -38
- package/app/Actions/Dashboard/Settings/UpdateCacheConfig.ts +0 -11
- package/app/Actions/Dashboard/Settings/UpdateCliConfig.ts +0 -11
- package/app/Actions/Dashboard/Settings/UpdateCloudConfig.ts +0 -38
- package/app/Actions/Dashboard/Settings/UpdateDatabaseConfig.ts +0 -38
- package/app/Actions/Dashboard/Settings/UpdateDnsConfig.ts +0 -38
- package/app/Actions/Dashboard/Settings/UpdateDocsConfig.ts +0 -11
- package/app/Actions/Dashboard/Settings/UpdateEmailConfig.ts +0 -38
- package/app/Actions/Dashboard/Settings/UpdateEnvConfig.ts +0 -11
- package/app/Actions/Dashboard/Settings/UpdateErrorsConfig.ts +0 -11
- package/app/Actions/Dashboard/Settings/UpdateFileSystemsConfig.ts +0 -11
- package/app/Actions/Dashboard/Settings/UpdateGitConfig.ts +0 -11
- package/app/Actions/Dashboard/Settings/UpdateHashingConfig.ts +0 -11
- package/app/Actions/Dashboard/Settings/UpdateLibraryConfig.ts +0 -11
- package/app/Actions/Dashboard/Settings/UpdateLoggerConfig.ts +0 -11
- package/app/Actions/Dashboard/Settings/UpdateNotificationConfig.ts +0 -11
- package/app/Actions/Dashboard/Settings/UpdatePaymentConfig.ts +0 -11
- package/app/Actions/Dashboard/Settings/UpdatePortsConfig.ts +0 -38
- package/app/Actions/Dashboard/Settings/UpdateQueueConfig.ts +0 -11
- package/app/Actions/Dashboard/Settings/UpdateSearchEngineConfig.ts +0 -11
- package/app/Actions/Dashboard/Settings/UpdateSecurityConfig.ts +0 -38
- package/app/Actions/Dashboard/Settings/UpdateServicesConfig.ts +0 -38
- package/app/Actions/Dashboard/Settings/UpdateStorageConfig.ts +0 -11
- package/app/Actions/Dashboard/Settings/UpdateTeamConfig.ts +0 -11
- package/app/Actions/Dashboard/Settings/UpdateUiConfig.ts +0 -11
- package/resources/components/Button.stx +0 -70
- package/resources/components/Buttons/BaseButton.stx +0 -39
- package/resources/components/Dashboard/Avatar.stx +0 -123
- package/resources/components/Dashboard/Billing/ActivePlan.stx +0 -57
- package/resources/components/Dashboard/Billing/CardBrands.stx +0 -32
- package/resources/components/Dashboard/Billing/CardForm.stx +0 -34
- package/resources/components/Dashboard/Billing/OneTimePayment.stx +0 -28
- package/resources/components/Dashboard/Billing/PaymentForm.stx +0 -33
- package/resources/components/Dashboard/Billing/PaymentMethod.stx +0 -66
- package/resources/components/Dashboard/Billing/PaymentMethodList.stx +0 -52
- package/resources/components/Dashboard/Billing/Plans.stx +0 -136
- package/resources/components/Dashboard/Buttons/AppButton.stx +0 -48
- package/resources/components/Dashboard/Buttons/IconButton.stx +0 -20
- package/resources/components/Dashboard/Card.stx +0 -78
- package/resources/components/Dashboard/Chart.stx +0 -75
- package/resources/components/Dashboard/Commerce/BulkActionBar.stx +0 -70
- package/resources/components/Dashboard/Commerce/CategoriesTable.stx +0 -133
- package/resources/components/Dashboard/Commerce/CouponsTable.stx +0 -161
- package/resources/components/Dashboard/Commerce/CustomersTable.stx +0 -142
- package/resources/components/Dashboard/Commerce/Delivery/LicenseTemplatesTable.stx +0 -88
- package/resources/components/Dashboard/Commerce/Delivery/Pagination.stx +0 -122
- package/resources/components/Dashboard/Commerce/Forms/CouponsForm.stx +0 -191
- package/resources/components/Dashboard/Commerce/OrdersTable.stx +0 -131
- package/resources/components/Dashboard/Commerce/ProductsTable.stx +0 -170
- package/resources/components/Dashboard/Deployments/ActivityFeed.stx +0 -54
- package/resources/components/Dashboard/Deployments/DeploymentHistory.stx +0 -97
- package/resources/components/Dashboard/Elements/Dropdown.stx +0 -57
- package/resources/components/Dashboard/Email/EmailActivityChart.stx +0 -111
- package/resources/components/Dashboard/Email/EmailCompose.stx +0 -72
- package/resources/components/Dashboard/Email/EmailDetail.stx +0 -105
- package/resources/components/Dashboard/Email/EmailList.stx +0 -117
- package/resources/components/Dashboard/Email/EmailSearch.stx +0 -40
- package/resources/components/Dashboard/Monitoring/ErrorDetailModal.stx +0 -228
- package/resources/components/Dashboard/Monitoring/ErrorsTable.stx +0 -184
- package/resources/components/Dashboard/NavbarModern.stx +0 -188
- package/resources/components/Dashboard/NotificationErrorModal.stx +0 -105
- package/resources/components/Dashboard/NotificationStatusBadge.stx +0 -20
- package/resources/components/Dashboard/Pagination.stx +0 -90
- package/resources/components/Dashboard/Queue/QueueTable.stx +0 -127
- package/resources/components/Dashboard/Settings/Forms/AIForm.stx +0 -126
- package/resources/components/Dashboard/Settings/Forms/AnalyticsForm.stx +0 -52
- package/resources/components/Dashboard/Settings/Forms/AppForm.stx +0 -157
- package/resources/components/Dashboard/Settings/Forms/CLIForm.stx +0 -66
- package/resources/components/Dashboard/Settings/Forms/CacheForm.stx +0 -253
- package/resources/components/Dashboard/Settings/Forms/CloudForm.stx +0 -441
- package/resources/components/Dashboard/Settings/Forms/DNSForm.stx +0 -307
- package/resources/components/Dashboard/Settings/Forms/DatabaseForm.stx +0 -168
- package/resources/components/Dashboard/Settings/Forms/EmailForm.stx +0 -100
- package/resources/components/Dashboard/Settings/Forms/FileSystemForm.stx +0 -259
- package/resources/components/Dashboard/Settings/Forms/HashingForm.stx +0 -119
- package/resources/components/Dashboard/Settings/Forms/LibraryForm.stx +0 -389
- package/resources/components/Dashboard/Settings/Forms/QueueForm.stx +0 -219
- package/resources/components/Dashboard/Settings/Forms/SearchEngineForm.stx +0 -48
- package/resources/components/Dashboard/Settings/Forms/SecurityForm.stx +0 -143
- package/resources/components/Dashboard/Settings/Forms/ServicesForm.stx +0 -194
- package/resources/components/Dashboard/Settings/Forms/StorageForm.stx +0 -191
- package/resources/components/Dashboard/Settings/Forms/TeamsForm.stx +0 -33
- package/resources/components/Dashboard/SettingsHeader.stx +0 -88
- package/resources/components/Dashboard/SettingsSidebar.stx +0 -234
- package/resources/components/Dashboard/SidebarModern.stx +0 -250
- package/resources/components/Dashboard/Table.stx +0 -82
- package/resources/components/Dashboard/TerminalContainer.stx +0 -97
- package/resources/components/Dashboard/UI/DataTable.stx +0 -45
- package/resources/components/Dashboard/UI/RouterLink.stx +0 -31
- package/resources/components/Dashboard/Widget.stx +0 -89
- package/resources/components/Dashboard/WindowControls.stx +0 -119
- package/resources/functions/dashboard/files-tree.ts +0 -162
- package/resources/functions/dashboard/library.ts +0 -250
- package/resources/functions/dashboard/system.ts +0 -150
- package/resources/views/dashboard/custom-page.stx +0 -45
- package/views/dashboard/commerce/delivery/tabs.ts +0 -25
- package/views/dashboard/commerce/products/detail.stx +0 -563
- package/views/dashboard/commerce/reviews/index.ts +0 -0
- package/views/dashboard/components/index.stx +0 -330
|
@@ -99,7 +99,7 @@ generated model types stay precise.
|
|
|
99
99
|
| `useTimestamps` (alias `timestampable`) | `created_at` / `updated_at`. On by default |
|
|
100
100
|
| `useSoftDeletes` (alias `softDeletable`) | `deleted_at` plus soft-delete query scopes |
|
|
101
101
|
| `useAuth` (alias `authenticatable`) | Auth columns; `{ usePasskey: true }` adds passkeys |
|
|
102
|
-
| `useApi` | Generates REST actions and routes: `{ uri, routes }` |
|
|
102
|
+
| `useApi` | Generates REST actions and routes: `{ uri, routes, middleware? }` |
|
|
103
103
|
| `useSearch` (alias `searchable`) | Search-engine indexing: `{ displayable, searchable, sortable, filterable }` |
|
|
104
104
|
| `useSocials` | OAuth identities, e.g. `['github']` |
|
|
105
105
|
| `useActivityLog` | Writes an `Activity` row per change |
|
|
@@ -111,6 +111,29 @@ Also at the top level: `indexes: [{ name, columns, unique?, where? }]` for
|
|
|
111
111
|
composite and partial-unique indexes, and `dashboard: { highlight: true }` to
|
|
112
112
|
feature the model in the admin UI.
|
|
113
113
|
|
|
114
|
+
`useApi` is an API capability, not a dashboard-view generator. Its generated
|
|
115
|
+
routes are registered from the merged model registry. Framework defaults are
|
|
116
|
+
loaded first, then recursive `app/Models/` definitions override matching model
|
|
117
|
+
names. Protect non-public resources at the model:
|
|
118
|
+
|
|
119
|
+
```ts
|
|
120
|
+
useApi: {
|
|
121
|
+
uri: 'mail-preferences',
|
|
122
|
+
routes: ['index', 'store', 'show', 'update', 'destroy'],
|
|
123
|
+
middleware: ['auth'],
|
|
124
|
+
}
|
|
125
|
+
```
|
|
126
|
+
|
|
127
|
+
Dashboard-specific endpoints may still use scoped Actions when their transport
|
|
128
|
+
shape, authorization boundary, or aggregation differs from generic CRUD. Do
|
|
129
|
+
not expose a sensitive model through unguarded generated routes just because a
|
|
130
|
+
separate dashboard endpoint is protected.
|
|
131
|
+
|
|
132
|
+
Generated store and update routes accept both spellings of every fillable
|
|
133
|
+
attribute and each foreign key implied by `belongsTo`. Declaring Product as a
|
|
134
|
+
belongs-to relation therefore accepts `productId` or `product_id` without
|
|
135
|
+
duplicating that relationship column as an attribute.
|
|
136
|
+
|
|
114
137
|
### Relationships
|
|
115
138
|
|
|
116
139
|
`hasOne`, `hasMany`, `belongsTo`, `belongsToMany`, `hasOneThrough`,
|
|
@@ -118,6 +141,40 @@ feature the model in the admin UI.
|
|
|
118
141
|
`morphedByMany`. Each takes an array of model names, or an object form when you
|
|
119
142
|
need to name the foreign key.
|
|
120
143
|
|
|
144
|
+
Use the named object form for a many-to-many relation that owns its pivot
|
|
145
|
+
schema. It keeps the relation accessor, migration, pivot defaults, timestamps,
|
|
146
|
+
and uniqueness in the model definition:
|
|
147
|
+
|
|
148
|
+
```ts
|
|
149
|
+
belongsToMany: {
|
|
150
|
+
tags: {
|
|
151
|
+
model: 'Tag',
|
|
152
|
+
table: 'taggable_models',
|
|
153
|
+
foreignKey: 'taggable_id',
|
|
154
|
+
relatedKey: 'tag_id',
|
|
155
|
+
pivot: {
|
|
156
|
+
columns: {
|
|
157
|
+
taggable_type: { default: 'posts' },
|
|
158
|
+
},
|
|
159
|
+
timestamps: true,
|
|
160
|
+
uniques: [['tag_id', 'taggable_id', 'taggable_type']],
|
|
161
|
+
},
|
|
162
|
+
},
|
|
163
|
+
},
|
|
164
|
+
```
|
|
165
|
+
|
|
166
|
+
An instance then exposes the named relation directly:
|
|
167
|
+
|
|
168
|
+
```ts
|
|
169
|
+
const post = await Post.find(id)
|
|
170
|
+
await post.tags().sync(tagIds)
|
|
171
|
+
await post.tags().detach()
|
|
172
|
+
```
|
|
173
|
+
|
|
174
|
+
The legacy array form remains supported. Prefer the named form when the pivot
|
|
175
|
+
has custom keys, columns, defaults, timestamps, or uniqueness. Run
|
|
176
|
+
`buddy generate:migrations` after changing pivot metadata.
|
|
177
|
+
|
|
121
178
|
### Computed properties and scopes
|
|
122
179
|
|
|
123
180
|
```ts
|
|
@@ -162,16 +162,20 @@ interface CreateNotificationOptions {
|
|
|
162
162
|
|
|
163
163
|
## Notification Model Fields
|
|
164
164
|
|
|
165
|
-
The Notification model
|
|
166
|
-
|
|
167
|
-
|
|
168
|
-
- `
|
|
169
|
-
- `
|
|
170
|
-
- `
|
|
171
|
-
- `
|
|
172
|
-
- `
|
|
173
|
-
|
|
174
|
-
|
|
165
|
+
The Notification model at `storage/framework/defaults/app/Models/Notification.ts`
|
|
166
|
+
maps the database notification inbox used by `DatabaseNotificationDriver`:
|
|
167
|
+
|
|
168
|
+
- `user_id` comes from the `belongsTo: ['User']` relationship
|
|
169
|
+
- `type` is an application event name such as `order.shipped`
|
|
170
|
+
- `data` is a JSON string containing the notification payload
|
|
171
|
+
- `readAt` maps to the nullable `read_at` column
|
|
172
|
+
- `created_at` and `updated_at` come from `useTimestamps`
|
|
173
|
+
|
|
174
|
+
The model uses `useApi` for its CRUD API and seeds 30 records by default. It
|
|
175
|
+
must stay aligned with `notificationsTableSql()` in
|
|
176
|
+
`storage/framework/core/database/src/notification-tables.ts`. Outbound
|
|
177
|
+
transport attempts belong in a separate delivery-log model and table. Do not
|
|
178
|
+
add email, SMS, or provider-specific delivery columns to the inbox model.
|
|
175
179
|
|
|
176
180
|
## CLI Commands
|
|
177
181
|
- `buddy make:notification [name]` -- scaffold a new notification
|
|
@@ -291,10 +291,24 @@ type UpdateModelData<T> = Partial<InferModelAttributes<Def<T>> & BelongsToForeig
|
|
|
291
291
|
Each relationship type is processed into a `RelationConfig` object:
|
|
292
292
|
- **hasOne / hasMany**: FK = `{parent_snake}_id`, model key = `{related_snake}_id`
|
|
293
293
|
- **belongsTo**: FK is empty string (set on the owning model's side), supports custom `foreignKey`
|
|
294
|
-
- **belongsToMany**: auto-creates pivot
|
|
294
|
+
- **belongsToMany**: the legacy array form auto-creates a conventional pivot and supports `pivotTable`, `firstForeignKey`, and `secondForeignKey`; the named object form supports `table`, `foreignKey`, `relatedKey`, and `pivot` metadata (`columns`, `timestamps`, `uniques`)
|
|
295
295
|
- **hasOneThrough**: includes `throughModel` and `throughForeignKey`
|
|
296
296
|
- **morphOne**: uses `{modelName}able` pattern, generates `_type` and `_id` columns
|
|
297
297
|
|
|
298
|
+
Named many-to-many relations are callable on model instances. Use their native
|
|
299
|
+
relation builder for pivot writes:
|
|
300
|
+
|
|
301
|
+
```ts
|
|
302
|
+
const post = await Post.find(id)
|
|
303
|
+
await post.categories().sync(categoryIds)
|
|
304
|
+
await post.tags().attach(tagId)
|
|
305
|
+
await post.tags().detach()
|
|
306
|
+
```
|
|
307
|
+
|
|
308
|
+
Declaring custom pivot columns in the model is required when those columns have
|
|
309
|
+
defaults that `attach()` and `sync()` must write. `pivot.timestamps: true`
|
|
310
|
+
causes both timestamps to be generated and maintained.
|
|
311
|
+
|
|
298
312
|
## Model Events (when `traits.observe: true`)
|
|
299
313
|
`observe: true` emits all three events. `observe: ['create', 'update']` emits only those.
|
|
300
314
|
- `'{modelname}:created'` -- via `afterCreate` hook, lazy-imports `@stacksjs/events`
|
|
@@ -306,6 +306,30 @@ await handleAddPaymentMethod(clientSecret, elements) // confirms card setup
|
|
|
306
306
|
await handlePayment(elements) // confirms payment
|
|
307
307
|
```
|
|
308
308
|
|
|
309
|
+
`useBillable()` explicitly imports `usePaymentStore` from the default payment
|
|
310
|
+
store. Keep that dependency explicit in imported billing modules. Browser
|
|
311
|
+
auto-imports are injected into STX script entries and do not become lexical
|
|
312
|
+
globals inside the TypeScript modules those entries bundle.
|
|
313
|
+
|
|
314
|
+
`usePaymentStore()` is a callable wrapper around one STX `defineStore()`
|
|
315
|
+
singleton. Its requests resolve the configured API origin, include the current
|
|
316
|
+
bearer token, add the CSRF header for writes, and derive mutation route IDs from
|
|
317
|
+
the authenticated user. Never restore a fixed localhost port or a hard-coded
|
|
318
|
+
user ID.
|
|
319
|
+
|
|
320
|
+
### Dashboard Billing
|
|
321
|
+
|
|
322
|
+
`/settings/billing` is a thin route that renders `BillingSettings`. The
|
|
323
|
+
component calls `GET /api/dashboard/billing`, an authenticated aggregate Action
|
|
324
|
+
registered in `routes/dashboard-api.ts`. Do not call the root `/payments/*`
|
|
325
|
+
group from the dashboard: `buddy dev --dashboard` delegates `/api/*` to the
|
|
326
|
+
Stacks router and intentionally leaves root GET paths to STX page rendering.
|
|
327
|
+
|
|
328
|
+
The aggregate always returns persisted `PaymentTransaction` records for the
|
|
329
|
+
authenticated user. Subscription and payment-method reads are provider-backed
|
|
330
|
+
and may be unavailable when the application User override is not billable.
|
|
331
|
+
Render that as an explicit unavailable state, not sample plans or fake cards.
|
|
332
|
+
|
|
309
333
|
## config/payment.ts
|
|
310
334
|
|
|
311
335
|
```typescript
|
|
@@ -358,6 +382,14 @@ The `UserModel` must have:
|
|
|
358
382
|
- `update(data)` method -- for persisting `stripe_id`
|
|
359
383
|
- `activeSubscription()` method -- for subscription updates
|
|
360
384
|
|
|
385
|
+
The framework default `storage/framework/defaults/app/Models/User.ts` sets
|
|
386
|
+
`billable: false` intentionally because not every application uses payments.
|
|
387
|
+
Run `buddy publish:model User`, keep the override at `app/Models/User.ts`, and
|
|
388
|
+
enable its `billable` trait before calling instance helpers such as
|
|
389
|
+
`activeSubscription()`, `paymentMethods()`, or `createSetupIntent()`. A payment
|
|
390
|
+
Action must report the missing trait clearly instead of calling an undefined
|
|
391
|
+
method.
|
|
392
|
+
|
|
361
393
|
## Gotchas
|
|
362
394
|
- Stripe API keys MUST be in `.env` as `STRIPE_SECRET_KEY` and `STRIPE_PUBLISHABLE_KEY` -- never hardcode them in config files
|
|
363
395
|
- The Stripe SDK is initialized eagerly -- if `STRIPE_SECRET_KEY` is missing, the module throws on import
|
|
@@ -8,7 +8,8 @@ allowed-tools: Read Edit Write Bash Grep Glob
|
|
|
8
8
|
|
|
9
9
|
# Stacks Search Engine
|
|
10
10
|
|
|
11
|
-
Full-text search integration with Meilisearch
|
|
11
|
+
Full-text search integration with Meilisearch, Algolia, Typesense, and
|
|
12
|
+
OpenSearch drivers.
|
|
12
13
|
|
|
13
14
|
## Key Paths
|
|
14
15
|
- Core package: `storage/framework/core/search-engine/src/`
|
|
@@ -17,11 +18,20 @@ Full-text search integration with Meilisearch and Algolia drivers.
|
|
|
17
18
|
## Search Driver Factory
|
|
18
19
|
|
|
19
20
|
```typescript
|
|
20
|
-
import {
|
|
21
|
+
import {
|
|
22
|
+
flushModelDocuments,
|
|
23
|
+
useAlgolia,
|
|
24
|
+
useMeilisearch,
|
|
25
|
+
useOpensearch,
|
|
26
|
+
useSearchEngine,
|
|
27
|
+
useTypesense,
|
|
28
|
+
} from '@stacksjs/search-engine'
|
|
21
29
|
|
|
22
30
|
const search = useSearchEngine() // default driver
|
|
23
31
|
const algolia = useAlgolia() // Algolia client
|
|
24
32
|
const meili = useMeilisearch() // Meilisearch client
|
|
33
|
+
const openSearch = useOpensearch() // OpenSearch driver
|
|
34
|
+
const typesense = useTypesense() // Typesense driver
|
|
25
35
|
```
|
|
26
36
|
|
|
27
37
|
## Document Operations
|
|
@@ -37,7 +47,7 @@ await search.addDocuments('products', [
|
|
|
37
47
|
const results = await search.search('products', 'widget')
|
|
38
48
|
|
|
39
49
|
// List indexes
|
|
40
|
-
const indexes = await search.
|
|
50
|
+
const indexes = await search.listAllIndexes()
|
|
41
51
|
|
|
42
52
|
// Get/update settings
|
|
43
53
|
const settings = await search.getSettings('products')
|
|
@@ -48,7 +58,7 @@ await search.updateSettings('products', {
|
|
|
48
58
|
})
|
|
49
59
|
|
|
50
60
|
// Flush all documents
|
|
51
|
-
await
|
|
61
|
+
await flushModelDocuments('Product')
|
|
52
62
|
```
|
|
53
63
|
|
|
54
64
|
## Model Integration (useSearch Trait)
|
|
@@ -82,25 +92,23 @@ buddy search-engine:settings --model Product # settings for specific model
|
|
|
82
92
|
|
|
83
93
|
## Driver Comparison
|
|
84
94
|
|
|
85
|
-
| Feature | Meilisearch | Algolia |
|
|
86
|
-
|
|
87
|
-
| Self-hosted | Yes | No
|
|
88
|
-
|
|
|
89
|
-
|
|
|
90
|
-
| Faceted search | Yes | Yes |
|
|
91
|
-
| Geo search | Yes | Yes |
|
|
92
|
-
| Speed | Very fast | Very fast |
|
|
95
|
+
| Feature | Meilisearch | Algolia | Typesense | OpenSearch |
|
|
96
|
+
|---------|-------------|---------|-----------|------------|
|
|
97
|
+
| Self-hosted | Yes | No | Yes | Yes |
|
|
98
|
+
| Managed option | Yes | Yes | Yes | Yes |
|
|
99
|
+
| Model lifecycle indexing | Yes | Yes | Yes | Driver must implement the full contract |
|
|
93
100
|
|
|
94
101
|
## config/search-engine.ts
|
|
95
102
|
|
|
96
103
|
```typescript
|
|
97
|
-
{ driver: 'opensearch' } // 'meilisearch' | 'algolia' | 'opensearch'
|
|
104
|
+
{ driver: 'opensearch' } // 'meilisearch' | 'algolia' | 'opensearch' | 'typesense'
|
|
98
105
|
```
|
|
99
106
|
|
|
100
107
|
Environment variables: `MEILISEARCH_HOST`, `MEILISEARCH_KEY`, `SEARCH_ENGINE_DRIVER`
|
|
101
108
|
|
|
102
109
|
## Gotchas
|
|
103
110
|
- Default driver is `opensearch` — configure in config or env
|
|
111
|
+
- A selected driver must implement the complete `SearchEngineDriver` surface; never satisfy the type with an empty cast
|
|
104
112
|
- `useSearch` trait determines which model fields are indexed
|
|
105
113
|
- `displayable` controls which fields appear in search results
|
|
106
114
|
- `searchable` controls which fields are queried during search
|
|
@@ -29,35 +29,98 @@ When the task is how a page should *look* (not just how stx renders), pair this
|
|
|
29
29
|
2. **NEVER use** `var`, `document.*`, `window.*` in STX templates
|
|
30
30
|
3. STX `<script>` tags should ONLY contain stx-compatible code (signals, composables, directives)
|
|
31
31
|
|
|
32
|
+
### Pre-paint appearance
|
|
33
|
+
|
|
34
|
+
Use `@appearanceBootstrap({...})` when persisted appearance must be applied
|
|
35
|
+
before the browser parses the application shell. Do not add a raw inline
|
|
36
|
+
script for `localStorage`, `document`, or `matchMedia`. The directive emits the
|
|
37
|
+
synchronous compiler-owned guard, validates storage through explicit
|
|
38
|
+
allowlists, applies the root data attributes and `dark` class, and receives the
|
|
39
|
+
request CSP nonce when nonce support is enabled.
|
|
40
|
+
|
|
41
|
+
```stx
|
|
42
|
+
@appearanceBootstrap({
|
|
43
|
+
storageKey: 'app-appearance',
|
|
44
|
+
appearance: {
|
|
45
|
+
key: 'sidebarStyle',
|
|
46
|
+
attribute: 'appearance',
|
|
47
|
+
allowed: ['macos', 'arc'],
|
|
48
|
+
default: 'macos',
|
|
49
|
+
},
|
|
50
|
+
colorMode: {
|
|
51
|
+
key: 'colorMode',
|
|
52
|
+
attribute: 'color-mode',
|
|
53
|
+
default: 'system',
|
|
54
|
+
},
|
|
55
|
+
})
|
|
56
|
+
```
|
|
57
|
+
|
|
58
|
+
Persist a JSON object under `storageKey`. Invalid JSON, storage errors, unknown
|
|
59
|
+
appearance values, and unsupported color modes all fall back to the declared
|
|
60
|
+
defaults before first paint.
|
|
61
|
+
|
|
32
62
|
## Template Structure
|
|
33
63
|
|
|
34
64
|
```html
|
|
65
|
+
<script client>
|
|
66
|
+
const count = state(0)
|
|
67
|
+
const title = state('Hello STX')
|
|
68
|
+
const showDescription = state(true)
|
|
69
|
+
|
|
70
|
+
function increment(): void {
|
|
71
|
+
count.update(value => value + 1)
|
|
72
|
+
}
|
|
73
|
+
</script>
|
|
74
|
+
|
|
35
75
|
<template>
|
|
36
76
|
<div class="container">
|
|
37
|
-
<h1>{{ title }}</h1>
|
|
38
|
-
<p
|
|
39
|
-
<button @click="increment">Count: {{ count }}</button>
|
|
77
|
+
<h1>{{ title() }}</h1>
|
|
78
|
+
<p :if="showDescription()">Rendered reactively</p>
|
|
79
|
+
<button type="button" @click="increment()">Count: {{ count() }}</button>
|
|
40
80
|
</div>
|
|
41
81
|
</template>
|
|
42
82
|
|
|
43
|
-
<script>
|
|
44
|
-
import { ref, computed } from '@stacksjs/composables'
|
|
45
|
-
|
|
46
|
-
const count = ref(0)
|
|
47
|
-
const title = ref('Hello STX')
|
|
48
|
-
const showDescription = ref(true)
|
|
49
|
-
|
|
50
|
-
function increment() {
|
|
51
|
-
count.value++
|
|
52
|
-
}
|
|
53
|
-
</script>
|
|
54
|
-
|
|
55
83
|
<style>
|
|
56
84
|
/* Use crosswind utility classes or custom CSS */
|
|
57
85
|
.container { max-width: 1200px; margin: 0 auto; }
|
|
58
86
|
</style>
|
|
59
87
|
```
|
|
60
88
|
|
|
89
|
+
STX signals are callable. Read with `count()`, replace with
|
|
90
|
+
`count.set(value)`, and update from the current value with
|
|
91
|
+
`count.update(value => value + 1)`. Do not use Vue-style `.value` access in
|
|
92
|
+
STX templates or `resources/functions`.
|
|
93
|
+
|
|
94
|
+
### Native form binding
|
|
95
|
+
|
|
96
|
+
Use `x-model` for two-way form state instead of pairing `:value` with a
|
|
97
|
+
manual `@input` or `@change` handler. The expression is the signal name
|
|
98
|
+
without parentheses:
|
|
99
|
+
|
|
100
|
+
```html
|
|
101
|
+
<script client>
|
|
102
|
+
const query = state('')
|
|
103
|
+
const quantity = state(1)
|
|
104
|
+
const enabled = state(false)
|
|
105
|
+
const categories = state<string[]>([])
|
|
106
|
+
</script>
|
|
107
|
+
|
|
108
|
+
<input x-model.trim="query" type="search">
|
|
109
|
+
<input x-model.number="quantity" type="number">
|
|
110
|
+
<input x-model="enabled" type="checkbox">
|
|
111
|
+
<input x-model="categories" type="checkbox" value="news">
|
|
112
|
+
<select x-model="query">
|
|
113
|
+
<option value="">All</option>
|
|
114
|
+
<option value="active">Active</option>
|
|
115
|
+
</select>
|
|
116
|
+
```
|
|
117
|
+
|
|
118
|
+
`x-model` supports text inputs, textareas, selects, radio buttons, boolean
|
|
119
|
+
checkboxes, and checkbox arrays. Use `.trim` when whitespace should be
|
|
120
|
+
removed and `.number` when the signal should receive a number. Keep a
|
|
121
|
+
dedicated signal for each binding. Arbitrary expressions such as
|
|
122
|
+
`x-model="user.name"` are not writable bindings.
|
|
123
|
+
|
|
61
124
|
## Configuration (config/ui.ts)
|
|
62
125
|
|
|
63
126
|
```typescript
|
|
@@ -112,6 +175,29 @@ interface StxConfig {
|
|
|
112
175
|
- Reactivity system (ref, computed, watch)
|
|
113
176
|
- Component composition and lifecycle
|
|
114
177
|
- Dependency injection (provide/inject)
|
|
178
|
+
- DOM update scheduling with the browser-auto-imported `nextTick()`
|
|
179
|
+
|
|
180
|
+
### Template refs after structural updates
|
|
181
|
+
|
|
182
|
+
Use `useRef()` with `nextTick()` when an element is inserted by `:if`, a modal, or another structural directive and must be focused or measured immediately afterward:
|
|
183
|
+
|
|
184
|
+
```ts
|
|
185
|
+
const open = state(false)
|
|
186
|
+
const searchInput = useRef('searchInput')
|
|
187
|
+
|
|
188
|
+
function showSearch(): void {
|
|
189
|
+
open.set(true)
|
|
190
|
+
void nextTick(() => searchInput.current?.focus())
|
|
191
|
+
}
|
|
192
|
+
```
|
|
193
|
+
|
|
194
|
+
```html
|
|
195
|
+
<template :if="open()">
|
|
196
|
+
<input ref="searchInput" type="search">
|
|
197
|
+
</template>
|
|
198
|
+
```
|
|
199
|
+
|
|
200
|
+
`nextTick()` runs after the current synchronous signal and effect flush. Prefer it over `querySelector`, manual DOM polling, or `requestAnimationFrame` when the task is waiting for STX to materialize reactive markup.
|
|
115
201
|
|
|
116
202
|
### Rendering
|
|
117
203
|
- **SSR** — Server-Side Rendering
|
|
@@ -168,9 +254,16 @@ await addLayout('admin', { nav: true, footer: true })
|
|
|
168
254
|
- **STX is the ONLY templating system** — do not use other template engines
|
|
169
255
|
- **`bun-plugin-stx` must be loaded** — without it, `.stx` files won't be processed
|
|
170
256
|
- **Auto-imports** — browser auto-imports defined in `storage/framework/browser-auto-imports.json`
|
|
257
|
+
- **Imported module dependencies** - browser auto-imports are injected into the STX script entry only; imported `.ts` modules must explicitly import every function or store they use
|
|
258
|
+
- **Project-root server imports** - use `~/path` or `@/path` inside `<script server>` when a layout, partial, or page needs a project file. STX resolves both aliases against the application root before executing the server script. Relative imports still resolve against the `.stx` file
|
|
259
|
+
- **Browser package inputs are bundled** - core browser helpers and model auto-import bootstraps are compiler bundle inputs. Rendered HTML must never contain a bare `import '@stacksjs/browser'`, because browsers cannot resolve package specifiers without an import map
|
|
260
|
+
- **Server-to-client values are explicit** - a JSON-serializable top-level value exported by `<script server>` can be referenced by name in `<script client>`. STX serializes only referenced values and never overwrites a client-owned declaration
|
|
171
261
|
- **`storage/framework/stx/`** — stx build cache and the generated route manifest. `config/ui.ts` sets stx's `stateDir` here, so nothing lands in the project root. Gitignored; safe to delete
|
|
172
|
-
- **Reactivity is
|
|
262
|
+
- **Reactivity is signal-based** - use callable `state()` and `derived()` signals, not Vue-style `ref()` or `.value`
|
|
263
|
+
- **Component tag case is semantic** - `<Input v-model:value="query">` is a paired component, while lowercase `<input v-model="query">` is a native void element. Keep component tags PascalCase, including names that collide with native elements
|
|
264
|
+
- **Structural DOM timing** - use `nextTick()` with `useRef()` after opening reactive markup
|
|
173
265
|
- **Crosswind for styling** — use utility classes, not inline styles
|
|
174
266
|
- **Script block restrictions** — only stx-compatible code (signals, composables, directives), no vanilla DOM APIs
|
|
267
|
+
- **Pre-paint state** - use `@appearanceBootstrap`, never a raw browser script in the template
|
|
175
268
|
- **Components go in `resources/`** — not in `app/` or `storage/`
|
|
176
269
|
- **118+ modules** — STX is a comprehensive framework covering rendering, routing, forms, i18n, SEO, PWA, and more
|
|
@@ -26,8 +26,8 @@
|
|
|
26
26
|
</script>
|
|
27
27
|
<style>
|
|
28
28
|
/* ==========================================================
|
|
29
|
-
|
|
30
|
-
|
|
29
|
+
THEME VARIABLES - switch by toggling [data-theme] on <html>
|
|
30
|
+
========================================================== */
|
|
31
31
|
:root,
|
|
32
32
|
[data-theme="dark"] {
|
|
33
33
|
--bg: #020617;
|
|
@@ -47,7 +47,7 @@
|
|
|
47
47
|
--arrow-emphasis: #34d399;
|
|
48
48
|
|
|
49
49
|
/* Opaque mask color used behind semi-transparent component fills
|
|
50
|
-
|
|
50
|
+
so the arrows drawn underneath are properly hidden. */
|
|
51
51
|
--mask: #0f172a;
|
|
52
52
|
|
|
53
53
|
--frontend-fill: rgba(8, 51, 68, 0.4);
|
|
@@ -226,17 +226,17 @@
|
|
|
226
226
|
}
|
|
227
227
|
|
|
228
228
|
/* ==========================================================
|
|
229
|
-
|
|
230
|
-
|
|
231
|
-
|
|
232
|
-
|
|
233
|
-
|
|
229
|
+
Print stylesheet - hide interactive controls, force light,
|
|
230
|
+
drop the grid so the diagram doesn't waste ink, use landscape
|
|
231
|
+
so wide diagrams fit, pack summary cards into 2 columns to
|
|
232
|
+
avoid an orphan card on a trailing page.
|
|
233
|
+
========================================================== */
|
|
234
234
|
@page { size: landscape; margin: 1.5cm; }
|
|
235
235
|
|
|
236
236
|
@media print {
|
|
237
237
|
/* Force the FULL light palette - including component fills/strokes and
|
|
238
|
-
|
|
239
|
-
|
|
238
|
+
lane/arrow colors - so printing from dark theme doesn't put neon
|
|
239
|
+
strokes and translucent dark fills on white paper. */
|
|
240
240
|
:root, [data-theme="dark"], [data-theme="light"] {
|
|
241
241
|
--bg: #ffffff;
|
|
242
242
|
--grid: transparent;
|
|
@@ -278,8 +278,8 @@
|
|
|
278
278
|
}
|
|
279
279
|
|
|
280
280
|
/* ==========================================================
|
|
281
|
-
|
|
282
|
-
|
|
281
|
+
TOOLBAR (theme toggle + export menu)
|
|
282
|
+
========================================================== */
|
|
283
283
|
.toolbar {
|
|
284
284
|
position: fixed;
|
|
285
285
|
top: 1rem;
|
|
@@ -405,8 +405,8 @@
|
|
|
405
405
|
}
|
|
406
406
|
|
|
407
407
|
/* ==========================================================
|
|
408
|
-
|
|
409
|
-
|
|
408
|
+
SVG SEMANTIC CLASSES - use these instead of inline fill/stroke
|
|
409
|
+
========================================================== */
|
|
410
410
|
.c-grid { stroke: var(--grid); fill: none; }
|
|
411
411
|
.c-mask { fill: var(--mask); stroke: none; }
|
|
412
412
|
|
|
@@ -448,7 +448,7 @@
|
|
|
448
448
|
.c-lane { fill: var(--lane-fill); stroke: var(--lane-stroke); stroke-dasharray: 6,6; }
|
|
449
449
|
|
|
450
450
|
/* Optional trace animation, enabled only by meta.animation = "trace".
|
|
451
|
-
|
|
451
|
+
Static diagrams do not carry data-animation and render exactly as before. */
|
|
452
452
|
svg[data-animation="trace"] [data-animate="edge"] {
|
|
453
453
|
stroke-dasharray: 10 8;
|
|
454
454
|
stroke-dashoffset: 54;
|
|
@@ -481,7 +481,7 @@
|
|
|
481
481
|
</head>
|
|
482
482
|
<body>
|
|
483
483
|
<!-- Toolbar: theme toggle + export menu (present on every generated diagram)
|
|
484
|
-
|
|
484
|
+
Keyboard: T toggles theme, E opens export menu (when no input focused) -->
|
|
485
485
|
<div class="toolbar" role="toolbar" aria-label="Diagram actions">
|
|
486
486
|
<button id="btn-theme" type="button"
|
|
487
487
|
title="Toggle theme (T)"
|
|
@@ -548,12 +548,12 @@
|
|
|
548
548
|
<rect width="100%" height="100%" fill="url(#grid)" />
|
|
549
549
|
|
|
550
550
|
<!-- =================================================================
|
|
551
|
-
|
|
552
|
-
|
|
553
|
-
|
|
554
|
-
|
|
555
|
-
|
|
556
|
-
|
|
551
|
+
COMPONENT EXAMPLES - use CSS classes, not inline fill/stroke
|
|
552
|
+
(so theme toggle works). Each box pattern:
|
|
553
|
+
1. opaque mask rect (.c-mask) to hide arrows underneath
|
|
554
|
+
2. styled rect (.c-<type>) with 1.5px stroke
|
|
555
|
+
3. text (.t-primary / .t-muted)
|
|
556
|
+
================================================================= -->
|
|
557
557
|
|
|
558
558
|
<!-- External/Generic Component -->
|
|
559
559
|
<rect x="30" y="280" width="100" height="50" rx="6" class="c-mask"/>
|
|
@@ -587,8 +587,8 @@
|
|
|
587
587
|
<text x="255" y="466" class="t-cloud" font-size="7" text-anchor="middle">OAI Protected</text>
|
|
588
588
|
|
|
589
589
|
<!-- Security Group (dashed boundary). NOTE: extra vertical headroom
|
|
590
|
-
|
|
591
|
-
|
|
590
|
+
so the sg-name label has ~12px breathing room above the inner
|
|
591
|
+
component. Pattern: boundary y = inner.y - 30, h = inner.h + 50. -->
|
|
592
592
|
<rect x="350" y="250" width="120" height="100" rx="8" class="c-security-group" stroke-width="1"/>
|
|
593
593
|
<text x="358" y="268" class="t-security" font-size="8">sg-name :port</text>
|
|
594
594
|
|
|
@@ -620,8 +620,8 @@
|
|
|
620
620
|
<text x="300" y="615" class="t-frontend" font-size="8" text-anchor="middle">domain.example.com</text>
|
|
621
621
|
|
|
622
622
|
<!-- =================================================================
|
|
623
|
-
|
|
624
|
-
|
|
623
|
+
ARROW EXAMPLES (use .a-* classes and stroke-width on the line)
|
|
624
|
+
================================================================= -->
|
|
625
625
|
|
|
626
626
|
<!-- Standard arrow with label -->
|
|
627
627
|
<line x1="130" y1="305" x2="198" y2="305" class="a-default" stroke-width="1.5" marker-end="url(#arrowhead)"/>
|
|
@@ -645,8 +645,8 @@
|
|
|
645
645
|
<text x="150" y="210" class="t-security" font-size="8">JWT + PKCE</text>
|
|
646
646
|
|
|
647
647
|
<!-- =================================================================
|
|
648
|
-
|
|
649
|
-
|
|
648
|
+
LEGEND
|
|
649
|
+
================================================================= -->
|
|
650
650
|
<text x="720" y="70" class="t-primary" font-size="10" font-weight="600">Legend</text>
|
|
651
651
|
|
|
652
652
|
<rect x="720" y="82" width="16" height="10" rx="2" class="c-frontend" stroke-width="1"/>
|
|
@@ -690,7 +690,7 @@
|
|
|
690
690
|
|
|
691
691
|
<div class="card">
|
|
692
692
|
<div class="card-header">
|
|
693
|
-
<div class="card-dot
|
|
693
|
+
<div class="amber card-dot"></div>
|
|
694
694
|
<h3>Card Title 2</h3>
|
|
695
695
|
</div>
|
|
696
696
|
<ul>
|
|
@@ -724,8 +724,8 @@
|
|
|
724
724
|
|
|
725
725
|
<script>
|
|
726
726
|
/* ============================================================
|
|
727
|
-
|
|
728
|
-
|
|
727
|
+
Theme toggle - persists to localStorage, respects system pref
|
|
728
|
+
============================================================ */
|
|
729
729
|
var TechnicalDiagram = {};
|
|
730
730
|
|
|
731
731
|
TechnicalDiagram.theme = (function () {
|
|
@@ -792,17 +792,17 @@
|
|
|
792
792
|
})();
|
|
793
793
|
|
|
794
794
|
/* ============================================================
|
|
795
|
-
|
|
795
|
+
Export - PNG / JPEG / WebP / SVG (download) and Copy PNG (clipboard)
|
|
796
796
|
|
|
797
|
-
|
|
798
|
-
|
|
799
|
-
|
|
800
|
-
|
|
801
|
-
|
|
797
|
+
Raster exports are always rendered at 4x source resolution for
|
|
798
|
+
maximum sharpness. The trick: we set the serialized SVG's
|
|
799
|
+
`width`/`height` to viewBox * 4 so the browser rasterizes the
|
|
800
|
+
vectors at that resolution natively. drawImage then draws at
|
|
801
|
+
the image's natural size (no upscaling = no blur).
|
|
802
802
|
|
|
803
|
-
|
|
804
|
-
|
|
805
|
-
|
|
803
|
+
JPEG/WebP paint the current theme's background explicitly since
|
|
804
|
+
those formats have no alpha channel.
|
|
805
|
+
============================================================ */
|
|
806
806
|
(function () {
|
|
807
807
|
var RASTER_SCALE = 4;
|
|
808
808
|
|
|
@@ -910,7 +910,7 @@
|
|
|
910
910
|
// serialized SVG, so url()-sourced faces would just hang.
|
|
911
911
|
var fontFallback = [400, 500, 600, 700].map(function (w) {
|
|
912
912
|
return "@font-face { font-family: 'JetBrains Mono'; font-weight: " + w +
|
|
913
|
-
|
|
913
|
+
"; src: local('JetBrains Mono'), local('JetBrainsMono-Regular'); }";
|
|
914
914
|
}).join('\n');
|
|
915
915
|
|
|
916
916
|
var style = document.createElementNS('http://www.w3.org/2000/svg', 'style');
|
|
@@ -1025,7 +1025,7 @@
|
|
|
1025
1025
|
ctx.drawImage(img, 0, 0);
|
|
1026
1026
|
URL.revokeObjectURL(svgUrl);
|
|
1027
1027
|
var mime = format === 'jpeg' ? 'image/jpeg' :
|
|
1028
|
-
|
|
1028
|
+
format === 'webp' ? 'image/webp' : 'image/png';
|
|
1029
1029
|
var quality = format === 'png' ? undefined : 0.95;
|
|
1030
1030
|
canvas.toBlob(function (blob) {
|
|
1031
1031
|
if (!blob) reject(new Error('toBlob returned null for ' + format));
|
|
@@ -1049,8 +1049,8 @@
|
|
|
1049
1049
|
// ---- Clipboard support ----------------------------------------------
|
|
1050
1050
|
function canCopyImage() {
|
|
1051
1051
|
return typeof ClipboardItem !== 'undefined' &&
|
|
1052
|
-
|
|
1053
|
-
|
|
1052
|
+
navigator.clipboard &&
|
|
1053
|
+
typeof navigator.clipboard.write === 'function';
|
|
1054
1054
|
}
|
|
1055
1055
|
|
|
1056
1056
|
// ---- Raster format detection ----------------------------------------
|
|
@@ -1230,11 +1230,11 @@
|
|
|
1230
1230
|
})();
|
|
1231
1231
|
|
|
1232
1232
|
/* ============================================================
|
|
1233
|
-
|
|
1234
|
-
|
|
1235
|
-
|
|
1236
|
-
|
|
1237
|
-
|
|
1233
|
+
Global keyboard shortcuts
|
|
1234
|
+
T -> toggle theme
|
|
1235
|
+
E -> open export menu
|
|
1236
|
+
Ignored when focus is inside an input/textarea/contenteditable.
|
|
1237
|
+
============================================================ */
|
|
1238
1238
|
document.addEventListener('keydown', function (e) {
|
|
1239
1239
|
if (e.metaKey || e.ctrlKey || e.altKey) return;
|
|
1240
1240
|
var t = e.target;
|