{"_id":"jui-omnibar","_rev":"32-ea25b219c617ad670acfa89d46c9df9a","name":"jui-omnibar","dist-tags":{"latest":"5.1.1"},"versions":{"1.0.0":{"name":"jui-omnibar","version":"1.0.0","keywords":["web-component","custom-element","omnibar"],"license":"MIT","_id":"jui-omnibar@1.0.0","maintainers":[{"name":"danburts","email":"dkburton0@gmail.com"}],"dist":{"shasum":"a689135ec797971b554c70c0ab5fb261b2213be2","tarball":"https://registry.npmjs.org/jui-omnibar/-/jui-omnibar-1.0.0.tgz","fileCount":2,"integrity":"sha512-x0co21vmKLpFFsDLBk0vYza6Gu1A5c0IJnLYQLSHVa5SGDnYslcg06d66N5XS1kzN+bZKMUOiSJY2OKiFuqxiA==","signatures":[{"sig":"MEUCIQCHVVW08Fztp0wI+xXPetfiMoTgL+50jY4SFS2L/MvK4AIga7DTnOSrlUnP3L0xZF3u+8PfYU39aZQDyFuDFTfNnqg=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":6545},"main":"omnibar.js","type":"module","_npmUser":{"name":"danburts","email":"dkburton0@gmail.com"},"_npmVersion":"10.8.1","description":"A plain JavaScript web component omnibar","directories":{},"_nodeVersion":"20.16.0","_hasShrinkwrap":false,"_npmOperationalInternal":{"tmp":"tmp/jui-omnibar_1.0.0_1774957769334_0.3281014379654328","host":"s3://npm-registry-packages-npm-production"}},"2.0.0":{"name":"jui-omnibar","version":"2.0.0","keywords":["web-component","custom-element","omnibar","juniper"],"license":"MIT","_id":"jui-omnibar@2.0.0","maintainers":[{"name":"danburts","email":"dkburton0@gmail.com"}],"dist":{"shasum":"a8a0293a65b4d976c3915771568d3c29c40ad477","tarball":"https://registry.npmjs.org/jui-omnibar/-/jui-omnibar-2.0.0.tgz","fileCount":6,"integrity":"sha512-5/Fm3uSpvFVw9srkWVgCrKjQ/bhNUIUmxCokyhTHj+Gpb0n2zsqgG+FDnBNwLYGZDFUtbFKkN5MU6Vx0wLhk1g==","signatures":[{"sig":"MEUCIDtgATUbyF4hIcrqb8yZPhvkz8pIH3T7NmfTYBTUbbmyAiEAwZCahKSm402s6Acd9ujCqwCygdaEBK1mzYmN/a27LfY=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":62500},"main":"src/omnibar.js","type":"module","exports":{".":{"import":"./src/omnibar.js"},"./omnibar.css":"./src/omnibar.css","./product-switcher":{"import":"./src/product-switcher.js"},"./profile-switcher":{"import":"./src/profile-switcher.js"}},"_npmUser":{"name":"danburts","email":"dkburton0@gmail.com"},"_npmVersion":"10.8.1","description":"Juniper omnibar web components","directories":{},"sideEffects":["./src/omnibar.css"],"_nodeVersion":"20.16.0","_hasShrinkwrap":false,"_npmOperationalInternal":{"tmp":"tmp/jui-omnibar_2.0.0_1776851448235_0.4221030574325484","host":"s3://npm-registry-packages-npm-production"}},"2.0.1":{"name":"jui-omnibar","version":"2.0.1","keywords":["web-component","custom-element","omnibar","juniper"],"license":"MIT","_id":"jui-omnibar@2.0.1","maintainers":[{"name":"danburts","email":"dkburton0@gmail.com"}],"dist":{"shasum":"92c6c4ccbfb1d76f70bcb2ee9b7abb26ede0a4e7","tarball":"https://registry.npmjs.org/jui-omnibar/-/jui-omnibar-2.0.1.tgz","fileCount":6,"integrity":"sha512-GOsPBwkPdMAlaGoyJBNgON3g6fq2fK1i33LmMLy4geh03IQaegZ+whhVAtu6Y02qp+t/wemwSdKBZZ/aKcYrGA==","signatures":[{"sig":"MEYCIQCFGhABoNIAnN71NVmFrH67m1B3u1Loek52Dd3VoxluJgIhAPSqYXwJnx9Ty2dHuoFu3lr2cLZNcK98i843dj5ZeMCV","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":65682},"main":"src/omnibar.js","type":"module","exports":{".":{"import":"./src/omnibar.js"},"./omnibar.css":"./src/omnibar.css","./product-switcher":{"import":"./src/product-switcher.js"},"./profile-switcher":{"import":"./src/profile-switcher.js"}},"_npmUser":{"name":"danburts","email":"dkburton0@gmail.com"},"_npmVersion":"10.8.1","description":"Juniper omnibar web components","directories":{},"sideEffects":["./src/omnibar.css"],"_nodeVersion":"20.16.0","_hasShrinkwrap":false,"_npmOperationalInternal":{"tmp":"tmp/jui-omnibar_2.0.1_1776852058847_0.8737662817799157","host":"s3://npm-registry-packages-npm-production"}},"2.0.2":{"name":"jui-omnibar","version":"2.0.2","keywords":["web-component","custom-element","omnibar","juniper"],"license":"MIT","_id":"jui-omnibar@2.0.2","maintainers":[{"name":"danburts","email":"dkburton0@gmail.com"}],"dist":{"shasum":"ee2551c1cfb4d0a53e991ff7f591b707e27ece22","tarball":"https://registry.npmjs.org/jui-omnibar/-/jui-omnibar-2.0.2.tgz","fileCount":6,"integrity":"sha512-vAb/PSQ0t1/7guZnBidAxgiZsmJPK+yLhRpkckiNFYDORq9PoB35X+/Mz49BXeiRUkHO5vGrRXQhf1fiiBLfUg==","signatures":[{"sig":"MEUCIGOhiFde6y8GvCCt52/+WwKjRT5YIKOlunK7e8Wj6UkYAiEAubvi505gANndBkbZqwgHIKzlO5sSKpleA4SVLYe2SWE=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":66948},"main":"src/omnibar.js","type":"module","exports":{".":{"import":"./src/omnibar.js"},"./omnibar.css":"./src/omnibar.css","./product-switcher":{"import":"./src/product-switcher.js"},"./profile-switcher":{"import":"./src/profile-switcher.js"}},"_npmUser":{"name":"danburts","email":"dkburton0@gmail.com"},"_npmVersion":"10.8.1","description":"Juniper omnibar web components","directories":{},"sideEffects":["./src/omnibar.css"],"_nodeVersion":"20.16.0","_hasShrinkwrap":false,"_npmOperationalInternal":{"tmp":"tmp/jui-omnibar_2.0.2_1776858818306_0.24704290349729052","host":"s3://npm-registry-packages-npm-production"}},"2.0.3":{"name":"jui-omnibar","version":"2.0.3","keywords":["web-component","custom-element","omnibar","juniper"],"license":"MIT","_id":"jui-omnibar@2.0.3","maintainers":[{"name":"danburts","email":"dkburton0@gmail.com"}],"dist":{"shasum":"c333809aff2bc243be81bc13c080c0fe5c2246ac","tarball":"https://registry.npmjs.org/jui-omnibar/-/jui-omnibar-2.0.3.tgz","fileCount":6,"integrity":"sha512-JMNTdfbrfJAdGgodPnNT4o+vKIjevXSd24m2BG6ZBs5ijGK+4T6CFEiW2ZSllATfS4+HEhkOUaukQFvdyVje1g==","signatures":[{"sig":"MEYCIQC7KltRAPpYO0PNkYdyuarak4j6CVTT4wgad5gWkwVEIgIhAKTmOizx/ZejG8uGId+rzKHiPxX3S2ZDw9+DJ0JdEbo+","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":67146},"main":"src/omnibar.js","type":"module","exports":{".":{"import":"./src/omnibar.js"},"./omnibar.css":"./src/omnibar.css","./product-switcher":{"import":"./src/product-switcher.js"},"./profile-switcher":{"import":"./src/profile-switcher.js"}},"_npmUser":{"name":"danburts","email":"dkburton0@gmail.com"},"_npmVersion":"10.8.1","description":"Juniper omnibar web components","directories":{},"sideEffects":["./src/omnibar.css"],"_nodeVersion":"20.16.0","_hasShrinkwrap":false,"_npmOperationalInternal":{"tmp":"tmp/jui-omnibar_2.0.3_1776859120573_0.5729490752680482","host":"s3://npm-registry-packages-npm-production"}},"2.0.4":{"name":"jui-omnibar","version":"2.0.4","keywords":["web-component","custom-element","omnibar","juniper"],"license":"MIT","_id":"jui-omnibar@2.0.4","maintainers":[{"name":"danburts","email":"dkburton0@gmail.com"}],"dist":{"shasum":"7f6f902d53f11729c9b830f3698810229a57fb60","tarball":"https://registry.npmjs.org/jui-omnibar/-/jui-omnibar-2.0.4.tgz","fileCount":6,"integrity":"sha512-HN3IwjN9uFjNDLL3hHimF9WEsNscaXWp12Ih1l0J1SXodZa4jJXstw3HMtsSftgc3l1TBwaXMXIuP0NtHQeqfg==","signatures":[{"sig":"MEQCIDnwZZ1y3VcekLzhsPF9GIoWZQKeyv/TnL7uB610DKzgAiATaysTZfd7mQ20xb48oy8GvO6nDlCr5O1MTLPaa6E36A==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":62022},"main":"src/omnibar.js","type":"module","exports":{".":{"import":"./src/omnibar.js"},"./omnibar.css":"./src/omnibar.css","./product-switcher":{"import":"./src/product-switcher.js"},"./profile-switcher":{"import":"./src/profile-switcher.js"}},"_npmUser":{"name":"danburts","email":"dkburton0@gmail.com"},"_npmVersion":"10.8.1","description":"Juniper omnibar web components","directories":{},"sideEffects":["./src/omnibar.css"],"_nodeVersion":"20.16.0","_hasShrinkwrap":false,"_npmOperationalInternal":{"tmp":"tmp/jui-omnibar_2.0.4_1776859196612_0.0072671398958186195","host":"s3://npm-registry-packages-npm-production"}},"2.1.1":{"name":"jui-omnibar","version":"2.1.1","keywords":["web-component","custom-element","omnibar","juniper"],"license":"MIT","_id":"jui-omnibar@2.1.1","maintainers":[{"name":"danburts","email":"dkburton0@gmail.com"}],"dist":{"shasum":"98dc27ee6dc83802bc76b5d8a3a2f4691e11517c","tarball":"https://registry.npmjs.org/jui-omnibar/-/jui-omnibar-2.1.1.tgz","fileCount":6,"integrity":"sha512-e+y22fRyFSo1KCupdG2kqwc3IrNEhF5oIu29eFGfn7rMcqlSbhjMejc17DjTyfD0yPKI/Wqpi3/OyIpko1A4Ig==","signatures":[{"sig":"MEYCIQC672Mz9RZkIL1+k/UJO2WO/mYcNp8NWaYU45SXAgmYnAIhAK5csxO/UlLAxs4Jt9VCzYyYaRqV+yG3/8uat7YbWodn","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":66414},"main":"dist/omnibar.js","type":"module","exports":{".":{"import":"./dist/omnibar.js"},"./omnibar.css":"./dist/omnibar.css","./product-switcher":{"import":"./dist/product-switcher.js"},"./profile-switcher":{"import":"./dist/profile-switcher.js"}},"scripts":{"build":"node scripts/build.mjs","prepublishOnly":"npm run build"},"_npmUser":{"name":"danburts","email":"dkburton0@gmail.com"},"_npmVersion":"10.8.1","description":"Juniper omnibar web components","directories":{},"sideEffects":["./dist/omnibar.css"],"_nodeVersion":"20.16.0","_hasShrinkwrap":false,"devDependencies":{"esbuild":"^0.25.0","lightningcss":"^1.29.0"},"_npmOperationalInternal":{"tmp":"tmp/jui-omnibar_2.1.1_1777021321338_0.45084460470113763","host":"s3://npm-registry-packages-npm-production"}},"2.1.2":{"name":"jui-omnibar","version":"2.1.2","keywords":["web-component","custom-element","omnibar","juniper"],"license":"MIT","_id":"jui-omnibar@2.1.2","maintainers":[{"name":"danburts","email":"dkburton0@gmail.com"}],"dist":{"shasum":"bd7d9a467b62be612bbc1bb755484150af063e57","tarball":"https://registry.npmjs.org/jui-omnibar/-/jui-omnibar-2.1.2.tgz","fileCount":6,"integrity":"sha512-NvZZxUGuUIHfvlxdKQCqX/xyz5NQDJFvPITiHKXNMROlGbDxmJ5iym/4W9mme+G1idHVk5w9HAKK7gHL/13kFw==","signatures":[{"sig":"MEUCIHbD3ftQHZHY4ts9/1ZVVl1uAjQJ6kskD2WwZLTKLEeLAiEA+1KEKULYPzDN6qsERVP6dRrgVb2H1Uca4fksxUyY87g=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":67413},"main":"dist/omnibar.js","type":"module","exports":{".":{"import":"./dist/omnibar.js"},"./omnibar.css":"./dist/omnibar.css","./product-switcher":{"import":"./dist/product-switcher.js"},"./profile-switcher":{"import":"./dist/profile-switcher.js"}},"scripts":{"build":"node scripts/build.mjs","prepublishOnly":"npm run build"},"_npmUser":{"name":"danburts","email":"dkburton0@gmail.com"},"_npmVersion":"10.8.1","description":"Juniper omnibar web components","directories":{},"sideEffects":["./dist/omnibar.css"],"_nodeVersion":"20.16.0","_hasShrinkwrap":false,"devDependencies":{"esbuild":"^0.25.0","lightningcss":"^1.29.0"},"_npmOperationalInternal":{"tmp":"tmp/jui-omnibar_2.1.2_1777021656885_0.37607876703694276","host":"s3://npm-registry-packages-npm-production"}},"3.0.0":{"name":"jui-omnibar","version":"3.0.0","keywords":["web-component","custom-element","omnibar","juniper"],"license":"MIT","_id":"jui-omnibar@3.0.0","maintainers":[{"name":"danburts","email":"dkburton0@gmail.com"}],"dist":{"shasum":"0acf02ceacaea06e518b199c3b1b70721e0a5add","tarball":"https://registry.npmjs.org/jui-omnibar/-/jui-omnibar-3.0.0.tgz","fileCount":7,"integrity":"sha512-ElopjU+XyojPdGqieqA0Nm8N2USFQX6bcgQqzNp7vn3wwKy29ltjGz9eV8CcbHJN2XQxywv4E/kpVXms1kvcKQ==","signatures":[{"sig":"MEQCIGW5xCFmOrA0rEPbutgz5R08wRf0Ki/7S18q6FRRSvDxAiBTN7fD97yDkgkt4sv+lu/tRYYsiYtQtl205iEZ2j6LeQ==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":77200},"main":"dist/omnibar.js","type":"module","types":"dist/omnibar.d.ts","exports":{".":{"types":"./dist/omnibar.d.ts","import":"./dist/omnibar.js"},"./omnibar.css":"./dist/omnibar.css","./product-switcher":{"import":"./dist/product-switcher.js"},"./profile-switcher":{"import":"./dist/profile-switcher.js"}},"scripts":{"build":"node scripts/build.mjs","prepublishOnly":"npm run build"},"_npmUser":{"name":"danburts","email":"dkburton0@gmail.com"},"_npmVersion":"10.8.1","description":"Juniper omnibar web components","directories":{},"sideEffects":["./dist/omnibar.css"],"_nodeVersion":"20.16.0","_hasShrinkwrap":false,"devDependencies":{"esbuild":"^0.25.0","lightningcss":"^1.29.0"},"_npmOperationalInternal":{"tmp":"tmp/jui-omnibar_3.0.0_1777556742059_0.5388262715019512","host":"s3://npm-registry-packages-npm-production"}},"3.0.1":{"name":"jui-omnibar","version":"3.0.1","keywords":["web-component","custom-element","omnibar","juniper"],"license":"MIT","_id":"jui-omnibar@3.0.1","maintainers":[{"name":"danburts","email":"dkburton0@gmail.com"}],"dist":{"shasum":"823dd693184aa9917824454f513bab87e96f3919","tarball":"https://registry.npmjs.org/jui-omnibar/-/jui-omnibar-3.0.1.tgz","fileCount":7,"integrity":"sha512-X4u6Ve4n1b9AYD+jLJWuanjj1/DqIEAiswJv/DGHri/6wJwnOKXzRBkorHc33zL6KpO8eg3j0WAqIe6jmr24aA==","signatures":[{"sig":"MEUCIQCWVtw247JvUoYie5IjYxZVS5XJFF/7eeWc5GNJdNdR/AIgNT2keg7BJW/v11m2EtVjpltquZT1kzbTSC/tBRpQMF8=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":77033},"main":"dist/omnibar.js","type":"module","types":"dist/omnibar.d.ts","exports":{".":{"types":"./dist/omnibar.d.ts","import":"./dist/omnibar.js"},"./omnibar.css":"./dist/omnibar.css","./product-switcher":{"import":"./dist/product-switcher.js"},"./profile-switcher":{"import":"./dist/profile-switcher.js"}},"scripts":{"build":"node scripts/build.mjs","prepublishOnly":"npm run build"},"_npmUser":{"name":"danburts","email":"dkburton0@gmail.com"},"_npmVersion":"10.8.1","description":"Juniper omnibar web components","directories":{},"sideEffects":["./dist/omnibar.css"],"_nodeVersion":"20.16.0","_hasShrinkwrap":false,"devDependencies":{"esbuild":"^0.25.0","lightningcss":"^1.29.0"},"_npmOperationalInternal":{"tmp":"tmp/jui-omnibar_3.0.1_1777556998726_0.803640239371759","host":"s3://npm-registry-packages-npm-production"}},"3.0.2":{"name":"jui-omnibar","version":"3.0.2","keywords":["web-component","custom-element","omnibar","juniper"],"license":"MIT","_id":"jui-omnibar@3.0.2","maintainers":[{"name":"danburts","email":"dkburton0@gmail.com"}],"dist":{"shasum":"e35745004ce4e097c922c209d4861204615006ac","tarball":"https://registry.npmjs.org/jui-omnibar/-/jui-omnibar-3.0.2.tgz","fileCount":7,"integrity":"sha512-E7z0+04jUVNNCt3mvxI+RbR/7qguQlRi6pZ3slSnv35/415VqJWTLCVnkv8A39ikXpIHwp33iDccxTm6XwOrcQ==","signatures":[{"sig":"MEUCIG9synA7It/S+6ntyy74WOMsDT2kEqfXWy4X3m6/cATmAiEAiStvpI9ewfqlkxzWUY9cmYfqXodMh+BkDp+joxLukbM=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":77124},"main":"dist/omnibar.js","type":"module","types":"dist/omnibar.d.ts","exports":{".":{"types":"./dist/omnibar.d.ts","import":"./dist/omnibar.js"},"./omnibar.css":"./dist/omnibar.css","./product-switcher":{"import":"./dist/product-switcher.js"},"./profile-switcher":{"import":"./dist/profile-switcher.js"}},"gitHead":"f4c4a0ed3d7e116934d74572d434bdbbcdb88afd","scripts":{"build":"node scripts/build.mjs","prepublishOnly":"npm run build"},"_npmUser":{"name":"danburts","email":"dkburton0@gmail.com"},"_npmVersion":"10.8.1","description":"Juniper omnibar web components","directories":{},"sideEffects":["./dist/omnibar.css"],"_nodeVersion":"20.16.0","_hasShrinkwrap":false,"devDependencies":{"esbuild":"^0.25.0","lightningcss":"^1.29.0"},"_npmOperationalInternal":{"tmp":"tmp/jui-omnibar_3.0.2_1778593750642_0.7802760193666798","host":"s3://npm-registry-packages-npm-production"}},"3.0.3":{"name":"jui-omnibar","version":"3.0.3","keywords":["web-component","custom-element","omnibar","juniper"],"license":"MIT","_id":"jui-omnibar@3.0.3","maintainers":[{"name":"danburts","email":"dkburton0@gmail.com"}],"dist":{"shasum":"3e1663d9c85497d291528c5a68b14efdd03d9a92","tarball":"https://registry.npmjs.org/jui-omnibar/-/jui-omnibar-3.0.3.tgz","fileCount":7,"integrity":"sha512-Fz6uvRXTWaWeRw7P3qk8X9YPyap5NDZNmjr8YPhnSE+o81+l9R4KoCiRT6hdIUK3sLXn2cmY9NhFABHUXOhkYQ==","signatures":[{"sig":"MEQCIGSS+xYr+Q5rC6YCEjaZatARd1XzJaROU6+xLeJ8N4kkAiAMimKTSIpGJsvLSYm4W5qwaxhxerQVR2KDtsT6UlPqZQ==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":77115},"main":"dist/omnibar.js","type":"module","types":"dist/omnibar.d.ts","exports":{".":{"types":"./dist/omnibar.d.ts","import":"./dist/omnibar.js"},"./omnibar.css":"./dist/omnibar.css","./product-switcher":{"import":"./dist/product-switcher.js"},"./profile-switcher":{"import":"./dist/profile-switcher.js"}},"gitHead":"ddf6bfb33355b237824643648a20c68e382e0785","scripts":{"build":"node scripts/build.mjs","prepublishOnly":"npm run build"},"_npmUser":{"name":"danburts","email":"dkburton0@gmail.com"},"_npmVersion":"10.8.1","description":"Juniper omnibar web components","directories":{},"sideEffects":["./dist/omnibar.css"],"_nodeVersion":"20.16.0","_hasShrinkwrap":false,"devDependencies":{"esbuild":"^0.25.0","lightningcss":"^1.29.0"},"_npmOperationalInternal":{"tmp":"tmp/jui-omnibar_3.0.3_1778594093294_0.27235732202331975","host":"s3://npm-registry-packages-npm-production"}},"3.0.4":{"name":"jui-omnibar","version":"3.0.4","keywords":["web-component","custom-element","omnibar","juniper"],"license":"MIT","_id":"jui-omnibar@3.0.4","maintainers":[{"name":"danburts","email":"dkburton0@gmail.com"}],"dist":{"shasum":"3379bce15a5c2e708727c3f54822689df063d51f","tarball":"https://registry.npmjs.org/jui-omnibar/-/jui-omnibar-3.0.4.tgz","fileCount":7,"integrity":"sha512-xtSTmm+uQGPF9z5vSCIaAxZXOtnZu2opnnNQQmHyLOyGyKCnyzsHvR0XurcbmYuHvi6bxgGdCii4PD7w8z3hzQ==","signatures":[{"sig":"MEUCIC8NFFdrPfEDC72m4cTKH7BMoJTj8UFIueRzAff42cBFAiEAjd5ofV+FkWu9Fhjp2+tnQatNvvde6r2rrl2tslsGLl0=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":77511},"main":"dist/omnibar.js","type":"module","types":"dist/omnibar.d.ts","exports":{".":{"types":"./dist/omnibar.d.ts","import":"./dist/omnibar.js"},"./omnibar.css":"./dist/omnibar.css","./product-switcher":{"import":"./dist/product-switcher.js"},"./profile-switcher":{"import":"./dist/profile-switcher.js"}},"gitHead":"d6feaf78e4df7a83a78cae6400b0307b9e0595fd","scripts":{"build":"node scripts/build.mjs","prepublishOnly":"npm run build"},"_npmUser":{"name":"danburts","email":"dkburton0@gmail.com"},"_npmVersion":"10.8.1","description":"Juniper omnibar web components","directories":{},"sideEffects":["./dist/omnibar.css","./dist/omnibar.js","./dist/product-switcher.js","./dist/profile-switcher.js"],"_nodeVersion":"20.16.0","_hasShrinkwrap":false,"devDependencies":{"esbuild":"^0.25.0","lightningcss":"^1.29.0"},"_npmOperationalInternal":{"tmp":"tmp/jui-omnibar_3.0.4_1778607054065_0.08561038335904891","host":"s3://npm-registry-packages-npm-production"}},"3.0.5":{"name":"jui-omnibar","version":"3.0.5","keywords":["web-component","custom-element","omnibar","juniper"],"license":"MIT","_id":"jui-omnibar@3.0.5","maintainers":[{"name":"danburts","email":"dkburton0@gmail.com"}],"dist":{"shasum":"7053c963636567ec579b82242c3a0f1c6ad70599","tarball":"https://registry.npmjs.org/jui-omnibar/-/jui-omnibar-3.0.5.tgz","fileCount":7,"integrity":"sha512-XNDsmmCbA+e/gmIpQb5p5YzQNwFHnsgVA8II4HaWCCBdBVpHbS0x90sRspM6D+lFqeIT0R0FzZvj9j5wyX8pJg==","signatures":[{"sig":"MEUCIB4e51uV8OqXPo8Bg+hCCwHY0VIrEZ5fBsFurp7PNEDbAiEAnyGhiN5DgqgPINiluI/g5u7fVTcu9f4s5tlLUYKr9Xk=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":77511},"main":"dist/omnibar.js","type":"module","types":"dist/omnibar.d.ts","exports":{".":{"types":"./dist/omnibar.d.ts","import":"./dist/omnibar.js"},"./omnibar.css":"./dist/omnibar.css","./product-switcher":{"import":"./dist/product-switcher.js"},"./profile-switcher":{"import":"./dist/profile-switcher.js"}},"gitHead":"a4d02bc64b7bdc6070b5104ea4fbb22605707bb4","scripts":{"build":"node scripts/build.mjs","prepublishOnly":"npm run build"},"_npmUser":{"name":"danburts","email":"dkburton0@gmail.com"},"_npmVersion":"10.8.1","description":"Juniper omnibar web components","directories":{},"sideEffects":["./dist/omnibar.css","./dist/omnibar.js","./dist/product-switcher.js","./dist/profile-switcher.js"],"_nodeVersion":"20.16.0","_hasShrinkwrap":false,"devDependencies":{"esbuild":"^0.25.0","lightningcss":"^1.29.0"},"_npmOperationalInternal":{"tmp":"tmp/jui-omnibar_3.0.5_1778607898277_0.6459948743341064","host":"s3://npm-registry-packages-npm-production"}},"3.0.6":{"name":"jui-omnibar","version":"3.0.6","keywords":["web-component","custom-element","omnibar","juniper"],"license":"MIT","_id":"jui-omnibar@3.0.6","maintainers":[{"name":"danburts","email":"dkburton0@gmail.com"}],"dist":{"shasum":"5ecb95b24d7b82008111bfa7e8b85119d92ec131","tarball":"https://registry.npmjs.org/jui-omnibar/-/jui-omnibar-3.0.6.tgz","fileCount":7,"integrity":"sha512-vjeVa7uxDrB0cjqN17LEAsHSXOzxedavA/x+8oBO4tpOpZRYYB8Mbbs5ICc/98w64jkre7kZs2GBKnG6laQgNA==","signatures":[{"sig":"MEYCIQDtLHDcYvtCuzvNqhP7e2G8hd2P8/3BHF6/gJLTO4ZBFQIhALsud+gm8t7RHE27qWJkVDAtu+/aH6QUWHBOBzGPGuk4","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":77602},"main":"dist/omnibar.js","type":"module","types":"dist/omnibar.d.ts","exports":{".":{"types":"./dist/omnibar.d.ts","import":"./dist/omnibar.js"},"./omnibar.css":"./dist/omnibar.css","./product-switcher":{"import":"./dist/product-switcher.js"},"./profile-switcher":{"import":"./dist/profile-switcher.js"}},"gitHead":"087352229bfdceb1fb0550b9dbbcd28d0525f58d","scripts":{"build":"node scripts/build.mjs","prepublishOnly":"npm run build"},"_npmUser":{"name":"danburts","email":"dkburton0@gmail.com"},"_npmVersion":"10.8.1","description":"Juniper omnibar web components","directories":{},"sideEffects":["./dist/omnibar.css","./dist/omnibar.js","./dist/product-switcher.js","./dist/profile-switcher.js"],"_nodeVersion":"20.16.0","_hasShrinkwrap":false,"devDependencies":{"esbuild":"^0.25.0","lightningcss":"^1.29.0"},"_npmOperationalInternal":{"tmp":"tmp/jui-omnibar_3.0.6_1778656625458_0.09092174312899948","host":"s3://npm-registry-packages-npm-production"}},"3.1.0":{"name":"jui-omnibar","version":"3.1.0","keywords":["web-component","custom-element","omnibar","juniper"],"license":"MIT","_id":"jui-omnibar@3.1.0","maintainers":[{"name":"danburts","email":"dkburton0@gmail.com"}],"dist":{"shasum":"82408a0b69b78de61fae151041048a1934f28e55","tarball":"https://registry.npmjs.org/jui-omnibar/-/jui-omnibar-3.1.0.tgz","fileCount":44,"integrity":"sha512-18OMAv859e+HCKM/G4Y9zsCS9LAU2+tkehqfdvhyJp6qn/csW+hKd8xiDOjofihDL0wlT5Qj7ZjH58wKpRoGog==","signatures":[{"sig":"MEQCIGkQ6YhqdL1qLBx0my0f48CRtltOyv3Oelj5aopAfJEHAiACcLRwaJE6hmc0s4rrgjOamqtcVq0yNZ+ZTv/tpk5FfQ==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":101937},"main":"dist/omnibar.js","type":"module","types":"dist/omnibar.d.ts","exports":{".":{"types":"./dist/omnibar.d.ts","import":"./dist/omnibar.js"},"./omnibar.css":"./dist/omnibar.css","./product-switcher":{"import":"./dist/product-switcher.js"},"./profile-switcher":{"import":"./dist/profile-switcher.js"}},"gitHead":"3920adfe922ea2445db3645efbdbe0d741f3ddac","scripts":{"build":"node scripts/build.mjs","prepublishOnly":"npm run build"},"_npmUser":{"name":"danburts","email":"dkburton0@gmail.com"},"_npmVersion":"10.8.1","description":"Juniper omnibar web components","directories":{},"sideEffects":["./dist/omnibar.css","./dist/omnibar.js","./dist/product-switcher.js","./dist/profile-switcher.js"],"_nodeVersion":"20.16.0","_hasShrinkwrap":false,"devDependencies":{"esbuild":"^0.25.0","lightningcss":"^1.29.0"},"_npmOperationalInternal":{"tmp":"tmp/jui-omnibar_3.1.0_1778662850655_0.9860371447115339","host":"s3://npm-registry-packages-npm-production"}},"3.1.1":{"name":"jui-omnibar","version":"3.1.1","keywords":["web-component","custom-element","omnibar","juniper"],"license":"MIT","_id":"jui-omnibar@3.1.1","maintainers":[{"name":"danburts","email":"dkburton0@gmail.com"}],"dist":{"shasum":"21e370db443b4d42c6d0319d5600b3b79f142f01","tarball":"https://registry.npmjs.org/jui-omnibar/-/jui-omnibar-3.1.1.tgz","fileCount":44,"integrity":"sha512-CUC1aONka+d2K+wl2pNI4BhRSx8BK+4+mY+QLP+ca6le+JoxVxsmclVwAhxVmfYcd5WLHPKHS5+d2Phxy4bqaQ==","signatures":[{"sig":"MEQCIA8D9Ul79ynqQDWCqiRx9zCgwHLGOFe4A6RC1bjBQEnDAiARSMT5F7hyW5GnlEiA0JRa86bnGi9VbhHB4Md+6Xg+ng==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":105494},"main":"dist/omnibar.js","type":"module","types":"dist/omnibar.d.ts","exports":{".":{"types":"./dist/omnibar.d.ts","import":"./dist/omnibar.js"},"./omnibar.css":"./dist/omnibar.css","./product-switcher":{"import":"./dist/product-switcher.js"},"./profile-switcher":{"import":"./dist/profile-switcher.js"}},"gitHead":"0fa2d7242ef17b552a885b0776663bba22914db3","scripts":{"build":"node scripts/build.mjs","prepublishOnly":"npm run build"},"_npmUser":{"name":"danburts","email":"dkburton0@gmail.com"},"_npmVersion":"10.8.1","description":"Juniper omnibar web components","directories":{},"sideEffects":["./dist/omnibar.css","./dist/omnibar.js","./dist/product-switcher.js","./dist/profile-switcher.js"],"_nodeVersion":"20.16.0","_hasShrinkwrap":false,"devDependencies":{"esbuild":"^0.25.0","lightningcss":"^1.29.0"},"_npmOperationalInternal":{"tmp":"tmp/jui-omnibar_3.1.1_1778663076219_0.6301405797025263","host":"s3://npm-registry-packages-npm-production"}},"3.2.0":{"name":"jui-omnibar","version":"3.2.0","keywords":["web-component","custom-element","omnibar","juniper"],"license":"MIT","_id":"jui-omnibar@3.2.0","maintainers":[{"name":"danburts","email":"dkburton0@gmail.com"}],"dist":{"shasum":"d6e9a328e58691a5c897c764183c6afc874989c1","tarball":"https://registry.npmjs.org/jui-omnibar/-/jui-omnibar-3.2.0.tgz","fileCount":46,"integrity":"sha512-L4zp7KEzUce6krjm6MpF2FypyxjaVwaKo1CyleTj5ZDPHC9dITV3dwj9wcVWSN13WOWNJSurSrg+xBCR6W9cmg==","signatures":[{"sig":"MEQCIC5OV+90OV/94tcOi93IZ8JjWRdeS/YSCqFm7cXRa2cQAiBnSHn2KS/AmVM1mYRczxHNMlv/yd2jwt3CehlVbxCo+g==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":144210},"main":"dist/omnibar.js","type":"module","types":"dist/omnibar.d.ts","exports":{".":{"types":"./dist/omnibar.d.ts","import":"./dist/omnibar.js"},"./omnibar.css":"./dist/omnibar.css","./product-switcher":{"import":"./dist/product-switcher.js"},"./profile-switcher":{"import":"./dist/profile-switcher.js"}},"gitHead":"79b3b9fb1b2ec1682100b0f36bfaeee0326c37b7","scripts":{"build":"node scripts/build.mjs","prepublishOnly":"npm run build"},"_npmUser":{"name":"danburts","email":"dkburton0@gmail.com"},"_npmVersion":"10.8.1","description":"Juniper omnibar web components","directories":{},"sideEffects":["./dist/omnibar.css","./dist/omnibar.js","./dist/product-switcher.js","./dist/profile-switcher.js"],"_nodeVersion":"20.16.0","_hasShrinkwrap":false,"devDependencies":{"esbuild":"^0.25.0","lightningcss":"^1.29.0"},"_npmOperationalInternal":{"tmp":"tmp/jui-omnibar_3.2.0_1779353211211_0.510361655854662","host":"s3://npm-registry-packages-npm-production"}},"3.3.0":{"name":"jui-omnibar","version":"3.3.0","keywords":["web-component","custom-element","omnibar","juniper"],"license":"MIT","_id":"jui-omnibar@3.3.0","maintainers":[{"name":"danburts","email":"dkburton0@gmail.com"}],"dist":{"shasum":"9d9d001eccceef3d261be346d8df2f06eae6653f","tarball":"https://registry.npmjs.org/jui-omnibar/-/jui-omnibar-3.3.0.tgz","fileCount":46,"integrity":"sha512-JmYsDyv0By6FzQmKevmbyJBOGwsgiedGKq1fqZ3yuQ2wwVQLMwU/VTiQMHxpYGlvKs0hwrICf4/wh6YznIlSBA==","signatures":[{"sig":"MEQCIDywreeF3hzHgD91ON9gK6PP8KmTnrJCnF4PvVVzsLf6AiBAjGNcAhTs5Qq2H165O00NmraeHppLWjSa7hq/8RHI9A==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":147470},"main":"dist/omnibar.js","type":"module","types":"dist/omnibar.d.ts","exports":{".":{"types":"./dist/omnibar.d.ts","import":"./dist/omnibar.js"},"./omnibar.css":"./dist/omnibar.css","./product-switcher":{"import":"./dist/product-switcher.js"},"./profile-switcher":{"import":"./dist/profile-switcher.js"}},"gitHead":"23dc47d2a4d119ced48abadf7b2ab25f075e0dc0","scripts":{"build":"node scripts/build.mjs","prepublishOnly":"npm run build"},"_npmUser":{"name":"danburts","email":"dkburton0@gmail.com"},"_npmVersion":"10.8.1","description":"Juniper omnibar web components","directories":{},"sideEffects":["./dist/omnibar.css","./dist/omnibar.js","./dist/product-switcher.js","./dist/profile-switcher.js"],"_nodeVersion":"20.16.0","_hasShrinkwrap":false,"devDependencies":{"esbuild":"^0.25.0","lightningcss":"^1.29.0"},"_npmOperationalInternal":{"tmp":"tmp/jui-omnibar_3.3.0_1779354778787_0.193997634802219","host":"s3://npm-registry-packages-npm-production"}},"3.4.0":{"name":"jui-omnibar","version":"3.4.0","keywords":["web-component","custom-element","omnibar","juniper"],"license":"MIT","_id":"jui-omnibar@3.4.0","maintainers":[{"name":"danburts","email":"dkburton0@gmail.com"}],"dist":{"shasum":"048b6bfcedcb49306cecb059fb6deec1b4a8de98","tarball":"https://registry.npmjs.org/jui-omnibar/-/jui-omnibar-3.4.0.tgz","fileCount":46,"integrity":"sha512-p5GMYeKFIbYhcSqiBkSsIW2xsbrQC98pb0QbuE2qzXdAtTzpIDZs2oSCPilv7Nw/OO2x0D48X9A4kriZiOPyFg==","signatures":[{"sig":"MEYCIQCE0EmPiZ51XkrKaCoOJOqgyD0tTluTHaxvg5cQlu4oXgIhAPILHI9u6zv/bV8v4DXwlcZjqW2zwU7upuoW/So+Nshv","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":150142},"main":"dist/omnibar.js","type":"module","types":"dist/omnibar.d.ts","exports":{".":{"types":"./dist/omnibar.d.ts","import":"./dist/omnibar.js"},"./omnibar.css":"./dist/omnibar.css","./product-switcher":{"import":"./dist/product-switcher.js"},"./profile-switcher":{"import":"./dist/profile-switcher.js"}},"gitHead":"41eb00a84c45e133df73f73618b7e6a6c665b0ee","scripts":{"build":"node scripts/build.mjs","prepublishOnly":"npm run build"},"_npmUser":{"name":"danburts","email":"dkburton0@gmail.com"},"_npmVersion":"10.8.1","description":"Juniper omnibar web components","directories":{},"sideEffects":["./dist/omnibar.css","./dist/omnibar.js","./dist/product-switcher.js","./dist/profile-switcher.js"],"_nodeVersion":"20.16.0","_hasShrinkwrap":false,"devDependencies":{"esbuild":"^0.25.0","lightningcss":"^1.29.0"},"_npmOperationalInternal":{"tmp":"tmp/jui-omnibar_3.4.0_1779364173846_0.5370732546987589","host":"s3://npm-registry-packages-npm-production"}},"3.4.1":{"name":"jui-omnibar","version":"3.4.1","keywords":["web-component","custom-element","omnibar","juniper"],"license":"MIT","_id":"jui-omnibar@3.4.1","maintainers":[{"name":"danburts","email":"dkburton0@gmail.com"},{"name":"emmarichardson08","email":"emmanicolerichardson8@gmail.com"}],"dist":{"shasum":"972b09c17b6a77ab2b911961e1250575073b4018","tarball":"https://registry.npmjs.org/jui-omnibar/-/jui-omnibar-3.4.1.tgz","fileCount":46,"integrity":"sha512-HWVQOjvsYKkY1qmiAIZkaJCWsl0BtWpAeEZM53XqzT4j4M1A40u6gYUBEbljghB4+8yyzRqD7wFZX2ACTL9KWQ==","signatures":[{"sig":"MEQCIHBay2lk2axOXL8ExcjYAt0eHq1XBR3ULOpOgX6ZJAwnAiAwNAllwN1mD9DnAaSknjrDLLvRymdiGp/V2VPwwlTOaw==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":150142},"main":"dist/omnibar.js","type":"module","types":"dist/omnibar.d.ts","exports":{".":{"types":"./dist/omnibar.d.ts","import":"./dist/omnibar.js"},"./omnibar.css":"./dist/omnibar.css","./product-switcher":{"import":"./dist/product-switcher.js"},"./profile-switcher":{"import":"./dist/profile-switcher.js"}},"gitHead":"72c228d352e6cc0d00a8130b31313c250e1bc51e","scripts":{"build":"node scripts/build.mjs","prepublishOnly":"npm run build"},"_npmUser":{"name":"danburts","email":"dkburton0@gmail.com"},"_npmVersion":"10.8.1","description":"Juniper omnibar web components","directories":{},"sideEffects":["./dist/omnibar.css","./dist/omnibar.js","./dist/product-switcher.js","./dist/profile-switcher.js"],"_nodeVersion":"20.16.0","_hasShrinkwrap":false,"devDependencies":{"esbuild":"^0.25.0","lightningcss":"^1.29.0"},"_npmOperationalInternal":{"tmp":"tmp/jui-omnibar_3.4.1_1783498239711_0.37934501789841435","host":"s3://npm-registry-packages-npm-production"}},"3.4.3":{"name":"jui-omnibar","version":"3.4.3","keywords":["web-component","custom-element","omnibar","juniper"],"license":"MIT","_id":"jui-omnibar@3.4.3","maintainers":[{"name":"danburts","email":"dkburton0@gmail.com"},{"name":"emmarichardson08","email":"emmanicolerichardson8@gmail.com"}],"dist":{"shasum":"379f67421ab08e6c33a4a48584f55622eaef5db8","tarball":"https://registry.npmjs.org/jui-omnibar/-/jui-omnibar-3.4.3.tgz","fileCount":46,"integrity":"sha512-NEuADYjMSjDccuPHxydqvpUG3Uv+7quJR9BtJKE/C/TJpFqfg0gm9nBV8oF4JxLF/lbldzDXKEEopZ0z+Niuww==","signatures":[{"sig":"MEUCIQDJTATTJFlWO4KmNXXPResUmePZ8jTncZd9fW5m/5aWlQIgRyoo6xxoNHMorVIQim37PvUP1Vtbk6YkEYnQW2MZSdk=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":150385},"main":"dist/omnibar.js","type":"module","types":"dist/omnibar.d.ts","exports":{".":{"types":"./dist/omnibar.d.ts","import":"./dist/omnibar.js"},"./omnibar.css":"./dist/omnibar.css","./product-switcher":{"import":"./dist/product-switcher.js"},"./profile-switcher":{"import":"./dist/profile-switcher.js"}},"gitHead":"20e07cb5c095179ada19c83d853abf3426b29fd2","scripts":{"test":"npm run build && node scripts/smoke-test.mjs","build":"node scripts/build.mjs","prepublishOnly":"npm run build"},"_npmUser":{"name":"danburts","email":"dkburton0@gmail.com"},"_npmVersion":"10.8.1","description":"Juniper omnibar web components","directories":{},"sideEffects":["./dist/omnibar.css","./dist/omnibar.js","./dist/product-switcher.js","./dist/profile-switcher.js"],"_nodeVersion":"20.16.0","_hasShrinkwrap":false,"devDependencies":{"esbuild":"^0.28.0","lightningcss":"^1.32.0"},"_npmOperationalInternal":{"tmp":"tmp/jui-omnibar_3.4.3_1783584905508_0.4142169567121665","host":"s3://npm-registry-packages-npm-production"}},"4.0.0":{"name":"jui-omnibar","version":"4.0.0","keywords":["web-component","custom-element","omnibar","juniper"],"license":"MIT","_id":"jui-omnibar@4.0.0","maintainers":[{"name":"danburts","email":"dkburton0@gmail.com"},{"name":"emmarichardson08","email":"emmanicolerichardson8@gmail.com"}],"homepage":"https://github.com/junipersystems/jui-omnibar#readme","bugs":{"url":"https://github.com/junipersystems/jui-omnibar/issues"},"dist":{"shasum":"9c64bfb36f8b614b24c5c0e2d8143eec2d5d9552","tarball":"https://registry.npmjs.org/jui-omnibar/-/jui-omnibar-4.0.0.tgz","fileCount":47,"integrity":"sha512-chr6LU8S5zS+QTRmRZlVqSXKKMYYvmzWgrThRznE/aF+Bpsm/5dunjJKsNW9YqJKgSblcEZprzwQ6q51N87rsQ==","signatures":[{"sig":"MEUCIFG/l57Kzkq56106i2Mz4XOthpihPS4ZW7T5eDH4OP4fAiEAmNIrXJ2szV9YHYNMkoPgolXNQh905cNqrTxQTnCxDtg=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":183078},"main":"dist/omnibar.js","type":"module","types":"dist/omnibar.d.ts","exports":{".":{"types":"./dist/omnibar.d.ts","import":"./dist/omnibar.js"},"./omnibar.css":"./dist/omnibar.css","./product-switcher":{"import":"./dist/product-switcher.js"},"./profile-switcher":{"import":"./dist/profile-switcher.js"}},"gitHead":"ddeab776c5c42386d479bdeb8ff565e0a95d7d85","scripts":{"test":"npm run build && node scripts/smoke-test.mjs && node --test test/ && npm run typecheck","build":"node scripts/build.mjs","typecheck":"tsc -p tsconfig.json","prepublishOnly":"npm run build"},"_npmUser":{"name":"danburts","email":"dkburton0@gmail.com"},"repository":{"url":"git+https://github.com/junipersystems/jui-omnibar.git","type":"git"},"_npmVersion":"10.8.1","description":"Juniper omnibar web components","directories":{},"sideEffects":["./dist/omnibar.css","./dist/omnibar.js","./dist/product-switcher.js","./dist/profile-switcher.js"],"_nodeVersion":"20.16.0","_hasShrinkwrap":false,"devDependencies":{"esbuild":"^0.28.0","happy-dom":"^20.11.2","typescript":"^7.0.2","lightningcss":"^1.32.0"},"_npmOperationalInternal":{"tmp":"tmp/jui-omnibar_4.0.0_1786369181822_0.5553335943561704","host":"s3://npm-registry-packages-npm-production"}},"4.0.1":{"name":"jui-omnibar","version":"4.0.1","keywords":["web-component","custom-element","omnibar","juniper"],"license":"MIT","_id":"jui-omnibar@4.0.1","maintainers":[{"name":"danburts","email":"dkburton0@gmail.com"},{"name":"emmarichardson08","email":"emmanicolerichardson8@gmail.com"}],"homepage":"https://github.com/junipersystems/jui-omnibar#readme","bugs":{"url":"https://github.com/junipersystems/jui-omnibar/issues"},"dist":{"shasum":"8ce5a0dc44fc245c391a75e8659e630bbd04edab","tarball":"https://registry.npmjs.org/jui-omnibar/-/jui-omnibar-4.0.1.tgz","fileCount":47,"integrity":"sha512-rMqcytGwzhKwu9tL8LG4o8aUaK64Lj+9X/LLVUyx4dCoaK3oScFtpepM2j92jpv56X4HpELkFDHuOj83glkaRQ==","signatures":[{"sig":"MEYCIQDDPMjtlCcMsHCJO3qoa6imvtRH1QdzFzpSu6YwO/3vKwIhAK194bYvdk3aZjjg64d2wEsq/qKe5hJE/7O3gjhfkFJZ","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":183391},"main":"dist/omnibar.js","type":"module","types":"dist/omnibar.d.ts","exports":{".":{"types":"./dist/omnibar.d.ts","import":"./dist/omnibar.js"},"./omnibar.css":"./dist/omnibar.css","./product-switcher":{"import":"./dist/product-switcher.js"},"./profile-switcher":{"import":"./dist/profile-switcher.js"}},"gitHead":"795ea7e2b3b30b18c05cc8fd0137c9f0f6b8e853","scripts":{"test":"npm run build && node scripts/smoke-test.mjs && node --test test/ && npm run typecheck","build":"node scripts/build.mjs","typecheck":"tsc -p tsconfig.json","prepublishOnly":"npm run build"},"_npmUser":{"name":"danburts","email":"dkburton0@gmail.com"},"repository":{"url":"git+https://github.com/junipersystems/jui-omnibar.git","type":"git"},"_npmVersion":"11.7.0","description":"Juniper omnibar web components","directories":{},"sideEffects":["./dist/omnibar.css","./dist/omnibar.js","./dist/product-switcher.js","./dist/profile-switcher.js"],"_nodeVersion":"22.17.0","_hasShrinkwrap":false,"devDependencies":{"esbuild":"^0.28.0","happy-dom":"^20.11.2","typescript":"^7.0.2","lightningcss":"^1.32.0"},"_npmOperationalInternal":{"tmp":"tmp/jui-omnibar_4.0.1_1786371764899_0.5632288907131611","host":"s3://npm-registry-packages-npm-production"}},"4.1.0":{"name":"jui-omnibar","version":"4.1.0","keywords":["web-component","custom-element","omnibar","juniper"],"license":"MIT","_id":"jui-omnibar@4.1.0","maintainers":[{"name":"danburts","email":"dkburton0@gmail.com"},{"name":"emmarichardson08","email":"emmanicolerichardson8@gmail.com"}],"homepage":"https://github.com/junipersystems/jui-omnibar#readme","bugs":{"url":"https://github.com/junipersystems/jui-omnibar/issues"},"dist":{"shasum":"124466520a37963843bb7015f50190a2631ff174","tarball":"https://registry.npmjs.org/jui-omnibar/-/jui-omnibar-4.1.0.tgz","fileCount":47,"integrity":"sha512-G0MyqprqSKhn4U1tny4iZPHjx+y8BjqMcHS8nI6wgKAOwdo1DjNbYLvXQ2strCzSg1dyphlmfsBttYhmcEMziA==","signatures":[{"sig":"MEQCIEm74+QJhzSbYVXfPh39r22lVtLBHjeLZjqkxMVLdvDLAiBbCq98MLuUs6VIdw0bgc5MqZrqy9H+kMi9UIukrH5Vlw==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":185816},"main":"dist/omnibar.js","type":"module","types":"dist/omnibar.d.ts","exports":{".":{"types":"./dist/omnibar.d.ts","import":"./dist/omnibar.js"},"./omnibar.css":"./dist/omnibar.css","./product-switcher":{"import":"./dist/product-switcher.js"},"./profile-switcher":{"import":"./dist/profile-switcher.js"}},"gitHead":"66ef953f383e7c7db6c53e57c46a1f508b13ec07","scripts":{"test":"npm run build && node scripts/smoke-test.mjs && node --test test/ && npm run typecheck","build":"node scripts/build.mjs","typecheck":"tsc -p tsconfig.json","prepublishOnly":"npm run build"},"_npmUser":{"name":"danburts","email":"dkburton0@gmail.com"},"repository":{"url":"git+https://github.com/junipersystems/jui-omnibar.git","type":"git"},"_npmVersion":"10.8.1","description":"Juniper omnibar web components","directories":{},"sideEffects":["./dist/omnibar.css","./dist/omnibar.js","./dist/product-switcher.js","./dist/profile-switcher.js"],"_nodeVersion":"20.16.0","_hasShrinkwrap":false,"devDependencies":{"esbuild":"^0.28.0","happy-dom":"^20.11.2","typescript":"^7.0.2","lightningcss":"^1.32.0"},"_npmOperationalInternal":{"tmp":"tmp/jui-omnibar_4.1.0_1786375408347_0.45834616807065554","host":"s3://npm-registry-packages-npm-production"}},"4.2.0":{"name":"jui-omnibar","version":"4.2.0","keywords":["web-component","custom-element","omnibar","juniper"],"license":"MIT","_id":"jui-omnibar@4.2.0","maintainers":[{"name":"danburts","email":"dkburton0@gmail.com"},{"name":"emmarichardson08","email":"emmanicolerichardson8@gmail.com"}],"homepage":"https://github.com/junipersystems/jui-omnibar#readme","bugs":{"url":"https://github.com/junipersystems/jui-omnibar/issues"},"dist":{"shasum":"fe1b9cddeeab76c899dfbd833fd11297e5d01ff6","tarball":"https://registry.npmjs.org/jui-omnibar/-/jui-omnibar-4.2.0.tgz","fileCount":47,"integrity":"sha512-yox/sfd6o7pzsZ7VsrYYtxGOgRpxv4hYP8e4SMvbfyWZQpW6vI7xmf/OV1+U6LhmJgpBJXdXLX5TCTBTvQjd7A==","signatures":[{"sig":"MEYCIQCCa6YyioB9rCSGuWMqkOiTzojzcg/h9VzW8bi4+l0VIgIhAI6w9Z6tbSTXCUtlLI5aBQMHZ9ImOkFPZ7NTeRzyz4mU","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":194497},"main":"dist/omnibar.js","type":"module","types":"dist/omnibar.d.ts","exports":{".":{"types":"./dist/omnibar.d.ts","import":"./dist/omnibar.js"},"./omnibar.css":"./dist/omnibar.css","./product-switcher":{"import":"./dist/product-switcher.js"},"./profile-switcher":{"import":"./dist/profile-switcher.js"}},"gitHead":"66ea12c43cac5aafa4da7136438fb692b61ba59e","scripts":{"test":"npm run build && node scripts/smoke-test.mjs && node --test test/ && npm run typecheck","build":"node scripts/build.mjs","typecheck":"tsc -p tsconfig.json","prepublishOnly":"npm run build"},"_npmUser":{"name":"danburts","email":"dkburton0@gmail.com"},"repository":{"url":"git+https://github.com/junipersystems/jui-omnibar.git","type":"git"},"_npmVersion":"10.8.1","description":"Juniper omnibar web components","directories":{},"sideEffects":["./dist/omnibar.css","./dist/omnibar.js","./dist/product-switcher.js","./dist/profile-switcher.js"],"_nodeVersion":"20.16.0","_hasShrinkwrap":false,"devDependencies":{"esbuild":"^0.28.0","happy-dom":"^20.11.2","typescript":"^7.0.2","lightningcss":"^1.32.0"},"_npmOperationalInternal":{"tmp":"tmp/jui-omnibar_4.2.0_1786456034424_0.905817826850384","host":"s3://npm-registry-packages-npm-production"}},"4.2.1":{"name":"jui-omnibar","version":"4.2.1","keywords":["web-component","custom-element","omnibar","juniper"],"license":"MIT","_id":"jui-omnibar@4.2.1","maintainers":[{"name":"danburts","email":"dkburton0@gmail.com"},{"name":"emmarichardson08","email":"emmanicolerichardson8@gmail.com"}],"homepage":"https://github.com/junipersystems/jui-omnibar#readme","bugs":{"url":"https://github.com/junipersystems/jui-omnibar/issues"},"dist":{"shasum":"5690878e227b2bbad3ac07112664506c056550eb","tarball":"https://registry.npmjs.org/jui-omnibar/-/jui-omnibar-4.2.1.tgz","fileCount":47,"integrity":"sha512-swzUCrXcSDSDJZd0316VUChG9/Oso9iLbqHE8422wnHtMqNl5A5Ws3ux+v2mAZ2lCdWB50E6iPS6dzxj0zC6rw==","signatures":[{"sig":"MEUCIQC8AWBBJ//CXMzJaEoY6H1SND3gkZ/95hJURlEfY4xoAQIgZWHdI03bztmiCRfoQku9pYPsznCFDXPjcDwOMUjBSOU=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":193466},"main":"dist/omnibar.js","type":"module","types":"dist/omnibar.d.ts","exports":{".":{"types":"./dist/omnibar.d.ts","import":"./dist/omnibar.js"},"./omnibar.css":"./dist/omnibar.css","./product-switcher":{"import":"./dist/product-switcher.js"},"./profile-switcher":{"import":"./dist/profile-switcher.js"}},"gitHead":"011b2d3b1eee0aedbb04ba95185275307c9c79f8","scripts":{"test":"npm run build && node scripts/smoke-test.mjs && node --test test/ && npm run typecheck","build":"node scripts/build.mjs","typecheck":"tsc -p tsconfig.json","prepublishOnly":"npm run build"},"_npmUser":{"name":"danburts","email":"dkburton0@gmail.com"},"repository":{"url":"git+https://github.com/junipersystems/jui-omnibar.git","type":"git"},"_npmVersion":"10.8.1","description":"Juniper omnibar web components","directories":{},"sideEffects":["./dist/omnibar.css","./dist/omnibar.js","./dist/product-switcher.js","./dist/profile-switcher.js"],"_nodeVersion":"20.16.0","_hasShrinkwrap":false,"devDependencies":{"esbuild":"^0.28.0","happy-dom":"^20.11.2","typescript":"^7.0.2","lightningcss":"^1.32.0"},"_npmOperationalInternal":{"tmp":"tmp/jui-omnibar_4.2.1_1786462650847_0.8827936455342908","host":"s3://npm-registry-packages-npm-production"}},"5.0.0":{"name":"jui-omnibar","version":"5.0.0","keywords":["web-component","custom-element","omnibar","juniper"],"license":"MIT","_id":"jui-omnibar@5.0.0","maintainers":[{"name":"danburts","email":"dkburton0@gmail.com"},{"name":"emmarichardson08","email":"emmanicolerichardson8@gmail.com"}],"homepage":"https://github.com/junipersystems/jui-omnibar#readme","bugs":{"url":"https://github.com/junipersystems/jui-omnibar/issues"},"dist":{"shasum":"a321cb0d5a5bf2eabd9e00908271e5abfa91f2f1","tarball":"https://registry.npmjs.org/jui-omnibar/-/jui-omnibar-5.0.0.tgz","fileCount":48,"integrity":"sha512-cbZ25iykeVTDGYShYlJSi9c8bTM2OAc51YEgOTSRhH8ahdDULMfShW318us4cz8F46OceIMa0cRuY6i+ajOBVw==","signatures":[{"sig":"MEYCIQC7LzgDKwnyM/LoKLfnrKXmXoQIgkSLkJvZ0EfV0mGxygIhANhcbQqqScQFUgixjVn57z0G0HHaQ9/NF2MqQye1af3B","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":197447},"main":"dist/omnibar.js","type":"module","types":"dist/omnibar.d.ts","exports":{".":{"types":"./dist/omnibar.d.ts","import":"./dist/omnibar.js"},"./omnibar.css":"./dist/omnibar.css","./product-switcher":{"import":"./dist/product-switcher.js"},"./profile-switcher":{"import":"./dist/profile-switcher.js"}},"gitHead":"b91d454b9bd64fad0ebbf1728ed2490af216d390","scripts":{"test":"npm run build && node scripts/smoke-test.mjs && node --test && npm run typecheck","build":"node scripts/build.mjs","typecheck":"tsc -p tsconfig.json","prepublishOnly":"npm run build"},"_npmUser":{"name":"danburts","email":"dkburton0@gmail.com"},"repository":{"url":"git+https://github.com/junipersystems/jui-omnibar.git","type":"git"},"_npmVersion":"11.7.0","description":"Juniper omnibar web components","directories":{},"sideEffects":["./dist/omnibar.css","./dist/omnibar.js","./dist/product-switcher.js","./dist/profile-switcher.js"],"_nodeVersion":"22.17.0","_hasShrinkwrap":false,"devDependencies":{"esbuild":"^0.28.0","happy-dom":"^20.11.2","typescript":"^7.0.2","lightningcss":"^1.32.0"},"_npmOperationalInternal":{"tmp":"tmp/jui-omnibar_5.0.0_1787146914487_0.7860538678163722","host":"s3://npm-registry-packages-npm-production"}},"5.0.1":{"name":"jui-omnibar","version":"5.0.1","keywords":["web-component","custom-element","omnibar","juniper"],"license":"MIT","_id":"jui-omnibar@5.0.1","maintainers":[{"name":"danburts","email":"dkburton0@gmail.com"},{"name":"emmarichardson08","email":"emmanicolerichardson8@gmail.com"}],"homepage":"https://github.com/junipersystems/jui-omnibar#readme","bugs":{"url":"https://github.com/junipersystems/jui-omnibar/issues"},"dist":{"shasum":"1dd548727ee33bf365c0bd92bd692e33d4ca6c6a","tarball":"https://registry.npmjs.org/jui-omnibar/-/jui-omnibar-5.0.1.tgz","fileCount":48,"integrity":"sha512-/Rnp+XTn0WA0ZfY3J7G+xtl+lIhpgkUJHgItku0HTxMILKaYyyrbYKOSjp6syZAi1enSM7gFHPOGpCqYGxOl0g==","signatures":[{"sig":"MEUCIBJeEG5VfwhE7pvAoh/5ZIa8JSDCcwXfOrpKlEljdzTSAiEA7xTqhGCBycIA9CZYspIyFsAWRf+BZlSYQvwmZOec8Y8=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":198319},"main":"dist/omnibar.js","type":"module","types":"dist/omnibar.d.ts","exports":{".":{"types":"./dist/omnibar.d.ts","import":"./dist/omnibar.js"},"./omnibar.css":"./dist/omnibar.css","./product-switcher":{"import":"./dist/product-switcher.js"},"./profile-switcher":{"import":"./dist/profile-switcher.js"}},"gitHead":"308d9a0a96e6dbedc2236d7a50d02b64e76b8b76","scripts":{"test":"npm run build && node scripts/smoke-test.mjs && node --test && npm run typecheck","build":"node scripts/build.mjs","typecheck":"tsc -p tsconfig.json","prepublishOnly":"npm run build"},"_npmUser":{"name":"danburts","email":"dkburton0@gmail.com"},"repository":{"url":"git+https://github.com/junipersystems/jui-omnibar.git","type":"git"},"_npmVersion":"11.7.0","description":"Juniper omnibar web components","directories":{},"sideEffects":["./dist/omnibar.css","./dist/omnibar.js","./dist/product-switcher.js","./dist/profile-switcher.js"],"_nodeVersion":"22.17.0","_hasShrinkwrap":false,"devDependencies":{"esbuild":"^0.28.0","happy-dom":"^20.11.2","typescript":"^7.0.2","lightningcss":"^1.32.0"},"_npmOperationalInternal":{"tmp":"tmp/jui-omnibar_5.0.1_1787149890969_0.3798851275653108","host":"s3://npm-registry-packages-npm-production"}},"5.1.0":{"name":"jui-omnibar","version":"5.1.0","keywords":["web-component","custom-element","omnibar","juniper"],"license":"MIT","_id":"jui-omnibar@5.1.0","maintainers":[{"name":"danburts","email":"dkburton0@gmail.com"},{"name":"emmarichardson08","email":"emmanicolerichardson8@gmail.com"}],"homepage":"https://github.com/junipersystems/jui-omnibar#readme","bugs":{"url":"https://github.com/junipersystems/jui-omnibar/issues"},"dist":{"shasum":"87e4c950944a46d6d0e4b462dbd4c622390c0ac9","tarball":"https://registry.npmjs.org/jui-omnibar/-/jui-omnibar-5.1.0.tgz","fileCount":48,"integrity":"sha512-oejJPO8XY1dcpAjQ/72l8iq7IgsimbT3FMnvl7lzo1fPdu4EUxvBvSPS2LfCLsGynIAs83OulsN8b7MbQUwOSA==","signatures":[{"sig":"MEQCIFRvRrWYrEAXHfA/pQs1GH4nI9mCMJc43IQ4/WH6TC4qAiADUyE4rjWAmWc3zQ8LNq1/MoGdqfn7AODX18zPx8hNSg==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":199352},"main":"dist/omnibar.js","type":"module","types":"dist/omnibar.d.ts","exports":{".":{"types":"./dist/omnibar.d.ts","import":"./dist/omnibar.js"},"./omnibar.css":"./dist/omnibar.css","./product-switcher":{"import":"./dist/product-switcher.js"},"./profile-switcher":{"import":"./dist/profile-switcher.js"}},"gitHead":"0a2a5fae2976c0541b8fc9c791d17596d014f196","scripts":{"test":"npm run build && node scripts/smoke-test.mjs && node --test && npm run typecheck","build":"node scripts/build.mjs","typecheck":"tsc -p tsconfig.json","prepublishOnly":"npm run build"},"_npmUser":{"name":"danburts","email":"dkburton0@gmail.com"},"repository":{"url":"git+https://github.com/junipersystems/jui-omnibar.git","type":"git"},"_npmVersion":"11.7.0","description":"Juniper omnibar web components","directories":{},"sideEffects":["./dist/omnibar.css","./dist/omnibar.js","./dist/product-switcher.js","./dist/profile-switcher.js"],"_nodeVersion":"22.17.0","_hasShrinkwrap":false,"devDependencies":{"esbuild":"^0.28.0","happy-dom":"^20.11.2","typescript":"^7.0.2","lightningcss":"^1.32.0"},"_npmOperationalInternal":{"tmp":"tmp/jui-omnibar_5.1.0_1787569756160_0.8276110033825514","host":"s3://npm-registry-packages-npm-production"}},"5.1.1":{"name":"jui-omnibar","version":"5.1.1","description":"Juniper omnibar web components","repository":{"type":"git","url":"git+https://github.com/junipersystems/jui-omnibar.git"},"bugs":{"url":"https://github.com/junipersystems/jui-omnibar/issues"},"homepage":"https://github.com/junipersystems/jui-omnibar#readme","type":"module","main":"dist/omnibar.js","types":"dist/omnibar.d.ts","exports":{".":{"import":"./dist/omnibar.js","types":"./dist/omnibar.d.ts"},"./omnibar.css":"./dist/omnibar.css","./product-switcher":{"import":"./dist/product-switcher.js"},"./profile-switcher":{"import":"./dist/profile-switcher.js"}},"sideEffects":["./dist/omnibar.css","./dist/omnibar.js","./dist/product-switcher.js","./dist/profile-switcher.js"],"scripts":{"build":"node scripts/build.mjs","typecheck":"tsc -p tsconfig.json","test":"npm run build && node scripts/smoke-test.mjs && node --test test/*.mjs && npm run typecheck","prepublishOnly":"npm run build"},"keywords":["web-component","custom-element","omnibar","juniper"],"license":"MIT","devDependencies":{"esbuild":"^0.28.0","happy-dom":"^20.11.2","lightningcss":"^1.32.0","typescript":"^7.0.2"},"gitHead":"f8665f0686238e61e8c20551732e99a3feb7ebbd","_id":"jui-omnibar@5.1.1","_nodeVersion":"24.20.0","_npmVersion":"11.19.0","dist":{"integrity":"sha512-BmJOSpt8hkvZao7LX8zdiuysKIE7VO2m3ooRI0VT7n2EdzdtECUnlYalv22do80PBLc2ZItN7sIUie26ZVpM2w==","shasum":"c4b789250649ce87460d2466ad4cd133ffda36f8","tarball":"https://registry.npmjs.org/jui-omnibar/-/jui-omnibar-5.1.1.tgz","fileCount":48,"unpackedSize":200376,"signatures":[{"keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U","sig":"MEQCIHs03ceDiGpovgd1ehGrSpicRq1VlVsJgkYce2TzbSKHAiAz96DTQO1pTzNhx82oFCcEaIbUU/7yzadFZUDybOmEcw=="}]},"_npmUser":{"name":"danburts","email":"dkburton0@gmail.com"},"directories":{},"maintainers":[{"name":"danburts","email":"dkburton0@gmail.com"},{"name":"emmarichardson08","email":"emmanicolerichardson8@gmail.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages-npm-production","tmp":"tmp/jui-omnibar_5.1.1_1788440198432_0.02941576596262152"},"_hasShrinkwrap":false}},"time":{"created":"2026-03-31T11:49:29.333Z","modified":"2026-09-03T12:56:38.807Z","1.0.0":"2026-03-31T11:49:29.538Z","2.0.0":"2026-04-22T09:50:48.385Z","2.0.1":"2026-04-22T10:00:58.984Z","2.0.2":"2026-04-22T11:53:38.478Z","2.0.3":"2026-04-22T11:58:40.720Z","2.0.4":"2026-04-22T11:59:56.752Z","2.1.1":"2026-04-24T09:02:01.477Z","2.1.2":"2026-04-24T09:07:37.036Z","3.0.0":"2026-04-30T13:45:42.199Z","3.0.1":"2026-04-30T13:49:58.954Z","3.0.2":"2026-05-12T13:49:10.826Z","3.0.3":"2026-05-12T13:54:53.432Z","3.0.4":"2026-05-12T17:30:54.239Z","3.0.5":"2026-05-12T17:44:58.433Z","3.0.6":"2026-05-13T07:17:05.623Z","3.1.0":"2026-05-13T09:00:50.787Z","3.1.1":"2026-05-13T09:04:36.364Z","3.2.0":"2026-05-21T08:46:51.345Z","3.3.0":"2026-05-21T09:12:58.930Z","3.4.0":"2026-05-21T11:49:33.984Z","3.4.1":"2026-07-08T08:10:39.884Z","3.4.3":"2026-07-09T08:15:05.641Z","4.0.0":"2026-08-10T13:39:41.975Z","4.0.1":"2026-08-10T14:22:45.073Z","4.1.0":"2026-08-10T15:23:28.524Z","4.2.0":"2026-08-11T13:47:14.564Z","4.2.1":"2026-08-11T15:37:31.004Z","5.0.0":"2026-08-19T13:41:54.652Z","5.0.1":"2026-08-19T14:31:31.142Z","5.1.0":"2026-08-24T11:09:16.332Z","5.1.1":"2026-09-03T12:56:38.583Z"},"bugs":{"url":"https://github.com/junipersystems/jui-omnibar/issues"},"license":"MIT","homepage":"https://github.com/junipersystems/jui-omnibar#readme","keywords":["web-component","custom-element","omnibar","juniper"],"repository":{"type":"git","url":"git+https://github.com/junipersystems/jui-omnibar.git"},"description":"Juniper omnibar web components","maintainers":[{"name":"danburts","email":"dkburton0@gmail.com"},{"name":"emmarichardson08","email":"emmanicolerichardson8@gmail.com"}],"readme":"# JUI Omnibar\n\nA lightweight, framework-agnostic **web component omnibar** for Juniper products.\n\nIncludes:\n\n- Product switcher with a redirect modal that opens products in the same tab\n- Profile switcher with a redirect modal on the \"Profile\" link that opens Portal in a new tab\n- Image-based icons with automatic light/dark switching\n- Account-aware configuration\n- TypeScript definitions\n- Fully accessible popovers & keyboard support\n- No framework dependencies\n\n---\n\n## Table of contents\n\n- [Installation](#installation)\n  - [NPM](#npm)\n  - [CDN (Quick start)](#cdn-quick-start)\n- [Usage](#usage)\n- [Icons](#icons)\n  - [Bundled icons](#bundled-icons)\n- [Configuration](#configuration)\n  - [Product Switcher](#product-switcher)\n  - [Profile Switcher](#profile-switcher)\n  - [Actions behaviour](#actions-behaviour)\n  - [Redirect modal](#redirect-modal)\n  - [Nav action icons](#nav-action-icons)\n  - [Other accounts](#other-accounts)\n- [Data tags](#data-tags)\n- [Attributes](#attributes)\n- [Events](#events)\n- [Dark mode](#dark-mode)\n- [Styling](#styling)\n- [Loading strategy (avoiding layout jank)](#loading-strategy-avoiding-layout-jank)\n  - [Vanilla HTML](#vanilla-html)\n  - [Vue](#vue)\n  - [React](#react)\n  - [Laravel / Blade](#laravel--blade)\n- [Package structure](#package-structure)\n- [Development](#development)\n- [Accessibility](#accessibility)\n- [Security](#security)\n- [Migration from v3.0.x](#migration-from-v30x)\n- [Migration from v3.x (v4.0.0)](#migration-from-v3x-v400)\n- [Migration from v4.x (v5.0.0)](#migration-from-v4x-v500)\n- [License](#license)\n\n---\n\n## Installation\n\n### NPM\n\n```bash\nnpm install jui-omnibar\n```\n\n```js\nimport \"jui-omnibar/omnibar.css\";\nimport \"jui-omnibar\";\n```\n\n---\n\n### CDN (Quick start)\n\n```html\n<link rel=\"stylesheet\" href=\"https://cdn.jsdelivr.net/npm/jui-omnibar@4.2.0/dist/omnibar.css\" />\n\n<script type=\"module\">\n  import \"https://cdn.jsdelivr.net/npm/jui-omnibar@4.2.0/dist/omnibar.js\";\n</script>\n```\n\n> Pin to a specific version in production rather than using `latest`.\n\n---\n\n## Usage\n\nThe tag itself, with its account attributes:\n\n```html\n<jui-omnibar product=\"MIS\" account=\"Highlands Academy\" account-type=\"school\" home=\"/\"></jui-omnibar>\n```\n\n```js\nconst omnibar = document.querySelector(\"jui-omnibar\");\n```\n\n### End-to-end example\n\nAttributes only cover the product/account name shown in the bar itself — the\nproduct switcher, profile switcher, and nav icons are configured imperatively\nvia JS properties. Here's everything wired together in one minimal page; see\n[Configuration](#configuration) and [Nav action icons](#nav-action-icons)\nbelow for the full option set each one supports.\n\n```html\n<jui-omnibar\n  id=\"omnibar\"\n  product=\"MIS\"\n  account=\"Highlands Academy\"\n  account-type=\"school\"\n  home=\"/\"\n></jui-omnibar>\n```\n\n```js\nconst omnibar = document.getElementById(\"omnibar\");\n\nomnibar.productSwitcher = {\n  current_product: \"MIS\",\n  products: [\n    { id: \"mis\", title: \"MIS\", href: \"/mis\", active: true },\n    { id: \"comms-hub\", title: \"Comms Hub\", href: \"/comms-hub\" },\n  ],\n};\n\nomnibar.profileSwitcher = {\n  user_name: \"Joe Bloggs\",\n  account: \"Highlands Academy\",\n  account_type: \"school\",\n  logout: () => {\n    window.location.href = \"/logout\";\n  },\n};\n\n// Nav icons are all optional — omit any of these to hide them\nomnibar.help = \"/help\";\nomnibar.inbox = \"/inbox\";\nomnibar.inboxCount = 4;\n```\n\n---\n\n## Icons\n\nAll icons are provided as image URLs — the component no longer accepts inline SVG strings. Supply a light-mode URL and an optional dark-mode URL. The correct variant is shown automatically when `data-theme=\"dark\"` is set on `<body>`.\n\n```js\n{\n  icon:      \"/icons/my-icon.svg\",       // shown in light mode\n  icon_dark: \"/icons/my-icon-dark.svg\",  // shown in dark mode (optional)\n}\n```\n\nIf `icon_dark` is omitted, the single `icon` image is used in both modes.\n\n### Bundled icons\n\nThe package ships a set of icons at `dist/icons/` (also available on the CDN). These are used internally and can be referenced directly if needed:\n\n```\ndist/icons/\n  help.svg / help-dark.svg\n  products.svg / products-dark.svg\n  menu.svg / menu-dark.svg\n  search.svg / search-dark.svg\n  inbox.svg / inbox-dark.svg\n  bookmarks.svg / bookmarks-dark.svg\n  gainsight.svg / gainsight-dark.svg\n  logout.svg / logout-dark.svg\n  profile-action.svg / profile-action-dark.svg\n  external-link.svg / external-link-dark.svg\n  portal.svg / portal-dark.svg\n  admin.svg / admin-dark.svg\n  comms-hub.svg / comms-hub-dark.svg\n  events.svg / events-dark.svg\n  mis.svg / mis-dark.svg\n  sonar-lite.svg / sonar-lite-dark.svg\n  theme-toggle.svg / theme-toggle-dark.svg\n  account-school.svg / account-school-dark.svg\n  account-trust.svg / account-trust-dark.svg\n  arrow-open.svg / arrow-open-dark.svg\n  swap.svg / swap-dark.svg\n  switch-account.svg / switch-account-dark.svg\n  zendesk.svg / zendesk-dark.svg\n```\n\n---\n\n## Configuration\n\n### Product Switcher\n\n> `current_product` matches against `title`, not `id`.\n\n```js\nomnibar.productSwitcher = {\n  current_product: \"MIS\",\n  help_href: \"https://help.example.com\",\n  marketplace_href: \"https://example.com/marketplace\",   // shows a \"Juniper Marketplace\" footer button in the product switcher; omit to hide it\n  products: [\n    {\n      id: \"mis\",\n      title: \"MIS\",\n      icon:            \"/icons/mis.svg\",\n      icon_dark:       \"/icons/mis-dark.svg\",\n      icon_colour:     \"/icons/logo-mis.svg\",\n      product_gradient: \"linear-gradient(135deg, #F45162 0%, #9E112F 100%)\",\n      href: \"/mis\",\n      switch_account: false,\n      active: true,\n      data_tag: \"product-mis\",   // optional; rendered as data-tag on the product's link (e.g. for Gainsight targeting). Renders `data-tag=\"\"` when unset — see \"Data tags\" below.\n    },\n    {\n      id: \"comms-hub\",\n      title: \"Comms Hub\",\n      icon:            \"/icons/comms-hub.svg\",\n      icon_dark:       \"/icons/comms-hub-dark.svg\",\n      icon_colour:     \"/icons/logo-comms-hub.svg\",\n      product_gradient: \"linear-gradient(135deg, #00B1FA 0%, #005BE3 100%)\",\n      href: \"/comms-hub\",\n      switch_account: true,   // shows \"Available on other account\" label\n      active: false,\n    },\n  ],\n};\n```\n\nClicking a non-active product shows a redirect modal (countdown spinner, Cancel button, ESC to cancel) and then navigates to its `href` in the **same tab** once the countdown elapses. Clicking the active product does nothing (it's already open).\n\nEach product carries its own brand identity via two independent, optional fields:\n\n- **`product_gradient`** — a CSS `background-image` value (typically a `linear-gradient(...)`) used as the background of that product's icon tile in the product switcher list and its redirect modal. Products without one fall back to the default purple gradient. The active product's `product_gradient` is also used as the text-fill color of the product name next to the logo (via `background-clip: text`).\n- **`icon_colour`** — a full-color logo image (no light/dark split, no background tile) shown next to the product name in the top-left of the omnibar for the active product. This is a separate field from `icon`/`icon_dark` (which drive the switcher list icons, forced to white on top of the gradient tile) — omit `icon_colour` to show no icon there.\n\nThe top-left of the omnibar is actually two separate links: the Juniper logo goes to the `home` attribute (tooltip \"Go back to Portal\"), and the product name/icon goes to the `product-home` attribute, defaulting to `\"/\"` — the home of the app you're currently in (tooltip \"`{product}` Home\").\n\nWhen `marketplace_href` is set, a \"Juniper Marketplace\" button appears in the footer of the product switcher dropdown and opens the link in a new tab.\n\n#### Pending products\n\nA product can be marked temporarily unavailable with `pending_until` — it still appears in the list, but at reduced opacity with a \"Pending\" badge, and can't be clicked or navigated to.\n\n```js\n{\n  id: \"sonar\",\n  title: \"Sonar\",\n  href: \"/sonar\",\n  pending_until: Math.floor(Date.now() / 1000) + 5 * 60,   // pending for the next 5 minutes\n}\n```\n\n- A **number** (Unix seconds since epoch — not JS milliseconds) auto-clears once that time passes — the item flips back to normal on its own, no page reload or config update needed.\n- **`true`** marks it pending indefinitely, until you update the config yourself (useful when you don't have — or don't want to compute — an exact expiry time).\n- Omit it, or leave it falsy, for a normal product.\n\n---\n\n### Profile Switcher\n\nIf `user_img` is omitted, the avatar shows the user's initials (derived from `user_name`) on a joinup-purple background instead of an image.\n\n```js\nomnibar.profileSwitcher = {\n  user_name: \"Joe Bloggs\",\n  user_img:  \"https://...\",   // omit to show initials instead\n  account:      \"Highlands Academy\",\n  account_type: \"school\",   // \"school\" | \"trust\" — controls the icon shown next to the account name\n\n  product_title:       \"MIS\",\n  product_icon:        \"/icons/mis.svg\",\n  product_icon_dark:   \"/icons/mis-dark.svg\",\n  product_icon_colour: \"/icons/logo-mis.svg\",   // overrides the active product's icon_colour, same as product_icon does for icon/icon_dark\n  product_gradient: \"linear-gradient(135deg, #F45162 0%, #9E112F 100%)\",   // overrides the active product's product_gradient for the profile menu's icon tile; falls back to the default purple gradient\n\n  logout: () => {\n    console.log(\"Logout clicked\");\n  },\n\n  actions: [\n    {\n      id:        \"profile\",\n      label:     \"Profile\",\n      icon:      \"/icons/profile-action.svg\",\n      icon_dark: \"/icons/profile-action-dark.svg\",\n      href:      \"/portal/profile\",\n      data_tag:  \"profile-action\",   // optional; rendered as data-tag on the action's element (e.g. for Gainsight targeting). Renders `data-tag=\"\"` when unset — see \"Data tags\" below.\n\n      // Only rendered when the current product isn't \"Portal\" — see\n      // \"Redirect modal\" below.\n      badge:          \"Open in portal\",\n      badge_icon:     \"/icons/external-link.svg\",\n      badge_icon_dark:\"/icons/external-link-dark.svg\",\n\n      modal_title:       \"Portal\",\n      modal_description: \"This will open Portal in a new tab\",\n      modal_delay:       3000,\n      modal_icon:        \"/icons/portal.svg\",\n      modal_icon_dark:   \"/icons/portal-dark.svg\",\n\n      // Force-skip the redirect modal even outside Portal. You normally\n      // don't need to set this — the modal already skips itself\n      // automatically whenever the omnibar's current product is \"Portal\".\n      skip_redirect_modal: false,\n    },\n    {\n      id:        \"custom\",\n      label:     \"Custom action\",\n      icon:      \"/icons/custom.svg\",\n      icon_dark: \"/icons/custom-dark.svg\",\n      onSelect: ({ action }) => {\n        console.log(action.id);\n      },\n    },\n  ],\n\n  other_accounts: [\n    {\n      id:   \"magna\",\n      name: \"Magna Academy\",\n      href: \"/switch/magna\",\n      type: \"school\",\n      data_tag: \"other-account-magna\",   // optional; rendered as data-tag on the account's link. Renders `data-tag=\"\"` when unset — see \"Data tags\" below.\n    },\n  ],\n};\n```\n\n---\n\n### Actions behaviour\n\n| Property | Behaviour |\n| --- | --- |\n| `href` | Renders action as `<a>` |\n| no `href` | Renders action as `<button>` |\n| `id: \"profile\"` + `href`, current product isn't \"Portal\" | Shows the badge and a redirect modal before opening a new tab |\n| `id: \"profile\"` + `href`, current product is \"Portal\" | No badge; navigates like a normal same-tab link, no modal |\n| `id: \"profile\"` + `href` + `skip_redirect_modal: true` | No badge; navigates like a normal same-tab link, no modal, regardless of current product |\n| `onSelect` | Custom callback fired on click |\n\n---\n\n### Redirect modal\n\nBoth switchers show a loading modal whenever navigating to a different app — the product switcher for any non-active product, the profile switcher for its `\"profile\"` action.\n\n```js\n// Profile action\n{\n  id:                \"profile\",\n  href:              \"/portal/profile\",\n  modal_title:       \"Portal\",\n  modal_description: \"This will open Portal in a new tab\",\n  modal_delay:       3000,          // ms before redirect\n  modal_icon:        \"/icons/portal.svg\",\n  modal_icon_dark:   \"/icons/portal-dark.svg\",\n}\n```\n\n- Countdown spinner shown during delay\n- **Cancel** button stops the redirect\n- **ESC** key also cancels\n- **Product switcher**: after the countdown, navigates to the product's `href` in the **same tab**. Not configurable per-product (fixed 3s delay, no badge, no skip option) — switching apps always needs the loading state, and there's no \"already there\" case to skip it for.\n- **Profile switcher**: after the countdown, opens `href` in a **new tab** — the current tab is left as-is so your workflow there isn't lost. The `\"profile\"` action's badge and modal are both skipped automatically whenever the omnibar's current product (`productSwitcher.current_product` /\n  `profileSwitcher.product_title`) is `\"Portal\"`, since the link then just leads back into the app that's\n  already open and can navigate in the same tab with no loading state. Set `skip_redirect_modal: true` on the `\"profile\"` action to force-skip the modal (but not the badge) in other products too.\n\n---\n\n### Nav action icons\n\nOther than the product switcher and profile switcher, every icon in the omnibar nav is optional: it only renders when you provide a value, and is hidden when left `null`/unset. Each one accepts either:\n\n- a **string** — renders the icon as an `<a href=\"...\">` opening in a new tab, or\n- a **function** — renders the icon as a `<button>` that calls your callback with `{ component }` on click\n\nThey appear in the nav in this order (right to left, i.e. closest to the profile switcher first):\n\n| Order | Property | Tooltip | Notes |\n| --- | --- | --- | --- |\n| 1 (rightmost) | `help` | \"Help\" | Falls back to `productSwitcher.help_href`, then a default Juniper help URL, when unset — so Help is effectively always shown unless you override `getHelpHref` behaviour by setting one of those |\n| 2 | `gainsight` | \"Take a tour\" | |\n| 3 | `zendesk` | \"Contact Support\" | |\n| 4 | `inbox` | \"Inbox\" | Supports a count badge via `inboxCount` |\n| 5 | `bookmarks` | \"Bookmarks\" | Supports a count badge via `bookmarksCount` |\n| 6 (leftmost) | `search` | \"Search\" | |\n\n```js\n// Link\nomnibar.inbox = \"/inbox\";\n\n// Button with a callback\nomnibar.gainsight = ({ component }) => {\n  // trigger your Gainsight integration\n};\n\n// Hide any of them\nomnibar.zendesk = null;\n```\n\nEach icon renders with a fixed `data-tag` value (e.g. for Gainsight targeting) — see [Data tags](#data-tags). These are not consumer-overridable.\n\n`inboxCount` and `bookmarksCount` show a small count badge on the corner of the Inbox/Bookmarks icon. Set to `0`, `null`, or leave unset to hide the badge; counts above `99` display as \"99+\".\n\n```js\nomnibar.inbox = \"/inbox\";\nomnibar.inboxCount = 4;\n\nomnibar.bookmarks = \"/bookmarks\";\nomnibar.bookmarksCount = 0;   // badge hidden\n```\n\n---\n\n### Other accounts\n\n```js\nother_accounts: [\n  {\n    id:   \"account-id\",\n    name: \"Magna Academy\",\n    href: \"/switch\",\n    type: \"school\",   // \"school\" | \"trust\"\n  },\n];\n```\n\nHidden when the array is empty. A long list scrolls internally past a\nhandful of accounts, with a fade cue at the bottom to hint there's more —\nand if the menu as a whole doesn't fit the window's height, it scrolls too.\n\n---\n\n## Data tags\n\nEvery clickable element in the omnibar renders a `data-tag` attribute (used for analytics/Gainsight targeting).\n\nMost elements — the nav icon buttons, the logo/home link, the burger button, the product/profile switcher toggle buttons, the marketplace footer link, the Logout button, and the redirect modals' Cancel buttons — render a **fixed** `data-tag` value baked into this package. These are not consumer-overridable, so tracking stays stable across every embed:\n\n| Element | `data-tag` |\n| --- | --- |\n| Logo link (`home` attribute) | `omnibar_home_link+ba42e2f0-8777-4a46-9f70-6501bb4812b7` |\n| Product name link next to the logo | `omnibar_product_name_link+89660215-77e0-4ba4-9371-8e72e1782fcd` |\n| Help nav button | `omnibar_help_link+3a256eca-ff3c-439b-ade5-647651ac61c0` |\n| Take a tour (Gainsight) nav button | `omnibar_take_a_tour_icon+0565f03e-2265-439f-aa10-0f0ab5e8dee8` |\n| Contact Support (Zendesk) nav button | `omnibar_contact_support_icon+594117b8-5858-44b5-9e85-ce41bfab1221` |\n| Bookmarks nav button | `omnibar_add_bookmark+41981642-cfae-4f43-9ef4-6beb4dd4b78d` |\n| Inbox nav button | `omnibar_inbox_link+9a0d0dd5-a366-431b-972c-ab0aa49e91f4` |\n| Search nav button | `super_search_trigger_button+6fbe4c5d-1887-4ca7-9c69-c973c2864738` |\n| Product switcher search input | `product_switcher_search_input+05f0994c-2018-452d-a9fa-163850cb3dc5` |\n| Burger/mobile menu button | `omnibar_menu_toggle_button+e8367ccb-3c1f-478a-837c-c8c376776323` |\n| Product switcher toggle button | `omnibar_app_switcher_button+2b10755e-2ac6-43b2-9219-699913a660ff` |\n| Profile switcher toggle button (avatar) | `omnibar_account_button+6e18c400-1465-470a-820b-b454ef7443d4` |\n| \"Juniper Marketplace\" footer link | `product_switcher_marketplace_footer_link+e35bbbfc-1d4f-4a90-86f2-0556f8b66e23` |\n| Product/profile redirect modal Cancel button | `product_switcher_redirect_modal_cancel_button+b54ffe13-e4d1-4f69-9fbe-6bad6253e8a8` / `profile_switcher_redirect_modal_cancel_button+fe23ab5e-4691-4af3-9281-fd223fe5a544` |\n| Logout button | `profile_switcher_logout_button+a56538a2-0bfc-45fd-b83f-9793d126e3d8` |\n\nAPI-driven items fall back to a shared default `data-tag` and can be overridden per-item by setting `data_tag` on the relevant item:\n\n- `productSwitcher.products[].data_tag` (product switcher dropdown items) — default `product_switcher_list_item_link+4ec911d1-15ad-4c86-b18e-2ebc54766290`\n- `profileSwitcher.actions[].data_tag` (profile dropdown actions, e.g. \"Profile\") — default `profile_switcher_action_item+335ff918-b63b-4a19-92fa-0c3d31c1deb5`\n- `profileSwitcher.other_accounts[].data_tag` (other-account links) — default `profile_switcher_other_accounts_link+ecbcd8f6-ffa3-4c6a-865d-433f117b1c9f`\n\n---\n\n## Attributes\n\n| Attribute      | Description                                                |\n| -------------- | ----------------------------------------------------------- |\n| `product`      | Current product name                                        |\n| `account`      | Current account name                                        |\n| `account-type` | `\"school\"` (default) or `\"trust\"` — icon shown next to the account name |\n| `home`         | Juniper logo link href (\"Go back to Portal\")                 |\n| `product-home` | Product name/icon link href (\"`{product}` Home\") — defaults to `\"/\"` |\n| `environment`  | `\"demo\"`, `\"staging\"`, or `\"dev\"` (case-insensitive — `\"Demo\"`/`\"DEMO\"` also match) — shows a matching badge next to the account name. Any other value (or unset) shows no badge. |\n\n---\n\n## Events\n\n```js\nomnibar.addEventListener(\"jui:menu-toggle\", (event) => {\n  console.log(event.detail); // { source: \"burger\", component }\n});\n\nomnibar.addEventListener(\"jui:profile-action\", (event) => {\n  console.log(event.detail.action); // the action object\n});\n\nomnibar.addEventListener(\"jui:logout\", () => {\n  console.log(\"Logout fired\");\n});\n```\n\n---\n\n## Dark mode\n\nDark mode is activated by setting `data-theme=\"dark\"` on `<body>`:\n\n```js\ndocument.body.setAttribute(\"data-theme\", \"dark\");\n```\n\nAll icon `icon_dark` variants switch automatically — no JavaScript required.\n\n---\n\n## Styling\n\n```js\nimport \"jui-omnibar/omnibar.css\";\n```\n\nKey CSS variables:\n\n```css\n:root {\n  --j-o-color-brand-primary:   #271a38;\n  --j-o-color-brand-secondary: #814af4;\n  --j-o-font-family: \"Inter\", sans-serif;\n}\n```\n\n---\n\n## Loading strategy (avoiding layout jank)\n\n`<jui-omnibar>` is a plain custom element with `position: fixed`, so once it\nrenders it never causes a layout shift in the rest of the page — but if its\nscript/CSS load *after* the rest of your app, you'll see it pop in a moment\nlater, which reads as jarring. The fix in every framework is the same: get\nthe omnibar's script and stylesheet loading **before/independently of** your\napp framework's bundle, not bundled inside it.\n\nThe package ships a `jui-omnibar:not(:defined)` rule in `omnibar.css` that\nrenders an empty bar in the header's exact final position, size, and\nbackground color the instant the stylesheet loads — before the component's\nJS has even finished loading. As long as the stylesheet is a normal blocking\n`<link rel=\"stylesheet\">` in `<head>` (not injected late, not deferred),\nthere's a correctly-colored bar on first paint, and the real content simply\nappears inside it once the script runs — no pop-in, no shift.\n\n```html\n<!-- In <head>, not bundled with your app JS -->\n<link rel=\"stylesheet\" href=\"/path/to/omnibar.css\" />\n<link rel=\"modulepreload\" href=\"/path/to/omnibar.js\" />\n```\n\n`modulepreload` (or `<link rel=\"preload\" as=\"script\">` for non-module\nbuilds) tells the browser to fetch the script at high priority in parallel\nwith everything else, without executing it yet — it still executes wherever\nyour actual `<script type=\"module\">`/import is, but the network round-trip\nis no longer on the critical path.\n\n### Vanilla HTML\n\nPut the tag and its assets directly in the HTML — nothing to coordinate:\n\n```html\n<head>\n  <link rel=\"stylesheet\" href=\"/dist/omnibar.css\" />\n</head>\n<body>\n  <jui-omnibar product=\"MIS\" account=\"Highlands Academy\"></jui-omnibar>\n\n  <script type=\"module\" src=\"/dist/omnibar.js\"></script>\n  <script type=\"module\">\n    document.querySelector(\"jui-omnibar\").profileSwitcher = {\n      /* ... */\n    };\n  </script>\n</body>\n```\n\n### Vue\n\nThe jank usually comes from the omnibar being written inside a `.vue`\ncomponent, so it only appears once Vue's own bundle has downloaded, parsed,\nand mounted. Instead, put `<jui-omnibar>` directly in `index.html`, outside\n`#app`, so it's real DOM from the first byte — Vue never needs to render it:\n\n```html\n<!-- index.html -->\n<link rel=\"stylesheet\" href=\"/dist/omnibar.css\" />\n<script type=\"module\" src=\"/dist/omnibar.js\"></script>\n\n<body>\n  <jui-omnibar id=\"omnibar\" product=\"MIS\"></jui-omnibar>\n  <div id=\"app\"></div>\n</body>\n```\n\nThen configure it imperatively once your data is ready, rather than through\na template — `onMounted` (or even earlier, a plugin/`main.js` top-level call)\nis fine since the element itself is already on screen and doesn't need Vue\nto exist for that:\n\n```js\n// main.js, or a small composable\nonMounted(() => {\n  document.getElementById(\"omnibar\").profileSwitcher = {\n    user_name: store.user.name,\n    // ...\n  };\n});\n```\n\nIf you tell Vue to `ignoredElements: [/^jui-/]` (Vue 3 `app.config.compilerOptions.isCustomElement`)\nyou can still place `<jui-omnibar>` inside a `.vue` template and bind props\nreactively (`:profile-switcher=\"...\"`) — that's fine for *configuring* it,\njust keep the tag itself, its script, and its stylesheet outside anything\nthat's lazy-loaded or behind a route-level code-split chunk.\n\n### React\n\nSame principle: declare the element in your static HTML shell\n(`public/index.html` for CRA, `index.html` for Vite, or the root layout for\nNext.js), not inside a component that only renders after React hydrates.\n\n```html\n<!-- public/index.html -->\n<link rel=\"stylesheet\" href=\"/dist/omnibar.css\" />\n<script type=\"module\" src=\"/dist/omnibar.js\"></script>\n<body>\n  <jui-omnibar id=\"omnibar\"></jui-omnibar>\n  <div id=\"root\"></div>\n</body>\n```\n\n```jsx\n// index.jsx / App.jsx — set props as early as possible\nuseLayoutEffect(() => {\n  const omnibar = document.getElementById(\"omnibar\");\n  omnibar.profileSwitcher = { user_name: user.name /* ... */ };\n}, [user]);\n```\n\n`useLayoutEffect` over `useEffect` here just avoids one extra paint between\nmount and prop assignment — not critical, but free. If you'd rather manage\nit fully inside React (e.g. an SSR/Next.js app where you don't control a\nseparate static shell), keep the `<link>`/`<script>` tags in `<Head>` and\nrender `<jui-omnibar>` as the very first element in your root layout rather\nthan nested inside a client-only bundle or a lazy route.\n\n### Laravel / Blade\n\nThis is the easiest case: Blade renders on the server, so the omnibar can be\nin the very first HTML response with real user data already filled in — no\nclient-side JS framework needs to exist first.\n\n```blade\n{{-- layout.blade.php, in <head> --}}\n<link rel=\"stylesheet\" href=\"{{ asset('vendor/jui-omnibar/omnibar.css') }}\">\n<script type=\"module\" src=\"{{ asset('vendor/jui-omnibar/omnibar.js') }}\"></script>\n\n{{-- immediately after <body> opens --}}\n<jui-omnibar\n  product=\"{{ $currentProduct }}\"\n  account=\"{{ $account->name }}\"\n  account-type=\"{{ $account->type }}\"\n></jui-omnibar>\n\n<script type=\"module\">\n  document.querySelector(\"jui-omnibar\").profileSwitcher = @json([\n    'user_name' => $user->name,\n    'account' => $account->name,\n    // ...\n  ]);\n</script>\n```\n\nBecause everything here is server-rendered and inline, there's no\nclient-side bundle to wait for at all — the `:not(:defined)` skeleton only\ncovers the brief gap while `omnibar.js` itself downloads and parses.\n\n---\n\n## Package structure\n\n```\ndist/\n  omnibar.js\n  product-switcher.js\n  profile-switcher.js\n  icons.js\n  omnibar.css\n  omnibar.d.ts\n  icons/\n    *.svg           (light mode)\n    *-dark.svg      (dark mode)\n```\n\n---\n\n## Development\n\n```bash\nnpm run build\n```\n\n---\n\n## Accessibility\n\n- Keyboard navigation (ESC closes menus and modals)\n- Focus management on close\n- ARIA roles, labels, and expanded states\n- Screen reader announcements for loading states\n\n---\n\n## Security\n\nAll consumer-supplied strings (product/action/account titles, user names, badge text, etc.) are HTML-escaped before rendering — safe to pass through values you haven't sanitized yourself.\n\nEvery `href`/icon URL (`product.href`, `action.href`, `other_accounts[].href`, `icon`/`icon_dark`/`modal_icon`/`user_img`, etc.) is passed through an allowlist: relative URLs and `http:`/`https:`/`mailto:`/`tel:` are permitted, everything else (`javascript:`, `data:`, and other script-executing schemes) is replaced with `#`.\n\n---\n\n## Migration from v3.0.x\n\nAll SVG string props have been replaced with image URL props:\n\n| Before (v3.0.x) | After (v3.1.0) |\n| --- | --- |\n| `icon_svg: \"<svg>...</svg>\"` | `icon: \"/path/to/icon.svg\"` + optional `icon_dark` |\n| `badge_icon_svg` | `badge_icon` + `badge_icon_dark` |\n| `product_icon_svg` | `product_icon` + `product_icon_dark` |\n| `modal_icon_svg` | `modal_icon` + `modal_icon_dark` |\n\n---\n\n## Migration from v3.x (v4.0.0)\n\n- **`omnibar.uservoice` has been removed.** There is no direct replacement —\n  it was a single-purpose href-only button. If you still need a link to an\n  external feedback tool, repurpose one of the new [nav action icons](#nav-action-icons)\n  (e.g. `omnibar.search`, `omnibar.inbox`, or `omnibar.bookmarks`) with your\n  URL as the value.\n- **`gainsight` and `zendesk` now also accept a string** (rendered as a link)\n  in addition to a callback function — existing callback usage is unaffected.\n- **Nav icon order changed.** Right to left it's now: Profile, Product\n  switcher, Help, Take a tour, Contact Support, Inbox, Bookmarks, Search. `help` is\n  a new top-level property (previously only configurable via\n  `productSwitcher.help_href`, which still works as a fallback).\n\n---\n\n## Migration from v4.x (v5.0.0)\n\n- **The product name/icon area next to the logo no longer renders from\n  `icon`/`icon_dark`.** It now requires a new, separate `icon_colour` field\n  (a full-color logo image, no background tile) on the active product — set\n  it in `productSwitcher.products[]` (or override directly via\n  `profileSwitcher.product_icon_colour`). If you don't add `icon_colour`,\n  that icon simply won't render — there's no fallback to `icon`/`icon_dark`,\n  since those are a different visual treatment (forced white on a gradient\n  tile, meant for the switcher list) than the full-color logo this area now\n  shows.\n- **New optional `product_gradient` field** on each product — a CSS\n  `background-image` value used for that product's icon tile in the switcher\n  list/redirect modal and the active product's name text color. Products\n  without one keep rendering with the previous default purple gradient, so\n  this part is backwards-compatible.\n\n---\n\n## License\n\nMIT\n","readmeFilename":"README.md"}