@stacksjs/defaults 0.70.229 → 0.70.231
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
|
@@ -32,14 +32,42 @@ export const sidebarRoleMap = JSON.stringify(
|
|
|
32
32
|
)
|
|
33
33
|
</script>
|
|
34
34
|
|
|
35
|
+
@head
|
|
36
|
+
<link rel="icon" href="/images/logos/favicon.svg" type="image/svg+xml">
|
|
37
|
+
<link rel="icon" href="/images/logos/favicon-dark.svg" type="image/svg+xml" media="(prefers-color-scheme: dark)">
|
|
38
|
+
@endhead
|
|
39
|
+
|
|
35
40
|
<!-- Dashboard icon stylesheet. Most dashboard icons are applied via dynamic
|
|
36
|
-
`:class="…"` bindings whose class names live in
|
|
37
|
-
Crosswind extractor
|
|
38
|
-
render as empty boxes. The dev server generates the full icon set once and
|
|
39
|
-
it here (browser-cached), instead of inlining ~260KB into every page.
|
|
40
|
-
`/__deps/dashboard-icons.css` in
|
|
41
|
+
`:class="…"` bindings whose class names live in client script state, which the
|
|
42
|
+
stx Crosswind extractor cannot see, so their CSS is never generated inline and
|
|
43
|
+
they render as empty boxes. The dev server generates the full icon set once and
|
|
44
|
+
serves it here (browser-cached), instead of inlining ~260KB into every page.
|
|
45
|
+
Route: `/__deps/dashboard-icons.css` in actions/src/dev/dashboard.ts.
|
|
46
|
+
|
|
47
|
+
No angle-bracket tag names in this comment. stx parses them as elements, which
|
|
48
|
+
breaks OUT of the comment: the closing marker is then never emitted, and the
|
|
49
|
+
browser swallows everything after it as comment content. That is what hid the
|
|
50
|
+
entire sidebar once this layout started rendering it through a component. -->
|
|
41
51
|
<link rel="stylesheet" href="/__deps/dashboard-icons.css">
|
|
42
52
|
|
|
53
|
+
<!-- The native STX appearance bootstrap runs synchronously at this position.
|
|
54
|
+
It validates persisted values and stamps the root element before the shell
|
|
55
|
+
below is parsed, so hard reloads never flash the default skin or color mode. -->
|
|
56
|
+
@appearanceBootstrap({
|
|
57
|
+
storageKey: 'stacks-dashboard-appearance',
|
|
58
|
+
appearance: {
|
|
59
|
+
key: 'sidebarStyle',
|
|
60
|
+
attribute: 'appearance',
|
|
61
|
+
allowed: ['macos', 'arc'],
|
|
62
|
+
default: 'macos',
|
|
63
|
+
},
|
|
64
|
+
colorMode: {
|
|
65
|
+
key: 'colorMode',
|
|
66
|
+
attribute: 'color-mode',
|
|
67
|
+
default: 'system',
|
|
68
|
+
},
|
|
69
|
+
})
|
|
70
|
+
|
|
43
71
|
<style>
|
|
44
72
|
/*
|
|
45
73
|
* Make every chart canvas fill its wrapper. @stacksjs/charts sizes its
|
|
@@ -67,82 +95,289 @@ body {
|
|
|
67
95
|
background: transparent;
|
|
68
96
|
}
|
|
69
97
|
/*
|
|
70
|
-
* The pane offset follows the sidebar's own width variable, which
|
|
98
|
+
* The pane offset follows the sidebar's own width variable, which the Sidebar
|
|
71
99
|
* writes onto this element via `shell-selector`. The literal fallback keeps
|
|
72
100
|
* the layout correct on the first paint, before the controller mounts, and
|
|
73
101
|
* the collapsed state animates because the variable changes rather than a
|
|
74
102
|
* class toggling a hard-coded margin.
|
|
75
103
|
*/
|
|
76
104
|
[data-stx-content] {
|
|
105
|
+
min-width: 0;
|
|
77
106
|
min-height: 100vh;
|
|
78
107
|
margin-left: var(--stx-sidebar-width, 250px);
|
|
79
108
|
background: #f4f4f5;
|
|
80
109
|
transition: margin-left 0.3s ease-out;
|
|
81
110
|
}
|
|
111
|
+
.dashboard-modal-layer {
|
|
112
|
+
left: var(--stx-sidebar-width, 250px);
|
|
113
|
+
transition: left 0.3s ease-out;
|
|
114
|
+
}
|
|
115
|
+
@media (max-width: 1023px) {
|
|
116
|
+
[data-stx-content] {
|
|
117
|
+
margin-left: 0;
|
|
118
|
+
}
|
|
119
|
+
[data-dashboard-web-sidebar] {
|
|
120
|
+
display: none;
|
|
121
|
+
}
|
|
122
|
+
.dashboard-modal-layer {
|
|
123
|
+
left: 0;
|
|
124
|
+
}
|
|
125
|
+
}
|
|
126
|
+
/*
|
|
127
|
+
* These three rules used to hide the web sidebar and collapse the content
|
|
128
|
+
* offset, because Craft rendered a real NSOutlineView in that strip and
|
|
129
|
+
* showing both would have meant two navigations side by side.
|
|
130
|
+
*
|
|
131
|
+
* That native sidebar is retired (see actions/src/dev/dashboard.ts: "the web
|
|
132
|
+
* one owns rendering and behavior"), and the dev server never requests one.
|
|
133
|
+
* It does request `webSidebarMaterial: true`, purely for the NSVisualEffectView
|
|
134
|
+
* vibrancy that sits BEHIND the stx-rendered rows.
|
|
135
|
+
*
|
|
136
|
+
* Craft conflates the two: macos.zig gates its native-sidebar bootstrap on
|
|
137
|
+
* `style.web_sidebar_material` alone, and that bootstrap sets the global
|
|
138
|
+
* `__craftNativeSidebar` flag. So asking for vibrancy silently asserted "a
|
|
139
|
+
* native sidebar exists", the marker got stamped on the root element, and
|
|
140
|
+
* these rules hid the only navigation the window had. The Craft window showed
|
|
141
|
+
* a vibrant empty strip.
|
|
142
|
+
*
|
|
143
|
+
* Removed rather than re-gated: with the native sidebar retired there is no
|
|
144
|
+
* state in which hiding the web sidebar is correct. The upstream conflation is
|
|
145
|
+
* worth fixing in Craft too, so the flag stops lying to every other consumer.
|
|
146
|
+
*/
|
|
82
147
|
.dark [data-stx-content] {
|
|
83
148
|
background: #0a0a0a;
|
|
84
149
|
}
|
|
85
|
-
</style>
|
|
86
150
|
|
|
87
|
-
|
|
88
|
-
|
|
89
|
-
|
|
90
|
-
|
|
91
|
-
|
|
92
|
-
|
|
93
|
-
|
|
94
|
-
|
|
95
|
-
|
|
96
|
-
|
|
97
|
-
|
|
98
|
-
|
|
99
|
-
|
|
100
|
-
|
|
101
|
-
|
|
102
|
-
|
|
103
|
-
|
|
104
|
-
|
|
105
|
-
|
|
106
|
-
|
|
151
|
+
/* ===========================================================================
|
|
152
|
+
* Appearance: Arc
|
|
153
|
+
*
|
|
154
|
+
* Selected in Settings, stamped on the root element as `data-appearance`.
|
|
155
|
+
* Everything here is keyed on that attribute, so switching is one attribute
|
|
156
|
+
* write and it reaches every page at once.
|
|
157
|
+
*
|
|
158
|
+
* Two halves, and only one of them is the sidebar.
|
|
159
|
+
*
|
|
160
|
+
* THE SHELL. Arc's defining move is that the content is not a pane butted up
|
|
161
|
+
* against a sidebar — it is a card floating ON the sidebar's background, inset
|
|
162
|
+
* and rounded on every side. So the panel color moves to the body, the sidebar
|
|
163
|
+
* goes transparent on top of it, and the content gets a margin all the way
|
|
164
|
+
* round. No sidebar theme can do this part; it belongs to the layout.
|
|
165
|
+
*
|
|
166
|
+
* THE ROWS. The installed @stacksjs/components predates its own `arc` theme,
|
|
167
|
+
* so the component renders macOS rows and this restyles them. The values are
|
|
168
|
+
* copied from that theme on purpose — 30px rows, 8px radius, a white card with
|
|
169
|
+
* a hairline and a one-pixel shadow instead of an accent fill — so that when
|
|
170
|
+
* the package ships it, the component and this skin agree and these rules
|
|
171
|
+
* become a no-op rather than a second, competing look.
|
|
172
|
+
*
|
|
173
|
+
* The selection overrides look redundantly specific because they have to be:
|
|
174
|
+
* the component paints the macOS selection from its own scoped stylesheet with
|
|
175
|
+
* selectors like `.scope [data-sidebar-selection="accent"][data-window-key]
|
|
176
|
+
* [data-sidebar-item][data-active]`. Matching that shape and adding the root
|
|
177
|
+
* attribute is what wins, and it wins by specificity rather than by `!important`
|
|
178
|
+
* so the rules stay overridable downstream.
|
|
179
|
+
* ======================================================================== */
|
|
180
|
+
html[data-appearance="arc"] {
|
|
181
|
+
/* Warmer and a shade deeper than the content card it carries. The stx `arc`
|
|
182
|
+
theme paints its pane at #f7f5f1 over whatever sits behind it; here the
|
|
183
|
+
panel IS the backdrop, so it has to be flat and darker than white or the
|
|
184
|
+
floating card has no edge to read against. */
|
|
185
|
+
--dash-arc-panel: #efebe4;
|
|
186
|
+
--dash-arc-gap: 10px;
|
|
187
|
+
--dash-arc-radius: 12px;
|
|
188
|
+
}
|
|
189
|
+
/* The dark class is written onto the root element itself, so it stacks with
|
|
190
|
+
the appearance attribute rather than sitting above it. */
|
|
191
|
+
html[data-appearance="arc"].dark {
|
|
192
|
+
--dash-arc-panel: #171717;
|
|
193
|
+
}
|
|
107
194
|
|
|
108
|
-
|
|
109
|
-
|
|
110
|
-
|
|
111
|
-
|
|
112
|
-
|
|
113
|
-
// file is a syntax error. Exposing these globals here lets every page
|
|
114
|
-
// drop the import and call the helper directly.
|
|
115
|
-
;(function () {
|
|
116
|
-
if (typeof window === 'undefined') return
|
|
117
|
-
if (window.useChart) return
|
|
118
|
-
|
|
119
|
-
function useChart(opts) {
|
|
120
|
-
if (typeof document === 'undefined')
|
|
121
|
-
return { instance: null, destroy: function () {} }
|
|
122
|
-
var el = document.getElementById(opts.id)
|
|
123
|
-
if (!el) {
|
|
124
|
-
console.warn('[useChart] no element with id "' + opts.id + '" — chart not initialised')
|
|
125
|
-
return { instance: null, destroy: function () {} }
|
|
126
|
-
}
|
|
127
|
-
var instance = new opts.Chart(el, { type: opts.type, data: opts.data, options: opts.options })
|
|
128
|
-
return {
|
|
129
|
-
instance: instance,
|
|
130
|
-
destroy: function () { instance.destroy() },
|
|
131
|
-
}
|
|
132
|
-
}
|
|
195
|
+
/* The gap around the content card is the body showing through, which is what
|
|
196
|
+
makes the card read as floating on the sidebar rather than beside it. */
|
|
197
|
+
html[data-appearance="arc"] body {
|
|
198
|
+
background: var(--dash-arc-panel);
|
|
199
|
+
}
|
|
133
200
|
|
|
134
|
-
|
|
135
|
-
|
|
136
|
-
|
|
137
|
-
|
|
138
|
-
|
|
139
|
-
|
|
201
|
+
/* The card owns scrolling, so the page must not also scroll: a document
|
|
202
|
+
scrollbar would eat the right-hand gap and there would be nothing for it to
|
|
203
|
+
scroll anyway. */
|
|
204
|
+
html[data-appearance="arc"],
|
|
205
|
+
html[data-appearance="arc"] body {
|
|
206
|
+
height: 100%;
|
|
207
|
+
overflow: hidden;
|
|
208
|
+
}
|
|
209
|
+
|
|
210
|
+
html[data-appearance="arc"] [data-stx-content] {
|
|
211
|
+
/* Only three margins. `margin-left` is deliberately left to the base rule.
|
|
212
|
+
|
|
213
|
+
It is the one margin that transitions (0.3s, for the sidebar collapse),
|
|
214
|
+
and overriding a transitioned longhand with a `calc()` over two custom
|
|
215
|
+
properties wedges the interpolation in WebKit: switching appearance leaves
|
|
216
|
+
it stuck at the old value until a reload. Inheriting the base declaration
|
|
217
|
+
means the property never changes when the appearance does, so there is
|
|
218
|
+
nothing to wedge — and the collapse animation keeps working identically in
|
|
219
|
+
both styles.
|
|
220
|
+
|
|
221
|
+
The panel strip down the card's left side is the sidebar's own trailing
|
|
222
|
+
padding, which is where it comes from in Arc too. */
|
|
223
|
+
margin-top: var(--dash-arc-gap);
|
|
224
|
+
margin-right: var(--dash-arc-gap);
|
|
225
|
+
margin-bottom: var(--dash-arc-gap);
|
|
226
|
+
/* Beats the base rule's `min-height: 100vh`, which would otherwise hold the
|
|
227
|
+
card a full viewport tall and push its bottom edge off-screen — losing the
|
|
228
|
+
one gap that shows it is floating. */
|
|
229
|
+
min-height: 0;
|
|
230
|
+
/* The card is exactly the viewport minus its own gaps, and scrolls its own
|
|
231
|
+
content. Letting the page scroll instead would grow the card past the
|
|
232
|
+
bottom of the window, so the one edge that proves it is floating — the
|
|
233
|
+
panel showing beneath it — would only ever appear at the end of a long
|
|
234
|
+
page. This is also what Arc does: the sidebar is stationary and the card
|
|
235
|
+
scrolls inside its frame. */
|
|
236
|
+
height: calc(100vh - (2 * var(--dash-arc-gap)));
|
|
237
|
+
overflow-y: auto;
|
|
238
|
+
border-radius: var(--dash-arc-radius);
|
|
239
|
+
background: #fff;
|
|
240
|
+
/* Clip page content to the rounded corners — full-bleed headers and tables
|
|
241
|
+
otherwise square them off at the top. */
|
|
242
|
+
overflow-x: hidden;
|
|
243
|
+
box-shadow:
|
|
244
|
+
0 0 0 0.5px rgba(0, 0, 0, 0.07),
|
|
245
|
+
0 1px 2px rgba(0, 0, 0, 0.05),
|
|
246
|
+
0 8px 24px rgba(0, 0, 0, 0.06);
|
|
247
|
+
transition: margin-left 0.3s ease-out;
|
|
248
|
+
}
|
|
249
|
+
html[data-appearance="arc"].dark [data-stx-content] {
|
|
250
|
+
background: #0a0a0a;
|
|
251
|
+
box-shadow:
|
|
252
|
+
0 0 0 0.5px rgba(255, 255, 255, 0.08),
|
|
253
|
+
0 8px 24px rgba(0, 0, 0, 0.5);
|
|
254
|
+
}
|
|
255
|
+
|
|
256
|
+
/* An overlay scrollbar inside the card, so the rounded corner is not cut by a
|
|
257
|
+
full-width native gutter. */
|
|
258
|
+
html[data-appearance="arc"] [data-stx-content] {
|
|
259
|
+
scrollbar-width: thin;
|
|
260
|
+
scrollbar-color: rgba(0, 0, 0, 0.2) transparent;
|
|
261
|
+
}
|
|
262
|
+
html[data-appearance="arc"] [data-stx-content]::-webkit-scrollbar {
|
|
263
|
+
width: 8px;
|
|
264
|
+
}
|
|
265
|
+
html[data-appearance="arc"] [data-stx-content]::-webkit-scrollbar-thumb {
|
|
266
|
+
border: 2px solid transparent;
|
|
267
|
+
border-radius: 8px;
|
|
268
|
+
background-clip: content-box;
|
|
269
|
+
background-color: rgba(0, 0, 0, 0.2);
|
|
270
|
+
}
|
|
271
|
+
html[data-appearance="arc"] [data-stx-content]::-webkit-scrollbar-track {
|
|
272
|
+
background: transparent;
|
|
273
|
+
}
|
|
274
|
+
html[data-appearance="arc"].dark [data-stx-content] {
|
|
275
|
+
scrollbar-color: rgba(255, 255, 255, 0.25) transparent;
|
|
276
|
+
}
|
|
277
|
+
html[data-appearance="arc"].dark [data-stx-content]::-webkit-scrollbar-thumb {
|
|
278
|
+
background-color: rgba(255, 255, 255, 0.25);
|
|
279
|
+
}
|
|
280
|
+
|
|
281
|
+
/* On narrow viewports the sidebar is hidden entirely, so the card would float
|
|
282
|
+
on nothing. Return it to a flush pane. */
|
|
283
|
+
@media (max-width: 1023px) {
|
|
284
|
+
html[data-appearance="arc"],
|
|
285
|
+
html[data-appearance="arc"] body {
|
|
286
|
+
height: auto;
|
|
287
|
+
overflow: visible;
|
|
288
|
+
}
|
|
289
|
+
html[data-appearance="arc"] [data-stx-content] {
|
|
290
|
+
margin-top: 0;
|
|
291
|
+
margin-right: 0;
|
|
292
|
+
margin-bottom: 0;
|
|
293
|
+
height: auto;
|
|
294
|
+
min-height: 100vh;
|
|
295
|
+
overflow-y: visible;
|
|
296
|
+
border-radius: 0;
|
|
297
|
+
box-shadow: none;
|
|
140
298
|
}
|
|
299
|
+
}
|
|
141
300
|
|
|
142
|
-
|
|
143
|
-
|
|
144
|
-
|
|
145
|
-
|
|
301
|
+
/* The panel is the body; the pane just holds rows. */
|
|
302
|
+
html[data-appearance="arc"] [data-stx-sidebar] {
|
|
303
|
+
background: transparent;
|
|
304
|
+
backdrop-filter: none;
|
|
305
|
+
-webkit-backdrop-filter: none;
|
|
306
|
+
color: #2c2a28;
|
|
307
|
+
}
|
|
308
|
+
html[data-appearance="arc"].dark [data-stx-sidebar] {
|
|
309
|
+
color: #ededf0;
|
|
310
|
+
}
|
|
311
|
+
/* Liquid Glass belongs to the macOS material. Arc's panel is flat. */
|
|
312
|
+
html[data-appearance="arc"] .stx-sidebar-rim {
|
|
313
|
+
display: none;
|
|
314
|
+
}
|
|
315
|
+
|
|
316
|
+
/* Rows: discrete cards with a 2px gutter, not AppKit's contiguous run. */
|
|
317
|
+
html[data-appearance="arc"] [data-sidebar-row] {
|
|
318
|
+
height: 32px;
|
|
319
|
+
}
|
|
320
|
+
html[data-appearance="arc"] [data-sidebar-item] {
|
|
321
|
+
height: 30px;
|
|
322
|
+
border-radius: 8px;
|
|
323
|
+
color: inherit;
|
|
324
|
+
}
|
|
325
|
+
html[data-appearance="arc"] [data-sidebar-item]:hover {
|
|
326
|
+
background: rgba(255, 255, 255, 0.55);
|
|
327
|
+
}
|
|
328
|
+
html[data-appearance="arc"].dark [data-sidebar-item]:hover {
|
|
329
|
+
background: rgba(255, 255, 255, 0.08);
|
|
330
|
+
}
|
|
331
|
+
|
|
332
|
+
/* Selection: a raised white card, in both window states. Matching the
|
|
333
|
+
component's own selector shape is what gives these the specificity to win. */
|
|
334
|
+
html[data-appearance="arc"] [data-sidebar-selection="accent"][data-window-key="true"] [data-sidebar-item][data-active="true"],
|
|
335
|
+
html[data-appearance="arc"] [data-sidebar-selection="accent"][data-window-key="false"] [data-sidebar-item][data-active="true"],
|
|
336
|
+
html[data-appearance="arc"] [data-sidebar-selection="accent"][data-window-key="true"] [data-sidebar-item][data-active="true"]:hover {
|
|
337
|
+
background: #fff;
|
|
338
|
+
color: #1b1a19;
|
|
339
|
+
font-weight: 500;
|
|
340
|
+
box-shadow:
|
|
341
|
+
0 0 0 1px rgba(0, 0, 0, 0.05),
|
|
342
|
+
0 1px 2px rgba(0, 0, 0, 0.08);
|
|
343
|
+
}
|
|
344
|
+
html[data-appearance="arc"].dark [data-sidebar-selection="accent"][data-window-key="true"] [data-sidebar-item][data-active="true"],
|
|
345
|
+
html[data-appearance="arc"].dark [data-sidebar-selection="accent"][data-window-key="false"] [data-sidebar-item][data-active="true"],
|
|
346
|
+
html[data-appearance="arc"].dark [data-sidebar-selection="accent"][data-window-key="true"] [data-sidebar-item][data-active="true"]:hover {
|
|
347
|
+
background: rgba(255, 255, 255, 0.14);
|
|
348
|
+
color: #fff;
|
|
349
|
+
box-shadow:
|
|
350
|
+
0 0 0 1px rgba(255, 255, 255, 0.08),
|
|
351
|
+
0 1px 2px rgba(0, 0, 0, 0.35);
|
|
352
|
+
}
|
|
353
|
+
|
|
354
|
+
/* The icon, count and chevron turn white on a macOS accent fill. On a white
|
|
355
|
+
card they must not — they keep their own tint, the same as an idle row. */
|
|
356
|
+
html[data-appearance="arc"] [data-sidebar-selection="accent"][data-window-key="true"] [data-sidebar-item][data-active="true"] [data-sidebar-icon],
|
|
357
|
+
html[data-appearance="arc"] [data-sidebar-selection="accent"][data-window-key="true"] [data-sidebar-item][data-active="true"] [data-sidebar-chevron] {
|
|
358
|
+
color: var(--stx-sidebar-icon, currentColor);
|
|
359
|
+
}
|
|
360
|
+
html[data-appearance="arc"] [data-sidebar-selection="accent"][data-window-key="true"] [data-sidebar-item][data-active="true"] [data-sidebar-count] {
|
|
361
|
+
color: rgba(44, 42, 40, 0.45);
|
|
362
|
+
}
|
|
363
|
+
html[data-appearance="arc"].dark [data-sidebar-selection="accent"][data-window-key="true"] [data-sidebar-item][data-active="true"] [data-sidebar-count] {
|
|
364
|
+
color: rgba(237, 237, 240, 0.45);
|
|
365
|
+
}
|
|
366
|
+
|
|
367
|
+
/* Section headers: sentence case and quieter than the macOS uppercase strip. */
|
|
368
|
+
html[data-appearance="arc"] [data-sidebar-section-header],
|
|
369
|
+
html[data-appearance="arc"] [data-sidebar-section] > div:first-child {
|
|
370
|
+
opacity: 0.55;
|
|
371
|
+
}
|
|
372
|
+
|
|
373
|
+
/* A viewer can hide navigation sections they never use. Kept as CSS on an
|
|
374
|
+
attribute rather than a DOM removal so the rows stay hydrated and a later
|
|
375
|
+
change re-shows them without a re-render — the same approach the role
|
|
376
|
+
filter above uses. */
|
|
377
|
+
[data-sidebar-section][data-viewer-hidden="true"] {
|
|
378
|
+
display: none;
|
|
379
|
+
}
|
|
380
|
+
</style>
|
|
146
381
|
|
|
147
382
|
<script client>
|
|
148
383
|
// Global toast queue. Composables across the dashboard call
|
|
@@ -152,7 +387,13 @@ body {
|
|
|
152
387
|
// layout so every dashboard page picks it up without opting in.
|
|
153
388
|
// `~/`-anchored for the same reason as the sidebar import above.
|
|
154
389
|
import { useToasts, dismissToast } from '~/storage/framework/defaults/functions/toasts'
|
|
390
|
+
import { ensureCraftNativeSidebarMarker, useCraftSidebarSelection } from '~/storage/framework/defaults/functions/craft'
|
|
391
|
+
import { readStoredAppearance, useAppearance } from '~/storage/framework/defaults/views/dashboard/composables/useAppearance'
|
|
392
|
+
import { authStore } from '~/storage/framework/defaults/views/dashboard/stores/auth'
|
|
393
|
+
import { kanbanStore } from '~/storage/framework/defaults/views/dashboard/stores/kanban'
|
|
394
|
+
import { rbacStore } from '~/storage/framework/defaults/views/dashboard/stores/rbac'
|
|
155
395
|
const { toasts } = useToasts()
|
|
396
|
+
registerStoresClient({ authStore, kanbanStore, rbacStore })
|
|
156
397
|
|
|
157
398
|
// Helpers below return COMPLETE class strings (static + dynamic) and are
|
|
158
399
|
// applied via `:class="fn(...)"` because stx's `{{ ... }}` placeholder is
|
|
@@ -178,35 +419,38 @@ const toastWrapperClass = (type) => `pointer-events-auto overflow-hidden bg-whit
|
|
|
178
419
|
// where `/api/dashboard/*` sits behind auth, the endpoint returns real role
|
|
179
420
|
// data and the filter hides what the viewer can't reach.
|
|
180
421
|
//
|
|
181
|
-
//
|
|
182
|
-
//
|
|
183
|
-
//
|
|
184
|
-
|
|
185
|
-
const
|
|
186
|
-
|
|
187
|
-
const
|
|
188
|
-
|
|
189
|
-
|
|
190
|
-
|
|
191
|
-
|
|
192
|
-
|
|
193
|
-
|
|
194
|
-
|
|
195
|
-
|
|
196
|
-
|
|
422
|
+
// stx bridges referenced <script server> exports into this client scope.
|
|
423
|
+
// Keep this as a normal identifier so imported client code remains valid
|
|
424
|
+
// TypeScript throughout the bundling pipeline.
|
|
425
|
+
const sidebarRoles = sidebarRoleMap
|
|
426
|
+
const auth = authStore
|
|
427
|
+
const route = useRoute()
|
|
428
|
+
const sidebarHost = useRef('dashboardSidebarHost')
|
|
429
|
+
const mobileSidebarHost = useRef('dashboardMobileSidebarHost')
|
|
430
|
+
let removeCraftSidebarSelection = () => {}
|
|
431
|
+
ensureCraftNativeSidebarMarker()
|
|
432
|
+
auth.load()
|
|
433
|
+
|
|
434
|
+
function sidebarPanes() {
|
|
435
|
+
return [sidebarHost.current, mobileSidebarHost.current]
|
|
436
|
+
.map(host => host?.querySelector('[data-stx-sidebar]'))
|
|
437
|
+
.filter(Boolean)
|
|
438
|
+
}
|
|
197
439
|
|
|
198
440
|
function applyRoleFilter() {
|
|
199
|
-
const roleList = auth
|
|
200
|
-
const unauth = auth
|
|
201
|
-
for (const
|
|
202
|
-
const
|
|
203
|
-
|
|
204
|
-
|
|
205
|
-
|
|
206
|
-
|
|
207
|
-
|
|
208
|
-
|
|
209
|
-
|
|
441
|
+
const roleList = auth.roles()
|
|
442
|
+
const unauth = auth.unauthenticated()
|
|
443
|
+
for (const pane of sidebarPanes()) {
|
|
444
|
+
for (const [itemId, required] of Object.entries(sidebarRoles)) {
|
|
445
|
+
const row = pane.querySelector(`[data-sidebar-row][data-item-id="${itemId}"]`)
|
|
446
|
+
if (!row) continue
|
|
447
|
+
// Unauthenticated viewers see everything, which keeps the dev dashboard
|
|
448
|
+
// usable. Once authenticated, role membership is authoritative. CSS
|
|
449
|
+
// `display: none` keeps the DOM intact for SPA nav, so a later role
|
|
450
|
+
// change can re-show the row without a re-render.
|
|
451
|
+
const allowed = unauth || required.some(r => roleList.includes(r))
|
|
452
|
+
row.style.display = allowed ? '' : 'none'
|
|
453
|
+
}
|
|
210
454
|
}
|
|
211
455
|
}
|
|
212
456
|
|
|
@@ -215,134 +459,205 @@ effect(() => {
|
|
|
215
459
|
// including the first run after the auth fetch resolves.
|
|
216
460
|
applyRoleFilter()
|
|
217
461
|
})
|
|
218
|
-
</script>
|
|
219
|
-
|
|
220
|
-
<Sidebar
|
|
221
|
-
:sections="sidebarSections"
|
|
222
|
-
theme="macos"
|
|
223
|
-
width="250"
|
|
224
|
-
placement="fixed"
|
|
225
|
-
persist-key="stacks-dashboard-sidebar"
|
|
226
|
-
shell-selector="[data-stx-content]"
|
|
227
|
-
>
|
|
228
|
-
<template #header>
|
|
229
|
-
<!-- Chrome strip. The traffic lights are native (the Craft window is
|
|
230
|
-
titlebarHidden), so this reserves their space and acts as the window
|
|
231
|
-
drag region; in a plain browser it is the same empty strip macOS
|
|
232
|
-
sidebars carry above their first row. -->
|
|
233
|
-
<SidebarHeader :show-window-controls="false" />
|
|
234
|
-
</template>
|
|
235
|
-
</Sidebar>
|
|
236
462
|
|
|
237
|
-
|
|
238
|
-
//
|
|
239
|
-
// navigation, keeping the highlight in sync with the real route, and Craft's
|
|
240
|
-
// native selection events.
|
|
463
|
+
// ---------------------------------------------------------------------------
|
|
464
|
+
// Appearance (Settings → Appearance).
|
|
241
465
|
//
|
|
242
|
-
//
|
|
243
|
-
//
|
|
244
|
-
//
|
|
245
|
-
//
|
|
246
|
-
//
|
|
247
|
-
|
|
248
|
-
|
|
249
|
-
|
|
250
|
-
|
|
251
|
-
|
|
466
|
+
// The inline bootstrap at the top of this layout already stamped the root
|
|
467
|
+
// attributes for the first paint. These effects keep them in step afterwards:
|
|
468
|
+
// re-running `applyAppearance` whenever a preference signal changes is what
|
|
469
|
+
// makes the settings page feel immediate — the shell restyles under the user
|
|
470
|
+
// while they are still looking at the picker, with no reload and no navigation.
|
|
471
|
+
// ---------------------------------------------------------------------------
|
|
472
|
+
|
|
473
|
+
const appearance = useAppearance()
|
|
474
|
+
|
|
475
|
+
effect(() => {
|
|
476
|
+
// Reading the signals here is what subscribes this effect to them; `apply`
|
|
477
|
+
// reads them again internally, which is harmless and keeps it callable from
|
|
478
|
+
// anywhere.
|
|
479
|
+
appearance.sidebarStyle()
|
|
480
|
+
appearance.colorMode()
|
|
481
|
+
appearance.apply()
|
|
482
|
+
})
|
|
483
|
+
|
|
484
|
+
// Section visibility is applied here rather than filtered out of
|
|
485
|
+
// `sidebarSections` server-side, so a viewer toggling one gets the row back
|
|
486
|
+
// instantly instead of on the next full render.
|
|
487
|
+
function applySectionVisibility() {
|
|
488
|
+
// The signal is read BEFORE the panes are looked up, and that order is the
|
|
489
|
+
// whole point. Read after an early return, it never gets tracked on the first
|
|
490
|
+
// pass — the panes are not mounted when effects first run — so the effect
|
|
491
|
+
// ends up with no dependency and never runs again. The toggle then appears to
|
|
492
|
+
// do nothing until a reload.
|
|
493
|
+
const hidden = appearance.hiddenSections()
|
|
494
|
+
for (const pane of sidebarPanes()) {
|
|
495
|
+
for (const section of pane.querySelectorAll('[data-sidebar-section]')) {
|
|
496
|
+
const id = section.dataset.sectionId || ''
|
|
497
|
+
section.setAttribute('data-viewer-hidden', String(hidden.includes(id)))
|
|
498
|
+
}
|
|
499
|
+
}
|
|
500
|
+
}
|
|
501
|
+
|
|
502
|
+
// The effect covers later toggles. It cannot cover the FIRST paint on its own:
|
|
503
|
+
// effects run before the layout's refs are populated, so the very first pass
|
|
504
|
+
// finds no panes, and on a fresh load the preference never changes afterwards —
|
|
505
|
+
// leaving hidden sections visible until something else happens to touch the
|
|
506
|
+
// signal. `onMount` below runs it again once the panes exist.
|
|
507
|
+
effect(applySectionVisibility)
|
|
508
|
+
|
|
509
|
+
|
|
510
|
+
// Another tab changed the preferences. `storage` only fires in OTHER tabs, so
|
|
511
|
+
// this cannot loop back on the tab that made the change. The store's own
|
|
512
|
+
// persistence writes but does not watch, so the re-read is explicit.
|
|
513
|
+
useEventListener('storage', (event) => {
|
|
514
|
+
if (event?.key !== 'stacks-dashboard-appearance') return
|
|
515
|
+
const next = readStoredAppearance()
|
|
516
|
+
appearance.sidebarStyle.set(next.sidebarStyle)
|
|
517
|
+
appearance.colorMode.set(next.colorMode)
|
|
518
|
+
appearance.hiddenSections.set(next.hiddenSections)
|
|
519
|
+
appearance.apply()
|
|
520
|
+
})
|
|
521
|
+
|
|
522
|
+
function normalizeRoutePath(path) {
|
|
523
|
+
return (path || '/').replace(/\/+$/, '') || '/'
|
|
524
|
+
}
|
|
525
|
+
|
|
526
|
+
// Highlight the current route. Longest-prefix matching keeps a detail page
|
|
527
|
+
// such as /commerce/products/42 attached to its /commerce/products row while
|
|
528
|
+
// preventing /health from matching /health-check.
|
|
529
|
+
function syncActiveSidebarRow(url) {
|
|
530
|
+
let path = route.path
|
|
531
|
+
if (url) {
|
|
532
|
+
try {
|
|
533
|
+
path = new URL(url, 'https://stacks.local').pathname
|
|
534
|
+
}
|
|
535
|
+
catch {}
|
|
252
536
|
}
|
|
253
537
|
|
|
254
|
-
|
|
255
|
-
|
|
256
|
-
|
|
257
|
-
|
|
258
|
-
|
|
259
|
-
|
|
260
|
-
|
|
261
|
-
|
|
262
|
-
|
|
263
|
-
|
|
264
|
-
|
|
265
|
-
|
|
266
|
-
|
|
267
|
-
var links = rows(pane)
|
|
268
|
-
for (var i = 0; i < links.length; i++) {
|
|
269
|
-
var href = links[i].getAttribute('href') || ''
|
|
270
|
-
if (href.indexOf('http') === 0) continue
|
|
271
|
-
var h = norm(href)
|
|
272
|
-
// `${cur}/`.startsWith(`${h}/`) catches an exact hit and any child path,
|
|
273
|
-
// while the trailing slash stops /health matching /health-check.
|
|
274
|
-
if ((cur + '/').indexOf(h + '/') === 0 && h.length > bestLen) {
|
|
275
|
-
best = links[i]
|
|
276
|
-
bestLen = h.length
|
|
538
|
+
const currentPath = normalizeRoutePath(path)
|
|
539
|
+
for (const pane of sidebarPanes()) {
|
|
540
|
+
let bestMatch = null
|
|
541
|
+
let bestLength = -1
|
|
542
|
+
const links = pane.querySelectorAll('a[data-sidebar-item][href]')
|
|
543
|
+
|
|
544
|
+
for (const link of links) {
|
|
545
|
+
const href = link.getAttribute('href') || ''
|
|
546
|
+
if (href.startsWith('http')) continue
|
|
547
|
+
const candidatePath = normalizeRoutePath(href)
|
|
548
|
+
if (`${currentPath}/`.startsWith(`${candidatePath}/`) && candidatePath.length > bestLength) {
|
|
549
|
+
bestMatch = link
|
|
550
|
+
bestLength = candidatePath.length
|
|
277
551
|
}
|
|
278
552
|
}
|
|
279
|
-
|
|
280
|
-
for (
|
|
281
|
-
|
|
282
|
-
|
|
553
|
+
|
|
554
|
+
for (const active of pane.querySelectorAll('[data-sidebar-item][data-active="true"]')) {
|
|
555
|
+
active.removeAttribute('data-active')
|
|
556
|
+
active.removeAttribute('aria-current')
|
|
283
557
|
}
|
|
284
|
-
|
|
285
|
-
|
|
286
|
-
|
|
558
|
+
|
|
559
|
+
if (bestMatch) {
|
|
560
|
+
bestMatch.setAttribute('data-active', 'true')
|
|
561
|
+
bestMatch.setAttribute('aria-current', 'page')
|
|
287
562
|
}
|
|
288
563
|
}
|
|
564
|
+
}
|
|
565
|
+
|
|
566
|
+
function handleSidebarItemClick(payload) {
|
|
567
|
+
const href = payload?.item?.href
|
|
568
|
+
if (!href || href.startsWith('http')) return
|
|
569
|
+
payload.event?.preventDefault()
|
|
570
|
+
navigate(href)
|
|
571
|
+
}
|
|
572
|
+
|
|
573
|
+
function syncMobileSidebar() {
|
|
574
|
+
applyRoleFilter()
|
|
575
|
+
syncActiveSidebarRow()
|
|
576
|
+
}
|
|
289
577
|
|
|
290
|
-
|
|
291
|
-
|
|
292
|
-
|
|
293
|
-
|
|
294
|
-
|
|
295
|
-
|
|
296
|
-
|
|
297
|
-
|
|
298
|
-
if (
|
|
299
|
-
pane.__sidebarWired = true
|
|
300
|
-
|
|
301
|
-
// Follow EVERY route change, not just sidebar clicks. navigate() dispatches
|
|
302
|
-
// stx:navigate (content links, programmatic navigate, and popstate
|
|
303
|
-
// back/forward all route through it), so the highlight tracks the real
|
|
304
|
-
// route instead of only updating when a sidebar row is clicked.
|
|
305
|
-
window.addEventListener('stx:navigate', function (event) {
|
|
306
|
-
syncActive(event && event.detail && event.detail.url)
|
|
307
|
-
})
|
|
308
|
-
|
|
309
|
-
// SPA-navigate sidebar rows; fall back to full loads when the router isn't
|
|
310
|
-
// available or the target is external. The component already moves
|
|
311
|
-
// `data-active` on click, and the stx:navigate listener re-syncs after.
|
|
312
|
-
pane.addEventListener('click', function (event) {
|
|
313
|
-
var link = event.target.closest('a[data-sidebar-item]')
|
|
314
|
-
if (!link) return
|
|
315
|
-
// Disclosure chevrons live inside the row and only expand a subtree.
|
|
316
|
-
if (event.target.closest('[data-sidebar-disclosure]')) return
|
|
317
|
-
var href = link.getAttribute('href')
|
|
318
|
-
if (!href || href.indexOf('http') === 0 || typeof navigate !== 'function') return
|
|
319
|
-
event.preventDefault()
|
|
578
|
+
function handleCraftSidebarSelection(event) {
|
|
579
|
+
if (!event?.itemId) return
|
|
580
|
+
for (const pane of sidebarPanes()) {
|
|
581
|
+
const row = [...pane.querySelectorAll('[data-sidebar-row]')].find(
|
|
582
|
+
candidate => candidate.dataset.itemId === event.itemId,
|
|
583
|
+
)
|
|
584
|
+
const link = row?.querySelector('a[data-sidebar-item][href]')
|
|
585
|
+
const href = link?.getAttribute('href')
|
|
586
|
+
if (href) {
|
|
320
587
|
navigate(href)
|
|
321
|
-
|
|
322
|
-
|
|
323
|
-
// Craft native sidebar selection. When a Craft build installs a real
|
|
324
|
-
// NSOutlineView, it reports the selected row's id; resolve that back to a
|
|
325
|
-
// route from the rendered markup rather than a hand-maintained id-to-URL
|
|
326
|
-
// table, so the two can never drift apart.
|
|
327
|
-
window.craft = window.craft || {}
|
|
328
|
-
window.craft._sidebarSelectHandler = function (event) {
|
|
329
|
-
var id = event && event.itemId
|
|
330
|
-
if (!id) return
|
|
331
|
-
var row = pane.querySelector('[data-sidebar-row][data-item-id="' + id + '"] a[data-sidebar-item][href]')
|
|
332
|
-
var href = row && row.getAttribute('href')
|
|
333
|
-
if (href) navigate(href)
|
|
588
|
+
return
|
|
334
589
|
}
|
|
335
590
|
}
|
|
591
|
+
}
|
|
592
|
+
|
|
593
|
+
function attachCraftSidebarSelection() {
|
|
594
|
+
removeCraftSidebarSelection()
|
|
595
|
+
removeCraftSidebarSelection = useCraftSidebarSelection(handleCraftSidebarSelection)
|
|
596
|
+
}
|
|
336
597
|
|
|
337
|
-
|
|
338
|
-
|
|
339
|
-
|
|
598
|
+
useEventListener('stx:navigate', event => syncActiveSidebarRow(event?.detail?.url))
|
|
599
|
+
useEventListener('stx:hydrated', () => syncActiveSidebarRow(), { once: true })
|
|
600
|
+
useEventListener('craft:ready', () => {
|
|
601
|
+
ensureCraftNativeSidebarMarker()
|
|
602
|
+
attachCraftSidebarSelection()
|
|
603
|
+
})
|
|
604
|
+
|
|
605
|
+
onMount(() => {
|
|
606
|
+
syncActiveSidebarRow()
|
|
607
|
+
applyRoleFilter()
|
|
608
|
+
applySectionVisibility()
|
|
609
|
+
attachCraftSidebarSelection()
|
|
610
|
+
})
|
|
611
|
+
|
|
612
|
+
onDestroy(() => {
|
|
613
|
+
removeCraftSidebarSelection()
|
|
614
|
+
})
|
|
340
615
|
</script>
|
|
341
616
|
|
|
617
|
+
<div ref="dashboardSidebarHost" data-dashboard-web-sidebar>
|
|
618
|
+
<Sidebar
|
|
619
|
+
:sections="sidebarSections"
|
|
620
|
+
theme="macos"
|
|
621
|
+
width="250"
|
|
622
|
+
placement="fixed"
|
|
623
|
+
persist-key="stacks-dashboard-sidebar"
|
|
624
|
+
shell-selector="[data-stx-content]"
|
|
625
|
+
:follow-system-appearance="false"
|
|
626
|
+
@itemClick="handleSidebarItemClick($event)"
|
|
627
|
+
>
|
|
628
|
+
<template #header>
|
|
629
|
+
<!-- Chrome strip. The traffic lights are native (the Craft window is
|
|
630
|
+
titlebarHidden), so this reserves their space and acts as the window
|
|
631
|
+
drag region; in a plain browser it is the same empty strip macOS
|
|
632
|
+
sidebars carry above their first row. -->
|
|
633
|
+
<SidebarHeader :show-window-controls="false" />
|
|
634
|
+
</template>
|
|
635
|
+
</Sidebar>
|
|
636
|
+
</div>
|
|
637
|
+
|
|
638
|
+
<MobileSidebar @open="syncMobileSidebar()">
|
|
639
|
+
<div ref="dashboardMobileSidebarHost" class="h-full">
|
|
640
|
+
<Sidebar
|
|
641
|
+
:sections="sidebarSections"
|
|
642
|
+
theme="macos"
|
|
643
|
+
width="320"
|
|
644
|
+
placement="static"
|
|
645
|
+
className="h-full max-w-full"
|
|
646
|
+
@itemClick="handleSidebarItemClick($event)"
|
|
647
|
+
>
|
|
648
|
+
<template #header>
|
|
649
|
+
<SidebarHeader :show-window-controls="false" />
|
|
650
|
+
</template>
|
|
651
|
+
</Sidebar>
|
|
652
|
+
</div>
|
|
653
|
+
</MobileSidebar>
|
|
654
|
+
|
|
342
655
|
<main data-stx-content>
|
|
343
656
|
@slot('content')
|
|
344
657
|
</main>
|
|
345
658
|
|
|
659
|
+
<GlobalSearch />
|
|
660
|
+
|
|
346
661
|
<!-- Global toast container. Top-right stack, newest at the bottom.
|
|
347
662
|
Pointer-events-none on the wrapper + auto on individual toasts so
|
|
348
663
|
surrounding UI stays clickable while a toast is up. -->
|
|
@@ -353,15 +668,11 @@ effect(() => {
|
|
|
353
668
|
<div :class="toastIconClass(toast.type)"></div>
|
|
354
669
|
<div class="flex-1 min-w-0">
|
|
355
670
|
<p class="font-medium text-gray-900 text-sm dark:text-neutral-100">{{ toast.title }}</p>
|
|
356
|
-
|
|
357
|
-
<p class="mt-1 break-words text-gray-500 text-xs dark:text-neutral-400">{{ toast.detail }}</p>
|
|
358
|
-
@endif
|
|
671
|
+
<p :if="toast.detail" class="mt-1 break-words text-gray-500 text-xs dark:text-neutral-400">{{ toast.detail }}</p>
|
|
359
672
|
</div>
|
|
360
|
-
<
|
|
361
|
-
<
|
|
362
|
-
|
|
363
|
-
</svg>
|
|
364
|
-
</button>
|
|
673
|
+
<Button variant="ghost" size="xs" iconOnly ariaLabel="Dismiss notification" @click="dismissToast(toast.id)">
|
|
674
|
+
<span aria-hidden="true" class="h-4 w-4 i-hugeicons-cancel-01"></span>
|
|
675
|
+
</Button>
|
|
365
676
|
</div>
|
|
366
677
|
</div>
|
|
367
678
|
</template>
|