srcdev-nuxt-components 9.3.6 → 9.3.8

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 (126) hide show
  1. package/.claude/hooks/check-component-update.sh +30 -1
  2. package/.claude/skills/components/accordian-core.md +7 -7
  3. package/.claude/skills/components/breadcrumb.md +49 -0
  4. package/.claude/skills/components/content-docs.md +2 -1
  5. package/.claude/skills/components/expanding-panel.md +5 -5
  6. package/.claude/skills/components/navigation-items.md +1 -0
  7. package/.claude/skills/components/responsive-header.md +1 -0
  8. package/.claude/skills/components/service-detail.md +156 -0
  9. package/.claude/skills/components/services-card-grid.md +9 -9
  10. package/.claude/skills/components/services-card.md +82 -30
  11. package/.claude/skills/index.md +3 -1
  12. package/.claude/skills/qa-panel.md +2 -2
  13. package/.vscode/srcdev-component-breadcrumb.code-snippets +14 -0
  14. package/.vscode/srcdev-component-service-detail.code-snippets +49 -0
  15. package/.vscode/srcdev-component-services-card.code-snippets +108 -0
  16. package/app/components/01.atoms/content-wrappers/docs-pages/ContentDocs.vue +22 -16
  17. package/app/components/01.atoms/navigation/breadcrumb/Breadcrumb.vue +94 -0
  18. package/app/components/01.atoms/navigation/breadcrumb/CONSUMER-STYLING.md +32 -0
  19. package/app/components/01.atoms/navigation/breadcrumb/stories/Breadcrumb.stories.ts +87 -0
  20. package/app/components/01.atoms/navigation/breadcrumb/tests/Breadcrumb.spec.ts +87 -0
  21. package/app/components/01.atoms/navigation/breadcrumb/tests/__snapshots__/Breadcrumb.spec.ts.snap +13 -0
  22. package/app/components/02.molecules/expandable/accordian/AccordianCore.vue +5 -1
  23. package/app/components/02.molecules/expandable/accordian/tests/AccordianCore.spec.ts +22 -14
  24. package/app/components/02.molecules/expandable/accordian/tests/__snapshots__/AccordianCore.spec.ts.snap +42 -28
  25. package/app/components/02.molecules/expandable/expanding-panel/CONSUMER-STYLING.md +8 -10
  26. package/app/components/02.molecules/expandable/expanding-panel/ExpandingPanel.vue +15 -47
  27. package/app/components/02.molecules/expandable/expanding-panel/tests/__snapshots__/ExpandingPanel.spec.ts.snap +4 -12
  28. package/app/components/03.organisms/responsive-header/NavigationItems.vue +91 -4
  29. package/app/components/03.organisms/responsive-header/ResponsiveHeader.vue +5 -1
  30. package/app/components/03.organisms/responsive-header/tests/NavigationItems.spec.ts +2 -2
  31. package/app/components/03.organisms/responsive-header/tests/__snapshots__/NavigationItems.spec.ts.snap +13 -13
  32. package/app/components/03.organisms/responsive-header/tests/__snapshots__/ResponsiveHeader.spec.ts.snap +13 -13
  33. package/app/components/03.organisms/services/service-detail/CONSUMER-STYLING.md +181 -0
  34. package/app/components/03.organisms/services/service-detail/ServiceDetail.vue +480 -0
  35. package/app/components/03.organisms/services/service-detail/stories/ServiceDetail.stories.ts +282 -0
  36. package/app/components/03.organisms/services/service-detail/tests/ServiceDetail.spec.ts +270 -0
  37. package/app/components/03.organisms/services/service-detail/tests/__snapshots__/ServiceDetail.spec.ts.snap +99 -0
  38. package/app/components/03.organisms/services/services-card/CONSUMER-STYLING.md +129 -0
  39. package/app/components/03.organisms/services/services-card/ServicesCard.vue +153 -39
  40. package/app/components/03.organisms/services/services-card/stories/ServicesCard.stories.ts +65 -0
  41. package/app/components/03.organisms/services/services-card/tests/ServicesCard.spec.ts +82 -0
  42. package/app/components/03.organisms/services/services-card/tests/__snapshots__/ServicesCard.spec.ts.snap +13 -5
  43. package/app/components/03.organisms/services/services-grids/ServicesCardGrid.vue +3 -7
  44. package/app/components/03.organisms/services/services-grids/stories/ServicesCardGrid.stories.ts +126 -2
  45. package/app/components/03.organisms/services/services-grids/stories/ServicesSectionGrid.stories.ts +6 -0
  46. package/app/components/03.organisms/services/services-grids/tests/__snapshots__/ServicesCardGrid.spec.ts.snap +51 -27
  47. package/app/components/03.organisms/services/services-section/ServicesSection.vue +19 -0
  48. package/app/components/03.organisms/services/services-section/tests/__snapshots__/ServicesSection.spec.ts.snap +8 -8
  49. package/app/types/components/breadcrumb.ts +4 -0
  50. package/app/types/components/index.ts +1 -0
  51. package/package.json +2 -2
  52. package/app/pages/auto-grid.vue +0 -328
  53. package/app/pages/banner-video.vue +0 -238
  54. package/app/pages/forms/examples/buttons/index.vue +0 -259
  55. package/app/pages/forms/examples/material/checkbox-radio-panels.vue +0 -244
  56. package/app/pages/forms/examples/material/cssbattle.vue +0 -60
  57. package/app/pages/forms/examples/material/text-fields.vue +0 -910
  58. package/app/pages/grid-stack.vue +0 -252
  59. package/app/pages/index.vue +0 -127
  60. package/app/pages/page-hero-highlights.vue +0 -204
  61. package/app/pages/samaritan.vue +0 -327
  62. package/app/pages/typography/hero-text.vue +0 -97
  63. package/app/pages/typography/index.vue +0 -39
  64. package/app/pages/typography/page-body.vue +0 -171
  65. package/app/pages/typography/page-heading.vue +0 -76
  66. package/app/pages/typography/page-link.vue +0 -103
  67. package/app/pages/ui/accordian.vue +0 -211
  68. package/app/pages/ui/anchor-scroll-tab-navigation.vue +0 -191
  69. package/app/pages/ui/anchor-scroll.vue +0 -367
  70. package/app/pages/ui/animated-svg-text.vue +0 -85
  71. package/app/pages/ui/block-decorators.vue +0 -142
  72. package/app/pages/ui/card-core.vue +0 -82
  73. package/app/pages/ui/carousel-basic.vue +0 -292
  74. package/app/pages/ui/carousel-flip.vue +0 -449
  75. package/app/pages/ui/carousel-infinite.vue +0 -260
  76. package/app/pages/ui/clipped-panels.vue +0 -101
  77. package/app/pages/ui/contact-section.vue +0 -323
  78. package/app/pages/ui/container-glow.vue +0 -106
  79. package/app/pages/ui/content-width.vue +0 -126
  80. package/app/pages/ui/deep-expanding-menu.vue +0 -138
  81. package/app/pages/ui/display-avatar.vue +0 -253
  82. package/app/pages/ui/display-banner.vue +0 -78
  83. package/app/pages/ui/display-chip.vue +0 -367
  84. package/app/pages/ui/display-details.vue +0 -171
  85. package/app/pages/ui/display-dialog.vue +0 -344
  86. package/app/pages/ui/display-pill.vue +0 -396
  87. package/app/pages/ui/display-prompt.vue +0 -284
  88. package/app/pages/ui/display-toast.vue +0 -311
  89. package/app/pages/ui/expanding-panel.vue +0 -326
  90. package/app/pages/ui/glowing-border.vue +0 -111
  91. package/app/pages/ui/layout-content-docs.vue +0 -72
  92. package/app/pages/ui/layout-grid-a.vue +0 -96
  93. package/app/pages/ui/layout-grid-b.vue +0 -132
  94. package/app/pages/ui/magnetic-navigation.vue +0 -50
  95. package/app/pages/ui/marquee-scroller.vue +0 -99
  96. package/app/pages/ui/mask-element.vue +0 -104
  97. package/app/pages/ui/masonry-columns.vue +0 -55
  98. package/app/pages/ui/masonry-grid-ordered-experiment.vue +0 -79
  99. package/app/pages/ui/masonry-grid-ordered.vue +0 -56
  100. package/app/pages/ui/masonry-grid-sorted.vue +0 -55
  101. package/app/pages/ui/masonry-grid.vue +0 -55
  102. package/app/pages/ui/navigation/navigation-horizontal.vue +0 -484
  103. package/app/pages/ui/navigation/site-navigation/about.vue +0 -36
  104. package/app/pages/ui/navigation/site-navigation/contact.vue +0 -39
  105. package/app/pages/ui/navigation/site-navigation/index.vue +0 -38
  106. package/app/pages/ui/navigation/site-navigation/portfolio.vue +0 -43
  107. package/app/pages/ui/navigation/site-navigation/services.vue +0 -42
  108. package/app/pages/ui/navigation/tab-navigation.vue +0 -493
  109. package/app/pages/ui/page-row.vue +0 -127
  110. package/app/pages/ui/price-list.vue +0 -65
  111. package/app/pages/ui/profile-section.vue +0 -142
  112. package/app/pages/ui/qr-code/[componentName].vue +0 -218
  113. package/app/pages/ui/rotating-carousel.vue +0 -154
  114. package/app/pages/ui/scroll-reveal-image.vue +0 -483
  115. package/app/pages/ui/section-parallax.vue +0 -54
  116. package/app/pages/ui/services/colour-finder.vue +0 -43
  117. package/app/pages/ui/services/services-cards.vue +0 -57
  118. package/app/pages/ui/services/services-section/[slug].vue +0 -61
  119. package/app/pages/ui/services/services-sections-compact.vue +0 -64
  120. package/app/pages/ui/settings.vue +0 -54
  121. package/app/pages/ui/simple-grid.vue +0 -55
  122. package/app/pages/ui/slider-gallery.vue +0 -261
  123. package/app/pages/ui/tabs-y.vue +0 -107
  124. package/app/pages/ui/tabs.vue +0 -189
  125. package/app/pages/ui/tooltips.vue +0 -104
  126. package/app/pages/ui/wipe-away-vertical.vue +0 -129
@@ -1,189 +0,0 @@
1
- <template>
2
- <div>
3
- <NuxtLayout name="default">
4
- <template #layout-content>
5
- <PageRow tag="div" variant="popout" :style-class-passthrough="['mbs-32']">
6
- <h1 class="page-heading-2">Tabs #1</h1>
7
- <p>Static tabs</p>
8
-
9
- <TabsCore
10
- :nav-items="navLinks3"
11
- :item-count="3"
12
- :transition-duration="300"
13
- :style-class-passthrough="['class-modifier']"
14
- >
15
- <template #[`tab-0-trigger`]>0 - Tab 1</template>
16
- <template #[`tab-1-trigger`]>1 - Tab 2</template>
17
- <template #[`tab-2-trigger`]>2 - Tab 3</template>
18
- <template #[`tab-0-content`]>
19
- <p class="p-24">This is content slot 0</p>
20
- </template>
21
- <template #[`tab-1-content`]>
22
- <p class="p-24">This is content slot 1</p>
23
- </template>
24
- <template #[`tab-2-content`]>
25
- <p class="p-24">This is content slot 2</p>
26
- </template>
27
- </TabsCore>
28
- </PageRow>
29
-
30
- <PageRow tag="div" variant="popout" :style-class-passthrough="['mbs-32']">
31
- <h2 class="page-heading-2">Tabs #2</h2>
32
- <p>Data driven tabs</p>
33
-
34
- <TabsCore :item-count="4" :style-class-passthrough="['class-modifier']">
35
- <template v-for="(item, key) in navLinks4" #[`tab-${key}-trigger`]>{{ key }} - {{ item.name }}</template>
36
- <template #[`tab-0-content`]>
37
- <p class="p-24">This is content slot 0</p>
38
- </template>
39
- <template #[`tab-1-content`]>
40
- <p class="p-24">This is content slot 1</p>
41
- </template>
42
- <template #[`tab-2-content`]>
43
- <p class="p-24">This is content slot 2</p>
44
- </template>
45
- <template #[`tab-3-content`]>
46
- <p class="p-24">This is content slot 3</p>
47
- </template>
48
- </TabsCore>
49
- </PageRow>
50
-
51
- <PageRow tag="div" variant="popout" :style-class-passthrough="['mbs-32']">
52
- <h2 class="page-heading-2">Tabs #3</h2>
53
- <p>Data driven accordian navigation with custom content</p>
54
-
55
- <TabsCore :item-count="6" :style-class-passthrough="['class-modifier']">
56
- <template v-for="(item, key) in navLinks6" #[`tab-${key}-trigger`]>{{ key }} - {{ item.name }}</template>
57
- <template #[`tab-0-content`]>
58
- <p class="p-24">This is content slot 0</p>
59
- </template>
60
- <template #[`tab-1-content`]>
61
- <p class="p-24">This is content slot 1</p>
62
- </template>
63
- <template #[`tab-2-content`]>
64
- <p class="p-24">This is content slot 2</p>
65
- </template>
66
- <template #[`tab-3-content`]>
67
- <p class="p-24">This is content slot 3</p>
68
- </template>
69
- <template #[`tab-4-content`]>
70
- <p class="p-24">This is content slot 4</p>
71
- </template>
72
- <template #[`tab-5-content`]>
73
- <p class="p-24">This is content slot 5</p>
74
- </template>
75
- </TabsCore>
76
- </PageRow>
77
- </template>
78
- </NuxtLayout>
79
- </div>
80
- </template>
81
-
82
- <script setup lang="ts">
83
- definePageMeta({
84
- layout: false,
85
- });
86
-
87
- useHead({
88
- title: "UI Tabs",
89
- meta: [{ name: "description", content: "Examples of UI Component Tabs" }],
90
- bodyAttrs: {
91
- class: "home",
92
- },
93
- });
94
-
95
- interface ITabNav {
96
- action?: string;
97
- name: string;
98
- path?: string;
99
- }
100
-
101
- const navLinks3: ITabNav[] = [
102
- { name: "Home", path: "/" },
103
- { name: "Dialogs", path: "/ui/dialog" },
104
- ];
105
-
106
- const navLinks4: ITabNav[] = [
107
- { name: "Home", path: "/" },
108
- { name: "Dialogs", path: "/ui/dialog" },
109
- { name: "Tabs", path: "/ui/tabs" },
110
- ];
111
-
112
- const navLinks6: ITabNav[] = [
113
- { name: "Home", path: "/" },
114
- { name: "Dialogs", path: "/ui/dialog" },
115
- { name: "Tabs", path: "/ui/tabs" },
116
- { name: "Something Else", path: "/ui/something" },
117
- { name: "Home Again", path: "/" },
118
- ];
119
- </script>
120
-
121
- <style lang="css">
122
- .class-modifier {
123
- &.tabs-core {
124
- .tabs-list {
125
- /* custom css */
126
-
127
- .nav__hovered {
128
- /* custom css */
129
- }
130
-
131
- .nav__active {
132
- /* custom css */
133
- }
134
-
135
- .nav__active-indicator {
136
- /* custom css */
137
- }
138
-
139
- .tabs-list-item {
140
- /* custom css */
141
-
142
- &:hover {
143
- /* custom css */
144
- }
145
-
146
- &[aria-selected="true"] {
147
- /* custom css */
148
- }
149
- }
150
-
151
- .nav__hovered {
152
- /* custom css */
153
- }
154
-
155
- .nav__active {
156
- /* custom css */
157
- }
158
-
159
- .nav__active-indicator {
160
- /* custom css */
161
- }
162
-
163
- .tabs-list-item {
164
- /* custom css */
165
-
166
- &:hover {
167
- /* custom css */
168
- }
169
-
170
- &[aria-selected="true"] {
171
- /* custom css */
172
- }
173
-
174
- &.transitioning {
175
- /* custom css */
176
- }
177
- }
178
- }
179
-
180
- .tab-content-wrapper {
181
- /* custom css */
182
-
183
- .tab-content {
184
- /* custom css */
185
- }
186
- }
187
- }
188
- }
189
- </style>
@@ -1,104 +0,0 @@
1
- <template>
2
- <div>
3
- <NuxtLayout name="default">
4
- <template #layout-content>
5
- <PageRow tag="div" variant="full" :styleClassPassthrough="['tooltips-page-row', 'mbe-20']">
6
- <h1 class="page-heading-2">Tooltips</h1>
7
- <button @click.prevent="restartGuide" :disabled="isGuideRunning">
8
- {{ isGuideRunning ? "Guide running..." : "Run guide again?" }}
9
- </button>
10
- </PageRow>
11
-
12
- <PageRow tag="div" variant="full" :style-class-passthrough="['mbe-20']">
13
- <h2 class="page-heading-2">Full Track (1fr)</h2>
14
-
15
- <div ref="tooltipGuide">
16
- <DisplayTooltipDefined
17
- :contentText="{
18
- tooltipTitle: {
19
- tag: 'h3',
20
- text: 'Defined Tooltip Title',
21
- },
22
- tooltipContent: {
23
- tag: 'p',
24
- text: 'This is the content for the defined tooltip component.',
25
- },
26
- tooltipAction: {
27
- tag: 'p',
28
- text: 'Step 1 of 5',
29
- },
30
- }"
31
- :style-class-passthrough="['mbe-20']"
32
- >
33
- <template #triggerContent>Trigger From Tooltip Defined</template>
34
- </DisplayTooltipDefined>
35
-
36
- <DisplayTooltip tooltip-id="profile-setup-tooltip" :style-class-passthrough="['mbe-20']">
37
- <template #triggerContent>Complete your profile setup for personalized recommendations.</template>
38
- <template #tooltipContent>
39
- <div class="custom-tooltip-slot-content">
40
- <div class="title subtitle-sm">
41
- Adding your personal information, preferences, and interests helps us provide better recommendations
42
- and tailor your experience to your specific needs and goals.
43
- </div>
44
- <div class="body popover-action">
45
- <button
46
- popovertarget="profile-setup-tooltip"
47
- popovertargetaction="hide"
48
- class="display-tooltip-close-button"
49
- aria-label="Close tool tip"
50
- >
51
- Close
52
- </button>
53
- </div>
54
- </div>
55
- </template>
56
- </DisplayTooltip>
57
- </div>
58
- </PageRow>
59
- </template>
60
- </NuxtLayout>
61
- </div>
62
- </template>
63
-
64
- <script setup lang="ts">
65
- definePageMeta({
66
- layout: false,
67
- });
68
-
69
- useHead({
70
- title: "UI Tooltips - Nuxt Components",
71
- meta: [{ name: "description", content: "Examples of Tooltips in Nuxt Components" }],
72
- // bodyAttrs: {
73
- // class: "home",
74
- // },
75
- });
76
-
77
- const hideTooltipTrigger = ref(false);
78
- const tooltipGuide = useTemplateRef<HTMLElement | null>("tooltipGuide");
79
-
80
- // Use the tooltip guide composable
81
- const { isGuideRunning, restartGuide } = useTooltipsGuide(tooltipGuide, {
82
- autoStart: true,
83
- startDelay: 2000,
84
- });
85
- </script>
86
-
87
- <style lang="css">
88
- .tooltips-page-row {
89
- .custom-tooltip-slot-content {
90
- display: flex;
91
- flex-direction: column;
92
- gap: 12px;
93
-
94
- .title {
95
- color: var(--nuxt-text-primary);
96
- }
97
-
98
- .body {
99
- display: flex;
100
- justify-content: flex-end;
101
- }
102
- }
103
- }
104
- </style>
@@ -1,129 +0,0 @@
1
- <template>
2
- <div>
3
- <NuxtLayout name="default">
4
- <template #layout-content>
5
- <PageRow tag="div" variant="full" :style-class-passthrough="['view-transition-banner']">
6
- <h2 class="page-heading-2">Wipe Away Vertical</h2>
7
- </PageRow>
8
- <PageRow tag="div" variant="full" :style-class-passthrough="['view-transition-banner']">
9
- <p class="page-body-normal">Some dummy content</p>
10
- </PageRow>
11
-
12
- <PageRow tag="div" variant="full">
13
- <WipeAwayVertical :item-count="scrollingSection.length">
14
- <template v-for="(item, index) in stickyItems" :key="`sticky-${index}`" v-slot:[`stickyItem-${index}`]>
15
- <div class="sticky-item-container">
16
- <NuxtImg :src="item.src" :alt="item.alt" class="sticky-item-image" />
17
- </div>
18
- </template>
19
-
20
- <template
21
- v-for="(section, index) in scrollingSection"
22
- :key="`scrolling-${index}`"
23
- v-slot:[`scrollingItem-${index}`]
24
- >
25
- <div class="scrolling-section-content">
26
- <h3 class="section-heading-3">{{ section.title }}</h3>
27
- <p class="body-text">
28
- Lorem ipsum dolor sit amet, consectetur adipiscing elit. Sed do eiusmod tempor incididunt ut labore et
29
- dolore magna aliqua. Ut enim ad minim veniam, quis nostrud exercitation ullamco laboris nisi ut
30
- aliquip ex ea commodo consequat.
31
- </p>
32
- </div>
33
- </template>
34
- </WipeAwayVertical>
35
- </PageRow>
36
-
37
- <PageRow tag="div" variant="full" :style-class-passthrough="['view-transition-banner']">
38
- <p class="page-body-normal">Some dummy content</p>
39
- </PageRow>
40
-
41
- <PageRow tag="div" variant="full" :style-class-passthrough="['view-transition-banner']">
42
- <p class="page-body-normal">Some dummy content</p>
43
- </PageRow>
44
- </template>
45
- </NuxtLayout>
46
- </div>
47
- </template>
48
-
49
- <script setup lang="ts">
50
- definePageMeta({
51
- layout: false,
52
- });
53
-
54
- useHead({
55
- title: "Wipe Away Vertical",
56
- meta: [
57
- {
58
- name: "description",
59
- content: "Wipe Away Vertical Meta description content",
60
- },
61
- ],
62
- bodyAttrs: {
63
- class: "wipe-away-vertical-page",
64
- },
65
- });
66
-
67
- const stickyItems = [
68
- {
69
- src: "/images/rotating-carousel/image-1.webp",
70
- alt: "Sample Image 1",
71
- },
72
- {
73
- src: "/images/rotating-carousel/image-2.webp",
74
- alt: "Sample Image 2",
75
- },
76
- {
77
- src: "/images/rotating-carousel/image-4.webp",
78
- alt: "Sample Image 4",
79
- },
80
- {
81
- src: "/images/rotating-carousel/image-5.webp",
82
- alt: "Sample Image 5",
83
- },
84
- {
85
- src: "/images/rotating-carousel/image-6.webp",
86
- alt: "Sample Image 6",
87
- },
88
- ];
89
-
90
- const scrollingSection = [
91
- { title: "View Timeline 1" },
92
- { title: "View Timeline 2" },
93
- { title: "View Timeline 3" },
94
- { title: "View Timeline 4" },
95
- { title: "View Timeline 5" },
96
- ];
97
- </script>
98
-
99
- <style lang="css">
100
- .wipe-away-vertical-page {
101
- /* CSS styles */
102
-
103
- .view-transition-banner {
104
- min-block-size: 75svh;
105
- }
106
-
107
- .wipe-away-vertical {
108
- .sticky-items-container {
109
- width: 50%;
110
- aspect-ratio: 1;
111
-
112
- @media (width >= 1024px) {
113
- width: 512px;
114
- }
115
- }
116
-
117
- .scrolling-section {
118
- min-height: 100vh;
119
-
120
- background-color: darkcyan;
121
- overflow-y: hidden;
122
-
123
- &:nth-child(odd) {
124
- background-color: darkgoldenrod;
125
- }
126
- }
127
- }
128
- }
129
- </style>