create-nkvs-mongoose-hono 1.0.1 → 1.0.3
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/README.md +167 -1
- package/data/_modules/hono/main.dev.js +1 -1
- package/data/_modules/mongoose/crud.js +16 -3
- package/data/_modules/packages/validator.js +1 -1
- package/data/src/models/Apple.js +7 -1
- package/data/src/routers/apples.js +3 -3
- package/data/static/compass/assets/config-DiQ0KSRC.js +1 -0
- package/data/static/compass/assets/global-middleware-D_iAyTrE.js +1 -0
- package/data/static/{assets/home-C8wFEWSp.js → compass/assets/home--bVFpcXR.js} +1 -1
- package/data/static/{assets/how-to-import-dev-middleware-Dkjtz_TK.js → compass/assets/how-to-import-dev-middleware-BKbmlczn.js} +1 -1
- package/data/static/{assets/how-to-import-dev-router-C_FL_6YO.js → compass/assets/how-to-import-dev-router-Chu2o0sm.js} +1 -1
- package/data/static/{assets/how-to-import-middleware-pnpQzveJ.js → compass/assets/how-to-import-middleware-BWMQNy7n.js} +1 -1
- package/data/static/{assets/how-to-import-model-7YtG50D5.js → compass/assets/how-to-import-model-BvwXzDVv.js} +1 -1
- package/data/static/compass/assets/index-Cu-UoRpJ.css +1 -0
- package/data/static/{assets/index-DkMBvkWC.js → compass/assets/index-D6H45Mb0.js} +2 -2
- package/data/static/compass/assets/middleware-CiRXg1kd.js +1 -0
- package/data/static/{assets/middleware-example-CqXnnA18.js → compass/assets/middleware-example-CjbC5awT.js} +1 -1
- package/data/static/compass/assets/models-BNO9a_uW.js +1 -0
- package/data/static/compass/assets/requests-CrVIycm3.js +1 -0
- package/data/static/compass/assets/routers-BrLbEkdM.js +1 -0
- package/data/static/compass/index.html +14 -0
- package/data/static/compass/vite.svg +1 -0
- package/data/static/doc.json +4 -3
- package/package.json +1 -1
- package/data/static/assets/config-DuGTvsaZ.js +0 -1
- package/data/static/assets/global-middleware-BVVqmyNN.js +0 -1
- package/data/static/assets/index-DNQIE9Ws.css +0 -1
- package/data/static/assets/middleware-CiGF19ia.js +0 -1
- package/data/static/assets/models-2cm6KrTp.js +0 -1
- package/data/static/assets/routers-BVTEq3Lk.js +0 -1
- package/data/static/index.html +0 -14
package/README.md
CHANGED
|
@@ -1,6 +1,8 @@
|
|
|
1
1
|
# Package
|
|
2
2
|
|
|
3
|
-
The logic of this package is not yet perfect, but you can try
|
|
3
|
+
The logic of this package is not yet perfect, but you can try to use it.
|
|
4
|
+
|
|
5
|
+
Once you start the project, you can open http://localhost:3000/static/compass (default port is 3000).
|
|
4
6
|
|
|
5
7
|
## Usage
|
|
6
8
|
|
|
@@ -13,3 +15,167 @@ The logic of this package is not yet perfect, but you can try using it.
|
|
|
13
15
|
- npm run dev
|
|
14
16
|
- npm run build
|
|
15
17
|
- npm run start
|
|
18
|
+
|
|
19
|
+
### Global Middleware
|
|
20
|
+
|
|
21
|
+
```JavaScript
|
|
22
|
+
import { cors } from 'hono/cors'
|
|
23
|
+
import { prettyJSON } from 'hono/pretty-json'
|
|
24
|
+
|
|
25
|
+
const { globalMiddleware } = store.get('app')
|
|
26
|
+
globalMiddleware.push(cors(), prettyJSON())
|
|
27
|
+
```
|
|
28
|
+
|
|
29
|
+
### Middleware
|
|
30
|
+
|
|
31
|
+
```JavaScript
|
|
32
|
+
const { middleware } = store.get('app')
|
|
33
|
+
middleware['test'] = async function (context, next) {
|
|
34
|
+
console.log(1)
|
|
35
|
+
await next()
|
|
36
|
+
}
|
|
37
|
+
```
|
|
38
|
+
|
|
39
|
+
### Global Middleware & Middleware / middleware/_import.js
|
|
40
|
+
|
|
41
|
+
```JavaScript
|
|
42
|
+
import './global.js'
|
|
43
|
+
import './test.js'
|
|
44
|
+
```
|
|
45
|
+
|
|
46
|
+
### Global Middleware - Dev
|
|
47
|
+
|
|
48
|
+
```JavaScript
|
|
49
|
+
const { globalMiddleware } = store.get('_app')
|
|
50
|
+
globalMiddleware['cors'] = 'cors.'
|
|
51
|
+
globalMiddleware['prettyJSON'] = 'pretty JSON.'
|
|
52
|
+
```
|
|
53
|
+
|
|
54
|
+
### Middleware - Dev
|
|
55
|
+
|
|
56
|
+
```JavaScript
|
|
57
|
+
const { middleware } = store.get('_app')
|
|
58
|
+
middleware['test'] = 'console log 1.'
|
|
59
|
+
```
|
|
60
|
+
|
|
61
|
+
### Global Middleware - Dev & Middleware - Dev / middleware/_import.dev.js
|
|
62
|
+
|
|
63
|
+
```JavaScript
|
|
64
|
+
import './global.dev.js'
|
|
65
|
+
import './test.dev.js'
|
|
66
|
+
```
|
|
67
|
+
|
|
68
|
+
### Router
|
|
69
|
+
|
|
70
|
+
```JavaScript
|
|
71
|
+
store.get('app').routers.push({
|
|
72
|
+
path: '/apples',
|
|
73
|
+
crud: {
|
|
74
|
+
model: 'Apple',
|
|
75
|
+
findAll: { count: true, populate: 'color', limit: 5 }
|
|
76
|
+
findOne: { populate: 'color' }
|
|
77
|
+
},
|
|
78
|
+
events: {
|
|
79
|
+
'GET /test': { middleware: ['test'], async handler({ json }) { return json({}) } }
|
|
80
|
+
}
|
|
81
|
+
)}
|
|
82
|
+
```
|
|
83
|
+
|
|
84
|
+
### Router / findAll
|
|
85
|
+
|
|
86
|
+
Boolean or Object
|
|
87
|
+
|
|
88
|
+
| Name | Type | Example |
|
|
89
|
+
| :--------- | :------------------------------- | :----------------------------------------------------------- |
|
|
90
|
+
| middleware | Array-String | ['test'] |
|
|
91
|
+
| filter | Object | { 'age[gte]': 18 } |
|
|
92
|
+
| fields | String | 'name color' ✅, 'name -createdAt' ❌, '-createdAt -upadtedAt' ❌ |
|
|
93
|
+
| sort | String | '-createdAt' |
|
|
94
|
+
| page | Number | 1 |
|
|
95
|
+
| limit | Number or Boolean | false, 10, If number > 300 then number = 300 |
|
|
96
|
+
| populate | String or Object or Array-Object | 'color', { path: 'color', select: 'name', populate: {} }, [{ path: 'color' }] |
|
|
97
|
+
| count | Boolean | true |
|
|
98
|
+
|
|
99
|
+
### Router / findOne
|
|
100
|
+
|
|
101
|
+
Boolean or Object
|
|
102
|
+
|
|
103
|
+
| Name | Type | Example |
|
|
104
|
+
| :--------- | :------------------------------- | :----------------------------------------------------------- |
|
|
105
|
+
| middleware | Array-String | ['test'] |
|
|
106
|
+
| filter | Object | { 'age[gte]': 18 } |
|
|
107
|
+
| fields | String | 'name color' ✅, 'name -createdAt' ❌, '-createdAt -upadtedAt' ❌ |
|
|
108
|
+
| populate | String or Object or Array-Object | 'color', { path: 'color', select: 'name', populate: {} }, [{ path: 'color' }] |
|
|
109
|
+
|
|
110
|
+
### Router / create
|
|
111
|
+
|
|
112
|
+
Boolean or Object
|
|
113
|
+
|
|
114
|
+
| Name | Type | Example |
|
|
115
|
+
| :--------- | :----------- | :------- |
|
|
116
|
+
| middleware | Array-String | ['test'] |
|
|
117
|
+
|
|
118
|
+
### Router / update
|
|
119
|
+
|
|
120
|
+
Boolean or Object
|
|
121
|
+
|
|
122
|
+
| Name | Type | Example |
|
|
123
|
+
| :----------- | :----------- | :------------ |
|
|
124
|
+
| middleware | Array-String | ['test'] |
|
|
125
|
+
| ignoreFields | Array | ['active'] |
|
|
126
|
+
| options | Object | { new: true } |
|
|
127
|
+
|
|
128
|
+
### Router / remove
|
|
129
|
+
|
|
130
|
+
Boolean or Object
|
|
131
|
+
|
|
132
|
+
| Name | Type | Example |
|
|
133
|
+
| :--------- | :----------- | :------- |
|
|
134
|
+
| middleware | Array-String | ['test'] |
|
|
135
|
+
|
|
136
|
+
### Router / _import.js
|
|
137
|
+
|
|
138
|
+
```JavaScript
|
|
139
|
+
import './apples.js'
|
|
140
|
+
```
|
|
141
|
+
|
|
142
|
+
### Router - Dev
|
|
143
|
+
|
|
144
|
+
```JavaScript
|
|
145
|
+
store.get('_app').routers['/apples'] = {
|
|
146
|
+
description: 'Apple',
|
|
147
|
+
events: {
|
|
148
|
+
'GET /test': { description: 'Apple test interface.' }
|
|
149
|
+
}
|
|
150
|
+
}
|
|
151
|
+
```
|
|
152
|
+
|
|
153
|
+
### Router - Dev / _import.dev.js
|
|
154
|
+
|
|
155
|
+
```JavaScript
|
|
156
|
+
import './apples.dev.js'
|
|
157
|
+
```
|
|
158
|
+
|
|
159
|
+
### Model
|
|
160
|
+
|
|
161
|
+
```JavaScript
|
|
162
|
+
store.get('app').models.Apple = {
|
|
163
|
+
collection: 'apples',
|
|
164
|
+
documentName: 'apple',
|
|
165
|
+
schema: {
|
|
166
|
+
name: { type: 'String', required: true },
|
|
167
|
+
color: { type: 'ObjectId', ref: 'Color' },
|
|
168
|
+
},
|
|
169
|
+
options: { timestamps: true, methods: {}, statics: {} },
|
|
170
|
+
middleware: [{ hook: 'pre', 'method': 'save', async handler(doc) {} }]
|
|
171
|
+
}
|
|
172
|
+
```
|
|
173
|
+
|
|
174
|
+
### Model / _import.js
|
|
175
|
+
|
|
176
|
+
```JavaScript
|
|
177
|
+
import './Apple.js'
|
|
178
|
+
import './Color.js'
|
|
179
|
+
```
|
|
180
|
+
|
|
181
|
+
For more details: [Mongoose](https://mongoosejs.com/) and [Hono](https://hono.dev/).
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
import { excludedQueryKeys, defaultSelectFields } from '../config.js'
|
|
2
2
|
|
|
3
3
|
const { models, mongooseModels } = store.get('app')
|
|
4
|
-
const { isArray, isEmptyObject, isString, isNumber } = store.get('validator')
|
|
4
|
+
const { isArray, isEmptyObject, isString, isNumber, isObject } = store.get('validator')
|
|
5
5
|
|
|
6
6
|
export function findAll(modelName, { filter, sort, fields, page, limit, populate, count }) {
|
|
7
7
|
return async function ({ json, req }) {
|
|
@@ -10,7 +10,7 @@ export function findAll(modelName, { filter, sort, fields, page, limit, populate
|
|
|
10
10
|
const Model = mongooseModels[modelName]
|
|
11
11
|
const _filter = filterHandler({ query, filter })
|
|
12
12
|
|
|
13
|
-
let find = Model.find()
|
|
13
|
+
let find = Model.find(_filter)
|
|
14
14
|
|
|
15
15
|
find = sortHandler({ find, query, sort })
|
|
16
16
|
find = fieldHandler({ find, query, fields })
|
|
@@ -56,7 +56,7 @@ export function create(modelName) {
|
|
|
56
56
|
return async function ({ json, req }) {
|
|
57
57
|
const body = await req.json()
|
|
58
58
|
const Model = mongooseModels[modelName]
|
|
59
|
-
const instance = new Model(
|
|
59
|
+
const instance = new Model(body)
|
|
60
60
|
|
|
61
61
|
await instance.save()
|
|
62
62
|
|
|
@@ -93,6 +93,8 @@ export function remove(modelName) {
|
|
|
93
93
|
}
|
|
94
94
|
}
|
|
95
95
|
|
|
96
|
+
const operations = ['$gte', '$gt', '$lte', '$lt']
|
|
97
|
+
|
|
96
98
|
function filterHandler({ query, filter }) {
|
|
97
99
|
filter = { ...query, ...filter }
|
|
98
100
|
|
|
@@ -100,6 +102,17 @@ function filterHandler({ query, filter }) {
|
|
|
100
102
|
|
|
101
103
|
filter = JSON.parse(JSON.stringify(filter).replace(/\b(gte|gt|lte|lt)\b/g, match => `$${match}`))
|
|
102
104
|
|
|
105
|
+
for (let i = 0; i < operations.length; i++) {
|
|
106
|
+
const operation = operations[i]
|
|
107
|
+
if (filter['_id[' + operation + ']']) {
|
|
108
|
+
if (!isObject(filter['_id'])) {
|
|
109
|
+
filter['_id'] = {}
|
|
110
|
+
}
|
|
111
|
+
filter['_id'][operation] = filter['_id[' + operation + ']']
|
|
112
|
+
delete filter['_id[' + operation + ']']
|
|
113
|
+
}
|
|
114
|
+
}
|
|
115
|
+
|
|
103
116
|
return filter
|
|
104
117
|
}
|
|
105
118
|
|
package/data/src/models/Apple.js
CHANGED
|
@@ -14,5 +14,11 @@ store.get('app').models.Apple = {
|
|
|
14
14
|
options: {
|
|
15
15
|
timestamps: true
|
|
16
16
|
},
|
|
17
|
-
middleware: [
|
|
17
|
+
middleware: [
|
|
18
|
+
{
|
|
19
|
+
hook: 'pre',
|
|
20
|
+
method: 'save',
|
|
21
|
+
async handler(doc) {}
|
|
22
|
+
}
|
|
23
|
+
]
|
|
18
24
|
}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
import{g as f,c as r,a as t,u as s,w as d,v as i,F as m,r as v,o as a,t as u}from"./index-D6H45Mb0.js";const C={class:"flex flex-col gap-4"},R={class:"border border-slate-200 rounded-lg overflow-hidden"},U={class:"flex justify-between"},D={class:"w-full"},L={class:"border-t border-slate-200"},_={class:"border-l border-slate-200 flex items-center focus-within:bg-slate-50 transition"},k={class:"border-t border-slate-200"},E={class:"border-l border-slate-200 flex items-center focus-within:bg-slate-50 transition"},B={class:"border-t border-slate-200"},z={class:"border-l border-slate-200 flex items-center focus-within:bg-slate-50 transition"},S={class:"border-t border-slate-200"},H={class:"border-l border-slate-200 flex items-center transition p-4"},V={class:"border-t border-slate-200"},I={class:"border-l border-slate-200 flex items-center focus-within:bg-slate-50 transition"},F={class:"border border-slate-200 rounded-lg overflow-hidden"},A={class:"w-full"},O={class:"px-4 py-3 w-64"},j={class:"border-l border-slate-200 px-4 py-3"},T={__name:"config",setup(M){const e=f("front-end"),c=f("back-end");function g(l){localStorage.setItem("configURL",l.target.value),alert("Change the DOC URL")}function p(l){localStorage.setItem("configBaseURL",l.target.value),alert("Change the baseURL")}function x(l){localStorage.setItem("configAuthorization",l.target.value),alert("Change the authorization")}function w(l){localStorage.setItem("configBodyRows",l.target.value),alert("Change the bodyRows")}function h(){e.config.showDoc=!0,alert("show doc.")}function y(){e.config.showDoc=!1,alert("hide doc.")}return(l,o)=>(a(),r("div",C,[t("div",R,[t("div",U,[o[5]||(o[5]=t("div",{class:"px-4 py-3 font-bold bg-slate-100 flex-1"},"FrontEnd Config",-1)),t("button",{class:"px-4 py-3 cursor-pointer border-l border-slate-200 hover:bg-slate-50 transition",onClick:o[0]||(o[0]=(...n)=>s(e).methods.refreshData&&s(e).methods.refreshData(...n))},"Refresh Data")]),t("table",D,[t("tbody",null,[t("tr",L,[o[7]||(o[7]=t("td",{class:"px-4 py-3 w-64"},"DOC URL",-1)),t("td",_,[d(t("input",{type:"text","onUpdate:modelValue":o[1]||(o[1]=n=>s(e).config.URL=n),class:"w-full outline-none px-4 py-3",onChange:g},null,544),[[i,s(e).config.URL]]),o[6]||(o[6]=t("div",{class:"text-xs font-bold mr-4"},"Editable",-1))])]),t("tr",k,[o[9]||(o[9]=t("td",{class:"px-4 py-3 w-64"},"baseURL",-1)),t("td",E,[d(t("input",{type:"text","onUpdate:modelValue":o[2]||(o[2]=n=>s(e).config.baseURL=n),class:"w-full outline-none px-4 py-3",onChange:p},null,544),[[i,s(e).config.baseURL]]),o[8]||(o[8]=t("div",{class:"text-xs font-bold mr-4"},"Editable",-1))])]),t("tr",B,[o[11]||(o[11]=t("td",{class:"px-4 py-3 w-64"},"authorization",-1)),t("td",z,[d(t("input",{type:"text","onUpdate:modelValue":o[3]||(o[3]=n=>s(e).config.authorization=n),class:"w-full outline-none px-4 py-3",onChange:x},null,544),[[i,s(e).config.authorization]]),o[10]||(o[10]=t("div",{class:"text-xs font-bold mr-4"},"Editable",-1))])]),t("tr",S,[o[12]||(o[12]=t("td",{class:"px-4 py-3 w-64"},"showDoc",-1)),t("td",H,[s(e).config.showDoc?(a(),r("button",{key:1,class:"px-4 py-3 border border-slate-200 rounded-lg cursor-pointer hover:bg-slate-50",onClick:y},"Hide")):(a(),r("button",{key:0,class:"px-4 py-3 border border-slate-200 rounded-lg cursor-pointer hover:bg-slate-50",onClick:h},"Show"))])]),t("tr",V,[o[14]||(o[14]=t("td",{class:"px-4 py-3 w-64"},"bodyRows",-1)),t("td",I,[d(t("input",{type:"text","onUpdate:modelValue":o[4]||(o[4]=n=>s(e).config.bodyRows=n),class:"w-full outline-none px-4 py-3",onChange:w},null,544),[[i,s(e).config.bodyRows]]),o[13]||(o[13]=t("div",{class:"text-xs font-bold mr-4"},"Editable",-1))])])])])]),t("div",F,[o[15]||(o[15]=t("div",{class:"px-4 py-3 bg-slate-100 font-bold"},"BackEnd Config",-1)),t("table",A,[t("tbody",null,[(a(!0),r(m,null,v(s(c).config,(n,b)=>(a(),r("tr",{key:b,class:"even:bg-slate-100 border-t border-slate-200"},[t("td",O,u(b),1),t("td",j,u(n),1)]))),128))])])])]))}};export{T as default};
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
import{g as c,c as a,a as e,f as m,u as s,F as p,r as f,d as r,o as l,t as b}from"./index-D6H45Mb0.js";import{G as _,a as u,H as w}from"./how-to-import-dev-middleware-BKbmlczn.js";import{H as g}from"./how-to-import-middleware-BWMQNy7n.js";const h={class:"flex flex-col gap-4"},x={class:"border border-slate-200 rounded-lg overflow-hidden"},v={class:"flex justify-between"},y={class:"w-full"},D={class:"px-4 py-3 w-64"},M={class:"border-l border-slate-200 px-4 py-3"},C={__name:"global-middleware",setup(k){const o=c("front-end"),n=c("back-end");return(E,t)=>(l(),a("div",h,[e("div",x,[e("div",v,[t[1]||(t[1]=e("div",{class:"px-4 py-3 font-bold bg-slate-100 flex-1"},"Global Middleware Compass",-1)),e("button",{class:"px-4 py-3 cursor-pointer border-l border-slate-200 hover:bg-slate-50 transition",onClick:t[0]||(t[0]=(...d)=>s(o).methods.refreshData&&s(o).methods.refreshData(...d))},"Refresh Data")]),e("table",y,[(l(!0),a(p,null,f(s(n).globalMiddleware,(d,i)=>(l(),a("tr",{key:i,class:"even:bg-slate-100 border-t border-slate-200"},[e("td",D,b(i),1),e("td",M,b(d),1)]))),128))])]),s(o).methods.isEmptyObject(s(n).globalMiddleware)||s(o).config.showDoc?(l(),a(p,{key:0},[r(_),r(g),r(u),r(w)],64)):m("",!0)]))}};export{C as default};
|
|
@@ -1 +1 @@
|
|
|
1
|
-
import{G as p,a as n,H as i}from"./how-to-import-dev-middleware-
|
|
1
|
+
import{G as p,a as n,H as i}from"./how-to-import-dev-middleware-BKbmlczn.js";import{M as m}from"./middleware-example-CjbC5awT.js";import{_ as c,c as s,a as o,o as d,b as v,d as e,e as t}from"./index-D6H45Mb0.js";import{H as b}from"./how-to-import-middleware-BWMQNy7n.js";import{R as x,a as f,b as u,c as w,d as g,e as _,H as y,f as M,g as h}from"./how-to-import-dev-router-Chu2o0sm.js";import{M as D,H as R}from"./how-to-import-model-BvwXzDVv.js";const H={},E={class:"border border-slate-200 rounded-lg overflow-hidden"};function k(l,a){return d(),s("div",E,[...a[0]||(a[0]=[o("div",{class:"px-4 py-3 bg-slate-100 font-bold"},"Middleware - Dev",-1),o("div",{class:"px-4 py-3 border-t border-slate-200"},"const { middleware } = store.get('_app')",-1),o("div",{class:"px-4 py-3 border-t border-slate-100"},"middleware['test'] = 'console log 1.'",-1)])])}const T=c(H,[["render",k]]),j={class:"flex flex-col gap-4"},$={__name:"home",setup(l){return(a,r)=>(d(),s("div",j,[r[0]||(r[0]=v('<div class="border border-slate-200 px-4 py-3 font-bold bg-slate-100 rounded-lg flex justify-between"><div>Example</div><a href="https://www.npmjs.com/package/create-nkvs-mongoose-hono" target="_blank">create-nkvs-mongoose-hono</a></div><div class="border border-slate-200 rounded-lg overflow-hidden"><div class="px-4 py-3 bg-slate-100 font-bold">npm create nkvs-mongoose-hono@latest project-name</div><div class="px-4 py-3 border-t border-slate-200">cd project-name</div><div class="px-4 py-3 border-t border-slate-200">npm install</div><div class="px-4 py-3 border-t border-slate-200">npm run dev</div><div class="px-4 py-3 border-t border-slate-200">npm run build</div><div class="px-4 py-3 border-t border-slate-200">npm run start</div></div>',2)),e(p),e(m),e(b),e(n),e(T),e(i),e(x),e(f),e(u),e(w),e(g),e(_),e(y),e(M),e(h),e(D),e(R),r[1]||(r[1]=o("div",{class:"border border-slate-200 px-4 py-3 text-center rounded-lg"},[t("For more details: "),o("a",{href:"https://mongoosejs.com/",class:"font-bold"},"Mongoose"),t(" and "),o("a",{href:"https://hono.dev/",class:"font-bold"},"Hono"),t(".")],-1))]))}};export{$ as default};
|
|
@@ -1 +1 @@
|
|
|
1
|
-
import{_ as d,c as o,b as l,o as s,a as r}from"./index-
|
|
1
|
+
import{_ as d,c as o,b as l,o as s,a as r}from"./index-D6H45Mb0.js";const a={},i={class:"border border-slate-200 rounded-lg overflow-hidden"};function p(t,e){return s(),o("div",i,[...e[0]||(e[0]=[l('<div class="px-4 py-3 bg-slate-100 font-bold">Global Middleware</div><div class="px-4 py-3 border-t border-slate-200">import { cors } from 'hono/cors'</div><div class="px-4 py-3 border-t border-slate-100">import { prettyJSON } from 'hono/pretty-json'</div><div class="px-4 py-3 border-t border-slate-100">const { globalMiddleware } = store.get('app')</div><div class="px-4 py-3 border-t border-slate-100">globalMiddleware.push(cors(), prettyJSON())</div>',5)])])}const m=d(a,[["render",p]]),c={},n={class:"border border-slate-200 rounded-lg overflow-hidden"};function b(t,e){return s(),o("div",n,[...e[0]||(e[0]=[r("div",{class:"px-4 py-3 bg-slate-100 font-bold"},"Global Middleware - Dev",-1),r("div",{class:"px-4 py-3 border-t border-slate-200"},"const { globalMiddleware } = store.get('_app')",-1),r("div",{class:"px-4 py-3 border-t border-slate-100"},"globalMiddleware['cors'] = 'cors.'",-1),r("div",{class:"px-4 py-3 border-t border-slate-100"},"globalMiddleware['prettyJSON'] = 'pretty JSON.'",-1)])])}const w=d(c,[["render",b]]),v={},_={class:"border border-slate-200 rounded-lg overflow-hidden"};function f(t,e){return s(),o("div",_,[...e[0]||(e[0]=[r("div",{class:"px-4 py-3 bg-slate-100 font-bold"},"Global Middleware - Dev & Middleware - Dev / middleware/_import.dev.js",-1),r("div",{class:"px-4 py-3 border-t border-slate-200"},"import './global.dev.js'",-1),r("div",{class:"px-4 py-3 border-t border-slate-100"},"import './test.dev.js'",-1)])])}const y=d(v,[["render",f]]);export{m as G,y as H,w as a};
|
|
@@ -1 +1 @@
|
|
|
1
|
-
import{_ as e,c as t,b as l,o as d,a as o}from"./index-
|
|
1
|
+
import{_ as e,c as t,b as l,o as d,a as o}from"./index-D6H45Mb0.js";const a={},p={class:"border border-slate-200 rounded-lg overflow-hidden"};function b(s,r){return d(),t("div",p,[...r[0]||(r[0]=[l('<div class="px-4 py-3 bg-slate-100 font-bold">Router</div><div class="px-4 py-3 border-t border-slate-200">store.get('app').routers.push({</div><div class="px-4 py-3 border-t border-slate-100"> path: '/apples',</div><div class="px-4 py-3 border-t border-slate-100"> crud: {</div><div class="px-4 py-3 border-t border-slate-100"> model: 'Apple',</div><div class="px-4 py-3 border-t border-slate-100"> findAll: { count: true, populate: 'color', limit: 5 }</div><div class="px-4 py-3 border-t border-slate-100"> findOne: { populate: 'color' }</div><div class="px-4 py-3 border-t border-slate-100"> },</div><div class="px-4 py-3 border-t border-slate-100"> events: {</div><div class="px-4 py-3 border-t border-slate-100"> 'GET /test': { middleware: ['test'], async handler({ json }) { return json({}) } }</div><div class="px-4 py-3 border-t border-slate-100"> }</div><div class="px-4 py-3 border-t border-slate-100">)}</div>',12)])])}const H=e(a,[["render",b]]),c={},n={class:"border border-slate-200 rounded-lg overflow-hidden"};function i(s,r){return d(),t("div",n,[...r[0]||(r[0]=[l('<div class="px-4 py-3 bg-slate-100 font-bold">Router / findAll</div><div class="px-4 py-3 border-t border-slate-200">Boolean or Object</div><table class="w-full"><thead><tr class="border-t border-slate-200"><th class="px-4 py-3 text-left w-32">Name</th><th class="px-4 py-3 border-l border-slate-200 text-left w-96">Type</th><th class="px-4 py-3 border-l border-slate-200 text-left">Example</th></tr></thead><tbody><tr class="border-t border-slate-200"><td class="px-4 py-3">middleware</td><td class="px-4 py-3 border-l border-slate-200">Array-String</td><td class="px-4 py-3 border-l border-slate-200">['test']</td></tr><tr class="border-t border-slate-200"><td class="px-4 py-3">filter</td><td class="px-4 py-3 border-l border-slate-200">Object</td><td class="px-4 py-3 border-l border-slate-200">{ 'age[gte]': 18 }</td></tr><tr class="border-t border-slate-200"><td class="px-4 py-3">fields</td><td class="px-4 py-3 border-l border-slate-200">String</td><td class="px-4 py-3 border-l border-slate-200">'name color' ✅, 'name -createdAt' ❌, '-createdAt -upadtedAt' ❌</td></tr><tr class="border-t border-slate-200"><td class="px-4 py-3">sort</td><td class="px-4 py-3 border-l border-slate-200">String</td><td class="px-4 py-3 border-l border-slate-200">'-createdAt'</td></tr><tr class="border-t border-slate-200"><td class="px-4 py-3">page</td><td class="px-4 py-3 border-l border-slate-200">Number</td><td class="px-4 py-3 border-l border-slate-200">1</td></tr><tr class="border-t border-slate-200"><td class="px-4 py-3">limit</td><td class="px-4 py-3 border-l border-slate-200">Number or Boolean</td><td class="px-4 py-3 border-l border-slate-200">false, 10, If number > 300 then number = 300</td></tr><tr class="border-t border-slate-200"><td class="px-4 py-3">populate</td><td class="px-4 py-3 border-l border-slate-200">String or Object or Array-Object</td><td class="px-4 py-3 border-l border-slate-200">'color', { path: 'color', select: 'name', populate: {} }, [{ path: 'color' }]</td></tr><tr class="border-t border-slate-200"><td class="px-4 py-3">count</td><td class="px-4 py-3 border-l border-slate-200">Boolean</td><td class="px-4 py-3 border-l border-slate-200">true</td></tr></tbody></table>',3)])])}const I=e(c,[["render",i]]),x={},y={class:"border border-slate-200 rounded-lg overflow-hidden"};function v(s,r){return d(),t("div",y,[...r[0]||(r[0]=[l('<div class="px-4 py-3 bg-slate-100 font-bold">Router / findOne</div><div class="px-4 py-3 border-t border-slate-200">Boolean or Object</div><table class="w-full"><thead><tr class="border-t border-slate-200"><th class="px-4 py-3 text-left w-32">Name</th><th class="px-4 py-3 border-l border-slate-200 text-left w-96">Type</th><th class="px-4 py-3 border-l border-slate-200 text-left">Example</th></tr></thead><tbody><tr class="border-t border-slate-200"><td class="px-4 py-3">middleware</td><td class="px-4 py-3 border-l border-slate-200">Array-String</td><td class="px-4 py-3 border-l border-slate-200">['test']</td></tr><tr class="border-t border-slate-200"><td class="px-4 py-3">filter</td><td class="px-4 py-3 border-l border-slate-200">Object</td><td class="px-4 py-3 border-l border-slate-200">{ 'age[gte]': 18 }</td></tr><tr class="border-t border-slate-200"><td class="px-4 py-3">fields</td><td class="px-4 py-3 border-l border-slate-200">String</td><td class="px-4 py-3 border-l border-slate-200">'name color' ✅, 'name -createdAt' ❌, '-createdAt -upadtedAt' ❌</td></tr><tr class="border-t border-slate-200"><td class="px-4 py-3">populate</td><td class="px-4 py-3 border-l border-slate-200">String or Object or Array-Object</td><td class="px-4 py-3 border-l border-slate-200">'color', { path: 'color', select: 'name', populate: {} }, [{ path: 'color' }]</td></tr></tbody></table>',3)])])}const k=e(x,[["render",v]]),f={},u={class:"border border-slate-200 rounded-lg overflow-hidden"};function _(s,r){return d(),t("div",u,[...r[0]||(r[0]=[l('<div class="px-4 py-3 bg-slate-100 font-bold">Router / create</div><div class="px-4 py-3 border-t border-slate-200">Boolean or Object</div><table class="w-full"><thead><tr class="border-t border-slate-200"><th class="px-4 py-3 text-left w-32">Name</th><th class="px-4 py-3 border-l border-slate-200 text-left w-96">Type</th><th class="px-4 py-3 border-l border-slate-200 text-left">Example</th></tr></thead><tbody><tr class="border-t border-slate-200"><td class="px-4 py-3">middleware</td><td class="px-4 py-3 border-l border-slate-200">Array-String</td><td class="px-4 py-3 border-l border-slate-200">['test']</td></tr></tbody></table>',3)])])}const G=e(f,[["render",_]]),h={},m={class:"border border-slate-200 rounded-lg overflow-hidden"};function g(s,r){return d(),t("div",m,[...r[0]||(r[0]=[l('<div class="px-4 py-3 bg-slate-100 font-bold">Router / update</div><div class="px-4 py-3 border-t border-slate-200">Boolean or Object</div><table class="w-full"><thead><tr class="border-t border-slate-200"><th class="px-4 py-3 text-left w-32">Name</th><th class="px-4 py-3 border-l border-slate-200 text-left w-96">Type</th><th class="px-4 py-3 border-l border-slate-200 text-left">Example</th></tr></thead><tbody><tr class="border-t border-slate-200"><td class="px-4 py-3">middleware</td><td class="px-4 py-3 border-l border-slate-200">Array-String</td><td class="px-4 py-3 border-l border-slate-200">['test']</td></tr><tr class="border-t border-slate-200"><td class="px-4 py-3">ignoreFields</td><td class="px-4 py-3 border-l border-slate-200">Array</td><td class="px-4 py-3 border-l border-slate-200">['active']</td></tr><tr class="border-t border-slate-200"><td class="px-4 py-3">options</td><td class="px-4 py-3 border-l border-slate-200">Object</td><td class="px-4 py-3 border-l border-slate-200">{ new: true }</td></tr></tbody></table>',3)])])}const V=e(h,[["render",g]]),w={},$={class:"border border-slate-200 rounded-lg overflow-hidden"};function A(s,r){return d(),t("div",$,[...r[0]||(r[0]=[l('<div class="px-4 py-3 bg-slate-100 font-bold">Router / remove</div><div class="px-4 py-3 border-t border-slate-200">Boolean or Object</div><table class="w-full"><thead><tr class="border-t border-slate-200"><th class="px-4 py-3 text-left w-32">Name</th><th class="px-4 py-3 border-l border-slate-200 text-left w-96">Type</th><th class="px-4 py-3 border-l border-slate-200 text-left">Example</th></tr></thead><tbody><tr class="border-t border-slate-200"><td class="px-4 py-3">middleware</td><td class="px-4 py-3 border-l border-slate-200">Array-String</td><td class="px-4 py-3 border-l border-slate-200">['test']</td></tr></tbody></table>',3)])])}const C=e(w,[["render",A]]),R={},j={class:"border border-slate-200 rounded-lg overflow-hidden"};function O(s,r){return d(),t("div",j,[...r[0]||(r[0]=[o("div",{class:"px-4 py-3 bg-slate-100 font-bold"},"Router / _import.js",-1),o("div",{class:"px-4 py-3 border-t border-slate-200"},"import './apples.js'",-1)])])}const U=e(R,[["render",O]]),S={},B={class:"border border-slate-200 rounded-lg overflow-hidden"};function E(s,r){return d(),t("div",B,[...r[0]||(r[0]=[l('<div class="px-4 py-3 bg-slate-100 font-bold">Router - Dev</div><div class="px-4 py-3 border-t border-slate-200">store.get('_app').routers['/apples'] = {</div><div class="px-4 py-3 border-t border-slate-100"> description: 'Apple',</div><div class="px-4 py-3 border-t border-slate-100"> events: {</div><div class="px-4 py-3 border-t border-slate-100"> 'GET /test': { description: 'Apple test interface.' }</div><div class="px-4 py-3 border-t border-slate-100"> }</div><div class="px-4 py-3 border-t border-slate-100">}</div>',7)])])}const q=e(S,[["render",E]]),D={},N={class:"border border-slate-200 rounded-lg overflow-hidden"};function T(s,r){return d(),t("div",N,[...r[0]||(r[0]=[o("div",{class:"px-4 py-3 bg-slate-100 font-bold"},"Router - Dev / _import.dev.js",-1),o("div",{class:"px-4 py-3 border-t border-slate-200"},"import './apples.dev.js'",-1)])])}const z=e(D,[["render",T]]);export{U as H,H as R,I as a,k as b,G as c,V as d,C as e,q as f,z as g};
|
|
@@ -1 +1 @@
|
|
|
1
|
-
import{_ as o,c as s,a as e,o as d}from"./index-
|
|
1
|
+
import{_ as o,c as s,a as e,o as d}from"./index-D6H45Mb0.js";const t={},a={class:"border border-slate-200 rounded-lg overflow-hidden"};function l(i,r){return d(),s("div",a,[...r[0]||(r[0]=[e("div",{class:"px-4 py-3 bg-slate-100 font-bold"},"Global Middleware & Middleware / middleware/_import.js",-1),e("div",{class:"px-4 py-3 border-t border-slate-200"},"import './global.js'",-1),e("div",{class:"px-4 py-3 border-t border-slate-100"},"import './test.js'",-1)])])}const n=o(t,[["render",l]]);export{n as H};
|
|
@@ -1 +1 @@
|
|
|
1
|
-
import{_ as d,c as o,b as a,o as s,a as r}from"./index-
|
|
1
|
+
import{_ as d,c as o,b as a,o as s,a as r}from"./index-D6H45Mb0.js";const l={},p={class:"border border-slate-200 rounded-lg overflow-hidden"};function i(t,e){return s(),o("div",p,[...e[0]||(e[0]=[a('<div class="px-4 py-3 bg-slate-100 font-bold">Model</div><div class="px-4 py-3 border-t border-slate-200">store.get('app').models.Apple = {</div><div class="px-4 py-3 border-t border-slate-100"> collection: 'apples',</div><div class="px-4 py-3 border-t border-slate-100"> documentName: 'apple',</div><div class="px-4 py-3 border-t border-slate-100"> schema: {</div><div class="px-4 py-3 border-t border-slate-100"> name: { type: 'String', required: true },</div><div class="px-4 py-3 border-t border-slate-100"> color: { type: 'ObjectId', ref: 'Color' },</div><div class="px-4 py-3 border-t border-slate-100"> },</div><div class="px-4 py-3 border-t border-slate-100"> options: { timestamps: true, methods: {}, statics: {} },</div><div class="px-4 py-3 border-t border-slate-100"> middleware: [{ hook: 'pre', 'method': 'save', async handler(doc) {} }]</div><div class="px-4 py-3 border-t border-slate-100">}</div>',11)])])}const m=d(l,[["render",i]]),c={},b={class:"border border-slate-200 rounded-lg overflow-hidden"};function n(t,e){return s(),o("div",b,[...e[0]||(e[0]=[r("div",{class:"px-4 py-3 bg-slate-100 font-bold"},"Model / _import.js",-1),r("div",{class:"px-4 py-3 border-t border-slate-200"},"import './Apple.js'",-1),r("div",{class:"px-4 py-3 border-t border-slate-100"},"import './Color.js'",-1)])])}const x=d(c,[["render",n]]);export{x as H,m as M};
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
@layer properties{@supports (((-webkit-hyphens:none)) and (not (margin-trim:inline))) or ((-moz-orient:inline) and (not (color:rgb(from red r g b)))){*,:before,:after,::backdrop{--tw-rotate-x:initial;--tw-rotate-y:initial;--tw-rotate-z:initial;--tw-skew-x:initial;--tw-skew-y:initial;--tw-border-style:solid;--tw-leading:initial;--tw-font-weight:initial;--tw-shadow:0 0 #0000;--tw-shadow-color:initial;--tw-shadow-alpha:100%;--tw-inset-shadow:0 0 #0000;--tw-inset-shadow-color:initial;--tw-inset-shadow-alpha:100%;--tw-ring-color:initial;--tw-ring-shadow:0 0 #0000;--tw-inset-ring-color:initial;--tw-inset-ring-shadow:0 0 #0000;--tw-ring-inset:initial;--tw-ring-offset-width:0px;--tw-ring-offset-color:#fff;--tw-ring-offset-shadow:0 0 #0000;--tw-blur:initial;--tw-brightness:initial;--tw-contrast:initial;--tw-grayscale:initial;--tw-hue-rotate:initial;--tw-invert:initial;--tw-opacity:initial;--tw-saturate:initial;--tw-sepia:initial;--tw-drop-shadow:initial;--tw-drop-shadow-color:initial;--tw-drop-shadow-alpha:100%;--tw-drop-shadow-size:initial;--tw-backdrop-blur:initial;--tw-backdrop-brightness:initial;--tw-backdrop-contrast:initial;--tw-backdrop-grayscale:initial;--tw-backdrop-hue-rotate:initial;--tw-backdrop-invert:initial;--tw-backdrop-opacity:initial;--tw-backdrop-saturate:initial;--tw-backdrop-sepia:initial}}}@layer theme{:root,:host{--font-sans:ui-sans-serif,system-ui,sans-serif,"Apple Color Emoji","Segoe UI Emoji","Segoe UI Symbol","Noto Color Emoji";--font-mono:ui-monospace,SFMono-Regular,Menlo,Monaco,Consolas,"Liberation Mono","Courier New",monospace;--color-red-600:oklch(57.7% .245 27.325);--color-green-600:oklch(62.7% .194 149.214);--color-slate-50:oklch(98.4% .003 247.858);--color-slate-100:oklch(96.8% .007 247.896);--color-slate-200:oklch(92.9% .013 255.508);--color-white:#fff;--spacing:.25rem;--container-7xl:80rem;--text-xs:.75rem;--text-xs--line-height:calc(1/.75);--font-weight-bold:700;--radius-lg:.5rem;--default-transition-duration:.15s;--default-transition-timing-function:cubic-bezier(.4,0,.2,1);--default-font-family:var(--font-sans);--default-mono-font-family:var(--font-mono)}}@layer base{*,:after,:before,::backdrop{box-sizing:border-box;border:0 solid;margin:0;padding:0}::file-selector-button{box-sizing:border-box;border:0 solid;margin:0;padding:0}html,:host{-webkit-text-size-adjust:100%;tab-size:4;line-height:1.5;font-family:var(--default-font-family,ui-sans-serif,system-ui,sans-serif,"Apple Color Emoji","Segoe UI Emoji","Segoe UI Symbol","Noto Color Emoji");font-feature-settings:var(--default-font-feature-settings,normal);font-variation-settings:var(--default-font-variation-settings,normal);-webkit-tap-highlight-color:transparent}hr{height:0;color:inherit;border-top-width:1px}abbr:where([title]){-webkit-text-decoration:underline dotted;text-decoration:underline dotted}h1,h2,h3,h4,h5,h6{font-size:inherit;font-weight:inherit}a{color:inherit;-webkit-text-decoration:inherit;text-decoration:inherit}b,strong{font-weight:bolder}code,kbd,samp,pre{font-family:var(--default-mono-font-family,ui-monospace,SFMono-Regular,Menlo,Monaco,Consolas,"Liberation Mono","Courier New",monospace);font-feature-settings:var(--default-mono-font-feature-settings,normal);font-variation-settings:var(--default-mono-font-variation-settings,normal);font-size:1em}small{font-size:80%}sub,sup{vertical-align:baseline;font-size:75%;line-height:0;position:relative}sub{bottom:-.25em}sup{top:-.5em}table{text-indent:0;border-color:inherit;border-collapse:collapse}:-moz-focusring{outline:auto}progress{vertical-align:baseline}summary{display:list-item}ol,ul,menu{list-style:none}img,svg,video,canvas,audio,iframe,embed,object{vertical-align:middle;display:block}img,video{max-width:100%;height:auto}button,input,select,optgroup,textarea{font:inherit;font-feature-settings:inherit;font-variation-settings:inherit;letter-spacing:inherit;color:inherit;opacity:1;background-color:#0000;border-radius:0}::file-selector-button{font:inherit;font-feature-settings:inherit;font-variation-settings:inherit;letter-spacing:inherit;color:inherit;opacity:1;background-color:#0000;border-radius:0}:where(select:is([multiple],[size])) optgroup{font-weight:bolder}:where(select:is([multiple],[size])) optgroup option{padding-inline-start:20px}::file-selector-button{margin-inline-end:4px}::placeholder{opacity:1}@supports (not ((-webkit-appearance:-apple-pay-button))) or (contain-intrinsic-size:1px){::placeholder{color:currentColor}@supports (color:color-mix(in lab,red,red)){::placeholder{color:color-mix(in oklab,currentcolor 50%,transparent)}}}textarea{resize:vertical}::-webkit-search-decoration{-webkit-appearance:none}::-webkit-date-and-time-value{min-height:1lh;text-align:inherit}::-webkit-datetime-edit{display:inline-flex}::-webkit-datetime-edit-fields-wrapper{padding:0}::-webkit-datetime-edit{padding-block:0}::-webkit-datetime-edit-year-field{padding-block:0}::-webkit-datetime-edit-month-field{padding-block:0}::-webkit-datetime-edit-day-field{padding-block:0}::-webkit-datetime-edit-hour-field{padding-block:0}::-webkit-datetime-edit-minute-field{padding-block:0}::-webkit-datetime-edit-second-field{padding-block:0}::-webkit-datetime-edit-millisecond-field{padding-block:0}::-webkit-datetime-edit-meridiem-field{padding-block:0}::-webkit-calendar-picker-indicator{line-height:1}:-moz-ui-invalid{box-shadow:none}button,input:where([type=button],[type=reset],[type=submit]){appearance:button}::file-selector-button{appearance:button}::-webkit-inner-spin-button{height:auto}::-webkit-outer-spin-button{height:auto}[hidden]:where(:not([hidden=until-found])){display:none!important}}@layer components;@layer utilities{.pointer-events-none{pointer-events:none}.fixed{position:fixed}.sticky{position:sticky}.top-0{top:calc(var(--spacing)*0)}.top-4{top:calc(var(--spacing)*4)}.left-0{left:calc(var(--spacing)*0)}.z-50{z-index:50}.m-4{margin:calc(var(--spacing)*4)}.mx-4{margin-inline:calc(var(--spacing)*4)}.mx-auto{margin-inline:auto}.mt-1{margin-top:calc(var(--spacing)*1)}.mr-4{margin-right:calc(var(--spacing)*4)}.flex{display:flex}.size-8{width:calc(var(--spacing)*8);height:calc(var(--spacing)*8)}.h-8{height:calc(var(--spacing)*8)}.w-8{width:calc(var(--spacing)*8)}.w-32{width:calc(var(--spacing)*32)}.w-64{width:calc(var(--spacing)*64)}.w-96{width:calc(var(--spacing)*96)}.w-full{width:100%}.max-w-7xl{max-width:var(--container-7xl)}.flex-1{flex:1}.shrink-0{flex-shrink:0}.transform{transform:var(--tw-rotate-x,)var(--tw-rotate-y,)var(--tw-rotate-z,)var(--tw-skew-x,)var(--tw-skew-y,)}.cursor-pointer{cursor:pointer}.resize-none{resize:none}.flex-col{flex-direction:column}.flex-wrap{flex-wrap:wrap}.items-center{align-items:center}.justify-between{justify-content:space-between}.justify-center{justify-content:center}.gap-2{gap:calc(var(--spacing)*2)}.gap-4{gap:calc(var(--spacing)*4)}.overflow-hidden{overflow:hidden}.rounded-full{border-radius:3.40282e38px}.rounded-lg{border-radius:var(--radius-lg)}.border{border-style:var(--tw-border-style);border-width:1px}.border-t{border-top-style:var(--tw-border-style);border-top-width:1px}.border-r{border-right-style:var(--tw-border-style);border-right-width:1px}.border-b{border-bottom-style:var(--tw-border-style);border-bottom-width:1px}.border-l{border-left-style:var(--tw-border-style);border-left-width:1px}.border-slate-100{border-color:var(--color-slate-100)}.border-slate-200{border-color:var(--color-slate-200)}.border-b-slate-200{border-bottom-color:var(--color-slate-200)}.bg-slate-100{background-color:var(--color-slate-100)}.bg-white{background-color:var(--color-white)}.bg-white\/75{background-color:#ffffffbf}@supports (color:color-mix(in lab,red,red)){.bg-white\/75{background-color:color-mix(in oklab,var(--color-white)75%,transparent)}}.p-4{padding:calc(var(--spacing)*4)}.px-4{padding-inline:calc(var(--spacing)*4)}.py-1{padding-block:calc(var(--spacing)*1)}.py-3{padding-block:calc(var(--spacing)*3)}.pt-4{padding-top:calc(var(--spacing)*4)}.pr-4{padding-right:calc(var(--spacing)*4)}.text-center{text-align:center}.text-left{text-align:left}.text-xs{font-size:var(--text-xs);line-height:var(--tw-leading,var(--text-xs--line-height))}.leading-none{--tw-leading:1;line-height:1}.font-bold{--tw-font-weight:var(--font-weight-bold);font-weight:var(--font-weight-bold)}.text-green-600{color:var(--color-green-600)}.text-red-600{color:var(--color-red-600)}.shadow{--tw-shadow:0 1px 3px 0 var(--tw-shadow-color,#0000001a),0 1px 2px -1px var(--tw-shadow-color,#0000001a);box-shadow:var(--tw-inset-shadow),var(--tw-inset-ring-shadow),var(--tw-ring-offset-shadow),var(--tw-ring-shadow),var(--tw-shadow)}.filter{filter:var(--tw-blur,)var(--tw-brightness,)var(--tw-contrast,)var(--tw-grayscale,)var(--tw-hue-rotate,)var(--tw-invert,)var(--tw-saturate,)var(--tw-sepia,)var(--tw-drop-shadow,)}.backdrop-blur{--tw-backdrop-blur:blur(8px);-webkit-backdrop-filter:var(--tw-backdrop-blur,)var(--tw-backdrop-brightness,)var(--tw-backdrop-contrast,)var(--tw-backdrop-grayscale,)var(--tw-backdrop-hue-rotate,)var(--tw-backdrop-invert,)var(--tw-backdrop-opacity,)var(--tw-backdrop-saturate,)var(--tw-backdrop-sepia,);backdrop-filter:var(--tw-backdrop-blur,)var(--tw-backdrop-brightness,)var(--tw-backdrop-contrast,)var(--tw-backdrop-grayscale,)var(--tw-backdrop-hue-rotate,)var(--tw-backdrop-invert,)var(--tw-backdrop-opacity,)var(--tw-backdrop-saturate,)var(--tw-backdrop-sepia,)}.transition{transition-property:color,background-color,border-color,outline-color,text-decoration-color,fill,stroke,--tw-gradient-from,--tw-gradient-via,--tw-gradient-to,opacity,box-shadow,transform,translate,scale,rotate,filter,-webkit-backdrop-filter,backdrop-filter,display,content-visibility,overlay,pointer-events;transition-timing-function:var(--tw-ease,var(--default-transition-timing-function));transition-duration:var(--tw-duration,var(--default-transition-duration))}.outline-none{--tw-outline-style:none;outline-style:none}.even\:bg-slate-100:nth-child(2n){background-color:var(--color-slate-100)}.focus-within\:bg-slate-50:focus-within{background-color:var(--color-slate-50)}@media(hover:hover){.hover\:bg-slate-50:hover{background-color:var(--color-slate-50)}}}@property --tw-rotate-x{syntax:"*";inherits:false}@property --tw-rotate-y{syntax:"*";inherits:false}@property --tw-rotate-z{syntax:"*";inherits:false}@property --tw-skew-x{syntax:"*";inherits:false}@property --tw-skew-y{syntax:"*";inherits:false}@property --tw-border-style{syntax:"*";inherits:false;initial-value:solid}@property --tw-leading{syntax:"*";inherits:false}@property --tw-font-weight{syntax:"*";inherits:false}@property --tw-shadow{syntax:"*";inherits:false;initial-value:0 0 #0000}@property --tw-shadow-color{syntax:"*";inherits:false}@property --tw-shadow-alpha{syntax:"<percentage>";inherits:false;initial-value:100%}@property --tw-inset-shadow{syntax:"*";inherits:false;initial-value:0 0 #0000}@property --tw-inset-shadow-color{syntax:"*";inherits:false}@property --tw-inset-shadow-alpha{syntax:"<percentage>";inherits:false;initial-value:100%}@property --tw-ring-color{syntax:"*";inherits:false}@property --tw-ring-shadow{syntax:"*";inherits:false;initial-value:0 0 #0000}@property --tw-inset-ring-color{syntax:"*";inherits:false}@property --tw-inset-ring-shadow{syntax:"*";inherits:false;initial-value:0 0 #0000}@property --tw-ring-inset{syntax:"*";inherits:false}@property --tw-ring-offset-width{syntax:"<length>";inherits:false;initial-value:0}@property --tw-ring-offset-color{syntax:"*";inherits:false;initial-value:#fff}@property --tw-ring-offset-shadow{syntax:"*";inherits:false;initial-value:0 0 #0000}@property --tw-blur{syntax:"*";inherits:false}@property --tw-brightness{syntax:"*";inherits:false}@property --tw-contrast{syntax:"*";inherits:false}@property --tw-grayscale{syntax:"*";inherits:false}@property --tw-hue-rotate{syntax:"*";inherits:false}@property --tw-invert{syntax:"*";inherits:false}@property --tw-opacity{syntax:"*";inherits:false}@property --tw-saturate{syntax:"*";inherits:false}@property --tw-sepia{syntax:"*";inherits:false}@property --tw-drop-shadow{syntax:"*";inherits:false}@property --tw-drop-shadow-color{syntax:"*";inherits:false}@property --tw-drop-shadow-alpha{syntax:"<percentage>";inherits:false;initial-value:100%}@property --tw-drop-shadow-size{syntax:"*";inherits:false}@property --tw-backdrop-blur{syntax:"*";inherits:false}@property --tw-backdrop-brightness{syntax:"*";inherits:false}@property --tw-backdrop-contrast{syntax:"*";inherits:false}@property --tw-backdrop-grayscale{syntax:"*";inherits:false}@property --tw-backdrop-hue-rotate{syntax:"*";inherits:false}@property --tw-backdrop-invert{syntax:"*";inherits:false}@property --tw-backdrop-opacity{syntax:"*";inherits:false}@property --tw-backdrop-saturate{syntax:"*";inherits:false}@property --tw-backdrop-sepia{syntax:"*";inherits:false}.custom-enter-active,.custom-leave-active{transition:.5s;transform:translateY(0)}.custom-enter-from,.custom-leave-to{opacity:0;transform:translateY(-2rem)}
|