@alphacifer/slidev-addon-theme 0.0.10 → 0.0.12

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 (227) hide show
  1. package/README.md +134 -76
  2. package/components/card/chevron-card/ChevronCard.vue +44 -32
  3. package/components/card/chevron-card/ChevronCardBadge.vue +14 -8
  4. package/components/card/chevron-card/ChevronCardContent.vue +15 -13
  5. package/components/card/chevron-card/style.css +12 -0
  6. package/components/card/{horiz-card/HorizCard.vue → horizontal-card/HorizontalCard.vue} +78 -85
  7. package/components/card/{horiz-card/HorizCardBadge.vue → horizontal-card/HorizontalCardBadge.vue} +15 -10
  8. package/components/card/{horiz-card/HorizCardContent.vue → horizontal-card/HorizontalCardContent.vue} +11 -11
  9. package/components/card/{horiz-card/HorizCardIcon.vue → horizontal-card/HorizontalCardIcon.vue} +24 -38
  10. package/components/card/horizontal-card/style.css +17 -0
  11. package/components/card/{vert-card/VertCard.vue → vertical-card/VerticalCard.vue} +80 -103
  12. package/components/card/{vert-card/VertCardBadge.vue → vertical-card/VerticalCardBadge.vue} +15 -10
  13. package/components/card/{vert-card/VertCardContent.vue → vertical-card/VerticalCardContent.vue} +13 -12
  14. package/components/card/{vert-card/VertCardIcon.vue → vertical-card/VerticalCardIcon.vue} +15 -33
  15. package/components/card/vertical-card/style.css +19 -0
  16. package/components/comparisons/arc-comparison/ArcComparison.vue +376 -80
  17. package/components/comparisons/arc-comparison/ArcComparisonBadge.vue +9 -4
  18. package/components/comparisons/arc-comparison/ArcComparisonContent.vue +9 -4
  19. package/components/comparisons/arc-comparison/ArcComparisonHeading.vue +9 -4
  20. package/components/comparisons/arc-comparison/ArcComparisonLeft.vue +39 -63
  21. package/components/comparisons/arc-comparison/ArcComparisonOrbit.vue +9 -8
  22. package/components/comparisons/arc-comparison/ArcComparisonRight.vue +39 -63
  23. package/components/comparisons/arc-comparison/style.css +27 -0
  24. package/components/comparisons/table-comparison/TableComparison.vue +8 -90
  25. package/components/comparisons/table-comparison/TableComparisonCell.vue +22 -20
  26. package/components/comparisons/table-comparison/{TableComparisonCol.vue → TableComparisonColumn.vue} +16 -14
  27. package/components/comparisons/table-comparison/{TableComparisonCols.vue → TableComparisonColumns.vue} +5 -8
  28. package/components/comparisons/table-comparison/TableComparisonRow.vue +10 -14
  29. package/components/comparisons/table-comparison/TableComparisonRows.vue +1 -4
  30. package/components/comparisons/table-comparison/style.css +15 -0
  31. package/components/core/Date.vue +2 -5
  32. package/components/core/MetaList.vue +50 -0
  33. package/components/core/QnA.vue +1 -1
  34. package/components/core/Quote.vue +3 -6
  35. package/components/core/ReflectedTitle.vue +2 -6
  36. package/components/core/Speaker.vue +6 -11
  37. package/components/core/TransitionHeading.vue +2 -5
  38. package/components/core/arc-orbit/ArcOrbit.vue +65 -84
  39. package/components/core/arc-orbit/ArcOrbitBadge.vue +9 -11
  40. package/components/core/arc-orbit/ArcOrbitCallout.vue +19 -23
  41. package/components/core/arc-orbit/ArcOrbitContent.vue +6 -12
  42. package/components/core/arc-orbit/ArcOrbitHeading.vue +13 -11
  43. package/components/core/arc-orbit/style.css +20 -0
  44. package/components/core/style.css +9 -0
  45. package/components/core/thanks/{ThanksContent.vue → SquareThanks.vue} +36 -31
  46. package/components/core/thanks/SquareThanksContent.vue +87 -0
  47. package/components/core/thanks/ThanksOutlineSquare.vue +2 -5
  48. package/components/core/thanks/ThanksSquare.vue +2 -5
  49. package/components/core/thanks/style.css +30 -0
  50. package/components/defense-in-depth/{arc-did/ArcDiD.vue → arc-defense-in-depth/ArcDefenseInDepth.vue} +167 -97
  51. package/components/defense-in-depth/arc-defense-in-depth/ArcDefenseInDepthLayer.vue +240 -0
  52. package/components/defense-in-depth/{arc-did/ArcDiDLayerTitle.vue → arc-defense-in-depth/ArcDefenseInDepthLayerHeading.vue} +27 -29
  53. package/components/defense-in-depth/{arc-did/ArcDiDLayerPart.vue → arc-defense-in-depth/ArcDefenseInDepthLayerPart.vue} +91 -39
  54. package/components/defense-in-depth/{arc-did/ArcDiDLayerSector.vue → arc-defense-in-depth/ArcDefenseInDepthLayerSector.vue} +37 -23
  55. package/components/defense-in-depth/arc-defense-in-depth/style.css +38 -0
  56. package/components/facets/tetrad/{rect-orbit-tetrad/RectOrbitTetrad.vue → rectangle-orbit-tetrad/RectangleOrbitTetrad.vue} +66 -63
  57. package/components/facets/tetrad/{rect-orbit-tetrad/RectOrbitTetradCallout.vue → rectangle-orbit-tetrad/RectangleOrbitTetradCallout.vue} +58 -46
  58. package/components/facets/tetrad/rectangle-orbit-tetrad/RectangleOrbitTetradCenter.vue +54 -0
  59. package/components/facets/tetrad/rectangle-orbit-tetrad/RectangleOrbitTetradContent.vue +44 -0
  60. package/components/facets/tetrad/rectangle-orbit-tetrad/RectangleOrbitTetradHeading.vue +27 -0
  61. package/components/facets/tetrad/{rect-orbit-tetrad/RectOrbitTetradIcon.vue → rectangle-orbit-tetrad/RectangleOrbitTetradIcon.vue} +23 -13
  62. package/components/facets/tetrad/rectangle-orbit-tetrad/style.css +22 -0
  63. package/components/facets/triad/arrow-triad/ArrowTriad.vue +99 -109
  64. package/components/facets/triad/arrow-triad/ArrowTriadCallout.vue +31 -59
  65. package/components/facets/triad/arrow-triad/ArrowTriadContent.vue +18 -13
  66. package/components/facets/triad/arrow-triad/ArrowTriadHeading.vue +20 -13
  67. package/components/facets/triad/arrow-triad/ArrowTriadIcon.vue +14 -9
  68. package/components/facets/triad/arrow-triad/style.css +15 -0
  69. package/components/facets/triad/gear-triad/GearTriad.vue +73 -64
  70. package/components/facets/triad/gear-triad/GearTriadCallout.vue +58 -53
  71. package/components/facets/triad/gear-triad/GearTriadCenter.vue +9 -4
  72. package/components/facets/triad/gear-triad/GearTriadContent.vue +21 -36
  73. package/components/facets/triad/gear-triad/GearTriadDetail.vue +92 -0
  74. package/components/facets/triad/gear-triad/GearTriadDetails.vue +169 -0
  75. package/components/facets/triad/gear-triad/GearTriadDetailsContent.vue +18 -0
  76. package/components/facets/triad/gear-triad/GearTriadDetailsHeading.vue +60 -0
  77. package/components/facets/triad/gear-triad/GearTriadHeading.vue +19 -13
  78. package/components/facets/triad/gear-triad/GearTriadIcon.vue +22 -9
  79. package/components/facets/triad/gear-triad/style.css +26 -0
  80. package/components/facets/triad/{hex-triad/HexTriad.vue → hexagon-triad/HexagonTriad.vue} +81 -63
  81. package/components/facets/triad/{hex-triad/HexTriadBadge.vue → hexagon-triad/HexagonTriadBadge.vue} +38 -12
  82. package/components/facets/triad/{hex-triad/HexTriadCallout.vue → hexagon-triad/HexagonTriadCallout.vue} +35 -31
  83. package/components/facets/triad/hexagon-triad/HexagonTriadCenterBadge.vue +74 -0
  84. package/components/facets/triad/hexagon-triad/HexagonTriadContent.vue +34 -0
  85. package/components/facets/triad/hexagon-triad/HexagonTriadHeading.vue +44 -0
  86. package/components/facets/triad/{hex-triad/HexTriadLayer.vue → hexagon-triad/HexagonTriadLayer.vue} +12 -4
  87. package/components/facets/triad/hexagon-triad/style.css +22 -0
  88. package/components/process/arc-arrow-process/ArcArrowProcess.vue +13 -35
  89. package/components/process/arc-arrow-process/ArcArrowProcessArrow.vue +20 -21
  90. package/components/process/arc-arrow-process/ArcArrowProcessCallout.vue +30 -71
  91. package/components/process/arc-arrow-process/ArcArrowProcessContent.vue +18 -13
  92. package/components/process/arc-arrow-process/ArcArrowProcessHeading.vue +18 -18
  93. package/components/process/arc-arrow-process/ArcArrowProcessIcon.vue +23 -11
  94. package/components/process/arc-arrow-process/style.css +20 -0
  95. package/components/pyramid/circular-pyramid/CircularPyramid.vue +269 -170
  96. package/components/pyramid/circular-pyramid/CircularPyramidStack.vue +70 -52
  97. package/components/pyramid/circular-pyramid/CircularPyramidStackContent.vue +47 -37
  98. package/components/pyramid/circular-pyramid/{CircularPyramidStackTitle.vue → CircularPyramidStackHeading.vue} +49 -45
  99. package/components/pyramid/circular-pyramid/style.css +26 -0
  100. package/components/pyramid/square-pyramid/SquarePyramid.vue +191 -62
  101. package/components/pyramid/square-pyramid/SquarePyramidStack.vue +74 -49
  102. package/components/pyramid/square-pyramid/SquarePyramidStackContent.vue +47 -33
  103. package/components/pyramid/square-pyramid/{SquarePyramidStackTitle.vue → SquarePyramidStackHeading.vue} +49 -41
  104. package/components/pyramid/square-pyramid/style.css +48 -0
  105. package/components/style.css +35 -0
  106. package/layouts/core/arc-toc.vue +40 -45
  107. package/layouts/core/bg-center.vue +7 -6
  108. package/layouts/core/references.vue +84 -0
  109. package/layouts/core/style.css +47 -0
  110. package/layouts/shifting-heading/shifting-intro.vue +4 -13
  111. package/layouts/thanks/thanks.vue +5 -5
  112. package/package.json +7 -5
  113. package/style.css +17 -0
  114. package/uno.config.ts +1 -0
  115. package/utils/activateOnKeyboard.ts +14 -0
  116. package/utils/{chevronCard → card/chevron-card}/context.ts +1 -1
  117. package/utils/card/chevron-card/index.ts +1 -0
  118. package/utils/card/horizontal-card/context.ts +12 -0
  119. package/utils/{horizCard/createHorizCardGeometry.ts → card/horizontal-card/createHorizontalCardGeometry.ts} +10 -45
  120. package/utils/card/horizontal-card/index.ts +2 -0
  121. package/utils/card/vertical-card/context.ts +19 -0
  122. package/utils/{vertCard/createVertCardGeometry.ts → card/vertical-card/createVerticalCardGeometry.ts} +9 -130
  123. package/utils/card/vertical-card/index.ts +2 -0
  124. package/utils/colors.ts +93 -0
  125. package/utils/{arcComparison → comparisons/arc-comparison}/context.ts +0 -11
  126. package/utils/{arcComparison → comparisons/arc-comparison}/createArcComparisonGeometry.ts +1 -1
  127. package/utils/comparisons/arc-comparison/resolveArcComparisonItems.ts +33 -0
  128. package/utils/comparisons/table-comparison/constants.ts +47 -0
  129. package/utils/{tableComparison → comparisons/table-comparison}/context.ts +2 -2
  130. package/utils/{arcOrbit → core/arc-orbit}/resolveArcOrbitItems.ts +11 -15
  131. package/utils/{defenseInDepth/arcDid → defense-in-depth/arc-defense-in-depth}/context.ts +34 -31
  132. package/utils/{defenseInDepth/arcDid/createArcDiDGeometry.ts → defense-in-depth/arc-defense-in-depth/createArcDefenseInDepthGeometry.ts} +69 -39
  133. package/utils/{defenseInDepth/arcDid → defense-in-depth/arc-defense-in-depth}/types.ts +39 -35
  134. package/utils/defense-in-depth/shared/colors.ts +51 -0
  135. package/utils/defense-in-depth/shared/constants.ts +22 -0
  136. package/utils/{defenseInDepth → defense-in-depth}/shared/types.ts +0 -5
  137. package/utils/facets/tetrad/rectangle-orbit-tetrad/context.ts +31 -0
  138. package/utils/{rectOrbitTetrad/createRectOrbitTetradGeometry.ts → facets/tetrad/rectangle-orbit-tetrad/createRectangleOrbitTetradGeometry.ts} +5 -104
  139. package/utils/facets/tetrad/rectangle-orbit-tetrad/index.ts +3 -0
  140. package/utils/{rectOrbitTetrad/resolveRectOrbitTetradItems.ts → facets/tetrad/rectangle-orbit-tetrad/resolveRectangleOrbitTetradItems.ts} +41 -49
  141. package/utils/{arrowTriad → facets/triad/arrow-triad}/resolveArrowTriadItems.ts +27 -28
  142. package/utils/{gearTriad → facets/triad/gear-triad}/context.ts +5 -5
  143. package/utils/{gearTriad → facets/triad/gear-triad}/createGearTriadGeometry.ts +2 -0
  144. package/utils/{gearTriad → facets/triad/gear-triad}/resolveGearTriadItems.ts +23 -24
  145. package/utils/facets/triad/hexagon-triad/context.ts +25 -0
  146. package/utils/{hexTriad/createHexTriadGeometry.ts → facets/triad/hexagon-triad/createHexagonTriadGeometry.ts} +11 -27
  147. package/utils/facets/triad/hexagon-triad/index.ts +3 -0
  148. package/utils/facets/triad/hexagon-triad/resolveHexagonTriadItems.ts +60 -0
  149. package/utils/{shiftingHeading → layouts/shifting-heading}/collectShiftingIntroNodes.ts +1 -0
  150. package/utils/layouts/table-of-contents/calculateTocCenterAlignmentOffset.ts +17 -0
  151. package/utils/{tableOfContents → layouts/table-of-contents}/calculateTocMarkerPositions.ts +0 -12
  152. package/utils/{tableOfContents → layouts/table-of-contents}/createTocConnectorPath.ts +11 -5
  153. package/utils/{mergeUno → merge-uno}/classifyVisual.ts +1 -1
  154. package/utils/{mergeUno → merge-uno}/collectClassNames.ts +9 -3
  155. package/utils/process/arc-arrow-process/resolveArcArrowProcessItems.ts +180 -0
  156. package/utils/pyramid/circular-pyramid/context.ts +1 -4
  157. package/utils/pyramid/circular-pyramid/createCircularPyramidGeometry.ts +6 -10
  158. package/utils/pyramid/shared/colors.ts +33 -83
  159. package/utils/pyramid/shared/constants.ts +2 -2
  160. package/utils/pyramid/shared/types.ts +0 -5
  161. package/utils/pyramid/square-pyramid/context.ts +1 -4
  162. package/utils/pyramid/square-pyramid/createSquarePyramidGeometry.ts +6 -10
  163. package/utils/useDiagramAutoScale.ts +8 -6
  164. package/utils/useMergedUnoAttrs.ts +9 -5
  165. package/components/card/chevron-card/ChevronCardHeading.vue +0 -39
  166. package/components/card/horiz-card/HorizCardHeading.vue +0 -47
  167. package/components/card/vert-card/VertCardHeading.vue +0 -68
  168. package/components/card/vert-card/VertCardTitle.vue +0 -76
  169. package/components/comparisons/arc-comparison/ArcComparisonContents.vue +0 -17
  170. package/components/comparisons/arc-comparison/ArcComparisonTitle.vue +0 -29
  171. package/components/core/arc-orbit/ArcOrbitContents.vue +0 -18
  172. package/components/core/arc-orbit/ArcOrbitTitle.vue +0 -50
  173. package/components/defense-in-depth/arc-did/ArcDiDLayer.vue +0 -321
  174. package/components/defense-in-depth/arc-did/ArcDiDLayerParts.vue +0 -11
  175. package/components/facets/tetrad/rect-orbit-tetrad/RectOrbitTetradCenter.vue +0 -53
  176. package/components/facets/tetrad/rect-orbit-tetrad/RectOrbitTetradContent.vue +0 -39
  177. package/components/facets/tetrad/rect-orbit-tetrad/RectOrbitTetradHeading.vue +0 -44
  178. package/components/facets/triad/gear-triad/GearTriadContents.vue +0 -111
  179. package/components/facets/triad/gear-triad/GearTriadDescription.vue +0 -38
  180. package/components/facets/triad/hex-triad/HexTriadCenterBadge.vue +0 -51
  181. package/components/facets/triad/hex-triad/HexTriadContent.vue +0 -20
  182. package/components/facets/triad/hex-triad/HexTriadHeading.vue +0 -28
  183. package/layouts/core/table-of-contents.vue +0 -30
  184. package/utils/arcArrowProcess/resolveArcArrowProcessItems.ts +0 -189
  185. package/utils/arcComparison/resolveArcComparisonItems.ts +0 -102
  186. package/utils/chevronCard/createChevronCardGeometry.ts +0 -48
  187. package/utils/chevronCard/index.ts +0 -2
  188. package/utils/defenseInDepth/arcDid/index.ts +0 -3
  189. package/utils/defenseInDepth/index.ts +0 -2
  190. package/utils/defenseInDepth/shared/colors.ts +0 -121
  191. package/utils/defenseInDepth/shared/constants.ts +0 -14
  192. package/utils/defenseInDepth/shared/index.ts +0 -3
  193. package/utils/hexTriad/context.ts +0 -25
  194. package/utils/hexTriad/index.ts +0 -3
  195. package/utils/hexTriad/resolveHexTriadItems.ts +0 -63
  196. package/utils/horizCard/context.ts +0 -13
  197. package/utils/horizCard/index.ts +0 -2
  198. package/utils/pyramid/index.ts +0 -3
  199. package/utils/rectOrbitTetrad/context.ts +0 -31
  200. package/utils/rectOrbitTetrad/index.ts +0 -3
  201. package/utils/tableComparison/constants.ts +0 -72
  202. package/utils/tableOfContents/calculateTocCenterAlignmentOffset.ts +0 -11
  203. package/utils/vertCard/context.ts +0 -18
  204. package/utils/vertCard/index.ts +0 -2
  205. package/utils/{arcComparison → comparisons/arc-comparison}/index.ts +0 -0
  206. package/utils/{tableComparison → comparisons/table-comparison}/index.ts +0 -0
  207. package/utils/{arcOrbit → core/arc-orbit}/context.ts +0 -0
  208. package/utils/{arcOrbit → core/arc-orbit}/createArcOrbitGeometry.ts +0 -0
  209. package/utils/{arcOrbit → core/arc-orbit}/index.ts +0 -0
  210. package/utils/{arrowTriad → facets/triad/arrow-triad}/context.ts +0 -0
  211. package/utils/{arrowTriad → facets/triad/arrow-triad}/createArrowTriadGeometry.ts +0 -0
  212. package/utils/{arrowTriad → facets/triad/arrow-triad}/index.ts +0 -0
  213. package/utils/{gearTriad → facets/triad/gear-triad}/index.ts +0 -0
  214. package/utils/{tableOfContents → layouts/table-of-contents}/calculateUniformTocArticleWidth.ts +0 -0
  215. package/utils/{tableOfContents → layouts/table-of-contents}/createTocArcPath.ts +0 -0
  216. package/utils/{tableOfContents → layouts/table-of-contents}/index.ts +0 -0
  217. package/utils/{mergeUno → merge-uno}/classifyLayout.ts +0 -0
  218. package/utils/{mergeUno → merge-uno}/classifySimple.ts +0 -0
  219. package/utils/{mergeUno → merge-uno}/classifyTypography.ts +0 -0
  220. package/utils/{mergeUno → merge-uno}/classifyUtility.ts +0 -0
  221. package/utils/{mergeUno → merge-uno}/index.ts +0 -0
  222. package/utils/{mergeUno → merge-uno}/mergeClassValues.ts +0 -0
  223. package/utils/{mergeUno → merge-uno}/splitVariantScope.ts +1 -1
  224. package/utils/{mergeUno → merge-uno}/types.ts +0 -0
  225. package/utils/{arcArrowProcess → process/arc-arrow-process}/context.ts +1 -1
  226. /package/utils/{arcArrowProcess → process/arc-arrow-process}/createArcArrowProcessGeometry.ts +0 -0
  227. /package/utils/{arcArrowProcess → process/arc-arrow-process}/index.ts +0 -0
@@ -5,14 +5,16 @@ import {
5
5
  DEFAULT_HEX_TRIAD_ITEMS,
6
6
  HEX_TRIAD_CALLOUT_KEY,
7
7
  HEX_TRIAD_ROOT_KEY,
8
- type IHexTriadItem,
9
- } from '../../../../utils/hexTriad';
10
- import HexTriadBadge from './HexTriadBadge.vue';
11
- import HexTriadContent from './HexTriadContent.vue';
12
- import HexTriadHeading from './HexTriadHeading.vue';
8
+ type IHexagonTriadItem,
9
+ } from '../../../../utils/facets/triad/hexagon-triad';
10
+ import { useMergedUnoAttrs } from '../../../../utils/useMergedUnoAttrs';
11
+ import HexagonTriadBadge from './HexagonTriadBadge.vue';
12
+ import HexagonTriadContent from './HexagonTriadContent.vue';
13
+ import HexagonTriadHeading from './HexagonTriadHeading.vue';
13
14
 
14
15
  defineOptions({
15
- name: 'HexTriadCallout',
16
+ inheritAttrs: false,
17
+ name: 'HexagonTriadCallout',
16
18
  });
17
19
 
18
20
  interface INamedComponent {
@@ -30,13 +32,13 @@ function hasComponentName(type: unknown, name: string): boolean {
30
32
  const rootContext = inject(HEX_TRIAD_ROOT_KEY, undefined);
31
33
 
32
34
  if (!rootContext) {
33
- console.warn('[HexTriadCallout] Must be used inside <HexTriad>');
35
+ console.warn('[HexagonTriadCallout] Must be used inside <HexagonTriad>');
34
36
  }
35
37
 
36
38
  const registration = rootContext?.registerCallout();
37
39
  const index = registration?.index ?? 0;
38
40
 
39
- const fallbackItem = computed<IHexTriadItem>(() => {
41
+ const fallbackItem = computed<IHexagonTriadItem>(() => {
40
42
  return DEFAULT_HEX_TRIAD_ITEMS[0];
41
43
  });
42
44
 
@@ -70,21 +72,22 @@ function flattenVNodes(nodes: VNode[]): VNode[] {
70
72
 
71
73
  function isBadgeNode(node: VNode): boolean {
72
74
  return (
73
- hasComponentName(node.type, 'HexTriadBadge') || node.type === HexTriadBadge
75
+ hasComponentName(node.type, 'HexagonTriadBadge') ||
76
+ node.type === HexagonTriadBadge
74
77
  );
75
78
  }
76
79
 
77
80
  function isHeadingNode(node: VNode): boolean {
78
81
  return (
79
- hasComponentName(node.type, 'HexTriadHeading') ||
80
- node.type === HexTriadHeading
82
+ hasComponentName(node.type, 'HexagonTriadHeading') ||
83
+ node.type === HexagonTriadHeading
81
84
  );
82
85
  }
83
86
 
84
87
  function isContentNode(node: VNode): boolean {
85
88
  return (
86
- hasComponentName(node.type, 'HexTriadContent') ||
87
- node.type === HexTriadContent
89
+ hasComponentName(node.type, 'HexagonTriadContent') ||
90
+ node.type === HexagonTriadContent
88
91
  );
89
92
  }
90
93
 
@@ -132,30 +135,31 @@ const positionStyle = computed(() => {
132
135
 
133
136
  const animation = computed(() => rootContext?.animation?.value ?? true);
134
137
 
135
- const containerClass = computed(() => {
136
- if (index === 2) {
137
- return `alpha-hex-triad-callout alpha-hex-triad-callout--${index} absolute flex items-start gap-3 justify-end text-right z-10 pointer-events-auto`;
138
- }
138
+ const { className, forwardedAttrs } = useMergedUnoAttrs(() => {
139
+ const alignClasses =
140
+ index === 2 ? 'justify-end text-right' : 'justify-start text-left';
139
141
 
140
- return `alpha-hex-triad-callout alpha-hex-triad-callout--${index} absolute flex items-start gap-3 justify-start text-left z-10 pointer-events-auto`;
142
+ return `alpha-hexagon-triad-callout absolute flex items-start gap-3 z-10 pointer-events-auto ${alignClasses}`;
141
143
  });
142
144
  </script>
143
145
 
144
146
  <template>
145
147
  <div
146
148
  v-if="index < 3"
147
- :class="[containerClass, { 'alpha-hex-triad-callout--animated': animation }]"
149
+ v-bind="forwardedAttrs()"
150
+ :class="[
151
+ className(),
152
+ `alpha-hexagon-triad-callout--${index}`,
153
+ { 'alpha-hexagon-triad-callout--animated': animation },
154
+ ]"
148
155
  :style="positionStyle"
149
156
  >
150
157
  <!-- For Index 0 and 1: Badge on left, Text on right -->
151
158
  <template v-if="index !== 2">
152
159
  <component :is="badgeNode" v-if="badgeNode" />
153
- <HexTriadBadge v-else />
154
160
  <div class="flex flex-col items-start text-left">
155
161
  <component :is="headingNode" v-if="headingNode" />
156
- <HexTriadHeading v-else />
157
162
  <component :is="contentNode" v-if="contentNode" />
158
- <HexTriadContent v-else />
159
163
  <component :is="node" v-for="(node, i) in otherNodes" :key="i" />
160
164
  </div>
161
165
  </template>
@@ -163,28 +167,28 @@ const containerClass = computed(() => {
163
167
  <template v-else>
164
168
  <div class="flex flex-col items-end text-right">
165
169
  <component :is="headingNode" v-if="headingNode" />
166
- <HexTriadHeading v-else />
167
170
  <component :is="contentNode" v-if="contentNode" />
168
- <HexTriadContent v-else />
169
171
  <component :is="node" v-for="(node, i) in otherNodes" :key="i" />
170
172
  </div>
171
173
  <component :is="badgeNode" v-if="badgeNode" />
172
- <HexTriadBadge v-else />
173
174
  </template>
174
175
  </div>
175
176
  </template>
176
177
 
177
178
  <style scoped>
178
- .alpha-hex-triad-callout--animated.alpha-hex-triad-callout--0 {
179
- animation: hex-callout-display 400ms cubic-bezier(0.16, 1, 0.3, 1) calc(var(--hex-start-delay, 0ms) + 250ms) both;
179
+ .alpha-hexagon-triad-callout--animated.alpha-hexagon-triad-callout--0 {
180
+ animation: hex-callout-display 400ms cubic-bezier(0.16, 1, 0.3, 1)
181
+ calc(var(--hex-start-delay, 0ms) + 250ms) both;
180
182
  }
181
183
 
182
- .alpha-hex-triad-callout--animated.alpha-hex-triad-callout--1 {
183
- animation: hex-callout-display 400ms cubic-bezier(0.16, 1, 0.3, 1) calc(var(--hex-start-delay, 0ms) + 450ms) both;
184
+ .alpha-hexagon-triad-callout--animated.alpha-hexagon-triad-callout--1 {
185
+ animation: hex-callout-display 400ms cubic-bezier(0.16, 1, 0.3, 1)
186
+ calc(var(--hex-start-delay, 0ms) + 450ms) both;
184
187
  }
185
188
 
186
- .alpha-hex-triad-callout--animated.alpha-hex-triad-callout--2 {
187
- animation: hex-callout-display 400ms cubic-bezier(0.16, 1, 0.3, 1) calc(var(--hex-start-delay, 0ms) + 650ms) both;
189
+ .alpha-hexagon-triad-callout--animated.alpha-hexagon-triad-callout--2 {
190
+ animation: hex-callout-display 400ms cubic-bezier(0.16, 1, 0.3, 1)
191
+ calc(var(--hex-start-delay, 0ms) + 650ms) both;
188
192
  }
189
193
 
190
194
  @keyframes hex-callout-display {
@@ -0,0 +1,74 @@
1
+ <script setup lang="ts">
2
+ import { computed } from 'vue';
3
+
4
+ import { useMergedUnoAttrs } from '../../../../utils/useMergedUnoAttrs';
5
+
6
+ defineOptions({
7
+ inheritAttrs: false,
8
+ name: 'HexagonTriadCenterBadge',
9
+ });
10
+
11
+ export interface IHexagonTriadCenterBadgeProps {
12
+ readonly x: number;
13
+ readonly y: number;
14
+ readonly text: string | number;
15
+ readonly color: string;
16
+ readonly filter?: string;
17
+ readonly radius: number;
18
+ }
19
+
20
+ const props = withDefaults(defineProps<IHexagonTriadCenterBadgeProps>(), {
21
+ filter: 'url(#hex-badge-shadow)',
22
+ });
23
+
24
+ const transform = computed(() => {
25
+ return `translate(${props.x}, ${props.y})`;
26
+ });
27
+
28
+ const { className, forwardedAttrs } = useMergedUnoAttrs(
29
+ 'alpha-hexagon-triad-center-badge',
30
+ );
31
+ </script>
32
+
33
+ <template>
34
+ <g
35
+ v-bind="forwardedAttrs()"
36
+ :class="className()"
37
+ :transform="transform"
38
+ :filter="filter"
39
+ >
40
+ <circle
41
+ class="alpha-hexagon-triad-center-badge__outer"
42
+ cx="0"
43
+ cy="0"
44
+ :r="radius + 4"
45
+ fill="var(--alpha-hexagon-triad-center-badge-fill)"
46
+ />
47
+ <circle
48
+ class="alpha-hexagon-triad-center-badge__circle"
49
+ cx="0"
50
+ cy="0"
51
+ :r="radius"
52
+ :fill="color"
53
+ />
54
+ <circle
55
+ class="alpha-hexagon-triad-center-badge__ring"
56
+ cx="0"
57
+ cy="0"
58
+ :r="radius - 4"
59
+ fill="none"
60
+ stroke="var(--alpha-hexagon-triad-center-badge-stroke)"
61
+ stroke-width="1.2"
62
+ :style="{ opacity: 0.65 }"
63
+ />
64
+ <text
65
+ class="alpha-hexagon-triad-center-badge__text font-sans font-black text-lg select-none"
66
+ x="0"
67
+ y="6.5"
68
+ text-anchor="middle"
69
+ fill="var(--alpha-hexagon-triad-center-badge-fill)"
70
+ >
71
+ {{ text }}
72
+ </text>
73
+ </g>
74
+ </template>
@@ -0,0 +1,34 @@
1
+ <script setup lang="ts">
2
+ import { useMergedUnoAttrs } from '../../../../utils/useMergedUnoAttrs';
3
+
4
+ defineOptions({
5
+ inheritAttrs: false,
6
+ name: 'HexagonTriadContent',
7
+ });
8
+
9
+ export interface IHexagonTriadContentProps {
10
+ readonly color?: string;
11
+ }
12
+
13
+ const props = withDefaults(defineProps<IHexagonTriadContentProps>(), {
14
+ color: undefined,
15
+ });
16
+
17
+ const { className, forwardedAttrs } = useMergedUnoAttrs(
18
+ 'alpha-hexagon-triad-content font-sans leading-relaxed max-w-60 text-(--alpha-hexagon-triad-content)',
19
+ );
20
+ </script>
21
+
22
+ <template>
23
+ <p
24
+ v-bind="forwardedAttrs()"
25
+ :class="className()"
26
+ :style="
27
+ props.color
28
+ ? { '--alpha-hexagon-triad-content': props.color }
29
+ : undefined
30
+ "
31
+ >
32
+ <slot />
33
+ </p>
34
+ </template>
@@ -0,0 +1,44 @@
1
+ <script setup lang="ts">
2
+ import { computed, inject } from 'vue';
3
+
4
+ import { HEX_TRIAD_CALLOUT_KEY } from '../../../../utils/facets/triad/hexagon-triad';
5
+ import { useMergedUnoAttrs } from '../../../../utils/useMergedUnoAttrs';
6
+
7
+ defineOptions({
8
+ inheritAttrs: false,
9
+ name: 'HexagonTriadHeading',
10
+ });
11
+
12
+ export interface IHexagonTriadHeadingProps {
13
+ readonly color?: string;
14
+ }
15
+
16
+ const props = withDefaults(defineProps<IHexagonTriadHeadingProps>(), {
17
+ color: undefined,
18
+ });
19
+
20
+ const calloutContext = inject(HEX_TRIAD_CALLOUT_KEY, undefined);
21
+
22
+ const headingColor = computed(() => {
23
+ return (
24
+ props.color ??
25
+ calloutContext?.item.value.color ??
26
+ 'var(--alpha-hexagon-triad-heading)'
27
+ );
28
+ });
29
+
30
+ const { className, forwardedAttrs } = useMergedUnoAttrs(
31
+ 'alpha-hexagon-triad-heading mb-2 font-sans font-bold tracking-tight',
32
+ );
33
+ </script>
34
+
35
+ <template>
36
+ <h4
37
+ v-if="$slots.default"
38
+ v-bind="forwardedAttrs()"
39
+ :class="className()"
40
+ :style="{ color: headingColor }"
41
+ >
42
+ <slot>{{ '' }}</slot>
43
+ </h4>
44
+ </template>
@@ -1,25 +1,33 @@
1
1
  <script setup lang="ts">
2
+ import { useMergedUnoAttrs } from '../../../../utils/useMergedUnoAttrs';
3
+
2
4
  defineOptions({
3
- name: 'HexTriadLayer',
5
+ inheritAttrs: false,
6
+ name: 'HexagonTriadLayer',
4
7
  });
5
8
 
6
- export interface IHexTriadLayerProps {
9
+ export interface IHexagonTriadLayerProps {
7
10
  readonly d: string;
8
11
  readonly fill?: string;
9
12
  readonly filter?: string;
10
13
  readonly opacity?: number | string;
11
14
  }
12
15
 
13
- withDefaults(defineProps<IHexTriadLayerProps>(), {
16
+ withDefaults(defineProps<IHexagonTriadLayerProps>(), {
14
17
  opacity: 1,
15
18
  fill: undefined,
16
19
  filter: undefined,
17
20
  });
21
+
22
+ const { className, forwardedAttrs } = useMergedUnoAttrs(
23
+ 'alpha-hexagon-triad-layer',
24
+ );
18
25
  </script>
19
26
 
20
27
  <template>
21
28
  <path
22
- class="alpha-hex-triad-layer"
29
+ v-bind="forwardedAttrs()"
30
+ :class="className()"
23
31
  :d="d"
24
32
  :fill="fill"
25
33
  :filter="filter"
@@ -0,0 +1,22 @@
1
+ /* Color defaults shared by this component family. */
2
+ @layer alpha-theme-tokens {
3
+ :root {
4
+ --alpha-hexagon-triad-content: var(--alpha-foreground-primary, #475569);
5
+ --alpha-hexagon-triad-badge: #ffffff;
6
+ --alpha-hexagon-triad-badge-bg: #e11d48;
7
+ --alpha-hexagon-triad-badge-light: #fb7185;
8
+ --alpha-hexagon-triad-center-badge-fill: #ffffff;
9
+ --alpha-hexagon-triad-center-badge-stroke: #ffffff;
10
+ --alpha-hexagon-triad-connector-stroke: #ffffff;
11
+ --alpha-hexagon-triad-heading: var(--alpha-foreground-primary, #e11d48);
12
+ --alpha-hexagon-triad-item-1-color: #ee3248;
13
+ --alpha-hexagon-triad-item-1-depth: #9e1526;
14
+ --alpha-hexagon-triad-item-1-light: #ff8595;
15
+ --alpha-hexagon-triad-item-2-color: #f26522;
16
+ --alpha-hexagon-triad-item-2-depth: #a83908;
17
+ --alpha-hexagon-triad-item-2-light: #ffb088;
18
+ --alpha-hexagon-triad-item-3-color: #2b4594;
19
+ --alpha-hexagon-triad-item-3-depth: #172554;
20
+ --alpha-hexagon-triad-item-3-light: #8da4e2;
21
+ }
22
+ }
@@ -15,14 +15,12 @@ import {
15
15
  ARC_ARROW_PROCESS_ROOT_KEY,
16
16
  createArcArrowProcessGeometry,
17
17
  getDefaultArcArrowProcessItem,
18
- type IArcArrowProcessItem,
19
18
  type IArcArrowProcessRegistration,
20
19
  type IResolvedArcArrowProcessItem,
21
20
  resolveArcArrowProcessItems,
22
- } from '../../../utils/arcArrowProcess';
21
+ } from '../../../utils/process/arc-arrow-process';
23
22
  import { useMergedUnoAttrs } from '../../../utils/useMergedUnoAttrs';
24
23
  import ArcArrowProcessArrow from './ArcArrowProcessArrow.vue';
25
- import ArcArrowProcessCallout from './ArcArrowProcessCallout.vue';
26
24
 
27
25
  defineOptions({
28
26
  name: 'ArcArrowProcess',
@@ -30,7 +28,6 @@ defineOptions({
30
28
  });
31
29
 
32
30
  export interface IArcArrowProcessProps {
33
- readonly items?: readonly IArcArrowProcessItem[];
34
31
  readonly count?: number;
35
32
  readonly animation?: boolean;
36
33
  readonly height?: number | string;
@@ -40,7 +37,6 @@ export interface IArcArrowProcessProps {
40
37
  }
41
38
 
42
39
  const props = withDefaults(defineProps<IArcArrowProcessProps>(), {
43
- items: undefined,
44
40
  count: undefined,
45
41
  animation: true,
46
42
  height: 370,
@@ -145,15 +141,11 @@ const resolvedCount = computed<number>(() => {
145
141
  return slottedCount.value;
146
142
  }
147
143
 
148
- if (props.items && props.items.length > 0) {
149
- return props.items.length;
150
- }
151
-
152
144
  return 4;
153
145
  });
154
146
 
155
147
  const resolvedItems = computed(() => {
156
- return resolveArcArrowProcessItems(props.items, resolvedCount.value);
148
+ return resolveArcArrowProcessItems(undefined, resolvedCount.value);
157
149
  });
158
150
 
159
151
  const registeredCalloutColors = ref<Record<number, string>>({});
@@ -204,18 +196,10 @@ const getArrowColor = (idx: number): string => {
204
196
  return slottedMatch.color;
205
197
  }
206
198
 
207
- if (props.items?.[idx]?.color) {
208
- return props.items[idx].color;
209
- }
210
-
211
199
  return getDefaultArcArrowProcessItem(idx, resolvedCount.value).color;
212
200
  };
213
201
 
214
202
  const getArrowGradientEnd = (idx: number): string | undefined => {
215
- if (props.items?.[idx]?.gradientEnd) {
216
- return props.items[idx].gradientEnd;
217
- }
218
-
219
203
  if (registeredCalloutColors.value[idx]) {
220
204
  return registeredCalloutColors.value[idx];
221
205
  }
@@ -274,7 +258,7 @@ const resolvedHeightStyle = computed(() => {
274
258
  });
275
259
 
276
260
  const { className, forwardedAttrs } = useMergedUnoAttrs(
277
- 'alpha-arc-arrow-process w-full flex items-start justify-center select-none font-sans relative',
261
+ 'alpha-arc-arrow-process w-full min-h-[340px] flex items-start justify-center select-none font-sans relative',
278
262
  );
279
263
  </script>
280
264
 
@@ -284,15 +268,12 @@ const { className, forwardedAttrs } = useMergedUnoAttrs(
284
268
  :class="className()"
285
269
  :style="{
286
270
  height: resolvedHeightStyle,
287
- minHeight: '340px',
288
- fontFamily:
289
- 'ui-sans-serif, system-ui, -apple-system, BlinkMacSystemFont, \'Segoe UI\', Roboto, sans-serif',
290
271
  '--arc-arrow-start-delay': `${resolvedStartDelay}ms`,
291
272
  }"
292
273
  >
293
274
  <!-- Relative stage container -->
294
275
  <div
295
- class="alpha-arc-arrow-process__stage relative w-full h-full max-w-[1000px] flex items-start justify-center overflow-visible"
276
+ class="alpha-arc-arrow-process__stage relative w-full h-full max-w-250 flex items-start justify-center overflow-visible"
296
277
  >
297
278
  <!-- Central Graphic: Reusing ArcArrowProcessArrow -->
298
279
  <div
@@ -315,36 +296,33 @@ const { className, forwardedAttrs } = useMergedUnoAttrs(
315
296
  />
316
297
  </div>
317
298
  <!-- Callout Cards -->
318
- <slot v-if="slots.default" />
319
- <template v-else>
320
- <ArcArrowProcessCallout
321
- v-for="idx in resolvedCount"
322
- :key="idx - 1"
323
- :index="idx - 1"
324
- />
325
- </template>
299
+ <slot />
326
300
  </div>
327
301
  </div>
328
302
  </template>
329
303
 
330
304
  <style scoped>
331
305
  .alpha-arc-arrow-process--animated.alpha-arc-arrow-process__arrow--0 {
332
- animation: arc-arrow-pop 450ms cubic-bezier(0.16, 1, 0.3, 1) calc(var(--arc-arrow-start-delay, 0ms) + 50ms) both;
306
+ animation: arc-arrow-pop 450ms cubic-bezier(0.16, 1, 0.3, 1)
307
+ calc(var(--arc-arrow-start-delay, 0ms) + 50ms) both;
333
308
  transform-origin: 500px -220px;
334
309
  }
335
310
 
336
311
  .alpha-arc-arrow-process--animated.alpha-arc-arrow-process__arrow--1 {
337
- animation: arc-arrow-pop 450ms cubic-bezier(0.16, 1, 0.3, 1) calc(var(--arc-arrow-start-delay, 0ms) + 130ms) both;
312
+ animation: arc-arrow-pop 450ms cubic-bezier(0.16, 1, 0.3, 1)
313
+ calc(var(--arc-arrow-start-delay, 0ms) + 130ms) both;
338
314
  transform-origin: 500px -220px;
339
315
  }
340
316
 
341
317
  .alpha-arc-arrow-process--animated.alpha-arc-arrow-process__arrow--2 {
342
- animation: arc-arrow-pop 450ms cubic-bezier(0.16, 1, 0.3, 1) calc(var(--arc-arrow-start-delay, 0ms) + 210ms) both;
318
+ animation: arc-arrow-pop 450ms cubic-bezier(0.16, 1, 0.3, 1)
319
+ calc(var(--arc-arrow-start-delay, 0ms) + 210ms) both;
343
320
  transform-origin: 500px -220px;
344
321
  }
345
322
 
346
323
  .alpha-arc-arrow-process--animated.alpha-arc-arrow-process__arrow--3 {
347
- animation: arc-arrow-pop 450ms cubic-bezier(0.16, 1, 0.3, 1) calc(var(--arc-arrow-start-delay, 0ms) + 290ms) both;
324
+ animation: arc-arrow-pop 450ms cubic-bezier(0.16, 1, 0.3, 1)
325
+ calc(var(--arc-arrow-start-delay, 0ms) + 290ms) both;
348
326
  transform-origin: 500px -220px;
349
327
  }
350
328
 
@@ -1,10 +1,12 @@
1
1
  <script setup lang="ts">
2
2
  import { computed } from 'vue';
3
3
 
4
- import { DEFAULT_ARC_ARROW_PATH } from '../../../utils/arcArrowProcess';
4
+ import { DEFAULT_ARC_ARROW_PATH } from '../../../utils/process/arc-arrow-process';
5
+ import { useMergedUnoAttrs } from '../../../utils/useMergedUnoAttrs';
5
6
 
6
7
  defineOptions({
7
8
  name: 'ArcArrowProcessArrow',
9
+ inheritAttrs: false,
8
10
  });
9
11
 
10
12
  export interface IArcArrowProcessArrowProps {
@@ -22,9 +24,9 @@ export interface IArcArrowProcessArrowProps {
22
24
  }
23
25
 
24
26
  const props = withDefaults(defineProps<IArcArrowProcessArrowProps>(), {
25
- color: '#6fa3b5',
26
- gradientEnd: '#8cb8c8',
27
- stroke: '#ffffff',
27
+ color: 'var(--alpha-arc-arrow-process-arrow)',
28
+ gradientEnd: 'var(--alpha-arc-arrow-process-arrow-gradient-end)',
29
+ stroke: 'var(--alpha-arc-arrow-process-arrow-stroke)',
28
30
  strokeWidth: 2.5,
29
31
  width: undefined,
30
32
  height: undefined,
@@ -76,50 +78,47 @@ const resolvedHeight = computed(() => {
76
78
 
77
79
  return isStandalone.value ? '215px' : '100%';
78
80
  });
81
+
82
+ const { className, forwardedAttrs } = useMergedUnoAttrs(
83
+ 'alpha-arc-arrow-process-arrow inline-flex items-center justify-center select-none',
84
+ );
79
85
  </script>
80
86
 
81
87
  <template>
82
88
  <div
83
- class="alpha-arc-arrow-process-arrow inline-flex items-center justify-center select-none"
89
+ v-bind="forwardedAttrs()"
90
+ :class="className()"
84
91
  :style="{
85
92
  width: resolvedWidth,
86
93
  height: resolvedHeight,
87
94
  }"
88
95
  >
89
96
  <svg
97
+ aria-hidden="true"
90
98
  class="w-full h-full overflow-visible"
91
99
  :viewBox="resolvedViewBox"
92
100
  preserveAspectRatio="xMidYMin meet"
93
101
  xmlns="http://www.w3.org/2000/svg"
94
102
  >
95
103
  <defs>
96
- <filter
97
- :id="shadowId"
98
- x="-30%"
99
- y="-30%"
100
- width="160%"
101
- height="160%"
102
- >
104
+ <filter :id="shadowId" x="-30%" y="-30%" width="160%" height="160%">
103
105
  <feDropShadow
104
106
  dx="0"
105
107
  dy="5"
106
108
  stdDeviation="5"
107
109
  flood-opacity="0.22"
108
- flood-color="#000000"
110
+ flood-color="var(--alpha-arc-arrow-process-arrow-shadow)"
109
111
  />
110
112
  </filter>
111
- <linearGradient
112
- :id="gradId"
113
- x1="0%"
114
- y1="100%"
115
- x2="100%"
116
- y2="0%"
117
- >
113
+ <linearGradient :id="gradId" x1="0%" y1="100%" x2="100%" y2="0%">
118
114
  <stop offset="0%" :stop-color="props.color" />
119
115
  <stop offset="100%" :stop-color="props.gradientEnd ?? props.color" />
120
116
  </linearGradient>
121
117
  </defs>
122
- <g v-if="!isStandalone" :transform="`translate(500, ${props.originY}) rotate(${props.rotation})`">
118
+ <g
119
+ v-if="!isStandalone"
120
+ :transform="`translate(500, ${props.originY}) rotate(${props.rotation})`"
121
+ >
123
122
  <path
124
123
  :d="resolvedPath"
125
124
  :fill="`url(#${gradId})`"