Phase 3B Help System

This commit is contained in:
Nick Beckley 2026-06-04 20:09:47 +01:00
parent 7ab5ccf374
commit bbd7c548e0
26 changed files with 184 additions and 56 deletions

View File

@ -1,5 +0,0 @@
https://dc.services.visualstudio.com/v2/track
Content-Type:application/x-json-stream
Content-Encoding:gzip
H4sIAAAAAAAACpRTy27cOBD8FYFnUeZLlKibMd5FBk7Wg8RIFntrka0MEZkcUJSTwJh/X1AzgZPcciOKrO7qquYLCfCEZCC3p9NfzxjyQmqS/QYJJjRlmjL1yPuhbYdWNr3oW87Uf6Qm/h6/k4F0ylpuDVKJGqlyrKWjnCx1Dg1n3DHRqlITPi9keCHgG4fP3mITl4+YFh8DGcgnH1z8WnqDb+wcV9ekOOM+LBmCLWL+2e/u6dvbw+PD4fJqwaWQG+/IQEB0I5ecUQYgqVKAFEbRU4fYoYTWgp0uNB8ypgBzs7gvr/1dzAGzHUQjZMOoMORcEwcZiuQRFnz8fioqNovuCl5v8HYcXsgzJjKI+oeZl3I3dvY3Nj49QXA3kw9+OZKanFI8YcoeNzu2CecZso+hujbZzR5DJjV5+FAdZshTTE+/ePThMvr+DyZ/B/boA1b7OzIQxlE42SOdBNdU9Q4otNJQraWekFvTCU5qsosh+7DGdan2IePntKkkA/kb5gUv+m6TPfqMNq+pSP9Xl6zxm8+76ArASE0OKbrV5urVbs4a1khWLh/WfFpz9R6dT2gzlpke03ot/xtFaLGRdmtKGHJ1gHys3sByJAMx0FsOBgyAtnbCluHEHAPNOofaaXRKuM4po5xWhlmtYOTKQcvHqSBFd0m32hZK9Kzve3R0wnakCiyn4yglNa3WnFkt7VgYr7ZWD/MWh+2ZQiepwclRZThQo6SkTrbQCT11nShx/LDkmjhnxW+Hz5evsSnQzvXoNKdC8ZYqYzjtTdvRsetHM+oeW1sU3GMKOP9k1DtvU1zilKvrwlS/WPd+DeV7V9vyfPWBftsiu4v2C6aqRA4+lG2+pnw+n8//AwAA//8DADLvW0klBAAA

View File

@ -1,5 +0,0 @@
https://dc.services.visualstudio.com/v2/track
Content-Type:application/x-json-stream
Content-Encoding:gzip
H4sIAAAAAAAACpRTX2/cKBD/KhbPxgGMsfFbtOnpVrk2q3bVO93bmBk3KA5eYZy2iva7V3i3anNv94LQiJn5/eOVBXgm1rPb0+ndC4W0sJIlv5WUUIYLw4U+yq5vmr6pq07VStjmX1Yyf0/fWc9a7Zx0lnhNhrhG0fChHh1HJCuFRKEanWfCl4X1rwx8hfTiHVXz8pni4ufAeva3Dzh/zbvBV26aV6ziPNE+LAmCy2A+7Hf3/K/bw/HhcHm10JKbK4+sZ6DaQdZScAFQc62BOAyq40jUUg2NAzde2nxIFANM1YJPv/bjnAIl16tK1ZXgyrJzyRASZMgDLHT8fsooNonucr3cytu1f2UvFFmvyp9iXsbduMnfPC/D6ie8uZwJlqfM8hTnE8XkadNkozlNkPwciuum3eQpJFayh0/FYYI0zvH5jVCfLvz3/4P+MW9/943cmgh38xoS65nUgpXsPbhHH6jY37GeCUkK6474qKThukPg0NSWG1ObkaSzrZKsZLs5JB/WeV2KfUj0JW4EWM/+gGmhC/Tb6B59IpfWmFn9Y3IWDnHG1aXil/5SVKKqRUbysKbTmoqPhD6SS5T5HeN6nfefFmXU1rRbY6SQigOkx+JPWB5Zzyx0ToIFC2CcG6kRNAoUYESLZNAQaoUtaqvRaCuc0TBIjdDIYcwVVjLKdhdbwtQwdtqYlrfYGa5HsNwqqTi6zqpBdSMOwxsdi4dps8Z1QhPW3NKIXFsJ3Oq65lg30Coztq3K1vyU5Oq+FFlgpJfLX9kQGMSO0EiutGy4tlbyzjYtH9pusIPpqHEZ8z3FQNNvQr33Ls7LPKbiGp7ijXQf15D/e7EF6asP/Nvm0d3snigW2WPwIcf7auv5fD7/AAAA//8DACoRxvI2BAAA

View File

@ -1,5 +0,0 @@
https://dc.services.visualstudio.com/v2/track
Content-Type:application/x-json-stream
Content-Encoding:gzip
H4sIAAAAAAAACpSUT2/cNhDFv4rAsyjzP0XdDLtFDTfNIjbaorcRZxQL0UoLito0MPzdC2q3SNxbb8JAb/j4mzd8ZTMciXXs9nT66UxzXlnN8riXlFCOC8eFeZZtZ12nTKOCt176v1jNxkf6xjrmTYwyBuKaHHGDwvJeD5EjUpBColDWlJ7weWXdK4OxQTqPkZpl/Z3SOi4z69gf44zL13I2jE2clg2btEz0MK8Z5ljM/PZw98h/vT08fzxc/lppLeJmRNYxq0WQ3hNHNxhuBut4r6Xk0CuMSsoeKV5k45wpzTA1K375fj4ueaYcO9Uo3QiuAnurGUKGYrmHlZ6/nYqLHdF9qdd7ef/sXtmZEutU/S/MS7ubOI0369ZPdKbpBGmldBOX4xFmZDU7peVEKY+0YzlT6pd1zIVojB7aVkpswRvrsdVWaY9aELbCWwwYwBk3qGjtgH0bvBkMKmnQkTG9ZzXbwU0T5HGZq6v3u2mkObOafXyqDhPkYUnHd+ifLkQf/gfQYpt1TAurnfdktNYQXK8EoXfROdVHEH7oFclIwgbjg/RC6qBE0Nb51iOIUDp9gPgyzlQ93LOOCUkKdUt8UNJx0yJwsDpw57QbSMbglWQ1u1vmPM7bsq3Vw5zpc9rvyzr2M0wrXW56m+LLmCnmLRUIf7oSxkNacIu5+h4AKRrRaCGKaMunLVefCMdEMVPB8Zy2a7//SJRTu+huS4nmXB0gv1S/wPrCOhagjRICBAAX40BW0CBQgBMeyaEjNAo9mmDQmSCiM9BLg2BlP5QKqxmVvFV7xL2JAC1GbgYgbvoh8hYAOVmrowUCsvIdx+rjVHQQW2EINQ80IDdBAg9Ga47agldu8F4NPyC5hkWK0gzpfFnW3YFDbAmd5MpIy00IkrfBet77tg+9a8nG4vmR0kzTD6A+jDEt6zLk6pq16h26T9tcHpxqz93XceZ/7zO6X+IXSlWZMYxz2a/rWN9qdiRYt0TH/b3qXtmhLFf1vD9byjbBtzV7ypDydrpWrWikFO7t7e3tHwAAAP//AwBVXoe28wQAAA==

View File

@ -1,5 +0,0 @@
https://dc.services.visualstudio.com/v2/track
Content-Type:application/x-json-stream
Content-Encoding:gzip
H4sIAAAAAAAACpSUXW/jKBSG/4rFtXEBY2x81013tFGn02ianV3tHYbjFNWBCHBnqyr/fYSTqumM9mLvrGPe8/GcF16RU3tAPbo+HH5/BpciKlGyS4gRJjARmPAt7fpG9IxXNRNMEPoPKpG9hRfUo5ZrTbUEXIMAzA1p8FCPGhsDkhJqCGt4zql2EfWvSNnKwLPVUPn4DUK03qEe/WWd8d9zbWUrPfnZVMFPsHYxKadzM1/Wq1v8+Xqzvd+cTkWIWVxZg3rU1ETStgVsxMgxHxuBh5pSrAZmNKN0MKBPMusSBKemKpqn9/rGJwdJ96xidUUwk+hYIqOSyi0PKsL25ZC7WBDd5Hi5hJfP/hU9Q0A9K99gntJd6cle7eMw28lcTX63s2638m60uzmolAuX6BD8AUKysMD5zToVXj773S7nQ5/UFAGVaAthb52aTj9uYFTzlB78HBYy0Tz91xnUIzUnj0q0kJympWxxHmY1WXDpF+1F4fuHYjOpNPqw/7CkhxP79f9Af6f0o3VQrG9QjwgFZuoO8MiowLwzCqumlliIWoxAtWwZRSVaeZesm/0ci7VLsDtT+9DfddCPNoFOc8gz/S2y2TbBm1mn4n3BlFSkqgnJojkd5lR8BWMD6AR5iG2Yz/l+kjDBFtEnO8EveFZzCOBSsVHpsfhDxUfUI6k6TZVUUimh9QgNgZEYogRpDQgjwHBmWsMlN4JLogVXA+VGNXQYcwSVCLLJipOvB9UK2UksuGaYg+ywNC3FDdNEd60UnWQf4Bb3U9Yp3REOpsYSRoO5pApLXtfY1I1qmRjblo0XnM6GoCRTvzThnxHM2UtfTtZ+m93A8+keL30KYzowgmLGaYO5lBR3smnx0HaDHEQHjc6TrbyL/g3kNwiDjzblR+TOOrtX089H3jdzC8HBdLGdO6uDj35MxdmWxYd9fZ1dfsWKxaLfrcP/Lsa48foJQpGNpay7WObxeDz+AAAA//8DANXWaeQMBQAA

View File

@ -1,5 +0,0 @@
https://dc.services.visualstudio.com/v2/track
Content-Type:application/x-json-stream
Content-Encoding:gzip
H4sIAAAAAAAACpSUTW/cNhCG/4rAsyjzm6Juht2irpt6ES/SojeSM7KFaKUFRW0aGPvfA2o3SNxbb8JA78zwmXfmjUz+gKQjt8fjLyec8kJqkoctJJgwlBnK1J63nTadUI3QTlvO/yE1GR7xK+mIVTHy6JBKNEgVME2D7CMFQMcZBya0Kjn9y0K6N+KHBvA0RGzm5ROmZZgn0pG/hgnmL6W2H5o4zis0aR7xYVqyn2Jp5s+Hu0f6x+1u/7S7/LXgUsTNAKQjWjLHrUUKpldU9drQIDmnPgiIgvMAGC+yYcqYJj82C3z+UR/mPGGOnWiEbBgVjpxrAj770nLwC+6/HksXG6L7Eq+38PbZvZETJtKJ+jvMS7qbOA43eT6OeMLx6NOC6SbOh4OfgNTkmOYjpjzghmV76Tj6PMxTdS12Nw44ZVKTp+dqN/rcz+nwjtXzBcHD/yBwwhRIRyTT0liLSkrpnQmCIVgTjREhemb7IJBHZNop67hlXDrBnNTGthY8cyXTyzgHP/6+bPycYKEFZoURqNAJZYyLDGWLvbbIwBsTTBsdyNYK1UIrvfOeu4A2OhOLQT74+DpMWD3ck44wjgJki7QX3FDVgqdeS0eNkaZHHp0VnNTkbp7yMK3zulQPU8aXtPEjHfnVjwteyN2m+DpkjHlNBerfphTbpRnWmKsfDuCsYY1krIjWfFxz9RFhSBgzFrz7tF7z/UcijNhEd2tKOOVq5/Nr9ZtfXgsV30buXXmqibFHzbBnwLxhFtCAQVACLCinwCjHolE+cAVe89CXCKkJFsNVm8ed61sRQqCAmlEFGqlTXlEowEPrNLP4jmP1NBadjy1TCJI67IEqxz11SkoKUnsrTG+t6H9CcjUfZwUw4OmyrVsHBqBFMJwKxTVVznHaOm1psG1wwbSoY+n5EdOE40+gPgwxzcvc5+rq3eoduo/rVC5Otfn4yzDRf7cZ3c/xM6aqzNgPU1mw61jPNTmgX9aEh+1gdW9kV7ar2m93S+jG2bYmz9mnvB6vUc0azpk5n8/nbwAAAP//AwDcoTOW9AQAAA==

View File

@ -1,5 +0,0 @@
https://dc.services.visualstudio.com/v2/track
Content-Type:application/x-json-stream
Content-Encoding:gzip
H4sIAAAAAAAACoxUTW/bOBD9KwLPpkJSFCUK2IPhtFgjTWMk7u5ibxQ5jInIokFRToMi/31BWa6dooe9CaP5eO/NG/5AvdoDatDycPh0hD4OaIGim0KMMIGJwIRvad2UomE8ryiXTBT/ogVyd/CGGlRxramWgAsQgLkhJW4Lq7ExICmhhrCSp57qeUDND6RcbuDoNOR++AvC4HyPGvS3641/TbOVy3XnR5MH38G6H6LqdQLzdb26w1+Wm+3D5pQ1wJCKc2dQg8qCSFpVgI2wHHNbCtwWlGLVMqMZpa0BfSpzfYTQqy4fzMtlvvGxh6gblrMiJ5hJ9L5ARkWVILdqgO3bIaGYJLpN8cUUnj6bH+gIATVscRbz1O5Gd+5mP7Sj68xNVOEZog1qD68+vMBRdWiBDsEfIEQHkzYPT9kFEiU5yZlghKAFuld653rI1rfZQ5cIK10TDqbAEqzBXFKFJS8KbIpSVUzYqmIWLdAdhB66q673Tgc/eBuzWfLsw5yV76PrRz8O2bqP8BxUPNV9Vt0AaIE2Y9u5YfcIyrxt/eOY/vVjl7isxhCgj9lGxV32pxp2qEFS1ZoqqaRSQmsLJQFLDFGCVAaEEWA4M5XhkhvBJdGCq5Zyo0ra2hRBC/QwxsMYz/p/vwKxDW6/B3NBsJ003nQqWh/2awN9dNal1ZwzJkN13cQqm3uuOgd9/CAyahChwExRA7aMCsxro7AqC4mFKIQFqmXF6Ekw657HnzoRaw0vbFnXopUtJcBsVXNS2ZYYbQstTdlCxSpS1VBLTUhbclq3UhMDtOQmsQvejDr+aoViWtDj2KfrzNaJ9qvr8XfBL4psgo9e+y4tzHXw9DZE2P9uayu/P/jBxcTfzqv9NsC979Pf+f5nzebipY+XGKQ7yKbTKzSHEmyNDeEM85ZUWLFS4oIayUvKKCsSwluvXyBkyWDK9dNOzp56eMqWQe9cBB3HkCb/M5E6rfPz+WQueuRfP21XPsDycFjM0T+OSaRTs7MBPrwr34aUvvNDvKI8U3uCzp6BXdnJwPH0VLkUFMbUYATFjNMScykprmVZ4baqW9mKGkp9sWv2CMYF0HHqtw1jmjYr+ztfLkN0Vuk4pOP54vVkp9mfc8qvIK/W9rP6NPxqdbOV5k6UJMs+nR7OyUH/6918f39//w8AAP//AwAnINo2KAYAAA==

View File

@ -1,5 +0,0 @@
https://dc.services.visualstudio.com/v2/track
Content-Type:application/x-json-stream
Content-Encoding:gzip
H4sIAAAAAAAACpRTTW/UMBD9K9Gc16ntOE6cW7UFsSrQFawAcXM8E2o1dVaOU0DV/nfk7KICNy6WNfKbeR/jZwj2kaCD6+Px1ROFNMMGkl9LkkvNuGZcHUTb1bqrZNnyujWq/gob8Lf0EzpolHPCGWIVaWIKec36anAMkYzgArmsVe5pv83QPYP1JdKTd1RO8yeKs58CdPDZB5y+59nWl26cFizjNNIuzMkGl8m8321v2dvr/eFuf34105zBpUfooK64EU1DDPWgmBpqzfpKCGZ7iU4K0SO5M8yHRDHYsZzx4WU+TilQcp0sZVVyJg2cNoA22Uy5tzMdfh4zi9Wim1zfrOX12j3DE0Xo5Oa3med2V270V49zv/gRr85nsvNDVnmM05Fi8rR6ssocR5v8FIrLpO3oKSTYwN3HYj/aNEzx8S+jPp717/5D/iFPf/WD3JIIt9MSEnQgVI7nnXX3PlCxu4EOuCCJVUtskEIz1aJltq4M07rSAwlnGilgA9spJB+WaZmLXUj0La4CoIPXdpzpTP06unufyKUlZlVfdB62jxMuLhUv/gte8rLiPIOWdFxS8YHQR3KJsr5DXC79/oFILVfQdomRQir2Nt0Xb+x8Dx0Y2zphjTXWaucGqjkNHLnVvEHSqAmVxAaVUaiV4U4r2wuFthb9kCuwAcpxF+uGKVJtK6VgfVNrpqqemKm4YYPG3sp+4L3JFr/4WNyNGWddyxVhxQwNyJQRlhlVVQyr2jZSD00jhz8suaQveDYY6en8V1YGGrEl1IJJJWqmjBGsNXXD+qbtTa9bql3mfEsx0PiHUe+8i9M8Dam4LE/xl3UflpD/e7Eu0ncf2I81o5vJPVAscsbWh7zel1hPp9PpFwAAAP//AwCS1lp7NgQAAA==

View File

@ -1,5 +0,0 @@
https://dc.services.visualstudio.com/v2/track
Content-Type:application/x-json-stream
Content-Encoding:gzip
H4sIAAAAAAAACoxUy27kNhD8FYHXiDLfEnVzbC8ycPzAziAJcmuRLZuxTA0oyt6F4X8PpLHXj0WAXAShSXZVV1f3E4lwj6Qlx/v92QPGPJGS5LCGBBOGMkOZ2vGm1aaVomqYZUbYv0lJwjl+Jy2plXPcWaQSDVLlmaad7B31Hi1n3DOh1ZITbibSPhEIlceH4LAapz8wTWGMpCV/hujHxwUbQuWGcfZVGgfcxClDdAuZy83JOf39+Hp3dX24NeG0PK6CJy3Rklle10i96RVVvTa0k5xT6IR3gvPOozs8CzFjijBUk797w/djjphdKyohK0aFJc8l8ZBhodzBhLvv+4XFKtHpEi/X8PrbPpEHTKQV5auYh3RHbghH91M3h8EfrV9Skn0a95hywFWNq23xRoKzilXCCMZISS7A3YaIxea0uBqWEsE1TKGX1GLvqbIcqFVSUi811ML0dS16UpJzTBGHd1kvgkvjNPa5eBG5+ICzPT45i9ANuGB8gWFCUpLNtM0QPQxjxLNv6OZ8yLVL83J8MsYc4jzOU7GJGW8SvJy/vj+ZU8KYi2vIt8VvMN2SllhoHAcLFsA416Nm2DPPwLDao/EGvRK+9soqb5RlzijouPKgedcvEVKSXxcNt7NzOE1vbFaTDMPKoXjp08kQMOYPMpKWMI7CywZpL7ihqvFAQUtLjZGmR+5sLfgrzA7SDWbSkr7puo451wlluQNhQfqeSW96K0Rdg+qlrpUwRrManK9rwZWXNTqQvWSNICW5TqOfXf7cark24DqN/6DLi1SkJYZp3TjoOmEUb8A2qLhRjbFYW9UDU9J1wHUDXccZaOZsIxxwY0F1Xvc/VDqLNyHiaZj2A3x/h9tUppK/OICG96A+Xf+S4B4fx3R3ebBxdXm2IyX5OsdlIxSbxSKPIdJvZpnoi3nIYXebEDz6i9Hjzz7CZVyKdUJN33gNoKgA0VDVdYKC7y3VHGpkXiimJSnJ6ejuMBWLwyDEZap+JLvaFsfJ3YaMLs9p4ffXyuNqW1wPkPsx3X/YJO8K+yxAJSRnS2c8Phy20YGj9w16w6lQXFNlLaeN1TXt6qaznWlQu0Wxqznv51x8RR8SurxW/OLFFfPkFt3dz2K8uuDFopwtXtsettgq7f9aYs8luUeY5oT367Zun8gmRkwr8ul8GMVNvAjDECZ0Y/QTaRtleWW0ti8M//OeVrrSkqnn5+fnfwEAAP//AwBmsMk7GwYAAA==

View File

@ -1,5 +0,0 @@
https://dc.services.visualstudio.com/v2/track
Content-Type:application/x-json-stream
Content-Encoding:gzip
H4sIAAAAAAAACpRTy27cOBD8FYFnUeZLlKibMd5FBk7Wg8RIFnuj2K0MEZkcUJSTwJh/X1AzQeLcciOKrO7qquYLCfYJyUBuT6e/njHkhdQk+w0STGjKNGXqkfdDqwcpmp71PRfdf6Qm/h6/k4F0yjnuDFKJGqkC1tJRTo4CoOGMAxOtKjXt54UML8T6BvDZO2zi8hHT4mMgA/nkA8Svpbf1jZvjCk2KM+7Dkm1wRcw/+909fXt7eHw4XF4tuBRy44EMpJXM8K5DCnpSVE2tpqPknNpRgBOcj4DuQvMhYwp2bhb48rM/xBwwu0E0QjaMCkPONQGbbZE82gUfv5+Kis2iu4LXG7wdhxfyjIkMov5h5qXcjZv9jYtPTzbAzeSDX46kJqcUT5iyx82ObcJ5ttnHUF2b7GaPIZOaPHyoDrPNU0xPrzz6cBl9/weTv7Pu6ANW+zsyEMZRgOyRToJrqnqw1LbSUK2lnpA70wlOarKLIfuwxnWp9iHj57SpJAP5284LXvTdJnf0GV1eU5H+ry5Z4zefdxEKwEhNDinC6nL1027OGtZIVi4f1nxac/UewSd0GctMj2m9lv+NIrTYSLs1JQy5Oth8rN7Y5UgGYmzvuDXWWKudm7BlODFgVrMOUINGUAI6UEaBVoY5rezIFdiWj1NBiu6SbrUtFAM3QiuBQjtJqpQY6dhJSXFkTLhWc47jK1urh7nwrOuZQpDU4ARUGW6pUVJSkK3thJ66Tky/WHJNnLPiN+Dz5WtsCjRAj6A5FYq3VBnDaW/ajo5dP5pR99i6ovkeU8D5F6PeeZfiEqdcXRememXd+zWU711ty/PVB/pti+wuui+YqhK59aFs8zXl8/l8/h8AAP//AwB+LhBGJQQAAA==

View File

@ -1,5 +0,0 @@
https://dc.services.visualstudio.com/v2/track
Content-Type:application/x-json-stream
Content-Encoding:gzip
H4sIAAAAAAAACpRUTW/cNhT8KwLPoswvUaJuxjpBF27qRbJIi94ovqeYsEwtSMqJYex/L6jdIvGp6IUgnjiP82aGeiPBPiMZyO3p9OEFQ06kJtlvJcGEpkxTpo68H1o9SNH0TEoh+d+kJv4eX8lAOuUcdwapRI1UAWvpKCdHAdBwxoGJVpWe9lsiwxuxvgF88Q6bJX3FmPwSyED+9AGW7+Vu6xs3Lys0cZlxH1K2wRUyf+x39/T328Px4XA5lTAVcOOBDKSVzPCuQwp6UlRNraaj5JzaUYATnI+A7gLzIWMMdm4SPP28H5YcMLtBNEI2jApDzjUBm22hPNqEx9dTYbFJdFfq9VbetsMbecFIBlH/K+al3Y2b/c1zGlc/w81lzTY9pW2drMtLfCU1OcXlhDF73PS5TQmfx/n1aNPTx8uZsk0ffqBbM8JuWUMmA+GKk5psAs2zzX4J1ZXjbvYY8vYxRx+Sd//VS5KaPHypDrPN0xKf3/nx5SLz/n+o/Mm6Rx+w2t+RgTCOAmSPdBJcU9WDpbaVhmot9YTcmU6UQXZLyD6sy5qqfcj4LW4jkYF8tHPCC7/b6B59RpfXWOb8S5dcHeICq8vVTy85a1gjGSugNZ/WXH1G8BFdxjLEMa7Xfl/fQ4QWG2i3xoghVwebH6vfbHokAzG2d9waa6zVzk3YMpwYMKtZB6hBIygBHSijQCvDnFZ25Apsy8epVEhNsESn2tJqGHKcXEu1bjuqUI/UmqmjBtt2ZMh6dPBOx+phLjjreqYQJDU4AVWGW2qUlBRkazuhp64T0y+SXPPAWREY8OXy7jYGGqBH0JwKxVuqjOG0N21Hx64fzah7bF3hfI8x4PyLUJ+8i0taplxdE1K9k+7zGsq/o9rS8t0H+mPz6G5xTxir4rH1oTyVq63n8/n8DwAAAP//AwCYE5thggQAAA==

View File

@ -0,0 +1,5 @@
https://dc.services.visualstudio.com/v2/track
Content-Type:application/x-json-stream
Content-Encoding:gzip
H4sIAAAAAAAACoxUS2/bOBD+KwLPpkJRFEUK2IPhtFgjTWMk7u5ibxQ5jInIokFRToMi/31BWa6dooe9CaN5fY/hD9SrPaAGLQ+HT0fo44AWKLopRAnlmHBM2LaQDSmbkueUl7yk9b9ogdwdvKEG1UzrQkvAJXDAzJAKt6XV2BiQBSkMoRVLPdXzgJofSLncwNFpyP3wF4TB+R416G/XG/+aZiuX686PJg++g3U/RNXrtMzX9eoOf1lutg+bU9YAQyrOnUENaklBK2EsJrbUmNWCYlEzhRVRtZCqNqD1qcz1EUKvunwwL5f5xsceom5oTsucYCrR+wIZFVVauVUDbN8OaYuJotsUX0zh6bP5gY4QUEMXZzJP7W505272Qzu6ztxEFZ4h2qD28OrDCxxVhxboEPwBQnQwcfPwlF1WKkhOcsopIWiB7pXeuR6y9W320CXASgvCwJRYgjWYyUJhycoSm7JSNeW2rqlFC3QHoYfuquu908EP3sZspjz7MGfl++j60Y9Dtu4jPAcVT3WfVTcAWqDN2HZu2D2CMm9b/zimf/3YJSyrMQToY7ZRcZf9qYYdapBUQhdKKqkU19pCRcASQxQntQFuOBhGTW2YZIYzSTRnqi2YUVXR2hRBC/QwxsMYz/x/v1piG9x+D+aywXbieNOpaH3Yrw300VmXpDlnTIbquglVNvdcdQ76+IFk1CBSADWlAGxpwTETRmFVlRJzXnILhZY1LU6EWfc8/uSJWGtYaSsheCvbggC1tWCkti0x2pZamqqFmtakFiCkJqStWCFaqYmBomImoQvejDr+aoVyEuhx7NN1ZusE+9X1+DtnF0Y2wUevfZcEcx08vQ0R9r9TbeX3Bz+4mPDbWdpvA9z7Pv2d73/mbC5e+niJQbqDbDo9ynlBRFVi1gqRiCJYtFpio0qgsqJCq4Tq1usXCFkymHL9pMnZUw9P2TLonYug4xjS5H8mUCc5P59P5sJH/vXTduUDLA+HxRz945hIOjU7G+DDu/JtSOk7P8QryDO0J+jsebErOxk4np4ql4LcGAGGF5iyosJMygILWdW4rUUrWy6g0he7Zo9gXAAdp37bMKZpM7O/8+UyRGeVjkM6ni9eT3aa/Tmn/LrklWw/q0/Dr6SbrTR3Kkiy7NPp4Zwc9L/ezff39/f/AAAA//8DABQY6yIoBgAA

View File

@ -0,0 +1,5 @@
https://dc.services.visualstudio.com/v2/track
Content-Type:application/x-json-stream
Content-Encoding:gzip
H4sIAAAAAAAACpRUy27cOBD8FYFnUeZLlKibMU6wA2/Wg2SQDXJrka2YsEwNSMqJYfjfF9TMwvFpsReCaLGa1VVFvZAAj0gGcn06fXjCkBOpSfZbSTChKdOUqSM3A5ODahspBDe9+k5q4m/xmQykU9Zya5BK1EiVYy0d5WSpc2g4446JVpWe8COR4YWAbxw+eYvNkr5iTH4JZCB/++CWn+Vu8I2dl9U1cZlxH1KGYAuZv/a7W/rn9eF4dzifSpgKuPGODGRkXLS9myibpKWq6wXtOwUUGHS9gc6htWeYDxljgLlJ7uHtfrfkgNkOohGyYVQY8loTBxkK5RESHp9PhcUm0U2p11t52w4v5AkjGUT9r5jndld29lePaVz97K7Oa4b0kLZ1ApuX+ExqcorLCWP2uOlznRI+jvPzEdLDx/OZsk0ffqFdM7rdsoZMBsJlT2qyCTTPkP0SqgvH3ewx5O1jjj4kb/+rlyQ1uftSHWbI0xIf3/nx5Szz/n+o/AnsvQ9Y7W/IQBhH4WSPdBJcU9U7oNBKQ7WWekJuTSc4qcluCdmHdVlTtQ8Zf8RtJDKQjzAnPPO7jvbeZ7R5jWXOb7rk6hAXt9pcvXnJWcMayVgBrfm05uozOh/RZixDHON66ff1PURosYF2a4wYcnWAfF/9AemeDMRAbzkYMADa2glbhhNzDDTrHGqn0SnhOqeMcloZZrWCkSsHLR+nUiE1wRKdaksrSJBawETbTnKqADk1wiLlE/S87ZkzWMx907G6mzec7ZlCJ6nByVFlOFCjpKROttAJPXWdmH6T5JIHzorADp/O725joJ3r0WlOheItVcZw2pu2o2PXj2bUPba2cL7FGHD+TahP3sYlLVOuLgmp3kn3eQ3l31FtafnpA/21eXSz2AeMVfEYfChP5WLr6+vr6z8AAAD//wMA6TtuZ4IEAAA=

View File

@ -0,0 +1,5 @@
https://dc.services.visualstudio.com/v2/track
Content-Type:application/x-json-stream
Content-Encoding:gzip
H4sIAAAAAAAACoxUy27kNhD8FYHXiDLfEnVzbC8ycPzAziAJcmuRLZuxTA0oyt6F4X8PpLHXj0WAXAShSXZVV1f3E4lwj6Qlx/v92QPGPJGS5LCGBBOGMkOZ2nHbMtkqXUlhLBf136Qk4Ry/k5bUyjnuLFKJBqnyTNNO9o56j5Yz7pnQaskJNxNpnwiEyuNDcFiN0x+YpjBG0pI/Q/Tj44INoXLDOPsqjQNu4pQhuoXM5ebknP5+fL27uj7cmnBaHlfBk5Z0jAvd+J6yXjqq6kbQplZAgUHdWKg9Ond4FmLGFGGoJn/3hu/HHDG7VlRCVowKS55L4iHDQrmDCXff9wuLVaLTJV6u4fW3fSIPmEgrylcxD+mO3BCO7qduDoM/Wr+kJPs07jHlgKsaV9vijQRnFauEEYyRklyAuw0Ri81pcTUsJYJrmEIvqcXeU2U5UKukpF5qqIXp61r0pCTnmCIO77JeBJfGaexz8SJy8QFne3xyFqEbcMH4AsOEpCSbaZshehjGiGff0M35kGuX5uX4ZIw5xHmcp2ITM94keDl/fX8yp4QxF9eQb4vfYLolLbHQOA4WLIBxrkfNsGeegWG1R+MNeiV87ZVV3ijLnFHQceVB865fIqQkvy4abmfncJre2KwmGYaVQ/HSp5MhYMwfZCQtYRyFlw3SXnBDVeOBgpaWGiNNj9zZWvBXmB2kG8ykJX3TdR1zrhPKcgfCgvQ9k970Voi6BtVLXSthjGY1OF/Xgisva3Qge8kaQUpynUY/u/y51XJtwHUa/0GXF6lISwzTunHQdcIo3oBtUHGjGmOxtqoHpqTrgOsGuo4z0MzZRjjgxoLqvO5/qHQWb0LE0zDtB/j+DrepTCV/cQAN70F9uv4lwT0+junu8mDj6vJsR0rydY7LRig2i0UeQ6TfzDLRF/OQw+42IXj0F6PHn32Ey7gU64TqvuMcvadWa06VkoJahoxabhvtmGWNl6Qkp6O7w1QsDoMQl6n6kexqWxwndxsyujynhd9fK4+rbXE9QO7HdP9hk7wr7LMAlZCcLZ3x+HDYRitH432D3nAqFNdUWctpY3VNu7rpbGca1G5R7GrO+zkXX9GHhC6vFb94ccU8uUV397MYry54sShni9e2hy22Svu/lthzSe4Rpjnh/bqt2yeyiRHTinw6H0ZxEy/CMIQJ3Rj9RFqra1tpyeoXhv95zxhbKa758/Pz878AAAD//wMAVM4TJxsGAAA=

View File

@ -0,0 +1,5 @@
https://dc.services.visualstudio.com/v2/track
Content-Type:application/x-json-stream
Content-Encoding:gzip
H4sIAAAAAAAACpRTTW/UMBD9K5HP69R2HCfOrdqCWBXoClaAuE08E2o1dVaOU0DV/nfk7KICNy6WNfKbeR/jZxbgkVjHro/HV08U0sw2LPm1pIQyXBgu9EHaTlSdrstKaW1s85VtmL+ln6xjjXZOOku8IkNco6h5Xw2OI5KVQqJQtc494dvMumcGvkR68o7Kaf5EcfZTYB377ANO3/Ns8KUbpwXLOI20C3OC4DKZ97vtLX97vT/c7c+vZpozuPTIOtYLqeoWBy6GynHdtIq3jQYOAprWQoPk3BnmQ6IYYCxnfHiZj1MKlFynSlWVgivLThuGkCBT7mGmw89jZrFadJPrm7W8Xrtn9kSRdWrz28xzuys3+qvHuV/8iFfnM8H8kFUe43SkmDytnqwyxxGSn0JxmbQdPYXENuzuY7EfIQ1TfPzLqI9n/bv/kH/I01/9ILckwu20hMQ6JrVkG/YO3L0PVOxuWMeEJIVVS3xQ0nDdInCoK8uNqcxA0tlGZcx2CsmHZVrmYhcSfYurANax1zDOdKZ+Hd29T+TSErOqLybvwj5OuLhUvPgvRSnKSogMWtJxScUHQh/JJcr6DnG59PsHooxaQdslRgqp2EO6L97AfM86ZqF1EixYAOPcQLWgQaAAIxokg4ZQK2xQW41GW+GMhl5qhFr2Q66wDaMcd3HeMF1bixK4A2O4HmTDe6CeOyd6YRXUVZ2JvPhY3I0ZB64VmrDilgbk2krgVlcVx6qGRpmhadTwhyWX9KXIBiM9nf/KysAgtoRGcqVlzbW1kre2bnjftL3tTUu1y5xvKQYa/zDqnXdxmqchFZflKf6y7sMS8n8v1kX67gP/sWZ0M7kHikXOGHzI632J9XQ6nX4BAAD//wMAdbxn5zYEAAA=

View File

@ -0,0 +1,5 @@
https://dc.services.visualstudio.com/v2/track
Content-Type:application/x-json-stream
Content-Encoding:gzip
H4sIAAAAAAAACpRTwW7bOBD9FYFnUSEpihJ1C5xd1Ei7MdqgLXobcUY1UYUyKCptEfjfF5RdpN3b3ohHvpk37w1fWIAnYj27PZ3+eqaQFlay5DdICWW4MFzoR2l7Ufe6qWpldd01X1jJ/D39ZD1rtXPSWeI1GeIaRcOHenQckawUEoVqdK4JXxfWvzDwFdKzd1TNy0eKi58D69knH3D+nnuDr9w0r1jFeaJ9WBIEl8X8s9/d87e3h8eHw+XVQksmVx5ZzwYhVdPhyMVYO67bTvGu1cBBQNtZaJGcu9B8SBQDTNWC317745wCJderStWV4Mqyc8kQEmTJAyz0+POUVWwW3WW83ODt2L+wZ4qsV+UvMy/lbtzkb9z89AQBb0Yf/HJkJTvF+UQxedrs2CacJkh+DsW1yW7yFBIr2cOH4jBBGuf49IdHHy6j7//H5O/AHX2gYn/HeiYkKaw74qOShusOgUNTW25MbUaSzrZKspLt5pB8WOd1KfYh0de4qWQ9+xumhS76bqM7+kQurTFL/2xy1vTDp92MGRCsZIc44+pS8Wq3FJWoapEvH9Z0WlPxntBHconyTI9xvZb/D0UZtZF2a4wUUnGAdCzewHJkPbPQOQkWLIBxbqRG0ChQgBEtkkFDqBW2qK1Go61wRsMgNUIjhzEjWXdOt9gWquukEyQH3mDbcT2g46C7kTsYZTM0zhiVd+DV1uJhyjxwndCENbc0ItdWAre6rjnWDbTKjG2rxt8suSYuRfYb6fnyNTYFBrEjNJIrLRuurZW8s03Lh7Yb7GA6alzWfE8x0PSbUe+8i/Myj6m4Lkzxh3Xv15C/d7Etz3cf+I8tsrvZfaNY5MjBh7zN15TP5/P5XwAAAP//AwCa+TscJQQAAA==

Binary file not shown.

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

View File

@ -0,0 +1,36 @@
using Microsoft.AspNetCore.Razor.TagHelpers;
using PlotLine.Services;
namespace PlotLine.TagHelpers;
[HtmlTargetElement("help-icon", Attributes = "key")]
public sealed class HelpIconTagHelper(IHelpService help) : TagHelper
{
public string Key { get; set; } = string.Empty;
public override void Process(TagHelperContext context, TagHelperOutput output)
{
var article = help.GetByContextKey(Key);
var micro = string.IsNullOrWhiteSpace(article?.Micro)
? "Help article not found."
: article.Micro;
var quickTitle = string.IsNullOrWhiteSpace(article?.QuickTitle)
? "Help unavailable"
: article.QuickTitle;
var quickSummary = string.IsNullOrWhiteSpace(article?.QuickSummary)
? "Help content has not yet been written for this feature."
: article.QuickSummary;
output.TagName = "button";
output.TagMode = TagMode.StartTagAndEndTag;
output.Attributes.SetAttribute("type", "button");
output.Attributes.SetAttribute("class", "plotweaver-help-icon");
output.Attributes.SetAttribute("aria-label", $"Help: {quickTitle}");
output.Attributes.SetAttribute("data-help-icon", "true");
output.Attributes.SetAttribute("data-help-key", Key);
output.Attributes.SetAttribute("data-help-micro", micro);
output.Attributes.SetAttribute("data-help-title", quickTitle);
output.Attributes.SetAttribute("data-help-summary", quickSummary);
output.Content.SetContent("?");
}
}

View File

@ -63,7 +63,7 @@
<div class="story-bible-section-heading"> <div class="story-bible-section-heading">
<div> <div>
<p class="eyebrow">Arc Shape</p> <p class="eyebrow">Arc Shape</p>
<h2>Character Metric Shape</h2> <h2>Character Metric Shape <help-icon key="characters.characterArc" /></h2>
</div> </div>
<span class="soft-count">@arcGraphMetrics.Count metric@(arcGraphMetrics.Count == 1 ? "" : "s")</span> <span class="soft-count">@arcGraphMetrics.Count metric@(arcGraphMetrics.Count == 1 ? "" : "s")</span>
</div> </div>

View File

@ -17,7 +17,7 @@
<div class="page-heading"> <div class="page-heading">
<div> <div>
<p class="eyebrow"><a asp-controller="Projects" asp-action="Details" asp-route-id="@Model.Project.ProjectID">@Model.Project.ProjectName</a></p> <p class="eyebrow"><a asp-controller="Projects" asp-action="Details" asp-route-id="@Model.Project.ProjectID">@Model.Project.ProjectName</a></p>
<h1>Plot lines</h1> <h1>Plot lines <help-icon key="timeline.plotLines" /></h1>
</div> </div>
<div class="button-row"> <div class="button-row">
<a class="btn btn-outline-primary" asp-controller="Timeline" asp-action="Index" asp-route-projectId="@Model.Project.ProjectID">Timeline</a> <a class="btn btn-outline-primary" asp-controller="Timeline" asp-action="Index" asp-route-projectId="@Model.Project.ProjectID">Timeline</a>

View File

@ -18,7 +18,7 @@
<div class="page-heading"> <div class="page-heading">
<div> <div>
<p class="eyebrow">Story assets</p> <p class="eyebrow">Story assets <help-icon key="storyAssets.overview" /></p>
<h1>@Model.Project.ProjectName</h1> <h1>@Model.Project.ProjectName</h1>
</div> </div>
<div class="button-row"> <div class="button-row">

View File

@ -44,7 +44,7 @@
<div class="story-bible-section-heading"> <div class="story-bible-section-heading">
<div> <div>
<p class="eyebrow">Sections</p> <p class="eyebrow">Sections</p>
<h2>Workspace sections</h2> <h2>Workspace sections <help-icon key="timeline.plotLines" /></h2>
</div> </div>
</div> </div>
<div class="timeline-settings-grid"> <div class="timeline-settings-grid">

View File

@ -2,3 +2,4 @@
@using PlotLine.Models @using PlotLine.Models
@using PlotLine.ViewModels @using PlotLine.ViewModels
@addTagHelper *, Microsoft.AspNetCore.Mvc.TagHelpers @addTagHelper *, Microsoft.AspNetCore.Mvc.TagHelpers
@addTagHelper *, PlotLine

View File

@ -1453,6 +1453,55 @@ a:focus-visible {
--bs-alert-border-color: #705229; --bs-alert-border-color: #705229;
} }
.plotweaver-help-icon {
display: inline-flex;
align-items: center;
justify-content: center;
width: 1.15rem;
height: 1.15rem;
margin-left: 0.35rem;
padding: 0;
color: #5f6875;
font-size: 0.78rem;
font-weight: 800;
line-height: 1;
background: transparent;
border: 1px solid rgba(95, 104, 117, 0.42);
border-radius: 999px;
vertical-align: text-top;
}
.plotweaver-help-icon:hover,
.plotweaver-help-icon:focus {
color: #2f6f63;
border-color: #2f6f63;
outline: none;
}
.plotweaver-help-popover {
max-width: 350px;
}
.plotweaver-help-popover .popover-header {
font-weight: 800;
}
.plotweaver-help-more {
font-weight: 700;
text-decoration: none;
}
[data-theme="dark"] .plotweaver-help-icon {
color: #d8d0c4;
border-color: rgba(216, 208, 196, 0.45);
}
[data-theme="dark"] .plotweaver-help-icon:hover,
[data-theme="dark"] .plotweaver-help-icon:focus {
color: #f1c38f;
border-color: #f1c38f;
}
.relationship-map-controls { .relationship-map-controls {
display: grid; display: grid;
grid-template-columns: repeat(4, minmax(150px, 1fr)) auto auto auto; grid-template-columns: repeat(4, minmax(150px, 1fr)) auto auto auto;

View File

@ -151,6 +151,73 @@
}); });
})(); })();
(() => {
const icons = document.querySelectorAll("[data-help-icon]");
if (!icons.length || !window.bootstrap) {
return;
}
icons.forEach((icon) => {
const micro = icon.dataset.helpMicro || "Help article not found.";
const title = icon.dataset.helpTitle || "Help unavailable";
const summary = icon.dataset.helpSummary || "Help content has not yet been written for this feature.";
bootstrap.Tooltip.getOrCreateInstance(icon, {
title: micro,
trigger: "hover focus",
placement: "top",
container: "body"
});
const popover = bootstrap.Popover.getOrCreateInstance(icon, {
title,
trigger: "click",
placement: "auto",
container: "body",
html: true,
customClass: "plotweaver-help-popover",
content() {
const wrapper = document.createElement("div");
const summaryText = document.createElement("p");
summaryText.className = "mb-2";
summaryText.textContent = summary;
const moreLink = document.createElement("a");
moreLink.href = "#";
moreLink.textContent = "More...";
moreLink.className = "plotweaver-help-more";
moreLink.addEventListener("click", (event) => {
event.preventDefault();
icon.dispatchEvent(new CustomEvent("plotweaver:help-more", {
bubbles: true,
detail: { key: icon.dataset.helpKey || "" }
}));
});
wrapper.append(summaryText, moreLink);
return wrapper;
}
});
icon.addEventListener("shown.bs.popover", () => {
bootstrap.Tooltip.getInstance(icon)?.hide();
});
document.addEventListener("click", (event) => {
if (event.target === icon || icon.contains(event.target)) {
return;
}
const popoverElement = document.querySelector(`#${icon.getAttribute("aria-describedby")}`);
if (popoverElement?.contains(event.target)) {
return;
}
popover.hide();
});
});
})();
(() => { (() => {
const roots = document.querySelectorAll(".scene-inspector-root"); const roots = document.querySelectorAll(".scene-inspector-root");
if (!roots.length) { if (!roots.length) {