srcdev-nuxt-components 2.5.17 → 3.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 (86) hide show
  1. package/nuxt.config.ts +3 -1
  2. package/package.json +1 -1
  3. package/assets/styles/a11y/_utils.css +0 -20
  4. package/assets/styles/a11y/_variables.css +0 -8
  5. package/assets/styles/a11y/index.css +0 -2
  6. package/assets/styles/forms/index.css +0 -2
  7. package/assets/styles/forms/themes/_error.css +0 -77
  8. package/assets/styles/forms/themes/_ghost.css +0 -77
  9. package/assets/styles/forms/themes/_input-action.css +0 -20
  10. package/assets/styles/forms/themes/_primary.css +0 -82
  11. package/assets/styles/forms/themes/_secondary.css +0 -77
  12. package/assets/styles/forms/themes/_success.css +0 -77
  13. package/assets/styles/forms/themes/_tertiary.css +0 -77
  14. package/assets/styles/forms/themes/_warning.css +0 -77
  15. package/assets/styles/forms/themes/index.css +0 -8
  16. package/assets/styles/forms/variables/_sizes.css +0 -82
  17. package/assets/styles/forms/variables/_theme.css +0 -11
  18. package/assets/styles/forms/variables/index.css +0 -2
  19. package/assets/styles/main.css +0 -5
  20. package/assets/styles/typography/index.css +0 -2
  21. package/assets/styles/typography/utils/_font-classes.css +0 -160
  22. package/assets/styles/typography/utils/_weights.css +0 -69
  23. package/assets/styles/typography/utils/index.css +0 -2
  24. package/assets/styles/typography/variables/_colors.css +0 -14
  25. package/assets/styles/typography/variables/_reponsive-font-size.css +0 -10
  26. package/assets/styles/typography/variables/index.css +0 -2
  27. package/assets/styles/utils/_animations.css +0 -42
  28. package/assets/styles/utils/_canvasWidths.css +0 -18
  29. package/assets/styles/utils/_display.css +0 -7
  30. package/assets/styles/utils/_margin-helpers.css +0 -334
  31. package/assets/styles/utils/_padding-helpers.css +0 -308
  32. package/assets/styles/utils/_page.css +0 -24
  33. package/assets/styles/utils/_placement.css +0 -73
  34. package/assets/styles/utils/index.css +0 -7
  35. package/assets/styles/variables/colors/_blue.css +0 -15
  36. package/assets/styles/variables/colors/_gray.css +0 -16
  37. package/assets/styles/variables/colors/_green.css +0 -15
  38. package/assets/styles/variables/colors/_orange.css +0 -15
  39. package/assets/styles/variables/colors/_red.css +0 -15
  40. package/assets/styles/variables/colors/_yellow.css +0 -15
  41. package/assets/styles/variables/colors/colors.css +0 -6
  42. package/assets/styles/variables/components/_accordian.css +0 -7
  43. package/assets/styles/variables/components/_container-glow-core.css +0 -16
  44. package/assets/styles/variables/components/_display-dialog-core.css +0 -35
  45. package/assets/styles/variables/components/_tabs.css +0 -18
  46. package/assets/styles/variables/components/display-prompt-core/_scaffolding.css +0 -57
  47. package/assets/styles/variables/components/display-prompt-core/index.css +0 -2
  48. package/assets/styles/variables/components/display-prompt-core/themes/_error.css +0 -39
  49. package/assets/styles/variables/components/display-prompt-core/themes/_info.css +0 -39
  50. package/assets/styles/variables/components/display-prompt-core/themes/_success.css +0 -39
  51. package/assets/styles/variables/components/display-prompt-core/themes/_warning.css +0 -39
  52. package/assets/styles/variables/components/display-prompt-core/themes/index.css +0 -4
  53. package/assets/styles/variables/components/index.css +0 -5
  54. package/assets/styles/variables/index.css +0 -2
  55. package/components/animated-svg-text/AnimatedSvgText.vue +0 -87
  56. package/components/canvas-switcher/CanvasSwitcher.vue +0 -77
  57. package/components/clip-element/ClipElement.vue +0 -73
  58. package/components/clipped-panels/ClippedPanel.vue +0 -73
  59. package/components/deep-expanding-menu/DeepExpandingMenu.vue +0 -214
  60. package/components/deep-expanding-menu/DeepExpandingMenuOld.vue +0 -218
  61. package/components/display-banner/DisplayBanner.vue +0 -63
  62. package/components/display-details/DisplayDetailsCore.vue +0 -312
  63. package/components/functional/accordian/AccordianCore.vue +0 -138
  64. package/components/functional/display-dialog/DisplayDialogCore.vue +0 -244
  65. package/components/functional/display-dialog/variants/DisplayDialogConfirm.vue +0 -45
  66. package/components/functional/display-dialog/variants/DisplayDialogScrollableContent.vue +0 -49
  67. package/components/functional/pop-over/PopOver.vue +0 -88
  68. package/components/image-galleries/SliderGallery.vue +0 -792
  69. package/components/masonry-grid-ordered/MasonryGridOrdered.vue +0 -158
  70. package/components/presentation/container-glow/ContainerGlowCore.vue +0 -211
  71. package/components/presentation/display-grid/DisplayGridCore.vue +0 -22
  72. package/components/presentation/display-prompt/DisplayPromptCore.vue +0 -150
  73. package/components/presentation/display-prompt/variants/DisplayPromptError.vue +0 -53
  74. package/components/presentation/layout-grids/LayoutGridA.vue +0 -103
  75. package/components/presentation/layout-grids/LayoutGridB.vue +0 -132
  76. package/components/presentation/layout-row/LayoutRow.vue +0 -157
  77. package/components/presentation/masonry-grid/MasonryGrid.vue +0 -62
  78. package/components/presentation/masonry-grid-sorted/MasonryGridSorted.vue +0 -115
  79. package/components/presentation/tabs/TabsCore.vue +0 -308
  80. package/components/responsive-header/NavigationItems.vue +0 -164
  81. package/components/responsive-header/ResponsiveHeader.vue +0 -586
  82. package/components/rotating-carousel/RotatingCarouselImage.vue +0 -200
  83. package/composables/useDialogControls.ts +0 -23
  84. package/composables/useStyleClassPassthrough.ts +0 -35
  85. package/composables/useTabs.ts +0 -201
  86. package/types/responsiveHeader.ts +0 -38
@@ -1,308 +0,0 @@
1
- <template>
2
- <div class="tabs-core" :class="`axis-${axis}`">
3
- <ul role="tablist" aria-labelledby="channel-name" ref="tabsNavRef" @mouseleave="resetHoverToActivePosition()" class="tabs-list" :class="[elementClasses]">
4
- <li v-for="(index, key) in navItems" :key="key">
5
- <button
6
- @click.prevent="navItemClicked($event)"
7
- @mouseover="navItemHovered($event)"
8
- :id="`tab-${key}-trigger`"
9
- :data-tab-index="key"
10
- data-nav-item
11
- role="tab"
12
- aria-selected="false"
13
- class="tabs-list-item"
14
- >
15
- <slot :name="`tab-${key}-trigger`"></slot>
16
- </button>
17
- </li>
18
- </ul>
19
- <div class="tab-content-wrapper">
20
- <div v-for="(item, key) in navItems" :key="key" class="tab-content" :aria-labelledby="`tab-${key}-trigger`" :id="`tab-${key}-content`" role="region" aria-hidden="true" ref="tabsContentRefs">
21
- <slot :name="`tab-${key}-content`"></slot>
22
- </div>
23
- </div>
24
- </div>
25
- </template>
26
-
27
- <script setup lang="ts">
28
- import type { ITabNav } from '@/types/types.tabs';
29
-
30
- const props = defineProps({
31
- tag: {
32
- type: String as PropType<string>,
33
- default: 'button',
34
- },
35
- axis: {
36
- type: String as PropType<'x' | 'y'>,
37
- default: 'x',
38
- },
39
- transitionDuration: {
40
- type: Number as PropType<number>,
41
- default: 200,
42
- },
43
- navItems: {
44
- type: Array as PropType<ITabNav[]>,
45
- required: true,
46
- },
47
- trackHover: {
48
- type: Boolean as PropType<boolean>,
49
- default: true,
50
- },
51
- trackActive: {
52
- type: Boolean as PropType<boolean>,
53
- default: true,
54
- },
55
- trackIndicator: {
56
- type: Boolean as PropType<boolean>,
57
- default: true,
58
- },
59
- styleClassPassthrough: {
60
- type: Array as PropType<string[]>,
61
- default: () => [],
62
- },
63
- });
64
-
65
- const { elementClasses } = useStyleClassPassthrough(props.styleClassPassthrough);
66
-
67
- const tabsNavRef = ref<HTMLElement | null>(null);
68
- const tabsContentRefs = ref<HTMLElement[] | null>(null);
69
-
70
- const { initNavDecorators, navItemClicked, navItemHovered, resetHoverToActivePosition } = useTabs(props.axis, tabsNavRef, tabsContentRefs, props.transitionDuration);
71
-
72
- onMounted(() => {
73
- initNavDecorators();
74
- });
75
- </script>
76
-
77
- <style lang="css">
78
- .tabs-core {
79
- /*
80
- * CSS var within /assets/styles/components/tabs.css
81
- */
82
- --_tabs-default-text: var(--tabs-default-text, light-dark(var(--gray-12), var(--gray-0)));
83
- --_tabs-active-bg: var(--tabs-active-bg, light-dark(var(--gray-12), var(--gray-0)));
84
- --_tabs-active-text: var(--tabs-active-text, light-dark(var(--gray-0), var(--gray-12)));
85
- --_tabs-active-indicator: var(--tabs-active-indicator, light-dark(var(--gray-12), var(--gray-0)));
86
- --_tabs-hovered-bg: var(--tabs-hovered-bg, light-dark(var(--gray-7), var(--gray-3)));
87
- --_tabs-hovered-text: var(--tabs-hovered-text, light-dark(var(--gray-0), var(--gray-12)));
88
- --_tabs-border-bottom: var(--tabs-border-bottom, 0.1rem solid var(--gray-6));
89
- --_tabs-content-border: var(--tabs-content-border, 0.1rem solid var(--gray-6));
90
- --_tabs-content-outline: var(--tabs-content-outline, 0.1rem solid var(--gray-6));
91
- --_tabs-content-bg: var(--tabs-content-bg, light-dark(var(--gray-12), var(--gray-0)));
92
- --_tabs-content-start-start-radius: var(--tabs-content-start-start-radius, 0);
93
- --_tabs-content-start-end-radius: var(--tabs-content-start-end-radius, 0);
94
- --_tabs-content-end-start-radius: var(--tabs-content-end-start-radius, 0);
95
- --_tabs-content-end-end-radius: var(--tabs-content-end-end-radius, 0);
96
-
97
- .tabs-list {
98
- position: relative;
99
- display: flex;
100
- width: fit-content;
101
- z-index: 1;
102
-
103
- list-style-type: none;
104
- margin: 0;
105
- padding: 0;
106
-
107
- .nav__hovered {
108
- content: '';
109
- position: absolute;
110
- left: 0;
111
- right: 0;
112
- bottom: 0;
113
- top: 0;
114
- scale: var(--_width-hovered, 0.125) 1;
115
- translate: var(--_x-hovered, 0) 0;
116
- transform-origin: left;
117
- transition: scale var(--_transition-duration), translate var(--_transition-duration);
118
- z-index: 1;
119
- }
120
-
121
- .nav__active {
122
- content: '';
123
- position: absolute;
124
- left: 0;
125
- right: 0;
126
- bottom: 0;
127
- top: 0;
128
- scale: var(--_width-active, 0.125) 1;
129
- translate: var(--_x-active, 0) 0;
130
- transform-origin: left;
131
- transition: scale var(--_transition-duration), translate var(--_transition-duration);
132
- z-index: 2;
133
- }
134
-
135
- .nav__active-indicator {
136
- content: '';
137
- position: absolute;
138
- left: 0;
139
- right: 0;
140
- bottom: 0;
141
- scale: var(--_width-active, 0.125) 1;
142
- translate: var(--_x-active, 0) 0;
143
- transform-origin: left;
144
- transition: scale var(--_transition-duration), translate var(--_transition-duration);
145
- z-index: 3;
146
- }
147
-
148
- .tabs-list-item {
149
- opacity: 0.7;
150
- position: relative;
151
- transition: color 100ms;
152
- z-index: 4;
153
-
154
- &:hover {
155
- opacity: 1;
156
- }
157
-
158
- &[aria-selected='true'] {
159
- opacity: 1;
160
- }
161
- }
162
-
163
- border-bottom: var(--_tabs-border-bottom);
164
-
165
- .nav__hovered {
166
- background: var(--_tabs-hovered-bg);
167
- color: var(--_tabs-hovered-text);
168
- }
169
-
170
- .nav__active {
171
- background: var(--_tabs-active-bg);
172
- color: var(--_tabs-active-text);
173
- }
174
-
175
- .nav__active-indicator {
176
- background: var(--_tabs-active-indicator);
177
- height: 0.4rem;
178
- }
179
-
180
- .tabs-list-item {
181
- background: transparent;
182
- border: 0;
183
- color: var(--_tabs-default-text);
184
- cursor: pointer;
185
- font: inherit;
186
- text-transform: uppercase;
187
- font-weight: 500;
188
- margin: 0;
189
- padding: 1em 2em;
190
-
191
- &:hover {
192
- /* background: var(--_tabs-hovered-bg); */
193
- color: var(--_tabs-hovered-text);
194
- }
195
-
196
- &[aria-selected='true'] {
197
- color: var(--_tabs-active-text);
198
- }
199
-
200
- &.transitioning {
201
- color: var(--_tabs-hovered-text);
202
- }
203
- }
204
- }
205
-
206
- .tab-content-wrapper {
207
- display: grid;
208
- grid-template-areas: 'element-stack';
209
-
210
- .tab-content {
211
- grid-area: element-stack;
212
- display: none;
213
- }
214
- }
215
-
216
- /*
217
- * User configurable variables
218
- */
219
-
220
- .tab-content-wrapper {
221
- background: var(--_tabs-content-bg);
222
- border: var(--_tabs-content-border);
223
- border-start-start-radius: var(--_tabs-content-start-start-radius);
224
- border-start-end-radius: var(--_tabs-content-start-end-radius);
225
- border-end-start-radius: var(--_tabs-content-end-start-radius);
226
- border-end-end-radius: var(--_tabs-content-end-end-radius);
227
-
228
- outline: var(--_tabs-content-outline);
229
-
230
- /* .tab-content {
231
- } */
232
- }
233
- }
234
-
235
- /*
236
- * Deal with axis-y
237
- **/
238
-
239
- .tabs-core {
240
- &.axis-y {
241
- display: flex;
242
- flex-direction: row;
243
- gap: 2em;
244
-
245
- .tabs-list {
246
- flex-direction: column;
247
-
248
- border-bottom: initial;
249
- border-left: var(--_tabs-border-bottom);
250
- position: relative;
251
-
252
- .tabs-list-item {
253
- text-align: left;
254
- width: 100%;
255
-
256
- /* &:hover {
257
- color: var(--_tabs-hovered-text);
258
- }
259
-
260
- &[aria-selected='true'] {
261
- color: var(--_tabs-active-text);
262
- }
263
-
264
- &.transitioning {
265
- color: var(--_tabs-hovered-text);
266
- } */
267
- }
268
-
269
- .nav__hovered {
270
- left: 0;
271
- right: initial;
272
- bottom: initial;
273
- top: 0;
274
- height: var(--_y-height);
275
- translate: 0 var(--_y-hovered, 0);
276
- transform-origin: top;
277
- width: var(--_y-width);
278
- }
279
-
280
- .nav__active {
281
- left: 0;
282
- right: initial;
283
- bottom: initial;
284
- top: 0;
285
- height: var(--_y-height);
286
- translate: 0 var(--_y-active, 0);
287
- transform-origin: top;
288
- width: var(--_y-width);
289
- }
290
-
291
- .nav__active-indicator {
292
- left: 0;
293
- right: initial;
294
- bottom: initial;
295
- top: 0;
296
- height: var(--_y-height);
297
- scale: var(--_width-active, 0.125) 1;
298
- translate: 0 var(--_y-active, 0);
299
- transform-origin: top;
300
- width: 0.4em;
301
- }
302
- }
303
- .tab-content-wrapper {
304
- flex-grow: 1;
305
- }
306
- }
307
- }
308
- </style>
@@ -1,164 +0,0 @@
1
- <template>
2
- <div class="overflow-navigation-wrapper" :class="elementClasses">
3
- <ul
4
- v-for="(navGroup, groupKey) in mainNavigationState.clonedNavLinks"
5
- :key="groupKey"
6
- class="overflow-navigation-list"
7
- :class="[{visible: !mainNavigationState.navListVisibility[groupKey]}]"
8
- :style="{ '--_overflow-navigation-list-min-width': widestNavLinkWidthInMainNavigationState + 'px' }"
9
- >
10
- <template v-for="(link, localIndex) in navGroup" :key="localIndex">
11
- <li
12
- v-if="link.path"
13
- class="overflow-navigation-item"
14
- :class="{ 'visible': !mainNavigationState.clonedNavLinks?.[groupKey]?.[localIndex]?.config?.visible }"
15
- :style="{ '--_main-navigation-item-width': mainNavigationState.clonedNavLinks?.[groupKey]?.[localIndex]?.config?.width + 'px' }"
16
- :data-group-key="groupKey"
17
- :data-local-index="localIndex"
18
- >
19
- <NuxtLink class="overflow-navigation-link" :to="link.path"><span class="overflow-navigation-text">{{ link.name }}</span></NuxtLink>
20
- </li>
21
- <li
22
- v-else
23
- class="overflow-navigation-item"
24
- :class="{ 'visible': !mainNavigationState.clonedNavLinks?.[groupKey]?.[localIndex]?.config?.visible }"
25
- :style="{ '--_main-navigation-item-width': mainNavigationState.clonedNavLinks?.[groupKey]?.[localIndex]?.config?.width + 'px' }"
26
- :data-group-key="groupKey"
27
- :data-local-index="localIndex"
28
- >
29
- <DisplayDetailsCore :id="useId()" name="overflow-navigation-group" :animation-duration="detailsAanimationDuration" icon-size="medium" :style-class-passthrough="['overflow-navigation-details']">
30
- <template #summary>
31
- <span class="overflow-navigation-text">{{ link.childLinksTitle }}</span>
32
- </template>
33
- <template #summaryIcon>
34
- <Icon name="mdi:chevron-down" class="icon" />
35
- </template>
36
- <template #content>
37
- <div class="overflow-navigation-sub-nav-inner">
38
- <ul class="overflow-navigation-sub-nav-list">
39
- <li v-for="childLink in link.childLinks" :key="childLink.name" class="overflow-navigation-sub-nav-item">
40
- <NuxtLink :to="childLink.path" class="overflow-navigation-sub-nav-link"><span class="overflow-navigation-sub-nav-text">{{ childLink.name }}</span></NuxtLink>
41
- </li>
42
- </ul>
43
- </div>
44
- </template>
45
- </DisplayDetailsCore>
46
- </li>
47
- </template>
48
- </ul>
49
- </div>
50
- </template>
51
-
52
- <script setup lang="ts">
53
- import type { ResponsiveHeaderState } from '@/types/responsiveHeader';
54
-
55
- const props = defineProps({
56
- mainNavigationState: {
57
- type: Object as PropType<ResponsiveHeaderState>,
58
- default: () => [],
59
- },
60
- styleClassPassthrough: {
61
- type: Array as PropType<string[]>,
62
- default: () => [],
63
- },
64
- });
65
-
66
- const detailsAanimationDuration = 200;
67
- const detailsAanimationDurationString = `${detailsAanimationDuration}ms`;
68
-
69
- const widestNavLinkWidthInMainNavigationState = computed(() => {
70
- return Object.values(props.mainNavigationState.clonedNavLinks || {}).reduce((maxWidth, group) => {
71
- return Math.max(
72
- maxWidth,
73
- ...group.map(link => link.config?.width || 0)
74
- );
75
- }, 0);
76
- });
77
-
78
- const { elementClasses, resetElementClasses } = useStyleClassPassthrough(props.styleClassPassthrough);
79
-
80
- watch(
81
- () => props.styleClassPassthrough,
82
- () => {
83
- resetElementClasses(props.styleClassPassthrough);
84
- }
85
- );
86
- </script>
87
-
88
- <style lang="css">
89
-
90
- .overflow-navigation-wrapper {
91
- display: flex;
92
- flex-direction: column;
93
- gap: 12px;
94
-
95
- .overflow-navigation-list {
96
-
97
- display: none;
98
-
99
- &.visible {
100
- display: flex;
101
- flex-direction: column;
102
- gap: 12px;
103
- min-width: var(--_overflow-navigation-list-min-width, auto);
104
- }
105
-
106
- .overflow-navigation-item {
107
-
108
- display: none;
109
-
110
- &.visible {
111
- display: block;
112
- }
113
-
114
- .overflow-navigation-link {
115
- text-decoration: none;
116
- color: inherit;
117
- }
118
-
119
- .overflow-navigation-details {
120
- --_overflow-navigation-sub-nav-list-margin-block-start: 0;
121
-
122
- &[open] {
123
- --_overflow-navigation-sub-nav-list-margin-block-start: 12px;
124
- }
125
-
126
- &.display-details {
127
- margin-block-end: 0;
128
-
129
- .display-details-summary {
130
- .label {
131
- .overflow-navigation-text {
132
- text-wrap: nowrap;
133
- }
134
- }
135
- /* .icon {} */
136
- }
137
- .display-details-content {
138
- .overflow-navigation-sub-nav-inner {
139
- .overflow-navigation-sub-nav-list {
140
-
141
- display: flex;
142
- flex-direction: column;
143
- gap: 12px;
144
- margin-block-start: var(--_overflow-navigation-sub-nav-list-margin-block-start);
145
- transition: margin-block-start v-bind(detailsAanimationDurationString) ease;
146
-
147
- .overflow-navigation-sub-nav-item {
148
-
149
- .overflow-navigation-sub-nav-link {
150
- text-decoration: none;
151
- color: inherit;
152
-
153
- /* .overflow-navigation-sub-nav-text {} */
154
- }
155
- }
156
- }
157
- }
158
- }
159
- }
160
- }
161
- }
162
- }
163
- }
164
- </style>