@m11g/library 0.0.2 → 0.0.3

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (69) hide show
  1. package/dist/dist-C8cpIyO1.js +3039 -0
  2. package/dist/library.css +2 -0
  3. package/dist/library.js +4057 -0
  4. package/dist/library.umd.cjs +3 -0
  5. package/package.json +13 -1
  6. package/.editorconfig +0 -8
  7. package/.gitattributes +0 -1
  8. package/.oxfmtrc.json +0 -5
  9. package/.oxlintrc.json +0 -10
  10. package/.stylelintrc +0 -33
  11. package/.vscode/extensions.json +0 -8
  12. package/env.d.ts +0 -1
  13. package/eslint.config.ts +0 -35
  14. package/index.html +0 -13
  15. package/postcss.config.ts +0 -23
  16. package/src/App.vue +0 -28
  17. package/src/assets/css/base.css +0 -2
  18. package/src/assets/css/elements/_base.css +0 -5
  19. package/src/assets/css/elements/buttons.css +0 -23
  20. package/src/assets/css/elements/form.css +0 -75
  21. package/src/assets/css/elements/scaffolding.css +0 -62
  22. package/src/assets/css/elements/transition.css +0 -4
  23. package/src/assets/css/elements/typography.css +0 -80
  24. package/src/assets/css/media-queries/media-queries.css +0 -3
  25. package/src/assets/css/mixins/list-reset.css +0 -5
  26. package/src/assets/css/variables/_base.css +0 -7
  27. package/src/assets/css/variables/chakra.css +0 -160
  28. package/src/assets/css/variables/colors.css +0 -205
  29. package/src/assets/css/variables/grid.css +0 -6
  30. package/src/assets/css/variables/spacings.css +0 -10
  31. package/src/assets/css/variables/transitions.css +0 -10
  32. package/src/assets/css/variables/typography.css +0 -17
  33. package/src/components/AppBreadcrumb.vue +0 -63
  34. package/src/components/AppButton.vue +0 -105
  35. package/src/components/AppCarousel.vue +0 -145
  36. package/src/components/AppDialog.vue +0 -126
  37. package/src/components/AppNotification.vue +0 -68
  38. package/src/components/AppPagination.vue +0 -127
  39. package/src/components/AppPopover.vue +0 -57
  40. package/src/components/AppTabs.vue +0 -176
  41. package/src/components/CenterWrapper.vue +0 -50
  42. package/src/components/ClickableWrapper.vue +0 -48
  43. package/src/components/Forms/AppForm.vue +0 -61
  44. package/src/components/Forms/FormErrorMessage.vue +0 -17
  45. package/src/components/Forms/FormField.vue +0 -30
  46. package/src/components/Forms/FormFieldset.vue +0 -28
  47. package/src/components/Forms/RadioGroup.vue +0 -85
  48. package/src/components/Forms/SearchField.vue +0 -38
  49. package/src/components/Forms/SelectField.vue +0 -125
  50. package/src/components/Forms/TextField.vue +0 -41
  51. package/src/components/Forms/TextareaField.vue +0 -32
  52. package/src/components/ScrollSpy.vue +0 -111
  53. package/src/components/SummaryDetails.vue +0 -83
  54. package/src/composables/useTheme.ts +0 -20
  55. package/src/index.ts +0 -47
  56. package/src/main.ts +0 -10
  57. package/src/router/index.ts +0 -26
  58. package/src/types/Theme.ts +0 -11
  59. package/src/views/CarouselView.vue +0 -27
  60. package/src/views/FormView.vue +0 -111
  61. package/src/views/HomeView.vue +0 -100
  62. package/src/views/ScrollSpyView.vue +0 -58
  63. package/theme-dark +0 -117
  64. package/theme-light +0 -191
  65. package/tsconfig.app.json +0 -18
  66. package/tsconfig.json +0 -11
  67. package/tsconfig.node.json +0 -28
  68. package/vite.config.ts +0 -26
  69. /package/{public → dist}/favicon.ico +0 -0
@@ -1,32 +0,0 @@
1
- <script lang="ts" setup>
2
- import { useField } from "vee-validate";
3
- import { toRefs, useId } from "vue";
4
- import FormField from "./FormField.vue";
5
-
6
- const props = defineProps<{
7
- title: string;
8
- name: string;
9
- placeholder?: string;
10
- }>();
11
-
12
- const id = useId();
13
- const { name } = toRefs(props);
14
-
15
- // we don't provide any rules here because we are using form-level validation
16
- // https://vee-validate.logaretm.com/v4/guide/validation#form-level-validation
17
- const { value, handleBlur, handleChange, errorMessage } = useField<string>(name, undefined, {
18
- validateOnValueUpdate: false,
19
- });
20
-
21
- const validationListeners = {
22
- blur: (event: InputEvent) => handleBlur(event, true),
23
- change: handleChange,
24
- input: (event: InputEvent) => handleChange(event, !!errorMessage.value),
25
- };
26
- </script>
27
-
28
- <template>
29
- <form-field :id :title :name :error-message>
30
- <textarea :id :value :name :placeholder v-on="validationListeners" />
31
- </form-field>
32
- </template>
@@ -1,111 +0,0 @@
1
- <script lang="ts" setup>
2
- import useTheme from "@/composables/useTheme";
3
- import { computed, useId } from "vue";
4
-
5
- defineProps<{
6
- pages: {
7
- id: string;
8
- title: string;
9
- }[];
10
- }>();
11
-
12
- const id = useId();
13
-
14
- const anchor = computed(() => {
15
- return `--${id}`;
16
- });
17
-
18
- const { colors} = useTheme()
19
- </script>
20
-
21
- <template>
22
- <div class="content">
23
- <div>
24
- <section v-for="page in pages" :key="page.title">
25
- <span :id="page.id" />
26
- <h2>{{ page.title }}</h2>
27
- <slot :name="page.id" />
28
- </section>
29
- </div>
30
- <nav>
31
- <ol>
32
- <li v-for="item in pages" :id="`link-${item.title}`" :key="item.title">
33
- <a :href="`#${item.id}`">
34
- {{ item.title }}
35
- </a>
36
- </li>
37
- </ol>
38
- </nav>
39
- </div>
40
- </template>
41
-
42
- <style lang="css" scoped>
43
- .content {
44
- position: relative;
45
- display: grid;
46
- gap: var(--gutter);
47
- align-items: start;
48
-
49
- @media (--md) {
50
- grid-template-columns: auto 12rem;
51
- }
52
- }
53
-
54
- span {
55
- display: block;
56
- translate: 0 calc(var(--spacing-4) * -1);
57
- }
58
-
59
- nav {
60
- position: sticky;
61
- inset-block-start: var(--spacing-4);
62
- display: none;
63
- order: -1;
64
- background: var(--color-bg-panel);
65
- scroll-target-group: auto;
66
-
67
- @media (--md) {
68
- display: block;
69
- order: 1;
70
- }
71
- }
72
-
73
- ol {
74
- padding: 0;
75
- margin: 0;
76
- list-style: none outside;
77
-
78
- &::before {
79
- position: absolute;
80
- inset-block-start: anchor(top);
81
- inset-inline-start: 0;
82
- display: block;
83
- inline-size: 0.25em;
84
- /* stylelint-disable-next-line declaration-property-value-no-unknown */
85
- block-size: anchor-size(block);
86
- position-anchor: v-bind(anchor);
87
- content: "";
88
- background: v-bind(colors.solid);
89
- transition:
90
- top var(--transition),
91
- height var(--transition);
92
- }
93
- }
94
-
95
- a {
96
- display: block;
97
- padding-block: var(--spacing-1);
98
- padding-inline-start: var(--spacing-3);
99
- text-decoration: none;
100
- border-inline-start: 0.25em solid v-bind(colors.subtle);
101
-
102
- &:target-current {
103
- anchor-name: v-bind(anchor);
104
- color: v-bind(colors.solid);
105
- }
106
-
107
- &:hover {
108
- border-color: v-bind(colors.solid);
109
- }
110
- }
111
- </style>
@@ -1,83 +0,0 @@
1
- <script lang="ts" setup>
2
- defineProps<{
3
- title: string;
4
- /**
5
- * The **`open`** property of the HTMLDetailsElement interface is a boolean value reflecting the open HTML attribute, indicating whether the <details>'s contents (not counting the <summary>) is to be shown to the user.
6
- *
7
- * [MDN Reference](https://developer.mozilla.org/docs/Web/API/HTMLDetailsElement/open)
8
- */
9
- open?: boolean;
10
- /**
11
- * The **`name`** property of the HTMLDetailsElement interface reflects the name attribute of <details> elements. It enables multiple <details> elements to be connected together, where only one for the <details> elements can be open at once. This allows developers to easily create UI features such as accordions without scripting.
12
- *
13
- * [MDN Reference](https://developer.mozilla.org/docs/Web/API/HTMLDetailsElement/name)
14
- */
15
- name?: string;
16
- }>();
17
- </script>
18
-
19
- <template>
20
- <details :open :name>
21
- <summary>{{ title }}</summary>
22
- <slot />
23
- </details>
24
- </template>
25
-
26
- <style lang="css">
27
- details {
28
- cursor: pointer;
29
- border-block-end: 2px solid var(--color-black);
30
-
31
- &:first-of-type {
32
- border-block-start: 2px solid var(--color-black);
33
- }
34
-
35
- &::details-content {
36
- block-size: 0;
37
- overflow: clip;
38
- border-block-start: 1px solid var(--color-black);
39
- opacity: 0;
40
- transition:
41
- padding var(--transition),
42
- opacity var(--transition),
43
- height var(--transition),
44
- content-visibility var(--transition) allow-discrete;
45
- }
46
-
47
- &[open]::details-content {
48
- block-size: max-content;
49
- padding-block: var(--spacing-2) var(--spacing-4);
50
- opacity: 1;
51
- }
52
-
53
- ::marker {
54
- inline-size: 2em;
55
- block-size: 1em;
56
- aspect-ratio: 1;
57
- content: "";
58
- background-color: var(--color-black);
59
-
60
- /* border-shape:
61
- shape(
62
- from 96.34% 44.96%,
63
- curve by 0% 10.11% with 4.88% 2.79% / 4.88% 7.32%,
64
- line by -74.99% 42.84%,
65
- curve by -17.69% 0% with -4.88% 2.79% / -12.81% 2.79%,
66
- smooth by 0% -10.11% with -4.88% -7.32%,
67
- line to 69.82% 50%,
68
- line to 3.7% 12.2%,
69
- curve by 0% -10.11% with -4.88% -2.79%/-4.88% -7.32%,
70
- smooth by 17.69% 0% with 12.81% -2.79%,
71
- line by 74.99% 42.84%,
72
- close
73
- ); */
74
- }
75
- }
76
-
77
- summary {
78
- padding-block: var(--spacing-2);
79
-
80
- /* display: flex; */
81
- }
82
-
83
- </style>
@@ -1,20 +0,0 @@
1
- import type { Theme } from '@/types/Theme';
2
- import { ref } from 'vue';
3
-
4
- export default (theme: Theme = 'primary') => {
5
-
6
- const colors = ref({
7
- emphasized: `var(--color-${theme}-emphasized)`,
8
- contrast: `var(--color-${theme}-contrast)`,
9
- fg: `var(--color-${theme}-fg)`,
10
- subtle: `var(--color-${theme}-subtle)`,
11
- muted: `var(--color-${theme}-muted)`,
12
- solid: `var(--color-${theme}-solid)`,
13
- focusRing: `var(--color-${theme}-focus-ring)`,
14
- border: `var(--color-${theme}-border)`,
15
- })
16
-
17
- return {
18
- colors
19
- }
20
- }
package/src/index.ts DELETED
@@ -1,47 +0,0 @@
1
-
2
- import AppButton from '@/components/AppButton.vue'
3
- import AppNotification from '@/components/AppNotification.vue'
4
- import AppTabs from '@/components/AppTabs.vue'
5
- import AppCarousel from '@/components/AppCarousel.vue'
6
- // import AppPagination from '@/components/AppPagination.vue'
7
- import CenterWrapper from '@/components/CenterWrapper.vue'
8
- import ScrollSpy from '@/components/ScrollSpy.vue'
9
- import AppBreadcrumb from '@/components/AppBreadcrumb.vue'
10
- import AppDialog from '@/components/AppDialog.vue'
11
- import AppPopover from '@/components/AppPopover.vue'
12
- import ClickableWrapper from '@/components/ClickableWrapper.vue'
13
- import SummaryDetails from '@/components/SummaryDetails.vue'
14
- import AppForm from '@/components/Forms/AppForm.vue';
15
- import FormField from '@/components/Forms/FormField.vue';
16
- import RadioGroup from '@/components/Forms/RadioGroup.vue';
17
- import SelectField from '@/components/Forms/SelectField.vue';
18
- import TextareaField from '@/components/Forms/TextareaField.vue';
19
- import FormErrorMessage from '@/components/Forms/FormErrorMessage.vue';
20
- import FormFieldset from '@/components/Forms/FormFieldset.vue';
21
- import SearchField from '@/components/Forms/SearchField.vue';
22
- import TextField from '@/components/Forms/TextField.vue';
23
-
24
- export {
25
- AppButton,
26
- AppNotification,
27
- AppTabs,
28
- AppCarousel,
29
- // AppPagination,
30
- CenterWrapper,
31
- ScrollSpy,
32
- AppBreadcrumb,
33
- AppDialog,
34
- AppPopover,
35
- ClickableWrapper,
36
- SummaryDetails,
37
-
38
- AppForm,
39
- FormField,
40
- RadioGroup,
41
- SelectField,
42
- TextareaField,
43
- FormErrorMessage,
44
- FormFieldset,
45
- SearchField,
46
- TextField,
47
- }
package/src/main.ts DELETED
@@ -1,10 +0,0 @@
1
- import { createApp } from "vue";
2
- import App from "./App.vue";
3
- import router from "./router";
4
- import "./assets/css/base.css";
5
-
6
- const app = createApp(App);
7
-
8
- app.use(router);
9
-
10
- app.mount("#app");
@@ -1,26 +0,0 @@
1
- import HomeView from "@/views/HomeView.vue";
2
- import { createRouter, createWebHistory } from "vue-router";
3
-
4
- const router = createRouter({
5
- history: createWebHistory(import.meta.env.BASE_URL),
6
- routes: [
7
- {
8
- path: "/",
9
- component: HomeView,
10
- },
11
- {
12
- path: "/scroll-spy",
13
- component: () => import("@/views/ScrollSpyView.vue"),
14
- },
15
- {
16
- path: "/form",
17
- component: () => import("@/views/FormView.vue"),
18
- },
19
- {
20
- path: "/carousel",
21
- component: () => import("@/views/CarouselView.vue"),
22
- },
23
- ],
24
- });
25
-
26
- export default router;
@@ -1,11 +0,0 @@
1
- export type Theme = 'primary' |
2
- 'gray' |
3
- 'red' |
4
- 'orange' |
5
- 'green' |
6
- 'blue' |
7
- 'yellow' |
8
- 'teal' |
9
- 'purple' |
10
- 'pink' |
11
- 'cyan'
@@ -1,27 +0,0 @@
1
- <script setup lang="ts">
2
- import AppCarousel from "@/components/AppCarousel.vue";
3
- import CenterWrapper from "@/components/CenterWrapper.vue";
4
-
5
- const entries = [
6
- "https://images.pexels.com/photos/8081419/pexels-photo-8081419.jpeg",
7
- "https://images.pexels.com/photos/20066093/pexels-photo-20066093.jpeg",
8
- "https://images.pexels.com/photos/799706/pexels-photo-799706.jpeg",
9
- ];
10
- </script>
11
-
12
- <template>
13
- <center-wrapper>
14
- <app-carousel :items="entries">
15
- <template v-for="image in entries" #[image] :key="image">
16
- <img :src="image" />
17
- </template>
18
- </app-carousel>
19
- </center-wrapper>
20
- </template>
21
-
22
- <style lang="css" scoped>
23
- img {
24
- display: block;
25
- margin: 0;
26
- }
27
- </style>
@@ -1,111 +0,0 @@
1
- <script setup lang="ts">
2
- import CenterWrapper from "@/components/CenterWrapper.vue";
3
- import AppForm from "@/components/Forms/AppForm.vue";
4
- import FormFieldset from "@/components/Forms/FormFieldset.vue";
5
- import SelectField from "@/components/Forms/SelectField.vue";
6
- import TextareaField from "@/components/Forms/TextareaField.vue";
7
- import TextField from "@/components/Forms/TextField.vue";
8
- import { z } from "zod";
9
- import { toTypedSchema } from "@vee-validate/zod";
10
- import { useForm } from "vee-validate";
11
- import { ref, type Ref } from "vue";
12
- import RadioGroup from "@/components/Forms/RadioGroup.vue";
13
-
14
- const { handleSubmit, errors, values } = useForm({
15
- name: "form",
16
- validationSchema: toTypedSchema(
17
- z.object({
18
- name: z.string().min(1, "Het veld naam is verplicht"),
19
- comment: z.string(),
20
- email: z.email({
21
- error: "Het veld email is niet correct",
22
- }),
23
- select: z.enum(["option 1", "option 2", "option 3", ""]).refine((val) => val !== "", {
24
- error: "Het veld select is verplicht",
25
- }),
26
- radio: z.enum(["option 1", "option 2", "option 3", ""]).refine((val) => val !== "", {
27
- error: "Het veld radio is verplicht",
28
- }),
29
- }),
30
- ),
31
- initialValues: {
32
- name: "",
33
- comment: "",
34
- select: "",
35
- email: "",
36
- radio: "option 2",
37
- },
38
- });
39
-
40
- const status: Ref<"idle" | "pending" | "success" | "error"> = ref("idle");
41
-
42
- const submit = handleSubmit(() => {
43
- status.value = "pending";
44
- setTimeout(() => {
45
- status.value = "success";
46
- }, 2000);
47
- });
48
- </script>
49
-
50
- <template>
51
- <center-wrapper>
52
- <app-form
53
- :errors
54
- button-title="Reactie plaatsen"
55
- success-text="success"
56
- :status
57
- @submit-form="submit"
58
- >
59
- <form-fieldset title="Adres" :columns="3">
60
- <text-field name="name" title="Name" autocomplete="name" />
61
- <text-field name="email" title="Email" type="email" autocomplete="email" />
62
- <select-field
63
- :options="[
64
- {
65
- title: 'Option 1',
66
- value: 'option 1',
67
- },
68
- {
69
- title: 'Option 2',
70
- value: 'option 2',
71
- },
72
- {
73
- title: 'Option 3',
74
- value: 'option 3',
75
- },
76
- ]"
77
- name="select"
78
- title="Opties"
79
- />
80
- <textarea-field name="comment" title="Reactie" class="comment" />
81
- </form-fieldset>
82
- <radio-group
83
- class="options"
84
- :options="[
85
- {
86
- title: 'Option 1',
87
- value: 'option 1',
88
- },
89
- {
90
- title: 'Option 2',
91
- value: 'option 2',
92
- },
93
- {
94
- title: 'Option 3',
95
- value: 'option 3',
96
- },
97
- ]"
98
- name="radio"
99
- title="Radio opties"
100
- />
101
- </app-form>
102
- <pre>{{ values }}</pre>
103
- </center-wrapper>
104
- </template>
105
-
106
- <style lang="css" scoped>
107
- .options,
108
- .comment {
109
- grid-column: span 3;
110
- }
111
- </style>
@@ -1,100 +0,0 @@
1
- <script setup lang="ts">
2
- import SummaryDetails from "@/components/SummaryDetails.vue";
3
- import CenterWrapper from "@/components/CenterWrapper.vue";
4
- import AppNotification from "@/components/AppNotification.vue";
5
- import AppTabs from "@/components/AppTabs.vue";
6
- import AppDialog from "@/components/AppDialog.vue";
7
- import AppBreadcrumb from "@/components/AppBreadcrumb.vue";
8
- import AppPopover from "@/components/AppPopover.vue";
9
- import { Icon } from "@iconify/vue";
10
- import AppButton from "@/components/AppButton.vue";
11
- </script>
12
-
13
- <template>
14
- <center-wrapper>
15
- <app-popover>
16
- <template #anchor><icon icon="solar:info-circle-bold" /></template>
17
- Greetings, one and all!
18
- </app-popover>
19
- <app-breadcrumb
20
- :pages="[
21
- {
22
- title: 'home',
23
- to: '/',
24
- },
25
-
26
- {
27
- title: 'about',
28
- to: '/',
29
- },
30
- ]"
31
- />
32
- <app-dialog id="dialog" title="test">
33
- <p>
34
- Lorem ipsum dolor sit amet consectetur, adipisicing elit. Hic eos, libero iste asperiores
35
- quisquam inventore? Hic quaerat id recusandae, esse cumque omnis officia, debitis amet
36
- obcaecati suscipit exercitationem nisi? Possimus!
37
- </p>
38
- </app-dialog>
39
- <button commandfor="dialog" command="show-modal">Open Dialog</button>
40
- <summary-details title="Hic eos, libero iste asperiores" style="margin-bottom: 1em;">
41
- Lorem ipsum dolor sit amet consectetur, adipisicing elit. Hic eos, libero iste asperiores
42
- quisquam inventore? Hic quaerat id recusandae, esse cumque omnis officia, debitis amet
43
- obcaecati suscipit exercitationem nisi? Possimus!
44
- </summary-details>
45
-
46
- <app-notification variant="error">error</app-notification>
47
- <app-notification variant="success">success</app-notification>
48
- <app-notification variant="warning">warning</app-notification>
49
- <app-notification variant="info">info</app-notification>
50
-
51
- <app-tabs
52
- :tabs="[
53
- {
54
- id: 'apple',
55
- title: 'Apple',
56
- },
57
- {
58
- id: 'apricot',
59
- title: 'Apricot',
60
- },
61
- {
62
- id: 'advocado',
63
- title: 'Avocado',
64
- },
65
- ]"
66
- >
67
- <template #advocado>
68
- <p>
69
- Lorem ipsum dolor, sit amet consectetur adipisicing elit. Aperiam voluptatum vitae fugiat
70
- dolor amet rem ab tempore aspernatur, dolore nostrum laboriosam ratione sequi quidem autem
71
- libero. Molestias placeat omnis explicabo. Lorem ipsum dolor sit amet consectetur
72
- adipisicing elit. Asperiores veniam sint quidem, ut corporis fuga impedit, obcaecati
73
- neque, dolor earum unde maiores nesciunt atque. Atque adipisci nemo temporibus optio est!
74
- </p>
75
- </template>
76
- <template #apple>
77
- <p>
78
- Lorem ipsum dolor sit amet consectetur adipisicing elit. Ipsa, accusantium ullam quo
79
- dolores id voluptatem dignissimos, quas rem, dolore excepturi eius? Voluptatem libero quis
80
- sit! Beatae libero adipisci eius praesentium. Lorem ipsum dolor sit, amet consectetur
81
- adipisicing elit. Vel facilis tempore cum modi quam dolorum eaque expedita, doloremque
82
- delectus? Odio sint iste nam nobis laboriosam illo blanditiis voluptatibus alias autem?
83
- Lorem ipsum dolor sit amet consectetur adipisicing elit. Nulla delectus autem, esse
84
- asperiores consectetur illum? Perferendis numquam, dicta cupiditate dolorem, rem aliquid
85
- culpa perspiciatis alias quam laborum hic. Exercitationem, placeat.
86
- </p>
87
- </template>
88
- <template #apricot>
89
- <p>
90
- Lorem ipsum dolor sit amet consectetur, adipisicing elit. Illum, eum sequi assumenda
91
- laudantium excepturi earum enim repudiandae, esse nobis temporibus numquam ut commodi.
92
- Recusandae perferendis temporibus dicta deleniti blanditiis aliquid?
93
- </p>
94
- </template>
95
- </app-tabs>
96
-
97
- <app-button title="Button" />
98
- <app-button title="Button" variant="ghost" />
99
- </center-wrapper>
100
- </template>
@@ -1,58 +0,0 @@
1
- <script lang="ts" setup>
2
- import CenterWrapper from "@/components/CenterWrapper.vue";
3
- import ScrollSpy from "@/components/ScrollSpy.vue";
4
-
5
- const pages = [
6
- {
7
- id: "section-1",
8
- title: "Section 1",
9
- },
10
-
11
- {
12
- id: "section-2",
13
- title: "Section 2",
14
- },
15
- {
16
- id: "section-3",
17
- title: "Section 3",
18
- },
19
- {
20
- id: "section-4",
21
- title: "Section 4",
22
- },
23
- {
24
- id: "section-5",
25
- title: "Section 5",
26
- },
27
- ];
28
- </script>
29
-
30
- <template>
31
- <center-wrapper>
32
- <scroll-spy :pages>
33
- <template v-for="page in pages" #[page.id] :key="page.id">
34
- <p>
35
- Lorem ipsum dolor, sit amet consectetur adipisicing elit. Aperiam voluptatum vitae fugiat
36
- dolor amet rem ab tempore aspernatur, dolore nostrum laboriosam ratione sequi quidem autem
37
- libero. Molestias placeat omnis explicabo. Lorem ipsum dolor sit amet consectetur
38
- adipisicing elit. Asperiores veniam sint quidem, ut corporis fuga impedit, obcaecati
39
- neque, dolor earum unde maiores nesciunt atque. Atque adipisci nemo temporibus optio est!
40
- </p>
41
- <p>
42
- Lorem ipsum dolor, sit amet consectetur adipisicing elit. Aperiam voluptatum vitae fugiat
43
- dolor amet rem ab tempore aspernatur, dolore nostrum laboriosam ratione sequi quidem autem
44
- libero. Molestias placeat omnis explicabo. Lorem ipsum dolor sit amet consectetur
45
- adipisicing elit. Asperiores veniam sint quidem, ut corporis fuga impedit, obcaecati
46
- neque, dolor earum unde maiores nesciunt atque. Atque adipisci nemo temporibus optio est!
47
- </p>
48
- <p>
49
- Lorem ipsum dolor, sit amet consectetur adipisicing elit. Aperiam voluptatum vitae fugiat
50
- dolor amet rem ab tempore aspernatur, dolore nostrum laboriosam ratione sequi quidem autem
51
- libero. Molestias placeat omnis explicabo. Lorem ipsum dolor sit amet consectetur
52
- adipisicing elit. Asperiores veniam sint quidem, ut corporis fuga impedit, obcaecati
53
- neque, dolor earum unde maiores nesciunt atque. Atque adipisci nemo temporibus optio est!
54
- </p>
55
- </template>
56
- </scroll-spy>
57
- </center-wrapper>
58
- </template>