@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.
- package/README.md +134 -76
- package/components/card/chevron-card/ChevronCard.vue +44 -32
- package/components/card/chevron-card/ChevronCardBadge.vue +14 -8
- package/components/card/chevron-card/ChevronCardContent.vue +15 -13
- package/components/card/chevron-card/style.css +12 -0
- package/components/card/{horiz-card/HorizCard.vue → horizontal-card/HorizontalCard.vue} +78 -85
- package/components/card/{horiz-card/HorizCardBadge.vue → horizontal-card/HorizontalCardBadge.vue} +15 -10
- package/components/card/{horiz-card/HorizCardContent.vue → horizontal-card/HorizontalCardContent.vue} +11 -11
- package/components/card/{horiz-card/HorizCardIcon.vue → horizontal-card/HorizontalCardIcon.vue} +24 -38
- package/components/card/horizontal-card/style.css +17 -0
- package/components/card/{vert-card/VertCard.vue → vertical-card/VerticalCard.vue} +80 -103
- package/components/card/{vert-card/VertCardBadge.vue → vertical-card/VerticalCardBadge.vue} +15 -10
- package/components/card/{vert-card/VertCardContent.vue → vertical-card/VerticalCardContent.vue} +13 -12
- package/components/card/{vert-card/VertCardIcon.vue → vertical-card/VerticalCardIcon.vue} +15 -33
- package/components/card/vertical-card/style.css +19 -0
- package/components/comparisons/arc-comparison/ArcComparison.vue +376 -80
- package/components/comparisons/arc-comparison/ArcComparisonBadge.vue +9 -4
- package/components/comparisons/arc-comparison/ArcComparisonContent.vue +9 -4
- package/components/comparisons/arc-comparison/ArcComparisonHeading.vue +9 -4
- package/components/comparisons/arc-comparison/ArcComparisonLeft.vue +39 -63
- package/components/comparisons/arc-comparison/ArcComparisonOrbit.vue +9 -8
- package/components/comparisons/arc-comparison/ArcComparisonRight.vue +39 -63
- package/components/comparisons/arc-comparison/style.css +27 -0
- package/components/comparisons/table-comparison/TableComparison.vue +8 -90
- package/components/comparisons/table-comparison/TableComparisonCell.vue +22 -20
- package/components/comparisons/table-comparison/{TableComparisonCol.vue → TableComparisonColumn.vue} +16 -14
- package/components/comparisons/table-comparison/{TableComparisonCols.vue → TableComparisonColumns.vue} +5 -8
- package/components/comparisons/table-comparison/TableComparisonRow.vue +10 -14
- package/components/comparisons/table-comparison/TableComparisonRows.vue +1 -4
- package/components/comparisons/table-comparison/style.css +15 -0
- package/components/core/Date.vue +2 -5
- package/components/core/MetaList.vue +50 -0
- package/components/core/QnA.vue +1 -1
- package/components/core/Quote.vue +3 -6
- package/components/core/ReflectedTitle.vue +2 -6
- package/components/core/Speaker.vue +6 -11
- package/components/core/TransitionHeading.vue +2 -5
- package/components/core/arc-orbit/ArcOrbit.vue +65 -84
- package/components/core/arc-orbit/ArcOrbitBadge.vue +9 -11
- package/components/core/arc-orbit/ArcOrbitCallout.vue +19 -23
- package/components/core/arc-orbit/ArcOrbitContent.vue +6 -12
- package/components/core/arc-orbit/ArcOrbitHeading.vue +13 -11
- package/components/core/arc-orbit/style.css +20 -0
- package/components/core/style.css +9 -0
- package/components/core/thanks/{ThanksContent.vue → SquareThanks.vue} +36 -31
- package/components/core/thanks/SquareThanksContent.vue +87 -0
- package/components/core/thanks/ThanksOutlineSquare.vue +2 -5
- package/components/core/thanks/ThanksSquare.vue +2 -5
- package/components/core/thanks/style.css +30 -0
- package/components/defense-in-depth/{arc-did/ArcDiD.vue → arc-defense-in-depth/ArcDefenseInDepth.vue} +167 -97
- package/components/defense-in-depth/arc-defense-in-depth/ArcDefenseInDepthLayer.vue +240 -0
- package/components/defense-in-depth/{arc-did/ArcDiDLayerTitle.vue → arc-defense-in-depth/ArcDefenseInDepthLayerHeading.vue} +27 -29
- package/components/defense-in-depth/{arc-did/ArcDiDLayerPart.vue → arc-defense-in-depth/ArcDefenseInDepthLayerPart.vue} +91 -39
- package/components/defense-in-depth/{arc-did/ArcDiDLayerSector.vue → arc-defense-in-depth/ArcDefenseInDepthLayerSector.vue} +37 -23
- package/components/defense-in-depth/arc-defense-in-depth/style.css +38 -0
- package/components/facets/tetrad/{rect-orbit-tetrad/RectOrbitTetrad.vue → rectangle-orbit-tetrad/RectangleOrbitTetrad.vue} +66 -63
- package/components/facets/tetrad/{rect-orbit-tetrad/RectOrbitTetradCallout.vue → rectangle-orbit-tetrad/RectangleOrbitTetradCallout.vue} +58 -46
- package/components/facets/tetrad/rectangle-orbit-tetrad/RectangleOrbitTetradCenter.vue +54 -0
- package/components/facets/tetrad/rectangle-orbit-tetrad/RectangleOrbitTetradContent.vue +44 -0
- package/components/facets/tetrad/rectangle-orbit-tetrad/RectangleOrbitTetradHeading.vue +27 -0
- package/components/facets/tetrad/{rect-orbit-tetrad/RectOrbitTetradIcon.vue → rectangle-orbit-tetrad/RectangleOrbitTetradIcon.vue} +23 -13
- package/components/facets/tetrad/rectangle-orbit-tetrad/style.css +22 -0
- package/components/facets/triad/arrow-triad/ArrowTriad.vue +99 -109
- package/components/facets/triad/arrow-triad/ArrowTriadCallout.vue +31 -59
- package/components/facets/triad/arrow-triad/ArrowTriadContent.vue +18 -13
- package/components/facets/triad/arrow-triad/ArrowTriadHeading.vue +20 -13
- package/components/facets/triad/arrow-triad/ArrowTriadIcon.vue +14 -9
- package/components/facets/triad/arrow-triad/style.css +15 -0
- package/components/facets/triad/gear-triad/GearTriad.vue +73 -64
- package/components/facets/triad/gear-triad/GearTriadCallout.vue +58 -53
- package/components/facets/triad/gear-triad/GearTriadCenter.vue +9 -4
- package/components/facets/triad/gear-triad/GearTriadContent.vue +21 -36
- package/components/facets/triad/gear-triad/GearTriadDetail.vue +92 -0
- package/components/facets/triad/gear-triad/GearTriadDetails.vue +169 -0
- package/components/facets/triad/gear-triad/GearTriadDetailsContent.vue +18 -0
- package/components/facets/triad/gear-triad/GearTriadDetailsHeading.vue +60 -0
- package/components/facets/triad/gear-triad/GearTriadHeading.vue +19 -13
- package/components/facets/triad/gear-triad/GearTriadIcon.vue +22 -9
- package/components/facets/triad/gear-triad/style.css +26 -0
- package/components/facets/triad/{hex-triad/HexTriad.vue → hexagon-triad/HexagonTriad.vue} +81 -63
- package/components/facets/triad/{hex-triad/HexTriadBadge.vue → hexagon-triad/HexagonTriadBadge.vue} +38 -12
- package/components/facets/triad/{hex-triad/HexTriadCallout.vue → hexagon-triad/HexagonTriadCallout.vue} +35 -31
- package/components/facets/triad/hexagon-triad/HexagonTriadCenterBadge.vue +74 -0
- package/components/facets/triad/hexagon-triad/HexagonTriadContent.vue +34 -0
- package/components/facets/triad/hexagon-triad/HexagonTriadHeading.vue +44 -0
- package/components/facets/triad/{hex-triad/HexTriadLayer.vue → hexagon-triad/HexagonTriadLayer.vue} +12 -4
- package/components/facets/triad/hexagon-triad/style.css +22 -0
- package/components/process/arc-arrow-process/ArcArrowProcess.vue +13 -35
- package/components/process/arc-arrow-process/ArcArrowProcessArrow.vue +20 -21
- package/components/process/arc-arrow-process/ArcArrowProcessCallout.vue +30 -71
- package/components/process/arc-arrow-process/ArcArrowProcessContent.vue +18 -13
- package/components/process/arc-arrow-process/ArcArrowProcessHeading.vue +18 -18
- package/components/process/arc-arrow-process/ArcArrowProcessIcon.vue +23 -11
- package/components/process/arc-arrow-process/style.css +20 -0
- package/components/pyramid/circular-pyramid/CircularPyramid.vue +269 -170
- package/components/pyramid/circular-pyramid/CircularPyramidStack.vue +70 -52
- package/components/pyramid/circular-pyramid/CircularPyramidStackContent.vue +47 -37
- package/components/pyramid/circular-pyramid/{CircularPyramidStackTitle.vue → CircularPyramidStackHeading.vue} +49 -45
- package/components/pyramid/circular-pyramid/style.css +26 -0
- package/components/pyramid/square-pyramid/SquarePyramid.vue +191 -62
- package/components/pyramid/square-pyramid/SquarePyramidStack.vue +74 -49
- package/components/pyramid/square-pyramid/SquarePyramidStackContent.vue +47 -33
- package/components/pyramid/square-pyramid/{SquarePyramidStackTitle.vue → SquarePyramidStackHeading.vue} +49 -41
- package/components/pyramid/square-pyramid/style.css +48 -0
- package/components/style.css +35 -0
- package/layouts/core/arc-toc.vue +40 -45
- package/layouts/core/bg-center.vue +7 -6
- package/layouts/core/references.vue +84 -0
- package/layouts/core/style.css +47 -0
- package/layouts/shifting-heading/shifting-intro.vue +4 -13
- package/layouts/thanks/thanks.vue +5 -5
- package/package.json +7 -5
- package/style.css +17 -0
- package/uno.config.ts +1 -0
- package/utils/activateOnKeyboard.ts +14 -0
- package/utils/{chevronCard → card/chevron-card}/context.ts +1 -1
- package/utils/card/chevron-card/index.ts +1 -0
- package/utils/card/horizontal-card/context.ts +12 -0
- package/utils/{horizCard/createHorizCardGeometry.ts → card/horizontal-card/createHorizontalCardGeometry.ts} +10 -45
- package/utils/card/horizontal-card/index.ts +2 -0
- package/utils/card/vertical-card/context.ts +19 -0
- package/utils/{vertCard/createVertCardGeometry.ts → card/vertical-card/createVerticalCardGeometry.ts} +9 -130
- package/utils/card/vertical-card/index.ts +2 -0
- package/utils/colors.ts +93 -0
- package/utils/{arcComparison → comparisons/arc-comparison}/context.ts +0 -11
- package/utils/{arcComparison → comparisons/arc-comparison}/createArcComparisonGeometry.ts +1 -1
- package/utils/comparisons/arc-comparison/resolveArcComparisonItems.ts +33 -0
- package/utils/comparisons/table-comparison/constants.ts +47 -0
- package/utils/{tableComparison → comparisons/table-comparison}/context.ts +2 -2
- package/utils/{arcOrbit → core/arc-orbit}/resolveArcOrbitItems.ts +11 -15
- package/utils/{defenseInDepth/arcDid → defense-in-depth/arc-defense-in-depth}/context.ts +34 -31
- package/utils/{defenseInDepth/arcDid/createArcDiDGeometry.ts → defense-in-depth/arc-defense-in-depth/createArcDefenseInDepthGeometry.ts} +69 -39
- package/utils/{defenseInDepth/arcDid → defense-in-depth/arc-defense-in-depth}/types.ts +39 -35
- package/utils/defense-in-depth/shared/colors.ts +51 -0
- package/utils/defense-in-depth/shared/constants.ts +22 -0
- package/utils/{defenseInDepth → defense-in-depth}/shared/types.ts +0 -5
- package/utils/facets/tetrad/rectangle-orbit-tetrad/context.ts +31 -0
- package/utils/{rectOrbitTetrad/createRectOrbitTetradGeometry.ts → facets/tetrad/rectangle-orbit-tetrad/createRectangleOrbitTetradGeometry.ts} +5 -104
- package/utils/facets/tetrad/rectangle-orbit-tetrad/index.ts +3 -0
- package/utils/{rectOrbitTetrad/resolveRectOrbitTetradItems.ts → facets/tetrad/rectangle-orbit-tetrad/resolveRectangleOrbitTetradItems.ts} +41 -49
- package/utils/{arrowTriad → facets/triad/arrow-triad}/resolveArrowTriadItems.ts +27 -28
- package/utils/{gearTriad → facets/triad/gear-triad}/context.ts +5 -5
- package/utils/{gearTriad → facets/triad/gear-triad}/createGearTriadGeometry.ts +2 -0
- package/utils/{gearTriad → facets/triad/gear-triad}/resolveGearTriadItems.ts +23 -24
- package/utils/facets/triad/hexagon-triad/context.ts +25 -0
- package/utils/{hexTriad/createHexTriadGeometry.ts → facets/triad/hexagon-triad/createHexagonTriadGeometry.ts} +11 -27
- package/utils/facets/triad/hexagon-triad/index.ts +3 -0
- package/utils/facets/triad/hexagon-triad/resolveHexagonTriadItems.ts +60 -0
- package/utils/{shiftingHeading → layouts/shifting-heading}/collectShiftingIntroNodes.ts +1 -0
- package/utils/layouts/table-of-contents/calculateTocCenterAlignmentOffset.ts +17 -0
- package/utils/{tableOfContents → layouts/table-of-contents}/calculateTocMarkerPositions.ts +0 -12
- package/utils/{tableOfContents → layouts/table-of-contents}/createTocConnectorPath.ts +11 -5
- package/utils/{mergeUno → merge-uno}/classifyVisual.ts +1 -1
- package/utils/{mergeUno → merge-uno}/collectClassNames.ts +9 -3
- package/utils/process/arc-arrow-process/resolveArcArrowProcessItems.ts +180 -0
- package/utils/pyramid/circular-pyramid/context.ts +1 -4
- package/utils/pyramid/circular-pyramid/createCircularPyramidGeometry.ts +6 -10
- package/utils/pyramid/shared/colors.ts +33 -83
- package/utils/pyramid/shared/constants.ts +2 -2
- package/utils/pyramid/shared/types.ts +0 -5
- package/utils/pyramid/square-pyramid/context.ts +1 -4
- package/utils/pyramid/square-pyramid/createSquarePyramidGeometry.ts +6 -10
- package/utils/useDiagramAutoScale.ts +8 -6
- package/utils/useMergedUnoAttrs.ts +9 -5
- package/components/card/chevron-card/ChevronCardHeading.vue +0 -39
- package/components/card/horiz-card/HorizCardHeading.vue +0 -47
- package/components/card/vert-card/VertCardHeading.vue +0 -68
- package/components/card/vert-card/VertCardTitle.vue +0 -76
- package/components/comparisons/arc-comparison/ArcComparisonContents.vue +0 -17
- package/components/comparisons/arc-comparison/ArcComparisonTitle.vue +0 -29
- package/components/core/arc-orbit/ArcOrbitContents.vue +0 -18
- package/components/core/arc-orbit/ArcOrbitTitle.vue +0 -50
- package/components/defense-in-depth/arc-did/ArcDiDLayer.vue +0 -321
- package/components/defense-in-depth/arc-did/ArcDiDLayerParts.vue +0 -11
- package/components/facets/tetrad/rect-orbit-tetrad/RectOrbitTetradCenter.vue +0 -53
- package/components/facets/tetrad/rect-orbit-tetrad/RectOrbitTetradContent.vue +0 -39
- package/components/facets/tetrad/rect-orbit-tetrad/RectOrbitTetradHeading.vue +0 -44
- package/components/facets/triad/gear-triad/GearTriadContents.vue +0 -111
- package/components/facets/triad/gear-triad/GearTriadDescription.vue +0 -38
- package/components/facets/triad/hex-triad/HexTriadCenterBadge.vue +0 -51
- package/components/facets/triad/hex-triad/HexTriadContent.vue +0 -20
- package/components/facets/triad/hex-triad/HexTriadHeading.vue +0 -28
- package/layouts/core/table-of-contents.vue +0 -30
- package/utils/arcArrowProcess/resolveArcArrowProcessItems.ts +0 -189
- package/utils/arcComparison/resolveArcComparisonItems.ts +0 -102
- package/utils/chevronCard/createChevronCardGeometry.ts +0 -48
- package/utils/chevronCard/index.ts +0 -2
- package/utils/defenseInDepth/arcDid/index.ts +0 -3
- package/utils/defenseInDepth/index.ts +0 -2
- package/utils/defenseInDepth/shared/colors.ts +0 -121
- package/utils/defenseInDepth/shared/constants.ts +0 -14
- package/utils/defenseInDepth/shared/index.ts +0 -3
- package/utils/hexTriad/context.ts +0 -25
- package/utils/hexTriad/index.ts +0 -3
- package/utils/hexTriad/resolveHexTriadItems.ts +0 -63
- package/utils/horizCard/context.ts +0 -13
- package/utils/horizCard/index.ts +0 -2
- package/utils/pyramid/index.ts +0 -3
- package/utils/rectOrbitTetrad/context.ts +0 -31
- package/utils/rectOrbitTetrad/index.ts +0 -3
- package/utils/tableComparison/constants.ts +0 -72
- package/utils/tableOfContents/calculateTocCenterAlignmentOffset.ts +0 -11
- package/utils/vertCard/context.ts +0 -18
- package/utils/vertCard/index.ts +0 -2
- package/utils/{arcComparison → comparisons/arc-comparison}/index.ts +0 -0
- package/utils/{tableComparison → comparisons/table-comparison}/index.ts +0 -0
- package/utils/{arcOrbit → core/arc-orbit}/context.ts +0 -0
- package/utils/{arcOrbit → core/arc-orbit}/createArcOrbitGeometry.ts +0 -0
- package/utils/{arcOrbit → core/arc-orbit}/index.ts +0 -0
- package/utils/{arrowTriad → facets/triad/arrow-triad}/context.ts +0 -0
- package/utils/{arrowTriad → facets/triad/arrow-triad}/createArrowTriadGeometry.ts +0 -0
- package/utils/{arrowTriad → facets/triad/arrow-triad}/index.ts +0 -0
- package/utils/{gearTriad → facets/triad/gear-triad}/index.ts +0 -0
- package/utils/{tableOfContents → layouts/table-of-contents}/calculateUniformTocArticleWidth.ts +0 -0
- package/utils/{tableOfContents → layouts/table-of-contents}/createTocArcPath.ts +0 -0
- package/utils/{tableOfContents → layouts/table-of-contents}/index.ts +0 -0
- package/utils/{mergeUno → merge-uno}/classifyLayout.ts +0 -0
- package/utils/{mergeUno → merge-uno}/classifySimple.ts +0 -0
- package/utils/{mergeUno → merge-uno}/classifyTypography.ts +0 -0
- package/utils/{mergeUno → merge-uno}/classifyUtility.ts +0 -0
- package/utils/{mergeUno → merge-uno}/index.ts +0 -0
- package/utils/{mergeUno → merge-uno}/mergeClassValues.ts +0 -0
- package/utils/{mergeUno → merge-uno}/splitVariantScope.ts +1 -1
- package/utils/{mergeUno → merge-uno}/types.ts +0 -0
- package/utils/{arcArrowProcess → process/arc-arrow-process}/context.ts +1 -1
- /package/utils/{arcArrowProcess → process/arc-arrow-process}/createArcArrowProcessGeometry.ts +0 -0
- /package/utils/{arcArrowProcess → process/arc-arrow-process}/index.ts +0 -0
|
@@ -1,111 +0,0 @@
|
|
|
1
|
-
<script setup lang="ts">
|
|
2
|
-
import { computed, inject, onBeforeUpdate, provide, useSlots } from 'vue';
|
|
3
|
-
|
|
4
|
-
import {
|
|
5
|
-
GEAR_TRIAD_CONTENTS_KEY,
|
|
6
|
-
GEAR_TRIAD_ROOT_KEY,
|
|
7
|
-
getDefaultGearTriadItem,
|
|
8
|
-
type IResolvedGearTriadItem,
|
|
9
|
-
} from '../../../../utils/gearTriad';
|
|
10
|
-
|
|
11
|
-
defineOptions({
|
|
12
|
-
name: 'GearTriadContents',
|
|
13
|
-
});
|
|
14
|
-
|
|
15
|
-
export interface IGearTriadContentsProps {
|
|
16
|
-
readonly title?: string;
|
|
17
|
-
readonly description?: string;
|
|
18
|
-
readonly option?: number;
|
|
19
|
-
}
|
|
20
|
-
|
|
21
|
-
const props = withDefaults(defineProps<IGearTriadContentsProps>(), {
|
|
22
|
-
title: undefined,
|
|
23
|
-
description: undefined,
|
|
24
|
-
option: undefined,
|
|
25
|
-
});
|
|
26
|
-
|
|
27
|
-
const slots = useSlots();
|
|
28
|
-
const rootContext = inject(GEAR_TRIAD_ROOT_KEY, undefined);
|
|
29
|
-
rootContext?.registerContents();
|
|
30
|
-
|
|
31
|
-
let contentCounter = 0;
|
|
32
|
-
const optionCounters: Record<number, number> = {};
|
|
33
|
-
onBeforeUpdate(() => {
|
|
34
|
-
contentCounter = 0;
|
|
35
|
-
for (const k in optionCounters) {
|
|
36
|
-
optionCounters[k] = 0;
|
|
37
|
-
}
|
|
38
|
-
});
|
|
39
|
-
|
|
40
|
-
const registerContent = (option?: number) => {
|
|
41
|
-
if (option !== undefined) {
|
|
42
|
-
optionCounters[option] = (optionCounters[option] ?? 0) + 1;
|
|
43
|
-
return { index: optionCounters[option] - 1 };
|
|
44
|
-
}
|
|
45
|
-
const idx = contentCounter++;
|
|
46
|
-
return { index: idx };
|
|
47
|
-
};
|
|
48
|
-
|
|
49
|
-
const resolvedOptionIndex = computed(() => {
|
|
50
|
-
if (props.option !== undefined) {
|
|
51
|
-
return Math.max(0, props.option - 1);
|
|
52
|
-
}
|
|
53
|
-
return rootContext?.activeOptionIndex.value ?? 0;
|
|
54
|
-
});
|
|
55
|
-
|
|
56
|
-
const activeItem = computed<IResolvedGearTriadItem>(() => {
|
|
57
|
-
if (rootContext?.items.value) {
|
|
58
|
-
const item = rootContext.items.value[resolvedOptionIndex.value];
|
|
59
|
-
if (item) {
|
|
60
|
-
return item;
|
|
61
|
-
}
|
|
62
|
-
}
|
|
63
|
-
return getDefaultGearTriadItem(resolvedOptionIndex.value);
|
|
64
|
-
});
|
|
65
|
-
|
|
66
|
-
provide(GEAR_TRIAD_CONTENTS_KEY, {
|
|
67
|
-
activeItem,
|
|
68
|
-
activeOptionIndex: resolvedOptionIndex,
|
|
69
|
-
registerContent,
|
|
70
|
-
});
|
|
71
|
-
|
|
72
|
-
const isVisible = computed(() => {
|
|
73
|
-
if (!rootContext?.isShifted.value) {
|
|
74
|
-
return false;
|
|
75
|
-
}
|
|
76
|
-
if (props.option !== undefined) {
|
|
77
|
-
return props.option - 1 === rootContext.activeOptionIndex.value;
|
|
78
|
-
}
|
|
79
|
-
return true;
|
|
80
|
-
});
|
|
81
|
-
</script>
|
|
82
|
-
|
|
83
|
-
<template>
|
|
84
|
-
<div
|
|
85
|
-
class="alpha-gear-triad-contents absolute right-2.5 top-1/2 -translate-y-1/2 w-[490px] flex flex-col select-none box-border pointer-events-auto transition-all duration-500 ease-out"
|
|
86
|
-
:class="[
|
|
87
|
-
isVisible
|
|
88
|
-
? 'opacity-100 translate-x-0 delay-200'
|
|
89
|
-
: 'opacity-0 pointer-events-none translate-x-8',
|
|
90
|
-
]"
|
|
91
|
-
>
|
|
92
|
-
<!-- Header: Option Title -->
|
|
93
|
-
<slot name="title">
|
|
94
|
-
<h3 class="alpha-gear-triad-contents__title text-2xl font-bold font-sans tracking-tight text-slate-900 mb-2">
|
|
95
|
-
{{ props.title ?? activeItem.title }}
|
|
96
|
-
</h3>
|
|
97
|
-
</slot>
|
|
98
|
-
<!-- Header: Option Description -->
|
|
99
|
-
<slot name="description">
|
|
100
|
-
<p class="alpha-gear-triad-contents__desc text-sm font-sans text-slate-500 leading-relaxed mb-6">
|
|
101
|
-
{{ props.description ?? activeItem.description }}
|
|
102
|
-
</p>
|
|
103
|
-
</slot>
|
|
104
|
-
<!-- Body: List of GearTriadContent items -->
|
|
105
|
-
<div class="alpha-gear-triad-contents__items flex flex-col gap-3.5">
|
|
106
|
-
<slot v-if="$slots[String(resolvedOptionIndex + 1)]" :name="String(resolvedOptionIndex + 1)" />
|
|
107
|
-
<slot v-else-if="$slots[`option-${resolvedOptionIndex + 1}`]" :name="`option-${resolvedOptionIndex + 1}`" />
|
|
108
|
-
<slot v-else />
|
|
109
|
-
</div>
|
|
110
|
-
</div>
|
|
111
|
-
</template>
|
|
@@ -1,38 +0,0 @@
|
|
|
1
|
-
<script setup lang="ts">
|
|
2
|
-
import { computed, inject } from 'vue';
|
|
3
|
-
|
|
4
|
-
import { GEAR_TRIAD_CALLOUT_KEY } from '../../../../utils/gearTriad';
|
|
5
|
-
|
|
6
|
-
defineOptions({
|
|
7
|
-
name: 'GearTriadDescription',
|
|
8
|
-
});
|
|
9
|
-
|
|
10
|
-
export interface IGearTriadDescriptionProps {
|
|
11
|
-
readonly color?: string;
|
|
12
|
-
}
|
|
13
|
-
|
|
14
|
-
const props = withDefaults(defineProps<IGearTriadDescriptionProps>(), {
|
|
15
|
-
color: undefined,
|
|
16
|
-
});
|
|
17
|
-
|
|
18
|
-
const calloutContext = inject(GEAR_TRIAD_CALLOUT_KEY, undefined);
|
|
19
|
-
|
|
20
|
-
const descriptionColor = computed(() => {
|
|
21
|
-
return props.color ?? calloutContext?.item.value.textColor ?? '#64748b';
|
|
22
|
-
});
|
|
23
|
-
</script>
|
|
24
|
-
|
|
25
|
-
<template>
|
|
26
|
-
<div
|
|
27
|
-
class="alpha-gear-triad-description text-[0.92rem] leading-[1.45] font-normal select-none"
|
|
28
|
-
:style="{
|
|
29
|
-
color: descriptionColor,
|
|
30
|
-
fontFamily:
|
|
31
|
-
'ui-sans-serif, system-ui, -apple-system, BlinkMacSystemFont, \'Segoe UI\', Roboto, sans-serif',
|
|
32
|
-
}"
|
|
33
|
-
>
|
|
34
|
-
<slot>
|
|
35
|
-
{{ calloutContext?.item.value.description }}
|
|
36
|
-
</slot>
|
|
37
|
-
</div>
|
|
38
|
-
</template>
|
|
@@ -1,51 +0,0 @@
|
|
|
1
|
-
<script setup lang="ts">
|
|
2
|
-
import { computed } from 'vue';
|
|
3
|
-
|
|
4
|
-
defineOptions({
|
|
5
|
-
name: 'HexTriadCenterBadge',
|
|
6
|
-
});
|
|
7
|
-
|
|
8
|
-
export interface IHexTriadCenterBadgeProps {
|
|
9
|
-
readonly x: number;
|
|
10
|
-
readonly y: number;
|
|
11
|
-
readonly text: string | number;
|
|
12
|
-
readonly color: string;
|
|
13
|
-
readonly filter?: string;
|
|
14
|
-
readonly radius: number;
|
|
15
|
-
}
|
|
16
|
-
|
|
17
|
-
const props = withDefaults(defineProps<IHexTriadCenterBadgeProps>(), {
|
|
18
|
-
filter: 'url(#hex-badge-shadow)',
|
|
19
|
-
});
|
|
20
|
-
|
|
21
|
-
const transform = computed(() => {
|
|
22
|
-
return `translate(${props.x}, ${props.y})`;
|
|
23
|
-
});
|
|
24
|
-
</script>
|
|
25
|
-
|
|
26
|
-
<template>
|
|
27
|
-
<g class="alpha-hex-triad-center-badge" :transform="transform" :filter="filter">
|
|
28
|
-
<circle class="alpha-hex-triad-center-badge__outer" cx="0" cy="0" :r="radius + 4" fill="#ffffff" />
|
|
29
|
-
<circle class="alpha-hex-triad-center-badge__circle" cx="0" cy="0" :r="radius" :fill="color" />
|
|
30
|
-
<circle
|
|
31
|
-
class="alpha-hex-triad-center-badge__ring"
|
|
32
|
-
cx="0"
|
|
33
|
-
cy="0"
|
|
34
|
-
:r="radius - 4"
|
|
35
|
-
fill="none"
|
|
36
|
-
stroke="#ffffff"
|
|
37
|
-
stroke-width="1.2"
|
|
38
|
-
:style="{ opacity: 0.65 }"
|
|
39
|
-
/>
|
|
40
|
-
<text
|
|
41
|
-
class="alpha-hex-triad-center-badge__text font-black text-lg select-none"
|
|
42
|
-
x="0"
|
|
43
|
-
y="6.5"
|
|
44
|
-
text-anchor="middle"
|
|
45
|
-
fill="#ffffff"
|
|
46
|
-
font-family="system-ui, -apple-system, sans-serif"
|
|
47
|
-
>
|
|
48
|
-
{{ text }}
|
|
49
|
-
</text>
|
|
50
|
-
</g>
|
|
51
|
-
</template>
|
|
@@ -1,20 +0,0 @@
|
|
|
1
|
-
<script setup lang="ts">
|
|
2
|
-
defineOptions({
|
|
3
|
-
name: 'HexTriadContent',
|
|
4
|
-
});
|
|
5
|
-
</script>
|
|
6
|
-
|
|
7
|
-
<template>
|
|
8
|
-
<p
|
|
9
|
-
class="alpha-hex-triad-content mt-0 mb-0 text-[1rem] leading-relaxed max-w-[240px]"
|
|
10
|
-
:style="{
|
|
11
|
-
margin: 0,
|
|
12
|
-
fontSize: '1rem',
|
|
13
|
-
fontFamily: 'system-ui, -apple-system, BlinkMacSystemFont, sans-serif',
|
|
14
|
-
}"
|
|
15
|
-
>
|
|
16
|
-
<slot>
|
|
17
|
-
Lorem ipsum dolor sit amet, consectetuer adipiscing elit, sed diam nonummy nibh euismod sed diam nonummy nibh
|
|
18
|
-
</slot>
|
|
19
|
-
</p>
|
|
20
|
-
</template>
|
|
@@ -1,28 +0,0 @@
|
|
|
1
|
-
<script setup lang="ts">
|
|
2
|
-
import { computed, inject } from 'vue';
|
|
3
|
-
|
|
4
|
-
import { HEX_TRIAD_CALLOUT_KEY } from '../../../../utils/hexTriad';
|
|
5
|
-
|
|
6
|
-
defineOptions({
|
|
7
|
-
name: 'HexTriadHeading',
|
|
8
|
-
});
|
|
9
|
-
|
|
10
|
-
const calloutContext = inject(HEX_TRIAD_CALLOUT_KEY, undefined);
|
|
11
|
-
const headingColor = computed(() => {
|
|
12
|
-
return calloutContext?.item.value.color ?? '#e11d48';
|
|
13
|
-
});
|
|
14
|
-
</script>
|
|
15
|
-
|
|
16
|
-
<template>
|
|
17
|
-
<h3
|
|
18
|
-
class="alpha-hex-triad-heading font-bold text-[1.25rem] tracking-tight mb-[0.5rem]"
|
|
19
|
-
:style="{
|
|
20
|
-
color: headingColor,
|
|
21
|
-
fontSize: '1.25rem',
|
|
22
|
-
fontFamily:
|
|
23
|
-
'system-ui, -apple-system, BlinkMacSystemFont, sans-serif',
|
|
24
|
-
}"
|
|
25
|
-
>
|
|
26
|
-
<slot>Text Here</slot>
|
|
27
|
-
</h3>
|
|
28
|
-
</template>
|
|
@@ -1,30 +0,0 @@
|
|
|
1
|
-
<script setup lang="ts">
|
|
2
|
-
import { useMergedUnoAttrs } from '../../utils/useMergedUnoAttrs';
|
|
3
|
-
|
|
4
|
-
defineOptions({
|
|
5
|
-
inheritAttrs: false,
|
|
6
|
-
});
|
|
7
|
-
|
|
8
|
-
defineProps({
|
|
9
|
-
maxDepth: {
|
|
10
|
-
type: [Number, String],
|
|
11
|
-
default: 1,
|
|
12
|
-
},
|
|
13
|
-
});
|
|
14
|
-
|
|
15
|
-
const { className, forwardedAttrs } = useMergedUnoAttrs(
|
|
16
|
-
'alpha-table-of-contents slidev-layout default toc-layout',
|
|
17
|
-
);
|
|
18
|
-
</script>
|
|
19
|
-
|
|
20
|
-
<template>
|
|
21
|
-
<div
|
|
22
|
-
v-bind="forwardedAttrs()"
|
|
23
|
-
:class="className()"
|
|
24
|
-
>
|
|
25
|
-
<slot>
|
|
26
|
-
<h1>Table of Contents</h1>
|
|
27
|
-
</slot>
|
|
28
|
-
<Toc :maxDepth="maxDepth" />
|
|
29
|
-
</div>
|
|
30
|
-
</template>
|
|
@@ -1,189 +0,0 @@
|
|
|
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
|
-
export const DEFAULT_ARC_ARROW_PROCESS_ITEMS_4: readonly [
|
|
24
|
-
IResolvedArcArrowProcessItem,
|
|
25
|
-
IResolvedArcArrowProcessItem,
|
|
26
|
-
IResolvedArcArrowProcessItem,
|
|
27
|
-
IResolvedArcArrowProcessItem,
|
|
28
|
-
] = [
|
|
29
|
-
{
|
|
30
|
-
id: '01',
|
|
31
|
-
color: '#a0a5aa',
|
|
32
|
-
gradientEnd: '#8e959f',
|
|
33
|
-
title: 'Heading Here',
|
|
34
|
-
description:
|
|
35
|
-
'Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do eiusmod tempor incididunt ut.',
|
|
36
|
-
titleColor: '#888d94',
|
|
37
|
-
textColor: '#8e959f',
|
|
38
|
-
},
|
|
39
|
-
{
|
|
40
|
-
id: '02',
|
|
41
|
-
color: '#2c485d',
|
|
42
|
-
gradientEnd: '#334e68',
|
|
43
|
-
title: 'Heading Here',
|
|
44
|
-
description:
|
|
45
|
-
'Sed do eiusmod tempor incididunt ut labore et lorem ipsum dolor sit amet, consectetur adipiscing elit.',
|
|
46
|
-
titleColor: '#2c485d',
|
|
47
|
-
textColor: '#8e959f',
|
|
48
|
-
},
|
|
49
|
-
{
|
|
50
|
-
id: '03',
|
|
51
|
-
color: '#6fa3b5',
|
|
52
|
-
gradientEnd: '#7fb0c0',
|
|
53
|
-
title: 'Heading Here',
|
|
54
|
-
description:
|
|
55
|
-
'Tempor incididunt ut laborelorem ipsum dolor sit amet, consectetur adipiscing elit, sed do eiusmod et.',
|
|
56
|
-
titleColor: '#6fa3b5',
|
|
57
|
-
textColor: '#8e959f',
|
|
58
|
-
},
|
|
59
|
-
{
|
|
60
|
-
id: '04',
|
|
61
|
-
color: '#d6284d',
|
|
62
|
-
gradientEnd: '#e63964',
|
|
63
|
-
title: 'Heading Here',
|
|
64
|
-
description:
|
|
65
|
-
'Eiusmod tempor incididunt ut labore lorem ipsum dolor sit amet, consectetur adipiscing elit, sed.',
|
|
66
|
-
titleColor: '#d6284d',
|
|
67
|
-
textColor: '#8e959f',
|
|
68
|
-
},
|
|
69
|
-
];
|
|
70
|
-
|
|
71
|
-
export const DEFAULT_ARC_ARROW_PROCESS_ITEMS_3: readonly [
|
|
72
|
-
IResolvedArcArrowProcessItem,
|
|
73
|
-
IResolvedArcArrowProcessItem,
|
|
74
|
-
IResolvedArcArrowProcessItem,
|
|
75
|
-
] = [
|
|
76
|
-
{
|
|
77
|
-
id: '01',
|
|
78
|
-
color: '#a0a5aa',
|
|
79
|
-
gradientEnd: '#8e959f',
|
|
80
|
-
title: 'Heading Here',
|
|
81
|
-
description:
|
|
82
|
-
'Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do eiusmod tempor incididunt ut labore.',
|
|
83
|
-
titleColor: '#888d94',
|
|
84
|
-
textColor: '#8e959f',
|
|
85
|
-
},
|
|
86
|
-
{
|
|
87
|
-
id: '02',
|
|
88
|
-
color: '#2c485d',
|
|
89
|
-
gradientEnd: '#334e68',
|
|
90
|
-
title: 'Heading Here',
|
|
91
|
-
description:
|
|
92
|
-
'Sed do eiusmod tempor incididunt ut labore et lorem ipsum dolor sit amet, consectetur adipiscing elit.',
|
|
93
|
-
titleColor: '#2c485d',
|
|
94
|
-
textColor: '#8e959f',
|
|
95
|
-
},
|
|
96
|
-
{
|
|
97
|
-
id: '03',
|
|
98
|
-
color: '#d6284d',
|
|
99
|
-
gradientEnd: '#e63964',
|
|
100
|
-
title: 'Heading Here',
|
|
101
|
-
description:
|
|
102
|
-
'Eiusmod tempor incididunt ut labore lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do.',
|
|
103
|
-
titleColor: '#d6284d',
|
|
104
|
-
textColor: '#8e959f',
|
|
105
|
-
},
|
|
106
|
-
];
|
|
107
|
-
|
|
108
|
-
export const DEFAULT_ARC_ARROW_PROCESS_ITEMS_2: readonly [
|
|
109
|
-
IResolvedArcArrowProcessItem,
|
|
110
|
-
IResolvedArcArrowProcessItem,
|
|
111
|
-
] = [
|
|
112
|
-
{
|
|
113
|
-
id: '01',
|
|
114
|
-
color: '#2c485d',
|
|
115
|
-
gradientEnd: '#334e68',
|
|
116
|
-
title: 'Heading Here',
|
|
117
|
-
description:
|
|
118
|
-
'Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do eiusmod tempor incididunt ut labore.',
|
|
119
|
-
titleColor: '#2c485d',
|
|
120
|
-
textColor: '#8e959f',
|
|
121
|
-
},
|
|
122
|
-
{
|
|
123
|
-
id: '02',
|
|
124
|
-
color: '#6fa3b5',
|
|
125
|
-
gradientEnd: '#7fb0c0',
|
|
126
|
-
title: 'Heading Here',
|
|
127
|
-
description:
|
|
128
|
-
'Sed do eiusmod tempor incididunt ut labore et lorem ipsum dolor sit amet, consectetur adipiscing elit.',
|
|
129
|
-
titleColor: '#6fa3b5',
|
|
130
|
-
textColor: '#8e959f',
|
|
131
|
-
},
|
|
132
|
-
];
|
|
133
|
-
|
|
134
|
-
export function getDefaultArcArrowProcessItem(
|
|
135
|
-
index: number,
|
|
136
|
-
count: number = 4,
|
|
137
|
-
): IResolvedArcArrowProcessItem {
|
|
138
|
-
const list =
|
|
139
|
-
count === 2
|
|
140
|
-
? DEFAULT_ARC_ARROW_PROCESS_ITEMS_2
|
|
141
|
-
: count === 3
|
|
142
|
-
? DEFAULT_ARC_ARROW_PROCESS_ITEMS_3
|
|
143
|
-
: DEFAULT_ARC_ARROW_PROCESS_ITEMS_4;
|
|
144
|
-
const safe = Math.abs(index) % list.length;
|
|
145
|
-
const item = list[safe];
|
|
146
|
-
|
|
147
|
-
if (item) {
|
|
148
|
-
return item;
|
|
149
|
-
}
|
|
150
|
-
|
|
151
|
-
return DEFAULT_ARC_ARROW_PROCESS_ITEMS_4[0];
|
|
152
|
-
}
|
|
153
|
-
|
|
154
|
-
export function resolveSingleArcArrowProcessItem(
|
|
155
|
-
item: IArcArrowProcessItem | undefined,
|
|
156
|
-
fallbackIndex = 0,
|
|
157
|
-
count: number = 4,
|
|
158
|
-
): IResolvedArcArrowProcessItem {
|
|
159
|
-
const fallback = getDefaultArcArrowProcessItem(fallbackIndex, count);
|
|
160
|
-
|
|
161
|
-
if (!item) {
|
|
162
|
-
return fallback;
|
|
163
|
-
}
|
|
164
|
-
|
|
165
|
-
return {
|
|
166
|
-
id: item.id ?? fallback.id,
|
|
167
|
-
color: item.color ?? fallback.color,
|
|
168
|
-
gradientEnd: item.gradientEnd ?? fallback.gradientEnd,
|
|
169
|
-
title: item.title ?? fallback.title,
|
|
170
|
-
description: item.description ?? fallback.description,
|
|
171
|
-
icon: item.icon !== undefined ? item.icon : fallback.icon,
|
|
172
|
-
titleColor: item.titleColor ?? item.color ?? fallback.titleColor,
|
|
173
|
-
textColor: item.textColor ?? fallback.textColor,
|
|
174
|
-
};
|
|
175
|
-
}
|
|
176
|
-
|
|
177
|
-
export function resolveArcArrowProcessItems(
|
|
178
|
-
items: readonly IArcArrowProcessItem[] | undefined,
|
|
179
|
-
count: number = 4,
|
|
180
|
-
): readonly IResolvedArcArrowProcessItem[] {
|
|
181
|
-
const targetCount = count >= 2 ? count : 4;
|
|
182
|
-
const result: IResolvedArcArrowProcessItem[] = [];
|
|
183
|
-
|
|
184
|
-
for (let i = 0; i < targetCount; i++) {
|
|
185
|
-
result.push(resolveSingleArcArrowProcessItem(items?.[i], i, targetCount));
|
|
186
|
-
}
|
|
187
|
-
|
|
188
|
-
return result;
|
|
189
|
-
}
|
|
@@ -1,102 +0,0 @@
|
|
|
1
|
-
import {
|
|
2
|
-
resolveArcOrbitItems,
|
|
3
|
-
DEFAULT_LOREM_TEXT as SHARED_LOREM_TEXT,
|
|
4
|
-
} from '../arcOrbit';
|
|
5
|
-
|
|
6
|
-
export interface IArcComparisonItem {
|
|
7
|
-
readonly id?: string | number;
|
|
8
|
-
readonly title?: string;
|
|
9
|
-
readonly description?: string;
|
|
10
|
-
readonly color?: string;
|
|
11
|
-
readonly textColor?: string;
|
|
12
|
-
}
|
|
13
|
-
|
|
14
|
-
export interface IResolvedArcComparisonItem {
|
|
15
|
-
readonly id: string | number;
|
|
16
|
-
readonly title: string;
|
|
17
|
-
readonly description: string;
|
|
18
|
-
readonly color: string;
|
|
19
|
-
readonly textColor?: string;
|
|
20
|
-
}
|
|
21
|
-
|
|
22
|
-
export const DEFAULT_LEFT_COLOR = '#e87a36';
|
|
23
|
-
|
|
24
|
-
export const DEFAULT_RIGHT_COLOR = '#208b9e';
|
|
25
|
-
|
|
26
|
-
export const DEFAULT_LOREM_TEXT = SHARED_LOREM_TEXT;
|
|
27
|
-
|
|
28
|
-
export const DEFAULT_LEFT_ITEMS: readonly [
|
|
29
|
-
IResolvedArcComparisonItem,
|
|
30
|
-
IResolvedArcComparisonItem,
|
|
31
|
-
IResolvedArcComparisonItem,
|
|
32
|
-
IResolvedArcComparisonItem,
|
|
33
|
-
] = [
|
|
34
|
-
{
|
|
35
|
-
id: '01',
|
|
36
|
-
title: 'Add Text Here',
|
|
37
|
-
description: DEFAULT_LOREM_TEXT,
|
|
38
|
-
color: DEFAULT_LEFT_COLOR,
|
|
39
|
-
},
|
|
40
|
-
{
|
|
41
|
-
id: '02',
|
|
42
|
-
title: 'Add Text Here',
|
|
43
|
-
description: DEFAULT_LOREM_TEXT,
|
|
44
|
-
color: DEFAULT_LEFT_COLOR,
|
|
45
|
-
},
|
|
46
|
-
{
|
|
47
|
-
id: '03',
|
|
48
|
-
title: 'Add Text Here',
|
|
49
|
-
description: DEFAULT_LOREM_TEXT,
|
|
50
|
-
color: DEFAULT_LEFT_COLOR,
|
|
51
|
-
},
|
|
52
|
-
{
|
|
53
|
-
id: '04',
|
|
54
|
-
title: 'Add Text Here',
|
|
55
|
-
description: DEFAULT_LOREM_TEXT,
|
|
56
|
-
color: DEFAULT_LEFT_COLOR,
|
|
57
|
-
},
|
|
58
|
-
];
|
|
59
|
-
|
|
60
|
-
export const DEFAULT_RIGHT_ITEMS: readonly [
|
|
61
|
-
IResolvedArcComparisonItem,
|
|
62
|
-
IResolvedArcComparisonItem,
|
|
63
|
-
IResolvedArcComparisonItem,
|
|
64
|
-
IResolvedArcComparisonItem,
|
|
65
|
-
] = [
|
|
66
|
-
{
|
|
67
|
-
id: '01',
|
|
68
|
-
title: 'Add Text Here',
|
|
69
|
-
description: DEFAULT_LOREM_TEXT,
|
|
70
|
-
color: DEFAULT_RIGHT_COLOR,
|
|
71
|
-
},
|
|
72
|
-
{
|
|
73
|
-
id: '02',
|
|
74
|
-
title: 'Add Text Here',
|
|
75
|
-
description: DEFAULT_LOREM_TEXT,
|
|
76
|
-
color: DEFAULT_RIGHT_COLOR,
|
|
77
|
-
},
|
|
78
|
-
{
|
|
79
|
-
id: '03',
|
|
80
|
-
title: 'Add Text Here',
|
|
81
|
-
description: DEFAULT_LOREM_TEXT,
|
|
82
|
-
color: DEFAULT_RIGHT_COLOR,
|
|
83
|
-
},
|
|
84
|
-
{
|
|
85
|
-
id: '04',
|
|
86
|
-
title: 'Add Text Here',
|
|
87
|
-
description: DEFAULT_LOREM_TEXT,
|
|
88
|
-
color: DEFAULT_RIGHT_COLOR,
|
|
89
|
-
},
|
|
90
|
-
];
|
|
91
|
-
|
|
92
|
-
export function resolveArcComparisonSideItems(
|
|
93
|
-
items?: readonly IArcComparisonItem[],
|
|
94
|
-
defaultColor = DEFAULT_LEFT_COLOR,
|
|
95
|
-
count = 3,
|
|
96
|
-
): readonly IResolvedArcComparisonItem[] {
|
|
97
|
-
return resolveArcOrbitItems({
|
|
98
|
-
items,
|
|
99
|
-
defaultColor,
|
|
100
|
-
count,
|
|
101
|
-
});
|
|
102
|
-
}
|
|
@@ -1,48 +0,0 @@
|
|
|
1
|
-
export interface ICreateChevronPathParams {
|
|
2
|
-
readonly width: number;
|
|
3
|
-
readonly height: number;
|
|
4
|
-
readonly notchDepth?: number;
|
|
5
|
-
}
|
|
6
|
-
|
|
7
|
-
/**
|
|
8
|
-
* Generates an SVG path for the chevron badge.
|
|
9
|
-
* Features an indented notched tail on the left and a protruding arrow tip on the right.
|
|
10
|
-
*/
|
|
11
|
-
export function createChevronPath({
|
|
12
|
-
width,
|
|
13
|
-
height,
|
|
14
|
-
notchDepth = 26,
|
|
15
|
-
}: ICreateChevronPathParams): string {
|
|
16
|
-
const safeNotch = Math.max(0, Math.min(notchDepth, width / 2));
|
|
17
|
-
const halfH = height / 2;
|
|
18
|
-
|
|
19
|
-
return `M 0 0 L ${width - safeNotch} 0 L ${width} ${halfH} L ${width - safeNotch} ${height} L 0 ${height} L ${safeNotch} ${halfH} Z`;
|
|
20
|
-
}
|
|
21
|
-
|
|
22
|
-
export interface ICreateChevronCardBodyPathParams {
|
|
23
|
-
readonly width: number;
|
|
24
|
-
readonly height: number;
|
|
25
|
-
readonly notchDepth?: number;
|
|
26
|
-
readonly borderRadius?: number;
|
|
27
|
-
}
|
|
28
|
-
|
|
29
|
-
/**
|
|
30
|
-
* Generates an SVG path for the card body container.
|
|
31
|
-
* Left edge matches the chevron notch so slide background shows through;
|
|
32
|
-
* right edge features smooth rounded corners.
|
|
33
|
-
*/
|
|
34
|
-
export function createChevronCardBodyPath({
|
|
35
|
-
width,
|
|
36
|
-
height,
|
|
37
|
-
notchDepth = 26,
|
|
38
|
-
borderRadius = 18,
|
|
39
|
-
}: ICreateChevronCardBodyPathParams): string {
|
|
40
|
-
const safeNotch = Math.max(0, Math.min(notchDepth, width / 2));
|
|
41
|
-
const safeR = Math.max(
|
|
42
|
-
0,
|
|
43
|
-
Math.min(borderRadius, (width - safeNotch) / 2, height / 2),
|
|
44
|
-
);
|
|
45
|
-
const halfH = height / 2;
|
|
46
|
-
|
|
47
|
-
return `M 0 0 L ${width - safeR} 0 A ${safeR} ${safeR} 0 0 1 ${width} ${safeR} L ${width} ${height - safeR} A ${safeR} ${safeR} 0 0 1 ${width - safeR} ${height} L 0 ${height} L ${safeNotch} ${halfH} Z`;
|
|
48
|
-
}
|