spoko-design-system 0.9.6 → 1.0.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (176) hide show
  1. package/.astro/content.d.ts +1 -1
  2. package/.astro/settings.json +4 -4
  3. package/.astro/types.d.ts +2 -1
  4. package/.github/dependabot.yml +11 -11
  5. package/.github/todo.yml +3 -3
  6. package/.github/workflows/deploy.yml +39 -39
  7. package/.github/workflows/release.yml +64 -0
  8. package/.releaserc.json +93 -0
  9. package/.stackblitzrc +5 -5
  10. package/.vscode/extensions.json +5 -5
  11. package/.vscode/launch.json +11 -11
  12. package/.vscode/settings.json +5 -5
  13. package/CHANGELOG.md +12 -0
  14. package/CONTRIBUTING.md +183 -0
  15. package/LICENSE +21 -21
  16. package/README.md +116 -116
  17. package/astro-i18next.config.mjs +17 -17
  18. package/astro-i18next.config.ts +10 -10
  19. package/astro.config.mjs +86 -86
  20. package/dev-dist/sw.js +91 -91
  21. package/dev-dist/workbox-c676b6d3.js +3391 -3391
  22. package/icon.config.ts +310 -310
  23. package/index.ts +70 -70
  24. package/package.json +13 -3
  25. package/public/arrow-bottom.svg +7 -7
  26. package/public/fonts/lg.svg +53 -53
  27. package/public/fonts/vwhead-bold-demo.html +549 -549
  28. package/public/fonts/vwhead-regular-demo.html +549 -549
  29. package/public/fonts/vwtext-bold-demo.html +549 -549
  30. package/public/fonts/vwtext-regular-demo.html +549 -549
  31. package/public/github.svg +3 -3
  32. package/public/grid_dot.svg +4 -4
  33. package/public/linkedin.svg +44 -44
  34. package/public/locales/en/translation.json +12 -12
  35. package/public/locales/pl/translation.json +12 -12
  36. package/public/make-scrollable-code-focusable.js +3 -3
  37. package/public/pagefind.yml +3 -3
  38. package/public/polo.blue.svg +29 -29
  39. package/public/spoko.space.svg +71 -71
  40. package/public/twitter.svg +46 -46
  41. package/renovate.json +6 -6
  42. package/sandbox.config.json +11 -11
  43. package/src/MyComponent.astro +8 -8
  44. package/src/components/Badge.vue +19 -19
  45. package/src/components/Badges.vue +21 -21
  46. package/src/components/Breadcrumbs.vue +94 -94
  47. package/src/components/Button.vue +101 -101
  48. package/src/components/ButtonCopy.astro +183 -183
  49. package/src/components/ButtonCopy.vue +36 -36
  50. package/src/components/Card.astro +27 -27
  51. package/src/components/Carousel.astro +26 -26
  52. package/src/components/Category/CategoriesCarousel.astro +101 -101
  53. package/src/components/Category/CategoryDetails.astro +169 -169
  54. package/src/components/Category/CategoryLink.vue +28 -28
  55. package/src/components/Category/CategorySidebarToggler.vue +9 -9
  56. package/src/components/Category/CategoryTile.astro +37 -37
  57. package/src/components/Category/CategoryViewToggler.astro +89 -89
  58. package/src/components/Category/SubCategoryLink.vue +19 -19
  59. package/src/components/Copyright.astro +12 -12
  60. package/src/components/Date.astro +7 -7
  61. package/src/components/Faq.astro +33 -33
  62. package/src/components/FaqItem.astro +80 -80
  63. package/src/components/FeaturesList.vue +37 -37
  64. package/src/components/FuckRussia.vue +62 -62
  65. package/src/components/HandDrive.astro +55 -29
  66. package/src/components/Header/Header.astro +210 -210
  67. package/src/components/Header/SkipToContent.astro +1 -1
  68. package/src/components/Headline.vue +87 -87
  69. package/src/components/Image.astro +30 -30
  70. package/src/components/LeftSidebar.astro +53 -53
  71. package/src/components/MainColors.vue +22 -22
  72. package/src/components/MainInput.vue +15 -15
  73. package/src/components/Modal.astro +27 -27
  74. package/src/components/PageContent.astro +5 -5
  75. package/src/components/PartNumber.vue +27 -27
  76. package/src/components/Post/PostCategories.astro +41 -41
  77. package/src/components/Post/PostCategories.vue +30 -30
  78. package/src/components/PostHeader.astro +103 -103
  79. package/src/components/PrCode.vue +141 -141
  80. package/src/components/Product/ProductButton.vue +18 -18
  81. package/src/components/Product/ProductCarousel.astro +35 -35
  82. package/src/components/Product/ProductEngineType.vue +42 -42
  83. package/src/components/Product/ProductImage.astro +40 -40
  84. package/src/components/Product/ProductLink.astro +101 -101
  85. package/src/components/Product/ProductLink.vue +59 -59
  86. package/src/components/Product/ProductLinkInfo.astro +37 -37
  87. package/src/components/Product/ProductNumber.astro +60 -60
  88. package/src/components/ProductCarousel.astro +38 -38
  89. package/src/components/ProductCodes.vue +39 -39
  90. package/src/components/ProductDetailName.vue +52 -52
  91. package/src/components/ProductDetailsList.vue +216 -216
  92. package/src/components/ProductTile.astro +48 -48
  93. package/src/components/Quote.vue +23 -23
  94. package/src/components/ReloadPrompt.astro +50 -50
  95. package/src/components/SlimBanner.vue +72 -72
  96. package/src/components/Table.vue +32 -32
  97. package/src/components/TableOfContents.astro +15 -15
  98. package/src/components/Translations.vue +23 -23
  99. package/src/components/flags/FlagPL.vue +3 -3
  100. package/src/components/flags/FlagUA.vue +2 -2
  101. package/src/components/{Layout → layout}/CallToAction.astro +52 -52
  102. package/src/components/{Layout → layout}/Container.astro +7 -7
  103. package/src/components/{Layout → layout}/Header.astro +80 -80
  104. package/src/config.ts +56 -56
  105. package/src/design.config.ts +98 -98
  106. package/src/env.d.ts +6 -6
  107. package/src/layouts/Layout.astro +61 -61
  108. package/src/layouts/MainLayout.astro +81 -81
  109. package/src/layouts/partials/FooterCommon.astro +4 -4
  110. package/src/layouts/partials/HeadCommon.astro +44 -44
  111. package/src/layouts/partials/HeadSEO.astro +41 -41
  112. package/src/pages/components/badges.mdx +57 -57
  113. package/src/pages/components/breadcrumbs.mdx +139 -139
  114. package/src/pages/components/buttons.mdx +360 -360
  115. package/src/pages/components/card.mdx +294 -294
  116. package/src/pages/components/carousel.mdx +62 -62
  117. package/src/pages/components/copyright.mdx +42 -42
  118. package/src/pages/components/details-list.mdx +115 -115
  119. package/src/pages/components/features-list.mdx +37 -37
  120. package/src/pages/components/flags.mdx +49 -49
  121. package/src/pages/components/fuck-russia.mdx +39 -39
  122. package/src/pages/components/hand-drive.mdx +105 -38
  123. package/src/pages/components/headline.mdx +137 -137
  124. package/src/pages/components/icons.astro +135 -135
  125. package/src/pages/components/image.mdx +513 -513
  126. package/src/pages/components/input.mdx +367 -367
  127. package/src/pages/components/jumbotron.mdx +359 -359
  128. package/src/pages/components/modal.mdx +64 -64
  129. package/src/pages/components/post-header.mdx +64 -64
  130. package/src/pages/components/pr-code.mdx +65 -65
  131. package/src/pages/components/product-number.mdx +58 -58
  132. package/src/pages/components/product-tile.mdx +51 -51
  133. package/src/pages/components/quote.mdx +33 -33
  134. package/src/pages/components/slimbanner.mdx +35 -35
  135. package/src/pages/components/table.mdx +108 -108
  136. package/src/pages/core/colors.mdx +10 -10
  137. package/src/pages/core/grid.mdx +89 -89
  138. package/src/pages/core/introduction.mdx +77 -77
  139. package/src/pages/core/shadows.astro +20 -20
  140. package/src/pages/core/typography.astro +49 -49
  141. package/src/pages/index.astro +133 -133
  142. package/src/pages/patterns/introduction.mdx +60 -60
  143. package/src/pwa.ts +12 -12
  144. package/src/styles/_variables.scss +70 -70
  145. package/src/styles/base/base.css +184 -184
  146. package/src/styles/base/grid.css +92 -92
  147. package/src/styles/base/typography.css +70 -70
  148. package/src/styles/content.css +73 -73
  149. package/src/styles/main.css +7 -7
  150. package/src/types/Product.ts +31 -31
  151. package/src/types/astro.d.ts +3 -3
  152. package/src/utils/product/getPriceFormatted.ts +15 -15
  153. package/src/utils/product/getProductChecklist.ts +17 -17
  154. package/src/utils/product/useFormatProductNumber.ts +41 -41
  155. package/src/utils/seo/getShorterDescription.ts +14 -14
  156. package/src/utils/text/formatDate.ts +5 -5
  157. package/src/utils/text/formatLocaleNumber.ts +6 -6
  158. package/src/utils/text/formatPad.ts +12 -12
  159. package/src/utils/text/getNumberFormatted.ts +33 -33
  160. package/src/utils/text/getTranslatedLink.ts +5 -5
  161. package/src/utils/text.ts +19 -19
  162. package/tailwind.config.cjs +8 -8
  163. package/tsconfig.json +28 -28
  164. package/uno-config/index.ts +268 -268
  165. package/uno-config/theme/breakpoints.ts +9 -9
  166. package/uno-config/theme/colors.ts +64 -64
  167. package/uno-config/theme/dimensions.ts +17 -17
  168. package/uno-config/theme/effects.ts +14 -14
  169. package/uno-config/theme/grid.ts +10 -10
  170. package/uno-config/theme/index.ts +28 -28
  171. package/uno-config/theme/shortcuts/buttons.ts +53 -53
  172. package/uno-config/theme/shortcuts/components.ts +123 -123
  173. package/uno-config/theme/shortcuts/index.ts +20 -20
  174. package/uno-config/theme/shortcuts/layout.ts +74 -74
  175. package/uno-config/theme/typography.ts +29 -29
  176. package/uno.config.ts +2 -2
package/README.md CHANGED
@@ -1,116 +1,116 @@
1
- # Spoko Design System
2
-
3
- ![Version](https://img.shields.io/github/package-json/v/polo-blue/sds)
4
-
5
- SDS is the easiest way to start websites with simple design system. Since Astro is compatible with many frameworks, you can import your components and document them right in the markdown files.
6
- The project is still in the development phase, use at your own risk ;-)
7
- #
8
- Please feel free to fork it, edit it and let me know what do you think about it.
9
-
10
-
11
-
12
- | title | Introduction |
13
- |-------------|--------------------------------|
14
- | description | Docs intro |
15
- | layout | ../../layouts/MainLayout.astro |
16
-
17
-
18
- ## Getting started
19
-
20
- ### Installation
21
-
22
- ```js
23
- pnpm add spoko-design-system
24
- ```
25
-
26
- or just clone the repository.
27
-
28
-
29
-
30
- ### Example:
31
- - https://sds.spoko.space/
32
-
33
- #
34
-
35
- Most of the components from this repository can be seen in my projects:
36
-
37
- - https://catalog.polo.blue/
38
- - https://polo.blue
39
- - https://polo6r.pl
40
-
41
-
42
- ### Feateures
43
- - ⚡️[Vue 3](https://github.com/vuejs/core), [Vite](https://github.com/vitejs/vite), [pnpm](https://pnpm.io/) - born with fastness
44
- - 🎨 [UnoCSS](https://github.com/antfu/unocss) - the instant on-demand atomic CSS engine
45
- - 😃 [astro-icon](https://github.com/natemoo-re/astro-icon) - for local icons, sprites and `@iconify-json/*` sets
46
- - 🍔 [astro-navbar](https://github.com/surjithctly/astro-navbar) - fully responsive and accessible headless navigation bar
47
- - 🌍 [astro-i18next](https://github.com/yassinedoghri/astro-i18next) - Astro integration of i18next
48
- - 🔎 [astro-pagefind](https://github.com/shishkin/astro-pagefind) - Astro integration for Pagefind static site search
49
- - 🗒 [astrojs/mdx](https://github.com/withastro/astro/tree/main/packages/integrations/mdx/) - markdown support
50
- - 📦 [astro-compress](https://github.com/astro-community/AstroCompress) - compression utilities to your Astro project
51
- - 📲 [PWA](https://github.com/vite-pwa/astro) - Zero-config PWA Integration for Astro
52
- - 🏷️ [astro-meta-tags](https://github.com/patrick91/astro-meta-tags) - Meta Tags inside for Astro Dev Toolbar
53
- - 🖨 Static-site generation (SSG)
54
- - 🎡 [Swiper](https://github.com/nolimits4web/swiper) - modern mobile touch slider with hardware accelerated transitions and amazing native behavior
55
- - 🌠 [View Transitions API](https://docs.astro.build/en/guides/view-transitions/#full-site-view-transitions-spa-mode) - [View Transition API](https://developer.mozilla.org/en-US/docs/Web/API/Document/startViewTransition) - makes it easy to change the DOM in a single step, while creating an animated transition between the two states. It's available in Chrome 111+ ([more details](https://developer.chrome.com/docs/web-platform/view-transitions?hl=en))
56
- - ☁️ Deploy on Netlify
57
-
58
- ### Adding new sections
59
-
60
- Although it's not required, you can create folders for new sections.
61
-
62
- To show the section on the left side navigation, add it to the navigation config file at `src/config.ts`.
63
-
64
-
65
- ```js
66
- export const SIDEBAR = [
67
- { text: "Core", header: true },
68
- { text: "Introduction", link: "/core/introduction" },
69
- ...,
70
- { text: "Components", header: true },
71
- { text: "Buttons", link: "/components/jumbotron" },
72
- ...,
73
- { text: "New section", header: true },
74
- { text: "New component", link: "/new-section/new-component.md" },
75
- ];
76
- ```
77
-
78
- ### Adding new pages
79
-
80
- To add new pages just create an .astro or markdown file in `src/pages/[section]/my-page.mdx`. Remember to add it to the navigation config in `src/config.ts` so it shows up in the left side navigation.
81
-
82
- You're free to organize the pages however you want.
83
-
84
- ### Customizing Core section (colors, typography, shadows...)
85
-
86
- If you want to customize the default colors, typography or shadows you can find the configuration file at uno.config.ts`. I think I have prepared enough shades of blue ;-)
87
-
88
- Feel free to add new pages to the Core section
89
-
90
-
91
- ### Customizing the page layout
92
-
93
- You can find the css for the pages in `src/styles/content.css`.
94
-
95
-
96
- ### Adding your components
97
-
98
- Astro is great for design systems because it allows you to import components from different frameworks like react, vue or svelte.
99
-
100
- To get started check how the `MainButton` component is used in the `src/pages/buttons.mdx` file.
101
-
102
- You can import your component library or create your own and document it easily.
103
-
104
-
105
- ### `.component-preview` utility
106
-
107
- There's a class called `.component-preview` that you can use to wrap your component in a grid, and it will look like this:
108
-
109
- <div class="component-preview">
110
- <button class="text-white bg-blue-lightest px-4 py-2 rounded-md">Your component</button>
111
- </div>
112
-
113
-
114
- ### Have fun!
115
-
116
- Spoko Design System template was made in Poland by **[@spoko.space](https://spoko.space)** for personal and commercial use.
1
+ # Spoko Design System
2
+
3
+ ![Version](https://img.shields.io/github/package-json/v/polo-blue/sds)
4
+
5
+ SDS is the easiest way to start websites with simple design system. Since Astro is compatible with many frameworks, you can import your components and document them right in the markdown files.
6
+ The project is still in the development phase, use at your own risk ;-)
7
+ #
8
+ Please feel free to fork it, edit it and let me know what do you think about it.
9
+
10
+
11
+
12
+ | title | Introduction |
13
+ |-------------|--------------------------------|
14
+ | description | Docs intro |
15
+ | layout | ../../layouts/MainLayout.astro |
16
+
17
+
18
+ ## Getting started
19
+
20
+ ### Installation
21
+
22
+ ```js
23
+ pnpm add spoko-design-system
24
+ ```
25
+
26
+ or just clone the repository.
27
+
28
+
29
+
30
+ ### Example:
31
+ - https://sds.spoko.space/
32
+
33
+ #
34
+
35
+ Most of the components from this repository can be seen in my projects:
36
+
37
+ - https://catalog.polo.blue/
38
+ - https://polo.blue
39
+ - https://polo6r.pl
40
+
41
+
42
+ ### Feateures
43
+ - ⚡️[Vue 3](https://github.com/vuejs/core), [Vite](https://github.com/vitejs/vite), [pnpm](https://pnpm.io/) - born with fastness
44
+ - 🎨 [UnoCSS](https://github.com/antfu/unocss) - the instant on-demand atomic CSS engine
45
+ - 😃 [astro-icon](https://github.com/natemoo-re/astro-icon) - for local icons, sprites and `@iconify-json/*` sets
46
+ - 🍔 [astro-navbar](https://github.com/surjithctly/astro-navbar) - fully responsive and accessible headless navigation bar
47
+ - 🌍 [astro-i18next](https://github.com/yassinedoghri/astro-i18next) - Astro integration of i18next
48
+ - 🔎 [astro-pagefind](https://github.com/shishkin/astro-pagefind) - Astro integration for Pagefind static site search
49
+ - 🗒 [astrojs/mdx](https://github.com/withastro/astro/tree/main/packages/integrations/mdx/) - markdown support
50
+ - 📦 [astro-compress](https://github.com/astro-community/AstroCompress) - compression utilities to your Astro project
51
+ - 📲 [PWA](https://github.com/vite-pwa/astro) - Zero-config PWA Integration for Astro
52
+ - 🏷️ [astro-meta-tags](https://github.com/patrick91/astro-meta-tags) - Meta Tags inside for Astro Dev Toolbar
53
+ - 🖨 Static-site generation (SSG)
54
+ - 🎡 [Swiper](https://github.com/nolimits4web/swiper) - modern mobile touch slider with hardware accelerated transitions and amazing native behavior
55
+ - 🌠 [View Transitions API](https://docs.astro.build/en/guides/view-transitions/#full-site-view-transitions-spa-mode) - [View Transition API](https://developer.mozilla.org/en-US/docs/Web/API/Document/startViewTransition) - makes it easy to change the DOM in a single step, while creating an animated transition between the two states. It's available in Chrome 111+ ([more details](https://developer.chrome.com/docs/web-platform/view-transitions?hl=en))
56
+ - ☁️ Deploy on Netlify
57
+
58
+ ### Adding new sections
59
+
60
+ Although it's not required, you can create folders for new sections.
61
+
62
+ To show the section on the left side navigation, add it to the navigation config file at `src/config.ts`.
63
+
64
+
65
+ ```js
66
+ export const SIDEBAR = [
67
+ { text: "Core", header: true },
68
+ { text: "Introduction", link: "/core/introduction" },
69
+ ...,
70
+ { text: "Components", header: true },
71
+ { text: "Buttons", link: "/components/jumbotron" },
72
+ ...,
73
+ { text: "New section", header: true },
74
+ { text: "New component", link: "/new-section/new-component.md" },
75
+ ];
76
+ ```
77
+
78
+ ### Adding new pages
79
+
80
+ To add new pages just create an .astro or markdown file in `src/pages/[section]/my-page.mdx`. Remember to add it to the navigation config in `src/config.ts` so it shows up in the left side navigation.
81
+
82
+ You're free to organize the pages however you want.
83
+
84
+ ### Customizing Core section (colors, typography, shadows...)
85
+
86
+ If you want to customize the default colors, typography or shadows you can find the configuration file at uno.config.ts`. I think I have prepared enough shades of blue ;-)
87
+
88
+ Feel free to add new pages to the Core section
89
+
90
+
91
+ ### Customizing the page layout
92
+
93
+ You can find the css for the pages in `src/styles/content.css`.
94
+
95
+
96
+ ### Adding your components
97
+
98
+ Astro is great for design systems because it allows you to import components from different frameworks like react, vue or svelte.
99
+
100
+ To get started check how the `MainButton` component is used in the `src/pages/buttons.mdx` file.
101
+
102
+ You can import your component library or create your own and document it easily.
103
+
104
+
105
+ ### `.component-preview` utility
106
+
107
+ There's a class called `.component-preview` that you can use to wrap your component in a grid, and it will look like this:
108
+
109
+ <div class="component-preview">
110
+ <button class="text-white bg-blue-lightest px-4 py-2 rounded-md">Your component</button>
111
+ </div>
112
+
113
+
114
+ ### Have fun!
115
+
116
+ Spoko Design System template was made in Poland by **[@spoko.space](https://spoko.space)** for personal and commercial use.
@@ -1,18 +1,18 @@
1
- /** @type {import('astro-i18next').AstroI18nextConfig} */
2
- export default {
3
- defaultLocale: "en",
4
- locales: ["en", "pl"],
5
- i18next: {
6
- // debug is convenient during development to check for missing keys
7
- debug: true,
8
- initImmediate: false,
9
- // backend: {
10
- // loadPath: './src/locales/{{lng}}.yml',
11
- // },
12
- detection: {}, // Default detection settings
13
- },
14
- i18nextPlugins: {
15
- fsBackend: 'i18next-fs-backend',
16
- LanguageDetector: 'i18next-browser-languagedetector',
17
- },
1
+ /** @type {import('astro-i18next').AstroI18nextConfig} */
2
+ export default {
3
+ defaultLocale: "en",
4
+ locales: ["en", "pl"],
5
+ i18next: {
6
+ // debug is convenient during development to check for missing keys
7
+ debug: true,
8
+ initImmediate: false,
9
+ // backend: {
10
+ // loadPath: './src/locales/{{lng}}.yml',
11
+ // },
12
+ detection: {}, // Default detection settings
13
+ },
14
+ i18nextPlugins: {
15
+ fsBackend: 'i18next-fs-backend',
16
+ LanguageDetector: 'i18next-browser-languagedetector',
17
+ },
18
18
  };
@@ -1,11 +1,11 @@
1
- import type { AstroI18nextConfig } from "astro-i18next";
2
-
3
- const config: AstroI18nextConfig = {
4
- defaultLocale: "en",
5
- locales: ["en", "pl"],
6
- i18nextServer: {
7
- debug: true,
8
- },
9
- };
10
-
1
+ import type { AstroI18nextConfig } from "astro-i18next";
2
+
3
+ const config: AstroI18nextConfig = {
4
+ defaultLocale: "en",
5
+ locales: ["en", "pl"],
6
+ i18nextServer: {
7
+ debug: true,
8
+ },
9
+ };
10
+
11
11
  export default config;
package/astro.config.mjs CHANGED
@@ -1,87 +1,87 @@
1
- import { defineConfig, sharpImageService } from "astro/config";
2
- import { iconConfig } from './icon.config';
3
- import vue from "@astrojs/vue";
4
- import mdx from '@astrojs/mdx';
5
- import UnoCSS from '@unocss/astro';
6
- import astroI18next from "astro-i18next";
7
- import icon from "astro-icon";
8
- import sitemap from "@astrojs/sitemap";
9
- import pagefind from "astro-pagefind";
10
- import AstroPWA from '@vite-pwa/astro';
11
- import metaTags from "astro-meta-tags";
12
-
13
- import { createSdsConfig } from './uno-config';
14
-
15
- const unoConfig = createSdsConfig();
16
-
17
- // https://astro.build/config
18
- export default defineConfig({
19
- site: "https://sds.spoko.space/",
20
- server: {
21
- port: 1234
22
- },
23
- image: {
24
- service: sharpImageService(),
25
- domains: ["placehold.co", "api.polo.blue", "polo.blue", "media.istockphoto.com", "freepik.com", "img.freepik.com", "polo6r.pl"]
26
- },
27
- integrations: [
28
- // Enable Vue to support Vue3 components
29
- vue(),
30
- mdx(),
31
- astroI18next(),
32
- AstroPWA({
33
- mode: 'production',
34
- base: '/',
35
- scope: '/',
36
- includeAssets: ['favicon.svg', 'safari-pinned-tab.svg', 'brands/*.svg', 'fonts/*.woff2', 'fonts/*.svg', 'vw.svg', 'polo.blue.svg', 'spoko.space.svg'],
37
- registerType: 'autoUpdate',
38
- manifest: {
39
- name: 'Spoko Design System',
40
- short_name: 'SDS',
41
- description: 'SDS PWA app description',
42
- categories: ['multimedia'],
43
- screenshots: [{
44
- "src": "pwa-512x512.png",
45
- "sizes": "512x512",
46
- "platform": "windows",
47
- "label": "SDS"
48
- }],
49
- theme_color: '#001e50',
50
- icons: [{
51
- src: 'pwa-192x192.png',
52
- sizes: '192x192',
53
- type: 'image/png'
54
- }, {
55
- src: 'pwa-512x512.png',
56
- sizes: '512x512',
57
- type: 'image/png'
58
- }, {
59
- src: 'pwa-512x512.png',
60
- sizes: '512x512',
61
- type: 'image/png',
62
- purpose: 'any maskable'
63
- }]
64
- },
65
- workbox: {
66
- navigateFallback: '/',
67
- globPatterns: ['**/*.{css,js,html,svg,png,ico,txt}']
68
- },
69
- devOptions: {
70
- enabled: false,
71
- navigateFallbackAllowlist: [/^\//]
72
- },
73
- experimental: {
74
- directoryAndTrailingSlashHandler: true
75
- }
76
- }),
77
- UnoCSS({
78
- injectReset: true,
79
- ...unoConfig
80
- }),
81
- icon(iconConfig),
82
- metaTags(),
83
- (await import("@playform/inline")).default(),
84
- pagefind(),
85
- sitemap()
86
- ]
1
+ import { defineConfig, sharpImageService } from "astro/config";
2
+ import { iconConfig } from './icon.config';
3
+ import vue from "@astrojs/vue";
4
+ import mdx from '@astrojs/mdx';
5
+ import UnoCSS from '@unocss/astro';
6
+ import astroI18next from "astro-i18next";
7
+ import icon from "astro-icon";
8
+ import sitemap from "@astrojs/sitemap";
9
+ import pagefind from "astro-pagefind";
10
+ import AstroPWA from '@vite-pwa/astro';
11
+ import metaTags from "astro-meta-tags";
12
+
13
+ import { createSdsConfig } from './uno-config';
14
+
15
+ const unoConfig = createSdsConfig();
16
+
17
+ // https://astro.build/config
18
+ export default defineConfig({
19
+ site: "https://sds.spoko.space/",
20
+ server: {
21
+ port: 1234
22
+ },
23
+ image: {
24
+ service: sharpImageService(),
25
+ domains: ["placehold.co", "api.polo.blue", "polo.blue", "media.istockphoto.com", "freepik.com", "img.freepik.com", "polo6r.pl"]
26
+ },
27
+ integrations: [
28
+ // Enable Vue to support Vue3 components
29
+ vue(),
30
+ mdx(),
31
+ astroI18next(),
32
+ AstroPWA({
33
+ mode: 'production',
34
+ base: '/',
35
+ scope: '/',
36
+ includeAssets: ['favicon.svg', 'safari-pinned-tab.svg', 'brands/*.svg', 'fonts/*.woff2', 'fonts/*.svg', 'vw.svg', 'polo.blue.svg', 'spoko.space.svg'],
37
+ registerType: 'autoUpdate',
38
+ manifest: {
39
+ name: 'Spoko Design System',
40
+ short_name: 'SDS',
41
+ description: 'SDS PWA app description',
42
+ categories: ['multimedia'],
43
+ screenshots: [{
44
+ "src": "pwa-512x512.png",
45
+ "sizes": "512x512",
46
+ "platform": "windows",
47
+ "label": "SDS"
48
+ }],
49
+ theme_color: '#001e50',
50
+ icons: [{
51
+ src: 'pwa-192x192.png',
52
+ sizes: '192x192',
53
+ type: 'image/png'
54
+ }, {
55
+ src: 'pwa-512x512.png',
56
+ sizes: '512x512',
57
+ type: 'image/png'
58
+ }, {
59
+ src: 'pwa-512x512.png',
60
+ sizes: '512x512',
61
+ type: 'image/png',
62
+ purpose: 'any maskable'
63
+ }]
64
+ },
65
+ workbox: {
66
+ navigateFallback: '/',
67
+ globPatterns: ['**/*.{css,js,html,svg,png,ico,txt}']
68
+ },
69
+ devOptions: {
70
+ enabled: false,
71
+ navigateFallbackAllowlist: [/^\//]
72
+ },
73
+ experimental: {
74
+ directoryAndTrailingSlashHandler: true
75
+ }
76
+ }),
77
+ UnoCSS({
78
+ injectReset: true,
79
+ ...unoConfig
80
+ }),
81
+ icon(iconConfig),
82
+ metaTags(),
83
+ (await import("@playform/inline")).default(),
84
+ pagefind(),
85
+ sitemap()
86
+ ]
87
87
  });
package/dev-dist/sw.js CHANGED
@@ -1,91 +1,91 @@
1
- /**
2
- * Copyright 2018 Google Inc. All Rights Reserved.
3
- * Licensed under the Apache License, Version 2.0 (the "License");
4
- * you may not use this file except in compliance with the License.
5
- * You may obtain a copy of the License at
6
- * http://www.apache.org/licenses/LICENSE-2.0
7
- * Unless required by applicable law or agreed to in writing, software
8
- * distributed under the License is distributed on an "AS IS" BASIS,
9
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
10
- * See the License for the specific language governing permissions and
11
- * limitations under the License.
12
- */
13
-
14
- // If the loader is already loaded, just stop.
15
- if (!self.define) {
16
- let registry = {};
17
-
18
- // Used for `eval` and `importScripts` where we can't get script URL by other means.
19
- // In both cases, it's safe to use a global var because those functions are synchronous.
20
- let nextDefineUri;
21
-
22
- const singleRequire = (uri, parentUri) => {
23
- uri = new URL(uri + ".js", parentUri).href;
24
- return registry[uri] || (
25
-
26
- new Promise(resolve => {
27
- if ("document" in self) {
28
- const script = document.createElement("script");
29
- script.src = uri;
30
- script.onload = resolve;
31
- document.head.appendChild(script);
32
- } else {
33
- nextDefineUri = uri;
34
- importScripts(uri);
35
- resolve();
36
- }
37
- })
38
-
39
- .then(() => {
40
- let promise = registry[uri];
41
- if (!promise) {
42
- throw new Error(`Module ${uri} didn’t register its module`);
43
- }
44
- return promise;
45
- })
46
- );
47
- };
48
-
49
- self.define = (depsNames, factory) => {
50
- const uri = nextDefineUri || ("document" in self ? document.currentScript.src : "") || location.href;
51
- if (registry[uri]) {
52
- // Module is already loading or loaded.
53
- return;
54
- }
55
- let exports = {};
56
- const require = depUri => singleRequire(depUri, uri);
57
- const specialDeps = {
58
- module: { uri },
59
- exports,
60
- require
61
- };
62
- registry[uri] = Promise.all(depsNames.map(
63
- depName => specialDeps[depName] || require(depName)
64
- )).then(deps => {
65
- factory(...deps);
66
- return exports;
67
- });
68
- };
69
- }
70
- define(['./workbox-c676b6d3'], (function (workbox) { 'use strict';
71
-
72
- self.skipWaiting();
73
- workbox.clientsClaim();
74
-
75
- /**
76
- * The precacheAndRoute() method efficiently caches and responds to
77
- * requests for URLs in the manifest.
78
- * See https://goo.gl/S9QRab
79
- */
80
- workbox.precacheAndRoute([{
81
- "url": "/",
82
- "revision": "0.4grcq5f8bio"
83
- }], {
84
- "directoryIndex": "index.html"
85
- });
86
- workbox.cleanupOutdatedCaches();
87
- workbox.registerRoute(new workbox.NavigationRoute(workbox.createHandlerBoundToURL("/"), {
88
- allowlist: [/^\//]
89
- }));
90
-
91
- }));
1
+ /**
2
+ * Copyright 2018 Google Inc. All Rights Reserved.
3
+ * Licensed under the Apache License, Version 2.0 (the "License");
4
+ * you may not use this file except in compliance with the License.
5
+ * You may obtain a copy of the License at
6
+ * http://www.apache.org/licenses/LICENSE-2.0
7
+ * Unless required by applicable law or agreed to in writing, software
8
+ * distributed under the License is distributed on an "AS IS" BASIS,
9
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
10
+ * See the License for the specific language governing permissions and
11
+ * limitations under the License.
12
+ */
13
+
14
+ // If the loader is already loaded, just stop.
15
+ if (!self.define) {
16
+ let registry = {};
17
+
18
+ // Used for `eval` and `importScripts` where we can't get script URL by other means.
19
+ // In both cases, it's safe to use a global var because those functions are synchronous.
20
+ let nextDefineUri;
21
+
22
+ const singleRequire = (uri, parentUri) => {
23
+ uri = new URL(uri + ".js", parentUri).href;
24
+ return registry[uri] || (
25
+
26
+ new Promise(resolve => {
27
+ if ("document" in self) {
28
+ const script = document.createElement("script");
29
+ script.src = uri;
30
+ script.onload = resolve;
31
+ document.head.appendChild(script);
32
+ } else {
33
+ nextDefineUri = uri;
34
+ importScripts(uri);
35
+ resolve();
36
+ }
37
+ })
38
+
39
+ .then(() => {
40
+ let promise = registry[uri];
41
+ if (!promise) {
42
+ throw new Error(`Module ${uri} didn’t register its module`);
43
+ }
44
+ return promise;
45
+ })
46
+ );
47
+ };
48
+
49
+ self.define = (depsNames, factory) => {
50
+ const uri = nextDefineUri || ("document" in self ? document.currentScript.src : "") || location.href;
51
+ if (registry[uri]) {
52
+ // Module is already loading or loaded.
53
+ return;
54
+ }
55
+ let exports = {};
56
+ const require = depUri => singleRequire(depUri, uri);
57
+ const specialDeps = {
58
+ module: { uri },
59
+ exports,
60
+ require
61
+ };
62
+ registry[uri] = Promise.all(depsNames.map(
63
+ depName => specialDeps[depName] || require(depName)
64
+ )).then(deps => {
65
+ factory(...deps);
66
+ return exports;
67
+ });
68
+ };
69
+ }
70
+ define(['./workbox-c676b6d3'], (function (workbox) { 'use strict';
71
+
72
+ self.skipWaiting();
73
+ workbox.clientsClaim();
74
+
75
+ /**
76
+ * The precacheAndRoute() method efficiently caches and responds to
77
+ * requests for URLs in the manifest.
78
+ * See https://goo.gl/S9QRab
79
+ */
80
+ workbox.precacheAndRoute([{
81
+ "url": "/",
82
+ "revision": "0.4grcq5f8bio"
83
+ }], {
84
+ "directoryIndex": "index.html"
85
+ });
86
+ workbox.cleanupOutdatedCaches();
87
+ workbox.registerRoute(new workbox.NavigationRoute(workbox.createHandlerBoundToURL("/"), {
88
+ allowlist: [/^\//]
89
+ }));
90
+
91
+ }));