@camstack/types 1.2.408 → 1.2.410
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/dist/capabilities/display-palette.cap.d.ts +90 -0
- package/dist/capabilities/index.d.ts +3 -1
- package/dist/catalogs/display-palette-tables.d.ts +169 -0
- package/dist/catalogs/display-palette.d.ts +171 -0
- package/dist/catalogs/event-taxonomy.d.ts +3 -14
- package/dist/catalogs/palette-cie.d.ts +29 -0
- package/dist/catalogs/palette-entries.d.ts +15 -0
- package/dist/catalogs/palette-legend.d.ts +13 -0
- package/dist/client.js +437 -69
- package/dist/client.mjs +437 -69
- package/dist/ffmpeg/fmp4-box-splitter.d.ts +1 -1
- package/dist/generated/addon-api.d.ts +27 -0
- package/dist/generated/capability-router-map.d.ts +5 -2
- package/dist/generated/method-access-map.d.ts +1 -1
- package/dist/generated/system-proxy.d.ts +2 -0
- package/dist/index.d.ts +4 -1
- package/dist/index.js +877 -75
- package/dist/index.mjs +852 -75
- package/dist/node.js +1 -1
- package/dist/node.mjs +1 -1
- package/package.json +1 -1
package/dist/client.js
CHANGED
|
@@ -21868,6 +21868,390 @@ var _macroLookup = /* @__PURE__ */ new Map();
|
|
|
21868
21868
|
for (const [k, v] of Object.entries(YAMNET_TO_MACRO.mapping)) _macroLookup.set(k.toLowerCase(), v);
|
|
21869
21869
|
for (const [k, v] of Object.entries(APPLE_SA_TO_MACRO.mapping)) _macroLookup.set(k.toLowerCase(), v);
|
|
21870
21870
|
//#endregion
|
|
21871
|
+
//#region src/catalogs/palette-entries.ts
|
|
21872
|
+
/**
|
|
21873
|
+
* Palette entry ids (D939). Audio is the one gradient; `audio-*` leaves are
|
|
21874
|
+
* not entries. `heatmapScrub` is a mark, not an event kind.
|
|
21875
|
+
*/
|
|
21876
|
+
var PALETTE_ENTRY_IDS = [
|
|
21877
|
+
"motion",
|
|
21878
|
+
"audio",
|
|
21879
|
+
"recording",
|
|
21880
|
+
"live",
|
|
21881
|
+
"heatmapScrub",
|
|
21882
|
+
"person",
|
|
21883
|
+
"vehicle",
|
|
21884
|
+
"animal",
|
|
21885
|
+
"package",
|
|
21886
|
+
"sensor",
|
|
21887
|
+
"control",
|
|
21888
|
+
"face",
|
|
21889
|
+
"plate",
|
|
21890
|
+
"car",
|
|
21891
|
+
"truck",
|
|
21892
|
+
"bus",
|
|
21893
|
+
"motorcycle",
|
|
21894
|
+
"bicycle",
|
|
21895
|
+
"airplane",
|
|
21896
|
+
"boat",
|
|
21897
|
+
"train",
|
|
21898
|
+
"bird",
|
|
21899
|
+
"dog",
|
|
21900
|
+
"cat",
|
|
21901
|
+
"horse",
|
|
21902
|
+
"sheep",
|
|
21903
|
+
"cow",
|
|
21904
|
+
"elephant",
|
|
21905
|
+
"bear",
|
|
21906
|
+
"zebra",
|
|
21907
|
+
"giraffe",
|
|
21908
|
+
"package-delivered",
|
|
21909
|
+
"package-picked-up",
|
|
21910
|
+
"suitcase",
|
|
21911
|
+
"backpack",
|
|
21912
|
+
"handbag",
|
|
21913
|
+
"contact",
|
|
21914
|
+
"motion-sensor",
|
|
21915
|
+
"smoke",
|
|
21916
|
+
"flood",
|
|
21917
|
+
"gas",
|
|
21918
|
+
"carbon-monoxide",
|
|
21919
|
+
"vibration",
|
|
21920
|
+
"tamper",
|
|
21921
|
+
"presence",
|
|
21922
|
+
"enum-sensor",
|
|
21923
|
+
"device-event",
|
|
21924
|
+
"lock",
|
|
21925
|
+
"cover",
|
|
21926
|
+
"switch",
|
|
21927
|
+
"siren",
|
|
21928
|
+
"button",
|
|
21929
|
+
"doorbell"
|
|
21930
|
+
];
|
|
21931
|
+
var AUDIO_ENTRY_ID = "audio";
|
|
21932
|
+
/** Six rungs, quiet → loud. The opaque end is the entry's hex. */
|
|
21933
|
+
var AUDIO_GRADIENT_ALPHAS = [
|
|
21934
|
+
.3,
|
|
21935
|
+
.42,
|
|
21936
|
+
.55,
|
|
21937
|
+
.7,
|
|
21938
|
+
.85,
|
|
21939
|
+
1
|
|
21940
|
+
];
|
|
21941
|
+
var PALETTE_PRESET_IDS = [
|
|
21942
|
+
"camstack",
|
|
21943
|
+
"high-contrast",
|
|
21944
|
+
"okabe-ito"
|
|
21945
|
+
];
|
|
21946
|
+
//#endregion
|
|
21947
|
+
//#region src/catalogs/display-palette-tables.ts
|
|
21948
|
+
/** Frozen palette tables (D939). The spec refuses a table that breaks the rule. */
|
|
21949
|
+
var CAMSTACK_HEX = {
|
|
21950
|
+
motion: "#d946ef",
|
|
21951
|
+
audio: "#059eb8",
|
|
21952
|
+
recording: "#ef4444",
|
|
21953
|
+
live: "#8d7a00",
|
|
21954
|
+
heatmapScrub: "#4b32ff",
|
|
21955
|
+
person: "#11a64c",
|
|
21956
|
+
vehicle: "#3b82f6",
|
|
21957
|
+
animal: "#ea6a09",
|
|
21958
|
+
package: "#924667",
|
|
21959
|
+
sensor: "#624bbc",
|
|
21960
|
+
control: "#944d24",
|
|
21961
|
+
face: "#ed4f8d",
|
|
21962
|
+
plate: "#4b7027",
|
|
21963
|
+
car: "#9684cf",
|
|
21964
|
+
truck: "#0f9b89",
|
|
21965
|
+
bus: "#a734a9",
|
|
21966
|
+
motorcycle: "#c1133a",
|
|
21967
|
+
bicycle: "#0e6a9b",
|
|
21968
|
+
airplane: "#7c9928",
|
|
21969
|
+
boat: "#b17933",
|
|
21970
|
+
train: "#ad6ca3",
|
|
21971
|
+
bird: "#0f7c55",
|
|
21972
|
+
dog: "#c82700",
|
|
21973
|
+
cat: "#7268f2",
|
|
21974
|
+
horse: "#cb795e",
|
|
21975
|
+
sheep: "#b8636b",
|
|
21976
|
+
cow: "#cb2969",
|
|
21977
|
+
elephant: "#1158d2",
|
|
21978
|
+
bear: "#8d5e00",
|
|
21979
|
+
zebra: "#0097d6",
|
|
21980
|
+
giraffe: "#8f61bb",
|
|
21981
|
+
"package-delivered": "#cd3f9b",
|
|
21982
|
+
"package-picked-up": "#388a08",
|
|
21983
|
+
suitcase: "#666800",
|
|
21984
|
+
backpack: "#ec5022",
|
|
21985
|
+
handbag: "#a76ef8",
|
|
21986
|
+
contact: "#ab5a49",
|
|
21987
|
+
"motion-sensor": "#b95d1a",
|
|
21988
|
+
smoke: "#dd3858",
|
|
21989
|
+
flood: "#b31e7d",
|
|
21990
|
+
gas: "#5b70b5",
|
|
21991
|
+
"carbon-monoxide": "#7b4e8e",
|
|
21992
|
+
vibration: "#e65bba",
|
|
21993
|
+
tamper: "#98464b",
|
|
21994
|
+
presence: "#3a9468",
|
|
21995
|
+
"enum-sensor": "#7885f8",
|
|
21996
|
+
"device-event": "#8c43c8",
|
|
21997
|
+
lock: "#649653",
|
|
21998
|
+
cover: "#c67597",
|
|
21999
|
+
switch: "#7a812a",
|
|
22000
|
+
siren: "#ac5d7f",
|
|
22001
|
+
button: "#b276cd",
|
|
22002
|
+
doorbell: "#0087ab"
|
|
22003
|
+
};
|
|
22004
|
+
var CAMSTACK_FALLBACK = [
|
|
22005
|
+
"#b34dc7",
|
|
22006
|
+
"#1d7d34",
|
|
22007
|
+
"#db6b6c",
|
|
22008
|
+
"#a43d29",
|
|
22009
|
+
"#0e6ee6",
|
|
22010
|
+
"#29a10b",
|
|
22011
|
+
"#a98731",
|
|
22012
|
+
"#0181c6"
|
|
22013
|
+
];
|
|
22014
|
+
var HIGH_CONTRAST_HEX = {
|
|
22015
|
+
motion: "#964360",
|
|
22016
|
+
audio: "#23a132",
|
|
22017
|
+
recording: "#2494ca",
|
|
22018
|
+
live: "#bd7e2b",
|
|
22019
|
+
heatmapScrub: "#ad6eea",
|
|
22020
|
+
person: "#62611e",
|
|
22021
|
+
vehicle: "#f4534c",
|
|
22022
|
+
animal: "#1556cd",
|
|
22023
|
+
package: "#9c4415",
|
|
22024
|
+
sensor: "#066c48",
|
|
22025
|
+
control: "#f2479f",
|
|
22026
|
+
face: "#139d8a",
|
|
22027
|
+
plate: "#909024",
|
|
22028
|
+
car: "#8e35ab",
|
|
22029
|
+
truck: "#bd0b2b",
|
|
22030
|
+
bus: "#7a88ca",
|
|
22031
|
+
motorcycle: "#e26725",
|
|
22032
|
+
bicycle: "#a6679b",
|
|
22033
|
+
airplane: "#7c5720",
|
|
22034
|
+
boat: "#467a1b",
|
|
22035
|
+
train: "#6f65a4",
|
|
22036
|
+
bird: "#cb717f",
|
|
22037
|
+
dog: "#c62490",
|
|
22038
|
+
cat: "#b36850",
|
|
22039
|
+
horse: "#1872ac",
|
|
22040
|
+
sheep: "#927939",
|
|
22041
|
+
cow: "#428a5c",
|
|
22042
|
+
elephant: "#d41160",
|
|
22043
|
+
bear: "#799453",
|
|
22044
|
+
zebra: "#a85455",
|
|
22045
|
+
giraffe: "#746be8",
|
|
22046
|
+
"package-delivered": "#824a80",
|
|
22047
|
+
"package-picked-up": "#614ac1",
|
|
22048
|
+
suitcase: "#2f77f3",
|
|
22049
|
+
backpack: "#fa476d",
|
|
22050
|
+
handbag: "#c14cbe",
|
|
22051
|
+
contact: "#c83921",
|
|
22052
|
+
"motion-sensor": "#a07ebd",
|
|
22053
|
+
smoke: "#a25b13",
|
|
22054
|
+
flood: "#526bab",
|
|
22055
|
+
gas: "#924938",
|
|
22056
|
+
"carbon-monoxide": "#bb7e53",
|
|
22057
|
+
vibration: "#b66182",
|
|
22058
|
+
tamper: "#3c6931",
|
|
22059
|
+
presence: "#6c851d",
|
|
22060
|
+
"enum-sensor": "#ad2d48",
|
|
22061
|
+
"device-event": "#5e9b04",
|
|
22062
|
+
lock: "#00a062",
|
|
22063
|
+
cover: "#ad8624",
|
|
22064
|
+
switch: "#d05259",
|
|
22065
|
+
siren: "#cd67b3",
|
|
22066
|
+
button: "#c9746a",
|
|
22067
|
+
doorbell: "#338eeb"
|
|
22068
|
+
};
|
|
22069
|
+
var HIGH_CONTRAST_FALLBACK = [
|
|
22070
|
+
"#817f3b",
|
|
22071
|
+
"#a0733e",
|
|
22072
|
+
"#8658b2",
|
|
22073
|
+
"#956301",
|
|
22074
|
+
"#bc652d",
|
|
22075
|
+
"#647331",
|
|
22076
|
+
"#a14c9e",
|
|
22077
|
+
"#d14e71"
|
|
22078
|
+
];
|
|
22079
|
+
var OKABE_ITO_HEX = {
|
|
22080
|
+
motion: "#b88128",
|
|
22081
|
+
audio: "#1096c8",
|
|
22082
|
+
recording: "#009e73",
|
|
22083
|
+
live: "#9c8c22",
|
|
22084
|
+
heatmapScrub: "#0072b2",
|
|
22085
|
+
person: "#d55e00",
|
|
22086
|
+
vehicle: "#c0739f",
|
|
22087
|
+
animal: "#226d18",
|
|
22088
|
+
package: "#91446c",
|
|
22089
|
+
sensor: "#217b56",
|
|
22090
|
+
control: "#648647",
|
|
22091
|
+
face: "#c22998",
|
|
22092
|
+
plate: "#fa4575",
|
|
22093
|
+
car: "#956301",
|
|
22094
|
+
truck: "#2f77f3",
|
|
22095
|
+
bus: "#7a4e86",
|
|
22096
|
+
motorcycle: "#f54597",
|
|
22097
|
+
bicycle: "#bb3e75",
|
|
22098
|
+
airplane: "#e054c0",
|
|
22099
|
+
boat: "#457942",
|
|
22100
|
+
train: "#867afa",
|
|
22101
|
+
bird: "#88914c",
|
|
22102
|
+
dog: "#1556cd",
|
|
22103
|
+
cat: "#71702c",
|
|
22104
|
+
horse: "#9b4fa4",
|
|
22105
|
+
sheep: "#c0559d",
|
|
22106
|
+
cow: "#d14f65",
|
|
22107
|
+
elephant: "#98470f",
|
|
22108
|
+
bear: "#595896",
|
|
22109
|
+
zebra: "#96790e",
|
|
22110
|
+
giraffe: "#cb717b",
|
|
22111
|
+
"package-delivered": "#139d8a",
|
|
22112
|
+
"package-picked-up": "#906ead",
|
|
22113
|
+
suitcase: "#d02939",
|
|
22114
|
+
backpack: "#d41160",
|
|
22115
|
+
handbag: "#f64f54",
|
|
22116
|
+
contact: "#7258d2",
|
|
22117
|
+
"motion-sensor": "#b66182",
|
|
22118
|
+
smoke: "#627abb",
|
|
22119
|
+
flood: "#b86ae4",
|
|
22120
|
+
gas: "#a95261",
|
|
22121
|
+
"carbon-monoxide": "#c65d3c",
|
|
22122
|
+
vibration: "#7a40b7",
|
|
22123
|
+
tamper: "#914b34",
|
|
22124
|
+
presence: "#9481c3",
|
|
22125
|
+
"enum-sensor": "#ac6d47",
|
|
22126
|
+
"device-event": "#7b6fce",
|
|
22127
|
+
lock: "#c67662",
|
|
22128
|
+
cover: "#a6564d",
|
|
22129
|
+
switch: "#ad2c4e",
|
|
22130
|
+
siren: "#348e08",
|
|
22131
|
+
button: "#d27303",
|
|
22132
|
+
doorbell: "#55770f"
|
|
22133
|
+
};
|
|
22134
|
+
var OKABE_ITO_FALLBACK = [
|
|
22135
|
+
"#9a3784",
|
|
22136
|
+
"#a7392c",
|
|
22137
|
+
"#409d50",
|
|
22138
|
+
"#6987e7",
|
|
22139
|
+
"#ee5b3d",
|
|
22140
|
+
"#c0430d",
|
|
22141
|
+
"#af79b3",
|
|
22142
|
+
"#4b6628"
|
|
22143
|
+
];
|
|
22144
|
+
//#endregion
|
|
22145
|
+
//#region src/catalogs/display-palette.ts
|
|
22146
|
+
/**
|
|
22147
|
+
* The display palette (D939). One table of colours, three presets, one
|
|
22148
|
+
* validator. Taxonomy colours and every consumer read this — there is no
|
|
22149
|
+
* second hex table.
|
|
22150
|
+
*/
|
|
22151
|
+
var paletteHexSchema = zod.z.string().regex(/^#[0-9a-f]{6}$/);
|
|
22152
|
+
var paletteSolidSchema = zod.z.object({
|
|
22153
|
+
form: zod.z.literal("solid"),
|
|
22154
|
+
hex: paletteHexSchema
|
|
22155
|
+
});
|
|
22156
|
+
var paletteGradientSchema = zod.z.object({
|
|
22157
|
+
form: zod.z.literal("gradient"),
|
|
22158
|
+
hex: paletteHexSchema,
|
|
22159
|
+
alphas: zod.z.array(zod.z.number().gt(0).lte(1)).length(AUDIO_GRADIENT_ALPHAS.length)
|
|
22160
|
+
});
|
|
22161
|
+
var paletteSwatchSchema = zod.z.discriminatedUnion("form", [paletteSolidSchema, paletteGradientSchema]);
|
|
22162
|
+
var paletteReadySchema = zod.z.object({
|
|
22163
|
+
status: zod.z.literal("ready"),
|
|
22164
|
+
presetId: zod.z.enum(PALETTE_PRESET_IDS),
|
|
22165
|
+
customized: zod.z.boolean(),
|
|
22166
|
+
source: zod.z.enum(["stored", "unconfigured"]),
|
|
22167
|
+
swatches: zod.z.record(zod.z.string(), paletteSwatchSchema),
|
|
22168
|
+
fallbacks: zod.z.array(paletteHexSchema).length(8)
|
|
22169
|
+
});
|
|
22170
|
+
var paletteUnknownSchema = zod.z.object({
|
|
22171
|
+
status: zod.z.literal("unknown"),
|
|
22172
|
+
reason: zod.z.string()
|
|
22173
|
+
});
|
|
22174
|
+
zod.z.discriminatedUnion("status", [paletteReadySchema, paletteUnknownSchema]);
|
|
22175
|
+
zod.z.union([zod.z.object({ presetId: zod.z.string() }), zod.z.object({
|
|
22176
|
+
presetId: zod.z.string(),
|
|
22177
|
+
overrides: zod.z.record(zod.z.string(), paletteSwatchSchema)
|
|
22178
|
+
})]);
|
|
22179
|
+
zod.z.object({
|
|
22180
|
+
presetId: zod.z.string(),
|
|
22181
|
+
overrides: zod.z.record(zod.z.string(), paletteSwatchSchema)
|
|
22182
|
+
});
|
|
22183
|
+
function solid(hex) {
|
|
22184
|
+
return {
|
|
22185
|
+
form: "solid",
|
|
22186
|
+
hex
|
|
22187
|
+
};
|
|
22188
|
+
}
|
|
22189
|
+
function audioGradient(hex) {
|
|
22190
|
+
return {
|
|
22191
|
+
form: "gradient",
|
|
22192
|
+
hex,
|
|
22193
|
+
alphas: [...AUDIO_GRADIENT_ALPHAS]
|
|
22194
|
+
};
|
|
22195
|
+
}
|
|
22196
|
+
function swatchesFrom(hexes) {
|
|
22197
|
+
const out = {};
|
|
22198
|
+
for (const id of PALETTE_ENTRY_IDS) {
|
|
22199
|
+
const hex = hexes[id];
|
|
22200
|
+
if (hex === void 0) throw new Error(`palette table missing ${id}`);
|
|
22201
|
+
out[id] = id === "audio" ? audioGradient(hex) : solid(hex);
|
|
22202
|
+
}
|
|
22203
|
+
return out;
|
|
22204
|
+
}
|
|
22205
|
+
function preset(id, name, hexes, fallbacks) {
|
|
22206
|
+
return {
|
|
22207
|
+
id,
|
|
22208
|
+
name,
|
|
22209
|
+
swatches: swatchesFrom(hexes),
|
|
22210
|
+
fallbacks
|
|
22211
|
+
};
|
|
22212
|
+
}
|
|
22213
|
+
var DISPLAY_PRESETS = [
|
|
22214
|
+
preset("camstack", "CamStack", CAMSTACK_HEX, CAMSTACK_FALLBACK),
|
|
22215
|
+
preset("high-contrast", "High contrast", HIGH_CONTRAST_HEX, HIGH_CONTRAST_FALLBACK),
|
|
22216
|
+
preset("okabe-ito", "Colour-blind safe", OKABE_ITO_HEX, OKABE_ITO_FALLBACK)
|
|
22217
|
+
];
|
|
22218
|
+
function presetById(id) {
|
|
22219
|
+
return DISPLAY_PRESETS.find((item) => item.id === id);
|
|
22220
|
+
}
|
|
22221
|
+
function bundledCamstack() {
|
|
22222
|
+
const presetRow = presetById("camstack");
|
|
22223
|
+
if (presetRow === void 0) throw new Error("CamStack preset missing");
|
|
22224
|
+
return readyOf(presetRow, "unconfigured", false);
|
|
22225
|
+
}
|
|
22226
|
+
function readyOf(row, source, customized) {
|
|
22227
|
+
return {
|
|
22228
|
+
status: "ready",
|
|
22229
|
+
presetId: row.id,
|
|
22230
|
+
customized,
|
|
22231
|
+
source,
|
|
22232
|
+
swatches: row.swatches,
|
|
22233
|
+
fallbacks: [...row.fallbacks]
|
|
22234
|
+
};
|
|
22235
|
+
}
|
|
22236
|
+
function hashFallback(kind, fallbacks) {
|
|
22237
|
+
let hash = 0;
|
|
22238
|
+
for (let i = 0; i < kind.length; i++) hash = hash * 31 + (kind.codePointAt(i) ?? 0) >>> 0;
|
|
22239
|
+
const hex = fallbacks[hash % fallbacks.length];
|
|
22240
|
+
if (hex === void 0) throw new Error("display palette has no fallback colour");
|
|
22241
|
+
return hex;
|
|
22242
|
+
}
|
|
22243
|
+
/** Colour a kind paints with. Audio leaves share the audio gradient's hex. */
|
|
22244
|
+
function paintHex(swatches, fallbacks, kind) {
|
|
22245
|
+
const key = kind.trim().toLowerCase();
|
|
22246
|
+
if (key.startsWith("audio-")) {
|
|
22247
|
+
const audio = swatches[AUDIO_ENTRY_ID];
|
|
22248
|
+
return audio !== void 0 ? audio.hex : hashFallback(key, fallbacks);
|
|
22249
|
+
}
|
|
22250
|
+
const direct = swatches[key];
|
|
22251
|
+
if (direct !== void 0) return direct.hex;
|
|
22252
|
+
return hashFallback(key, fallbacks);
|
|
22253
|
+
}
|
|
22254
|
+
//#endregion
|
|
21871
22255
|
//#region src/catalogs/event-taxonomy.ts
|
|
21872
22256
|
/**
|
|
21873
22257
|
* Unified event-kind taxonomy — THE single source of truth for
|
|
@@ -21883,109 +22267,88 @@ for (const [k, v] of Object.entries(APPLE_SA_TO_MACRO.mapping)) _macroLookup.set
|
|
|
21883
22267
|
* - `addon-post-analysis/shared/frame/box-drawer.ts` (DEFAULT_COLOR)
|
|
21884
22268
|
* - the COCO / audio class maps (macro ↔ sub relationships)
|
|
21885
22269
|
*
|
|
21886
|
-
* The DATA (serializable —
|
|
21887
|
-
* `@camstack/types`.
|
|
21888
|
-
*
|
|
21889
|
-
*
|
|
21890
|
-
*
|
|
22270
|
+
* The DATA (serializable — parentKind / iconId / labelKey) lives here in
|
|
22271
|
+
* `@camstack/types`. Colour is NOT a second table: each entry's `color` is
|
|
22272
|
+
* the bundled CamStack display palette (D939). The effective cluster palette
|
|
22273
|
+
* is the `display-palette` capability. The UI-side mapping `iconId → lucide
|
|
22274
|
+
* component` and `labelKey → t()` lives in `@camstack/ui-library`.
|
|
21891
22275
|
*
|
|
21892
22276
|
* Two levels only (v1 YAGNI): macro → sub. `person` is a leaf macro.
|
|
21893
22277
|
*/
|
|
21894
|
-
var
|
|
21895
|
-
|
|
21896
|
-
|
|
21897
|
-
|
|
21898
|
-
|
|
21899
|
-
|
|
21900
|
-
|
|
21901
|
-
|
|
21902
|
-
|
|
21903
|
-
|
|
21904
|
-
};
|
|
21905
|
-
var DETECTION_SUB_COLORS = {
|
|
21906
|
-
car: "#f59e0b",
|
|
21907
|
-
truck: "#d97706",
|
|
21908
|
-
bus: "#b45309",
|
|
21909
|
-
motorcycle: "#eab308",
|
|
21910
|
-
bicycle: "#ca8a04",
|
|
21911
|
-
airplane: "#60a5fa",
|
|
21912
|
-
boat: "#2563eb",
|
|
21913
|
-
train: "#1d4ed8",
|
|
21914
|
-
bird: "#14b8a6",
|
|
21915
|
-
dog: "#84cc16",
|
|
21916
|
-
cat: "#f97316",
|
|
21917
|
-
horse: "#a16207",
|
|
21918
|
-
sheep: "#a3a3a3",
|
|
21919
|
-
cow: "#78716c",
|
|
21920
|
-
elephant: "#6b7280",
|
|
21921
|
-
bear: "#7c2d12",
|
|
21922
|
-
zebra: "#404040",
|
|
21923
|
-
giraffe: "#d4a373"
|
|
21924
|
-
};
|
|
22278
|
+
var BUNDLED_PALETTE = bundledCamstack();
|
|
22279
|
+
function kindColor(kind) {
|
|
22280
|
+
return paintHex(BUNDLED_PALETTE.swatches, BUNDLED_PALETTE.fallbacks, kind);
|
|
22281
|
+
}
|
|
22282
|
+
function firstFallback(fallbacks) {
|
|
22283
|
+
const hex = fallbacks[0];
|
|
22284
|
+
if (hex === void 0) throw new Error("display palette has no fallback colour");
|
|
22285
|
+
return hex;
|
|
22286
|
+
}
|
|
22287
|
+
firstFallback(BUNDLED_PALETTE.fallbacks);
|
|
21925
22288
|
function titleCase(id) {
|
|
21926
22289
|
return id.split(/[-_ ]/).filter((p) => p.length > 0).map((p) => p.charAt(0).toUpperCase() + p.slice(1)).join(" ");
|
|
21927
22290
|
}
|
|
21928
22291
|
var entries = /* @__PURE__ */ new Map();
|
|
21929
|
-
function macro(kind, category,
|
|
22292
|
+
function macro(kind, category, iconId, label) {
|
|
21930
22293
|
entries.set(kind, {
|
|
21931
22294
|
kind,
|
|
21932
22295
|
parentKind: null,
|
|
21933
22296
|
level: "macro",
|
|
21934
22297
|
category,
|
|
21935
|
-
color,
|
|
22298
|
+
color: kindColor(kind),
|
|
21936
22299
|
iconId,
|
|
21937
22300
|
labelKey: `eventKind.${kind}`,
|
|
21938
22301
|
label
|
|
21939
22302
|
});
|
|
21940
22303
|
}
|
|
21941
|
-
function sub(kind, parentKind, category,
|
|
22304
|
+
function sub(kind, parentKind, category, iconId, label) {
|
|
21942
22305
|
entries.set(kind, {
|
|
21943
22306
|
kind,
|
|
21944
22307
|
parentKind,
|
|
21945
22308
|
level: "sub",
|
|
21946
22309
|
category,
|
|
21947
|
-
color,
|
|
22310
|
+
color: kindColor(kind),
|
|
21948
22311
|
iconId,
|
|
21949
22312
|
labelKey: `eventKind.${kind}`,
|
|
21950
22313
|
label
|
|
21951
22314
|
});
|
|
21952
22315
|
}
|
|
21953
|
-
macro("motion", "motion",
|
|
21954
|
-
macro("audio", "audio",
|
|
21955
|
-
macro("person", "detection",
|
|
21956
|
-
macro("vehicle", "detection",
|
|
21957
|
-
macro("animal", "detection",
|
|
21958
|
-
macro("package", "package",
|
|
21959
|
-
macro("sensor", "sensor",
|
|
21960
|
-
macro("control", "control",
|
|
22316
|
+
macro("motion", "motion", "motion", "Motion");
|
|
22317
|
+
macro("audio", "audio", "audio", "Audio");
|
|
22318
|
+
macro("person", "detection", "person", "Person");
|
|
22319
|
+
macro("vehicle", "detection", "vehicle", "Vehicle");
|
|
22320
|
+
macro("animal", "detection", "animal", "Animal");
|
|
22321
|
+
macro("package", "package", "package", "Package");
|
|
22322
|
+
macro("sensor", "sensor", "sensor", "Sensor");
|
|
22323
|
+
macro("control", "control", "control", "Control");
|
|
21961
22324
|
for (const [cocoClass, macroClass] of Object.entries(COCO_TO_MACRO.mapping)) {
|
|
21962
22325
|
if (macroClass !== "vehicle" && macroClass !== "animal") continue;
|
|
21963
22326
|
if (entries.has(cocoClass)) continue;
|
|
21964
|
-
sub(cocoClass, macroClass, "detection",
|
|
22327
|
+
sub(cocoClass, macroClass, "detection", cocoClass, titleCase(cocoClass));
|
|
21965
22328
|
}
|
|
21966
|
-
sub("package-delivered", "package", "package",
|
|
21967
|
-
sub("package-picked-up", "package", "package",
|
|
21968
|
-
sub("contact", "sensor", "sensor", "
|
|
21969
|
-
sub("motion-sensor", "sensor", "sensor",
|
|
21970
|
-
sub("smoke", "sensor", "sensor", "
|
|
21971
|
-
sub("flood", "sensor", "sensor", "
|
|
21972
|
-
sub("gas", "sensor", "sensor", "
|
|
21973
|
-
sub("carbon-monoxide", "sensor", "sensor", "
|
|
21974
|
-
sub("vibration", "sensor", "sensor", "
|
|
21975
|
-
sub("tamper", "sensor", "sensor", "
|
|
21976
|
-
sub("presence", "sensor", "sensor", "
|
|
21977
|
-
sub("enum-sensor", "sensor", "sensor",
|
|
21978
|
-
sub("device-event", "sensor", "sensor", "
|
|
21979
|
-
sub("lock", "control", "control", "
|
|
21980
|
-
sub("cover", "control", "control", "
|
|
21981
|
-
sub("switch", "control", "control",
|
|
21982
|
-
sub("siren", "control", "control", "
|
|
21983
|
-
sub("button", "control", "control", "
|
|
21984
|
-
sub("doorbell", "control", "control", "
|
|
22329
|
+
sub("package-delivered", "package", "package", "package", "Package delivered");
|
|
22330
|
+
sub("package-picked-up", "package", "package", "package", "Package picked up");
|
|
22331
|
+
sub("contact", "sensor", "sensor", "door", "Contact");
|
|
22332
|
+
sub("motion-sensor", "sensor", "sensor", "pir", "Motion sensor");
|
|
22333
|
+
sub("smoke", "sensor", "sensor", "smoke", "Smoke");
|
|
22334
|
+
sub("flood", "sensor", "sensor", "water", "Water leak");
|
|
22335
|
+
sub("gas", "sensor", "sensor", "gas", "Gas");
|
|
22336
|
+
sub("carbon-monoxide", "sensor", "sensor", "smoke", "Carbon monoxide");
|
|
22337
|
+
sub("vibration", "sensor", "sensor", "vibration", "Vibration");
|
|
22338
|
+
sub("tamper", "sensor", "sensor", "tamper", "Tamper");
|
|
22339
|
+
sub("presence", "sensor", "sensor", "presence", "Presence");
|
|
22340
|
+
sub("enum-sensor", "sensor", "sensor", "generic", "Sensor state");
|
|
22341
|
+
sub("device-event", "sensor", "sensor", "button", "Device event");
|
|
22342
|
+
sub("lock", "control", "control", "lock", "Lock");
|
|
22343
|
+
sub("cover", "control", "control", "door", "Cover");
|
|
22344
|
+
sub("switch", "control", "control", "switch", "Switch");
|
|
22345
|
+
sub("siren", "control", "control", "siren", "Siren");
|
|
22346
|
+
sub("button", "control", "control", "button", "Button");
|
|
22347
|
+
sub("doorbell", "control", "control", "doorbell", "Doorbell");
|
|
21985
22348
|
for (const l of AUDIO_MACRO_LABELS) {
|
|
21986
22349
|
const kind = `audio-${l.id}`;
|
|
21987
22350
|
if (entries.has(kind)) continue;
|
|
21988
|
-
sub(kind, "audio", "audio",
|
|
22351
|
+
sub(kind, "audio", "audio", kind, l.name);
|
|
21989
22352
|
}
|
|
21990
22353
|
/** The complete taxonomy dictionary, keyed by kind. */
|
|
21991
22354
|
var EVENT_TAXONOMY = Object.freeze(Object.fromEntries(entries));
|
|
@@ -27911,6 +28274,11 @@ function createSystemProxy(api) {
|
|
|
27911
28274
|
getAllSnapshots: (input) => dispatch("deviceState", "getAllSnapshots", "query", input),
|
|
27912
28275
|
listClaims: (input) => dispatch("deviceState", "listClaims", "query", input)
|
|
27913
28276
|
},
|
|
28277
|
+
displayPalette: {
|
|
28278
|
+
getPalette: (input) => dispatch("displayPalette", "getPalette", "query", input),
|
|
28279
|
+
listPresets: (input) => dispatch("displayPalette", "listPresets", "query", input),
|
|
28280
|
+
setPalette: (input) => dispatch("displayPalette", "setPalette", "mutation", input)
|
|
28281
|
+
},
|
|
27914
28282
|
faceGallery: {
|
|
27915
28283
|
listIdentities: (input) => dispatch("faceGallery", "listIdentities", "query", input),
|
|
27916
28284
|
createIdentity: (input) => dispatch("faceGallery", "createIdentity", "mutation", input),
|