@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.
Files changed (286) hide show
  1. package/LICENSE.md +21 -0
  2. package/README.md +2 -0
  3. package/package.json +20 -0
  4. package/resources/assets/fonts/013717e9.woff +0 -0
  5. package/resources/assets/fonts/03355817.woff2 +0 -0
  6. package/resources/assets/fonts/0380de7e.woff2 +0 -0
  7. package/resources/assets/fonts/0ba5d32a.woff +0 -0
  8. package/resources/assets/fonts/0bd57ddf.woff2 +0 -0
  9. package/resources/assets/fonts/19de0a60.woff2 +0 -0
  10. package/resources/assets/fonts/20b87e84.woff +0 -0
  11. package/resources/assets/fonts/4bbc67e1.woff +0 -0
  12. package/resources/assets/fonts/576fb0d7.woff +0 -0
  13. package/resources/assets/fonts/5ea10ee5.woff2 +0 -0
  14. package/resources/assets/fonts/6413fc0a.woff +0 -0
  15. package/resources/assets/fonts/72c114cf.woff +0 -0
  16. package/resources/assets/fonts/73c57e73.woff2 +0 -0
  17. package/resources/assets/fonts/813dca6c.woff +0 -0
  18. package/resources/assets/fonts/8a9b0995.woff2 +0 -0
  19. package/resources/assets/fonts/90b4832f.woff +0 -0
  20. package/resources/assets/fonts/9394ab85.woff2 +0 -0
  21. package/resources/assets/fonts/9b3c7d7f.woff2 +0 -0
  22. package/resources/assets/fonts/Monaco.ttf +0 -0
  23. package/resources/assets/fonts/b1b36d74.woff +0 -0
  24. package/resources/assets/fonts/b5d74798.woff2 +0 -0
  25. package/resources/assets/fonts/b9f81a4d.woff +0 -0
  26. package/resources/assets/fonts/c9784008.woff2 +0 -0
  27. package/resources/assets/fonts/cf692227.woff +0 -0
  28. package/resources/assets/fonts/d1c6ab51.woff2 +0 -0
  29. package/resources/assets/fonts/e2eb62fc.woff +0 -0
  30. package/resources/assets/fonts/fe21f8d8.woff2 +0 -0
  31. package/resources/assets/fonts/nps/CampmateScript-Regular.woff2 +0 -0
  32. package/resources/assets/fonts/nps/NPS_2026-variable.woff2 +0 -0
  33. package/resources/assets/fonts/nps/RedwoodSerif-Regular.woff2 +0 -0
  34. package/resources/assets/fonts/nps/SequoiaSans-Regular.woff2 +0 -0
  35. package/resources/assets/fonts/nps/Switchback-Regular.woff2 +0 -0
  36. package/resources/assets/images/app-icon.png +0 -0
  37. package/resources/assets/images/bg-img.png +0 -0
  38. package/resources/assets/images/park-ridge.svg +15 -0
  39. package/resources/assets/images/topography.svg +1 -0
  40. package/resources/assets/scripts/main.ts +2153 -0
  41. package/resources/assets/styles/README.md +19 -0
  42. package/resources/assets/styles/docs/main.css +1 -0
  43. package/resources/assets/styles/docs/overrides.css +1 -0
  44. package/resources/assets/styles/docs/vars.css +8 -0
  45. package/resources/assets/styles/main.css +1419 -0
  46. package/resources/components/Button.stx +70 -0
  47. package/resources/components/Buttons/BaseButton.stx +39 -0
  48. package/resources/components/Buttons/Counter.stx +28 -0
  49. package/resources/components/Buttons/ToggleDark.stx +11 -0
  50. package/resources/components/Container.stx +10 -0
  51. package/resources/components/Dashboard/.gitkeep +0 -0
  52. package/resources/components/Dashboard/Auth/ForgotPassword.stx +127 -0
  53. package/resources/components/Dashboard/Auth/Login.stx +212 -0
  54. package/resources/components/Dashboard/Auth/Register.stx +306 -0
  55. package/resources/components/Dashboard/Avatar.stx +123 -0
  56. package/resources/components/Dashboard/Billing/ActivePlan.stx +57 -0
  57. package/resources/components/Dashboard/Billing/CardBrands.stx +32 -0
  58. package/resources/components/Dashboard/Billing/CardForm.stx +34 -0
  59. package/resources/components/Dashboard/Billing/OneTimePayment.stx +28 -0
  60. package/resources/components/Dashboard/Billing/PaymentForm.stx +33 -0
  61. package/resources/components/Dashboard/Billing/PaymentMethod.stx +66 -0
  62. package/resources/components/Dashboard/Billing/PaymentMethodList.stx +52 -0
  63. package/resources/components/Dashboard/Billing/Plans.stx +136 -0
  64. package/resources/components/Dashboard/Buttons/AppButton.stx +48 -0
  65. package/resources/components/Dashboard/Buttons/IconButton.stx +20 -0
  66. package/resources/components/Dashboard/Card.stx +78 -0
  67. package/resources/components/Dashboard/Chart.stx +75 -0
  68. package/resources/components/Dashboard/CodeEditor.stx +41 -0
  69. package/resources/components/Dashboard/Commerce/BulkActionBar.stx +70 -0
  70. package/resources/components/Dashboard/Commerce/CategoriesTable.stx +133 -0
  71. package/resources/components/Dashboard/Commerce/CouponsTable.stx +161 -0
  72. package/resources/components/Dashboard/Commerce/CustomersTable.stx +142 -0
  73. package/resources/components/Dashboard/Commerce/Delivery/DeliveryRoutesTable.stx +80 -0
  74. package/resources/components/Dashboard/Commerce/Delivery/DigitalDeliveryTable.stx +85 -0
  75. package/resources/components/Dashboard/Commerce/Delivery/DriversTable.stx +99 -0
  76. package/resources/components/Dashboard/Commerce/Delivery/LicenseKeysTable.stx +92 -0
  77. package/resources/components/Dashboard/Commerce/Delivery/LicenseTemplatesTable.stx +88 -0
  78. package/resources/components/Dashboard/Commerce/Delivery/Pagination.stx +122 -0
  79. package/resources/components/Dashboard/Commerce/Delivery/SearchFilter.stx +23 -0
  80. package/resources/components/Dashboard/Commerce/Delivery/ShippingMethodsTable.stx +80 -0
  81. package/resources/components/Dashboard/Commerce/Delivery/ShippingRatesTable.stx +59 -0
  82. package/resources/components/Dashboard/Commerce/Delivery/ShippingZonesTable.stx +71 -0
  83. package/resources/components/Dashboard/Commerce/Delivery/TabNavigation.stx +36 -0
  84. package/resources/components/Dashboard/Commerce/Forms/CouponsForm.stx +191 -0
  85. package/resources/components/Dashboard/Commerce/OrdersTable.stx +131 -0
  86. package/resources/components/Dashboard/Commerce/ProductsTable.stx +170 -0
  87. package/resources/components/Dashboard/CreateRecordModal.stx +363 -0
  88. package/resources/components/Dashboard/DashboardLayout.stx +155 -0
  89. package/resources/components/Dashboard/Deployments/ActivityFeed.stx +54 -0
  90. package/resources/components/Dashboard/Deployments/DeployScript.stx +23 -0
  91. package/resources/components/Dashboard/Deployments/DeploymentHistory.stx +97 -0
  92. package/resources/components/Dashboard/Deployments/DeploymentList.stx +94 -0
  93. package/resources/components/Dashboard/Deployments/LiveTerminalOutput.stx +18 -0
  94. package/resources/components/Dashboard/Elements/Dropdown.stx +57 -0
  95. package/resources/components/Dashboard/Email/EmailActivityChart.stx +111 -0
  96. package/resources/components/Dashboard/Email/EmailCompose.stx +72 -0
  97. package/resources/components/Dashboard/Email/EmailDetail.stx +105 -0
  98. package/resources/components/Dashboard/Email/EmailList.stx +117 -0
  99. package/resources/components/Dashboard/Email/EmailSearch.stx +40 -0
  100. package/resources/components/Dashboard/Email/EmailSidebar.stx +133 -0
  101. package/resources/components/Dashboard/GlobalSearch.stx +124 -0
  102. package/resources/components/Dashboard/MobileSidebar.stx +47 -0
  103. package/resources/components/Dashboard/Modals/BaseModal.stx +50 -0
  104. package/resources/components/Dashboard/Modals/Popups/Alert.stx +112 -0
  105. package/resources/components/Dashboard/Modals/Popups/Toast.stx +70 -0
  106. package/resources/components/Dashboard/Modals/ToastWrapper.stx +35 -0
  107. package/resources/components/Dashboard/Monitoring/ErrorDetailModal.stx +228 -0
  108. package/resources/components/Dashboard/Monitoring/ErrorsTable.stx +184 -0
  109. package/resources/components/Dashboard/Navbar.stx +194 -0
  110. package/resources/components/Dashboard/NavbarModern.stx +188 -0
  111. package/resources/components/Dashboard/NotificationErrorModal.stx +105 -0
  112. package/resources/components/Dashboard/NotificationStatusBadge.stx +20 -0
  113. package/resources/components/Dashboard/Pagination.stx +90 -0
  114. package/resources/components/Dashboard/Queue/QueueTable.stx +127 -0
  115. package/resources/components/Dashboard/Settings/Forms/AIForm.stx +126 -0
  116. package/resources/components/Dashboard/Settings/Forms/AnalyticsForm.stx +52 -0
  117. package/resources/components/Dashboard/Settings/Forms/AppForm.stx +157 -0
  118. package/resources/components/Dashboard/Settings/Forms/CLIForm.stx +66 -0
  119. package/resources/components/Dashboard/Settings/Forms/CacheForm.stx +253 -0
  120. package/resources/components/Dashboard/Settings/Forms/CloudForm.stx +441 -0
  121. package/resources/components/Dashboard/Settings/Forms/DNSForm.stx +307 -0
  122. package/resources/components/Dashboard/Settings/Forms/DatabaseForm.stx +168 -0
  123. package/resources/components/Dashboard/Settings/Forms/EmailForm.stx +100 -0
  124. package/resources/components/Dashboard/Settings/Forms/FileSystemForm.stx +259 -0
  125. package/resources/components/Dashboard/Settings/Forms/HashingForm.stx +119 -0
  126. package/resources/components/Dashboard/Settings/Forms/LibraryForm.stx +389 -0
  127. package/resources/components/Dashboard/Settings/Forms/QueueForm.stx +219 -0
  128. package/resources/components/Dashboard/Settings/Forms/SearchEngineForm.stx +48 -0
  129. package/resources/components/Dashboard/Settings/Forms/SecurityForm.stx +143 -0
  130. package/resources/components/Dashboard/Settings/Forms/ServicesForm.stx +194 -0
  131. package/resources/components/Dashboard/Settings/Forms/StorageForm.stx +191 -0
  132. package/resources/components/Dashboard/Settings/Forms/TeamsForm.stx +33 -0
  133. package/resources/components/Dashboard/Settings/SettingsFormManager.stx +181 -0
  134. package/resources/components/Dashboard/SettingsHeader.stx +88 -0
  135. package/resources/components/Dashboard/SettingsSidebar.stx +234 -0
  136. package/resources/components/Dashboard/Sidebar.stx +23 -0
  137. package/resources/components/Dashboard/SidebarModern.stx +249 -0
  138. package/resources/components/Dashboard/Skeleton/LoadingCard.stx +15 -0
  139. package/resources/components/Dashboard/Skeleton/LoadingDetails.stx +26 -0
  140. package/resources/components/Dashboard/Table.stx +82 -0
  141. package/resources/components/Dashboard/TerminalContainer.stx +97 -0
  142. package/resources/components/Dashboard/Tooltip.stx +166 -0
  143. package/resources/components/Dashboard/Transaction/index.stx +88 -0
  144. package/resources/components/Dashboard/UI/ActivityTable.stx +54 -0
  145. package/resources/components/Dashboard/UI/Avatar.stx +102 -0
  146. package/resources/components/Dashboard/UI/Badge.stx +66 -0
  147. package/resources/components/Dashboard/UI/Button.stx +73 -0
  148. package/resources/components/Dashboard/UI/Card.stx +51 -0
  149. package/resources/components/Dashboard/UI/ChartCard.stx +36 -0
  150. package/resources/components/Dashboard/UI/Checkbox.stx +74 -0
  151. package/resources/components/Dashboard/UI/ConfirmDialog.stx +74 -0
  152. package/resources/components/Dashboard/UI/DataTable.stx +45 -0
  153. package/resources/components/Dashboard/UI/Dropdown.stx +72 -0
  154. package/resources/components/Dashboard/UI/DropdownItem.stx +80 -0
  155. package/resources/components/Dashboard/UI/EmptyState.stx +50 -0
  156. package/resources/components/Dashboard/UI/FilterBar.stx +48 -0
  157. package/resources/components/Dashboard/UI/Input.stx +77 -0
  158. package/resources/components/Dashboard/UI/Modal.stx +75 -0
  159. package/resources/components/Dashboard/UI/PageHeader.stx +69 -0
  160. package/resources/components/Dashboard/UI/PageLayout.stx +84 -0
  161. package/resources/components/Dashboard/UI/Pagination.stx +126 -0
  162. package/resources/components/Dashboard/UI/QuickLinks.stx +31 -0
  163. package/resources/components/Dashboard/UI/RouterLink.stx +31 -0
  164. package/resources/components/Dashboard/UI/Select.stx +84 -0
  165. package/resources/components/Dashboard/UI/ServiceHealth.stx +38 -0
  166. package/resources/components/Dashboard/UI/StatsCard.stx +79 -0
  167. package/resources/components/Dashboard/UI/Table.stx +143 -0
  168. package/resources/components/Dashboard/UI/Tabs.stx +45 -0
  169. package/resources/components/Dashboard/UI/Textarea.stx +93 -0
  170. package/resources/components/Dashboard/UI/Toggle.stx +84 -0
  171. package/resources/components/Dashboard/UI/WindowControls.stx +135 -0
  172. package/resources/components/Dashboard/Widget.stx +89 -0
  173. package/resources/components/Dashboard/WindowControls.stx +119 -0
  174. package/resources/components/Dashboard/index.ts +106 -0
  175. package/resources/components/Docs/Demo/ComboboxCode.md +114 -0
  176. package/resources/components/Docs/Demo/ComboboxDemo.stx +91 -0
  177. package/resources/components/Docs/Demo/DialogCode.md +42 -0
  178. package/resources/components/Docs/Demo/DialogDemo.stx +76 -0
  179. package/resources/components/Docs/Demo/DocsPlayground.stx +39 -0
  180. package/resources/components/Docs/Demo/DropdownCode.md +109 -0
  181. package/resources/components/Docs/Demo/DropdownDemo.stx +82 -0
  182. package/resources/components/Docs/Demo/Hero.stx +100 -0
  183. package/resources/components/Docs/Demo/ListboxCode.md +87 -0
  184. package/resources/components/Docs/Demo/ListboxDemo.stx +59 -0
  185. package/resources/components/Docs/Demo/NotificationCode.md +173 -0
  186. package/resources/components/Docs/Demo/NotificationDemo.stx +99 -0
  187. package/resources/components/Docs/Demo/PopoverCode.md +161 -0
  188. package/resources/components/Docs/Demo/PopoverDemo.stx +96 -0
  189. package/resources/components/Docs/Demo/RadioGroupCode.md +98 -0
  190. package/resources/components/Docs/Demo/RadioGroupDemo.stx +53 -0
  191. package/resources/components/Docs/Demo/StepperCode.md +216 -0
  192. package/resources/components/Docs/Demo/StepperDemo.stx +137 -0
  193. package/resources/components/Docs/Demo/SwitchCode.md +24 -0
  194. package/resources/components/Docs/Demo/SwitchDemo.stx +28 -0
  195. package/resources/components/Docs/Home.stx +7 -0
  196. package/resources/components/Docs/HomeContributors.stx +23 -0
  197. package/resources/components/Docs/HomeSponsors.stx +17 -0
  198. package/resources/components/Docs/HomeTeam.stx +18 -0
  199. package/resources/components/Docs/TeamMember.stx +79 -0
  200. package/resources/components/Email/EmailButton.stx +32 -0
  201. package/resources/components/Email/EmailDivider.stx +20 -0
  202. package/resources/components/Email/EmailImage.stx +24 -0
  203. package/resources/components/Email/EmailLayout.stx +55 -0
  204. package/resources/components/Email/EmailLink.stx +22 -0
  205. package/resources/components/Email/EmailSection.stx +20 -0
  206. package/resources/components/Email/EmailText.stx +30 -0
  207. package/resources/components/Forum/ForumBreadcrumb.stx +38 -0
  208. package/resources/components/Forum/ForumCategory.stx +16 -0
  209. package/resources/components/Forum/ForumCategoryItem.stx +46 -0
  210. package/resources/components/Forum/ForumLayout.stx +36 -0
  211. package/resources/components/Forum/ForumPagination.stx +39 -0
  212. package/resources/components/Forum/ForumPost.stx +71 -0
  213. package/resources/components/Forum/ForumReplyForm.stx +76 -0
  214. package/resources/components/Forum/ForumSidebar.stx +86 -0
  215. package/resources/components/Forum/ForumTopicItem.stx +77 -0
  216. package/resources/components/Forum/ForumTopicList.stx +23 -0
  217. package/resources/components/HelloWorld.stx +253 -0
  218. package/resources/components/Logo.stx +10 -0
  219. package/resources/components/Marketing/CallToAction.stx +30 -0
  220. package/resources/components/Marketing/ComingSoon.stx +155 -0
  221. package/resources/components/Marketing/Faqs.stx +99 -0
  222. package/resources/components/Marketing/Feature.stx +32 -0
  223. package/resources/components/Marketing/Fields.stx +28 -0
  224. package/resources/components/Marketing/Footer.stx +33 -0
  225. package/resources/components/Marketing/Header.stx +51 -0
  226. package/resources/components/Marketing/Hero.stx +46 -0
  227. package/resources/components/Marketing/Layout.stx +26 -0
  228. package/resources/components/Marketing/NavLink.stx +13 -0
  229. package/resources/components/Marketing/Plan.stx +43 -0
  230. package/resources/components/Marketing/Pricing.stx +120 -0
  231. package/resources/components/Marketing/PrimaryFeatures.stx +80 -0
  232. package/resources/components/Marketing/PrimaryFeatures2.stx +98 -0
  233. package/resources/components/Marketing/SecondaryFeatures.stx +80 -0
  234. package/resources/components/Marketing/Testimonials.stx +120 -0
  235. package/resources/components/Pagination.stx +149 -0
  236. package/resources/components/Playground.stx +9 -0
  237. package/resources/components/README.md +87 -0
  238. package/resources/components/Storefront/AnnouncementBar.stx +17 -0
  239. package/resources/components/Storefront/CartDrawer.stx +227 -0
  240. package/resources/components/Storefront/CheckoutSteps.stx +50 -0
  241. package/resources/components/Storefront/Footer.stx +81 -0
  242. package/resources/components/Storefront/Header.stx +66 -0
  243. package/resources/components/Storefront/OrderSummary.stx +79 -0
  244. package/resources/components/Storefront/ProductCard.stx +63 -0
  245. package/resources/components/Storefront/ProductGallery.stx +88 -0
  246. package/resources/components/Storefront/QuantitySelector.stx +97 -0
  247. package/resources/components/index.ts +13 -0
  248. package/resources/emails/email-verification.stx +46 -0
  249. package/resources/emails/layouts/base.html +113 -0
  250. package/resources/emails/password-changed.stx +55 -0
  251. package/resources/emails/password-reset.stx +43 -0
  252. package/resources/emails/subscription-confirmation.stx +99 -0
  253. package/resources/emails/welcome.stx +48 -0
  254. package/resources/functions/README.md +28 -0
  255. package/resources/functions/counter.ts +13 -0
  256. package/resources/functions/dark.ts +4 -0
  257. package/resources/functions/dashboard/analytics.ts +238 -0
  258. package/resources/functions/dashboard/config-io.ts +316 -0
  259. package/resources/functions/dashboard/data.ts +375 -0
  260. package/resources/functions/dashboard/library.ts +250 -0
  261. package/resources/functions/dashboard/sidebar.ts +537 -0
  262. package/resources/functions/dashboard/system.ts +150 -0
  263. package/resources/layouts/403.stx +188 -0
  264. package/resources/layouts/404.stx +34 -0
  265. package/resources/layouts/README.md +14 -0
  266. package/resources/layouts/dashboard/default.stx +20 -0
  267. package/resources/layouts/dashboard/guest.stx +10 -0
  268. package/resources/layouts/default.stx +3 -0
  269. package/resources/layouts/maintenance.stx +11 -0
  270. package/resources/layouts/storefront.stx +73 -0
  271. package/resources/layouts/system-tray/default.stx +3 -0
  272. package/resources/modules/.gitkeep +0 -0
  273. package/resources/plugins/.gitkeep +0 -0
  274. package/resources/plugins/preloader.ts +308 -0
  275. package/resources/types/README.md +3 -0
  276. package/resources/views/cart.stx +149 -0
  277. package/resources/views/checkout/contact.stx +101 -0
  278. package/resources/views/checkout/payment.stx +114 -0
  279. package/resources/views/checkout/shipping.stx +120 -0
  280. package/resources/views/coming-soon.stx +9 -0
  281. package/resources/views/dashboard/custom-page.stx +45 -0
  282. package/resources/views/dashboard/index.stx +24 -0
  283. package/resources/views/emails/welcome.stx +0 -0
  284. package/resources/views/errors/tester.stx +26 -0
  285. package/resources/views/index.stx +2865 -0
  286. package/resources/views/orders/[id].stx +130 -0
@@ -0,0 +1,307 @@
1
+ <script>
2
+ interface DNSFormProps {
3
+ nameservers?: string
4
+ aRecords?: string
5
+ }
6
+
7
+ const { nameservers = '', aRecords = [ } = defineProps<DNSFormProps>()
8
+
9
+ // A Records data
10
+ { name: 'localhost', address: '10.0.0.1', ttl: 300 },
11
+ { name: 'www', address: '@', ttl: 300 }
12
+ ]
13
+ </script>
14
+ <form>
15
+ <main class="border-b border-gray-900/10">
16
+ <!-- Settings forms -->
17
+ <div class="divide-gray-900/10 divide-y">
18
+ <div class="grid gap-x-8 gap-y-10 grid-cols-1 md:grid-cols-3 py-16 max-w-7xl">
19
+ <div>
20
+ <h2 class="font-semibold leading-7 text-base text-gray-900 dark:text-neutral-100">
21
+ Nameservers
22
+ </h2>
23
+ <p class="mt-1 leading-6 text-gray-600 text-sm">
24
+ Update your Name servers settings.
25
+ </p>
26
+ </div>
27
+
28
+ <div class="md:col-span-2">
29
+ <div class="grid gap-x-6 gap-y-8 grid-cols-1 sm:grid-cols-6 sm:max-w-xl">
30
+ <div class="sm:col-span-full">
31
+ <label for="nameservers" class="block font-medium leading-6 text-gray-900 text-sm dark:text-neutral-100">Nameservers</label>
32
+ <div class="mt-2">
33
+ <input
34
+ id="nameservers"
35
+ type="text"
36
+ name="nameservers"
37
+ value="{{ nameservers }}"
38
+ 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"
39
+ >
40
+ </div>
41
+ </div>
42
+ </div>
43
+ </div>
44
+ </div>
45
+
46
+ <div class="grid gap-x-8 gap-y-10 grid-cols-1 py-16 max-w-7xl">
47
+ <div>
48
+ <h2 class="font-semibold leading-7 text-base text-gray-900 dark:text-neutral-100">
49
+ A Records
50
+ </h2>
51
+ <p class="mt-1 leading-6 text-gray-600 text-sm">
52
+ Update your A Records.
53
+ </p>
54
+ </div>
55
+
56
+ <div>
57
+ <table class="min-w-full divide-gray-300 divide-y">
58
+ <thead>
59
+ <tr>
60
+ <th scope="col" class="pl-4 pr-3 py-3.5 sm:pl-0 font-semibold text-gray-900 text-left text-sm uppercase">
61
+ Name
62
+ </th>
63
+ <th scope="col" class="hidden lg:table-cell px-3 py-3.5 font-semibold text-gray-900 text-left text-sm uppercase">
64
+ Address
65
+ </th>
66
+ <th scope="col" class="px-3 py-3.5 font-semibold text-gray-900 text-left text-sm uppercase">
67
+ ttl
68
+ </th>
69
+ <th scope="col" class="relative pl-3 pr-4 py-3.5 sm:pr-0">
70
+ <span class="sr-only">Actions</span>
71
+ </th>
72
+ </tr>
73
+ </thead>
74
+ <tbody class="bg-white divide-gray-200 divide-y">
75
+ @foreach(aRecords as record)
76
+ <tr>
77
+ <td class="pl-4 pr-3 py-4 sm:pl-0 max-w-0 w-full sm:max-w-none sm:w-auto font-medium text-gray-900 text-sm">
78
+ {{ record.name }}
79
+ <dl class="lg:hidden font-normal">
80
+ <dt class="sr-only">Address</dt>
81
+ <dd class="mt-1 text-gray-700 truncate">{{ record.address }}</dd>
82
+ <dt class="sm:hidden sr-only">TTL</dt>
83
+ <dd class="sm:hidden mt-1 text-gray-500 truncate">{{ record.ttl }}</dd>
84
+ </dl>
85
+ </td>
86
+ <td class="hidden lg:table-cell px-3 py-4 text-gray-500 text-sm">{{ record.address }}</td>
87
+ <td class="hidden sm:table-cell px-3 py-4 text-gray-500 text-sm">{{ record.ttl }}</td>
88
+ <td class="pl-3 pr-4 py-4 space-x-6 sm:pr-0 font-medium text-right text-sm">
89
+ <a href="#" class="font-semibold text-gray-400 hover:text-gray-600" data-action="delete">Delete<span class="sr-only">, {{ record.name }}</span></a>
90
+ <a href="#" class="font-semibold text-indigo-600 hover:text-indigo-900" data-action="edit">Edit<span class="sr-only">, {{ record.name }}</span></a>
91
+ </td>
92
+ </tr>
93
+ @endforeach
94
+ <tr>
95
+ <td class="pl-4 pr-3 py-4 sm:pl-0 max-w-0 w-full sm:max-w-none sm:w-auto font-medium text-gray-900 text-sm">
96
+ <input
97
+ type="text"
98
+ name="a-record-name"
99
+ value=""
100
+ 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"
101
+ >
102
+ </td>
103
+ <td class="hidden lg:table-cell px-3 py-4 text-gray-500 text-sm">
104
+ <input
105
+ type="text"
106
+ name="a-record-address"
107
+ value=""
108
+ 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"
109
+ >
110
+ </td>
111
+ <td class="hidden sm:table-cell px-3 py-4 text-gray-500 text-sm">
112
+ <input
113
+ type="text"
114
+ name="a-record-ttl"
115
+ placeholder="auto"
116
+ value=""
117
+ 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"
118
+ >
119
+ </td>
120
+ <td class="pl-3 pr-4 py-4 space-x-6 sm:pr-0 font-medium text-right text-sm">
121
+ <button type="button" class="font-semibold text-indigo-600 hover:text-indigo-900" data-action="add-a-record">
122
+ Add
123
+ </button>
124
+ </td>
125
+ </tr>
126
+ </tbody>
127
+ </table>
128
+ </div>
129
+ </div>
130
+
131
+ <div class="grid gap-x-8 gap-y-10 grid-cols-1 py-16 max-w-7xl">
132
+ <div>
133
+ <h2 class="font-semibold leading-7 text-base text-gray-900 dark:text-neutral-100">
134
+ AAAA Records
135
+ </h2>
136
+ <p class="mt-1 leading-6 text-gray-600 text-sm">
137
+ Update your AAAA Records.
138
+ </p>
139
+ </div>
140
+
141
+ <div>
142
+ <table class="min-w-full divide-gray-300 divide-y">
143
+ <thead>
144
+ <tr>
145
+ <th scope="col" class="pl-4 pr-3 py-3.5 sm:pl-0 font-semibold text-gray-900 text-left text-sm uppercase">Name</th>
146
+ <th scope="col" class="hidden lg:table-cell px-3 py-3.5 font-semibold text-gray-900 text-left text-sm uppercase">Address</th>
147
+ <th scope="col" class="px-3 py-3.5 font-semibold text-gray-900 text-left text-sm uppercase">ttl</th>
148
+ <th scope="col" class="relative pl-3 pr-4 py-3.5 sm:pr-0"><span class="sr-only">Actions</span></th>
149
+ </tr>
150
+ </thead>
151
+ <tbody class="bg-white divide-gray-200 divide-y">
152
+ <tr>
153
+ <td class="pl-4 pr-3 py-4 sm:pl-0 max-w-0 w-full sm:max-w-none sm:w-auto font-medium text-gray-900 text-sm">
154
+ <input type="text" name="aaaa-record-name" value="" 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">
155
+ </td>
156
+ <td class="hidden lg:table-cell px-3 py-4 text-gray-500 text-sm">
157
+ <input type="text" name="aaaa-record-address" value="" 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">
158
+ </td>
159
+ <td class="hidden sm:table-cell px-3 py-4 text-gray-500 text-sm">
160
+ <input type="text" name="aaaa-record-ttl" placeholder="auto" value="" 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">
161
+ </td>
162
+ <td class="pl-3 pr-4 py-4 space-x-6 sm:pr-0 font-medium text-right text-sm">
163
+ <button type="button" class="font-semibold text-indigo-600 hover:text-indigo-900" data-action="add-aaaa-record">Add</button>
164
+ </td>
165
+ </tr>
166
+ </tbody>
167
+ </table>
168
+ </div>
169
+ </div>
170
+
171
+ <div class="grid gap-x-8 gap-y-10 grid-cols-1 py-16 max-w-7xl">
172
+ <div>
173
+ <h2 class="font-semibold leading-7 text-base text-gray-900 dark:text-neutral-100">
174
+ CNAME Records
175
+ </h2>
176
+ <p class="mt-1 leading-6 text-gray-600 text-sm">
177
+ Update your CNAME Records.
178
+ </p>
179
+ </div>
180
+
181
+ <div>
182
+ <table class="min-w-full divide-gray-300 divide-y">
183
+ <thead>
184
+ <tr>
185
+ <th scope="col" class="pl-4 pr-3 py-3.5 sm:pl-0 font-semibold text-gray-900 text-left text-sm uppercase">Name</th>
186
+ <th scope="col" class="hidden lg:table-cell px-3 py-3.5 font-semibold text-gray-900 text-left text-sm uppercase">Target</th>
187
+ <th scope="col" class="px-3 py-3.5 font-semibold text-gray-900 text-left text-sm uppercase">ttl</th>
188
+ <th scope="col" class="relative pl-3 pr-4 py-3.5 sm:pr-0"><span class="sr-only">Actions</span></th>
189
+ </tr>
190
+ </thead>
191
+ <tbody class="bg-white divide-gray-200 divide-y">
192
+ <tr>
193
+ <td class="pl-4 pr-3 py-4 sm:pl-0 max-w-0 w-full sm:max-w-none sm:w-auto font-medium text-gray-900 text-sm">
194
+ <input type="text" name="cname-record-name" value="" 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">
195
+ </td>
196
+ <td class="hidden lg:table-cell px-3 py-4 text-gray-500 text-sm">
197
+ <input type="text" name="cname-record-target" value="" 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">
198
+ </td>
199
+ <td class="hidden sm:table-cell px-3 py-4 text-gray-500 text-sm">
200
+ <input type="text" name="cname-record-ttl" placeholder="auto" value="" 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">
201
+ </td>
202
+ <td class="pl-3 pr-4 py-4 space-x-6 sm:pr-0 font-medium text-right text-sm">
203
+ <button type="button" class="font-semibold text-indigo-600 hover:text-indigo-900" data-action="add-cname-record">Add</button>
204
+ </td>
205
+ </tr>
206
+ </tbody>
207
+ </table>
208
+ </div>
209
+ </div>
210
+
211
+ <div class="grid gap-x-8 gap-y-10 grid-cols-1 py-16 max-w-7xl">
212
+ <div>
213
+ <h2 class="font-semibold leading-7 text-base text-gray-900 dark:text-neutral-100">
214
+ MX Records
215
+ </h2>
216
+ <p class="mt-1 leading-6 text-gray-600 text-sm">
217
+ Update your MX Records.
218
+ </p>
219
+ </div>
220
+
221
+ <div>
222
+ <table class="min-w-full divide-gray-300 divide-y">
223
+ <thead>
224
+ <tr>
225
+ <th scope="col" class="pl-4 pr-3 py-3.5 sm:pl-0 font-semibold text-gray-900 text-left text-sm uppercase">Name</th>
226
+ <th scope="col" class="hidden lg:table-cell px-3 py-3.5 font-semibold text-gray-900 text-left text-sm uppercase">Mail Server</th>
227
+ <th scope="col" class="hidden lg:table-cell px-3 py-3.5 font-semibold text-gray-900 text-left text-sm uppercase">ttl</th>
228
+ <th scope="col" class="px-3 py-3.5 font-semibold text-gray-900 text-left text-sm uppercase">Priority</th>
229
+ <th scope="col" class="relative pl-3 pr-4 py-3.5 sm:pr-0"><span class="sr-only">Actions</span></th>
230
+ </tr>
231
+ </thead>
232
+ <tbody class="bg-white divide-gray-200 divide-y">
233
+ <tr>
234
+ <td class="pl-4 pr-3 py-4 sm:pl-0 max-w-0 w-full sm:max-w-none sm:w-auto font-medium text-gray-900 text-sm">
235
+ <input type="text" name="mx-record-name" value="" 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">
236
+ </td>
237
+ <td class="hidden lg:table-cell px-3 py-4 text-gray-500 text-sm">
238
+ <input type="text" name="mx-record-server" value="" 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">
239
+ </td>
240
+ <td class="hidden sm:table-cell px-3 py-4 text-gray-500 text-sm">
241
+ <input type="text" name="mx-record-ttl" placeholder="auto" value="" 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">
242
+ </td>
243
+ <td class="hidden sm:table-cell px-3 py-4 text-gray-500 text-sm">
244
+ <input type="text" name="mx-record-priority" value="" 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">
245
+ </td>
246
+ <td class="pl-3 pr-4 py-4 space-x-6 sm:pr-0 font-medium text-right text-sm">
247
+ <button type="button" class="font-semibold text-indigo-600 hover:text-indigo-900" data-action="add-mx-record">Add</button>
248
+ </td>
249
+ </tr>
250
+ </tbody>
251
+ </table>
252
+ </div>
253
+ </div>
254
+
255
+ <div class="grid gap-x-8 gap-y-10 grid-cols-1 py-16 max-w-7xl">
256
+ <div>
257
+ <h2 class="font-semibold leading-7 text-base text-gray-900 dark:text-neutral-100">
258
+ TXT Records
259
+ </h2>
260
+ <p class="mt-1 leading-6 text-gray-600 text-sm">
261
+ Update your TXT Records.
262
+ </p>
263
+ </div>
264
+
265
+ <div>
266
+ <table class="min-w-full divide-gray-300 divide-y">
267
+ <thead>
268
+ <tr>
269
+ <th scope="col" class="pl-4 pr-3 py-3.5 sm:pl-0 font-semibold text-gray-900 text-left text-sm uppercase">Name</th>
270
+ <th scope="col" class="hidden lg:table-cell px-3 py-3.5 font-semibold text-gray-900 text-left text-sm uppercase">Content</th>
271
+ <th scope="col" class="hidden lg:table-cell px-3 py-3.5 font-semibold text-gray-900 text-left text-sm uppercase">ttl</th>
272
+ <th scope="col" class="relative pl-3 pr-4 py-3.5 sm:pr-0"><span class="sr-only">Actions</span></th>
273
+ </tr>
274
+ </thead>
275
+ <tbody class="bg-white divide-gray-200 divide-y">
276
+ <tr>
277
+ <td class="pl-4 pr-3 py-4 sm:pl-0 max-w-0 w-full sm:max-w-none sm:w-auto font-medium text-gray-900 text-sm">
278
+ <input type="text" name="txt-record-name" value="" 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">
279
+ </td>
280
+ <td class="hidden lg:table-cell px-3 py-4 text-gray-500 text-sm">
281
+ <input type="text" name="txt-record-content" value="" 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">
282
+ </td>
283
+ <td class="hidden sm:table-cell px-3 py-4 text-gray-500 text-sm">
284
+ <input type="text" name="txt-record-ttl" placeholder="auto" value="" 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">
285
+ </td>
286
+ <td class="pl-3 pr-4 py-4 space-x-6 sm:pr-0 font-medium text-right text-sm">
287
+ <button type="button" class="font-semibold text-indigo-600 hover:text-indigo-900" data-action="add-txt-record">Add</button>
288
+ </td>
289
+ </tr>
290
+ </tbody>
291
+ </table>
292
+ </div>
293
+ </div>
294
+ </div>
295
+ </main>
296
+ <div class="flex gap-x-6 items-center justify-end mt-6">
297
+ <button type="button" class="font-semibold leading-6 text-gray-900 text-sm">
298
+ Cancel
299
+ </button>
300
+ <button
301
+ type="submit"
302
+ 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"
303
+ >
304
+ Save
305
+ </button>
306
+ </div>
307
+ </form>
@@ -0,0 +1,168 @@
1
+ <script>
2
+ interface DatabaseFormProps {
3
+ mysqlHost?: string
4
+ mysqlPort?: string
5
+ mysqlUsername?: string
6
+ mysqlPassword?: string
7
+ mysqlDatabase?: string
8
+ sqliteHost?: string
9
+ sqlitePrefix?: string
10
+ sqliteDatabase?: string
11
+ }
12
+
13
+ const { mysqlHost = 'stacks', mysqlPort = '3306', mysqlUsername = 'root', mysqlPassword = '', mysqlDatabase = '', sqliteHost = '127.0.0.1', sqlitePrefix = 'sqlite', sqliteDatabase = 'stacks' } = defineProps<DatabaseFormProps>()
14
+
15
+ // MySQL settings
16
+ // SQLite settings
17
+ </script>
18
+ <form>
19
+ <main class="border-b border-gray-900/10">
20
+ <!-- Settings forms -->
21
+ <div class="divide-gray-900/10 divide-y">
22
+ <div class="grid gap-x-8 gap-y-10 grid-cols-1 md:grid-cols-3 py-16 max-w-7xl">
23
+ <div>
24
+ <h2 class="font-semibold leading-7 text-base text-gray-900 dark:text-neutral-100">
25
+ MySQL
26
+ </h2>
27
+ <p class="mt-1 leading-6 text-gray-600 text-sm">
28
+ Update your MySQL driver settings.
29
+ </p>
30
+ </div>
31
+
32
+ <div class="md:col-span-2">
33
+ <div class="grid gap-x-6 gap-y-8 grid-cols-1 sm:grid-cols-6 sm:max-w-xl">
34
+ <div class="sm:col-span-3">
35
+ <label for="mysql-host" class="block font-medium leading-6 text-gray-900 text-sm dark:text-neutral-100">Host</label>
36
+ <div class="mt-2">
37
+ <input
38
+ id="mysql-host"
39
+ type="text"
40
+ name="mysql-host"
41
+ value="{{ mysqlHost }}"
42
+ 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"
43
+ >
44
+ </div>
45
+ </div>
46
+
47
+ <div class="sm:col-span-3">
48
+ <label for="mysql-port" class="block font-medium leading-6 text-gray-900 text-sm dark:text-neutral-100">Port</label>
49
+ <div class="mt-2">
50
+ <input
51
+ id="mysql-port"
52
+ type="text"
53
+ name="mysql-port"
54
+ value="{{ mysqlPort }}"
55
+ 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"
56
+ >
57
+ </div>
58
+ </div>
59
+
60
+ <div class="sm:col-span-3">
61
+ <label for="mysql-username" class="block font-medium leading-6 text-gray-900 text-sm dark:text-neutral-100">Username</label>
62
+ <div class="mt-2">
63
+ <input
64
+ id="mysql-username"
65
+ type="text"
66
+ name="mysql-username"
67
+ value="{{ mysqlUsername }}"
68
+ 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"
69
+ >
70
+ </div>
71
+ </div>
72
+
73
+ <div class="sm:col-span-3">
74
+ <label for="mysql-password" class="block font-medium leading-6 text-gray-900 text-sm dark:text-neutral-100">Password</label>
75
+ <div class="mt-2">
76
+ <input
77
+ id="mysql-password"
78
+ type="password"
79
+ name="mysql-password"
80
+ value="{{ mysqlPassword }}"
81
+ 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"
82
+ >
83
+ </div>
84
+ </div>
85
+
86
+ <div class="sm:col-span-full">
87
+ <label for="mysql-database" class="block font-medium leading-6 text-gray-900 text-sm dark:text-neutral-100">Database</label>
88
+ <div class="mt-2">
89
+ <input
90
+ id="mysql-database"
91
+ type="text"
92
+ name="mysql-database"
93
+ value="{{ mysqlDatabase }}"
94
+ 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"
95
+ >
96
+ </div>
97
+ </div>
98
+ </div>
99
+ </div>
100
+ </div>
101
+
102
+ <div class="grid gap-x-8 gap-y-10 grid-cols-1 md:grid-cols-3 py-16 max-w-7xl">
103
+ <div>
104
+ <h2 class="font-semibold leading-7 text-base text-gray-900 dark:text-neutral-100">
105
+ SQLite
106
+ </h2>
107
+ <p class="mt-1 leading-6 text-gray-600 text-sm">
108
+ Update your SQLite driver settings.
109
+ </p>
110
+ </div>
111
+
112
+ <div class="md:col-span-2">
113
+ <div class="grid gap-x-6 gap-y-8 grid-cols-1 sm:grid-cols-6 sm:max-w-xl">
114
+ <div class="sm:col-span-3">
115
+ <label for="sqlite-host" class="block font-medium leading-6 text-gray-900 text-sm dark:text-neutral-100">Host</label>
116
+ <div class="mt-2">
117
+ <input
118
+ id="sqlite-host"
119
+ type="text"
120
+ name="sqlite-host"
121
+ value="{{ sqliteHost }}"
122
+ 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"
123
+ >
124
+ </div>
125
+ </div>
126
+
127
+ <div class="sm:col-span-3">
128
+ <label for="sqlite-prefix" class="block font-medium leading-6 text-gray-900 text-sm dark:text-neutral-100">Prefix</label>
129
+ <div class="mt-2">
130
+ <input
131
+ id="sqlite-prefix"
132
+ type="text"
133
+ name="sqlite-prefix"
134
+ value="{{ sqlitePrefix }}"
135
+ 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"
136
+ >
137
+ </div>
138
+ </div>
139
+
140
+ <div class="sm:col-span-full">
141
+ <label for="sqlite-database" class="block font-medium leading-6 text-gray-900 text-sm dark:text-neutral-100">Database</label>
142
+ <div class="mt-2">
143
+ <input
144
+ id="sqlite-database"
145
+ type="text"
146
+ name="sqlite-database"
147
+ value="{{ sqliteDatabase }}"
148
+ 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"
149
+ >
150
+ </div>
151
+ </div>
152
+ </div>
153
+ </div>
154
+ </div>
155
+ </div>
156
+ </main>
157
+ <div class="flex gap-x-6 items-center justify-end mt-6">
158
+ <button type="button" class="font-semibold leading-6 text-gray-900 text-sm">
159
+ Cancel
160
+ </button>
161
+ <button
162
+ type="submit"
163
+ 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"
164
+ >
165
+ Save
166
+ </button>
167
+ </div>
168
+ </form>
@@ -0,0 +1,100 @@
1
+ <script>
2
+ interface EmailFormProps {
3
+ fromName?: string
4
+ fromAddress?: string
5
+ mailboxes?: string
6
+ url?: string
7
+ charset?: string
8
+ scanServer?: boolean
9
+ }
10
+
11
+ const { fromName = 'Stacks', fromAddress = 'no-reply@stacksjs.com', mailboxes = 'chris@stacksjs.com,blake@stacksjs.com,glenn@stacksjs.com', url = 'http:, charset = 'UTF-8', scanServer = true } = defineProps<EmailFormProps>()
12
+ </script>
13
+ <form>
14
+ <main class="border-b border-gray-900/10">
15
+ <!-- Settings forms -->
16
+ <div class="divide-gray-900/10 divide-y">
17
+ <div class="grid gap-x-8 gap-y-10 grid-cols-1 md:grid-cols-3 py-16 max-w-7xl">
18
+ <div>
19
+ <h2 class="font-semibold leading-7 text-base text-gray-900 dark:text-neutral-100">
20
+ Default Email Settings
21
+ </h2>
22
+ <p class="mt-1 leading-6 text-gray-600 text-sm">
23
+ Update your default email settings
24
+ </p>
25
+ </div>
26
+
27
+ <div class="md:col-span-2">
28
+ <div class="grid gap-x-6 gap-y-8 grid-cols-1 sm:grid-cols-6 w-full">
29
+ <div class="sm:col-span-3">
30
+ <label for="from" class="block font-medium leading-6 text-gray-900 text-sm">From Name</label>
31
+ <div class="mt-2">
32
+ <input id="from" type="text" name="from" value="{{ fromName }}" 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">
33
+ </div>
34
+ </div>
35
+
36
+ <div class="sm:col-span-3">
37
+ <label for="address" class="block font-medium leading-6 text-gray-900 text-sm">From Address</label>
38
+ <div class="mt-2">
39
+ <input id="address" type="text" name="address" value="{{ fromAddress }}" 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">
40
+ </div>
41
+ </div>
42
+
43
+ <div class="sm:col-span-full">
44
+ <label for="mailboxes" class="block font-medium leading-6 text-gray-900 text-sm">Mailboxes</label>
45
+ <div class="mt-2">
46
+ <input id="mailboxes" type="text" name="mailboxes" value="{{ mailboxes }}" 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">
47
+ </div>
48
+ </div>
49
+
50
+ <div class="sm:col-span-3">
51
+ <label for="url" class="block font-medium leading-6 text-gray-900 text-sm">Url</label>
52
+ <div class="mt-2">
53
+ <input id="url" type="text" name="url" value="{{ url }}" 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">
54
+ </div>
55
+ </div>
56
+
57
+ <div class="sm:col-span-3">
58
+ <label for="charset" class="block font-medium leading-6 text-gray-900 text-sm">Charset</label>
59
+ <div class="mt-2">
60
+ <select id="charset" name="charset" 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">
61
+ <option {{ charset == 'UTF-8' ? 'selected' : '' }}>UTF-8</option>
62
+ </select>
63
+ </div>
64
+ </div>
65
+
66
+ <div class="sm:col-span-2">
67
+ <label for="scan-server" class="block font-medium leading-6 text-gray-900 text-sm">Scan Server</label>
68
+ <div class="mt-2">
69
+ <button
70
+ type="button"
71
+ class="relative h-6 w-11 inline-flex flex-shrink-0 cursor-pointer border-2 border-transparent rounded-full {{ scanServer ? '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"
72
+ role="switch"
73
+ aria-checked="{{ scanServer ? 'true' : 'false' }}"
74
+ data-action="toggle-scan-server"
75
+ >
76
+ <span class="sr-only">Scan Server</span>
77
+ <span
78
+ aria-hidden="true"
79
+ class="pointer-events-none inline-block h-5 w-5 {{ scanServer ? 'translate-x-5' : 'translate-x-0' }} transform rounded-full bg-white shadow ring-0 transition duration-200 ease-in-out"
80
+ ></span>
81
+ </button>
82
+ </div>
83
+ </div>
84
+ </div>
85
+ </div>
86
+ </div>
87
+ </div>
88
+ </main>
89
+ <div class="flex gap-x-6 items-center justify-end mt-6">
90
+ <button type="button" class="font-semibold leading-6 text-gray-900 text-sm">
91
+ Cancel
92
+ </button>
93
+ <button
94
+ type="submit"
95
+ 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"
96
+ >
97
+ Save
98
+ </button>
99
+ </div>
100
+ </form>