@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
@@ -0,0 +1,180 @@
1
+ export interface IArcArrowProcessItem {
2
+ readonly id?: string | number;
3
+ readonly color?: string;
4
+ readonly gradientEnd?: string;
5
+ readonly title?: string;
6
+ readonly description?: string;
7
+ readonly icon?: string | object | false;
8
+ readonly titleColor?: string;
9
+ readonly textColor?: string;
10
+ }
11
+
12
+ export interface IResolvedArcArrowProcessItem {
13
+ readonly id: string | number;
14
+ readonly color: string;
15
+ readonly gradientEnd: string;
16
+ readonly title: string;
17
+ readonly description: string;
18
+ readonly icon?: string | object | false;
19
+ readonly titleColor: string;
20
+ readonly textColor: string;
21
+ }
22
+
23
+ const DEFAULT_ARC_ARROW_PROCESS_ITEMS_4: readonly [
24
+ IResolvedArcArrowProcessItem,
25
+ IResolvedArcArrowProcessItem,
26
+ IResolvedArcArrowProcessItem,
27
+ IResolvedArcArrowProcessItem,
28
+ ] = [
29
+ {
30
+ id: '01',
31
+ color: 'var(--alpha-arc-arrow-process-item-1-color)',
32
+ gradientEnd: 'var(--alpha-arc-arrow-process-item-1-gradient-end)',
33
+ title: '',
34
+ description: '',
35
+ titleColor: 'var(--alpha-arc-arrow-process-heading)',
36
+ textColor: 'var(--alpha-arc-arrow-process-content)',
37
+ },
38
+ {
39
+ id: '02',
40
+ color: 'var(--alpha-arc-arrow-process-item-2-color)',
41
+ gradientEnd: 'var(--alpha-arc-arrow-process-item-2-gradient-end)',
42
+ title: '',
43
+ description: '',
44
+ titleColor: 'var(--alpha-arc-arrow-process-heading)',
45
+ textColor: 'var(--alpha-arc-arrow-process-content)',
46
+ },
47
+ {
48
+ id: '03',
49
+ color: 'var(--alpha-arc-arrow-process-item-3-color)',
50
+ gradientEnd: 'var(--alpha-arc-arrow-process-item-3-gradient-end)',
51
+ title: '',
52
+ description: '',
53
+ titleColor: 'var(--alpha-arc-arrow-process-heading)',
54
+ textColor: 'var(--alpha-arc-arrow-process-content)',
55
+ },
56
+ {
57
+ id: '04',
58
+ color: 'var(--alpha-arc-arrow-process-item-4-color)',
59
+ gradientEnd: 'var(--alpha-arc-arrow-process-item-4-gradient-end)',
60
+ title: '',
61
+ description: '',
62
+ titleColor: 'var(--alpha-arc-arrow-process-heading)',
63
+ textColor: 'var(--alpha-arc-arrow-process-content)',
64
+ },
65
+ ];
66
+
67
+ const DEFAULT_ARC_ARROW_PROCESS_ITEMS_3: readonly [
68
+ IResolvedArcArrowProcessItem,
69
+ IResolvedArcArrowProcessItem,
70
+ IResolvedArcArrowProcessItem,
71
+ ] = [
72
+ {
73
+ id: '01',
74
+ color: 'var(--alpha-arc-arrow-process-item-1-color)',
75
+ gradientEnd: 'var(--alpha-arc-arrow-process-item-1-gradient-end)',
76
+ title: '',
77
+ description: '',
78
+ titleColor: 'var(--alpha-arc-arrow-process-heading)',
79
+ textColor: 'var(--alpha-arc-arrow-process-content)',
80
+ },
81
+ {
82
+ id: '02',
83
+ color: 'var(--alpha-arc-arrow-process-item-2-color)',
84
+ gradientEnd: 'var(--alpha-arc-arrow-process-item-2-gradient-end)',
85
+ title: '',
86
+ description: '',
87
+ titleColor: 'var(--alpha-arc-arrow-process-heading)',
88
+ textColor: 'var(--alpha-arc-arrow-process-content)',
89
+ },
90
+ {
91
+ id: '03',
92
+ color: 'var(--alpha-arc-arrow-process-item-4-color)',
93
+ gradientEnd: 'var(--alpha-arc-arrow-process-item-4-gradient-end)',
94
+ title: '',
95
+ description: '',
96
+ titleColor: 'var(--alpha-arc-arrow-process-heading)',
97
+ textColor: 'var(--alpha-arc-arrow-process-content)',
98
+ },
99
+ ];
100
+
101
+ const DEFAULT_ARC_ARROW_PROCESS_ITEMS_2: readonly [
102
+ IResolvedArcArrowProcessItem,
103
+ IResolvedArcArrowProcessItem,
104
+ ] = [
105
+ {
106
+ id: '01',
107
+ color: 'var(--alpha-arc-arrow-process-item-2-color)',
108
+ gradientEnd: 'var(--alpha-arc-arrow-process-item-2-gradient-end)',
109
+ title: '',
110
+ description: '',
111
+ titleColor: 'var(--alpha-arc-arrow-process-heading)',
112
+ textColor: 'var(--alpha-arc-arrow-process-content)',
113
+ },
114
+ {
115
+ id: '02',
116
+ color: 'var(--alpha-arc-arrow-process-item-3-color)',
117
+ gradientEnd: 'var(--alpha-arc-arrow-process-item-3-gradient-end)',
118
+ title: '',
119
+ description: '',
120
+ titleColor: 'var(--alpha-arc-arrow-process-heading)',
121
+ textColor: 'var(--alpha-arc-arrow-process-content)',
122
+ },
123
+ ];
124
+
125
+ export function getDefaultArcArrowProcessItem(
126
+ index: number,
127
+ count: number = 4,
128
+ ): IResolvedArcArrowProcessItem {
129
+ const list =
130
+ count === 2
131
+ ? DEFAULT_ARC_ARROW_PROCESS_ITEMS_2
132
+ : count === 3
133
+ ? DEFAULT_ARC_ARROW_PROCESS_ITEMS_3
134
+ : DEFAULT_ARC_ARROW_PROCESS_ITEMS_4;
135
+ const safe = Math.abs(index) % list.length;
136
+ const item = list[safe];
137
+
138
+ if (item) {
139
+ return item;
140
+ }
141
+
142
+ return DEFAULT_ARC_ARROW_PROCESS_ITEMS_4[0];
143
+ }
144
+
145
+ export function resolveSingleArcArrowProcessItem(
146
+ item: IArcArrowProcessItem | undefined,
147
+ fallbackIndex = 0,
148
+ count: number = 4,
149
+ ): IResolvedArcArrowProcessItem {
150
+ const fallback = getDefaultArcArrowProcessItem(fallbackIndex, count);
151
+
152
+ if (!item) {
153
+ return fallback;
154
+ }
155
+
156
+ return {
157
+ id: item.id ?? fallback.id,
158
+ color: item.color ?? fallback.color,
159
+ gradientEnd: item.gradientEnd ?? fallback.gradientEnd,
160
+ title: item.title ?? fallback.title,
161
+ description: item.description ?? fallback.description,
162
+ icon: item.icon !== undefined ? item.icon : fallback.icon,
163
+ titleColor: item.titleColor ?? fallback.titleColor,
164
+ textColor: item.textColor ?? fallback.textColor,
165
+ };
166
+ }
167
+
168
+ export function resolveArcArrowProcessItems(
169
+ items: readonly IArcArrowProcessItem[] | undefined,
170
+ count: number = 4,
171
+ ): readonly IResolvedArcArrowProcessItem[] {
172
+ const targetCount = count >= 2 ? count : 4;
173
+ const result: IResolvedArcArrowProcessItem[] = [];
174
+
175
+ for (let i = 0; i < targetCount; i++) {
176
+ result.push(resolveSingleArcArrowProcessItem(items?.[i], i, targetCount));
177
+ }
178
+
179
+ return result;
180
+ }
@@ -1,10 +1,8 @@
1
1
  import type { ComputedRef, InjectionKey, Ref } from 'vue';
2
2
 
3
- import type { IPyramidPalette, IPyramidRegistration } from '../shared';
3
+ import type { IPyramidPalette } from '../shared';
4
4
  import type { ICircularLayerGeometry, ICircularPyramidGeometry } from './types';
5
5
 
6
- export interface ICircularPyramidRegistration extends IPyramidRegistration {}
7
-
8
6
  export interface ICircularPyramidRootContext {
9
7
  readonly count: ComputedRef<number>;
10
8
  readonly activeIndex: Ref<number> | ComputedRef<number>;
@@ -15,7 +13,6 @@ export interface ICircularPyramidRootContext {
15
13
  readonly interactive: ComputedRef<boolean>;
16
14
  readonly titleWidthPx: ComputedRef<number>;
17
15
  readonly contentWidthPx: ComputedRef<number>;
18
- readonly contentRightOffsetPx: ComputedRef<number>;
19
16
  readonly registerStack: (
20
17
  id?: symbol,
21
18
  color?: ComputedRef<string | undefined>,
@@ -2,8 +2,6 @@ import {
2
2
  clampPyramidCount,
3
3
  computePyramidStacking,
4
4
  DEFAULT_PYRAMID_COLOR,
5
- darkenColor,
6
- lightenColor,
7
5
  MAX_PYRAMID_COUNT,
8
6
  MIN_PYRAMID_COUNT,
9
7
  resolvePyramidPalette,
@@ -17,19 +15,17 @@ import type {
17
15
 
18
16
  export const DEFAULT_CIRCULAR_PYRAMID_COLOR = DEFAULT_PYRAMID_COLOR;
19
17
  export const DEFAULT_CIRCULAR_PYRAMID_STACK_COLORS: readonly string[] = [
20
- '#3b82f6', // 0: Blue
21
- '#6366f1', // 1: Indigo
22
- '#10b981', // 2: Emerald
23
- '#f59e0b', // 3: Amber
24
- '#ec4899', // 4: Pink
25
- '#06b6d4', // 5: Cyan
18
+ 'var(--alpha-circular-pyramid-stack-1-color)',
19
+ 'var(--alpha-circular-pyramid-stack-2-color)',
20
+ 'var(--alpha-circular-pyramid-stack-3-color)',
21
+ 'var(--alpha-circular-pyramid-stack-4-color)',
22
+ 'var(--alpha-circular-pyramid-stack-5-color)',
23
+ 'var(--alpha-circular-pyramid-stack-6-color)',
26
24
  ] as const;
27
25
 
28
26
  export const MIN_CIRCULAR_COUNT = MIN_PYRAMID_COUNT;
29
27
  export const MAX_CIRCULAR_COUNT = MAX_PYRAMID_COUNT;
30
28
 
31
- export { darkenColor, lightenColor };
32
-
33
29
  export function clampCircularCount(count?: number): number {
34
30
  return clampPyramidCount(count);
35
31
  }
@@ -1,92 +1,42 @@
1
- import { DEFAULT_PYRAMID_COLOR } from './constants';
2
- import type { IColorModifierParams, IPyramidPalette } from './types';
3
-
4
- export function lightenColor({
5
- hex,
6
- ratio = 0.5,
7
- }: IColorModifierParams): string {
8
- const raw = hex.trim().replace(/^#/, '');
9
- const sanitized =
10
- raw.length === 3
11
- ? raw
12
- .split('')
13
- .map((char) => char + char)
14
- .join('')
15
- : raw;
16
-
17
- if (sanitized.length !== 6) {
18
- return hex;
19
- }
20
-
21
- const r = Number.parseInt(sanitized.slice(0, 2), 16);
22
- const g = Number.parseInt(sanitized.slice(2, 4), 16);
23
- const b = Number.parseInt(sanitized.slice(4, 6), 16);
24
-
25
- if (Number.isNaN(r) || Number.isNaN(g) || Number.isNaN(b)) {
26
- return hex;
27
- }
28
-
29
- const clamp = (val: number): number =>
30
- Math.min(255, Math.max(0, Math.round(val)));
31
- const lr = clamp(r + (255 - r) * ratio);
32
- const lg = clamp(g + (255 - g) * ratio);
33
- const lb = clamp(b + (255 - b) * ratio);
34
-
35
- const toHex = (n: number): string => n.toString(16).padStart(2, '0');
36
-
37
- return `#${toHex(lr)}${toHex(lg)}${toHex(lb)}`;
38
- }
39
-
40
- export function darkenColor({
41
- hex,
42
- ratio = 0.5,
43
- }: IColorModifierParams): string {
44
- const raw = hex.trim().replace(/^#/, '');
45
- const sanitized =
46
- raw.length === 3
47
- ? raw
48
- .split('')
49
- .map((char) => char + char)
50
- .join('')
51
- : raw;
52
-
53
- if (sanitized.length !== 6) {
54
- return hex;
55
- }
56
-
57
- const r = Number.parseInt(sanitized.slice(0, 2), 16);
58
- const g = Number.parseInt(sanitized.slice(2, 4), 16);
59
- const b = Number.parseInt(sanitized.slice(4, 6), 16);
60
-
61
- if (Number.isNaN(r) || Number.isNaN(g) || Number.isNaN(b)) {
62
- return hex;
63
- }
64
-
65
- const clamp = (val: number): number =>
66
- Math.min(255, Math.max(0, Math.round(val)));
67
- const dr = clamp(r * (1 - ratio));
68
- const dg = clamp(g * (1 - ratio));
69
- const db = clamp(b * (1 - ratio));
70
-
71
- const toHex = (n: number): string => n.toString(16).padStart(2, '0');
72
-
73
- return `#${toHex(dr)}${toHex(dg)}${toHex(db)}`;
74
- }
1
+ import { darkenColor, lightenColor } from '../../colors';
2
+ import { DEFAULT_PYRAMID_COLOR, DEFAULT_PYRAMID_HIGHLIGHT } from './constants';
3
+ import type { IPyramidPalette } from './types';
75
4
 
76
5
  export function resolvePyramidPalette(
77
6
  baseColor: string = DEFAULT_PYRAMID_COLOR,
78
7
  ): IPyramidPalette {
79
8
  return {
80
- activeTopStart: lightenColor({ hex: baseColor, ratio: 0.82 }),
9
+ activeTopStart: lightenColor({
10
+ hex: baseColor,
11
+ ratio: 0.82,
12
+ }),
81
13
  activeTopEnd: baseColor,
82
- activeSideStart: darkenColor({ hex: baseColor, ratio: 0.28 }),
83
- activeSideEnd: lightenColor({ hex: baseColor, ratio: 0.35 }),
84
- activeStroke: lightenColor({ hex: baseColor, ratio: 0.7 }),
85
- defaultTopStart: '#ffffff',
86
- defaultTopEnd: lightenColor({ hex: baseColor, ratio: 0.88 }),
87
- defaultSideStart: lightenColor({ hex: baseColor, ratio: 0.72 }),
88
- defaultSideEnd: lightenColor({ hex: baseColor, ratio: 0.88 }),
89
- defaultStroke: '#ffffff',
14
+ activeSideStart: darkenColor({
15
+ hex: baseColor,
16
+ ratio: 0.28,
17
+ }),
18
+ activeSideEnd: lightenColor({
19
+ hex: baseColor,
20
+ ratio: 0.35,
21
+ }),
22
+ activeStroke: lightenColor({
23
+ hex: baseColor,
24
+ ratio: 0.7,
25
+ }),
26
+ defaultTopStart: DEFAULT_PYRAMID_HIGHLIGHT,
27
+ defaultTopEnd: lightenColor({
28
+ hex: baseColor,
29
+ ratio: 0.88,
30
+ }),
31
+ defaultSideStart: lightenColor({
32
+ hex: baseColor,
33
+ ratio: 0.72,
34
+ }),
35
+ defaultSideEnd: lightenColor({
36
+ hex: baseColor,
37
+ ratio: 0.88,
38
+ }),
39
+ defaultStroke: DEFAULT_PYRAMID_HIGHLIGHT,
90
40
  glow: baseColor,
91
41
  };
92
42
  }
@@ -1,9 +1,9 @@
1
- export const DEFAULT_PYRAMID_COLOR = '#3b82f6';
1
+ export const DEFAULT_PYRAMID_COLOR = 'var(--alpha-pyramid-accent)';
2
+ export const DEFAULT_PYRAMID_HIGHLIGHT = 'var(--alpha-pyramid-highlight)';
2
3
  export const MIN_PYRAMID_COUNT = 1;
3
4
  export const MAX_PYRAMID_COUNT = 6;
4
5
 
5
6
  export const PYRAMID_TITLE_WIDTH_PX = 150;
6
7
  export const PYRAMID_CONTENT_WIDTH_PX = 240;
7
- export const PYRAMID_CONTENT_RIGHT_OFFSET_PX = 0;
8
8
  export const PYRAMID_DOT_POSITION_X = 210;
9
9
  export const PYRAMID_DOT_GAP_PX = 10;
@@ -1,8 +1,3 @@
1
- export interface IColorModifierParams {
2
- readonly hex: string;
3
- readonly ratio?: number;
4
- }
5
-
6
1
  export interface IPyramidPalette {
7
2
  readonly activeTopStart: string;
8
3
  readonly activeTopEnd: string;
@@ -1,10 +1,8 @@
1
1
  import type { ComputedRef, InjectionKey, Ref } from 'vue';
2
2
 
3
- import type { IPyramidPalette, IPyramidRegistration } from '../shared';
3
+ import type { IPyramidPalette } from '../shared';
4
4
  import type { ISquareLayerGeometry, ISquarePyramidGeometry } from './types';
5
5
 
6
- export interface ISquarePyramidRegistration extends IPyramidRegistration {}
7
-
8
6
  export interface ISquarePyramidRootContext {
9
7
  readonly count: ComputedRef<number>;
10
8
  readonly activeIndex: Ref<number> | ComputedRef<number>;
@@ -15,7 +13,6 @@ export interface ISquarePyramidRootContext {
15
13
  readonly interactive: ComputedRef<boolean>;
16
14
  readonly titleWidthPx: ComputedRef<number>;
17
15
  readonly contentWidthPx: ComputedRef<number>;
18
- readonly contentRightOffsetPx: ComputedRef<number>;
19
16
  readonly registerStack: (
20
17
  id?: symbol,
21
18
  color?: ComputedRef<string | undefined>,
@@ -2,8 +2,6 @@ import {
2
2
  clampPyramidCount,
3
3
  computePyramidStacking,
4
4
  DEFAULT_PYRAMID_COLOR,
5
- darkenColor,
6
- lightenColor,
7
5
  MAX_PYRAMID_COUNT,
8
6
  MIN_PYRAMID_COUNT,
9
7
  resolvePyramidPalette,
@@ -17,19 +15,17 @@ import type {
17
15
 
18
16
  export const DEFAULT_SQUARE_PYRAMID_COLOR = DEFAULT_PYRAMID_COLOR;
19
17
  export const DEFAULT_SQUARE_PYRAMID_STACK_COLORS: readonly string[] = [
20
- '#ec4899', // 0: Pink (matches top slab)
21
- '#8b5cf6', // 1: Purple (matches 2nd slab)
22
- '#3b82f6', // 2: Blue (matches 3rd slab)
23
- '#06b6d4', // 3: Cyan (matches 4th slab)
24
- '#14b8a6', // 4: Teal (matches 5th slab)
25
- '#f59e0b', // 5: Amber (warm accent)
18
+ 'var(--alpha-square-pyramid-stack-1-color)',
19
+ 'var(--alpha-square-pyramid-stack-2-color)',
20
+ 'var(--alpha-square-pyramid-stack-3-color)',
21
+ 'var(--alpha-square-pyramid-stack-4-color)',
22
+ 'var(--alpha-square-pyramid-stack-5-color)',
23
+ 'var(--alpha-square-pyramid-stack-6-color)',
26
24
  ] as const;
27
25
 
28
26
  export const MIN_SQUARE_COUNT = MIN_PYRAMID_COUNT;
29
27
  export const MAX_SQUARE_COUNT = MAX_PYRAMID_COUNT;
30
28
 
31
- export { darkenColor, lightenColor };
32
-
33
29
  export function clampSquareCount(count?: number): number {
34
30
  return clampPyramidCount(count);
35
31
  }
@@ -46,7 +46,7 @@ function resolveValue<T>(val: Ref<T> | (() => T) | undefined, fallback: T): T {
46
46
 
47
47
  /**
48
48
  * Automatically computes a scale factor (via CSS transform: scale)
49
- * so that diagram components (ArrowTriad, RectOrbitTetrad, ArcArrowProcess, etc.)
49
+ * so that diagram components (ArrowTriad, RectangleOrbitTetrad, ArcArrowProcess, etc.)
50
50
  * fit comfortably inside the available slide canvas without clipping or overlaying pagination.
51
51
  */
52
52
  export function useDiagramAutoScale(
@@ -156,16 +156,14 @@ export function useDiagramAutoScale(
156
156
  pagyEl && window.getComputedStyle(pagyEl).display !== 'none';
157
157
  const clearance = isPagyVisible ? pagyClearance : 16;
158
158
 
159
- // Check for internal component header inside el (e.g. ArcDiD, GearTriad, HexTriad)
159
+ // Check for internal component header inside el (e.g. ArcDefenseInDepth, GearTriad, HexagonTriad)
160
160
  let internalHeaderH = 0;
161
161
  for (let i = 0; i < el.children.length; i++) {
162
162
  const child = el.children[i];
163
163
  if (
164
164
  child instanceof HTMLElement &&
165
165
  (child.tagName === 'HEADER' ||
166
- child.classList.contains('alpha-arc-did__header') ||
167
- child.classList.contains('alpha-gear-triad__header') ||
168
- child.classList.contains('alpha-hex-triad__header'))
166
+ child.classList.contains('alpha-arc-defense-in-depth__header'))
169
167
  ) {
170
168
  internalHeaderH += child.offsetHeight;
171
169
  const cs = window.getComputedStyle(child);
@@ -201,7 +199,11 @@ export function useDiagramAutoScale(
201
199
  (Number.parseFloat(cs.marginBottom) || 0);
202
200
  }
203
201
  }
204
- if (p === slideEl) break;
202
+
203
+ if (p === slideEl) {
204
+ break;
205
+ }
206
+
205
207
  curr = p;
206
208
  }
207
209
  }
@@ -1,12 +1,12 @@
1
1
  import { useAttrs } from 'vue';
2
2
 
3
- import { mergeUno } from './mergeUno';
4
- import type { TUnoClassValue } from './mergeUno/types';
3
+ import { mergeUno } from './merge-uno';
4
+ import type { TUnoClassValue } from './merge-uno/types';
5
5
 
6
6
  type TUnoClassSource = TUnoClassValue | (() => TUnoClassValue);
7
7
 
8
8
  interface IUseMergedUnoAttrsResult {
9
- readonly className: () => string;
9
+ readonly className: (...extraDefaults: TUnoClassValue[]) => string;
10
10
  readonly forwardedAttrs: () => Record<string, unknown>;
11
11
  }
12
12
 
@@ -20,11 +20,15 @@ export function useMergedUnoAttrs(
20
20
  ): IUseMergedUnoAttrsResult {
21
21
  const attrs = useAttrs();
22
22
 
23
- const className = (): string => {
23
+ const className = (...extraDefaults: TUnoClassValue[]): string => {
24
24
  const resolvedDefaults =
25
25
  typeof defaultClasses === 'function' ? defaultClasses() : defaultClasses;
26
26
 
27
- return mergeUno(resolvedDefaults, attrs.class as TUnoClassValue);
27
+ return mergeUno(
28
+ resolvedDefaults,
29
+ ...extraDefaults,
30
+ attrs.class as TUnoClassValue,
31
+ );
28
32
  };
29
33
 
30
34
  const forwardedAttrs = (): Record<string, unknown> => {
@@ -1,39 +0,0 @@
1
- <script setup lang="ts">
2
- import { computed, inject } from 'vue';
3
-
4
- import { CHEVRON_CARD_KEY } from '../../../utils/chevronCard';
5
-
6
- defineOptions({
7
- name: 'ChevronCardHeading',
8
- });
9
-
10
- export interface IChevronCardHeadingProps {
11
- readonly color?: string;
12
- }
13
-
14
- const props = withDefaults(defineProps<IChevronCardHeadingProps>(), {
15
- color: undefined,
16
- });
17
-
18
- const cardContext = inject(CHEVRON_CARD_KEY, undefined);
19
-
20
- const headingColor = computed(() => {
21
- return props.color ?? cardContext?.titleColor.value ?? '#4b5563';
22
- });
23
- </script>
24
-
25
- <template>
26
- <div
27
- class="alpha-chevron-card-heading font-bold text-[1.25rem] uppercase tracking-wider leading-tight select-none font-sans"
28
- :style="{
29
- color: headingColor,
30
- padding: 0,
31
- fontSize: '1.25rem',
32
- fontFamily:
33
- 'ui-sans-serif, system-ui, -apple-system, BlinkMacSystemFont, \'Segoe UI\', Roboto, sans-serif',
34
- marginBottom: '0.25rem',
35
- }"
36
- >
37
- <slot />
38
- </div>
39
- </template>
@@ -1,47 +0,0 @@
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>
@@ -1,68 +0,0 @@
1
- <script setup lang="ts">
2
- import { computed, inject } from 'vue';
3
-
4
- import { useMergedUnoAttrs } from '../../../utils/useMergedUnoAttrs';
5
- import { VERT_CARD_KEY } from '../../../utils/vertCard';
6
-
7
- defineOptions({
8
- inheritAttrs: false,
9
- name: 'VertCardHeading',
10
- });
11
-
12
- export interface IVertCardHeadingProps {
13
- /**
14
- * Title text color. Overrides context titleColor.
15
- */
16
- readonly color?: string;
17
- /**
18
- * Whether to render the decorative horizontal line with center dot below the title.
19
- * @default true
20
- */
21
- readonly hasDivider?: boolean;
22
- }
23
-
24
- const props = withDefaults(defineProps<IVertCardHeadingProps>(), {
25
- color: undefined,
26
- hasDivider: true,
27
- });
28
-
29
- const context = inject(VERT_CARD_KEY, undefined);
30
-
31
- const headingColor = computed(() => {
32
- return (
33
- props.color ??
34
- context?.titleColor.value ??
35
- context?.color.value ??
36
- '#ea583a'
37
- );
38
- });
39
-
40
- const { className, forwardedAttrs } = useMergedUnoAttrs(
41
- 'alpha-vert-card-heading font-sans font-bold text-xl tracking-tight leading-tight text-center',
42
- );
43
- </script>
44
-
45
- <template>
46
- <div class="flex flex-col items-center w-full">
47
- <h3
48
- v-bind="forwardedAttrs()"
49
- :class="className()"
50
- :style="{ color: headingColor }"
51
- >
52
- <slot>Lorem Ipsum</slot>
53
- </h3>
54
- <div
55
- v-if="props.hasDivider"
56
- class="mt-2.5 flex items-center justify-center w-32 relative"
57
- >
58
- <div
59
- class="w-full h-[1.5px]"
60
- :style="{ backgroundColor: headingColor }"
61
- />
62
- <span
63
- class="absolute w-2 h-2 rounded-full"
64
- :style="{ backgroundColor: headingColor }"
65
- />
66
- </div>
67
- </div>
68
- </template>