├── .github
└── workflows
│ └── npm-publish.yml
├── .gitignore
├── .npmrc
├── .prettierignore
├── .prettierrc
├── README.md
├── jsconfig.json
├── package-lock.json
├── package.json
├── src
├── app.html
├── lib
│ ├── action-sheet
│ │ ├── ActionSheet.svelte
│ │ └── ActionSheetButton.svelte
│ ├── alert
│ │ ├── Alert.svelte
│ │ ├── AlertButton.svelte
│ │ └── AlertTextField.svelte
│ ├── button
│ │ └── Button.svelte
│ ├── collection
│ │ └── Collection.svelte
│ ├── index.js
│ ├── list
│ │ ├── List.svelte
│ │ ├── ListButtonRow.svelte
│ │ ├── ListRow.svelte
│ │ ├── ListRowButtonTrailing.svelte
│ │ ├── ListRowDefaultTrailing.svelte
│ │ ├── ListRowDisclosureTrailing.svelte
│ │ ├── ListRowImage.svelte
│ │ ├── ListRowStepperTrailing.svelte
│ │ ├── ListRowToggleTrailing.svelte
│ │ ├── ListSliderRow.svelte
│ │ └── ListTextFieldRow.svelte
│ ├── navigation-bar
│ │ ├── NavigationBar.svelte
│ │ ├── NavigationBarLeading.svelte
│ │ ├── NavigationBarSearchField.svelte
│ │ └── NavigationBarTrailing.svelte
│ ├── page-control
│ │ ├── PageControl.svelte
│ │ └── PageControlButton.svelte
│ ├── progress-indicator
│ │ ├── RegularProgressIndicator.svelte
│ │ └── SmallProgressIndicator.svelte
│ ├── segmented-control
│ │ ├── SegmentedControl.svelte
│ │ └── SegmentedControlButton.svelte
│ ├── sidebar
│ │ ├── Sidebar.svelte
│ │ ├── SidebarNavigationBar.svelte
│ │ ├── SidebarNavigationBarLeading.svelte
│ │ ├── SidebarNavigationBarTrailing.svelte
│ │ ├── SidebarSection.svelte
│ │ ├── SidebarSectionAddItemButton.svelte
│ │ └── SidebarSectionItem.svelte
│ ├── styles.css
│ ├── tab-bar
│ │ ├── TabBar.svelte
│ │ └── TabBarButton.svelte
│ └── toolbar
│ │ ├── Toolbar.svelte
│ │ └── ToolbarButton.svelte
└── routes
│ └── +page.svelte
├── static
└── favicon.png
├── svelte.config.js
└── vite.config.js
/.github/workflows/npm-publish.yml:
--------------------------------------------------------------------------------
1 | # This workflow will use Prettier to format code, generate a dist directory with svelte-package, and publish it to npm when changes are pushed to GitHub.
2 |
3 | name: Package
4 |
5 | on:
6 | push:
7 | branches:
8 | - main
9 |
10 | jobs:
11 | build:
12 | runs-on: ubuntu-latest
13 | steps:
14 | - uses: actions/checkout@v3
15 | - uses: actions/setup-node@v3
16 | with:
17 | node-version: 16
18 | - run: npm ci
19 | - run: npx prettier . --write
20 | - run: npx @sveltejs/package svelte-package
21 |
22 | publish-npm:
23 | needs: build
24 | runs-on: ubuntu-latest
25 | steps:
26 | - uses: actions/checkout@v3
27 | - uses: actions/setup-node@v3
28 | with:
29 | node-version: 16
30 | registry-url: https://registry.npmjs.org/
31 | - run: npm ci
32 | - run: npm publish
33 | env:
34 | NODE_AUTH_TOKEN: ${{secrets.npm_token}}
35 |
--------------------------------------------------------------------------------
/.gitignore:
--------------------------------------------------------------------------------
1 | .DS_Store
2 | node_modules
3 | /build
4 | /dist
5 | /.svelte-kit
6 | /package
7 | .env
8 | .env.*
9 | !.env.example
10 | vite.config.js.timestamp-*
11 | vite.config.ts.timestamp-*
12 |
--------------------------------------------------------------------------------
/.npmrc:
--------------------------------------------------------------------------------
1 | engine-strict=true
2 |
--------------------------------------------------------------------------------
/.prettierignore:
--------------------------------------------------------------------------------
1 | .DS_Store
2 | node_modules
3 | /build
4 | /.svelte-kit
5 | /package
6 | .env
7 | .env.*
8 | !.env.example
9 |
10 | # Ignore files for PNPM, NPM and YARN
11 | pnpm-lock.yaml
12 | package-lock.json
13 | yarn.lock
14 |
--------------------------------------------------------------------------------
/.prettierrc:
--------------------------------------------------------------------------------
1 | {
2 | "useTabs": true,
3 | "singleQuote": true,
4 | "trailingComma": "none",
5 | "printWidth": 100,
6 | "plugins": ["prettier-plugin-svelte"],
7 | "pluginSearchDirs": ["."],
8 | "overrides": [{ "files": "*.svelte", "options": { "parser": "svelte" } }]
9 | }
10 |
--------------------------------------------------------------------------------
/README.md:
--------------------------------------------------------------------------------
1 | # apple-svelte
2 |
3 | apple-svelte is a component library for Svelte based on Apple's Human Interface design language.
4 | To get started with apple-svelte, check out [the docs](https://apple-svelte.vercel.app).
5 |
6 | ## Installation
7 |
8 | Open a [Svelte project](https://kit.svelte.dev/docs/creating-a-project) and enter the following command into your terminal:
9 |
10 | ```
11 | npm i apple-svelte
12 | ```
13 |
14 | Include [Material Symbols](https://fonts.google.com/icons?icon.style=Rounded) or whatever symbol library you're using into your HTML head and import apple-svelte's stylesheet, as well as the components you need.
15 |
16 | ```
17 |
20 |
21 |
22 |
23 |
27 |
28 | ```
29 |
30 | If the above syntax doesn't work, you can copy the stylesheet and paste it into your project.
31 |
32 | To learn how to customize apple-svelte, check out [the docs](https://apple-svelte.vercel.app).
33 |
--------------------------------------------------------------------------------
/jsconfig.json:
--------------------------------------------------------------------------------
1 | {
2 | "extends": "./.svelte-kit/tsconfig.json",
3 | "compilerOptions": {
4 | "esModuleInterop": true,
5 | "forceConsistentCasingInFileNames": true,
6 | "resolveJsonModule": true,
7 | "skipLibCheck": true,
8 | "sourceMap": true,
9 | "moduleResolution": "NodeNext"
10 | }
11 | }
12 |
--------------------------------------------------------------------------------
/package-lock.json:
--------------------------------------------------------------------------------
1 | {
2 | "name": "apple-svelte",
3 | "version": "1.0.28",
4 | "lockfileVersion": 3,
5 | "requires": true,
6 | "packages": {
7 | "": {
8 | "name": "apple-svelte",
9 | "version": "1.0.28",
10 | "license": "MIT",
11 | "devDependencies": {
12 | "@sveltejs/adapter-auto": "^2.1.0",
13 | "@sveltejs/kit": "^1.20.4",
14 | "@sveltejs/package": "^2.0.0",
15 | "prettier": "^2.8.0",
16 | "prettier-plugin-svelte": "^2.10.1",
17 | "publint": "^0.1.9",
18 | "svelte": "^4.0.5",
19 | "tslib": "^2.4.1",
20 | "typescript": "^5.0.0",
21 | "vite": "^4.4.2"
22 | },
23 | "peerDependencies": {
24 | "svelte": "^4.0.0"
25 | }
26 | },
27 | "node_modules/@ampproject/remapping": {
28 | "version": "2.3.0",
29 | "resolved": "https://registry.npmjs.org/@ampproject/remapping/-/remapping-2.3.0.tgz",
30 | "integrity": "sha512-30iZtAPgz+LTIYoeivqYo853f02jBYSd5uGnGpkFV0M3xOt9aN73erkgYAmZU43x4VfqcnLxW9Kpg3R5LC4YYw==",
31 | "dev": true,
32 | "dependencies": {
33 | "@jridgewell/gen-mapping": "^0.3.5",
34 | "@jridgewell/trace-mapping": "^0.3.24"
35 | },
36 | "engines": {
37 | "node": ">=6.0.0"
38 | }
39 | },
40 | "node_modules/@esbuild/android-arm": {
41 | "version": "0.18.20",
42 | "resolved": "https://registry.npmjs.org/@esbuild/android-arm/-/android-arm-0.18.20.tgz",
43 | "integrity": "sha512-fyi7TDI/ijKKNZTUJAQqiG5T7YjJXgnzkURqmGj13C6dCqckZBLdl4h7bkhHt/t0WP+zO9/zwroDvANaOqO5Sw==",
44 | "cpu": [
45 | "arm"
46 | ],
47 | "dev": true,
48 | "optional": true,
49 | "os": [
50 | "android"
51 | ],
52 | "engines": {
53 | "node": ">=12"
54 | }
55 | },
56 | "node_modules/@esbuild/android-arm64": {
57 | "version": "0.18.20",
58 | "resolved": "https://registry.npmjs.org/@esbuild/android-arm64/-/android-arm64-0.18.20.tgz",
59 | "integrity": "sha512-Nz4rJcchGDtENV0eMKUNa6L12zz2zBDXuhj/Vjh18zGqB44Bi7MBMSXjgunJgjRhCmKOjnPuZp4Mb6OKqtMHLQ==",
60 | "cpu": [
61 | "arm64"
62 | ],
63 | "dev": true,
64 | "optional": true,
65 | "os": [
66 | "android"
67 | ],
68 | "engines": {
69 | "node": ">=12"
70 | }
71 | },
72 | "node_modules/@esbuild/android-x64": {
73 | "version": "0.18.20",
74 | "resolved": "https://registry.npmjs.org/@esbuild/android-x64/-/android-x64-0.18.20.tgz",
75 | "integrity": "sha512-8GDdlePJA8D6zlZYJV/jnrRAi6rOiNaCC/JclcXpB+KIuvfBN4owLtgzY2bsxnx666XjJx2kDPUmnTtR8qKQUg==",
76 | "cpu": [
77 | "x64"
78 | ],
79 | "dev": true,
80 | "optional": true,
81 | "os": [
82 | "android"
83 | ],
84 | "engines": {
85 | "node": ">=12"
86 | }
87 | },
88 | "node_modules/@esbuild/darwin-arm64": {
89 | "version": "0.18.20",
90 | "resolved": "https://registry.npmjs.org/@esbuild/darwin-arm64/-/darwin-arm64-0.18.20.tgz",
91 | "integrity": "sha512-bxRHW5kHU38zS2lPTPOyuyTm+S+eobPUnTNkdJEfAddYgEcll4xkT8DB9d2008DtTbl7uJag2HuE5NZAZgnNEA==",
92 | "cpu": [
93 | "arm64"
94 | ],
95 | "dev": true,
96 | "optional": true,
97 | "os": [
98 | "darwin"
99 | ],
100 | "engines": {
101 | "node": ">=12"
102 | }
103 | },
104 | "node_modules/@esbuild/darwin-x64": {
105 | "version": "0.18.20",
106 | "resolved": "https://registry.npmjs.org/@esbuild/darwin-x64/-/darwin-x64-0.18.20.tgz",
107 | "integrity": "sha512-pc5gxlMDxzm513qPGbCbDukOdsGtKhfxD1zJKXjCCcU7ju50O7MeAZ8c4krSJcOIJGFR+qx21yMMVYwiQvyTyQ==",
108 | "cpu": [
109 | "x64"
110 | ],
111 | "dev": true,
112 | "optional": true,
113 | "os": [
114 | "darwin"
115 | ],
116 | "engines": {
117 | "node": ">=12"
118 | }
119 | },
120 | "node_modules/@esbuild/freebsd-arm64": {
121 | "version": "0.18.20",
122 | "resolved": "https://registry.npmjs.org/@esbuild/freebsd-arm64/-/freebsd-arm64-0.18.20.tgz",
123 | "integrity": "sha512-yqDQHy4QHevpMAaxhhIwYPMv1NECwOvIpGCZkECn8w2WFHXjEwrBn3CeNIYsibZ/iZEUemj++M26W3cNR5h+Tw==",
124 | "cpu": [
125 | "arm64"
126 | ],
127 | "dev": true,
128 | "optional": true,
129 | "os": [
130 | "freebsd"
131 | ],
132 | "engines": {
133 | "node": ">=12"
134 | }
135 | },
136 | "node_modules/@esbuild/freebsd-x64": {
137 | "version": "0.18.20",
138 | "resolved": "https://registry.npmjs.org/@esbuild/freebsd-x64/-/freebsd-x64-0.18.20.tgz",
139 | "integrity": "sha512-tgWRPPuQsd3RmBZwarGVHZQvtzfEBOreNuxEMKFcd5DaDn2PbBxfwLcj4+aenoh7ctXcbXmOQIn8HI6mCSw5MQ==",
140 | "cpu": [
141 | "x64"
142 | ],
143 | "dev": true,
144 | "optional": true,
145 | "os": [
146 | "freebsd"
147 | ],
148 | "engines": {
149 | "node": ">=12"
150 | }
151 | },
152 | "node_modules/@esbuild/linux-arm": {
153 | "version": "0.18.20",
154 | "resolved": "https://registry.npmjs.org/@esbuild/linux-arm/-/linux-arm-0.18.20.tgz",
155 | "integrity": "sha512-/5bHkMWnq1EgKr1V+Ybz3s1hWXok7mDFUMQ4cG10AfW3wL02PSZi5kFpYKrptDsgb2WAJIvRcDm+qIvXf/apvg==",
156 | "cpu": [
157 | "arm"
158 | ],
159 | "dev": true,
160 | "optional": true,
161 | "os": [
162 | "linux"
163 | ],
164 | "engines": {
165 | "node": ">=12"
166 | }
167 | },
168 | "node_modules/@esbuild/linux-arm64": {
169 | "version": "0.18.20",
170 | "resolved": "https://registry.npmjs.org/@esbuild/linux-arm64/-/linux-arm64-0.18.20.tgz",
171 | "integrity": "sha512-2YbscF+UL7SQAVIpnWvYwM+3LskyDmPhe31pE7/aoTMFKKzIc9lLbyGUpmmb8a8AixOL61sQ/mFh3jEjHYFvdA==",
172 | "cpu": [
173 | "arm64"
174 | ],
175 | "dev": true,
176 | "optional": true,
177 | "os": [
178 | "linux"
179 | ],
180 | "engines": {
181 | "node": ">=12"
182 | }
183 | },
184 | "node_modules/@esbuild/linux-ia32": {
185 | "version": "0.18.20",
186 | "resolved": "https://registry.npmjs.org/@esbuild/linux-ia32/-/linux-ia32-0.18.20.tgz",
187 | "integrity": "sha512-P4etWwq6IsReT0E1KHU40bOnzMHoH73aXp96Fs8TIT6z9Hu8G6+0SHSw9i2isWrD2nbx2qo5yUqACgdfVGx7TA==",
188 | "cpu": [
189 | "ia32"
190 | ],
191 | "dev": true,
192 | "optional": true,
193 | "os": [
194 | "linux"
195 | ],
196 | "engines": {
197 | "node": ">=12"
198 | }
199 | },
200 | "node_modules/@esbuild/linux-loong64": {
201 | "version": "0.18.20",
202 | "resolved": "https://registry.npmjs.org/@esbuild/linux-loong64/-/linux-loong64-0.18.20.tgz",
203 | "integrity": "sha512-nXW8nqBTrOpDLPgPY9uV+/1DjxoQ7DoB2N8eocyq8I9XuqJ7BiAMDMf9n1xZM9TgW0J8zrquIb/A7s3BJv7rjg==",
204 | "cpu": [
205 | "loong64"
206 | ],
207 | "dev": true,
208 | "optional": true,
209 | "os": [
210 | "linux"
211 | ],
212 | "engines": {
213 | "node": ">=12"
214 | }
215 | },
216 | "node_modules/@esbuild/linux-mips64el": {
217 | "version": "0.18.20",
218 | "resolved": "https://registry.npmjs.org/@esbuild/linux-mips64el/-/linux-mips64el-0.18.20.tgz",
219 | "integrity": "sha512-d5NeaXZcHp8PzYy5VnXV3VSd2D328Zb+9dEq5HE6bw6+N86JVPExrA6O68OPwobntbNJ0pzCpUFZTo3w0GyetQ==",
220 | "cpu": [
221 | "mips64el"
222 | ],
223 | "dev": true,
224 | "optional": true,
225 | "os": [
226 | "linux"
227 | ],
228 | "engines": {
229 | "node": ">=12"
230 | }
231 | },
232 | "node_modules/@esbuild/linux-ppc64": {
233 | "version": "0.18.20",
234 | "resolved": "https://registry.npmjs.org/@esbuild/linux-ppc64/-/linux-ppc64-0.18.20.tgz",
235 | "integrity": "sha512-WHPyeScRNcmANnLQkq6AfyXRFr5D6N2sKgkFo2FqguP44Nw2eyDlbTdZwd9GYk98DZG9QItIiTlFLHJHjxP3FA==",
236 | "cpu": [
237 | "ppc64"
238 | ],
239 | "dev": true,
240 | "optional": true,
241 | "os": [
242 | "linux"
243 | ],
244 | "engines": {
245 | "node": ">=12"
246 | }
247 | },
248 | "node_modules/@esbuild/linux-riscv64": {
249 | "version": "0.18.20",
250 | "resolved": "https://registry.npmjs.org/@esbuild/linux-riscv64/-/linux-riscv64-0.18.20.tgz",
251 | "integrity": "sha512-WSxo6h5ecI5XH34KC7w5veNnKkju3zBRLEQNY7mv5mtBmrP/MjNBCAlsM2u5hDBlS3NGcTQpoBvRzqBcRtpq1A==",
252 | "cpu": [
253 | "riscv64"
254 | ],
255 | "dev": true,
256 | "optional": true,
257 | "os": [
258 | "linux"
259 | ],
260 | "engines": {
261 | "node": ">=12"
262 | }
263 | },
264 | "node_modules/@esbuild/linux-s390x": {
265 | "version": "0.18.20",
266 | "resolved": "https://registry.npmjs.org/@esbuild/linux-s390x/-/linux-s390x-0.18.20.tgz",
267 | "integrity": "sha512-+8231GMs3mAEth6Ja1iK0a1sQ3ohfcpzpRLH8uuc5/KVDFneH6jtAJLFGafpzpMRO6DzJ6AvXKze9LfFMrIHVQ==",
268 | "cpu": [
269 | "s390x"
270 | ],
271 | "dev": true,
272 | "optional": true,
273 | "os": [
274 | "linux"
275 | ],
276 | "engines": {
277 | "node": ">=12"
278 | }
279 | },
280 | "node_modules/@esbuild/linux-x64": {
281 | "version": "0.18.20",
282 | "resolved": "https://registry.npmjs.org/@esbuild/linux-x64/-/linux-x64-0.18.20.tgz",
283 | "integrity": "sha512-UYqiqemphJcNsFEskc73jQ7B9jgwjWrSayxawS6UVFZGWrAAtkzjxSqnoclCXxWtfwLdzU+vTpcNYhpn43uP1w==",
284 | "cpu": [
285 | "x64"
286 | ],
287 | "dev": true,
288 | "optional": true,
289 | "os": [
290 | "linux"
291 | ],
292 | "engines": {
293 | "node": ">=12"
294 | }
295 | },
296 | "node_modules/@esbuild/netbsd-x64": {
297 | "version": "0.18.20",
298 | "resolved": "https://registry.npmjs.org/@esbuild/netbsd-x64/-/netbsd-x64-0.18.20.tgz",
299 | "integrity": "sha512-iO1c++VP6xUBUmltHZoMtCUdPlnPGdBom6IrO4gyKPFFVBKioIImVooR5I83nTew5UOYrk3gIJhbZh8X44y06A==",
300 | "cpu": [
301 | "x64"
302 | ],
303 | "dev": true,
304 | "optional": true,
305 | "os": [
306 | "netbsd"
307 | ],
308 | "engines": {
309 | "node": ">=12"
310 | }
311 | },
312 | "node_modules/@esbuild/openbsd-x64": {
313 | "version": "0.18.20",
314 | "resolved": "https://registry.npmjs.org/@esbuild/openbsd-x64/-/openbsd-x64-0.18.20.tgz",
315 | "integrity": "sha512-e5e4YSsuQfX4cxcygw/UCPIEP6wbIL+se3sxPdCiMbFLBWu0eiZOJ7WoD+ptCLrmjZBK1Wk7I6D/I3NglUGOxg==",
316 | "cpu": [
317 | "x64"
318 | ],
319 | "dev": true,
320 | "optional": true,
321 | "os": [
322 | "openbsd"
323 | ],
324 | "engines": {
325 | "node": ">=12"
326 | }
327 | },
328 | "node_modules/@esbuild/sunos-x64": {
329 | "version": "0.18.20",
330 | "resolved": "https://registry.npmjs.org/@esbuild/sunos-x64/-/sunos-x64-0.18.20.tgz",
331 | "integrity": "sha512-kDbFRFp0YpTQVVrqUd5FTYmWo45zGaXe0X8E1G/LKFC0v8x0vWrhOWSLITcCn63lmZIxfOMXtCfti/RxN/0wnQ==",
332 | "cpu": [
333 | "x64"
334 | ],
335 | "dev": true,
336 | "optional": true,
337 | "os": [
338 | "sunos"
339 | ],
340 | "engines": {
341 | "node": ">=12"
342 | }
343 | },
344 | "node_modules/@esbuild/win32-arm64": {
345 | "version": "0.18.20",
346 | "resolved": "https://registry.npmjs.org/@esbuild/win32-arm64/-/win32-arm64-0.18.20.tgz",
347 | "integrity": "sha512-ddYFR6ItYgoaq4v4JmQQaAI5s7npztfV4Ag6NrhiaW0RrnOXqBkgwZLofVTlq1daVTQNhtI5oieTvkRPfZrePg==",
348 | "cpu": [
349 | "arm64"
350 | ],
351 | "dev": true,
352 | "optional": true,
353 | "os": [
354 | "win32"
355 | ],
356 | "engines": {
357 | "node": ">=12"
358 | }
359 | },
360 | "node_modules/@esbuild/win32-ia32": {
361 | "version": "0.18.20",
362 | "resolved": "https://registry.npmjs.org/@esbuild/win32-ia32/-/win32-ia32-0.18.20.tgz",
363 | "integrity": "sha512-Wv7QBi3ID/rROT08SABTS7eV4hX26sVduqDOTe1MvGMjNd3EjOz4b7zeexIR62GTIEKrfJXKL9LFxTYgkyeu7g==",
364 | "cpu": [
365 | "ia32"
366 | ],
367 | "dev": true,
368 | "optional": true,
369 | "os": [
370 | "win32"
371 | ],
372 | "engines": {
373 | "node": ">=12"
374 | }
375 | },
376 | "node_modules/@esbuild/win32-x64": {
377 | "version": "0.18.20",
378 | "resolved": "https://registry.npmjs.org/@esbuild/win32-x64/-/win32-x64-0.18.20.tgz",
379 | "integrity": "sha512-kTdfRcSiDfQca/y9QIkng02avJ+NCaQvrMejlsB3RRv5sE9rRoeBPISaZpKxHELzRxZyLvNts1P27W3wV+8geQ==",
380 | "cpu": [
381 | "x64"
382 | ],
383 | "dev": true,
384 | "optional": true,
385 | "os": [
386 | "win32"
387 | ],
388 | "engines": {
389 | "node": ">=12"
390 | }
391 | },
392 | "node_modules/@fastify/busboy": {
393 | "version": "2.1.1",
394 | "resolved": "https://registry.npmjs.org/@fastify/busboy/-/busboy-2.1.1.tgz",
395 | "integrity": "sha512-vBZP4NlzfOlerQTnba4aqZoMhE/a9HY7HRqoOPaETQcSQuWEIyZMHGfVu6w9wGtGK5fED5qRs2DteVCjOH60sA==",
396 | "dev": true,
397 | "engines": {
398 | "node": ">=14"
399 | }
400 | },
401 | "node_modules/@jridgewell/gen-mapping": {
402 | "version": "0.3.5",
403 | "resolved": "https://registry.npmjs.org/@jridgewell/gen-mapping/-/gen-mapping-0.3.5.tgz",
404 | "integrity": "sha512-IzL8ZoEDIBRWEzlCcRhOaCupYyN5gdIK+Q6fbFdPDg6HqX6jpkItn7DFIpW9LQzXG6Df9sA7+OKnq0qlz/GaQg==",
405 | "dev": true,
406 | "dependencies": {
407 | "@jridgewell/set-array": "^1.2.1",
408 | "@jridgewell/sourcemap-codec": "^1.4.10",
409 | "@jridgewell/trace-mapping": "^0.3.24"
410 | },
411 | "engines": {
412 | "node": ">=6.0.0"
413 | }
414 | },
415 | "node_modules/@jridgewell/resolve-uri": {
416 | "version": "3.1.2",
417 | "resolved": "https://registry.npmjs.org/@jridgewell/resolve-uri/-/resolve-uri-3.1.2.tgz",
418 | "integrity": "sha512-bRISgCIjP20/tbWSPWMEi54QVPRZExkuD9lJL+UIxUKtwVJA8wW1Trb1jMs1RFXo1CBTNZ/5hpC9QvmKWdopKw==",
419 | "dev": true,
420 | "engines": {
421 | "node": ">=6.0.0"
422 | }
423 | },
424 | "node_modules/@jridgewell/set-array": {
425 | "version": "1.2.1",
426 | "resolved": "https://registry.npmjs.org/@jridgewell/set-array/-/set-array-1.2.1.tgz",
427 | "integrity": "sha512-R8gLRTZeyp03ymzP/6Lil/28tGeGEzhx1q2k703KGWRAI1VdvPIXdG70VJc2pAMw3NA6JKL5hhFu1sJX0Mnn/A==",
428 | "dev": true,
429 | "engines": {
430 | "node": ">=6.0.0"
431 | }
432 | },
433 | "node_modules/@jridgewell/sourcemap-codec": {
434 | "version": "1.4.15",
435 | "resolved": "https://registry.npmjs.org/@jridgewell/sourcemap-codec/-/sourcemap-codec-1.4.15.tgz",
436 | "integrity": "sha512-eF2rxCRulEKXHTRiDrDy6erMYWqNw4LPdQ8UQA4huuxaQsVeRPFl2oM8oDGxMFhJUWZf9McpLtJasDDZb/Bpeg==",
437 | "dev": true
438 | },
439 | "node_modules/@jridgewell/trace-mapping": {
440 | "version": "0.3.25",
441 | "resolved": "https://registry.npmjs.org/@jridgewell/trace-mapping/-/trace-mapping-0.3.25.tgz",
442 | "integrity": "sha512-vNk6aEwybGtawWmy/PzwnGDOjCkLWSD2wqvjGGAgOAwCGWySYXfYoxt00IJkTF+8Lb57DwOb3Aa0o9CApepiYQ==",
443 | "dev": true,
444 | "dependencies": {
445 | "@jridgewell/resolve-uri": "^3.1.0",
446 | "@jridgewell/sourcemap-codec": "^1.4.14"
447 | }
448 | },
449 | "node_modules/@polka/url": {
450 | "version": "1.0.0-next.25",
451 | "resolved": "https://registry.npmjs.org/@polka/url/-/url-1.0.0-next.25.tgz",
452 | "integrity": "sha512-j7P6Rgr3mmtdkeDGTe0E/aYyWEWVtc5yFXtHCRHs28/jptDEWfaVOc5T7cblqy1XKPPfCxJc/8DwQ5YgLOZOVQ==",
453 | "dev": true
454 | },
455 | "node_modules/@sveltejs/adapter-auto": {
456 | "version": "2.1.1",
457 | "resolved": "https://registry.npmjs.org/@sveltejs/adapter-auto/-/adapter-auto-2.1.1.tgz",
458 | "integrity": "sha512-nzi6x/7/3Axh5VKQ8Eed3pYxastxoa06Y/bFhWb7h3Nu+nGRVxKAy3+hBJgmPCwWScy8n0TsstZjSVKfyrIHkg==",
459 | "dev": true,
460 | "dependencies": {
461 | "import-meta-resolve": "^4.0.0"
462 | },
463 | "peerDependencies": {
464 | "@sveltejs/kit": "^1.0.0"
465 | }
466 | },
467 | "node_modules/@sveltejs/kit": {
468 | "version": "1.30.4",
469 | "resolved": "https://registry.npmjs.org/@sveltejs/kit/-/kit-1.30.4.tgz",
470 | "integrity": "sha512-JSQIQT6XvdchCRQEm7BABxPC56WP5RYVONAi+09S8tmzeP43fBsRlr95bFmsTQM2RHBldfgQk+jgdnsKI75daA==",
471 | "dev": true,
472 | "hasInstallScript": true,
473 | "dependencies": {
474 | "@sveltejs/vite-plugin-svelte": "^2.5.0",
475 | "@types/cookie": "^0.5.1",
476 | "cookie": "^0.5.0",
477 | "devalue": "^4.3.1",
478 | "esm-env": "^1.0.0",
479 | "kleur": "^4.1.5",
480 | "magic-string": "^0.30.0",
481 | "mrmime": "^1.0.1",
482 | "sade": "^1.8.1",
483 | "set-cookie-parser": "^2.6.0",
484 | "sirv": "^2.0.2",
485 | "tiny-glob": "^0.2.9",
486 | "undici": "^5.28.3"
487 | },
488 | "bin": {
489 | "svelte-kit": "svelte-kit.js"
490 | },
491 | "engines": {
492 | "node": "^16.14 || >=18"
493 | },
494 | "peerDependencies": {
495 | "svelte": "^3.54.0 || ^4.0.0-next.0 || ^5.0.0-next.0",
496 | "vite": "^4.0.0"
497 | }
498 | },
499 | "node_modules/@sveltejs/package": {
500 | "version": "2.3.2",
501 | "resolved": "https://registry.npmjs.org/@sveltejs/package/-/package-2.3.2.tgz",
502 | "integrity": "sha512-6M8/Te7iXRG7SiH92wugqfyoJpuepjn78L433LnXicUeMso9M/N4vdL9DPK3MfTkVVY4klhNRptVqme3p4oZWA==",
503 | "dev": true,
504 | "dependencies": {
505 | "chokidar": "^3.6.0",
506 | "kleur": "^4.1.5",
507 | "sade": "^1.8.1",
508 | "semver": "^7.5.4",
509 | "svelte2tsx": "~0.7.0"
510 | },
511 | "bin": {
512 | "svelte-package": "svelte-package.js"
513 | },
514 | "engines": {
515 | "node": "^16.14 || >=18"
516 | },
517 | "peerDependencies": {
518 | "svelte": "^3.44.0 || ^4.0.0 || ^5.0.0-next.1"
519 | }
520 | },
521 | "node_modules/@sveltejs/vite-plugin-svelte": {
522 | "version": "2.5.3",
523 | "resolved": "https://registry.npmjs.org/@sveltejs/vite-plugin-svelte/-/vite-plugin-svelte-2.5.3.tgz",
524 | "integrity": "sha512-erhNtXxE5/6xGZz/M9eXsmI7Pxa6MS7jyTy06zN3Ck++ldrppOnOlJwHHTsMC7DHDQdgUp4NAc4cDNQ9eGdB/w==",
525 | "dev": true,
526 | "dependencies": {
527 | "@sveltejs/vite-plugin-svelte-inspector": "^1.0.4",
528 | "debug": "^4.3.4",
529 | "deepmerge": "^4.3.1",
530 | "kleur": "^4.1.5",
531 | "magic-string": "^0.30.3",
532 | "svelte-hmr": "^0.15.3",
533 | "vitefu": "^0.2.4"
534 | },
535 | "engines": {
536 | "node": "^14.18.0 || >= 16"
537 | },
538 | "peerDependencies": {
539 | "svelte": "^3.54.0 || ^4.0.0 || ^5.0.0-next.0",
540 | "vite": "^4.0.0"
541 | }
542 | },
543 | "node_modules/@sveltejs/vite-plugin-svelte-inspector": {
544 | "version": "1.0.4",
545 | "resolved": "https://registry.npmjs.org/@sveltejs/vite-plugin-svelte-inspector/-/vite-plugin-svelte-inspector-1.0.4.tgz",
546 | "integrity": "sha512-zjiuZ3yydBtwpF3bj0kQNV0YXe+iKE545QGZVTaylW3eAzFr+pJ/cwK8lZEaRp4JtaJXhD5DyWAV4AxLh6DgaQ==",
547 | "dev": true,
548 | "dependencies": {
549 | "debug": "^4.3.4"
550 | },
551 | "engines": {
552 | "node": "^14.18.0 || >= 16"
553 | },
554 | "peerDependencies": {
555 | "@sveltejs/vite-plugin-svelte": "^2.2.0",
556 | "svelte": "^3.54.0 || ^4.0.0",
557 | "vite": "^4.0.0"
558 | }
559 | },
560 | "node_modules/@types/cookie": {
561 | "version": "0.5.4",
562 | "resolved": "https://registry.npmjs.org/@types/cookie/-/cookie-0.5.4.tgz",
563 | "integrity": "sha512-7z/eR6O859gyWIAjuvBWFzNURmf2oPBmJlfVWkwehU5nzIyjwBsTh7WMmEEV4JFnHuQ3ex4oyTvfKzcyJVDBNA==",
564 | "dev": true
565 | },
566 | "node_modules/@types/estree": {
567 | "version": "1.0.5",
568 | "resolved": "https://registry.npmjs.org/@types/estree/-/estree-1.0.5.tgz",
569 | "integrity": "sha512-/kYRxGDLWzHOB7q+wtSUQlFrtcdUccpfy+X+9iMBpHK8QLLhx2wIPYuS5DYtR9Wa/YlZAbIovy7qVdB1Aq6Lyw==",
570 | "dev": true
571 | },
572 | "node_modules/acorn": {
573 | "version": "8.12.0",
574 | "resolved": "https://registry.npmjs.org/acorn/-/acorn-8.12.0.tgz",
575 | "integrity": "sha512-RTvkC4w+KNXrM39/lWCUaG0IbRkWdCv7W/IOW9oU6SawyxulvkQy5HQPVTKxEjczcUvapcrw3cFx/60VN/NRNw==",
576 | "dev": true,
577 | "bin": {
578 | "acorn": "bin/acorn"
579 | },
580 | "engines": {
581 | "node": ">=0.4.0"
582 | }
583 | },
584 | "node_modules/anymatch": {
585 | "version": "3.1.3",
586 | "resolved": "https://registry.npmjs.org/anymatch/-/anymatch-3.1.3.tgz",
587 | "integrity": "sha512-KMReFUr0B4t+D+OBkjR3KYqvocp2XaSzO55UcB6mgQMd3KbcE+mWTyvVV7D/zsdEbNnV6acZUutkiHQXvTr1Rw==",
588 | "dev": true,
589 | "dependencies": {
590 | "normalize-path": "^3.0.0",
591 | "picomatch": "^2.0.4"
592 | },
593 | "engines": {
594 | "node": ">= 8"
595 | }
596 | },
597 | "node_modules/aria-query": {
598 | "version": "5.3.0",
599 | "resolved": "https://registry.npmjs.org/aria-query/-/aria-query-5.3.0.tgz",
600 | "integrity": "sha512-b0P0sZPKtyu8HkeRAfCq0IfURZK+SuwMjY1UXGBU27wpAiTwQAIlq56IbIO+ytk/JjS1fMR14ee5WBBfKi5J6A==",
601 | "dev": true,
602 | "dependencies": {
603 | "dequal": "^2.0.3"
604 | }
605 | },
606 | "node_modules/axobject-query": {
607 | "version": "4.0.0",
608 | "resolved": "https://registry.npmjs.org/axobject-query/-/axobject-query-4.0.0.tgz",
609 | "integrity": "sha512-+60uv1hiVFhHZeO+Lz0RYzsVHy5Wr1ayX0mwda9KPDVLNJgZ1T9Ny7VmFbLDzxsH0D87I86vgj3gFrjTJUYznw==",
610 | "dev": true,
611 | "dependencies": {
612 | "dequal": "^2.0.3"
613 | }
614 | },
615 | "node_modules/balanced-match": {
616 | "version": "1.0.2",
617 | "resolved": "https://registry.npmjs.org/balanced-match/-/balanced-match-1.0.2.tgz",
618 | "integrity": "sha512-3oSeUO0TMV67hN1AmbXsK4yaqU7tjiHlbxRDZOpH0KW9+CeX4bRAaX0Anxt0tx2MrpRpWwQaPwIlISEJhYU5Pw==",
619 | "dev": true
620 | },
621 | "node_modules/binary-extensions": {
622 | "version": "2.3.0",
623 | "resolved": "https://registry.npmjs.org/binary-extensions/-/binary-extensions-2.3.0.tgz",
624 | "integrity": "sha512-Ceh+7ox5qe7LJuLHoY0feh3pHuUDHAcRUeyL2VYghZwfpkNIy/+8Ocg0a3UuSoYzavmylwuLWQOf3hl0jjMMIw==",
625 | "dev": true,
626 | "engines": {
627 | "node": ">=8"
628 | },
629 | "funding": {
630 | "url": "https://github.com/sponsors/sindresorhus"
631 | }
632 | },
633 | "node_modules/brace-expansion": {
634 | "version": "2.0.1",
635 | "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-2.0.1.tgz",
636 | "integrity": "sha512-XnAIvQ8eM+kC6aULx6wuQiwVsnzsi9d3WxzV3FpWTGA19F621kwdbsAcFKXgKUHZWsy+mY6iL1sHTxWEFCytDA==",
637 | "dev": true,
638 | "dependencies": {
639 | "balanced-match": "^1.0.0"
640 | }
641 | },
642 | "node_modules/braces": {
643 | "version": "3.0.3",
644 | "resolved": "https://registry.npmjs.org/braces/-/braces-3.0.3.tgz",
645 | "integrity": "sha512-yQbXgO/OSZVD2IsiLlro+7Hf6Q18EJrKSEsdoMzKePKXct3gvD8oLcOQdIzGupr5Fj+EDe8gO/lxc1BzfMpxvA==",
646 | "dev": true,
647 | "dependencies": {
648 | "fill-range": "^7.1.1"
649 | },
650 | "engines": {
651 | "node": ">=8"
652 | }
653 | },
654 | "node_modules/chokidar": {
655 | "version": "3.6.0",
656 | "resolved": "https://registry.npmjs.org/chokidar/-/chokidar-3.6.0.tgz",
657 | "integrity": "sha512-7VT13fmjotKpGipCW9JEQAusEPE+Ei8nl6/g4FBAmIm0GOOLMua9NDDo/DWp0ZAxCr3cPq5ZpBqmPAQgDda2Pw==",
658 | "dev": true,
659 | "dependencies": {
660 | "anymatch": "~3.1.2",
661 | "braces": "~3.0.2",
662 | "glob-parent": "~5.1.2",
663 | "is-binary-path": "~2.1.0",
664 | "is-glob": "~4.0.1",
665 | "normalize-path": "~3.0.0",
666 | "readdirp": "~3.6.0"
667 | },
668 | "engines": {
669 | "node": ">= 8.10.0"
670 | },
671 | "funding": {
672 | "url": "https://paulmillr.com/funding/"
673 | },
674 | "optionalDependencies": {
675 | "fsevents": "~2.3.2"
676 | }
677 | },
678 | "node_modules/code-red": {
679 | "version": "1.0.4",
680 | "resolved": "https://registry.npmjs.org/code-red/-/code-red-1.0.4.tgz",
681 | "integrity": "sha512-7qJWqItLA8/VPVlKJlFXU+NBlo/qyfs39aJcuMT/2ere32ZqvF5OSxgdM5xOfJJ7O429gg2HM47y8v9P+9wrNw==",
682 | "dev": true,
683 | "dependencies": {
684 | "@jridgewell/sourcemap-codec": "^1.4.15",
685 | "@types/estree": "^1.0.1",
686 | "acorn": "^8.10.0",
687 | "estree-walker": "^3.0.3",
688 | "periscopic": "^3.1.0"
689 | }
690 | },
691 | "node_modules/cookie": {
692 | "version": "0.5.0",
693 | "resolved": "https://registry.npmjs.org/cookie/-/cookie-0.5.0.tgz",
694 | "integrity": "sha512-YZ3GUyn/o8gfKJlnlX7g7xq4gyO6OSuhGPKaaGssGB2qgDUS0gPgtTvoyZLTt9Ab6dC4hfc9dV5arkvc/OCmrw==",
695 | "dev": true,
696 | "engines": {
697 | "node": ">= 0.6"
698 | }
699 | },
700 | "node_modules/css-tree": {
701 | "version": "2.3.1",
702 | "resolved": "https://registry.npmjs.org/css-tree/-/css-tree-2.3.1.tgz",
703 | "integrity": "sha512-6Fv1DV/TYw//QF5IzQdqsNDjx/wc8TrMBZsqjL9eW01tWb7R7k/mq+/VXfJCl7SoD5emsJop9cOByJZfs8hYIw==",
704 | "dev": true,
705 | "dependencies": {
706 | "mdn-data": "2.0.30",
707 | "source-map-js": "^1.0.1"
708 | },
709 | "engines": {
710 | "node": "^10 || ^12.20.0 || ^14.13.0 || >=15.0.0"
711 | }
712 | },
713 | "node_modules/debug": {
714 | "version": "4.3.5",
715 | "resolved": "https://registry.npmjs.org/debug/-/debug-4.3.5.tgz",
716 | "integrity": "sha512-pt0bNEmneDIvdL1Xsd9oDQ/wrQRkXDT4AUWlNZNPKvW5x/jyO9VFXkJUP07vQ2upmw5PlaITaPKc31jK13V+jg==",
717 | "dev": true,
718 | "dependencies": {
719 | "ms": "2.1.2"
720 | },
721 | "engines": {
722 | "node": ">=6.0"
723 | },
724 | "peerDependenciesMeta": {
725 | "supports-color": {
726 | "optional": true
727 | }
728 | }
729 | },
730 | "node_modules/dedent-js": {
731 | "version": "1.0.1",
732 | "resolved": "https://registry.npmjs.org/dedent-js/-/dedent-js-1.0.1.tgz",
733 | "integrity": "sha512-OUepMozQULMLUmhxS95Vudo0jb0UchLimi3+pQ2plj61Fcy8axbP9hbiD4Sz6DPqn6XG3kfmziVfQ1rSys5AJQ==",
734 | "dev": true
735 | },
736 | "node_modules/deepmerge": {
737 | "version": "4.3.1",
738 | "resolved": "https://registry.npmjs.org/deepmerge/-/deepmerge-4.3.1.tgz",
739 | "integrity": "sha512-3sUqbMEc77XqpdNO7FRyRog+eW3ph+GYCbj+rK+uYyRMuwsVy0rMiVtPn+QJlKFvWP/1PYpapqYn0Me2knFn+A==",
740 | "dev": true,
741 | "engines": {
742 | "node": ">=0.10.0"
743 | }
744 | },
745 | "node_modules/dequal": {
746 | "version": "2.0.3",
747 | "resolved": "https://registry.npmjs.org/dequal/-/dequal-2.0.3.tgz",
748 | "integrity": "sha512-0je+qPKHEMohvfRTCEo3CrPG6cAzAYgmzKyxRiYSSDkS6eGJdyVJm7WaYA5ECaAD9wLB2T4EEeymA5aFVcYXCA==",
749 | "dev": true,
750 | "engines": {
751 | "node": ">=6"
752 | }
753 | },
754 | "node_modules/devalue": {
755 | "version": "4.3.3",
756 | "resolved": "https://registry.npmjs.org/devalue/-/devalue-4.3.3.tgz",
757 | "integrity": "sha512-UH8EL6H2ifcY8TbD2QsxwCC/pr5xSwPvv85LrLXVihmHVC3T3YqTCIwnR5ak0yO1KYqlxrPVOA/JVZJYPy2ATg==",
758 | "dev": true
759 | },
760 | "node_modules/esbuild": {
761 | "version": "0.18.20",
762 | "resolved": "https://registry.npmjs.org/esbuild/-/esbuild-0.18.20.tgz",
763 | "integrity": "sha512-ceqxoedUrcayh7Y7ZX6NdbbDzGROiyVBgC4PriJThBKSVPWnnFHZAkfI1lJT8QFkOwH4qOS2SJkS4wvpGl8BpA==",
764 | "dev": true,
765 | "hasInstallScript": true,
766 | "bin": {
767 | "esbuild": "bin/esbuild"
768 | },
769 | "engines": {
770 | "node": ">=12"
771 | },
772 | "optionalDependencies": {
773 | "@esbuild/android-arm": "0.18.20",
774 | "@esbuild/android-arm64": "0.18.20",
775 | "@esbuild/android-x64": "0.18.20",
776 | "@esbuild/darwin-arm64": "0.18.20",
777 | "@esbuild/darwin-x64": "0.18.20",
778 | "@esbuild/freebsd-arm64": "0.18.20",
779 | "@esbuild/freebsd-x64": "0.18.20",
780 | "@esbuild/linux-arm": "0.18.20",
781 | "@esbuild/linux-arm64": "0.18.20",
782 | "@esbuild/linux-ia32": "0.18.20",
783 | "@esbuild/linux-loong64": "0.18.20",
784 | "@esbuild/linux-mips64el": "0.18.20",
785 | "@esbuild/linux-ppc64": "0.18.20",
786 | "@esbuild/linux-riscv64": "0.18.20",
787 | "@esbuild/linux-s390x": "0.18.20",
788 | "@esbuild/linux-x64": "0.18.20",
789 | "@esbuild/netbsd-x64": "0.18.20",
790 | "@esbuild/openbsd-x64": "0.18.20",
791 | "@esbuild/sunos-x64": "0.18.20",
792 | "@esbuild/win32-arm64": "0.18.20",
793 | "@esbuild/win32-ia32": "0.18.20",
794 | "@esbuild/win32-x64": "0.18.20"
795 | }
796 | },
797 | "node_modules/esm-env": {
798 | "version": "1.0.0",
799 | "resolved": "https://registry.npmjs.org/esm-env/-/esm-env-1.0.0.tgz",
800 | "integrity": "sha512-Cf6VksWPsTuW01vU9Mk/3vRue91Zevka5SjyNf3nEpokFRuqt/KjUQoGAwq9qMmhpLTHmXzSIrFRw8zxWzmFBA==",
801 | "dev": true
802 | },
803 | "node_modules/estree-walker": {
804 | "version": "3.0.3",
805 | "resolved": "https://registry.npmjs.org/estree-walker/-/estree-walker-3.0.3.tgz",
806 | "integrity": "sha512-7RUKfXgSMMkzt6ZuXmqapOurLGPPfgj6l9uRZ7lRGolvk0y2yocc35LdcxKC5PQZdn2DMqioAQ2NoWcrTKmm6g==",
807 | "dev": true,
808 | "dependencies": {
809 | "@types/estree": "^1.0.0"
810 | }
811 | },
812 | "node_modules/fill-range": {
813 | "version": "7.1.1",
814 | "resolved": "https://registry.npmjs.org/fill-range/-/fill-range-7.1.1.tgz",
815 | "integrity": "sha512-YsGpe3WHLK8ZYi4tWDg2Jy3ebRz2rXowDxnld4bkQB00cc/1Zw9AWnC0i9ztDJitivtQvaI9KaLyKrc+hBW0yg==",
816 | "dev": true,
817 | "dependencies": {
818 | "to-regex-range": "^5.0.1"
819 | },
820 | "engines": {
821 | "node": ">=8"
822 | }
823 | },
824 | "node_modules/fs.realpath": {
825 | "version": "1.0.0",
826 | "resolved": "https://registry.npmjs.org/fs.realpath/-/fs.realpath-1.0.0.tgz",
827 | "integrity": "sha512-OO0pH2lK6a0hZnAdau5ItzHPI6pUlvI7jMVnxUQRtw4owF2wk8lOSabtGDCTP4Ggrg2MbGnWO9X8K1t4+fGMDw==",
828 | "dev": true
829 | },
830 | "node_modules/fsevents": {
831 | "version": "2.3.3",
832 | "resolved": "https://registry.npmjs.org/fsevents/-/fsevents-2.3.3.tgz",
833 | "integrity": "sha512-5xoDfX+fL7faATnagmWPpbFtwh/R77WmMMqqHGS65C3vvB0YHrgF+B1YmZ3441tMj5n63k0212XNoJwzlhffQw==",
834 | "dev": true,
835 | "hasInstallScript": true,
836 | "optional": true,
837 | "os": [
838 | "darwin"
839 | ],
840 | "engines": {
841 | "node": "^8.16.0 || ^10.6.0 || >=11.0.0"
842 | }
843 | },
844 | "node_modules/glob": {
845 | "version": "8.1.0",
846 | "resolved": "https://registry.npmjs.org/glob/-/glob-8.1.0.tgz",
847 | "integrity": "sha512-r8hpEjiQEYlF2QU0df3dS+nxxSIreXQS1qRhMJM0Q5NDdR386C7jb7Hwwod8Fgiuex+k0GFjgft18yvxm5XoCQ==",
848 | "deprecated": "Glob versions prior to v9 are no longer supported",
849 | "dev": true,
850 | "dependencies": {
851 | "fs.realpath": "^1.0.0",
852 | "inflight": "^1.0.4",
853 | "inherits": "2",
854 | "minimatch": "^5.0.1",
855 | "once": "^1.3.0"
856 | },
857 | "engines": {
858 | "node": ">=12"
859 | },
860 | "funding": {
861 | "url": "https://github.com/sponsors/isaacs"
862 | }
863 | },
864 | "node_modules/glob-parent": {
865 | "version": "5.1.2",
866 | "resolved": "https://registry.npmjs.org/glob-parent/-/glob-parent-5.1.2.tgz",
867 | "integrity": "sha512-AOIgSQCepiJYwP3ARnGx+5VnTu2HBYdzbGP45eLw1vr3zB3vZLeyed1sC9hnbcOc9/SrMyM5RPQrkGz4aS9Zow==",
868 | "dev": true,
869 | "dependencies": {
870 | "is-glob": "^4.0.1"
871 | },
872 | "engines": {
873 | "node": ">= 6"
874 | }
875 | },
876 | "node_modules/globalyzer": {
877 | "version": "0.1.0",
878 | "resolved": "https://registry.npmjs.org/globalyzer/-/globalyzer-0.1.0.tgz",
879 | "integrity": "sha512-40oNTM9UfG6aBmuKxk/giHn5nQ8RVz/SS4Ir6zgzOv9/qC3kKZ9v4etGTcJbEl/NyVQH7FGU7d+X1egr57Md2Q==",
880 | "dev": true
881 | },
882 | "node_modules/globrex": {
883 | "version": "0.1.2",
884 | "resolved": "https://registry.npmjs.org/globrex/-/globrex-0.1.2.tgz",
885 | "integrity": "sha512-uHJgbwAMwNFf5mLst7IWLNg14x1CkeqglJb/K3doi4dw6q2IvAAmM/Y81kevy83wP+Sst+nutFTYOGg3d1lsxg==",
886 | "dev": true
887 | },
888 | "node_modules/ignore-walk": {
889 | "version": "5.0.1",
890 | "resolved": "https://registry.npmjs.org/ignore-walk/-/ignore-walk-5.0.1.tgz",
891 | "integrity": "sha512-yemi4pMf51WKT7khInJqAvsIGzoqYXblnsz0ql8tM+yi1EKYTY1evX4NAbJrLL/Aanr2HyZeluqU+Oi7MGHokw==",
892 | "dev": true,
893 | "dependencies": {
894 | "minimatch": "^5.0.1"
895 | },
896 | "engines": {
897 | "node": "^12.13.0 || ^14.15.0 || >=16.0.0"
898 | }
899 | },
900 | "node_modules/import-meta-resolve": {
901 | "version": "4.1.0",
902 | "resolved": "https://registry.npmjs.org/import-meta-resolve/-/import-meta-resolve-4.1.0.tgz",
903 | "integrity": "sha512-I6fiaX09Xivtk+THaMfAwnA3MVA5Big1WHF1Dfx9hFuvNIWpXnorlkzhcQf6ehrqQiiZECRt1poOAkPmer3ruw==",
904 | "dev": true,
905 | "funding": {
906 | "type": "github",
907 | "url": "https://github.com/sponsors/wooorm"
908 | }
909 | },
910 | "node_modules/inflight": {
911 | "version": "1.0.6",
912 | "resolved": "https://registry.npmjs.org/inflight/-/inflight-1.0.6.tgz",
913 | "integrity": "sha512-k92I/b08q4wvFscXCLvqfsHCrjrF7yiXsQuIVvVE7N82W3+aqpzuUdBbfhWcy/FZR3/4IgflMgKLOsvPDrGCJA==",
914 | "deprecated": "This module is not supported, and leaks memory. Do not use it. Check out lru-cache if you want a good and tested way to coalesce async requests by a key value, which is much more comprehensive and powerful.",
915 | "dev": true,
916 | "dependencies": {
917 | "once": "^1.3.0",
918 | "wrappy": "1"
919 | }
920 | },
921 | "node_modules/inherits": {
922 | "version": "2.0.4",
923 | "resolved": "https://registry.npmjs.org/inherits/-/inherits-2.0.4.tgz",
924 | "integrity": "sha512-k/vGaX4/Yla3WzyMCvTQOXYeIHvqOKtnqBduzTHpzpQZzAskKMhZ2K+EnBiSM9zGSoIFeMpXKxa4dYeZIQqewQ==",
925 | "dev": true
926 | },
927 | "node_modules/is-binary-path": {
928 | "version": "2.1.0",
929 | "resolved": "https://registry.npmjs.org/is-binary-path/-/is-binary-path-2.1.0.tgz",
930 | "integrity": "sha512-ZMERYes6pDydyuGidse7OsHxtbI7WVeUEozgR/g7rd0xUimYNlvZRE/K2MgZTjWy725IfelLeVcEM97mmtRGXw==",
931 | "dev": true,
932 | "dependencies": {
933 | "binary-extensions": "^2.0.0"
934 | },
935 | "engines": {
936 | "node": ">=8"
937 | }
938 | },
939 | "node_modules/is-extglob": {
940 | "version": "2.1.1",
941 | "resolved": "https://registry.npmjs.org/is-extglob/-/is-extglob-2.1.1.tgz",
942 | "integrity": "sha512-SbKbANkN603Vi4jEZv49LeVJMn4yGwsbzZworEoyEiutsN3nJYdbO36zfhGJ6QEDpOZIFkDtnq5JRxmvl3jsoQ==",
943 | "dev": true,
944 | "engines": {
945 | "node": ">=0.10.0"
946 | }
947 | },
948 | "node_modules/is-glob": {
949 | "version": "4.0.3",
950 | "resolved": "https://registry.npmjs.org/is-glob/-/is-glob-4.0.3.tgz",
951 | "integrity": "sha512-xelSayHH36ZgE7ZWhli7pW34hNbNl8Ojv5KVmkJD4hBdD3th8Tfk9vYasLM+mXWOZhFkgZfxhLSnrwRr4elSSg==",
952 | "dev": true,
953 | "dependencies": {
954 | "is-extglob": "^2.1.1"
955 | },
956 | "engines": {
957 | "node": ">=0.10.0"
958 | }
959 | },
960 | "node_modules/is-number": {
961 | "version": "7.0.0",
962 | "resolved": "https://registry.npmjs.org/is-number/-/is-number-7.0.0.tgz",
963 | "integrity": "sha512-41Cifkg6e8TylSpdtTpeLVMqvSBEVzTttHvERD741+pnZ8ANv0004MRL43QKPDlK9cGvNp6NZWZUBlbGXYxxng==",
964 | "dev": true,
965 | "engines": {
966 | "node": ">=0.12.0"
967 | }
968 | },
969 | "node_modules/is-reference": {
970 | "version": "3.0.2",
971 | "resolved": "https://registry.npmjs.org/is-reference/-/is-reference-3.0.2.tgz",
972 | "integrity": "sha512-v3rht/LgVcsdZa3O2Nqs+NMowLOxeOm7Ay9+/ARQ2F+qEoANRcqrjAZKGN0v8ymUetZGgkp26LTnGT7H0Qo9Pg==",
973 | "dev": true,
974 | "dependencies": {
975 | "@types/estree": "*"
976 | }
977 | },
978 | "node_modules/kleur": {
979 | "version": "4.1.5",
980 | "resolved": "https://registry.npmjs.org/kleur/-/kleur-4.1.5.tgz",
981 | "integrity": "sha512-o+NO+8WrRiQEE4/7nwRJhN1HWpVmJm511pBHUxPLtp0BUISzlBplORYSmTclCnJvQq2tKu/sgl3xVpkc7ZWuQQ==",
982 | "dev": true,
983 | "engines": {
984 | "node": ">=6"
985 | }
986 | },
987 | "node_modules/locate-character": {
988 | "version": "3.0.0",
989 | "resolved": "https://registry.npmjs.org/locate-character/-/locate-character-3.0.0.tgz",
990 | "integrity": "sha512-SW13ws7BjaeJ6p7Q6CO2nchbYEc3X3J6WrmTTDto7yMPqVSZTUyY5Tjbid+Ab8gLnATtygYtiDIJGQRRn2ZOiA==",
991 | "dev": true
992 | },
993 | "node_modules/lower-case": {
994 | "version": "2.0.2",
995 | "resolved": "https://registry.npmjs.org/lower-case/-/lower-case-2.0.2.tgz",
996 | "integrity": "sha512-7fm3l3NAF9WfN6W3JOmf5drwpVqX78JtoGJ3A6W0a6ZnldM41w2fV5D490psKFTpMds8TJse/eHLFFsNHHjHgg==",
997 | "dev": true,
998 | "dependencies": {
999 | "tslib": "^2.0.3"
1000 | }
1001 | },
1002 | "node_modules/magic-string": {
1003 | "version": "0.30.10",
1004 | "resolved": "https://registry.npmjs.org/magic-string/-/magic-string-0.30.10.tgz",
1005 | "integrity": "sha512-iIRwTIf0QKV3UAnYK4PU8uiEc4SRh5jX0mwpIwETPpHdhVM4f53RSwS/vXvN1JhGX+Cs7B8qIq3d6AH49O5fAQ==",
1006 | "dev": true,
1007 | "dependencies": {
1008 | "@jridgewell/sourcemap-codec": "^1.4.15"
1009 | }
1010 | },
1011 | "node_modules/mdn-data": {
1012 | "version": "2.0.30",
1013 | "resolved": "https://registry.npmjs.org/mdn-data/-/mdn-data-2.0.30.tgz",
1014 | "integrity": "sha512-GaqWWShW4kv/G9IEucWScBx9G1/vsFZZJUO+tD26M8J8z3Kw5RDQjaoZe03YAClgeS/SWPOcb4nkFBTEi5DUEA==",
1015 | "dev": true
1016 | },
1017 | "node_modules/minimatch": {
1018 | "version": "5.1.6",
1019 | "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-5.1.6.tgz",
1020 | "integrity": "sha512-lKwV/1brpG6mBUFHtb7NUmtABCb2WZZmm2wNiOA5hAb8VdCS4B3dtMWyvcoViccwAW/COERjXLt0zP1zXUN26g==",
1021 | "dev": true,
1022 | "dependencies": {
1023 | "brace-expansion": "^2.0.1"
1024 | },
1025 | "engines": {
1026 | "node": ">=10"
1027 | }
1028 | },
1029 | "node_modules/mri": {
1030 | "version": "1.2.0",
1031 | "resolved": "https://registry.npmjs.org/mri/-/mri-1.2.0.tgz",
1032 | "integrity": "sha512-tzzskb3bG8LvYGFF/mDTpq3jpI6Q9wc3LEmBaghu+DdCssd1FakN7Bc0hVNmEyGq1bq3RgfkCb3cmQLpNPOroA==",
1033 | "dev": true,
1034 | "engines": {
1035 | "node": ">=4"
1036 | }
1037 | },
1038 | "node_modules/mrmime": {
1039 | "version": "1.0.1",
1040 | "resolved": "https://registry.npmjs.org/mrmime/-/mrmime-1.0.1.tgz",
1041 | "integrity": "sha512-hzzEagAgDyoU1Q6yg5uI+AorQgdvMCur3FcKf7NhMKWsaYg+RnbTyHRa/9IlLF9rf455MOCtcqqrQQ83pPP7Uw==",
1042 | "dev": true,
1043 | "engines": {
1044 | "node": ">=10"
1045 | }
1046 | },
1047 | "node_modules/ms": {
1048 | "version": "2.1.2",
1049 | "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.2.tgz",
1050 | "integrity": "sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w==",
1051 | "dev": true
1052 | },
1053 | "node_modules/nanoid": {
1054 | "version": "3.3.7",
1055 | "resolved": "https://registry.npmjs.org/nanoid/-/nanoid-3.3.7.tgz",
1056 | "integrity": "sha512-eSRppjcPIatRIMC1U6UngP8XFcz8MQWGQdt1MTBQ7NaAmvXDfvNxbvWV3x2y6CdEUciCSsDHDQZbhYaB8QEo2g==",
1057 | "dev": true,
1058 | "funding": [
1059 | {
1060 | "type": "github",
1061 | "url": "https://github.com/sponsors/ai"
1062 | }
1063 | ],
1064 | "bin": {
1065 | "nanoid": "bin/nanoid.cjs"
1066 | },
1067 | "engines": {
1068 | "node": "^10 || ^12 || ^13.7 || ^14 || >=15.0.1"
1069 | }
1070 | },
1071 | "node_modules/no-case": {
1072 | "version": "3.0.4",
1073 | "resolved": "https://registry.npmjs.org/no-case/-/no-case-3.0.4.tgz",
1074 | "integrity": "sha512-fgAN3jGAh+RoxUGZHTSOLJIqUc2wmoBwGR4tbpNAKmmovFoWq0OdRkb0VkldReO2a2iBT/OEulG9XSUc10r3zg==",
1075 | "dev": true,
1076 | "dependencies": {
1077 | "lower-case": "^2.0.2",
1078 | "tslib": "^2.0.3"
1079 | }
1080 | },
1081 | "node_modules/normalize-path": {
1082 | "version": "3.0.0",
1083 | "resolved": "https://registry.npmjs.org/normalize-path/-/normalize-path-3.0.0.tgz",
1084 | "integrity": "sha512-6eZs5Ls3WtCisHWp9S2GUy8dqkpGi4BVSz3GaqiE6ezub0512ESztXUwUB6C6IKbQkY2Pnb/mD4WYojCRwcwLA==",
1085 | "dev": true,
1086 | "engines": {
1087 | "node": ">=0.10.0"
1088 | }
1089 | },
1090 | "node_modules/npm-bundled": {
1091 | "version": "2.0.1",
1092 | "resolved": "https://registry.npmjs.org/npm-bundled/-/npm-bundled-2.0.1.tgz",
1093 | "integrity": "sha512-gZLxXdjEzE/+mOstGDqR6b0EkhJ+kM6fxM6vUuckuctuVPh80Q6pw/rSZj9s4Gex9GxWtIicO1pc8DB9KZWudw==",
1094 | "dev": true,
1095 | "dependencies": {
1096 | "npm-normalize-package-bin": "^2.0.0"
1097 | },
1098 | "engines": {
1099 | "node": "^12.13.0 || ^14.15.0 || >=16.0.0"
1100 | }
1101 | },
1102 | "node_modules/npm-normalize-package-bin": {
1103 | "version": "2.0.0",
1104 | "resolved": "https://registry.npmjs.org/npm-normalize-package-bin/-/npm-normalize-package-bin-2.0.0.tgz",
1105 | "integrity": "sha512-awzfKUO7v0FscrSpRoogyNm0sajikhBWpU0QMrW09AMi9n1PoKU6WaIqUzuJSQnpciZZmJ/jMZ2Egfmb/9LiWQ==",
1106 | "dev": true,
1107 | "engines": {
1108 | "node": "^12.13.0 || ^14.15.0 || >=16.0.0"
1109 | }
1110 | },
1111 | "node_modules/npm-packlist": {
1112 | "version": "5.1.3",
1113 | "resolved": "https://registry.npmjs.org/npm-packlist/-/npm-packlist-5.1.3.tgz",
1114 | "integrity": "sha512-263/0NGrn32YFYi4J533qzrQ/krmmrWwhKkzwTuM4f/07ug51odoaNjUexxO4vxlzURHcmYMH1QjvHjsNDKLVg==",
1115 | "dev": true,
1116 | "dependencies": {
1117 | "glob": "^8.0.1",
1118 | "ignore-walk": "^5.0.1",
1119 | "npm-bundled": "^2.0.0",
1120 | "npm-normalize-package-bin": "^2.0.0"
1121 | },
1122 | "bin": {
1123 | "npm-packlist": "bin/index.js"
1124 | },
1125 | "engines": {
1126 | "node": "^12.13.0 || ^14.15.0 || >=16.0.0"
1127 | }
1128 | },
1129 | "node_modules/once": {
1130 | "version": "1.4.0",
1131 | "resolved": "https://registry.npmjs.org/once/-/once-1.4.0.tgz",
1132 | "integrity": "sha512-lNaJgI+2Q5URQBkccEKHTQOPaXdUxnZZElQTZY0MFUAuaEqe1E+Nyvgdz/aIyNi6Z9MzO5dv1H8n58/GELp3+w==",
1133 | "dev": true,
1134 | "dependencies": {
1135 | "wrappy": "1"
1136 | }
1137 | },
1138 | "node_modules/pascal-case": {
1139 | "version": "3.1.2",
1140 | "resolved": "https://registry.npmjs.org/pascal-case/-/pascal-case-3.1.2.tgz",
1141 | "integrity": "sha512-uWlGT3YSnK9x3BQJaOdcZwrnV6hPpd8jFH1/ucpiLRPh/2zCVJKS19E4GvYHvaCcACn3foXZ0cLB9Wrx1KGe5g==",
1142 | "dev": true,
1143 | "dependencies": {
1144 | "no-case": "^3.0.4",
1145 | "tslib": "^2.0.3"
1146 | }
1147 | },
1148 | "node_modules/periscopic": {
1149 | "version": "3.1.0",
1150 | "resolved": "https://registry.npmjs.org/periscopic/-/periscopic-3.1.0.tgz",
1151 | "integrity": "sha512-vKiQ8RRtkl9P+r/+oefh25C3fhybptkHKCZSPlcXiJux2tJF55GnEj3BVn4A5gKfq9NWWXXrxkHBwVPUfH0opw==",
1152 | "dev": true,
1153 | "dependencies": {
1154 | "@types/estree": "^1.0.0",
1155 | "estree-walker": "^3.0.0",
1156 | "is-reference": "^3.0.0"
1157 | }
1158 | },
1159 | "node_modules/picocolors": {
1160 | "version": "1.0.1",
1161 | "resolved": "https://registry.npmjs.org/picocolors/-/picocolors-1.0.1.tgz",
1162 | "integrity": "sha512-anP1Z8qwhkbmu7MFP5iTt+wQKXgwzf7zTyGlcdzabySa9vd0Xt392U0rVmz9poOaBj0uHJKyyo9/upk0HrEQew==",
1163 | "dev": true
1164 | },
1165 | "node_modules/picomatch": {
1166 | "version": "2.3.1",
1167 | "resolved": "https://registry.npmjs.org/picomatch/-/picomatch-2.3.1.tgz",
1168 | "integrity": "sha512-JU3teHTNjmE2VCGFzuY8EXzCDVwEqB2a8fsIvwaStHhAWJEeVd1o1QD80CU6+ZdEXXSLbSsuLwJjkCBWqRQUVA==",
1169 | "dev": true,
1170 | "engines": {
1171 | "node": ">=8.6"
1172 | },
1173 | "funding": {
1174 | "url": "https://github.com/sponsors/jonschlinkert"
1175 | }
1176 | },
1177 | "node_modules/postcss": {
1178 | "version": "8.4.39",
1179 | "resolved": "https://registry.npmjs.org/postcss/-/postcss-8.4.39.tgz",
1180 | "integrity": "sha512-0vzE+lAiG7hZl1/9I8yzKLx3aR9Xbof3fBHKunvMfOCYAtMhrsnccJY2iTURb9EZd5+pLuiNV9/c/GZJOHsgIw==",
1181 | "dev": true,
1182 | "funding": [
1183 | {
1184 | "type": "opencollective",
1185 | "url": "https://opencollective.com/postcss/"
1186 | },
1187 | {
1188 | "type": "tidelift",
1189 | "url": "https://tidelift.com/funding/github/npm/postcss"
1190 | },
1191 | {
1192 | "type": "github",
1193 | "url": "https://github.com/sponsors/ai"
1194 | }
1195 | ],
1196 | "dependencies": {
1197 | "nanoid": "^3.3.7",
1198 | "picocolors": "^1.0.1",
1199 | "source-map-js": "^1.2.0"
1200 | },
1201 | "engines": {
1202 | "node": "^10 || ^12 || >=14"
1203 | }
1204 | },
1205 | "node_modules/prettier": {
1206 | "version": "2.8.8",
1207 | "resolved": "https://registry.npmjs.org/prettier/-/prettier-2.8.8.tgz",
1208 | "integrity": "sha512-tdN8qQGvNjw4CHbY+XXk0JgCXn9QiF21a55rBe5LJAU+kDyC4WQn4+awm2Xfk2lQMk5fKup9XgzTZtGkjBdP9Q==",
1209 | "dev": true,
1210 | "bin": {
1211 | "prettier": "bin-prettier.js"
1212 | },
1213 | "engines": {
1214 | "node": ">=10.13.0"
1215 | },
1216 | "funding": {
1217 | "url": "https://github.com/prettier/prettier?sponsor=1"
1218 | }
1219 | },
1220 | "node_modules/prettier-plugin-svelte": {
1221 | "version": "2.10.1",
1222 | "resolved": "https://registry.npmjs.org/prettier-plugin-svelte/-/prettier-plugin-svelte-2.10.1.tgz",
1223 | "integrity": "sha512-Wlq7Z5v2ueCubWo0TZzKc9XHcm7TDxqcuzRuGd0gcENfzfT4JZ9yDlCbEgxWgiPmLHkBjfOtpAWkcT28MCDpUQ==",
1224 | "dev": true,
1225 | "peerDependencies": {
1226 | "prettier": "^1.16.4 || ^2.0.0",
1227 | "svelte": "^3.2.0 || ^4.0.0-next.0"
1228 | }
1229 | },
1230 | "node_modules/publint": {
1231 | "version": "0.1.16",
1232 | "resolved": "https://registry.npmjs.org/publint/-/publint-0.1.16.tgz",
1233 | "integrity": "sha512-wJgk7HnXDT5Ap0DjFYbGz78kPkN44iQvDiaq8P63IEEyNU9mYXvaMd2cAyIM6OgqXM/IA3CK6XWIsRq+wjNpgw==",
1234 | "dev": true,
1235 | "dependencies": {
1236 | "npm-packlist": "^5.1.3",
1237 | "picocolors": "^1.0.0",
1238 | "sade": "^1.8.1"
1239 | },
1240 | "bin": {
1241 | "publint": "lib/cli.js"
1242 | },
1243 | "engines": {
1244 | "node": ">=16"
1245 | },
1246 | "funding": {
1247 | "url": "https://bjornlu.com/sponsor"
1248 | }
1249 | },
1250 | "node_modules/readdirp": {
1251 | "version": "3.6.0",
1252 | "resolved": "https://registry.npmjs.org/readdirp/-/readdirp-3.6.0.tgz",
1253 | "integrity": "sha512-hOS089on8RduqdbhvQ5Z37A0ESjsqz6qnRcffsMU3495FuTdqSm+7bhJ29JvIOsBDEEnan5DPu9t3To9VRlMzA==",
1254 | "dev": true,
1255 | "dependencies": {
1256 | "picomatch": "^2.2.1"
1257 | },
1258 | "engines": {
1259 | "node": ">=8.10.0"
1260 | }
1261 | },
1262 | "node_modules/rollup": {
1263 | "version": "3.29.4",
1264 | "resolved": "https://registry.npmjs.org/rollup/-/rollup-3.29.4.tgz",
1265 | "integrity": "sha512-oWzmBZwvYrU0iJHtDmhsm662rC15FRXmcjCk1xD771dFDx5jJ02ufAQQTn0etB2emNk4J9EZg/yWKpsn9BWGRw==",
1266 | "dev": true,
1267 | "bin": {
1268 | "rollup": "dist/bin/rollup"
1269 | },
1270 | "engines": {
1271 | "node": ">=14.18.0",
1272 | "npm": ">=8.0.0"
1273 | },
1274 | "optionalDependencies": {
1275 | "fsevents": "~2.3.2"
1276 | }
1277 | },
1278 | "node_modules/sade": {
1279 | "version": "1.8.1",
1280 | "resolved": "https://registry.npmjs.org/sade/-/sade-1.8.1.tgz",
1281 | "integrity": "sha512-xal3CZX1Xlo/k4ApwCFrHVACi9fBqJ7V+mwhBsuf/1IOKbBy098Fex+Wa/5QMubw09pSZ/u8EY8PWgevJsXp1A==",
1282 | "dev": true,
1283 | "dependencies": {
1284 | "mri": "^1.1.0"
1285 | },
1286 | "engines": {
1287 | "node": ">=6"
1288 | }
1289 | },
1290 | "node_modules/semver": {
1291 | "version": "7.6.2",
1292 | "resolved": "https://registry.npmjs.org/semver/-/semver-7.6.2.tgz",
1293 | "integrity": "sha512-FNAIBWCx9qcRhoHcgcJ0gvU7SN1lYU2ZXuSfl04bSC5OpvDHFyJCjdNHomPXxjQlCBU67YW64PzY7/VIEH7F2w==",
1294 | "dev": true,
1295 | "bin": {
1296 | "semver": "bin/semver.js"
1297 | },
1298 | "engines": {
1299 | "node": ">=10"
1300 | }
1301 | },
1302 | "node_modules/set-cookie-parser": {
1303 | "version": "2.6.0",
1304 | "resolved": "https://registry.npmjs.org/set-cookie-parser/-/set-cookie-parser-2.6.0.tgz",
1305 | "integrity": "sha512-RVnVQxTXuerk653XfuliOxBP81Sf0+qfQE73LIYKcyMYHG94AuH0kgrQpRDuTZnSmjpysHmzxJXKNfa6PjFhyQ==",
1306 | "dev": true
1307 | },
1308 | "node_modules/sirv": {
1309 | "version": "2.0.4",
1310 | "resolved": "https://registry.npmjs.org/sirv/-/sirv-2.0.4.tgz",
1311 | "integrity": "sha512-94Bdh3cC2PKrbgSOUqTiGPWVZeSiXfKOVZNJniWoqrWrRkB1CJzBU3NEbiTsPcYy1lDsANA/THzS+9WBiy5nfQ==",
1312 | "dev": true,
1313 | "dependencies": {
1314 | "@polka/url": "^1.0.0-next.24",
1315 | "mrmime": "^2.0.0",
1316 | "totalist": "^3.0.0"
1317 | },
1318 | "engines": {
1319 | "node": ">= 10"
1320 | }
1321 | },
1322 | "node_modules/sirv/node_modules/mrmime": {
1323 | "version": "2.0.0",
1324 | "resolved": "https://registry.npmjs.org/mrmime/-/mrmime-2.0.0.tgz",
1325 | "integrity": "sha512-eu38+hdgojoyq63s+yTpN4XMBdt5l8HhMhc4VKLO9KM5caLIBvUm4thi7fFaxyTmCKeNnXZ5pAlBwCUnhA09uw==",
1326 | "dev": true,
1327 | "engines": {
1328 | "node": ">=10"
1329 | }
1330 | },
1331 | "node_modules/source-map-js": {
1332 | "version": "1.2.0",
1333 | "resolved": "https://registry.npmjs.org/source-map-js/-/source-map-js-1.2.0.tgz",
1334 | "integrity": "sha512-itJW8lvSA0TXEphiRoawsCksnlf8SyvmFzIhltqAHluXd88pkCd+cXJVHTDwdCr0IzwptSm035IHQktUu1QUMg==",
1335 | "dev": true,
1336 | "engines": {
1337 | "node": ">=0.10.0"
1338 | }
1339 | },
1340 | "node_modules/svelte": {
1341 | "version": "4.2.18",
1342 | "resolved": "https://registry.npmjs.org/svelte/-/svelte-4.2.18.tgz",
1343 | "integrity": "sha512-d0FdzYIiAePqRJEb90WlJDkjUEx42xhivxN8muUBmfZnP+tzUgz12DJ2hRJi8sIHCME7jeK1PTMgKPSfTd8JrA==",
1344 | "dev": true,
1345 | "dependencies": {
1346 | "@ampproject/remapping": "^2.2.1",
1347 | "@jridgewell/sourcemap-codec": "^1.4.15",
1348 | "@jridgewell/trace-mapping": "^0.3.18",
1349 | "@types/estree": "^1.0.1",
1350 | "acorn": "^8.9.0",
1351 | "aria-query": "^5.3.0",
1352 | "axobject-query": "^4.0.0",
1353 | "code-red": "^1.0.3",
1354 | "css-tree": "^2.3.1",
1355 | "estree-walker": "^3.0.3",
1356 | "is-reference": "^3.0.1",
1357 | "locate-character": "^3.0.0",
1358 | "magic-string": "^0.30.4",
1359 | "periscopic": "^3.1.0"
1360 | },
1361 | "engines": {
1362 | "node": ">=16"
1363 | }
1364 | },
1365 | "node_modules/svelte-hmr": {
1366 | "version": "0.15.3",
1367 | "resolved": "https://registry.npmjs.org/svelte-hmr/-/svelte-hmr-0.15.3.tgz",
1368 | "integrity": "sha512-41snaPswvSf8TJUhlkoJBekRrABDXDMdpNpT2tfHIv4JuhgvHqLMhEPGtaQn0BmbNSTkuz2Ed20DF2eHw0SmBQ==",
1369 | "dev": true,
1370 | "engines": {
1371 | "node": "^12.20 || ^14.13.1 || >= 16"
1372 | },
1373 | "peerDependencies": {
1374 | "svelte": "^3.19.0 || ^4.0.0"
1375 | }
1376 | },
1377 | "node_modules/svelte2tsx": {
1378 | "version": "0.7.13",
1379 | "resolved": "https://registry.npmjs.org/svelte2tsx/-/svelte2tsx-0.7.13.tgz",
1380 | "integrity": "sha512-aObZ93/kGAiLXA/I/kP+x9FriZM+GboB/ReOIGmLNbVGEd2xC+aTCppm3mk1cc9I/z60VQf7b2QDxC3jOXu3yw==",
1381 | "dev": true,
1382 | "dependencies": {
1383 | "dedent-js": "^1.0.1",
1384 | "pascal-case": "^3.1.1"
1385 | },
1386 | "peerDependencies": {
1387 | "svelte": "^3.55 || ^4.0.0-next.0 || ^4.0 || ^5.0.0-next.0",
1388 | "typescript": "^4.9.4 || ^5.0.0"
1389 | }
1390 | },
1391 | "node_modules/tiny-glob": {
1392 | "version": "0.2.9",
1393 | "resolved": "https://registry.npmjs.org/tiny-glob/-/tiny-glob-0.2.9.tgz",
1394 | "integrity": "sha512-g/55ssRPUjShh+xkfx9UPDXqhckHEsHr4Vd9zX55oSdGZc/MD0m3sferOkwWtp98bv+kcVfEHtRJgBVJzelrzg==",
1395 | "dev": true,
1396 | "dependencies": {
1397 | "globalyzer": "0.1.0",
1398 | "globrex": "^0.1.2"
1399 | }
1400 | },
1401 | "node_modules/to-regex-range": {
1402 | "version": "5.0.1",
1403 | "resolved": "https://registry.npmjs.org/to-regex-range/-/to-regex-range-5.0.1.tgz",
1404 | "integrity": "sha512-65P7iz6X5yEr1cwcgvQxbbIw7Uk3gOy5dIdtZ4rDveLqhrdJP+Li/Hx6tyK0NEb+2GCyneCMJiGqrADCSNk8sQ==",
1405 | "dev": true,
1406 | "dependencies": {
1407 | "is-number": "^7.0.0"
1408 | },
1409 | "engines": {
1410 | "node": ">=8.0"
1411 | }
1412 | },
1413 | "node_modules/totalist": {
1414 | "version": "3.0.1",
1415 | "resolved": "https://registry.npmjs.org/totalist/-/totalist-3.0.1.tgz",
1416 | "integrity": "sha512-sf4i37nQ2LBx4m3wB74y+ubopq6W/dIzXg0FDGjsYnZHVa1Da8FH853wlL2gtUhg+xJXjfk3kUZS3BRoQeoQBQ==",
1417 | "dev": true,
1418 | "engines": {
1419 | "node": ">=6"
1420 | }
1421 | },
1422 | "node_modules/tslib": {
1423 | "version": "2.6.3",
1424 | "resolved": "https://registry.npmjs.org/tslib/-/tslib-2.6.3.tgz",
1425 | "integrity": "sha512-xNvxJEOUiWPGhUuUdQgAJPKOOJfGnIyKySOc09XkKsgdUV/3E2zvwZYdejjmRgPCgcym1juLH3226yA7sEFJKQ==",
1426 | "dev": true
1427 | },
1428 | "node_modules/typescript": {
1429 | "version": "5.5.3",
1430 | "resolved": "https://registry.npmjs.org/typescript/-/typescript-5.5.3.tgz",
1431 | "integrity": "sha512-/hreyEujaB0w76zKo6717l3L0o/qEUtRgdvUBvlkhoWeOVMjMuHNHk0BRBzikzuGDqNmPQbg5ifMEqsHLiIUcQ==",
1432 | "dev": true,
1433 | "bin": {
1434 | "tsc": "bin/tsc",
1435 | "tsserver": "bin/tsserver"
1436 | },
1437 | "engines": {
1438 | "node": ">=14.17"
1439 | }
1440 | },
1441 | "node_modules/undici": {
1442 | "version": "5.28.4",
1443 | "resolved": "https://registry.npmjs.org/undici/-/undici-5.28.4.tgz",
1444 | "integrity": "sha512-72RFADWFqKmUb2hmmvNODKL3p9hcB6Gt2DOQMis1SEBaV6a4MH8soBvzg+95CYhCKPFedut2JY9bMfrDl9D23g==",
1445 | "dev": true,
1446 | "dependencies": {
1447 | "@fastify/busboy": "^2.0.0"
1448 | },
1449 | "engines": {
1450 | "node": ">=14.0"
1451 | }
1452 | },
1453 | "node_modules/vite": {
1454 | "version": "4.5.3",
1455 | "resolved": "https://registry.npmjs.org/vite/-/vite-4.5.3.tgz",
1456 | "integrity": "sha512-kQL23kMeX92v3ph7IauVkXkikdDRsYMGTVl5KY2E9OY4ONLvkHf04MDTbnfo6NKxZiDLWzVpP5oTa8hQD8U3dg==",
1457 | "dev": true,
1458 | "dependencies": {
1459 | "esbuild": "^0.18.10",
1460 | "postcss": "^8.4.27",
1461 | "rollup": "^3.27.1"
1462 | },
1463 | "bin": {
1464 | "vite": "bin/vite.js"
1465 | },
1466 | "engines": {
1467 | "node": "^14.18.0 || >=16.0.0"
1468 | },
1469 | "funding": {
1470 | "url": "https://github.com/vitejs/vite?sponsor=1"
1471 | },
1472 | "optionalDependencies": {
1473 | "fsevents": "~2.3.2"
1474 | },
1475 | "peerDependencies": {
1476 | "@types/node": ">= 14",
1477 | "less": "*",
1478 | "lightningcss": "^1.21.0",
1479 | "sass": "*",
1480 | "stylus": "*",
1481 | "sugarss": "*",
1482 | "terser": "^5.4.0"
1483 | },
1484 | "peerDependenciesMeta": {
1485 | "@types/node": {
1486 | "optional": true
1487 | },
1488 | "less": {
1489 | "optional": true
1490 | },
1491 | "lightningcss": {
1492 | "optional": true
1493 | },
1494 | "sass": {
1495 | "optional": true
1496 | },
1497 | "stylus": {
1498 | "optional": true
1499 | },
1500 | "sugarss": {
1501 | "optional": true
1502 | },
1503 | "terser": {
1504 | "optional": true
1505 | }
1506 | }
1507 | },
1508 | "node_modules/vitefu": {
1509 | "version": "0.2.5",
1510 | "resolved": "https://registry.npmjs.org/vitefu/-/vitefu-0.2.5.tgz",
1511 | "integrity": "sha512-SgHtMLoqaeeGnd2evZ849ZbACbnwQCIwRH57t18FxcXoZop0uQu0uzlIhJBlF/eWVzuce0sHeqPcDo+evVcg8Q==",
1512 | "dev": true,
1513 | "peerDependencies": {
1514 | "vite": "^3.0.0 || ^4.0.0 || ^5.0.0"
1515 | },
1516 | "peerDependenciesMeta": {
1517 | "vite": {
1518 | "optional": true
1519 | }
1520 | }
1521 | },
1522 | "node_modules/wrappy": {
1523 | "version": "1.0.2",
1524 | "resolved": "https://registry.npmjs.org/wrappy/-/wrappy-1.0.2.tgz",
1525 | "integrity": "sha512-l4Sp/DRseor9wL6EvV2+TuQn63dMkPjZ/sp9XkghTEbV9KlPS1xUsZ3u7/IQO4wxtcFB4bgpQPRcR3QCvezPcQ==",
1526 | "dev": true
1527 | }
1528 | }
1529 | }
1530 |
--------------------------------------------------------------------------------
/package.json:
--------------------------------------------------------------------------------
1 | {
2 | "name": "apple-svelte",
3 | "version": "1.0.29",
4 | "scripts": {
5 | "dev": "vite dev",
6 | "build": "vite build && npm run package",
7 | "preview": "vite preview",
8 | "package": "svelte-kit sync && svelte-package && publint",
9 | "prepublishOnly": "npm run package",
10 | "lint": "prettier --plugin-search-dir . --check .",
11 | "format": "prettier --plugin-search-dir . --write ."
12 | },
13 | "exports": {
14 | ".": {
15 | "types": "./dist/index.d.ts",
16 | "svelte": "./dist/index.js"
17 | }
18 | },
19 | "files": [
20 | "dist",
21 | "!dist/**/*.test.*",
22 | "!dist/**/*.spec.*"
23 | ],
24 | "peerDependencies": {
25 | "svelte": "^4.0.0"
26 | },
27 | "devDependencies": {
28 | "@sveltejs/adapter-auto": "^2.1.0",
29 | "@sveltejs/kit": "^1.20.4",
30 | "@sveltejs/package": "^2.0.0",
31 | "prettier": "^2.8.0",
32 | "prettier-plugin-svelte": "^2.10.1",
33 | "publint": "^0.1.9",
34 | "svelte": "^4.0.5",
35 | "tslib": "^2.4.1",
36 | "typescript": "^5.0.0",
37 | "vite": "^4.4.2"
38 | },
39 | "svelte": "./dist/index.js",
40 | "types": "./dist/index.d.ts",
41 | "type": "module",
42 | "author": "Carza-104",
43 | "description": "Component library for Svelte based on Apple's Human Interface design language.",
44 | "repository": {
45 | "type": "git",
46 | "url": "https://github.com/Carza-104/apple-svelte.git"
47 | },
48 | "homepage": "https://apple-svelte.vercel.app",
49 | "keywords": [
50 | "apple",
51 | "svelte",
52 | "component",
53 | "library"
54 | ],
55 | "license": "MIT"
56 | }
57 |
--------------------------------------------------------------------------------
/src/app.html:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
6 |
7 | %sveltekit.head%
8 |
9 |
10 | %sveltekit.body%
11 |
12 |
13 |
--------------------------------------------------------------------------------
/src/lib/action-sheet/ActionSheet.svelte:
--------------------------------------------------------------------------------
1 |
41 |
42 | {
46 | if (e.key === 'Escape') state = 'hidden';
47 | }}
48 | />
49 |
50 |
71 |
72 |
162 |
--------------------------------------------------------------------------------
/src/lib/action-sheet/ActionSheetButton.svelte:
--------------------------------------------------------------------------------
1 |
33 |
34 |
37 |
38 |
70 |
--------------------------------------------------------------------------------
/src/lib/alert/Alert.svelte:
--------------------------------------------------------------------------------
1 |
38 |
39 | {
43 | if (e.key === 'Escape') state = 'hidden';
44 | }}
45 | />
46 |
47 |
64 |
65 |
117 |
--------------------------------------------------------------------------------
/src/lib/alert/AlertButton.svelte:
--------------------------------------------------------------------------------
1 |
19 |
20 |
31 |
32 |
66 |
--------------------------------------------------------------------------------
/src/lib/alert/AlertTextField.svelte:
--------------------------------------------------------------------------------
1 |
9 |
10 |
11 |
12 |
43 |
--------------------------------------------------------------------------------
/src/lib/button/Button.svelte:
--------------------------------------------------------------------------------
1 |
97 |
98 | {#if labelType === 'symbol'}
99 |
112 | {:else if labelType === 'text'}
113 |
126 | {:else}
127 |
142 | {/if}
143 |
144 |
198 |
--------------------------------------------------------------------------------
/src/lib/collection/Collection.svelte:
--------------------------------------------------------------------------------
1 |
5 |
6 |
7 |
8 |
9 |
10 |
24 |
--------------------------------------------------------------------------------
/src/lib/index.js:
--------------------------------------------------------------------------------
1 | export { default as ActionSheet } from './action-sheet/ActionSheet.svelte';
2 | export { default as ActionSheetButton } from './action-sheet/ActionSheetButton.svelte';
3 | export { default as Alert } from './alert/Alert.svelte';
4 | export { default as AlertButton } from './alert/AlertButton.svelte';
5 | export { default as AlertTextField } from './alert/AlertTextField.svelte';
6 | export { default as Button } from './button/Button.svelte';
7 | export { default as Collection } from './collection/Collection.svelte';
8 | export { default as List } from './list/List.svelte';
9 | export { default as ListButtonRow } from './list/ListButtonRow.svelte';
10 | export { default as ListRow } from './list/ListRow.svelte';
11 | export { default as ListRowButtonTrailing } from './list/ListRowButtonTrailing.svelte';
12 | export { default as ListRowDefaultTrailing } from './list/ListRowDefaultTrailing.svelte';
13 | export { default as ListRowDisclosureTrailing } from './list/ListRowDisclosureTrailing.svelte';
14 | export { default as ListRowImage } from './list/ListRowImage.svelte';
15 | export { default as ListRowStepperTrailing } from './list/ListRowStepperTrailing.svelte';
16 | export { default as ListRowToggleTrailing } from './list/ListRowToggleTrailing.svelte';
17 | export { default as ListSliderRow } from './list/ListSliderRow.svelte';
18 | export { default as ListTextFieldRow } from './list/ListTextFieldRow.svelte';
19 | export { default as NavigationBar } from './navigation-bar/NavigationBar.svelte';
20 | export { default as NavigationBarLeading } from './navigation-bar/NavigationBarLeading.svelte';
21 | export { default as NavigationBarSearchField } from './navigation-bar/NavigationBarSearchField.svelte';
22 | export { default as NavigationBarTrailing } from './navigation-bar/NavigationBarTrailing.svelte';
23 | export { default as PageControl } from './page-control/PageControl.svelte';
24 | export { default as PageControlButton } from './page-control/PageControlButton.svelte';
25 | export { default as RegularProgressIndicator } from './progress-indicator/RegularProgressIndicator.svelte';
26 | export { default as SmallProgressIndicator } from './progress-indicator/SmallProgressIndicator.svelte';
27 | export { default as SegmentedControl } from './segmented-control/SegmentedControl.svelte';
28 | export { default as SegmentedControlButton } from './segmented-control/SegmentedControlButton.svelte';
29 | export { default as Sidebar } from './sidebar/Sidebar.svelte';
30 | export { default as SidebarNavigationBar } from './sidebar/SidebarNavigationBar.svelte';
31 | export { default as SidebarNavigationBarLeading } from './sidebar/SidebarNavigationBarLeading.svelte';
32 | export { default as SidebarNavigationBarTrailing } from './sidebar/SidebarNavigationBarTrailing.svelte';
33 | export { default as SidebarSection } from './sidebar/SidebarSection.svelte';
34 | export { default as SidebarSectionAddItemButton } from './sidebar/SidebarSectionAddItemButton.svelte';
35 | export { default as SidebarSectionItem } from './sidebar/SidebarSectionItem.svelte';
36 | export { default as TabBar } from './tab-bar/TabBar.svelte';
37 | export { default as TabBarButton } from './tab-bar/TabBarButton.svelte';
38 | export { default as Toolbar } from './toolbar/Toolbar.svelte';
39 | export { default as ToolbarButton } from './toolbar/ToolbarButton.svelte';
40 |
--------------------------------------------------------------------------------
/src/lib/list/List.svelte:
--------------------------------------------------------------------------------
1 |
29 |
30 |
31 | {#if showHeader}
32 | {#if headerType === 'default'}
33 |
34 | {:else if headerType === 'plain'}
35 |
{header}
36 | {:else}
37 |
41 | {/if}
42 | {/if}
43 |
44 |
45 |
46 | {#if showFooter}
47 |
48 | {/if}
49 |
50 |
51 |
93 |
--------------------------------------------------------------------------------
/src/lib/list/ListButtonRow.svelte:
--------------------------------------------------------------------------------
1 |
33 |
34 |
39 |
40 |
82 |
--------------------------------------------------------------------------------
/src/lib/list/ListRow.svelte:
--------------------------------------------------------------------------------
1 |
55 |
56 |
109 |
110 |
209 |
--------------------------------------------------------------------------------
/src/lib/list/ListRowButtonTrailing.svelte:
--------------------------------------------------------------------------------
1 |
17 |
18 |
19 |
20 |
41 |
--------------------------------------------------------------------------------
/src/lib/list/ListRowDefaultTrailing.svelte:
--------------------------------------------------------------------------------
1 |
66 |
67 |
68 | {#if showDetail}
69 |
72 | {/if}
73 | {#if showSymbol}
74 |
77 | {/if}
78 | {#if showInfo}
79 |
82 | {/if}
83 | {#if showCheckmark}
84 |
90 | {/if}
91 | {#if showDisclosure}
92 |
98 | {/if}
99 |
100 |
101 |
160 |
--------------------------------------------------------------------------------
/src/lib/list/ListRowDisclosureTrailing.svelte:
--------------------------------------------------------------------------------
1 |
29 |
30 |
31 | {#if showDetail}
32 |
35 | {/if}
36 |
39 |
40 |
41 |
80 |
--------------------------------------------------------------------------------
/src/lib/list/ListRowImage.svelte:
--------------------------------------------------------------------------------
1 |
29 |
30 | {#if type === 'symbol'}
31 | {symbol}
32 | {:else}
33 |
39 | {/if}
40 |
41 |
54 |
--------------------------------------------------------------------------------
/src/lib/list/ListRowStepperTrailing.svelte:
--------------------------------------------------------------------------------
1 |
28 |
29 |
30 |
33 |
34 |
37 |
38 |
39 |
85 |
--------------------------------------------------------------------------------
/src/lib/list/ListRowToggleTrailing.svelte:
--------------------------------------------------------------------------------
1 |
33 |
34 |
35 | {#if state === 'on'}
36 |
44 | {:else}
45 |
52 | {/if}
53 |
54 |
55 |
56 |
91 |
--------------------------------------------------------------------------------
/src/lib/list/ListSliderRow.svelte:
--------------------------------------------------------------------------------
1 |
18 |
19 |
20 |
21 | {#if showSymbols}
22 |
{minSymbol}
23 | {/if}
24 |
34 | {#if showSymbols}
35 |
{maxSymbol}
36 | {/if}
37 |
38 |
39 |
40 |
129 |
--------------------------------------------------------------------------------
/src/lib/list/ListTextFieldRow.svelte:
--------------------------------------------------------------------------------
1 |
10 |
11 |
12 |
16 |
17 |
18 |
52 |
--------------------------------------------------------------------------------
/src/lib/navigation-bar/NavigationBar.svelte:
--------------------------------------------------------------------------------
1 |
23 |
24 |
29 |
32 |
33 |
34 | {#if size === 'default'}
35 |
{title}
36 | {/if}
37 |
38 |
39 |
40 |
41 |
42 |
43 | {#if size === 'large'}
44 |
{title}
45 | {/if}
46 |
47 |
48 |
49 |
91 |
--------------------------------------------------------------------------------
/src/lib/navigation-bar/NavigationBarLeading.svelte:
--------------------------------------------------------------------------------
1 |
31 |
32 |
36 |
37 |
72 |
--------------------------------------------------------------------------------
/src/lib/navigation-bar/NavigationBarSearchField.svelte:
--------------------------------------------------------------------------------
1 |
20 |
21 |
34 |
35 |
114 |
--------------------------------------------------------------------------------
/src/lib/navigation-bar/NavigationBarTrailing.svelte:
--------------------------------------------------------------------------------
1 |
34 |
35 |
44 |
45 |
80 |
--------------------------------------------------------------------------------
/src/lib/page-control/PageControl.svelte:
--------------------------------------------------------------------------------
1 |
15 |
16 |
24 |
25 |
43 |
--------------------------------------------------------------------------------
/src/lib/page-control/PageControlButton.svelte:
--------------------------------------------------------------------------------
1 |
19 |
20 |
21 | {#if state === 'selected'}
22 |
31 | {:else}
32 |
40 | {/if}
41 |
42 |
43 |
64 |
--------------------------------------------------------------------------------
/src/lib/progress-indicator/RegularProgressIndicator.svelte:
--------------------------------------------------------------------------------
1 |
22 |
23 |
24 |
46 | {#if showLabel}
47 |
{label}
48 | {/if}
49 |
50 |
51 |
147 |
--------------------------------------------------------------------------------
/src/lib/progress-indicator/SmallProgressIndicator.svelte:
--------------------------------------------------------------------------------
1 |
22 |
23 |
24 |
46 | {#if showLabel}
47 |
{label}
48 | {/if}
49 |
50 |
51 |
150 |
--------------------------------------------------------------------------------
/src/lib/segmented-control/SegmentedControl.svelte:
--------------------------------------------------------------------------------
1 |
5 |
6 |
7 |
8 |
9 |
10 |
21 |
--------------------------------------------------------------------------------
/src/lib/segmented-control/SegmentedControlButton.svelte:
--------------------------------------------------------------------------------
1 |
20 |
21 |
47 |
48 |
176 |
--------------------------------------------------------------------------------
/src/lib/sidebar/Sidebar.svelte:
--------------------------------------------------------------------------------
1 |
87 |
88 | {
92 | if (e.key === 'Escape' && windowWidth <= 809) state = 'hidden';
93 | }}
94 | />
95 |
96 |
103 |
106 |
107 |
108 |
109 |
153 |
--------------------------------------------------------------------------------
/src/lib/sidebar/SidebarNavigationBar.svelte:
--------------------------------------------------------------------------------
1 |
22 |
23 |
27 |
28 |
29 | {#if scrollPosition === 'lower'}
30 |
{title}
31 | {/if}
32 |
33 |
34 | {#if scrollPosition === 'top'}
35 | {title}
36 | {/if}
37 |
38 |
39 |
77 |
--------------------------------------------------------------------------------
/src/lib/sidebar/SidebarNavigationBarLeading.svelte:
--------------------------------------------------------------------------------
1 |
34 |
35 | {#if type === 'symbol'}
36 |
43 | {:else if type === 'label'}
44 |
51 | {:else}
52 |
59 | {/if}
60 |
61 |
96 |
--------------------------------------------------------------------------------
/src/lib/sidebar/SidebarNavigationBarTrailing.svelte:
--------------------------------------------------------------------------------
1 |
34 |
35 | {#if type === 'symbol'}
36 |
43 | {:else if type === 'label'}
44 |
51 | {:else}
52 |
59 | {/if}
60 |
61 |
96 |
--------------------------------------------------------------------------------
/src/lib/sidebar/SidebarSection.svelte:
--------------------------------------------------------------------------------
1 |
44 |
45 |
46 | {#if showHeading}
47 |
48 | {heading}
49 |
57 |
58 | {/if}
59 |
60 |
61 |
62 |
63 |
64 |
123 |
--------------------------------------------------------------------------------
/src/lib/sidebar/SidebarSectionAddItemButton.svelte:
--------------------------------------------------------------------------------
1 |
18 |
19 |
20 |
23 | {title}
24 |
25 |
26 |
74 |
--------------------------------------------------------------------------------
/src/lib/sidebar/SidebarSectionItem.svelte:
--------------------------------------------------------------------------------
1 |
98 |
99 |
100 |
101 | {#if (behavior === 'hyperlink' && !href.includes('http://') && !href.includes('https://')) || !showDisclosure}
102 | {#if state === 'default'}
103 |
111 | {:else}
112 |
121 | {/if}
122 | {/if}
123 |
124 | {#if showImage}
125 | {#if imageType === 'symbol'}
126 |
{symbol}
127 | {:else if imageType === 'bitmap'}
128 |

129 | {:else}
130 |
131 |
132 |
133 |
134 |
135 |
136 | {/if}
137 | {/if}
138 |
139 |
{title}
140 | {#if showSubtitle}
141 |
{subtitle}
142 | {/if}
143 |
144 |
145 |
146 | {#if showDetail}
147 |
{detail}
148 | {/if}
149 | {#if showTrailingSymbol}
150 |
153 | {:else if showDisclosure}
154 |
162 | {/if}
163 |
164 |
165 |
166 |
167 |
168 |
169 |
307 |
--------------------------------------------------------------------------------
/src/lib/styles.css:
--------------------------------------------------------------------------------
1 | :root {
2 | color-scheme: light dark;
3 | /* Font families: */
4 | --sans-serif-font-family: ui-sans-serif, 'SF Pro', Roboto, 'Fira Sans', Oxygen, Ubuntu, 'Segoe UI',
5 | 'Helvetica Neue', 'Noto Sans', Arial, sans-serif;
6 | --monospace-font-family: ui-monospace, 'SF Mono', 'Roboto Mono', 'Fira Mono', 'Oxygen Mono',
7 | 'Ubuntu Mono', 'Cascadia Code', Menlo, 'Noto Sans Mono', Consolas, monospace;
8 | --symbol-font-family: 'Material Symbols Rounded';
9 |
10 | /* Symbol sizes: */
11 | --small-symbol-font-size-multiplier: 1.01680672269;
12 | --medium-symbol-font-size-multiplier: 1.2840336134;
13 | --large-symbol-font-size-multiplier: 1.6394957983;
14 |
15 | /* Materials: */
16 | --materials-background-blend-mode: color-dodge;
17 | --materials-thick: rgb(239, 239, 239, 0.97);
18 | --materials-regular: rgb(229, 229, 229, 0.82);
19 | --materials-thin: rgb(207, 207, 207, 0.7);
20 | --materials-ultrathin: rgb(201, 201, 201, 0.44);
21 | --materials-chrome-background-blend-mode: hard-light;
22 | --materials-chrome: rgb(255, 255, 255, 0.75);
23 |
24 | /* Overlays: */
25 | --hover-opacity: 80%;
26 | --press-overlay: rgb(0, 0, 0, 0.1);
27 | --symbol-press-opacity: 20%;
28 |
29 | /* Colors: */
30 | --colors-accent: var(--colors-blue);
31 | --colors-accent-2: var(--colors-blue-2);
32 | --colors-red: #ff3b30;
33 | --colors-red-2: rgb(255, 59, 48, 0.15);
34 | --colors-orange: #ff9500;
35 | --colors-orange-2: rgb(255, 149, 0, 0.15);
36 | --colors-yellow: #fc0;
37 | --colors-yellow-2: rgb(255, 204, 0, 0.15);
38 | --colors-green: #34c759;
39 | --colors-green-2: rgb(52, 199, 89, 0.15);
40 | --colors-mint: #00c7be;
41 | --colors-mint-2: rgb(0, 199, 190, 0.15);
42 | --colors-teal: #30b0c7;
43 | --colors-teal-2: rgb(48, 176, 199, 0.15);
44 | --colors-cyan: #32ade6;
45 | --colors-cyan-2: rgb(50, 173, 230, 0.15);
46 | --colors-blue: #007aff;
47 | --colors-blue-2: rgb(0, 122, 255, 0.15);
48 | --colors-indigo: #5856d6;
49 | --colors-indigo-2: rgb(88, 86, 214, 0.15);
50 | --colors-purple: #af52de;
51 | --colors-purple-2: rgb(175, 82, 222, 0.15);
52 | --colors-pink: #ff2d55;
53 | --colors-pink-2: rgb(255, 45, 85, 0.15);
54 | --colors-brown: #a2845e;
55 | --colors-brown-2: rgb(162, 132, 94, 0.15);
56 |
57 | /* Grays: */
58 | --grays-black: #000;
59 | --grays-gray: #8e8e93;
60 | --grays-gray-2: #aeaeb2;
61 | --grays-gray-3: #c7c7cc;
62 | --grays-gray-4: #d1d1d6;
63 | --grays-gray-5: #e5e5ea;
64 | --grays-gray-6: #f2f2f7;
65 | --grays-white: #fff;
66 |
67 | /* Backgrounds: */
68 | --bg-primary: #fff;
69 | --bg-secondary: #f2f2f7;
70 | --bg-tertiary: #fff;
71 |
72 | /* Labels: */
73 | --labels-primary: #000;
74 | --labels-secondary: rgb(60, 60, 67, 0.6);
75 | --labels-tertiary: rgb(60, 60, 67, 0.3);
76 | --labels-quaternary: rgb(60, 60, 67, 0.18);
77 |
78 | /* Separators: */
79 | --separators-opaque: #c6c6c8;
80 | --separators-non-opaque: rgb(60, 60, 67, 0.36);
81 |
82 | /* Grouped backgrounds: */
83 | --bg-grouped-primary: #f2f2f7;
84 | --bg-grouped-secondary: #fff;
85 | --bg-grouped-tertiary: #f2f2f7;
86 |
87 | /* Fills: */
88 | --fills-primary: rgb(120, 120, 128, 0.2);
89 | --fills-secondary: rgb(120, 120, 128, 0.16);
90 | --fills-tertiary: rgb(118, 118, 128, 0.12);
91 | --fills-quaternary: rgb(116, 116, 128, 0.08);
92 | }
93 |
94 | @media (prefers-color-scheme: dark) {
95 | :root {
96 | /* Materials: */
97 | --materials-background-blend-mode: overlay;
98 | --materials-thick: rgb(36, 36, 36, 0.9);
99 | --materials-regular: rgb(41, 41, 41, 0.82);
100 | --materials-thin: rgb(47, 47, 47, 0.7);
101 | --materials-ultrathin: rgb(47, 47, 47, 0.55);
102 | --materials-chrome: rgb(0, 0, 0, 0.75);
103 |
104 | /* Overlays: */
105 | --hover-opacity: 74%;
106 | --press-overlay: rgb(255, 255, 255, 0.07);
107 | --symbol-press-opacity: 40%;
108 |
109 | /* Colors: */
110 | --colors-red: #ff453a;
111 | --colors-red-2: rgb(255, 69, 58, 0.15);
112 | --colors-orange: #ff9f0a;
113 | --colors-orange-2: rgb(255, 159, 10, 0.15);
114 | --colors-yellow: #ffd60a;
115 | --colors-yellow-2: rgb(255, 214, 10, 0.15);
116 | --colors-green: #30d158;
117 | --colors-green-2: rgb(48, 209, 88, 0.15);
118 | --colors-mint: #63e6e2;
119 | --colors-mint-2: rgb(99, 230, 226, 0.15);
120 | --colors-teal: #40cbe0;
121 | --colors-teal-2: rgb(64, 203, 224, 0.15);
122 | --colors-cyan: #64d2ff;
123 | --colors-cyan-2: rgb(100, 210, 255, 0.15);
124 | --colors-blue: #0a84ff;
125 | --colors-blue-2: rgb(10, 132, 255, 0.15);
126 | --colors-indigo: #5e5ce6;
127 | --colors-indigo-2: rgb(94, 92, 230, 0.15);
128 | --colors-purple: #bf5af2;
129 | --colors-purple-2: rgb(191, 90, 242, 0.15);
130 | --colors-pink: #ff375f;
131 | --colors-pink-2: rgb(255, 55, 95, 0.15);
132 | --colors-brown: #ac8e68;
133 | --colors-brown-2: rgb(172, 142, 104, 0.15);
134 |
135 | /* Grays: */
136 | --grays-black: #000;
137 | --grays-gray: #8e8e93;
138 | --grays-gray-2: #636366;
139 | --grays-gray-3: #48484a;
140 | --grays-gray-4: #3a3a3c;
141 | --grays-gray-5: #2c2c2e;
142 | --grays-gray-6: #1c1c1e;
143 | --grays-white: #fff;
144 |
145 | /* Backgrounds: */
146 | --bg-primary-elevated: #1c1c1e;
147 | --bg-secondary-elevated: #2c2c2e;
148 | --bg-tertiary-elevated: #3a3a3c;
149 | --bg-primary: #000;
150 | --bg-secondary: #1c1c1e;
151 | --bg-tertiary: #2c2c2e;
152 |
153 | /* Labels: */
154 | --labels-primary: #fff;
155 | --labels-secondary: rgb(235, 235, 245, 0.6);
156 | --labels-tertiary: rgb(235, 235, 245, 0.3);
157 | --labels-quaternary: rgb(235, 235, 245, 0.16);
158 |
159 | /* Separators: */
160 | --separators-opaque: #38383a;
161 | --separators-non-opaque: rgb(84, 84, 88, 0.65);
162 |
163 | /* Grouped backgrounds: */
164 | --bg-grouped-primary-elevated: #1c1c1e;
165 | --bg-grouped-secondary-elevated: #2c2c2e;
166 | --bg-grouped-tertiary-elevated: #3a3a3c;
167 | --bg-grouped-primary: #000;
168 | --bg-grouped-secondary: #1c1c1e;
169 | --bg-grouped-tertiary: #2c2c2e;
170 |
171 | /* Fills: */
172 | --fills-primary: rgb(120, 120, 128, 0.36);
173 | --fills-secondary: rgb(120, 120, 128, 0.32);
174 | --fills-tertiary: rgb(118, 118, 128, 0.24);
175 | --fills-quaternary: rgb(116, 116, 128, 0.18);
176 | }
177 | }
178 |
179 | /* Body styles: */
180 |
181 | * {
182 | margin-block-end: 0px;
183 | margin-inline-end: 0px;
184 | margin-block-start: 0px;
185 | margin-inline-start: 0px;
186 | text-size-adjust: none;
187 | -webkit-tap-highlight-color: transparent;
188 | }
189 |
190 | *:focus {
191 | outline: unset;
192 | }
193 |
194 | a {
195 | color: var(--colors-accent);
196 | text-decoration: none;
197 | }
198 |
199 | a:active,
200 | a:focus {
201 | opacity: var(--symbol-press-opacity) !important;
202 | text-decoration: underline;
203 | }
204 |
205 | a:hover {
206 | opacity: var(--hover-opacity);
207 | text-decoration: underline;
208 | }
209 |
210 | body {
211 | background: var(--bg-grouped-primary);
212 | color: var(--labels-primary);
213 | /* font: 400 17px/22px; */
214 | font-family: var(--sans-serif-font-family);
215 | font-size: 17px;
216 | font-weight: 400;
217 | line-height: 22px;
218 | user-select: none;
219 | -webkit-user-select: none;
220 | }
221 |
222 | button {
223 | background: transparent;
224 | border: none;
225 | cursor: pointer;
226 | padding: 0px;
227 | text-align: left;
228 | }
229 |
230 | code {
231 | font-family: var(--monospace-font-family);
232 | }
233 |
234 | .hidden-input {
235 | clip: rect(1px, 1px, 1px, 1px);
236 | height: 1px;
237 | overflow: hidden;
238 | position: absolute;
239 | width: 1px;
240 | }
241 |
242 | input {
243 | background: transparent;
244 | border: none;
245 | }
246 |
247 | input:focus {
248 | background: transparent;
249 | outline: none;
250 | }
251 |
252 | label {
253 | cursor: pointer;
254 | }
255 |
256 | /* Text styles: */
257 |
258 | h1,
259 | p {
260 | user-select: text;
261 | text-size-adjust: none;
262 | -webkit-user-select: text;
263 | }
264 |
265 | .large-title {
266 | /* font: 400 34px/41px; */
267 | font-size: 34px;
268 | font-weight: 400;
269 | line-height: 41px;
270 | text-size-adjust: none;
271 | }
272 |
273 | .large-title-emphasized {
274 | /* font: 700 34px/41px; */
275 | font-size: 34px;
276 | font-weight: 700;
277 | line-height: 41px;
278 | text-size-adjust: none;
279 | }
280 |
281 | .title1 {
282 | /* font: 400 28px/34px; */
283 | font-size: 28px;
284 | font-weight: 400;
285 | line-height: 34px;
286 | text-size-adjust: none;
287 | }
288 |
289 | .title1-emphasized {
290 | /* font: 700 28px/34px; */
291 | font-size: 28px;
292 | font-weight: 700;
293 | line-height: 34px;
294 | text-size-adjust: none;
295 | }
296 |
297 | .title2 {
298 | /* font: 400 22px/28px; */
299 | font-size: 22px;
300 | font-weight: 400;
301 | line-height: 28px;
302 | text-size-adjust: none;
303 | }
304 |
305 | .title2-emphasized {
306 | /* font: 700 22px/28px; */
307 | font-size: 22px;
308 | font-weight: 700;
309 | line-height: 28px;
310 | text-size-adjust: none;
311 | }
312 |
313 | .title3 {
314 | /* font: 400 20px/25px; */
315 | font-size: 20px;
316 | font-weight: 400;
317 | line-height: 25px;
318 | text-size-adjust: none;
319 | }
320 |
321 | .title3-emphasized {
322 | /* font: 590 20px/25px; */
323 | font-size: 20px;
324 | font-weight: 590;
325 | line-height: 25px;
326 | text-size-adjust: none;
327 | }
328 |
329 | .headline {
330 | /* font: 590 17px/22px; */
331 | font-size: 17px;
332 | font-weight: 590;
333 | line-height: 22px;
334 | text-size-adjust: none;
335 | }
336 |
337 | .headline-italic {
338 | /* font: italic 590 17px/22px; */
339 | font-size: 17px;
340 | font-style: italic;
341 | font-weight: 590;
342 | line-height: 22px;
343 | text-size-adjust: none;
344 | }
345 |
346 | .body {
347 | /* font: 400 17px/22px; */
348 | font-size: 17px;
349 | font-weight: 400;
350 | line-height: 22px;
351 | text-size-adjust: none;
352 | }
353 |
354 | .body-emphasized {
355 | /* font: 590 17px/22px; */
356 | font-size: 17px;
357 | font-weight: 590;
358 | line-height: 22px;
359 | text-size-adjust: none;
360 | }
361 |
362 | .body-italic {
363 | /* font: italic 400 17px/22px; */
364 | font-size: 17px;
365 | font-style: italic;
366 | font-weight: 400;
367 | line-height: 22px;
368 | text-size-adjust: none;
369 | }
370 |
371 | .body-emphasized-italic {
372 | /* font: italic 590 17px/22px; */
373 | font-size: 17px;
374 | font-style: italic;
375 | font-weight: 590;
376 | line-height: 22px;
377 | text-size-adjust: none;
378 | }
379 |
380 | .callout {
381 | /* font: 400 16px/21px; */
382 | font-size: 16px;
383 | font-weight: 400;
384 | line-height: 21px;
385 | text-size-adjust: none;
386 | }
387 |
388 | .callout-emphasized {
389 | /* font: 590 16px/21px; */
390 | font-size: 16px;
391 | font-weight: 590;
392 | line-height: 21px;
393 | text-size-adjust: none;
394 | }
395 |
396 | .callout-italic {
397 | /* font: italic 400 16px/21px; */
398 | font-size: 16px;
399 | font-style: italic;
400 | font-weight: 400;
401 | line-height: 21px;
402 | text-size-adjust: none;
403 | }
404 |
405 | .callout--emphasized-italic {
406 | /* font: italic 590 16px/21px; */
407 | font-size: 16px;
408 | font-style: italic;
409 | font-weight: 590;
410 | line-height: 21px;
411 | text-size-adjust: none;
412 | }
413 |
414 | .subheadline {
415 | /* font: 400 15px/20px; */
416 | font-size: 15px;
417 | font-weight: 400;
418 | line-height: 20px;
419 | text-size-adjust: none;
420 | }
421 |
422 | .subheadline-emphasized {
423 | /* font: 590 15px/20px; */
424 | font-size: 15px;
425 | font-weight: 590;
426 | line-height: 20px;
427 | text-size-adjust: none;
428 | }
429 |
430 | .subheadline-italic {
431 | /* font: italic 400 15px/20px; */
432 | font-size: 15px;
433 | font-style: italic;
434 | font-weight: 400;
435 | line-height: 20px;
436 | text-size-adjust: none;
437 | }
438 |
439 | .subheadline-emphasized-italic {
440 | /* font: italic 590 15px/20px; */
441 | font-size: 15px;
442 | font-style: italic;
443 | font-weight: 590;
444 | line-height: 20px;
445 | text-size-adjust: none;
446 | }
447 |
448 | .footnote {
449 | /* font: 400 13px/18px; */
450 | font-size: 13px;
451 | font-weight: 400;
452 | line-height: 18px;
453 | text-size-adjust: none;
454 | }
455 |
456 | .footnote-emphasized {
457 | /* font: 590 13px/18px; */
458 | font-size: 13px;
459 | font-weight: 590;
460 | line-height: 18px;
461 | text-size-adjust: none;
462 | }
463 |
464 | .footnote-italic {
465 | /* font: italic 400 13px/18px; */
466 | font-size: 13px;
467 | font-style: italic;
468 | font-weight: 400;
469 | line-height: 18px;
470 | text-size-adjust: none;
471 | }
472 |
473 | .footnote-emphasized-italic {
474 | /* font: italic 590 13px/18px; */
475 | font-size: 13px;
476 | font-style: italic;
477 | font-weight: 590;
478 | line-height: 18px;
479 | text-size-adjust: none;
480 | }
481 |
482 | .caption1 {
483 | /* font: 400 12px/16px; */
484 | font-size: 12px;
485 | font-weight: 400;
486 | line-height: 16px;
487 | text-size-adjust: none;
488 | }
489 |
490 | .caption1-emphasized {
491 | /* font: 510 12px/16px; */
492 | font-size: 12px;
493 | font-weight: 510;
494 | line-height: 16px;
495 | text-size-adjust: none;
496 | }
497 |
498 | .caption1-italic {
499 | /* font: italic 400 12px/16px; */
500 | font-size: 12px;
501 | font-style: italic;
502 | font-weight: 400;
503 | line-height: 16px;
504 | text-size-adjust: none;
505 | }
506 |
507 | .caption1-emphasized-italic {
508 | /* font: italic 508 12px/16px; */
509 | font-size: 12px;
510 | font-style: italic;
511 | font-weight: 508;
512 | line-height: 16px;
513 | text-size-adjust: none;
514 | }
515 |
516 | .caption2 {
517 | /* font: 400 11px/13px; */
518 | font-size: 11px;
519 | font-weight: 400;
520 | line-height: 13px;
521 | text-size-adjust: none;
522 | }
523 |
524 | .caption2-emphasized {
525 | /* font: 590 11px/13px; */
526 | font-size: 11px;
527 | font-weight: 590;
528 | line-height: 13px;
529 | text-size-adjust: none;
530 | }
531 |
532 | .caption2-italic {
533 | /* font: italic 400 11px/13px; */
534 | font-size: 11px;
535 | font-style: italic;
536 | font-weight: 400;
537 | line-height: 13px;
538 | text-size-adjust: none;
539 | }
540 |
541 | .caption2-emphasized-italic {
542 | /* font: italic 590 11px/13px; */
543 | font-size: 11px;
544 | font-style: italic;
545 | font-weight: 590;
546 | line-height: 13px;
547 | text-size-adjust: none;
548 | }
549 |
550 | .symbol {
551 | font-family: var(--symbol-font-family);
552 | user-select: none;
553 | text-size-adjust: none;
554 | -webkit-user-select: none;
555 | }
556 |
--------------------------------------------------------------------------------
/src/lib/tab-bar/TabBar.svelte:
--------------------------------------------------------------------------------
1 |
5 |
6 |
7 |
8 |
9 |
10 |
30 |
--------------------------------------------------------------------------------
/src/lib/tab-bar/TabBarButton.svelte:
--------------------------------------------------------------------------------
1 |
31 |
32 |
33 | {#if state === 'selected'}
34 |
43 | {:else}
44 |
52 | {/if}
53 |
54 |
{symbol}
55 |
{label}
56 |
57 |
58 |
59 |
120 |
--------------------------------------------------------------------------------
/src/lib/toolbar/Toolbar.svelte:
--------------------------------------------------------------------------------
1 |
5 |
6 |
7 |
8 |
9 |
10 |
30 |
--------------------------------------------------------------------------------
/src/lib/toolbar/ToolbarButton.svelte:
--------------------------------------------------------------------------------
1 |
20 |
21 |
28 |
29 |
64 |
--------------------------------------------------------------------------------
/src/routes/+page.svelte:
--------------------------------------------------------------------------------
1 |
2 | apple-svelte
3 | UI component library for Svelte based on Apple's Human Interface design language.
4 |
5 |
6 |
23 |
--------------------------------------------------------------------------------
/static/favicon.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Carza-104/apple-svelte/9569a40e61be19b36c6139534d4b8395fbd822b8/static/favicon.png
--------------------------------------------------------------------------------
/svelte.config.js:
--------------------------------------------------------------------------------
1 | import adapter from '@sveltejs/adapter-auto';
2 |
3 | /** @type {import('@sveltejs/kit').Config} */
4 | const config = {
5 | kit: {
6 | // adapter-auto only supports some environments, see https://kit.svelte.dev/docs/adapter-auto for a list.
7 | // If your environment is not supported or you settled on a specific environment, switch out the adapter.
8 | // See https://kit.svelte.dev/docs/adapters for more information about adapters.
9 | adapter: adapter()
10 | }
11 | };
12 |
13 | export default config;
14 |
--------------------------------------------------------------------------------
/vite.config.js:
--------------------------------------------------------------------------------
1 | import { sveltekit } from '@sveltejs/kit/vite';
2 | import { defineConfig } from 'vite';
3 |
4 | export default defineConfig({
5 | plugins: [sveltekit()]
6 | });
7 |
--------------------------------------------------------------------------------