{"_id":"@material/tabs","_rev":"146-1c602f17e7d7365f5d95d74516079417","name":"@material/tabs","time":{"modified":"2022-12-23T07:29:37.943Z","created":"2016-07-21T00:04:20.637Z","2.0.0-dev.20160721":"2016-07-21T00:04:20.637Z","2.0.0-dev.20160721a":"2016-07-21T00:56:24.009Z","2.0.0-dev-20160723":"2016-07-23T00:05:28.151Z","2.0.0-dev.20160810":"2016-08-10T10:39:49.320Z","2.0.0-dev.20160822":"2016-08-21T22:21:49.542Z","2.0.0-dev.20160822-1":"2016-08-22T00:38:55.444Z","2.0.0-dev.20160903":"2016-09-03T08:17:43.495Z","0.1.0":"2017-05-15T16:26:14.283Z","0.1.1":"2017-05-17T14:28:31.460Z","0.2.0":"2017-05-30T19:04:50.141Z","0.2.1":"2017-06-12T15:53:28.654Z","0.2.2":"2017-06-26T16:11:06.976Z","0.2.3":"2017-07-10T15:58:59.527Z","0.2.4":"2017-07-24T15:49:30.303Z","0.2.5":"2017-08-07T20:48:35.475Z","0.2.6":"2017-08-21T17:28:06.743Z","0.2.7":"2017-08-24T14:47:00.703Z","0.2.8":"2017-08-25T17:21:06.355Z","0.2.9":"2017-09-05T20:16:20.221Z","0.3.0":"2017-09-18T18:35:58.769Z","0.3.1":"2017-10-02T21:11:57.228Z","0.23.0":"2017-10-16T21:02:30.031Z","0.24.0":"2017-10-30T19:11:39.038Z","0.25.0":"2017-11-13T20:02:37.053Z","0.26.0":"2017-11-27T22:26:29.486Z","0.27.0":"2017-12-11T19:35:44.671Z","0.28.0":"2018-01-08T18:55:18.398Z","0.29.0":"2018-01-22T18:31:04.008Z","0.30.0":"2018-02-05T22:03:06.357Z","0.31.0":"2018-02-20T18:23:06.162Z","0.32.0":"2018-03-05T22:08:50.829Z","0.33.0":"2018-03-19T16:40:10.730Z","0.34.0":"2018-04-02T21:52:08.553Z","0.34.1":"2018-04-03T23:39:49.867Z","0.35.0":"2018-04-23T22:40:50.389Z","0.36.0-0":"2018-05-29T15:22:51.450Z","0.36.0":"2018-06-04T15:38:23.445Z","0.37.0":"2018-07-02T22:14:18.312Z","0.37.1":"2018-07-16T21:19:59.986Z","0.38.0":"2018-07-30T17:07:25.694Z","0.38.1":"2018-08-13T20:39:16.453Z","0.39.0-0":"2018-08-16T15:16:24.553Z","0.39.0":"2018-08-27T17:40:52.806Z","0.39.1":"2018-08-31T21:36:45.923Z","0.39.2":"2018-09-11T16:55:20.300Z","0.39.3":"2018-09-11T17:19:13.594Z","0.40.0":"2018-09-24T20:01:41.663Z","0.40.1":"2018-10-08T20:54:50.067Z","0.41.0":"2018-10-29T20:22:16.095Z","0.42.0":"2018-12-04T22:55:06.015Z","0.43.0":"2019-01-07T19:49:23.551Z","0.44.0":"2019-02-04T18:24:14.991Z","0.44.1":"2019-02-19T23:03:07.793Z","1.0.0-0":"2019-02-27T23:59:53.505Z","1.0.0-1":"2019-03-04T23:33:43.489Z","1.0.0":"2019-03-06T21:08:33.564Z","1.0.1":"2019-03-11T22:07:46.355Z","1.1.0":"2019-03-26T19:26:16.079Z","2.0.0":"2019-04-29T17:40:17.796Z","2.1.1":"2019-05-10T17:25:27.053Z","2.3.0":"2019-05-28T21:24:07.377Z","3.0.0-alpha.0":"2019-06-12T04:07:07.341Z","3.0.0-alpha.1":"2019-06-12T19:02:27.099Z"},"maintainers":[{"email":"hi@yef.im","name":"yefim"},{"email":"abhiomkar@gmail.com","name":"abhiomkar"},{"email":"dfreedm2@gmail.com","name":"azakus"},{"email":"bicknellr@gmail.com","name":"bicknellr"},{"email":"aprigogin+npm@google.com","name":"material-admin"},{"email":"andrey.prigogin@gmail.com","name":"aprigogin"},{"email":"prodee@google.com","name":"patrickrodee"},{"email":"aomarks@gmail.com","name":"aomarks"},{"email":"emarquez@google.com","name":"emarquez"},{"email":"esgonzalez@google.com","name":"esgonzalez"},{"email":"asyncliz@gmail.com","name":"asyncliz"},{"email":"wangchan518@gmail.com","name":"candysonya"},{"email":"sayrisuarez@google.com","name":"ssuarez"},{"email":"brian.t.vann@gmail.com","name":"taylorv"}],"dist-tags":{"latest":"2.3.0","next":"3.0.0-alpha.1"},"versions":{"0.1.0":{"name":"@material/tabs","version":"0.1.0","description":"The Material Components for the web tabs component","license":"Apache-2.0","repository":{"type":"git","url":"git+https://github.com/material-components/material-components-web.git"},"keywords":["material components","material design","tabs"],"publishConfig":{"access":"public"},"dependencies":{"@material/base":"^0.1.3","@material/ripple":"^0.6.1","@material/animation":"^0.2.1","@material/typography":"^0.2.2","@material/rtl":"^0.1.4","@material/theme":"^0.1.5"},"bugs":{"url":"https://github.com/material-components/material-components-web/issues"},"homepage":"https://github.com/material-components/material-components-web#readme","_id":"@material/tabs@0.1.0","scripts":{},"_shasum":"899dd1c59f6b15eb027828fad574892bca42c81d","_from":".","_npmVersion":"3.10.10","_nodeVersion":"7.2.1","_npmUser":{"name":"yeelan0319","email":"yiranmao@gmail.com"},"dist":{"shasum":"899dd1c59f6b15eb027828fad574892bca42c81d","tarball":"https://registry.npmjs.org/@material/tabs/-/tabs-0.1.0.tgz","integrity":"sha512-rZWuzEiKaDZOGXbqb23tRjk2kI3oZC8JHbYaURjpU15rCs4Djos4ciKtdZxWBg4a3aKC8VH2wyiH5IM4KaUXew==","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEYCIQDs0DzalUNwB1lOMDrIW5z/I+LCptIUVhvl93MYkoCntAIhAI2FQx3S0fMLaVEXk9FahEb4k7OD/lrlbC3axY3mUfTE"}]},"maintainers":[{"name":"amsheehan","email":"alex.m.sheehan@gmail.com"},{"name":"bwobrien","email":"obrien.test@gmail.com"},{"name":"cristobalchao","email":"cchao87@gmail.com"},{"name":"ljepsen3541","email":"ljepsen3541@gmail.com"},{"name":"material-admin","email":"traviskaufman+npm@google.com"},{"name":"sgomes","email":"mail@sgomes.io"},{"name":"traviskaufman","email":"travis.kaufman@gmail.com"},{"name":"yeelan0319","email":"yiranmao@gmail.com"}],"_npmOperationalInternal":{"host":"packages-18-east.internal.npmjs.com","tmp":"tmp/tabs-0.1.0.tgz_1494865573486_0.21893011685460806"},"directories":{}},"0.1.1":{"name":"@material/tabs","version":"0.1.1","description":"The Material Components for the web tabs component","license":"Apache-2.0","repository":{"type":"git","url":"git+https://github.com/material-components/material-components-web.git"},"keywords":["material components","material design","tabs"],"publishConfig":{"access":"public"},"dependencies":{"@material/base":"^0.1.3","@material/ripple":"^0.6.1","@material/animation":"^0.2.2","@material/typography":"^0.2.2","@material/rtl":"^0.1.4","@material/theme":"^0.1.5"},"bugs":{"url":"https://github.com/material-components/material-components-web/issues"},"homepage":"https://github.com/material-components/material-components-web#readme","_id":"@material/tabs@0.1.1","scripts":{},"_shasum":"9f55e321f11f3e9713fa89463edfdb15313e03a2","_from":".","_npmVersion":"4.2.0","_nodeVersion":"7.10.0","_npmUser":{"name":"traviskaufman","email":"travis.kaufman@gmail.com"},"dist":{"shasum":"9f55e321f11f3e9713fa89463edfdb15313e03a2","tarball":"https://registry.npmjs.org/@material/tabs/-/tabs-0.1.1.tgz","integrity":"sha512-f+NdVluhaIHxE07kcOqIU6Lzd+R4EAWRVWBDGFsfensru6X7ETEsgB6QPwwo6GNMOx6UU8i4bISnxx9XzLeMsQ==","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEQCIFnddcsBwVW78bc/0EL3JfC7o8tqNp954MGxVeNWi1cuAiBm/R32sxSOoFPFhwU5E6Tg04f7v3aoVC6+ELGZ9wCnfA=="}]},"maintainers":[{"email":"obrien.test@gmail.com","name":"bwobrien"},{"email":"ljepsen3541@gmail.com","name":"ljepsen3541"},{"email":"yiranmao@gmail.com","name":"yeelan0319"},{"email":"alex.m.sheehan@gmail.com","name":"amsheehan"},{"email":"cchao87@gmail.com","name":"cristobalchao"},{"email":"travis.kaufman@gmail.com","name":"traviskaufman"},{"email":"mail@sgomes.io","name":"sgomes"},{"email":"traviskaufman+npm@google.com","name":"material-admin"}],"_npmOperationalInternal":{"host":"packages-12-west.internal.npmjs.com","tmp":"tmp/tabs-0.1.1.tgz_1495031309473_0.7359428559429944"},"directories":{}},"0.2.0":{"name":"@material/tabs","version":"0.2.0","description":"The Material Components for the web tabs component","license":"Apache-2.0","repository":{"type":"git","url":"git+https://github.com/material-components/material-components-web.git"},"keywords":["material components","material design","tabs"],"publishConfig":{"access":"public"},"dependencies":{"@material/base":"^0.2.0","@material/ripple":"^0.6.2","@material/animation":"^0.2.3","@material/typography":"^0.2.2","@material/rtl":"^0.1.4","@material/theme":"^0.1.5"},"bugs":{"url":"https://github.com/material-components/material-components-web/issues"},"homepage":"https://github.com/material-components/material-components-web#readme","_id":"@material/tabs@0.2.0","scripts":{},"_shasum":"626d9a26e0f616288bbe459200d9e0d35b21d7b0","_from":".","_npmVersion":"4.2.0","_nodeVersion":"7.8.0","_npmUser":{"name":"ljepsen3541","email":"ljepsen3541@gmail.com"},"dist":{"shasum":"626d9a26e0f616288bbe459200d9e0d35b21d7b0","tarball":"https://registry.npmjs.org/@material/tabs/-/tabs-0.2.0.tgz","integrity":"sha512-kM0xCmyVRjkiRyCBsjYHQ+W+3nQRgRh33YPp3JCuBIUVvoRLHH6nYQievYkSeP8E892NI+nDXmYl3N2JfA6h4w==","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEQCIGj6g0rmu0Ud2Qh3Us9hVE4SfevyT4tiBW+/5rpQZ4QLAiBAQAgV8/vSx6F587ipNSk7Kf/MHlwsu3eLcvqhqBvCyA=="}]},"maintainers":[{"email":"obrien.test@gmail.com","name":"bwobrien"},{"email":"ljepsen3541@gmail.com","name":"ljepsen3541"},{"email":"yiranmao@gmail.com","name":"yeelan0319"},{"email":"alex.m.sheehan@gmail.com","name":"amsheehan"},{"email":"cchao87@gmail.com","name":"cristobalchao"},{"email":"travis.kaufman@gmail.com","name":"traviskaufman"},{"email":"mail@sgomes.io","name":"sgomes"},{"email":"traviskaufman+npm@google.com","name":"material-admin"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/tabs-0.2.0.tgz_1496171090067_0.5263664454687387"},"directories":{}},"0.2.1":{"name":"@material/tabs","version":"0.2.1","description":"The Material Components for the web tabs component","license":"Apache-2.0","repository":{"type":"git","url":"git+https://github.com/material-components/material-components-web.git"},"keywords":["material components","material design","tabs"],"publishConfig":{"access":"public"},"dependencies":{"@material/base":"^0.2.0","@material/ripple":"^0.6.2","@material/animation":"^0.2.3","@material/typography":"^0.2.2","@material/rtl":"^0.1.5","@material/theme":"^0.1.5"},"bugs":{"url":"https://github.com/material-components/material-components-web/issues"},"homepage":"https://github.com/material-components/material-components-web#readme","_id":"@material/tabs@0.2.1","_npmVersion":"5.0.3","_nodeVersion":"8.0.0","_npmUser":{"name":"traviskaufman","email":"travis.kaufman@gmail.com"},"dist":{"integrity":"sha512-qi2/F7iWUMVkCf9AKRE8Dc9Mdj9nVtEyQC8hBoxdJRj+uSbb+PxErpQPbr/0og0C2H/P0s7jMYs0tZAKKsJAXA==","shasum":"b11e148f00301732f90df9845e839fae1bea2c59","tarball":"https://registry.npmjs.org/@material/tabs/-/tabs-0.2.1.tgz","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEQCIC/DIe7fVubWhRgvySNBS2w99NSGTTlXBxolT2gPfo/pAiBBEIzJhZzi2ea8y9GCeFa8gRLKdNzA1k5p2TcYWHR6tQ=="}]},"maintainers":[{"email":"obrien.test@gmail.com","name":"bwobrien"},{"email":"ljepsen3541@gmail.com","name":"ljepsen3541"},{"email":"yiranmao@gmail.com","name":"yeelan0319"},{"email":"alex.m.sheehan@gmail.com","name":"amsheehan"},{"email":"cchao87@gmail.com","name":"cristobalchao"},{"email":"travis.kaufman@gmail.com","name":"traviskaufman"},{"email":"mail@sgomes.io","name":"sgomes"},{"email":"traviskaufman+npm@google.com","name":"material-admin"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/tabs-0.2.1.tgz_1497282807355_0.24346317606978118"},"directories":{}},"0.2.2":{"name":"@material/tabs","version":"0.2.2","description":"The Material Components for the web tabs component","license":"Apache-2.0","repository":{"type":"git","url":"git+https://github.com/material-components/material-components-web.git"},"keywords":["material components","material design","tabs"],"publishConfig":{"access":"public"},"dependencies":{"@material/base":"^0.2.1","@material/ripple":"^0.7.0","@material/animation":"^0.2.3","@material/typography":"^0.2.2","@material/rtl":"^0.1.6","@material/theme":"^0.1.5"},"bugs":{"url":"https://github.com/material-components/material-components-web/issues"},"homepage":"https://github.com/material-components/material-components-web#readme","_id":"@material/tabs@0.2.2","scripts":{},"_shasum":"9d2a5d51b0f602b08a512068575fc2c963e745c2","_from":".","_npmVersion":"3.10.9","_nodeVersion":"6.9.2","_npmUser":{"name":"amsheehan","email":"alex.m.sheehan@gmail.com"},"dist":{"shasum":"9d2a5d51b0f602b08a512068575fc2c963e745c2","tarball":"https://registry.npmjs.org/@material/tabs/-/tabs-0.2.2.tgz","integrity":"sha512-QVLqdNmabxpJ773QqzqNfXBUzRm9ZmlZT+cyu0LM5ROpcL7dUe/QR0AVnRKvTk2OkWJlySFhoxlqHb6YFSaKCg==","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIQD+Vefc4fh5Ra1ryypaQq5c4hmI8LUBiMJ68iDQBrusKwIgGBpXMi1XdH0ip+Yc1QaPNtKM4Hc6Da3BFBgQcz/HRQk="}]},"maintainers":[{"email":"acdvorak@gmail.com","name":"acdvorak"},{"email":"lynnjepsen@google.com","name":"lynnjepsen"},{"email":"obrien.test@gmail.com","name":"bwobrien"},{"email":"yiranmao@gmail.com","name":"yeelan0319"},{"email":"alex.m.sheehan@gmail.com","name":"amsheehan"},{"email":"cchao87@gmail.com","name":"cristobalchao"},{"email":"travis.kaufman@gmail.com","name":"traviskaufman"},{"email":"mail@sgomes.io","name":"sgomes"},{"email":"lynnjepsen+npm@google.com","name":"material-admin"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/tabs-0.2.2.tgz_1498493465620_0.1449271938763559"},"directories":{}},"0.2.3":{"name":"@material/tabs","version":"0.2.3","description":"The Material Components for the web tabs component","license":"Apache-2.0","repository":{"type":"git","url":"git+https://github.com/material-components/material-components-web.git"},"keywords":["material components","material design","tabs"],"publishConfig":{"access":"public"},"dependencies":{"@material/base":"^0.2.2","@material/ripple":"^0.8.0","@material/animation":"^0.2.3","@material/typography":"^0.2.2","@material/rtl":"^0.1.6","@material/theme":"^0.1.5"},"bugs":{"url":"https://github.com/material-components/material-components-web/issues"},"homepage":"https://github.com/material-components/material-components-web#readme","_id":"@material/tabs@0.2.3","scripts":{},"_shasum":"794b9068dce47397a445565051b113f145be2cf9","_from":".","_npmVersion":"4.2.0","_nodeVersion":"7.10.0","_npmUser":{"name":"lynnjepsen","email":"lynnjepsen@google.com"},"dist":{"shasum":"794b9068dce47397a445565051b113f145be2cf9","tarball":"https://registry.npmjs.org/@material/tabs/-/tabs-0.2.3.tgz","integrity":"sha512-jucssDS+wmztH/8X2RpkABFzKdKFtXYcAJdKe4Zi1iNSmY4Ab8NBK2CfnypmiYlKj5lPunquyusmdhfyznqHmA==","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEYCIQCVbtRIBxliZir8NtUrjYdzHfLisUpUzJ8lA/NAZvI+vgIhAM2z8IYhNJ6hTw3VoPtWI15l2SBW/hN1m+YFwQWJjgOy"}]},"maintainers":[{"email":"acdvorak@gmail.com","name":"acdvorak"},{"email":"lynnjepsen@google.com","name":"lynnjepsen"},{"email":"obrien.test@gmail.com","name":"bwobrien"},{"email":"yiranmao@gmail.com","name":"yeelan0319"},{"email":"alex.m.sheehan@gmail.com","name":"amsheehan"},{"email":"cchao87@gmail.com","name":"cristobalchao"},{"email":"travis.kaufman@gmail.com","name":"traviskaufman"},{"email":"mail@sgomes.io","name":"sgomes"},{"email":"lynnjepsen+npm@google.com","name":"material-admin"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/tabs-0.2.3.tgz_1499702339324_0.843033418757841"},"directories":{}},"0.2.4":{"name":"@material/tabs","version":"0.2.4","description":"The Material Components for the web tabs component","license":"Apache-2.0","repository":{"type":"git","url":"git+https://github.com/material-components/material-components-web.git"},"keywords":["material components","material design","tabs"],"publishConfig":{"access":"public"},"dependencies":{"@material/base":"^0.2.3","@material/ripple":"^0.8.1","@material/animation":"^0.3.0","@material/typography":"^0.2.3","@material/rtl":"^0.1.7","@material/theme":"^0.1.6"},"bugs":{"url":"https://github.com/material-components/material-components-web/issues"},"homepage":"https://github.com/material-components/material-components-web#readme","_id":"@material/tabs@0.2.4","scripts":{},"_shasum":"ddc8ebe7f9aeccdf8dcb296a14c0af2c38d48668","_from":".","_npmVersion":"3.10.10","_nodeVersion":"7.2.1","_npmUser":{"name":"yeelan0319","email":"yiranmao@gmail.com"},"dist":{"shasum":"ddc8ebe7f9aeccdf8dcb296a14c0af2c38d48668","tarball":"https://registry.npmjs.org/@material/tabs/-/tabs-0.2.4.tgz","integrity":"sha512-kqCAGc4LZP58yuX7t9CQo1J8vCyG16HXG77mGkqZf9Ei4kK0Q6flyGAVIb/kbVK7W49vf5O/k8ovWvsSUW5aPQ==","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEQCIBavpNAc8YDTwe43d9y++kiqrsGtHWVEGyZQRcvc7v24AiAm35XxzuPlwaSvcxqRqryEMSrVsy3auihAEtjJWLZ1ow=="}]},"maintainers":[{"email":"kenneth.franqueiro@gmail.com","name":"kfranqueiro"},{"email":"acdvorak@gmail.com","name":"acdvorak"},{"email":"lynnjepsen@google.com","name":"lynnjepsen"},{"email":"obrien.test@gmail.com","name":"bwobrien"},{"email":"yiranmao@gmail.com","name":"yeelan0319"},{"email":"alex.m.sheehan@gmail.com","name":"amsheehan"},{"email":"cchao87@gmail.com","name":"cristobalchao"},{"email":"travis.kaufman@gmail.com","name":"traviskaufman"},{"email":"mail@sgomes.io","name":"sgomes"},{"email":"lynnjepsen+npm@google.com","name":"material-admin"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/tabs-0.2.4.tgz_1500911369142_0.34206233150325716"},"directories":{}},"0.2.5":{"name":"@material/tabs","version":"0.2.5","description":"The Material Components for the web tabs component","license":"Apache-2.0","repository":{"type":"git","url":"git+https://github.com/material-components/material-components-web.git"},"keywords":["material components","material design","tabs"],"publishConfig":{"access":"public"},"dependencies":{"@material/base":"^0.2.3","@material/ripple":"^0.8.2","@material/animation":"^0.3.1","@material/typography":"^0.3.0","@material/rtl":"^0.1.7","@material/theme":"^0.1.7"},"bugs":{"url":"https://github.com/material-components/material-components-web/issues"},"homepage":"https://github.com/material-components/material-components-web#readme","_id":"@material/tabs@0.2.5","scripts":{},"_shasum":"28220e233c63c850924a264c02caa696935fb816","_from":".","_npmVersion":"4.2.0","_nodeVersion":"7.10.1","_npmUser":{"name":"acdvorak","email":"acdvorak@gmail.com"},"dist":{"shasum":"28220e233c63c850924a264c02caa696935fb816","tarball":"https://registry.npmjs.org/@material/tabs/-/tabs-0.2.5.tgz","integrity":"sha512-pUS5UT5//xTcGMXlNnvTDpBvCbPsRyM6qTfZm9WUEhVI2gAMFO1CUJOpzQoBcYg5/DfWexV7pUhz3NTByyxcMw==","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEQCIB68cSmV5ZaYENE3cfg75tkvpVTZ/ej+LJy7QLLEydJhAiA3UZqK6ooTXpt0FVb2lHRSh03ivl8fxNT7iPGxN5v9NA=="}]},"maintainers":[{"email":"kenneth.franqueiro@gmail.com","name":"kfranqueiro"},{"email":"acdvorak@gmail.com","name":"acdvorak"},{"email":"lynnjepsen@google.com","name":"lynnjepsen"},{"email":"obrien.test@gmail.com","name":"bwobrien"},{"email":"yiranmao@gmail.com","name":"yeelan0319"},{"email":"alex.m.sheehan@gmail.com","name":"amsheehan"},{"email":"cchao87@gmail.com","name":"cristobalchao"},{"email":"travis.kaufman@gmail.com","name":"traviskaufman"},{"email":"mail@sgomes.io","name":"sgomes"},{"email":"lynnjepsen+npm@google.com","name":"material-admin"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/tabs-0.2.5.tgz_1502138915204_0.27628200431354344"},"directories":{}},"0.2.6":{"name":"@material/tabs","version":"0.2.6","description":"The Material Components for the web tabs component","license":"Apache-2.0","repository":{"type":"git","url":"git+https://github.com/material-components/material-components-web.git"},"keywords":["material components","material design","tabs"],"publishConfig":{"access":"public"},"dependencies":{"@material/base":"^0.2.4","@material/ripple":"^0.8.3","@material/animation":"^0.3.1","@material/typography":"^0.3.0","@material/rtl":"^0.1.7","@material/theme":"^0.2.0"},"bugs":{"url":"https://github.com/material-components/material-components-web/issues"},"homepage":"https://github.com/material-components/material-components-web#readme","_id":"@material/tabs@0.2.6","_npmVersion":"5.3.0","_nodeVersion":"8.1.4","_npmUser":{"name":"kfranqueiro","email":"kenneth.franqueiro@gmail.com"},"dist":{"integrity":"sha512-3jGOASiBP0Uu3L9V3ERa6gXlNkKq2u9u1Sht8Tz4HN/+I40NfyrfX+CD2Z1Sbx4R0koWK0szpqcs/aOsRPlDEQ==","shasum":"de544829ce5c39ffadb65b2578e0d76a67329bea","tarball":"https://registry.npmjs.org/@material/tabs/-/tabs-0.2.6.tgz","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIFX+P9z6s8MnphTZF1rAmiXeF6QNjpS54He59yldFYwmAiEA8OyLCvDRU6zE+j4mO8suZUY18RJzhBIsQJZOvaufO6I="}]},"maintainers":[{"email":"kenneth.franqueiro@gmail.com","name":"kfranqueiro"},{"email":"acdvorak@gmail.com","name":"acdvorak"},{"email":"lynnjepsen@google.com","name":"lynnjepsen"},{"email":"obrien.test@gmail.com","name":"bwobrien"},{"email":"yiranmao@gmail.com","name":"yeelan0319"},{"email":"alex.m.sheehan@gmail.com","name":"amsheehan"},{"email":"cchao87@gmail.com","name":"cristobalchao"},{"email":"travis.kaufman@gmail.com","name":"traviskaufman"},{"email":"mail@sgomes.io","name":"sgomes"},{"email":"lynnjepsen+npm@google.com","name":"material-admin"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/tabs-0.2.6.tgz_1503336485465_0.2373106002341956"},"directories":{}},"0.2.7":{"name":"@material/tabs","version":"0.2.7","description":"The Material Components for the web tabs component","license":"Apache-2.0","repository":{"type":"git","url":"git+https://github.com/material-components/material-components-web.git"},"keywords":["material components","material design","tabs"],"publishConfig":{"access":"public"},"dependencies":{"@material/base":"^0.2.5","@material/ripple":"^0.8.4","@material/animation":"^0.3.1","@material/typography":"^0.3.0","@material/rtl":"^0.1.7","@material/theme":"^0.2.0"},"bugs":{"url":"https://github.com/material-components/material-components-web/issues"},"homepage":"https://github.com/material-components/material-components-web#readme","_id":"@material/tabs@0.2.7","_npmVersion":"5.3.0","_nodeVersion":"8.1.4","_npmUser":{"name":"kfranqueiro","email":"kenneth.franqueiro@gmail.com"},"dist":{"integrity":"sha512-/YDRGV+NwqbMBcwYIu1vyT9rkCwk615jNZFClFn8AVoWOHhCU4m5eevWAHjSNL7OzvhvF+wXHTDXvigLjrFIqA==","shasum":"f1f0b3c352c87f538a59d9c067e28b10c19356b5","tarball":"https://registry.npmjs.org/@material/tabs/-/tabs-0.2.7.tgz","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEYCIQCAZ/QijqEenW8ES8NsZrdFJ2zui3gBCveUZAkMucnNyAIhAJJdvN1zSRidnE7XokbooDzbACxxi+IUS8k4NTOzSh1o"}]},"maintainers":[{"email":"kenneth.franqueiro@gmail.com","name":"kfranqueiro"},{"email":"acdvorak@gmail.com","name":"acdvorak"},{"email":"lynnjepsen@google.com","name":"lynnjepsen"},{"email":"obrien.test@gmail.com","name":"bwobrien"},{"email":"yiranmao@gmail.com","name":"yeelan0319"},{"email":"alex.m.sheehan@gmail.com","name":"amsheehan"},{"email":"cchao87@gmail.com","name":"cristobalchao"},{"email":"travis.kaufman@gmail.com","name":"traviskaufman"},{"email":"mail@sgomes.io","name":"sgomes"},{"email":"lynnjepsen+npm@google.com","name":"material-admin"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/tabs-0.2.7.tgz_1503586019038_0.436281826114282"},"directories":{}},"0.2.8":{"name":"@material/tabs","version":"0.2.8","description":"The Material Components for the web tabs component","license":"Apache-2.0","repository":{"type":"git","url":"git+https://github.com/material-components/material-components-web.git"},"keywords":["material components","material design","tabs"],"publishConfig":{"access":"public"},"dependencies":{"@material/base":"^0.2.5","@material/ripple":"^0.8.5","@material/animation":"^0.3.1","@material/typography":"^0.3.0","@material/rtl":"^0.1.7","@material/theme":"^0.2.0"},"bugs":{"url":"https://github.com/material-components/material-components-web/issues"},"homepage":"https://github.com/material-components/material-components-web#readme","_id":"@material/tabs@0.2.8","_npmVersion":"5.3.0","_nodeVersion":"8.1.4","_npmUser":{"name":"kfranqueiro","email":"kenneth.franqueiro@gmail.com"},"dist":{"integrity":"sha512-lwK/FGJcrAjl26F0lSvQvNENIQBxCDKjxIC+/RYZ7PBgz+Q0tsM8vjx2sKXEzZr44Ofx7gxlbp98Wv4+E132nw==","shasum":"633fb7b7190b8e33f775fd9f563e2a35f5687846","tarball":"https://registry.npmjs.org/@material/tabs/-/tabs-0.2.8.tgz","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIGGYb26y/zGYaQ2rY0uTuUwxdRZVjqaE3BD0DiY9+JlZAiEAh3G1Nsperixw0dy15ekf43n+sqPqXapdxY6rvBLbmwE="}]},"maintainers":[{"email":"kenneth.franqueiro@gmail.com","name":"kfranqueiro"},{"email":"acdvorak@gmail.com","name":"acdvorak"},{"email":"lynnjepsen@google.com","name":"lynnjepsen"},{"email":"obrien.test@gmail.com","name":"bwobrien"},{"email":"yiranmao@gmail.com","name":"yeelan0319"},{"email":"alex.m.sheehan@gmail.com","name":"amsheehan"},{"email":"cchao87@gmail.com","name":"cristobalchao"},{"email":"travis.kaufman@gmail.com","name":"traviskaufman"},{"email":"mail@sgomes.io","name":"sgomes"},{"email":"lynnjepsen+npm@google.com","name":"material-admin"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/tabs-0.2.8.tgz_1503681665030_0.5194233814254403"},"directories":{}},"0.2.9":{"name":"@material/tabs","version":"0.2.9","description":"The Material Components for the web tabs component","license":"Apache-2.0","repository":{"type":"git","url":"git+https://github.com/material-components/material-components-web.git"},"keywords":["material components","material design","tabs"],"publishConfig":{"access":"public"},"dependencies":{"@material/base":"^0.2.5","@material/ripple":"^0.8.6","@material/animation":"^0.3.1","@material/typography":"^0.3.0","@material/rtl":"^0.1.7","@material/theme":"^0.3.0"},"bugs":{"url":"https://github.com/material-components/material-components-web/issues"},"homepage":"https://github.com/material-components/material-components-web#readme","_id":"@material/tabs@0.2.9","scripts":{},"_shasum":"e512d248a62b37e5ed57090c52e6619960ebddb3","_from":".","_npmVersion":"4.2.0","_nodeVersion":"7.10.0","_npmUser":{"name":"lynnjepsen","email":"lynnjepsen@google.com"},"dist":{"shasum":"e512d248a62b37e5ed57090c52e6619960ebddb3","tarball":"https://registry.npmjs.org/@material/tabs/-/tabs-0.2.9.tgz","integrity":"sha512-JD2q6iSI/7l4jxBcTpRxf6XnuMyF08Y9sxJ25zlLVPE/0vrTaYHz8Olg4NneYYNhNhEaEeArgKKsmLJZwPSwRQ==","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEYCIQCoBFVYzgMTee1TSwZha7ltnxMymHPzBihbISZHSzO+9AIhALDgWvFNR29HgQBkT6qqe2BovszCk33xTCbhETANkHla"}]},"maintainers":[{"email":"kenneth.franqueiro@gmail.com","name":"kfranqueiro"},{"email":"acdvorak@gmail.com","name":"acdvorak"},{"email":"lynnjepsen@google.com","name":"lynnjepsen"},{"email":"obrien.test@gmail.com","name":"bwobrien"},{"email":"yiranmao@gmail.com","name":"yeelan0319"},{"email":"alex.m.sheehan@gmail.com","name":"amsheehan"},{"email":"cchao87@gmail.com","name":"cristobalchao"},{"email":"travis.kaufman@gmail.com","name":"traviskaufman"},{"email":"mail@sgomes.io","name":"sgomes"},{"email":"lynnjepsen+npm@google.com","name":"material-admin"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/tabs-0.2.9.tgz_1504642580083_0.9256952207069844"},"directories":{}},"0.3.0":{"name":"@material/tabs","version":"0.3.0","description":"The Material Components for the web tabs component","license":"Apache-2.0","repository":{"type":"git","url":"git+https://github.com/material-components/material-components-web.git"},"keywords":["material components","material design","tabs"],"publishConfig":{"access":"public"},"dependencies":{"@material/base":"^0.2.5","@material/ripple":"^0.8.7","@material/animation":"^0.4.0","@material/typography":"^0.3.0","@material/rtl":"^0.1.8","@material/theme":"^0.3.1"},"bugs":{"url":"https://github.com/material-components/material-components-web/issues"},"homepage":"https://github.com/material-components/material-components-web#readme","_id":"@material/tabs@0.3.0","_npmVersion":"5.3.0","_nodeVersion":"6.9.2","_npmUser":{"name":"amsheehan","email":"alex.m.sheehan@gmail.com"},"dist":{"integrity":"sha512-TMDY3O7UaGMs74T32vjdhGyDNhsM60S8pmm9ApgoO156dJ03skbziMn3aK6yedybeft3TDRFuyIHJFEYJ6DNnQ==","shasum":"a5f5df2b79d1a825bfbf90a839b6381c2d943a59","tarball":"https://registry.npmjs.org/@material/tabs/-/tabs-0.3.0.tgz","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEYCIQCkfjZi6URGTvUVgRo1kiXt2qRi8dY+OHeNmGZloQeh+QIhAJJpXdAe9H5qAAptx3bmVHbYA6pCZHYLBFzpMOgPM5gI"}]},"maintainers":[{"email":"andrey.prigogin@gmail.com","name":"aprigogin"},{"email":"kenneth.franqueiro@gmail.com","name":"kfranqueiro"},{"email":"acdvorak@gmail.com","name":"acdvorak"},{"email":"lynnjepsen@google.com","name":"lynnjepsen"},{"email":"obrien.test@gmail.com","name":"bwobrien"},{"email":"yiranmao@gmail.com","name":"yeelan0319"},{"email":"alex.m.sheehan@gmail.com","name":"amsheehan"},{"email":"travis.kaufman@gmail.com","name":"traviskaufman"},{"email":"lynnjepsen+npm@google.com","name":"material-admin"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/tabs-0.3.0.tgz_1505759757421_0.1534001890104264"},"directories":{}},"0.3.1":{"name":"@material/tabs","version":"0.3.1","description":"The Material Components for the web tabs component","license":"Apache-2.0","repository":{"type":"git","url":"git+https://github.com/material-components/material-components-web.git"},"keywords":["material components","material design","tabs"],"publishConfig":{"access":"public"},"dependencies":{"@material/base":"^0.2.6","@material/ripple":"^0.8.8","@material/animation":"^0.4.1","@material/typography":"^0.3.0","@material/rtl":"^0.1.8","@material/theme":"^0.4.0"},"bugs":{"url":"https://github.com/material-components/material-components-web/issues"},"homepage":"https://github.com/material-components/material-components-web#readme","_id":"@material/tabs@0.3.1","scripts":{},"_shasum":"f94fee064ca5b0515ef038413f8658c766b98ff8","_from":".","_npmVersion":"4.2.0","_nodeVersion":"7.10.1","_npmUser":{"name":"acdvorak","email":"acdvorak@gmail.com"},"dist":{"shasum":"f94fee064ca5b0515ef038413f8658c766b98ff8","tarball":"https://registry.npmjs.org/@material/tabs/-/tabs-0.3.1.tgz","integrity":"sha512-ATygszmZdqiq27uBxVmMyg5d4XEQvYAgwLu2vCwcOjcTI078ZsCnF4AsazGnlbh5vE5sgugenGfaCgQ8lCPPlQ==","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIG+fMG3ChD/tHewJQByqanZ5LkUXamyzCRmrmhROVkqLAiEA9/80ytAa2/pWLGT49T2zkG8UJBjnu8dotwlPGPgmA0c="}]},"maintainers":[{"email":"andrey.prigogin@gmail.com","name":"aprigogin"},{"email":"kenneth.franqueiro@gmail.com","name":"kfranqueiro"},{"email":"acdvorak@gmail.com","name":"acdvorak"},{"email":"lynnjepsen@google.com","name":"lynnjepsen"},{"email":"obrien.test@gmail.com","name":"bwobrien"},{"email":"yiranmao@gmail.com","name":"yeelan0319"},{"email":"alex.m.sheehan@gmail.com","name":"amsheehan"},{"email":"travis.kaufman@gmail.com","name":"traviskaufman"},{"email":"lynnjepsen+npm@google.com","name":"material-admin"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/tabs-0.3.1.tgz_1506978717120_0.633581216679886"},"directories":{}},"0.23.0":{"name":"@material/tabs","version":"0.23.0","description":"The Material Components for the web tabs component","license":"Apache-2.0","repository":{"type":"git","url":"git+https://github.com/material-components/material-components-web.git"},"keywords":["material components","material design","tabs"],"publishConfig":{"access":"public"},"dependencies":{"@material/base":"^0.2.6","@material/ripple":"^0.23.0","@material/animation":"^0.4.1","@material/typography":"^0.3.0","@material/rtl":"^0.1.8","@material/theme":"^0.4.0"},"bugs":{"url":"https://github.com/material-components/material-components-web/issues"},"homepage":"https://github.com/material-components/material-components-web#readme","_id":"@material/tabs@0.23.0","_npmVersion":"5.3.0","_nodeVersion":"8.1.4","_npmUser":{"name":"kfranqueiro","email":"kenneth.franqueiro@gmail.com"},"dist":{"integrity":"sha512-Vzc/XklkmSrDS/BS45cMLpWd1Ijp5gVR0Wl40wniMmHYbMXFWGeOTQfQgcS8VBDcYX0dVd3oSCmgRfc8D0i0/Q==","shasum":"449c9de2c2a669c2f9c597266f5270dc95597978","tarball":"https://registry.npmjs.org/@material/tabs/-/tabs-0.23.0.tgz","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIDKvU34ILV6Q6Xyc7qkNT5DPQM6QOcqhorjwkPIv1gboAiEAwkdyPDvntJ/FXZQqKzIgeSScpC6H5UJoi8ACBHFxceU="}]},"maintainers":[{"email":"andrey.prigogin@gmail.com","name":"aprigogin"},{"email":"kenneth.franqueiro@gmail.com","name":"kfranqueiro"},{"email":"acdvorak@gmail.com","name":"acdvorak"},{"email":"lynnjepsen@google.com","name":"lynnjepsen"},{"email":"obrien.test@gmail.com","name":"bwobrien"},{"email":"yiranmao@gmail.com","name":"yeelan0319"},{"email":"alex.m.sheehan@gmail.com","name":"amsheehan"},{"email":"travis.kaufman@gmail.com","name":"traviskaufman"},{"email":"lynnjepsen+npm@google.com","name":"material-admin"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/tabs-0.23.0.tgz_1508187748796_0.6273732641711831"},"directories":{}},"0.24.0":{"name":"@material/tabs","version":"0.24.0","description":"The Material Components for the web tabs component","license":"Apache-2.0","repository":{"type":"git","url":"git+https://github.com/material-components/material-components-web.git"},"keywords":["material components","material design","tabs"],"publishConfig":{"access":"public"},"dependencies":{"@material/base":"^0.24.0","@material/ripple":"^0.24.0","@material/animation":"^0.4.1","@material/typography":"^0.3.0","@material/rtl":"^0.1.8","@material/theme":"^0.24.0"},"bugs":{"url":"https://github.com/material-components/material-components-web/issues"},"homepage":"https://github.com/material-components/material-components-web#readme","_id":"@material/tabs@0.24.0","_npmVersion":"5.3.0","_nodeVersion":"8.4.0","_npmUser":{"name":"lynnjepsen","email":"lynnjepsen@google.com"},"dist":{"integrity":"sha512-BHONDtIdPBNjlZZ6Xb3d+eB5+zsEiBueIu0kpACKBKmq3VdYXJdAKcSPBP5Igu+bG58KUUliJD5jXdLA2v3pAw==","shasum":"4c4a7c565cdfcb69c039598726a763739fa31dc1","tarball":"https://registry.npmjs.org/@material/tabs/-/tabs-0.24.0.tgz","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEYCIQDXkzx89FgmdTCBezpNR2VpfzwDVgMEvMQFB/IVdnDC0wIhAMi2k1FIrwWG1QyXiEQKhYEdwIS5m0FP/1crMEt3Iz68"}]},"maintainers":[{"email":"andrey.prigogin@gmail.com","name":"aprigogin"},{"email":"kenneth.franqueiro@gmail.com","name":"kfranqueiro"},{"email":"acdvorak@gmail.com","name":"acdvorak"},{"email":"lynnjepsen@google.com","name":"lynnjepsen"},{"email":"obrien.test@gmail.com","name":"bwobrien"},{"email":"yiranmao@gmail.com","name":"yeelan0319"},{"email":"alex.m.sheehan@gmail.com","name":"amsheehan"},{"email":"travis.kaufman@gmail.com","name":"traviskaufman"},{"email":"lynnjepsen+npm@google.com","name":"material-admin"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/tabs-0.24.0.tgz_1509390698962_0.1620015511289239"},"directories":{}},"0.25.0":{"name":"@material/tabs","version":"0.25.0","description":"The Material Components for the web tabs component","license":"Apache-2.0","repository":{"type":"git","url":"git+https://github.com/material-components/material-components-web.git"},"keywords":["material components","material design","tabs"],"publishConfig":{"access":"public"},"dependencies":{"@material/base":"^0.24.0","@material/ripple":"^0.25.0","@material/animation":"^0.25.0","@material/typography":"^0.3.0","@material/rtl":"^0.1.8","@material/theme":"^0.25.0"},"bugs":{"url":"https://github.com/material-components/material-components-web/issues"},"homepage":"https://github.com/material-components/material-components-web#readme","_id":"@material/tabs@0.25.0","_npmVersion":"5.5.1","_nodeVersion":"6.9.2","_npmUser":{"name":"amsheehan","email":"alex.m.sheehan@gmail.com"},"dist":{"integrity":"sha512-4zVjS8VJAKEqVadmHbzy7wkEydbu2Ap+ee8nVL/6yYx2sjGHRrh8ZGOLjk6Ji5Ycz7FtzTe4dV1MqF3MTfoGzA==","shasum":"d166b943d986710ebd473d5ccb7d45b6e04186fa","tarball":"https://registry.npmjs.org/@material/tabs/-/tabs-0.25.0.tgz","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIQCL8LrMejpHICYzsYsICkx0C31YgG3iKqCBM9ImjSv2IgIgYwcomJep3mLMqu1jvbVFr6ebFLwHRA8H8krPu+qOtoM="}]},"maintainers":[{"email":"andrey.prigogin@gmail.com","name":"aprigogin"},{"email":"kenneth.franqueiro@gmail.com","name":"kfranqueiro"},{"email":"acdvorak@gmail.com","name":"acdvorak"},{"email":"lynnjepsen@google.com","name":"lynnjepsen"},{"email":"obrien.test@gmail.com","name":"bwobrien"},{"email":"yiranmao@gmail.com","name":"yeelan0319"},{"email":"alex.m.sheehan@gmail.com","name":"amsheehan"},{"email":"travis.kaufman@gmail.com","name":"traviskaufman"},{"email":"lynnjepsen+npm@google.com","name":"material-admin"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/tabs-0.25.0.tgz_1510603356937_0.8241423442959785"},"directories":{}},"0.26.0":{"name":"@material/tabs","version":"0.26.0","description":"The Material Components for the web tabs component","license":"Apache-2.0","repository":{"type":"git","url":"git+https://github.com/material-components/material-components-web.git"},"keywords":["material components","material design","tabs"],"publishConfig":{"access":"public"},"dependencies":{"@material/base":"^0.24.0","@material/ripple":"^0.26.0","@material/animation":"^0.25.0","@material/typography":"^0.3.0","@material/rtl":"^0.1.8","@material/theme":"^0.25.0"},"bugs":{"url":"https://github.com/material-components/material-components-web/issues"},"homepage":"https://github.com/material-components/material-components-web#readme","_id":"@material/tabs@0.26.0","_npmVersion":"5.5.1","_nodeVersion":"8.7.0","_npmUser":{"name":"bonniez","email":"bonniez@google.com"},"dist":{"integrity":"sha512-GY33jQ7FRRlVfSX70O01nruRyTkN5qyh5DX3bIWitcrtpBv6GYMvNn/uM2uI8067wzObLcA/nURSSpnMxYFSaw==","shasum":"d629261ea33566665326d82f46fc7c23b9c9d2a9","tarball":"https://registry.npmjs.org/@material/tabs/-/tabs-0.26.0.tgz","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIGefWSP7ECEtyI8lc3XaUlP9QnyyHX/sx+wq54qqb1trAiEA0nw88EOMmCFJcXyq2RTeKTbZVyRBIglgmJws4KoaItw="}]},"maintainers":[{"email":"bonniez@google.com","name":"bonniez"},{"email":"prodee@google.com","name":"patrickrodee"},{"email":"andrey.prigogin@gmail.com","name":"aprigogin"},{"email":"kenneth.franqueiro@gmail.com","name":"kfranqueiro"},{"email":"acdvorak@gmail.com","name":"acdvorak"},{"email":"lynnjepsen@google.com","name":"lynnjepsen"},{"email":"obrien.test@gmail.com","name":"bwobrien"},{"email":"alex.m.sheehan@gmail.com","name":"amsheehan"},{"email":"lynnjepsen+npm@google.com","name":"material-admin"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/tabs-0.26.0.tgz_1511821589343_0.48309849156066775"},"directories":{}},"0.27.0":{"name":"@material/tabs","version":"0.27.0","description":"The Material Components for the web tabs component","license":"Apache-2.0","repository":{"type":"git","url":"git+https://github.com/material-components/material-components-web.git"},"keywords":["material components","material design","tabs"],"publishConfig":{"access":"public"},"dependencies":{"@material/base":"^0.24.0","@material/ripple":"^0.27.0","@material/animation":"^0.25.0","@material/typography":"^0.3.0","@material/rtl":"^0.1.8","@material/theme":"^0.27.0"},"bugs":{"url":"https://github.com/material-components/material-components-web/issues"},"homepage":"https://github.com/material-components/material-components-web#readme","_id":"@material/tabs@0.27.0","_npmVersion":"5.5.1","_nodeVersion":"8.9.2","_npmUser":{"name":"amsheehan","email":"alex.m.sheehan@gmail.com"},"dist":{"integrity":"sha512-icAzVT6sBEA+vsCnobzantJiZdzOcMNAquBIupswBqkb5zPDShDg5BkCvi6CiLHijqDMRMofg4shqq5UdUqDDw==","shasum":"d88a2073f940755b1b7165a22a91be46f0015702","tarball":"https://registry.npmjs.org/@material/tabs/-/tabs-0.27.0.tgz","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIEEVJ66q8kCbSSE1OnjAOLTp9fqAHn5YaqGXISVeXBz5AiEAnAKA4ORxsotMhicPbuzYrXbmMUV6qvXN4yUjTAGGtLw="}]},"maintainers":[{"email":"mattgoo@gmail.com","name":"moog16"},{"email":"bonniez@google.com","name":"bonniez"},{"email":"prodee@google.com","name":"patrickrodee"},{"email":"andrey.prigogin@gmail.com","name":"aprigogin"},{"email":"kenneth.franqueiro@gmail.com","name":"kfranqueiro"},{"email":"acdvorak@gmail.com","name":"acdvorak"},{"email":"lynnjepsen@google.com","name":"lynnjepsen"},{"email":"obrien.test@gmail.com","name":"bwobrien"},{"email":"alex.m.sheehan@gmail.com","name":"amsheehan"},{"email":"lynnjepsen+npm@google.com","name":"material-admin"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/tabs-0.27.0.tgz_1513020943289_0.8098658986855298"},"directories":{}},"0.28.0":{"name":"@material/tabs","version":"0.28.0","description":"The Material Components for the web tabs component","license":"Apache-2.0","repository":{"type":"git","url":"git+https://github.com/material-components/material-components-web.git"},"keywords":["material components","material design","tabs"],"publishConfig":{"access":"public"},"dependencies":{"@material/base":"^0.24.0","@material/ripple":"^0.28.0","@material/animation":"^0.25.0","@material/typography":"^0.28.0","@material/rtl":"^0.1.8","@material/theme":"^0.28.0"},"bugs":{"url":"https://github.com/material-components/material-components-web/issues"},"homepage":"https://github.com/material-components/material-components-web#readme","_id":"@material/tabs@0.28.0","_npmVersion":"5.6.0","_nodeVersion":"8.1.4","_npmUser":{"name":"acdvorak","email":"acdvorak@gmail.com"},"dist":{"integrity":"sha512-WBXsRUQQio11gwqjE1DoRq7B1Bzgp61p5bQsTdK2Nxwac63ua3ScVnW3jP2ne8JwedH4lc2lY6UKkQdzBxPZbQ==","shasum":"737867e1276ad60defdea4c5e3227e757eb41733","tarball":"https://registry.npmjs.org/@material/tabs/-/tabs-0.28.0.tgz","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEQCIERd8bj75mytUSUEy1SaT5AiTpHBcAI76EAD2ZIeVcKnAiA/SIOfbJMVXdzZWAn9zO0+j1oE5tL5+KI8a3V56L3I3g=="}]},"maintainers":[{"email":"williamernest@google.com","name":"williamernest"},{"email":"mattgoo@gmail.com","name":"moog16"},{"email":"bonniez@google.com","name":"bonniez"},{"email":"prodee@google.com","name":"patrickrodee"},{"email":"andrey.prigogin@gmail.com","name":"aprigogin"},{"email":"kenneth.franqueiro@gmail.com","name":"kfranqueiro"},{"email":"acdvorak@gmail.com","name":"acdvorak"},{"email":"lynnjepsen@google.com","name":"lynnjepsen"},{"email":"obrien.test@gmail.com","name":"bwobrien"},{"email":"alex.m.sheehan@gmail.com","name":"amsheehan"},{"email":"lynnjepsen+npm@google.com","name":"material-admin"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/tabs-0.28.0.tgz_1515437718304_0.2802267209626734"},"directories":{}},"0.29.0":{"name":"@material/tabs","version":"0.29.0","description":"The Material Components for the web tabs component","license":"Apache-2.0","repository":{"type":"git","url":"git+https://github.com/material-components/material-components-web.git"},"keywords":["material components","material design","tabs"],"publishConfig":{"access":"public"},"dependencies":{"@material/base":"^0.29.0","@material/ripple":"^0.29.0","@material/animation":"^0.25.0","@material/typography":"^0.28.0","@material/rtl":"^0.29.0","@material/theme":"^0.29.0"},"bugs":{"url":"https://github.com/material-components/material-components-web/issues"},"homepage":"https://github.com/material-components/material-components-web#readme","_id":"@material/tabs@0.29.0","_npmVersion":"5.6.0","_nodeVersion":"8.7.0","_npmUser":{"name":"bonniez","email":"bonniez@google.com"},"dist":{"integrity":"sha512-hF0AfTIhCv0QFIxQfiQLqZ60wCNphmH/pU30wHYYRrPBisPuUfebgsjBULqqc8tn+BTha4eAJk0odP2PuuJaiA==","shasum":"3b84f150f4a3cbf0ac31ba6ca76d47f50cc61078","tarball":"https://registry.npmjs.org/@material/tabs/-/tabs-0.29.0.tgz","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEYCIQDdXRflViDbCM7vYGHa3ZTjgY/Wjx8H6LpXqdcn7mINvwIhAPQr66/BM+kUXDKGvPHWWVUORsrmfHHhJSPfh3mbEmTR"}]},"maintainers":[{"email":"williamernest@google.com","name":"williamernest"},{"email":"mattgoo@gmail.com","name":"moog16"},{"email":"bonniez@google.com","name":"bonniez"},{"email":"prodee@google.com","name":"patrickrodee"},{"email":"andrey.prigogin@gmail.com","name":"aprigogin"},{"email":"kenneth.franqueiro@gmail.com","name":"kfranqueiro"},{"email":"acdvorak@gmail.com","name":"acdvorak"},{"email":"lynnjepsen@google.com","name":"lynnjepsen"},{"email":"obrien.test@gmail.com","name":"bwobrien"},{"email":"alex.m.sheehan@gmail.com","name":"amsheehan"},{"email":"lynnjepsen+npm@google.com","name":"material-admin"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/tabs-0.29.0.tgz_1516645863104_0.9163647890090942"},"directories":{}},"0.30.0":{"name":"@material/tabs","version":"0.30.0","description":"The Material Components for the web tabs component","license":"Apache-2.0","repository":{"type":"git","url":"git+https://github.com/material-components/material-components-web.git"},"keywords":["material components","material design","tabs"],"publishConfig":{"access":"public"},"dependencies":{"@material/base":"^0.29.0","@material/ripple":"^0.30.0","@material/animation":"^0.25.0","@material/typography":"^0.28.0","@material/rtl":"^0.30.0","@material/theme":"^0.30.0"},"bugs":{"url":"https://github.com/material-components/material-components-web/issues"},"homepage":"https://github.com/material-components/material-components-web#readme","_id":"@material/tabs@0.30.0","_npmVersion":"5.3.0","_nodeVersion":"8.1.4","_npmUser":{"name":"kfranqueiro","email":"kenneth.franqueiro@gmail.com"},"dist":{"integrity":"sha512-R9JY6Rm+w71fRhAWlIuB/7Cg7kufxi7DrjYT4ndO4+llQvgIM/a8ZkH4a2wfanWZLM905XWYhMNQBKcHk1NrXQ==","shasum":"43b271bde8e3d2fe799a4b5313ccfe80bc109c60","tarball":"https://registry.npmjs.org/@material/tabs/-/tabs-0.30.0.tgz","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEYCIQDxwrQJdkB/qnMSwnNX+IkYPtDEyDJVFli62ZLqTXCPAAIhAKPU/cosg585Y/pR0DolqkBiO4t7xBoMat+oyAdiEyDY"}]},"maintainers":[{"email":"williamernest@google.com","name":"williamernest"},{"email":"mattgoo@gmail.com","name":"moog16"},{"email":"bonniez@google.com","name":"bonniez"},{"email":"prodee@google.com","name":"patrickrodee"},{"email":"andrey.prigogin@gmail.com","name":"aprigogin"},{"email":"kenneth.franqueiro@gmail.com","name":"kfranqueiro"},{"email":"acdvorak@gmail.com","name":"acdvorak"},{"email":"lynnjepsen@google.com","name":"lynnjepsen"},{"email":"obrien.test@gmail.com","name":"bwobrien"},{"email":"alex.m.sheehan@gmail.com","name":"amsheehan"},{"email":"lynnjepsen+npm@google.com","name":"material-admin"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/tabs-0.30.0.tgz_1517868185055_0.9854228557087481"},"directories":{}},"0.31.0":{"name":"@material/tabs","version":"0.31.0","description":"The Material Components for the web tabs component","license":"Apache-2.0","repository":{"type":"git","url":"git+https://github.com/material-components/material-components-web.git"},"keywords":["material components","material design","tabs"],"publishConfig":{"access":"public"},"dependencies":{"@material/base":"^0.29.0","@material/ripple":"^0.31.0","@material/animation":"^0.25.0","@material/typography":"^0.28.0","@material/rtl":"^0.30.0","@material/theme":"^0.30.0"},"bugs":{"url":"https://github.com/material-components/material-components-web/issues"},"homepage":"https://github.com/material-components/material-components-web#readme","_id":"@material/tabs@0.31.0","_npmVersion":"5.6.0","_nodeVersion":"9.0.0","_npmUser":{"name":"moog16","email":"mattgoo@gmail.com"},"dist":{"integrity":"sha512-AhcoqCDZ1XORNSoM2R8mA8Ug8s6N2M6v6qpjDv6eAvJRMM0FGDimxffNAFJnWUZaWv4xySA6wRm8mUocN84xqQ==","shasum":"1540adfed344ed9279481ec60c8a680aa7e91cef","tarball":"https://registry.npmjs.org/@material/tabs/-/tabs-0.31.0.tgz","fileCount":23,"unpackedSize":270055,"signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIQCX/LKviHm01Qaz1ApJWOv+L58YkuJ1GeeKt+eXHteEogIgDl69wFTmRBCnmEcHEuJsPwoCdezFMJYiMxl1XyF0Z+M="}]},"maintainers":[{"email":"acdvorak@gmail.com","name":"acdvorak"},{"email":"alex.m.sheehan@gmail.com","name":"amsheehan"},{"email":"andrey.prigogin@gmail.com","name":"aprigogin"},{"email":"bonniez@google.com","name":"bonniez"},{"email":"obrien.test@gmail.com","name":"bwobrien"},{"email":"kenneth.franqueiro@gmail.com","name":"kfranqueiro"},{"email":"lynnjepsen@google.com","name":"lynnjepsen"},{"email":"lynnjepsen+npm@google.com","name":"material-admin"},{"email":"mattgoo@gmail.com","name":"moog16"},{"email":"prodee@google.com","name":"patrickrodee"},{"email":"williamernest@google.com","name":"williamernest"}],"directories":{},"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/tabs_0.31.0_1519150986037_0.491754546486451"},"_hasShrinkwrap":false},"0.32.0":{"name":"@material/tabs","version":"0.32.0","description":"The Material Components for the web tabs component","license":"Apache-2.0","repository":{"type":"git","url":"git+https://github.com/material-components/material-components-web.git"},"keywords":["material components","material design","tabs"],"publishConfig":{"access":"public"},"dependencies":{"@material/base":"^0.29.0","@material/ripple":"^0.32.0","@material/animation":"^0.25.0","@material/typography":"^0.28.0","@material/rtl":"^0.30.0","@material/theme":"^0.30.0"},"bugs":{"url":"https://github.com/material-components/material-components-web/issues"},"homepage":"https://github.com/material-components/material-components-web#readme","_id":"@material/tabs@0.32.0","_npmVersion":"5.5.1","_nodeVersion":"8.7.0","_npmUser":{"name":"patrickrodee","email":"prodee@google.com"},"dist":{"integrity":"sha512-RWzxlQoR6MPqxCP2kVNrxg4+D2A5eT7WO0cqkoxsbDz8wAPeNlU/vdr17bnTlhAiiwcDCKulxHRNX7Gztwwg0A==","shasum":"b347a7293233b0261f0515c73d94ad9f6833937a","tarball":"https://registry.npmjs.org/@material/tabs/-/tabs-0.32.0.tgz","fileCount":23,"unpackedSize":268483,"signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEYCIQDDjlF8jqg+H//3el6sfEOQkQ0l5vAM04VnuCk/sQlWfgIhAOvZoMhLFdekv2yisx/HU8LmcdBlMNbHSXibkN0uMpDu"}]},"maintainers":[{"email":"acdvorak@gmail.com","name":"acdvorak"},{"email":"alex.m.sheehan@gmail.com","name":"amsheehan"},{"email":"andrey.prigogin@gmail.com","name":"aprigogin"},{"email":"bonniez@google.com","name":"bonniez"},{"email":"obrien.test@gmail.com","name":"bwobrien"},{"email":"kenneth.franqueiro@gmail.com","name":"kfranqueiro"},{"email":"lynnjepsen@google.com","name":"lynnjepsen"},{"email":"lynnjepsen+npm@google.com","name":"material-admin"},{"email":"mattgoo@gmail.com","name":"moog16"},{"email":"prodee@google.com","name":"patrickrodee"},{"email":"williamernest@google.com","name":"williamernest"}],"directories":{},"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/tabs_0.32.0_1520287730705_0.2174808080790962"},"_hasShrinkwrap":false},"0.33.0":{"name":"@material/tabs","version":"0.33.0","description":"The Material Components for the web tabs component","license":"Apache-2.0","repository":{"type":"git","url":"git+https://github.com/material-components/material-components-web.git"},"keywords":["material components","material design","tabs"],"publishConfig":{"access":"public"},"dependencies":{"@material/base":"^0.29.0","@material/ripple":"^0.33.0","@material/animation":"^0.25.0","@material/typography":"^0.28.0","@material/rtl":"^0.33.0","@material/theme":"^0.33.0"},"bugs":{"url":"https://github.com/material-components/material-components-web/issues"},"homepage":"https://github.com/material-components/material-components-web#readme","_id":"@material/tabs@0.33.0","_npmVersion":"5.6.0","_nodeVersion":"9.4.0","_npmUser":{"name":"williamernest","email":"williamernest@google.com"},"dist":{"integrity":"sha512-45OfyLQzG8ll+4notsOiOWfsw794TZ4xOmg0Ivkv+uJfhxICCVALVggpMOIwjKxsEXyPWFbeZUnoHVhFmTVdug==","shasum":"75a4787834633b224ccb1c3b90b4530b2eee449c","tarball":"https://registry.npmjs.org/@material/tabs/-/tabs-0.33.0.tgz","fileCount":23,"unpackedSize":268339,"signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEQCICSxqrcO3WSf0W8BwnmrqNm1yzuem2PX4SMM0Cynx5vOAiBP8Nh43kVlp3BV0wbucUo39vCKT+Hpwg5PkFoZvsnOzQ=="}]},"maintainers":[{"email":"acdvorak@gmail.com","name":"acdvorak"},{"email":"alex.m.sheehan@gmail.com","name":"amsheehan"},{"email":"andrey.prigogin@gmail.com","name":"aprigogin"},{"email":"bonniez@google.com","name":"bonniez"},{"email":"obrien.test@gmail.com","name":"bwobrien"},{"email":"kenneth.franqueiro@gmail.com","name":"kfranqueiro"},{"email":"lynnjepsen@google.com","name":"lynnjepsen"},{"email":"lynnjepsen+npm@google.com","name":"material-admin"},{"email":"mattgoo@gmail.com","name":"moog16"},{"email":"prodee@google.com","name":"patrickrodee"},{"email":"williamernest@google.com","name":"williamernest"}],"directories":{},"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/tabs_0.33.0_1521477610624_0.20594086270204204"},"_hasShrinkwrap":false},"0.34.0":{"name":"@material/tabs","version":"0.34.0","description":"The Material Components for the web tabs component","license":"Apache-2.0","repository":{"type":"git","url":"git+https://github.com/material-components/material-components-web.git"},"keywords":["material components","material design","tabs"],"publishConfig":{"access":"public"},"dependencies":{"@material/base":"^0.34.0","@material/ripple":"^0.34.0","@material/animation":"^0.34.0","@material/typography":"^0.34.0","@material/rtl":"^0.34.0","@material/theme":"^0.34.0"},"bugs":{"url":"https://github.com/material-components/material-components-web/issues"},"homepage":"https://github.com/material-components/material-components-web#readme","_id":"@material/tabs@0.34.0","_npmVersion":"5.6.0","_nodeVersion":"8.11.0","_npmUser":{"name":"acdvorak","email":"acdvorak@gmail.com"},"dist":{"integrity":"sha512-a3JFK0DfVUOEStOgaMu+306nojeFTORj6Wxhfk/NjXcfhWTNAIYRuDEpCNwfek95hkCT1H2YVlYMAqvdtuEhtw==","shasum":"95b9e49a13a774881b7b5735ca8249b272db356a","tarball":"https://registry.npmjs.org/@material/tabs/-/tabs-0.34.0.tgz","fileCount":23,"unpackedSize":268624,"signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIQClsy/l27T2nr5PI7bXoOaiahpMS4w4FUEWZx/3sgLLBwIgM4Tu+Xy0+I+WHrc6CdobR5uO2Z8sovkOhtGt4q1wRns="}]},"maintainers":[{"email":"acdvorak@gmail.com","name":"acdvorak"},{"email":"alex.m.sheehan@gmail.com","name":"amsheehan"},{"email":"andrey.prigogin@gmail.com","name":"aprigogin"},{"email":"dfreedm2@gmail.com","name":"azakus"},{"email":"bonniez@google.com","name":"bonniez"},{"email":"obrien.test@gmail.com","name":"bwobrien"},{"email":"kenneth.franqueiro@gmail.com","name":"kfranqueiro"},{"email":"lynnjepsen@google.com","name":"lynnjepsen"},{"email":"lynnjepsen+npm@google.com","name":"material-admin"},{"email":"mattgoo@gmail.com","name":"moog16"},{"email":"prodee@google.com","name":"patrickrodee"},{"email":"williamernest@google.com","name":"williamernest"}],"directories":{},"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/tabs_0.34.0_1522705928463_0.6780856700002227"},"_hasShrinkwrap":false},"0.34.1":{"name":"@material/tabs","version":"0.34.1","description":"The Material Components for the web tabs component","license":"Apache-2.0","repository":{"type":"git","url":"git+https://github.com/material-components/material-components-web.git"},"keywords":["material components","material design","tabs"],"publishConfig":{"access":"public"},"dependencies":{"@material/base":"^0.34.0","@material/ripple":"^0.34.1","@material/animation":"^0.34.0","@material/typography":"^0.34.0","@material/rtl":"^0.34.0","@material/theme":"^0.34.0"},"bugs":{"url":"https://github.com/material-components/material-components-web/issues"},"homepage":"https://github.com/material-components/material-components-web#readme","_id":"@material/tabs@0.34.1","_npmVersion":"5.6.0","_nodeVersion":"8.11.0","_npmUser":{"name":"acdvorak","email":"acdvorak@gmail.com"},"dist":{"integrity":"sha512-JxHjpG9qga5Kzgrn/ik4vsS3muNScWebRa4FLNpCKXaCsMBhHxgdR0nP64cevhdMNoTrRTuyIfmdEdOIS/95NA==","shasum":"1fd435992fd5ba6da4cccbbfdc0c893a3bc89db0","tarball":"https://registry.npmjs.org/@material/tabs/-/tabs-0.34.1.tgz","fileCount":23,"unpackedSize":269022,"signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEYCIQDUXrEHsOiN95LXJtXnc8PJOUqNopZL/kUFKnCal82kNwIhALq5U7t4Wk18V1+k8+msvFIr1Bq/Uji9ZLBPoZhCMpht"}]},"maintainers":[{"email":"acdvorak@gmail.com","name":"acdvorak"},{"email":"alex.m.sheehan@gmail.com","name":"amsheehan"},{"email":"andrey.prigogin@gmail.com","name":"aprigogin"},{"email":"dfreedm2@gmail.com","name":"azakus"},{"email":"bonniez@google.com","name":"bonniez"},{"email":"obrien.test@gmail.com","name":"bwobrien"},{"email":"kenneth.franqueiro@gmail.com","name":"kfranqueiro"},{"email":"lynnjepsen@google.com","name":"lynnjepsen"},{"email":"lynnjepsen+npm@google.com","name":"material-admin"},{"email":"mattgoo@gmail.com","name":"moog16"},{"email":"prodee@google.com","name":"patrickrodee"},{"email":"williamernest@google.com","name":"williamernest"}],"directories":{},"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/tabs_0.34.1_1522798789788_0.39444386527290254"},"_hasShrinkwrap":false},"0.35.0":{"name":"@material/tabs","version":"0.35.0","description":"The Material Components for the web tabs component","license":"Apache-2.0","repository":{"type":"git","url":"git+https://github.com/material-components/material-components-web.git"},"keywords":["material components","material design","tabs"],"publishConfig":{"access":"public"},"dependencies":{"@material/base":"^0.35.0","@material/ripple":"^0.35.0","@material/animation":"^0.34.0","@material/typography":"^0.35.0","@material/rtl":"^0.35.0","@material/theme":"^0.35.0"},"readme":"<!--docs:\ntitle: \"Tabs\"\nlayout: detail\nsection: components\nexcerpt: \"A tabbed navigation component.\"\niconId: tabs\npath: /catalog/tabs/\n-->\n\n# MDC Tabs\n\nThe MDC Tabs component contains components which are used to create spec-aligned tabbed navigation components adhering to the\n[Material Design tabs guidelines](https://material.io/guidelines/components/tabs.html). These components are:\n\n- **mdc-tab**: The individual tab elements\n- **mdc-tab-bar**: The main component which is composed of `mdc-tab` elements\n- **mdc-tab-bar-scroller**: The component which controls the horizontal scrolling behavior of an `mdc-tab-bar` that overflows its container\n\n## Design & API Documentation\n\n<ul class=\"icon-list\">\n  <li class=\"icon-list-item icon-list-item--spec\">\n    <a href=\"https://material.io/guidelines/components/tabs.html\">Material Design guidelines: Tabs</a>\n  </li>\n  <li class=\"icon-list-item icon-list-item--link\">\n    <a href=\"http://material-components-web.appspot.com/tabs.html\">Demo</a>\n  </li>\n</ul>\n\n## Installation\n\n```\nnpm install @material/tabs\n```\n\n## Tabs usage\n\n`mdc-tab-bar` can be used as a CSS only component, or a more dynamic JavaScript\ncomponent.\n\nThere are also three different permutations of tab labels. These include text,\nicon-only, and text with icon. An example of each is available on the demo site.\n\n#### Tab Bar with text labels\n```html\n<nav id=\"basic-tab-bar\" class=\"mdc-tab-bar\">\n  <a class=\"mdc-tab mdc-tab--active\" href=\"#one\">Home</a>\n  <a class=\"mdc-tab\" href=\"#two\">Merchandise</a>\n  <a class=\"mdc-tab\" href=\"#three\">About Us</a>\n  <span class=\"mdc-tab-bar__indicator\"></span>\n</nav>\n```\n\n#### Tab Bar with icon labels\n```html\n<nav class=\"mdc-tab-bar mdc-tab-bar--icon-tab-bar\">\n  <a class=\"mdc-tab mdc-tab--active\" href=\"#recents\">\n    <i class=\"material-icons mdc-tab__icon\" aria-label=\"Recents\">phone</i>\n  </a>\n  <a class=\"mdc-tab\" href=\"#favorites\">\n    <i class=\"material-icons mdc-tab__icon\" aria-label=\"Favorites\">favorite</i>\n  </a>\n  <a class=\"mdc-tab\" href=\"#nearby\">\n    <i class=\"material-icons mdc-tab__icon\" aria-label=\"nearby\">person_pin</i>\n  </a>\n  <span class=\"mdc-tab-bar__indicator\"></span>\n</nav>\n```\n\n#### Tab Bar with icon and text labels\n```html\n<nav id=\"icon-text-tab-bar\" class=\"mdc-tab-bar mdc-tab-bar--icons-with-text\">\n  <a class=\"mdc-tab mdc-tab--with-icon-and-text mdc-tab--active\" href=\"#recents\">\n    <i class=\"material-icons mdc-tab__icon\" aria-hidden=\"true\">phone</i>\n    <span class=\"mdc-tab__icon-text\">Recents</span>\n  </a>\n  <a class=\"mdc-tab mdc-tab--with-icon-and-text\" href=\"#favorites\">\n    <i class=\"material-icons mdc-tab__icon\" aria-hidden=\"true\">favorite</i>\n    <span class=\"mdc-tab__icon-text\">Favorites</span>\n  </a>\n  <a class=\"mdc-tab mdc-tab--with-icon-and-text\" href=\"#nearby\">\n    <i class=\"material-icons mdc-tab__icon\" aria-hidden=\"true\">person_pin</i>\n    <span class=\"mdc-tab__icon-text\">Nearby</span>\n  </a>\n  <span class=\"mdc-tab-bar__indicator\"></span>\n</nav>\n```\n\n#### CSS Only Support\n\nIn order for the indicator to appear, you will need to change your mark up if you are using CSS Only. Each `.mdc-tab` will have a child element with the class `.mdc-tab__indicator` as shown below:\n\n```html\n<nav id=\"basic-tab-bar\" class=\"mdc-tab-bar\">\n  <a class=\"mdc-tab mdc-tab--active\" href=\"#one\">\n    Home\n    <span class=\"mdc-tab__indicator\"></span>\n  </a>\n  <a class=\"mdc-tab\" href=\"#two\">\n    Merchandise\n    <span class=\"mdc-tab__indicator\"></span>\n  </a>\n  <a class=\"mdc-tab\" href=\"#three\">\n    About Us\n    <span class=\"mdc-tab__indicator\"></span>\n  </a>\n</nav>\n```\n\n#### RTL Support\n\nTab Bars will reverse the order of their tabs if they are placed within an\nancestor element with attribute `dir=\"rtl\"`.\n\n```html\n<html dir=\"rtl\">\n  <!--...-->\n  <nav id=\"basic-tab-bar\" class=\"mdc-tab-bar\">\n    <a class=\"mdc-tab mdc-tab--active\" href=\"#one\">Home</a>\n    <a class=\"mdc-tab\" href=\"#two\">Merchandise</a>\n    <a class=\"mdc-tab\" href=\"#three\">About Us</a>\n    <span class=\"mdc-tab-bar__indicator\"></span>\n  </nav>\n</html>\n```\n\n\n### Dynamic view switching\n\nWhile facilitating the view switching is left up to the developer, the demo site\nprovides a minimal example of how to do so using JavaScript, also shown below.\n\n#### Markup:\n```html\n<section id=\"dynamic-demo-toolbar\">\n  <nav id=\"dynamic-tab-bar\" class=\"mdc-tab-bar\" role=\"tablist\">\n    <a role=\"tab\" aria-controls=\"panel-1\"\n       class=\"mdc-tab mdc-tab--active\" href=\"#panel-1\">Item One</a>\n    <a role=\"tab\" aria-controls=\"panel-2\"\n       class=\"mdc-tab\" href=\"#panel-2\">Item Two</a>\n    <a role=\"tab\" aria-controls=\"panel-3\"\n       class=\"mdc-tab\" href=\"#panel-3\">Item Three</a>\n    <span class=\"mdc-tab-bar__indicator\"></span>\n  </nav>\n</section>\n<section>\n  <div class=\"panels\">\n    <p class=\"panel active\" id=\"panel-1\" role=\"tabpanel\" aria-hidden=\"false\">Item One</p>\n    <p class=\"panel\" id=\"panel-2\" role=\"tabpanel\" aria-hidden=\"true\">Item Two</p>\n    <p class=\"panel\" id=\"panel-3\" role=\"tabpanel\" aria-hidden=\"true\">Item Three</p>\n  </div>\n  <div class=\"dots\">\n    <a class=\"dot active\" data-trigger=\"panel-1\" href=\"#panel-1\"></a>\n    <a class=\"dot\" data-trigger=\"panel-2\" href=\"#panel-2\"></a>\n    <a class=\"dot\" data-trigger=\"panel-3\" href=\"#panel-3\"></a>\n  </div>\n</section>\n```\n\n#### Script:\n```js\nvar dynamicTabBar = window.dynamicTabBar = new mdc.tabs.MDCTabBar(document.querySelector('#dynamic-tab-bar'));\nvar dots = document.querySelector('.dots');\nvar panels = document.querySelector('.panels');\n\ndynamicTabBar.tabs.forEach(function(tab) {\n  tab.preventDefaultOnClick = true;\n});\n\nfunction updateDot(index) {\n  var activeDot = dots.querySelector('.dot.active');\n  if (activeDot) {\n    activeDot.classList.remove('active');\n  }\n  var newActiveDot = dots.querySelector('.dot:nth-child(' + (index + 1) + ')');\n  if (newActiveDot) {\n    newActiveDot.classList.add('active');\n  }\n}\n\nfunction updatePanel(index) {\n  var activePanel = panels.querySelector('.panel.active');\n  if (activePanel) {\n    activePanel.classList.remove('active');\n  }\n  var newActivePanel = panels.querySelector('.panel:nth-child(' + (index + 1) + ')');\n  if (newActivePanel) {\n    newActivePanel.classList.add('active');\n  }\n}\n\ndynamicTabBar.listen('MDCTabBar:change', function ({detail: tabs}) {\n  var nthChildIndex = tabs.activeTabIndex;\n\n  updatePanel(nthChildIndex);\n  updateDot(nthChildIndex);\n});\n\ndots.addEventListener('click', function (evt) {\n  if (!evt.target.classList.contains('dot')) {\n    return;\n  }\n\n  evt.preventDefault();\n\n  var dotIndex = [].slice.call(dots.querySelectorAll('.dot')).indexOf(evt.target);\n\n  if (dotIndex >= 0) {\n    dynamicTabBar.activeTabIndex = dotIndex;\n  }\n\n  updatePanel(dotIndex);\n  updateDot(dotIndex);\n})\n```\n\n### Sass Mixins\n\nTo customize the ink color of any part of the tab, use the following mixins. We recommend you apply these mixins within CSS selectors like `.foo-tab:not(.mdc-tab--active)` to select your inactive tabs, `foo-tab:hover` to select the hover state of your tabs, and `.foo-tab.mdc-tab--active` to select your active tabs.\n\n#### `mdc-tab-ink-color`\nUse this mixin to set the color of all ink on the tab.\n\n#### `mdc-tab-icon-ink-color`\nThis mixin customizes the icon ink color.\n\n#### `mdc-tab-label-ink-color`\nThis mixin customizes the label ink color.\n\n#### `mdc-tab-bar-indicator-ink-color`\nThis mixin customizes the indicator ink color.\n\n### Using the CSS-Only Component\n\n`mdc-tab-bar` ships with css for styling a tab layout according to the Material\nDesign spec. To use CSS only tab bars, simply use the available class names.\nNote the available `mdc-tab--active` modifier class. This is used to denote the\ncurrently active tab.\n\n```html\n<nav class=\"mdc-tab-bar\">\n  <a class=\"mdc-tab mdc-tab--active\" href=\"#one\">Item One</a>\n  <a class=\"mdc-tab\" href=\"#two\">Item Two</a>\n  <a class=\"mdc-tab\" href=\"#three\">Three</a>\n  <span class=\"mdc-tab-bar__indicator\"></span>\n</nav>\n```\n\n### Using the JavaScript Component\n\n`mdc-tab-bar` ships with a Component/Foundation combo for ingesting instances of `mdc-tab` (a tab).\n`mdc-tab-bar` uses its `initialize()` method call a factory function which gathers and instantiates\nany tab elements that are children of the `mdc-tab-bar` root element.\n\n\n#### Including in code\n\n##### ES2015\n\n```javascript\nimport {MDCTab, MDCTabFoundation} from '@material/tabs';\nimport {MDCTabBar, MDCTabBarFoundation} from '@material/tabs';\n```\n\n##### CommonJS\n\n```javascript\nconst mdcTabs = require('@material/tabs');\nconst MDCTab = mdcTabs.MDCTab;\nconst MDCTabFoundation = mdcTabs.MDCTabFoundation;\n\nconst MDCTabBar = mdcTabs.MDCTabBar;\nconst MDCTabBarFoundation = mdcTabs.MDCTabBarFoundation;\n```\n\n##### AMD\n\n```javascript\nrequire(['path/to/@material/tabs'], mdcTabs => {\n  const MDCTab = mdcTabs.MDCTab;\n  const MDCTabFoundation = mdcTabs.MDCTabFoundation;\n\n  const MDCTabBar = mdcTabs.MDCTabBar;\n  const MDCTabBarFoundation = mdcTabs.MDCTabBarFoundation;\n});\n```\n\n##### Global\n\n```javascript\nconst MDCTab = mdc.tabs.MDCTab;\nconst MDCTabFoundation = mdc.tabs.MDCTabFoundation;\n\nconst MDCTabBar = mdc.tabs.MDCTabBar;\nconst MDCTabBarFoundation = mdc.tabs.MDCTabBarFoundation;\n```\n\n#### Automatic Instantiation\n\nIf you do not care about retaining the component instance for the tabs, simply\ncall `attachTo()` and pass it a DOM element.\n\n```javascript\nmdc.tabs.MDCTabBar.attachTo(document.querySelector('#my-mdc-tab-bar'));\n```\n\n#### Manual Instantiation\n\nTabs can easily be initialized using their default constructors as well, similar\nto `attachTo`. This process involves a factory to create an instance of MDCTab\nfrom each tab Element inside of the `mdc-tab-bar` node during the initialization phase\nof `MDCTabBar`, e.g.:\n\n```html\n<nav id=\"my-mdc-tab-bar\" class=\"mdc-tab-bar\">\n  <a class=\"mdc-tab mdc-tab--active\" href=\"#one\">Item One</a>\n  <a class=\"mdc-tab\" href=\"#two\">Item Two</a>\n  <a class=\"mdc-tab\" href=\"#three\">Three</a>\n  <span class=\"mdc-tab-bar__indicator\"></span>\n</nav>\n```\n\n```javascript\nimport {MDCTabBar, MDCTabBarFoundation} from '@material/tabs';\n\nconst tabBar = new MDCTabBar(document.querySelector('#my-mdc-tab-bar'));\n```\n\n\n### Using the JavaScript Tab Bar Scroller Component\n\n`mdc-tab-bar-scroller` ships with a Component/Foundation combo which wraps instances of `mdc-tab-bar`. `mdc-tab-bar-scroller` uses its `initialize()` method call a factory function which gathers and instantiates any tab bar elements that are children of the `mdc-tab-bar-scroller` root element.\n\nThe anatomy of `mdc-tab-bar-scroller` includes an instance of `mdc-tab-bar`, RTL-aware forward and back indicators which, when actioned on, move the tab bar left and right, and a scroll frame. The scroll frame is the parent element of the tab bar, and serves to mask the tabs in the tab bar when they overflow the available width.\n\n\n\n#### Including in code\n\n##### ES2015\n\n```javascript\nimport {MDCTab, MDCTabFoundation} from '@material/tabs';\nimport {MDCTabBar, MDCTabBarFoundation} from '@material/tabs';\nimport {MDCTabBarScroller, MDCTabBarFoundationScroller} from '@material/tabs';\n```\n\n##### CommonJS\n\n```javascript\nconst mdcTabs = require('@material/tabs');\nconst MDCTab = mdcTabs.MDCTab;\nconst MDCTabFoundation = mdcTabs.MDCTabFoundation;\n\nconst MDCTabBar = mdcTabs.MDCTabBar;\nconst MDCTabBarFoundation = mdcTabs.MDCTabBarFoundation;\n\nconst MDCTabBarScroller = mdcTabs.MDCTabBarScroller;\nconst MDCTabBarScrollerFoundation = mdcTabs.MDCTabBarScrollerFoundation;\n```\n\n##### AMD\n\n```javascript\nrequire(['path/to/@material/tabs'], mdcTabs => {\n  const MDCTab = mdcTabs.MDCTab;\n  const MDCTabFoundation = mdcTabs.MDCTabFoundation;\n\n  const MDCTabBar = mdcTabs.MDCTabBar;\n  const MDCTabBarFoundation = mdcTabs.MDCTabBarFoundation;\n\n  const MDCTabBarScroller = mdcTabs.MDCTabBarScroller;\n  const MDCTabBarScrollerFoundation = mdcTabs.MDCTabBarScrollerFoundation;\n});\n```\n\n##### Global\n\n```javascript\nconst MDCTab = mdc.tabs.MDCTab;\nconst MDCTabFoundation = mdc.tabs.MDCTabFoundation;\n\nconst MDCTabBar = mdc.tabs.MDCTabBar;\nconst MDCTabBarFoundation = mdc.tabs.MDCTabBarFoundation;\n\nconst MDCTabBarScroller = mdc.tabs.MDCTabBarScroller;\nconst MDCTabBarScrollerFoundation = mdc.tabs.MDCTabBarScrollerFoundation;\n```\n\n#### Automatic Instantiation\n\nIf you do not care about retaining the component instance for the tabs, simply\ncall `attachTo()` and pass it a DOM element.\n\n```javascript\nmdc.tabs.MDCTabBarScroller.attachTo(document.querySelector('#my-mdc-tab-bar-scroller'));\n```\n\n#### Manual Instantiation\n\nTab Bar Scrollers can easily be initialized using their default constructors as well, similar\nto `attachTo`. This process involves a factory to create an instance of `MDCTabBar`\nfrom the `mdc-tab-bar` Element inside of the `mdc-tab-bar-scroller` node during the initialization phase\nof `MDCTabBarScroller`, e.g.:\n\n```html\n<div id=\"my-mdc-tab-bar-scroller\" class=\"mdc-tab-bar-scroller\">\n  <div class=\"mdc-tab-bar-scroller__indicator mdc-tab-bar-scroller__indicator--back\">\n    <a class=\"mdc-tab-bar-scroller__indicator__inner material-icons\" href=\"#\" aria-label=\"scroll back button\">\n      navigate_before\n    </a>\n  </div>\n  <div class=\"mdc-tab-bar-scroller__scroll-frame\">\n    <nav id=\"my-scrollable-tab-bar\" class=\"mdc-tab-bar mdc-tab-bar-scroller__scroll-frame__tabs\">\n      <a class=\"mdc-tab mdc-tab--active\" href=\"#one\">Item One</a>\n      <a class=\"mdc-tab\" href=\"#two\">Item Two</a>\n      <a class=\"mdc-tab\" href=\"#three\">Item Three</a>\n      <a class=\"mdc-tab\" href=\"#four\">Item Four</a>\n      <a class=\"mdc-tab\" href=\"#five\">Item Five</a>\n      <a class=\"mdc-tab\" href=\"#six\">Item Six</a>\n      <a class=\"mdc-tab\" href=\"#seven\">Item Seven</a>\n      <a class=\"mdc-tab\" href=\"#eight\">Item Eight</a>\n      <a class=\"mdc-tab\" href=\"#nine\">Item Nine</a>\n      <span class=\"mdc-tab-bar__indicator\"></span>\n    </nav>\n  </div>\n  <div class=\"mdc-tab-bar-scroller__indicator mdc-tab-bar-scroller__indicator--forward\">\n    <a class=\"mdc-tab-bar-scroller__indicator__inner material-icons\" href=\"#\" aria-label=\"scroll forward button\">\n      navigate_next\n    </a>\n  </div>\n</div>\n```\n\n```javascript\nimport {MDCTabBarScroller, MDCTabBarScrollerFoundation} from '@material/tabs';\n\nconst tabBarScroller = new MDCTabBarScroller(document.querySelector('#my-mdc-tab-bar-scroller'));\n```\n\nTab Bar Scrollers can also instantiate any `mdc-tab-bar` from a DOM element on the fly using a built in factory function:\n\n```js\nimport {MDCTabBarScroller, MDCTabBarScrollerFoundation} from '@material/tabs';\n\nconst tabBarEl = document.querySelector('#my-mdc-tab-bar');\nconst scrollerEl = document.querySelector('#my-mdc-tab-bar-scroller');\n\nconst tabBarScroller = new MDCTabBarScroller(scrollerEl, undefined, tabBarEl);\n```\nThis will create an instance of MDC Tab Bar during the initialization phase of Tab Bar Scroller.\n\n\n## Tab\n\n### Tab component API\n\n#### Properties\n\n| Property Name | Type | Description |\n| --- | --- | --- |\n| `computedWidth` | `number` | _(read-only)_ The width of the tab. |\n| `computedLeft` | `number` | _(read-only)_ The left offset of the tab. |\n| `isActive` | `boolean` | Whether or not the tab is active. Setting this makes the tab active. |\n| `preventDefaultOnClick` | `boolean` | Whether or not the tab will call `preventDefault()` on an event. Setting this makes the tab call `preventDefault()` on events. |\n\n### Tab Events\n\n#### MDCTab:selected\n\nBroadcast when a user actions on the tab.\n\n\n### Using the Foundation Class\n\nMDC Tab ships with an `MDCTabFoundation` class that external frameworks and libraries can\nuse to integrate the component. As with all foundation classes, an adapter object must be provided.\n\n\n### Adapter API\n\n| Method Signature | Description |\n| --- | --- |\n| `addClass(className: string) => void` | Adds a class to the root element. |\n| `removeClass(className: string) => void` | Removes a class from the root element. |\n| `registerInteractionHandler(evt: string, handler: EventListener) => void` | Adds an event listener to the root element, for the specified event name. |\n| `deregisterInteractionHandler(evt: string, handler: EventListener) => void` | Removes an event listener from the root element, for the specified event name. |\n| `getOffsetWidth() => number` | Return the width of the tab |\n| `getOffsetLeft() => number` | Return distance between left edge of tab and left edge of its parent element |\n| `notifySelected() => {}` | Broadcasts an event denoting that the user has actioned on the tab |\n\n\n### The full foundation API\n\n#### MDCTabFoundation.getComputedWidth() => number\n\nReturn the computed width for tab.\n\n#### MDCTabFoundation.getComputedLeft() => number\n\nReturn the computed left offset for tab.\n\n#### MDCTabFoundation.isActive() => boolean\n\nReturn true if tab is active.\n\n#### MDCTabFoundation.setActive(isActive = false) => void\n\nSet tab to active. If `isActive` is true, adds the active modifier class, otherwise removes it.\n\n#### MDCTabFoundation.preventsDefaultOnClick() => boolean\n\nReturn true if the tab prevents the default click action\n\n#### MDCTabFoundation.setPreventDefaultOnClick(preventDefaultOnClick = false) => void\n\nSets tabs `preventDefaultOnClick` property to the value of the `preventDefaultOnClick` argument passed.\n\n#### MDCTabFoundation.measureSelf() => void\n\nSets `computedWidth_` and `computedLeft_` for a tab.\n\n\n## Tab Bar\n\n### Tab Bar component API\n\n#### Properties\n\n| Property Name | Type | Description |\n| --- | --- | --- |\n| `tabs` | `MDCTab[]` | _(read-only)_ An array of the tab bar's instances of MDC Tab. |\n| `activeTab` | `MDCTab` | The currently active tab. Setting this makes the tab active. |\n| `activeTabIndex` | `number` | The index of the currently active tab. Setting this makes the tab at the given index active. |\n\n#### MDCTabBar.layout() => void\n\nProxies to the foundation's `layout()` method.\n\n### Tab Bar Events\n\n#### MDCTabBar:change\n\nBroadcast when a user actions on a tab, resulting in a change in the selected tab.\n\n\n### Using the Foundation Class\n\n`mdc-tab-bar` ships with an `MDCTabBarFoundation` class that external frameworks\nand libraries can use to integrate the component. As with all foundation\nclasses, an adapter object must be provided.\n\n\n### Adapter API\n\n| Method Signature | Description |\n| --- | --- |\n| `addClass(className: string) => void` | Adds a class to the root element. |\n| `removeClass(className: string) => void` | Removes a class from the root element. |\n| `bindOnMDCTabSelectedEvent() => void` | Adds `MDCTab:selected` event listener to root |\n| `unbindOnMDCTabSelectedEvent() => void` | Removes `MDCTab:selected` event listener from root |\n| `registerResizeHandler(handler: EventListener) => void` | Adds an event listener to the root element, for a resize event. |\n| `deregisterResizeHandler(handler: EventListener) => void` | Removes an event listener from the root element, for a resize event. |\n| `getOffsetWidth() => number` | Returns width of root element. |\n| `setStyleForIndicator(propertyName: string, value: string) => void` | Sets style property for indicator. |\n| `getOffsetWidthForIndicator() => number` | Returns width of indicator. |\n| `notifyChange(evtData: Object) => void` | Emits `MDCTabBar:change` event, passes evtData. |\n| `getNumberOfTabs() => number` | Returns number of tabs in MDC Tabs instance. |\n| `getActiveTab() => MDCTab` | Returns the instance of MDCTab that is currently active. |\n| `isTabActiveAtIndex(index: number) => boolean` | Returns true if tab at index is active. |\n| `setTabActiveAtIndex(index: number) => void` | Sets tab active at given index. |\n| `isDefaultPreventedOnClickForTabAtIndex(index: number) => boolean` | Returns true if tab does not prevent default click action. |\n| `setPreventDefaultOnClickForTabAtIndex(index: number, preventDefaultOnClick: boolean)` | Sets preventDefaultOnClick for tab at given index |\n| `measureTabAtIndex(index: number) => void` | sets measurements (width, left offset) for tab at given index. |\n| `getComputedWidthForTabAtIndex(index: number) => number` | Returns width of tab at given index. |\n| `getComputedLeftForTabAtIndex(index: number) => number` | Returns left offset of tab at given index. |\n\n\n### The full foundation API\n\n#### MDCTabBarFoundation.layout() => void\n\nSets layout for the Tab Bar component.\n\n#### MDCTabBarFoundation.getActiveTabIndex() => number\n\nReturns index of currently active tab\n\n#### MDCTabBarFoundation.getComputedWidth() => number\n\nReturns the width of the element containing the tabs.\n\n#### MDCTabBarFoundation.switchToTabAtIndex(index, shouldNotify) => void\n\nUpdates the active tab to be the tab at the given index, emits `MDCTabBar:change` if `shouldNotify` is true.\n\n#### MDCTabBarFoundation.getActiveTabIndex() => number\n\nReturns the index of the currently active tab.\n\n\n## Tab Bar Scroller\n\n### Tab Bar Scroller component API\n\n#### Properties\n\n| Property Name | Type | Description |\n| --- | --- | --- |\n| `tabBar` | `MDCTabBar` | _(read-only)_ The scroller's tab bar. |\n\n#### MDCTabBarScroller.layout() => void\n\nProxies to the foundation's `layout()` method.\n\n### Using the Foundation Class\n\nMDC Tab Bar Scroller ships with an `MDCTabBarScrollerFoundation` class that external frameworks and libraries can use to integrate the component. As with all foundation classes, an adapter object must be provided.\n\n\n### Adapter API\n\n| Method Signature | Description |\n| --- | --- |\n| `addClass(className: string) => void` | Adds a class to the root element. |\n| `removeClass(className: string) => void` | Removes a class from the root element. |\n| `eventTargetHasClass(target: HTMLElement, className: string) => boolean` | Returns true if target has a given class name |\n| `addClassToForwardIndicator(className: string) => void` | Adds a given class to the forward indicator |\n| `removeClassFromForwardIndicator(className: string) => void` | Removes a given class from the forward indicator |\n| `addClassToBackIndicator(className: string) => void` | Adds a given class to the back indicator |\n| `removeClassFromBackIndicator(className: string) => void` | Removes a given class from the back indicator |\n| `isRTL() => boolean` | Returns true if in RTL context. False otherwise. |\n| `registerBackIndicatorClickHandler(handler: EventListener) => void` | Registers an event handler to be called when a `click` event happens on the back indicator |\n| `deregisterBackIndicatorClickHandler(handler: EventHandler) => void` | Deregisters an event handler from a `click` event happening on the back indicator |\n| `registerForwardIndicatorClickHandler(handler: EventHandler) => void` | Registers an event handler to be called when a `click` event happens on the forward indicator |\n| `deregisterForwardIndicatorClickHandler(handler: EventHandler) => void` | Deregisters an event handler from a `click` event happening on the forward indicator. |\n| `registerCapturedInteractionHandler(evt: string, handler: EventHandler) => void` | Registers an event handler to be called when a `focus`, `touchstart`, or `mousedown` event happens on the root of the component. These events gets dispatched to the listener during the capture phase. They also govern the scrolling behavior when tabs are tabbed to or actioned on. |\n| `deregisterCapturedInteractionHandler(evt: string, handler: EventHandler) => void` | Deregisters an event handler from a `focus`, `touchstart`, or `mousedown` events happening on the root of the component |\n| `registerWindowResizeHandler(handler: EventHandler) => void` | Registers an event handler to be called when a `resize` event happens on the `window` |\n| `deregisterWindowResizeHandler(handler: EventHandler) => void `| Deregisters an event handler from a `resize` event happening on the `window` |\n| `getNumberOfTabs() => number` | Returns the number of tabs in the scroller's tab bar |\n| `getComputedWidthForTabAtIndex(index: number) => number` | Returns the width of a tab at the given index |\n| `getComputedLeftForTabAtIndex(index: number) => number` | Returns the left offset of a tab at the given index |\n| `getOffsetWidthForScrollFrame() => number` | Returns the width of the scroll frame. This is the width of the visible tabs. |\n| `getScrollLeftForScrollFrame() => number` | Returns the `scrollLeft` value of the scroll frame |\n| `setScrollLeftForScrollFrame(scrollLeftAmount: number) => void` | Sets the value of `scrollLeft` for the scroll frame. |\n| `getOffsetWidthForTabBar() => number` | Returns the width of the _entire_ tab bar, including that which is occluded. |\n| `setTransformStyleForTabBar(value: string) => void` | Sets the `translateX` `transform` property for the tab bar. |\n| `getOffsetLeftForEventTarget(target: HTMLElement) => number`| Returns the left offset of a given element. |\n| `getOffsetWidthForEventTarget(target: HTMLElement) => number` | Returns the width of a given element. |\n\n\n### The full foundation API\n\n#### MDCTabBarScrollerFoundation.scrollBack() => void\n\nScrolls the tab bar such that the leftmost tab traverses the scroll frame and becomes the rightmost tab, potentially being partially, but not fully, occluded.\n\n#### MDCTabBarScrollerFoundation.scrollForward() => void\n\nScrolls the tab bar such that the rightmost tab traverses the scroll frame and becomes the leftmost tab. This tabs left offset will line up with the left edge of the scroll frame, and never be partially or fully occluded.\n\n> **NOTE:** Due to a quirk in event behavior, we allow the rightmost tab to be partially occluded even when tabbed to because clicking on such an element would shift the frame on the `focus` event. This would result in a scenario where the ripple persists and the intended tab would not be selected due to the tab bar shifting before the `mouseup` or `click` events get dispatched.\n\n#### MDCTabBarScrollerFoundation.scrollToTabAtIndex(index: number) => void\n\nScrolls the tab bar such that the tab at the index provided traverses the scroll frame and becomes the leftmost tab.\n\n#### MDCTabBarScrollerFoundation.layout() => void\n\nIf the tab bar is overflowing its available width, this method will reset the back and forward indicators to the correct states (visible/hidden) based on the new width.\n","readmeFilename":"README.md","bugs":{"url":"https://github.com/material-components/material-components-web/issues"},"homepage":"https://github.com/material-components/material-components-web#readme","_id":"@material/tabs@0.35.0","_npmVersion":"5.6.0","_nodeVersion":"8.7.0","_npmUser":{"name":"bonniez","email":"bonniez@google.com"},"dist":{"integrity":"sha512-UxoIRgitXxodf60kxLwOh0QCCZZlpX2g3wvHV751u5zcuJEmigYw4ub+BCRnXxgBT074A4CJBshQ56ovFV3NEw==","shasum":"a7f65d10123f29459f87682d65aeccef360417c9","tarball":"https://registry.npmjs.org/@material/tabs/-/tabs-0.35.0.tgz","fileCount":23,"unpackedSize":263364,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJa3mD0CRA9TVsSAnZWagAAEukP/2c8M+7hGpTLCE8qiQn1\nH1I1iEUQGWf8MXYCYVR0AlIoit//6z3My8duBEmn7PaU5bMmvU0cNTL7FC6w\nUift1G46jwOS1uvQDG/0zOQR9j079InVsrH2AnpFlyiPtDMdaO5xWWcQHdTx\nWUqyJAZVOm5tkxnE2YErovEtLAu33avo4ikplhiZJIjXW2yI/qeozUU5IWNy\njvQF80OmsgmkSH6UfJU4V/rdjDLuoQzVKH3TMhI+Cz6vuLH79q8GCfDUVIMI\nkegMgh7YFmaQfLbYUKsXElVlzmC6Zp9ReQJyi7ScyHEjdAEmjNUqlTADGESy\nPVbTkGnFYkNNqQe8AqSehmoJRqIjccsX1zNWqrIUfuUqUhiscLI2oAp2aCLf\nlvl9AFvoowHpngJpuTEjQSmLauhgAMDva7X4pE/uHmwPURqRnzkmBzWp9uOA\n5Lv/xEnJnpG40plVlpayXK21dCk3Tfm8Ssg4wP5tgJ22aNScsv1TDqu2+jg4\nGIOyhZfbSwDrIHwonFcgLafSgoqvfFVOPLoit9U1mISY/gUdRh4exMhrpQc6\nHsATwDZ2i1lxcUXkKd0VG+tRs/Q8v2mMyiT9XDpCcUnKhIHJ62igRuibiCRh\nfIbFwLJZlN8KxIGpANTD3ZKyFnUU0fA2ioSuvOUOL2nnhq3Eh/yVLkr1j3p1\nObhV\r\n=JYXW\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEQCIBDrqVwpDGlD0D/LyXltVhilsGsfJjv54AWKIuH13p0lAiAYydNamdQ11+blhBiqUiQRc7hvJiDsRoXf6oHAYHOuNQ=="}]},"maintainers":[{"email":"abhiomkar@gmail.com","name":"abhiomkar"},{"email":"acdvorak@gmail.com","name":"acdvorak"},{"email":"andrey.prigogin@gmail.com","name":"aprigogin"},{"email":"dfreedm2@gmail.com","name":"azakus"},{"email":"bonniez@google.com","name":"bonniez"},{"email":"obrien.test@gmail.com","name":"bwobrien"},{"email":"kenneth.franqueiro@gmail.com","name":"kfranqueiro"},{"email":"lynnjepsen@google.com","name":"lynnjepsen"},{"email":"lynnjepsen+npm@google.com","name":"material-admin"},{"email":"mattgoo@gmail.com","name":"moog16"},{"email":"prodee@google.com","name":"patrickrodee"},{"email":"williamernest@google.com","name":"williamernest"}],"directories":{},"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/tabs_0.35.0_1524523250317_0.9845971337471744"},"_hasShrinkwrap":false},"0.36.0-0":{"name":"@material/tabs","version":"0.36.0-0","description":"The Material Components for the web tabs component","license":"Apache-2.0","repository":{"type":"git","url":"git+https://github.com/material-components/material-components-web.git"},"keywords":["material components","material design","tabs"],"publishConfig":{"access":"public"},"dependencies":{"@material/animation":"^0.34.0","@material/base":"^0.35.0","@material/ripple":"^0.36.0-0","@material/rtl":"^0.35.0","@material/theme":"^0.35.0","@material/typography":"^0.35.0"},"bugs":{"url":"https://github.com/material-components/material-components-web/issues"},"homepage":"https://github.com/material-components/material-components-web#readme","_id":"@material/tabs@0.36.0-0","_npmVersion":"6.0.1","_nodeVersion":"8.11.1","_npmUser":{"name":"kfranqueiro","email":"kenneth.franqueiro@gmail.com"},"dist":{"integrity":"sha512-O1NdR8s+Mn4Kro0bFKbh4wRpQn0bP9gsTmyGWbYID8u9mwFYLSLlSIhbfF1iQ3MXA+1YF9z6tnra30dNUZGcag==","shasum":"5b6275554c016d15b7101b8d41eeed87b5160144","tarball":"https://registry.npmjs.org/@material/tabs/-/tabs-0.36.0-0.tgz","fileCount":23,"unpackedSize":263383,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJbDXBTCRA9TVsSAnZWagAAKlQP/jktKk0b7iEQOsbGvOF9\nJvTwxhhdHURZaArTcpculaLTL4Cx1/6cRHyNL1QIFVJAX2tYi6qu3LLyOGhs\ntVYjDjXSNoIC2mll5HqkAmVBtPFBrCtyzfYJFha7Rw+Lfgq0nBhVUboWBIl3\n5Ns/+z7eknLuVVLDrJTtH6OoKz8BsjTCSRO0jC1gAjNrVCWOO5YHSTwdReOw\nvYFm9cuiKSYbJs32erjGvq/spKEw5zQjDuz9yJ3Bmyix+L27QH2R76PxMpp9\nAuVJQgWV7LH26tUZPDGcGP7jGjXo5U1c+t1fGRq2ubLvg+EOZKzwfmKcVGVG\ngoncEnN+bU+K5JZf0nWpuH7+MidVb11CChlTaEkDOdqS6TlGr4uKA0VeuwNL\nNOeKRULjUr8Fq7w2JXqXVifbIZdonaiu81KaVYBuSYMvi39dLZ9LBiXFhcTW\nzIYlmbxuxL2ns/aCUNewfycGPby5YAr3YGZ7BJNP0XOt/w74CncZYfH+NSgu\n25LnJhqdS19iaomygC3ABiGDkaGpQFaNzQbGhWYZ7qUzxsIKwP3s1Tz1xj/s\n4rH52snMzG1aVM51auD/VtBHu8iG9JzDtrp4uLgkijrWVNiyWS5SFtu+Cajg\ntyzKK0PTFUd/ZqD2B1D9SPOWDO3MW1NTKxwT2GO0zQnIgYaWcYSIJsiUke5b\niDhP\r\n=g4Ty\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEYCIQDk1yPP7d9PnFyX0fc4CnrCJS8PKQaD/EtIvIHte/op1wIhANxvXa2J+Tga6fZBZR3nqD8yjRxmTOkaufaTuTk9QlW9"}]},"maintainers":[{"email":"abhiomkar@gmail.com","name":"abhiomkar"},{"email":"acdvorak@gmail.com","name":"acdvorak"},{"email":"andrey.prigogin@gmail.com","name":"aprigogin"},{"email":"dfreedm2@gmail.com","name":"azakus"},{"email":"bonniez@google.com","name":"bonniez"},{"email":"obrien.test@gmail.com","name":"bwobrien"},{"email":"kenneth.franqueiro@gmail.com","name":"kfranqueiro"},{"email":"lynnjepsen@google.com","name":"lynnjepsen"},{"email":"lynnjepsen+npm@google.com","name":"material-admin"},{"email":"mattgoo@gmail.com","name":"moog16"},{"email":"prodee@google.com","name":"patrickrodee"},{"email":"williamernest@google.com","name":"williamernest"}],"directories":{},"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/tabs_0.36.0-0_1527607371143_0.13898384987418755"},"_hasShrinkwrap":false},"0.36.0":{"name":"@material/tabs","version":"0.36.0","description":"The Material Components for the web tabs component","license":"Apache-2.0","repository":{"type":"git","url":"git+https://github.com/material-components/material-components-web.git"},"keywords":["material components","material design","tabs"],"publishConfig":{"access":"public"},"dependencies":{"@material/animation":"^0.34.0","@material/base":"^0.35.0","@material/ripple":"^0.36.0","@material/rtl":"^0.36.0","@material/theme":"^0.35.0","@material/typography":"^0.35.0"},"bugs":{"url":"https://github.com/material-components/material-components-web/issues"},"homepage":"https://github.com/material-components/material-components-web#readme","_id":"@material/tabs@0.36.0","_npmVersion":"6.0.1","_nodeVersion":"8.11.1","_npmUser":{"name":"kfranqueiro","email":"kenneth.franqueiro@gmail.com"},"dist":{"integrity":"sha512-rZ9PPttCSmKzVtanSNj8rQkgbjQ3Lx4sGK3yv47ephWV7Oulgj3AeLfcqwXqfSnSTi3t2q4WAScq6dGSqhsC9Q==","shasum":"0f989dcbe39d1c5336deeccb5756e816199bfbbe","tarball":"https://registry.npmjs.org/@material/tabs/-/tabs-0.36.0.tgz","fileCount":23,"unpackedSize":263379,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJbFVzwCRA9TVsSAnZWagAAd8QP+QFgEJxlz9ucR+fvvoBy\nBHauqE2QQ6pxERnbzzTXTzJ1uXdDEwI/CL6hr6/xGqGUbHxRds6R4OuqDtQ9\nMLiNrg6Zcq+w0LrTnpL+fDjrD8lbrpSVyX/B7tdU4IaSKluXXoWB8u4LUMd5\nOtLZRM8aM1dN6OMh4u4AgL0k7ho78canYytw/84MGI9D5Eh9ZzvDcnJdyQVN\n0DZb4hZoCeBO3tWSkgt3LJDP0NW8CMjPXa9t7hWzVLDoWZ35o2b6cURSYCM5\nsSWg7qVHpsCMqzdDye4EX9qDTj4nKHCZbGh/eGGPnpnsrCMGRn2zL3ex2nB4\nrPJAKnrqI4OBBibOaErAYF+NWZTbq0Wuygk7ZqgdPVFewF40or0Q8mHSf52x\nrvUXh7Uz8ouCLHIvy0ju90ZAM152jOrXjbOUUZcXzR4Et1V4f+0DBR2ecz2T\nSIzyLJSeN4JdWRkFD0ON+i5dFwlo7J6Fhh0R+XASV1WenLhkV7IYGrlPqI/T\nrTplHULl5ThC++9k7W2u0aD6Mu44GjyL0HAzwGuAeHhZZpRq+Wd2F9r4jikr\nbaMzohBW9QjxWHyg5t18bUyJYt0ymZqB6EDvx5+YXGyyDoOCF7t2uF+9v1SX\nX/GPlne6JiCPfWpCwBvdqslhrCkCGRY4uu362Ru0GyvtsVJoLerjHwo7g5ts\nyr+4\r\n=5i2W\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEQCIHLQ660hXUrhpB6oQ+oMgtlb1LmGhG9aQiHYZsLlsuoVAiBOAQ1TNdKJDPFimc9dkGJjrgPNC2Lz2fEcdF0wNT70ew=="}]},"maintainers":[{"email":"abhiomkar@gmail.com","name":"abhiomkar"},{"email":"acdvorak@gmail.com","name":"acdvorak"},{"email":"andrey.prigogin@gmail.com","name":"aprigogin"},{"email":"dfreedm2@gmail.com","name":"azakus"},{"email":"bonniez@google.com","name":"bonniez"},{"email":"obrien.test@gmail.com","name":"bwobrien"},{"email":"kenneth.franqueiro@gmail.com","name":"kfranqueiro"},{"email":"lynnjepsen@google.com","name":"lynnjepsen"},{"email":"lynnjepsen+npm@google.com","name":"material-admin"},{"email":"mattgoo@gmail.com","name":"moog16"},{"email":"prodee@google.com","name":"patrickrodee"},{"email":"williamernest@google.com","name":"williamernest"}],"directories":{},"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/tabs_0.36.0_1528126703266_0.25724552290868496"},"_hasShrinkwrap":false},"0.37.0":{"name":"@material/tabs","version":"0.37.0","description":"The Material Components for the web tabs component","license":"Apache-2.0","repository":{"type":"git","url":"git+https://github.com/material-components/material-components-web.git"},"keywords":["material components","material design","tabs"],"publishConfig":{"access":"public"},"dependencies":{"@material/animation":"^0.34.0","@material/base":"^0.35.0","@material/ripple":"^0.37.0","@material/rtl":"^0.36.0","@material/theme":"^0.35.0","@material/typography":"^0.35.0"},"bugs":{"url":"https://github.com/material-components/material-components-web/issues"},"homepage":"https://github.com/material-components/material-components-web#readme","_id":"@material/tabs@0.37.0","_npmVersion":"6.0.1","_nodeVersion":"8.11.1","_npmUser":{"name":"kfranqueiro","email":"kenneth.franqueiro@gmail.com"},"dist":{"integrity":"sha512-d6Vo1C9MSuuwBoNXwssWu9G1muFlp9ogZesq9dwZLvzedfZiiA3lcK2XUVXNBibYWkQXSYSiipPYq2ebpOmxdA==","shasum":"716d41ebfb756565ca836f78291bb3085f5fe18b","tarball":"https://registry.npmjs.org/@material/tabs/-/tabs-0.37.0.tgz","fileCount":23,"unpackedSize":263755,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJbOqO6CRA9TVsSAnZWagAAo30QAIOjDDz0/Vlsl/3shQze\nEW2ARBtAxYXEQ6xt3/6p2/sGki24tPF1gj61WUlREW8tMeECpFnu+X81OE7z\nGvm7cshVAm3vwnRiSnVQd2RfSE8qz7OhTUENWSmbmDffa6SbZyXtBR/TwnQU\nb5JEb71qJWzdWN0AOxsqUv8ehc+28sR6T1/0FK14KWh/v46Vu58ywZOzZcqg\nJL1PlcH58gzglAFnN5m+rSuUmL0okyyUOH6T49f1O70Edll8tsopba5o1VVo\napSveba5H0mMmBBkFOTWRFZHW+ZwRS2VySytmKBFoHT7nDfJslr0ddxa6Jcc\nyvKS6WezszC64S1tCri41A5jy9VUZOHrCBWID/8v4z21nx/gjfREXZYg9xKP\n/knOfMsN0dODU37slunIvcWxWADzhd0iv6BxrPZ7wFsDsiIBes/9QDCHQFwI\n9/WQcW94DOAkSzFXlBcyklHsqL4RyDaV28TtHNb7dNbSJKINjGQIJzJYWmhu\nBb//4jBZxzhpBPcODcXam4+OZPuOByR/B7FbzFEnV0yjj+280z3p4PP8u7zs\nA2zerY1yXJYrDZ6e6984+AZV7rOOdTkoAHYGG6ynU1qJuer1y/mV5jCDMXq5\nisrZGERfQlf7UX3AEO35uTo+skdXYdmR4rX68yFMnLbwoyR7V3Twb66S/KOu\nPSmI\r\n=8H9/\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEYCIQCVroYByw+tAID/y7+6Bffv2vDUOpf9bFca47unQVKXSwIhAOTUe/K3nXGSR1FQ04gRDI01gGYteD6xyEpROV+RGfQq"}]},"maintainers":[{"email":"abhiomkar@gmail.com","name":"abhiomkar"},{"email":"acdvorak@gmail.com","name":"acdvorak"},{"email":"andrey.prigogin@gmail.com","name":"aprigogin"},{"email":"dfreedm2@gmail.com","name":"azakus"},{"email":"bonniez@google.com","name":"bonniez"},{"email":"obrien.test@gmail.com","name":"bwobrien"},{"email":"kenneth.franqueiro@gmail.com","name":"kfranqueiro"},{"email":"lynnjepsen@google.com","name":"lynnjepsen"},{"email":"lynnjepsen+npm@google.com","name":"material-admin"},{"email":"mattgoo@gmail.com","name":"moog16"},{"email":"prodee@google.com","name":"patrickrodee"},{"email":"williamernest@google.com","name":"williamernest"}],"directories":{},"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/tabs_0.37.0_1530569658236_0.3585143804808515"},"_hasShrinkwrap":false},"0.37.1":{"name":"@material/tabs","version":"0.37.1","description":"The Material Components for the web tabs component","license":"Apache-2.0","repository":{"type":"git","url":"git+https://github.com/material-components/material-components-web.git"},"keywords":["material components","material design","tabs"],"publishConfig":{"access":"public"},"dependencies":{"@material/animation":"^0.34.0","@material/base":"^0.35.0","@material/ripple":"^0.37.1","@material/rtl":"^0.36.0","@material/theme":"^0.35.0","@material/typography":"^0.37.1"},"bugs":{"url":"https://github.com/material-components/material-components-web/issues"},"homepage":"https://github.com/material-components/material-components-web#readme","_id":"@material/tabs@0.37.1","_npmVersion":"6.2.0","_nodeVersion":"10.3.0","_npmUser":{"name":"abhiomkar","email":"abhiomkar@gmail.com"},"dist":{"integrity":"sha512-Az2+a4h+1CNvX6Bith+4wAlQuag9UF299s/lX2r3NbzjgwsjvIrSQhld9x8kWybY+K1r2gsvdeCKzYiJjJ5zEA==","shasum":"421b282e0da7b9417f71f3f9f31be63282326692","tarball":"https://registry.npmjs.org/@material/tabs/-/tabs-0.37.1.tgz","fileCount":23,"unpackedSize":263860,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJbTQv/CRA9TVsSAnZWagAAfyYP/RXu+OOcVUtgmX+LITzg\nNtu3gQbJNPw6EWfgb1Tx6rC6nPSKXkImHYQvMz9Dsl1A7YueEl/epfDGTEOt\nUGOzOMEKbjvtYrUD3F9+s4JcUp2pVv91Xz6HEHY1uCvvvP5JApSMdAzjyJa6\nFs/jAPc2lv27RZxDelc8j9WL+wfSf9595QAf6j7dwyTU2y3xkC3Q1nz+q+w6\nMjBwgbBu9FxDiHxfm+3fRHw1ZcInp34piy64M9ucVU5pWizSZnlMT9Hhcx/N\ngmQPGfyjzj33GMRoj9v7vJcfLRSD/JNaedyg7911Vjiv+Yiwws/V6tBvU5wn\nUgcLjVbxRKmgCReKPTo/irSIbYTNNdSGtz/ttIqe19r//17J/5+4N4gZH32q\nzqkrcJ/rEi4ZWhpKwW1lFn9Ppo+L19aKhglitpkJ237wNAqiMe84BZezKee0\naN4QVSR2oOXyuoknrg/L0WgPdGksSjoB7quCxJCYsWBxq3XvSJM0GtJ7S2Lm\nCra+BD5lnGn5Sd/gL10x6XgvvBOCrVAfyq9WeNsrYTMfOVu96TDJqRSlRdTV\nMRRZ37zkd3bsyruEiRQW9suypkbLl/zVtSB8aGT0J7IRx5lNxdKy/g9+OiFN\n+UrM/yfMW98EXhxKr0cwqkQ8iEOHvAJhIov3e4oHD4LpcqGy+6km5Bl+46P6\nvCBZ\r\n=NG0F\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEYCIQCGwXfCMtf/MaspeRyDa2APiSURxosNMGXCu6LD4ewwpAIhAKP6rgf9O18d4us9nh8y1qKYYC3vD/jeDdFkkvnd7zPJ"}]},"maintainers":[{"email":"abhiomkar@gmail.com","name":"abhiomkar"},{"email":"acdvorak@gmail.com","name":"acdvorak"},{"email":"andrey.prigogin@gmail.com","name":"aprigogin"},{"email":"dfreedm2@gmail.com","name":"azakus"},{"email":"bicknellr@gmail.com","name":"bicknellr"},{"email":"bonniez@google.com","name":"bonniez"},{"email":"obrien.test@gmail.com","name":"bwobrien"},{"email":"kenneth.franqueiro@gmail.com","name":"kfranqueiro"},{"email":"lynnjepsen@google.com","name":"lynnjepsen"},{"email":"lynnjepsen+npm@google.com","name":"material-admin"},{"email":"mattgoo@gmail.com","name":"moog16"},{"email":"prodee@google.com","name":"patrickrodee"},{"email":"williamernest@google.com","name":"williamernest"}],"directories":{},"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/tabs_0.37.1_1531775999855_0.28721356922136154"},"_hasShrinkwrap":false},"0.38.0":{"name":"@material/tabs","version":"0.38.0","description":"The Material Components for the web tabs component","license":"Apache-2.0","repository":{"type":"git","url":"git+https://github.com/material-components/material-components-web.git"},"keywords":["material components","material design","tabs"],"publishConfig":{"access":"public"},"dependencies":{"@material/animation":"^0.34.0","@material/base":"^0.35.0","@material/ripple":"^0.38.0","@material/rtl":"^0.36.0","@material/theme":"^0.38.0","@material/typography":"^0.38.0"},"bugs":{"url":"https://github.com/material-components/material-components-web/issues"},"homepage":"https://github.com/material-components/material-components-web#readme","_id":"@material/tabs@0.38.0","_npmVersion":"6.2.0","_nodeVersion":"9.11.1","_npmUser":{"name":"acdvorak","email":"acdvorak@gmail.com"},"dist":{"integrity":"sha512-PNjWK+7Xk0isnIweEqYasUxjSj+ez5fQ0pEvWR377M2d+porbsZIDAcVMoZ4SuiGoIbFYJWNJ3ql+gc0VyQYsA==","shasum":"fdd1d763ef709b130b6c3c9c6302278fcb485415","tarball":"https://registry.npmjs.org/@material/tabs/-/tabs-0.38.0.tgz","fileCount":23,"unpackedSize":264904,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJbX0XNCRA9TVsSAnZWagAAtUIQAIh0/UXe3thSqbqCVbr1\nFvE6bx0MjnlRplRKl/z1hjVqyPU5Gn12SAqXLjMBwZzyEsv24LL5YU1OCE6S\njzHZkL7uUz7u96+ObdXsdgHlLgK+3S6fhok4VvHx3GmeFPDpwcVNNRIjVy74\nDIJ2/BYEKJ8I/KTA5Kj1KM74aT+jGRqZ8lPtLD3Kqz7sD1sWkzfk39MnMAWf\nSEixeDgp6JssTJ2mWSsutQk+S1djIZMZF/ZrD+kGE2NWPBCdt0KXnVnxon2+\nmFuZzGigoocT5P+GFb6kqjwsIa6f4ccEU1h80KmQ5eG2jdfqqJOMF90apvIo\nT/KkMZ/F0k3Y4ZcaqB25dToPFT1chiNPn4brkg9SiBVxO18cusTNinAiUeX4\n0xFFoaUSN7XrkGZ9eXWJ+b5DEp6qcT75tL4kLCrThtkfpsV3qz81OHwFvIEW\nJ1fj73gSp3ferCiFKveDbraAPsivtS1hBQbX9Z9igxmQTMJcLYapWE1PG2X6\no9FYY5EOCjRGkDtKzlWfBDn7qMpNgkFY6EEvZ89Q8xYTVoNPkRXjpEJavbd8\n7kA4NUgAxgIMj/JtlaiX3EmnCMemyWB7drrdrgJmLN7RrlmvI2QPkys3S0dC\nMw6aMsHbqNS7GXm3yW73F0JOrgrrQ4It92aeq9MoBWOXxhYP7uoV2hURQeLp\n1n8o\r\n=l9hY\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIBntImVhUsLeARnNQKBg1ZAZfS1Sn8maKzNcrmAyrRpgAiEAi/dIxlSpbkhBeqRWnJyGaZoVTZZCccpbMqXJdQocx7Q="}]},"maintainers":[{"email":"abhiomkar@gmail.com","name":"abhiomkar"},{"email":"acdvorak@gmail.com","name":"acdvorak"},{"email":"andrey.prigogin@gmail.com","name":"aprigogin"},{"email":"dfreedm2@gmail.com","name":"azakus"},{"email":"bicknellr@gmail.com","name":"bicknellr"},{"email":"bonniez@google.com","name":"bonniez"},{"email":"obrien.test@gmail.com","name":"bwobrien"},{"email":"kenneth.franqueiro@gmail.com","name":"kfranqueiro"},{"email":"lynnjepsen@google.com","name":"lynnjepsen"},{"email":"lynnjepsen+npm@google.com","name":"material-admin"},{"email":"mattgoo@gmail.com","name":"moog16"},{"email":"prodee@google.com","name":"patrickrodee"},{"email":"williamernest@google.com","name":"williamernest"}],"directories":{},"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/tabs_0.38.0_1532970445539_0.3965655567989821"},"_hasShrinkwrap":false},"0.38.1":{"name":"@material/tabs","version":"0.38.1","description":"The Material Components for the web tabs component","license":"Apache-2.0","repository":{"type":"git","url":"git+https://github.com/material-components/material-components-web.git"},"keywords":["material components","material design","tabs"],"publishConfig":{"access":"public"},"dependencies":{"@material/animation":"^0.34.0","@material/base":"^0.35.0","@material/ripple":"^0.38.1","@material/rtl":"^0.36.0","@material/theme":"^0.38.0","@material/typography":"^0.38.0"},"bugs":{"url":"https://github.com/material-components/material-components-web/issues"},"homepage":"https://github.com/material-components/material-components-web#readme","_id":"@material/tabs@0.38.1","_npmVersion":"6.2.0","_nodeVersion":"8.11.1","_npmUser":{"name":"kfranqueiro","email":"kenneth.franqueiro@gmail.com"},"dist":{"integrity":"sha512-xZUL/bv85akhgdhuZd4LFhCtKyYHQjcWYYTV3m4+AHg4ZgK+uAVa85j0bhOSPnm6Ahk4vh2ZU/iRFN4jN1OzcA==","shasum":"55cf43489eaa449054c44a72fd2f9fd445d97356","tarball":"https://registry.npmjs.org/@material/tabs/-/tabs-0.38.1.tgz","fileCount":23,"unpackedSize":265237,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJbcex1CRA9TVsSAnZWagAAPpgQAIbWxE5J6o5HczZyYQjv\n5wowjDce+vDrCNUwAflXeQ6c+4kLPHlimMvt7XZoA2oHHiIfOeCmXaJGA2rV\nqZ7ifbEN9hJuWB7zqt7u/DAkwxSq/wj5atlhLdiFDIlRpnmyfWoIWgAuRUGB\n/gx9H/7KLgwcDLtBxNM9I2wAV3vTG3+qBAo+lr1C7VPTKUIZ8djP2xq8iZ0K\nm4WuauF8dVsHp1BG86q3XBpKfn7sqF2KFsfQRNrB7B8QhYX7VYpLF2byIPTQ\nbXe4erR/S+WJBlMnhBawZTISpwh71Mal51qcyTII0QVZjjvy1qGldA2Fzx7n\nEfP51eodnG6mds4k6szorIHb7lvQGSQEZC8nP2emxR9tqyYJXHner9WaaEre\nLbO/ZspYClFlUYP7DnyP9NzLhRFjn9jVmA8mAeq4F4a7tDLxcPZGfem9G2c4\nLVGdm37+5c0pj96J8ZWF6RJRWNd/hzQ8kfvvqKXbxyhrLyJWDuRIhOqeO9Te\nszQkPFykXwyfNFF+2dBCIVR0gxLfZ/zTk9Pr1DfPFzMlF2eXxR4IOJcZvRoV\nQv7Fv2T4dZnWXz0fbB7HcLniSAhdXid/PRCasa332ReNmgS8WR4JRKPi719Z\nfuULpZ63v4lJy8hoGbhfrfMgg9RdpH7UqHvCoYHuSU6sGd66NxNDU992a9R9\nj9qB\r\n=gUg7\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEQCIGT14AIf/AMJIE4bk/NeU0a1RGmXS5BReU/6iGgF4MRmAiB+b400wSy0XyG66N+oq7I3wVJWDWNizkzZgSmoPtSr1A=="}]},"maintainers":[{"email":"abhiomkar@gmail.com","name":"abhiomkar"},{"email":"acdvorak@gmail.com","name":"acdvorak"},{"email":"andrey.prigogin@gmail.com","name":"aprigogin"},{"email":"dfreedm2@gmail.com","name":"azakus"},{"email":"bicknellr@gmail.com","name":"bicknellr"},{"email":"bonniez@google.com","name":"bonniez"},{"email":"obrien.test@gmail.com","name":"bwobrien"},{"email":"kenneth.franqueiro@gmail.com","name":"kfranqueiro"},{"email":"lynnjepsen@google.com","name":"lynnjepsen"},{"email":"lynnjepsen+npm@google.com","name":"material-admin"},{"email":"mattgoo@gmail.com","name":"moog16"},{"email":"prodee@google.com","name":"patrickrodee"},{"email":"williamernest@google.com","name":"williamernest"}],"directories":{},"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/tabs_0.38.1_1534192756360_0.157572123373396"},"_hasShrinkwrap":false},"0.39.0-0":{"name":"@material/tabs","version":"0.39.0-0","description":"The Material Components for the web tabs component","license":"Apache-2.0","repository":{"type":"git","url":"git+https://github.com/material-components/material-components-web.git"},"keywords":["material components","material design","tabs"],"publishConfig":{"access":"public"},"dependencies":{"@material/animation":"^0.34.0","@material/base":"^0.35.0","@material/ripple":"^0.38.1","@material/rtl":"^0.36.0","@material/theme":"^0.38.0","@material/typography":"^0.39.0-0"},"readme":"<!--docs:\ntitle: \"Tabs (Deprecated)\"\nlayout: detail\nsection: components\nexcerpt: \"A tabbed navigation component.\"\niconId: tabs\npath: /catalog/tabs/legacy/\n-->\n\n## Important - Deprecation Notice\n\nThe `mdc-tabs` package is deprecated and no longer maintained, and is no longer included in the all-in-one\n`material-components-web` package. Improved functionality is available across the `mdc-tab-bar`, `mdc-tab-scroller`,\n`mdc-tab-indicator`, and `mdc-tab` packages, which are now included in the `material-components-web` package.\nBugs and feature requests will no longer be accepted for this package. It is recommended that you migrate to the new\npackages to continue to receive new features and updates.\n\n# MDC Tabs\n\nThe MDC Tabs component contains components which are used to create spec-aligned tabbed navigation components adhering to the\n[Material Design tabs guidelines](https://material.io/go/design-tabs). These components are:\n\n- **mdc-tab**: The individual tab elements\n- **mdc-tab-bar**: The main component which is composed of `mdc-tab` elements\n- **mdc-tab-bar-scroller**: The component which controls the horizontal scrolling behavior of an `mdc-tab-bar` that overflows its container\n\n## Design & API Documentation\n\n<ul class=\"icon-list\">\n  <li class=\"icon-list-item icon-list-item--spec\">\n    <a href=\"https://material.io/go/design-tabs\">Material Design guidelines: Tabs</a>\n  </li>\n  <li class=\"icon-list-item icon-list-item--link\">\n    <a href=\"https://material-components.github.io/material-components-web-catalog/#/component/tabs\">Demo</a>\n  </li>\n</ul>\n\n## Installation\n\n```\nnpm install @material/tabs\n```\n\n## Tabs usage\n\n`mdc-tab-bar` can be used as a CSS only component, or a more dynamic JavaScript\ncomponent.\n\nThere are also three different permutations of tab labels. These include text,\nicon-only, and text with icon. An example of each is available on the demo site.\n\n#### Tab Bar with text labels\n```html\n<nav id=\"basic-tab-bar\" class=\"mdc-tab-bar\">\n  <a class=\"mdc-tab mdc-tab--active\" href=\"#one\">Home</a>\n  <a class=\"mdc-tab\" href=\"#two\">Merchandise</a>\n  <a class=\"mdc-tab\" href=\"#three\">About Us</a>\n  <span class=\"mdc-tab-bar__indicator\"></span>\n</nav>\n```\n\n#### Tab Bar with icon labels\n```html\n<nav class=\"mdc-tab-bar mdc-tab-bar--icon-tab-bar\">\n  <a class=\"mdc-tab mdc-tab--active\" href=\"#recents\">\n    <i class=\"material-icons mdc-tab__icon\" aria-label=\"Recents\">phone</i>\n  </a>\n  <a class=\"mdc-tab\" href=\"#favorites\">\n    <i class=\"material-icons mdc-tab__icon\" aria-label=\"Favorites\">favorite</i>\n  </a>\n  <a class=\"mdc-tab\" href=\"#nearby\">\n    <i class=\"material-icons mdc-tab__icon\" aria-label=\"nearby\">person_pin</i>\n  </a>\n  <span class=\"mdc-tab-bar__indicator\"></span>\n</nav>\n```\n\n#### Tab Bar with icon and text labels\n```html\n<nav id=\"icon-text-tab-bar\" class=\"mdc-tab-bar mdc-tab-bar--icons-with-text\">\n  <a class=\"mdc-tab mdc-tab--with-icon-and-text mdc-tab--active\" href=\"#recents\">\n    <i class=\"material-icons mdc-tab__icon\" aria-hidden=\"true\">phone</i>\n    <span class=\"mdc-tab__icon-text\">Recents</span>\n  </a>\n  <a class=\"mdc-tab mdc-tab--with-icon-and-text\" href=\"#favorites\">\n    <i class=\"material-icons mdc-tab__icon\" aria-hidden=\"true\">favorite</i>\n    <span class=\"mdc-tab__icon-text\">Favorites</span>\n  </a>\n  <a class=\"mdc-tab mdc-tab--with-icon-and-text\" href=\"#nearby\">\n    <i class=\"material-icons mdc-tab__icon\" aria-hidden=\"true\">person_pin</i>\n    <span class=\"mdc-tab__icon-text\">Nearby</span>\n  </a>\n  <span class=\"mdc-tab-bar__indicator\"></span>\n</nav>\n```\n\n#### CSS Only Support\n\nIn order for the indicator to appear, you will need to change your mark up if you are using CSS Only. Each `.mdc-tab` will have a child element with the class `.mdc-tab__indicator` as shown below:\n\n```html\n<nav id=\"basic-tab-bar\" class=\"mdc-tab-bar\">\n  <a class=\"mdc-tab mdc-tab--active\" href=\"#one\">\n    Home\n    <span class=\"mdc-tab__indicator\"></span>\n  </a>\n  <a class=\"mdc-tab\" href=\"#two\">\n    Merchandise\n    <span class=\"mdc-tab__indicator\"></span>\n  </a>\n  <a class=\"mdc-tab\" href=\"#three\">\n    About Us\n    <span class=\"mdc-tab__indicator\"></span>\n  </a>\n</nav>\n```\n\n#### RTL Support\n\nTab Bars will reverse the order of their tabs if they are placed within an\nancestor element with attribute `dir=\"rtl\"`.\n\n```html\n<html dir=\"rtl\">\n  <!--...-->\n  <nav id=\"basic-tab-bar\" class=\"mdc-tab-bar\">\n    <a class=\"mdc-tab mdc-tab--active\" href=\"#one\">Home</a>\n    <a class=\"mdc-tab\" href=\"#two\">Merchandise</a>\n    <a class=\"mdc-tab\" href=\"#three\">About Us</a>\n    <span class=\"mdc-tab-bar__indicator\"></span>\n  </nav>\n</html>\n```\n\n\n### Dynamic view switching\n\nWhile facilitating the view switching is left up to the developer, the demo site\nprovides a minimal example of how to do so using JavaScript, also shown below.\n\n#### Markup:\n```html\n<section id=\"dynamic-demo-toolbar\">\n  <nav id=\"dynamic-tab-bar\" class=\"mdc-tab-bar\" role=\"tablist\">\n    <a role=\"tab\" aria-controls=\"panel-1\"\n       class=\"mdc-tab mdc-tab--active\" href=\"#panel-1\">Item One</a>\n    <a role=\"tab\" aria-controls=\"panel-2\"\n       class=\"mdc-tab\" href=\"#panel-2\">Item Two</a>\n    <a role=\"tab\" aria-controls=\"panel-3\"\n       class=\"mdc-tab\" href=\"#panel-3\">Item Three</a>\n    <span class=\"mdc-tab-bar__indicator\"></span>\n  </nav>\n</section>\n<section>\n  <div class=\"panels\">\n    <p class=\"panel active\" id=\"panel-1\" role=\"tabpanel\" aria-hidden=\"false\">Item One</p>\n    <p class=\"panel\" id=\"panel-2\" role=\"tabpanel\" aria-hidden=\"true\">Item Two</p>\n    <p class=\"panel\" id=\"panel-3\" role=\"tabpanel\" aria-hidden=\"true\">Item Three</p>\n  </div>\n  <div class=\"dots\">\n    <a class=\"dot active\" data-trigger=\"panel-1\" href=\"#panel-1\"></a>\n    <a class=\"dot\" data-trigger=\"panel-2\" href=\"#panel-2\"></a>\n    <a class=\"dot\" data-trigger=\"panel-3\" href=\"#panel-3\"></a>\n  </div>\n</section>\n```\n\n#### Script:\n```js\nvar dynamicTabBar = window.dynamicTabBar = new mdc.tabs.MDCTabBar(document.querySelector('#dynamic-tab-bar'));\nvar dots = document.querySelector('.dots');\nvar panels = document.querySelector('.panels');\n\ndynamicTabBar.tabs.forEach(function(tab) {\n  tab.preventDefaultOnClick = true;\n});\n\nfunction updateDot(index) {\n  var activeDot = dots.querySelector('.dot.active');\n  if (activeDot) {\n    activeDot.classList.remove('active');\n  }\n  var newActiveDot = dots.querySelector('.dot:nth-child(' + (index + 1) + ')');\n  if (newActiveDot) {\n    newActiveDot.classList.add('active');\n  }\n}\n\nfunction updatePanel(index) {\n  var activePanel = panels.querySelector('.panel.active');\n  if (activePanel) {\n    activePanel.classList.remove('active');\n  }\n  var newActivePanel = panels.querySelector('.panel:nth-child(' + (index + 1) + ')');\n  if (newActivePanel) {\n    newActivePanel.classList.add('active');\n  }\n}\n\ndynamicTabBar.listen('MDCTabBar:change', function ({detail: tabs}) {\n  var nthChildIndex = tabs.activeTabIndex;\n\n  updatePanel(nthChildIndex);\n  updateDot(nthChildIndex);\n});\n\ndots.addEventListener('click', function (evt) {\n  if (!evt.target.classList.contains('dot')) {\n    return;\n  }\n\n  evt.preventDefault();\n\n  var dotIndex = [].slice.call(dots.querySelectorAll('.dot')).indexOf(evt.target);\n\n  if (dotIndex >= 0) {\n    dynamicTabBar.activeTabIndex = dotIndex;\n  }\n\n  updatePanel(dotIndex);\n  updateDot(dotIndex);\n})\n```\n\n### Sass Mixins\n\nTo customize the ink color of any part of the tab, use the following mixins. We recommend you apply these mixins within CSS selectors like `.foo-tab:not(.mdc-tab--active)` to select your inactive tabs, `foo-tab:hover` to select the hover state of your tabs, and `.foo-tab.mdc-tab--active` to select your active tabs.\n\n#### `mdc-tab-ink-color`\nUse this mixin to set the color of all ink on the tab.\n\n#### `mdc-tab-icon-ink-color`\nThis mixin customizes the icon ink color.\n\n#### `mdc-tab-label-ink-color`\nThis mixin customizes the label ink color.\n\n#### `mdc-tab-bar-indicator-ink-color`\nThis mixin customizes the indicator ink color.\n\n### Using the CSS-Only Component\n\n`mdc-tab-bar` ships with css for styling a tab layout according to the Material\nDesign spec. To use CSS only tab bars, simply use the available class names.\nNote the available `mdc-tab--active` modifier class. This is used to denote the\ncurrently active tab.\n\n```html\n<nav class=\"mdc-tab-bar\">\n  <a class=\"mdc-tab mdc-tab--active\" href=\"#one\">Item One</a>\n  <a class=\"mdc-tab\" href=\"#two\">Item Two</a>\n  <a class=\"mdc-tab\" href=\"#three\">Three</a>\n  <span class=\"mdc-tab-bar__indicator\"></span>\n</nav>\n```\n\n### Using the JavaScript Component\n\n`mdc-tab-bar` ships with a Component/Foundation combo for ingesting instances of `mdc-tab` (a tab).\n`mdc-tab-bar` uses its `initialize()` method call a factory function which gathers and instantiates\nany tab elements that are children of the `mdc-tab-bar` root element.\n\n\n#### Including in code\n\n##### ES2015\n\n```javascript\nimport {MDCTab, MDCTabFoundation} from '@material/tabs';\nimport {MDCTabBar, MDCTabBarFoundation} from '@material/tabs';\n```\n\n##### CommonJS\n\n```javascript\nconst mdcTabs = require('@material/tabs');\nconst MDCTab = mdcTabs.MDCTab;\nconst MDCTabFoundation = mdcTabs.MDCTabFoundation;\n\nconst MDCTabBar = mdcTabs.MDCTabBar;\nconst MDCTabBarFoundation = mdcTabs.MDCTabBarFoundation;\n```\n\n##### AMD\n\n```javascript\nrequire(['path/to/@material/tabs'], mdcTabs => {\n  const MDCTab = mdcTabs.MDCTab;\n  const MDCTabFoundation = mdcTabs.MDCTabFoundation;\n\n  const MDCTabBar = mdcTabs.MDCTabBar;\n  const MDCTabBarFoundation = mdcTabs.MDCTabBarFoundation;\n});\n```\n\n##### Global\n\n```javascript\nconst MDCTab = mdc.tabs.MDCTab;\nconst MDCTabFoundation = mdc.tabs.MDCTabFoundation;\n\nconst MDCTabBar = mdc.tabs.MDCTabBar;\nconst MDCTabBarFoundation = mdc.tabs.MDCTabBarFoundation;\n```\n\n#### Automatic Instantiation\n\nIf you do not care about retaining the component instance for the tabs, simply\ncall `attachTo()` and pass it a DOM element.\n\n```javascript\nmdc.tabs.MDCTabBar.attachTo(document.querySelector('#my-mdc-tab-bar'));\n```\n\n#### Manual Instantiation\n\nTabs can easily be initialized using their default constructors as well, similar\nto `attachTo`. This process involves a factory to create an instance of MDCTab\nfrom each tab Element inside of the `mdc-tab-bar` node during the initialization phase\nof `MDCTabBar`, e.g.:\n\n```html\n<nav id=\"my-mdc-tab-bar\" class=\"mdc-tab-bar\">\n  <a class=\"mdc-tab mdc-tab--active\" href=\"#one\">Item One</a>\n  <a class=\"mdc-tab\" href=\"#two\">Item Two</a>\n  <a class=\"mdc-tab\" href=\"#three\">Three</a>\n  <span class=\"mdc-tab-bar__indicator\"></span>\n</nav>\n```\n\n```javascript\nimport {MDCTabBar, MDCTabBarFoundation} from '@material/tabs';\n\nconst tabBar = new MDCTabBar(document.querySelector('#my-mdc-tab-bar'));\n```\n\n\n### Using the JavaScript Tab Bar Scroller Component\n\n`mdc-tab-bar-scroller` ships with a Component/Foundation combo which wraps instances of `mdc-tab-bar`. `mdc-tab-bar-scroller` uses its `initialize()` method call a factory function which gathers and instantiates any tab bar elements that are children of the `mdc-tab-bar-scroller` root element.\n\nThe anatomy of `mdc-tab-bar-scroller` includes an instance of `mdc-tab-bar`, RTL-aware forward and back indicators which, when actioned on, move the tab bar left and right, and a scroll frame. The scroll frame is the parent element of the tab bar, and serves to mask the tabs in the tab bar when they overflow the available width.\n\n\n\n#### Including in code\n\n##### ES2015\n\n```javascript\nimport {MDCTab, MDCTabFoundation} from '@material/tabs';\nimport {MDCTabBar, MDCTabBarFoundation} from '@material/tabs';\nimport {MDCTabBarScroller, MDCTabBarFoundationScroller} from '@material/tabs';\n```\n\n##### CommonJS\n\n```javascript\nconst mdcTabs = require('@material/tabs');\nconst MDCTab = mdcTabs.MDCTab;\nconst MDCTabFoundation = mdcTabs.MDCTabFoundation;\n\nconst MDCTabBar = mdcTabs.MDCTabBar;\nconst MDCTabBarFoundation = mdcTabs.MDCTabBarFoundation;\n\nconst MDCTabBarScroller = mdcTabs.MDCTabBarScroller;\nconst MDCTabBarScrollerFoundation = mdcTabs.MDCTabBarScrollerFoundation;\n```\n\n##### AMD\n\n```javascript\nrequire(['path/to/@material/tabs'], mdcTabs => {\n  const MDCTab = mdcTabs.MDCTab;\n  const MDCTabFoundation = mdcTabs.MDCTabFoundation;\n\n  const MDCTabBar = mdcTabs.MDCTabBar;\n  const MDCTabBarFoundation = mdcTabs.MDCTabBarFoundation;\n\n  const MDCTabBarScroller = mdcTabs.MDCTabBarScroller;\n  const MDCTabBarScrollerFoundation = mdcTabs.MDCTabBarScrollerFoundation;\n});\n```\n\n##### Global\n\n```javascript\nconst MDCTab = mdc.tabs.MDCTab;\nconst MDCTabFoundation = mdc.tabs.MDCTabFoundation;\n\nconst MDCTabBar = mdc.tabs.MDCTabBar;\nconst MDCTabBarFoundation = mdc.tabs.MDCTabBarFoundation;\n\nconst MDCTabBarScroller = mdc.tabs.MDCTabBarScroller;\nconst MDCTabBarScrollerFoundation = mdc.tabs.MDCTabBarScrollerFoundation;\n```\n\n#### Automatic Instantiation\n\nIf you do not care about retaining the component instance for the tabs, simply\ncall `attachTo()` and pass it a DOM element.\n\n```javascript\nmdc.tabs.MDCTabBarScroller.attachTo(document.querySelector('#my-mdc-tab-bar-scroller'));\n```\n\n#### Manual Instantiation\n\nTab Bar Scrollers can easily be initialized using their default constructors as well, similar\nto `attachTo`. This process involves a factory to create an instance of `MDCTabBar`\nfrom the `mdc-tab-bar` Element inside of the `mdc-tab-bar-scroller` node during the initialization phase\nof `MDCTabBarScroller`, e.g.:\n\n```html\n<div id=\"my-mdc-tab-bar-scroller\" class=\"mdc-tab-bar-scroller\">\n  <div class=\"mdc-tab-bar-scroller__indicator mdc-tab-bar-scroller__indicator--back\">\n    <a class=\"mdc-tab-bar-scroller__indicator__inner material-icons\" href=\"#\" aria-label=\"scroll back button\">\n      navigate_before\n    </a>\n  </div>\n  <div class=\"mdc-tab-bar-scroller__scroll-frame\">\n    <nav id=\"my-scrollable-tab-bar\" class=\"mdc-tab-bar mdc-tab-bar-scroller__scroll-frame__tabs\">\n      <a class=\"mdc-tab mdc-tab--active\" href=\"#one\">Item One</a>\n      <a class=\"mdc-tab\" href=\"#two\">Item Two</a>\n      <a class=\"mdc-tab\" href=\"#three\">Item Three</a>\n      <a class=\"mdc-tab\" href=\"#four\">Item Four</a>\n      <a class=\"mdc-tab\" href=\"#five\">Item Five</a>\n      <a class=\"mdc-tab\" href=\"#six\">Item Six</a>\n      <a class=\"mdc-tab\" href=\"#seven\">Item Seven</a>\n      <a class=\"mdc-tab\" href=\"#eight\">Item Eight</a>\n      <a class=\"mdc-tab\" href=\"#nine\">Item Nine</a>\n      <span class=\"mdc-tab-bar__indicator\"></span>\n    </nav>\n  </div>\n  <div class=\"mdc-tab-bar-scroller__indicator mdc-tab-bar-scroller__indicator--forward\">\n    <a class=\"mdc-tab-bar-scroller__indicator__inner material-icons\" href=\"#\" aria-label=\"scroll forward button\">\n      navigate_next\n    </a>\n  </div>\n</div>\n```\n\n```javascript\nimport {MDCTabBarScroller, MDCTabBarScrollerFoundation} from '@material/tabs';\n\nconst tabBarScroller = new MDCTabBarScroller(document.querySelector('#my-mdc-tab-bar-scroller'));\n```\n\nTab Bar Scrollers can also instantiate any `mdc-tab-bar` from a DOM element on the fly using a built in factory function:\n\n```js\nimport {MDCTabBarScroller, MDCTabBarScrollerFoundation} from '@material/tabs';\n\nconst tabBarEl = document.querySelector('#my-mdc-tab-bar');\nconst scrollerEl = document.querySelector('#my-mdc-tab-bar-scroller');\n\nconst tabBarScroller = new MDCTabBarScroller(scrollerEl, undefined, tabBarEl);\n```\nThis will create an instance of MDC Tab Bar during the initialization phase of Tab Bar Scroller.\n\n\n## Tab\n\n### Tab component API\n\n#### Properties\n\n| Property Name | Type | Description |\n| --- | --- | --- |\n| `computedWidth` | `number` | _(read-only)_ The width of the tab. |\n| `computedLeft` | `number` | _(read-only)_ The left offset of the tab. |\n| `isActive` | `boolean` | Whether or not the tab is active. Setting this makes the tab active. |\n| `preventDefaultOnClick` | `boolean` | Whether or not the tab will call `preventDefault()` on an event. Setting this makes the tab call `preventDefault()` on events. |\n\n### Tab Events\n\n#### MDCTab:selected\n\nBroadcast when a user actions on the tab.\n\n\n### Using the Foundation Class\n\nMDC Tab ships with an `MDCTabFoundation` class that external frameworks and libraries can\nuse to integrate the component. As with all foundation classes, an adapter object must be provided.\n\n\n### Adapter API\n\n| Method Signature | Description |\n| --- | --- |\n| `addClass(className: string) => void` | Adds a class to the root element. |\n| `removeClass(className: string) => void` | Removes a class from the root element. |\n| `registerInteractionHandler(evt: string, handler: EventListener) => void` | Adds an event listener to the root element, for the specified event name. |\n| `deregisterInteractionHandler(evt: string, handler: EventListener) => void` | Removes an event listener from the root element, for the specified event name. |\n| `getOffsetWidth() => number` | Return the width of the tab |\n| `getOffsetLeft() => number` | Return distance between left edge of tab and left edge of its parent element |\n| `notifySelected() => {}` | Broadcasts an event denoting that the user has actioned on the tab |\n\n\n### The full foundation API\n\n#### MDCTabFoundation.getComputedWidth() => number\n\nReturn the computed width for tab.\n\n#### MDCTabFoundation.getComputedLeft() => number\n\nReturn the computed left offset for tab.\n\n#### MDCTabFoundation.isActive() => boolean\n\nReturn true if tab is active.\n\n#### MDCTabFoundation.setActive(isActive = false) => void\n\nSet tab to active. If `isActive` is true, adds the active modifier class, otherwise removes it.\n\n#### MDCTabFoundation.preventsDefaultOnClick() => boolean\n\nReturn true if the tab prevents the default click action\n\n#### MDCTabFoundation.setPreventDefaultOnClick(preventDefaultOnClick = false) => void\n\nSets tabs `preventDefaultOnClick` property to the value of the `preventDefaultOnClick` argument passed.\n\n#### MDCTabFoundation.measureSelf() => void\n\nSets `computedWidth_` and `computedLeft_` for a tab.\n\n\n## Tab Bar\n\n### Tab Bar component API\n\n#### Properties\n\n| Property Name | Type | Description |\n| --- | --- | --- |\n| `tabs` | `MDCTab[]` | _(read-only)_ An array of the tab bar's instances of MDC Tab. |\n| `activeTab` | `MDCTab` | The currently active tab. Setting this makes the tab active. |\n| `activeTabIndex` | `number` | The index of the currently active tab. Setting this makes the tab at the given index active. |\n\n#### MDCTabBar.layout() => void\n\nProxies to the foundation's `layout()` method.\n\n### Tab Bar Events\n\n#### MDCTabBar:change\n\nBroadcast when a user actions on a tab, resulting in a change in the selected tab.\n\n\n### Using the Foundation Class\n\n`mdc-tab-bar` ships with an `MDCTabBarFoundation` class that external frameworks\nand libraries can use to integrate the component. As with all foundation\nclasses, an adapter object must be provided.\n\n\n### Adapter API\n\n| Method Signature | Description |\n| --- | --- |\n| `addClass(className: string) => void` | Adds a class to the root element. |\n| `removeClass(className: string) => void` | Removes a class from the root element. |\n| `bindOnMDCTabSelectedEvent() => void` | Adds `MDCTab:selected` event listener to root |\n| `unbindOnMDCTabSelectedEvent() => void` | Removes `MDCTab:selected` event listener from root |\n| `registerResizeHandler(handler: EventListener) => void` | Adds an event listener to the root element, for a resize event. |\n| `deregisterResizeHandler(handler: EventListener) => void` | Removes an event listener from the root element, for a resize event. |\n| `getOffsetWidth() => number` | Returns width of root element. |\n| `setStyleForIndicator(propertyName: string, value: string) => void` | Sets style property for indicator. |\n| `getOffsetWidthForIndicator() => number` | Returns width of indicator. |\n| `notifyChange(evtData: Object) => void` | Emits `MDCTabBar:change` event, passes evtData. |\n| `getNumberOfTabs() => number` | Returns number of tabs in MDC Tabs instance. |\n| `getActiveTab() => MDCTab` | Returns the instance of MDCTab that is currently active. |\n| `isTabActiveAtIndex(index: number) => boolean` | Returns true if tab at index is active. |\n| `setTabActiveAtIndex(index: number) => void` | Sets tab active at given index. |\n| `isDefaultPreventedOnClickForTabAtIndex(index: number) => boolean` | Returns true if tab does not prevent default click action. |\n| `setPreventDefaultOnClickForTabAtIndex(index: number, preventDefaultOnClick: boolean)` | Sets preventDefaultOnClick for tab at given index |\n| `measureTabAtIndex(index: number) => void` | sets measurements (width, left offset) for tab at given index. |\n| `getComputedWidthForTabAtIndex(index: number) => number` | Returns width of tab at given index. |\n| `getComputedLeftForTabAtIndex(index: number) => number` | Returns left offset of tab at given index. |\n\n\n### The full foundation API\n\n#### MDCTabBarFoundation.layout() => void\n\nSets layout for the Tab Bar component.\n\n#### MDCTabBarFoundation.getActiveTabIndex() => number\n\nReturns index of currently active tab\n\n#### MDCTabBarFoundation.getComputedWidth() => number\n\nReturns the width of the element containing the tabs.\n\n#### MDCTabBarFoundation.switchToTabAtIndex(index, shouldNotify) => void\n\nUpdates the active tab to be the tab at the given index, emits `MDCTabBar:change` if `shouldNotify` is true.\n\n#### MDCTabBarFoundation.getActiveTabIndex() => number\n\nReturns the index of the currently active tab.\n\n\n## Tab Bar Scroller\n\n### Tab Bar Scroller component API\n\n#### Properties\n\n| Property Name | Type | Description |\n| --- | --- | --- |\n| `tabBar` | `MDCTabBar` | _(read-only)_ The scroller's tab bar. |\n\n#### MDCTabBarScroller.layout() => void\n\nProxies to the foundation's `layout()` method.\n\n### Using the Foundation Class\n\nMDC Tab Bar Scroller ships with an `MDCTabBarScrollerFoundation` class that external frameworks and libraries can use to integrate the component. As with all foundation classes, an adapter object must be provided.\n\n\n### Adapter API\n\n| Method Signature | Description |\n| --- | --- |\n| `addClass(className: string) => void` | Adds a class to the root element. |\n| `removeClass(className: string) => void` | Removes a class from the root element. |\n| `eventTargetHasClass(target: HTMLElement, className: string) => boolean` | Returns true if target has a given class name |\n| `addClassToForwardIndicator(className: string) => void` | Adds a given class to the forward indicator |\n| `removeClassFromForwardIndicator(className: string) => void` | Removes a given class from the forward indicator |\n| `addClassToBackIndicator(className: string) => void` | Adds a given class to the back indicator |\n| `removeClassFromBackIndicator(className: string) => void` | Removes a given class from the back indicator |\n| `isRTL() => boolean` | Returns true if in RTL context. False otherwise. |\n| `registerBackIndicatorClickHandler(handler: EventListener) => void` | Registers an event handler to be called when a `click` event happens on the back indicator |\n| `deregisterBackIndicatorClickHandler(handler: EventHandler) => void` | Deregisters an event handler from a `click` event happening on the back indicator |\n| `registerForwardIndicatorClickHandler(handler: EventHandler) => void` | Registers an event handler to be called when a `click` event happens on the forward indicator |\n| `deregisterForwardIndicatorClickHandler(handler: EventHandler) => void` | Deregisters an event handler from a `click` event happening on the forward indicator. |\n| `registerCapturedInteractionHandler(evt: string, handler: EventHandler) => void` | Registers an event handler to be called when a `focus`, `touchstart`, or `mousedown` event happens on the root of the component. These events gets dispatched to the listener during the capture phase. They also govern the scrolling behavior when tabs are tabbed to or actioned on. |\n| `deregisterCapturedInteractionHandler(evt: string, handler: EventHandler) => void` | Deregisters an event handler from a `focus`, `touchstart`, or `mousedown` events happening on the root of the component |\n| `registerWindowResizeHandler(handler: EventHandler) => void` | Registers an event handler to be called when a `resize` event happens on the `window` |\n| `deregisterWindowResizeHandler(handler: EventHandler) => void `| Deregisters an event handler from a `resize` event happening on the `window` |\n| `getNumberOfTabs() => number` | Returns the number of tabs in the scroller's tab bar |\n| `getComputedWidthForTabAtIndex(index: number) => number` | Returns the width of a tab at the given index |\n| `getComputedLeftForTabAtIndex(index: number) => number` | Returns the left offset of a tab at the given index |\n| `getOffsetWidthForScrollFrame() => number` | Returns the width of the scroll frame. This is the width of the visible tabs. |\n| `getScrollLeftForScrollFrame() => number` | Returns the `scrollLeft` value of the scroll frame |\n| `setScrollLeftForScrollFrame(scrollLeftAmount: number) => void` | Sets the value of `scrollLeft` for the scroll frame. |\n| `getOffsetWidthForTabBar() => number` | Returns the width of the _entire_ tab bar, including that which is occluded. |\n| `setTransformStyleForTabBar(value: string) => void` | Sets the `translateX` `transform` property for the tab bar. |\n| `getOffsetLeftForEventTarget(target: HTMLElement) => number`| Returns the left offset of a given element. |\n| `getOffsetWidthForEventTarget(target: HTMLElement) => number` | Returns the width of a given element. |\n\n\n### The full foundation API\n\n#### MDCTabBarScrollerFoundation.scrollBack() => void\n\nScrolls the tab bar such that the leftmost tab traverses the scroll frame and becomes the rightmost tab, potentially being partially, but not fully, occluded.\n\n#### MDCTabBarScrollerFoundation.scrollForward() => void\n\nScrolls the tab bar such that the rightmost tab traverses the scroll frame and becomes the leftmost tab. This tabs left offset will line up with the left edge of the scroll frame, and never be partially or fully occluded.\n\n> **NOTE:** Due to a quirk in event behavior, we allow the rightmost tab to be partially occluded even when tabbed to because clicking on such an element would shift the frame on the `focus` event. This would result in a scenario where the ripple persists and the intended tab would not be selected due to the tab bar shifting before the `mouseup` or `click` events get dispatched.\n\n#### MDCTabBarScrollerFoundation.scrollToTabAtIndex(index: number) => void\n\nScrolls the tab bar such that the tab at the index provided traverses the scroll frame and becomes the leftmost tab.\n\n#### MDCTabBarScrollerFoundation.layout() => void\n\nIf the tab bar is overflowing its available width, this method will reset the back and forward indicators to the correct states (visible/hidden) based on the new width.\n","readmeFilename":"README.md","bugs":{"url":"https://github.com/material-components/material-components-web/issues"},"homepage":"https://github.com/material-components/material-components-web#readme","_id":"@material/tabs@0.39.0-0","_npmVersion":"6.4.0","_nodeVersion":"8.11.1","_npmUser":{"name":"kfranqueiro","email":"kenneth.franqueiro@gmail.com"},"dist":{"integrity":"sha512-VMWDeMA7J3SdjKYqQbyayG6aXhU8PAgLLLyMXAXxtCE5fdu8xjj+5RFuFo28Z9F7AJ5VVBEqK1WwOrlmgjS/GA==","shasum":"e96e4708b881601bf1eda72bc1ecc9b4a092b371","tarball":"https://registry.npmjs.org/@material/tabs/-/tabs-0.39.0-0.tgz","fileCount":23,"unpackedSize":265241,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJbdZVICRA9TVsSAnZWagAAf3EP/iwg9qAOtmBUAe4iX1rh\nLBgLFJmm0kFHG8Vdr89JXsPP58AJh/qmSpa1C/JzdzgHZcUhNn6T6qSYBiOX\nnpOhJjbcHMVs1p3BiMwFWK7Hkp8915vOQZaCa+t7WKBNI65dhtUj+BueTtUU\nt4n4yMkAAjuITiprETnO1yppbXM2ecliw0/zvGwap0dElVjfSNN0LY+vipwT\nqWA5pLuLBqngYmcblUxTeak5JkKaZ7mo+SJhcGeagMB/fKdhYpvifswNY9T1\n+CzbSEUmoqvHIrX85msAKxe+ZnfQIyEgVGMZbrPAILfmciQTQ+D7GpPLdU6A\nBEZW99W9VyaUWyGDGsoCrQpS9IAArA6ZNGyaDi/IMO/tM7aEquEergEqAshW\nSQSwVpnKdLhm6M5hYDYOyZ4M9KYtWQUCN4Khm+FUkl8sLYW3AvQkvpMVyytK\nxYPB1cqlnflkwyoE9ANxQvj3wlZhSQW9cX8ucvmXIT0mLdfUKS6CnmNRFPcP\nZFae/t8yzYo+xF8oikhiQYeoaeXHe7BqpBG/KQ/6M7uejLfLzsON6SJAxwOX\n/4cj9KIDXsBOMSZKITZlN4Cbe/UA55f97Ybx4T2wO1yWUL5tQ+qN3YhUYSIW\nQPlsU+/i2fRDUB/I8C82T+oLH5aug7IxpsrN5OHff+BxX0vA3ipy9Nx0auzP\nLiLf\r\n=OTQo\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIEHSqifHqdbhuMezBVCwv1sqhBap1qgUnE7QhVJvnhjbAiEA6K4Az3izxOh9MppweOozxCYozS0HzbqcK83dZ0HK/QI="}]},"maintainers":[{"email":"abhiomkar@gmail.com","name":"abhiomkar"},{"email":"acdvorak@gmail.com","name":"acdvorak"},{"email":"andrey.prigogin@gmail.com","name":"aprigogin"},{"email":"dfreedm2@gmail.com","name":"azakus"},{"email":"bicknellr@gmail.com","name":"bicknellr"},{"email":"bonniez@google.com","name":"bonniez"},{"email":"obrien.test@gmail.com","name":"bwobrien"},{"email":"kenneth.franqueiro@gmail.com","name":"kfranqueiro"},{"email":"lynnjepsen@google.com","name":"lynnjepsen"},{"email":"lynnjepsen+npm@google.com","name":"material-admin"},{"email":"mattgoo@gmail.com","name":"moog16"},{"email":"prodee@google.com","name":"patrickrodee"},{"email":"williamernest@google.com","name":"williamernest"}],"directories":{},"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/tabs_0.39.0-0_1534432584488_0.10671131604591522"},"_hasShrinkwrap":false},"0.39.0":{"name":"@material/tabs","version":"0.39.0","description":"The Material Components for the web tabs component","license":"MIT","repository":{"type":"git","url":"git+https://github.com/material-components/material-components-web.git"},"keywords":["material components","material design","tabs"],"publishConfig":{"access":"public"},"dependencies":{"@material/animation":"^0.39.0","@material/base":"^0.39.0","@material/ripple":"^0.39.0","@material/rtl":"^0.39.0","@material/theme":"^0.39.0","@material/typography":"^0.39.0"},"bugs":{"url":"https://github.com/material-components/material-components-web/issues"},"homepage":"https://github.com/material-components/material-components-web#readme","_id":"@material/tabs@0.39.0","_npmVersion":"6.3.0","_nodeVersion":"9.4.0","_npmUser":{"name":"williamernest","email":"williamernest@google.com"},"dist":{"integrity":"sha512-2Twn8/KwX+vIDWryEa/mhMhSlCUUWC0RTR+1k0WCPz9dZyvSI5aoWDPBDPifUhXywacsgZop3UoIHScJOnsx+A==","shasum":"3c536e79e703c29f8f9724f53850e1473cd6ce32","tarball":"https://registry.npmjs.org/@material/tabs/-/tabs-0.39.0.tgz","fileCount":23,"unpackedSize":286201,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJbhDelCRA9TVsSAnZWagAAEdYQAJ3DtGTI88Xj6W1LgDTZ\nkMUs9Yxmdst6lK9aOdK9XLIUJn88+1ai68xZnIFZ09163gmIAjMpY4E8zVNH\nxwTvxkYqBbZUKmCWty6ML4Or6fYH09+qdgVLmqsT25/CyiNXw1RbyqFnNRrY\nIKiqNw/2Agvo1W9td+RutVZPANGKD7T22+oYvzlzlwF6KwEqtMf+yvoxAZT5\n2JEilmEMATkEyJen1APR+70AGesKK/z+p1CJRmmAl0Nb5JZsMkLm90qN93vA\n2HhF2gGNUm5lFDWfA6jHEwgYi8nB7ogjlLucONBTDO9uHzWZqOIWAsuqUmim\nte6XVIwzhATV0CymHP5y664IvO/xtctkGI77ArsMc17TeMdAfmUWIBtC2Vmk\nbyHnuvGZbE03KgIh772RdjWikejnAMsWF2rbNdDwziuDbPD1cWghgmJwvBIo\nrOLoV/BFC1vrfDSWuuxlGAXcyALYh8Hnp3/WalYanSb1d1ppxRDDmTa3Gcd/\n4ac0BQykP383YusEF4LqTPyy74SN55ASvuUxf9nCM9Rp54x3ZE6a8i3a2UVJ\n3TpYWU1+QBU3EgcXIO+HIu0VQRD7fl69/aetPIxDckAWcNdXvqtlprDKgEb/\nDwElK/tA5b+8t3c87kZXFdmqoQ8XYetxyOsurmp+TFugrQbLRLaBkKI8oS6H\nIpHy\r\n=JGr0\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIGMEOcCAKgNdrSSdoqZpzFe6dVUsoFah/aWCCryZh6OEAiEArvb/GYpzUTjuAKdUfseWAqTnDOKVT5u1G1vBeZ1GZe8="}]},"maintainers":[{"email":"abhiomkar@gmail.com","name":"abhiomkar"},{"email":"acdvorak@gmail.com","name":"acdvorak"},{"email":"andrey.prigogin@gmail.com","name":"aprigogin"},{"email":"dfreedm2@gmail.com","name":"azakus"},{"email":"bicknellr@gmail.com","name":"bicknellr"},{"email":"bonniez@google.com","name":"bonniez"},{"email":"obrien.test@gmail.com","name":"bwobrien"},{"email":"kenneth.franqueiro@gmail.com","name":"kfranqueiro"},{"email":"lynnjepsen@google.com","name":"lynnjepsen"},{"email":"lynnjepsen+npm@google.com","name":"material-admin"},{"email":"mattgoo@gmail.com","name":"moog16"},{"email":"prodee@google.com","name":"patrickrodee"},{"email":"williamernest@google.com","name":"williamernest"}],"directories":{},"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/tabs_0.39.0_1535391652753_0.9043990848394521"},"_hasShrinkwrap":false},"0.39.1":{"name":"@material/tabs","version":"0.39.1","description":"The Material Components for the web tabs component","license":"MIT","repository":{"type":"git","url":"git+https://github.com/material-components/material-components-web.git"},"keywords":["material components","material design","tabs"],"publishConfig":{"access":"public"},"dependencies":{"@material/animation":"^0.39.0","@material/base":"^0.39.0","@material/ripple":"^0.39.1","@material/rtl":"^0.39.1","@material/theme":"^0.39.1","@material/typography":"^0.39.0"},"bugs":{"url":"https://github.com/material-components/material-components-web/issues"},"homepage":"https://github.com/material-components/material-components-web#readme","_id":"@material/tabs@0.39.1","_npmVersion":"6.3.0","_nodeVersion":"9.4.0","_npmUser":{"name":"williamernest","email":"williamernest@google.com"},"dist":{"integrity":"sha512-5QP2E2KoCoqVbeEaConXOC3O7NyOWc9WAe0vKM3PbqF9eF6oosMh8R5Ts2CN+mI3/0LwLvZ9zoFKC3qVaPGh+w==","shasum":"db6a2c5240d2892fcb4379d770048c325e060c8f","tarball":"https://registry.npmjs.org/@material/tabs/-/tabs-0.39.1.tgz","fileCount":23,"unpackedSize":286201,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJbibTuCRA9TVsSAnZWagAAEGsP/1er5za6wCz5vVj8Ltta\noD5f98hXEMtYVu2jAnVwsqja3+hyeCi13woURDOdDlYtvPsRiCZU+wGLbTn4\n8C0bD00jo7Jr5kVjGL6zLsu1kp9kGXHoWjpWIscJBNtIzO/Lg19XOGjgs72w\n/rfcHGQvZvwKzJ1EZX++SnnL5Lc2GzNl5FOyMkY0bf0FHCpbeafn/MpGSgsa\nJDL6Rs4t4qbvEgo5VQr8WgaleC2A9sXyk+yOZQUY1g5YUT6aWdpJY+hZ+8Ly\nJgsOsFKyzAGn30jrBXwlLLAaD1TXfKdUAH01Ze7L9WUUNYhsyAgm0ozbmjsF\nbApnD6+GCH2lfZxCMHBOh3vMHMvqmPfeH51THSXzoFi/ZpZtNMDe9t++N+K7\n7CdtfOJPh7e7VXnWwThxvZQ6wXdfJGMr0gHJ9Vc20GymFQ9F++esZTC0oU0y\nOC6xDWm4unUSj8o4/F/4a/XGd2H2Sh7eoi1nYkWm1aWl0kGy1voNVHJcIJ8H\nTuw4Ehkx9rybIpDSMKtNfr4IsW/Jga/QfkQMzEgkoPU8E8MLK1877o4WZa40\n7vNhGudIdOmcNZ90xh6+OgUCK9BBuJnfVPvzhoPRIAE0zbCFwU5lyYpxWBwm\nAD8yfIrVXtHMffqEgNL+Q4wbZBH2A0DO+QSx02c1KpLw+yjAw6U/NFcSfT6l\nPEy9\r\n=9rge\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIGnEmb5HoGTj1coM7/Hb3NePA50ssY+736LLIiKv8LR8AiEAkERYXw/GHjVeZOr+NyTjRjCS6ZHuxDaQJydUVSpRd8I="}]},"maintainers":[{"email":"abhiomkar@gmail.com","name":"abhiomkar"},{"email":"acdvorak@gmail.com","name":"acdvorak"},{"email":"andrey.prigogin@gmail.com","name":"aprigogin"},{"email":"dfreedm2@gmail.com","name":"azakus"},{"email":"bicknellr@gmail.com","name":"bicknellr"},{"email":"bonniez@google.com","name":"bonniez"},{"email":"obrien.test@gmail.com","name":"bwobrien"},{"email":"kenneth.franqueiro@gmail.com","name":"kfranqueiro"},{"email":"lynnjepsen@google.com","name":"lynnjepsen"},{"email":"lynnjepsen+npm@google.com","name":"material-admin"},{"email":"mattgoo@gmail.com","name":"moog16"},{"email":"prodee@google.com","name":"patrickrodee"},{"email":"williamernest@google.com","name":"williamernest"}],"directories":{},"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/tabs_0.39.1_1535751405739_0.8349713824590803"},"_hasShrinkwrap":false},"0.39.2":{"name":"@material/tabs","version":"0.39.2","description":"The Material Components for the web tabs component","license":"MIT","repository":{"type":"git","url":"git+https://github.com/material-components/material-components-web.git"},"keywords":["material components","material design","tabs"],"publishConfig":{"access":"public"},"dependencies":{"@material/animation":"^0.39.0","@material/base":"^0.39.0","@material/ripple":"^0.39.2","@material/rtl":"^0.39.1","@material/theme":"^0.39.1","@material/typography":"^0.39.0"},"bugs":{"url":"https://github.com/material-components/material-components-web/issues"},"homepage":"https://github.com/material-components/material-components-web#readme","_id":"@material/tabs@0.39.2","_npmVersion":"6.3.0","_nodeVersion":"9.4.0","_npmUser":{"name":"williamernest","email":"williamernest@google.com"},"dist":{"integrity":"sha512-pVYrKw59WKPBZTd/5dFtZPJjBxxe9E7OANExstIk3J0dxx89Usm0ouorkhxxU4bwPmmmAM12wBVSRdKIoTzjfQ==","shasum":"a98b27c153c85eaad50cbc58ff72c394d436cdaa","tarball":"https://registry.npmjs.org/@material/tabs/-/tabs-0.39.2.tgz","fileCount":23,"unpackedSize":286570,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJbl/N4CRA9TVsSAnZWagAAsXoQAIolpGzTI9E+rMguyB2X\nAxwY01p1KeaIYVd991sE5Ym6O81Fc4VwA/CqXwf/6lsV4qupRMSky+ZATY82\n6M5IWqA9Gatv5e6xo1s3VgAUXw+gWpx56HgYF+k5AkS3Lf6wZPBxs69Db3gl\nIuVGwEYQP59u7F1sSq2clNLfxPkoj4RF9nLEjrnga/VHbf6H7n7PADfFCGkH\nlXiYcnH2KK/jnLiGS3m6FgUSEov4YpXFy4iXvjDtjsexd1uKazlKyOzl24V+\neSjQabKip28Fc9lD3w/GP6cnlFvZdgi/ThWemk5YNS1gefDNrwWF8mZ+s4ET\nMgMQftyFdnDGdzpLF0uoA27qk0VQ/R07hDVPfON0eSyTVtPb356EXE7Jx9IR\n9Sn+oNDidalio4q3HHl4afdp46b+7HA20EIplN/Lq/tKsQaHwLRrmJ+y1CVD\newhayVdpPzpdtWypqVaAUCw0adrxPqu0g1R7xj0FZXeAEcn5MQojAgc0QkTt\naOMfQZaEq/sNWVT6GhhbGfM+C0QlLO1ZvIPzT9C2PWvfofhaB8ssC8Sfw9mH\n+pKsuchluTRSxLB6yRqgYA/xFehx9nD/WvvUu5mW0qWVwRjJCM0THYxyA9Wm\nI4gm/Yl41SE0QEvJEx6mYJj66oNVSWuo9hzyOHZcp2ceDEN2o0MW4p48w4nl\nxU8d\r\n=RK+3\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEQCIG07Fn9EA7OLrnVHnnowEli3x888OGr4aHy90FaLQEBLAiBLHlK3ctzETWtqDeu9Bb7YveckJXv4H+DtVAWP/h74vg=="}]},"maintainers":[{"email":"abhiomkar@gmail.com","name":"abhiomkar"},{"email":"acdvorak@gmail.com","name":"acdvorak"},{"email":"andrey.prigogin@gmail.com","name":"aprigogin"},{"email":"dfreedm2@gmail.com","name":"azakus"},{"email":"bicknellr@gmail.com","name":"bicknellr"},{"email":"bonniez@google.com","name":"bonniez"},{"email":"obrien.test@gmail.com","name":"bwobrien"},{"email":"kenneth.franqueiro@gmail.com","name":"kfranqueiro"},{"email":"lynnjepsen@google.com","name":"lynnjepsen"},{"email":"lynnjepsen+npm@google.com","name":"material-admin"},{"email":"mattgoo@gmail.com","name":"moog16"},{"email":"prodee@google.com","name":"patrickrodee"},{"email":"williamernest@google.com","name":"williamernest"}],"directories":{},"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/tabs_0.39.2_1536684920119_0.4654292273558771"},"_hasShrinkwrap":false},"0.39.3":{"name":"@material/tabs","version":"0.39.3","description":"The Material Components for the web tabs component","license":"MIT","repository":{"type":"git","url":"git+https://github.com/material-components/material-components-web.git"},"keywords":["material components","material design","tabs"],"publishConfig":{"access":"public"},"dependencies":{"@material/animation":"^0.39.0","@material/base":"^0.39.0","@material/ripple":"^0.39.3","@material/rtl":"^0.39.1","@material/theme":"^0.39.1","@material/typography":"^0.39.0"},"bugs":{"url":"https://github.com/material-components/material-components-web/issues"},"homepage":"https://github.com/material-components/material-components-web#readme","_id":"@material/tabs@0.39.3","_npmVersion":"6.3.0","_nodeVersion":"9.4.0","_npmUser":{"name":"williamernest","email":"williamernest@google.com"},"dist":{"integrity":"sha512-FpAiZXddf3AR/Mvpq0yZM2vetcsUML+SZI9RhHLvbN+pXfQLqkneJuTPvQ49OYpMx45wxsGsFaN8wKinXDfiuw==","shasum":"317c7df8ba247ba882d563a8fd818634a4ed3acc","tarball":"https://registry.npmjs.org/@material/tabs/-/tabs-0.39.3.tgz","fileCount":23,"unpackedSize":286570,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJbl/kSCRA9TVsSAnZWagAAFTMP/1d0XTS/YD3VaBSqOTMM\nVwJ+En9dvYVSWWePV4P1iyFy6oguW+WywM5Fg3IBILbE4PUj7BWVbxWREgXU\n8AmraYAwsZ8947jkKDFYH/mdqrv85kLudMVXeOs/jpvFri6PEtl80q38kEDh\ndruF6GuIeSXuh+Blw1l+rz818ezFSdfst92C57eKkW2KTKO1SLdihJGWk0wv\nKw7Do+JbzwAMNh72RALebUUJbEes0ts7nUTRgRyRHCWuuExp+1heXySH6wbU\nEWA4VEAm2JOHbNhL7zeTSM8iiQaNV5LRy7fIHpTv8ktMaYMR2tVvhJ6ds6jq\nWdoOIpCrO7XFj+ppPQFFYngWAaW0gDmjqeUqSLGCmsEqtuYXpgEiHbTay1nU\nfBavOh3fFVzAICrv718tkOnIyJ8/gx0E/y+ihFnyAlZOEUtHFXnp4ooBJgV0\nc34rrxVKp0j9TuOHZlb78VHHw/JtG6Lagoim8jE0LxiL3CyP27XUKrXNH6ZV\nED6BWLE3pg1Ah5uWZxWXZTW8Dv5avL4sTUnDb8jgXhx38nxcKD608igxLzQk\nakfkvZqKNthvaO2HF0Nv/7qvc97JLF9ML1IJAklCmwmEiolaS/f/TF3kOSpq\naY3V3tMmXOo5P526ijMrEh4BtK0gvOvo269tI92wF73vRer930nNMGxBkAcl\nKNVD\r\n=TDru\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIQChwfCZJnDpT7fXRhn7tTre8YyrSwR2ILCkLpOT1A/PjAIgasjDi9fz0UmMPeN3JTCKoMBX/+Tk/kmRfvijezDoC1U="}]},"maintainers":[{"email":"abhiomkar@gmail.com","name":"abhiomkar"},{"email":"acdvorak@gmail.com","name":"acdvorak"},{"email":"andrey.prigogin@gmail.com","name":"aprigogin"},{"email":"dfreedm2@gmail.com","name":"azakus"},{"email":"bicknellr@gmail.com","name":"bicknellr"},{"email":"bonniez@google.com","name":"bonniez"},{"email":"obrien.test@gmail.com","name":"bwobrien"},{"email":"kenneth.franqueiro@gmail.com","name":"kfranqueiro"},{"email":"lynnjepsen@google.com","name":"lynnjepsen"},{"email":"lynnjepsen+npm@google.com","name":"material-admin"},{"email":"mattgoo@gmail.com","name":"moog16"},{"email":"prodee@google.com","name":"patrickrodee"},{"email":"williamernest@google.com","name":"williamernest"}],"directories":{},"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/tabs_0.39.3_1536686353399_0.06692384119175565"},"_hasShrinkwrap":false},"0.40.0":{"name":"@material/tabs","version":"0.40.0","description":"The Material Components for the web tabs component","license":"MIT","repository":{"type":"git","url":"git+https://github.com/material-components/material-components-web.git"},"keywords":["material components","material design","tabs"],"publishConfig":{"access":"public"},"dependencies":{"@material/animation":"^0.39.0","@material/base":"^0.39.0","@material/ripple":"^0.40.0","@material/rtl":"^0.39.1","@material/theme":"^0.40.0","@material/typography":"^0.39.0"},"bugs":{"url":"https://github.com/material-components/material-components-web/issues"},"homepage":"https://github.com/material-components/material-components-web#readme","_id":"@material/tabs@0.40.0","_npmVersion":"6.4.1","_nodeVersion":"10.9.0","_npmUser":{"name":"abhiomkar","email":"abhiomkar@gmail.com"},"dist":{"integrity":"sha512-6SqZ43ZFZCbQpTrkyoKHl8SLJndeU7DWuzAzrbX60uUu3re9Q78EBOAhRiHpfvmk5hkDIAxBBrqj8RHYsRSv7Q==","shasum":"17cf82098e4a5c8923c0e2cccfaeacb87553cb92","tarball":"https://registry.npmjs.org/@material/tabs/-/tabs-0.40.0.tgz","fileCount":23,"unpackedSize":286783,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJbqUKmCRA9TVsSAnZWagAA9EoP+gKeJL7eHWZOZ9OHERB5\njCh8CboJ704YpRVhD4ruWTlZsoEQmVzR2rtHaBtKmp5FuZD/QEX9452i0lrI\nyFWm8O1QE0oFIAXfwsbjaUV+hkJFLYUOFbu45HFbD6t11k8/0A+EWvrmk0mo\n8mVLV3T8Nx9FPPRyEQkMl3A9LhR4gkJoc+9IqOxIvwyjXI8m4pj6/dMAKc7e\nc1aodPUaLdV0D7X/j0tGctYiIBBA3AtjYrAnOUO/PYjvXsyu8QbBgt6ntxpp\nwVy8gGo9b5wWBD2NrVKCPcT8rAJqmRWxyBVKEwOHDpU26Fzu66IKI4lzGwxS\nbOE173H2x/tVnR0xw8pJzPEBWPYHPttoaWz0klzhOp6ayaYxJmuDjIpJ+one\nAd5N84Sl9QexPEZWRywbE8Qjqyte2DxhEcbrcxinWFuIrvB4UFhsb5rUu8p+\nGVmYOVoR0+8bjiaNKcnB6mEExeA4XDac4S8Uoo25B4i9o7CSwKAnznCVTtg4\n/tmjH/pKoJtVqVZhDWwxqdchd19rzb/kGUHs9J+6qJkwACyLk/xILVHIXWyc\nCcSQF6IYQ1VbJKuIeHdHZcUR7IXkS7IFrqUrDCH3v3HDiykw7Tmo83LuzF3a\nwbdbG8B/weOP/HXM0gckAvNTKLV3zCD44ewcl787i4+uoz1GF1G2sQ3kOmWo\nruRA\r\n=Eu5N\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEQCIHER9Hrk4cKsP99bWZ3NDxmiiFBszxQbjJVeVPpv5plPAiB0jv3Ht4lXR8ArtHVTtNvUXh5yqI00PAwUEGVYu7TLrw=="}]},"maintainers":[{"email":"abhiomkar@gmail.com","name":"abhiomkar"},{"email":"acdvorak@gmail.com","name":"acdvorak"},{"email":"andrey.prigogin@gmail.com","name":"aprigogin"},{"email":"dfreedm2@gmail.com","name":"azakus"},{"email":"bicknellr@gmail.com","name":"bicknellr"},{"email":"bonniez@google.com","name":"bonniez"},{"email":"obrien.test@gmail.com","name":"bwobrien"},{"email":"kenneth.franqueiro@gmail.com","name":"kfranqueiro"},{"email":"lynnjepsen@google.com","name":"lynnjepsen"},{"email":"lynnjepsen+npm@google.com","name":"material-admin"},{"email":"mattgoo@gmail.com","name":"moog16"},{"email":"prodee@google.com","name":"patrickrodee"},{"email":"williamernest@google.com","name":"williamernest"}],"directories":{},"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/tabs_0.40.0_1537819301395_0.8574303489349786"},"_hasShrinkwrap":false},"0.40.1":{"name":"@material/tabs","version":"0.40.1","description":"The Material Components for the web tabs component","license":"MIT","repository":{"type":"git","url":"git+https://github.com/material-components/material-components-web.git"},"keywords":["material components","material design","tabs"],"publishConfig":{"access":"public"},"dependencies":{"@material/animation":"^0.40.1","@material/base":"^0.40.1","@material/ripple":"^0.40.1","@material/rtl":"^0.40.1","@material/theme":"^0.40.1","@material/typography":"^0.40.1"},"bugs":{"url":"https://github.com/material-components/material-components-web/issues"},"homepage":"https://github.com/material-components/material-components-web#readme","_id":"@material/tabs@0.40.1","_npmVersion":"6.4.1","_nodeVersion":"9.11.1","_npmUser":{"name":"acdvorak","email":"acdvorak@gmail.com"},"dist":{"integrity":"sha512-rufp8oHvDE3CogFcha6iiX5RzakfMrgVGrpxuX47ifA3EKQ9rVr7/4mIKsArlKKVxl5JzUVYbizzTUjUg9I0DA==","shasum":"13e05e64889c0a4b43c906026b0fe4f6eb13562e","tarball":"https://registry.npmjs.org/@material/tabs/-/tabs-0.40.1.tgz","fileCount":23,"unpackedSize":287151,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJbu8QaCRA9TVsSAnZWagAAR3AQAIkXTCcll6T2KEF10i2L\nTxFVj5sIgqkjRiDCUql77S8U9ejc+3YoIBpTvnc58K7fBIkYWDgNIdOXKM3m\n0qmg666jmwJbUQAIaL/ECa4deL9lhS3HidYcIOArDGPxQF+aki4uX7tiJUyA\nlBIOV89NAFRAkFXzWw/yIx00VgHiZ3+6u4KJtcQnUrbLS9nB/RKfNwIIripA\nvGFjHFKaV/Kdyt1mtAD047Nft7CtDGAQywYl0alRFnPbwWwiE/+fP1gSt8uc\nKqH6onXzzJ7tSiUlU/yFV3sJqE/AzqbqfOHcMUHjlO/U/yP1y3ZlBlsAY8xF\njvdCXHsUxRX5+3ZGv2bBzPagR+MivxzCnyXvsdATBrs/fRTL7/caMc/iwWjh\nSp7Gs8ERKMcZXzbp7V/QNzocSsmxhn782y7uCo374CtSVorOuf9oQO1usizA\nhF5zzgzVDiHzDuuNYbEEm23yZCWVnSotDNM+QLzEHRgy3iVEh2aNjdeq6a5i\nw9Y8hY8WLeyTbnEEbsdr3D5ZiC2BbAITUAmEr5/hKJXUUSI2GUW+sAv2ooYf\nj1APw/wDNWT+tI/W//fRbKz5cQ9FVAWk6R3VVAuPI/r9Y6RI/jfSaX5LuPgz\ny8u1x7CcuQgR7ZGG86FcxSag9foSajHwVSWnm4RB5NlX4qK3PZK6CHXw8YjL\n+os6\r\n=rU5e\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIAyTK6Bqnv3rXfXrxGk0HZgNKL/kcudXJU8GmkS62EGmAiEAlKoByplz4AlkV4lJ+4f+hVYbmiNBvaeFv5VZyIg1qhk="}]},"maintainers":[{"email":"abhiomkar@gmail.com","name":"abhiomkar"},{"email":"acdvorak@gmail.com","name":"acdvorak"},{"email":"andrey.prigogin@gmail.com","name":"aprigogin"},{"email":"dfreedm2@gmail.com","name":"azakus"},{"email":"bicknellr@gmail.com","name":"bicknellr"},{"email":"bonniez@google.com","name":"bonniez"},{"email":"obrien.test@gmail.com","name":"bwobrien"},{"email":"kenneth.franqueiro@gmail.com","name":"kfranqueiro"},{"email":"lynnjepsen@google.com","name":"lynnjepsen"},{"email":"lynnjepsen+npm@google.com","name":"material-admin"},{"email":"mattgoo@gmail.com","name":"moog16"},{"email":"prodee@google.com","name":"patrickrodee"},{"email":"williamernest@google.com","name":"williamernest"}],"directories":{},"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/tabs_0.40.1_1539032089935_0.8391954553816181"},"_hasShrinkwrap":false},"0.41.0":{"name":"@material/tabs","version":"0.41.0","description":"The Material Components for the web tabs component","license":"MIT","main":"dist/mdc.tabs.js","repository":{"type":"git","url":"git+https://github.com/material-components/material-components-web.git"},"keywords":["material components","material design","tabs"],"publishConfig":{"access":"public"},"dependencies":{"@material/animation":"^0.41.0","@material/base":"^0.41.0","@material/ripple":"^0.41.0","@material/rtl":"^0.40.1","@material/theme":"^0.41.0","@material/typography":"^0.41.0"},"bugs":{"url":"https://github.com/material-components/material-components-web/issues"},"homepage":"https://github.com/material-components/material-components-web#readme","_id":"@material/tabs@0.41.0","_npmVersion":"6.4.0","_nodeVersion":"8.11.1","_npmUser":{"name":"kfranqueiro","email":"kenneth.franqueiro@gmail.com"},"dist":{"integrity":"sha512-hqDOfWQVGJ2JPSK+c1W+b064hVxpkdMYec26/OTt0pFuvcmAOaPjJtl68LkQm5RjJ1xSBu8kG7nFaKsAoORh+w==","shasum":"03ac9b1f6a6e655c1688b850da0da59b4f5e1297","tarball":"https://registry.npmjs.org/@material/tabs/-/tabs-0.41.0.tgz","fileCount":23,"unpackedSize":287210,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJb12v4CRA9TVsSAnZWagAANh0QAIerEPdVE/1PzO9xbVG9\nLUns1hzFMOPbtIqq/ycaHlZHgKIVJK2A88b2B/+6J3PSfpQZ5ExHFuhYo7zO\nrLyZZwTmRV6uLwhb/8BYuYsz2neVBjHtAh9cRO6aoWiYwkw/IlIP84IHO56Y\nfBP7kTX/YyOFHtrZN+vwDdx/gEuReewSFQMOyh53NIwacXTgtSbK2I50jsmj\n6G+DT1DGc6U/DsWSUdJkaPJXPI4LgqtwZRFMaXe4APJFHQKLvfVmlaS0hPyA\nPA3A0+DgQXMrzC3HFbXeu5Iy5szl7GTuhQHiuFn6AAGHt2cGqYP2pMBOR7dI\nRy/CS/OZsTxSuIEFSl3WpaQqEh/t4nxFpz81P31eh4iqqmbMZa9bM2sitYBs\ngNRoAq2dEazy8KPJmJ/vsghNTvzjRLn2jbQ6sQoFgID60lHPwtYF8OV9Z2EF\ncnYVrBXyDw4ZTjOGE0wyf9UTM6Co8c97giq0XSGitsMFJ5ANca4bFJ4uoo2t\nVbhC+SnAyijDEvqre7OHS+skoXwtR4tZlSwfPc1hpAnZsU03ZHCRxCBKTaKH\nVEzPq1F5RPayDDms+1V6pHNVbUYCfX2UoQqQI5iVVBiuc31kd/PxjBz4c7iw\nR58fXW4RVhzcInZql9CLDwUYlZ9o1U6GttwVvl9ds8PCCjo/cIPfg7IaUghd\ncL/u\r\n=fxxg\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIQCSelJ3pS3VOLiGOeN8QPX/8QeLD4mmw9EtEJW1CktSnQIgNh3p2fa2G0AEz6d++GUdxloLPLDs9Y2QnOggOhD5wFI="}]},"maintainers":[{"email":"abhiomkar@gmail.com","name":"abhiomkar"},{"email":"acdvorak@gmail.com","name":"acdvorak"},{"email":"andrey.prigogin@gmail.com","name":"aprigogin"},{"email":"dfreedm2@gmail.com","name":"azakus"},{"email":"bicknellr@gmail.com","name":"bicknellr"},{"email":"bonniez@google.com","name":"bonniez"},{"email":"obrien.test@gmail.com","name":"bwobrien"},{"email":"kenneth.franqueiro@gmail.com","name":"kfranqueiro"},{"email":"lynnjepsen@google.com","name":"lynnjepsen"},{"email":"lynnjepsen+npm@google.com","name":"material-admin"},{"email":"mattgoo@gmail.com","name":"moog16"},{"email":"prodee@google.com","name":"patrickrodee"},{"email":"williamernest@google.com","name":"williamernest"}],"directories":{},"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/tabs_0.41.0_1540844535988_0.28994605935578166"},"_hasShrinkwrap":false},"0.42.0":{"name":"@material/tabs","version":"0.42.0","description":"The Material Components for the web tabs component","license":"MIT","main":"dist/mdc.tabs.js","repository":{"type":"git","url":"git+https://github.com/material-components/material-components-web.git"},"keywords":["material components","material design","tabs"],"publishConfig":{"access":"public"},"dependencies":{"@material/animation":"^0.41.0","@material/base":"^0.41.0","@material/ripple":"^0.42.0","@material/rtl":"^0.42.0","@material/theme":"^0.41.0","@material/typography":"^0.42.0"},"bugs":{"url":"https://github.com/material-components/material-components-web/issues"},"homepage":"https://github.com/material-components/material-components-web#readme","_id":"@material/tabs@0.42.0","_npmVersion":"6.4.1","_nodeVersion":"10.13.0","_npmUser":{"name":"williamernest","email":"williamernest@google.com"},"dist":{"integrity":"sha512-TQVHzYYxEB/8WNSxO+bT+NCJzG0Dq7P+7yFrhSBk7cOxjMd2EBW+FSLHahPY403G3xEHomnBISM0sxeYLNz42w==","shasum":"0453451db19ae3596feae7eb4721c652462d22cd","tarball":"https://registry.npmjs.org/@material/tabs/-/tabs-0.42.0.tgz","fileCount":23,"unpackedSize":286923,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJcBwXKCRA9TVsSAnZWagAAxZYQAKPLOg8mRfN/LBD2KMh1\nZ9/cInecC3NAZN29r3rBBaOj72VraLW9+0G4p0+R0Km7UP2C4ffySMcDyD14\nwMTq2paIsUJn+70LkUhu18PZHZJkJsj+CE/6DO/A912p90wPT9wenU1YaVGw\nQ9MMsBbTkzJEsl/BdrOj2GFYQsf8Y+HpSLZxciq08zDT2JuLg1+iEQX/qbYu\nFMyGY2gHgO4Hnbq+8LYdjcUYqaK4KFiIY1ke/KgjSbbtToUXjT21ldUA+2Gq\n07CQxgFzJp+ezTYajfvG2piF3HNjGLCCgfsqJNCRrIP8ZFLi1iJqR+3XXa21\nWdWRxo0vC9W++Z48Q+61GXj0dF35/I+GiDhebLJamsViMhuBWYG39h0aI++j\nJ/ruT7ezlMw0+YFmNWCnSp/yqLbW+lUmaa/OgP3+3sibITM38rPaX5FS3t7v\nGomjOHIBHq5ZYPF2ryGgcZ4GmIkotLVfPODWpA8onaeyZ1Gv6ggSCgioPW5T\ngwRVMwUBlF4ZekQ6fCDbI88V8hcgwVLIu9TGpFozfFVEADCBDI4Ps6tJo4UP\n06OWVe8kLGMeOe46pAeiGYC2XmhCkYscuLJ8+r0W5ShlXs+PimTtmtZtMbjO\n0vAmpdvRGgi2F2RRGYORslk559yrNiTOwgw9HlGI3C+xo6vz35G5wR2NJl/v\nB11i\r\n=UKIe\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEQCIGTBwY17nX/pPLpeujQ35FkIJF5gqa6kGH62u+EdNItAAiAbZmyuCA/t1CdB8VZ1ZvTUpugLLaxt4XQ1CaYDl429QA=="}]},"maintainers":[{"email":"abhiomkar@gmail.com","name":"abhiomkar"},{"email":"acdvorak@gmail.com","name":"acdvorak"},{"email":"andrey.prigogin@gmail.com","name":"aprigogin"},{"email":"dfreedm2@gmail.com","name":"azakus"},{"email":"bicknellr@gmail.com","name":"bicknellr"},{"email":"bonniez@google.com","name":"bonniez"},{"email":"obrien.test@gmail.com","name":"bwobrien"},{"email":"kenneth.franqueiro@gmail.com","name":"kfranqueiro"},{"email":"lynnjepsen@google.com","name":"lynnjepsen"},{"email":"lynnjepsen+npm@google.com","name":"material-admin"},{"email":"mattgoo@gmail.com","name":"moog16"},{"email":"prodee@google.com","name":"patrickrodee"},{"email":"williamernest@google.com","name":"williamernest"}],"directories":{},"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/tabs_0.42.0_1543964105857_0.700456379093521"},"_hasShrinkwrap":false},"0.43.0":{"name":"@material/tabs","version":"0.43.0","description":"The Material Components for the web tabs component","license":"MIT","main":"dist/mdc.tabs.js","repository":{"type":"git","url":"git+https://github.com/material-components/material-components-web.git"},"keywords":["material components","material design","tabs"],"publishConfig":{"access":"public"},"dependencies":{"@material/animation":"^0.41.0","@material/base":"^0.41.0","@material/ripple":"^0.43.0","@material/rtl":"^0.42.0","@material/theme":"^0.43.0","@material/typography":"^0.43.0"},"bugs":{"url":"https://github.com/material-components/material-components-web/issues"},"homepage":"https://github.com/material-components/material-components-web#readme","_id":"@material/tabs@0.43.0","_npmVersion":"6.4.1","_nodeVersion":"10.14.2","_npmUser":{"name":"acdvorak","email":"acdvorak@gmail.com"},"dist":{"integrity":"sha512-o+oXhmVAnIVZkoABahJx2onru7s/8+kk4iw9RzZNh7/2AbqIXt+/5szzxTELg4JkJtEArTaUdunsoZfqO4S/iQ==","shasum":"47695c41e6ac468bde4fa50df06db9ff0e8d063a","tarball":"https://registry.npmjs.org/@material/tabs/-/tabs-0.43.0.tgz","fileCount":27,"unpackedSize":792616,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJcM61ECRA9TVsSAnZWagAASrEP/26azzA4alDsY0scPwfQ\nEyt9/PGH3HQhDH4rWfKeWWA6azmqt1C3qMhxzyFRYpWoKSZVsXJ9mq8K9fqN\n376S6AYnXPWeqDKpBGXjOfXy94r+xfSznCSpp4KboIzD5pI5Ulg2die0tXmL\nrXyj6KQiMXjJnKqcZmeYDS1gq8ilcFPlpTitH/eyR/eRKKwjeLGOG86gO/Qd\nzQmc//fQtqKupnDX21OHA5qj3B6+z+o7EbUjGfw5M3WvVveoD7j0ouX80GcI\nEph13HhVv6m+WQxrMikTBC7F3liHw329ktY2bxrPS292fldMI8+U4RX208Ec\notgTD6Zj6r1BZyFADQh9wUfVz9bCY/lGbsWw3gPhZNagdZCgE3pb6x/w4MTP\nf2MZV/RbkV9B6aWgRqZM/GgOGputRg/7imNI3mlDA2WeZcvWLuGgMCovaVO7\nClKjyDYzUzkuT6KhEMnRuyQX+CY/H8892Z2s7EDgMRRVU9lx0CW7L+x2cvXk\nvUsLW1Upx9N7l72TsIhvTzaKlFtx1LxuEdaGzIIeUesKPgl/rTKOg9n2lfTY\n9QOI/DV6cTO6cEgANns9UoNpdqiBeiknw+qYKVrf3PMABEI6zKR7JwXEKZMn\npq0ZJ8Who0ogetmTuifFLFVdJNqdV3vH+1pcMoNXwZbwZxMdDVEtRyZa9zRX\nBXNg\r\n=aykD\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIEc5DnVr91dsYAps1ohBXuqr3tr0680X0dyKh2CO4e1nAiEA9DtWJpUzyHh9VFsFp7vPxl1sJ5JO8l7X4pONkaFuAOU="}]},"maintainers":[{"email":"abhiomkar@gmail.com","name":"abhiomkar"},{"email":"acdvorak@gmail.com","name":"acdvorak"},{"email":"andrey.prigogin@gmail.com","name":"aprigogin"},{"email":"dfreedm2@gmail.com","name":"azakus"},{"email":"bicknellr@gmail.com","name":"bicknellr"},{"email":"bonniez@google.com","name":"bonniez"},{"email":"obrien.test@gmail.com","name":"bwobrien"},{"email":"kenneth.franqueiro@gmail.com","name":"kfranqueiro"},{"email":"lynnjepsen@google.com","name":"lynnjepsen"},{"email":"lynnjepsen+npm@google.com","name":"material-admin"},{"email":"mattgoo@gmail.com","name":"moog16"},{"email":"prodee@google.com","name":"patrickrodee"},{"email":"williamernest@google.com","name":"williamernest"}],"directories":{},"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/tabs_0.43.0_1546890563400_0.6118513904550646"},"_hasShrinkwrap":false},"0.44.0":{"name":"@material/tabs","version":"0.44.0","description":"The Material Components for the web tabs component","license":"MIT","main":"dist/mdc.tabs.js","repository":{"type":"git","url":"git+https://github.com/material-components/material-components-web.git"},"keywords":["material components","material design","tabs"],"publishConfig":{"access":"public"},"dependencies":{"@material/animation":"^0.41.0","@material/base":"^0.41.0","@material/ripple":"^0.44.0","@material/rtl":"^0.42.0","@material/theme":"^0.43.0","@material/typography":"^0.44.0"},"bugs":{"url":"https://github.com/material-components/material-components-web/issues"},"homepage":"https://github.com/material-components/material-components-web#readme","_id":"@material/tabs@0.44.0","_npmVersion":"6.4.1","_nodeVersion":"10.12.0","_npmUser":{"name":"abhiomkar","email":"abhiomkar@gmail.com"},"dist":{"integrity":"sha512-r6uKujb7Af6yYUs9Mj2y2yhJUsG2kuRLVkIXoBUa3sruRbZujI6mS+2B/kbnUgQvhlX2noD5E5Q9sK4OtZXnGQ==","shasum":"f3c2087eeb6f88e867843935560d7b43d0d1243e","tarball":"https://registry.npmjs.org/@material/tabs/-/tabs-0.44.0.tgz","fileCount":27,"unpackedSize":799534,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJcWINPCRA9TVsSAnZWagAAy8IP/j20ldw5eanxKfsbcklW\neq3tOZht15VoOBp14D8DPle/3fNVowwVHFazeINQJfwCv7m5qaMvGSJZuyKB\nbSyieawR/VhwzRV14iCUUYZRSBC0Z72QzCgqHdA9FjO3e4bibS0rCdLnwzGN\nEOhjgYUzNMNbyqtFx9dsdaWDtWZSciY5tlTtfS7rFSqbGVROg4srhZGfNVXH\nG5rM0M8t8ZsTGPYDQZofdrNUo4/ZokxKgUm4Zytk/V4s24Bpu72tQ8W9xtY+\n0L3diQc/lDVfhX5496qkRmw+0k1Wjcpdhehep1YOfg3DR0jWSxHv9WGWz1dl\nwAXUUkR7Yxgd1yfCreoL9WUjnA2Br+Mb9YPEYmvlUGe6PCZRhwkxcIyUH+ii\nB8Srlwjh1rNYHvFrgod+dblGhVyKYTOro2l+h7HCdLN/A/kEIa8/6GM552FW\nIZMQWbgSqRrV7cS6+MUSLRYRLZFxZVeUoxQBIMUk9f63ZYi4uw+HxUaQXx8v\nWmPD48hB2fFAwsc/L+qesXXsVX1JON/LevfMtZOrGEoKJddPSnnZqd37QsVx\nNtKxYNCj1TfJHmoYlE+Dig2BuqF/m43ozSTVcxK9gznNYJes8X+aEa4/l5r5\ncyYWfA2WxoPtShfrYanFD7fGDErYi/Dx/VYRto6RJZzh1ZMRHTtHBNIlCcBU\n6xld\r\n=igwT\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIQDGdTAAdXyD3e4qYrWHYyG1O0hk2rR7vyUWf4c5WuiK1QIgSYpnUGGT4uA+ptIM9RR3bSmBKcpekUM2kGLTXDqCsvM="}]},"maintainers":[{"email":"abhiomkar@gmail.com","name":"abhiomkar"},{"email":"acdvorak@gmail.com","name":"acdvorak"},{"email":"andrey.prigogin@gmail.com","name":"aprigogin"},{"email":"dfreedm2@gmail.com","name":"azakus"},{"email":"bicknellr@gmail.com","name":"bicknellr"},{"email":"bonniez@google.com","name":"bonniez"},{"email":"obrien.test@gmail.com","name":"bwobrien"},{"email":"kenneth.franqueiro@gmail.com","name":"kfranqueiro"},{"email":"lynnjepsen@google.com","name":"lynnjepsen"},{"email":"lynnjepsen+npm@google.com","name":"material-admin"},{"email":"mattgoo@gmail.com","name":"moog16"},{"email":"prodee@google.com","name":"patrickrodee"},{"email":"williamernest@google.com","name":"williamernest"}],"directories":{},"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/tabs_0.44.0_1549304654864_0.7601045041805532"},"_hasShrinkwrap":false},"0.44.1":{"name":"@material/tabs","version":"0.44.1","description":"The Material Components for the web tabs component","license":"MIT","main":"dist/mdc.tabs.js","repository":{"type":"git","url":"git+https://github.com/material-components/material-components-web.git"},"keywords":["material components","material design","tabs"],"publishConfig":{"access":"public"},"dependencies":{"@material/animation":"^0.41.0","@material/base":"^0.41.0","@material/ripple":"^0.44.1","@material/rtl":"^0.42.0","@material/theme":"^0.43.0","@material/typography":"^0.44.1"},"bugs":{"url":"https://github.com/material-components/material-components-web/issues"},"homepage":"https://github.com/material-components/material-components-web#readme","_id":"@material/tabs@0.44.1","_nodeVersion":"10.14.2","_npmVersion":"6.8.0","dist":{"integrity":"sha512-6KHXS1//SMAJPUPgVopgO0GkCcrA4uSpsAA02RFNpadpsZ0w7Ziu3bdHtWruabXK+U0NlFjbtZW6VDADle8VSA==","shasum":"b424e61cef830588755c88e543be488e0ff13d41","tarball":"https://registry.npmjs.org/@material/tabs/-/tabs-0.44.1.tgz","fileCount":27,"unpackedSize":799534,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJcbIssCRA9TVsSAnZWagAAnGQP/2aL/UTyonuYSOvc4HiM\nBlnJPDjUyGXCAQw/wKv38JjIUYFO3HgmuLuZGY20gYaZQVcc1XhRyhBUmvlb\nvwWvCr6DFtUZ6b8GXLalSY7yttnCkVBIwQQhkSQ+3i4GhRu8HDYgTKDPr88x\nmI7POl+O7/hcDM6xPs8XfdDCyVM47cO4AVB7f8JTt6mT4z85q8h39BHgBiPD\ncgCm+dRkPeARuJGsexbTPx095HEv8zDlKDOl3t828J1wXQDvTKkJRSVwunLX\nnWV9tmIdqhuen/RywezHrNQLdyZvkquR+n4gw+bYKP67RXW+7gu0F9fyLKR2\n7EGtoGcVJrdt09mRkHI3RjKVUQX0+QAkpSBC7IYvo+mLOls7JIhhgIdqWbM5\nKw/XHPDACFRdL4BqLOeBLw54HpaU5v1W8YHRS/OAlcJrIkhN0OmAVFDNHEBa\nWTtaXtchrQ+KzrfBoZG64APummtMtV7g898Jx5SrASRdS5r+bgdsUoJ0vR5A\nrhm9Z1EVQFiF5necJa5swLFfv9KJHnDlw6voxcWNuXmg6jgjPpfJarSWH3X5\nXKo3X53LNnYJDXDtT87CsMz9/wk5qXAf4U9fJH02BFXMcTkITQAh2417sUmO\nZbPMxVoIyMnFY4oYgIJCCiV7rRS6cerBLaOJrryAmr1Ldr7x6x8nh9PGySbu\nEh0k\r\n=Nwd1\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEYCIQD1SFU+dtYqt+BZvVZGy409LdQSUbVyNMEa4LdrJZ++kgIhANG9amOATfDhSR1w9Hievs3mv5TzPG8+dZWKBKIgSChO"}]},"maintainers":[{"email":"abhiomkar@gmail.com","name":"abhiomkar"},{"email":"acdvorak@gmail.com","name":"acdvorak"},{"email":"andrey.prigogin@gmail.com","name":"aprigogin"},{"email":"dfreedm2@gmail.com","name":"azakus"},{"email":"bicknellr@gmail.com","name":"bicknellr"},{"email":"bonniez@google.com","name":"bonniez"},{"email":"obrien.test@gmail.com","name":"bwobrien"},{"email":"kenneth.franqueiro@gmail.com","name":"kfranqueiro"},{"email":"lynnjepsen@google.com","name":"lynnjepsen"},{"email":"lynnjepsen+npm@google.com","name":"material-admin"},{"email":"mattgoo@gmail.com","name":"moog16"},{"email":"prodee@google.com","name":"patrickrodee"},{"email":"williamernest@google.com","name":"williamernest"}],"_npmUser":{"name":"acdvorak","email":"acdvorak@gmail.com"},"directories":{},"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/tabs_0.44.1_1550617387566_0.10086004518363367"},"_hasShrinkwrap":false},"1.0.0-0":{"name":"@material/tabs","version":"1.0.0-0","description":"The Material Components for the web tabs component","license":"MIT","main":"dist/mdc.tabs.js","module":"index.js","sideEffects":false,"types":"dist/mdc.tabs.d.ts","repository":{"type":"git","url":"git+https://github.com/material-components/material-components-web.git"},"keywords":["material components","material design","tabs"],"publishConfig":{"access":"public"},"dependencies":{"@material/animation":"^1.0.0-0","@material/base":"^1.0.0-0","@material/ripple":"^1.0.0-0","@material/rtl":"^0.42.0","@material/theme":"^1.0.0-0","@material/typography":"^1.0.0-0","tslib":"^1.9.3"},"readme":"<!--docs:\ntitle: \"Tabs (Deprecated)\"\nlayout: detail\nsection: components\nexcerpt: \"A tabbed navigation component.\"\niconId: tabs\npath: /catalog/tabs/legacy/\n-->\n\n## Important - Deprecation Notice\n\nThe `mdc-tabs` package is deprecated and no longer maintained, and is no longer included in the all-in-one\n`material-components-web` package. Improved functionality is available across the `mdc-tab-bar`, `mdc-tab-scroller`,\n`mdc-tab-indicator`, and `mdc-tab` packages, which are now included in the `material-components-web` package.\nBugs and feature requests will no longer be accepted for this package. It is recommended that you migrate to the new\npackages to continue to receive new features and updates.\n\n# MDC Tabs\n\nThe MDC Tabs component contains components which are used to create spec-aligned tabbed navigation components adhering to the\n[Material Design tabs guidelines](https://material.io/go/design-tabs). These components are:\n\n- **mdc-tab**: The individual tab elements\n- **mdc-tab-bar**: The main component which is composed of `mdc-tab` elements\n- **mdc-tab-bar-scroller**: The component which controls the horizontal scrolling behavior of an `mdc-tab-bar` that overflows its container\n\n## Design & API Documentation\n\n<ul class=\"icon-list\">\n  <li class=\"icon-list-item icon-list-item--spec\">\n    <a href=\"https://material.io/go/design-tabs\">Material Design guidelines: Tabs</a>\n  </li>\n  <li class=\"icon-list-item icon-list-item--link\">\n    <a href=\"https://material-components.github.io/material-components-web-catalog/#/component/tabs\">Demo</a>\n  </li>\n</ul>\n\n## Installation\n\n```\nnpm install @material/tabs\n```\n\n## Tabs usage\n\n`mdc-tab-bar` can be used as a CSS only component, or a more dynamic JavaScript\ncomponent.\n\nThere are also three different permutations of tab labels. These include text,\nicon-only, and text with icon. An example of each is available on the demo site.\n\n### Icons\n\nWe recommend using [Material Icons](https://material.io/tools/icons/) from Google Fonts:\n\n```html\n<head>\n  <link rel=\"stylesheet\" href=\"https://fonts.googleapis.com/icon?family=Material+Icons\">\n</head>\n```\n\nHowever, you can also use SVG, [Font Awesome](https://fontawesome.com/), or any other icon library you wish.\n\n#### Tab Bar with text labels\n\n```html\n<nav id=\"basic-tab-bar\" class=\"mdc-tab-bar\">\n  <a class=\"mdc-tab mdc-tab--active\" href=\"#one\">Home</a>\n  <a class=\"mdc-tab\" href=\"#two\">Merchandise</a>\n  <a class=\"mdc-tab\" href=\"#three\">About Us</a>\n  <span class=\"mdc-tab-bar__indicator\"></span>\n</nav>\n```\n\n#### Tab Bar with icon labels\n\n```html\n<nav class=\"mdc-tab-bar mdc-tab-bar--icon-tab-bar\">\n  <a class=\"mdc-tab mdc-tab--active\" href=\"#recents\">\n    <i class=\"material-icons mdc-tab__icon\" aria-label=\"Recents\">phone</i>\n  </a>\n  <a class=\"mdc-tab\" href=\"#favorites\">\n    <i class=\"material-icons mdc-tab__icon\" aria-label=\"Favorites\">favorite</i>\n  </a>\n  <a class=\"mdc-tab\" href=\"#nearby\">\n    <i class=\"material-icons mdc-tab__icon\" aria-label=\"nearby\">person_pin</i>\n  </a>\n  <span class=\"mdc-tab-bar__indicator\"></span>\n</nav>\n```\n\n#### Tab Bar with icon and text labels\n\n```html\n<nav id=\"icon-text-tab-bar\" class=\"mdc-tab-bar mdc-tab-bar--icons-with-text\">\n  <a class=\"mdc-tab mdc-tab--with-icon-and-text mdc-tab--active\" href=\"#recents\">\n    <i class=\"material-icons mdc-tab__icon\" aria-hidden=\"true\">phone</i>\n    <span class=\"mdc-tab__icon-text\">Recents</span>\n  </a>\n  <a class=\"mdc-tab mdc-tab--with-icon-and-text\" href=\"#favorites\">\n    <i class=\"material-icons mdc-tab__icon\" aria-hidden=\"true\">favorite</i>\n    <span class=\"mdc-tab__icon-text\">Favorites</span>\n  </a>\n  <a class=\"mdc-tab mdc-tab--with-icon-and-text\" href=\"#nearby\">\n    <i class=\"material-icons mdc-tab__icon\" aria-hidden=\"true\">person_pin</i>\n    <span class=\"mdc-tab__icon-text\">Nearby</span>\n  </a>\n  <span class=\"mdc-tab-bar__indicator\"></span>\n</nav>\n```\n\n#### CSS Only Support\n\nIn order for the indicator to appear, you will need to change your mark up if you are using CSS Only. Each `.mdc-tab` will have a child element with the class `.mdc-tab__indicator` as shown below:\n\n```html\n<nav id=\"basic-tab-bar\" class=\"mdc-tab-bar\">\n  <a class=\"mdc-tab mdc-tab--active\" href=\"#one\">\n    Home\n    <span class=\"mdc-tab__indicator\"></span>\n  </a>\n  <a class=\"mdc-tab\" href=\"#two\">\n    Merchandise\n    <span class=\"mdc-tab__indicator\"></span>\n  </a>\n  <a class=\"mdc-tab\" href=\"#three\">\n    About Us\n    <span class=\"mdc-tab__indicator\"></span>\n  </a>\n</nav>\n```\n\n#### RTL Support\n\nTab Bars will reverse the order of their tabs if they are placed within an\nancestor element with attribute `dir=\"rtl\"`.\n\n```html\n<html dir=\"rtl\">\n  <!--...-->\n  <nav id=\"basic-tab-bar\" class=\"mdc-tab-bar\">\n    <a class=\"mdc-tab mdc-tab--active\" href=\"#one\">Home</a>\n    <a class=\"mdc-tab\" href=\"#two\">Merchandise</a>\n    <a class=\"mdc-tab\" href=\"#three\">About Us</a>\n    <span class=\"mdc-tab-bar__indicator\"></span>\n  </nav>\n</html>\n```\n\n### Dynamic view switching\n\nWhile facilitating the view switching is left up to the developer, the demo site\nprovides a minimal example of how to do so using JavaScript, also shown below.\n\n#### Markup:\n```html\n<section id=\"dynamic-demo-toolbar\">\n  <nav id=\"dynamic-tab-bar\" class=\"mdc-tab-bar\" role=\"tablist\">\n    <a role=\"tab\" aria-controls=\"panel-1\"\n       class=\"mdc-tab mdc-tab--active\" href=\"#panel-1\">Item One</a>\n    <a role=\"tab\" aria-controls=\"panel-2\"\n       class=\"mdc-tab\" href=\"#panel-2\">Item Two</a>\n    <a role=\"tab\" aria-controls=\"panel-3\"\n       class=\"mdc-tab\" href=\"#panel-3\">Item Three</a>\n    <span class=\"mdc-tab-bar__indicator\"></span>\n  </nav>\n</section>\n<section>\n  <div class=\"panels\">\n    <p class=\"panel active\" id=\"panel-1\" role=\"tabpanel\" aria-hidden=\"false\">Item One</p>\n    <p class=\"panel\" id=\"panel-2\" role=\"tabpanel\" aria-hidden=\"true\">Item Two</p>\n    <p class=\"panel\" id=\"panel-3\" role=\"tabpanel\" aria-hidden=\"true\">Item Three</p>\n  </div>\n  <div class=\"dots\">\n    <a class=\"dot active\" data-trigger=\"panel-1\" href=\"#panel-1\"></a>\n    <a class=\"dot\" data-trigger=\"panel-2\" href=\"#panel-2\"></a>\n    <a class=\"dot\" data-trigger=\"panel-3\" href=\"#panel-3\"></a>\n  </div>\n</section>\n```\n\n#### Script:\n\n```js\nvar dynamicTabBar = window.dynamicTabBar = new mdc.tabs.MDCTabBar(document.querySelector('#dynamic-tab-bar'));\nvar dots = document.querySelector('.dots');\nvar panels = document.querySelector('.panels');\n\ndynamicTabBar.tabs.forEach(function(tab) {\n  tab.preventDefaultOnClick = true;\n});\n\nfunction updateDot(index) {\n  var activeDot = dots.querySelector('.dot.active');\n  if (activeDot) {\n    activeDot.classList.remove('active');\n  }\n  var newActiveDot = dots.querySelector('.dot:nth-child(' + (index + 1) + ')');\n  if (newActiveDot) {\n    newActiveDot.classList.add('active');\n  }\n}\n\nfunction updatePanel(index) {\n  var activePanel = panels.querySelector('.panel.active');\n  if (activePanel) {\n    activePanel.classList.remove('active');\n  }\n  var newActivePanel = panels.querySelector('.panel:nth-child(' + (index + 1) + ')');\n  if (newActivePanel) {\n    newActivePanel.classList.add('active');\n  }\n}\n\ndynamicTabBar.listen('MDCTabBar:change', function ({detail: tabs}) {\n  var nthChildIndex = tabs.activeTabIndex;\n\n  updatePanel(nthChildIndex);\n  updateDot(nthChildIndex);\n});\n\ndots.addEventListener('click', function (evt) {\n  if (!evt.target.classList.contains('dot')) {\n    return;\n  }\n\n  evt.preventDefault();\n\n  var dotIndex = [].slice.call(dots.querySelectorAll('.dot')).indexOf(evt.target);\n\n  if (dotIndex >= 0) {\n    dynamicTabBar.activeTabIndex = dotIndex;\n  }\n\n  updatePanel(dotIndex);\n  updateDot(dotIndex);\n})\n```\n\n### Sass Mixins\n\nTo customize the ink color of any part of the tab, use the following mixins. We recommend you apply these mixins within CSS selectors like `.foo-tab:not(.mdc-tab--active)` to select your inactive tabs, `foo-tab:hover` to select the hover state of your tabs, and `.foo-tab.mdc-tab--active` to select your active tabs.\n\n#### `mdc-tab-ink-color`\n\nUse this mixin to set the color of all ink on the tab.\n\n#### `mdc-tab-icon-ink-color`\n\nThis mixin customizes the icon ink color.\n\n#### `mdc-tab-label-ink-color`\n\nThis mixin customizes the label ink color.\n\n#### `mdc-tab-bar-indicator-ink-color`\n\nThis mixin customizes the indicator ink color.\n\n### Using the CSS-Only Component\n\n`mdc-tab-bar` ships with css for styling a tab layout according to the Material\nDesign spec. To use CSS only tab bars, simply use the available class names.\nNote the available `mdc-tab--active` modifier class. This is used to denote the\ncurrently active tab.\n\n```html\n<nav class=\"mdc-tab-bar\">\n  <a class=\"mdc-tab mdc-tab--active\" href=\"#one\">Item One</a>\n  <a class=\"mdc-tab\" href=\"#two\">Item Two</a>\n  <a class=\"mdc-tab\" href=\"#three\">Three</a>\n  <span class=\"mdc-tab-bar__indicator\"></span>\n</nav>\n```\n\n### Using the JavaScript Component\n\n`mdc-tab-bar` ships with a Component/Foundation combo for ingesting instances of `mdc-tab` (a tab).\n`mdc-tab-bar` uses its `initialize()` method call a factory function which gathers and instantiates\nany tab elements that are children of the `mdc-tab-bar` root element.\n\n#### Including in code\n\n##### ES2015\n\n```javascript\nimport {MDCTab, MDCTabFoundation} from '@material/tabs';\nimport {MDCTabBar, MDCTabBarFoundation} from '@material/tabs';\n```\n\n##### CommonJS\n\n```javascript\nconst mdcTabs = require('@material/tabs');\nconst MDCTab = mdcTabs.MDCTab;\nconst MDCTabFoundation = mdcTabs.MDCTabFoundation;\n\nconst MDCTabBar = mdcTabs.MDCTabBar;\nconst MDCTabBarFoundation = mdcTabs.MDCTabBarFoundation;\n```\n\n##### AMD\n\n```javascript\nrequire(['path/to/@material/tabs'], mdcTabs => {\n  const MDCTab = mdcTabs.MDCTab;\n  const MDCTabFoundation = mdcTabs.MDCTabFoundation;\n\n  const MDCTabBar = mdcTabs.MDCTabBar;\n  const MDCTabBarFoundation = mdcTabs.MDCTabBarFoundation;\n});\n```\n\n##### Global\n\n```javascript\nconst MDCTab = mdc.tabs.MDCTab;\nconst MDCTabFoundation = mdc.tabs.MDCTabFoundation;\n\nconst MDCTabBar = mdc.tabs.MDCTabBar;\nconst MDCTabBarFoundation = mdc.tabs.MDCTabBarFoundation;\n```\n\n#### Automatic Instantiation\n\nIf you do not care about retaining the component instance for the tabs, simply\ncall `attachTo()` and pass it a DOM element.\n\n```javascript\nmdc.tabs.MDCTabBar.attachTo(document.querySelector('#my-mdc-tab-bar'));\n```\n\n#### Manual Instantiation\n\nTabs can easily be initialized using their default constructors as well, similar\nto `attachTo`. This process involves a factory to create an instance of MDCTab\nfrom each tab Element inside of the `mdc-tab-bar` node during the initialization phase\nof `MDCTabBar`, e.g.:\n\n```html\n<nav id=\"my-mdc-tab-bar\" class=\"mdc-tab-bar\">\n  <a class=\"mdc-tab mdc-tab--active\" href=\"#one\">Item One</a>\n  <a class=\"mdc-tab\" href=\"#two\">Item Two</a>\n  <a class=\"mdc-tab\" href=\"#three\">Three</a>\n  <span class=\"mdc-tab-bar__indicator\"></span>\n</nav>\n```\n\n```javascript\nimport {MDCTabBar, MDCTabBarFoundation} from '@material/tabs';\n\nconst tabBar = new MDCTabBar(document.querySelector('#my-mdc-tab-bar'));\n```\n\n### Using the JavaScript Tab Bar Scroller Component\n\n`mdc-tab-bar-scroller` ships with a Component/Foundation combo which wraps instances of `mdc-tab-bar`. `mdc-tab-bar-scroller` uses its `initialize()` method call a factory function which gathers and instantiates any tab bar elements that are children of the `mdc-tab-bar-scroller` root element.\n\nThe anatomy of `mdc-tab-bar-scroller` includes an instance of `mdc-tab-bar`, RTL-aware forward and back indicators which, when actioned on, move the tab bar left and right, and a scroll frame. The scroll frame is the parent element of the tab bar, and serves to mask the tabs in the tab bar when they overflow the available width.\n\n#### Including in code\n\n##### ES2015\n\n```javascript\nimport {MDCTab, MDCTabFoundation} from '@material/tabs';\nimport {MDCTabBar, MDCTabBarFoundation} from '@material/tabs';\nimport {MDCTabBarScroller, MDCTabBarFoundationScroller} from '@material/tabs';\n```\n\n##### CommonJS\n\n```javascript\nconst mdcTabs = require('@material/tabs');\nconst MDCTab = mdcTabs.MDCTab;\nconst MDCTabFoundation = mdcTabs.MDCTabFoundation;\n\nconst MDCTabBar = mdcTabs.MDCTabBar;\nconst MDCTabBarFoundation = mdcTabs.MDCTabBarFoundation;\n\nconst MDCTabBarScroller = mdcTabs.MDCTabBarScroller;\nconst MDCTabBarScrollerFoundation = mdcTabs.MDCTabBarScrollerFoundation;\n```\n\n##### AMD\n\n```javascript\nrequire(['path/to/@material/tabs'], mdcTabs => {\n  const MDCTab = mdcTabs.MDCTab;\n  const MDCTabFoundation = mdcTabs.MDCTabFoundation;\n\n  const MDCTabBar = mdcTabs.MDCTabBar;\n  const MDCTabBarFoundation = mdcTabs.MDCTabBarFoundation;\n\n  const MDCTabBarScroller = mdcTabs.MDCTabBarScroller;\n  const MDCTabBarScrollerFoundation = mdcTabs.MDCTabBarScrollerFoundation;\n});\n```\n\n##### Global\n\n```javascript\nconst MDCTab = mdc.tabs.MDCTab;\nconst MDCTabFoundation = mdc.tabs.MDCTabFoundation;\n\nconst MDCTabBar = mdc.tabs.MDCTabBar;\nconst MDCTabBarFoundation = mdc.tabs.MDCTabBarFoundation;\n\nconst MDCTabBarScroller = mdc.tabs.MDCTabBarScroller;\nconst MDCTabBarScrollerFoundation = mdc.tabs.MDCTabBarScrollerFoundation;\n```\n\n#### Automatic Instantiation\n\nIf you do not care about retaining the component instance for the tabs, simply\ncall `attachTo()` and pass it a DOM element.\n\n```javascript\nmdc.tabs.MDCTabBarScroller.attachTo(document.querySelector('#my-mdc-tab-bar-scroller'));\n```\n\n#### Manual Instantiation\n\nTab Bar Scrollers can easily be initialized using their default constructors as well, similar\nto `attachTo`. This process involves a factory to create an instance of `MDCTabBar`\nfrom the `mdc-tab-bar` Element inside of the `mdc-tab-bar-scroller` node during the initialization phase\nof `MDCTabBarScroller`, e.g.:\n\n```html\n<div id=\"my-mdc-tab-bar-scroller\" class=\"mdc-tab-bar-scroller\">\n  <div class=\"mdc-tab-bar-scroller__indicator mdc-tab-bar-scroller__indicator--back\">\n    <a class=\"mdc-tab-bar-scroller__indicator__inner material-icons\" href=\"#\" aria-label=\"scroll back button\">\n      navigate_before\n    </a>\n  </div>\n  <div class=\"mdc-tab-bar-scroller__scroll-frame\">\n    <nav id=\"my-scrollable-tab-bar\" class=\"mdc-tab-bar mdc-tab-bar-scroller__scroll-frame__tabs\">\n      <a class=\"mdc-tab mdc-tab--active\" href=\"#one\">Item One</a>\n      <a class=\"mdc-tab\" href=\"#two\">Item Two</a>\n      <a class=\"mdc-tab\" href=\"#three\">Item Three</a>\n      <a class=\"mdc-tab\" href=\"#four\">Item Four</a>\n      <a class=\"mdc-tab\" href=\"#five\">Item Five</a>\n      <a class=\"mdc-tab\" href=\"#six\">Item Six</a>\n      <a class=\"mdc-tab\" href=\"#seven\">Item Seven</a>\n      <a class=\"mdc-tab\" href=\"#eight\">Item Eight</a>\n      <a class=\"mdc-tab\" href=\"#nine\">Item Nine</a>\n      <span class=\"mdc-tab-bar__indicator\"></span>\n    </nav>\n  </div>\n  <div class=\"mdc-tab-bar-scroller__indicator mdc-tab-bar-scroller__indicator--forward\">\n    <a class=\"mdc-tab-bar-scroller__indicator__inner material-icons\" href=\"#\" aria-label=\"scroll forward button\">\n      navigate_next\n    </a>\n  </div>\n</div>\n```\n\n```javascript\nimport {MDCTabBarScroller, MDCTabBarScrollerFoundation} from '@material/tabs';\n\nconst tabBarScroller = new MDCTabBarScroller(document.querySelector('#my-mdc-tab-bar-scroller'));\n```\n\nTab Bar Scrollers can also instantiate any `mdc-tab-bar` from a DOM element on the fly using a built in factory function:\n\n```js\nimport {MDCTabBarScroller, MDCTabBarScrollerFoundation} from '@material/tabs';\n\nconst tabBarEl = document.querySelector('#my-mdc-tab-bar');\nconst scrollerEl = document.querySelector('#my-mdc-tab-bar-scroller');\n\nconst tabBarScroller = new MDCTabBarScroller(scrollerEl, undefined, tabBarEl);\n```\n\nThis will create an instance of MDC Tab Bar during the initialization phase of Tab Bar Scroller.\n\n## Tab\n\n### Tab component API\n\n#### Properties\n\n| Property Name | Type | Description |\n| --- | --- | --- |\n| `computedWidth` | `number` | _(read-only)_ The width of the tab. |\n| `computedLeft` | `number` | _(read-only)_ The left offset of the tab. |\n| `isActive` | `boolean` | Whether or not the tab is active. Setting this makes the tab active. |\n| `preventDefaultOnClick` | `boolean` | Whether or not the tab will call `preventDefault()` on an event. Setting this makes the tab call `preventDefault()` on events. |\n\n### Tab Events\n\n#### MDCTab:selected\n\nBroadcast when a user actions on the tab.\n\n### Using the Foundation Class\n\nMDC Tab ships with an `MDCTabFoundation` class that external frameworks and libraries can\nuse to integrate the component. As with all foundation classes, an adapter object must be provided.\n\n### Adapter API\n\n| Method Signature | Description |\n| --- | --- |\n| `addClass(className: string) => void` | Adds a class to the root element. |\n| `removeClass(className: string) => void` | Removes a class from the root element. |\n| `registerInteractionHandler(evt: string, handler: EventListener) => void` | Adds an event listener to the root element, for the specified event name. |\n| `deregisterInteractionHandler(evt: string, handler: EventListener) => void` | Removes an event listener from the root element, for the specified event name. |\n| `getOffsetWidth() => number` | Return the width of the tab |\n| `getOffsetLeft() => number` | Return distance between left edge of tab and left edge of its parent element |\n| `notifySelected() => {}` | Broadcasts an event denoting that the user has actioned on the tab |\n\n### The full foundation API\n\n#### MDCTabFoundation.getComputedWidth() => number\n\nReturn the computed width for tab.\n\n#### MDCTabFoundation.getComputedLeft() => number\n\nReturn the computed left offset for tab.\n\n#### MDCTabFoundation.isActive() => boolean\n\nReturn true if tab is active.\n\n#### MDCTabFoundation.setActive(isActive = false) => void\n\nSet tab to active. If `isActive` is true, adds the active modifier class, otherwise removes it.\n\n#### MDCTabFoundation.preventsDefaultOnClick() => boolean\n\nReturn true if the tab prevents the default click action\n\n#### MDCTabFoundation.setPreventDefaultOnClick(preventDefaultOnClick = false) => void\n\nSets tabs `preventDefaultOnClick` property to the value of the `preventDefaultOnClick` argument passed.\n\n#### MDCTabFoundation.measureSelf() => void\n\nSets `computedWidth_` and `computedLeft_` for a tab.\n\n## Tab Bar\n\n### Tab Bar component API\n\n#### Properties\n\n| Property Name | Type | Description |\n| --- | --- | --- |\n| `tabs` | `MDCTab[]` | _(read-only)_ An array of the tab bar's instances of MDC Tab. |\n| `activeTab` | `MDCTab` | The currently active tab. Setting this makes the tab active. |\n| `activeTabIndex` | `number` | The index of the currently active tab. Setting this makes the tab at the given index active. |\n\n#### MDCTabBar.layout() => void\n\nProxies to the foundation's `layout()` method.\n\n### Tab Bar Events\n\n#### MDCTabBar:change\n\nBroadcast when a user actions on a tab, resulting in a change in the selected tab.\n\n### Using the Foundation Class\n\n`mdc-tab-bar` ships with an `MDCTabBarFoundation` class that external frameworks\nand libraries can use to integrate the component. As with all foundation\nclasses, an adapter object must be provided.\n\n### Adapter API\n\n| Method Signature | Description |\n| --- | --- |\n| `addClass(className: string) => void` | Adds a class to the root element. |\n| `removeClass(className: string) => void` | Removes a class from the root element. |\n| `bindOnMDCTabSelectedEvent() => void` | Adds `MDCTab:selected` event listener to root |\n| `unbindOnMDCTabSelectedEvent() => void` | Removes `MDCTab:selected` event listener from root |\n| `registerResizeHandler(handler: EventListener) => void` | Adds an event listener to the root element, for a resize event. |\n| `deregisterResizeHandler(handler: EventListener) => void` | Removes an event listener from the root element, for a resize event. |\n| `getOffsetWidth() => number` | Returns width of root element. |\n| `setStyleForIndicator(propertyName: string, value: string) => void` | Sets style property for indicator. |\n| `getOffsetWidthForIndicator() => number` | Returns width of indicator. |\n| `notifyChange(evtData: Object) => void` | Emits `MDCTabBar:change` event, passes evtData. |\n| `getNumberOfTabs() => number` | Returns number of tabs in MDC Tabs instance. |\n| `getActiveTab() => MDCTab` | Returns the instance of MDCTab that is currently active. |\n| `isTabActiveAtIndex(index: number) => boolean` | Returns true if tab at index is active. |\n| `setTabActiveAtIndex(index: number) => void` | Sets tab active at given index. |\n| `isDefaultPreventedOnClickForTabAtIndex(index: number) => boolean` | Returns true if tab does not prevent default click action. |\n| `setPreventDefaultOnClickForTabAtIndex(index: number, preventDefaultOnClick: boolean)` | Sets preventDefaultOnClick for tab at given index |\n| `measureTabAtIndex(index: number) => void` | sets measurements (width, left offset) for tab at given index. |\n| `getComputedWidthForTabAtIndex(index: number) => number` | Returns width of tab at given index. |\n| `getComputedLeftForTabAtIndex(index: number) => number` | Returns left offset of tab at given index. |\n\n### The full foundation API\n\n#### MDCTabBarFoundation.layout() => void\n\nSets layout for the Tab Bar component.\n\n#### MDCTabBarFoundation.getActiveTabIndex() => number\n\nReturns index of currently active tab\n\n#### MDCTabBarFoundation.getComputedWidth() => number\n\nReturns the width of the element containing the tabs.\n\n#### MDCTabBarFoundation.switchToTabAtIndex(index, shouldNotify) => void\n\nUpdates the active tab to be the tab at the given index, emits `MDCTabBar:change` if `shouldNotify` is true.\n\n#### MDCTabBarFoundation.getActiveTabIndex() => number\n\nReturns the index of the currently active tab.\n\n## Tab Bar Scroller\n\n### Tab Bar Scroller component API\n\n#### Properties\n\n| Property Name | Type | Description |\n| --- | --- | --- |\n| `tabBar` | `MDCTabBar` | _(read-only)_ The scroller's tab bar. |\n\n#### MDCTabBarScroller.layout() => void\n\nProxies to the foundation's `layout()` method.\n\n### Using the Foundation Class\n\nMDC Tab Bar Scroller ships with an `MDCTabBarScrollerFoundation` class that external frameworks and libraries can use to integrate the component. As with all foundation classes, an adapter object must be provided.\n\n### Adapter API\n\n| Method Signature | Description |\n| --- | --- |\n| `addClass(className: string) => void` | Adds a class to the root element. |\n| `removeClass(className: string) => void` | Removes a class from the root element. |\n| `eventTargetHasClass(target: HTMLElement, className: string) => boolean` | Returns true if target has a given class name |\n| `addClassToForwardIndicator(className: string) => void` | Adds a given class to the forward indicator |\n| `removeClassFromForwardIndicator(className: string) => void` | Removes a given class from the forward indicator |\n| `addClassToBackIndicator(className: string) => void` | Adds a given class to the back indicator |\n| `removeClassFromBackIndicator(className: string) => void` | Removes a given class from the back indicator |\n| `isRTL() => boolean` | Returns true if in RTL context. False otherwise. |\n| `registerBackIndicatorClickHandler(handler: EventListener) => void` | Registers an event handler to be called when a `click` event happens on the back indicator |\n| `deregisterBackIndicatorClickHandler(handler: EventHandler) => void` | Deregisters an event handler from a `click` event happening on the back indicator |\n| `registerForwardIndicatorClickHandler(handler: EventHandler) => void` | Registers an event handler to be called when a `click` event happens on the forward indicator |\n| `deregisterForwardIndicatorClickHandler(handler: EventHandler) => void` | Deregisters an event handler from a `click` event happening on the forward indicator. |\n| `registerCapturedInteractionHandler(evt: string, handler: EventHandler) => void` | Registers an event handler to be called when a `focus`, `touchstart`, or `mousedown` event happens on the root of the component. These events gets dispatched to the listener during the capture phase. They also govern the scrolling behavior when tabs are tabbed to or actioned on. |\n| `deregisterCapturedInteractionHandler(evt: string, handler: EventHandler) => void` | Deregisters an event handler from a `focus`, `touchstart`, or `mousedown` events happening on the root of the component |\n| `registerWindowResizeHandler(handler: EventHandler) => void` | Registers an event handler to be called when a `resize` event happens on the `window` |\n| `deregisterWindowResizeHandler(handler: EventHandler) => void `| Deregisters an event handler from a `resize` event happening on the `window` |\n| `getNumberOfTabs() => number` | Returns the number of tabs in the scroller's tab bar |\n| `getComputedWidthForTabAtIndex(index: number) => number` | Returns the width of a tab at the given index |\n| `getComputedLeftForTabAtIndex(index: number) => number` | Returns the left offset of a tab at the given index |\n| `getOffsetWidthForScrollFrame() => number` | Returns the width of the scroll frame. This is the width of the visible tabs. |\n| `getScrollLeftForScrollFrame() => number` | Returns the `scrollLeft` value of the scroll frame |\n| `setScrollLeftForScrollFrame(scrollLeftAmount: number) => void` | Sets the value of `scrollLeft` for the scroll frame. |\n| `getOffsetWidthForTabBar() => number` | Returns the width of the _entire_ tab bar, including that which is occluded. |\n| `setTransformStyleForTabBar(value: string) => void` | Sets the `translateX` `transform` property for the tab bar. |\n| `getOffsetLeftForEventTarget(target: HTMLElement) => number`| Returns the left offset of a given element. |\n| `getOffsetWidthForEventTarget(target: HTMLElement) => number` | Returns the width of a given element. |\n\n### The full foundation API\n\n#### MDCTabBarScrollerFoundation.scrollBack() => void\n\nScrolls the tab bar such that the leftmost tab traverses the scroll frame and becomes the rightmost tab, potentially being partially, but not fully, occluded.\n\n#### MDCTabBarScrollerFoundation.scrollForward() => void\n\nScrolls the tab bar such that the rightmost tab traverses the scroll frame and becomes the leftmost tab. This tabs left offset will line up with the left edge of the scroll frame, and never be partially or fully occluded.\n\n> **NOTE:** Due to a quirk in event behavior, we allow the rightmost tab to be partially occluded even when tabbed to because clicking on such an element would shift the frame on the `focus` event. This would result in a scenario where the ripple persists and the intended tab would not be selected due to the tab bar shifting before the `mouseup` or `click` events get dispatched.\n\n#### MDCTabBarScrollerFoundation.scrollToTabAtIndex(index: number) => void\n\nScrolls the tab bar such that the tab at the index provided traverses the scroll frame and becomes the leftmost tab.\n\n#### MDCTabBarScrollerFoundation.layout() => void\n\nIf the tab bar is overflowing its available width, this method will reset the back and forward indicators to the correct states (visible/hidden) based on the new width.\n","readmeFilename":"README.md","bugs":{"url":"https://github.com/material-components/material-components-web/issues"},"homepage":"https://github.com/material-components/material-components-web#readme","_id":"@material/tabs@1.0.0-0","_nodeVersion":"10.14.2","_npmVersion":"6.8.0","dist":{"integrity":"sha512-MsZWaNrItkn4u6jB+DqcsEKWvZKMwCNeZ9hZ9YrGZ2WHdY0+aCddlA0cU3Jq3lQffPFhm7X9/ZIKPSY2AZQYpg==","shasum":"0c506204e6114ef242acf896827363af404047df","tarball":"https://registry.npmjs.org/@material/tabs/-/tabs-1.0.0-0.tgz","fileCount":69,"unpackedSize":1022000,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJcdyR5CRA9TVsSAnZWagAA14EP/1Pguf75ejLGV5HpVdf3\niXf1zBGiLIt2OpVKUmyRLylXNYQCsFVmM8DUYDy7I1dTekNo95Z8bPGxHG/a\na+/+U/TBPKLo55HAOCtsAdk31AdJmQm6wuRrWF4k+Ygo/OWsmQ7g3vWtzn5i\nL4KE3lljiZFUZGjH7uthDnGyVb5FvU6dz/NXKRQ//HL+LZWA4NojCzMIoHUh\n7E9XeVO33v13kBEvtdw+w/UcKBMQ70pWG1bajGk4WqghXagGkdB+clSvf5wt\nqiz1gf0UDtvSRZE7Rw7rAXBmj2le1dxcb928lvhxiPNbSuDzPOa35iFidgoG\nPvnrm0cPUCFqCD4e+sN6gXuHRPKLLx4gaCCja4pbfahHwfy1b18CPFWmaYez\n6SAs9wiahMiXW23o5D4cSPTJZqhC7M013O3Bt3EBMtx9Ep9TyW1j+6PO6XIs\ngNOlTs5QNdjpBVsTY0xX3wIC46bjtKvqOjNUc0QSb6YrxBItUt+Q7RGQDtjf\noKKqNBNanOLGYMxtgkCR5FqVLNTUVLN9/d/KyrutNGR+RbJ5LfrSgF10S1sz\nab/rO1fnwpGELjQ8qi94n7tps1sCaqDLd20T+Cn/mOWetyBexdfEU/uWYmDk\ngYw7BK/+XmCt9a+kJlrRPX8ElMep6RBblaqHXQXcGxPb/ocuU1N8yCDfaT1X\nRTKt\r\n=sKc8\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEYCIQDlY+TLNwTlomI15fsOVg60iM7RCvOCZbYA3Bt2bSQ5wQIhAKExBeXOgK0MF8aUymy3DGiiv1xBegHkkZmniPFIl1/p"}]},"maintainers":[{"email":"abhiomkar@gmail.com","name":"abhiomkar"},{"email":"acdvorak@gmail.com","name":"acdvorak"},{"email":"andrey.prigogin@gmail.com","name":"aprigogin"},{"email":"dfreedm2@gmail.com","name":"azakus"},{"email":"bicknellr@gmail.com","name":"bicknellr"},{"email":"bonniez@google.com","name":"bonniez"},{"email":"obrien.test@gmail.com","name":"bwobrien"},{"email":"kenneth.franqueiro@gmail.com","name":"kfranqueiro"},{"email":"lynnjepsen@google.com","name":"lynnjepsen"},{"email":"lynnjepsen+npm@google.com","name":"material-admin"},{"email":"mattgoo@gmail.com","name":"moog16"},{"email":"prodee@google.com","name":"patrickrodee"},{"email":"williamernest@google.com","name":"williamernest"}],"_npmUser":{"name":"acdvorak","email":"acdvorak@gmail.com"},"directories":{},"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/tabs_1.0.0-0_1551311993320_0.14345311153501372"},"_hasShrinkwrap":false},"1.0.0-1":{"name":"@material/tabs","version":"1.0.0-1","description":"The Material Components for the web tabs component","license":"MIT","main":"dist/mdc.tabs.js","module":"index.js","sideEffects":false,"types":"dist/mdc.tabs.d.ts","repository":{"type":"git","url":"git+https://github.com/material-components/material-components-web.git"},"keywords":["material components","material design","tabs"],"publishConfig":{"access":"public"},"dependencies":{"@material/animation":"^1.0.0-1","@material/base":"^1.0.0-1","@material/ripple":"^1.0.0-1","@material/rtl":"^0.42.0","@material/theme":"^1.0.0-1","@material/typography":"^1.0.0-1","tslib":"^1.9.3"},"readme":"<!--docs:\ntitle: \"Tabs (Deprecated)\"\nlayout: detail\nsection: components\nexcerpt: \"A tabbed navigation component.\"\niconId: tabs\npath: /catalog/tabs/legacy/\n-->\n\n## Important - Deprecation Notice\n\nThe `mdc-tabs` package is deprecated and no longer maintained, and is no longer included in the all-in-one\n`material-components-web` package. Improved functionality is available across the `mdc-tab-bar`, `mdc-tab-scroller`,\n`mdc-tab-indicator`, and `mdc-tab` packages, which are now included in the `material-components-web` package.\nBugs and feature requests will no longer be accepted for this package. It is recommended that you migrate to the new\npackages to continue to receive new features and updates.\n\n# MDC Tabs\n\nThe MDC Tabs component contains components which are used to create spec-aligned tabbed navigation components adhering to the\n[Material Design tabs guidelines](https://material.io/go/design-tabs). These components are:\n\n- **mdc-tab**: The individual tab elements\n- **mdc-tab-bar**: The main component which is composed of `mdc-tab` elements\n- **mdc-tab-bar-scroller**: The component which controls the horizontal scrolling behavior of an `mdc-tab-bar` that overflows its container\n\n## Design & API Documentation\n\n<ul class=\"icon-list\">\n  <li class=\"icon-list-item icon-list-item--spec\">\n    <a href=\"https://material.io/go/design-tabs\">Material Design guidelines: Tabs</a>\n  </li>\n  <li class=\"icon-list-item icon-list-item--link\">\n    <a href=\"https://material-components.github.io/material-components-web-catalog/#/component/tabs\">Demo</a>\n  </li>\n</ul>\n\n## Installation\n\n```\nnpm install @material/tabs\n```\n\n## Tabs usage\n\n`mdc-tab-bar` can be used as a CSS only component, or a more dynamic JavaScript\ncomponent.\n\nThere are also three different permutations of tab labels. These include text,\nicon-only, and text with icon. An example of each is available on the demo site.\n\n### Icons\n\nWe recommend using [Material Icons](https://material.io/tools/icons/) from Google Fonts:\n\n```html\n<head>\n  <link rel=\"stylesheet\" href=\"https://fonts.googleapis.com/icon?family=Material+Icons\">\n</head>\n```\n\nHowever, you can also use SVG, [Font Awesome](https://fontawesome.com/), or any other icon library you wish.\n\n#### Tab Bar with text labels\n\n```html\n<nav id=\"basic-tab-bar\" class=\"mdc-tab-bar\">\n  <a class=\"mdc-tab mdc-tab--active\" href=\"#one\">Home</a>\n  <a class=\"mdc-tab\" href=\"#two\">Merchandise</a>\n  <a class=\"mdc-tab\" href=\"#three\">About Us</a>\n  <span class=\"mdc-tab-bar__indicator\"></span>\n</nav>\n```\n\n#### Tab Bar with icon labels\n\n```html\n<nav class=\"mdc-tab-bar mdc-tab-bar--icon-tab-bar\">\n  <a class=\"mdc-tab mdc-tab--active\" href=\"#recents\">\n    <i class=\"material-icons mdc-tab__icon\" aria-label=\"Recents\">phone</i>\n  </a>\n  <a class=\"mdc-tab\" href=\"#favorites\">\n    <i class=\"material-icons mdc-tab__icon\" aria-label=\"Favorites\">favorite</i>\n  </a>\n  <a class=\"mdc-tab\" href=\"#nearby\">\n    <i class=\"material-icons mdc-tab__icon\" aria-label=\"nearby\">person_pin</i>\n  </a>\n  <span class=\"mdc-tab-bar__indicator\"></span>\n</nav>\n```\n\n#### Tab Bar with icon and text labels\n\n```html\n<nav id=\"icon-text-tab-bar\" class=\"mdc-tab-bar mdc-tab-bar--icons-with-text\">\n  <a class=\"mdc-tab mdc-tab--with-icon-and-text mdc-tab--active\" href=\"#recents\">\n    <i class=\"material-icons mdc-tab__icon\" aria-hidden=\"true\">phone</i>\n    <span class=\"mdc-tab__icon-text\">Recents</span>\n  </a>\n  <a class=\"mdc-tab mdc-tab--with-icon-and-text\" href=\"#favorites\">\n    <i class=\"material-icons mdc-tab__icon\" aria-hidden=\"true\">favorite</i>\n    <span class=\"mdc-tab__icon-text\">Favorites</span>\n  </a>\n  <a class=\"mdc-tab mdc-tab--with-icon-and-text\" href=\"#nearby\">\n    <i class=\"material-icons mdc-tab__icon\" aria-hidden=\"true\">person_pin</i>\n    <span class=\"mdc-tab__icon-text\">Nearby</span>\n  </a>\n  <span class=\"mdc-tab-bar__indicator\"></span>\n</nav>\n```\n\n#### CSS Only Support\n\nIn order for the indicator to appear, you will need to change your mark up if you are using CSS Only. Each `.mdc-tab` will have a child element with the class `.mdc-tab__indicator` as shown below:\n\n```html\n<nav id=\"basic-tab-bar\" class=\"mdc-tab-bar\">\n  <a class=\"mdc-tab mdc-tab--active\" href=\"#one\">\n    Home\n    <span class=\"mdc-tab__indicator\"></span>\n  </a>\n  <a class=\"mdc-tab\" href=\"#two\">\n    Merchandise\n    <span class=\"mdc-tab__indicator\"></span>\n  </a>\n  <a class=\"mdc-tab\" href=\"#three\">\n    About Us\n    <span class=\"mdc-tab__indicator\"></span>\n  </a>\n</nav>\n```\n\n#### RTL Support\n\nTab Bars will reverse the order of their tabs if they are placed within an\nancestor element with attribute `dir=\"rtl\"`.\n\n```html\n<html dir=\"rtl\">\n  <!--...-->\n  <nav id=\"basic-tab-bar\" class=\"mdc-tab-bar\">\n    <a class=\"mdc-tab mdc-tab--active\" href=\"#one\">Home</a>\n    <a class=\"mdc-tab\" href=\"#two\">Merchandise</a>\n    <a class=\"mdc-tab\" href=\"#three\">About Us</a>\n    <span class=\"mdc-tab-bar__indicator\"></span>\n  </nav>\n</html>\n```\n\n### Dynamic view switching\n\nWhile facilitating the view switching is left up to the developer, the demo site\nprovides a minimal example of how to do so using JavaScript, also shown below.\n\n#### Markup:\n```html\n<section id=\"dynamic-demo-toolbar\">\n  <nav id=\"dynamic-tab-bar\" class=\"mdc-tab-bar\" role=\"tablist\">\n    <a role=\"tab\" aria-controls=\"panel-1\"\n       class=\"mdc-tab mdc-tab--active\" href=\"#panel-1\">Item One</a>\n    <a role=\"tab\" aria-controls=\"panel-2\"\n       class=\"mdc-tab\" href=\"#panel-2\">Item Two</a>\n    <a role=\"tab\" aria-controls=\"panel-3\"\n       class=\"mdc-tab\" href=\"#panel-3\">Item Three</a>\n    <span class=\"mdc-tab-bar__indicator\"></span>\n  </nav>\n</section>\n<section>\n  <div class=\"panels\">\n    <p class=\"panel active\" id=\"panel-1\" role=\"tabpanel\" aria-hidden=\"false\">Item One</p>\n    <p class=\"panel\" id=\"panel-2\" role=\"tabpanel\" aria-hidden=\"true\">Item Two</p>\n    <p class=\"panel\" id=\"panel-3\" role=\"tabpanel\" aria-hidden=\"true\">Item Three</p>\n  </div>\n  <div class=\"dots\">\n    <a class=\"dot active\" data-trigger=\"panel-1\" href=\"#panel-1\"></a>\n    <a class=\"dot\" data-trigger=\"panel-2\" href=\"#panel-2\"></a>\n    <a class=\"dot\" data-trigger=\"panel-3\" href=\"#panel-3\"></a>\n  </div>\n</section>\n```\n\n#### Script:\n\n```js\nvar dynamicTabBar = window.dynamicTabBar = new mdc.tabs.MDCTabBar(document.querySelector('#dynamic-tab-bar'));\nvar dots = document.querySelector('.dots');\nvar panels = document.querySelector('.panels');\n\ndynamicTabBar.tabs.forEach(function(tab) {\n  tab.preventDefaultOnClick = true;\n});\n\nfunction updateDot(index) {\n  var activeDot = dots.querySelector('.dot.active');\n  if (activeDot) {\n    activeDot.classList.remove('active');\n  }\n  var newActiveDot = dots.querySelector('.dot:nth-child(' + (index + 1) + ')');\n  if (newActiveDot) {\n    newActiveDot.classList.add('active');\n  }\n}\n\nfunction updatePanel(index) {\n  var activePanel = panels.querySelector('.panel.active');\n  if (activePanel) {\n    activePanel.classList.remove('active');\n  }\n  var newActivePanel = panels.querySelector('.panel:nth-child(' + (index + 1) + ')');\n  if (newActivePanel) {\n    newActivePanel.classList.add('active');\n  }\n}\n\ndynamicTabBar.listen('MDCTabBar:change', function ({detail: tabs}) {\n  var nthChildIndex = tabs.activeTabIndex;\n\n  updatePanel(nthChildIndex);\n  updateDot(nthChildIndex);\n});\n\ndots.addEventListener('click', function (evt) {\n  if (!evt.target.classList.contains('dot')) {\n    return;\n  }\n\n  evt.preventDefault();\n\n  var dotIndex = [].slice.call(dots.querySelectorAll('.dot')).indexOf(evt.target);\n\n  if (dotIndex >= 0) {\n    dynamicTabBar.activeTabIndex = dotIndex;\n  }\n\n  updatePanel(dotIndex);\n  updateDot(dotIndex);\n})\n```\n\n### Sass Mixins\n\nTo customize the ink color of any part of the tab, use the following mixins. We recommend you apply these mixins within CSS selectors like `.foo-tab:not(.mdc-tab--active)` to select your inactive tabs, `foo-tab:hover` to select the hover state of your tabs, and `.foo-tab.mdc-tab--active` to select your active tabs.\n\n#### `mdc-tab-ink-color`\n\nUse this mixin to set the color of all ink on the tab.\n\n#### `mdc-tab-icon-ink-color`\n\nThis mixin customizes the icon ink color.\n\n#### `mdc-tab-label-ink-color`\n\nThis mixin customizes the label ink color.\n\n#### `mdc-tab-bar-indicator-ink-color`\n\nThis mixin customizes the indicator ink color.\n\n### Using the CSS-Only Component\n\n`mdc-tab-bar` ships with css for styling a tab layout according to the Material\nDesign spec. To use CSS only tab bars, simply use the available class names.\nNote the available `mdc-tab--active` modifier class. This is used to denote the\ncurrently active tab.\n\n```html\n<nav class=\"mdc-tab-bar\">\n  <a class=\"mdc-tab mdc-tab--active\" href=\"#one\">Item One</a>\n  <a class=\"mdc-tab\" href=\"#two\">Item Two</a>\n  <a class=\"mdc-tab\" href=\"#three\">Three</a>\n  <span class=\"mdc-tab-bar__indicator\"></span>\n</nav>\n```\n\n### Using the JavaScript Component\n\n`mdc-tab-bar` ships with a Component/Foundation combo for ingesting instances of `mdc-tab` (a tab).\n`mdc-tab-bar` uses its `initialize()` method call a factory function which gathers and instantiates\nany tab elements that are children of the `mdc-tab-bar` root element.\n\n#### Including in code\n\n##### ES Modules\n\n```javascript\nimport {MDCTab, MDCTabFoundation} from '@material/tabs';\nimport {MDCTabBar, MDCTabBarFoundation} from '@material/tabs';\n```\n\n##### CommonJS\n\n```javascript\nconst mdcTabs = require('@material/tabs');\nconst MDCTab = mdcTabs.MDCTab;\nconst MDCTabFoundation = mdcTabs.MDCTabFoundation;\n\nconst MDCTabBar = mdcTabs.MDCTabBar;\nconst MDCTabBarFoundation = mdcTabs.MDCTabBarFoundation;\n```\n\n##### AMD\n\n```javascript\nrequire(['path/to/@material/tabs'], mdcTabs => {\n  const MDCTab = mdcTabs.MDCTab;\n  const MDCTabFoundation = mdcTabs.MDCTabFoundation;\n\n  const MDCTabBar = mdcTabs.MDCTabBar;\n  const MDCTabBarFoundation = mdcTabs.MDCTabBarFoundation;\n});\n```\n\n##### Global\n\n```javascript\nconst MDCTab = mdc.tabs.MDCTab;\nconst MDCTabFoundation = mdc.tabs.MDCTabFoundation;\n\nconst MDCTabBar = mdc.tabs.MDCTabBar;\nconst MDCTabBarFoundation = mdc.tabs.MDCTabBarFoundation;\n```\n\n#### Automatic Instantiation\n\nIf you do not care about retaining the component instance for the tabs, simply\ncall `attachTo()` and pass it a DOM element.\n\n```javascript\nmdc.tabs.MDCTabBar.attachTo(document.querySelector('#my-mdc-tab-bar'));\n```\n\n#### Manual Instantiation\n\nTabs can easily be initialized using their default constructors as well, similar\nto `attachTo`. This process involves a factory to create an instance of MDCTab\nfrom each tab Element inside of the `mdc-tab-bar` node during the initialization phase\nof `MDCTabBar`, e.g.:\n\n```html\n<nav id=\"my-mdc-tab-bar\" class=\"mdc-tab-bar\">\n  <a class=\"mdc-tab mdc-tab--active\" href=\"#one\">Item One</a>\n  <a class=\"mdc-tab\" href=\"#two\">Item Two</a>\n  <a class=\"mdc-tab\" href=\"#three\">Three</a>\n  <span class=\"mdc-tab-bar__indicator\"></span>\n</nav>\n```\n\n```javascript\nimport {MDCTabBar, MDCTabBarFoundation} from '@material/tabs';\n\nconst tabBar = new MDCTabBar(document.querySelector('#my-mdc-tab-bar'));\n```\n\n### Using the JavaScript Tab Bar Scroller Component\n\n`mdc-tab-bar-scroller` ships with a Component/Foundation combo which wraps instances of `mdc-tab-bar`. `mdc-tab-bar-scroller` uses its `initialize()` method call a factory function which gathers and instantiates any tab bar elements that are children of the `mdc-tab-bar-scroller` root element.\n\nThe anatomy of `mdc-tab-bar-scroller` includes an instance of `mdc-tab-bar`, RTL-aware forward and back indicators which, when actioned on, move the tab bar left and right, and a scroll frame. The scroll frame is the parent element of the tab bar, and serves to mask the tabs in the tab bar when they overflow the available width.\n\n#### Including in code\n\n##### ES Module syntax\n\n```javascript\nimport {MDCTab, MDCTabFoundation} from '@material/tabs';\nimport {MDCTabBar, MDCTabBarFoundation} from '@material/tabs';\nimport {MDCTabBarScroller, MDCTabBarFoundationScroller} from '@material/tabs';\n```\n\n##### CommonJS\n\n```javascript\nconst mdcTabs = require('@material/tabs');\nconst MDCTab = mdcTabs.MDCTab;\nconst MDCTabFoundation = mdcTabs.MDCTabFoundation;\n\nconst MDCTabBar = mdcTabs.MDCTabBar;\nconst MDCTabBarFoundation = mdcTabs.MDCTabBarFoundation;\n\nconst MDCTabBarScroller = mdcTabs.MDCTabBarScroller;\nconst MDCTabBarScrollerFoundation = mdcTabs.MDCTabBarScrollerFoundation;\n```\n\n##### AMD\n\n```javascript\nrequire(['path/to/@material/tabs'], mdcTabs => {\n  const MDCTab = mdcTabs.MDCTab;\n  const MDCTabFoundation = mdcTabs.MDCTabFoundation;\n\n  const MDCTabBar = mdcTabs.MDCTabBar;\n  const MDCTabBarFoundation = mdcTabs.MDCTabBarFoundation;\n\n  const MDCTabBarScroller = mdcTabs.MDCTabBarScroller;\n  const MDCTabBarScrollerFoundation = mdcTabs.MDCTabBarScrollerFoundation;\n});\n```\n\n##### Global\n\n```javascript\nconst MDCTab = mdc.tabs.MDCTab;\nconst MDCTabFoundation = mdc.tabs.MDCTabFoundation;\n\nconst MDCTabBar = mdc.tabs.MDCTabBar;\nconst MDCTabBarFoundation = mdc.tabs.MDCTabBarFoundation;\n\nconst MDCTabBarScroller = mdc.tabs.MDCTabBarScroller;\nconst MDCTabBarScrollerFoundation = mdc.tabs.MDCTabBarScrollerFoundation;\n```\n\n#### Automatic Instantiation\n\nIf you do not care about retaining the component instance for the tabs, simply\ncall `attachTo()` and pass it a DOM element.\n\n```javascript\nmdc.tabs.MDCTabBarScroller.attachTo(document.querySelector('#my-mdc-tab-bar-scroller'));\n```\n\n#### Manual Instantiation\n\nTab Bar Scrollers can easily be initialized using their default constructors as well, similar\nto `attachTo`. This process involves a factory to create an instance of `MDCTabBar`\nfrom the `mdc-tab-bar` Element inside of the `mdc-tab-bar-scroller` node during the initialization phase\nof `MDCTabBarScroller`, e.g.:\n\n```html\n<div id=\"my-mdc-tab-bar-scroller\" class=\"mdc-tab-bar-scroller\">\n  <div class=\"mdc-tab-bar-scroller__indicator mdc-tab-bar-scroller__indicator--back\">\n    <a class=\"mdc-tab-bar-scroller__indicator__inner material-icons\" href=\"#\" aria-label=\"scroll back button\">\n      navigate_before\n    </a>\n  </div>\n  <div class=\"mdc-tab-bar-scroller__scroll-frame\">\n    <nav id=\"my-scrollable-tab-bar\" class=\"mdc-tab-bar mdc-tab-bar-scroller__scroll-frame__tabs\">\n      <a class=\"mdc-tab mdc-tab--active\" href=\"#one\">Item One</a>\n      <a class=\"mdc-tab\" href=\"#two\">Item Two</a>\n      <a class=\"mdc-tab\" href=\"#three\">Item Three</a>\n      <a class=\"mdc-tab\" href=\"#four\">Item Four</a>\n      <a class=\"mdc-tab\" href=\"#five\">Item Five</a>\n      <a class=\"mdc-tab\" href=\"#six\">Item Six</a>\n      <a class=\"mdc-tab\" href=\"#seven\">Item Seven</a>\n      <a class=\"mdc-tab\" href=\"#eight\">Item Eight</a>\n      <a class=\"mdc-tab\" href=\"#nine\">Item Nine</a>\n      <span class=\"mdc-tab-bar__indicator\"></span>\n    </nav>\n  </div>\n  <div class=\"mdc-tab-bar-scroller__indicator mdc-tab-bar-scroller__indicator--forward\">\n    <a class=\"mdc-tab-bar-scroller__indicator__inner material-icons\" href=\"#\" aria-label=\"scroll forward button\">\n      navigate_next\n    </a>\n  </div>\n</div>\n```\n\n```javascript\nimport {MDCTabBarScroller, MDCTabBarScrollerFoundation} from '@material/tabs';\n\nconst tabBarScroller = new MDCTabBarScroller(document.querySelector('#my-mdc-tab-bar-scroller'));\n```\n\nTab Bar Scrollers can also instantiate any `mdc-tab-bar` from a DOM element on the fly using a built in factory function:\n\n```js\nimport {MDCTabBarScroller, MDCTabBarScrollerFoundation} from '@material/tabs';\n\nconst tabBarEl = document.querySelector('#my-mdc-tab-bar');\nconst scrollerEl = document.querySelector('#my-mdc-tab-bar-scroller');\n\nconst tabBarScroller = new MDCTabBarScroller(scrollerEl, undefined, tabBarEl);\n```\n\nThis will create an instance of MDC Tab Bar during the initialization phase of Tab Bar Scroller.\n\n## Tab\n\n### Tab component API\n\n#### Properties\n\n| Property Name | Type | Description |\n| --- | --- | --- |\n| `computedWidth` | `number` | _(read-only)_ The width of the tab. |\n| `computedLeft` | `number` | _(read-only)_ The left offset of the tab. |\n| `isActive` | `boolean` | Whether or not the tab is active. Setting this makes the tab active. |\n| `preventDefaultOnClick` | `boolean` | Whether or not the tab will call `preventDefault()` on an event. Setting this makes the tab call `preventDefault()` on events. |\n\n### Tab Events\n\n#### MDCTab:selected\n\nBroadcast when a user actions on the tab.\n\n### Using the Foundation Class\n\nMDC Tab ships with an `MDCTabFoundation` class that external frameworks and libraries can\nuse to integrate the component. As with all foundation classes, an adapter object must be provided.\n\n### Adapter API\n\n| Method Signature | Description |\n| --- | --- |\n| `addClass(className: string) => void` | Adds a class to the root element. |\n| `removeClass(className: string) => void` | Removes a class from the root element. |\n| `registerInteractionHandler(evt: string, handler: EventListener) => void` | Adds an event listener to the root element, for the specified event name. |\n| `deregisterInteractionHandler(evt: string, handler: EventListener) => void` | Removes an event listener from the root element, for the specified event name. |\n| `getOffsetWidth() => number` | Return the width of the tab |\n| `getOffsetLeft() => number` | Return distance between left edge of tab and left edge of its parent element |\n| `notifySelected() => {}` | Broadcasts an event denoting that the user has actioned on the tab |\n\n### The full foundation API\n\n#### MDCTabFoundation.getComputedWidth() => number\n\nReturn the computed width for tab.\n\n#### MDCTabFoundation.getComputedLeft() => number\n\nReturn the computed left offset for tab.\n\n#### MDCTabFoundation.isActive() => boolean\n\nReturn true if tab is active.\n\n#### MDCTabFoundation.setActive(isActive = false) => void\n\nSet tab to active. If `isActive` is true, adds the active modifier class, otherwise removes it.\n\n#### MDCTabFoundation.preventsDefaultOnClick() => boolean\n\nReturn true if the tab prevents the default click action\n\n#### MDCTabFoundation.setPreventDefaultOnClick(preventDefaultOnClick = false) => void\n\nSets tabs `preventDefaultOnClick` property to the value of the `preventDefaultOnClick` argument passed.\n\n#### MDCTabFoundation.measureSelf() => void\n\nSets `computedWidth_` and `computedLeft_` for a tab.\n\n## Tab Bar\n\n### Tab Bar component API\n\n#### Properties\n\n| Property Name | Type | Description |\n| --- | --- | --- |\n| `tabs` | `MDCTab[]` | _(read-only)_ An array of the tab bar's instances of MDC Tab. |\n| `activeTab` | `MDCTab` | The currently active tab. Setting this makes the tab active. |\n| `activeTabIndex` | `number` | The index of the currently active tab. Setting this makes the tab at the given index active. |\n\n#### MDCTabBar.layout() => void\n\nProxies to the foundation's `layout()` method.\n\n### Tab Bar Events\n\n#### MDCTabBar:change\n\nBroadcast when a user actions on a tab, resulting in a change in the selected tab.\n\n### Using the Foundation Class\n\n`mdc-tab-bar` ships with an `MDCTabBarFoundation` class that external frameworks\nand libraries can use to integrate the component. As with all foundation\nclasses, an adapter object must be provided.\n\n### Adapter API\n\n| Method Signature | Description |\n| --- | --- |\n| `addClass(className: string) => void` | Adds a class to the root element. |\n| `removeClass(className: string) => void` | Removes a class from the root element. |\n| `bindOnMDCTabSelectedEvent() => void` | Adds `MDCTab:selected` event listener to root |\n| `unbindOnMDCTabSelectedEvent() => void` | Removes `MDCTab:selected` event listener from root |\n| `registerResizeHandler(handler: EventListener) => void` | Adds an event listener to the root element, for a resize event. |\n| `deregisterResizeHandler(handler: EventListener) => void` | Removes an event listener from the root element, for a resize event. |\n| `getOffsetWidth() => number` | Returns width of root element. |\n| `setStyleForIndicator(propertyName: string, value: string) => void` | Sets style property for indicator. |\n| `getOffsetWidthForIndicator() => number` | Returns width of indicator. |\n| `notifyChange(evtData: Object) => void` | Emits `MDCTabBar:change` event, passes evtData. |\n| `getNumberOfTabs() => number` | Returns number of tabs in MDC Tabs instance. |\n| `getActiveTab() => MDCTab` | Returns the instance of MDCTab that is currently active. |\n| `isTabActiveAtIndex(index: number) => boolean` | Returns true if tab at index is active. |\n| `setTabActiveAtIndex(index: number) => void` | Sets tab active at given index. |\n| `isDefaultPreventedOnClickForTabAtIndex(index: number) => boolean` | Returns true if tab does not prevent default click action. |\n| `setPreventDefaultOnClickForTabAtIndex(index: number, preventDefaultOnClick: boolean)` | Sets preventDefaultOnClick for tab at given index |\n| `measureTabAtIndex(index: number) => void` | sets measurements (width, left offset) for tab at given index. |\n| `getComputedWidthForTabAtIndex(index: number) => number` | Returns width of tab at given index. |\n| `getComputedLeftForTabAtIndex(index: number) => number` | Returns left offset of tab at given index. |\n\n### The full foundation API\n\n#### MDCTabBarFoundation.layout() => void\n\nSets layout for the Tab Bar component.\n\n#### MDCTabBarFoundation.getActiveTabIndex() => number\n\nReturns index of currently active tab\n\n#### MDCTabBarFoundation.getComputedWidth() => number\n\nReturns the width of the element containing the tabs.\n\n#### MDCTabBarFoundation.switchToTabAtIndex(index, shouldNotify) => void\n\nUpdates the active tab to be the tab at the given index, emits `MDCTabBar:change` if `shouldNotify` is true.\n\n#### MDCTabBarFoundation.getActiveTabIndex() => number\n\nReturns the index of the currently active tab.\n\n## Tab Bar Scroller\n\n### Tab Bar Scroller component API\n\n#### Properties\n\n| Property Name | Type | Description |\n| --- | --- | --- |\n| `tabBar` | `MDCTabBar` | _(read-only)_ The scroller's tab bar. |\n\n#### MDCTabBarScroller.layout() => void\n\nProxies to the foundation's `layout()` method.\n\n### Using the Foundation Class\n\nMDC Tab Bar Scroller ships with an `MDCTabBarScrollerFoundation` class that external frameworks and libraries can use to integrate the component. As with all foundation classes, an adapter object must be provided.\n\n### Adapter API\n\n| Method Signature | Description |\n| --- | --- |\n| `addClass(className: string) => void` | Adds a class to the root element. |\n| `removeClass(className: string) => void` | Removes a class from the root element. |\n| `eventTargetHasClass(target: HTMLElement, className: string) => boolean` | Returns true if target has a given class name |\n| `addClassToForwardIndicator(className: string) => void` | Adds a given class to the forward indicator |\n| `removeClassFromForwardIndicator(className: string) => void` | Removes a given class from the forward indicator |\n| `addClassToBackIndicator(className: string) => void` | Adds a given class to the back indicator |\n| `removeClassFromBackIndicator(className: string) => void` | Removes a given class from the back indicator |\n| `isRTL() => boolean` | Returns true if in RTL context. False otherwise. |\n| `registerBackIndicatorClickHandler(handler: EventListener) => void` | Registers an event handler to be called when a `click` event happens on the back indicator |\n| `deregisterBackIndicatorClickHandler(handler: EventHandler) => void` | Deregisters an event handler from a `click` event happening on the back indicator |\n| `registerForwardIndicatorClickHandler(handler: EventHandler) => void` | Registers an event handler to be called when a `click` event happens on the forward indicator |\n| `deregisterForwardIndicatorClickHandler(handler: EventHandler) => void` | Deregisters an event handler from a `click` event happening on the forward indicator. |\n| `registerCapturedInteractionHandler(evt: string, handler: EventHandler) => void` | Registers an event handler to be called when a `focus`, `touchstart`, or `mousedown` event happens on the root of the component. These events gets dispatched to the listener during the capture phase. They also govern the scrolling behavior when tabs are tabbed to or actioned on. |\n| `deregisterCapturedInteractionHandler(evt: string, handler: EventHandler) => void` | Deregisters an event handler from a `focus`, `touchstart`, or `mousedown` events happening on the root of the component |\n| `registerWindowResizeHandler(handler: EventHandler) => void` | Registers an event handler to be called when a `resize` event happens on the `window` |\n| `deregisterWindowResizeHandler(handler: EventHandler) => void `| Deregisters an event handler from a `resize` event happening on the `window` |\n| `getNumberOfTabs() => number` | Returns the number of tabs in the scroller's tab bar |\n| `getComputedWidthForTabAtIndex(index: number) => number` | Returns the width of a tab at the given index |\n| `getComputedLeftForTabAtIndex(index: number) => number` | Returns the left offset of a tab at the given index |\n| `getOffsetWidthForScrollFrame() => number` | Returns the width of the scroll frame. This is the width of the visible tabs. |\n| `getScrollLeftForScrollFrame() => number` | Returns the `scrollLeft` value of the scroll frame |\n| `setScrollLeftForScrollFrame(scrollLeftAmount: number) => void` | Sets the value of `scrollLeft` for the scroll frame. |\n| `getOffsetWidthForTabBar() => number` | Returns the width of the _entire_ tab bar, including that which is occluded. |\n| `setTransformStyleForTabBar(value: string) => void` | Sets the `translateX` `transform` property for the tab bar. |\n| `getOffsetLeftForEventTarget(target: HTMLElement) => number`| Returns the left offset of a given element. |\n| `getOffsetWidthForEventTarget(target: HTMLElement) => number` | Returns the width of a given element. |\n\n### The full foundation API\n\n#### MDCTabBarScrollerFoundation.scrollBack() => void\n\nScrolls the tab bar such that the leftmost tab traverses the scroll frame and becomes the rightmost tab, potentially being partially, but not fully, occluded.\n\n#### MDCTabBarScrollerFoundation.scrollForward() => void\n\nScrolls the tab bar such that the rightmost tab traverses the scroll frame and becomes the leftmost tab. This tabs left offset will line up with the left edge of the scroll frame, and never be partially or fully occluded.\n\n> **NOTE:** Due to a quirk in event behavior, we allow the rightmost tab to be partially occluded even when tabbed to because clicking on such an element would shift the frame on the `focus` event. This would result in a scenario where the ripple persists and the intended tab would not be selected due to the tab bar shifting before the `mouseup` or `click` events get dispatched.\n\n#### MDCTabBarScrollerFoundation.scrollToTabAtIndex(index: number) => void\n\nScrolls the tab bar such that the tab at the index provided traverses the scroll frame and becomes the leftmost tab.\n\n#### MDCTabBarScrollerFoundation.layout() => void\n\nIf the tab bar is overflowing its available width, this method will reset the back and forward indicators to the correct states (visible/hidden) based on the new width.\n","readmeFilename":"README.md","bugs":{"url":"https://github.com/material-components/material-components-web/issues"},"homepage":"https://github.com/material-components/material-components-web#readme","_id":"@material/tabs@1.0.0-1","_nodeVersion":"10.9.0","_npmVersion":"6.7.0","dist":{"integrity":"sha512-55L5H6x+1nJvkgqL5e1Xv5ujSneOHHEtpqzFKr8o+cTvjRFpiZjaxde6jo+Z9jJfO0bDM92QWDGLEse7LpHaIw==","shasum":"2e6f53dde7483f1fe773b3b0f73e461c1155d71a","tarball":"https://registry.npmjs.org/@material/tabs/-/tabs-1.0.0-1.tgz","fileCount":69,"unpackedSize":1022230,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJcfbXYCRA9TVsSAnZWagAAR3EP/iKhVeDiJQ9RUsztRjw8\ny/QpYHSF6yoJEPZZhCuFjD3p2Xq1+BOaPNCMYa0aMaex4iMvv5eO7Tr2j5+E\nLDQ/RBrfSEuldQJFBVzJEI070+uJZAXA5JvA3QAs0rLMwhv4spA6jMsj8J3F\nRYnrp0F9Vsm+qt2lI/ybV8wAyDST9oiOqnf/BmYiNcy7U3BXaGdMkm5Fz0jC\nHnuN2RlCpLybuk7tuyLGnVomGuYPskZik64iCMILhds4M0OCw47w4sVD8NVq\nrZXIxAugC2R5YOce86MvAFbNLFwhB3nsnTwFMpVHbd3kbapsV37CBboNcMwb\nvkxeDj8do86HB7qm77zWrLG0lv1f9GYzHPfNhHfyaODRQ4f98dE2TiB1yOac\n71aKqPcYXQszpV1KXeR/Ihs83eZa6XZ4tmqFAwLsHwEq6mjXMDLpgQsm6gbr\niTc27SKkVO2IEPkKBcegkEkv7P/rKWcn6qSFiOY9yQbTXGjFPtnXqNvaAYmT\nB9dhjrt22M+01R2pdFufob7LxZy4cN1dYwEic2LknPCh+Z7FLLJqhhfxI1xe\nItadx7ooGLRF8FbUU8PHNj5mX5EN0jK19wqBQJT6IanknKZH523UcvIpsDON\neAD8WGrK6TSorAq8kZUB3DCoF0eXepO879vRn9epwak1OZw2UICeTMXtA5TC\njhvj\r\n=FBvG\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEQCIEynsjL+r0UKd5t5hS6Cuy1fhiRHfTV9a1cY12u2ZNN/AiAVNlZpUYX+EYQKCSHW3cyQkBVSGQGW1ZEK4OY9fcQaXw=="}]},"maintainers":[{"email":"abhiomkar@gmail.com","name":"abhiomkar"},{"email":"acdvorak@gmail.com","name":"acdvorak"},{"email":"andrey.prigogin@gmail.com","name":"aprigogin"},{"email":"dfreedm2@gmail.com","name":"azakus"},{"email":"bicknellr@gmail.com","name":"bicknellr"},{"email":"bonniez@google.com","name":"bonniez"},{"email":"obrien.test@gmail.com","name":"bwobrien"},{"email":"kenneth.franqueiro@gmail.com","name":"kfranqueiro"},{"email":"lynnjepsen@google.com","name":"lynnjepsen"},{"email":"lynnjepsen+npm@google.com","name":"material-admin"},{"email":"mattgoo@gmail.com","name":"moog16"},{"email":"prodee@google.com","name":"patrickrodee"},{"email":"williamernest@google.com","name":"williamernest"}],"_npmUser":{"name":"kfranqueiro","email":"kenneth.franqueiro@gmail.com"},"directories":{},"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/tabs_1.0.0-1_1551742423299_0.7923203309659592"},"_hasShrinkwrap":false},"1.0.0":{"name":"@material/tabs","version":"1.0.0","description":"The Material Components for the web tabs component","license":"MIT","main":"dist/mdc.tabs.js","module":"index.js","sideEffects":false,"types":"dist/mdc.tabs.d.ts","repository":{"type":"git","url":"git+https://github.com/material-components/material-components-web.git"},"keywords":["material components","material design","tabs"],"publishConfig":{"access":"public"},"dependencies":{"@material/animation":"^1.0.0","@material/base":"^1.0.0","@material/ripple":"^1.0.0","@material/rtl":"^0.42.0","@material/theme":"^1.0.0","@material/typography":"^1.0.0","tslib":"^1.9.3"},"bugs":{"url":"https://github.com/material-components/material-components-web/issues"},"homepage":"https://github.com/material-components/material-components-web#readme","_id":"@material/tabs@1.0.0","_nodeVersion":"10.9.0","_npmVersion":"6.7.0","dist":{"integrity":"sha512-AtM/zY0nYooaPgs4Ltm+JRRmkoONHYsgVlAO/PThGMxB2IHihrNA6ad38zqON18SuoBl4A03KplcFCyP+NBHlA==","shasum":"5aab4ea6c0430b7564886fd38bc32c8552290b7a","tarball":"https://registry.npmjs.org/@material/tabs/-/tabs-1.0.0.tgz","fileCount":69,"unpackedSize":1022218,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJcgDbSCRA9TVsSAnZWagAAxAwQAI6w0X8VkWEnSFaNhhl7\n5/Ss2goYiJk03IcR9IfLRXbRXxDunDeJsHXhIubGoVq/OF/Oj4lw24edDict\nIy+Y3EPR5LBMMb7nruvEx1gKjaVwE+1xAXeQVGMEsBOIQxCGXW6PHbtCQqVA\nMfCa8Yh+2z1Q+19a7idKj78gGYnWYwkVAc5VBzGNurHQ8Y6SUesJy2QoSaXg\nmosbN1Dh7S3+bmI12JnOoG4NyExd3JzhtY4/pbxWMOpQxrde3EomGHnh+aLl\n37RnXqJd+uTxIWUZERf/ABB6uUPU14xneA3QlCTj4jPXRpywp1QXO0bJXJNW\njgaGerH8BsOMj3EIiVfTm3FTxrEiK48/4yvtrm3Gk9tle1G8ODHXFRGGhY9P\nTcPOtM4pRdsezUKVcKOqgTWnHDvvHILxXgFDk/Ea1iI5pXjURpUhXTbx+cRR\n7c37y6NeXx5PGZHQ2S5sNik0irrVjewLaphdDb5JbBpeA+Y2nW1KZ98Qt/9L\nwF/zQdnOmxNIfiZdtDYfbbeo0ywYzTwDGX16tpk+MqYDzdh9GWoQcO6Fztu7\ng1G9rRMHPH2ZXrw4oEMt6dNlAkVi9HX4dDwEkbNr3bXyu+ZdUgSRr6mEg0vG\nk13Pv6hytUtirRC2yiRU+V2HVnWbNg8ZxFpMlVGHmnw+WFvQ56KGS+idQ4z2\nRT4H\r\n=GYBm\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEQCIAxuDQx+luF4tBqf7bpvLea9Q2HFUNw4+BZZG5ZdZrLrAiAgyekUoq7Hlc3twk7QoGzqOKOjpG1Z+6z8zZkOwpKH+Q=="}]},"maintainers":[{"email":"abhiomkar@gmail.com","name":"abhiomkar"},{"email":"acdvorak@gmail.com","name":"acdvorak"},{"email":"andrey.prigogin@gmail.com","name":"aprigogin"},{"email":"dfreedm2@gmail.com","name":"azakus"},{"email":"bicknellr@gmail.com","name":"bicknellr"},{"email":"bonniez@google.com","name":"bonniez"},{"email":"obrien.test@gmail.com","name":"bwobrien"},{"email":"kenneth.franqueiro@gmail.com","name":"kfranqueiro"},{"email":"lynnjepsen@google.com","name":"lynnjepsen"},{"email":"lynnjepsen+npm@google.com","name":"material-admin"},{"email":"mattgoo@gmail.com","name":"moog16"},{"email":"prodee@google.com","name":"patrickrodee"},{"email":"williamernest@google.com","name":"williamernest"}],"_npmUser":{"name":"kfranqueiro","email":"kenneth.franqueiro@gmail.com"},"directories":{},"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/tabs_1.0.0_1551906513372_0.8112486478259027"},"_hasShrinkwrap":false},"1.0.1":{"name":"@material/tabs","version":"1.0.1","description":"The Material Components for the web tabs component","license":"MIT","main":"dist/mdc.tabs.js","module":"index.js","sideEffects":false,"types":"dist/mdc.tabs.d.ts","repository":{"type":"git","url":"git+https://github.com/material-components/material-components-web.git"},"keywords":["material components","material design","tabs"],"publishConfig":{"access":"public"},"dependencies":{"@material/animation":"^1.0.0","@material/base":"^1.0.0","@material/ripple":"^1.0.1","@material/rtl":"^0.42.0","@material/theme":"^1.0.0","@material/typography":"^1.0.0","tslib":"^1.9.3"},"bugs":{"url":"https://github.com/material-components/material-components-web/issues"},"homepage":"https://github.com/material-components/material-components-web#readme","_id":"@material/tabs@1.0.1","_nodeVersion":"10.15.3","_npmVersion":"6.9.0","dist":{"integrity":"sha512-7MxADnD2TkY7WHYE1lNGJxpex+oRZBQwygG+/kOfX+Oqcqkp07vV4hRmG9cEBKi8ApQp3rOKe7rWLuc8Ahtwvw==","shasum":"6bb1871538a2ec6f10fb50ff51032ff3fbba5d18","tarball":"https://registry.npmjs.org/@material/tabs/-/tabs-1.0.1.tgz","fileCount":69,"unpackedSize":879456,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJchtwzCRA9TVsSAnZWagAALPcP/RrDtTaIBMhk/OWPjFGo\n+750Ac49+eOYME5WDFXZ+NUxVQJmgqubO8V4FH/gi2xraH6vLid0EQ/sqMpX\nsQrpg9k4YW7bYUKVyHW7IwglQwieTTwatMRz8+Pf1fWAEv7UvSYnWQrUa5up\nBXUao0rtBeC93ecN1sj5cSqLG1KgIPJGsbVCRAdClyeV5DdA/sfzTnOSpRZh\nY6KMOk0JGHgjA2rX1Q6j31uoP+FGx+8PxySpI1k8dc1a+ohDgTLonKdnZXtl\nGmqoyw1SCRgUXXo3CO9PoPCBzMcaDxSZg6d30yEoS3FbdwW47K5ivw3fwfqh\nUxmWnZd0NSieEvibCYTytfkJch64+++JFu2C80dW9QVP2vUAjvl6ppJ0JGjP\nTulywVLFrZkSUYMLc+j3YQlZD/ZcW9upZ8GQjFvjeXyMKNQ+ZXJwUUjeupeZ\nZqO9wmZ9m/59M2/Qn5w4T0fZl9eNVJ8xVkCqRU+a7fbhOSMeHIVxLjga/07B\nc+hq3cjArACOfrC4SroCggMR3nhvOf/0LxEfF8+AIkUHiXSbnbyQyLTVxbAx\ncdNoaAju56vsgq9+do8+OtKnEpIEgkjk/b6va+XIH2q9lPfDRrivzA0uPncp\n8rP0UG/vPeYrdi5sPdJ30WNAQ7Ffuk2Hk0YZjPq8gmgS3REXtC8LfAREHfPh\n3brW\r\n=8Uqk\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIAVqV1N6iYwWoISyoFlGuR9fONAbG2N+nWNWWO2KdwvhAiEAxr2l2Y6j/u1r4AUKdl0uq+Kl6L5GiosJM631+Vge2oA="}]},"maintainers":[{"email":"abhiomkar@gmail.com","name":"abhiomkar"},{"email":"acdvorak@gmail.com","name":"acdvorak"},{"email":"andrey.prigogin@gmail.com","name":"aprigogin"},{"email":"dfreedm2@gmail.com","name":"azakus"},{"email":"bicknellr@gmail.com","name":"bicknellr"},{"email":"bonniez@google.com","name":"bonniez"},{"email":"obrien.test@gmail.com","name":"bwobrien"},{"email":"kenneth.franqueiro@gmail.com","name":"kfranqueiro"},{"email":"lynnjepsen@google.com","name":"lynnjepsen"},{"email":"lynnjepsen+npm@google.com","name":"material-admin"},{"email":"mattgoo@gmail.com","name":"moog16"},{"email":"prodee@google.com","name":"patrickrodee"},{"email":"williamernest@google.com","name":"williamernest"}],"_npmUser":{"name":"kfranqueiro","email":"kenneth.franqueiro@gmail.com"},"directories":{},"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/tabs_1.0.1_1552342066190_0.7538249143966036"},"_hasShrinkwrap":false},"1.1.0":{"name":"@material/tabs","version":"1.1.0","description":"The Material Components for the web tabs component","license":"MIT","main":"dist/mdc.tabs.js","module":"index.js","sideEffects":false,"types":"dist/mdc.tabs.d.ts","repository":{"type":"git","url":"git+https://github.com/material-components/material-components-web.git"},"keywords":["material components","material design","tabs"],"publishConfig":{"access":"public"},"dependencies":{"@material/animation":"^1.0.0","@material/base":"^1.0.0","@material/ripple":"^1.1.0","@material/rtl":"^0.42.0","@material/theme":"^1.1.0","@material/typography":"^1.0.0","tslib":"^1.9.3"},"bugs":{"url":"https://github.com/material-components/material-components-web/issues"},"homepage":"https://github.com/material-components/material-components-web#readme","_id":"@material/tabs@1.1.0","_nodeVersion":"10.15.3","_npmVersion":"6.9.0","dist":{"integrity":"sha512-HC7g/D6rEejwuv4NBifOFm45X0V6GBFZtvDU7PJnUdFrVy1zTf5QZzbVp4gfOdtBwbaqnEIjl/JeJfPjeKr6Kg==","shasum":"75b859ae5bee135e9ff9e19d772caff1d35d5342","tarball":"https://registry.npmjs.org/@material/tabs/-/tabs-1.1.0.tgz","fileCount":69,"unpackedSize":880261,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJcmnzYCRA9TVsSAnZWagAAppoP/Rp3lI/x9sy0h8DrbW0S\ndgt0rY2dAGCXmleFH3VqB8s0uuM3wdNn0IibBkhuK790fPmMuoSLIA0g171W\nLOUyPrUYdZmlU6fm5+ZmZehLpj+dXJz+Eyz85KUawcjwsyq+ctqA1oBDvqac\n8oKlyREWNMFFAt/kmV8UJUDv21Jlz2dWq80uu723XXEjvc+QGmVyTM29P1FA\nUv4x8H7J8rrLqqR1ShirbvPTjjzxnkHHkPXbmFcUL8qGWQpywEGKF1j6pAoF\nW7FCOHD/6IZe/oV7a0d/Qg1ljpzWJGoUSJn/Z34ACfUKravoYdNqTN4FrEhE\nLxm6Px9hst8NTjKDd/4m0+QQBaCyPIlJaCMtXDMpxDn9zL2/oK9E8adEyAVI\nK9176xkmohbXuKY6BZjYEGXwffki8r+zbd1PW29c6HMfx6ttAf+ejx0hebTo\nAsC6E/UGRoOVsZ/GPS3vsFoiRI7+AAsoZCvV8bziInUUWvbi1KJ8qE94Hp4b\np2lqLXE5RawBz9jGCKoH1ZPu0tJE4dKIFoaLIOE3ioSJDC7UPMp6Rh9gOyuy\nqtdepfz7vDCXcaRkXGax6diJni+GfFgtJETWhnuseJDId8tp+e2U0vGxEzyD\nlKgRvp6rQYh0sdPONjH8xQFnt6m3aIHH2qTdCillsVc4SPZ2xM34XOGhe/G0\newtn\r\n=jShq\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEYCIQDBdXFQTAwfGqX0aF/3/nVWOa1dAUbDRmUwMjNP+0bofwIhALhnSKnYTJMpZpXkf9UlWLWZPU+o7cFjyZAZd2qSrcrQ"}]},"maintainers":[{"email":"abhiomkar@gmail.com","name":"abhiomkar"},{"email":"acdvorak@gmail.com","name":"acdvorak"},{"email":"andrey.prigogin@gmail.com","name":"aprigogin"},{"email":"dfreedm2@gmail.com","name":"azakus"},{"email":"bicknellr@gmail.com","name":"bicknellr"},{"email":"bonniez@google.com","name":"bonniez"},{"email":"obrien.test@gmail.com","name":"bwobrien"},{"email":"kenneth.franqueiro@gmail.com","name":"kfranqueiro"},{"email":"lynnjepsen@google.com","name":"lynnjepsen"},{"email":"lynnjepsen+npm@google.com","name":"material-admin"},{"email":"mattgoo@gmail.com","name":"moog16"},{"email":"prodee@google.com","name":"patrickrodee"},{"email":"williamernest@google.com","name":"williamernest"}],"_npmUser":{"name":"kfranqueiro","email":"kenneth.franqueiro@gmail.com"},"directories":{},"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/tabs_1.1.0_1553628375891_0.8337949981195898"},"_hasShrinkwrap":false},"2.0.0":{"name":"@material/tabs","version":"2.0.0","description":"The Material Components for the web tabs component","license":"MIT","main":"dist/mdc.tabs.js","module":"index.js","sideEffects":false,"types":"dist/mdc.tabs.d.ts","repository":{"type":"git","url":"git+https://github.com/material-components/material-components-web.git"},"keywords":["material components","material design","tabs"],"publishConfig":{"access":"public"},"dependencies":{"@material/animation":"^1.0.0","@material/base":"^1.0.0","@material/ripple":"^2.0.0","@material/rtl":"^0.42.0","@material/theme":"^1.1.0","@material/typography":"^1.0.0","tslib":"^1.9.3"},"bugs":{"url":"https://github.com/material-components/material-components-web/issues"},"homepage":"https://github.com/material-components/material-components-web#readme","_id":"@material/tabs@2.0.0","_nodeVersion":"10.13.0","_npmVersion":"6.8.0","dist":{"integrity":"sha512-JHuAujDlKZ5zpfs9Wmin7Tg4lxJG/TDq6sWhcReHLQAy9335YhaxrMPKGzniYeHFwzj+lY789mAg7hKKdJj+ow==","shasum":"871ddb5ce108cc05d57d536d0b3653ae251c771c","tarball":"https://registry.npmjs.org/@material/tabs/-/tabs-2.0.0.tgz","fileCount":69,"unpackedSize":992331,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJcxzcCCRA9TVsSAnZWagAAZdYQAJwWaFQYKg+BCACCroYt\nEbIToZC0VKxrn1svvGMIgTe3mmW1x3XOKQC4S1BmkqWtC9ZKNSBReHlwSnXj\ncg02Jx3aCyYbvXUuvrmuZ8YZjToEHKIfIVtWWznFcuAENdnsM8j7Ptis40yH\ndMlFyq4TlqS4fqY5U8+DFILMsT9LK+WSjYvexG1Usln9Xz1Kkn+9zyBwAClu\ngse/ibu4Op0LrDbXJdAI3nWu3i8yXwh2zRc/lSoCuiX86EkBRH+EJFYsF4Mn\nQ9A0htLBoduLD3aQQ4NGZKwSn+qMt094PXTe99DXwxl8NtP+aRSHqUKswsnV\nFl+QWLC5A4ueySufLOaAe6OGT24+CSnFv7Vw6x17m+6dduWBPgK6/tzu619I\n6IXb0E3+SdYbr6nPnJXs9Q1lfGJzKRpbgaT5NIbWjlrHGfq+6PBlpcNsg/Ye\nQC/icTLOZyN5AD0pBwRGvd7H37ATf81fxHezyYTuRht90MYWd2IPA7+Roe1q\nDvNTnb+uFA/baUTZIivcsRSMlx9mcgN3C3QtUzpSTvcq4sm9USMEq+MKRwxn\ne1jYblo8mB6xN2YeuY6XlWfXmkkoL25SjJwiwwbS2akHn0CLP7IFNceQbT4M\nFtYgZWxWutGwqF5Wj2/1og/5A4MQ7QqAnfKqg2tdflFsxrK//IUtycajVuLE\nrgz2\r\n=F0yt\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIHFc0MXEQuoZbxJpIxJZ85gWMaGejcIhQlLInzw8K9C4AiEA0YcuwfU3CQ+r6nnZtyv63eBqil8iJ8tflNHs/0YsPHw="}]},"maintainers":[{"email":"abhiomkar@gmail.com","name":"abhiomkar"},{"email":"acdvorak@gmail.com","name":"acdvorak"},{"email":"andrey.prigogin@gmail.com","name":"aprigogin"},{"email":"dfreedm2@gmail.com","name":"azakus"},{"email":"bicknellr@gmail.com","name":"bicknellr"},{"email":"bonniez@google.com","name":"bonniez"},{"email":"obrien.test@gmail.com","name":"bwobrien"},{"email":"kenneth.franqueiro@gmail.com","name":"kfranqueiro"},{"email":"lynnjepsen@google.com","name":"lynnjepsen"},{"email":"lynnjepsen+npm@google.com","name":"material-admin"},{"email":"mattgoo@gmail.com","name":"moog16"},{"email":"prodee@google.com","name":"patrickrodee"},{"email":"williamernest@google.com","name":"williamernest"}],"_npmUser":{"name":"moog16","email":"mattgoo@gmail.com"},"directories":{},"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/tabs_2.0.0_1556559617623_0.905870164980342"},"_hasShrinkwrap":false},"2.1.1":{"name":"@material/tabs","version":"2.1.1","description":"The Material Components for the web tabs component","license":"MIT","main":"dist/mdc.tabs.js","module":"index.js","sideEffects":false,"types":"dist/mdc.tabs.d.ts","repository":{"type":"git","url":"git+https://github.com/material-components/material-components-web.git"},"keywords":["material components","material design","tabs"],"publishConfig":{"access":"public"},"dependencies":{"@material/animation":"^1.0.0","@material/base":"^1.0.0","@material/ripple":"^2.1.1","@material/rtl":"^0.42.0","@material/theme":"^1.1.0","@material/typography":"^1.0.0","tslib":"^1.9.3"},"bugs":{"url":"https://github.com/material-components/material-components-web/issues"},"homepage":"https://github.com/material-components/material-components-web#readme","_id":"@material/tabs@2.1.1","_npmVersion":"6.5.0","_nodeVersion":"11.9.0","_npmUser":{"name":"abhiomkar","email":"abhiomkar@gmail.com"},"dist":{"integrity":"sha512-rYhFqvxOX+fk1rA92fKEg5+++QZ+DSKYgDgedlb9THutx8bN49zXy2FCHOu+net/JseC4pqVjoAEo0lDHBPH5A==","shasum":"ac2e6c6d0617b19bab1a5b42be0331213accb0ad","tarball":"https://registry.npmjs.org/@material/tabs/-/tabs-2.1.1.tgz","fileCount":69,"unpackedSize":992179,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJc1bQHCRA9TVsSAnZWagAAyuwP/ApVHOZv6yFuE0J/ZE9H\nF1DMQRHleLp84TGWYHxi76+lO2sE8YKGB/pBvIa9/6mMe5eLjm9OQjl5eFgK\nX/+SZZ3DV90nDCIsZ8RNlFbuBQt8DbtcNT9cWulhJpYaW/DjFloR1DmWSyRY\nO++8dmR7QjNIAizk+M+yTRpNscy/4Dha/VmBW85YqmnaH7A+At39oGgBxS1o\nUzozZqqGRnZTUx0I0VsP5wnFg5tOS27T4VMVs571jEi760gXN1R2tl7IJnQo\nZDoP52prNGjOIlxrRS2GXfZaDQjS8Xbb/LthfM2VANfvgnOihje3F3ZKUbKu\nStv/O5+vQQLx3RiGTl9qqgw2nO42SyevB32ZY++fToR6aF85wyOxPz1aOZzW\nE1ikwZP9pyzQ8jQqEv/8kOFhqc7CuMi8HT2PkKae1dXEb0F3cCX9uVE64mkv\nOdJPWmOF2cJqF65yYeec/on1yh3Ft2lv+zmDCexzdMkeBX1jYa2UTNhAN8Hh\ned0/fHOYfIWu44p7Gjqrc/7Z/M2MTTj/Aj7rBEgew0CiDodwNJ8m1R7Srr3i\nzQEDPFwLgiTMPDpmgT1mJG6bUMjFXWe/Zlbe+gflTNoBJVKRLZWXGu091cbs\ne852t6Gnp2gFCfNO3kREeBtxXx2dNvpZhTSGqse4lW+tYdzB/E8lkii7SuHq\n6CV0\r\n=wlqL\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEYCIQCqaklnBkuzjXVbz95uSVmqO2zVdlOTsPoldl8x9f4jFAIhAJw18Pck+BeSC0OY0TPNeTa4wbGKTAgvfnkGkpE4Sd/l"}]},"maintainers":[{"email":"abhiomkar@gmail.com","name":"abhiomkar"},{"email":"acdvorak@gmail.com","name":"acdvorak"},{"email":"andrey.prigogin@gmail.com","name":"aprigogin"},{"email":"dfreedm2@gmail.com","name":"azakus"},{"email":"bicknellr@gmail.com","name":"bicknellr"},{"email":"bonniez@google.com","name":"bonniez"},{"email":"obrien.test@gmail.com","name":"bwobrien"},{"email":"kenneth.franqueiro@gmail.com","name":"kfranqueiro"},{"email":"lynnjepsen@google.com","name":"lynnjepsen"},{"email":"lynnjepsen+npm@google.com","name":"material-admin"},{"email":"mattgoo@gmail.com","name":"moog16"},{"email":"prodee@google.com","name":"patrickrodee"},{"email":"williamernest@google.com","name":"williamernest"}],"directories":{},"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/tabs_2.1.1_1557509126847_0.9528907407188252"},"_hasShrinkwrap":false},"2.3.0":{"name":"@material/tabs","version":"2.3.0","description":"The Material Components for the web tabs component","license":"MIT","main":"dist/mdc.tabs.js","module":"index.js","sideEffects":false,"types":"dist/mdc.tabs.d.ts","repository":{"type":"git","url":"git+https://github.com/material-components/material-components-web.git"},"keywords":["material components","material design","tabs"],"publishConfig":{"access":"public"},"dependencies":{"@material/animation":"^1.0.0","@material/base":"^1.0.0","@material/ripple":"^2.3.0","@material/rtl":"^0.42.0","@material/theme":"^1.1.0","@material/typography":"^2.3.0","tslib":"^1.9.3"},"bugs":{"url":"https://github.com/material-components/material-components-web/issues"},"homepage":"https://github.com/material-components/material-components-web#readme","_id":"@material/tabs@2.3.0","_nodeVersion":"10.13.0","_npmVersion":"6.8.0","dist":{"integrity":"sha512-EeLy/w8foV3+NT1K0hb86CZk+Z4zatamfDUQICYyNeEDSytq4INaMwzw0n2By1Zy0mM4e0fRrnSeSgznyXqRdg==","shasum":"b1f9fe0be6e2e6f3945910e75b9bb7be93f01f02","tarball":"https://registry.npmjs.org/@material/tabs/-/tabs-2.3.0.tgz","fileCount":69,"unpackedSize":1000747,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJc7ab4CRA9TVsSAnZWagAAM64P+QBQNSmrK/jDI7CROGuz\n5xbCmLx2nPOxOtT1AXhfR8y7g0rXKkiy/bN+Qt/6Hz1uc64U9O2I6n92FPP/\nYzammfTNj1uctdaz7ziQ4Uq5X3xv1bsGg7lEBjcd6FhMbGdqk597yL7BhnsT\nNrFhAtIhpcC4cB5zyP+DNjAU8n4nRdsC33t6RrqAKGwR2SRBxiPOx2Y/ntr5\nxIAz1YgHMHC9MbLQZMQR2J+tJY9ISbP7dMK0VKouG4dzsV3+9TwA59+iVPCz\nj8HU/AbD+eDpM3PuX7Ljx7Mba+aNSe3I+SZzxtlwYaMKB5Q4SzXbgV9QTzpg\nIc8VoD3vj+oK2nTFl5YEX2R1kaPe86eqcSdhyvgu2t8GvNN7894Bd+q9xWXc\nc/0wdsydhv0hJ53i/R7/L/cnTkllbHSnKDrkBDnBAYcy+DKzC9FEcOK52cbi\nGGWbgv4NOZNVhPnWTCx3JNVBuuvYtVa7885barYNci9eVJ3T/L+scWtXui6C\ndEGYu3688ubykB2SjXGxs2s7+/M6tzl+qqRhSDN7but3hX5m85Uw9PmzNTrL\nqjU0D3DrGwdzuMKoBDz0Nw2Ua72c9XfJfZT9oPweDd2t2WZg/sOkphkswE2U\nY+UvhwU3n8iOky6x83CXNDdF6ncVqG8tSkr0xHSShvtl0u+hICO2O6d6kao9\nvwQc\r\n=yQ5Y\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIQDNqL3/nmKkAgm0tvqQJ0ANgPwSLWUojNsQHiyudDu7zwIgQNsYiGXz72Poe6Qddvy3bAomjtKHuCPuw+jAZ26sw2s="}]},"maintainers":[{"email":"abhiomkar@gmail.com","name":"abhiomkar"},{"email":"acdvorak@gmail.com","name":"acdvorak"},{"email":"andrey.prigogin@gmail.com","name":"aprigogin"},{"email":"dfreedm2@gmail.com","name":"azakus"},{"email":"bicknellr@gmail.com","name":"bicknellr"},{"email":"bonniez@google.com","name":"bonniez"},{"email":"obrien.test@gmail.com","name":"bwobrien"},{"email":"kenneth.franqueiro@gmail.com","name":"kfranqueiro"},{"email":"lynnjepsen@google.com","name":"lynnjepsen"},{"email":"lynnjepsen+npm@google.com","name":"material-admin"},{"email":"mattgoo@gmail.com","name":"moog16"},{"email":"prodee@google.com","name":"patrickrodee"},{"email":"williamernest@google.com","name":"williamernest"}],"_npmUser":{"name":"moog16","email":"mattgoo@gmail.com"},"directories":{},"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/tabs_2.3.0_1559078647228_0.3448951953977488"},"_hasShrinkwrap":false},"3.0.0-alpha.0":{"name":"@material/tabs","version":"3.0.0-alpha.0","description":"The Material Components for the web tabs component","license":"MIT","main":"dist/mdc.tabs.js","module":"index.js","sideEffects":false,"types":"dist/mdc.tabs.d.ts","repository":{"type":"git","url":"git+https://github.com/material-components/material-components-web.git"},"keywords":["material components","material design","tabs"],"publishConfig":{"access":"public"},"dependencies":{"@material/animation":"^1.0.0","@material/base":"^1.0.0","@material/ripple":"^3.0.0-alpha.0","@material/rtl":"^0.42.0","@material/theme":"^3.0.0-alpha.0","@material/typography":"^3.0.0-alpha.0","tslib":"^1.9.3"},"gitHead":"094e507fcfb488303e5adec97f7f985b30e8567e","readme":"<!--docs:\ntitle: \"Tabs (Deprecated)\"\nlayout: detail\nsection: components\nexcerpt: \"A tabbed navigation component.\"\niconId: tabs\npath: /catalog/tabs/legacy/\n-->\n\n## Important - Deprecation Notice\n\nThe `mdc-tabs` package is deprecated and no longer maintained, and is no longer included in the all-in-one\n`material-components-web` package. Improved functionality is available across the `mdc-tab-bar`, `mdc-tab-scroller`,\n`mdc-tab-indicator`, and `mdc-tab` packages, which are now included in the `material-components-web` package.\nBugs and feature requests will no longer be accepted for this package. It is recommended that you migrate to the new\npackages to continue to receive new features and updates.\n\n# MDC Tabs\n\nThe MDC Tabs component contains components which are used to create spec-aligned tabbed navigation components adhering to the\n[Material Design tabs guidelines](https://material.io/go/design-tabs). These components are:\n\n- **mdc-tab**: The individual tab elements\n- **mdc-tab-bar**: The main component which is composed of `mdc-tab` elements\n- **mdc-tab-bar-scroller**: The component which controls the horizontal scrolling behavior of an `mdc-tab-bar` that overflows its container\n\n## Design & API Documentation\n\n<ul class=\"icon-list\">\n  <li class=\"icon-list-item icon-list-item--spec\">\n    <a href=\"https://material.io/go/design-tabs\">Material Design guidelines: Tabs</a>\n  </li>\n  <li class=\"icon-list-item icon-list-item--link\">\n    <a href=\"https://material-components.github.io/material-components-web-catalog/#/component/tabs\">Demo</a>\n  </li>\n</ul>\n\n## Installation\n\n```\nnpm install @material/tabs\n```\n\n## Tabs usage\n\n`mdc-tab-bar` can be used as a CSS only component, or a more dynamic JavaScript\ncomponent.\n\nThere are also three different permutations of tab labels. These include text,\nicon-only, and text with icon. An example of each is available on the demo site.\n\n### Icons\n\nWe recommend using [Material Icons](https://material.io/tools/icons/) from Google Fonts:\n\n```html\n<head>\n  <link rel=\"stylesheet\" href=\"https://fonts.googleapis.com/icon?family=Material+Icons\">\n</head>\n```\n\nHowever, you can also use SVG, [Font Awesome](https://fontawesome.com/), or any other icon library you wish.\n\n#### Tab Bar with text labels\n\n```html\n<nav id=\"basic-tab-bar\" class=\"mdc-tab-bar\">\n  <a class=\"mdc-tab mdc-tab--active\" href=\"#one\">Home</a>\n  <a class=\"mdc-tab\" href=\"#two\">Merchandise</a>\n  <a class=\"mdc-tab\" href=\"#three\">About Us</a>\n  <span class=\"mdc-tab-bar__indicator\"></span>\n</nav>\n```\n\n#### Tab Bar with icon labels\n\n```html\n<nav class=\"mdc-tab-bar mdc-tab-bar--icon-tab-bar\">\n  <a class=\"mdc-tab mdc-tab--active\" href=\"#recents\">\n    <i class=\"material-icons mdc-tab__icon\" aria-label=\"Recents\">phone</i>\n  </a>\n  <a class=\"mdc-tab\" href=\"#favorites\">\n    <i class=\"material-icons mdc-tab__icon\" aria-label=\"Favorites\">favorite</i>\n  </a>\n  <a class=\"mdc-tab\" href=\"#nearby\">\n    <i class=\"material-icons mdc-tab__icon\" aria-label=\"nearby\">person_pin</i>\n  </a>\n  <span class=\"mdc-tab-bar__indicator\"></span>\n</nav>\n```\n\n#### Tab Bar with icon and text labels\n\n```html\n<nav id=\"icon-text-tab-bar\" class=\"mdc-tab-bar mdc-tab-bar--icons-with-text\">\n  <a class=\"mdc-tab mdc-tab--with-icon-and-text mdc-tab--active\" href=\"#recents\">\n    <i class=\"material-icons mdc-tab__icon\" aria-hidden=\"true\">phone</i>\n    <span class=\"mdc-tab__icon-text\">Recents</span>\n  </a>\n  <a class=\"mdc-tab mdc-tab--with-icon-and-text\" href=\"#favorites\">\n    <i class=\"material-icons mdc-tab__icon\" aria-hidden=\"true\">favorite</i>\n    <span class=\"mdc-tab__icon-text\">Favorites</span>\n  </a>\n  <a class=\"mdc-tab mdc-tab--with-icon-and-text\" href=\"#nearby\">\n    <i class=\"material-icons mdc-tab__icon\" aria-hidden=\"true\">person_pin</i>\n    <span class=\"mdc-tab__icon-text\">Nearby</span>\n  </a>\n  <span class=\"mdc-tab-bar__indicator\"></span>\n</nav>\n```\n\n#### CSS Only Support\n\nIn order for the indicator to appear, you will need to change your mark up if you are using CSS Only. Each `.mdc-tab` will have a child element with the class `.mdc-tab__indicator` as shown below:\n\n```html\n<nav id=\"basic-tab-bar\" class=\"mdc-tab-bar\">\n  <a class=\"mdc-tab mdc-tab--active\" href=\"#one\">\n    Home\n    <span class=\"mdc-tab__indicator\"></span>\n  </a>\n  <a class=\"mdc-tab\" href=\"#two\">\n    Merchandise\n    <span class=\"mdc-tab__indicator\"></span>\n  </a>\n  <a class=\"mdc-tab\" href=\"#three\">\n    About Us\n    <span class=\"mdc-tab__indicator\"></span>\n  </a>\n</nav>\n```\n\n#### RTL Support\n\nTab Bars will reverse the order of their tabs if they are placed within an\nancestor element with attribute `dir=\"rtl\"`.\n\n```html\n<html dir=\"rtl\">\n  <!--...-->\n  <nav id=\"basic-tab-bar\" class=\"mdc-tab-bar\">\n    <a class=\"mdc-tab mdc-tab--active\" href=\"#one\">Home</a>\n    <a class=\"mdc-tab\" href=\"#two\">Merchandise</a>\n    <a class=\"mdc-tab\" href=\"#three\">About Us</a>\n    <span class=\"mdc-tab-bar__indicator\"></span>\n  </nav>\n</html>\n```\n\n### Dynamic view switching\n\nWhile facilitating the view switching is left up to the developer, the demo site\nprovides a minimal example of how to do so using JavaScript, also shown below.\n\n#### Markup:\n```html\n<section id=\"dynamic-demo-toolbar\">\n  <nav id=\"dynamic-tab-bar\" class=\"mdc-tab-bar\" role=\"tablist\">\n    <a role=\"tab\" aria-controls=\"panel-1\"\n       class=\"mdc-tab mdc-tab--active\" href=\"#panel-1\">Item One</a>\n    <a role=\"tab\" aria-controls=\"panel-2\"\n       class=\"mdc-tab\" href=\"#panel-2\">Item Two</a>\n    <a role=\"tab\" aria-controls=\"panel-3\"\n       class=\"mdc-tab\" href=\"#panel-3\">Item Three</a>\n    <span class=\"mdc-tab-bar__indicator\"></span>\n  </nav>\n</section>\n<section>\n  <div class=\"panels\">\n    <p class=\"panel active\" id=\"panel-1\" role=\"tabpanel\" aria-hidden=\"false\">Item One</p>\n    <p class=\"panel\" id=\"panel-2\" role=\"tabpanel\" aria-hidden=\"true\">Item Two</p>\n    <p class=\"panel\" id=\"panel-3\" role=\"tabpanel\" aria-hidden=\"true\">Item Three</p>\n  </div>\n  <div class=\"dots\">\n    <a class=\"dot active\" data-trigger=\"panel-1\" href=\"#panel-1\"></a>\n    <a class=\"dot\" data-trigger=\"panel-2\" href=\"#panel-2\"></a>\n    <a class=\"dot\" data-trigger=\"panel-3\" href=\"#panel-3\"></a>\n  </div>\n</section>\n```\n\n#### Script:\n\n```js\nvar dynamicTabBar = window.dynamicTabBar = new mdc.tabs.MDCTabBar(document.querySelector('#dynamic-tab-bar'));\nvar dots = document.querySelector('.dots');\nvar panels = document.querySelector('.panels');\n\ndynamicTabBar.tabs.forEach(function(tab) {\n  tab.preventDefaultOnClick = true;\n});\n\nfunction updateDot(index) {\n  var activeDot = dots.querySelector('.dot.active');\n  if (activeDot) {\n    activeDot.classList.remove('active');\n  }\n  var newActiveDot = dots.querySelector('.dot:nth-child(' + (index + 1) + ')');\n  if (newActiveDot) {\n    newActiveDot.classList.add('active');\n  }\n}\n\nfunction updatePanel(index) {\n  var activePanel = panels.querySelector('.panel.active');\n  if (activePanel) {\n    activePanel.classList.remove('active');\n  }\n  var newActivePanel = panels.querySelector('.panel:nth-child(' + (index + 1) + ')');\n  if (newActivePanel) {\n    newActivePanel.classList.add('active');\n  }\n}\n\ndynamicTabBar.listen('MDCTabBar:change', function ({detail: tabs}) {\n  var nthChildIndex = tabs.activeTabIndex;\n\n  updatePanel(nthChildIndex);\n  updateDot(nthChildIndex);\n});\n\ndots.addEventListener('click', function (evt) {\n  if (!evt.target.classList.contains('dot')) {\n    return;\n  }\n\n  evt.preventDefault();\n\n  var dotIndex = [].slice.call(dots.querySelectorAll('.dot')).indexOf(evt.target);\n\n  if (dotIndex >= 0) {\n    dynamicTabBar.activeTabIndex = dotIndex;\n  }\n\n  updatePanel(dotIndex);\n  updateDot(dotIndex);\n})\n```\n\n### Sass Mixins\n\nTo customize the ink color of any part of the tab, use the following mixins. We recommend you apply these mixins within CSS selectors like `.foo-tab:not(.mdc-tab--active)` to select your inactive tabs, `foo-tab:hover` to select the hover state of your tabs, and `.foo-tab.mdc-tab--active` to select your active tabs.\n\n#### `mdc-tab-ink-color`\n\nUse this mixin to set the color of all ink on the tab.\n\n#### `mdc-tab-icon-ink-color`\n\nThis mixin customizes the icon ink color.\n\n#### `mdc-tab-label-ink-color`\n\nThis mixin customizes the label ink color.\n\n#### `mdc-tab-bar-indicator-ink-color`\n\nThis mixin customizes the indicator ink color.\n\n### Using the CSS-Only Component\n\n`mdc-tab-bar` ships with css for styling a tab layout according to the Material\nDesign spec. To use CSS only tab bars, simply use the available class names.\nNote the available `mdc-tab--active` modifier class. This is used to denote the\ncurrently active tab.\n\n```html\n<nav class=\"mdc-tab-bar\">\n  <a class=\"mdc-tab mdc-tab--active\" href=\"#one\">Item One</a>\n  <a class=\"mdc-tab\" href=\"#two\">Item Two</a>\n  <a class=\"mdc-tab\" href=\"#three\">Three</a>\n  <span class=\"mdc-tab-bar__indicator\"></span>\n</nav>\n```\n\n### Using the JavaScript Component\n\n`mdc-tab-bar` ships with a Component/Foundation combo for ingesting instances of `mdc-tab` (a tab).\n`mdc-tab-bar` uses its `initialize()` method call a factory function which gathers and instantiates\nany tab elements that are children of the `mdc-tab-bar` root element.\n\n#### Including in code\n\n##### ES Modules\n\n```javascript\nimport {MDCTab, MDCTabFoundation} from '@material/tabs';\nimport {MDCTabBar, MDCTabBarFoundation} from '@material/tabs';\n```\n\n##### CommonJS\n\n```javascript\nconst mdcTabs = require('@material/tabs');\nconst MDCTab = mdcTabs.MDCTab;\nconst MDCTabFoundation = mdcTabs.MDCTabFoundation;\n\nconst MDCTabBar = mdcTabs.MDCTabBar;\nconst MDCTabBarFoundation = mdcTabs.MDCTabBarFoundation;\n```\n\n##### AMD\n\n```javascript\nrequire(['path/to/@material/tabs'], mdcTabs => {\n  const MDCTab = mdcTabs.MDCTab;\n  const MDCTabFoundation = mdcTabs.MDCTabFoundation;\n\n  const MDCTabBar = mdcTabs.MDCTabBar;\n  const MDCTabBarFoundation = mdcTabs.MDCTabBarFoundation;\n});\n```\n\n##### Global\n\n```javascript\nconst MDCTab = mdc.tabs.MDCTab;\nconst MDCTabFoundation = mdc.tabs.MDCTabFoundation;\n\nconst MDCTabBar = mdc.tabs.MDCTabBar;\nconst MDCTabBarFoundation = mdc.tabs.MDCTabBarFoundation;\n```\n\n#### Automatic Instantiation\n\nIf you do not care about retaining the component instance for the tabs, simply\ncall `attachTo()` and pass it a DOM element.\n\n```javascript\nmdc.tabs.MDCTabBar.attachTo(document.querySelector('#my-mdc-tab-bar'));\n```\n\n#### Manual Instantiation\n\nTabs can easily be initialized using their default constructors as well, similar\nto `attachTo`. This process involves a factory to create an instance of MDCTab\nfrom each tab Element inside of the `mdc-tab-bar` node during the initialization phase\nof `MDCTabBar`, e.g.:\n\n```html\n<nav id=\"my-mdc-tab-bar\" class=\"mdc-tab-bar\">\n  <a class=\"mdc-tab mdc-tab--active\" href=\"#one\">Item One</a>\n  <a class=\"mdc-tab\" href=\"#two\">Item Two</a>\n  <a class=\"mdc-tab\" href=\"#three\">Three</a>\n  <span class=\"mdc-tab-bar__indicator\"></span>\n</nav>\n```\n\n```javascript\nimport {MDCTabBar, MDCTabBarFoundation} from '@material/tabs';\n\nconst tabBar = new MDCTabBar(document.querySelector('#my-mdc-tab-bar'));\n```\n\n### Using the JavaScript Tab Bar Scroller Component\n\n`mdc-tab-bar-scroller` ships with a Component/Foundation combo which wraps instances of `mdc-tab-bar`. `mdc-tab-bar-scroller` uses its `initialize()` method call a factory function which gathers and instantiates any tab bar elements that are children of the `mdc-tab-bar-scroller` root element.\n\nThe anatomy of `mdc-tab-bar-scroller` includes an instance of `mdc-tab-bar`, RTL-aware forward and back indicators which, when actioned on, move the tab bar left and right, and a scroll frame. The scroll frame is the parent element of the tab bar, and serves to mask the tabs in the tab bar when they overflow the available width.\n\n#### Including in code\n\n##### ES Module syntax\n\n```javascript\nimport {MDCTab, MDCTabFoundation} from '@material/tabs';\nimport {MDCTabBar, MDCTabBarFoundation} from '@material/tabs';\nimport {MDCTabBarScroller, MDCTabBarFoundationScroller} from '@material/tabs';\n```\n\n##### CommonJS\n\n```javascript\nconst mdcTabs = require('@material/tabs');\nconst MDCTab = mdcTabs.MDCTab;\nconst MDCTabFoundation = mdcTabs.MDCTabFoundation;\n\nconst MDCTabBar = mdcTabs.MDCTabBar;\nconst MDCTabBarFoundation = mdcTabs.MDCTabBarFoundation;\n\nconst MDCTabBarScroller = mdcTabs.MDCTabBarScroller;\nconst MDCTabBarScrollerFoundation = mdcTabs.MDCTabBarScrollerFoundation;\n```\n\n##### AMD\n\n```javascript\nrequire(['path/to/@material/tabs'], mdcTabs => {\n  const MDCTab = mdcTabs.MDCTab;\n  const MDCTabFoundation = mdcTabs.MDCTabFoundation;\n\n  const MDCTabBar = mdcTabs.MDCTabBar;\n  const MDCTabBarFoundation = mdcTabs.MDCTabBarFoundation;\n\n  const MDCTabBarScroller = mdcTabs.MDCTabBarScroller;\n  const MDCTabBarScrollerFoundation = mdcTabs.MDCTabBarScrollerFoundation;\n});\n```\n\n##### Global\n\n```javascript\nconst MDCTab = mdc.tabs.MDCTab;\nconst MDCTabFoundation = mdc.tabs.MDCTabFoundation;\n\nconst MDCTabBar = mdc.tabs.MDCTabBar;\nconst MDCTabBarFoundation = mdc.tabs.MDCTabBarFoundation;\n\nconst MDCTabBarScroller = mdc.tabs.MDCTabBarScroller;\nconst MDCTabBarScrollerFoundation = mdc.tabs.MDCTabBarScrollerFoundation;\n```\n\n#### Automatic Instantiation\n\nIf you do not care about retaining the component instance for the tabs, simply\ncall `attachTo()` and pass it a DOM element.\n\n```javascript\nmdc.tabs.MDCTabBarScroller.attachTo(document.querySelector('#my-mdc-tab-bar-scroller'));\n```\n\n#### Manual Instantiation\n\nTab Bar Scrollers can easily be initialized using their default constructors as well, similar\nto `attachTo`. This process involves a factory to create an instance of `MDCTabBar`\nfrom the `mdc-tab-bar` Element inside of the `mdc-tab-bar-scroller` node during the initialization phase\nof `MDCTabBarScroller`, e.g.:\n\n```html\n<div id=\"my-mdc-tab-bar-scroller\" class=\"mdc-tab-bar-scroller\">\n  <div class=\"mdc-tab-bar-scroller__indicator mdc-tab-bar-scroller__indicator--back\">\n    <a class=\"mdc-tab-bar-scroller__indicator__inner material-icons\" href=\"#\" aria-label=\"scroll back button\">\n      navigate_before\n    </a>\n  </div>\n  <div class=\"mdc-tab-bar-scroller__scroll-frame\">\n    <nav id=\"my-scrollable-tab-bar\" class=\"mdc-tab-bar mdc-tab-bar-scroller__scroll-frame__tabs\">\n      <a class=\"mdc-tab mdc-tab--active\" href=\"#one\">Item One</a>\n      <a class=\"mdc-tab\" href=\"#two\">Item Two</a>\n      <a class=\"mdc-tab\" href=\"#three\">Item Three</a>\n      <a class=\"mdc-tab\" href=\"#four\">Item Four</a>\n      <a class=\"mdc-tab\" href=\"#five\">Item Five</a>\n      <a class=\"mdc-tab\" href=\"#six\">Item Six</a>\n      <a class=\"mdc-tab\" href=\"#seven\">Item Seven</a>\n      <a class=\"mdc-tab\" href=\"#eight\">Item Eight</a>\n      <a class=\"mdc-tab\" href=\"#nine\">Item Nine</a>\n      <span class=\"mdc-tab-bar__indicator\"></span>\n    </nav>\n  </div>\n  <div class=\"mdc-tab-bar-scroller__indicator mdc-tab-bar-scroller__indicator--forward\">\n    <a class=\"mdc-tab-bar-scroller__indicator__inner material-icons\" href=\"#\" aria-label=\"scroll forward button\">\n      navigate_next\n    </a>\n  </div>\n</div>\n```\n\n```javascript\nimport {MDCTabBarScroller, MDCTabBarScrollerFoundation} from '@material/tabs';\n\nconst tabBarScroller = new MDCTabBarScroller(document.querySelector('#my-mdc-tab-bar-scroller'));\n```\n\nTab Bar Scrollers can also instantiate any `mdc-tab-bar` from a DOM element on the fly using a built in factory function:\n\n```js\nimport {MDCTabBarScroller, MDCTabBarScrollerFoundation} from '@material/tabs';\n\nconst tabBarEl = document.querySelector('#my-mdc-tab-bar');\nconst scrollerEl = document.querySelector('#my-mdc-tab-bar-scroller');\n\nconst tabBarScroller = new MDCTabBarScroller(scrollerEl, undefined, tabBarEl);\n```\n\nThis will create an instance of MDC Tab Bar during the initialization phase of Tab Bar Scroller.\n\n## Tab\n\n### Tab component API\n\n#### Properties\n\n| Property Name | Type | Description |\n| --- | --- | --- |\n| `computedWidth` | `number` | _(read-only)_ The width of the tab. |\n| `computedLeft` | `number` | _(read-only)_ The left offset of the tab. |\n| `isActive` | `boolean` | Whether or not the tab is active. Setting this makes the tab active. |\n| `preventDefaultOnClick` | `boolean` | Whether or not the tab will call `preventDefault()` on an event. Setting this makes the tab call `preventDefault()` on events. |\n\n### Tab Events\n\n#### MDCTab:selected\n\nBroadcast when a user actions on the tab.\n\n### Using the Foundation Class\n\nMDC Tab ships with an `MDCTabFoundation` class that external frameworks and libraries can\nuse to integrate the component. As with all foundation classes, an adapter object must be provided.\n\n### Adapter API\n\n| Method Signature | Description |\n| --- | --- |\n| `addClass(className: string) => void` | Adds a class to the root element. |\n| `removeClass(className: string) => void` | Removes a class from the root element. |\n| `registerInteractionHandler(evt: string, handler: EventListener) => void` | Adds an event listener to the root element, for the specified event name. |\n| `deregisterInteractionHandler(evt: string, handler: EventListener) => void` | Removes an event listener from the root element, for the specified event name. |\n| `getOffsetWidth() => number` | Return the width of the tab |\n| `getOffsetLeft() => number` | Return distance between left edge of tab and left edge of its parent element |\n| `notifySelected() => {}` | Broadcasts an event denoting that the user has actioned on the tab |\n\n### The full foundation API\n\n#### MDCTabFoundation.getComputedWidth() => number\n\nReturn the computed width for tab.\n\n#### MDCTabFoundation.getComputedLeft() => number\n\nReturn the computed left offset for tab.\n\n#### MDCTabFoundation.isActive() => boolean\n\nReturn true if tab is active.\n\n#### MDCTabFoundation.setActive(isActive = false) => void\n\nSet tab to active. If `isActive` is true, adds the active modifier class, otherwise removes it.\n\n#### MDCTabFoundation.preventsDefaultOnClick() => boolean\n\nReturn true if the tab prevents the default click action\n\n#### MDCTabFoundation.setPreventDefaultOnClick(preventDefaultOnClick = false) => void\n\nSets tabs `preventDefaultOnClick` property to the value of the `preventDefaultOnClick` argument passed.\n\n#### MDCTabFoundation.measureSelf() => void\n\nSets `computedWidth_` and `computedLeft_` for a tab.\n\n## Tab Bar\n\n### Tab Bar component API\n\n#### Properties\n\n| Property Name | Type | Description |\n| --- | --- | --- |\n| `tabs` | `MDCTab[]` | _(read-only)_ An array of the tab bar's instances of MDC Tab. |\n| `activeTab` | `MDCTab` | The currently active tab. Setting this makes the tab active. |\n| `activeTabIndex` | `number` | The index of the currently active tab. Setting this makes the tab at the given index active. |\n\n#### MDCTabBar.layout() => void\n\nProxies to the foundation's `layout()` method.\n\n### Tab Bar Events\n\n#### MDCTabBar:change\n\nBroadcast when a user actions on a tab, resulting in a change in the selected tab.\n\n### Using the Foundation Class\n\n`mdc-tab-bar` ships with an `MDCTabBarFoundation` class that external frameworks\nand libraries can use to integrate the component. As with all foundation\nclasses, an adapter object must be provided.\n\n### Adapter API\n\n| Method Signature | Description |\n| --- | --- |\n| `addClass(className: string) => void` | Adds a class to the root element. |\n| `removeClass(className: string) => void` | Removes a class from the root element. |\n| `bindOnMDCTabSelectedEvent() => void` | Adds `MDCTab:selected` event listener to root |\n| `unbindOnMDCTabSelectedEvent() => void` | Removes `MDCTab:selected` event listener from root |\n| `registerResizeHandler(handler: EventListener) => void` | Adds an event listener to the root element, for a resize event. |\n| `deregisterResizeHandler(handler: EventListener) => void` | Removes an event listener from the root element, for a resize event. |\n| `getOffsetWidth() => number` | Returns width of root element. |\n| `setStyleForIndicator(propertyName: string, value: string) => void` | Sets style property for indicator. |\n| `getOffsetWidthForIndicator() => number` | Returns width of indicator. |\n| `notifyChange(evtData: Object) => void` | Emits `MDCTabBar:change` event, passes evtData. |\n| `getNumberOfTabs() => number` | Returns number of tabs in MDC Tabs instance. |\n| `getActiveTab() => MDCTab` | Returns the instance of MDCTab that is currently active. |\n| `isTabActiveAtIndex(index: number) => boolean` | Returns true if tab at index is active. |\n| `setTabActiveAtIndex(index: number) => void` | Sets tab active at given index. |\n| `isDefaultPreventedOnClickForTabAtIndex(index: number) => boolean` | Returns true if tab does not prevent default click action. |\n| `setPreventDefaultOnClickForTabAtIndex(index: number, preventDefaultOnClick: boolean)` | Sets preventDefaultOnClick for tab at given index |\n| `measureTabAtIndex(index: number) => void` | sets measurements (width, left offset) for tab at given index. |\n| `getComputedWidthForTabAtIndex(index: number) => number` | Returns width of tab at given index. |\n| `getComputedLeftForTabAtIndex(index: number) => number` | Returns left offset of tab at given index. |\n\n### The full foundation API\n\n#### MDCTabBarFoundation.layout() => void\n\nSets layout for the Tab Bar component.\n\n#### MDCTabBarFoundation.getActiveTabIndex() => number\n\nReturns index of currently active tab\n\n#### MDCTabBarFoundation.getComputedWidth() => number\n\nReturns the width of the element containing the tabs.\n\n#### MDCTabBarFoundation.switchToTabAtIndex(index, shouldNotify) => void\n\nUpdates the active tab to be the tab at the given index, emits `MDCTabBar:change` if `shouldNotify` is true.\n\n#### MDCTabBarFoundation.getActiveTabIndex() => number\n\nReturns the index of the currently active tab.\n\n## Tab Bar Scroller\n\n### Tab Bar Scroller component API\n\n#### Properties\n\n| Property Name | Type | Description |\n| --- | --- | --- |\n| `tabBar` | `MDCTabBar` | _(read-only)_ The scroller's tab bar. |\n\n#### MDCTabBarScroller.layout() => void\n\nProxies to the foundation's `layout()` method.\n\n### Using the Foundation Class\n\nMDC Tab Bar Scroller ships with an `MDCTabBarScrollerFoundation` class that external frameworks and libraries can use to integrate the component. As with all foundation classes, an adapter object must be provided.\n\n### Adapter API\n\n| Method Signature | Description |\n| --- | --- |\n| `addClass(className: string) => void` | Adds a class to the root element. |\n| `removeClass(className: string) => void` | Removes a class from the root element. |\n| `eventTargetHasClass(target: HTMLElement, className: string) => boolean` | Returns true if target has a given class name |\n| `addClassToForwardIndicator(className: string) => void` | Adds a given class to the forward indicator |\n| `removeClassFromForwardIndicator(className: string) => void` | Removes a given class from the forward indicator |\n| `addClassToBackIndicator(className: string) => void` | Adds a given class to the back indicator |\n| `removeClassFromBackIndicator(className: string) => void` | Removes a given class from the back indicator |\n| `isRTL() => boolean` | Returns true if in RTL context. False otherwise. |\n| `registerBackIndicatorClickHandler(handler: EventListener) => void` | Registers an event handler to be called when a `click` event happens on the back indicator |\n| `deregisterBackIndicatorClickHandler(handler: EventHandler) => void` | Deregisters an event handler from a `click` event happening on the back indicator |\n| `registerForwardIndicatorClickHandler(handler: EventHandler) => void` | Registers an event handler to be called when a `click` event happens on the forward indicator |\n| `deregisterForwardIndicatorClickHandler(handler: EventHandler) => void` | Deregisters an event handler from a `click` event happening on the forward indicator. |\n| `registerCapturedInteractionHandler(evt: string, handler: EventHandler) => void` | Registers an event handler to be called when a `focus`, `touchstart`, or `mousedown` event happens on the root of the component. These events gets dispatched to the listener during the capture phase. They also govern the scrolling behavior when tabs are tabbed to or actioned on. |\n| `deregisterCapturedInteractionHandler(evt: string, handler: EventHandler) => void` | Deregisters an event handler from a `focus`, `touchstart`, or `mousedown` events happening on the root of the component |\n| `registerWindowResizeHandler(handler: EventHandler) => void` | Registers an event handler to be called when a `resize` event happens on the `window` |\n| `deregisterWindowResizeHandler(handler: EventHandler) => void `| Deregisters an event handler from a `resize` event happening on the `window` |\n| `getNumberOfTabs() => number` | Returns the number of tabs in the scroller's tab bar |\n| `getComputedWidthForTabAtIndex(index: number) => number` | Returns the width of a tab at the given index |\n| `getComputedLeftForTabAtIndex(index: number) => number` | Returns the left offset of a tab at the given index |\n| `getOffsetWidthForScrollFrame() => number` | Returns the width of the scroll frame. This is the width of the visible tabs. |\n| `getScrollLeftForScrollFrame() => number` | Returns the `scrollLeft` value of the scroll frame |\n| `setScrollLeftForScrollFrame(scrollLeftAmount: number) => void` | Sets the value of `scrollLeft` for the scroll frame. |\n| `getOffsetWidthForTabBar() => number` | Returns the width of the _entire_ tab bar, including that which is occluded. |\n| `setTransformStyleForTabBar(value: string) => void` | Sets the `translateX` `transform` property for the tab bar. |\n| `getOffsetLeftForEventTarget(target: HTMLElement) => number`| Returns the left offset of a given element. |\n| `getOffsetWidthForEventTarget(target: HTMLElement) => number` | Returns the width of a given element. |\n\n### The full foundation API\n\n#### MDCTabBarScrollerFoundation.scrollBack() => void\n\nScrolls the tab bar such that the leftmost tab traverses the scroll frame and becomes the rightmost tab, potentially being partially, but not fully, occluded.\n\n#### MDCTabBarScrollerFoundation.scrollForward() => void\n\nScrolls the tab bar such that the rightmost tab traverses the scroll frame and becomes the leftmost tab. This tabs left offset will line up with the left edge of the scroll frame, and never be partially or fully occluded.\n\n> **NOTE:** Due to a quirk in event behavior, we allow the rightmost tab to be partially occluded even when tabbed to because clicking on such an element would shift the frame on the `focus` event. This would result in a scenario where the ripple persists and the intended tab would not be selected due to the tab bar shifting before the `mouseup` or `click` events get dispatched.\n\n#### MDCTabBarScrollerFoundation.scrollToTabAtIndex(index: number) => void\n\nScrolls the tab bar such that the tab at the index provided traverses the scroll frame and becomes the leftmost tab.\n\n#### MDCTabBarScrollerFoundation.layout() => void\n\nIf the tab bar is overflowing its available width, this method will reset the back and forward indicators to the correct states (visible/hidden) based on the new width.\n","readmeFilename":"README.md","bugs":{"url":"https://github.com/material-components/material-components-web/issues"},"homepage":"https://github.com/material-components/material-components-web#readme","_id":"@material/tabs@3.0.0-alpha.0","_nodeVersion":"11.9.0","_npmVersion":"lerna/3.14.1/node@v11.9.0+x64 (darwin)","dist":{"integrity":"sha512-Z0bBOodU5cNtWP2RDRzyAr/0txOJ5GmHbG5AVJWZIjvPtRX3urSs+TR5EbbqpsuuZq5L8Cadt4tlZAhQ0bnE1w==","shasum":"495b8424343484ef7ab718a9a7f88234c5cba51b","tarball":"https://registry.npmjs.org/@material/tabs/-/tabs-3.0.0-alpha.0.tgz","fileCount":70,"unpackedSize":1001914,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJdAHprCRA9TVsSAnZWagAA3QAP/RFcneOG6ryPfA29Xhvj\numlOoSkrLfKyMbUShqXtDJac9B3e2F+zQb96orE/ilopfzLqxp8p/0mGo2am\n1gZRjk5SK08mSZ5P1LNWjhuwLD3bcdJxz3Bq7QWpGetKdiEZau9tBwonWY4x\nSeMVGVZpMSS5SWq5BQAsLPAktL3iZpzemd8ka3D7PLRjDhYBOejv6a5Dlzvd\ns61MbOyrBGFRVVLno5I3s7Ulj63GAdhiGIU1YpT2gcqqHu0BJIlkbOqr0MHP\nHGklJXKQc90AX6BD+e9AKJcKOfqfCEUhfyajyKW6hZlphk6k1cg/N9mNrpsV\nR06yusgj3+tbDA31KqYi45zfpxBFOVYDhVUnBKjtoY4zwaIo4I3fN/SKvdaA\n7qIGEqxeN6QHOUVlnBrB0amNrWWJRV7XzKVEAqW4DjpxEJ9nAhWLA1zHoFg3\noVfxsKPvEHuji9Lr9dUI07YxjPtt3li2zF/xiS3uPj7fqkht8Y3zOTpVYjQ3\nHCElncjWz/SN70IcPGFWJ1ZTy59hUORWRfKCISWhGsro2gR/pZfXj1MspPIh\n4EqJHKLP4b9izRFO1VTtopcjaBKnruXEEdpZpXo8odF/xSYjyAEqZxKt1yZj\nqo911S4aoa438KwMr1ak7IE9+hHE30SVL1iLmBhlxi/TcumVtSHPBEvnjnca\ngmPT\r\n=5J4D\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEYCIQDGkOfSKBAFE05Mc2UoySujTcieq3tQmuII8NYrUobiywIhAOWfJKBquuQYSjam5d1NKSlOCRR76a4tnBqLJo8O7zln"}]},"maintainers":[{"email":"abhiomkar@gmail.com","name":"abhiomkar"},{"email":"acdvorak@gmail.com","name":"acdvorak"},{"email":"andrey.prigogin@gmail.com","name":"aprigogin"},{"email":"dfreedm2@gmail.com","name":"azakus"},{"email":"bicknellr@gmail.com","name":"bicknellr"},{"email":"bonniez@google.com","name":"bonniez"},{"email":"obrien.test@gmail.com","name":"bwobrien"},{"email":"kenneth.franqueiro@gmail.com","name":"kfranqueiro"},{"email":"lynnjepsen@google.com","name":"lynnjepsen"},{"email":"lynnjepsen+npm@google.com","name":"material-admin"},{"email":"mattgoo@gmail.com","name":"moog16"},{"email":"prodee@google.com","name":"patrickrodee"},{"email":"williamernest@google.com","name":"williamernest"}],"_npmUser":{"name":"abhiomkar","email":"abhiomkar@gmail.com"},"directories":{},"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/tabs_3.0.0-alpha.0_1560312427107_0.22411972199250219"},"_hasShrinkwrap":false},"3.0.0-alpha.1":{"name":"@material/tabs","version":"3.0.0-alpha.1","description":"The Material Components for the web tabs component","license":"MIT","main":"dist/mdc.tabs.js","module":"index.js","sideEffects":false,"types":"dist/mdc.tabs.d.ts","repository":{"type":"git","url":"git+https://github.com/material-components/material-components-web.git"},"keywords":["material components","material design","tabs"],"publishConfig":{"access":"public"},"dependencies":{"@material/animation":"^1.0.0","@material/base":"^1.0.0","@material/ripple":"^3.0.0-alpha.1","@material/rtl":"^0.42.0","@material/theme":"^3.0.0-alpha.1","@material/typography":"^3.0.0-alpha.1","tslib":"^1.9.3"},"gitHead":"dae97b98c21bb93075a9688cf1f9076a4fe5a85d","readme":"<!--docs:\ntitle: \"Tabs (Deprecated)\"\nlayout: detail\nsection: components\nexcerpt: \"A tabbed navigation component.\"\niconId: tabs\npath: /catalog/tabs/legacy/\n-->\n\n## Important - Deprecation Notice\n\nThe `mdc-tabs` package is deprecated and no longer maintained, and is no longer included in the all-in-one\n`material-components-web` package. Improved functionality is available across the `mdc-tab-bar`, `mdc-tab-scroller`,\n`mdc-tab-indicator`, and `mdc-tab` packages, which are now included in the `material-components-web` package.\nBugs and feature requests will no longer be accepted for this package. It is recommended that you migrate to the new\npackages to continue to receive new features and updates.\n\n# MDC Tabs\n\nThe MDC Tabs component contains components which are used to create spec-aligned tabbed navigation components adhering to the\n[Material Design tabs guidelines](https://material.io/go/design-tabs). These components are:\n\n- **mdc-tab**: The individual tab elements\n- **mdc-tab-bar**: The main component which is composed of `mdc-tab` elements\n- **mdc-tab-bar-scroller**: The component which controls the horizontal scrolling behavior of an `mdc-tab-bar` that overflows its container\n\n## Design & API Documentation\n\n<ul class=\"icon-list\">\n  <li class=\"icon-list-item icon-list-item--spec\">\n    <a href=\"https://material.io/go/design-tabs\">Material Design guidelines: Tabs</a>\n  </li>\n  <li class=\"icon-list-item icon-list-item--link\">\n    <a href=\"https://material-components.github.io/material-components-web-catalog/#/component/tabs\">Demo</a>\n  </li>\n</ul>\n\n## Installation\n\n```\nnpm install @material/tabs\n```\n\n## Tabs usage\n\n`mdc-tab-bar` can be used as a CSS only component, or a more dynamic JavaScript\ncomponent.\n\nThere are also three different permutations of tab labels. These include text,\nicon-only, and text with icon. An example of each is available on the demo site.\n\n### Icons\n\nWe recommend using [Material Icons](https://material.io/tools/icons/) from Google Fonts:\n\n```html\n<head>\n  <link rel=\"stylesheet\" href=\"https://fonts.googleapis.com/icon?family=Material+Icons\">\n</head>\n```\n\nHowever, you can also use SVG, [Font Awesome](https://fontawesome.com/), or any other icon library you wish.\n\n#### Tab Bar with text labels\n\n```html\n<nav id=\"basic-tab-bar\" class=\"mdc-tab-bar\">\n  <a class=\"mdc-tab mdc-tab--active\" href=\"#one\">Home</a>\n  <a class=\"mdc-tab\" href=\"#two\">Merchandise</a>\n  <a class=\"mdc-tab\" href=\"#three\">About Us</a>\n  <span class=\"mdc-tab-bar__indicator\"></span>\n</nav>\n```\n\n#### Tab Bar with icon labels\n\n```html\n<nav class=\"mdc-tab-bar mdc-tab-bar--icon-tab-bar\">\n  <a class=\"mdc-tab mdc-tab--active\" href=\"#recents\">\n    <i class=\"material-icons mdc-tab__icon\" aria-label=\"Recents\">phone</i>\n  </a>\n  <a class=\"mdc-tab\" href=\"#favorites\">\n    <i class=\"material-icons mdc-tab__icon\" aria-label=\"Favorites\">favorite</i>\n  </a>\n  <a class=\"mdc-tab\" href=\"#nearby\">\n    <i class=\"material-icons mdc-tab__icon\" aria-label=\"nearby\">person_pin</i>\n  </a>\n  <span class=\"mdc-tab-bar__indicator\"></span>\n</nav>\n```\n\n#### Tab Bar with icon and text labels\n\n```html\n<nav id=\"icon-text-tab-bar\" class=\"mdc-tab-bar mdc-tab-bar--icons-with-text\">\n  <a class=\"mdc-tab mdc-tab--with-icon-and-text mdc-tab--active\" href=\"#recents\">\n    <i class=\"material-icons mdc-tab__icon\" aria-hidden=\"true\">phone</i>\n    <span class=\"mdc-tab__icon-text\">Recents</span>\n  </a>\n  <a class=\"mdc-tab mdc-tab--with-icon-and-text\" href=\"#favorites\">\n    <i class=\"material-icons mdc-tab__icon\" aria-hidden=\"true\">favorite</i>\n    <span class=\"mdc-tab__icon-text\">Favorites</span>\n  </a>\n  <a class=\"mdc-tab mdc-tab--with-icon-and-text\" href=\"#nearby\">\n    <i class=\"material-icons mdc-tab__icon\" aria-hidden=\"true\">person_pin</i>\n    <span class=\"mdc-tab__icon-text\">Nearby</span>\n  </a>\n  <span class=\"mdc-tab-bar__indicator\"></span>\n</nav>\n```\n\n#### CSS Only Support\n\nIn order for the indicator to appear, you will need to change your mark up if you are using CSS Only. Each `.mdc-tab` will have a child element with the class `.mdc-tab__indicator` as shown below:\n\n```html\n<nav id=\"basic-tab-bar\" class=\"mdc-tab-bar\">\n  <a class=\"mdc-tab mdc-tab--active\" href=\"#one\">\n    Home\n    <span class=\"mdc-tab__indicator\"></span>\n  </a>\n  <a class=\"mdc-tab\" href=\"#two\">\n    Merchandise\n    <span class=\"mdc-tab__indicator\"></span>\n  </a>\n  <a class=\"mdc-tab\" href=\"#three\">\n    About Us\n    <span class=\"mdc-tab__indicator\"></span>\n  </a>\n</nav>\n```\n\n#### RTL Support\n\nTab Bars will reverse the order of their tabs if they are placed within an\nancestor element with attribute `dir=\"rtl\"`.\n\n```html\n<html dir=\"rtl\">\n  <!--...-->\n  <nav id=\"basic-tab-bar\" class=\"mdc-tab-bar\">\n    <a class=\"mdc-tab mdc-tab--active\" href=\"#one\">Home</a>\n    <a class=\"mdc-tab\" href=\"#two\">Merchandise</a>\n    <a class=\"mdc-tab\" href=\"#three\">About Us</a>\n    <span class=\"mdc-tab-bar__indicator\"></span>\n  </nav>\n</html>\n```\n\n### Dynamic view switching\n\nWhile facilitating the view switching is left up to the developer, the demo site\nprovides a minimal example of how to do so using JavaScript, also shown below.\n\n#### Markup:\n```html\n<section id=\"dynamic-demo-toolbar\">\n  <nav id=\"dynamic-tab-bar\" class=\"mdc-tab-bar\" role=\"tablist\">\n    <a role=\"tab\" aria-controls=\"panel-1\"\n       class=\"mdc-tab mdc-tab--active\" href=\"#panel-1\">Item One</a>\n    <a role=\"tab\" aria-controls=\"panel-2\"\n       class=\"mdc-tab\" href=\"#panel-2\">Item Two</a>\n    <a role=\"tab\" aria-controls=\"panel-3\"\n       class=\"mdc-tab\" href=\"#panel-3\">Item Three</a>\n    <span class=\"mdc-tab-bar__indicator\"></span>\n  </nav>\n</section>\n<section>\n  <div class=\"panels\">\n    <p class=\"panel active\" id=\"panel-1\" role=\"tabpanel\" aria-hidden=\"false\">Item One</p>\n    <p class=\"panel\" id=\"panel-2\" role=\"tabpanel\" aria-hidden=\"true\">Item Two</p>\n    <p class=\"panel\" id=\"panel-3\" role=\"tabpanel\" aria-hidden=\"true\">Item Three</p>\n  </div>\n  <div class=\"dots\">\n    <a class=\"dot active\" data-trigger=\"panel-1\" href=\"#panel-1\"></a>\n    <a class=\"dot\" data-trigger=\"panel-2\" href=\"#panel-2\"></a>\n    <a class=\"dot\" data-trigger=\"panel-3\" href=\"#panel-3\"></a>\n  </div>\n</section>\n```\n\n#### Script:\n\n```js\nvar dynamicTabBar = window.dynamicTabBar = new mdc.tabs.MDCTabBar(document.querySelector('#dynamic-tab-bar'));\nvar dots = document.querySelector('.dots');\nvar panels = document.querySelector('.panels');\n\ndynamicTabBar.tabs.forEach(function(tab) {\n  tab.preventDefaultOnClick = true;\n});\n\nfunction updateDot(index) {\n  var activeDot = dots.querySelector('.dot.active');\n  if (activeDot) {\n    activeDot.classList.remove('active');\n  }\n  var newActiveDot = dots.querySelector('.dot:nth-child(' + (index + 1) + ')');\n  if (newActiveDot) {\n    newActiveDot.classList.add('active');\n  }\n}\n\nfunction updatePanel(index) {\n  var activePanel = panels.querySelector('.panel.active');\n  if (activePanel) {\n    activePanel.classList.remove('active');\n  }\n  var newActivePanel = panels.querySelector('.panel:nth-child(' + (index + 1) + ')');\n  if (newActivePanel) {\n    newActivePanel.classList.add('active');\n  }\n}\n\ndynamicTabBar.listen('MDCTabBar:change', function ({detail: tabs}) {\n  var nthChildIndex = tabs.activeTabIndex;\n\n  updatePanel(nthChildIndex);\n  updateDot(nthChildIndex);\n});\n\ndots.addEventListener('click', function (evt) {\n  if (!evt.target.classList.contains('dot')) {\n    return;\n  }\n\n  evt.preventDefault();\n\n  var dotIndex = [].slice.call(dots.querySelectorAll('.dot')).indexOf(evt.target);\n\n  if (dotIndex >= 0) {\n    dynamicTabBar.activeTabIndex = dotIndex;\n  }\n\n  updatePanel(dotIndex);\n  updateDot(dotIndex);\n})\n```\n\n### Sass Mixins\n\nTo customize the ink color of any part of the tab, use the following mixins. We recommend you apply these mixins within CSS selectors like `.foo-tab:not(.mdc-tab--active)` to select your inactive tabs, `foo-tab:hover` to select the hover state of your tabs, and `.foo-tab.mdc-tab--active` to select your active tabs.\n\n#### `mdc-tab-ink-color`\n\nUse this mixin to set the color of all ink on the tab.\n\n#### `mdc-tab-icon-ink-color`\n\nThis mixin customizes the icon ink color.\n\n#### `mdc-tab-label-ink-color`\n\nThis mixin customizes the label ink color.\n\n#### `mdc-tab-bar-indicator-ink-color`\n\nThis mixin customizes the indicator ink color.\n\n### Using the CSS-Only Component\n\n`mdc-tab-bar` ships with css for styling a tab layout according to the Material\nDesign spec. To use CSS only tab bars, simply use the available class names.\nNote the available `mdc-tab--active` modifier class. This is used to denote the\ncurrently active tab.\n\n```html\n<nav class=\"mdc-tab-bar\">\n  <a class=\"mdc-tab mdc-tab--active\" href=\"#one\">Item One</a>\n  <a class=\"mdc-tab\" href=\"#two\">Item Two</a>\n  <a class=\"mdc-tab\" href=\"#three\">Three</a>\n  <span class=\"mdc-tab-bar__indicator\"></span>\n</nav>\n```\n\n### Using the JavaScript Component\n\n`mdc-tab-bar` ships with a Component/Foundation combo for ingesting instances of `mdc-tab` (a tab).\n`mdc-tab-bar` uses its `initialize()` method call a factory function which gathers and instantiates\nany tab elements that are children of the `mdc-tab-bar` root element.\n\n#### Including in code\n\n##### ES Modules\n\n```javascript\nimport {MDCTab, MDCTabFoundation} from '@material/tabs';\nimport {MDCTabBar, MDCTabBarFoundation} from '@material/tabs';\n```\n\n##### CommonJS\n\n```javascript\nconst mdcTabs = require('@material/tabs');\nconst MDCTab = mdcTabs.MDCTab;\nconst MDCTabFoundation = mdcTabs.MDCTabFoundation;\n\nconst MDCTabBar = mdcTabs.MDCTabBar;\nconst MDCTabBarFoundation = mdcTabs.MDCTabBarFoundation;\n```\n\n##### AMD\n\n```javascript\nrequire(['path/to/@material/tabs'], mdcTabs => {\n  const MDCTab = mdcTabs.MDCTab;\n  const MDCTabFoundation = mdcTabs.MDCTabFoundation;\n\n  const MDCTabBar = mdcTabs.MDCTabBar;\n  const MDCTabBarFoundation = mdcTabs.MDCTabBarFoundation;\n});\n```\n\n##### Global\n\n```javascript\nconst MDCTab = mdc.tabs.MDCTab;\nconst MDCTabFoundation = mdc.tabs.MDCTabFoundation;\n\nconst MDCTabBar = mdc.tabs.MDCTabBar;\nconst MDCTabBarFoundation = mdc.tabs.MDCTabBarFoundation;\n```\n\n#### Automatic Instantiation\n\nIf you do not care about retaining the component instance for the tabs, simply\ncall `attachTo()` and pass it a DOM element.\n\n```javascript\nmdc.tabs.MDCTabBar.attachTo(document.querySelector('#my-mdc-tab-bar'));\n```\n\n#### Manual Instantiation\n\nTabs can easily be initialized using their default constructors as well, similar\nto `attachTo`. This process involves a factory to create an instance of MDCTab\nfrom each tab Element inside of the `mdc-tab-bar` node during the initialization phase\nof `MDCTabBar`, e.g.:\n\n```html\n<nav id=\"my-mdc-tab-bar\" class=\"mdc-tab-bar\">\n  <a class=\"mdc-tab mdc-tab--active\" href=\"#one\">Item One</a>\n  <a class=\"mdc-tab\" href=\"#two\">Item Two</a>\n  <a class=\"mdc-tab\" href=\"#three\">Three</a>\n  <span class=\"mdc-tab-bar__indicator\"></span>\n</nav>\n```\n\n```javascript\nimport {MDCTabBar, MDCTabBarFoundation} from '@material/tabs';\n\nconst tabBar = new MDCTabBar(document.querySelector('#my-mdc-tab-bar'));\n```\n\n### Using the JavaScript Tab Bar Scroller Component\n\n`mdc-tab-bar-scroller` ships with a Component/Foundation combo which wraps instances of `mdc-tab-bar`. `mdc-tab-bar-scroller` uses its `initialize()` method call a factory function which gathers and instantiates any tab bar elements that are children of the `mdc-tab-bar-scroller` root element.\n\nThe anatomy of `mdc-tab-bar-scroller` includes an instance of `mdc-tab-bar`, RTL-aware forward and back indicators which, when actioned on, move the tab bar left and right, and a scroll frame. The scroll frame is the parent element of the tab bar, and serves to mask the tabs in the tab bar when they overflow the available width.\n\n#### Including in code\n\n##### ES Module syntax\n\n```javascript\nimport {MDCTab, MDCTabFoundation} from '@material/tabs';\nimport {MDCTabBar, MDCTabBarFoundation} from '@material/tabs';\nimport {MDCTabBarScroller, MDCTabBarFoundationScroller} from '@material/tabs';\n```\n\n##### CommonJS\n\n```javascript\nconst mdcTabs = require('@material/tabs');\nconst MDCTab = mdcTabs.MDCTab;\nconst MDCTabFoundation = mdcTabs.MDCTabFoundation;\n\nconst MDCTabBar = mdcTabs.MDCTabBar;\nconst MDCTabBarFoundation = mdcTabs.MDCTabBarFoundation;\n\nconst MDCTabBarScroller = mdcTabs.MDCTabBarScroller;\nconst MDCTabBarScrollerFoundation = mdcTabs.MDCTabBarScrollerFoundation;\n```\n\n##### AMD\n\n```javascript\nrequire(['path/to/@material/tabs'], mdcTabs => {\n  const MDCTab = mdcTabs.MDCTab;\n  const MDCTabFoundation = mdcTabs.MDCTabFoundation;\n\n  const MDCTabBar = mdcTabs.MDCTabBar;\n  const MDCTabBarFoundation = mdcTabs.MDCTabBarFoundation;\n\n  const MDCTabBarScroller = mdcTabs.MDCTabBarScroller;\n  const MDCTabBarScrollerFoundation = mdcTabs.MDCTabBarScrollerFoundation;\n});\n```\n\n##### Global\n\n```javascript\nconst MDCTab = mdc.tabs.MDCTab;\nconst MDCTabFoundation = mdc.tabs.MDCTabFoundation;\n\nconst MDCTabBar = mdc.tabs.MDCTabBar;\nconst MDCTabBarFoundation = mdc.tabs.MDCTabBarFoundation;\n\nconst MDCTabBarScroller = mdc.tabs.MDCTabBarScroller;\nconst MDCTabBarScrollerFoundation = mdc.tabs.MDCTabBarScrollerFoundation;\n```\n\n#### Automatic Instantiation\n\nIf you do not care about retaining the component instance for the tabs, simply\ncall `attachTo()` and pass it a DOM element.\n\n```javascript\nmdc.tabs.MDCTabBarScroller.attachTo(document.querySelector('#my-mdc-tab-bar-scroller'));\n```\n\n#### Manual Instantiation\n\nTab Bar Scrollers can easily be initialized using their default constructors as well, similar\nto `attachTo`. This process involves a factory to create an instance of `MDCTabBar`\nfrom the `mdc-tab-bar` Element inside of the `mdc-tab-bar-scroller` node during the initialization phase\nof `MDCTabBarScroller`, e.g.:\n\n```html\n<div id=\"my-mdc-tab-bar-scroller\" class=\"mdc-tab-bar-scroller\">\n  <div class=\"mdc-tab-bar-scroller__indicator mdc-tab-bar-scroller__indicator--back\">\n    <a class=\"mdc-tab-bar-scroller__indicator__inner material-icons\" href=\"#\" aria-label=\"scroll back button\">\n      navigate_before\n    </a>\n  </div>\n  <div class=\"mdc-tab-bar-scroller__scroll-frame\">\n    <nav id=\"my-scrollable-tab-bar\" class=\"mdc-tab-bar mdc-tab-bar-scroller__scroll-frame__tabs\">\n      <a class=\"mdc-tab mdc-tab--active\" href=\"#one\">Item One</a>\n      <a class=\"mdc-tab\" href=\"#two\">Item Two</a>\n      <a class=\"mdc-tab\" href=\"#three\">Item Three</a>\n      <a class=\"mdc-tab\" href=\"#four\">Item Four</a>\n      <a class=\"mdc-tab\" href=\"#five\">Item Five</a>\n      <a class=\"mdc-tab\" href=\"#six\">Item Six</a>\n      <a class=\"mdc-tab\" href=\"#seven\">Item Seven</a>\n      <a class=\"mdc-tab\" href=\"#eight\">Item Eight</a>\n      <a class=\"mdc-tab\" href=\"#nine\">Item Nine</a>\n      <span class=\"mdc-tab-bar__indicator\"></span>\n    </nav>\n  </div>\n  <div class=\"mdc-tab-bar-scroller__indicator mdc-tab-bar-scroller__indicator--forward\">\n    <a class=\"mdc-tab-bar-scroller__indicator__inner material-icons\" href=\"#\" aria-label=\"scroll forward button\">\n      navigate_next\n    </a>\n  </div>\n</div>\n```\n\n```javascript\nimport {MDCTabBarScroller, MDCTabBarScrollerFoundation} from '@material/tabs';\n\nconst tabBarScroller = new MDCTabBarScroller(document.querySelector('#my-mdc-tab-bar-scroller'));\n```\n\nTab Bar Scrollers can also instantiate any `mdc-tab-bar` from a DOM element on the fly using a built in factory function:\n\n```js\nimport {MDCTabBarScroller, MDCTabBarScrollerFoundation} from '@material/tabs';\n\nconst tabBarEl = document.querySelector('#my-mdc-tab-bar');\nconst scrollerEl = document.querySelector('#my-mdc-tab-bar-scroller');\n\nconst tabBarScroller = new MDCTabBarScroller(scrollerEl, undefined, tabBarEl);\n```\n\nThis will create an instance of MDC Tab Bar during the initialization phase of Tab Bar Scroller.\n\n## Tab\n\n### Tab component API\n\n#### Properties\n\n| Property Name | Type | Description |\n| --- | --- | --- |\n| `computedWidth` | `number` | _(read-only)_ The width of the tab. |\n| `computedLeft` | `number` | _(read-only)_ The left offset of the tab. |\n| `isActive` | `boolean` | Whether or not the tab is active. Setting this makes the tab active. |\n| `preventDefaultOnClick` | `boolean` | Whether or not the tab will call `preventDefault()` on an event. Setting this makes the tab call `preventDefault()` on events. |\n\n### Tab Events\n\n#### MDCTab:selected\n\nBroadcast when a user actions on the tab.\n\n### Using the Foundation Class\n\nMDC Tab ships with an `MDCTabFoundation` class that external frameworks and libraries can\nuse to integrate the component. As with all foundation classes, an adapter object must be provided.\n\n### Adapter API\n\n| Method Signature | Description |\n| --- | --- |\n| `addClass(className: string) => void` | Adds a class to the root element. |\n| `removeClass(className: string) => void` | Removes a class from the root element. |\n| `registerInteractionHandler(evt: string, handler: EventListener) => void` | Adds an event listener to the root element, for the specified event name. |\n| `deregisterInteractionHandler(evt: string, handler: EventListener) => void` | Removes an event listener from the root element, for the specified event name. |\n| `getOffsetWidth() => number` | Return the width of the tab |\n| `getOffsetLeft() => number` | Return distance between left edge of tab and left edge of its parent element |\n| `notifySelected() => {}` | Broadcasts an event denoting that the user has actioned on the tab |\n\n### The full foundation API\n\n#### MDCTabFoundation.getComputedWidth() => number\n\nReturn the computed width for tab.\n\n#### MDCTabFoundation.getComputedLeft() => number\n\nReturn the computed left offset for tab.\n\n#### MDCTabFoundation.isActive() => boolean\n\nReturn true if tab is active.\n\n#### MDCTabFoundation.setActive(isActive = false) => void\n\nSet tab to active. If `isActive` is true, adds the active modifier class, otherwise removes it.\n\n#### MDCTabFoundation.preventsDefaultOnClick() => boolean\n\nReturn true if the tab prevents the default click action\n\n#### MDCTabFoundation.setPreventDefaultOnClick(preventDefaultOnClick = false) => void\n\nSets tabs `preventDefaultOnClick` property to the value of the `preventDefaultOnClick` argument passed.\n\n#### MDCTabFoundation.measureSelf() => void\n\nSets `computedWidth_` and `computedLeft_` for a tab.\n\n## Tab Bar\n\n### Tab Bar component API\n\n#### Properties\n\n| Property Name | Type | Description |\n| --- | --- | --- |\n| `tabs` | `MDCTab[]` | _(read-only)_ An array of the tab bar's instances of MDC Tab. |\n| `activeTab` | `MDCTab` | The currently active tab. Setting this makes the tab active. |\n| `activeTabIndex` | `number` | The index of the currently active tab. Setting this makes the tab at the given index active. |\n\n#### MDCTabBar.layout() => void\n\nProxies to the foundation's `layout()` method.\n\n### Tab Bar Events\n\n#### MDCTabBar:change\n\nBroadcast when a user actions on a tab, resulting in a change in the selected tab.\n\n### Using the Foundation Class\n\n`mdc-tab-bar` ships with an `MDCTabBarFoundation` class that external frameworks\nand libraries can use to integrate the component. As with all foundation\nclasses, an adapter object must be provided.\n\n### Adapter API\n\n| Method Signature | Description |\n| --- | --- |\n| `addClass(className: string) => void` | Adds a class to the root element. |\n| `removeClass(className: string) => void` | Removes a class from the root element. |\n| `bindOnMDCTabSelectedEvent() => void` | Adds `MDCTab:selected` event listener to root |\n| `unbindOnMDCTabSelectedEvent() => void` | Removes `MDCTab:selected` event listener from root |\n| `registerResizeHandler(handler: EventListener) => void` | Adds an event listener to the root element, for a resize event. |\n| `deregisterResizeHandler(handler: EventListener) => void` | Removes an event listener from the root element, for a resize event. |\n| `getOffsetWidth() => number` | Returns width of root element. |\n| `setStyleForIndicator(propertyName: string, value: string) => void` | Sets style property for indicator. |\n| `getOffsetWidthForIndicator() => number` | Returns width of indicator. |\n| `notifyChange(evtData: Object) => void` | Emits `MDCTabBar:change` event, passes evtData. |\n| `getNumberOfTabs() => number` | Returns number of tabs in MDC Tabs instance. |\n| `getActiveTab() => MDCTab` | Returns the instance of MDCTab that is currently active. |\n| `isTabActiveAtIndex(index: number) => boolean` | Returns true if tab at index is active. |\n| `setTabActiveAtIndex(index: number) => void` | Sets tab active at given index. |\n| `isDefaultPreventedOnClickForTabAtIndex(index: number) => boolean` | Returns true if tab does not prevent default click action. |\n| `setPreventDefaultOnClickForTabAtIndex(index: number, preventDefaultOnClick: boolean)` | Sets preventDefaultOnClick for tab at given index |\n| `measureTabAtIndex(index: number) => void` | sets measurements (width, left offset) for tab at given index. |\n| `getComputedWidthForTabAtIndex(index: number) => number` | Returns width of tab at given index. |\n| `getComputedLeftForTabAtIndex(index: number) => number` | Returns left offset of tab at given index. |\n\n### The full foundation API\n\n#### MDCTabBarFoundation.layout() => void\n\nSets layout for the Tab Bar component.\n\n#### MDCTabBarFoundation.getActiveTabIndex() => number\n\nReturns index of currently active tab\n\n#### MDCTabBarFoundation.getComputedWidth() => number\n\nReturns the width of the element containing the tabs.\n\n#### MDCTabBarFoundation.switchToTabAtIndex(index, shouldNotify) => void\n\nUpdates the active tab to be the tab at the given index, emits `MDCTabBar:change` if `shouldNotify` is true.\n\n#### MDCTabBarFoundation.getActiveTabIndex() => number\n\nReturns the index of the currently active tab.\n\n## Tab Bar Scroller\n\n### Tab Bar Scroller component API\n\n#### Properties\n\n| Property Name | Type | Description |\n| --- | --- | --- |\n| `tabBar` | `MDCTabBar` | _(read-only)_ The scroller's tab bar. |\n\n#### MDCTabBarScroller.layout() => void\n\nProxies to the foundation's `layout()` method.\n\n### Using the Foundation Class\n\nMDC Tab Bar Scroller ships with an `MDCTabBarScrollerFoundation` class that external frameworks and libraries can use to integrate the component. As with all foundation classes, an adapter object must be provided.\n\n### Adapter API\n\n| Method Signature | Description |\n| --- | --- |\n| `addClass(className: string) => void` | Adds a class to the root element. |\n| `removeClass(className: string) => void` | Removes a class from the root element. |\n| `eventTargetHasClass(target: HTMLElement, className: string) => boolean` | Returns true if target has a given class name |\n| `addClassToForwardIndicator(className: string) => void` | Adds a given class to the forward indicator |\n| `removeClassFromForwardIndicator(className: string) => void` | Removes a given class from the forward indicator |\n| `addClassToBackIndicator(className: string) => void` | Adds a given class to the back indicator |\n| `removeClassFromBackIndicator(className: string) => void` | Removes a given class from the back indicator |\n| `isRTL() => boolean` | Returns true if in RTL context. False otherwise. |\n| `registerBackIndicatorClickHandler(handler: EventListener) => void` | Registers an event handler to be called when a `click` event happens on the back indicator |\n| `deregisterBackIndicatorClickHandler(handler: EventHandler) => void` | Deregisters an event handler from a `click` event happening on the back indicator |\n| `registerForwardIndicatorClickHandler(handler: EventHandler) => void` | Registers an event handler to be called when a `click` event happens on the forward indicator |\n| `deregisterForwardIndicatorClickHandler(handler: EventHandler) => void` | Deregisters an event handler from a `click` event happening on the forward indicator. |\n| `registerCapturedInteractionHandler(evt: string, handler: EventHandler) => void` | Registers an event handler to be called when a `focus`, `touchstart`, or `mousedown` event happens on the root of the component. These events gets dispatched to the listener during the capture phase. They also govern the scrolling behavior when tabs are tabbed to or actioned on. |\n| `deregisterCapturedInteractionHandler(evt: string, handler: EventHandler) => void` | Deregisters an event handler from a `focus`, `touchstart`, or `mousedown` events happening on the root of the component |\n| `registerWindowResizeHandler(handler: EventHandler) => void` | Registers an event handler to be called when a `resize` event happens on the `window` |\n| `deregisterWindowResizeHandler(handler: EventHandler) => void `| Deregisters an event handler from a `resize` event happening on the `window` |\n| `getNumberOfTabs() => number` | Returns the number of tabs in the scroller's tab bar |\n| `getComputedWidthForTabAtIndex(index: number) => number` | Returns the width of a tab at the given index |\n| `getComputedLeftForTabAtIndex(index: number) => number` | Returns the left offset of a tab at the given index |\n| `getOffsetWidthForScrollFrame() => number` | Returns the width of the scroll frame. This is the width of the visible tabs. |\n| `getScrollLeftForScrollFrame() => number` | Returns the `scrollLeft` value of the scroll frame |\n| `setScrollLeftForScrollFrame(scrollLeftAmount: number) => void` | Sets the value of `scrollLeft` for the scroll frame. |\n| `getOffsetWidthForTabBar() => number` | Returns the width of the _entire_ tab bar, including that which is occluded. |\n| `setTransformStyleForTabBar(value: string) => void` | Sets the `translateX` `transform` property for the tab bar. |\n| `getOffsetLeftForEventTarget(target: HTMLElement) => number`| Returns the left offset of a given element. |\n| `getOffsetWidthForEventTarget(target: HTMLElement) => number` | Returns the width of a given element. |\n\n### The full foundation API\n\n#### MDCTabBarScrollerFoundation.scrollBack() => void\n\nScrolls the tab bar such that the leftmost tab traverses the scroll frame and becomes the rightmost tab, potentially being partially, but not fully, occluded.\n\n#### MDCTabBarScrollerFoundation.scrollForward() => void\n\nScrolls the tab bar such that the rightmost tab traverses the scroll frame and becomes the leftmost tab. This tabs left offset will line up with the left edge of the scroll frame, and never be partially or fully occluded.\n\n> **NOTE:** Due to a quirk in event behavior, we allow the rightmost tab to be partially occluded even when tabbed to because clicking on such an element would shift the frame on the `focus` event. This would result in a scenario where the ripple persists and the intended tab would not be selected due to the tab bar shifting before the `mouseup` or `click` events get dispatched.\n\n#### MDCTabBarScrollerFoundation.scrollToTabAtIndex(index: number) => void\n\nScrolls the tab bar such that the tab at the index provided traverses the scroll frame and becomes the leftmost tab.\n\n#### MDCTabBarScrollerFoundation.layout() => void\n\nIf the tab bar is overflowing its available width, this method will reset the back and forward indicators to the correct states (visible/hidden) based on the new width.\n","readmeFilename":"README.md","bugs":{"url":"https://github.com/material-components/material-components-web/issues"},"homepage":"https://github.com/material-components/material-components-web#readme","_id":"@material/tabs@3.0.0-alpha.1","_nodeVersion":"11.9.0","_npmVersion":"lerna/3.14.1/node@v11.9.0+x64 (darwin)","dist":{"integrity":"sha512-Enig1dIEw7CbrBK0uWPIfT02OH/jKDKOrtvVmgYgVv7CXNIfEC8qy3G8XPot63QXm0N4OKJQze1/gbatEJm+6Q==","shasum":"d7eee2f6285ee752050adce9bfc53694db3550d0","tarball":"https://registry.npmjs.org/@material/tabs/-/tabs-3.0.0-alpha.1.tgz","fileCount":70,"unpackedSize":1002069,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJdAUxDCRA9TVsSAnZWagAAl04P/0R2+qipzzyGPJZNMpon\nA+c0ndEsMRShkmJKVP30kEB5LYjstjBLVYbAdtwyUqoPQRZA5JRExMzrKSwP\nguR88qXWAvFDPBrT3w0h93ZXv2BbakjbCBRpeF9UnbVZPPfGtSAPu6ciXa3x\ncgnXhceTalM1Iv5KNQHp1ZJePYg81O5lopr8BOilzfk/Cp0yUAfpCUs9vtPK\nSn3ft66o5N3O5tesFzqi64dnyibrN2OcCchdoJWBMCQF3fqcjahMa2IwDx6x\nsZTDj2oG+/CGPaucuC8Vurw3GwM3SbKvTflZKsOwKBzf8JjxjA2JyPs/W8Di\nGXUY+t/tMF3ag6Z3BThmYv9dKVqR9uWIjm21chuNUnuF/jG7lJsLpGPvHxoE\nsjxfmbjh5lKgQgqz8J+A1A6ExqxkhwuxYIP4AEIvpi+EInwR+ZzBl9V07okX\nwoFZeYpslZXzUNjuvDOWaP9RAFoka6ZokRznliSrhpUJNo1nhtEaExh664bk\nSgtBw1ze8bL7AdIQRjEMooeGgnX7hcgSpmZqc2O7LmXLjXAObR7jBNUfa5BM\nZPrfCvhro78WB367jCqGBG1EQGB7eLuiSW4qMWvdU3U/v3FmHU9cL20Lwt7I\nJzHwHzVrN2pkknS0yLkV+l6ZbnEuMCfLWPvvfH7s1RFKZWptl9hR9iZra8Vj\nLuuZ\r\n=dGZ5\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEMCHwJyQ/az1gJiP57lDS8Te1SI/Pc0m/hj83PgFv76Z58CIHAKkKU3cAPgKQ/1W/bBsOWwC5GNV/d5TgzD/i5USQcg"}]},"maintainers":[{"email":"abhiomkar@gmail.com","name":"abhiomkar"},{"email":"acdvorak@gmail.com","name":"acdvorak"},{"email":"andrey.prigogin@gmail.com","name":"aprigogin"},{"email":"dfreedm2@gmail.com","name":"azakus"},{"email":"bicknellr@gmail.com","name":"bicknellr"},{"email":"bonniez@google.com","name":"bonniez"},{"email":"obrien.test@gmail.com","name":"bwobrien"},{"email":"kenneth.franqueiro@gmail.com","name":"kfranqueiro"},{"email":"lynnjepsen@google.com","name":"lynnjepsen"},{"email":"lynnjepsen+npm@google.com","name":"material-admin"},{"email":"mattgoo@gmail.com","name":"moog16"},{"email":"prodee@google.com","name":"patrickrodee"},{"email":"williamernest@google.com","name":"williamernest"}],"_npmUser":{"name":"abhiomkar","email":"abhiomkar@gmail.com"},"directories":{},"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/tabs_3.0.0-alpha.1_1560366146853_0.02181657722817465"},"_hasShrinkwrap":false}},"description":"The Material Components for the web tabs component","homepage":"https://github.com/material-components/material-components-web#readme","keywords":["material components","material design","tabs"],"repository":{"type":"git","url":"git+https://github.com/material-components/material-components-web.git"},"bugs":{"url":"https://github.com/material-components/material-components-web/issues"},"license":"MIT","readme":"","readmeFilename":""}