@stacksjs/defaults 0.70.54
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/LICENSE.md +21 -0
- package/README.md +2 -0
- package/package.json +20 -0
- package/resources/assets/fonts/013717e9.woff +0 -0
- package/resources/assets/fonts/03355817.woff2 +0 -0
- package/resources/assets/fonts/0380de7e.woff2 +0 -0
- package/resources/assets/fonts/0ba5d32a.woff +0 -0
- package/resources/assets/fonts/0bd57ddf.woff2 +0 -0
- package/resources/assets/fonts/19de0a60.woff2 +0 -0
- package/resources/assets/fonts/20b87e84.woff +0 -0
- package/resources/assets/fonts/4bbc67e1.woff +0 -0
- package/resources/assets/fonts/576fb0d7.woff +0 -0
- package/resources/assets/fonts/5ea10ee5.woff2 +0 -0
- package/resources/assets/fonts/6413fc0a.woff +0 -0
- package/resources/assets/fonts/72c114cf.woff +0 -0
- package/resources/assets/fonts/73c57e73.woff2 +0 -0
- package/resources/assets/fonts/813dca6c.woff +0 -0
- package/resources/assets/fonts/8a9b0995.woff2 +0 -0
- package/resources/assets/fonts/90b4832f.woff +0 -0
- package/resources/assets/fonts/9394ab85.woff2 +0 -0
- package/resources/assets/fonts/9b3c7d7f.woff2 +0 -0
- package/resources/assets/fonts/Monaco.ttf +0 -0
- package/resources/assets/fonts/b1b36d74.woff +0 -0
- package/resources/assets/fonts/b5d74798.woff2 +0 -0
- package/resources/assets/fonts/b9f81a4d.woff +0 -0
- package/resources/assets/fonts/c9784008.woff2 +0 -0
- package/resources/assets/fonts/cf692227.woff +0 -0
- package/resources/assets/fonts/d1c6ab51.woff2 +0 -0
- package/resources/assets/fonts/e2eb62fc.woff +0 -0
- package/resources/assets/fonts/fe21f8d8.woff2 +0 -0
- package/resources/assets/fonts/nps/CampmateScript-Regular.woff2 +0 -0
- package/resources/assets/fonts/nps/NPS_2026-variable.woff2 +0 -0
- package/resources/assets/fonts/nps/RedwoodSerif-Regular.woff2 +0 -0
- package/resources/assets/fonts/nps/SequoiaSans-Regular.woff2 +0 -0
- package/resources/assets/fonts/nps/Switchback-Regular.woff2 +0 -0
- package/resources/assets/images/app-icon.png +0 -0
- package/resources/assets/images/bg-img.png +0 -0
- package/resources/assets/images/park-ridge.svg +15 -0
- package/resources/assets/images/topography.svg +1 -0
- package/resources/assets/scripts/main.ts +2153 -0
- package/resources/assets/styles/README.md +19 -0
- package/resources/assets/styles/docs/main.css +1 -0
- package/resources/assets/styles/docs/overrides.css +1 -0
- package/resources/assets/styles/docs/vars.css +8 -0
- package/resources/assets/styles/main.css +1419 -0
- package/resources/components/Button.stx +70 -0
- package/resources/components/Buttons/BaseButton.stx +39 -0
- package/resources/components/Buttons/Counter.stx +28 -0
- package/resources/components/Buttons/ToggleDark.stx +11 -0
- package/resources/components/Container.stx +10 -0
- package/resources/components/Dashboard/.gitkeep +0 -0
- package/resources/components/Dashboard/Auth/ForgotPassword.stx +127 -0
- package/resources/components/Dashboard/Auth/Login.stx +212 -0
- package/resources/components/Dashboard/Auth/Register.stx +306 -0
- package/resources/components/Dashboard/Avatar.stx +123 -0
- package/resources/components/Dashboard/Billing/ActivePlan.stx +57 -0
- package/resources/components/Dashboard/Billing/CardBrands.stx +32 -0
- package/resources/components/Dashboard/Billing/CardForm.stx +34 -0
- package/resources/components/Dashboard/Billing/OneTimePayment.stx +28 -0
- package/resources/components/Dashboard/Billing/PaymentForm.stx +33 -0
- package/resources/components/Dashboard/Billing/PaymentMethod.stx +66 -0
- package/resources/components/Dashboard/Billing/PaymentMethodList.stx +52 -0
- package/resources/components/Dashboard/Billing/Plans.stx +136 -0
- package/resources/components/Dashboard/Buttons/AppButton.stx +48 -0
- package/resources/components/Dashboard/Buttons/IconButton.stx +20 -0
- package/resources/components/Dashboard/Card.stx +78 -0
- package/resources/components/Dashboard/Chart.stx +75 -0
- package/resources/components/Dashboard/CodeEditor.stx +41 -0
- package/resources/components/Dashboard/Commerce/BulkActionBar.stx +70 -0
- package/resources/components/Dashboard/Commerce/CategoriesTable.stx +133 -0
- package/resources/components/Dashboard/Commerce/CouponsTable.stx +161 -0
- package/resources/components/Dashboard/Commerce/CustomersTable.stx +142 -0
- package/resources/components/Dashboard/Commerce/Delivery/DeliveryRoutesTable.stx +80 -0
- package/resources/components/Dashboard/Commerce/Delivery/DigitalDeliveryTable.stx +85 -0
- package/resources/components/Dashboard/Commerce/Delivery/DriversTable.stx +99 -0
- package/resources/components/Dashboard/Commerce/Delivery/LicenseKeysTable.stx +92 -0
- package/resources/components/Dashboard/Commerce/Delivery/LicenseTemplatesTable.stx +88 -0
- package/resources/components/Dashboard/Commerce/Delivery/Pagination.stx +122 -0
- package/resources/components/Dashboard/Commerce/Delivery/SearchFilter.stx +23 -0
- package/resources/components/Dashboard/Commerce/Delivery/ShippingMethodsTable.stx +80 -0
- package/resources/components/Dashboard/Commerce/Delivery/ShippingRatesTable.stx +59 -0
- package/resources/components/Dashboard/Commerce/Delivery/ShippingZonesTable.stx +71 -0
- package/resources/components/Dashboard/Commerce/Delivery/TabNavigation.stx +36 -0
- package/resources/components/Dashboard/Commerce/Forms/CouponsForm.stx +191 -0
- package/resources/components/Dashboard/Commerce/OrdersTable.stx +131 -0
- package/resources/components/Dashboard/Commerce/ProductsTable.stx +170 -0
- package/resources/components/Dashboard/CreateRecordModal.stx +363 -0
- package/resources/components/Dashboard/DashboardLayout.stx +155 -0
- package/resources/components/Dashboard/Deployments/ActivityFeed.stx +54 -0
- package/resources/components/Dashboard/Deployments/DeployScript.stx +23 -0
- package/resources/components/Dashboard/Deployments/DeploymentHistory.stx +97 -0
- package/resources/components/Dashboard/Deployments/DeploymentList.stx +94 -0
- package/resources/components/Dashboard/Deployments/LiveTerminalOutput.stx +18 -0
- package/resources/components/Dashboard/Elements/Dropdown.stx +57 -0
- package/resources/components/Dashboard/Email/EmailActivityChart.stx +111 -0
- package/resources/components/Dashboard/Email/EmailCompose.stx +72 -0
- package/resources/components/Dashboard/Email/EmailDetail.stx +105 -0
- package/resources/components/Dashboard/Email/EmailList.stx +117 -0
- package/resources/components/Dashboard/Email/EmailSearch.stx +40 -0
- package/resources/components/Dashboard/Email/EmailSidebar.stx +133 -0
- package/resources/components/Dashboard/GlobalSearch.stx +124 -0
- package/resources/components/Dashboard/MobileSidebar.stx +47 -0
- package/resources/components/Dashboard/Modals/BaseModal.stx +50 -0
- package/resources/components/Dashboard/Modals/Popups/Alert.stx +112 -0
- package/resources/components/Dashboard/Modals/Popups/Toast.stx +70 -0
- package/resources/components/Dashboard/Modals/ToastWrapper.stx +35 -0
- package/resources/components/Dashboard/Monitoring/ErrorDetailModal.stx +228 -0
- package/resources/components/Dashboard/Monitoring/ErrorsTable.stx +184 -0
- package/resources/components/Dashboard/Navbar.stx +194 -0
- package/resources/components/Dashboard/NavbarModern.stx +188 -0
- package/resources/components/Dashboard/NotificationErrorModal.stx +105 -0
- package/resources/components/Dashboard/NotificationStatusBadge.stx +20 -0
- package/resources/components/Dashboard/Pagination.stx +90 -0
- package/resources/components/Dashboard/Queue/QueueTable.stx +127 -0
- package/resources/components/Dashboard/Settings/Forms/AIForm.stx +126 -0
- package/resources/components/Dashboard/Settings/Forms/AnalyticsForm.stx +52 -0
- package/resources/components/Dashboard/Settings/Forms/AppForm.stx +157 -0
- package/resources/components/Dashboard/Settings/Forms/CLIForm.stx +66 -0
- package/resources/components/Dashboard/Settings/Forms/CacheForm.stx +253 -0
- package/resources/components/Dashboard/Settings/Forms/CloudForm.stx +441 -0
- package/resources/components/Dashboard/Settings/Forms/DNSForm.stx +307 -0
- package/resources/components/Dashboard/Settings/Forms/DatabaseForm.stx +168 -0
- package/resources/components/Dashboard/Settings/Forms/EmailForm.stx +100 -0
- package/resources/components/Dashboard/Settings/Forms/FileSystemForm.stx +259 -0
- package/resources/components/Dashboard/Settings/Forms/HashingForm.stx +119 -0
- package/resources/components/Dashboard/Settings/Forms/LibraryForm.stx +389 -0
- package/resources/components/Dashboard/Settings/Forms/QueueForm.stx +219 -0
- package/resources/components/Dashboard/Settings/Forms/SearchEngineForm.stx +48 -0
- package/resources/components/Dashboard/Settings/Forms/SecurityForm.stx +143 -0
- package/resources/components/Dashboard/Settings/Forms/ServicesForm.stx +194 -0
- package/resources/components/Dashboard/Settings/Forms/StorageForm.stx +191 -0
- package/resources/components/Dashboard/Settings/Forms/TeamsForm.stx +33 -0
- package/resources/components/Dashboard/Settings/SettingsFormManager.stx +181 -0
- package/resources/components/Dashboard/SettingsHeader.stx +88 -0
- package/resources/components/Dashboard/SettingsSidebar.stx +234 -0
- package/resources/components/Dashboard/Sidebar.stx +23 -0
- package/resources/components/Dashboard/SidebarModern.stx +249 -0
- package/resources/components/Dashboard/Skeleton/LoadingCard.stx +15 -0
- package/resources/components/Dashboard/Skeleton/LoadingDetails.stx +26 -0
- package/resources/components/Dashboard/Table.stx +82 -0
- package/resources/components/Dashboard/TerminalContainer.stx +97 -0
- package/resources/components/Dashboard/Tooltip.stx +166 -0
- package/resources/components/Dashboard/Transaction/index.stx +88 -0
- package/resources/components/Dashboard/UI/ActivityTable.stx +54 -0
- package/resources/components/Dashboard/UI/Avatar.stx +102 -0
- package/resources/components/Dashboard/UI/Badge.stx +66 -0
- package/resources/components/Dashboard/UI/Button.stx +73 -0
- package/resources/components/Dashboard/UI/Card.stx +51 -0
- package/resources/components/Dashboard/UI/ChartCard.stx +36 -0
- package/resources/components/Dashboard/UI/Checkbox.stx +74 -0
- package/resources/components/Dashboard/UI/ConfirmDialog.stx +74 -0
- package/resources/components/Dashboard/UI/DataTable.stx +45 -0
- package/resources/components/Dashboard/UI/Dropdown.stx +72 -0
- package/resources/components/Dashboard/UI/DropdownItem.stx +80 -0
- package/resources/components/Dashboard/UI/EmptyState.stx +50 -0
- package/resources/components/Dashboard/UI/FilterBar.stx +48 -0
- package/resources/components/Dashboard/UI/Input.stx +77 -0
- package/resources/components/Dashboard/UI/Modal.stx +75 -0
- package/resources/components/Dashboard/UI/PageHeader.stx +69 -0
- package/resources/components/Dashboard/UI/PageLayout.stx +84 -0
- package/resources/components/Dashboard/UI/Pagination.stx +126 -0
- package/resources/components/Dashboard/UI/QuickLinks.stx +31 -0
- package/resources/components/Dashboard/UI/RouterLink.stx +31 -0
- package/resources/components/Dashboard/UI/Select.stx +84 -0
- package/resources/components/Dashboard/UI/ServiceHealth.stx +38 -0
- package/resources/components/Dashboard/UI/StatsCard.stx +79 -0
- package/resources/components/Dashboard/UI/Table.stx +143 -0
- package/resources/components/Dashboard/UI/Tabs.stx +45 -0
- package/resources/components/Dashboard/UI/Textarea.stx +93 -0
- package/resources/components/Dashboard/UI/Toggle.stx +84 -0
- package/resources/components/Dashboard/UI/WindowControls.stx +135 -0
- package/resources/components/Dashboard/Widget.stx +89 -0
- package/resources/components/Dashboard/WindowControls.stx +119 -0
- package/resources/components/Dashboard/index.ts +106 -0
- package/resources/components/Docs/Demo/ComboboxCode.md +114 -0
- package/resources/components/Docs/Demo/ComboboxDemo.stx +91 -0
- package/resources/components/Docs/Demo/DialogCode.md +42 -0
- package/resources/components/Docs/Demo/DialogDemo.stx +76 -0
- package/resources/components/Docs/Demo/DocsPlayground.stx +39 -0
- package/resources/components/Docs/Demo/DropdownCode.md +109 -0
- package/resources/components/Docs/Demo/DropdownDemo.stx +82 -0
- package/resources/components/Docs/Demo/Hero.stx +100 -0
- package/resources/components/Docs/Demo/ListboxCode.md +87 -0
- package/resources/components/Docs/Demo/ListboxDemo.stx +59 -0
- package/resources/components/Docs/Demo/NotificationCode.md +173 -0
- package/resources/components/Docs/Demo/NotificationDemo.stx +99 -0
- package/resources/components/Docs/Demo/PopoverCode.md +161 -0
- package/resources/components/Docs/Demo/PopoverDemo.stx +96 -0
- package/resources/components/Docs/Demo/RadioGroupCode.md +98 -0
- package/resources/components/Docs/Demo/RadioGroupDemo.stx +53 -0
- package/resources/components/Docs/Demo/StepperCode.md +216 -0
- package/resources/components/Docs/Demo/StepperDemo.stx +137 -0
- package/resources/components/Docs/Demo/SwitchCode.md +24 -0
- package/resources/components/Docs/Demo/SwitchDemo.stx +28 -0
- package/resources/components/Docs/Home.stx +7 -0
- package/resources/components/Docs/HomeContributors.stx +23 -0
- package/resources/components/Docs/HomeSponsors.stx +17 -0
- package/resources/components/Docs/HomeTeam.stx +18 -0
- package/resources/components/Docs/TeamMember.stx +79 -0
- package/resources/components/Email/EmailButton.stx +32 -0
- package/resources/components/Email/EmailDivider.stx +20 -0
- package/resources/components/Email/EmailImage.stx +24 -0
- package/resources/components/Email/EmailLayout.stx +55 -0
- package/resources/components/Email/EmailLink.stx +22 -0
- package/resources/components/Email/EmailSection.stx +20 -0
- package/resources/components/Email/EmailText.stx +30 -0
- package/resources/components/Forum/ForumBreadcrumb.stx +38 -0
- package/resources/components/Forum/ForumCategory.stx +16 -0
- package/resources/components/Forum/ForumCategoryItem.stx +46 -0
- package/resources/components/Forum/ForumLayout.stx +36 -0
- package/resources/components/Forum/ForumPagination.stx +39 -0
- package/resources/components/Forum/ForumPost.stx +71 -0
- package/resources/components/Forum/ForumReplyForm.stx +76 -0
- package/resources/components/Forum/ForumSidebar.stx +86 -0
- package/resources/components/Forum/ForumTopicItem.stx +77 -0
- package/resources/components/Forum/ForumTopicList.stx +23 -0
- package/resources/components/HelloWorld.stx +253 -0
- package/resources/components/Logo.stx +10 -0
- package/resources/components/Marketing/CallToAction.stx +30 -0
- package/resources/components/Marketing/ComingSoon.stx +155 -0
- package/resources/components/Marketing/Faqs.stx +99 -0
- package/resources/components/Marketing/Feature.stx +32 -0
- package/resources/components/Marketing/Fields.stx +28 -0
- package/resources/components/Marketing/Footer.stx +33 -0
- package/resources/components/Marketing/Header.stx +51 -0
- package/resources/components/Marketing/Hero.stx +46 -0
- package/resources/components/Marketing/Layout.stx +26 -0
- package/resources/components/Marketing/NavLink.stx +13 -0
- package/resources/components/Marketing/Plan.stx +43 -0
- package/resources/components/Marketing/Pricing.stx +120 -0
- package/resources/components/Marketing/PrimaryFeatures.stx +80 -0
- package/resources/components/Marketing/PrimaryFeatures2.stx +98 -0
- package/resources/components/Marketing/SecondaryFeatures.stx +80 -0
- package/resources/components/Marketing/Testimonials.stx +120 -0
- package/resources/components/Pagination.stx +149 -0
- package/resources/components/Playground.stx +9 -0
- package/resources/components/README.md +87 -0
- package/resources/components/Storefront/AnnouncementBar.stx +17 -0
- package/resources/components/Storefront/CartDrawer.stx +227 -0
- package/resources/components/Storefront/CheckoutSteps.stx +50 -0
- package/resources/components/Storefront/Footer.stx +81 -0
- package/resources/components/Storefront/Header.stx +66 -0
- package/resources/components/Storefront/OrderSummary.stx +79 -0
- package/resources/components/Storefront/ProductCard.stx +63 -0
- package/resources/components/Storefront/ProductGallery.stx +88 -0
- package/resources/components/Storefront/QuantitySelector.stx +97 -0
- package/resources/components/index.ts +13 -0
- package/resources/emails/email-verification.stx +46 -0
- package/resources/emails/layouts/base.html +113 -0
- package/resources/emails/password-changed.stx +55 -0
- package/resources/emails/password-reset.stx +43 -0
- package/resources/emails/subscription-confirmation.stx +99 -0
- package/resources/emails/welcome.stx +48 -0
- package/resources/functions/README.md +28 -0
- package/resources/functions/counter.ts +13 -0
- package/resources/functions/dark.ts +4 -0
- package/resources/functions/dashboard/analytics.ts +238 -0
- package/resources/functions/dashboard/config-io.ts +316 -0
- package/resources/functions/dashboard/data.ts +375 -0
- package/resources/functions/dashboard/library.ts +250 -0
- package/resources/functions/dashboard/sidebar.ts +537 -0
- package/resources/functions/dashboard/system.ts +150 -0
- package/resources/layouts/403.stx +188 -0
- package/resources/layouts/404.stx +34 -0
- package/resources/layouts/README.md +14 -0
- package/resources/layouts/dashboard/default.stx +20 -0
- package/resources/layouts/dashboard/guest.stx +10 -0
- package/resources/layouts/default.stx +3 -0
- package/resources/layouts/maintenance.stx +11 -0
- package/resources/layouts/storefront.stx +73 -0
- package/resources/layouts/system-tray/default.stx +3 -0
- package/resources/modules/.gitkeep +0 -0
- package/resources/plugins/.gitkeep +0 -0
- package/resources/plugins/preloader.ts +308 -0
- package/resources/types/README.md +3 -0
- package/resources/views/cart.stx +149 -0
- package/resources/views/checkout/contact.stx +101 -0
- package/resources/views/checkout/payment.stx +114 -0
- package/resources/views/checkout/shipping.stx +120 -0
- package/resources/views/coming-soon.stx +9 -0
- package/resources/views/dashboard/custom-page.stx +45 -0
- package/resources/views/dashboard/index.stx +24 -0
- package/resources/views/emails/welcome.stx +0 -0
- package/resources/views/errors/tester.stx +26 -0
- package/resources/views/index.stx +2865 -0
- package/resources/views/orders/[id].stx +130 -0
|
@@ -0,0 +1,48 @@
|
|
|
1
|
+
<script>
|
|
2
|
+
interface SearchEngineFormProps {
|
|
3
|
+
defaultEngine?: string
|
|
4
|
+
}
|
|
5
|
+
|
|
6
|
+
const { defaultEngine = 'opensearch' } = defineProps<SearchEngineFormProps>()
|
|
7
|
+
</script>
|
|
8
|
+
<form>
|
|
9
|
+
<main class="border-b border-gray-900/10">
|
|
10
|
+
<!-- Settings forms -->
|
|
11
|
+
<div class="divide-gray-900/10 divide-y">
|
|
12
|
+
<div class="grid gap-x-8 gap-y-10 grid-cols-1 md:grid-cols-3 py-16 max-w-7xl">
|
|
13
|
+
<div>
|
|
14
|
+
<h2 class="font-semibold leading-7 text-base text-gray-900 dark:text-neutral-100">
|
|
15
|
+
Default Search Engine Settings
|
|
16
|
+
</h2>
|
|
17
|
+
<p class="mt-1 leading-6 text-gray-600 text-sm">
|
|
18
|
+
Update your default Search Engine settings
|
|
19
|
+
</p>
|
|
20
|
+
</div>
|
|
21
|
+
|
|
22
|
+
<div class="md:col-span-2">
|
|
23
|
+
<div class="grid gap-x-6 gap-y-8 grid-cols-1 sm:grid-cols-6 w-full">
|
|
24
|
+
<div class="sm:col-span-3">
|
|
25
|
+
<label for="type" class="block font-medium leading-6 text-gray-900 text-sm">Default</label>
|
|
26
|
+
<div class="mt-2">
|
|
27
|
+
<select id="type" name="type" class="block py-1.5 w-full sm:max-w-xs text-gray-900 sm:leading-6 sm:text-sm border-0 ring-1 ring-gray-300 ring-inset rounded-md focus:ring-2 focus:ring-indigo-600 focus:ring-inset shadow-sm">
|
|
28
|
+
<option {{ defaultEngine == 'opensearch' ? 'selected' : '' }}>opensearch</option>
|
|
29
|
+
</select>
|
|
30
|
+
</div>
|
|
31
|
+
</div>
|
|
32
|
+
</div>
|
|
33
|
+
</div>
|
|
34
|
+
</div>
|
|
35
|
+
</div>
|
|
36
|
+
</main>
|
|
37
|
+
<div class="flex gap-x-6 items-center justify-end mt-6">
|
|
38
|
+
<button type="button" class="font-semibold leading-6 text-gray-900 text-sm">
|
|
39
|
+
Cancel
|
|
40
|
+
</button>
|
|
41
|
+
<button
|
|
42
|
+
type="submit"
|
|
43
|
+
class="px-3 py-2 font-semibold text-sm text-white bg-indigo-600 hover:bg-indigo-500 rounded-md focus-visible:outline focus-visible:outline-2 focus-visible:outline-indigo-600 focus-visible:outline-offset-2 shadow-sm"
|
|
44
|
+
>
|
|
45
|
+
Save
|
|
46
|
+
</button>
|
|
47
|
+
</div>
|
|
48
|
+
</form>
|
|
@@ -0,0 +1,143 @@
|
|
|
1
|
+
<script>
|
|
2
|
+
interface SecurityFormProps {
|
|
3
|
+
rateLimitPerMinute?: string
|
|
4
|
+
countryCodes?: string
|
|
5
|
+
ipAddresses?: string
|
|
6
|
+
queryString?: string
|
|
7
|
+
httpHeaders?: string
|
|
8
|
+
firewallEnabled?: boolean
|
|
9
|
+
useIpReputationLists?: boolean
|
|
10
|
+
useKnownBadInputs?: boolean
|
|
11
|
+
}
|
|
12
|
+
|
|
13
|
+
const { rateLimitPerMinute = '1000', countryCodes = 'RU,IN', ipAddresses = '56.123.456.789', queryString = 'foo,bar', httpHeaders = 'x-foo,x-bar', firewallEnabled = true, useIpReputationLists = true, useKnownBadInputs = true } = defineProps<SecurityFormProps>()
|
|
14
|
+
</script>
|
|
15
|
+
<form>
|
|
16
|
+
<main class="border-b border-gray-900/10">
|
|
17
|
+
<!-- Settings forms -->
|
|
18
|
+
<div class="divide-gray-900/10 divide-y">
|
|
19
|
+
<div class="grid gap-x-8 gap-y-10 grid-cols-1 md:grid-cols-3 py-16 max-w-7xl">
|
|
20
|
+
<div>
|
|
21
|
+
<h2 class="font-semibold leading-7 text-base text-gray-900 dark:text-neutral-100">
|
|
22
|
+
Firewall
|
|
23
|
+
</h2>
|
|
24
|
+
<p class="mt-1 leading-6 text-gray-600 text-sm">
|
|
25
|
+
Update your firewall settings.
|
|
26
|
+
</p>
|
|
27
|
+
</div>
|
|
28
|
+
|
|
29
|
+
<div class="md:col-span-2">
|
|
30
|
+
<div class="grid gap-x-6 gap-y-8 grid-cols-1 sm:grid-cols-6">
|
|
31
|
+
<div class="col-span-2">
|
|
32
|
+
<label for="firewall-enabled" class="block font-medium leading-6 text-gray-900 text-sm dark:text-neutral-100 cursor-pointer">Enabled</label>
|
|
33
|
+
<div class="mt-2">
|
|
34
|
+
<button
|
|
35
|
+
type="button"
|
|
36
|
+
class="relative h-6 w-11 inline-flex flex-shrink-0 cursor-pointer border-2 border-transparent rounded-full {{ firewallEnabled ? 'bg-indigo-600' : 'bg-gray-200' }} transition-colors duration-200 ease-in-out focus:outline-none focus:ring-2 focus:ring-offset-2 focus:ring-indigo-600"
|
|
37
|
+
role="switch"
|
|
38
|
+
aria-checked="{{ firewallEnabled ? 'true' : 'false' }}"
|
|
39
|
+
data-action="toggle-firewall"
|
|
40
|
+
>
|
|
41
|
+
<span class="sr-only">Firewall Enabled</span>
|
|
42
|
+
<span
|
|
43
|
+
aria-hidden="true"
|
|
44
|
+
class="pointer-events-none inline-block h-5 w-5 {{ firewallEnabled ? 'translate-x-5' : 'translate-x-0' }} transform rounded-full bg-white shadow ring-0 transition duration-200 ease-in-out"
|
|
45
|
+
></span>
|
|
46
|
+
</button>
|
|
47
|
+
</div>
|
|
48
|
+
</div>
|
|
49
|
+
<div class="col-span-2">
|
|
50
|
+
<label for="ip-reputation" class="block font-medium leading-6 text-gray-900 text-sm dark:text-neutral-100 cursor-pointer">Use Ip Reputation Lists</label>
|
|
51
|
+
<div class="mt-2">
|
|
52
|
+
<button
|
|
53
|
+
type="button"
|
|
54
|
+
class="relative h-6 w-11 inline-flex flex-shrink-0 cursor-pointer border-2 border-transparent rounded-full {{ useIpReputationLists ? 'bg-indigo-600' : 'bg-gray-200' }} transition-colors duration-200 ease-in-out focus:outline-none focus:ring-2 focus:ring-offset-2 focus:ring-indigo-600"
|
|
55
|
+
role="switch"
|
|
56
|
+
aria-checked="{{ useIpReputationLists ? 'true' : 'false' }}"
|
|
57
|
+
data-action="toggle-ip-reputation"
|
|
58
|
+
>
|
|
59
|
+
<span class="sr-only">Use Ip Reputation Lists</span>
|
|
60
|
+
<span
|
|
61
|
+
aria-hidden="true"
|
|
62
|
+
class="pointer-events-none inline-block h-5 w-5 {{ useIpReputationLists ? 'translate-x-5' : 'translate-x-0' }} transform rounded-full bg-white shadow ring-0 transition duration-200 ease-in-out"
|
|
63
|
+
></span>
|
|
64
|
+
</button>
|
|
65
|
+
</div>
|
|
66
|
+
</div>
|
|
67
|
+
<div class="col-span-2">
|
|
68
|
+
<label for="bad-inputs" class="block font-medium leading-6 text-gray-900 text-sm dark:text-neutral-100 cursor-pointer">Use Known Bad Inputs Rule Set</label>
|
|
69
|
+
<div class="mt-2">
|
|
70
|
+
<button
|
|
71
|
+
type="button"
|
|
72
|
+
class="relative h-6 w-11 inline-flex flex-shrink-0 cursor-pointer border-2 border-transparent rounded-full {{ useKnownBadInputs ? 'bg-indigo-600' : 'bg-gray-200' }} transition-colors duration-200 ease-in-out focus:outline-none focus:ring-2 focus:ring-offset-2 focus:ring-indigo-600"
|
|
73
|
+
role="switch"
|
|
74
|
+
aria-checked="{{ useKnownBadInputs ? 'true' : 'false' }}"
|
|
75
|
+
data-action="toggle-bad-inputs"
|
|
76
|
+
>
|
|
77
|
+
<span class="sr-only">Use Known Bad Inputs</span>
|
|
78
|
+
<span
|
|
79
|
+
aria-hidden="true"
|
|
80
|
+
class="pointer-events-none inline-block h-5 w-5 {{ useKnownBadInputs ? 'translate-x-5' : 'translate-x-0' }} transform rounded-full bg-white shadow ring-0 transition duration-200 ease-in-out"
|
|
81
|
+
></span>
|
|
82
|
+
</button>
|
|
83
|
+
</div>
|
|
84
|
+
</div>
|
|
85
|
+
<div class="col-span-2">
|
|
86
|
+
<label for="rate-limit" class="block font-medium leading-6 text-gray-900 text-sm dark:text-neutral-100 cursor-pointer">Rate Limit per minute</label>
|
|
87
|
+
<div class="mt-2">
|
|
88
|
+
<input
|
|
89
|
+
id="rate-limit"
|
|
90
|
+
name="rate-limit"
|
|
91
|
+
type="text"
|
|
92
|
+
value="{{ rateLimitPerMinute }}"
|
|
93
|
+
class="block px-4 py-2 w-full text-gray-900 dark:text-neutral-100 dark:text-neutral-200 dark:bg-neutral-800 border border-gray-300 rounded-md dark:border-neutral-600 focus:border-none focus:ring-2 focus:ring-blue-500 required:border-red-500 shadow-sm"
|
|
94
|
+
>
|
|
95
|
+
</div>
|
|
96
|
+
</div>
|
|
97
|
+
<div class="col-span-2">
|
|
98
|
+
<label for="country-codes" class="block font-medium leading-6 text-gray-900 text-sm dark:text-neutral-100 cursor-pointer">Country Codes</label>
|
|
99
|
+
<div class="mt-2">
|
|
100
|
+
<input
|
|
101
|
+
id="country-codes"
|
|
102
|
+
name="country-codes"
|
|
103
|
+
type="text"
|
|
104
|
+
value="{{ countryCodes }}"
|
|
105
|
+
class="block px-4 py-2 w-full text-gray-900 dark:text-neutral-100 dark:text-neutral-200 dark:bg-neutral-800 border border-gray-300 rounded-md dark:border-neutral-600 focus:border-none focus:ring-2 focus:ring-blue-500 required:border-red-500 shadow-sm"
|
|
106
|
+
>
|
|
107
|
+
</div>
|
|
108
|
+
</div>
|
|
109
|
+
<div class="sm:col-span-full">
|
|
110
|
+
<label for="ip-addresses" class="block font-medium leading-6 text-gray-900 text-sm">IP Addresses</label>
|
|
111
|
+
<div class="mt-2">
|
|
112
|
+
<input id="ip-addresses" type="text" name="ip-addresses" value="{{ ipAddresses }}" class="block py-1.5 w-full text-gray-900 sm:leading-6 sm:text-sm placeholder:text-gray-400 border-0 ring-1 ring-gray-300 ring-inset rounded-md focus:ring-2 focus:ring-indigo-600 focus:ring-inset shadow-sm">
|
|
113
|
+
</div>
|
|
114
|
+
</div>
|
|
115
|
+
<div class="sm:col-span-3">
|
|
116
|
+
<label for="query-string" class="block font-medium leading-6 text-gray-900 text-sm">Query String</label>
|
|
117
|
+
<div class="mt-2">
|
|
118
|
+
<input id="query-string" type="text" name="query-string" value="{{ queryString }}" class="block py-1.5 w-full text-gray-900 sm:leading-6 sm:text-sm placeholder:text-gray-400 border-0 ring-1 ring-gray-300 ring-inset rounded-md focus:ring-2 focus:ring-indigo-600 focus:ring-inset shadow-sm">
|
|
119
|
+
</div>
|
|
120
|
+
</div>
|
|
121
|
+
<div class="sm:col-span-3">
|
|
122
|
+
<label for="http-headers" class="block font-medium leading-6 text-gray-900 text-sm">HTTP Headers</label>
|
|
123
|
+
<div class="mt-2">
|
|
124
|
+
<input id="http-headers" type="text" name="http-headers" value="{{ httpHeaders }}" class="block py-1.5 w-full text-gray-900 sm:leading-6 sm:text-sm placeholder:text-gray-400 border-0 ring-1 ring-gray-300 ring-inset rounded-md focus:ring-2 focus:ring-indigo-600 focus:ring-inset shadow-sm">
|
|
125
|
+
</div>
|
|
126
|
+
</div>
|
|
127
|
+
</div>
|
|
128
|
+
</div>
|
|
129
|
+
</div>
|
|
130
|
+
</div>
|
|
131
|
+
</main>
|
|
132
|
+
<div class="flex gap-x-6 items-center justify-end mt-6">
|
|
133
|
+
<button type="button" class="font-semibold leading-6 text-gray-900 text-sm">
|
|
134
|
+
Cancel
|
|
135
|
+
</button>
|
|
136
|
+
<button
|
|
137
|
+
type="submit"
|
|
138
|
+
class="px-3 py-2 font-semibold text-sm text-white bg-indigo-600 hover:bg-indigo-500 rounded-md focus-visible:outline focus-visible:outline-2 focus-visible:outline-indigo-600 focus-visible:outline-offset-2 shadow-sm"
|
|
139
|
+
>
|
|
140
|
+
Save
|
|
141
|
+
</button>
|
|
142
|
+
</div>
|
|
143
|
+
</form>
|
|
@@ -0,0 +1,194 @@
|
|
|
1
|
+
<script>
|
|
2
|
+
interface ServicesFormProps {
|
|
3
|
+
awsAccountId?: string
|
|
4
|
+
awsAppId?: string
|
|
5
|
+
awsAppKey?: string
|
|
6
|
+
awsAppRegion?: string
|
|
7
|
+
algoliaAppId?: string
|
|
8
|
+
algoliaAppKey?: string
|
|
9
|
+
meiliAppId?: string
|
|
10
|
+
meiliAppKey?: string
|
|
11
|
+
lemonSqueezyAppId?: string
|
|
12
|
+
lemonSqueezyAppKey?: string
|
|
13
|
+
stripeAppId?: string
|
|
14
|
+
stripeAppKey?: string
|
|
15
|
+
}
|
|
16
|
+
|
|
17
|
+
const { awsAccountId = '', awsAppId = '', awsAppKey = '', awsAppRegion = 'us-east-1', algoliaAppId = '', algoliaAppKey = '', meiliAppId = '', meiliAppKey = '', lemonSqueezyAppId = '', lemonSqueezyAppKey = '', stripeAppId = '', stripeAppKey = '' } = defineProps<ServicesFormProps>()
|
|
18
|
+
</script>
|
|
19
|
+
<form>
|
|
20
|
+
<main class="border-b border-gray-900/10">
|
|
21
|
+
<!-- Settings forms -->
|
|
22
|
+
<div class="divide-gray-900/10 divide-y">
|
|
23
|
+
<div class="grid gap-x-8 gap-y-10 grid-cols-1 md:grid-cols-3 py-16 max-w-7xl">
|
|
24
|
+
<div>
|
|
25
|
+
<h2 class="font-semibold leading-7 text-base text-gray-900 dark:text-neutral-100">
|
|
26
|
+
AWS Settings
|
|
27
|
+
</h2>
|
|
28
|
+
<p class="mt-1 leading-6 text-gray-600 text-sm">
|
|
29
|
+
Update your AWS settings
|
|
30
|
+
</p>
|
|
31
|
+
</div>
|
|
32
|
+
|
|
33
|
+
<div class="md:col-span-2">
|
|
34
|
+
<div class="grid gap-x-6 gap-y-8 grid-cols-1 sm:grid-cols-6 w-full">
|
|
35
|
+
<div class="sm:col-span-3">
|
|
36
|
+
<label for="aws-account-id" class="block font-medium leading-6 text-gray-900 text-sm">Account ID</label>
|
|
37
|
+
<div class="mt-2">
|
|
38
|
+
<input id="aws-account-id" type="text" name="aws-account-id" value="{{ awsAccountId }}" class="block py-1.5 w-full text-gray-900 sm:leading-6 sm:text-sm placeholder:text-gray-400 border-0 ring-1 ring-gray-300 ring-inset rounded-md focus:ring-2 focus:ring-indigo-600 focus:ring-inset shadow-sm">
|
|
39
|
+
</div>
|
|
40
|
+
</div>
|
|
41
|
+
|
|
42
|
+
<div class="sm:col-span-3">
|
|
43
|
+
<label for="aws-app-id" class="block font-medium leading-6 text-gray-900 text-sm">App ID</label>
|
|
44
|
+
<div class="mt-2">
|
|
45
|
+
<input id="aws-app-id" type="text" name="aws-app-id" value="{{ awsAppId }}" class="block py-1.5 w-full text-gray-900 sm:leading-6 sm:text-sm placeholder:text-gray-400 border-0 ring-1 ring-gray-300 ring-inset rounded-md focus:ring-2 focus:ring-indigo-600 focus:ring-inset shadow-sm">
|
|
46
|
+
</div>
|
|
47
|
+
</div>
|
|
48
|
+
|
|
49
|
+
<div class="sm:col-span-3">
|
|
50
|
+
<label for="aws-app-key" class="block font-medium leading-6 text-gray-900 text-sm">App Key</label>
|
|
51
|
+
<div class="mt-2">
|
|
52
|
+
<input id="aws-app-key" type="password" name="aws-app-key" value="{{ awsAppKey }}" class="block py-1.5 w-full text-gray-900 sm:leading-6 sm:text-sm placeholder:text-gray-400 border-0 ring-1 ring-gray-300 ring-inset rounded-md focus:ring-2 focus:ring-indigo-600 focus:ring-inset shadow-sm">
|
|
53
|
+
</div>
|
|
54
|
+
</div>
|
|
55
|
+
|
|
56
|
+
<div class="sm:col-span-3">
|
|
57
|
+
<label for="aws-region" class="block font-medium leading-6 text-gray-900 text-sm">App Region</label>
|
|
58
|
+
<div class="mt-2">
|
|
59
|
+
<input id="aws-region" type="text" name="aws-region" value="{{ awsAppRegion }}" class="block py-1.5 w-full text-gray-900 sm:leading-6 sm:text-sm placeholder:text-gray-400 border-0 ring-1 ring-gray-300 ring-inset rounded-md focus:ring-2 focus:ring-indigo-600 focus:ring-inset shadow-sm">
|
|
60
|
+
</div>
|
|
61
|
+
</div>
|
|
62
|
+
</div>
|
|
63
|
+
</div>
|
|
64
|
+
</div>
|
|
65
|
+
|
|
66
|
+
<div class="grid gap-x-8 gap-y-10 grid-cols-1 md:grid-cols-3 py-16 max-w-7xl">
|
|
67
|
+
<div>
|
|
68
|
+
<h2 class="font-semibold leading-7 text-base text-gray-900 dark:text-neutral-100">
|
|
69
|
+
Algolia Settings
|
|
70
|
+
</h2>
|
|
71
|
+
<p class="mt-1 leading-6 text-gray-600 text-sm">
|
|
72
|
+
Update your Algolia settings
|
|
73
|
+
</p>
|
|
74
|
+
</div>
|
|
75
|
+
|
|
76
|
+
<div class="md:col-span-2">
|
|
77
|
+
<div class="grid gap-x-6 gap-y-8 grid-cols-1 sm:grid-cols-6 w-full">
|
|
78
|
+
<div class="sm:col-span-3">
|
|
79
|
+
<label for="algolia-app-id" class="block font-medium leading-6 text-gray-900 text-sm">App ID</label>
|
|
80
|
+
<div class="mt-2">
|
|
81
|
+
<input id="algolia-app-id" type="text" name="algolia-app-id" value="{{ algoliaAppId }}" class="block py-1.5 w-full text-gray-900 sm:leading-6 sm:text-sm placeholder:text-gray-400 border-0 ring-1 ring-gray-300 ring-inset rounded-md focus:ring-2 focus:ring-indigo-600 focus:ring-inset shadow-sm">
|
|
82
|
+
</div>
|
|
83
|
+
</div>
|
|
84
|
+
|
|
85
|
+
<div class="sm:col-span-3">
|
|
86
|
+
<label for="algolia-app-key" class="block font-medium leading-6 text-gray-900 text-sm">App Key</label>
|
|
87
|
+
<div class="mt-2">
|
|
88
|
+
<input id="algolia-app-key" type="password" name="algolia-app-key" value="{{ algoliaAppKey }}" class="block py-1.5 w-full text-gray-900 sm:leading-6 sm:text-sm placeholder:text-gray-400 border-0 ring-1 ring-gray-300 ring-inset rounded-md focus:ring-2 focus:ring-indigo-600 focus:ring-inset shadow-sm">
|
|
89
|
+
</div>
|
|
90
|
+
</div>
|
|
91
|
+
</div>
|
|
92
|
+
</div>
|
|
93
|
+
</div>
|
|
94
|
+
|
|
95
|
+
<div class="grid gap-x-8 gap-y-10 grid-cols-1 md:grid-cols-3 py-16 max-w-7xl">
|
|
96
|
+
<div>
|
|
97
|
+
<h2 class="font-semibold leading-7 text-base text-gray-900 dark:text-neutral-100">
|
|
98
|
+
Meili Search Settings
|
|
99
|
+
</h2>
|
|
100
|
+
<p class="mt-1 leading-6 text-gray-600 text-sm">
|
|
101
|
+
Update your Meili Search settings
|
|
102
|
+
</p>
|
|
103
|
+
</div>
|
|
104
|
+
|
|
105
|
+
<div class="md:col-span-2">
|
|
106
|
+
<div class="grid gap-x-6 gap-y-8 grid-cols-1 sm:grid-cols-6 w-full">
|
|
107
|
+
<div class="sm:col-span-3">
|
|
108
|
+
<label for="meili-app-id" class="block font-medium leading-6 text-gray-900 text-sm">App ID</label>
|
|
109
|
+
<div class="mt-2">
|
|
110
|
+
<input id="meili-app-id" type="text" name="meili-app-id" value="{{ meiliAppId }}" class="block py-1.5 w-full text-gray-900 sm:leading-6 sm:text-sm placeholder:text-gray-400 border-0 ring-1 ring-gray-300 ring-inset rounded-md focus:ring-2 focus:ring-indigo-600 focus:ring-inset shadow-sm">
|
|
111
|
+
</div>
|
|
112
|
+
</div>
|
|
113
|
+
|
|
114
|
+
<div class="sm:col-span-3">
|
|
115
|
+
<label for="meili-app-key" class="block font-medium leading-6 text-gray-900 text-sm">App Key</label>
|
|
116
|
+
<div class="mt-2">
|
|
117
|
+
<input id="meili-app-key" type="password" name="meili-app-key" value="{{ meiliAppKey }}" class="block py-1.5 w-full text-gray-900 sm:leading-6 sm:text-sm placeholder:text-gray-400 border-0 ring-1 ring-gray-300 ring-inset rounded-md focus:ring-2 focus:ring-indigo-600 focus:ring-inset shadow-sm">
|
|
118
|
+
</div>
|
|
119
|
+
</div>
|
|
120
|
+
</div>
|
|
121
|
+
</div>
|
|
122
|
+
</div>
|
|
123
|
+
|
|
124
|
+
<div class="grid gap-x-8 gap-y-10 grid-cols-1 md:grid-cols-3 py-16 max-w-7xl">
|
|
125
|
+
<div>
|
|
126
|
+
<h2 class="font-semibold leading-7 text-base text-gray-900 dark:text-neutral-100">
|
|
127
|
+
Lemon Squeezy Settings
|
|
128
|
+
</h2>
|
|
129
|
+
<p class="mt-1 leading-6 text-gray-600 text-sm">
|
|
130
|
+
Update your Lemon Squeezy settings
|
|
131
|
+
</p>
|
|
132
|
+
</div>
|
|
133
|
+
|
|
134
|
+
<div class="md:col-span-2">
|
|
135
|
+
<div class="grid gap-x-6 gap-y-8 grid-cols-1 sm:grid-cols-6 w-full">
|
|
136
|
+
<div class="sm:col-span-3">
|
|
137
|
+
<label for="lemonsqueezy-app-id" class="block font-medium leading-6 text-gray-900 text-sm">App ID</label>
|
|
138
|
+
<div class="mt-2">
|
|
139
|
+
<input id="lemonsqueezy-app-id" type="text" name="lemonsqueezy-app-id" value="{{ lemonSqueezyAppId }}" class="block py-1.5 w-full text-gray-900 sm:leading-6 sm:text-sm placeholder:text-gray-400 border-0 ring-1 ring-gray-300 ring-inset rounded-md focus:ring-2 focus:ring-indigo-600 focus:ring-inset shadow-sm">
|
|
140
|
+
</div>
|
|
141
|
+
</div>
|
|
142
|
+
|
|
143
|
+
<div class="sm:col-span-3">
|
|
144
|
+
<label for="lemonsqueezy-app-key" class="block font-medium leading-6 text-gray-900 text-sm">App Key</label>
|
|
145
|
+
<div class="mt-2">
|
|
146
|
+
<input id="lemonsqueezy-app-key" type="password" name="lemonsqueezy-app-key" value="{{ lemonSqueezyAppKey }}" class="block py-1.5 w-full text-gray-900 sm:leading-6 sm:text-sm placeholder:text-gray-400 border-0 ring-1 ring-gray-300 ring-inset rounded-md focus:ring-2 focus:ring-indigo-600 focus:ring-inset shadow-sm">
|
|
147
|
+
</div>
|
|
148
|
+
</div>
|
|
149
|
+
</div>
|
|
150
|
+
</div>
|
|
151
|
+
</div>
|
|
152
|
+
|
|
153
|
+
<div class="grid gap-x-8 gap-y-10 grid-cols-1 md:grid-cols-3 py-16 max-w-7xl">
|
|
154
|
+
<div>
|
|
155
|
+
<h2 class="font-semibold leading-7 text-base text-gray-900 dark:text-neutral-100">
|
|
156
|
+
Stripe Settings
|
|
157
|
+
</h2>
|
|
158
|
+
<p class="mt-1 leading-6 text-gray-600 text-sm">
|
|
159
|
+
Update your Stripe settings
|
|
160
|
+
</p>
|
|
161
|
+
</div>
|
|
162
|
+
|
|
163
|
+
<div class="md:col-span-2">
|
|
164
|
+
<div class="grid gap-x-6 gap-y-8 grid-cols-1 sm:grid-cols-6 w-full">
|
|
165
|
+
<div class="sm:col-span-3">
|
|
166
|
+
<label for="stripe-app-id" class="block font-medium leading-6 text-gray-900 text-sm">App ID</label>
|
|
167
|
+
<div class="mt-2">
|
|
168
|
+
<input id="stripe-app-id" type="text" name="stripe-app-id" value="{{ stripeAppId }}" class="block py-1.5 w-full text-gray-900 sm:leading-6 sm:text-sm placeholder:text-gray-400 border-0 ring-1 ring-gray-300 ring-inset rounded-md focus:ring-2 focus:ring-indigo-600 focus:ring-inset shadow-sm">
|
|
169
|
+
</div>
|
|
170
|
+
</div>
|
|
171
|
+
|
|
172
|
+
<div class="sm:col-span-3">
|
|
173
|
+
<label for="stripe-app-key" class="block font-medium leading-6 text-gray-900 text-sm">App Key</label>
|
|
174
|
+
<div class="mt-2">
|
|
175
|
+
<input id="stripe-app-key" type="password" name="stripe-app-key" value="{{ stripeAppKey }}" class="block py-1.5 w-full text-gray-900 sm:leading-6 sm:text-sm placeholder:text-gray-400 border-0 ring-1 ring-gray-300 ring-inset rounded-md focus:ring-2 focus:ring-indigo-600 focus:ring-inset shadow-sm">
|
|
176
|
+
</div>
|
|
177
|
+
</div>
|
|
178
|
+
</div>
|
|
179
|
+
</div>
|
|
180
|
+
</div>
|
|
181
|
+
</div>
|
|
182
|
+
</main>
|
|
183
|
+
<div class="flex gap-x-6 items-center justify-end mt-6">
|
|
184
|
+
<button type="button" class="font-semibold leading-6 text-gray-900 text-sm">
|
|
185
|
+
Cancel
|
|
186
|
+
</button>
|
|
187
|
+
<button
|
|
188
|
+
type="submit"
|
|
189
|
+
class="px-3 py-2 font-semibold text-sm text-white bg-indigo-600 hover:bg-indigo-500 rounded-md focus-visible:outline focus-visible:outline-2 focus-visible:outline-indigo-600 focus-visible:outline-offset-2 shadow-sm"
|
|
190
|
+
>
|
|
191
|
+
Save
|
|
192
|
+
</button>
|
|
193
|
+
</div>
|
|
194
|
+
</form>
|
|
@@ -0,0 +1,191 @@
|
|
|
1
|
+
<script>
|
|
2
|
+
interface StorageFormProps {
|
|
3
|
+
defaultStorage?: string
|
|
4
|
+
s3Key?: string
|
|
5
|
+
s3Secret?: string
|
|
6
|
+
s3Region?: string
|
|
7
|
+
s3Bucket?: string
|
|
8
|
+
s3Url?: string
|
|
9
|
+
dropboxKey?: string
|
|
10
|
+
dropboxSecret?: string
|
|
11
|
+
dropboxBox?: string
|
|
12
|
+
meemaKey?: string
|
|
13
|
+
meemaSecret?: string
|
|
14
|
+
meemaRegion?: string
|
|
15
|
+
meemaBucket?: string
|
|
16
|
+
}
|
|
17
|
+
|
|
18
|
+
const { defaultStorage = 's3', s3Key = 'JKHJK$KJAHKS', s3Secret = 'kldsanko3njksdasjfasdn2m', s3Region = 'us-east-1', s3Bucket = 'stacks', s3Url = 'stacks.s3.amazonaws.com', dropboxKey = 'JKHJK$KJAHKS', dropboxSecret = 'kldsanko3njksdasjfasdn2m', dropboxBox = 'stacks', meemaKey = 'HJDSU41HJJKAD', meemaSecret = 'jkhnb523nbmnb9dsanmeop', meemaRegion = 'us-east-1', meemaBucket = 'stacks' } = defineProps<StorageFormProps>()
|
|
19
|
+
</script>
|
|
20
|
+
<form>
|
|
21
|
+
<main class="border-b border-gray-900/10">
|
|
22
|
+
<!-- Settings forms -->
|
|
23
|
+
<div class="divide-gray-900/10 divide-y">
|
|
24
|
+
<div class="grid gap-x-8 gap-y-10 grid-cols-1 md:grid-cols-3 py-16 max-w-7xl">
|
|
25
|
+
<div>
|
|
26
|
+
<h2 class="font-semibold leading-7 text-base text-gray-900 dark:text-neutral-100">
|
|
27
|
+
Default Storage Settings
|
|
28
|
+
</h2>
|
|
29
|
+
<p class="mt-1 leading-6 text-gray-600 text-sm">
|
|
30
|
+
Update your default Storage settings
|
|
31
|
+
</p>
|
|
32
|
+
</div>
|
|
33
|
+
|
|
34
|
+
<div class="md:col-span-2">
|
|
35
|
+
<div class="grid gap-x-6 gap-y-8 grid-cols-1 sm:grid-cols-6 w-full">
|
|
36
|
+
<div class="sm:col-span-3">
|
|
37
|
+
<label for="type" class="block font-medium leading-6 text-gray-900 text-sm">Default</label>
|
|
38
|
+
<div class="mt-2">
|
|
39
|
+
<select id="type" name="type" class="block py-1.5 w-full sm:max-w-xs text-gray-900 sm:leading-6 sm:text-sm border-0 ring-1 ring-gray-300 ring-inset rounded-md focus:ring-2 focus:ring-indigo-600 focus:ring-inset shadow-sm">
|
|
40
|
+
<option {{ defaultStorage == 's3' ? 'selected' : '' }}>s3</option>
|
|
41
|
+
<option {{ defaultStorage == 'Dropbox' ? 'selected' : '' }}>Dropbox</option>
|
|
42
|
+
<option {{ defaultStorage == 'Meema' ? 'selected' : '' }}>Meema</option>
|
|
43
|
+
</select>
|
|
44
|
+
</div>
|
|
45
|
+
</div>
|
|
46
|
+
</div>
|
|
47
|
+
</div>
|
|
48
|
+
</div>
|
|
49
|
+
|
|
50
|
+
<div class="grid gap-x-8 gap-y-10 grid-cols-1 md:grid-cols-3 py-16 max-w-7xl">
|
|
51
|
+
<div>
|
|
52
|
+
<h2 class="font-semibold leading-7 text-base text-gray-900 dark:text-neutral-100">
|
|
53
|
+
AWS S3
|
|
54
|
+
</h2>
|
|
55
|
+
<p class="mt-1 leading-6 text-gray-600 text-sm">
|
|
56
|
+
Update your AWS S3 configurations
|
|
57
|
+
</p>
|
|
58
|
+
</div>
|
|
59
|
+
|
|
60
|
+
<div class="md:col-span-2">
|
|
61
|
+
<div class="grid gap-x-6 gap-y-8 grid-cols-1 sm:grid-cols-6 w-full">
|
|
62
|
+
<div class="sm:col-span-3">
|
|
63
|
+
<label for="s3-key" class="block font-medium leading-6 text-gray-900 text-sm">Key</label>
|
|
64
|
+
<div class="mt-2">
|
|
65
|
+
<input id="s3-key" type="text" name="s3-key" value="{{ s3Key }}" class="block py-1.5 w-full text-gray-900 sm:leading-6 sm:text-sm placeholder:text-gray-400 border-0 ring-1 ring-gray-300 ring-inset rounded-md focus:ring-2 focus:ring-indigo-600 focus:ring-inset shadow-sm">
|
|
66
|
+
</div>
|
|
67
|
+
</div>
|
|
68
|
+
|
|
69
|
+
<div class="sm:col-span-3">
|
|
70
|
+
<label for="s3-secret" class="block font-medium leading-6 text-gray-900 text-sm">Secret</label>
|
|
71
|
+
<div class="mt-2">
|
|
72
|
+
<input id="s3-secret" type="password" name="s3-secret" value="{{ s3Secret }}" class="block py-1.5 w-full text-gray-900 sm:leading-6 sm:text-sm placeholder:text-gray-400 border-0 ring-1 ring-gray-300 ring-inset rounded-md focus:ring-2 focus:ring-indigo-600 focus:ring-inset shadow-sm">
|
|
73
|
+
</div>
|
|
74
|
+
</div>
|
|
75
|
+
|
|
76
|
+
<div class="sm:col-span-3">
|
|
77
|
+
<label for="s3-region" class="block font-medium leading-6 text-gray-900 text-sm">Region</label>
|
|
78
|
+
<div class="mt-2">
|
|
79
|
+
<input id="s3-region" type="text" name="s3-region" value="{{ s3Region }}" class="block py-1.5 w-full text-gray-900 sm:leading-6 sm:text-sm placeholder:text-gray-400 border-0 ring-1 ring-gray-300 ring-inset rounded-md focus:ring-2 focus:ring-indigo-600 focus:ring-inset shadow-sm">
|
|
80
|
+
</div>
|
|
81
|
+
</div>
|
|
82
|
+
|
|
83
|
+
<div class="sm:col-span-3">
|
|
84
|
+
<label for="s3-bucket" class="block font-medium leading-6 text-gray-900 text-sm">Bucket</label>
|
|
85
|
+
<div class="mt-2">
|
|
86
|
+
<input id="s3-bucket" type="text" name="s3-bucket" value="{{ s3Bucket }}" class="block py-1.5 w-full text-gray-900 sm:leading-6 sm:text-sm placeholder:text-gray-400 border-0 ring-1 ring-gray-300 ring-inset rounded-md focus:ring-2 focus:ring-indigo-600 focus:ring-inset shadow-sm">
|
|
87
|
+
</div>
|
|
88
|
+
</div>
|
|
89
|
+
|
|
90
|
+
<div class="sm:col-span-full">
|
|
91
|
+
<label for="s3-url" class="block font-medium leading-6 text-gray-900 text-sm">URL</label>
|
|
92
|
+
<div class="mt-2">
|
|
93
|
+
<input id="s3-url" type="text" name="s3-url" value="{{ s3Url }}" class="block py-1.5 w-full text-gray-900 sm:leading-6 sm:text-sm placeholder:text-gray-400 border-0 ring-1 ring-gray-300 ring-inset rounded-md focus:ring-2 focus:ring-indigo-600 focus:ring-inset shadow-sm">
|
|
94
|
+
</div>
|
|
95
|
+
</div>
|
|
96
|
+
</div>
|
|
97
|
+
</div>
|
|
98
|
+
</div>
|
|
99
|
+
|
|
100
|
+
<div class="grid gap-x-8 gap-y-10 grid-cols-1 md:grid-cols-3 py-16 max-w-7xl">
|
|
101
|
+
<div>
|
|
102
|
+
<h2 class="font-semibold leading-7 text-base text-gray-900 dark:text-neutral-100">
|
|
103
|
+
Dropbox
|
|
104
|
+
</h2>
|
|
105
|
+
<p class="mt-1 leading-6 text-gray-600 text-sm">
|
|
106
|
+
Update your Dropbox configurations
|
|
107
|
+
</p>
|
|
108
|
+
</div>
|
|
109
|
+
|
|
110
|
+
<div class="md:col-span-2">
|
|
111
|
+
<div class="grid gap-x-6 gap-y-8 grid-cols-1 sm:grid-cols-6 w-full">
|
|
112
|
+
<div class="sm:col-span-3">
|
|
113
|
+
<label for="dropbox-key" class="block font-medium leading-6 text-gray-900 text-sm">Key</label>
|
|
114
|
+
<div class="mt-2">
|
|
115
|
+
<input id="dropbox-key" type="text" name="dropbox-key" value="{{ dropboxKey }}" class="block py-1.5 w-full text-gray-900 sm:leading-6 sm:text-sm placeholder:text-gray-400 border-0 ring-1 ring-gray-300 ring-inset rounded-md focus:ring-2 focus:ring-indigo-600 focus:ring-inset shadow-sm">
|
|
116
|
+
</div>
|
|
117
|
+
</div>
|
|
118
|
+
|
|
119
|
+
<div class="sm:col-span-3">
|
|
120
|
+
<label for="dropbox-secret" class="block font-medium leading-6 text-gray-900 text-sm">Secret</label>
|
|
121
|
+
<div class="mt-2">
|
|
122
|
+
<input id="dropbox-secret" type="password" name="dropbox-secret" value="{{ dropboxSecret }}" class="block py-1.5 w-full text-gray-900 sm:leading-6 sm:text-sm placeholder:text-gray-400 border-0 ring-1 ring-gray-300 ring-inset rounded-md focus:ring-2 focus:ring-indigo-600 focus:ring-inset shadow-sm">
|
|
123
|
+
</div>
|
|
124
|
+
</div>
|
|
125
|
+
|
|
126
|
+
<div class="sm:col-span-full">
|
|
127
|
+
<label for="dropbox-box" class="block font-medium leading-6 text-gray-900 text-sm">Box</label>
|
|
128
|
+
<div class="mt-2">
|
|
129
|
+
<input id="dropbox-box" type="text" name="dropbox-box" value="{{ dropboxBox }}" class="block py-1.5 w-full text-gray-900 sm:leading-6 sm:text-sm placeholder:text-gray-400 border-0 ring-1 ring-gray-300 ring-inset rounded-md focus:ring-2 focus:ring-indigo-600 focus:ring-inset shadow-sm">
|
|
130
|
+
</div>
|
|
131
|
+
</div>
|
|
132
|
+
</div>
|
|
133
|
+
</div>
|
|
134
|
+
</div>
|
|
135
|
+
|
|
136
|
+
<div class="grid gap-x-8 gap-y-10 grid-cols-1 md:grid-cols-3 py-16 max-w-7xl">
|
|
137
|
+
<div>
|
|
138
|
+
<h2 class="font-semibold leading-7 text-base text-gray-900 dark:text-neutral-100">
|
|
139
|
+
Meema
|
|
140
|
+
</h2>
|
|
141
|
+
<p class="mt-1 leading-6 text-gray-600 text-sm">
|
|
142
|
+
Update your Meema configurations
|
|
143
|
+
</p>
|
|
144
|
+
</div>
|
|
145
|
+
|
|
146
|
+
<div class="md:col-span-2">
|
|
147
|
+
<div class="grid gap-x-6 gap-y-8 grid-cols-1 sm:grid-cols-6 w-full">
|
|
148
|
+
<div class="sm:col-span-3">
|
|
149
|
+
<label for="meema-key" class="block font-medium leading-6 text-gray-900 text-sm">Key</label>
|
|
150
|
+
<div class="mt-2">
|
|
151
|
+
<input id="meema-key" type="text" name="meema-key" value="{{ meemaKey }}" class="block py-1.5 w-full text-gray-900 sm:leading-6 sm:text-sm placeholder:text-gray-400 border-0 ring-1 ring-gray-300 ring-inset rounded-md focus:ring-2 focus:ring-indigo-600 focus:ring-inset shadow-sm">
|
|
152
|
+
</div>
|
|
153
|
+
</div>
|
|
154
|
+
|
|
155
|
+
<div class="sm:col-span-3">
|
|
156
|
+
<label for="meema-secret" class="block font-medium leading-6 text-gray-900 text-sm">Secret</label>
|
|
157
|
+
<div class="mt-2">
|
|
158
|
+
<input id="meema-secret" type="password" name="meema-secret" value="{{ meemaSecret }}" class="block py-1.5 w-full text-gray-900 sm:leading-6 sm:text-sm placeholder:text-gray-400 border-0 ring-1 ring-gray-300 ring-inset rounded-md focus:ring-2 focus:ring-indigo-600 focus:ring-inset shadow-sm">
|
|
159
|
+
</div>
|
|
160
|
+
</div>
|
|
161
|
+
|
|
162
|
+
<div class="sm:col-span-3">
|
|
163
|
+
<label for="meema-region" class="block font-medium leading-6 text-gray-900 text-sm">Region</label>
|
|
164
|
+
<div class="mt-2">
|
|
165
|
+
<input id="meema-region" type="text" name="meema-region" value="{{ meemaRegion }}" class="block py-1.5 w-full text-gray-900 sm:leading-6 sm:text-sm placeholder:text-gray-400 border-0 ring-1 ring-gray-300 ring-inset rounded-md focus:ring-2 focus:ring-indigo-600 focus:ring-inset shadow-sm">
|
|
166
|
+
</div>
|
|
167
|
+
</div>
|
|
168
|
+
|
|
169
|
+
<div class="sm:col-span-3">
|
|
170
|
+
<label for="meema-bucket" class="block font-medium leading-6 text-gray-900 text-sm">Bucket</label>
|
|
171
|
+
<div class="mt-2">
|
|
172
|
+
<input id="meema-bucket" type="text" name="meema-bucket" value="{{ meemaBucket }}" class="block py-1.5 w-full text-gray-900 sm:leading-6 sm:text-sm placeholder:text-gray-400 border-0 ring-1 ring-gray-300 ring-inset rounded-md focus:ring-2 focus:ring-indigo-600 focus:ring-inset shadow-sm">
|
|
173
|
+
</div>
|
|
174
|
+
</div>
|
|
175
|
+
</div>
|
|
176
|
+
</div>
|
|
177
|
+
</div>
|
|
178
|
+
</div>
|
|
179
|
+
</main>
|
|
180
|
+
<div class="flex gap-x-6 items-center justify-end mt-6">
|
|
181
|
+
<button type="button" class="font-semibold leading-6 text-gray-900 text-sm">
|
|
182
|
+
Cancel
|
|
183
|
+
</button>
|
|
184
|
+
<button
|
|
185
|
+
type="submit"
|
|
186
|
+
class="px-3 py-2 font-semibold text-sm text-white bg-indigo-600 hover:bg-indigo-500 rounded-md focus-visible:outline focus-visible:outline-2 focus-visible:outline-indigo-600 focus-visible:outline-offset-2 shadow-sm"
|
|
187
|
+
>
|
|
188
|
+
Save
|
|
189
|
+
</button>
|
|
190
|
+
</div>
|
|
191
|
+
</form>
|
|
@@ -0,0 +1,33 @@
|
|
|
1
|
+
<script>
|
|
2
|
+
interface TeamsFormProps {
|
|
3
|
+
teamMembers?: string
|
|
4
|
+
}
|
|
5
|
+
|
|
6
|
+
const { teamMembers = [ } = defineProps<TeamsFormProps>()
|
|
7
|
+
|
|
8
|
+
{ name: 'Chris', email: 'chris@stacksjs.com', avatar: 'https://pbs.twimg.com/profile_images/1707883193054228480/n98q6t1L_400x400.jpg' },
|
|
9
|
+
{ name: 'Blake', email: 'blake@stacksjs.com', avatar: 'https://pbs.twimg.com/profile_images/1707883193054228480/n98q6t1L_400x400.jpg' },
|
|
10
|
+
{ name: 'Zoltan', email: 'zoltan@stacksjs.com', avatar: 'https://pbs.twimg.com/profile_images/1707883193054228480/n98q6t1L_400x400.jpg' },
|
|
11
|
+
{ name: 'Freddy', email: 'freddy@stacksjs.com', avatar: 'https://pbs.twimg.com/profile_images/1707883193054228480/n98q6t1L_400x400.jpg' },
|
|
12
|
+
{ name: 'Glenn', email: 'glenn@stacksjs.com', avatar: 'https://pbs.twimg.com/profile_images/1707883193054228480/n98q6t1L_400x400.jpg' },
|
|
13
|
+
{ name: 'Dorell', email: 'dorell@stacksjs.com', avatar: 'https://pbs.twimg.com/profile_images/1707883193054228480/n98q6t1L_400x400.jpg' },
|
|
14
|
+
{ name: 'Avery', email: 'avery@stacksjs.com', avatar: 'https://pbs.twimg.com/profile_images/1707883193054228480/n98q6t1L_400x400.jpg' }
|
|
15
|
+
]
|
|
16
|
+
</script>
|
|
17
|
+
<div class="bg-white">
|
|
18
|
+
<div class="mx-auto px-6 lg:px-8 max-w-7xl">
|
|
19
|
+
<ul role="list" class="grid gap-x-8 gap-y-16 grid-cols-2 sm:grid-cols-3 md:grid-cols-4 lg:grid-cols-5 xl:grid-cols-6 mt-20 mx-auto lg:mx-0 max-w-2xl lg:max-w-none text-center">
|
|
20
|
+
@foreach(teamMembers as member)
|
|
21
|
+
<li>
|
|
22
|
+
<img class="mx-auto h-24 w-24 rounded-full" src="{{ member.avatar }}" alt="{{ member.name }}">
|
|
23
|
+
<h3 class="mt-6 font-semibold leading-7 text-base text-gray-900 tracking-tight">
|
|
24
|
+
{{ member.name }}
|
|
25
|
+
</h3>
|
|
26
|
+
<p class="leading-6 text-gray-600 text-sm">
|
|
27
|
+
{{ member.email }}
|
|
28
|
+
</p>
|
|
29
|
+
</li>
|
|
30
|
+
@endforeach
|
|
31
|
+
</ul>
|
|
32
|
+
</div>
|
|
33
|
+
</div>
|