homebridge-config-ui-x 5.4.2-beta.0 → 5.4.2-beta.10

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (126) hide show
  1. package/CHANGELOG.md +14 -4
  2. package/CLAUDE.md +112 -0
  3. package/dist/modules/accessories/accessories.service.js +5 -1
  4. package/dist/modules/accessories/accessories.service.js.map +1 -1
  5. package/dist/modules/plugins/plugins.service.d.ts +1 -0
  6. package/dist/modules/plugins/plugins.service.js +27 -15
  7. package/dist/modules/plugins/plugins.service.js.map +1 -1
  8. package/package.json +17 -12
  9. package/public/3rdpartylicenses.txt +0 -26
  10. package/public/{chunk-MP3K6Q5N.js → chunk-2AUDO3YT.js} +1 -1
  11. package/public/chunk-3BY2YC6T.js +4 -0
  12. package/public/{chunk-BYDZXXU7.js → chunk-447KMSW5.js} +1 -1
  13. package/public/{chunk-ULDXS7ZK.js → chunk-4N2RTOW6.js} +1 -1
  14. package/public/{chunk-ZUTM7S4U.js → chunk-4WAU3AJS.js} +1 -1
  15. package/public/chunk-54ET3HHS.js +1 -0
  16. package/public/{chunk-DP45OUJJ.js → chunk-5H52XZ6O.js} +1 -1
  17. package/public/{chunk-QX6BFGHZ.js → chunk-5TCYRJ6A.js} +1 -1
  18. package/public/{chunk-OA7Y3E5A.js → chunk-6GMXEQVA.js} +2 -2
  19. package/public/{chunk-QSP4KI3N.js → chunk-76EVYYMU.js} +1 -1
  20. package/public/{chunk-D7VCPH6W.js → chunk-77JZBWAC.js} +1 -1
  21. package/public/chunk-A7KOVDDP.js +1 -0
  22. package/public/{chunk-FVKMBZOU.js → chunk-AE7VAWOU.js} +1 -1
  23. package/public/{chunk-J7JPVBEU.js → chunk-AQHDOCGY.js} +1 -1
  24. package/public/{chunk-YQ7MFP33.js → chunk-AXCC4J6O.js} +1 -1
  25. package/public/{chunk-6X3MH72N.js → chunk-BMYHLJ4Z.js} +1 -1
  26. package/public/{chunk-WCOLHYTR.js → chunk-BU65ZOCD.js} +1 -1
  27. package/public/{chunk-7EQFLCW4.js → chunk-CNMM42I5.js} +1 -1
  28. package/public/{chunk-HWAWBYVQ.js → chunk-D3JHDB7S.js} +1 -1
  29. package/public/{chunk-ESIX4ZF5.js → chunk-D6CPRYC5.js} +1 -1
  30. package/public/{chunk-IWFKJHPR.js → chunk-EA3EXGPZ.js} +1 -1
  31. package/public/{chunk-WXQICPJE.js → chunk-ESBJ735P.js} +1 -1
  32. package/public/{chunk-6EH7VRJE.js → chunk-EVTILPTO.js} +1 -1
  33. package/public/{chunk-KZKL7DGI.js → chunk-G7FA4DP4.js} +1 -1
  34. package/public/{chunk-HTZJUJUZ.js → chunk-GP42LZHH.js} +1 -1
  35. package/public/{chunk-IOKYXV5M.js → chunk-H36QJYLQ.js} +3 -3
  36. package/public/{chunk-WTDK2HE6.js → chunk-H3PPMCMP.js} +1 -1
  37. package/public/chunk-H4W6IHVS.js +40 -0
  38. package/public/chunk-HEGPM62I.js +30 -0
  39. package/public/{chunk-Z4YLS7KX.js → chunk-HXT4SHE6.js} +1 -1
  40. package/public/{chunk-7BA3FPY6.js → chunk-HYPOP2EP.js} +1 -1
  41. package/public/{chunk-5E4D6S2D.js → chunk-I2TETZLW.js} +1 -1
  42. package/public/{chunk-LJIRF4HJ.js → chunk-IQS2UE5Y.js} +1 -1
  43. package/public/{chunk-S6BEKQWI.js → chunk-KLJT4NEV.js} +1 -1
  44. package/public/{chunk-QBC4X3JS.js → chunk-L4V3CVWY.js} +1 -1
  45. package/public/{chunk-FUYV7IZZ.js → chunk-LG4MCRG7.js} +1 -1
  46. package/public/{chunk-3ERUWF5D.js → chunk-LIQTQ5UM.js} +1 -1
  47. package/public/{chunk-CMOVUX6R.js → chunk-LPHTUMGC.js} +1 -1
  48. package/public/{chunk-GS72D2DZ.js → chunk-MEVZTYFM.js} +1 -1
  49. package/public/chunk-MWLXH2WO.js +1 -0
  50. package/public/{chunk-2C3X2ESN.js → chunk-NFWGYMP7.js} +1 -1
  51. package/public/{chunk-FXJWZ2UF.js → chunk-NJOBXAPT.js} +1 -1
  52. package/public/{chunk-LJL5JUBH.js → chunk-NPTU3Q33.js} +1 -1
  53. package/public/{chunk-4HRWU2J3.js → chunk-NSYEZ34R.js} +1 -1
  54. package/public/{chunk-B57CTOBG.js → chunk-ORSHJEJW.js} +1 -1
  55. package/public/{chunk-C54645MD.js → chunk-P5ZQVV5O.js} +1 -1
  56. package/public/{chunk-MSAADZHQ.js → chunk-PJZVEG7P.js} +1 -1
  57. package/public/chunk-PNGS72JD.js +1 -0
  58. package/public/{chunk-MFYUC6U7.js → chunk-QJLRIYZC.js} +1 -1
  59. package/public/chunk-QORWJ4OP.js +1 -0
  60. package/public/{chunk-BNC2LVDJ.js → chunk-RDXZFFUN.js} +1 -1
  61. package/public/{chunk-2LMFJYC4.js → chunk-S3VLWXH2.js} +1 -1
  62. package/public/{chunk-EKCAZN24.js → chunk-SHW4DQ7G.js} +1 -1
  63. package/public/{chunk-Z2T4OZ7I.js → chunk-TGOCI72Q.js} +1 -1
  64. package/public/{chunk-V6JVOQNN.js → chunk-UHWT4HS2.js} +1 -1
  65. package/public/chunk-UOLP7IQJ.js +1 -0
  66. package/public/{chunk-QN444QJC.js → chunk-USXSMG2A.js} +1 -1
  67. package/public/{chunk-H5WTK5UT.js → chunk-V2P2FPJ7.js} +1 -1
  68. package/public/{chunk-HLNHT6LZ.js → chunk-VCW3X3YF.js} +1 -1
  69. package/public/{chunk-PWOW5ZGG.js → chunk-VLDRDEFR.js} +1 -1
  70. package/public/{chunk-ADF46RFT.js → chunk-WC5MFFHY.js} +1 -1
  71. package/public/{chunk-AC47AP7G.js → chunk-WFYRC664.js} +1 -1
  72. package/public/chunk-X74DIMPI.js +1 -0
  73. package/public/{chunk-ZY5SUCRL.js → chunk-XLRMIDFZ.js} +1 -1
  74. package/public/{chunk-33UHWR5O.js → chunk-Y5FMCZDS.js} +1 -1
  75. package/public/{chunk-H45DK7IX.js → chunk-YATJTZML.js} +1 -1
  76. package/public/{chunk-VQAYHIBO.js → chunk-Z7PXW5TK.js} +1 -1
  77. package/public/{chunk-J6CJ26QN.js → chunk-ZHPB347D.js} +1 -1
  78. package/public/{chunk-TPRXTBLB.js → chunk-ZMG3XTQO.js} +1 -1
  79. package/public/index.html +2 -2
  80. package/public/main-BXUQQISD.js +1 -0
  81. package/public/{styles-LKRXKJ7O.css → styles-AUT3PDLG.css} +1 -1
  82. package/public/assets/hap-icons/leak-sensor.svg +0 -53
  83. package/public/assets/hap-icons/light-bulb.svg +0 -25
  84. package/public/assets/hap-icons/light-sensor.svg +0 -50
  85. package/public/assets/hap-icons/motion-sensor.svg +0 -101
  86. package/public/assets/hap-icons/occupancy-sensor.svg +0 -98
  87. package/public/assets/hap-icons/outlet.svg +0 -25
  88. package/public/assets/hap-icons/switch.svg +0 -25
  89. package/public/assets/hap-icons/unknown.svg +0 -25
  90. package/public/assets/service-icons/air-purifier.svg +0 -50
  91. package/public/assets/service-icons/air-quality-sensor.svg +0 -30
  92. package/public/assets/service-icons/carbon-dioxide-sensor.svg +0 -53
  93. package/public/assets/service-icons/carbon-monoxide-sensor.svg +0 -53
  94. package/public/assets/service-icons/contact-sensor.svg +0 -45
  95. package/public/assets/service-icons/door.svg +0 -49
  96. package/public/assets/service-icons/doorbell.svg +0 -7
  97. package/public/assets/service-icons/fan.svg +0 -15
  98. package/public/assets/service-icons/filter-maintenance.svg +0 -54
  99. package/public/assets/service-icons/garage-door.svg +0 -120
  100. package/public/assets/service-icons/irrigation-system.svg +0 -34
  101. package/public/assets/service-icons/lock-mechanism.svg +0 -39
  102. package/public/assets/service-icons/microphone.svg +0 -12
  103. package/public/assets/service-icons/robot-vacuum.svg +0 -76
  104. package/public/assets/service-icons/security-system.svg +0 -19
  105. package/public/assets/service-icons/smoke-sensor.svg +0 -38
  106. package/public/assets/service-icons/speaker.svg +0 -28
  107. package/public/assets/service-icons/stateless-programmable-switch.svg +0 -18
  108. package/public/assets/service-icons/television.svg +0 -17
  109. package/public/assets/service-icons/valve-faucet.svg +0 -22
  110. package/public/assets/service-icons/valve-generic.svg +0 -25
  111. package/public/assets/service-icons/valve-irrigation.svg +0 -34
  112. package/public/assets/service-icons/valve-shower-head.svg +0 -32
  113. package/public/assets/service-icons/washing-machine.svg +0 -34
  114. package/public/assets/service-icons/window-covering.svg +0 -44
  115. package/public/assets/service-icons/window.svg +0 -71
  116. package/public/chunk-2LEJFO4U.js +0 -4
  117. package/public/chunk-46JGHSBB.js +0 -1
  118. package/public/chunk-4TF2J3KA.js +0 -1
  119. package/public/chunk-D7HRLNTC.js +0 -30
  120. package/public/chunk-DFFTJVRY.js +0 -1
  121. package/public/chunk-FMXKLBH7.js +0 -1
  122. package/public/chunk-HPHUBXGR.js +0 -12
  123. package/public/chunk-JCCQ75XM.js +0 -1
  124. package/public/chunk-SKU647MV.js +0 -1
  125. package/public/chunk-VDRXJTTX.js +0 -1
  126. package/public/main-VZG2XBKX.js +0 -1
@@ -1,45 +0,0 @@
1
- <svg width="32px" height="32px" viewBox="0 0 32 32" xmlns="http://www.w3.org/2000/svg">
2
- <!-- left object -->
3
- <rect class="left-object" x="1" y="1" width="15" height="30" rx="1" stroke="#7f7f7f" fill="none" stroke-width="1.5" />
4
-
5
- <!-- right object -->
6
- <rect
7
- class="right-object"
8
- x="16"
9
- y="1"
10
- width="15"
11
- height="30"
12
- rx="1"
13
- stroke="#7f7f7f"
14
- fill="none"
15
- stroke-width="1.5"
16
- />
17
-
18
- <!-- left sensor -->
19
- <rect
20
- class="left-sensor"
21
- x="10"
22
- y="11"
23
- width="6"
24
- height="10"
25
- rx="1"
26
- stroke="#7f7f7f"
27
- fill="#4caf50"
28
- fill-opacity="0.5"
29
- stroke-width="0.5"
30
- />
31
-
32
- <!-- right sensor -->
33
- <rect
34
- class="right-sensor"
35
- x="16"
36
- y="11"
37
- width="6"
38
- height="10"
39
- rx="1"
40
- stroke="#7f7f7f"
41
- fill="#4caf50"
42
- fill-opacity="0.5"
43
- stroke-width="0.5"
44
- />
45
- </svg>
@@ -1,49 +0,0 @@
1
- <svg width="32px" height="32px" viewBox="0 0 32 32" xmlns="http://www.w3.org/2000/svg">
2
- <!-- outer frame -->
3
- <rect x="7.8" y="0.8" width="16.4" height="30.2" rx="0.5" stroke="#7f7f7f" fill="none" stroke-width="1.5" />
4
-
5
- <!-- door outline -->
6
- <rect class="outline" x="9.6" y="2.6" width="12.8" height="26.6" stroke="#7f7f7f" fill="none" stroke-width="1" />
7
-
8
- <!-- top panel -->
9
- <rect
10
- class="panel"
11
- x="11.2"
12
- y="4.2"
13
- width="9.6"
14
- height="10.8"
15
- stroke="#7f7f7f"
16
- fill-opacity="0"
17
- stroke-width="0.5"
18
- rx="0.25"
19
- />
20
-
21
- <!-- bottom panel -->
22
- <rect
23
- class="panel"
24
- x="11.2"
25
- y="16.8"
26
- width="9.6"
27
- height="10.8"
28
- stroke="#7f7f7f"
29
- fill-opacity="0"
30
- stroke-width="0.5"
31
- rx="0.25"
32
- />
33
-
34
- <!-- wider floor -->
35
- <line x1="0" y1="31" x2="32" y2="31" stroke="#7f7f7f" stroke-width="1.5" />
36
-
37
- <!-- door handle -->
38
- <rect
39
- class="handle"
40
- x="19.25"
41
- y="15.87"
42
- width="1.55"
43
- height="0.05"
44
- stroke="#1976d2"
45
- fill="none"
46
- stroke-width="0.5"
47
- rx="10"
48
- />
49
- </svg>
@@ -1,7 +0,0 @@
1
- <svg width="32px" height="32px" viewBox="0 0 32 32" xmlns="http://www.w3.org/2000/svg">
2
- <!-- outer casing -->
3
- <rect x="6" y="1" width="18" height="30" rx="3" stroke="#7f7f7f" fill="none" stroke-width="2" />
4
-
5
- <!-- power button -->
6
- <circle cx="15" cy="16" r="5" stroke="#7f7f7f" stroke-width="2" fill="#1976d2" fill-opacity="0.5" />
7
- </svg>
@@ -1,15 +0,0 @@
1
- <svg width="32px" height="32px" viewBox="0 0 32 32" xmlns="http://www.w3.org/2000/svg">
2
- <!-- fan icon -->
3
- <g transform="translate(-0.85, 0.2) scale(0.99)">
4
- <path
5
- class="fan-blades"
6
- fill="#7f7f7f"
7
- fill-rule="evenodd"
8
- clip-rule="evenodd"
9
- d="M20.988 10.265c.382-.596.951-1.424 1.844-2.71C25.462 3.61 23.456 0 18 0c-6.263 0-10.09 5.649-6.835 11.923-.594-.382-1.416-.948-2.682-1.826-3.945-2.63-7.555-.625-7.555 4.832 0 6.308 5.73 10.145 12.057 6.763-.383.599-.958 1.436-1.872 2.753C8.485 28.39 10.49 32 15.947 32c6.267 0 10.095-5.655 6.83-11.932.593.382 1.412.946 2.668 1.818 3.945 2.63 7.555.625 7.555-4.832 0-6.293-5.703-10.127-12.012-6.788Zm-.407 2.602C26.101 8.924 31 11.805 31 17.053c0 3.877-1.845 4.902-4.445 3.169-2.525-1.761-3.46-2.385-4.406-2.763a7.87 7.87 0 0 0-1.01-.317c.105-.382.161-.785.161-1.2 0-1.327-.919-3.134-.919-3.134ZM18.405 10.85c.378-.946 1.001-1.88 2.763-4.405C22.902 3.845 21.877 2 18 2c-5.247 0-8.129 4.899-4.186 10.419 0 0 1.89-.919 3.186-.919.398 0 .783.052 1.15.149.064-.269.149-.533.255-.798ZM11.78 14.524c-.946-.378-1.88-1.001-4.405-2.763-2.6-1.734-4.445-.709-4.445 3.168 0 5.247 4.899 8.129 10.419 4.186 0 0-.848-1.812-.848-3.115 0-.416.057-.819.163-1.201a7.81 7.81 0 0 0-1.183-.275Zm3.763 6.625c-.378.946-1.001 1.88-2.763 4.405-1.734 2.6-.709 4.445 3.168 4.445 5.248 0 8.13-4.899 4.187-10.419 0 0-1.831.919-3.133.919-.416 0-.819-.057-1.201-.162a7.802 7.802 0 0 0-.258.812ZM17 19.5c-1.933 0-3.5-1.567-3.5-3.5s1.567-3.5 3.5-3.5 3.5 1.567 3.5 3.5-1.567 3.5-3.5 3.5Z"
10
- />
11
- </g>
12
-
13
- <!-- middle circle -->
14
- <circle cx="16" cy="16" r="3.6" stroke="#7f7f7f" stroke-width="2" fill="#1976d2" fill-opacity="0.5" />
15
- </svg>
@@ -1,54 +0,0 @@
1
- <svg width="32px" height="32px" viewBox="0 0 32 32" xmlns="http://www.w3.org/2000/svg">
2
- <!-- top outer ellipse -->
3
- <ellipse
4
- class="status"
5
- cx="16"
6
- cy="7"
7
- rx="11"
8
- ry="5"
9
- stroke="#7f7f7f"
10
- stroke-width="1.75"
11
- fill="#4caf50"
12
- fill-opacity="0.5"
13
- />
14
-
15
- <!-- top inner ellipse -->
16
- <ellipse
17
- class="back"
18
- cx="16"
19
- cy="7"
20
- rx="6"
21
- ry="2"
22
- stroke="#7f7f7f"
23
- stroke-width="1"
24
- fill="#e0e0e0"
25
- fill-opacity="1"
26
- />
27
-
28
- <!-- side walls -->
29
- <line x1="5" y1="7" x2="5" y2="27.7" stroke="#7f7f7f" stroke-width="1.75" />
30
- <line x1="27" y1="7" x2="27" y2="27.7" stroke="#7f7f7f" stroke-width="1.75" />
31
-
32
- <!-- base arc -->
33
- <path d="M4.7,27 A13,6.9 0 0,0 27.3,27" stroke="#7f7f7f" stroke-width="1.75" fill="none" />
34
-
35
- <!-- outer front lines -->
36
- <line x1="7" y1="10" x2="7" y2="29" stroke="#7f7f7f" stroke-width="1" />
37
- <line x1="9" y1="11" x2="9" y2="29" stroke="#7f7f7f" stroke-width="1" />
38
- <line x1="11" y1="12" x2="11" y2="30" stroke="#7f7f7f" stroke-width="1" />
39
- <line x1="13" y1="12" x2="13" y2="30" stroke="#7f7f7f" stroke-width="1" />
40
- <line x1="15" y1="12" x2="15" y2="30" stroke="#7f7f7f" stroke-width="1" />
41
- <line x1="17" y1="12" x2="17" y2="30" stroke="#7f7f7f" stroke-width="1" />
42
- <line x1="19" y1="12" x2="19" y2="30" stroke="#7f7f7f" stroke-width="1" />
43
- <line x1="21" y1="12" x2="21" y2="30" stroke="#7f7f7f" stroke-width="1" />
44
- <line x1="23" y1="11" x2="23" y2="29" stroke="#7f7f7f" stroke-width="1" />
45
- <line x1="25" y1="10" x2="25" y2="29" stroke="#7f7f7f" stroke-width="1" />
46
-
47
- <!-- inner back lines -->
48
- <line x1="11" y1="6" x2="11" y2="8" stroke="#7f7f7f" stroke-width="1" />
49
- <line x1="13" y1="5" x2="13" y2="9" stroke="#7f7f7f" stroke-width="1" />
50
- <line x1="15" y1="5" x2="15" y2="9" stroke="#7f7f7f" stroke-width="1" />
51
- <line x1="17" y1="5" x2="17" y2="9" stroke="#7f7f7f" stroke-width="1" />
52
- <line x1="19" y1="5" x2="19" y2="9" stroke="#7f7f7f" stroke-width="1" />
53
- <line x1="21" y1="6" x2="21" y2="8" stroke="#7f7f7f" stroke-width="1" />
54
- </svg>
@@ -1,120 +0,0 @@
1
- <svg width="32px" height="32px" viewBox="0 0 32 32" xmlns="http://www.w3.org/2000/svg">
2
- <!-- circle in roof -->
3
- <circle
4
- class="window"
5
- cx="15.5"
6
- cy="10.25"
7
- r="3"
8
- stroke="#7f7f7f"
9
- stroke-width="0.5"
10
- fill="#1976d2"
11
- fill-opacity="0.5"
12
- />
13
-
14
- <!-- left roof line -->
15
- <line x1="1" y1="12" x2="15" y2="1" stroke="#7f7f7f" stroke-width="1.5" stroke-linecap="round" />
16
-
17
- <!-- right roof line -->
18
- <line x1="31" y1="12" x2="16" y2="1" stroke="#7f7f7f" stroke-width="1.5" stroke-linecap="round" />
19
-
20
- <!-- roof summit -->
21
- <circle cx="15.5" cy="1.3" r="0.5" stroke="#7f7f7f" stroke-width="1.5" />
22
-
23
- <!-- side left line -->
24
- <line x1="3" y1="11" x2="3" y2="31" stroke="#7f7f7f" stroke-width="1.5" stroke-linecap="round" />
25
-
26
- <!-- right side line -->
27
- <line x1="29" y1="11" x2="29" y2="31" stroke="#7f7f7f" stroke-width="1.5" stroke-linecap="round" />
28
-
29
- <!-- bottom left horizontal line -->
30
- <line x1="3" y1="31" x2="6" y2="31" stroke="#7f7f7f" stroke-width="1.5" stroke-linecap="round" />
31
-
32
- <!-- bottom right horizontal line -->
33
- <line x1="26" y1="31" x2="29" y2="31" stroke="#7f7f7f" stroke-width="1.5" stroke-linecap="round" />
34
-
35
- <!-- left garage line -->
36
- <line x1="6" y1="17" x2="6" y2="31" stroke="#7f7f7f" stroke-width="1.5" stroke-linecap="" />
37
-
38
- <!-- right garage line -->
39
- <line x1="26" y1="17" x2="26" y2="31" stroke="#7f7f7f" stroke-width="1.5" />
40
-
41
- <!-- garage door lines -->
42
- <line x1="5.25" y1="17" x2="26.75" y2="17" stroke="#7f7f7f" stroke-width="1" />
43
- <line
44
- class="line line1"
45
- x1="6.75"
46
- y1="18"
47
- x2="25.25"
48
- y2="18"
49
- stroke="#1976d2"
50
- stroke-width="1"
51
- stroke-opacity="0.5"
52
- />
53
- <line class="line line2" x1="5.25" y1="19" x2="26.75" y2="19" stroke="#7f7f7f" stroke-width="1" />
54
- <line
55
- class="line line3"
56
- x1="6.75"
57
- y1="20"
58
- x2="25.25"
59
- y2="20"
60
- stroke="#1976d2"
61
- stroke-width="1"
62
- stroke-opacity="0.5"
63
- />
64
- <line class="line line4" x1="5.25" y1="21" x2="26.75" y2="21" stroke="#7f7f7f" stroke-width="1" />
65
- <line
66
- class="line line5"
67
- x1="6.75"
68
- y1="22"
69
- x2="25.25"
70
- y2="22"
71
- stroke="#1976d2"
72
- stroke-width="1"
73
- stroke-opacity="0.5"
74
- />
75
- <line class="line line6" x1="5.25" y1="23" x2="26.75" y2="23" stroke="#7f7f7f" stroke-width="1" />
76
- <line
77
- class="line line7"
78
- x1="6.75"
79
- y1="24"
80
- x2="25.25"
81
- y2="24"
82
- stroke="#1976d2"
83
- stroke-width="1"
84
- stroke-opacity="0.5"
85
- />
86
- <line class="line line8" x1="5.25" y1="25" x2="26.75" y2="25" stroke="#7f7f7f" stroke-width="1" />
87
- <line
88
- class="line line9"
89
- x1="6.75"
90
- y1="26"
91
- x2="25.25"
92
- y2="26"
93
- stroke="#1976d2"
94
- stroke-width="1"
95
- stroke-opacity="0.5"
96
- />
97
- <line class="line line10" x1="5.25" y1="27" x2="26.75" y2="27" stroke="#7f7f7f" stroke-width="1" />
98
- <line
99
- class="line line11"
100
- x1="6.75"
101
- y1="28"
102
- x2="25.25"
103
- y2="28"
104
- stroke="#1976d2"
105
- stroke-width="1"
106
- stroke-opacity="0.5"
107
- />
108
- <line class="line line12" x1="5.25" y1="29" x2="26.75" y2="29" stroke="#7f7f7f" stroke-width="1" />
109
- <line
110
- class="line line13"
111
- x1="6.75"
112
- y1="30"
113
- x2="25.25"
114
- y2="30"
115
- stroke="#1976d2"
116
- stroke-width="1"
117
- stroke-opacity="0.5"
118
- />
119
- <line class="line line14" x1="5.25" y1="31" x2="26.75" y2="31" stroke="#7f7f7f" stroke-width="1" />
120
- </svg>
@@ -1,34 +0,0 @@
1
- <svg width="32" height="32" viewBox="0 0 32 32" xmlns="http://www.w3.org/2000/svg">
2
- <!-- water tank -->
3
- <rect
4
- x="9"
5
- y="1"
6
- width="14"
7
- height="6.5"
8
- rx="2"
9
- fill="#1976d2"
10
- stroke="#7b7b7b"
11
- stroke-width="0.5"
12
- fill-opacity="0.5"
13
- />
14
-
15
- <!-- vertical pipe -->
16
- <line class="pipe" x1="16" y1="8" x2="16" y2="31" stroke="#7f7f7f" stroke-width="1" stroke-linecap="round" />
17
-
18
- <!-- horizontal pipes, top to bottom -->
19
- <line class="pipe" x1="1" y1="9" x2="31" y2="9" stroke="#7f7f7f" stroke-width="1" stroke-linecap="round" />
20
- <line class="pipe" x1="1" y1="20" x2="31" y2="20" stroke="#7f7f7f" stroke-width="1" stroke-linecap="round" />
21
- <line class="pipe" x1="1" y1="31" x2="31" y2="31" stroke="#7f7f7f" stroke-width="1" stroke-linecap="round" />
22
-
23
- <!-- top left field -->
24
- <rect class="field" x="1" y="10" width="14" height="9" rx="0" fill="#7f7f7f" stroke-width="0" fill-opacity="0.5" />
25
-
26
- <!-- top right field -->
27
- <rect class="field" x="17" y="10" width="14" height="9" rx="0" fill="#7f7f7f" stroke-width="0" fill-opacity="0.5" />
28
-
29
- <!-- bottom left field -->
30
- <rect class="field" x="1" y="21" width="14" height="9" rx="0" fill="#7f7f7f" stroke-width="0" fill-opacity="0.5" />
31
-
32
- <!-- bottom right field -->
33
- <rect class="field" x="17" y="21" width="14" height="9" rx="0" fill="#7f7f7f" stroke-width="0" fill-opacity="0.5" />
34
- </svg>
@@ -1,39 +0,0 @@
1
- <svg width="32px" height="32px" viewBox="0 0 32 32" xmlns="http://www.w3.org/2000/svg">
2
- <!-- shackle, locked -->
3
- <path
4
- d="M8 16 C6 -4, 26 -4, 24 16"
5
- fill="none"
6
- stroke="#7f7f7f"
7
- stroke-width="2"
8
- class="shackle-locked"
9
- stroke-linecap="round"
10
- stroke-linejoin="round"
11
- />
12
-
13
- <!-- shackle, unlocked -->
14
- <path
15
- d="M8 16 C6 -2, 22 -2, 24 7"
16
- fill="none"
17
- stroke="#7f7f7f"
18
- stroke-width="2"
19
- class="shackle-unlocked"
20
- stroke-linecap="round"
21
- stroke-linejoin="round"
22
- stroke-opacity="0"
23
- />
24
-
25
- <!-- main lock -->
26
- <rect x="5" y="16" width="22" height="15" rx="3" fill="none" stroke="#7f7f7f" stroke-width="2" />
27
-
28
- <!-- status keyhole -->
29
- <circle
30
- cx="16"
31
- cy="23.5"
32
- r="3"
33
- stroke="#7f7f7f"
34
- stroke-width="0.5"
35
- fill="#4caf50"
36
- fill-opacity="0.5"
37
- class="keyhole"
38
- />
39
- </svg>
@@ -1,12 +0,0 @@
1
- <svg width="32px" height="32px" viewBox="0 0 32 32" xmlns="http://www.w3.org/2000/svg">
2
- <!-- outer casing -->
3
- <rect x="6" y="1" width="18" height="30" rx="3" stroke="#7f7f7f" fill="none" stroke-width="2" />
4
-
5
- <!-- grille lines -->
6
- <line stroke-linecap="round" x1="10" y1="6" x2="20" y2="6" stroke="#7f7f7f" stroke-width="2" />
7
- <line stroke-linecap="round" x1="10" y1="10" x2="20" y2="10" stroke="#7f7f7f" stroke-width="2" />
8
- <line stroke-linecap="round" x1="10" y1="14" x2="20" y2="14" stroke="#7f7f7f" stroke-width="2" />
9
-
10
- <!-- power button -->
11
- <circle cx="15" cy="23" r="3" stroke="#7f7f7f" stroke-width="2" fill="#1976d2" fill-opacity="0.5" />
12
- </svg>
@@ -1,76 +0,0 @@
1
- <svg width="32px" height="32px" viewBox="0 0 32 32" xmlns="http://www.w3.org/2000/svg">
2
- <defs>
3
- <!-- clip lines to above the machine -->
4
- <clipPath id="motionClip">
5
- <rect x="0" y="-0.5" width="32" height="8" />
6
- </clipPath>
7
- </defs>
8
-
9
- <g transform="translate(0, 5)">
10
- <!-- main ellipse -->
11
- <ellipse cx="16" cy="10" rx="14" ry="8.4" stroke="#7f7f7f" stroke-width="1.75" fill="none" />
12
-
13
- <!-- side walls -->
14
- <line x1="2" y1="10" x2="2" y2="16" stroke="#7f7f7f" stroke-width="1.75" />
15
- <line x1="30" y1="10" x2="30" y2="16" stroke="#7f7f7f" stroke-width="1.75" />
16
-
17
- <!-- base arc -->
18
- <path d="M2,16 A14,6.9 0 0,0 30,16" stroke="#7f7f7f" stroke-width="1.75" fill="none" />
19
-
20
- <!-- blue ring -->
21
- <ellipse cx="16" cy="10" rx="4.2" ry="2.5" stroke="#7f7f7f" stroke-width="1" fill="#1976d2" fill-opacity="0.5" />
22
-
23
- <!-- power button -->
24
- <circle cx="16" cy="15" r="0.9" fill="#7f7f7f" />
25
-
26
- <!-- whisker brushes -->
27
- <line x1="2" y1="16" x2="0.5" y2="18.5" stroke="#7f7f7f" stroke-width="1" />
28
- <line x1="2" y1="16" x2="0.5" y2="14" stroke="#7f7f7f" stroke-width="1" />
29
- <line x1="30" y1="16" x2="31.5" y2="18.5" stroke="#7f7f7f" stroke-width="1" />
30
- <line x1="30" y1="16" x2="31.5" y2="14" stroke="#7f7f7f" stroke-width="1" />
31
- </g>
32
-
33
- <g class="motion-lines" style="display: none;" clip-path="url(#motionClip)" stroke="#7f7f7f" stroke-linecap="round">
34
- <!-- left line -->
35
- <line x1="12" y1="8" x2="12" y2="14" stroke-width="2.1" opacity="0">
36
- <animate attributeName="y1" values="8;0" dur="3s" begin="0.3s" repeatCount="indefinite" />
37
- <animate attributeName="y2" values="14;6" dur="3s" begin="0.3s" repeatCount="indefinite" />
38
- <animate
39
- attributeName="opacity"
40
- values="0;1;1;0"
41
- keyTimes="0;0.2;0.8;1"
42
- dur="3s"
43
- begin="0.3s"
44
- repeatCount="indefinite"
45
- />
46
- </line>
47
-
48
- <!-- middle line -->
49
- <line x1="16" y1="8" x2="16" y2="14" stroke-width="2.5" opacity="0">
50
- <animate attributeName="y1" values="8;0" dur="3s" begin="0.6s" repeatCount="indefinite" />
51
- <animate attributeName="y2" values="14;6" dur="3s" begin="0.6s" repeatCount="indefinite" />
52
- <animate
53
- attributeName="opacity"
54
- values="0;1;1;0"
55
- keyTimes="0;0.2;0.8;1"
56
- dur="3s"
57
- begin="0.6s"
58
- repeatCount="indefinite"
59
- />
60
- </line>
61
-
62
- <!-- right line -->
63
- <line x1="20" y1="8" x2="20" y2="14" stroke-width="2.1" opacity="0">
64
- <animate attributeName="y1" values="8;0" dur="3s" begin="0.9s" repeatCount="indefinite" />
65
- <animate attributeName="y2" values="14;6" dur="3s" begin="0.9s" repeatCount="indefinite" />
66
- <animate
67
- attributeName="opacity"
68
- values="0;1;1;0"
69
- keyTimes="0;0.2;0.8;1"
70
- dur="3s"
71
- begin="0.9s"
72
- repeatCount="indefinite"
73
- />
74
- </line>
75
- </g>
76
- </svg>
@@ -1,19 +0,0 @@
1
- <svg width="32" height="32" viewBox="0 0 32 32" xmlns="http://www.w3.org/2000/svg">
2
- <!-- siren dome -->
3
- <path
4
- class="dome"
5
- d="M7 18 C7 5, 25 5, 25 18 V26 H7 V18 Z"
6
- fill="none"
7
- stroke="#7f7f7f"
8
- stroke-width="1.5"
9
- fill-opacity="0.5"
10
- />
11
-
12
- <!-- base -->
13
- <rect x="2" y="26" width="28" height="4" fill="none" stroke="#7f7f7f" stroke-width="1.5" rx="1" />
14
-
15
- <!-- light waves left to right -->
16
- <line class="ray" x1="6" y1="3" x2="10" y2="7" stroke-width="3" />
17
- <line class="ray" x1="16" y1="0" x2="16" y2="5" stroke-width="3" />
18
- <line class="ray" x1="26" y1="3" x2="22" y2="7" stroke-width="3" />
19
- </svg>
@@ -1,38 +0,0 @@
1
- <svg width="32px" height="32px" viewBox="0 0 32 32" xmlns="http://www.w3.org/2000/svg">
2
- <!-- outer casing -->
3
- <rect x="1" y="1" width="30" height="12" rx="1" stroke="#7f7f7f" fill="none" stroke-width="1.25" />
4
-
5
- <!-- alarm type -->
6
- <text
7
- class="type"
8
- text-anchor="middle"
9
- dominant-baseline="middle"
10
- font-family="Arial"
11
- font-size="7.5"
12
- x="16"
13
- y="7.7"
14
- fill="#7f7f7f"
15
- stroke-width="0.6"
16
- font-weight="900"
17
- >
18
- SMOKE
19
- </text>
20
-
21
- <!-- grille blue background -->
22
- <line x1="6" y1="14.5" x2="25.5" y2="14.5" stroke="#1976d2" stroke-opacity="0.5" stroke-width="2" />
23
-
24
- <!-- grille vertical lines -->
25
- <line stroke-linecap="round" x1="5" y1="13" x2="6.5" y2="16" stroke="#7f7f7f" stroke-width="1.25" />
26
- <line stroke-linecap="round" x1="11" y1="13" x2="11" y2="16" stroke="#7f7f7f" stroke-width="1" />
27
- <line stroke-linecap="round" x1="15.5" y1="13" x2="15.5" y2="16" stroke="#7f7f7f" stroke-width="1" />
28
- <line stroke-linecap="round" x1="20" y1="13" x2="20" y2="16" stroke="#7f7f7f" stroke-width="1" />
29
- <line stroke-linecap="round" x1="26" y1="13" x2="24.5" y2="16" stroke="#7f7f7f" stroke-width="1.25" />
30
-
31
- <!-- grille horizontal lines -->
32
- <line stroke-linecap="round" x1="6.5" y1="16" x2="24.5" y2="16" stroke="#7f7f7f" stroke-width="1.25" />
33
-
34
- <!-- left to right air lines -->
35
- <line stroke-linecap="round" x1="11" y1="21" x2="6" y2="27" stroke="#7f7f7f" stroke-width="1.25" class="air-line" />
36
- <line stroke-linecap="round" x1="16" y1="21" x2="16" y2="31" stroke="#7f7f7f" stroke-width="1.25" class="air-line" />
37
- <line stroke-linecap="round" x1="21" y1="21" x2="26" y2="27" stroke="#7f7f7f" stroke-width="1.25" class="air-line" />
38
- </svg>
@@ -1,28 +0,0 @@
1
- <svg width="32px" height="32px" viewBox="0 0 32 32" xmlns="http://www.w3.org/2000/svg">
2
- <!-- outer casing -->
3
- <rect x="6" y="1" width="20" height="30" rx="3" stroke="#7f7f7f" fill="none" stroke-width="1" />
4
-
5
- <!-- outer top speaker circle -->
6
- <circle cx="16" cy="9" r="4.5" stroke="#7f7f7f" stroke-width="0" fill="#7f7f7f" />
7
-
8
- <!-- inner top speaker circle -->
9
- <circle class="inner" cx="16" cy="9" r="1.5" stroke="#7f7f7f" stroke-width="0" fill="#e1e1e1" />
10
-
11
- <!-- outer bottom speaker circle -->
12
- <circle cx="16" cy="22" r="6" stroke="#7f7f7f" stroke-width="0" fill="#7f7f7f" />
13
-
14
- <!-- inner bottom speaker circle -->
15
- <circle class="inner" cx="16" cy="22" r="2" stroke="#7f7f7f" stroke-width="0" fill="#e1e1e1" />
16
-
17
- <!-- inner left sound wave -->
18
- <path class="wave-inner" d="M4,12 Q1,16 4,20" stroke="#1976d2" fill="none" stroke-width="1" stroke-opacity="0" />
19
-
20
- <!-- outer left sound wave -->
21
- <path class="wave-outer" d="M3,10 Q-2,16 3,22" stroke="#1976d2" fill="none" stroke-width="1" stroke-opacity="0" />
22
-
23
- <!-- inner right sound wave -->
24
- <path class="wave-inner" d="M28,12 Q31,16 28,20" stroke="#1976d2" fill="none" stroke-width="1" stroke-opacity="0" />
25
-
26
- <!-- outer right sound wave -->
27
- <path class="wave-outer" d="M29,10 Q34,16 29,22" stroke="#1976d2" fill="none" stroke-width="1" stroke-opacity="0" />
28
- </svg>
@@ -1,18 +0,0 @@
1
- <svg width="32px" height="32px" viewBox="0 0 32 32" xmlns="http://www.w3.org/2000/svg">
2
- <!-- frame -->
3
- <rect x="1" y="1" width="30" height="30" rx="3" stroke="#7f7f7f" fill="none" stroke-width="2" />
4
-
5
- <!-- single click -->
6
- <circle class="single" cx="8.5" cy="9.5" r="5" stroke="#7f7f7f" stroke-width="1" fill="none" fill-opacity="0.5" />
7
-
8
- <!-- double click, outer then inner -->
9
- <circle class="double" cx="23.5" cy="9.5" r="5" stroke="#7f7f7f" stroke-width="1" fill="none" fill-opacity="0.5" />
10
- <circle cx="23.5" cy="9.5" r="3" stroke="#7f7f7f" stroke-width="1" fill="none" />
11
-
12
- <!-- long click -->
13
- <circle class="long" cx="16" cy="23.5" r="5" stroke="#7f7f7f" stroke-width="1" fill="none" fill-opacity="0.5" />
14
-
15
- <!-- long click lies, left then right -->
16
- <line x1="5" y1="23.5" x2="11" y2="23.5" stroke="#7f7f7f" stroke-width="0.5" stroke-linecap="round" />
17
- <line x1="21" y1="23.5" x2="27" y2="23.5" stroke="#7f7f7f" stroke-width="0.5" stroke-linecap="round" />
18
- </svg>
@@ -1,17 +0,0 @@
1
- <svg width="32px" height="32px" viewBox="0 0 32 32" xmlns="http://www.w3.org/2000/svg">
2
- <!-- stand -->
3
- <line
4
- class="stand"
5
- x1="10"
6
- y1="27.25"
7
- x2="22"
8
- y2="27.25"
9
- stroke="#d32f2f"
10
- stroke-width="4"
11
- stroke-linecap="round"
12
- stroke-opacity="0.75"
13
- />
14
-
15
- <!-- frame -->
16
- <rect class="screen" x="1" y="6" width="30" height="20" rx="2" stroke="#7f7f7f" fill="#808080" stroke-width="1.5" />
17
- </svg>
@@ -1,22 +0,0 @@
1
- <svg width="32" height="32" viewBox="0 0 32 32" xmlns="http://www.w3.org/2000/svg">
2
- <!-- sink -->
3
- <rect class="sink" x="-3" y="28" width="21" height="6.5" fill="#7f7f7f" stroke-width="0" fill-opacity="0.5" />
4
-
5
- <!-- cold tap -->
6
- <line stroke-linecap="round" x1="24" y1="18" x2="26" y2="18" stroke="#1976d2" stroke-width="3" stroke-opacity="0.5" />
7
-
8
- <!-- hot tap -->
9
- <line stroke-linecap="round" x1="20" y1="18" x2="22" y2="18" stroke="#d32f2f" stroke-width="3" stroke-opacity="0.5" />
10
-
11
- <!-- tap outline -->
12
- <rect x="19" y="16.5" rx="1" width="8" height="3" fill="none" stroke-width="1" stroke="#7f7f7f" />
13
-
14
- <!-- tap shape -->
15
- <path d="M10 9 C10 -1, 23 -1, 23 10 V26" fill="none" stroke="#7f7f7f" stroke-width="2" />
16
-
17
- <!-- water -->
18
- <line class="stream" x1="10" y1="9" x2="10" y2="28" stroke="#1976d2" stroke-opacity="0" stroke-width="1.5" />
19
-
20
- <!-- tap base -->
21
- <line x1="20" y1="31" x2="26" y2="31" stroke="#7f7f7f" stroke-width="10" stroke-linecap="round" />
22
- </svg>
@@ -1,25 +0,0 @@
1
- <svg width="32" height="32" viewBox="0 0 32 32" xmlns="http://www.w3.org/2000/svg">
2
- <!-- top twister -->
3
- <line x1="8" y1="3" x2="14" y2="3" stroke="#7f7f7f" stroke-width="3" stroke-linecap="round" />
4
-
5
- <!-- twister to main pipe -->
6
- <line x1="11" y1="8" x2="11" y2="3" stroke="#7f7f7f" stroke-width="3" stroke-linecap="round" />
7
-
8
- <!-- main pipe -->
9
- <line x1="0" y1="9" x2="21" y2="9" stroke="#7f7f7f" stroke-width="4" stroke-linecap="round" />
10
-
11
- <!-- nozzle -->
12
- <line x1="21" y1="9" x2="21" y2="14" stroke="#7f7f7f" stroke-width="4" stroke-linecap="round" />
13
-
14
- <!-- top row of drops -->
15
- <circle class="drop drop-top" fill="#1976d2" fill-opacity="0" cx="21" cy="19" r="1.5" />
16
-
17
- <!-- middle row of drops -->
18
- <circle class="drop drop-middle" fill="#1976d2" fill-opacity="0" cx="17" cy="24" r="1.5" />
19
- <circle class="drop drop-middle" fill="#1976d2" fill-opacity="0" cx="25" cy="24" r="1.5" />
20
-
21
- <!-- bottom row of drops -->
22
- <circle class="drop drop-bottom" fill="#1976d2" fill-opacity="0" cx="13" cy="29" r="1.5" />
23
- <circle class="drop drop-bottom" fill="#1976d2" fill-opacity="0" cx="21" cy="29" r="1.5" />
24
- <circle class="drop drop-bottom" fill="#1976d2" fill-opacity="0" cx="29" cy="29" r="1.5" />
25
- </svg>