homebridge-config-ui-x 5.4.1 → 5.4.2-beta.1
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/CHANGELOG.md +20 -0
- package/package.json +2 -2
- package/public/assets/service-icons/air-quality-sensor.svg +15 -15
- package/public/assets/service-icons/door.svg +23 -2
- package/public/assets/service-icons/fan.svg +2 -2
- package/public/assets/service-icons/garage-door.svg +1 -1
- package/public/assets/service-icons/irrigation-system.svg +34 -0
- package/public/assets/service-icons/leak-sensor.svg +42 -0
- package/public/assets/service-icons/light-sensor.svg +34 -0
- package/public/assets/service-icons/lock-mechanism.svg +39 -0
- package/public/assets/service-icons/motion-sensor.svg +84 -0
- package/public/assets/service-icons/occupancy-sensor.svg +49 -0
- package/public/assets/service-icons/security-system.svg +19 -0
- package/public/assets/service-icons/stateless-programmable-switch.svg +2 -2
- package/public/assets/service-icons/valve-faucet.svg +22 -0
- package/public/assets/service-icons/valve-generic.svg +25 -0
- package/public/assets/service-icons/valve-irrigation.svg +34 -0
- package/public/assets/service-icons/valve-shower-head.svg +32 -0
- package/public/assets/service-icons/window-covering.svg +2 -2
- package/public/assets/service-icons/window.svg +4 -0
- package/public/{chunk-M4QDQWSG.js → chunk-2C3X2ESN.js} +1 -1
- package/public/chunk-2FM5PPJA.js +1 -0
- package/public/{chunk-O6QIOU32.js → chunk-2PQCVYHY.js} +1 -1
- package/public/{chunk-VUXV5F3D.js → chunk-3ELSLPXD.js} +1 -1
- package/public/{chunk-IA2EYXXP.js → chunk-3Q6PUSIQ.js} +1 -1
- package/public/{chunk-WRO77OEO.js → chunk-4LKN5WQ2.js} +1 -1
- package/public/{chunk-4TADR47H.js → chunk-4LTZ5TVN.js} +1 -1
- package/public/{chunk-NRX2DKWS.js → chunk-55WWMXPN.js} +1 -1
- package/public/{chunk-EQHN6CPG.js → chunk-5E4D6S2D.js} +1 -1
- package/public/{chunk-GZH3YYXD.js → chunk-5EOLSGNC.js} +1 -1
- package/public/{chunk-NZ3SNZL4.js → chunk-5GTAKNFH.js} +1 -1
- package/public/{chunk-7IWNYMNH.js → chunk-6PGTBS2L.js} +1 -1
- package/public/{chunk-KYB236MX.js → chunk-7EQFLCW4.js} +1 -1
- package/public/{chunk-TYM2IKKZ.js → chunk-7N3D3R4N.js} +1 -1
- package/public/chunk-A34J5LMH.js +1 -0
- package/public/chunk-BFDH5H4M.js +1 -0
- package/public/{chunk-DFLIHKAC.js → chunk-BIUKRAP5.js} +1 -1
- package/public/{chunk-KBHPX4TF.js → chunk-BWE5NZTG.js} +1 -1
- package/public/{chunk-FMZEX6EI.js → chunk-C26THLFD.js} +1 -1
- package/public/{chunk-HO4UVRDI.js → chunk-CMOVUX6R.js} +1 -1
- package/public/{chunk-3QBYXJ7T.js → chunk-D7VCPH6W.js} +1 -1
- package/public/{chunk-6HJHVJPI.js → chunk-DFFTJVRY.js} +1 -1
- package/public/chunk-DQJTU7SJ.js +1 -0
- package/public/chunk-ETENXVXQ.js +1 -0
- package/public/{chunk-DFZAFAJ3.js → chunk-F6VPU4OB.js} +1 -1
- package/public/{chunk-YO7SFY4E.js → chunk-FBHFDXKU.js} +1 -1
- package/public/{chunk-HHGB2T2Q.js → chunk-FVKMBZOU.js} +1 -1
- package/public/{chunk-RANTT44U.js → chunk-FVLGW5AW.js} +1 -1
- package/public/{chunk-ULWO2VVV.js → chunk-FXJWZ2UF.js} +1 -1
- package/public/{chunk-KGKX7ALV.js → chunk-GEOFZWCT.js} +1 -1
- package/public/chunk-GOUQJ6IU.js +12 -0
- package/public/{chunk-SZXKSRVG.js → chunk-GRC6QQGR.js} +1 -1
- package/public/{chunk-DYB33NRF.js → chunk-H45DK7IX.js} +1 -1
- package/public/{chunk-V35TPDVW.js → chunk-H5WTK5UT.js} +1 -1
- package/public/{chunk-PPSFRNJC.js → chunk-HWAWBYVQ.js} +1 -1
- package/public/{chunk-G2UERN7F.js → chunk-HWHM6ACA.js} +1 -1
- package/public/{chunk-ZGXQHCAZ.js → chunk-IJVEKP7K.js} +1 -1
- package/public/chunk-IOKYXV5M.js +4 -0
- package/public/{chunk-FYI7RHOJ.js → chunk-IWFKJHPR.js} +1 -1
- package/public/{chunk-G6KV6PYE.js → chunk-J6CJ26QN.js} +1 -1
- package/public/{chunk-5CQQ6P7K.js → chunk-JLWMZIYV.js} +1 -1
- package/public/{chunk-BPGGCIV2.js → chunk-JONTLP2T.js} +1 -1
- package/public/{chunk-6PUQJMXN.js → chunk-JRG7ZOJK.js} +1 -1
- package/public/{chunk-G7J6XGY5.js → chunk-K2DLW4M4.js} +1 -1
- package/public/{chunk-WP55NF6D.js → chunk-K4XV2HUU.js} +1 -1
- package/public/{chunk-F37WZQGE.js → chunk-KT7FH6PP.js} +1 -1
- package/public/{chunk-6VEFADT5.js → chunk-KTUC5YRH.js} +1 -1
- package/public/{chunk-FYDO54CR.js → chunk-KZKL7DGI.js} +1 -1
- package/public/{chunk-PGM4QIVA.js → chunk-MF4B4RDR.js} +1 -1
- package/public/{chunk-ZFBUCUQW.js → chunk-NCU34GBK.js} +1 -1
- package/public/{chunk-7YPOSTMY.js → chunk-NFOWCDOY.js} +1 -1
- package/public/{chunk-KLQ6BEKS.js → chunk-OA7Y3E5A.js} +1 -1
- package/public/{chunk-H7SE35UN.js → chunk-OIVH2FRT.js} +1 -1
- package/public/{chunk-E2BQMFOO.js → chunk-PDR2DPWY.js} +1 -1
- package/public/{chunk-2DRGGCL6.js → chunk-PKLEEBKP.js} +1 -1
- package/public/{chunk-XTHHRD72.js → chunk-PZDZMQIH.js} +1 -1
- package/public/{chunk-RZ4UMDVF.js → chunk-QX6BFGHZ.js} +1 -1
- package/public/{chunk-5UXBLAGX.js → chunk-R3YDN2RN.js} +1 -1
- package/public/{chunk-J3QUQJAX.js → chunk-RHKVQD3P.js} +1 -1
- package/public/{chunk-AVMRG6LJ.js → chunk-TEEROAPU.js} +1 -1
- package/public/{chunk-YLBALIW6.js → chunk-TLDD55XE.js} +1 -1
- package/public/{chunk-AVVYKDTL.js → chunk-UFWMJUXF.js} +1 -1
- package/public/{chunk-3JNJJOX6.js → chunk-V6JVOQNN.js} +1 -1
- package/public/{chunk-RCYYU6LQ.js → chunk-WCOLHYTR.js} +1 -1
- package/public/{chunk-JCYDPJQ5.js → chunk-WTDK2HE6.js} +1 -1
- package/public/{chunk-WYHYUPM6.js → chunk-Y6ETBMB7.js} +1 -1
- package/public/{chunk-RGXCQLZU.js → chunk-Z2T4OZ7I.js} +1 -1
- package/public/{chunk-ER4N7WWQ.js → chunk-ZAAYNVER.js} +1 -1
- package/public/{chunk-EZQF5CUM.js → chunk-ZUTM7S4U.js} +1 -1
- package/public/index.html +1 -1
- package/public/{main-YBDT5CSM.js → main-AAF4AVF2.js} +1 -1
- package/public/assets/hap-icons/irrigation-system.svg +0 -49
- package/public/assets/hap-icons/leak-sensor.svg +0 -53
- package/public/assets/hap-icons/light-sensor.svg +0 -50
- package/public/assets/hap-icons/lock-locked.svg +0 -25
- package/public/assets/hap-icons/lock-unlocked.svg +0 -25
- package/public/assets/hap-icons/motion-sensor.svg +0 -101
- package/public/assets/hap-icons/occupancy-sensor.svg +0 -98
- package/public/assets/hap-icons/security-system-active.svg +0 -103
- package/public/assets/hap-icons/security-system-off.svg +0 -69
- package/public/assets/hap-icons/security-system-triggered.svg +0 -103
- package/public/assets/hap-icons/stateless-programmable-switch.svg +0 -52
- package/public/assets/hap-icons/valve-faucet.svg +0 -21
- package/public/assets/hap-icons/valve-generic.svg +0 -28
- package/public/assets/hap-icons/valve-irrigation.svg +0 -38
- package/public/assets/hap-icons/valve-shower-head.svg +0 -52
- package/public/chunk-33VXBD5W.js +0 -12
- package/public/chunk-645YHJEQ.js +0 -4
- package/public/chunk-EF3XRHYY.js +0 -1
- package/public/chunk-IDFQPWF6.js +0 -1
- package/public/chunk-L6SKGR7C.js +0 -1
- package/public/chunk-ZBNNBPMQ.js +0 -1
- package/public/chunk-ZC3LHWJU.js +0 -1
package/CHANGELOG.md
CHANGED
|
@@ -2,6 +2,26 @@
|
|
|
2
2
|
|
|
3
3
|
All notable changes to `homebridge-config-ui-x` will be documented in this file. This project tries to adhere to [Semantic Versioning](http://semver.org/).
|
|
4
4
|
|
|
5
|
+
## v5.4.2 (Unreleased)
|
|
6
|
+
|
|
7
|
+
### UI Changes
|
|
8
|
+
|
|
9
|
+
- refreshed icons: security system
|
|
10
|
+
- refreshed icons: lock mechanism
|
|
11
|
+
- refreshed icons: irrigation system + valves
|
|
12
|
+
- refreshed icons: light, leak, motion, occ. sensor
|
|
13
|
+
|
|
14
|
+
### Other Changes
|
|
15
|
+
|
|
16
|
+
- fix saving custom attributes for ui layouts
|
|
17
|
+
- update `@homebridge/node-pty-prebuilt-multiarch` to `v0.14-beta`
|
|
18
|
+
|
|
19
|
+
### Homebridge Dependencies
|
|
20
|
+
|
|
21
|
+
- `@homebridge/hap-client` @ `v3.1.1`
|
|
22
|
+
- `@homebridge/node-pty-prebuilt-multiarch` @ `v0.14.1-beta`
|
|
23
|
+
- `@homebridge/plugin-ui-utils` @ `v2.1.0`
|
|
24
|
+
|
|
5
25
|
## v5.4.1 (2025-08-05)
|
|
6
26
|
|
|
7
27
|
### UI Changes
|
package/package.json
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "homebridge-config-ui-x",
|
|
3
3
|
"displayName": "Homebridge UI",
|
|
4
|
-
"version": "5.4.1",
|
|
4
|
+
"version": "5.4.2-beta.1",
|
|
5
5
|
"description": "A web based management, configuration and control platform for Homebridge.",
|
|
6
6
|
"author": "oznu <dev@oz.nu>",
|
|
7
7
|
"license": "MIT",
|
|
@@ -82,7 +82,7 @@
|
|
|
82
82
|
"@fastify/multipart": "9.0.3",
|
|
83
83
|
"@fastify/static": "8.2.0",
|
|
84
84
|
"@homebridge/hap-client": "3.1.1",
|
|
85
|
-
"@homebridge/node-pty-prebuilt-multiarch": "0.
|
|
85
|
+
"@homebridge/node-pty-prebuilt-multiarch": "0.14.1-beta.1",
|
|
86
86
|
"@nestjs/axios": "4.0.1",
|
|
87
87
|
"@nestjs/common": "11.1.5",
|
|
88
88
|
"@nestjs/core": "11.1.5",
|
|
@@ -1,9 +1,9 @@
|
|
|
1
1
|
<svg width="32px" height="32px" viewBox="0 0 32 32" xmlns="http://www.w3.org/2000/svg">
|
|
2
2
|
<!-- outer casing -->
|
|
3
|
-
<rect x="3" y="1" width="25" height="30" rx="3" stroke="#7f7f7f" fill="none" stroke-width="1.2" />
|
|
3
|
+
<rect x="3.5" y="1" width="25" height="30" rx="3" stroke="#7f7f7f" fill="none" stroke-width="1.2" />
|
|
4
4
|
|
|
5
5
|
<!-- leaves -->
|
|
6
|
-
<g transform="translate(
|
|
6
|
+
<g transform="translate(5.1, 3) scale(0.68)">
|
|
7
7
|
<path
|
|
8
8
|
fill="#7f7f7f"
|
|
9
9
|
class="leaves"
|
|
@@ -12,19 +12,19 @@
|
|
|
12
12
|
</g>
|
|
13
13
|
|
|
14
14
|
<!-- grille horizontal lines -->
|
|
15
|
-
<line stroke-linecap="round" x1="
|
|
16
|
-
<line stroke-linecap="round" x1="
|
|
17
|
-
<line stroke-linecap="round" x1="
|
|
15
|
+
<line stroke-linecap="round" x1="7" y1="26" x2="25" y2="26" stroke="#7f7f7f" stroke-width="0.5" />
|
|
16
|
+
<line stroke-linecap="round" x1="7" y1="27.5" x2="25" y2="27.5" stroke="#7f7f7f" stroke-width="0.5" />
|
|
17
|
+
<line stroke-linecap="round" x1="7" y1="29" x2="25" y2="29" stroke="#7f7f7f" stroke-width="0.5" />
|
|
18
18
|
|
|
19
19
|
<!-- grille vertical lines -->
|
|
20
|
-
<line stroke-linecap="round" x1="
|
|
21
|
-
<line stroke-linecap="round" x1="
|
|
22
|
-
<line stroke-linecap="round" x1="
|
|
23
|
-
<line stroke-linecap="round" x1="
|
|
24
|
-
<line stroke-linecap="round" x1="
|
|
25
|
-
<line stroke-linecap="round" x1="
|
|
26
|
-
<line stroke-linecap="round" x1="
|
|
27
|
-
<line stroke-linecap="round" x1="
|
|
28
|
-
<line stroke-linecap="round" x1="
|
|
29
|
-
<line stroke-linecap="round" x1="
|
|
20
|
+
<line stroke-linecap="round" x1="7" y1="26" x2="7" y2="29" stroke="#7f7f7f" stroke-width="0.5" />
|
|
21
|
+
<line stroke-linecap="round" x1="9" y1="26" x2="9" y2="29" stroke="#7f7f7f" stroke-width="0.5" />
|
|
22
|
+
<line stroke-linecap="round" x1="11" y1="26" x2="11" y2="29" stroke="#7f7f7f" stroke-width="0.5" />
|
|
23
|
+
<line stroke-linecap="round" x1="13" y1="26" x2="13" y2="29" stroke="#7f7f7f" stroke-width="0.5" />
|
|
24
|
+
<line stroke-linecap="round" x1="15" y1="26" x2="15" y2="29" stroke="#7f7f7f" stroke-width="0.5" />
|
|
25
|
+
<line stroke-linecap="round" x1="17" y1="26" x2="17" y2="29" stroke="#7f7f7f" stroke-width="0.5" />
|
|
26
|
+
<line stroke-linecap="round" x1="19" y1="26" x2="19" y2="29" stroke="#7f7f7f" stroke-width="0.5" />
|
|
27
|
+
<line stroke-linecap="round" x1="21" y1="26" x2="21" y2="29" stroke="#7f7f7f" stroke-width="0.5" />
|
|
28
|
+
<line stroke-linecap="round" x1="23" y1="26" x2="23" y2="29" stroke="#7f7f7f" stroke-width="0.5" />
|
|
29
|
+
<line stroke-linecap="round" x1="25" y1="26" x2="25" y2="29" stroke="#7f7f7f" stroke-width="0.5" />
|
|
30
30
|
</svg>
|
|
@@ -6,7 +6,17 @@
|
|
|
6
6
|
<rect class="outline" x="9.6" y="2.6" width="12.8" height="26.6" stroke="#7f7f7f" fill="none" stroke-width="1" />
|
|
7
7
|
|
|
8
8
|
<!-- top panel -->
|
|
9
|
-
<rect
|
|
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
|
+
/>
|
|
10
20
|
|
|
11
21
|
<!-- bottom panel -->
|
|
12
22
|
<rect
|
|
@@ -18,11 +28,22 @@
|
|
|
18
28
|
stroke="#7f7f7f"
|
|
19
29
|
fill-opacity="0"
|
|
20
30
|
stroke-width="0.5"
|
|
31
|
+
rx="0.25"
|
|
21
32
|
/>
|
|
22
33
|
|
|
23
34
|
<!-- wider floor -->
|
|
24
35
|
<line x1="0" y1="31" x2="32" y2="31" stroke="#7f7f7f" stroke-width="1.5" />
|
|
25
36
|
|
|
26
37
|
<!-- door handle -->
|
|
27
|
-
<rect
|
|
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
|
+
/>
|
|
28
49
|
</svg>
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
<svg width="32px" height="32px" viewBox="0 0 32 32" xmlns="http://www.w3.org/2000/svg">
|
|
2
2
|
<!-- fan icon -->
|
|
3
|
-
<g transform="translate(
|
|
3
|
+
<g transform="translate(-0.85, 0.2) scale(0.99)">
|
|
4
4
|
<path
|
|
5
5
|
class="fan-blades"
|
|
6
6
|
fill="#7f7f7f"
|
|
@@ -11,5 +11,5 @@
|
|
|
11
11
|
</g>
|
|
12
12
|
|
|
13
13
|
<!-- middle circle -->
|
|
14
|
-
<circle cx="
|
|
14
|
+
<circle cx="16" cy="16" r="3.6" stroke="#7f7f7f" stroke-width="2" fill="#1976d2" fill-opacity="0.5" />
|
|
15
15
|
</svg>
|
|
@@ -33,7 +33,7 @@
|
|
|
33
33
|
<line x1="26" y1="31" x2="29" y2="31" stroke="#7f7f7f" stroke-width="1.5" stroke-linecap="round" />
|
|
34
34
|
|
|
35
35
|
<!-- left garage line -->
|
|
36
|
-
<line x1="6" y1="17" x2="6" y2="31" stroke="#7f7f7f" stroke-width="1.5" />
|
|
36
|
+
<line x1="6" y1="17" x2="6" y2="31" stroke="#7f7f7f" stroke-width="1.5" stroke-linecap="" />
|
|
37
37
|
|
|
38
38
|
<!-- right garage line -->
|
|
39
39
|
<line x1="26" y1="17" x2="26" y2="31" stroke="#7f7f7f" stroke-width="1.5" />
|
|
@@ -0,0 +1,34 @@
|
|
|
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>
|
|
@@ -0,0 +1,42 @@
|
|
|
1
|
+
<svg width="32px" height="32px" viewBox="0 0 32 32" xmlns="http://www.w3.org/2000/svg">
|
|
2
|
+
<!-- outer casing -->
|
|
3
|
+
<rect
|
|
4
|
+
class="red-outline"
|
|
5
|
+
x="3.5"
|
|
6
|
+
y="1"
|
|
7
|
+
width="25"
|
|
8
|
+
height="30"
|
|
9
|
+
rx="3"
|
|
10
|
+
stroke="#7f7f7f"
|
|
11
|
+
fill="none"
|
|
12
|
+
stroke-width="1.2"
|
|
13
|
+
/>
|
|
14
|
+
|
|
15
|
+
<!-- water droplet -->
|
|
16
|
+
<g transform="translate(1.8, -4.3), scale(0.85)">
|
|
17
|
+
<path
|
|
18
|
+
d="M23.61 24.58C23.61 28.67 20.44 31.99 16.56 31.99C12.68 31.99 9.52 28.67 9.52 24.58C9.52 20.49 12.68 17.13 16.56 10.87C20.44 17.13 23.61 20.49 23.61 24.58Z"
|
|
19
|
+
fill="#1976d2"
|
|
20
|
+
fill-opacity="0.25"
|
|
21
|
+
stroke="#7f7f7f"
|
|
22
|
+
stroke-width="1"
|
|
23
|
+
/>
|
|
24
|
+
</g>
|
|
25
|
+
|
|
26
|
+
<!-- grille horizontal lines -->
|
|
27
|
+
<line stroke-linecap="round" x1="7" y1="26" x2="25" y2="26" stroke="#7f7f7f" stroke-width="0.5" />
|
|
28
|
+
<line stroke-linecap="round" x1="7" y1="27.5" x2="25" y2="27.5" stroke="#7f7f7f" stroke-width="0.5" />
|
|
29
|
+
<line stroke-linecap="round" x1="7" y1="29" x2="25" y2="29" stroke="#7f7f7f" stroke-width="0.5" />
|
|
30
|
+
|
|
31
|
+
<!-- grille vertical lines -->
|
|
32
|
+
<line stroke-linecap="round" x1="7" y1="26" x2="7" y2="29" stroke="#7f7f7f" stroke-width="0.5" />
|
|
33
|
+
<line stroke-linecap="round" x1="9" y1="26" x2="9" y2="29" stroke="#7f7f7f" stroke-width="0.5" />
|
|
34
|
+
<line stroke-linecap="round" x1="11" y1="26" x2="11" y2="29" stroke="#7f7f7f" stroke-width="0.5" />
|
|
35
|
+
<line stroke-linecap="round" x1="13" y1="26" x2="13" y2="29" stroke="#7f7f7f" stroke-width="0.5" />
|
|
36
|
+
<line stroke-linecap="round" x1="15" y1="26" x2="15" y2="29" stroke="#7f7f7f" stroke-width="0.5" />
|
|
37
|
+
<line stroke-linecap="round" x1="17" y1="26" x2="17" y2="29" stroke="#7f7f7f" stroke-width="0.5" />
|
|
38
|
+
<line stroke-linecap="round" x1="19" y1="26" x2="19" y2="29" stroke="#7f7f7f" stroke-width="0.5" />
|
|
39
|
+
<line stroke-linecap="round" x1="21" y1="26" x2="21" y2="29" stroke="#7f7f7f" stroke-width="0.5" />
|
|
40
|
+
<line stroke-linecap="round" x1="23" y1="26" x2="23" y2="29" stroke="#7f7f7f" stroke-width="0.5" />
|
|
41
|
+
<line stroke-linecap="round" x1="25" y1="26" x2="25" y2="29" stroke="#7f7f7f" stroke-width="0.5" />
|
|
42
|
+
</svg>
|
|
@@ -0,0 +1,34 @@
|
|
|
1
|
+
<svg width="32px" height="32px" viewBox="0 0 32 32" xmlns="http://www.w3.org/2000/svg">
|
|
2
|
+
<!-- outer casing -->
|
|
3
|
+
<rect x="3.5" y="1" width="25" height="30" rx="3" stroke="#7f7f7f" fill="none" stroke-width="1.2" />
|
|
4
|
+
|
|
5
|
+
<!-- sun outline -->
|
|
6
|
+
<circle cx="16" cy="13.75" r="6" stroke="#ff9800" fill="none" stroke-width="1.2" stroke-opacity="0.5" />
|
|
7
|
+
|
|
8
|
+
<!-- sun rays, top first going clockwise -->
|
|
9
|
+
<line x1="16" y1="2.5" x2="16" y2="6.5" stroke="#ff9800" stroke-width="1.2" stroke-opacity="0.5" />
|
|
10
|
+
<line x1="24" y1="5.5" x2="21" y2="8.5" stroke="#ff9800" stroke-width="1.2" stroke-opacity="0.5" />
|
|
11
|
+
<line x1="23.25" y1="13.5" x2="27.25" y2="13.5" stroke="#ff9800" stroke-width="1.2" stroke-opacity="0.5" />
|
|
12
|
+
<line x1="21.25" y1="18.75" x2="24.25" y2="21.75" stroke="#ff9800" stroke-width="1.2" stroke-opacity="0.5" />
|
|
13
|
+
<line x1="16" y1="21" x2="16" y2="25" stroke="#ff9800" stroke-width="1.2" stroke-opacity="0.5" />
|
|
14
|
+
<line x1="10.75" y1="18.75" x2="7.75" y2="21.75" stroke="#ff9800" stroke-width="1.2" stroke-opacity="0.5" />
|
|
15
|
+
<line x1="4.75" y1="13.5" x2="8.75" y2="13.5" stroke="#ff9800" stroke-width="1.2" stroke-opacity="0.5" />
|
|
16
|
+
<line x1="8" y1="5.5" x2="11" y2="8.5" stroke="#ff9800" stroke-width="1.2" stroke-opacity="0.5" />
|
|
17
|
+
|
|
18
|
+
<!-- grille horizontal lines -->
|
|
19
|
+
<line stroke-linecap="round" x1="7" y1="26" x2="25" y2="26" stroke="#7f7f7f" stroke-width="0.5" />
|
|
20
|
+
<line stroke-linecap="round" x1="7" y1="27.5" x2="25" y2="27.5" stroke="#7f7f7f" stroke-width="0.5" />
|
|
21
|
+
<line stroke-linecap="round" x1="7" y1="29" x2="25" y2="29" stroke="#7f7f7f" stroke-width="0.5" />
|
|
22
|
+
|
|
23
|
+
<!-- grille vertical lines -->
|
|
24
|
+
<line stroke-linecap="round" x1="7" y1="26" x2="7" y2="29" stroke="#7f7f7f" stroke-width="0.5" />
|
|
25
|
+
<line stroke-linecap="round" x1="9" y1="26" x2="9" y2="29" stroke="#7f7f7f" stroke-width="0.5" />
|
|
26
|
+
<line stroke-linecap="round" x1="11" y1="26" x2="11" y2="29" stroke="#7f7f7f" stroke-width="0.5" />
|
|
27
|
+
<line stroke-linecap="round" x1="13" y1="26" x2="13" y2="29" stroke="#7f7f7f" stroke-width="0.5" />
|
|
28
|
+
<line stroke-linecap="round" x1="15" y1="26" x2="15" y2="29" stroke="#7f7f7f" stroke-width="0.5" />
|
|
29
|
+
<line stroke-linecap="round" x1="17" y1="26" x2="17" y2="29" stroke="#7f7f7f" stroke-width="0.5" />
|
|
30
|
+
<line stroke-linecap="round" x1="19" y1="26" x2="19" y2="29" stroke="#7f7f7f" stroke-width="0.5" />
|
|
31
|
+
<line stroke-linecap="round" x1="21" y1="26" x2="21" y2="29" stroke="#7f7f7f" stroke-width="0.5" />
|
|
32
|
+
<line stroke-linecap="round" x1="23" y1="26" x2="23" y2="29" stroke="#7f7f7f" stroke-width="0.5" />
|
|
33
|
+
<line stroke-linecap="round" x1="25" y1="26" x2="25" y2="29" stroke="#7f7f7f" stroke-width="0.5" />
|
|
34
|
+
</svg>
|
|
@@ -0,0 +1,39 @@
|
|
|
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>
|
|
@@ -0,0 +1,84 @@
|
|
|
1
|
+
<svg width="32px" height="32px" viewBox="0 0 32 32" xmlns="http://www.w3.org/2000/svg">
|
|
2
|
+
<!-- outer casing -->
|
|
3
|
+
<rect
|
|
4
|
+
class="orange-outline"
|
|
5
|
+
x="3.5"
|
|
6
|
+
y="1"
|
|
7
|
+
width="25"
|
|
8
|
+
height="30"
|
|
9
|
+
rx="3"
|
|
10
|
+
stroke="#7f7f7f"
|
|
11
|
+
fill="none"
|
|
12
|
+
stroke-width="1.2"
|
|
13
|
+
/>
|
|
14
|
+
|
|
15
|
+
<!-- human figure -->
|
|
16
|
+
<g transform="translate(7, -0.75), scale(0.075)">
|
|
17
|
+
<path
|
|
18
|
+
d="M190.85 83.94C190.85 70.36 180.09 59.24 166.93 59.24C153.78 59.24 143.02 70.36 143.02 83.94C143.02 97.53 153.78 108.65 166.93 108.65C180.09 108.65 190.85 97.53 190.85 83.94Z"
|
|
19
|
+
fill="#1976d2"
|
|
20
|
+
fill-opacity="0.25"
|
|
21
|
+
stroke="#7f7f7f"
|
|
22
|
+
stroke-width="7"
|
|
23
|
+
/>
|
|
24
|
+
<path
|
|
25
|
+
d="M232.24 175.95C210.12 175.95 190.98 163.6 180.22 145.69C179.08 143.72 169.99 127.91 168.86 125.93C164.67 118.52 156.9 114.2 148.53 114.2C145.54 114.2 142.55 114.81 139.56 116.05C135.37 117.82 114.45 126.67 76.78 142.6L76.78 200.66L100.69 200.66L100.69 159.28L121.62 150.02L88.73 324.17L113.85 324.17L134.78 225.36L160.49 250.06L160.49 324.17L184.4 324.17L184.4 230.92L159.89 205.6C164.19 183.36 166.59 171.01 167.06 168.54C182.61 188.3 205.93 200.66 232.24 200.66C232.24 195.72 232.24 178.42 232.24 175.95Z"
|
|
26
|
+
fill="#1976d2"
|
|
27
|
+
fill-opacity="0.25"
|
|
28
|
+
stroke="#7f7f7f"
|
|
29
|
+
stroke-width="7"
|
|
30
|
+
/>
|
|
31
|
+
</g>
|
|
32
|
+
|
|
33
|
+
<!-- motion lines, top to bottom -->
|
|
34
|
+
<rect
|
|
35
|
+
x="9"
|
|
36
|
+
y="9"
|
|
37
|
+
width="2"
|
|
38
|
+
height="1"
|
|
39
|
+
rx="0.2"
|
|
40
|
+
stroke="#7f7f7f"
|
|
41
|
+
fill="#1976d2"
|
|
42
|
+
fill-opacity="0.25"
|
|
43
|
+
stroke-width="0.25"
|
|
44
|
+
/>
|
|
45
|
+
<rect
|
|
46
|
+
x="7"
|
|
47
|
+
y="13"
|
|
48
|
+
width="3"
|
|
49
|
+
height="1"
|
|
50
|
+
rx="0.2"
|
|
51
|
+
stroke="#7f7f7f"
|
|
52
|
+
fill="#1976d2"
|
|
53
|
+
fill-opacity="0.25"
|
|
54
|
+
stroke-width="0.25"
|
|
55
|
+
/>
|
|
56
|
+
<rect
|
|
57
|
+
x="8"
|
|
58
|
+
y="17"
|
|
59
|
+
width="4"
|
|
60
|
+
height="1"
|
|
61
|
+
rx="0.2"
|
|
62
|
+
stroke="#7f7f7f"
|
|
63
|
+
fill="#1976d2"
|
|
64
|
+
fill-opacity="0.25"
|
|
65
|
+
stroke-width="0.25"
|
|
66
|
+
/>
|
|
67
|
+
|
|
68
|
+
<!-- grille horizontal lines -->
|
|
69
|
+
<line stroke-linecap="round" x1="7" y1="26" x2="25" y2="26" stroke="#7f7f7f" stroke-width="0.5" />
|
|
70
|
+
<line stroke-linecap="round" x1="7" y1="27.5" x2="25" y2="27.5" stroke="#7f7f7f" stroke-width="0.5" />
|
|
71
|
+
<line stroke-linecap="round" x1="7" y1="29" x2="25" y2="29" stroke="#7f7f7f" stroke-width="0.5" />
|
|
72
|
+
|
|
73
|
+
<!-- grille vertical lines -->
|
|
74
|
+
<line stroke-linecap="round" x1="7" y1="26" x2="7" y2="29" stroke="#7f7f7f" stroke-width="0.5" />
|
|
75
|
+
<line stroke-linecap="round" x1="9" y1="26" x2="9" y2="29" stroke="#7f7f7f" stroke-width="0.5" />
|
|
76
|
+
<line stroke-linecap="round" x1="11" y1="26" x2="11" y2="29" stroke="#7f7f7f" stroke-width="0.5" />
|
|
77
|
+
<line stroke-linecap="round" x1="13" y1="26" x2="13" y2="29" stroke="#7f7f7f" stroke-width="0.5" />
|
|
78
|
+
<line stroke-linecap="round" x1="15" y1="26" x2="15" y2="29" stroke="#7f7f7f" stroke-width="0.5" />
|
|
79
|
+
<line stroke-linecap="round" x1="17" y1="26" x2="17" y2="29" stroke="#7f7f7f" stroke-width="0.5" />
|
|
80
|
+
<line stroke-linecap="round" x1="19" y1="26" x2="19" y2="29" stroke="#7f7f7f" stroke-width="0.5" />
|
|
81
|
+
<line stroke-linecap="round" x1="21" y1="26" x2="21" y2="29" stroke="#7f7f7f" stroke-width="0.5" />
|
|
82
|
+
<line stroke-linecap="round" x1="23" y1="26" x2="23" y2="29" stroke="#7f7f7f" stroke-width="0.5" />
|
|
83
|
+
<line stroke-linecap="round" x1="25" y1="26" x2="25" y2="29" stroke="#7f7f7f" stroke-width="0.5" />
|
|
84
|
+
</svg>
|
|
@@ -0,0 +1,49 @@
|
|
|
1
|
+
<svg width="32px" height="32px" viewBox="0 0 32 32" xmlns="http://www.w3.org/2000/svg">
|
|
2
|
+
<!-- outer casing -->
|
|
3
|
+
<rect
|
|
4
|
+
class="orange-outline"
|
|
5
|
+
x="3.5"
|
|
6
|
+
y="1"
|
|
7
|
+
width="25"
|
|
8
|
+
height="30"
|
|
9
|
+
rx="3"
|
|
10
|
+
stroke="#7f7f7f"
|
|
11
|
+
fill="none"
|
|
12
|
+
stroke-width="1.2"
|
|
13
|
+
/>
|
|
14
|
+
|
|
15
|
+
<!-- human figure -->
|
|
16
|
+
<g transform="translate(4.75, -0.75), scale(0.075)">
|
|
17
|
+
<path
|
|
18
|
+
d="M190.85 83.94C190.85 70.36 180.09 59.24 166.93 59.24C153.78 59.24 143.02 70.36 143.02 83.94C143.02 97.53 153.78 108.65 166.93 108.65C180.09 108.65 190.85 97.53 190.85 83.94Z"
|
|
19
|
+
fill="#ff9800"
|
|
20
|
+
fill-opacity="0.25"
|
|
21
|
+
stroke="#7f7f7f"
|
|
22
|
+
stroke-width="7"
|
|
23
|
+
/>
|
|
24
|
+
<path
|
|
25
|
+
d="M232.24 175.95C210.12 175.95 190.98 163.6 180.22 145.69C179.08 143.72 169.99 127.91 168.86 125.93C164.67 118.52 156.9 114.2 148.53 114.2C145.54 114.2 142.55 114.81 139.56 116.05C135.37 117.82 114.45 126.67 76.78 142.6L76.78 200.66L100.69 200.66L100.69 159.28L121.62 150.02L88.73 324.17L113.85 324.17L134.78 225.36L160.49 250.06L160.49 324.17L184.4 324.17L184.4 230.92L159.89 205.6C164.19 183.36 166.59 171.01 167.06 168.54C182.61 188.3 205.93 200.66 232.24 200.66C232.24 195.72 232.24 178.42 232.24 175.95Z"
|
|
26
|
+
fill="#ff9800"
|
|
27
|
+
fill-opacity="0.25"
|
|
28
|
+
stroke="#7f7f7f"
|
|
29
|
+
stroke-width="7"
|
|
30
|
+
/>
|
|
31
|
+
</g>
|
|
32
|
+
|
|
33
|
+
<!-- grille horizontal lines -->
|
|
34
|
+
<line stroke-linecap="round" x1="7" y1="26" x2="25" y2="26" stroke="#7f7f7f" stroke-width="0.5" />
|
|
35
|
+
<line stroke-linecap="round" x1="7" y1="27.5" x2="25" y2="27.5" stroke="#7f7f7f" stroke-width="0.5" />
|
|
36
|
+
<line stroke-linecap="round" x1="7" y1="29" x2="25" y2="29" stroke="#7f7f7f" stroke-width="0.5" />
|
|
37
|
+
|
|
38
|
+
<!-- grille vertical lines -->
|
|
39
|
+
<line stroke-linecap="round" x1="7" y1="26" x2="7" y2="29" stroke="#7f7f7f" stroke-width="0.5" />
|
|
40
|
+
<line stroke-linecap="round" x1="9" y1="26" x2="9" y2="29" stroke="#7f7f7f" stroke-width="0.5" />
|
|
41
|
+
<line stroke-linecap="round" x1="11" y1="26" x2="11" y2="29" stroke="#7f7f7f" stroke-width="0.5" />
|
|
42
|
+
<line stroke-linecap="round" x1="13" y1="26" x2="13" y2="29" stroke="#7f7f7f" stroke-width="0.5" />
|
|
43
|
+
<line stroke-linecap="round" x1="15" y1="26" x2="15" y2="29" stroke="#7f7f7f" stroke-width="0.5" />
|
|
44
|
+
<line stroke-linecap="round" x1="17" y1="26" x2="17" y2="29" stroke="#7f7f7f" stroke-width="0.5" />
|
|
45
|
+
<line stroke-linecap="round" x1="19" y1="26" x2="19" y2="29" stroke="#7f7f7f" stroke-width="0.5" />
|
|
46
|
+
<line stroke-linecap="round" x1="21" y1="26" x2="21" y2="29" stroke="#7f7f7f" stroke-width="0.5" />
|
|
47
|
+
<line stroke-linecap="round" x1="23" y1="26" x2="23" y2="29" stroke="#7f7f7f" stroke-width="0.5" />
|
|
48
|
+
<line stroke-linecap="round" x1="25" y1="26" x2="25" y2="29" stroke="#7f7f7f" stroke-width="0.5" />
|
|
49
|
+
</svg>
|
|
@@ -0,0 +1,19 @@
|
|
|
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>
|
|
@@ -13,6 +13,6 @@
|
|
|
13
13
|
<circle class="long" cx="16" cy="23.5" r="5" stroke="#7f7f7f" stroke-width="1" fill="none" fill-opacity="0.5" />
|
|
14
14
|
|
|
15
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" />
|
|
17
|
-
<line x1="21" y1="23.5" x2="27" y2="23.5" stroke="#7f7f7f" stroke-width="0.5" />
|
|
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
18
|
</svg>
|
|
@@ -0,0 +1,22 @@
|
|
|
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>
|
|
@@ -0,0 +1,25 @@
|
|
|
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>
|
|
@@ -0,0 +1,34 @@
|
|
|
1
|
+
<svg width="32" height="32" viewBox="0 0 32 32" xmlns="http://www.w3.org/2000/svg">
|
|
2
|
+
<!-- small drops, left to right -->
|
|
3
|
+
<circle class="drop drop-out" fill="#1976d2" fill-opacity="0" cx="1" cy="16" r="1" />
|
|
4
|
+
<circle class="drop drop-out" fill="#1976d2" fill-opacity="0" cx="6" cy="8" r="1" />
|
|
5
|
+
<circle class="drop drop-out" fill="#1976d2" fill-opacity="0" cx="16" cy="4" r="1" />
|
|
6
|
+
<circle class="drop drop-out" fill="#1976d2" fill-opacity="0" cx="26" cy="8" r="1" />
|
|
7
|
+
<circle class="drop drop-out" fill="#1976d2" fill-opacity="0" cx="31" cy="16" r="1" />
|
|
8
|
+
|
|
9
|
+
<!-- large drops, left to right -->
|
|
10
|
+
<circle class="drop drop-in" fill="#1976d2" fill-opacity="0" cx="7" cy="16" r="1.5" />
|
|
11
|
+
<circle class="drop drop-in" fill="#1976d2" fill-opacity="0" cx="25" cy="16" r="1.5" />
|
|
12
|
+
<circle class="drop drop-in" fill="#1976d2" fill-opacity="0" cx="10.5" cy="11.5" r="1.5" />
|
|
13
|
+
<circle class="drop drop-in" fill="#1976d2" fill-opacity="0" cx="21.5" cy="11.5" r="1.5" />
|
|
14
|
+
<circle class="drop drop-in" fill="#1976d2" fill-opacity="0" cx="16" cy="9" r="1.5" />
|
|
15
|
+
|
|
16
|
+
<!-- vertical pipe -->
|
|
17
|
+
<line x1="16" y1="16" x2="16" y2="31" stroke="#7f7f7f" stroke-width="2" stroke-linecap="round" />
|
|
18
|
+
|
|
19
|
+
<!-- spout -->
|
|
20
|
+
<line x1="14" y1="16" x2="18" y2="16" stroke="#7f7f7f" stroke-width="4" stroke-linecap="round" />
|
|
21
|
+
|
|
22
|
+
<!-- grass -->
|
|
23
|
+
<line
|
|
24
|
+
class="grass"
|
|
25
|
+
x1="4"
|
|
26
|
+
y1="31"
|
|
27
|
+
x2="28"
|
|
28
|
+
y2="31"
|
|
29
|
+
stroke="#7f7f7f"
|
|
30
|
+
stroke-opacity="0.5"
|
|
31
|
+
stroke-width="10"
|
|
32
|
+
stroke-linecap="round"
|
|
33
|
+
/>
|
|
34
|
+
</svg>
|
|
@@ -0,0 +1,32 @@
|
|
|
1
|
+
<svg width="32" height="32" viewBox="0 0 32 32" xmlns="http://www.w3.org/2000/svg">
|
|
2
|
+
<!-- top horizontal pipe -->
|
|
3
|
+
<line x1="1" y1="1" x2="16" y2="1" stroke="#7f7f7f" stroke-width="2" stroke-linecap="round" />
|
|
4
|
+
|
|
5
|
+
<!-- left vertical pipe -->
|
|
6
|
+
<line x1="1" y1="1" x2="1" y2="31" stroke="#7f7f7f" stroke-width="2" stroke-linecap="round" />
|
|
7
|
+
|
|
8
|
+
<!-- pipe to head -->
|
|
9
|
+
<line x1="16" y1="1" x2="16" y2="3" stroke="#7f7f7f" stroke-width="2" stroke-linecap="round" />
|
|
10
|
+
|
|
11
|
+
<!-- shower head -->
|
|
12
|
+
<path d="M8 11 A8 7 0 0 1 24 11" fill="none" stroke="#7f7f7f" stroke-width="2" />
|
|
13
|
+
<line x1="7" y1="11" x2="25" y2="11" stroke="#7f7f7f" stroke-width="2" stroke-linecap="round" />
|
|
14
|
+
|
|
15
|
+
<!-- large drops, left to right -->
|
|
16
|
+
<circle class="drop drop-top" fill="#1976d2" fill-opacity="0" cx="8" cy="16" r="1.25" />
|
|
17
|
+
<circle class="drop drop-top" fill="#1976d2" fill-opacity="0" cx="13.3" cy="16" r="1.25" />
|
|
18
|
+
<circle class="drop drop-top" fill="#1976d2" fill-opacity="0" cx="18.6" cy="16" r="1.25" />
|
|
19
|
+
<circle class="drop drop-top" fill="#1976d2" fill-opacity="0" cx="24" cy="16" r="1.25" />
|
|
20
|
+
|
|
21
|
+
<!-- middle drops, left to right -->
|
|
22
|
+
<circle class="drop drop-middle" fill="#1976d2" fill-opacity="0" cx="8" cy="22" r="1" />
|
|
23
|
+
<circle class="drop drop-middle" fill="#1976d2" fill-opacity="0" cx="13.3" cy="22" r="1" />
|
|
24
|
+
<circle class="drop drop-middle" fill="#1976d2" fill-opacity="0" cx="18.6" cy="22" r="1" />
|
|
25
|
+
<circle class="drop drop-middle" fill="#1976d2" fill-opacity="0" cx="24" cy="22" r="1" />
|
|
26
|
+
|
|
27
|
+
<!-- small drops, left to right -->
|
|
28
|
+
<circle class="drop drop-bottom" fill="#1976d2" fill-opacity="0" cx="8" cy="28" r="0.75" />
|
|
29
|
+
<circle class="drop drop-bottom" fill="#1976d2" fill-opacity="0" cx="13.3" cy="28" r="0.75" />
|
|
30
|
+
<circle class="drop drop-bottom" fill="#1976d2" fill-opacity="0" cx="18.6" cy="28" r="0.75" />
|
|
31
|
+
<circle class="drop drop-bottom" fill="#1976d2" fill-opacity="0" cx="24" cy="28" r="0.75" />
|
|
32
|
+
</svg>
|
|
@@ -6,13 +6,13 @@
|
|
|
6
6
|
<rect x="2.8" y="2.6" width="12.4" height="26.6" stroke="#7f7f7f" fill="none" stroke-width="1" />
|
|
7
7
|
|
|
8
8
|
<!-- left window divider -->
|
|
9
|
-
<rect x="3.66" y="15.65" width="10.68" height="0.5" stroke="#7f7f7f" fill="none" stroke-width="0.5" />
|
|
9
|
+
<rect x="3.66" y="15.65" width="10.68" height="0.5" stroke="#7f7f7f" fill="none" stroke-width="0.5" rx="2" />
|
|
10
10
|
|
|
11
11
|
<!-- right window frame -->
|
|
12
12
|
<rect x="16.8" y="2.6" width="12.4" height="26.6" stroke="#7f7f7f" fill="none" stroke-width="1" />
|
|
13
13
|
|
|
14
14
|
<!-- right window divider -->
|
|
15
|
-
<rect x="17.66" y="15.65" width="10.68" height="0.5" stroke="#7f7f7f" fill="none" stroke-width="0.5" />
|
|
15
|
+
<rect x="17.66" y="15.65" width="10.68" height="0.5" stroke="#7f7f7f" fill="none" stroke-width="0.5" rx="2" />
|
|
16
16
|
|
|
17
17
|
<!-- blind -->
|
|
18
18
|
<rect
|