@orbat-mapper/control-measures 0.2.0-alpha.20 → 0.2.0-alpha.22
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 +46 -0
- package/dist/{index-C1NE59Nx.d.mts → index-BTViqLbA.d.mts} +72 -37
- package/dist/index.d.mts +2 -2
- package/dist/index.mjs +2 -2
- package/dist/preview/index.d.mts +29 -2
- package/dist/preview/index.mjs +44 -5
- package/dist/{renderControlMeasure-DURyfLXo.mjs → renderControlMeasure-Bc0d45Iv.mjs} +249 -2
- package/media/airfield-zone.svg +1 -0
- package/media/area-defense.svg +1 -0
- package/media/area-of-operations.svg +1 -1
- package/media/area.svg +1 -0
- package/media/assault-position.svg +1 -0
- package/media/assembly-area.svg +1 -1
- package/media/attack-position.svg +1 -0
- package/media/base-camp.svg +1 -0
- package/media/battle-handover-line.svg +1 -1
- package/media/battle-position.svg +1 -1
- package/media/block-arrow.svg +1 -1
- package/media/block-mission-task.svg +1 -1
- package/media/boundary.svg +1 -1
- package/media/breach.svg +1 -1
- package/media/bypass.svg +1 -1
- package/media/canalize.svg +1 -1
- package/media/clear.svg +1 -1
- package/media/cover.svg +1 -0
- package/media/delay.svg +1 -1
- package/media/direction-of-attack-aviation.svg +1 -0
- package/media/direction-of-main-attack.svg +1 -0
- package/media/direction-of-supporting-attack.svg +1 -0
- package/media/drop-zone.svg +1 -0
- package/media/encirclement.svg +1 -1
- package/media/engineer-work-line.svg +1 -1
- package/media/extraction-zone.svg +1 -0
- package/media/fortified-area.svg +1 -1
- package/media/frontal-attack.svg +1 -0
- package/media/generic-c2-area.svg +1 -0
- package/media/generic-c2-line.svg +1 -1
- package/media/guard.svg +1 -0
- package/media/guerrilla-base.svg +1 -0
- package/media/handover-line.svg +1 -1
- package/media/joint-tactical-action-area.svg +1 -1
- package/media/landing-zone.svg +1 -1
- package/media/light-line.svg +1 -1
- package/media/limited-access-area.svg +1 -0
- package/media/named-area-of-interest.svg +1 -0
- package/media/no-fire-area-irregular.svg +1 -0
- package/media/objective-area.svg +1 -0
- package/media/phase-line.svg +1 -1
- package/media/pickup-zone.svg +1 -1
- package/media/screen.svg +1 -0
- package/media/strong-point.svg +1 -1
- package/media/submarine-action-area.svg +1 -0
- package/media/submarine-generated-action-area.svg +1 -0
- package/media/target-area-of-interest.svg +1 -0
- package/media/turning-movement.svg +1 -0
- package/package.json +1 -1
|
@@ -79,6 +79,25 @@ const unproject = (x, y) => {
|
|
|
79
79
|
lat = 180 / Math.PI * (2 * Math.atan(Math.exp(lat * Math.PI / 180)) - Math.PI / 2);
|
|
80
80
|
return [roundToFixed(lon), roundToFixed(lat)];
|
|
81
81
|
};
|
|
82
|
+
/**
|
|
83
|
+
* Great-circle distance in meters between two lon/lat positions (haversine on
|
|
84
|
+
* the WGS84 mean-radius sphere). Accurate at all scales — use this for
|
|
85
|
+
* measurement readouts (segment lengths, radii). Note the deliberate
|
|
86
|
+
* asymmetry with generation: generators build geometry in projected Web
|
|
87
|
+
* Mercator meters, so at high latitudes a graphic's Mercator dimensions
|
|
88
|
+
* exceed the true ground distance this returns.
|
|
89
|
+
*/
|
|
90
|
+
const haversineDistance = (a, b) => {
|
|
91
|
+
const R = 6371008.8;
|
|
92
|
+
const [lon1, lat1] = a;
|
|
93
|
+
const [lon2, lat2] = b;
|
|
94
|
+
const φ1 = lat1 * Math.PI / 180;
|
|
95
|
+
const φ2 = lat2 * Math.PI / 180;
|
|
96
|
+
const Δφ = (lat2 - lat1) * Math.PI / 180;
|
|
97
|
+
const Δλ = (lon2 - lon1) * Math.PI / 180;
|
|
98
|
+
const h = Math.sin(Δφ / 2) * Math.sin(Δφ / 2) + Math.cos(φ1) * Math.cos(φ2) * Math.sin(Δλ / 2) * Math.sin(Δλ / 2);
|
|
99
|
+
return 2 * R * Math.asin(Math.min(1, Math.sqrt(h)));
|
|
100
|
+
};
|
|
82
101
|
//#endregion
|
|
83
102
|
//#region src/internal/vector-utils.ts
|
|
84
103
|
/**
|
|
@@ -3364,6 +3383,48 @@ function pushAreaLabels(out, ringVerts, texts, options = {}, amplifierPlacements
|
|
|
3364
3383
|
return gaps;
|
|
3365
3384
|
}
|
|
3366
3385
|
/**
|
|
3386
|
+
* Boundary + fill features for a pattern-filled area (e.g. Limited Access Area,
|
|
3387
|
+
* No Fire Area). With no ENY cutout the single patterned polygon carries both
|
|
3388
|
+
* the {@link FillPattern} fill and the visible outline. Once an ENY marker has
|
|
3389
|
+
* carved masking `gaps`, a `MultiLineString` outline can't hold a fill, so the
|
|
3390
|
+
* full ring stays as a strokeless pattern-only fill layer beneath a separate
|
|
3391
|
+
* gapped boundary line (via {@link boundaryFeature}). The strokeless "fill"
|
|
3392
|
+
* part convention lives here so each patterned area measure doesn't re-spell it.
|
|
3393
|
+
*/
|
|
3394
|
+
function patternedAreaFeatures(verts, gaps, fillPattern) {
|
|
3395
|
+
if (gaps.length === 0) {
|
|
3396
|
+
const boundary = verts.map((p) => unproject(p[0], p[1]));
|
|
3397
|
+
return [{
|
|
3398
|
+
type: "Feature",
|
|
3399
|
+
properties: {
|
|
3400
|
+
part: "boundary",
|
|
3401
|
+
fill: true,
|
|
3402
|
+
style: { fillPattern }
|
|
3403
|
+
},
|
|
3404
|
+
geometry: {
|
|
3405
|
+
type: "Polygon",
|
|
3406
|
+
coordinates: [boundary]
|
|
3407
|
+
}
|
|
3408
|
+
}];
|
|
3409
|
+
}
|
|
3410
|
+
return [{
|
|
3411
|
+
type: "Feature",
|
|
3412
|
+
properties: {
|
|
3413
|
+
part: "fill",
|
|
3414
|
+
fill: true,
|
|
3415
|
+
style: {
|
|
3416
|
+
fillPattern,
|
|
3417
|
+
strokeColor: "transparent",
|
|
3418
|
+
strokeWidth: 0
|
|
3419
|
+
}
|
|
3420
|
+
},
|
|
3421
|
+
geometry: {
|
|
3422
|
+
type: "Polygon",
|
|
3423
|
+
coordinates: [verts.map((p) => unproject(p[0], p[1]))]
|
|
3424
|
+
}
|
|
3425
|
+
}, boundaryFeature(verts, gaps)];
|
|
3426
|
+
}
|
|
3427
|
+
/**
|
|
3367
3428
|
* The area's boundary feature: a gapped `MultiLineString` when a Field N (ENY)
|
|
3368
3429
|
* marker has carved masking `gaps` from the ring (via {@link buildGappedLine},
|
|
3369
3430
|
* ADR-0023), or a closed `Polygon` otherwise. Shared by every area measure that
|
|
@@ -3464,7 +3525,7 @@ const AREA = defineControlMeasure({
|
|
|
3464
3525
|
/**
|
|
3465
3526
|
* Per-feature style hint pinning a filled part to a solid interior. Attach to
|
|
3466
3527
|
* a generator's intrinsic doctrinal accents — arrowheads, teeth, echelon
|
|
3467
|
-
* glyphs, barbs, blades — so a `hachure`/`cross` fill set at the graphicsStyle
|
|
3528
|
+
* glyphs, barbs, blades — so a `hachure`/`backhachure`/`cross` fill set at the graphicsStyle
|
|
3468
3529
|
* or measure layer never bleeds into a small silhouette and ruins its
|
|
3469
3530
|
* legibility. The renderer only reads style hints, so one shared instance is
|
|
3470
3531
|
* safe to reuse across every accent feature.
|
|
@@ -9657,6 +9718,188 @@ const LANDING_ZONE = defineControlMeasure({
|
|
|
9657
9718
|
}
|
|
9658
9719
|
});
|
|
9659
9720
|
//#endregion
|
|
9721
|
+
//#region src/generators/cm15-maneuver-areas/limitedAccessArea.ts
|
|
9722
|
+
/** Default options for the Limited Access Area control measure. */
|
|
9723
|
+
const DEFAULT_LIMITED_ACCESS_AREA_OPTIONS = {
|
|
9724
|
+
smooth: false,
|
|
9725
|
+
smoothResolution: 16
|
|
9726
|
+
};
|
|
9727
|
+
const LIMITED_ACCESS_AREA_METADATA = {
|
|
9728
|
+
id: "limited-access-area",
|
|
9729
|
+
name: "Limited Access Area",
|
|
9730
|
+
description: "An area with restricted access, identified by a back-hachure fill.",
|
|
9731
|
+
entity: "Maneuver Areas",
|
|
9732
|
+
entityType: "Limited Access Area",
|
|
9733
|
+
value: "151100",
|
|
9734
|
+
minCoordinates: 3,
|
|
9735
|
+
geometry: "area",
|
|
9736
|
+
geometryTypes: [
|
|
9737
|
+
"Polygon",
|
|
9738
|
+
"MultiLineString",
|
|
9739
|
+
"Point"
|
|
9740
|
+
],
|
|
9741
|
+
drawRule: "Area1",
|
|
9742
|
+
capturesLabelSize: true,
|
|
9743
|
+
params: [...AREA_SMOOTH_PARAMS, AREA_LABEL_PADDING_PARAM],
|
|
9744
|
+
textAmplifiers: [AREA_HOSTILE_AMPLIFIER]
|
|
9745
|
+
};
|
|
9746
|
+
/** Creates a back-hatched free area with a movable "LAA" label, centered by default. */
|
|
9747
|
+
function createLimitedAccessArea(positions, options = {}, textAmplifiers = {}, context = {}) {
|
|
9748
|
+
const { smooth = false, smoothResolution = 16 } = options;
|
|
9749
|
+
const verts = buildClosedRing(positions, smooth, smoothResolution, 16);
|
|
9750
|
+
const center = ringCentroid(verts);
|
|
9751
|
+
const labelFeatures = [{
|
|
9752
|
+
type: "Feature",
|
|
9753
|
+
properties: {
|
|
9754
|
+
part: "label",
|
|
9755
|
+
labelPlacementKey: "label:laa",
|
|
9756
|
+
textBackground: true,
|
|
9757
|
+
text: "LAA",
|
|
9758
|
+
rotation: HORIZONTAL_LABEL_ROTATION,
|
|
9759
|
+
...labelSizeProps(options)
|
|
9760
|
+
},
|
|
9761
|
+
geometry: {
|
|
9762
|
+
type: "Point",
|
|
9763
|
+
coordinates: unproject(center[0], center[1])
|
|
9764
|
+
}
|
|
9765
|
+
}];
|
|
9766
|
+
return {
|
|
9767
|
+
type: "FeatureCollection",
|
|
9768
|
+
features: [...patternedAreaFeatures(verts, pushAreaLabels(labelFeatures, verts, { hostile: textAmplifiers.N }, options, context.amplifierPlacements), "backhachure"), ...labelFeatures]
|
|
9769
|
+
};
|
|
9770
|
+
}
|
|
9771
|
+
const LIMITED_ACCESS_AREA = defineControlMeasure({
|
|
9772
|
+
metadata: LIMITED_ACCESS_AREA_METADATA,
|
|
9773
|
+
generator: createLimitedAccessArea,
|
|
9774
|
+
defaultOptions: DEFAULT_LIMITED_ACCESS_AREA_OPTIONS,
|
|
9775
|
+
rule: area1DrawRule,
|
|
9776
|
+
previewSample: {
|
|
9777
|
+
controlPoints: [
|
|
9778
|
+
[-1, -.5],
|
|
9779
|
+
[1, -.5],
|
|
9780
|
+
[1, .5],
|
|
9781
|
+
[-1, .5]
|
|
9782
|
+
],
|
|
9783
|
+
options: { labelSize: 96 }
|
|
9784
|
+
}
|
|
9785
|
+
});
|
|
9786
|
+
//#endregion
|
|
9787
|
+
//#region src/generators/cm24-fire-areas/noFireAreaIrregular.ts
|
|
9788
|
+
/** Default options for the irregular No Fire Area control measure. */
|
|
9789
|
+
const DEFAULT_NO_FIRE_AREA_IRREGULAR_OPTIONS = {
|
|
9790
|
+
smooth: false,
|
|
9791
|
+
smoothResolution: 16,
|
|
9792
|
+
labelPadding: .7
|
|
9793
|
+
};
|
|
9794
|
+
const NO_FIRE_AREA_TEXT_AMPLIFIERS = [
|
|
9795
|
+
{
|
|
9796
|
+
key: "T",
|
|
9797
|
+
label: "Unique designation",
|
|
9798
|
+
description: "Field T — the no-fire area's unique designation.",
|
|
9799
|
+
maxLength: 21
|
|
9800
|
+
},
|
|
9801
|
+
{
|
|
9802
|
+
key: "W",
|
|
9803
|
+
label: "Effective from (DTG)",
|
|
9804
|
+
description: "Field W — date-time group the no-fire area becomes effective.",
|
|
9805
|
+
placeholder: "051030Z",
|
|
9806
|
+
maxLength: 16
|
|
9807
|
+
},
|
|
9808
|
+
{
|
|
9809
|
+
key: "W1",
|
|
9810
|
+
label: "Effective to (DTG)",
|
|
9811
|
+
description: "Field W1 — date-time group the no-fire area ceases to be effective.",
|
|
9812
|
+
placeholder: "051600Z",
|
|
9813
|
+
maxLength: 16
|
|
9814
|
+
}
|
|
9815
|
+
];
|
|
9816
|
+
const NO_FIRE_AREA_IRREGULAR_METADATA = {
|
|
9817
|
+
id: "no-fire-area-irregular",
|
|
9818
|
+
name: "No Fire Area (NFA) – Irregular",
|
|
9819
|
+
description: "An irregular area into which fires or their effects are prohibited.",
|
|
9820
|
+
entity: "Fire Areas",
|
|
9821
|
+
entityType: "No Fire Area",
|
|
9822
|
+
entitySubtype: "Irregular",
|
|
9823
|
+
value: "240301",
|
|
9824
|
+
minCoordinates: 3,
|
|
9825
|
+
geometry: "area",
|
|
9826
|
+
geometryTypes: [
|
|
9827
|
+
"Polygon",
|
|
9828
|
+
"MultiLineString",
|
|
9829
|
+
"Point"
|
|
9830
|
+
],
|
|
9831
|
+
drawRule: "Area1",
|
|
9832
|
+
capturesLabelSize: true,
|
|
9833
|
+
params: [...AREA_SMOOTH_PARAMS, AREA_LABEL_PADDING_PARAM],
|
|
9834
|
+
textAmplifiers: [...NO_FIRE_AREA_TEXT_AMPLIFIERS, AREA_HOSTILE_AMPLIFIER]
|
|
9835
|
+
};
|
|
9836
|
+
function makeLabel(out, point, text, options, properties = {}) {
|
|
9837
|
+
pushLabel(out, point, text, HORIZONTAL_LABEL_ROTATION, labelSizeProps(options), properties.textAnchor, properties.amplifierField, properties.labelPlacementKey);
|
|
9838
|
+
Object.assign(out[out.length - 1].properties, {
|
|
9839
|
+
textBackground: true,
|
|
9840
|
+
...properties.labelPlacement === false ? { labelPlacement: false } : {}
|
|
9841
|
+
});
|
|
9842
|
+
}
|
|
9843
|
+
/** Creates a back-hatched irregular NFA with its centered movable label fields. */
|
|
9844
|
+
function createNoFireAreaIrregular(positions, options = {}, textAmplifiers = {}, context = {}) {
|
|
9845
|
+
const { smooth = false, smoothResolution = 16 } = options;
|
|
9846
|
+
const verts = buildClosedRing(positions, smooth, smoothResolution, 16);
|
|
9847
|
+
const [cx, cy] = ringCentroid(verts);
|
|
9848
|
+
const hasWindow = Boolean(textAmplifiers.W || textAmplifiers.W1);
|
|
9849
|
+
const rowCount = 1 + (textAmplifiers.T ? 1 : 0) + (hasWindow ? 1 : 0);
|
|
9850
|
+
const pitch = resolveLabelOffsetMeters(options, 1.2 + Math.max(0, options.labelPadding ?? .7));
|
|
9851
|
+
let rowIndex = 0;
|
|
9852
|
+
const rowY = () => cy + ((rowCount - 1) / 2 - rowIndex++) * pitch;
|
|
9853
|
+
const labels = [];
|
|
9854
|
+
makeLabel(labels, [cx, rowY()], "NFA", options, { labelPlacementKey: "label:nfa" });
|
|
9855
|
+
if (textAmplifiers.T) makeLabel(labels, [cx, rowY()], textAmplifiers.T, options, { amplifierField: "T" });
|
|
9856
|
+
if (hasWindow) {
|
|
9857
|
+
const y = rowY();
|
|
9858
|
+
if (textAmplifiers.W && textAmplifiers.W1) {
|
|
9859
|
+
const separatorGap = resolveLabelOffsetMeters(options, 1.8);
|
|
9860
|
+
makeLabel(labels, [cx - separatorGap, y], textAmplifiers.W, options, {
|
|
9861
|
+
amplifierField: "W",
|
|
9862
|
+
textAnchor: "end"
|
|
9863
|
+
});
|
|
9864
|
+
makeLabel(labels, [cx, y], "–", options, { labelPlacement: false });
|
|
9865
|
+
makeLabel(labels, [cx + separatorGap, y], textAmplifiers.W1, options, {
|
|
9866
|
+
amplifierField: "W1",
|
|
9867
|
+
textAnchor: "start"
|
|
9868
|
+
});
|
|
9869
|
+
} else if (textAmplifiers.W) makeLabel(labels, [cx, y], textAmplifiers.W, options, { amplifierField: "W" });
|
|
9870
|
+
else if (textAmplifiers.W1) makeLabel(labels, [cx, y], textAmplifiers.W1, options, { amplifierField: "W1" });
|
|
9871
|
+
}
|
|
9872
|
+
return {
|
|
9873
|
+
type: "FeatureCollection",
|
|
9874
|
+
features: [...patternedAreaFeatures(verts, pushAreaLabels(labels, verts, { hostile: textAmplifiers.N }, options, context.amplifierPlacements), "backhachure"), ...labels]
|
|
9875
|
+
};
|
|
9876
|
+
}
|
|
9877
|
+
const NO_FIRE_AREA_IRREGULAR = defineControlMeasure({
|
|
9878
|
+
metadata: NO_FIRE_AREA_IRREGULAR_METADATA,
|
|
9879
|
+
generator: createNoFireAreaIrregular,
|
|
9880
|
+
defaultOptions: DEFAULT_NO_FIRE_AREA_IRREGULAR_OPTIONS,
|
|
9881
|
+
rule: area1DrawRule,
|
|
9882
|
+
previewSample: {
|
|
9883
|
+
controlPoints: [
|
|
9884
|
+
[-1, -.15],
|
|
9885
|
+
[-.55, -.55],
|
|
9886
|
+
[.65, -.5],
|
|
9887
|
+
[1, .15],
|
|
9888
|
+
[.45, .6],
|
|
9889
|
+
[-.5, .5]
|
|
9890
|
+
],
|
|
9891
|
+
textAmplifiers: {
|
|
9892
|
+
T: "T",
|
|
9893
|
+
W: "W",
|
|
9894
|
+
W1: "W1"
|
|
9895
|
+
},
|
|
9896
|
+
options: {
|
|
9897
|
+
labelSize: 72,
|
|
9898
|
+
labelPadding: .7
|
|
9899
|
+
}
|
|
9900
|
+
}
|
|
9901
|
+
});
|
|
9902
|
+
//#endregion
|
|
9660
9903
|
//#region src/generators/cm15-maneuver-areas/mainAttack.ts
|
|
9661
9904
|
const DEFAULT_MAIN_ATTACK_OPTIONS = {
|
|
9662
9905
|
shaftWidthRatio: DEFAULT_SHAFT_WIDTH_RATIO,
|
|
@@ -11050,6 +11293,8 @@ const DEFINITIONS = {
|
|
|
11050
11293
|
"drop-zone": DROP_ZONE,
|
|
11051
11294
|
"extraction-zone": EXTRACTION_ZONE,
|
|
11052
11295
|
"landing-zone": LANDING_ZONE,
|
|
11296
|
+
"limited-access-area": LIMITED_ACCESS_AREA,
|
|
11297
|
+
"no-fire-area-irregular": NO_FIRE_AREA_IRREGULAR,
|
|
11053
11298
|
"pickup-zone": PICKUP_ZONE,
|
|
11054
11299
|
"assault-position": ASSAULT_POSITION,
|
|
11055
11300
|
"attack-position": ATTACK_POSITION,
|
|
@@ -11297,6 +11542,7 @@ function normalizeFeature(id, feature, index, generatedLabelOrdinal, measureStyl
|
|
|
11297
11542
|
const textSizePixels = typeof sourceProps.textSizePixels === "number" ? sourceProps.textSizePixels : void 0;
|
|
11298
11543
|
const textSizeMeters = typeof sourceProps.textSizeMeters === "number" ? sourceProps.textSizeMeters : void 0;
|
|
11299
11544
|
const textAnchor = sourceProps.textAnchor === "start" || sourceProps.textAnchor === "end" ? sourceProps.textAnchor : void 0;
|
|
11545
|
+
const textBackground = sourceProps.textBackground === true ? true : void 0;
|
|
11300
11546
|
const amplifierField = typeof sourceProps.amplifierField === "string" ? canonicalTextAmplifierKey(sourceProps.amplifierField) : void 0;
|
|
11301
11547
|
const labelPlacementKey = resolveLabelPlacementKey(sourceProps, amplifierField, text, feature.geometry.type, part, generatedLabelOrdinal);
|
|
11302
11548
|
const resolvedPlacement = labelPlacementKey ? resolveAmplifierPlacement(amplifierPlacements?.[labelPlacementKey]) : void 0;
|
|
@@ -11315,6 +11561,7 @@ function normalizeFeature(id, feature, index, generatedLabelOrdinal, measureStyl
|
|
|
11315
11561
|
...text !== void 0 ? { text } : {},
|
|
11316
11562
|
...resolvedRotation !== void 0 ? { rotation: resolvedRotation } : {},
|
|
11317
11563
|
...textAnchor !== void 0 ? { textAnchor } : {},
|
|
11564
|
+
...textBackground !== void 0 ? { textBackground } : {},
|
|
11318
11565
|
...amplifierField !== void 0 ? { amplifierField } : {},
|
|
11319
11566
|
...labelPlacementKey !== void 0 ? { labelPlacementKey } : {},
|
|
11320
11567
|
...textSizePixels !== void 0 ? { textSizePixels } : {},
|
|
@@ -11369,4 +11616,4 @@ function assertNever(value) {
|
|
|
11369
11616
|
throw new Error(`Unhandled control measure kind: ${String(value)}`);
|
|
11370
11617
|
}
|
|
11371
11618
|
//#endregion
|
|
11372
|
-
export { DEFAULT_BLOCK_ARROW_OPTIONS as $, DEFAULT_FLOT_OPTIONS as A, disruptDrawRule as At, DEFAULT_GENERIC_RECTANGLE_OPTIONS as B,
|
|
11619
|
+
export { DEFAULT_BLOCK_ARROW_OPTIONS as $, DEFAULT_FLOT_OPTIONS as A, disruptDrawRule as At, DEFAULT_GENERIC_RECTANGLE_OPTIONS as B, haversineDistance as Bt, DEFAULT_SCREEN_OPTIONS as C, line23DrawRule as Ct, DEFAULT_BATTLE_HANDOVER_LINE_OPTIONS as D, attackByFireDrawRule as Dt, DEFAULT_FORTIFIED_LINE_OPTIONS as E, ambushDrawRule as Et, DEFAULT_GUARD_OPTIONS as F, pointOnMidpointPerpendicularAxis as Ft, DEFAULT_CANALIZE_OPTIONS as G, roundToFixed as Gt, DEFAULT_GENERIC_LINE_OPTIONS as H, unproject as Ht, DEFAULT_DELAY_OPTIONS as I, snapToMidpointPerpendicular as It, DEFAULT_BLOCK_MISSION_TASK_OPTIONS as J, DEFAULT_BYPASS_OPTIONS as K, DEFAULT_COVER_OPTIONS as L, createBaselineFrame as Lt, DEFAULT_FINAL_PROTECTIVE_FIRE_OPTIONS as M, computeDefaultMidpointPerpendicularPoint as Mt, DEFAULT_ENCIRCLEMENT_OPTIONS as N, createMidpointPerpendicularDrawRule as Nt, DEFAULT_HANDOVER_LINE_OPTIONS as O, point12DrawRule as Ot, DEFAULT_DISRUPT_OPTIONS as P, getMidpointPerpendicularSignedDistance as Pt, DEFAULT_BOUNDARY_OPTIONS as Q, DEFAULT_TACTICAL_ARROW_OPTIONS as R, calculateMetrics as Rt, DEFAULT_JOINT_TACTICAL_ACTION_AREA_OPTIONS as S, line24DrawRule as St, DEFAULT_FORTIFIED_AREA_OPTIONS as T, line1DrawRule as Tt, DEFAULT_GENERIC_CIRCLE_OPTIONS as U, EPSILON as Ut, DEFAULT_GENERIC_POLYGON_OPTIONS as V, project as Vt, DEFAULT_CLASSIC_ARROW_OPTIONS as W, getMetersPerPixel as Wt, DEFAULT_ENGINEER_WORK_LINE_OPTIONS as X, DEFAULT_GENERIC_C2_LINE_OPTIONS as Y, DEFAULT_LIGHT_LINE_OPTIONS as Z, DEFAULT_OBSTACLE_BYPASS_IMPOSSIBLE_OPTIONS as _, DEFAULT_AIRBORNE_ATTACK_OPTIONS as _t, DEFINITIONS as a, DEFAULT_ANTITANK_DITCH_OPTIONS as at, DEFAULT_MAIN_ATTACK_OPTIONS as b, supportByFireDrawRule as bt, getDefaultOptions as c, DEFAULT_AREA_DEFENSE_OPTIONS as ct, DEFAULT_TURN_OPTIONS as d, normalizeTextAmplifiers as dt, DEFAULT_BLOCK_OPTIONS as et, DEFAULT_SUPPORTING_ATTACK_OPTIONS as f, resolveAmplifierPlacement as ft, DEFAULT_PICKUP_ZONE_OPTIONS as g, DEFAULT_AMBUSH_OPTIONS as gt, DEFAULT_PRINCIPAL_DIRECTION_OF_FIRE_OPTIONS as h, DEFAULT_DIRECTION_OF_ATTACK_AVIATION_OPTIONS as ht, CONTROL_MEASURE_METADATA as i, DEFAULT_ANTITANK_WALL_OPTIONS as it, DEFAULT_FIX_OPTIONS as j, blockDrawRule as jt, DEFAULT_PHASE_LINE_OPTIONS as k, centerRadiusDrawRule as kt, listControlMeasureMetadata as l, TEXT_AMPLIFIER_FIELDS as lt, DEFAULT_STRONG_POINT_OPTIONS as m, DEFAULT_DIRECTION_OF_MAIN_ATTACK_OPTIONS as mt, resolveStyleHints as n, DEFAULT_ATTACK_HELICOPTER_OPTIONS as nt, getControlMeasureMetadata as o, DEFAULT_ASSEMBLY_AREA_OPTIONS as ot, DEFAULT_SUPPORT_BY_FIRE_OPTIONS as p, DEFAULT_DIRECTION_OF_SUPPORTING_ATTACK_OPTIONS as pt, DEFAULT_BREACH_OPTIONS as q, CONTROL_MEASURE_IDS as r, DEFAULT_ATTACK_BY_FIRE_OPTIONS as rt, getControlMeasureMetadataByValue as s, DEFAULT_AREA_OF_OPERATIONS_OPTIONS as st, renderControlMeasure as t, DEFAULT_BATTLE_POSITION_OPTIONS as tt, DEFAULT_TURNING_MOVEMENT_OPTIONS as u, canonicalTextAmplifierKey as ut, DEFAULT_OBSTACLE_BYPASS_EASY_OPTIONS as v, rectangleDrawRule as vt, DEFAULT_FRONTAL_ATTACK_OPTIONS as w, turnDrawRule as wt, DEFAULT_LANDING_ZONE_OPTIONS as x, line26DrawRule as xt, DEFAULT_OBSTACLE_BYPASS_DIFFICULT_OPTIONS as y, axis1DrawRule as yt, DEFAULT_CLEAR_OPTIONS as z, computeInitialWidthPoint as zt };
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 103.6966679985627 48" width="96" height="48" role="img" aria-label="Airfield zone"><rect x="0" y="0" width="103.6966679985627" height="48" rx="6" fill="#f8fafc" stroke="#e2e8f0"/><path d="M15.63 39.20 L17.88 40.09 L20.74 40.86 L24.14 41.52 L27.98 42.05 L32.18 42.46 L36.65 42.76 L41.30 42.94 L46.03 43.00 L50.77 42.94 L55.41 42.76 L59.88 42.46 L64.08 42.05 L67.93 41.52 L71.33 40.86 L74.19 40.09 L76.43 39.20 L78.21 38.08 L79.76 36.65 L81.07 34.95 L82.14 33.02 L82.96 30.93 L83.56 28.69 L83.91 26.37 L84.03 24.00 L83.91 21.63 L83.56 19.31 L82.96 17.07 L82.13 14.98 L81.07 13.05 L79.76 11.35 L78.21 9.92 L76.43 8.80 L74.19 7.91 L71.33 7.14 L67.93 6.48 L64.08 5.95 L59.88 5.54 L55.41 5.24 L50.77 5.06 L46.03 5.00 L41.30 5.06 L36.65 5.24 L32.18 5.54 L27.98 5.95 L24.14 6.48 L20.74 7.14 L17.88 7.91 L15.63 8.80 L13.85 9.92 L12.31 11.35 L11.00 13.05 L9.94 14.98 L9.10 17.07 L8.51 19.31 L8.15 21.63 L8.03 24.00 L8.15 26.37 L8.51 28.69 L9.10 30.93 L9.94 33.02 L11.00 34.95 L12.31 36.65 L13.85 38.08 L15.63 39.20 Z" fill="#1e293b" fill-opacity="0" stroke="#1e293b" stroke-width="1.25" stroke-linejoin="round"/><path d="M25.85 29.41 L66.22 18.59" fill="none" stroke="#1e293b" stroke-width="1.25" stroke-linejoin="round" stroke-linecap="round"/><path d="M38.65 32.80 L53.42 15.20" fill="none" stroke="#1e293b" stroke-width="1.25" stroke-linejoin="round" stroke-linecap="round"/><g transform="rotate(0.000 87.967 24.000)"><text x="87.96688" y="24" fill="#1e293b" font-family="sans-serif" font-size="5.243262666187567" font-weight="600" text-anchor="start" dominant-baseline="central">570M</text></g></svg>
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 96 48" width="96" height="48" role="img" aria-label="Area Defense"><rect x="0" y="0" width="96" height="48" rx="6" fill="#f8fafc" stroke="#e2e8f0"/><path d="M64.29 21.22 L64.08 20.16 L63.79 19.12 L63.43 18.10 L63.01 17.10 L62.52 16.14 L61.97 15.20 L61.37 14.31 L60.70 13.46 L59.98 12.65 L59.20 11.90 L58.38 11.20 L57.52 10.55 L56.61 9.96 L55.66 9.43 L54.69 8.97 L53.68 8.57 L52.65 8.24 L51.60 7.97 L50.54 7.78 L49.46 7.65 L48.38 7.60 L47.30 7.63 L46.23 7.72 L45.16 7.88 L44.10 8.11 L43.06 8.41 L42.05 8.78 L41.06 9.21 L40.09 9.71 L39.17 10.27 L38.29 10.89 L37.44 11.57 L36.65 12.30 L35.90 13.08 L35.21 13.92 L34.57 14.79 L33.99 15.71 L33.48 16.65 L33.03 17.64 L32.64 18.65 L32.32 19.68" fill="none" stroke="#1e293b" stroke-width="1.25" stroke-linejoin="round" stroke-linecap="round"/><path d="M64.27 26.91 L64.04 27.97 L63.74 29.01 L63.38 30.03 L62.95 31.02 L62.45 31.98 L61.90 32.91 L61.28 33.80 L60.61 34.64 L59.87 35.44 L59.09 36.19 L58.27 36.89 L57.39 37.53 L56.48 38.11 L55.53 38.62 L54.55 39.08 L53.54 39.47 L52.51 39.80 L51.46 40.05 L50.40 40.24 L49.32 40.35 L48.24 40.39 L47.16 40.36 L46.08 40.26 L45.01 40.09 L43.96 39.85 L42.92 39.54 L41.91 39.16 L40.92 38.72 L39.97 38.21 L39.05 37.64 L38.17 37.01 L37.33 36.32 L36.54 35.58 L35.81 34.80 L35.12 33.96 L34.49 33.08 L33.92 32.16 L33.41 31.21 L32.97 30.22 L32.59 29.20 L32.28 28.17" fill="none" stroke="#1e293b" stroke-width="1.25" stroke-linejoin="round" stroke-linecap="round"/><path d="M34.66 17.26 L32.32 19.68 L31.53 16.41" fill="none" stroke="#1e293b" stroke-width="1.25" stroke-linejoin="round" stroke-linecap="round"/><path d="M31.47 31.44 L32.28 28.17 L34.61 30.61" fill="none" stroke="#1e293b" stroke-width="1.25" stroke-linejoin="round" stroke-linecap="round"/><path d="M59.95 12.63 L60.74 9.75 L57.98 10.89 L59.95 12.63 Z" fill="#1e293b" fill-opacity="1" stroke="#1e293b" stroke-width="1.25" stroke-linejoin="round"/><path d="M50.23 7.74 L49.05 5.00 L47.61 7.61 L50.23 7.74 Z" fill="#1e293b" fill-opacity="1" stroke="#1e293b" stroke-width="1.25" stroke-linejoin="round"/><path d="M39.59 10.00 L36.96 8.61 L37.47 11.54 L39.59 10.00 Z" fill="#1e293b" fill-opacity="1" stroke="#1e293b" stroke-width="1.25" stroke-linejoin="round"/><path d="M57.87 37.19 L60.61 38.35 L59.85 35.47 L57.87 37.19 Z" fill="#1e293b" fill-opacity="1" stroke="#1e293b" stroke-width="1.25" stroke-linejoin="round"/><path d="M47.47 40.37 L48.88 43.00 L50.09 40.27 L47.47 40.37 Z" fill="#1e293b" fill-opacity="1" stroke="#1e293b" stroke-width="1.25" stroke-linejoin="round"/><path d="M37.36 36.35 L36.82 39.28 L39.47 37.91 L37.36 36.35 Z" fill="#1e293b" fill-opacity="1" stroke="#1e293b" stroke-width="1.25" stroke-linejoin="round"/><g transform="rotate(0.000 64.533 24.070)"><text x="64.53308108108108" y="24.069837837837838" fill="#1e293b" font-family="sans-serif" font-size="3.3213234794262467" font-weight="600" text-anchor="middle" dominant-baseline="central">AD</text></g></svg>
|
|
@@ -1 +1 @@
|
|
|
1
|
-
<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 96 48" width="96" height="48" role="img" aria-label="Area of operations"><rect x="0" y="0" width="96" height="48" rx="6" fill="#f8fafc" stroke="#e2e8f0"/><path d="M10.00 43.00 L86.00 43.00 L86.00 5.00 L10.00 5.00 L10.00 43.00 Z" fill="#1e293b" fill-opacity="0" stroke="#1e293b" stroke-width="1.25" stroke-linejoin="round"/><text x="48" y="24" fill="#1e293b" font-size="6.554078332734459" font-weight="600" text-anchor="middle" dominant-baseline="central"
|
|
1
|
+
<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 96 48" width="96" height="48" role="img" aria-label="Area of operations"><rect x="0" y="0" width="96" height="48" rx="6" fill="#f8fafc" stroke="#e2e8f0"/><path d="M10.00 43.00 L86.00 43.00 L86.00 5.00 L10.00 5.00 L10.00 43.00 Z" fill="#1e293b" fill-opacity="0" stroke="#1e293b" stroke-width="1.25" stroke-linejoin="round"/><g transform="rotate(0.000 48.000 24.000)"><text x="48" y="24" fill="#1e293b" font-family="sans-serif" font-size="6.554078332734459" font-weight="600" text-anchor="middle" dominant-baseline="central">AO GREEN</text></g></svg>
|
package/media/area.svg
ADDED
|
@@ -0,0 +1 @@
|
|
|
1
|
+
<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 96 48" width="96" height="48" role="img" aria-label="Area"><rect x="0" y="0" width="96" height="48" rx="6" fill="#f8fafc" stroke="#e2e8f0"/><path d="M10.00 43.00 L86.00 43.00 L86.00 5.00 L10.00 5.00 L10.00 43.00 Z" fill="#1e293b" fill-opacity="0" stroke="#1e293b" stroke-width="1.25" stroke-linejoin="round"/></svg>
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 96 48" width="96" height="48" role="img" aria-label="Assault position"><rect x="0" y="0" width="96" height="48" rx="6" fill="#f8fafc" stroke="#e2e8f0"/><path d="M10.00 43.00 L86.00 43.00 L86.00 5.00 L10.00 5.00 L10.00 43.00 Z" fill="#1e293b" fill-opacity="0" stroke="#1e293b" stroke-width="1.25" stroke-linejoin="round"/><g transform="rotate(0.000 48.000 24.000)"><text x="48" y="24" fill="#1e293b" font-family="sans-serif" font-size="5.6304985337243405" font-weight="600" text-anchor="middle" dominant-baseline="central">ASLT DANUBE</text></g></svg>
|
package/media/assembly-area.svg
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 96 48" width="96" height="48" role="img" aria-label="Assembly area"><rect x="0" y="0" width="96" height="48" rx="6" fill="#f8fafc" stroke="#e2e8f0"/><path d="M10.00 43.00 L86.00 43.00 L86.00 5.00 L10.00 5.00 L10.00 43.00 Z" fill="#1e293b" fill-opacity="0" stroke="#1e293b" stroke-width="1.25" stroke-linejoin="round"/><text x="48" y="24" fill="#1e293b" font-size="6.554078332734459" font-weight="600" text-anchor="middle" dominant-baseline="central"
|
|
1
|
+
<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 96 48" width="96" height="48" role="img" aria-label="Assembly area"><rect x="0" y="0" width="96" height="48" rx="6" fill="#f8fafc" stroke="#e2e8f0"/><path d="M10.00 43.00 L86.00 43.00 L86.00 5.00 L10.00 5.00 L10.00 43.00 Z" fill="#1e293b" fill-opacity="0" stroke="#1e293b" stroke-width="1.25" stroke-linejoin="round"/><g transform="rotate(0.000 48.000 24.000)"><text x="48" y="24" fill="#1e293b" font-family="sans-serif" font-size="6.554078332734459" font-weight="600" text-anchor="middle" dominant-baseline="central">AA BLUE</text></g></svg>
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 96 48" width="96" height="48" role="img" aria-label="Attack position"><rect x="0" y="0" width="96" height="48" rx="6" fill="#f8fafc" stroke="#e2e8f0"/><path d="M10.00 43.00 L86.00 43.00 L86.00 5.00 L10.00 5.00 L10.00 43.00 Z" fill="#1e293b" fill-opacity="0" stroke="#1e293b" stroke-width="1.25" stroke-linejoin="round"/><g transform="rotate(0.000 48.000 24.000)"><text x="48" y="24" fill="#1e293b" font-family="sans-serif" font-size="6.554078332734459" font-weight="600" text-anchor="middle" dominant-baseline="central">ATK NILE</text></g></svg>
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 96 48" width="96" height="48" role="img" aria-label="Base camp"><rect x="0" y="0" width="96" height="48" rx="6" fill="#f8fafc" stroke="#e2e8f0"/><path d="M17.60 39.20 L19.84 40.09 L22.71 40.86 L26.11 41.52 L29.95 42.05 L34.15 42.46 L38.62 42.76 L43.26 42.94 L48.00 43.00 L52.74 42.94 L57.38 42.76 L61.85 42.46 L66.05 42.05 L69.89 41.52 L73.29 40.86 L76.16 40.09 L78.40 39.20 L80.18 38.08 L81.73 36.65 L83.03 34.95 L84.10 33.02 L84.93 30.93 L85.53 28.69 L85.88 26.37 L86.00 24.00 L85.88 21.63 L85.53 19.31 L84.93 17.07 L84.10 14.98 L83.03 13.05 L81.73 11.35 L80.18 9.92 L78.40 8.80 L76.16 7.91 L73.29 7.14 L69.89 6.48 L66.05 5.95 L61.85 5.54 L57.38 5.24 L52.74 5.06 L48.00 5.00 L43.26 5.06 L38.62 5.24 L34.15 5.54 L29.95 5.95 L26.11 6.48 L22.71 7.14 L19.84 7.91 L17.60 8.80 L15.82 9.92 L14.27 11.35 L12.97 13.05 L11.90 14.98 L11.07 17.07 L10.47 19.31 L10.12 21.63 L10.00 24.00 L10.12 26.37 L10.47 28.69 L11.07 30.93 L11.90 33.02 L12.97 34.95 L14.27 36.65 L15.82 38.08 L17.60 39.20 Z" fill="#1e293b" fill-opacity="0" stroke="#1e293b" stroke-width="1.25" stroke-linejoin="round"/><g transform="rotate(0.000 48.000 24.000)"><text x="48" y="24" fill="#1e293b" font-family="sans-serif" font-size="4.423963133640553" font-weight="600" text-anchor="middle" dominant-baseline="central">BC LEATHERNECK</text></g></svg>
|
|
@@ -1 +1 @@
|
|
|
1
|
-
<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 96 48" width="96" height="48" role="img" aria-label="Battle handover line"><rect x="0" y="0" width="96" height="48" rx="6" fill="#f8fafc" stroke="#e2e8f0"/><path d="M5.00 26.22 L91.00 26.22" fill="none" stroke="#1e293b" stroke-width="1.25" stroke-linejoin="round" stroke-linecap="round"/><text x="7.227399999999998" y="21.7769" fill="#1e293b" font-size="7.416457060725835" font-weight="600" text-anchor="start" dominant-baseline="central" transform="rotate(0.000
|
|
1
|
+
<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 96 48" width="96" height="48" role="img" aria-label="Battle handover line"><rect x="0" y="0" width="96" height="48" rx="6" fill="#f8fafc" stroke="#e2e8f0"/><path d="M5.00 26.22 L91.00 26.22" fill="none" stroke="#1e293b" stroke-width="1.25" stroke-linejoin="round" stroke-linecap="round"/><g transform="rotate(0.000 7.227 21.777)"><text x="7.227399999999998" y="21.7769" fill="#1e293b" font-family="sans-serif" font-size="7.416457060725835" font-weight="600" text-anchor="start" dominant-baseline="central">BHL</text></g><g transform="rotate(0.000 88.773 21.777)"><text x="88.7726" y="21.7769" fill="#1e293b" font-family="sans-serif" font-size="7.416457060725835" font-weight="600" text-anchor="end" dominant-baseline="central">BHL</text></g></svg>
|
|
@@ -1 +1 @@
|
|
|
1
|
-
<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 96 48" width="96" height="48" role="img" aria-label="Battle Position"><rect x="0" y="0" width="96" height="48" rx="6" fill="#f8fafc" stroke="#e2e8f0"/><path d="M21.43 34.89 L23.39 35.66 L25.90 36.34 L28.87 36.91 L32.23 37.38 L35.90 37.74 L39.25 37.96" fill="none" stroke="#1e293b" stroke-width="1.25" stroke-linejoin="round" stroke-linecap="round"/><path d="M52.61 38.14 L56.20 38.00 L60.10 37.74 L63.77 37.38 L67.13 36.91 L70.10 36.34 L72.61 35.66 L74.57 34.89 L76.12 33.91 L77.47 32.66 L78.61 31.17 L79.55 29.49 L80.27 27.66 L80.79 25.70 L81.10 23.67 L81.21 21.60 L81.10 19.54 L80.79 17.51 L80.27 15.55 L79.54 13.72 L78.61 12.03 L77.47 10.55 L76.12 9.30 L74.57 8.32 L72.61 7.55 L70.10 6.87 L67.13 6.30 L63.77 5.83 L60.10 5.47 L56.20 5.21 L52.14 5.05 L48.00 5.00 L43.86 5.05 L39.80 5.21 L35.90 5.47 L32.23 5.83 L28.87 6.30 L25.90 6.87 L23.39 7.55 L21.43 8.32 L19.88 9.30 L18.53 10.55 L17.39 12.03 L16.46 13.72 L15.73 15.55 L15.21 17.51 L14.90 19.54 L14.79 21.60 L14.90 23.67 L15.21 25.70 L15.73 27.66 L16.46 29.49 L17.39 31.17 L18.53 32.66 L19.88 33.91 L21.43 34.89" fill="none" stroke="#1e293b" stroke-width="1.25" stroke-linejoin="round" stroke-linecap="round"/><path d="M42.17 33.36 L42.05 42.90" fill="none" stroke="#1e293b" stroke-width="1.25" stroke-linejoin="round" stroke-linecap="round"/><path d="M49.81 33.46 L49.69 43.00" fill="none" stroke="#1e293b" stroke-width="1.25" stroke-linejoin="round" stroke-linecap="round"/><text x="48" y="21.603747203579417" fill="#1e293b" font-size="4.58198988586022" font-weight="600" text-anchor="middle" dominant-baseline="central"
|
|
1
|
+
<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 96 48" width="96" height="48" role="img" aria-label="Battle Position"><rect x="0" y="0" width="96" height="48" rx="6" fill="#f8fafc" stroke="#e2e8f0"/><path d="M21.43 34.89 L23.39 35.66 L25.90 36.34 L28.87 36.91 L32.23 37.38 L35.90 37.74 L39.25 37.96" fill="none" stroke="#1e293b" stroke-width="1.25" stroke-linejoin="round" stroke-linecap="round"/><path d="M52.61 38.14 L56.20 38.00 L60.10 37.74 L63.77 37.38 L67.13 36.91 L70.10 36.34 L72.61 35.66 L74.57 34.89 L76.12 33.91 L77.47 32.66 L78.61 31.17 L79.55 29.49 L80.27 27.66 L80.79 25.70 L81.10 23.67 L81.21 21.60 L81.10 19.54 L80.79 17.51 L80.27 15.55 L79.54 13.72 L78.61 12.03 L77.47 10.55 L76.12 9.30 L74.57 8.32 L72.61 7.55 L70.10 6.87 L67.13 6.30 L63.77 5.83 L60.10 5.47 L56.20 5.21 L52.14 5.05 L48.00 5.00 L43.86 5.05 L39.80 5.21 L35.90 5.47 L32.23 5.83 L28.87 6.30 L25.90 6.87 L23.39 7.55 L21.43 8.32 L19.88 9.30 L18.53 10.55 L17.39 12.03 L16.46 13.72 L15.73 15.55 L15.21 17.51 L14.90 19.54 L14.79 21.60 L14.90 23.67 L15.21 25.70 L15.73 27.66 L16.46 29.49 L17.39 31.17 L18.53 32.66 L19.88 33.91 L21.43 34.89" fill="none" stroke="#1e293b" stroke-width="1.25" stroke-linejoin="round" stroke-linecap="round"/><path d="M42.17 33.36 L42.05 42.90" fill="none" stroke="#1e293b" stroke-width="1.25" stroke-linejoin="round" stroke-linecap="round"/><path d="M49.81 33.46 L49.69 43.00" fill="none" stroke="#1e293b" stroke-width="1.25" stroke-linejoin="round" stroke-linecap="round"/><g transform="rotate(0.000 48.000 21.604)"><text x="48" y="21.603747203579417" fill="#1e293b" font-family="sans-serif" font-size="4.58198988586022" font-weight="600" text-anchor="middle" dominant-baseline="central">ALFA</text></g></svg>
|
package/media/block-arrow.svg
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 96 48" width="96" height="48" role="img" aria-label="Block Arrow"><rect x="0" y="0" width="96" height="48" rx="6" fill="#f8fafc" stroke="#e2e8f0"/><path d="M5.00 15.40 L62.83 15.40 L77.66 15.40 L77.66 12.14 L91.00 24.00 L77.66 35.86 L77.66 32.60 L62.83 32.60 L5.00 32.60 L5.00 15.40 Z" fill="#1e293b" fill-opacity="
|
|
1
|
+
<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 96 48" width="96" height="48" role="img" aria-label="Block Arrow"><rect x="0" y="0" width="96" height="48" rx="6" fill="#f8fafc" stroke="#e2e8f0"/><path d="M5.00 15.40 L62.83 15.40 L77.66 15.40 L77.66 12.14 L91.00 24.00 L77.66 35.86 L77.66 32.60 L62.83 32.60 L5.00 32.60 L5.00 15.40 Z" fill="#1e293b" fill-opacity="1" stroke="#1e293b" stroke-width="1.25" stroke-linejoin="round"/></svg>
|
|
@@ -1 +1 @@
|
|
|
1
|
-
<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 96 48" width="96" height="48" role="img" aria-label="Block"><rect x="0" y="0" width="96" height="48" rx="6" fill="#f8fafc" stroke="#e2e8f0"/><path d="M76.50 5.00 L76.50 43.00" fill="none" stroke="#1e293b" stroke-width="1.25" stroke-linejoin="round" stroke-linecap="round"/><path d="M76.50 24.00 L51.80 24.00" fill="none" stroke="#1e293b" stroke-width="1.25" stroke-linejoin="round" stroke-linecap="round"/><path d="M44.20 24.00 L19.50 24.00" fill="none" stroke="#1e293b" stroke-width="1.25" stroke-linejoin="round" stroke-linecap="round"/><text x="48" y="24" fill="#1e293b" font-size="11" font-weight="600" text-anchor="middle" dominant-baseline="central"
|
|
1
|
+
<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 96 48" width="96" height="48" role="img" aria-label="Block"><rect x="0" y="0" width="96" height="48" rx="6" fill="#f8fafc" stroke="#e2e8f0"/><path d="M76.50 5.00 L76.50 43.00" fill="none" stroke="#1e293b" stroke-width="1.25" stroke-linejoin="round" stroke-linecap="round"/><path d="M76.50 24.00 L51.80 24.00" fill="none" stroke="#1e293b" stroke-width="1.25" stroke-linejoin="round" stroke-linecap="round"/><path d="M44.20 24.00 L19.50 24.00" fill="none" stroke="#1e293b" stroke-width="1.25" stroke-linejoin="round" stroke-linecap="round"/><g transform="rotate(0.000 48.000 24.000)"><text x="48" y="24" fill="#1e293b" font-family="sans-serif" font-size="11" font-weight="600" text-anchor="middle" dominant-baseline="central">B</text></g></svg>
|
package/media/boundary.svg
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 96 48" width="96" height="48" role="img" aria-label="Boundary"><rect x="0" y="0" width="96" height="48" rx="6" fill="#f8fafc" stroke="#e2e8f0"/><path d="M5.00 24.00 L39.89 24.00" fill="none" stroke="#1e293b" stroke-width="1.25" stroke-linejoin="round" stroke-linecap="round"/><path d="M56.11 24.00 L91.00 24.00" fill="none" stroke="#1e293b" stroke-width="1.25" stroke-linejoin="round" stroke-linecap="round"/><path d="M43.37 29.79 L43.37 18.21" fill="none" stroke="#1e293b" stroke-width="1.25" stroke-linejoin="round" stroke-linecap="round"/><path d="M52.63 29.79 L52.63 18.21" fill="none" stroke="#1e293b" stroke-width="1.25" stroke-linejoin="round" stroke-linecap="round"
|
|
1
|
+
<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 96 48" width="96" height="48" role="img" aria-label="Boundary"><rect x="0" y="0" width="96" height="48" rx="6" fill="#f8fafc" stroke="#e2e8f0"/><path d="M5.00 24.00 L39.89 24.00" fill="none" stroke="#1e293b" stroke-width="1.25" stroke-linejoin="round" stroke-linecap="round"/><path d="M56.11 24.00 L91.00 24.00" fill="none" stroke="#1e293b" stroke-width="1.25" stroke-linejoin="round" stroke-linecap="round"/><path d="M43.37 29.79 L43.37 18.21" fill="none" stroke="#1e293b" stroke-width="1.25" stroke-linejoin="round" stroke-linecap="round"/><path d="M52.63 29.79 L52.63 18.21" fill="none" stroke="#1e293b" stroke-width="1.25" stroke-linejoin="round" stroke-linecap="round"/><g transform="rotate(0.000 48.000 12.992)"><text x="48" y="12.991999999999999" fill="#1e293b" font-family="sans-serif" font-size="7.68" font-weight="600" text-anchor="middle" dominant-baseline="central">2INF</text></g><g transform="rotate(0.000 48.000 35.008)"><text x="48" y="35.008" fill="#1e293b" font-family="sans-serif" font-size="7.68" font-weight="600" text-anchor="middle" dominant-baseline="central">3INF</text></g></svg>
|
package/media/breach.svg
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 96 48" width="96" height="48" role="img" aria-label="Breach"><rect x="0" y="0" width="96" height="48" rx="6" fill="#f8fafc" stroke="#e2e8f0"/><path d="M17.28 35.72 L10.00 43.00" fill="none" stroke="#1e293b" stroke-width="1.25" stroke-linejoin="round" stroke-linecap="round"/><path d="M13.64 39.36 L13.64 5.00 L41.13 5.00" fill="none" stroke="#1e293b" stroke-width="1.25" stroke-linejoin="round" stroke-linecap="round"/><path d="M54.87 5.00 L82.36 5.00 L82.36 39.36" fill="none" stroke="#1e293b" stroke-width="1.25" stroke-linejoin="round" stroke-linecap="round"/><path d="M78.72 35.72 L86.00 43.00" fill="none" stroke="#1e293b" stroke-width="1.25" stroke-linejoin="round" stroke-linecap="round"/><text x="48" y="5" fill="#1e293b" font-size="11" font-weight="600" text-anchor="middle" dominant-baseline="central"
|
|
1
|
+
<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 96 48" width="96" height="48" role="img" aria-label="Breach"><rect x="0" y="0" width="96" height="48" rx="6" fill="#f8fafc" stroke="#e2e8f0"/><path d="M17.28 35.72 L10.00 43.00" fill="none" stroke="#1e293b" stroke-width="1.25" stroke-linejoin="round" stroke-linecap="round"/><path d="M13.64 39.36 L13.64 5.00 L41.13 5.00" fill="none" stroke="#1e293b" stroke-width="1.25" stroke-linejoin="round" stroke-linecap="round"/><path d="M54.87 5.00 L82.36 5.00 L82.36 39.36" fill="none" stroke="#1e293b" stroke-width="1.25" stroke-linejoin="round" stroke-linecap="round"/><path d="M78.72 35.72 L86.00 43.00" fill="none" stroke="#1e293b" stroke-width="1.25" stroke-linejoin="round" stroke-linecap="round"/><g transform="rotate(-270.000 48.000 5.000)"><text x="48" y="5" fill="#1e293b" font-family="sans-serif" font-size="11" font-weight="600" text-anchor="middle" dominant-baseline="central">B</text></g></svg>
|
package/media/bypass.svg
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 96 48" width="96" height="48" role="img" aria-label="Bypass"><rect x="0" y="0" width="96" height="48" rx="6" fill="#f8fafc" stroke="#e2e8f0"/><path d="M14.56 33.88 L10.00 43.00 L5.44 33.88" fill="none" stroke="#1e293b" stroke-width="1.25" stroke-linejoin="round" stroke-linecap="round"/><path d="M10.00 43.00 L10.00 5.00 L40.40 5.00" fill="none" stroke="#1e293b" stroke-width="1.25" stroke-linejoin="round" stroke-linecap="round"/><path d="M55.60 5.00 L86.00 5.00 L86.00 43.00" fill="none" stroke="#1e293b" stroke-width="1.25" stroke-linejoin="round" stroke-linecap="round"/><path d="M90.56 33.88 L86.00 43.00 L81.44 33.88" fill="none" stroke="#1e293b" stroke-width="1.25" stroke-linejoin="round" stroke-linecap="round"/><text x="48" y="5" fill="#1e293b" font-size="11" font-weight="600" text-anchor="middle" dominant-baseline="central"
|
|
1
|
+
<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 96 48" width="96" height="48" role="img" aria-label="Bypass"><rect x="0" y="0" width="96" height="48" rx="6" fill="#f8fafc" stroke="#e2e8f0"/><path d="M14.56 33.88 L10.00 43.00 L5.44 33.88" fill="none" stroke="#1e293b" stroke-width="1.25" stroke-linejoin="round" stroke-linecap="round"/><path d="M10.00 43.00 L10.00 5.00 L40.40 5.00" fill="none" stroke="#1e293b" stroke-width="1.25" stroke-linejoin="round" stroke-linecap="round"/><path d="M55.60 5.00 L86.00 5.00 L86.00 43.00" fill="none" stroke="#1e293b" stroke-width="1.25" stroke-linejoin="round" stroke-linecap="round"/><path d="M90.56 33.88 L86.00 43.00 L81.44 33.88" fill="none" stroke="#1e293b" stroke-width="1.25" stroke-linejoin="round" stroke-linecap="round"/><g transform="rotate(-270.000 48.000 5.000)"><text x="48" y="5" fill="#1e293b" font-family="sans-serif" font-size="11" font-weight="600" text-anchor="middle" dominant-baseline="central">B</text></g></svg>
|
package/media/canalize.svg
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 96 48" width="96" height="48" role="img" aria-label="Canalize"><rect x="0" y="0" width="96" height="48" rx="6" fill="#f8fafc" stroke="#e2e8f0"/><path d="M17.28 43.00 L10.00 35.72" fill="none" stroke="#1e293b" stroke-width="1.25" stroke-linejoin="round" stroke-linecap="round"/><path d="M13.64 39.36 L13.64 5.00 L41.13 5.00" fill="none" stroke="#1e293b" stroke-width="1.25" stroke-linejoin="round" stroke-linecap="round"/><path d="M54.87 5.00 L82.36 5.00 L82.36 39.36" fill="none" stroke="#1e293b" stroke-width="1.25" stroke-linejoin="round" stroke-linecap="round"/><path d="M78.72 43.00 L86.00 35.72" fill="none" stroke="#1e293b" stroke-width="1.25" stroke-linejoin="round" stroke-linecap="round"/><text x="48" y="5" fill="#1e293b" font-size="11" font-weight="600" text-anchor="middle" dominant-baseline="central"
|
|
1
|
+
<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 96 48" width="96" height="48" role="img" aria-label="Canalize"><rect x="0" y="0" width="96" height="48" rx="6" fill="#f8fafc" stroke="#e2e8f0"/><path d="M17.28 43.00 L10.00 35.72" fill="none" stroke="#1e293b" stroke-width="1.25" stroke-linejoin="round" stroke-linecap="round"/><path d="M13.64 39.36 L13.64 5.00 L41.13 5.00" fill="none" stroke="#1e293b" stroke-width="1.25" stroke-linejoin="round" stroke-linecap="round"/><path d="M54.87 5.00 L82.36 5.00 L82.36 39.36" fill="none" stroke="#1e293b" stroke-width="1.25" stroke-linejoin="round" stroke-linecap="round"/><path d="M78.72 43.00 L86.00 35.72" fill="none" stroke="#1e293b" stroke-width="1.25" stroke-linejoin="round" stroke-linecap="round"/><g transform="rotate(-270.000 48.000 5.000)"><text x="48" y="5" fill="#1e293b" font-family="sans-serif" font-size="11" font-weight="600" text-anchor="middle" dominant-baseline="central">C</text></g></svg>
|
package/media/clear.svg
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 96 48" width="96" height="48" role="img" aria-label="Clear"><rect x="0" y="0" width="96" height="48" rx="6" fill="#f8fafc" stroke="#e2e8f0"/><path d="M10.00 43.00 L86.00 43.00" fill="none" stroke="#1e293b" stroke-width="1.25" stroke-linejoin="round" stroke-linecap="round"/><path d="M21.40 5.00 L21.40 43.00" fill="none" stroke="#1e293b" stroke-width="1.25" stroke-linejoin="round" stroke-linecap="round"/><path d="M29.00 31.60 L21.40 43.00 L13.80 31.60" fill="none" stroke="#1e293b" stroke-width="1.25" stroke-linejoin="round" stroke-linecap="round"/><path d="M48.00 5.00 L48.00 20.20" fill="none" stroke="#1e293b" stroke-width="1.25" stroke-linejoin="round" stroke-linecap="round"/><path d="M48.00 27.80 L48.00 43.00" fill="none" stroke="#1e293b" stroke-width="1.25" stroke-linejoin="round" stroke-linecap="round"/><path d="M55.60 31.60 L48.00 43.00 L40.40 31.60" fill="none" stroke="#1e293b" stroke-width="1.25" stroke-linejoin="round" stroke-linecap="round"/><path d="M74.60 5.00 L74.60 43.00" fill="none" stroke="#1e293b" stroke-width="1.25" stroke-linejoin="round" stroke-linecap="round"/><path d="M82.20 31.60 L74.60 43.00 L67.00 31.60" fill="none" stroke="#1e293b" stroke-width="1.25" stroke-linejoin="round" stroke-linecap="round"/><text x="48" y="24" fill="#1e293b" font-size="11" font-weight="600" text-anchor="middle" dominant-baseline="central"
|
|
1
|
+
<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 96 48" width="96" height="48" role="img" aria-label="Clear"><rect x="0" y="0" width="96" height="48" rx="6" fill="#f8fafc" stroke="#e2e8f0"/><path d="M10.00 43.00 L86.00 43.00" fill="none" stroke="#1e293b" stroke-width="1.25" stroke-linejoin="round" stroke-linecap="round"/><path d="M21.40 5.00 L21.40 43.00" fill="none" stroke="#1e293b" stroke-width="1.25" stroke-linejoin="round" stroke-linecap="round"/><path d="M29.00 31.60 L21.40 43.00 L13.80 31.60" fill="none" stroke="#1e293b" stroke-width="1.25" stroke-linejoin="round" stroke-linecap="round"/><path d="M48.00 5.00 L48.00 20.20" fill="none" stroke="#1e293b" stroke-width="1.25" stroke-linejoin="round" stroke-linecap="round"/><path d="M48.00 27.80 L48.00 43.00" fill="none" stroke="#1e293b" stroke-width="1.25" stroke-linejoin="round" stroke-linecap="round"/><path d="M55.60 31.60 L48.00 43.00 L40.40 31.60" fill="none" stroke="#1e293b" stroke-width="1.25" stroke-linejoin="round" stroke-linecap="round"/><path d="M74.60 5.00 L74.60 43.00" fill="none" stroke="#1e293b" stroke-width="1.25" stroke-linejoin="round" stroke-linecap="round"/><path d="M82.20 31.60 L74.60 43.00 L67.00 31.60" fill="none" stroke="#1e293b" stroke-width="1.25" stroke-linejoin="round" stroke-linecap="round"/><g transform="rotate(-270.000 48.000 24.000)"><text x="48" y="24" fill="#1e293b" font-family="sans-serif" font-size="11" font-weight="600" text-anchor="middle" dominant-baseline="central">C</text></g></svg>
|
package/media/cover.svg
ADDED
|
@@ -0,0 +1 @@
|
|
|
1
|
+
<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 96 48" width="96" height="48" role="img" aria-label="Cover"><rect x="0" y="0" width="96" height="48" rx="6" fill="#f8fafc" stroke="#e2e8f0"/><path d="M35.10 24.00 L18.55 26.11 L21.55 21.89 L5.00 24.00" fill="none" stroke="#1e293b" stroke-width="1.25" stroke-linejoin="round" stroke-linecap="round"/><path d="M8.61 25.81 L5.00 24.00 L8.61 22.19" fill="none" stroke="#1e293b" stroke-width="1.25" stroke-linejoin="round" stroke-linecap="round"/><path d="M60.90 24.00 L77.45 21.89 L74.45 26.11 L91.00 24.00" fill="none" stroke="#1e293b" stroke-width="1.25" stroke-linejoin="round" stroke-linecap="round"/><path d="M87.39 22.19 L91.00 24.00 L87.39 25.81" fill="none" stroke="#1e293b" stroke-width="1.25" stroke-linejoin="round" stroke-linecap="round"/><g transform="rotate(0.000 40.260 24.000)"><text x="40.260000000000005" y="24" fill="#1e293b" font-family="sans-serif" font-size="6.952928494430471" font-weight="600" text-anchor="middle" dominant-baseline="central">C</text></g><g transform="rotate(0.000 55.740 24.000)"><text x="55.74" y="24" fill="#1e293b" font-family="sans-serif" font-size="6.952928494430471" font-weight="600" text-anchor="middle" dominant-baseline="central">C</text></g></svg>
|
package/media/delay.svg
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 96 48" width="96" height="48" role="img" aria-label="Delay"><rect x="0" y="0" width="96" height="48" rx="6" fill="#f8fafc" stroke="#e2e8f0"/><path d="M5.59 38.93 L33.41 38.93" fill="none" stroke="#1e293b" stroke-width="1.25" stroke-linejoin="round" stroke-linecap="round"/><path d="M45.62 38.93 L73.45 38.93" fill="none" stroke="#1e293b" stroke-width="1.25" stroke-linejoin="round" stroke-linecap="round"/><path d="M13.73 43.00 L5.59 38.93 L13.73 34.86" fill="none" stroke="#1e293b" stroke-width="1.25" stroke-linejoin="round" stroke-linecap="round"/><path d="M73.45 38.93 L75.11 38.85 L76.76 38.60 L78.37 38.20 L79.94 37.64 L81.44 36.93 L82.87 36.07 L84.21 35.08 L85.44 33.96 L86.56 32.73 L87.55 31.39 L88.41 29.96 L89.12 28.46 L89.68 26.89 L90.09 25.28 L90.33 23.63 L90.41 21.96 L90.33 20.30 L90.09 18.65 L89.68 17.04 L89.12 15.47 L88.41 13.97 L87.55 12.54 L86.56 11.20 L85.44 9.97 L84.21 8.85 L82.87 7.86 L81.44 7.00 L79.94 6.29 L78.37 5.73 L76.76 5.33 L75.11 5.08 L73.45 5.00" fill="none" stroke="#1e293b" stroke-width="1.25" stroke-linejoin="round" stroke-linecap="round"/><text x="39.51785714285714" y="38.92857142857143" fill="#1e293b" font-size="11" font-weight="600" text-anchor="middle" dominant-baseline="central"
|
|
1
|
+
<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 96 48" width="96" height="48" role="img" aria-label="Delay"><rect x="0" y="0" width="96" height="48" rx="6" fill="#f8fafc" stroke="#e2e8f0"/><path d="M5.59 38.93 L33.41 38.93" fill="none" stroke="#1e293b" stroke-width="1.25" stroke-linejoin="round" stroke-linecap="round"/><path d="M45.62 38.93 L73.45 38.93" fill="none" stroke="#1e293b" stroke-width="1.25" stroke-linejoin="round" stroke-linecap="round"/><path d="M13.73 43.00 L5.59 38.93 L13.73 34.86" fill="none" stroke="#1e293b" stroke-width="1.25" stroke-linejoin="round" stroke-linecap="round"/><path d="M73.45 38.93 L75.11 38.85 L76.76 38.60 L78.37 38.20 L79.94 37.64 L81.44 36.93 L82.87 36.07 L84.21 35.08 L85.44 33.96 L86.56 32.73 L87.55 31.39 L88.41 29.96 L89.12 28.46 L89.68 26.89 L90.09 25.28 L90.33 23.63 L90.41 21.96 L90.33 20.30 L90.09 18.65 L89.68 17.04 L89.12 15.47 L88.41 13.97 L87.55 12.54 L86.56 11.20 L85.44 9.97 L84.21 8.85 L82.87 7.86 L81.44 7.00 L79.94 6.29 L78.37 5.73 L76.76 5.33 L75.11 5.08 L73.45 5.00" fill="none" stroke="#1e293b" stroke-width="1.25" stroke-linejoin="round" stroke-linecap="round"/><g transform="rotate(0.000 39.518 38.929)"><text x="39.51785714285714" y="38.92857142857143" fill="#1e293b" font-family="sans-serif" font-size="11" font-weight="600" text-anchor="middle" dominant-baseline="central">D</text></g></svg>
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 96 48" width="96" height="48" role="img" aria-label="Direction of Attack — Airborne/Aviation"><rect x="0" y="0" width="96" height="48" rx="6" fill="#f8fafc" stroke="#e2e8f0"/><path d="M5.00 20.79 L29.36 20.79" fill="none" stroke="#1e293b" stroke-width="1.25" stroke-linejoin="round" stroke-linecap="round"/><path d="M37.96 20.79 L53.07 20.79" fill="none" stroke="#1e293b" stroke-width="1.25" stroke-linejoin="round" stroke-linecap="round"/><path d="M71.61 20.79 L91.00 20.79" fill="none" stroke="#1e293b" stroke-width="1.25" stroke-linejoin="round" stroke-linecap="round"/><path d="M80.68 14.85 L91.00 20.79 L80.68 26.72" fill="none" stroke="#1e293b" stroke-width="1.25" stroke-linejoin="round" stroke-linecap="round"/><path d="M29.36 18.64 L29.36 22.94 L37.96 18.64 L37.96 22.94 L29.36 18.64" fill="none" stroke="#1e293b" stroke-width="1.25" stroke-linejoin="round" stroke-linecap="round"/><g transform="rotate(0.000 62.336 20.788)"><text x="62.3362" y="20.7879" fill="#1e293b" font-family="sans-serif" font-size="6.180380883938196" font-weight="600" text-anchor="middle" dominant-baseline="central">AVON</text></g><g transform="rotate(0.000 62.336 26.971)"><text x="62.3362" y="26.9713" fill="#1e293b" font-family="sans-serif" font-size="4.423963133640553" font-weight="600" text-anchor="middle" dominant-baseline="central">080400ZOCT2008</text></g><g transform="rotate(0.000 62.336 33.146)"><text x="62.3362" y="33.146100000000004" fill="#1e293b" font-family="sans-serif" font-size="4.423963133640553" font-weight="600" text-anchor="middle" dominant-baseline="central">120300ZOCT2008</text></g></svg>
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 96 48" width="96" height="48" role="img" aria-label="Direction of Main Attack"><rect x="0" y="0" width="96" height="48" rx="6" fill="#f8fafc" stroke="#e2e8f0"/><path d="M5.00 21.68 L38.73 21.68" fill="none" stroke="#1e293b" stroke-width="1.25" stroke-linejoin="round" stroke-linecap="round"/><path d="M57.27 21.68 L87.90 21.68" fill="none" stroke="#1e293b" stroke-width="1.25" stroke-linejoin="round" stroke-linecap="round"/><path d="M77.58 15.74 L87.90 21.68 L77.58 27.61 L77.58 29.39 L91.00 21.68 L77.58 13.96 L77.58 15.74" fill="none" stroke="#1e293b" stroke-width="1.25" stroke-linejoin="round" stroke-linecap="round"/><g transform="rotate(0.000 48.000 21.678)"><text x="48" y="21.677999999999997" fill="#1e293b" font-family="sans-serif" font-size="6.180380883938196" font-weight="600" text-anchor="middle" dominant-baseline="central">MAIN</text></g><g transform="rotate(0.000 48.000 27.861)"><text x="48" y="27.8614" fill="#1e293b" font-family="sans-serif" font-size="4.423963133640553" font-weight="600" text-anchor="middle" dominant-baseline="central">080400ZOCT2008</text></g><g transform="rotate(0.000 48.000 34.036)"><text x="48" y="34.0362" fill="#1e293b" font-family="sans-serif" font-size="4.423963133640553" font-weight="600" text-anchor="middle" dominant-baseline="central">120300ZOCT2008</text></g></svg>
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 96 48" width="96" height="48" role="img" aria-label="Direction of Supporting Attack"><rect x="0" y="0" width="96" height="48" rx="6" fill="#f8fafc" stroke="#e2e8f0"/><path d="M5.00 20.79 L38.73 20.79" fill="none" stroke="#1e293b" stroke-width="1.25" stroke-linejoin="round" stroke-linecap="round"/><path d="M57.27 20.79 L91.00 20.79" fill="none" stroke="#1e293b" stroke-width="1.25" stroke-linejoin="round" stroke-linecap="round"/><path d="M80.68 14.85 L91.00 20.79 L80.68 26.72" fill="none" stroke="#1e293b" stroke-width="1.25" stroke-linejoin="round" stroke-linecap="round"/><g transform="rotate(0.000 48.000 20.788)"><text x="48" y="20.7879" fill="#1e293b" font-family="sans-serif" font-size="6.180380883938196" font-weight="600" text-anchor="middle" dominant-baseline="central">YALU</text></g><g transform="rotate(0.000 48.000 26.971)"><text x="48" y="26.9713" fill="#1e293b" font-family="sans-serif" font-size="4.423963133640553" font-weight="600" text-anchor="middle" dominant-baseline="central">080400ZOCT2008</text></g><g transform="rotate(0.000 48.000 33.146)"><text x="48" y="33.146100000000004" fill="#1e293b" font-family="sans-serif" font-size="4.423963133640553" font-weight="600" text-anchor="middle" dominant-baseline="central">120300ZOCT2008</text></g></svg>
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 96 48" width="96" height="48" role="img" aria-label="Drop zone"><rect x="0" y="0" width="96" height="48" rx="6" fill="#f8fafc" stroke="#e2e8f0"/><path d="M10.00 43.00 L86.00 43.00 L86.00 5.00 L10.00 5.00 L10.00 43.00 Z" fill="#1e293b" fill-opacity="0" stroke="#1e293b" stroke-width="1.25" stroke-linejoin="round"/><g transform="rotate(0.000 48.000 24.000)"><text x="48" y="24" fill="#1e293b" font-family="sans-serif" font-size="6.554078332734459" font-weight="600" text-anchor="middle" dominant-baseline="central">DZ HAWK</text></g></svg>
|
package/media/encirclement.svg
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 96 48" width="96" height="48" role="img" aria-label="Encirclement"><rect x="0" y="0" width="96" height="48" rx="6" fill="#f8fafc" stroke="#e2e8f0"/><path d="M30.33 32.84 L30.69 33.55 L31.12 34.20 L31.61 34.79 L32.15 35.33 L32.74 35.83 L33.37 36.27 L34.04 36.67 L34.75 37.03 L35.48 37.36 L36.23 37.66 L37.00 37.93 L37.78 38.18 L38.57 38.41 L39.37 38.62 L40.15 38.83 L40.93 39.02 L41.72 39.20 L42.55 39.36 L43.41 39.49 L44.30 39.60 L45.21 39.68 L46.13 39.74 L47.06 39.78 L48.00 39.79 L48.94 39.78 L49.87 39.74 L50.79 39.68 L51.70 39.60 L52.59 39.49 L53.45 39.36 L54.28 39.20 L55.07 39.02 L55.85 38.83 L56.63 38.62 L57.43 38.41 L58.22 38.18 L59.00 37.93 L59.77 37.66 L60.52 37.36 L61.25 37.03 L61.96 36.67 L62.63 36.27 L63.26 35.83 L63.85 35.33 L64.39 34.79 L64.88 34.20 L65.31 33.55 L65.67 32.84 L65.98 32.03 L66.25 31.10 L66.48 30.07 L66.66 28.95 L66.81 27.77 L66.92 26.54 L66.
|
|
1
|
+
<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 96 48" width="96" height="48" role="img" aria-label="Encirclement"><rect x="0" y="0" width="96" height="48" rx="6" fill="#f8fafc" stroke="#e2e8f0"/><path d="M30.33 32.84 L30.69 33.55 L31.12 34.20 L31.61 34.79 L32.15 35.33 L32.74 35.83 L33.37 36.27 L34.04 36.67 L34.75 37.03 L35.48 37.36 L36.23 37.66 L37.00 37.93 L37.78 38.18 L38.57 38.41 L39.37 38.62 L40.15 38.83 L40.93 39.02 L41.72 39.20 L42.55 39.36 L43.41 39.49 L44.30 39.60 L45.21 39.68 L46.13 39.74 L47.06 39.78 L48.00 39.79 L48.94 39.78 L49.87 39.74 L50.79 39.68 L51.70 39.60 L52.59 39.49 L53.45 39.36 L54.28 39.20 L55.07 39.02 L55.85 38.83 L56.63 38.62 L57.43 38.41 L58.22 38.18 L59.00 37.93 L59.77 37.66 L60.52 37.36 L61.25 37.03 L61.96 36.67 L62.63 36.27 L63.26 35.83 L63.85 35.33 L64.39 34.79 L64.88 34.20 L65.31 33.55 L65.67 32.84 L65.98 32.03 L66.25 31.10 L66.48 30.07 L66.66 28.95 L66.81 27.77 L66.92 26.54 L66.98 25.28 L67.00 24.00 L66.98 22.72 L66.92 21.46 L66.81 20.23 L66.66 19.05 L66.48 17.93 L66.25 16.90 L65.98 15.97 L65.67 15.16 L65.31 14.45 L64.88 13.80 L64.39 13.21 L63.85 12.67 L63.26 12.17 L62.63 11.73 L61.96 11.33 L61.25 10.97 L60.52 10.64 L59.77 10.34 L59.00 10.07 L58.22 9.82 L57.43 9.59 L56.63 9.38 L55.85 9.17 L55.07 8.98 L54.28 8.80 L53.45 8.64 L52.59 8.51 L51.70 8.40 L50.79 8.32 L49.87 8.26 L48.94 8.22 L48.00 8.21 L47.06 8.22 L46.13 8.26 L45.21 8.32 L44.30 8.40 L43.41 8.51 L42.55 8.64 L41.72 8.80 L40.93 8.98 L40.15 9.17 L39.37 9.38 L38.57 9.59 L37.78 9.82 L37.00 10.07 L36.23 10.34 L35.48 10.64 L34.75 10.97 L34.04 11.33 L33.37 11.73 L32.74 12.17 L32.15 12.67 L31.61 13.21 L31.12 13.80 L30.69 14.45 L30.33 15.16 L30.02 15.97 L29.75 16.90 L29.52 17.93 L29.34 19.05 L29.19 20.23 L29.08 21.46 L29.02 22.72 L29.00 24.00 L29.02 25.28 L29.08 26.54 L29.19 27.77 L29.34 28.95 L29.52 30.07 L29.75 31.10 L30.02 32.03 L30.33 32.84 Z" fill="#1e293b" fill-opacity="0" stroke="#1e293b" stroke-width="1.25" stroke-linejoin="round"/><path d="M29.81 31.29 L27.43 34.32 L31.15 34.24" fill="none" stroke="#1e293b" stroke-width="1.25" stroke-linejoin="round" stroke-linecap="round"/><path d="M34.18 36.74 L34.45 40.46 L37.18 37.98" fill="none" stroke="#1e293b" stroke-width="1.25" stroke-linejoin="round" stroke-linecap="round"/><path d="M40.99 39.03 L42.09 42.58 L44.20 39.59" fill="none" stroke="#1e293b" stroke-width="1.25" stroke-linejoin="round" stroke-linecap="round"/><path d="M48.15 39.79 L49.90 43.00 L51.40 39.63" fill="none" stroke="#1e293b" stroke-width="1.25" stroke-linejoin="round" stroke-linecap="round"/><path d="M55.29 38.96 L57.72 41.70 L58.43 38.11" fill="none" stroke="#1e293b" stroke-width="1.25" stroke-linejoin="round" stroke-linecap="round"/><path d="M62.08 36.60 L65.51 38.19 L64.59 34.55" fill="none" stroke="#1e293b" stroke-width="1.25" stroke-linejoin="round" stroke-linecap="round"/><path d="M66.27 31.01 L69.80 29.95 L66.81 27.80" fill="none" stroke="#1e293b" stroke-width="1.25" stroke-linejoin="round" stroke-linecap="round"/><path d="M66.99 23.85 L70.20 22.07 L66.84 20.60" fill="none" stroke="#1e293b" stroke-width="1.25" stroke-linejoin="round" stroke-linecap="round"/><path d="M66.19 16.71 L68.57 13.68 L64.85 13.76" fill="none" stroke="#1e293b" stroke-width="1.25" stroke-linejoin="round" stroke-linecap="round"/><path d="M61.82 11.26 L61.55 7.54 L58.82 10.02" fill="none" stroke="#1e293b" stroke-width="1.25" stroke-linejoin="round" stroke-linecap="round"/><path d="M55.01 8.97 L53.91 5.42 L51.80 8.41" fill="none" stroke="#1e293b" stroke-width="1.25" stroke-linejoin="round" stroke-linecap="round"/><path d="M47.85 8.21 L46.10 5.00 L44.60 8.37" fill="none" stroke="#1e293b" stroke-width="1.25" stroke-linejoin="round" stroke-linecap="round"/><path d="M40.71 9.04 L38.28 6.30 L37.57 9.89" fill="none" stroke="#1e293b" stroke-width="1.25" stroke-linejoin="round" stroke-linecap="round"/><path d="M33.92 11.40 L30.49 9.81 L31.41 13.45" fill="none" stroke="#1e293b" stroke-width="1.25" stroke-linejoin="round" stroke-linecap="round"/><path d="M29.73 16.99 L26.20 18.05 L29.19 20.20" fill="none" stroke="#1e293b" stroke-width="1.25" stroke-linejoin="round" stroke-linecap="round"/><path d="M29.01 24.15 L25.80 25.93 L29.16 27.40" fill="none" stroke="#1e293b" stroke-width="1.25" stroke-linejoin="round" stroke-linecap="round"/></svg>
|
|
@@ -1 +1 @@
|
|
|
1
|
-
<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 96 48" width="96" height="48" role="img" aria-label="Engineer work line"><rect x="0" y="0" width="96" height="48" rx="6" fill="#f8fafc" stroke="#e2e8f0"/><path d="M5.00 24.00 L91.00 24.00" fill="none" stroke="#1e293b" stroke-width="1.25" stroke-linejoin="round" stroke-linecap="round"/><text x="7.2256800000000005" y="19.54864" fill="#1e293b" font-size="7.416457060725835" font-weight="600" text-anchor="start" dominant-baseline="central" transform="rotate(0.000
|
|
1
|
+
<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 96 48" width="96" height="48" role="img" aria-label="Engineer work line"><rect x="0" y="0" width="96" height="48" rx="6" fill="#f8fafc" stroke="#e2e8f0"/><path d="M5.00 24.00 L91.00 24.00" fill="none" stroke="#1e293b" stroke-width="1.25" stroke-linejoin="round" stroke-linecap="round"/><g transform="rotate(0.000 7.226 19.549)"><text x="7.2256800000000005" y="19.54864" fill="#1e293b" font-family="sans-serif" font-size="7.416457060725835" font-weight="600" text-anchor="start" dominant-baseline="central">EWL</text></g><g transform="rotate(0.000 88.774 19.549)"><text x="88.77432" y="19.54864" fill="#1e293b" font-family="sans-serif" font-size="7.416457060725835" font-weight="600" text-anchor="end" dominant-baseline="central">EWL</text></g><g transform="rotate(0.000 48.000 18.809)"><text x="48" y="18.80904" fill="#1e293b" font-family="sans-serif" font-size="7.416457060725835" font-weight="600" text-anchor="middle" dominant-baseline="central">2BN</text></g><g transform="rotate(0.000 48.000 29.191)"><text x="48" y="29.190959999999997" fill="#1e293b" font-family="sans-serif" font-size="7.416457060725835" font-weight="600" text-anchor="middle" dominant-baseline="central">3BN</text></g></svg>
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 96 48" width="96" height="48" role="img" aria-label="Extraction zone"><rect x="0" y="0" width="96" height="48" rx="6" fill="#f8fafc" stroke="#e2e8f0"/><path d="M10.00 43.00 L86.00 43.00 L86.00 5.00 L10.00 5.00 L10.00 43.00 Z" fill="#1e293b" fill-opacity="0" stroke="#1e293b" stroke-width="1.25" stroke-linejoin="round"/><g transform="rotate(0.000 48.000 24.000)"><text x="48" y="24" fill="#1e293b" font-family="sans-serif" font-size="6.554078332734459" font-weight="600" text-anchor="middle" dominant-baseline="central">EZ ROCK</text></g></svg>
|
package/media/fortified-area.svg
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 96 48" width="96" height="48" role="img" aria-label="Fortified Area"><rect x="0" y="0" width="96" height="48" rx="6" fill="#f8fafc" stroke="#e2e8f0"/><path d="M10.00 43.00 L11.73 43.00 L11.73 39.59 L15.18 39.59 L15.18 43.00 L16.91 43.00 L18.63 43.00 L18.63 39.59 L22.09 39.59 L22.09 43.00 L23.82 43.00 L25.54 43.00 L25.54 39.59 L29.00 39.59 L29.00 43.00 L30.73 43.00 L32.46 43.00 L32.46 39.59 L35.91 39.59 L35.91 43.00 L37.63 43.00 L39.37 43.00 L39.37 39.59 L42.82 39.59 L42.82 43.00 L44.54 43.00 L46.27 43.00 L46.27 39.59 L49.73 39.59 L49.73 43.00 L51.46 43.00 L53.18 43.00 L53.18 39.59 L56.63 39.59 L56.63 43.00 L58.37 43.00 L60.09 43.00 L60.09 39.59 L63.54 39.59 L63.54 43.00 L65.27 43.00 L67.00 43.00 L67.00 39.59 L70.46 39.59 L70.46 43.00 L72.18 43.00 L73.91 43.00 L73.91 39.59 L77.37 39.59 L77.37 43.00 L79.09 43.00 L80.82 43.00 L80.82 39.59 L84.27 39.59 L84.27 43.00 L86.00 43.00 L86.00 41.42 L82.59 41.42 L82.59 38.25 L86.00 38.25 L86.00 36.67 L86.00 35.08 L82.59 35.08 L82.59 31.92 L86.00 31.92 L86.00 30.33 L86.00 28.75 L82.59 28.75 L82.59 25.58 L86.00 25.58 L86.00 24.00 L86.00 22.42 L82.59 22.42 L82.59 19.25 L86.00 19.25 L86.00 17.67 L86.00 16.08 L82.59 16.08 L82.59 12.92 L86.00 12.92 L86.00 11.33 L86.00 9.75 L82.59 9.75 L82.59 6.58 L86.00 6.58 L86.00 5.00 L84.27 5.00 L84.27 8.41 L80.82 8.41 L80.82 5.00 L79.09 5.00 L77.37 5.00 L77.37 8.41 L73.91 8.41 L73.91 5.00 L72.18 5.00 L70.46 5.00 L70.46 8.41 L67.00 8.41 L67.00 5.00 L65.27 5.00 L63.54 5.00 L63.54 8.41 L60.09 8.41 L60.09 5.00 L58.37 5.00 L56.63 5.00 L56.63 8.41 L53.18 8.41 L53.18 5.00 L51.46 5.00 L49.73 5.00 L49.73 8.41 L46.27 8.41 L46.27 5.00 L44.54 5.00 L42.82 5.00 L42.82 8.41 L39.37 8.41 L39.37 5.00 L37.63 5.00 L35.91 5.00 L35.91 8.41 L32.46 8.41 L32.46 5.00 L30.73 5.00 L29.00 5.00 L29.00 8.41 L25.54 8.41 L25.54 5.00 L23.82 5.00 L22.09 5.00 L22.09 8.41 L18.63 8.41 L18.63 5.00 L16.91 5.00 L15.18 5.00 L15.18 8.41 L11.73 8.41 L11.73 5.00 L10.00 5.00 L10.00 6.58 L13.41 6.58 L13.41 9.75 L10.00 9.75 L10.00 11.33 L10.00 12.92 L13.41 12.92 L13.41 16.08 L10.00 16.08 L10.00 17.67 L10.00 19.25 L13.41 19.25 L13.41 22.42 L10.00 22.42 L10.00 24.00 L10.00 25.58 L13.41 25.58 L13.41 28.75 L10.00 28.75 L10.00 30.33 L10.00 31.92 L13.41 31.92 L13.41 35.08 L10.00 35.08 L10.00 36.67 L10.00 38.25 L13.41 38.25 L13.41 41.42 L10.00 41.42 L10.00 43.00 Z" fill="#1e293b" fill-opacity="0" stroke="#1e293b" stroke-width="1.25" stroke-linejoin="round"/><text x="48" y="24" fill="#1e293b" font-size="6.554078332734459" font-weight="600" text-anchor="middle" dominant-baseline="central"
|
|
1
|
+
<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 96 48" width="96" height="48" role="img" aria-label="Fortified Area"><rect x="0" y="0" width="96" height="48" rx="6" fill="#f8fafc" stroke="#e2e8f0"/><path d="M10.00 43.00 L11.73 43.00 L11.73 39.59 L15.18 39.59 L15.18 43.00 L16.91 43.00 L18.63 43.00 L18.63 39.59 L22.09 39.59 L22.09 43.00 L23.82 43.00 L25.54 43.00 L25.54 39.59 L29.00 39.59 L29.00 43.00 L30.73 43.00 L32.46 43.00 L32.46 39.59 L35.91 39.59 L35.91 43.00 L37.63 43.00 L39.37 43.00 L39.37 39.59 L42.82 39.59 L42.82 43.00 L44.54 43.00 L46.27 43.00 L46.27 39.59 L49.73 39.59 L49.73 43.00 L51.46 43.00 L53.18 43.00 L53.18 39.59 L56.63 39.59 L56.63 43.00 L58.37 43.00 L60.09 43.00 L60.09 39.59 L63.54 39.59 L63.54 43.00 L65.27 43.00 L67.00 43.00 L67.00 39.59 L70.46 39.59 L70.46 43.00 L72.18 43.00 L73.91 43.00 L73.91 39.59 L77.37 39.59 L77.37 43.00 L79.09 43.00 L80.82 43.00 L80.82 39.59 L84.27 39.59 L84.27 43.00 L86.00 43.00 L86.00 41.42 L82.59 41.42 L82.59 38.25 L86.00 38.25 L86.00 36.67 L86.00 35.08 L82.59 35.08 L82.59 31.92 L86.00 31.92 L86.00 30.33 L86.00 28.75 L82.59 28.75 L82.59 25.58 L86.00 25.58 L86.00 24.00 L86.00 22.42 L82.59 22.42 L82.59 19.25 L86.00 19.25 L86.00 17.67 L86.00 16.08 L82.59 16.08 L82.59 12.92 L86.00 12.92 L86.00 11.33 L86.00 9.75 L82.59 9.75 L82.59 6.58 L86.00 6.58 L86.00 5.00 L84.27 5.00 L84.27 8.41 L80.82 8.41 L80.82 5.00 L79.09 5.00 L77.37 5.00 L77.37 8.41 L73.91 8.41 L73.91 5.00 L72.18 5.00 L70.46 5.00 L70.46 8.41 L67.00 8.41 L67.00 5.00 L65.27 5.00 L63.54 5.00 L63.54 8.41 L60.09 8.41 L60.09 5.00 L58.37 5.00 L56.63 5.00 L56.63 8.41 L53.18 8.41 L53.18 5.00 L51.46 5.00 L49.73 5.00 L49.73 8.41 L46.27 8.41 L46.27 5.00 L44.54 5.00 L42.82 5.00 L42.82 8.41 L39.37 8.41 L39.37 5.00 L37.63 5.00 L35.91 5.00 L35.91 8.41 L32.46 8.41 L32.46 5.00 L30.73 5.00 L29.00 5.00 L29.00 8.41 L25.54 8.41 L25.54 5.00 L23.82 5.00 L22.09 5.00 L22.09 8.41 L18.63 8.41 L18.63 5.00 L16.91 5.00 L15.18 5.00 L15.18 8.41 L11.73 8.41 L11.73 5.00 L10.00 5.00 L10.00 6.58 L13.41 6.58 L13.41 9.75 L10.00 9.75 L10.00 11.33 L10.00 12.92 L13.41 12.92 L13.41 16.08 L10.00 16.08 L10.00 17.67 L10.00 19.25 L13.41 19.25 L13.41 22.42 L10.00 22.42 L10.00 24.00 L10.00 25.58 L13.41 25.58 L13.41 28.75 L10.00 28.75 L10.00 30.33 L10.00 31.92 L13.41 31.92 L13.41 35.08 L10.00 35.08 L10.00 36.67 L10.00 38.25 L13.41 38.25 L13.41 41.42 L10.00 41.42 L10.00 43.00 Z" fill="#1e293b" fill-opacity="0" stroke="#1e293b" stroke-width="1.25" stroke-linejoin="round"/><g transform="rotate(0.000 48.000 24.000)"><text x="48" y="24" fill="#1e293b" font-family="sans-serif" font-size="6.554078332734459" font-weight="600" text-anchor="middle" dominant-baseline="central">TANGO</text></g></svg>
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 96 48" width="96" height="48" role="img" aria-label="Frontal Attack"><rect x="0" y="0" width="96" height="48" rx="6" fill="#f8fafc" stroke="#e2e8f0"/><path d="M22.92 29.72 L36.71 19.38 L59.32 13.72 L57.98 8.36 L69.39 19.76 L64.69 35.20 L63.35 29.83 L43.99 34.67 L32.89 43.00" fill="none" stroke="#1e293b" stroke-width="1.25" stroke-linejoin="round" stroke-linecap="round"/><path d="M65.70 5.00 L73.08 34.53" fill="none" stroke="#1e293b" stroke-width="1.25" stroke-linejoin="round" stroke-linecap="round"/><g transform="rotate(-345.964 65.762 20.669)"><text x="65.76168122270742" y="20.66877729257642" fill="#1e293b" font-family="sans-serif" font-size="2.9812947292278293" font-weight="600" text-anchor="middle" dominant-baseline="central">A</text></g><g transform="rotate(-323.130 35.341 30.779)"><text x="35.34093886462882" y="30.778602620087334" fill="#1e293b" font-family="sans-serif" font-size="2.9812947292278293" font-weight="600" text-anchor="middle" dominant-baseline="central">FOX</text></g><g transform="rotate(-345.964 47.226 23.614)"><text x="47.22631004366812" y="23.61419213973799" fill="#1e293b" font-family="sans-serif" font-size="2.9812947292278293" font-weight="600" text-anchor="middle" dominant-baseline="central">080400Z</text></g><g transform="rotate(-345.964 48.023 26.796)"><text x="48.02281659388646" y="26.796069868995634" fill="#1e293b" font-family="sans-serif" font-size="2.9812947292278293" font-weight="600" text-anchor="middle" dominant-baseline="central">120300Z</text></g></svg>
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 96 48" width="96" height="48" role="img" aria-label="Generic command and control area"><rect x="0" y="0" width="96" height="48" rx="6" fill="#f8fafc" stroke="#e2e8f0"/><path d="M10.00 43.00 L86.00 43.00 L86.00 5.00 L10.00 5.00 L10.00 43.00 Z" fill="#1e293b" fill-opacity="0" stroke="#1e293b" stroke-width="1.25" stroke-linejoin="round"/><g transform="rotate(0.000 48.000 24.000)"><text x="48" y="24" fill="#1e293b" font-family="sans-serif" font-size="6.193548387096775" font-weight="600" text-anchor="middle" dominant-baseline="central">RIOT FOODS</text></g></svg>
|
|
@@ -1 +1 @@
|
|
|
1
|
-
<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 96 48" width="96" height="48" role="img" aria-label="Generic command and control line"><rect x="0" y="0" width="96" height="48" rx="6" fill="#f8fafc" stroke="#e2e8f0"/><path d="M5.00 24.00 L91.00 24.00" fill="none" stroke="#1e293b" stroke-width="1.25" stroke-linejoin="round" stroke-linecap="round"/><text x="7.2256800000000005" y="19.54864" fill="#1e293b" font-size="7.416457060725835" font-weight="600" text-anchor="start" dominant-baseline="central" transform="rotate(0.000 7.226
|
|
1
|
+
<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 96 48" width="96" height="48" role="img" aria-label="Generic command and control line"><rect x="0" y="0" width="96" height="48" rx="6" fill="#f8fafc" stroke="#e2e8f0"/><path d="M5.00 24.00 L91.00 24.00" fill="none" stroke="#1e293b" stroke-width="1.25" stroke-linejoin="round" stroke-linecap="round"/><g transform="rotate(0.000 7.226 19.549)"><text x="7.2256800000000005" y="19.54864" fill="#1e293b" font-family="sans-serif" font-size="7.416457060725835" font-weight="600" text-anchor="start" dominant-baseline="central"><H> <T></text></g><g transform="rotate(0.000 7.226 28.451)"><text x="7.2256800000000005" y="28.45136" fill="#1e293b" font-family="sans-serif" font-size="6.193548387096775" font-weight="600" text-anchor="start" dominant-baseline="central"><W> - <W1></text></g><g transform="rotate(0.000 88.774 19.549)"><text x="88.77432" y="19.54864" fill="#1e293b" font-family="sans-serif" font-size="7.416457060725835" font-weight="600" text-anchor="end" dominant-baseline="central"><H> <T></text></g><g transform="rotate(0.000 88.774 28.451)"><text x="88.77432" y="28.45136" fill="#1e293b" font-family="sans-serif" font-size="6.193548387096775" font-weight="600" text-anchor="end" dominant-baseline="central"><W> - <W1></text></g></svg>
|
package/media/guard.svg
ADDED
|
@@ -0,0 +1 @@
|
|
|
1
|
+
<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 96 48" width="96" height="48" role="img" aria-label="Guard"><rect x="0" y="0" width="96" height="48" rx="6" fill="#f8fafc" stroke="#e2e8f0"/><path d="M35.10 24.00 L18.55 26.11 L21.55 21.89 L5.00 24.00" fill="none" stroke="#1e293b" stroke-width="1.25" stroke-linejoin="round" stroke-linecap="round"/><path d="M8.61 25.81 L5.00 24.00 L8.61 22.19" fill="none" stroke="#1e293b" stroke-width="1.25" stroke-linejoin="round" stroke-linecap="round"/><path d="M60.90 24.00 L77.45 21.89 L74.45 26.11 L91.00 24.00" fill="none" stroke="#1e293b" stroke-width="1.25" stroke-linejoin="round" stroke-linecap="round"/><path d="M87.39 22.19 L91.00 24.00 L87.39 25.81" fill="none" stroke="#1e293b" stroke-width="1.25" stroke-linejoin="round" stroke-linecap="round"/><g transform="rotate(0.000 40.260 24.000)"><text x="40.260000000000005" y="24" fill="#1e293b" font-family="sans-serif" font-size="6.952928494430471" font-weight="600" text-anchor="middle" dominant-baseline="central">G</text></g><g transform="rotate(0.000 55.740 24.000)"><text x="55.74" y="24" fill="#1e293b" font-family="sans-serif" font-size="6.952928494430471" font-weight="600" text-anchor="middle" dominant-baseline="central">G</text></g></svg>
|