spoko-design-system 0.0.1

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 (113) hide show
  1. package/.astro/icon.d.ts +2193 -0
  2. package/.github/workflows/deploy.yml +40 -0
  3. package/.stackblitzrc +6 -0
  4. package/.vscode/extensions.json +4 -0
  5. package/.vscode/launch.json +11 -0
  6. package/LICENSE +21 -0
  7. package/Layout/Header.astro +89 -0
  8. package/README.md +69 -0
  9. package/astro-i18next.config.mjs +18 -0
  10. package/astro-i18next.config.ts +11 -0
  11. package/astro.config.mjs +43 -0
  12. package/index.ts +6 -0
  13. package/package.json +71 -0
  14. package/public/Components.jpg +0 -0
  15. package/public/Core.jpg +0 -0
  16. package/public/Patterns.jpg +0 -0
  17. package/public/astro-design-system-logo.svg +10 -0
  18. package/public/default-og-image.png +0 -0
  19. package/public/favicon.ico +0 -0
  20. package/public/fonts/VWHeadline-LtTab.woff2 +0 -0
  21. package/public/fonts/lg.svg +54 -0
  22. package/public/fonts/lg.svg.br +0 -0
  23. package/public/fonts/lg.svg.gz +0 -0
  24. package/public/fonts/lg.ttf +0 -0
  25. package/public/fonts/lg.woff +0 -0
  26. package/public/fonts/lg.woff2 +0 -0
  27. package/public/fonts/nova-mono-v13-latin-regular.woff +0 -0
  28. package/public/fonts/nova-mono-v13-latin-regular.woff2 +0 -0
  29. package/public/fonts/vwhead-bold-demo.html +549 -0
  30. package/public/fonts/vwhead-bold-webfont.woff +0 -0
  31. package/public/fonts/vwhead-bold-webfont.woff2 +0 -0
  32. package/public/fonts/vwhead-light-webfont.woff +0 -0
  33. package/public/fonts/vwhead-light-webfont.woff2 +0 -0
  34. package/public/fonts/vwhead-regular-demo.html +549 -0
  35. package/public/fonts/vwhead-regular-webfont-OLD.woff +0 -0
  36. package/public/fonts/vwhead-regular-webfont-OLD.woff2 +0 -0
  37. package/public/fonts/vwhead-regular-webfont.woff +0 -0
  38. package/public/fonts/vwhead-regular-webfont.woff2 +0 -0
  39. package/public/fonts/vwtext-bold-demo.html +549 -0
  40. package/public/fonts/vwtext-bold-webfont.woff +0 -0
  41. package/public/fonts/vwtext-bold-webfont.woff2 +0 -0
  42. package/public/fonts/vwtext-light-webfont.woff +0 -0
  43. package/public/fonts/vwtext-light-webfont.woff2 +0 -0
  44. package/public/fonts/vwtext-regular-demo.html +549 -0
  45. package/public/fonts/vwtext-regular-webfont.woff +0 -0
  46. package/public/fonts/vwtext-regular-webfont.woff2 +0 -0
  47. package/public/github.svg +3 -0
  48. package/public/grid_dot.svg +4 -0
  49. package/public/linkedin.svg +44 -0
  50. package/public/locales/en/translation.json +6 -0
  51. package/public/locales/pl/translation.json +6 -0
  52. package/public/make-scrollable-code-focusable.js +3 -0
  53. package/public/twitter.svg +46 -0
  54. package/sandbox.config.json +11 -0
  55. package/src/MyComponent.astro +8 -0
  56. package/src/assets/hand-drive.svg +1 -0
  57. package/src/components/Badge.vue +20 -0
  58. package/src/components/Badges.vue +23 -0
  59. package/src/components/Breadcrumbs.vue +111 -0
  60. package/src/components/Copyright.astro +12 -0
  61. package/src/components/FuckRussia.vue +65 -0
  62. package/src/components/HandDrive.astro +31 -0
  63. package/src/components/HeadCommon.astro +40 -0
  64. package/src/components/HeadSEO.astro +41 -0
  65. package/src/components/Header/AstroLogo.astro +27 -0
  66. package/src/components/Header/Header.astro +48 -0
  67. package/src/components/Header/SkipToContent.astro +1 -0
  68. package/src/components/Jumbatron.vue +31 -0
  69. package/src/components/LeftSidebar.astro +44 -0
  70. package/src/components/MainButton.vue +26 -0
  71. package/src/components/MainColors.vue +29 -0
  72. package/src/components/MainInput.vue +18 -0
  73. package/src/components/MainStatusPill.vue +32 -0
  74. package/src/components/MainTable.vue +45 -0
  75. package/src/components/PageContent.astro +14 -0
  76. package/src/components/RightSidebar.astro +11 -0
  77. package/src/components/SlimBanner.vue +60 -0
  78. package/src/components/TableOfContents.astro +12 -0
  79. package/src/components/flags/FlagPL.vue +3 -0
  80. package/src/components/flags/FlagUA.vue +3 -0
  81. package/src/components/layout/Container.astro +7 -0
  82. package/src/components/layout/Header.astro +99 -0
  83. package/src/config.ts +42 -0
  84. package/src/design.config.ts +92 -0
  85. package/src/env.d.ts +2 -0
  86. package/src/layouts/MainLayout.astro +50 -0
  87. package/src/pages/components/badges.mdx +35 -0
  88. package/src/pages/components/breadcrumbs.mdx +103 -0
  89. package/src/pages/components/buttons.mdx +60 -0
  90. package/src/pages/components/copyright.mdx +24 -0
  91. package/src/pages/components/flags.mdx +27 -0
  92. package/src/pages/components/fuck-russia.mdx +16 -0
  93. package/src/pages/components/hand-drive.mdx +27 -0
  94. package/src/pages/components/icons.astro +45 -0
  95. package/src/pages/components/input.mdx +15 -0
  96. package/src/pages/components/jumbatron.mdx +48 -0
  97. package/src/pages/components/slimbanner.mdx +27 -0
  98. package/src/pages/components/status-pill.mdx +22 -0
  99. package/src/pages/components/table.mdx +20 -0
  100. package/src/pages/core/colors.mdx +8 -0
  101. package/src/pages/core/introduction.mdx +68 -0
  102. package/src/pages/core/shadows.astro +21 -0
  103. package/src/pages/core/typography.astro +47 -0
  104. package/src/pages/index.astro +52 -0
  105. package/src/pages/patterns/introduction.mdx +61 -0
  106. package/src/styles/_variables.scss +75 -0
  107. package/src/styles/base/_base.scss +158 -0
  108. package/src/styles/base/_typography.scss +148 -0
  109. package/src/styles/content.scss +72 -0
  110. package/src/styles/main.scss +22 -0
  111. package/tailwind.config.cjs +8 -0
  112. package/tsconfig.json +12 -0
  113. package/uno.config.ts +228 -0
@@ -0,0 +1,3 @@
1
+ Array.from(document.getElementsByTagName('pre')).forEach((element) => {
2
+ element.setAttribute('tabindex', '0');
3
+ });
@@ -0,0 +1,46 @@
1
+ <?xml version="1.0" encoding="iso-8859-1"?>
2
+ <!-- Generator: Adobe Illustrator 19.0.0, SVG Export Plug-In . SVG Version: 6.00 Build 0) -->
3
+ <svg version="1.1" id="Layer_1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" x="0px" y="0px"
4
+ viewBox="0 0 231.104 231.104" style="enable-background:new 0 0 231.104 231.104;" xml:space="preserve">
5
+ <g>
6
+ <path style="fill:#3FA9F5;" d="M4.453,173.33c9.763-1.192,19.663,0.092,29.426-1.512c4.904-0.779,9.396-2.429,13.842-4.171
7
+ c-11-7.058-20.901-15.125-30.113-24.796c-3.3-3.438-0.917-9.213,3.896-9.35c3.942,0.183,7.792-0.137,11.55-0.917
8
+ c-9.58-12.146-17.005-25.209-22.78-39.876c-1.558-3.942,3.025-7.929,6.738-6.738c2.154,0.871,4.354,1.467,6.6,1.925
9
+ c-6.829-16.409-8.25-32.955-4.446-51.106c0.871-4.171,6.371-5.179,9.167-2.429c21.909,21.541,49.593,31.9,79.202,36.85
10
+ c-2.613-20.259,11.78-41.801,30.663-48.86c15.676-5.821,36.714-1.833,47.256,11.367c7.059-4.446,16.821-5.913,24.659-7.288
11
+ c4.125-0.688,8.113,3.346,5.684,7.425c-2.842,4.767-5.546,9.854-8.525,14.713c6.05-1.788,12.284-2.888,18.517-3.667
12
+ c4.492-0.596,7.196,6.325,3.759,9.075c-7.288,5.821-14.53,12.467-22.276,17.784c-0.229,51.472-15.263,94.649-61.235,123.937
13
+ c-38.319,24.477-109.546,20.352-142.867-12.97H3.124c-1.467-0.367-2.246-1.467-2.521-2.658c-1.283-1.925-0.367-4.308,1.329-5.225
14
+ C2.574,174.063,3.399,173.467,4.453,173.33z"/>
15
+ </g>
16
+ <g>
17
+ </g>
18
+ <g>
19
+ </g>
20
+ <g>
21
+ </g>
22
+ <g>
23
+ </g>
24
+ <g>
25
+ </g>
26
+ <g>
27
+ </g>
28
+ <g>
29
+ </g>
30
+ <g>
31
+ </g>
32
+ <g>
33
+ </g>
34
+ <g>
35
+ </g>
36
+ <g>
37
+ </g>
38
+ <g>
39
+ </g>
40
+ <g>
41
+ </g>
42
+ <g>
43
+ </g>
44
+ <g>
45
+ </g>
46
+ </svg>
@@ -0,0 +1,11 @@
1
+ {
2
+ "infiniteLoopProtection": true,
3
+ "hardReloadOnChange": false,
4
+ "view": "browser",
5
+ "template": "node",
6
+ "container": {
7
+ "port": 3000,
8
+ "startScript": "start",
9
+ "node": "14"
10
+ }
11
+ }
@@ -0,0 +1,8 @@
1
+ ---
2
+ // Write your component code in this file!
3
+ interface Props {
4
+ prefix?: string;
5
+ }
6
+ ---
7
+
8
+ <div>{Astro.props.prefix} My special component</div>
@@ -0,0 +1 @@
1
+ <svg xmlns="http://www.w3.org/2000/svg" width="1672.041" height="1177.211" class="h-auto w-12 hidden sm:block" viewBox="0 0 442.394 311.47"><path fill="#3b82f6" d="M118.895 7.98c22.235-.001 41.301 14.012 48.826 33.657h-14.78a38.653 38.653 0 0 0-34.046-20.158A38.652 38.652 0 0 0 84.85 41.637H70.071c7.525-19.644 26.59-33.657 48.824-33.658" style="paint-order:markers fill stroke" transform="translate(184.585 55.56)"/><path fill="#9CA3AF" d="M542.7-27.883c8.087.031 13.125.097 15.439.198 34.122 1.484 57.076 7.308 66.111 16.144 2.048 2.003 4.224 4.928 8.979 12.153 4.644 7.055 10.959 17.385 18.037 29.458a1610.988 1610.988 0 0 1 16.902 29.584 499.851 499.851 0 0 0 2.856 5.055c.383.666.703 1.218.941 1.619.12.2.217.363.295.488.079.126.028.115.254.358.23.247.384.296.547.369.163.073.328.131.51.185.362.108.779.196 1.209.253l2.486.324.115-11.014c.09-8.614.174-9.956.53-11.043 1.84-5.625 5.655-9.194 10.925-10.31 2.042-.433 6.373-.498 11.073-.196s9.836.946 13.742 1.815a45.86 45.86 0 0 1 5.16 1.455c10.043 3.506 15.43 9.741 15.955 18.347.432 7.09-3.678 13.064-12.033 17.09-4.877 2.351-13.481 4.571-21.873 5.584-1.63.197-2.562.315-3.194.469-.315.076-.571.115-.912.42-.17.152-.35.43-.388.719-.04.287.036.513.1.658a55.621 55.621 0 0 1 1.717 4.57c.056.183.1.337.126.442.027.104.027.209.024.058.011.481.23 1.21.714 1.635.485.426 1.073.708 2.094 1.215 6.838 3.397 11.549 8.76 13.29 14.99.382 1.37.443 4.061.443 54.764 0 28.238.01 41.86-.135 49.072-.145 7.213-.416 7.876-1.043 10.635-1.094 4.807-3.173 9.945-5.291 13.17l-1.202 1.83-.144 16.83-.14 16.39-.678 2.19c-1.985 6.417-5.524 10.3-11.147 12.328-1.646.594-2.604.87-5.982 1.021-3.378.152-9.072.145-19.8.098l-19.96-.088-2.185-.682c-5.72-1.78-9.34-4.74-11.522-9.321-.929-1.952-1.333-2.816-1.574-4.63-.241-1.813-.286-4.616-.344-10.1l-.115-10.843H393.588l-.115 10.844c-.058 5.483-.102 8.286-.344 10.1-.24 1.813-.645 2.677-1.574 4.629-2.181 4.581-5.8 7.54-11.521 9.321l-2.186.682-20.486.053c-8.163.02-13.418.016-16.803-.03-3.385-.044-4.945-.148-5.498-.253-7.135-1.366-11.793-5.68-14.103-13.13l-.68-2.19-.139-16.39-.143-16.83-1.2-1.83c-2.119-3.224-4.198-8.362-5.292-13.17-.627-2.758-.898-3.421-1.042-10.634-.145-7.213-.135-20.834-.135-49.072 0-50.703.06-53.394.443-54.764 1.74-6.23 6.439-11.576 13.309-14.998l1.312-.65.41-.203.115-.055c.025-.012.148-.056-.033.012l.172-.085s.083-.055.114-.08a.97.97 0 0 0 .232-.267 1.742 1.742 0 0 0 .136-.305 7.66 7.66 0 0 0 .123-.385c.091-.302.202-.7.315-1.135.301-1.155 1.047-3.182 1.81-4.88.111-.247.104-.616.004-.844a1.026 1.026 0 0 0-.318-.418c-.188-.152-.31-.19-.433-.237a5.284 5.284 0 0 0-.835-.222c-.667-.137-1.616-.278-2.863-.43-17.774-2.164-28.547-7.335-32.262-14.822-1.309-2.639-1.813-5.07-1.644-7.846.476-7.795 4.927-13.628 13.375-17.326 6.182-2.705 13.915-4.074 25.123-4.379 4.508-.122 5.784-.073 7.295.25 5.438 1.165 9.203 4.661 11.063 10.344.356 1.089.437 2.425.527 11.102l.115 11.152 2.683-.53 1.952-.384 3.234-5.684c12-21.076 22.107-38.262 29.873-50.836 7.766-12.573 13.3-20.62 15.74-23.06 6.93-6.93 22.6-11.937 46.39-14.358 13.694-1.393 14.028-1.4 59.169-1.521 14.506-.039 25.64-.043 33.727-.012m-29.629 13.951c-49.809 0-49.577-.002-64.073 1.608-16.726 1.858-29.154 5.04-34.822 9.3-1.128.849-2.51 2.672-4.61 5.68-2.099 3.008-4.79 7.139-8.02 12.313-6.463 10.348-15.092 24.865-25.436 42.832a823.06 823.06 0 0 0-2.979 5.213 72.249 72.249 0 0 1-1.785 4.05s3.21.02 5.528.06c3.358.054 9.15.092 18.896.12 19.49.056-38.301.066 117.945.066h142.916l-1.494-2.619-7.193-12.632c-7.842-13.77-15.226-26.237-21.102-35.71-2.937-4.735-5.497-8.722-7.554-11.755-2.057-3.033-3.56-5.074-4.602-6.096-2.791-2.74-8.066-4.99-15.289-6.914-7.223-1.925-16.387-3.458-26.834-4.432-11.4-1.061-12.56-1.084-59.492-1.084m181.847 63.367h-3.724v17.799l2.012-.308c.385-.06 1.699-.198 2.773-.285 2.976-.243 8.623-1.094 11.557-1.74 2.845-.628 5.505-1.43 7.674-2.29 2.168-.859 3.828-1.71 4.816-2.742.637-.665.983-1.554.879-2.418-.105-.864-.583-1.622-1.254-2.295-1.344-1.345-3.553-2.477-6.514-3.41-4.36-1.374-11.9-2.31-18.219-2.31m-358.912 0h-3.725c-8.483 0-17.353 1.432-21.878 3.72-1.63.822-2.853 1.81-3.551 2.943-.349.566-.567 1.188-.557 1.84.011.651.283 1.305.748 1.8 1.75 1.863 5.152 3.232 9.885 4.457 4.733 1.225 10.783 2.205 17.658 2.817.291.026.62-.11.791-.258.172-.15.241-.283.291-.389.1-.212.124-.36.153-.531.058-.342.089-.762.115-1.373.052-1.223.07-3.175.07-6.22zM513.6 81.203c-84.776 0-124.23-.026-143.082.14-9.426.084-13.688.21-15.967.424s-2.67.574-3.705.919c-2.803.933-4.928 2.177-6.402 3.947-1.475 1.77-2.238 4.016-2.477 6.76-.213 2.448-.647 3.93-1.494 5.002-.847 1.072-2.222 1.87-4.605 2.7-4.478 1.56-7.998 3.79-9.213 6.463-.678 1.494-.574 3.583-.578 52.415-.004 43.967.016 51.143.404 53.716 1.482 9.835 5.882 16.59 12.787 19.108.666.243 1.144.552 3.754.71 2.61.16 7.588.258 18.064.321 20.954.126 63.865.103 153.307.08 81.228-.02 123.744-.036 146.146-.103 22.403-.068 24.53-.1 25.723-.455 3.75-1.118 6.76-3.024 9.069-5.895 2.308-2.871 3.918-6.664 5.068-11.558.14-.596.265-1.166.347-2.366.083-1.2.138-3.068.178-6.482.08-6.827.1-19.825.14-45.752.047-29.365.124-42.659-.116-48.967-.12-3.154-.27-4.556-.719-5.559a2.95 2.95 0 0 0-.877-1.105c-.296-.227-.5-.342-.726-.545-1.85-1.663-4.222-2.955-7.294-4.025-2.383-.83-3.758-1.63-4.605-2.701-.847-1.072-1.281-2.554-1.494-5.003-.238-2.743-1.003-4.99-2.477-6.76-1.474-1.77-3.6-3.013-6.404-3.946-1.034-.345-1.425-.705-3.703-.918-2.279-.214-6.54-.341-15.967-.424-18.853-.167-58.306-.141-143.082-.141M366.658 97.234c.472.006.956.03 1.454.074 1.992.177 4.214.666 6.79 1.49.26.084 1.343.518 2.837 1.157 1.494.64 3.463 1.5 5.744 2.51a1944.587 1944.587 0 0 1 16.11 7.236 1835.336 1835.336 0 0 1 15.75 7.23 432.464 432.464 0 0 1 5.298 2.506c.657.319 1.189.58 1.566.774.378.194.708.419.549.293-.01-.008.684.785 1.495 1.994.81 1.21 1.88 2.912 3.183 5.069l4.277 7.08h59.184l.701-2.737c1.56-6.08 6.18-11.7 11.994-14.558 3.629-1.785 5.79-2.264 10.139-2.247 4.322.018 6.262.457 9.88 2.231 5.735 2.81 10.497 8.604 12.007 14.572l.693 2.739h59.177l4.28-7.08c1.312-2.172 2.382-3.873 3.19-5.077.807-1.203 1.49-1.982 1.484-1.978-.096.074-.01.007.09-.047.099-.055.245-.131.43-.225.367-.187.888-.442 1.533-.754a475.42 475.42 0 0 1 5.212-2.462 2055.44 2055.44 0 0 1 15.561-7.16c5.681-2.59 11.427-5.186 15.951-7.202 2.262-1.008 4.22-1.87 5.707-2.513 1.488-.644 2.555-1.083 2.846-1.182 5.096-1.739 9.404-2.128 12.728-1.278 3.596.92 6.357 2.845 8.672 6.227 2.315 3.382 4.135 8.252 5.588 14.916 2.355 10.802 1.978 18.769-.978 24.736-1.737 3.507-5.294 6.817-8.557 8.037.11-.04-.235.063-.644.153-.41.09-.977.208-1.676.35-1.398.283-3.323.66-5.596 1.095-4.546.871-10.488 1.98-16.432 3.072a2368.808 2368.808 0 0 1-16.441 2.97c-2.276.4-4.205.733-5.607.964-.702.116-1.272.207-1.684.268-.363.053-.585.069-.566.074a2.692 2.692 0 0 1-.286-.051 28.66 28.66 0 0 1-.904-.246c-.763-.219-1.822-.538-3.092-.934a535.23 535.23 0 0 1-9.539-3.085c-6.776-2.255-10.422-3.496-12.45-4.356-2.03-.86-2.302-1.175-2.882-1.988l-.88-1.237h-57.131l-.539 1.18c-.177.388-1.019 1.561-2.007 2.678-.989 1.117-2.156 2.273-3.036 2.976-6.109 4.884-14.142 6.304-21.494 3.803-4.93-1.676-8.735-4.63-11.994-9.345l-.893-1.292h-56.794l-.883 1.237c-.58.813-.85 1.128-2.879 1.988-2.03.86-5.677 2.1-12.453 4.356-4.803 1.598-8.166 2.69-10.422 3.375a55.99 55.99 0 0 1-2.584.732c-.604.15-1.015.193-.986.193.135.003-.203-.023-.579-.08-.376-.057-.9-.14-1.552-.248-1.304-.215-3.12-.525-5.31-.908a2335.3 2335.3 0 0 1-16.595-2.975 1566.72 1566.72 0 0 1-16.824-3.156c-2.2-.428-4.019-.793-5.338-1.068a82.437 82.437 0 0 1-1.581-.344c-.39-.09-.69-.179-.649-.164-4.865-1.812-8.64-6.355-10.32-12.66-.63-2.364-.669-2.84-.682-7.404-.015-5.317.145-6.738 1.441-12.753 2.068-9.591 5.16-15.728 8.948-18.517 2.11-1.554 2.98-1.977 5.292-2.569a15.084 15.084 0 0 1 3.957-.455m293.626 13.85c-1.24 0-2.83.578-6.631 2.168-3.802 1.59-9.72 4.24-19.11 8.514l-20.875 9.502-2.928 4.87a221.117 221.117 0 0 0-1.94 3.284c-.247.427-.446.775-.585 1.03-.07.127-.123.228-.168.32a1.743 1.743 0 0 0-.068.154c-.014.034-.03.069-.05.168-.012.05-.029.113-.024.252.001.035.011.123.011.123l.041.168.106.219.211.236c.163.133.179.118.213.135l.08.037c.047.02.094.036.148.057.11.04.248.092.422.154.348.123.829.29 1.4.484a572.226 572.226 0 0 0 8.35 2.765c.58.188 1.071.344 1.432.456a23.731 23.731 0 0 0 .598.176c.048.012.023.029.246.042.266.017.192-.005.23-.01l.123-.017a26.2 26.2 0 0 0 .371-.059c.311-.05.752-.125 1.313-.222 1.12-.194 2.718-.475 4.673-.822 3.91-.695 9.256-1.658 15.094-2.718 8.051-1.461 13.379-2.45 16.738-3.119 1.68-.334 2.865-.585 3.668-.781.402-.098.707-.18.952-.262.122-.04.228-.078.343-.132.116-.055.243-.068.473-.368 1.137-1.481 1.357-3.84 1.274-6.91-.084-3.07-.606-6.821-1.551-10.793-.64-2.684-1.29-4.806-1.946-6.32-.327-.757-.65-1.362-1.025-1.842-.376-.48-.862-.94-1.61-.94zm-293.37 0c-.747 0-1.231.46-1.607.94-.376.479-.7 1.084-1.027 1.841-.656 1.515-1.305 3.636-1.944 6.32-.945 3.972-1.467 7.723-1.55 10.793-.084 3.07.135 5.429 1.27 6.91.228.297.357.311.472.366.115.054.22.094.341.135.243.08.543.161.94.26.794.194 1.964.446 3.62.778 3.31.664 8.559 1.646 16.478 3.094a5280.66 5280.66 0 0 0 14.92 2.71c1.943.348 3.535.634 4.662.832a218.717 218.717 0 0 0 1.71.292c.096.015.075.023.263.034.339.019.356-.026.497-.057.142-.03.305-.071.5-.123.39-.104.903-.251 1.508-.434 1.212-.364 2.8-.867 4.48-1.425a881.827 881.827 0 0 0 4.325-1.448c.56-.19 1.018-.345 1.34-.457a20.086 20.086 0 0 0 .502-.178l.062-.025.055-.025.058-.032c.027-.015.137-.093.137-.093l.211-.236.106-.22.04-.167s.011-.089.012-.123c.005-.14-.012-.202-.023-.252-.022-.1-.04-.133-.053-.168a1.825 1.825 0 0 0-.068-.154 8.078 8.078 0 0 0-.168-.323c-.14-.255-.337-.603-.584-1.03-.494-.857-1.182-2.02-1.947-3.294l-2.936-4.883-20.867-9.488c-9.389-4.269-15.307-6.915-19.108-8.504-3.8-1.588-5.387-2.166-6.627-2.166m146.622 17.754c-3.169.016-6.17 1.763-7.836 4.77-.72 1.298-.904 2.116-.904 4.14 0 2.028.184 2.841.91 4.15 2.214 3.999 6.826 5.742 11.062 4.157 3.377-1.264 5.77-4.706 5.77-8.307 0-3.621-2.4-7.04-5.823-8.332a8.867 8.867 0 0 0-3.18-.578m134.468 45.761 2.432.67c7.963 2.2 13.341 7.05 15.64 13.991 2.814 8.494.891 18.117-4.626 23.751-2.991 3.055-6.355 4.975-11.065 6.286l-2.38.662-133.48.035c-36.743.01-70.316-.007-94.806-.04a16012.67 16012.67 0 0 1-29.182-.063c-3.481-.013-6.21-.026-8.093-.04a511.42 511.42 0 0 1-2.176-.02 47.873 47.873 0 0 1-.582-.013c-.134-.004-.323-.028-.133 0-8.961-1.32-15.886-6.806-18.408-14.451-1.76-5.336-1.76-10.842 0-16.177 2.303-6.981 7.969-11.947 16.178-14.048l2.127-.543h134.283zM513.6 188.342c-65.493 0-98.489 0-115.328.066-8.42.033-12.796.084-15.198.158-1.2.038-1.908.079-2.404.135a5.428 5.428 0 0 0-1.041.21c-2.422.749-4.156 2.012-5.07 3.868-.292.593-.504 1.153-.61 1.834-.106.681-.123 1.458-.123 2.666 0 1.204.017 1.98.122 2.66.104.68.315 1.24.603 1.825.89 1.806 2.432 2.976 4.814 3.788l1.909.651 132.232.006c65.545.003 98.562.005 115.412-.06 8.425-.033 12.804-.082 15.207-.156 1.201-.038 1.909-.08 2.404-.135a5.426 5.426 0 0 0 1.042-.211l.705-.219v-.127c2.006-.767 3.555-1.877 4.365-3.522.292-.592.503-1.152.609-1.834.106-.68.124-1.457.124-2.666 0-1.208-.018-1.984-.124-2.666-.106-.68-.317-1.24-.61-1.834-.913-1.856-2.648-3.119-5.07-3.867a5.428 5.428 0 0 0-1.04-.21c-.496-.056-1.204-.098-2.405-.135-2.402-.075-6.78-.125-15.2-.158-16.838-.067-49.832-.067-115.325-.067m179.629 57.379-3.086.884c-1.976.568-3.536.874-6.936 1.053-3.4.179-8.594.215-17.629.215h-18.07l.086 9.996c.037 4.358.057 6.6.143 7.896.042.649.095 1.068.222 1.458.128.389.393.725.557.888.325.325.766.735 1.438.977.671.242 1.504.357 2.892.441 2.776.167 7.825.168 17.916.172 7.262.003 12.031-.015 15.059-.065a86.315 86.315 0 0 0 3.34-.099c.375-.022.667-.046.907-.078.24-.031.382-.02.71-.185.745-.377 1.202-.959 1.601-1.64.149-.252.314-.587.414-1 .101-.412.157-.896.2-1.613.084-1.433.109-3.831.146-8.386zm-359.258 0 .09 10.914c.037 4.555.062 6.953.146 8.386.043.717.099 1.2.2 1.614.1.412.265.747.413 1 .4.68.855 1.261 1.6 1.638.352.178.375.122.502.14.127.016.268.03.438.042.339.025.787.047 1.34.068 1.104.042 2.623.078 4.425.108 3.604.059 8.338.09 13.094.097a970.19 970.19 0 0 0 13.222-.06c1.845-.024 3.417-.055 4.585-.094l2.586-.172c.634-.042 1.475-.01 2.242-.777.648-.649.672-1.634.672-1.634l.08-9.09.086-10.028h-18.073c-9.034 0-14.23-.036-17.629-.215-3.4-.179-4.96-.483-6.935-1.05z" class="inline" style="paint-order:markers fill stroke" transform="translate(-292.403 27.903)"/></svg>
@@ -0,0 +1,20 @@
1
+ <script setup lang="ts">
2
+ const props = defineProps({
3
+ badge: {
4
+ type: String,
5
+ required: true,
6
+ default: '',
7
+ },
8
+ class: {
9
+ type: String,
10
+ required: true,
11
+ default: 'bg-gray',
12
+ },
13
+ })
14
+ </script>
15
+
16
+ <template>
17
+ <div class="px-1.5 py-px text-white text-xs" :class="props.class">
18
+ {{ props.badge }}
19
+ </div>
20
+ </template>
@@ -0,0 +1,23 @@
1
+ <script setup lang="ts">
2
+ import type { PropType } from 'vue'
3
+ import Badge from "./Badge.vue"
4
+ const props = defineProps({
5
+ badges: {
6
+ type: Array as PropType<String[]>,
7
+ required: false,
8
+ default() {
9
+ return []
10
+ },
11
+ },
12
+ })
13
+ </script>
14
+
15
+ <template>
16
+ <div v-if="(props.badges && props.badges.length > 0)" class="absolute z-2">
17
+ <Badge
18
+ v-for="(badge, index) in props.badges" :key="index"
19
+ :badge="badge"
20
+ :class="(badge.toLocaleLowerCase().includes('gti') ? 'bg-red-600' : '') || (badge.toLocaleLowerCase().includes('motorsport') ? 'bg-blue-600' : '')"
21
+ />
22
+ </div>
23
+ </template>
@@ -0,0 +1,111 @@
1
+ <script setup lang="ts">
2
+
3
+ export interface Breadcrumb {
4
+ name: string,
5
+ path: string
6
+ }
7
+
8
+ import type { PropType } from 'vue'
9
+
10
+ const props = defineProps({
11
+ showBack: {
12
+ type: Boolean,
13
+ required: false,
14
+ },
15
+ textBack: {
16
+ type: String,
17
+ required: false,
18
+ default: 'Back'
19
+ },
20
+ showHome: {
21
+ type: Boolean,
22
+ required: false,
23
+ },
24
+ breadcrumbs: {
25
+ type: Object as PropType<Breadcrumb[]>,
26
+ required: true
27
+ },
28
+ locale: {
29
+ type: String,
30
+ required: false,
31
+ default: 'en'
32
+ },
33
+ productNumber: {
34
+ type: String,
35
+ required: false,
36
+ default: null
37
+ }
38
+
39
+ })
40
+
41
+ const isLast = (index: Number) => {
42
+ return index === props.breadcrumbs.length - 1
43
+ }
44
+ </script>
45
+
46
+ <template>
47
+ <nav>
48
+ <ul class="breadcrumbs flex items-center p-0 leading-none ">
49
+ <li v-if="props.showBack" class="breadcrumb-item flex">
50
+ <button class="breadcrumb-link flex items-center px-0 py-2 sm:py-1 hover:text-lightBlue-500 whitespace-nowrap px-3 my-auto"
51
+ :title="props.textBack" onclick="history.back()"
52
+ i-bx-bx-arrow-back />
53
+ </li>
54
+ </ul>
55
+ <ul class="breadcrumbs flex items-center p-0 overflow-x-auto overflow-y-hidden sm:mr-12 leading-none " itemscope
56
+ itemtype="https://schema.org/BreadcrumbList">
57
+ <li v-if="props.showHome" class="breadcrumb-item flex">
58
+ <a href="/" class="breadcrumb-link flex items-center px-0 py-2 sm:py-1 hover:text-lightBlue-400 whitespace-nowrap translate-y-0 text-sm my-auto px-3"
59
+ title="t('button.home')" itemprop="item" i-carbon-home>
60
+ </a>
61
+ <meta itemprop="position" content="1">
62
+ </li>
63
+ <li v-for="(crumb, index) in breadcrumbs" :key="index" class="breadcrumb-item flex" itemprop="itemListElement"
64
+ itemscope itemtype="https://schema.org/ListItem">
65
+ <a v-if="!isLast(index)" :href="crumb.path" class="breadcrumb-link whitespace-nowrap py-2 sm:py-1 px-1" itemprop="item" :title="`Polo 6R ${crumb.name}`">
66
+ <strong class="font-normal" itemprop="name">{{ crumb.name }}</strong>
67
+ </a>
68
+ <a v-else :href="crumb.path"
69
+ class="breadcrumb-link breadcrumb-link--disabled whitespace-nowrap pointer-events-none py-2 sm:py-1 px-1" :title="`Polo 6R ${crumb.name} ${productNumber}`">
70
+ <strong class="font-normal" itemprop="name" v-html="crumb.name" /> <b>{{ productNumber }}</b>
71
+ </a>
72
+ <meta itemprop="position" :content="String(props.showHome ? index + 2 : index + 1)">
73
+ </li>
74
+ </ul>
75
+ </nav>
76
+ </template>
77
+
78
+ <style lang="scss" scoped>
79
+ .breadcrumbs {
80
+ list-style: none;
81
+ font-size: 0.875rem;
82
+ }
83
+
84
+ .breadcrumb-item {
85
+
86
+ &+.breadcrumb-item:before {
87
+ @apply py-2 sm:py-1 px-1;
88
+ display: inline-block;
89
+ padding-right: .5rem;
90
+ color: #bdbdbd;
91
+ content: "/";
92
+ }
93
+
94
+ b {
95
+ @apply hidden sm:inline font-normal;
96
+ }
97
+ }
98
+
99
+ .breadcrumb-link {
100
+ border: 0;
101
+ cursor: pointer;
102
+
103
+ &--disabled {
104
+ cursor: default;
105
+
106
+ &:hover {
107
+ color: inherit;
108
+ }
109
+ }
110
+ }
111
+ </style>
@@ -0,0 +1,12 @@
1
+ ---
2
+ const { class: className } = Astro.props
3
+ ---
4
+
5
+ <div class="bg-vw h-11 flex items-center font-headlight justify-between px-4" class:list={[className]}>
6
+ <slot name="left-item"/>
7
+ <slot name="middle-item"/>
8
+ <slot name="right-item"/>
9
+ </div>
10
+
11
+
12
+
@@ -0,0 +1,65 @@
1
+ <template>
2
+ <div class="relative" title="FUCK PUTIN! FUCK RUZZIA!">
3
+ <div i-mdi:tank class="inline-block bg-ukraine mr-1 mt-0.5" />
4
+ <div i-mdi:tank class="inline-block bg-ukraine mr-1 mt-0.5" />
5
+ <div i-mdi:tank class="inline-block bg-ukraine mr-5 mt-0.5" />
6
+ <div class="relative">
7
+ <div class="inline-block absolute" i-noto-v1:flag-for-flag-russia />
8
+ <div i-emojione:fire class="inline-block absolute -mt-1 animate-ping animate-pulseR" />
9
+ </div>
10
+ <div class="absolute left-0 animate-bull animate-bull--1 -mt-1">
11
+ <div i-mdi:bullet class="rotate-90 inline-block bg-yellow " />
12
+ </div>
13
+ <div class="absolute left-0 animate-bull animate-bull animate-bull--2 -mt-1">
14
+ <div i-mdi:bullet class="rotate-90 inline-block bg-yellow " />
15
+ </div>
16
+ <div class="absolute left-0 animate-bull animate-bull--3 -mt-1">
17
+ <div i-mdi:bullet class="rotate-90 inline-block bg-yellow " />
18
+ </div>
19
+ </div>
20
+ </template>
21
+
22
+ <style lang="scss">
23
+ .bg-ukraine {
24
+ background: linear-gradient(180deg, #0066cc 56%, rgba(255,204,0,1) 44%);
25
+ }
26
+
27
+ .animate-bull {
28
+ top: -2px;
29
+ // @apply rotate-90;
30
+
31
+ animation-iteration-count: infinite;
32
+
33
+ &--1 {
34
+ animation-duration: 2s;
35
+ animation-name: AnimateBull1;
36
+ }
37
+
38
+ &--2 {
39
+ animation-duration: 1.332s;
40
+ animation-name: AnimateBull2;
41
+ animation-delay: 1s;
42
+ }
43
+
44
+ &--3 {
45
+ animation-duration: 0.666s;
46
+ animation-name: AnimateBull3;
47
+ animation-delay: 2s;
48
+ }
49
+ }
50
+
51
+ @keyframes AnimateBull1 {
52
+ 0% {transform: translate(14px,0px);}
53
+ 100% {transform: translate(86px,0px);}
54
+ }
55
+
56
+ @keyframes AnimateBull2 {
57
+ 0% {transform: translate(38px,0px);}
58
+ 100% {transform: translate(80px,0px);}
59
+ }
60
+
61
+ @keyframes AnimateBull3 {
62
+ 0% {transform: translate(62px,0px);}
63
+ 100% {transform: translate(88px,0px);}
64
+ }
65
+ </style>
@@ -0,0 +1,31 @@
1
+ ---
2
+
3
+ const { class: className, handDrive, biggerText } = Astro.props;
4
+ // import { t, locale} from "i18next";
5
+ import { t } from "i18next";
6
+ import { Image } from 'astro:assets';
7
+ import handDriveImage from "../assets/hand-drive.svg";
8
+
9
+ const getHandDriveName = (value: number) => {
10
+ if (value === 1)
11
+ return 'lhd'
12
+
13
+ else
14
+ return 'rhd'
15
+ }
16
+
17
+ const handDriveName = getHandDriveName(handDrive)
18
+ ---
19
+ <div title={handDriveName.toUpperCase()} class="flex items-center" class:list={className}>
20
+ <Image src={handDriveImage} alt="infoObject.product.hand_drive" width={48} height={34} class={handDriveName} />
21
+ <div data-pagefind-filter={`${t('part.sw-position')}:${handDriveName.toUpperCase()}`}
22
+ class={`sm:ml-2 order-0 ${!biggerText ? 'text-xxs md:text-xs' : 'order-0'}`}
23
+ set:html={t(`part.for-${handDriveName}`)}
24
+ />
25
+ </div>
26
+
27
+ <style lang="scss">
28
+ .rhd {
29
+ transform: scaleX(-1);
30
+ }
31
+ </style>
@@ -0,0 +1,40 @@
1
+ ---
2
+
3
+ ---
4
+
5
+ <!-- Global Metadata -->
6
+ <meta charset="utf-8" />
7
+ <meta name="viewport" content="width=device-width" />
8
+
9
+ <link rel="icon" type="image/svg+xml" href="/favicon.svg" />
10
+ <link rel="alternate icon" type="image/x-icon" href="/favicon.ico" />
11
+
12
+ <link rel="sitemap" href="/sitemap.xml" />
13
+
14
+ <!-- Preload Fonts -->
15
+ <link rel="preconnect" href="https://fonts.googleapis.com" />
16
+ <link rel="preconnect" href="https://fonts.gstatic.com" crossorigin />
17
+ <link href="https://fonts.googleapis.com/css2?family=IBM+Plex+Mono:ital@0;1&display=swap" rel="stylesheet" />
18
+
19
+ <!-- Scrollable a11y code helper -->
20
+ <script src="/make-scrollable-code-focusable.js" is:inline></script>
21
+
22
+ <!-- This is intentionally inlined to avoid FOUC -->
23
+ <script is:inline>
24
+ // const root = document.documentElement;
25
+ // const theme = localStorage.getItem('theme');
26
+ // if (theme === 'dark' || (!theme && window.matchMedia('(prefers-color-scheme: dark)').matches)) {
27
+ // root.classList.add('dark');
28
+ // } else {
29
+ // root.classList.remove('dark');
30
+ // }
31
+ </script>
32
+
33
+ <!-- Global site tag (gtag.js) - Google Analytics -->
34
+ <!-- <script async src="https://www.googletagmanager.com/gtag/js?id=" is:inline></script>
35
+ <script>
36
+ window.dataLayer = window.dataLayer || [];
37
+ function gtag(){dataLayer.push(arguments);}
38
+ gtag('js', new Date());
39
+ gtag('config', '');
40
+ </script> -->
@@ -0,0 +1,41 @@
1
+ ---
2
+ import { SITE, OPEN_GRAPH } from '../config';
3
+ export interface Props {
4
+ content: any;
5
+ site: any;
6
+ canonicalURL: URL | string;
7
+ }
8
+ const { content = {}, canonicalURL } = Astro.props;
9
+ const formattedContentTitle = content.title ? `${content.title} 🚀 ${SITE.title}` : SITE.title;
10
+ // const imageSrc = content?.image?.src ?? OPEN_GRAPH.image.src;
11
+ // const canonicalImageSrc = new URL(imageSrc, Astro.site);
12
+ const imageAlt = content?.image?.alt ?? OPEN_GRAPH.image.alt;
13
+ ---
14
+
15
+ <!-- Page Metadata -->
16
+ <link rel="canonical" href={canonicalURL} />
17
+
18
+ <!-- OpenGraph Tags -->
19
+ <meta property="og:title" content={formattedContentTitle} />
20
+ <meta property="og:type" content="article" />
21
+ <meta property="og:url" content={canonicalURL} />
22
+ <meta property="og:locale" content={content.ogLocale ?? SITE.defaultLanguage} />
23
+ <!-- <meta property="og:image" content={canonicalImageSrc} /> -->
24
+ <meta property="og:image:alt" content={imageAlt} />
25
+ <meta name="description" property="og:description" content={content.description ? content.description : SITE.description} />
26
+ <meta property="og:site_name" content={SITE.title} />
27
+
28
+ <!-- Twitter Tags -->
29
+ <meta name="twitter:card" content="summary_large_image" />
30
+ <meta name="twitter:site" content={OPEN_GRAPH.twitter} />
31
+ <meta name="twitter:title" content={formattedContentTitle} />
32
+ <meta name="twitter:description" content={content.description ? content.description : SITE.description} />
33
+ <!-- <meta name="twitter:image" content={canonicalImageSrc} /> -->
34
+ <meta name="twitter:image:alt" content={imageAlt} />
35
+
36
+ <!--
37
+ TODO: Add json+ld data, maybe https://schema.org/APIReference makes sense?
38
+ Docs: https://developers.google.com/search/docs/advanced/structured-data/intro-structured-data
39
+ https://www.npmjs.com/package/schema-dts seems like a great resource for implementing this.
40
+ Even better, there's a React component that integrates with `schema-dts`: https://github.com/google/react-schemaorg
41
+ -->
@@ -0,0 +1,27 @@
1
+ ---
2
+ const { size } = Astro.props;
3
+ ---
4
+
5
+ <svg class="logo" width={size} height={size} viewBox="0 0 256 256" fill="none" xmlns="http://www.w3.org/2000/svg">
6
+ <style>
7
+ #flame {
8
+ fill: var(--theme-text-accent);
9
+ }
10
+ #a {
11
+ fill: var(--theme-text-accent);
12
+ }
13
+ </style>
14
+ <title>Logo</title>
15
+ <path
16
+ id="a"
17
+ fill-rule="evenodd"
18
+ clip-rule="evenodd"
19
+ d="M163.008 18.929c1.944 2.413 2.935 5.67 4.917 12.181l43.309 142.27a180.277 180.277 0 00-51.778-17.53l-28.198-95.29a3.67 3.67 0 00-7.042.01l-27.857 95.232a180.225 180.225 0 00-52.01 17.557l43.52-142.281c1.99-6.502 2.983-9.752 4.927-12.16a15.999 15.999 0 016.484-4.798c2.872-1.154 6.271-1.154 13.07-1.154h31.085c6.807 0 10.211 0 13.086 1.157a16.004 16.004 0 016.487 4.806z"
20
+ ></path>
21
+ <path
22
+ id="flame"
23
+ fill-rule="evenodd"
24
+ clip-rule="evenodd"
25
+ d="M168.19 180.151c-7.139 6.105-21.39 10.268-37.804 10.268-20.147 0-37.033-6.272-41.513-14.707-1.602 4.835-1.961 10.367-1.961 13.902 0 0-1.056 17.355 11.015 29.426 0-6.268 5.081-11.349 11.349-11.349 10.743 0 10.731 9.373 10.721 16.977v.679c0 11.542 7.054 21.436 17.086 25.606a23.27 23.27 0 01-2.339-10.2c0-11.008 6.463-15.107 13.974-19.87 5.976-3.79 12.616-8.001 17.192-16.449a31.024 31.024 0 003.743-14.82c0-3.299-.513-6.479-1.463-9.463z"
26
+ ></path>
27
+ </svg>
@@ -0,0 +1,48 @@
1
+ ---
2
+ import { SITE } from '../../config';
3
+ import SkipToContent from './SkipToContent.astro';
4
+
5
+ const { currentPage } = Astro.props;
6
+ ---
7
+
8
+ <header class="p-3 bg-slate-100 bg-opacity-80 backdrop-blur-md border-b text-slate-900">
9
+ <SkipToContent />
10
+ <nav title="Top Navigation" class="max-w-7xl mx-auto flex justify-between items-center px-4">
11
+ <div>
12
+ <a class="text-lg font-medium" href="/">
13
+ <h1>
14
+ {SITE.title ?? "Documentation"}
15
+ </h1>
16
+ </a>
17
+ </div>
18
+ <div class="flex gap-2">
19
+
20
+ <!-- <button onclick="toggleDarkMode()">theme</button> -->
21
+ { SITE.twitter &&
22
+ (<a title="Twitter" class="opacity-90 hover:opacity-100 hover:bg-blue-100 p-2 rounded-full transition-colors" href={'https://twitter.com/'+SITE.twitter}>
23
+ <img class="h-7" src="/twitter.svg" alt="twitter logo">
24
+ </a>)
25
+ }
26
+ {
27
+ SITE.github &&
28
+ (<a title="Github" class="opacity-80 hover:opacity-100 hover:bg-slate-200 p-2 rounded-full transition-colors" href={'https://github.com/'+SITE.github}>
29
+ <img class="h-7" src="/github.svg" alt="github logo">
30
+ </a>)
31
+ }
32
+ {
33
+ SITE.linkedin &&
34
+ (<a title="linkedin" class="opacity-80 hover:opacity-100 hover:bg-blue-50 p-2 rounded-full transition-colors" href={'https://linkedin.com/in/'+SITE.linkedin}>
35
+ <img class="h-7" src="/linkedin.svg" alt="linkedin logo">
36
+ </a>)
37
+ }
38
+ </div>
39
+ </nav>
40
+ </header>
41
+
42
+ <script is:inline>
43
+ // function toggleDarkMode() {
44
+ // const body = document.body;
45
+ // body.classList.toggle('dark');
46
+ // console.log('dark mode toggled');
47
+ // }
48
+ </script>
@@ -0,0 +1 @@
1
+ <a href="#article" class="sr-only focus:not-sr-only skiplink"><span>Skip to Content</span></a>
@@ -0,0 +1,31 @@
1
+ <template>
2
+ <div class="relative bg-vw md:min-h-md">
3
+ <div class="max-w-7xl mx-auto">
4
+ <div
5
+ class=" pb-8 sm:pb-16 md:pb-20 lg:w-full lg:pb-28 xl:pb-32"
6
+ >
7
+ <header
8
+ class="mx-auto max-w-7xl px-4 sm:pt-12 sm:px-6 md:pt-16 lg:pt-20 lg:px-8 xl:pt-28"
9
+ >
10
+ <div class="text-center">
11
+ <h1
12
+ class="text-2xl pt-6 sm:pt-0 sm:text-5xl md:text-6xl tracking-tight font-headlight text-white"
13
+ >
14
+ <slot name="intro" />
15
+ <!-- <span v-html="t('home.intro')"></span> -->
16
+ <!-- <small class="block text-2xl">aaa</small> -->
17
+ </h1>
18
+ <slot name="subtitle" />
19
+ <div
20
+ class="mt-5 sm:mt-8 sm:flex sm:justify-center"
21
+ >
22
+ <div>
23
+ <slot name="cta" />
24
+ </div>
25
+ </div>
26
+ </div>
27
+ </header>
28
+ </div>
29
+ </div>
30
+ </div>
31
+ </template>
@@ -0,0 +1,44 @@
1
+ ---
2
+ import { SIDEBAR } from '../config';
3
+ const { currentPage } = Astro.props;
4
+ const currentPageMatch = currentPage.slice(1);
5
+
6
+ const isCurrentPage = (item) => {
7
+ if (item.link) {
8
+ return item.link.includes(currentPageMatch);
9
+ }
10
+ return false;
11
+ };
12
+
13
+ const getLinkClasses = (link) => {
14
+ const baseClasses = "block py-2 px-6 my-1 transition-colors border-l hover:border-slate-400 text-slate-500 hover:text-slate-900"
15
+
16
+ if (isCurrentPage(link)) {
17
+ return baseClasses + " border-slate-500 text-slate-900";
18
+ } else {
19
+ return baseClasses;
20
+ }
21
+ }
22
+ ---
23
+ <aside title="Site Navigation">
24
+ <!-- <Debug content={navigation} /> -->
25
+ <nav aria-labelledby="grid-left" class="w-64 p-4 border-r">
26
+ <ul>
27
+ {SIDEBAR.map(item => (item.header ?
28
+ <h2 class="mt-4 font-semibold text-slate-700">{item.text}</h2> :
29
+ <li class={getLinkClasses(item)}>
30
+ <a href={item.link}>{item.text}</a>
31
+ </li>))}
32
+ </ul>
33
+ </nav>
34
+ </aside>
35
+
36
+ <script is:inline>
37
+ window.addEventListener('DOMContentLoaded', (event) => {
38
+ var target = document.querySelector('[aria-current="page"]');
39
+ if (target && target.offsetTop > window.innerHeight - 100) {
40
+ document.querySelector('.nav-groups').scrollTop = target.offsetTop;
41
+ }
42
+ });
43
+ </script>
44
+
@@ -0,0 +1,26 @@
1
+ <script setup lang="ts">
2
+ import { defineProps } from "vue";
3
+
4
+ const props = defineProps<{
5
+ primary?: boolean;
6
+ secondary?: boolean;
7
+ text?: boolean;
8
+ }>();
9
+
10
+ const classes = {
11
+ "text-white bg-blue-500 hover:bg-opacity-80": props.primary,
12
+ "text-blue-600 border-blue-500 border": props.secondary,
13
+ "text-blue-500 hover:bg-opacity-80 shadow-md": props.text,
14
+ };
15
+ </script>
16
+
17
+ <style scoped></style>
18
+
19
+ <template>
20
+ <button
21
+ class="px-4 py-2 rounded-md transition-all shadow-sm hover:bg-opacity-80 font-medium"
22
+ :class="classes"
23
+ >
24
+ <slot></slot>
25
+ </button>
26
+ </template>
@@ -0,0 +1,29 @@
1
+ <template>
2
+ <div class="flex flex-col space-y-12">
3
+ <div v-for="name in colorNames" :key="name">
4
+ <h3 class="capitalize">{{ name }}</h3>
5
+ <div class="grid grid-cols-5 md:grid-cols-10">
6
+ <div v-for="color in COLORS[name]" :key="color">
7
+ <div
8
+ class="h-12 transition-all"
9
+ :style="`background: ${color.value}`"
10
+ ></div>
11
+ <div
12
+ class="text-sm flex flex-col text-center font-mono text-slate-500"
13
+ >
14
+ <span>{{ color.name }}</span>
15
+ <span class="uppercase text-xs">{{ color.value }}</span>
16
+ </div>
17
+ </div>
18
+ </div>
19
+ </div>
20
+ </div>
21
+ </template>
22
+
23
+ <script setup lang="ts">
24
+ import { COLORS } from "../design.config";
25
+
26
+ const colorNames = Object.keys(COLORS);
27
+ </script>
28
+
29
+ <style scoped></style>