srcdev-nuxt-components 9.4.3 → 9.4.5

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 (91) hide show
  1. package/.claude/commands/migrate-component.md +68 -0
  2. package/.claude/component-ledger/artifact-url.txt +1 -0
  3. package/.claude/component-ledger/audit.json +1 -0
  4. package/.claude/component-ledger/build.mjs +111 -0
  5. package/.claude/component-ledger/output.html +559 -0
  6. package/.claude/component-ledger/template.html +559 -0
  7. package/.claude/hooks/refresh-component-ledger.sh +32 -0
  8. package/.claude/settings.json +10 -0
  9. package/.claude/skills/components/animated-svg-text.md +78 -0
  10. package/.claude/skills/components/canvas-switcher.md +61 -0
  11. package/.claude/skills/components/clip-element.md +67 -0
  12. package/.claude/skills/components/clipped-panel.md +64 -0
  13. package/.claude/skills/components/deep-expanding-menu-classic.md +94 -0
  14. package/.claude/skills/components/deep-expanding-menu.md +92 -0
  15. package/.claude/skills/components/display-banner.md +60 -0
  16. package/.claude/skills/components/display-tooltip-defined.md +136 -0
  17. package/.claude/skills/components/display-tooltip.md +84 -0
  18. package/.claude/skills/components/hero-text.md +4 -0
  19. package/.claude/skills/composable-tooltips-guide.md +10 -0
  20. package/.claude/skills/index.md +7 -1
  21. package/.claude/skills/storybook-add-story.md +30 -0
  22. package/.vscode/srcdev-component-animated-svg-text.code-snippets +15 -0
  23. package/.vscode/srcdev-component-canvas-switcher.code-snippets +9 -0
  24. package/.vscode/srcdev-component-clip-element.code-snippets +20 -0
  25. package/.vscode/srcdev-component-clipped-panel.code-snippets +23 -0
  26. package/.vscode/srcdev-component-deep-expanding-menu-classic.code-snippets +9 -0
  27. package/.vscode/srcdev-component-deep-expanding-menu.code-snippets +9 -0
  28. package/.vscode/srcdev-component-display-banner.code-snippets +30 -0
  29. package/.vscode/srcdev-component-display-tooltip-defined.code-snippets +14 -0
  30. package/.vscode/srcdev-component-display-tooltip.code-snippets +27 -0
  31. package/.vscode/srcdev-component-hero-text.code-snippets +16 -0
  32. package/.vscode/srcdev-component-toggle-switch-core.code-snippets +13 -0
  33. package/app/components/01.atoms/animations/animated-svg-text/AnimatedSvgText.vue +58 -0
  34. package/app/components/01.atoms/animations/animated-svg-text/CONSUMER-STYLING.md +34 -0
  35. package/app/components/01.atoms/animations/animated-svg-text/stories/AnimatedSvgText.stories.ts +69 -0
  36. package/app/components/01.atoms/animations/animated-svg-text/tests/AnimatedSvgText.spec.ts +63 -0
  37. package/app/components/01.atoms/animations/animated-svg-text/tests/__snapshots__/AnimatedSvgText.spec.ts.snap +7 -0
  38. package/app/components/01.atoms/animations/clip-element/CONSUMER-STYLING.md +27 -0
  39. package/app/components/{clip-element → 01.atoms/animations/clip-element}/ClipElement.vue +16 -11
  40. package/app/components/01.atoms/animations/clip-element/stories/ClipElement.stories.ts +133 -0
  41. package/app/components/01.atoms/animations/clip-element/tests/ClipElement.spec.ts +70 -0
  42. package/app/components/01.atoms/animations/clip-element/tests/__snapshots__/ClipElement.spec.ts.snap +7 -0
  43. package/app/components/01.atoms/canvas-switcher/CONSUMER-STYLING.md +27 -0
  44. package/app/components/01.atoms/canvas-switcher/CanvasSwitcher.vue +111 -0
  45. package/app/components/01.atoms/canvas-switcher/stories/CanvasSwitcher.stories.ts +75 -0
  46. package/app/components/01.atoms/canvas-switcher/tests/CanvasSwitcher.spec.ts +67 -0
  47. package/app/components/01.atoms/clipped-panel/CONSUMER-STYLING.md +39 -0
  48. package/app/components/01.atoms/clipped-panel/ClippedPanel.vue +68 -0
  49. package/app/components/01.atoms/clipped-panel/stories/ClippedPanel.stories.ts +105 -0
  50. package/app/components/01.atoms/clipped-panel/tests/ClippedPanel.spec.ts +67 -0
  51. package/app/components/01.atoms/clipped-panel/tests/__snapshots__/ClippedPanel.spec.ts.snap +3 -0
  52. package/app/components/01.atoms/display-banner/CONSUMER-STYLING.md +35 -0
  53. package/app/components/{display-banner → 01.atoms/display-banner}/DisplayBanner.vue +13 -35
  54. package/app/components/01.atoms/display-banner/stories/DisplayBanner.stories.ts +100 -0
  55. package/app/components/01.atoms/display-banner/tests/DisplayBanner.spec.ts +78 -0
  56. package/app/components/01.atoms/display-banner/tests/__snapshots__/DisplayBanner.spec.ts.snap +8 -0
  57. package/app/components/01.atoms/display-tooltip/CONSUMER-STYLING.md +62 -0
  58. package/app/components/01.atoms/display-tooltip/DisplayTooltip.vue +185 -0
  59. package/app/components/01.atoms/display-tooltip/stories/DisplayTooltip.stories.ts +94 -0
  60. package/app/components/01.atoms/display-tooltip/tests/DisplayTooltip.spec.ts +75 -0
  61. package/app/components/01.atoms/display-tooltip/tests/__snapshots__/DisplayTooltip.spec.ts.snap +12 -0
  62. package/app/components/01.atoms/text-blocks/hero-text/HeroText.vue +7 -5
  63. package/app/components/02.molecules/display-tooltip-defined/CONSUMER-STYLING.md +42 -0
  64. package/app/components/02.molecules/display-tooltip-defined/DisplayTooltipDefined.vue +103 -0
  65. package/app/components/02.molecules/display-tooltip-defined/stories/DisplayTooltipDefined.stories.ts +126 -0
  66. package/app/components/02.molecules/display-tooltip-defined/tests/DisplayTooltipDefined.spec.ts +66 -0
  67. package/app/components/02.molecules/display-tooltip-defined/tests/__snapshots__/DisplayTooltipDefined.spec.ts.snap +17 -0
  68. package/app/components/02.molecules/navigation/deep-expanding-menu/CONSUMER-STYLING.md +44 -0
  69. package/app/components/{deep-expanding-menu → 02.molecules/navigation/deep-expanding-menu}/DeepExpandingMenu.vue +53 -64
  70. package/app/components/02.molecules/navigation/deep-expanding-menu/stories/DeepExpandingMenu.stories.ts +79 -0
  71. package/app/components/02.molecules/navigation/deep-expanding-menu/tests/DeepExpandingMenu.spec.ts +92 -0
  72. package/app/components/02.molecules/navigation/deep-expanding-menu/tests/__snapshots__/DeepExpandingMenu.spec.ts.snap +17 -0
  73. package/app/components/02.molecules/navigation/deep-expanding-menu-classic/CONSUMER-STYLING.md +40 -0
  74. package/app/components/02.molecules/navigation/deep-expanding-menu-classic/DeepExpandingMenuClassic.vue +200 -0
  75. package/app/components/02.molecules/navigation/deep-expanding-menu-classic/stories/DeepExpandingMenuClassic.stories.ts +79 -0
  76. package/app/components/02.molecules/navigation/deep-expanding-menu-classic/tests/DeepExpandingMenuClassic.spec.ts +82 -0
  77. package/app/components/02.molecules/navigation/deep-expanding-menu-classic/tests/__snapshots__/DeepExpandingMenuClassic.spec.ts.snap +18 -0
  78. package/app/components/05.forms/toggle-switch/CONSUMER-STYLING.md +17 -0
  79. package/app/components/05.forms/toggle-switch/ToggleSwitchCore.vue +18 -1
  80. package/app/components/05.forms/toggle-switch/stories/ToggleSwitchCore.stories.ts +17 -2
  81. package/app/types/components/display-tooltip-defined.d.ts +10 -0
  82. package/app/types/components/index.ts +1 -0
  83. package/package.json +1 -1
  84. package/app/components/animated-svg-text/AnimatedSvgText.vue +0 -89
  85. package/app/components/canvas-switcher/CanvasSwitcher.vue +0 -104
  86. package/app/components/clipped-panels/ClippedPanel.vue +0 -87
  87. package/app/components/deep-expanding-menu/DeepExpandingMenuOld.vue +0 -218
  88. package/app/components/display-details/DisplayDetailsCore.vue +0 -122
  89. package/app/components/display-tooltip/DisplayTooltip.vue +0 -170
  90. package/app/components/display-tooltip/DisplayTooltipDefined.vue +0 -103
  91. package/app/components/magnetic-navigation/MagneticNavigation.vue +0 -162
@@ -1,103 +0,0 @@
1
- <template>
2
- <DisplayTooltip :tooltip-id="tooltipId" :style-class-passthrough>
3
- <template v-if="slots.triggerContent" #triggerContent>
4
- <slot name="triggerContent"></slot>
5
- </template>
6
- <template #tooltipContent>
7
- <div class="popover-content-defined">
8
- <component
9
- :is="props.contentText.tooltipTitle?.tag"
10
- v-if="props.contentText.tooltipTitle"
11
- class="tooltip-title subtitle-sm"
12
- >
13
- {{ props.contentText.tooltipTitle.text }}
14
- </component>
15
- <component
16
- :is="props.contentText.tooltipContent?.tag"
17
- v-if="props.contentText.tooltipContent"
18
- class="tooltip-body body-sm"
19
- >
20
- {{ props.contentText.tooltipContent.text }}
21
- </component>
22
- <component
23
- :is="props.contentText.tooltipAction?.tag"
24
- v-if="props.contentText.tooltipAction"
25
- class="tooltip-action input-value"
26
- >
27
- {{ props.contentText.tooltipAction.text }}
28
- </component>
29
- <button
30
- :popovertarget="tooltipId"
31
- popovertargetaction="hide"
32
- class="display-tooltip-close-button"
33
- aria-label="Close tool tip"
34
- >
35
- Close
36
- </button>
37
- </div>
38
- </template>
39
- </DisplayTooltip>
40
- </template>
41
-
42
- <script lang="ts">
43
- export interface TooltipContentText {
44
- tooltipTitle?: {
45
- tag: string
46
- text: string
47
- }
48
- tooltipContent?: {
49
- tag: string
50
- text: string
51
- }
52
- tooltipAction?: {
53
- tag: string
54
- text: string
55
- }
56
- }
57
- </script>
58
-
59
- <script setup lang="ts">
60
- const props = defineProps({
61
- tooltipId: {
62
- type: String,
63
- default: "",
64
- },
65
- contentText: {
66
- type: Object as PropType<TooltipContentText>,
67
- default: () => ({}),
68
- },
69
- styleClassPassthrough: {
70
- type: [String, Array] as PropType<string | string[]>,
71
- default: () => [],
72
- },
73
- })
74
-
75
- const slots = useSlots()
76
- const tooltipId = computed(() => {
77
- return props.tooltipId.length ? `nuxt-tooltip-${props.tooltipId}` : `nuxt-tooltip-${useId()}`
78
- })
79
- </script>
80
-
81
- <style lang="css">
82
- @layer components {
83
- .display-tooltip-core {
84
- .popover {
85
- .popover-content {
86
- .popover-content-defined {
87
- .tooltip-title {
88
- color: var(--nuxt-text-white-header);
89
- }
90
-
91
- .tooltip-body {
92
- color: var(--nuxt-text-white-body);
93
- }
94
-
95
- .tooltip-action {
96
- color: var(--nuxt-text-white-body);
97
- }
98
- }
99
- }
100
- }
101
- }
102
- }
103
- </style>
@@ -1,162 +0,0 @@
1
- <template>
2
- <component :is="tag" class="magnetic-navigation" :class="[elementClasses]">
3
- <nav>
4
- <ul>
5
- <li><a href="#">Home</a></li>
6
- <li><a href="#">About</a></li>
7
- <li><a href="#">Blog</a></li>
8
- <li><a href="#">Contact</a></li>
9
- </ul>
10
- </nav>
11
- </component>
12
- </template>
13
-
14
- <script setup lang="ts">
15
- const props = defineProps({
16
- tag: {
17
- type: String,
18
- default: "div",
19
- validator(value: string) {
20
- return ["div", "header", "footer", "nav"].includes(value)
21
- },
22
- },
23
- styleClassPassthrough: {
24
- type: [String, Array] as PropType<string | string[]>,
25
- default: () => [],
26
- },
27
- })
28
-
29
- const { elementClasses, resetElementClasses } = useStyleClassPassthrough(props.styleClassPassthrough)
30
-
31
- watch(
32
- () => props.styleClassPassthrough,
33
- () => {
34
- resetElementClasses(props.styleClassPassthrough)
35
- }
36
- )
37
- </script>
38
-
39
- <style lang="css">
40
- @layer components {
41
- .magnetic-navigation {
42
- /*
43
- --_background-image: url("/images/rotating-carousel/image-3.webp");
44
-
45
- background-image: var(--_background-image);
46
- background-size: cover;
47
- background-position: 0 -400px;
48
- background-attachment: fixed;
49
- */
50
- /* padding-block: 200px 2000px; */
51
-
52
- nav {
53
- width: fit-content;
54
- margin: 3rem auto;
55
- background: hsl(0 0% 0% / 0.8);
56
-
57
- padding: 8px;
58
- border-radius: 8px;
59
-
60
- isolation: isolate;
61
-
62
- anchor-name: --hovered-link;
63
-
64
- li:hover {
65
- anchor-name: --hovered-link;
66
- }
67
-
68
- &::before,
69
- &::after {
70
- content: "";
71
- position: absolute;
72
- top: calc(anchor(bottom) - 10px);
73
- left: calc(anchor(left) + 1rem);
74
- right: calc(anchor(right) + 1rem);
75
- bottom: calc(anchor(bottom) + 5px);
76
- border-radius: 10px;
77
-
78
- position-anchor: --hovered-link;
79
-
80
- transition: 500ms
81
- linear(
82
- 0,
83
- 0.029 1.6%,
84
- 0.123 3.5%,
85
- 0.651 10.6%,
86
- 0.862 14.1%,
87
- 1.002 17.7%,
88
- 1.046 19.6%,
89
- 1.074 21.6%,
90
- 1.087 23.9%,
91
- 1.086 26.6%,
92
- 1.014 38.5%,
93
- 0.994 46.3%,
94
- 1
95
- );
96
- }
97
-
98
- &::before {
99
- z-index: -1;
100
- background: rgb(0 0 0 / 0.2);
101
- backdrop-filter: blur(2px);
102
- }
103
-
104
- &::after {
105
- z-index: -2;
106
- background-image: var(--_background-image);
107
- background-size: cover;
108
- background-position: var(--_background-position);
109
- background-attachment: fixed;
110
- }
111
-
112
- &:has(a:hover)::before,
113
- &:has(a:hover)::after {
114
- top: anchor(top);
115
- left: anchor(left);
116
- right: anchor(right);
117
- bottom: anchor(bottom);
118
-
119
- @supports (corner-shape: squircle) {
120
- corner-shape: squircle;
121
- border-radius: 50%;
122
- }
123
- }
124
-
125
- &:has(li:first-of-type a:hover)::before,
126
- &:has(li:first-of-type a:hover)::after {
127
- @supports (corner-shape: squircle) {
128
- border-radius: 32px 50% 50% 32px;
129
- }
130
- }
131
-
132
- &:has(li:last-of-type a:hover)::before,
133
- &:has(li:last-of-type a:hover)::after {
134
- @supports (corner-shape: squircle) {
135
- border-radius: 50% 32px 32px 50%;
136
- }
137
- }
138
-
139
- @supports (corner-shape: squircle) {
140
- border-radius: 24px;
141
- corner-shape: squircle;
142
- }
143
-
144
- > ul {
145
- padding: 0;
146
- margin: 0;
147
- list-style: none;
148
- display: flex;
149
- gap: 24px;
150
-
151
- a {
152
- display: block;
153
- padding: 1rem;
154
- text-decoration: none;
155
- color: white;
156
- font-size: var(--step-7);
157
- }
158
- }
159
- }
160
- }
161
- }
162
- </style>