@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,9 +1,11 @@
|
|
|
1
1
|
<script setup lang="ts">
|
|
2
2
|
import { computed, inject } from 'vue';
|
|
3
3
|
|
|
4
|
-
import { GEAR_TRIAD_CALLOUT_KEY } from '../../../../utils/
|
|
4
|
+
import { GEAR_TRIAD_CALLOUT_KEY } from '../../../../utils/facets/triad/gear-triad';
|
|
5
|
+
import { useMergedUnoAttrs } from '../../../../utils/useMergedUnoAttrs';
|
|
5
6
|
|
|
6
7
|
defineOptions({
|
|
8
|
+
inheritAttrs: false,
|
|
7
9
|
name: 'GearTriadHeading',
|
|
8
10
|
});
|
|
9
11
|
|
|
@@ -18,21 +20,25 @@ const props = withDefaults(defineProps<IGearTriadHeadingProps>(), {
|
|
|
18
20
|
const calloutContext = inject(GEAR_TRIAD_CALLOUT_KEY, undefined);
|
|
19
21
|
|
|
20
22
|
const headingColor = computed(() => {
|
|
21
|
-
return
|
|
23
|
+
return (
|
|
24
|
+
props.color ??
|
|
25
|
+
calloutContext?.item.value.color ??
|
|
26
|
+
'var(--alpha-gear-triad-heading)'
|
|
27
|
+
);
|
|
22
28
|
});
|
|
29
|
+
|
|
30
|
+
const { className, forwardedAttrs } = useMergedUnoAttrs(
|
|
31
|
+
'alpha-gear-triad-heading mb-1.5 font-sans font-bold leading-snug tracking-tight select-none',
|
|
32
|
+
);
|
|
23
33
|
</script>
|
|
24
34
|
|
|
25
35
|
<template>
|
|
26
|
-
<
|
|
27
|
-
|
|
28
|
-
|
|
29
|
-
|
|
30
|
-
|
|
31
|
-
'ui-sans-serif, system-ui, -apple-system, BlinkMacSystemFont, \'Segoe UI\', Roboto, sans-serif',
|
|
32
|
-
}"
|
|
36
|
+
<h4
|
|
37
|
+
v-if="$slots.default"
|
|
38
|
+
v-bind="forwardedAttrs()"
|
|
39
|
+
:class="className()"
|
|
40
|
+
:style="{ color: headingColor }"
|
|
33
41
|
>
|
|
34
|
-
<slot>
|
|
35
|
-
|
|
36
|
-
</slot>
|
|
37
|
-
</div>
|
|
42
|
+
<slot>{{ '' }}</slot>
|
|
43
|
+
</h4>
|
|
38
44
|
</template>
|
|
@@ -1,9 +1,11 @@
|
|
|
1
1
|
<script setup lang="ts">
|
|
2
2
|
import { computed, useSlots } from 'vue';
|
|
3
3
|
|
|
4
|
-
import type { TGearTriadIcon } from '../../../../utils/
|
|
4
|
+
import type { TGearTriadIcon } from '../../../../utils/facets/triad/gear-triad';
|
|
5
|
+
import { useMergedUnoAttrs } from '../../../../utils/useMergedUnoAttrs';
|
|
5
6
|
|
|
6
7
|
defineOptions({
|
|
8
|
+
inheritAttrs: false,
|
|
7
9
|
name: 'GearTriadIcon',
|
|
8
10
|
});
|
|
9
11
|
|
|
@@ -16,7 +18,7 @@ export interface IGearTriadIconProps {
|
|
|
16
18
|
|
|
17
19
|
const props = withDefaults(defineProps<IGearTriadIconProps>(), {
|
|
18
20
|
size: 32,
|
|
19
|
-
color:
|
|
21
|
+
color: undefined,
|
|
20
22
|
strokeWidth: 2,
|
|
21
23
|
icon: undefined,
|
|
22
24
|
});
|
|
@@ -27,6 +29,7 @@ const shouldRender = computed((): boolean => {
|
|
|
27
29
|
if (props.icon === false) {
|
|
28
30
|
return false;
|
|
29
31
|
}
|
|
32
|
+
|
|
30
33
|
return Boolean(props.icon || slots.default);
|
|
31
34
|
});
|
|
32
35
|
|
|
@@ -37,16 +40,21 @@ const isStringIcon = computed((): boolean => {
|
|
|
37
40
|
const isComponentIcon = computed((): boolean => {
|
|
38
41
|
return typeof props.icon === 'object' && props.icon !== null;
|
|
39
42
|
});
|
|
43
|
+
|
|
44
|
+
const { className, forwardedAttrs } = useMergedUnoAttrs(
|
|
45
|
+
'alpha-gear-triad-icon flex items-center justify-center text-(--alpha-gear-triad-icon) pointer-events-none select-none',
|
|
46
|
+
);
|
|
40
47
|
</script>
|
|
41
48
|
|
|
42
49
|
<template>
|
|
43
50
|
<div
|
|
44
51
|
v-if="shouldRender"
|
|
45
|
-
|
|
52
|
+
v-bind="forwardedAttrs()"
|
|
53
|
+
:class="className()"
|
|
46
54
|
:style="{
|
|
47
|
-
color: props.color,
|
|
48
55
|
width: `${props.size}px`,
|
|
49
56
|
height: `${props.size}px`,
|
|
57
|
+
...(props.color ? { '--alpha-gear-triad-icon': props.color } : {}),
|
|
50
58
|
}"
|
|
51
59
|
>
|
|
52
60
|
<slot>
|
|
@@ -54,17 +62,15 @@ const isComponentIcon = computed((): boolean => {
|
|
|
54
62
|
<component
|
|
55
63
|
:is="props.icon"
|
|
56
64
|
v-if="isComponentIcon"
|
|
57
|
-
class="w-full h-full"
|
|
58
|
-
:style="{ color: props.color }"
|
|
65
|
+
class="w-full h-full text-current"
|
|
59
66
|
/>
|
|
60
67
|
|
|
61
68
|
<!-- UnoCSS / Iconify class name (e.g. i-lucide-file-text) -->
|
|
62
69
|
<span
|
|
63
70
|
v-else-if="isStringIcon && (props.icon as string).includes('-')"
|
|
64
71
|
:class="props.icon"
|
|
65
|
-
class="inline-block"
|
|
72
|
+
class="inline-block text-current"
|
|
66
73
|
:style="{
|
|
67
|
-
color: props.color,
|
|
68
74
|
width: `${props.size}px`,
|
|
69
75
|
height: `${props.size}px`,
|
|
70
76
|
fontSize: `${props.size}px`,
|
|
@@ -73,6 +79,7 @@ const isComponentIcon = computed((): boolean => {
|
|
|
73
79
|
|
|
74
80
|
<!-- 01 Document with folded corner and lines (Option 1) -->
|
|
75
81
|
<svg
|
|
82
|
+
aria-hidden="true"
|
|
76
83
|
v-else-if="
|
|
77
84
|
props.icon === 'document' ||
|
|
78
85
|
props.icon === 'file' ||
|
|
@@ -95,6 +102,7 @@ const isComponentIcon = computed((): boolean => {
|
|
|
95
102
|
|
|
96
103
|
<!-- 02 Shield with star (Option 2) -->
|
|
97
104
|
<svg
|
|
105
|
+
aria-hidden="true"
|
|
98
106
|
v-else-if="props.icon === 'shield' || props.icon === 'shield-star'"
|
|
99
107
|
viewBox="0 0 24 24"
|
|
100
108
|
fill="none"
|
|
@@ -113,6 +121,7 @@ const isComponentIcon = computed((): boolean => {
|
|
|
113
121
|
|
|
114
122
|
<!-- 03 Archive box with files poking out (Option 3) -->
|
|
115
123
|
<svg
|
|
124
|
+
aria-hidden="true"
|
|
116
125
|
v-else-if="
|
|
117
126
|
props.icon === 'archive' ||
|
|
118
127
|
props.icon === 'box' ||
|
|
@@ -133,11 +142,15 @@ const isComponentIcon = computed((): boolean => {
|
|
|
133
142
|
<!-- Center handle slot -->
|
|
134
143
|
<line x1="10" y1="15" x2="14" y2="15" />
|
|
135
144
|
<!-- Folders / papers peeking out top -->
|
|
136
|
-
<path
|
|
145
|
+
<path
|
|
146
|
+
d="M7 7V4a1 1 0 0 1 1-1h4l2 2h3a1 1 0 0 1 1 1v1"
|
|
147
|
+
stroke-width="1.5"
|
|
148
|
+
/>
|
|
137
149
|
</svg>
|
|
138
150
|
|
|
139
151
|
<!-- 04 Center Gear with 6 teeth and 3-spoke inner steering (Center Hub) -->
|
|
140
152
|
<svg
|
|
153
|
+
aria-hidden="true"
|
|
141
154
|
v-else-if="props.icon === 'gear' || props.icon === 'settings' || props.icon === 'cog'"
|
|
142
155
|
viewBox="0 0 24 24"
|
|
143
156
|
fill="none"
|
|
@@ -0,0 +1,26 @@
|
|
|
1
|
+
/* Color defaults shared by this component family. */
|
|
2
|
+
@layer alpha-theme-tokens {
|
|
3
|
+
:root {
|
|
4
|
+
--alpha-gear-triad-content: var(--alpha-foreground-primary, #64748b);
|
|
5
|
+
--alpha-gear-triad-center-bg-end: #f1f5f9;
|
|
6
|
+
--alpha-gear-triad-center-bg-start: #ffffff;
|
|
7
|
+
--alpha-gear-triad-center-icon: #0f172a;
|
|
8
|
+
--alpha-gear-triad-center-shadow: 0 6px 20px -2px rgba(0, 0, 0, 0.22), 0 2px 6px -1px rgba(0, 0, 0, 0.12);
|
|
9
|
+
--alpha-gear-triad-detail: var(--alpha-foreground-primary, #475569);
|
|
10
|
+
--alpha-gear-triad-detail-number: #334155;
|
|
11
|
+
--alpha-gear-triad-details-content: var(--alpha-foreground-primary, #64748b);
|
|
12
|
+
--alpha-gear-triad-details-heading: var(--alpha-foreground-primary, #0f172a);
|
|
13
|
+
--alpha-gear-triad-heading: var(--alpha-foreground-primary, #0f172a);
|
|
14
|
+
--alpha-gear-triad-icon: #0f172a;
|
|
15
|
+
--alpha-gear-triad-item-1-color: #1fb5b5;
|
|
16
|
+
--alpha-gear-triad-item-1-depth: #126e7a;
|
|
17
|
+
--alpha-gear-triad-item-2-color: #f38942;
|
|
18
|
+
--alpha-gear-triad-item-2-depth: #aa521d;
|
|
19
|
+
--alpha-gear-triad-item-3-color: #f05367;
|
|
20
|
+
--alpha-gear-triad-item-3-depth: #a82c3c;
|
|
21
|
+
--alpha-gear-triad-muted-icon: #ffffff;
|
|
22
|
+
--alpha-gear-triad-muted-sector: #d5d8dc;
|
|
23
|
+
--alpha-gear-triad-shadow: #0f172a;
|
|
24
|
+
--alpha-gear-triad-valley: #11455c;
|
|
25
|
+
}
|
|
26
|
+
}
|
|
@@ -9,23 +9,19 @@ import {
|
|
|
9
9
|
} from 'vue';
|
|
10
10
|
|
|
11
11
|
import {
|
|
12
|
-
|
|
12
|
+
calculateHexagonTriadCoordinates,
|
|
13
13
|
createRoundedHexagonPath,
|
|
14
14
|
HEX_TRIAD_ROOT_KEY,
|
|
15
|
-
|
|
16
|
-
|
|
17
|
-
} from '../../../../utils/hexTriad';
|
|
15
|
+
resolveHexagonTriadItems,
|
|
16
|
+
} from '../../../../utils/facets/triad/hexagon-triad';
|
|
18
17
|
import { useMergedUnoAttrs } from '../../../../utils/useMergedUnoAttrs';
|
|
19
18
|
|
|
20
19
|
defineOptions({
|
|
21
20
|
inheritAttrs: false,
|
|
22
21
|
});
|
|
23
22
|
|
|
24
|
-
export interface
|
|
25
|
-
readonly title?: string;
|
|
26
|
-
readonly subtitle?: string;
|
|
23
|
+
export interface IHexagonTriadProps {
|
|
27
24
|
readonly animation?: boolean;
|
|
28
|
-
readonly items?: readonly IHexTriadItem[];
|
|
29
25
|
/**
|
|
30
26
|
* Additional delay (ms) before animation starts.
|
|
31
27
|
* Defaults to 600ms inside `shifting-intro` layout, 0ms otherwise.
|
|
@@ -38,12 +34,9 @@ export interface IHexTriadProps {
|
|
|
38
34
|
readonly active?: boolean;
|
|
39
35
|
}
|
|
40
36
|
|
|
41
|
-
const props = withDefaults(defineProps<
|
|
37
|
+
const props = withDefaults(defineProps<IHexagonTriadProps>(), {
|
|
42
38
|
animation: true,
|
|
43
|
-
title: undefined,
|
|
44
|
-
items: undefined,
|
|
45
39
|
active: undefined,
|
|
46
|
-
subtitle: undefined,
|
|
47
40
|
startDelay: undefined,
|
|
48
41
|
});
|
|
49
42
|
|
|
@@ -85,7 +78,7 @@ const resolvedStartDelay = computed(() => {
|
|
|
85
78
|
return 0;
|
|
86
79
|
});
|
|
87
80
|
|
|
88
|
-
const resolvedItems = computed(() =>
|
|
81
|
+
const resolvedItems = computed(() => resolveHexagonTriadItems());
|
|
89
82
|
|
|
90
83
|
let calloutCounter = 0;
|
|
91
84
|
const customBadgeTexts = ref<(string | number)[]>([]);
|
|
@@ -122,7 +115,7 @@ const item3 = computed(() => {
|
|
|
122
115
|
});
|
|
123
116
|
|
|
124
117
|
// Central diagram coordinates
|
|
125
|
-
const coords =
|
|
118
|
+
const coords = calculateHexagonTriadCoordinates();
|
|
126
119
|
const {
|
|
127
120
|
hex1,
|
|
128
121
|
hex2,
|
|
@@ -226,7 +219,7 @@ const hex3TopPath = createRoundedHexagonPath(
|
|
|
226
219
|
);
|
|
227
220
|
|
|
228
221
|
const { className, forwardedAttrs } = useMergedUnoAttrs(
|
|
229
|
-
'alpha-
|
|
222
|
+
'alpha-hexagon-triad w-full flex flex-col items-center justify-center select-none font-sans',
|
|
230
223
|
);
|
|
231
224
|
</script>
|
|
232
225
|
|
|
@@ -236,46 +229,75 @@ const { className, forwardedAttrs } = useMergedUnoAttrs(
|
|
|
236
229
|
:class="className()"
|
|
237
230
|
:style="{ '--hex-start-delay': `${resolvedStartDelay}ms` }"
|
|
238
231
|
>
|
|
239
|
-
<
|
|
240
|
-
|
|
241
|
-
|
|
242
|
-
{{ title }}
|
|
243
|
-
</h2>
|
|
244
|
-
</slot>
|
|
245
|
-
<p v-if="subtitle || $slots.subtitle" class="alpha-hex-triad__subtitle text-sm font-sans">
|
|
246
|
-
<slot name="subtitle">{{ subtitle }}</slot>
|
|
247
|
-
</p>
|
|
248
|
-
</header>
|
|
249
|
-
<div class="alpha-hex-triad__stage relative w-full max-w-5xl h-[440px] flex items-center justify-center">
|
|
232
|
+
<div
|
|
233
|
+
class="alpha-hexagon-triad__stage relative w-full max-w-5xl h-110 flex items-center justify-center"
|
|
234
|
+
>
|
|
250
235
|
<!-- Center Column: Overlapping 3D Rounded Hexagon SVG -->
|
|
251
|
-
<div
|
|
236
|
+
<div
|
|
237
|
+
class="alpha-hexagon-triad__center relative flex items-center justify-center"
|
|
238
|
+
>
|
|
252
239
|
<svg
|
|
253
|
-
|
|
240
|
+
aria-hidden="true"
|
|
241
|
+
class="alpha-hexagon-triad__svg w-112.5 h-105 overflow-visible"
|
|
254
242
|
viewBox="0 0 540 440"
|
|
255
243
|
>
|
|
256
244
|
<defs>
|
|
257
245
|
<!-- Drop shadow for badges -->
|
|
258
|
-
<filter
|
|
259
|
-
|
|
246
|
+
<filter
|
|
247
|
+
id="hex-badge-shadow"
|
|
248
|
+
x="-30%"
|
|
249
|
+
y="-30%"
|
|
250
|
+
width="160%"
|
|
251
|
+
height="160%"
|
|
252
|
+
>
|
|
253
|
+
<feDropShadow
|
|
254
|
+
dx="0"
|
|
255
|
+
dy="3"
|
|
256
|
+
stdDeviation="4"
|
|
257
|
+
flood-opacity="0.35"
|
|
258
|
+
/>
|
|
260
259
|
</filter>
|
|
261
260
|
<!-- 3D extrusion shadow for base layer -->
|
|
262
|
-
<filter
|
|
263
|
-
|
|
261
|
+
<filter
|
|
262
|
+
id="hexagon-triad-depth"
|
|
263
|
+
x="-20%"
|
|
264
|
+
y="-20%"
|
|
265
|
+
width="140%"
|
|
266
|
+
height="140%"
|
|
267
|
+
>
|
|
268
|
+
<feDropShadow
|
|
269
|
+
dx="0"
|
|
270
|
+
dy="6"
|
|
271
|
+
stdDeviation="6"
|
|
272
|
+
flood-opacity="0.3"
|
|
273
|
+
/>
|
|
264
274
|
</filter>
|
|
265
275
|
<!-- Gradients for Hex 01 -->
|
|
266
276
|
<linearGradient id="grad-hex-1" x1="0%" y1="0%" x2="0%" y2="100%">
|
|
267
277
|
<stop offset="0%" :stop-color="item1.color" stop-opacity="0.95" />
|
|
268
|
-
<stop
|
|
278
|
+
<stop
|
|
279
|
+
offset="100%"
|
|
280
|
+
:stop-color="item1.depthColor"
|
|
281
|
+
stop-opacity="0.9"
|
|
282
|
+
/>
|
|
269
283
|
</linearGradient>
|
|
270
284
|
<!-- Gradients for Hex 02 -->
|
|
271
285
|
<linearGradient id="grad-hex-2" x1="0%" y1="0%" x2="100%" y2="100%">
|
|
272
286
|
<stop offset="0%" :stop-color="item2.color" stop-opacity="0.95" />
|
|
273
|
-
<stop
|
|
287
|
+
<stop
|
|
288
|
+
offset="100%"
|
|
289
|
+
:stop-color="item2.depthColor"
|
|
290
|
+
stop-opacity="0.9"
|
|
291
|
+
/>
|
|
274
292
|
</linearGradient>
|
|
275
293
|
<!-- Gradients for Hex 03 -->
|
|
276
294
|
<linearGradient id="grad-hex-3" x1="0%" y1="0%" x2="100%" y2="100%">
|
|
277
295
|
<stop offset="0%" :stop-color="item3.color" stop-opacity="0.95" />
|
|
278
|
-
<stop
|
|
296
|
+
<stop
|
|
297
|
+
offset="100%"
|
|
298
|
+
:stop-color="item3.depthColor"
|
|
299
|
+
stop-opacity="0.9"
|
|
300
|
+
/>
|
|
279
301
|
</linearGradient>
|
|
280
302
|
</defs>
|
|
281
303
|
<!-- LAYER 1: Background Pastel Offset Hexagons (Animated: slides out from behind solid hexagon to offset position) -->
|
|
@@ -283,7 +305,7 @@ const { className, forwardedAttrs } = useMergedUnoAttrs(
|
|
|
283
305
|
class="alpha-hex-layer1 alpha-hex-layer1--3"
|
|
284
306
|
:class="{ 'alpha-hex-layer1--animated': isAnimated }"
|
|
285
307
|
>
|
|
286
|
-
<
|
|
308
|
+
<HexagonTriadLayer
|
|
287
309
|
:d="hex3BgPath"
|
|
288
310
|
:fill="item3.lightColor ?? item3.color"
|
|
289
311
|
:opacity="0.38"
|
|
@@ -293,7 +315,7 @@ const { className, forwardedAttrs } = useMergedUnoAttrs(
|
|
|
293
315
|
class="alpha-hex-layer1 alpha-hex-layer1--2"
|
|
294
316
|
:class="{ 'alpha-hex-layer1--animated': isAnimated }"
|
|
295
317
|
>
|
|
296
|
-
<
|
|
318
|
+
<HexagonTriadLayer
|
|
297
319
|
:d="hex2BgPath"
|
|
298
320
|
:fill="item2.lightColor ?? item2.color"
|
|
299
321
|
:opacity="0.38"
|
|
@@ -303,62 +325,62 @@ const { className, forwardedAttrs } = useMergedUnoAttrs(
|
|
|
303
325
|
class="alpha-hex-layer1 alpha-hex-layer1--1"
|
|
304
326
|
:class="{ 'alpha-hex-layer1--animated': isAnimated }"
|
|
305
327
|
>
|
|
306
|
-
<
|
|
328
|
+
<HexagonTriadLayer
|
|
307
329
|
:d="hex1BgPath"
|
|
308
330
|
:fill="item1.lightColor ?? item1.color"
|
|
309
331
|
:opacity="0.38"
|
|
310
332
|
/>
|
|
311
333
|
</g>
|
|
312
334
|
<!-- LAYER 2: Middle 3D Depth Base Hexagons (3 hexa blocks) -->
|
|
313
|
-
<
|
|
335
|
+
<HexagonTriadLayer
|
|
314
336
|
:d="hex3BasePath"
|
|
315
337
|
:fill="item3.depthColor"
|
|
316
|
-
filter="url(#
|
|
338
|
+
filter="url(#hexagon-triad-depth)"
|
|
317
339
|
:opacity="0.85"
|
|
318
340
|
/>
|
|
319
|
-
<
|
|
341
|
+
<HexagonTriadLayer
|
|
320
342
|
:d="hex2BasePath"
|
|
321
343
|
:fill="item2.depthColor"
|
|
322
|
-
filter="url(#
|
|
344
|
+
filter="url(#hexagon-triad-depth)"
|
|
323
345
|
:opacity="0.85"
|
|
324
346
|
/>
|
|
325
|
-
<
|
|
347
|
+
<HexagonTriadLayer
|
|
326
348
|
:d="hex1BasePath"
|
|
327
349
|
:fill="item1.depthColor"
|
|
328
|
-
filter="url(#
|
|
350
|
+
filter="url(#hexagon-triad-depth)"
|
|
329
351
|
:opacity="0.85"
|
|
330
352
|
/>
|
|
331
353
|
<!-- LAYER 3: Foreground Hexagons with Gradients (3 hexa blocks) -->
|
|
332
|
-
<
|
|
354
|
+
<HexagonTriadLayer
|
|
333
355
|
:d="hex3TopPath"
|
|
334
356
|
fill="url(#grad-hex-3)"
|
|
335
357
|
:opacity="0.9"
|
|
336
358
|
/>
|
|
337
|
-
<
|
|
359
|
+
<HexagonTriadLayer
|
|
338
360
|
:d="hex2TopPath"
|
|
339
361
|
fill="url(#grad-hex-2)"
|
|
340
362
|
:opacity="0.9"
|
|
341
363
|
/>
|
|
342
|
-
<
|
|
364
|
+
<HexagonTriadLayer
|
|
343
365
|
:d="hex1TopPath"
|
|
344
366
|
fill="url(#grad-hex-1)"
|
|
345
367
|
:opacity="0.9"
|
|
346
368
|
/>
|
|
347
369
|
<!-- LAYER 4: White Interconnecting Ring (Circumcircle) -->
|
|
348
370
|
<circle
|
|
349
|
-
class="alpha-
|
|
371
|
+
class="alpha-hexagon-triad__circumcircle"
|
|
350
372
|
:cx="centerX"
|
|
351
373
|
:cy="centerY"
|
|
352
374
|
:r="triadRadius"
|
|
353
375
|
fill="none"
|
|
354
|
-
stroke="
|
|
376
|
+
stroke="var(--alpha-hexagon-triad-connector-stroke)"
|
|
355
377
|
stroke-width="2.5"
|
|
356
378
|
stroke-linecap="round"
|
|
357
379
|
:style="{ opacity: 0.95 }"
|
|
358
380
|
/>
|
|
359
381
|
<!-- LAYER 5: Center Circular Badges (Centered Directly on the White Circle) -->
|
|
360
382
|
<!-- Badge 03 (Bottom-Left) -->
|
|
361
|
-
<
|
|
383
|
+
<HexagonTriadCenterBadge
|
|
362
384
|
:x="badge3X"
|
|
363
385
|
:y="badge3Y"
|
|
364
386
|
:radius="badgeRadius"
|
|
@@ -366,7 +388,7 @@ const { className, forwardedAttrs } = useMergedUnoAttrs(
|
|
|
366
388
|
:text="customBadgeTexts[2] || item3.id"
|
|
367
389
|
/>
|
|
368
390
|
<!-- Badge 02 (Bottom-Right) -->
|
|
369
|
-
<
|
|
391
|
+
<HexagonTriadCenterBadge
|
|
370
392
|
:x="badge2X"
|
|
371
393
|
:y="badge2Y"
|
|
372
394
|
:radius="badgeRadius"
|
|
@@ -374,7 +396,7 @@ const { className, forwardedAttrs } = useMergedUnoAttrs(
|
|
|
374
396
|
:text="customBadgeTexts[1] || item2.id"
|
|
375
397
|
/>
|
|
376
398
|
<!-- Badge 01 (Top) -->
|
|
377
|
-
<
|
|
399
|
+
<HexagonTriadCenterBadge
|
|
378
400
|
:x="badge1X"
|
|
379
401
|
:y="badge1Y"
|
|
380
402
|
:radius="badgeRadius"
|
|
@@ -383,14 +405,7 @@ const { className, forwardedAttrs } = useMergedUnoAttrs(
|
|
|
383
405
|
/>
|
|
384
406
|
</svg>
|
|
385
407
|
</div>
|
|
386
|
-
|
|
387
|
-
<slot v-if="$slots.default" />
|
|
388
|
-
<!-- Fallback: render 3 default callouts if no slots provided -->
|
|
389
|
-
<template v-else>
|
|
390
|
-
<HexTriadCallout />
|
|
391
|
-
<HexTriadCallout />
|
|
392
|
-
<HexTriadCallout />
|
|
393
|
-
</template>
|
|
408
|
+
<slot />
|
|
394
409
|
</div>
|
|
395
410
|
</div>
|
|
396
411
|
</template>
|
|
@@ -398,15 +413,18 @@ const { className, forwardedAttrs } = useMergedUnoAttrs(
|
|
|
398
413
|
<style scoped>
|
|
399
414
|
/* Layer 1 (Pastel Hexagons) slides out with overlapping cascading stagger */
|
|
400
415
|
.alpha-hex-layer1--1.alpha-hex-layer1--animated {
|
|
401
|
-
animation: hex-layer1-slide-1 500ms cubic-bezier(0.25, 1, 0.5, 1)
|
|
416
|
+
animation: hex-layer1-slide-1 500ms cubic-bezier(0.25, 1, 0.5, 1)
|
|
417
|
+
calc(var(--hex-start-delay, 0ms) + 100ms) both;
|
|
402
418
|
}
|
|
403
419
|
|
|
404
420
|
.alpha-hex-layer1--2.alpha-hex-layer1--animated {
|
|
405
|
-
animation: hex-layer1-slide-2 500ms cubic-bezier(0.25, 1, 0.5, 1)
|
|
421
|
+
animation: hex-layer1-slide-2 500ms cubic-bezier(0.25, 1, 0.5, 1)
|
|
422
|
+
calc(var(--hex-start-delay, 0ms) + 300ms) both;
|
|
406
423
|
}
|
|
407
424
|
|
|
408
425
|
.alpha-hex-layer1--3.alpha-hex-layer1--animated {
|
|
409
|
-
animation: hex-layer1-slide-3 500ms cubic-bezier(0.25, 1, 0.5, 1)
|
|
426
|
+
animation: hex-layer1-slide-3 500ms cubic-bezier(0.25, 1, 0.5, 1)
|
|
427
|
+
calc(var(--hex-start-delay, 0ms) + 500ms) both;
|
|
410
428
|
}
|
|
411
429
|
|
|
412
430
|
@keyframes hex-layer1-slide-1 {
|
package/components/facets/triad/{hex-triad/HexTriadBadge.vue → hexagon-triad/HexagonTriadBadge.vue}
RENAMED
|
@@ -4,19 +4,21 @@ import { computed, inject, useSlots, watchEffect } from 'vue';
|
|
|
4
4
|
import {
|
|
5
5
|
createRoundedHexagonPath,
|
|
6
6
|
HEX_TRIAD_CALLOUT_KEY,
|
|
7
|
-
} from '../../../../utils/
|
|
7
|
+
} from '../../../../utils/facets/triad/hexagon-triad';
|
|
8
|
+
import { useMergedUnoAttrs } from '../../../../utils/useMergedUnoAttrs';
|
|
8
9
|
|
|
9
10
|
defineOptions({
|
|
10
|
-
|
|
11
|
+
inheritAttrs: false,
|
|
12
|
+
name: 'HexagonTriadBadge',
|
|
11
13
|
});
|
|
12
14
|
|
|
13
|
-
export interface
|
|
15
|
+
export interface IHexagonTriadBadgeProps {
|
|
14
16
|
readonly id?: string | number;
|
|
15
17
|
readonly color?: string;
|
|
16
18
|
readonly lightColor?: string;
|
|
17
19
|
}
|
|
18
20
|
|
|
19
|
-
const props = withDefaults(defineProps<
|
|
21
|
+
const props = withDefaults(defineProps<IHexagonTriadBadgeProps>(), {
|
|
20
22
|
id: undefined,
|
|
21
23
|
color: undefined,
|
|
22
24
|
lightColor: undefined,
|
|
@@ -32,7 +34,11 @@ const slots = useSlots();
|
|
|
32
34
|
const miniHexPath = createRoundedHexagonPath(18, 18, 17, 4.5);
|
|
33
35
|
|
|
34
36
|
const badgeColor = computed(() => {
|
|
35
|
-
return
|
|
37
|
+
return (
|
|
38
|
+
props.color ??
|
|
39
|
+
calloutContext?.item.value.color ??
|
|
40
|
+
'var(--alpha-hexagon-triad-badge-bg)'
|
|
41
|
+
);
|
|
36
42
|
});
|
|
37
43
|
|
|
38
44
|
const badgeLightColor = computed(() => {
|
|
@@ -40,7 +46,7 @@ const badgeLightColor = computed(() => {
|
|
|
40
46
|
props.lightColor ??
|
|
41
47
|
calloutContext?.item.value.lightColor ??
|
|
42
48
|
calloutContext?.item.value.color ??
|
|
43
|
-
'
|
|
49
|
+
'var(--alpha-hexagon-triad-badge-light)'
|
|
44
50
|
);
|
|
45
51
|
});
|
|
46
52
|
|
|
@@ -81,26 +87,46 @@ watchEffect(() => {
|
|
|
81
87
|
calloutContext.setBadgeText(badgeText.value);
|
|
82
88
|
}
|
|
83
89
|
});
|
|
90
|
+
|
|
91
|
+
const { className, forwardedAttrs } = useMergedUnoAttrs(
|
|
92
|
+
'alpha-hexagon-triad-badge w-10 h-10 drop-shadow shrink-0',
|
|
93
|
+
);
|
|
84
94
|
</script>
|
|
85
95
|
|
|
86
96
|
<template>
|
|
87
|
-
<svg
|
|
88
|
-
|
|
97
|
+
<svg
|
|
98
|
+
aria-hidden="true"
|
|
99
|
+
v-bind="forwardedAttrs()"
|
|
100
|
+
:class="className()"
|
|
101
|
+
viewBox="0 0 36 36"
|
|
102
|
+
>
|
|
89
103
|
<path
|
|
90
|
-
class="alpha-
|
|
104
|
+
class="alpha-hexagon-triad-badge__bg"
|
|
105
|
+
:d="miniHexPath"
|
|
106
|
+
:fill="badgeLightColor"
|
|
107
|
+
:style="{ opacity: 0.45 }"
|
|
108
|
+
/>
|
|
109
|
+
<path
|
|
110
|
+
class="alpha-hexagon-triad-badge__border"
|
|
91
111
|
:d="miniHexPath"
|
|
92
112
|
fill="none"
|
|
93
113
|
:stroke="badgeLightColor"
|
|
94
114
|
stroke-width="1"
|
|
95
115
|
:style="{ opacity: 0.8 }"
|
|
96
116
|
/>
|
|
97
|
-
<circle
|
|
117
|
+
<circle
|
|
118
|
+
class="alpha-hexagon-triad-badge__circle"
|
|
119
|
+
cx="18"
|
|
120
|
+
cy="18"
|
|
121
|
+
r="11"
|
|
122
|
+
:fill="badgeColor"
|
|
123
|
+
/>
|
|
98
124
|
<text
|
|
99
|
-
class="alpha-
|
|
125
|
+
class="alpha-hexagon-triad-badge__text font-black text-[10px] font-sans select-none"
|
|
100
126
|
x="18"
|
|
101
127
|
y="21.5"
|
|
102
128
|
text-anchor="middle"
|
|
103
|
-
fill="
|
|
129
|
+
fill="var(--alpha-hexagon-triad-badge)"
|
|
104
130
|
>
|
|
105
131
|
<tspan>
|
|
106
132
|
<slot>{{ fallbackId }}</slot>
|