@alphacifer/slidev-addon-theme 0.0.5 → 0.0.6

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 (84) hide show
  1. package/README.md +127 -2
  2. package/components/arc-arrow-process/ArcArrowProcess.vue +361 -0
  3. package/components/arc-arrow-process/ArcArrowProcessArrow.vue +143 -0
  4. package/components/arc-arrow-process/ArcArrowProcessCallout.vue +361 -0
  5. package/components/arc-arrow-process/ArcArrowProcessContent.vue +38 -0
  6. package/components/arc-arrow-process/ArcArrowProcessHeading.vue +43 -0
  7. package/components/arc-arrow-process/ArcArrowProcessIcon.vue +154 -0
  8. package/components/arc-compare/ArcCompare.vue +443 -0
  9. package/components/arc-compare/ArcCompareBadge.vue +63 -0
  10. package/components/arc-compare/ArcCompareCallout.vue +386 -0
  11. package/components/arc-compare/ArcCompareContent.vue +52 -0
  12. package/components/arc-compare/ArcCompareContents.vue +18 -0
  13. package/components/arc-compare/ArcCompareHeading.vue +52 -0
  14. package/components/arc-compare/ArcCompareLeft.vue +183 -0
  15. package/components/arc-compare/ArcCompareRight.vue +183 -0
  16. package/components/arc-compare/ArcCompareTitle.vue +47 -0
  17. package/components/arrow-triad/ArrowTriad.vue +368 -0
  18. package/components/arrow-triad/ArrowTriadCallout.vue +300 -0
  19. package/components/arrow-triad/ArrowTriadContent.vue +38 -0
  20. package/components/arrow-triad/ArrowTriadHeading.vue +38 -0
  21. package/components/arrow-triad/ArrowTriadIcon.vue +96 -0
  22. package/components/chevron-card/ChevronCard.vue +237 -0
  23. package/components/chevron-card/ChevronCardBadge.vue +74 -0
  24. package/components/chevron-card/ChevronCardContent.vue +39 -0
  25. package/components/chevron-card/ChevronCardHeading.vue +39 -0
  26. package/components/hex-triad/HexTriad.vue +438 -0
  27. package/components/hex-triad/HexTriadBadge.vue +110 -0
  28. package/components/hex-triad/HexTriadCallout.vue +200 -0
  29. package/components/hex-triad/HexTriadCenterBadge.vue +51 -0
  30. package/components/hex-triad/HexTriadContent.vue +20 -0
  31. package/components/hex-triad/HexTriadHeading.vue +28 -0
  32. package/components/hex-triad/HexTriadLayer.vue +28 -0
  33. package/components/horiz-card/HorizCard.vue +318 -0
  34. package/components/horiz-card/HorizCardBadge.vue +75 -0
  35. package/components/horiz-card/HorizCardContent.vue +46 -0
  36. package/components/horiz-card/HorizCardHeading.vue +47 -0
  37. package/components/horiz-card/HorizCardIcon.vue +118 -0
  38. package/components/quad-hub/QuadHub.vue +642 -0
  39. package/components/quad-hub/QuadHubCallout.vue +267 -0
  40. package/components/quad-hub/QuadHubCenter.vue +53 -0
  41. package/components/quad-hub/QuadHubContent.vue +39 -0
  42. package/components/quad-hub/QuadHubHeading.vue +44 -0
  43. package/components/quad-hub/QuadHubIcon.vue +112 -0
  44. package/components/shifting-heading/TransitionHeading.vue +2 -2
  45. package/components/vert-card/VertCard.vue +389 -0
  46. package/components/vert-card/VertCardBadge.vue +72 -0
  47. package/components/vert-card/VertCardContent.vue +45 -0
  48. package/components/vert-card/VertCardHeading.vue +68 -0
  49. package/components/vert-card/VertCardIcon.vue +126 -0
  50. package/components/vert-card/VertCardTitle.vue +76 -0
  51. package/layouts/core/arc-toc.vue +76 -113
  52. package/layouts/core/bg-center.vue +32 -4
  53. package/layouts/shifting-heading/shifting-intro.vue +35 -7
  54. package/package.json +3 -2
  55. package/utils/arcArrowProcess/context.ts +28 -0
  56. package/utils/arcArrowProcess/createArcArrowProcessGeometry.ts +137 -0
  57. package/utils/arcArrowProcess/index.ts +3 -0
  58. package/utils/arcArrowProcess/resolveArcArrowProcessItems.ts +189 -0
  59. package/utils/arcCompare/context.ts +36 -0
  60. package/utils/arcCompare/createArcCompareGeometry.ts +254 -0
  61. package/utils/arcCompare/index.ts +3 -0
  62. package/utils/arcCompare/resolveArcCompareItems.ts +123 -0
  63. package/utils/arrowTriad/context.ts +38 -0
  64. package/utils/arrowTriad/createArrowTriadGeometry.ts +63 -0
  65. package/utils/arrowTriad/index.ts +3 -0
  66. package/utils/arrowTriad/resolveArrowTriadItems.ts +121 -0
  67. package/utils/chevronCard/context.ts +12 -0
  68. package/utils/chevronCard/createChevronCardGeometry.ts +48 -0
  69. package/utils/chevronCard/index.ts +2 -0
  70. package/utils/hexTriad/context.ts +25 -0
  71. package/utils/hexTriad/createHexTriadGeometry.ts +182 -0
  72. package/utils/hexTriad/index.ts +3 -0
  73. package/utils/hexTriad/resolveHexTriadItems.ts +63 -0
  74. package/utils/horizCard/context.ts +13 -0
  75. package/utils/horizCard/createHorizCardGeometry.ts +243 -0
  76. package/utils/horizCard/index.ts +2 -0
  77. package/utils/quadHub/context.ts +26 -0
  78. package/utils/quadHub/createQuadHubGeometry.ts +331 -0
  79. package/utils/quadHub/index.ts +3 -0
  80. package/utils/quadHub/resolveQuadHubItems.ts +214 -0
  81. package/utils/useDiagramAutoScale.ts +300 -0
  82. package/utils/vertCard/context.ts +18 -0
  83. package/utils/vertCard/createVertCardGeometry.ts +242 -0
  84. package/utils/vertCard/index.ts +2 -0
@@ -0,0 +1,75 @@
1
+ <script setup lang="ts">
2
+ import { computed, inject } from 'vue';
3
+
4
+ import {
5
+ createHorizCardBadgePath,
6
+ HORIZ_CARD_KEY,
7
+ } from '../../utils/horizCard';
8
+ import { useMergedUnoAttrs } from '../../utils/useMergedUnoAttrs';
9
+
10
+ defineOptions({
11
+ inheritAttrs: false,
12
+ name: 'HorizCardBadge',
13
+ });
14
+
15
+ export interface IHorizCardBadgeProps {
16
+ /**
17
+ * Badge fill color. Overrides context color.
18
+ */
19
+ readonly color?: string;
20
+ /**
21
+ * Badge text or step number. Overrides context step.
22
+ */
23
+ readonly step?: string | number;
24
+ }
25
+
26
+ const props = withDefaults(defineProps<IHorizCardBadgeProps>(), {
27
+ step: undefined,
28
+ color: undefined,
29
+ });
30
+
31
+ const context = inject(HORIZ_CARD_KEY, undefined);
32
+
33
+ const resolvedColor = computed(() => {
34
+ return props.color ?? context?.color.value ?? '#ea583a';
35
+ });
36
+
37
+ const resolvedStep = computed(() => {
38
+ return props.step ?? context?.step.value ?? '01';
39
+ });
40
+
41
+ const badgePath = createHorizCardBadgePath({
42
+ width: 84,
43
+ height: 58,
44
+ tipRadius: 8,
45
+ topRadius: 12,
46
+ sideHeight: 46,
47
+ bottomRadius: 8,
48
+ });
49
+
50
+ const { className, forwardedAttrs } = useMergedUnoAttrs(
51
+ 'alpha-horiz-card-badge inline-flex items-center justify-center select-none',
52
+ );
53
+ </script>
54
+
55
+ <template>
56
+ <div v-bind="forwardedAttrs()" :class="className()">
57
+ <svg
58
+ class="w-[84px] h-[58px] overflow-visible drop-shadow-sm"
59
+ viewBox="0 0 84 58"
60
+ xmlns="http://www.w3.org/2000/svg"
61
+ >
62
+ <path :d="badgePath" :fill="resolvedColor" />
63
+ <text
64
+ x="42"
65
+ y="27"
66
+ text-anchor="middle"
67
+ dominant-baseline="central"
68
+ fill="#ffffff"
69
+ class="font-sans font-bold text-[25px] tracking-tight"
70
+ >
71
+ <slot>{{ resolvedStep }}</slot>
72
+ </text>
73
+ </svg>
74
+ </div>
75
+ </template>
@@ -0,0 +1,46 @@
1
+ <script setup lang="ts">
2
+ import { computed, inject } from 'vue';
3
+
4
+ import { HORIZ_CARD_KEY } from '../../utils/horizCard';
5
+ import { useMergedUnoAttrs } from '../../utils/useMergedUnoAttrs';
6
+
7
+ defineOptions({
8
+ inheritAttrs: false,
9
+ name: 'HorizCardContent',
10
+ });
11
+
12
+ export interface IHorizCardContentProps {
13
+ /**
14
+ * Content text color. Overrides context textColor.
15
+ */
16
+ readonly color?: string;
17
+ }
18
+
19
+ const props = withDefaults(defineProps<IHorizCardContentProps>(), {
20
+ color: undefined,
21
+ });
22
+
23
+ const context = inject(HORIZ_CARD_KEY, undefined);
24
+
25
+ const contentColor = computed(() => {
26
+ return props.color ?? context?.textColor.value ?? undefined;
27
+ });
28
+
29
+ const { className, forwardedAttrs } = useMergedUnoAttrs(
30
+ 'alpha-horiz-card-content font-sans text-xs leading-relaxed text-slate-600 dark:text-slate-300 opacity-90',
31
+ );
32
+ </script>
33
+
34
+ <template>
35
+ <p
36
+ v-bind="forwardedAttrs()"
37
+ :class="className()"
38
+ :style="contentColor ? { color: contentColor } : undefined"
39
+ >
40
+ <slot>
41
+ Lorem ipsum dolor sit amet, nibh est. A magna maecenas, quam magna nec
42
+ quis, lorem nunc. Suspendisse viverra sodales mauris, cras pharetra proin
43
+ egestas.
44
+ </slot>
45
+ </p>
46
+ </template>
@@ -0,0 +1,47 @@
1
+ <script setup lang="ts">
2
+ import { computed, inject } from 'vue';
3
+
4
+ import { HORIZ_CARD_KEY } from '../../utils/horizCard';
5
+ import { useMergedUnoAttrs } from '../../utils/useMergedUnoAttrs';
6
+
7
+ defineOptions({
8
+ inheritAttrs: false,
9
+ name: 'HorizCardHeading',
10
+ });
11
+
12
+ export interface IHorizCardHeadingProps {
13
+ /**
14
+ * Title text color. Overrides context titleColor.
15
+ */
16
+ readonly color?: string;
17
+ }
18
+
19
+ const props = withDefaults(defineProps<IHorizCardHeadingProps>(), {
20
+ color: undefined,
21
+ });
22
+
23
+ const context = inject(HORIZ_CARD_KEY, undefined);
24
+
25
+ const headingColor = computed(() => {
26
+ return (
27
+ props.color ??
28
+ context?.titleColor.value ??
29
+ context?.color.value ??
30
+ '#ea583a'
31
+ );
32
+ });
33
+
34
+ const { className, forwardedAttrs } = useMergedUnoAttrs(
35
+ 'alpha-horiz-card-heading font-sans font-bold text-xl tracking-tight leading-tight',
36
+ );
37
+ </script>
38
+
39
+ <template>
40
+ <h3
41
+ v-bind="forwardedAttrs()"
42
+ :class="className()"
43
+ :style="{ color: headingColor }"
44
+ >
45
+ <slot>Lorem Ipsum</slot>
46
+ </h3>
47
+ </template>
@@ -0,0 +1,118 @@
1
+ <script setup lang="ts">
2
+ import { computed, inject } from 'vue';
3
+
4
+ import { HORIZ_CARD_KEY, hexToRgba } from '../../utils/horizCard';
5
+ import { useMergedUnoAttrs } from '../../utils/useMergedUnoAttrs';
6
+
7
+ defineOptions({
8
+ inheritAttrs: false,
9
+ name: 'HorizCardIcon',
10
+ });
11
+
12
+ export interface IHorizCardIconProps {
13
+ /**
14
+ * Optional icon class (e.g. 'i-carbon-search') or component.
15
+ */
16
+ readonly icon?: string | object;
17
+ /**
18
+ * Foreground icon color. Overrides context color.
19
+ */
20
+ readonly color?: string;
21
+ /**
22
+ * Circular background color. Overrides context lightColor.
23
+ */
24
+ readonly lightColor?: string;
25
+ /**
26
+ * Circle size in pixels or CSS string.
27
+ * @default 96
28
+ */
29
+ readonly size?: number | string;
30
+ }
31
+
32
+ const props = withDefaults(defineProps<IHorizCardIconProps>(), {
33
+ size: 96,
34
+ icon: undefined,
35
+ color: undefined,
36
+ lightColor: undefined,
37
+ });
38
+
39
+ const context = inject(HORIZ_CARD_KEY, undefined);
40
+
41
+ const resolvedColor = computed(() => {
42
+ return props.color ?? context?.color.value ?? '#ea583a';
43
+ });
44
+
45
+ const resolvedLightColor = computed(() => {
46
+ if (props.lightColor) {
47
+ return props.lightColor;
48
+ }
49
+
50
+ if (context?.lightColor.value) {
51
+ return context.lightColor.value;
52
+ }
53
+
54
+ return hexToRgba({
55
+ hex: resolvedColor.value,
56
+ alpha: 0.16,
57
+ });
58
+ });
59
+
60
+ const resolvedSize = computed(() => {
61
+ if (typeof props.size === 'number') {
62
+ return `${props.size}px`;
63
+ }
64
+
65
+ return props.size;
66
+ });
67
+
68
+ const isStringIcon = computed(() => typeof props.icon === 'string');
69
+ const isComponentIcon = computed(() => {
70
+ return typeof props.icon === 'object' && props.icon !== null;
71
+ });
72
+
73
+ const { className, forwardedAttrs } = useMergedUnoAttrs(
74
+ 'alpha-horiz-card-icon rounded-full flex items-center justify-center flex-shrink-0 transition-transform duration-300 select-none',
75
+ );
76
+ </script>
77
+
78
+ <template>
79
+ <div
80
+ v-bind="forwardedAttrs()"
81
+ :class="className()"
82
+ :style="{
83
+ width: resolvedSize,
84
+ height: resolvedSize,
85
+ backgroundColor: resolvedLightColor,
86
+ color: resolvedColor,
87
+ }"
88
+ >
89
+ <slot>
90
+ <component
91
+ :is="props.icon"
92
+ v-if="isComponentIcon"
93
+ class="text-4xl"
94
+ :style="{ color: resolvedColor }"
95
+ />
96
+ <div
97
+ v-else-if="isStringIcon"
98
+ :class="props.icon"
99
+ class="text-4xl"
100
+ :style="{ color: resolvedColor }"
101
+ />
102
+ <!-- Default search icon matching the reference card -->
103
+ <svg
104
+ v-else
105
+ class="w-12 h-12"
106
+ viewBox="0 0 24 24"
107
+ fill="none"
108
+ stroke="currentColor"
109
+ stroke-width="2.5"
110
+ stroke-linecap="round"
111
+ stroke-linejoin="round"
112
+ >
113
+ <circle cx="11" cy="11" r="7" />
114
+ <line x1="16.5" y1="16.5" x2="21" y2="21" stroke-width="3" stroke-linecap="round" />
115
+ </svg>
116
+ </slot>
117
+ </div>
118
+ </template>