@pie-element/passage 2.21.2 → 2.21.3-next.4

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -77,9 +77,6 @@ var styles = function styles(theme) {
77
77
  background: theme.palette.common.white // replace with color.background() once PD-2801 is DONE
78
78
 
79
79
  },
80
- breakSpaces: {
81
- whiteSpace: 'break-spaces'
82
- },
83
80
  teacherInstructions: {
84
81
  marginBottom: theme.spacing.unit * 2
85
82
  }
@@ -276,7 +273,7 @@ var StimulusTabs = /*#__PURE__*/function (_React$Component) {
276
273
  return tab.id === activeTab;
277
274
  });
278
275
  return /*#__PURE__*/_react["default"].createElement("div", {
279
- className: (0, _classnames["default"])(classes.passages, (0, _defineProperty2["default"])({}, classes.breakSpaces, tabs.length === 1), 'passages')
276
+ className: (0, _classnames["default"])(classes.passages, 'passages')
280
277
  }, disabledTabs || tabs.length === 1 ? tabs.map(function (tab) {
281
278
  return _this2.renderTab(tab, showTeacherInstructions, disabledTabs);
282
279
  }) : /*#__PURE__*/_react["default"].createElement(_react["default"].Fragment, null, /*#__PURE__*/_react["default"].createElement(_Tabs["default"], {
@@ -1 +1 @@
1
- {"version":3,"sources":["../src/stimulus-tabs.jsx"],"names":["styles","theme","passages","flexGrow","backgroundColor","color","background","text","passage","padding","spacing","unit","passageTitle","fontSize","passageSubtitle","passageAuthor","passageText","stickyTabs","position","top","tab","palette","common","white","black","tabButton","breakSpaces","whiteSpace","teacherInstructions","marginBottom","StimulusTabs","activeTab","event","setState","setTimeout","tabChangeEvent","CustomEvent","detail","window","dispatchEvent","currentTabId","key","tabs","props","newTabIndex","currentIndex","findIndex","id","length","preventDefault","handleChange","document","getElementById","focus","div","createElement","innerHTML","replace","audio","querySelector","source","setAttribute","getAttribute","removeAttribute","appendChild","showTeacherInstructions","disabledTabs","teacherInstructionsDiv","hidden","visible","classes","renderInstructions","__html","parsedText","title","subtitle","author","state","selectedTab","find","map","renderTab","root","flexContainer","handleKeyDown","React","Component","propTypes","PropTypes","object","isRequired","arrayOf","shape","number","string","bool"],"mappings":";;;;;;;;;;;;;;;;;;;;;;;AAAA;;AACA;;AACA;;AACA;;AACA;;AACA;;AACA;;;;;;AAEA,IAAMA,MAAM,GAAG,SAATA,MAAS,CAACC,KAAD;AAAA,SAAY;AACzBC,IAAAA,QAAQ,EAAE;AACRC,MAAAA,QAAQ,EAAE,CADF;AAERC,MAAAA,eAAe,EAAEC,gBAAMC,UAAN,EAFT;AAGRD,MAAAA,KAAK,EAAEA,gBAAME,IAAN;AAHC,KADe;AAMzBC,IAAAA,OAAO,EAAE;AACPJ,MAAAA,eAAe,EAAEC,gBAAMC,UAAN,EADV;AAEPD,MAAAA,KAAK,EAAEA,gBAAME,IAAN,EAFA;AAGPE,MAAAA,OAAO,EAAER,KAAK,CAACS,OAAN,CAAcC,IAAd,GAAqB;AAHvB,KANgB;AAWzBC,IAAAA,YAAY,EAAE;AACZC,MAAAA,QAAQ,EAAE;AADE,KAXW;AAczBC,IAAAA,eAAe,EAAE;AACfD,MAAAA,QAAQ,EAAE;AADK,KAdQ;AAiBzBE,IAAAA,aAAa,EAAE;AACbF,MAAAA,QAAQ,EAAE;AADG,KAjBU;AAoBzBG,IAAAA,WAAW,EAAE,EApBY;AAqBzBC,IAAAA,UAAU,EAAE;AACVX,MAAAA,UAAU,EAAED,gBAAMC,UAAN,EADF;AAEVY,MAAAA,QAAQ,EAAE,QAFA;AAGVC,MAAAA,GAAG,EAAE;AAHK,KArBa;AA0BzBC,IAAAA,GAAG,EAAE;AACHd,MAAAA,UAAU,EAAEL,KAAK,CAACoB,OAAN,CAAcC,MAAd,CAAqBC,KAD9B;AACqC;AACxCV,MAAAA,QAAQ,EAAE,SAFP;AAGHR,MAAAA,KAAK,EAAEJ,KAAK,CAACoB,OAAN,CAAcC,MAAd,CAAqBE,KAHzB,CAGgC;;AAHhC,KA1BoB;AA+BzBC,IAAAA,SAAS,EAAE;AACTnB,MAAAA,UAAU,EAAEL,KAAK,CAACoB,OAAN,CAAcC,MAAd,CAAqBC,KADxB,CAC+B;;AAD/B,KA/Bc;AAkCzBG,IAAAA,WAAW,EAAE;AACXC,MAAAA,UAAU,EAAE;AADD,KAlCY;AAqCzBC,IAAAA,mBAAmB,EAAE;AACnBC,MAAAA,YAAY,EAAE5B,KAAK,CAACS,OAAN,CAAcC,IAAd,GAAqB;AADhB;AArCI,GAAZ;AAAA,CAAf;;IA0CMmB,Y;;;;;;;;;;;;;;;8FACI;AACNC,MAAAA,SAAS,EAAE;AADL,K;qGAIO,UAACC,KAAD,EAAQD,SAAR,EAAsB;AACnC,YAAKE,QAAL,CAAc;AAAA,eAAO;AAAEF,UAAAA,SAAS,EAATA;AAAF,SAAP;AAAA,OAAd;;AAEAG,MAAAA,UAAU,CAAC,YAAM;AACf,YAAMC,cAAc,GAAG,IAAIC,WAAJ,CAAgB,2BAAhB,EAA6C;AAClEC,UAAAA,MAAM,EAAE;AAAEjB,YAAAA,GAAG,EAAEW;AAAP;AAD0D,SAA7C,CAAvB;AAIAO,QAAAA,MAAM,CAACC,aAAP,CAAqBJ,cAArB;AACD,OANS,CAAV;AAOD,K;sGAEe,UAACH,KAAD,EAAQQ,YAAR,EAAyB;AACvC,UAAQC,GAAR,GAAgBT,KAAhB,CAAQS,GAAR;AACA,UAAQC,IAAR,GAAiB,MAAKC,KAAtB,CAAQD,IAAR;AAEA,UAAIE,WAAW,GAAG,CAAC,CAAnB;AACA,UAAMC,YAAY,GAAGH,IAAI,CAACI,SAAL,CAAe,UAAC1B,GAAD;AAAA,eAASA,GAAG,CAAC2B,EAAJ,KAAWP,YAApB;AAAA,OAAf,CAArB;;AAEA,cAAQC,GAAR;AACE,aAAK,YAAL;AACE;AACAG,UAAAA,WAAW,GAAG,CAACC,YAAY,GAAG,CAAhB,IAAqBH,IAAI,CAACM,MAAxC;AACA;;AACF,aAAK,WAAL;AACE;AACAJ,UAAAA,WAAW,GAAG,CAACC,YAAY,GAAG,CAAf,GAAmBH,IAAI,CAACM,MAAzB,IAAmCN,IAAI,CAACM,MAAtD;AACA;AACF;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AACA,aAAK,MAAL;AACE;AACAJ,UAAAA,WAAW,GAAG,CAAd;AACA;;AACF,aAAK,KAAL;AACE;AACAA,UAAAA,WAAW,GAAGF,IAAI,CAACM,MAAL,GAAc,CAA5B;AACA;;AACF,aAAK,OAAL;AACA,aAAK,GAAL;AACE;AACAJ,UAAAA,WAAW,GAAGC,YAAd;AACA;;AACF;AACE;AAhCJ;;AAmCA,UAAID,WAAW,KAAK,CAAC,CAArB,EAAwB;AACtBZ,QAAAA,KAAK,CAACiB,cAAN;;AACA,cAAKC,YAAL,CAAkBlB,KAAlB,EAAyBU,IAAI,CAACE,WAAD,CAAJ,CAAkBG,EAA3C;;AACAI,QAAAA,QAAQ,CAACC,cAAT,kBAAkCV,IAAI,CAACE,WAAD,CAAJ,CAAkBG,EAApD,GAA0DM,KAA1D;AACD;AACF,K;mGAEY,YAAe;AAAA,UAAd9C,IAAc,uEAAP,EAAO;AAC1B;AACA,UAAM+C,GAAG,GAAGH,QAAQ,CAACI,aAAT,CAAuB,KAAvB,CAAZ;AACAD,MAAAA,GAAG,CAACE,SAAJ,GAAgBjD,IAAI,CAACkD,OAAL,CAAa,aAAb,EAA4B,OAA5B,CAAhB;AAEA,UAAMC,KAAK,GAAGJ,GAAG,CAACK,aAAJ,CAAkB,OAAlB,CAAd;;AAEA,UAAID,KAAJ,EAAW;AACT,YAAME,MAAM,GAAGT,QAAQ,CAACI,aAAT,CAAuB,QAAvB,CAAf;AAEAK,QAAAA,MAAM,CAACC,YAAP,CAAoB,MAApB,EAA4B,WAA5B;AACAD,QAAAA,MAAM,CAACC,YAAP,CAAoB,KAApB,EAA2BH,KAAK,CAACI,YAAN,CAAmB,KAAnB,CAA3B;AAEAJ,QAAAA,KAAK,CAACK,eAAN,CAAsB,KAAtB;AACAL,QAAAA,KAAK,CAACM,WAAN,CAAkBJ,MAAlB;AACD;;AAED,aAAON,GAAG,CAACE,SAAX;AACD,K;;;;;;WAED,4BAAmBS,uBAAnB,EAA4CrC,mBAA5C,EAAuF;AAAA,UAAtBsC,YAAsB,uEAAP,KAAO;;AACrF,UAAI,CAACD,uBAAD,IAA4B,CAACrC,mBAAjC,EAAsD;AACpD;AACD;;AAED,UAAMuC,sBAAsB,gBAC1B,gCAAC,uBAAD;AACE,QAAA,OAAO,EAAC,KADV;AAEE,QAAA,SAAS,EAAC,QAFZ;AAGE,QAAA,gBAAgB,EAAC,sBAHnB;AAIE,QAAA,MAAM,EAAEvC;AAJV,QADF;;AASA,UAAIsC,YAAJ,EAAkB;AAChB,eAAOC,sBAAP;AACD;;AAED,0BACE,gCAAC,qBAAD;AACE,QAAA,MAAM,EAAE;AACNC,UAAAA,MAAM,EAAE,2BADF;AAENC,UAAAA,OAAO,EAAE;AAFH;AADV,SAMGF,sBANH,CADF;AAUD;;;WAED,mBAAU/C,GAAV,EAAe6C,uBAAf,EAAwCC,YAAxC,EAAsD;AACpD,UAAQI,OAAR,GAAoB,KAAK3B,KAAzB,CAAQ2B,OAAR;AAEA,0BACE;AACE,QAAA,SAAS,EAAE,4BAAWA,OAAO,CAAC9D,OAAnB,EAA4B,SAA5B,CADb;AAEE,QAAA,GAAG,EAAEY,GAAG,CAAC2B,EAFX;AAGE,QAAA,EAAE,qBAAc3B,GAAG,CAAC2B,EAAlB,CAHJ;AAIE,QAAA,IAAI,EAAC,UAJP;AAKE,4CAA2B3B,GAAG,CAAC2B,EAA/B;AALF,SAOG,KAAKwB,kBAAL,CAAwBN,uBAAxB,EAAiD7C,GAAG,CAACQ,mBAArD,EAA0EsC,YAA1E,CAPH,eAQE,yDACE;AACE,QAAA,SAAS,EAAE,4BAAWI,OAAO,CAAC1D,YAAnB,EAAiC,OAAjC,CADb;AAEE,QAAA,uBAAuB,EAAE;AAAE4D,UAAAA,MAAM,EAAE,KAAKC,UAAL,CAAgBrD,GAAG,CAACsD,KAApB;AAAV;AAF3B,QADF,eAKE;AACE,QAAA,SAAS,EAAE,4BAAWJ,OAAO,CAACxD,eAAnB,EAAoC,UAApC,CADb;AAEE,QAAA,uBAAuB,EAAE;AAAE0D,UAAAA,MAAM,EAAE,KAAKC,UAAL,CAAgBrD,GAAG,CAACuD,QAApB;AAAV;AAF3B,QALF,CARF,eAkBE;AACE,QAAA,SAAS,EAAE,4BAAWL,OAAO,CAACvD,aAAnB,EAAkC,QAAlC,CADb;AAEE,QAAA,uBAAuB,EAAE;AAAEyD,UAAAA,MAAM,EAAE,KAAKC,UAAL,CAAgBrD,GAAG,CAACwD,MAApB;AAAV;AAF3B,QAlBF,eAsBE;AACE,QAAA,GAAG,EAAExD,GAAG,CAAC2B,EADX;AAEE,QAAA,SAAS,EAAE,4BAAWuB,OAAO,CAACtD,WAAnB,EAAgC,MAAhC,CAFb;AAGE,QAAA,uBAAuB,EAAE;AAAEwD,UAAAA,MAAM,EAAE,KAAKC,UAAL,CAAgBrD,GAAG,CAACb,IAApB;AAAV;AAH3B,QAtBF,CADF;AA8BD;;;WAED,kBAAS;AAAA;;AACP,wBAAiE,KAAKoC,KAAtE;AAAA,UAAQ2B,OAAR,eAAQA,OAAR;AAAA,UAAiB5B,IAAjB,eAAiBA,IAAjB;AAAA,UAAuBwB,YAAvB,eAAuBA,YAAvB;AAAA,UAAqCD,uBAArC,eAAqCA,uBAArC;AACA,UAAQlC,SAAR,GAAsB,KAAK8C,KAA3B,CAAQ9C,SAAR;;AAEA,UAAI,EAACW,IAAD,aAACA,IAAD,eAACA,IAAI,CAAEM,MAAP,CAAJ,EAAmB;AACjB;AACD;;AAED,UAAM8B,WAAW,GAAG,CAACpC,IAAI,IAAI,EAAT,EAAaqC,IAAb,CAAkB,UAAC3D,GAAD;AAAA,eAASA,GAAG,CAAC2B,EAAJ,KAAWhB,SAApB;AAAA,OAAlB,CAApB;AAEA,0BACE;AAAK,QAAA,SAAS,EAAE,4BAAWuC,OAAO,CAACpE,QAAnB,uCAAgCoE,OAAO,CAAC5C,WAAxC,EAAsDgB,IAAI,CAACM,MAAL,KAAgB,CAAtE,GAA2E,UAA3E;AAAhB,SACGkB,YAAY,IAAIxB,IAAI,CAACM,MAAL,KAAgB,CAAhC,GACCN,IAAI,CAACsC,GAAL,CAAS,UAAC5D,GAAD;AAAA,eAAS,MAAI,CAAC6D,SAAL,CAAe7D,GAAf,EAAoB6C,uBAApB,EAA6CC,YAA7C,CAAT;AAAA,OAAT,CADD,gBAGC,+EACE,gCAAC,gBAAD;AACE,QAAA,OAAO,EAAE;AACPgB,UAAAA,IAAI,EAAEZ,OAAO,CAACrD,UADP;AAEPkE,UAAAA,aAAa,EAAEb,OAAO,CAAC7C;AAFhB,SADX;AAKE,QAAA,KAAK,EAAEM,SALT;AAME,QAAA,QAAQ,EAAE,KAAKmB;AANjB,SAQGR,IAAI,CAACsC,GAAL,CAAS,UAAC5D,GAAD;AAAA,4BACR,gCAAC,eAAD;AACE,UAAA,SAAS,EAAEkD,OAAO,CAAClD,GADrB;AAEE,UAAA,GAAG,EAAEA,GAAG,CAAC2B,EAFX;AAGE,UAAA,EAAE,mBAAY3B,GAAG,CAAC2B,EAAhB,CAHJ;AAIE,UAAA,KAAK,eAAE;AAAM,YAAA,uBAAuB,EAAE;AAAEyB,cAAAA,MAAM,EAAE,MAAI,CAACC,UAAL,CAAgBrD,GAAG,CAACsD,KAApB;AAAV;AAA/B,YAJT;AAKE,UAAA,KAAK,EAAEtD,GAAG,CAAC2B,EALb;AAME,UAAA,QAAQ,EAAEhB,SAAS,KAAKX,GAAG,CAAC2B,EAAlB,GAAuB,CAAvB,GAA2B,CAAC,CANxC;AAOE,8CAA2B3B,GAAG,CAAC2B,EAA/B,CAPF;AAQE,2BAAehB,SAAS,KAAKX,GAAG,CAAC2B,EARnC;AASE,UAAA,OAAO,EAAE;AAAA,mBAAM,MAAI,CAACG,YAAL,CAAkB,IAAlB,EAAwB9B,GAAG,CAAC2B,EAA5B,CAAN;AAAA,WATX;AAUE,UAAA,SAAS,EAAE,mBAACf,KAAD;AAAA,mBAAW,MAAI,CAACoD,aAAL,CAAmBpD,KAAnB,EAA0BZ,GAAG,CAAC2B,EAA9B,CAAX;AAAA;AAVb,UADQ;AAAA,OAAT,CARH,CADF,EAwBG+B,WAAW,GAAG,KAAKG,SAAL,CAAeH,WAAf,EAA4Bb,uBAA5B,EAAqDC,YAArD,CAAH,GAAwE,IAxBtF,CAJJ,CADF;AAkCD;;;EAnMwBmB,kBAAMC,S;;AAsMjCxD,YAAY,CAACyD,SAAb,GAAyB;AACvBjB,EAAAA,OAAO,EAAEkB,sBAAUC,MAAV,CAAiBC,UADH;AAEvBhD,EAAAA,IAAI,EAAE8C,sBAAUG,OAAV,CACJH,sBAAUI,KAAV,CAAgB;AACd7C,IAAAA,EAAE,EAAEyC,sBAAUK,MAAV,CAAiBH,UADP;AAEdhB,IAAAA,KAAK,EAAEc,sBAAUM,MAAV,CAAiBJ,UAFV;AAGdf,IAAAA,QAAQ,EAAEa,sBAAUM,MAHN;AAIdlB,IAAAA,MAAM,EAAEY,sBAAUM,MAJJ;AAKdvF,IAAAA,IAAI,EAAEiF,sBAAUM,MAAV,CAAiBJ,UALT;AAMd9D,IAAAA,mBAAmB,EAAE4D,sBAAUM;AANjB,GAAhB,EAOGJ,UARC,EASJA,UAXqB;AAYvBxB,EAAAA,YAAY,EAAEsB,sBAAUO,IAZD;AAavB9B,EAAAA,uBAAuB,EAAEuB,sBAAUO;AAbZ,CAAzB;;eAgBe,wBAAW/F,MAAX,EAAmB8B,YAAnB,C","sourcesContent":["import React from 'react';\nimport PropTypes from 'prop-types';\nimport Tabs from '@material-ui/core/Tabs';\nimport Tab from '@material-ui/core/Tab';\nimport { withStyles } from '@material-ui/core/styles';\nimport { Collapsible, color, PreviewPrompt } from '@pie-lib/pie-toolbox/render-ui';\nimport classNames from 'classnames';\n\nconst styles = (theme) => ({\n passages: {\n flexGrow: 1,\n backgroundColor: color.background(),\n color: color.text(),\n },\n passage: {\n backgroundColor: color.background(),\n color: color.text(),\n padding: theme.spacing.unit * 2,\n },\n passageTitle: {\n fontSize: '1.75rem',\n },\n passageSubtitle: {\n fontSize: '1.5rem',\n },\n passageAuthor: {\n fontSize: '1.25rem',\n },\n passageText: {},\n stickyTabs: {\n background: color.background(),\n position: 'sticky',\n top: 0,\n },\n tab: {\n background: theme.palette.common.white, // replace with color.background() once PD-2801 is DONE\n fontSize: 'inherit',\n color: theme.palette.common.black, // remove when PD-2801 is DONE\n },\n tabButton: {\n background: theme.palette.common.white, // replace with color.background() once PD-2801 is DONE\n },\n breakSpaces: {\n whiteSpace: 'break-spaces',\n },\n teacherInstructions: {\n marginBottom: theme.spacing.unit * 2,\n },\n});\n\nclass StimulusTabs extends React.Component {\n state = {\n activeTab: 0,\n };\n\n handleChange = (event, activeTab) => {\n this.setState(() => ({ activeTab }));\n\n setTimeout(() => {\n const tabChangeEvent = new CustomEvent('pie-ui-passage-tabChanged', {\n detail: { tab: activeTab },\n });\n\n window.dispatchEvent(tabChangeEvent);\n });\n };\n\n handleKeyDown = (event, currentTabId) => {\n const { key } = event;\n const { tabs } = this.props;\n\n let newTabIndex = -1;\n const currentIndex = tabs.findIndex((tab) => tab.id === currentTabId);\n\n switch (key) {\n case 'ArrowRight':\n // Move to the next tab\n newTabIndex = (currentIndex + 1) % tabs.length;\n break;\n case 'ArrowLeft':\n // Move to the previous tab\n newTabIndex = (currentIndex - 1 + tabs.length) % tabs.length;\n break;\n // Commented out ArrowDown and ArrowUp for future vertical tab navigation\n // case 'ArrowDown':\n // // Move to the next tab (for vertical alignment)\n // newTabIndex = (currentIndex + 1) % tabs.length;\n // break;\n // case 'ArrowUp':\n // // Move to the previous tab (for vertical alignment)\n // newTabIndex = (currentIndex - 1 + tabs.length) % tabs.length;\n // break;\n case 'Home':\n // Move to the first tab\n newTabIndex = 0;\n break;\n case 'End':\n // Move to the last tab\n newTabIndex = tabs.length - 1;\n break;\n case 'Enter':\n case ' ':\n // Activate the current tab\n newTabIndex = currentIndex;\n break;\n default:\n break;\n }\n\n if (newTabIndex !== -1) {\n event.preventDefault();\n this.handleChange(event, tabs[newTabIndex].id);\n document.getElementById(`button-${tabs[newTabIndex].id}`).focus();\n }\n };\n\n parsedText = (text = '') => {\n // fix imported audio content for Safari PD-1391\n const div = document.createElement('div');\n div.innerHTML = text.replace(/(<br\\/>\\n)/g, '<br/>');\n\n const audio = div.querySelector('audio');\n\n if (audio) {\n const source = document.createElement('source');\n\n source.setAttribute('type', 'audio/mp3');\n source.setAttribute('src', audio.getAttribute('src'));\n\n audio.removeAttribute('src');\n audio.appendChild(source);\n }\n\n return div.innerHTML;\n };\n\n renderInstructions(showTeacherInstructions, teacherInstructions, disabledTabs = false) {\n if (!showTeacherInstructions || !teacherInstructions) {\n return;\n }\n\n const teacherInstructionsDiv = (\n <PreviewPrompt\n tagName=\"div\"\n className=\"prompt\"\n defaultClassName=\"teacher-instructions\"\n prompt={teacherInstructions}\n />\n );\n\n if (disabledTabs) {\n return teacherInstructionsDiv;\n }\n\n return (\n <Collapsible\n labels={{\n hidden: 'Show Teacher Instructions',\n visible: 'Hide Teacher Instructions',\n }}\n >\n {teacherInstructionsDiv}\n </Collapsible>\n );\n }\n\n renderTab(tab, showTeacherInstructions, disabledTabs) {\n const { classes } = this.props;\n\n return (\n <div\n className={classNames(classes.passage, 'passage')}\n key={tab.id}\n id={`tabpanel-${tab.id}`}\n role=\"tabpanel\"\n aria-labelledby={`button-${tab.id}`}\n >\n {this.renderInstructions(showTeacherInstructions, tab.teacherInstructions, disabledTabs)}\n <h2>\n <div\n className={classNames(classes.passageTitle, 'title')}\n dangerouslySetInnerHTML={{ __html: this.parsedText(tab.title) }}\n />\n <div\n className={classNames(classes.passageSubtitle, 'subtitle')}\n dangerouslySetInnerHTML={{ __html: this.parsedText(tab.subtitle) }}\n />\n </h2>\n <div\n className={classNames(classes.passageAuthor, 'author')}\n dangerouslySetInnerHTML={{ __html: this.parsedText(tab.author) }}\n />\n <div\n key={tab.id}\n className={classNames(classes.passageText, 'text')}\n dangerouslySetInnerHTML={{ __html: this.parsedText(tab.text) }}\n />\n </div>\n );\n }\n\n render() {\n const { classes, tabs, disabledTabs, showTeacherInstructions } = this.props;\n const { activeTab } = this.state;\n\n if (!tabs?.length) {\n return;\n }\n\n const selectedTab = (tabs || []).find((tab) => tab.id === activeTab);\n\n return (\n <div className={classNames(classes.passages, { [classes.breakSpaces]: tabs.length === 1 }, 'passages')}>\n {disabledTabs || tabs.length === 1 ? (\n tabs.map((tab) => this.renderTab(tab, showTeacherInstructions, disabledTabs))\n ) : (\n <>\n <Tabs\n classes={{\n root: classes.stickyTabs,\n flexContainer: classes.tabButton,\n }}\n value={activeTab}\n onChange={this.handleChange}\n >\n {tabs.map((tab) => (\n <Tab\n className={classes.tab}\n key={tab.id}\n id={`button-${tab.id}`}\n label={<span dangerouslySetInnerHTML={{ __html: this.parsedText(tab.title) }} />}\n value={tab.id}\n tabIndex={activeTab === tab.id ? 0 : -1}\n aria-controls={`tabpanel-${tab.id}`}\n aria-selected={activeTab === tab.id}\n onFocus={() => this.handleChange(null, tab.id)}\n onKeyDown={(event) => this.handleKeyDown(event, tab.id)}\n />\n ))}\n </Tabs>\n {selectedTab ? this.renderTab(selectedTab, showTeacherInstructions, disabledTabs) : null}\n </>\n )}\n </div>\n );\n }\n}\n\nStimulusTabs.propTypes = {\n classes: PropTypes.object.isRequired,\n tabs: PropTypes.arrayOf(\n PropTypes.shape({\n id: PropTypes.number.isRequired,\n title: PropTypes.string.isRequired,\n subtitle: PropTypes.string,\n author: PropTypes.string,\n text: PropTypes.string.isRequired,\n teacherInstructions: PropTypes.string,\n }).isRequired,\n ).isRequired,\n disabledTabs: PropTypes.bool,\n showTeacherInstructions: PropTypes.bool,\n};\n\nexport default withStyles(styles)(StimulusTabs);\n"],"file":"stimulus-tabs.js"}
1
+ {"version":3,"sources":["../src/stimulus-tabs.jsx"],"names":["styles","theme","passages","flexGrow","backgroundColor","color","background","text","passage","padding","spacing","unit","passageTitle","fontSize","passageSubtitle","passageAuthor","passageText","stickyTabs","position","top","tab","palette","common","white","black","tabButton","teacherInstructions","marginBottom","StimulusTabs","activeTab","event","setState","setTimeout","tabChangeEvent","CustomEvent","detail","window","dispatchEvent","currentTabId","key","tabs","props","newTabIndex","currentIndex","findIndex","id","length","preventDefault","handleChange","document","getElementById","focus","div","createElement","innerHTML","replace","audio","querySelector","source","setAttribute","getAttribute","removeAttribute","appendChild","showTeacherInstructions","disabledTabs","teacherInstructionsDiv","hidden","visible","classes","renderInstructions","__html","parsedText","title","subtitle","author","state","selectedTab","find","map","renderTab","root","flexContainer","handleKeyDown","React","Component","propTypes","PropTypes","object","isRequired","arrayOf","shape","number","string","bool"],"mappings":"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","sourcesContent":["import React from 'react';\nimport PropTypes from 'prop-types';\nimport Tabs from '@material-ui/core/Tabs';\nimport Tab from '@material-ui/core/Tab';\nimport { withStyles } from '@material-ui/core/styles';\nimport { Collapsible, color, PreviewPrompt } from '@pie-lib/pie-toolbox/render-ui';\nimport classNames from 'classnames';\n\nconst styles = (theme) => ({\n passages: {\n flexGrow: 1,\n backgroundColor: color.background(),\n color: color.text(),\n },\n passage: {\n backgroundColor: color.background(),\n color: color.text(),\n padding: theme.spacing.unit * 2,\n },\n passageTitle: {\n fontSize: '1.75rem',\n },\n passageSubtitle: {\n fontSize: '1.5rem',\n },\n passageAuthor: {\n fontSize: '1.25rem',\n },\n passageText: {},\n stickyTabs: {\n background: color.background(),\n position: 'sticky',\n top: 0,\n },\n tab: {\n background: theme.palette.common.white, // replace with color.background() once PD-2801 is DONE\n fontSize: 'inherit',\n color: theme.palette.common.black, // remove when PD-2801 is DONE\n },\n tabButton: {\n background: theme.palette.common.white, // replace with color.background() once PD-2801 is DONE\n },\n teacherInstructions: {\n marginBottom: theme.spacing.unit * 2,\n },\n});\n\nclass StimulusTabs extends React.Component {\n state = {\n activeTab: 0,\n };\n\n handleChange = (event, activeTab) => {\n this.setState(() => ({ activeTab }));\n\n setTimeout(() => {\n const tabChangeEvent = new CustomEvent('pie-ui-passage-tabChanged', {\n detail: { tab: activeTab },\n });\n\n window.dispatchEvent(tabChangeEvent);\n });\n };\n\n handleKeyDown = (event, currentTabId) => {\n const { key } = event;\n const { tabs } = this.props;\n\n let newTabIndex = -1;\n const currentIndex = tabs.findIndex((tab) => tab.id === currentTabId);\n\n switch (key) {\n case 'ArrowRight':\n // Move to the next tab\n newTabIndex = (currentIndex + 1) % tabs.length;\n break;\n case 'ArrowLeft':\n // Move to the previous tab\n newTabIndex = (currentIndex - 1 + tabs.length) % tabs.length;\n break;\n // Commented out ArrowDown and ArrowUp for future vertical tab navigation\n // case 'ArrowDown':\n // // Move to the next tab (for vertical alignment)\n // newTabIndex = (currentIndex + 1) % tabs.length;\n // break;\n // case 'ArrowUp':\n // // Move to the previous tab (for vertical alignment)\n // newTabIndex = (currentIndex - 1 + tabs.length) % tabs.length;\n // break;\n case 'Home':\n // Move to the first tab\n newTabIndex = 0;\n break;\n case 'End':\n // Move to the last tab\n newTabIndex = tabs.length - 1;\n break;\n case 'Enter':\n case ' ':\n // Activate the current tab\n newTabIndex = currentIndex;\n break;\n default:\n break;\n }\n\n if (newTabIndex !== -1) {\n event.preventDefault();\n this.handleChange(event, tabs[newTabIndex].id);\n document.getElementById(`button-${tabs[newTabIndex].id}`).focus();\n }\n };\n\n parsedText = (text = '') => {\n // fix imported audio content for Safari PD-1391\n const div = document.createElement('div');\n div.innerHTML = text.replace(/(<br\\/>\\n)/g, '<br/>');\n\n const audio = div.querySelector('audio');\n\n if (audio) {\n const source = document.createElement('source');\n\n source.setAttribute('type', 'audio/mp3');\n source.setAttribute('src', audio.getAttribute('src'));\n\n audio.removeAttribute('src');\n audio.appendChild(source);\n }\n\n return div.innerHTML;\n };\n\n renderInstructions(showTeacherInstructions, teacherInstructions, disabledTabs = false) {\n if (!showTeacherInstructions || !teacherInstructions) {\n return;\n }\n\n const teacherInstructionsDiv = (\n <PreviewPrompt\n tagName=\"div\"\n className=\"prompt\"\n defaultClassName=\"teacher-instructions\"\n prompt={teacherInstructions}\n />\n );\n\n if (disabledTabs) {\n return teacherInstructionsDiv;\n }\n\n return (\n <Collapsible\n labels={{\n hidden: 'Show Teacher Instructions',\n visible: 'Hide Teacher Instructions',\n }}\n >\n {teacherInstructionsDiv}\n </Collapsible>\n );\n }\n\n renderTab(tab, showTeacherInstructions, disabledTabs) {\n const { classes } = this.props;\n\n return (\n <div\n className={classNames(classes.passage, 'passage')}\n key={tab.id}\n id={`tabpanel-${tab.id}`}\n role=\"tabpanel\"\n aria-labelledby={`button-${tab.id}`}\n >\n {this.renderInstructions(showTeacherInstructions, tab.teacherInstructions, disabledTabs)}\n <h2>\n <div\n className={classNames(classes.passageTitle, 'title')}\n dangerouslySetInnerHTML={{ __html: this.parsedText(tab.title) }}\n />\n <div\n className={classNames(classes.passageSubtitle, 'subtitle')}\n dangerouslySetInnerHTML={{ __html: this.parsedText(tab.subtitle) }}\n />\n </h2>\n <div\n className={classNames(classes.passageAuthor, 'author')}\n dangerouslySetInnerHTML={{ __html: this.parsedText(tab.author) }}\n />\n <div\n key={tab.id}\n className={classNames(classes.passageText, 'text')}\n dangerouslySetInnerHTML={{ __html: this.parsedText(tab.text) }}\n />\n </div>\n );\n }\n\n render() {\n const { classes, tabs, disabledTabs, showTeacherInstructions } = this.props;\n const { activeTab } = this.state;\n\n if (!tabs?.length) {\n return;\n }\n\n const selectedTab = (tabs || []).find((tab) => tab.id === activeTab);\n\n return (\n <div className={classNames(classes.passages, 'passages')}>\n {disabledTabs || tabs.length === 1 ? (\n tabs.map((tab) => this.renderTab(tab, showTeacherInstructions, disabledTabs))\n ) : (\n <>\n <Tabs\n classes={{\n root: classes.stickyTabs,\n flexContainer: classes.tabButton,\n }}\n value={activeTab}\n onChange={this.handleChange}\n >\n {tabs.map((tab) => (\n <Tab\n className={classes.tab}\n key={tab.id}\n id={`button-${tab.id}`}\n label={<span dangerouslySetInnerHTML={{ __html: this.parsedText(tab.title) }} />}\n value={tab.id}\n tabIndex={activeTab === tab.id ? 0 : -1}\n aria-controls={`tabpanel-${tab.id}`}\n aria-selected={activeTab === tab.id}\n onFocus={() => this.handleChange(null, tab.id)}\n onKeyDown={(event) => this.handleKeyDown(event, tab.id)}\n />\n ))}\n </Tabs>\n {selectedTab ? this.renderTab(selectedTab, showTeacherInstructions, disabledTabs) : null}\n </>\n )}\n </div>\n );\n }\n}\n\nStimulusTabs.propTypes = {\n classes: PropTypes.object.isRequired,\n tabs: PropTypes.arrayOf(\n PropTypes.shape({\n id: PropTypes.number.isRequired,\n title: PropTypes.string.isRequired,\n subtitle: PropTypes.string,\n author: PropTypes.string,\n text: PropTypes.string.isRequired,\n teacherInstructions: PropTypes.string,\n }).isRequired,\n ).isRequired,\n disabledTabs: PropTypes.bool,\n showTeacherInstructions: PropTypes.bool,\n};\n\nexport default withStyles(styles)(StimulusTabs);\n"],"file":"stimulus-tabs.js"}
package/module/element.js CHANGED
@@ -8637,9 +8637,6 @@ const styles = theme => ({
8637
8637
  tabButton: {
8638
8638
  background: theme.palette.common.white
8639
8639
  },
8640
- breakSpaces: {
8641
- whiteSpace: 'break-spaces'
8642
- },
8643
8640
  teacherInstructions: {
8644
8641
  marginBottom: theme.spacing.unit * 2
8645
8642
  }
@@ -8730,7 +8727,7 @@ class StimulusTabs extends React$1.Component {
8730
8727
  __self: this,
8731
8728
  __source: {
8732
8729
  fileName: _jsxFileName,
8733
- lineNumber: 143
8730
+ lineNumber: 140
8734
8731
  }
8735
8732
  });
8736
8733
  if (disabledTabs) {
@@ -8744,7 +8741,7 @@ class StimulusTabs extends React$1.Component {
8744
8741
  __self: this,
8745
8742
  __source: {
8746
8743
  fileName: _jsxFileName,
8747
- lineNumber: 156
8744
+ lineNumber: 153
8748
8745
  }
8749
8746
  }, teacherInstructionsDiv);
8750
8747
  }
@@ -8759,13 +8756,13 @@ class StimulusTabs extends React$1.Component {
8759
8756
  __self: this,
8760
8757
  __source: {
8761
8758
  fileName: _jsxFileName,
8762
- lineNumber: 171
8759
+ lineNumber: 168
8763
8760
  }
8764
8761
  }, this.renderInstructions(showTeacherInstructions, tab.teacherInstructions, disabledTabs), React$1.createElement('h2', {
8765
8762
  __self: this,
8766
8763
  __source: {
8767
8764
  fileName: _jsxFileName,
8768
- lineNumber: 179
8765
+ lineNumber: 176
8769
8766
  }
8770
8767
  }, React$1.createElement('div', {
8771
8768
  className: classNames(classes.passageTitle, 'title'),
@@ -8775,7 +8772,7 @@ class StimulusTabs extends React$1.Component {
8775
8772
  __self: this,
8776
8773
  __source: {
8777
8774
  fileName: _jsxFileName,
8778
- lineNumber: 180
8775
+ lineNumber: 177
8779
8776
  }
8780
8777
  }), React$1.createElement('div', {
8781
8778
  className: classNames(classes.passageSubtitle, 'subtitle'),
@@ -8785,7 +8782,7 @@ class StimulusTabs extends React$1.Component {
8785
8782
  __self: this,
8786
8783
  __source: {
8787
8784
  fileName: _jsxFileName,
8788
- lineNumber: 184
8785
+ lineNumber: 181
8789
8786
  }
8790
8787
  })), React$1.createElement('div', {
8791
8788
  className: classNames(classes.passageAuthor, 'author'),
@@ -8795,7 +8792,7 @@ class StimulusTabs extends React$1.Component {
8795
8792
  __self: this,
8796
8793
  __source: {
8797
8794
  fileName: _jsxFileName,
8798
- lineNumber: 189
8795
+ lineNumber: 186
8799
8796
  }
8800
8797
  }), React$1.createElement('div', {
8801
8798
  key: tab.id,
@@ -8806,7 +8803,7 @@ class StimulusTabs extends React$1.Component {
8806
8803
  __self: this,
8807
8804
  __source: {
8808
8805
  fileName: _jsxFileName,
8809
- lineNumber: 193
8806
+ lineNumber: 190
8810
8807
  }
8811
8808
  }));
8812
8809
  }
@@ -8818,13 +8815,11 @@ class StimulusTabs extends React$1.Component {
8818
8815
  }
8819
8816
  const selectedTab = (tabs || []).find(tab => tab.id === activeTab);
8820
8817
  return React$1.createElement('div', {
8821
- className: classNames(classes.passages, {
8822
- [classes.breakSpaces]: tabs.length === 1
8823
- }, 'passages'),
8818
+ className: classNames(classes.passages, 'passages'),
8824
8819
  __self: this,
8825
8820
  __source: {
8826
8821
  fileName: _jsxFileName,
8827
- lineNumber: 213
8822
+ lineNumber: 210
8828
8823
  }
8829
8824
  }, disabledTabs || tabs.length === 1 ? tabs.map(tab => this.renderTab(tab, showTeacherInstructions, disabledTabs)) : React$1.createElement(React$1.Fragment, null, React$1.createElement(Tabs, {
8830
8825
  classes: {
@@ -8836,7 +8831,7 @@ class StimulusTabs extends React$1.Component {
8836
8831
  __self: this,
8837
8832
  __source: {
8838
8833
  fileName: _jsxFileName,
8839
- lineNumber: 218
8834
+ lineNumber: 215
8840
8835
  }
8841
8836
  }, tabs.map(tab => React$1.createElement(Tab, {
8842
8837
  className: classes.tab,
@@ -8849,7 +8844,7 @@ class StimulusTabs extends React$1.Component {
8849
8844
  __self: this,
8850
8845
  __source: {
8851
8846
  fileName: _jsxFileName,
8852
- lineNumber: 231
8847
+ lineNumber: 228
8853
8848
  }
8854
8849
  }),
8855
8850
  value: tab.id,
@@ -8861,7 +8856,7 @@ class StimulusTabs extends React$1.Component {
8861
8856
  __self: this,
8862
8857
  __source: {
8863
8858
  fileName: _jsxFileName,
8864
- lineNumber: 227
8859
+ lineNumber: 224
8865
8860
  }
8866
8861
  }))), selectedTab ? this.renderTab(selectedTab, showTeacherInstructions, disabledTabs) : null));
8867
8862
  }
package/module/index.html CHANGED
@@ -2,7 +2,7 @@
2
2
  <!doctype html>
3
3
  <html>
4
4
  <head>
5
- <title>@pie-element/passage@2.21.1</title>
5
+ <title>@pie-element/passage@2.21.2</title>
6
6
  <script
7
7
  type="module"
8
8
  src="https://cdn.jsdelivr.net/npm/@pslb/demo-el@^1.0.0/dist/demo-el/demo-el.esm.js"></script>
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@pie-element/passage",
3
- "version": "2.21.1",
3
+ "version": "2.21.2",
4
4
  "modules": [
5
5
  {
6
6
  "name": "@pie-lib/pie-toolbox-math-rendering-module",
package/module/print.html CHANGED
@@ -2,7 +2,7 @@
2
2
  <!doctype html>
3
3
  <html>
4
4
  <head>
5
- <title>@pie-element/passage@2.21.1</title>
5
+ <title>@pie-element/passage@2.21.2</title>
6
6
  <link
7
7
  href="https://fonts.googleapis.com/css?family=Roboto&display=swap"
8
8
  rel="stylesheet"
package/module/print.js CHANGED
@@ -8600,9 +8600,6 @@ const styles = theme => ({
8600
8600
  tabButton: {
8601
8601
  background: theme.palette.common.white
8602
8602
  },
8603
- breakSpaces: {
8604
- whiteSpace: 'break-spaces'
8605
- },
8606
8603
  teacherInstructions: {
8607
8604
  marginBottom: theme.spacing.unit * 2
8608
8605
  }
@@ -8693,7 +8690,7 @@ class StimulusTabs extends React$1.Component {
8693
8690
  __self: this,
8694
8691
  __source: {
8695
8692
  fileName: _jsxFileName,
8696
- lineNumber: 143
8693
+ lineNumber: 140
8697
8694
  }
8698
8695
  });
8699
8696
  if (disabledTabs) {
@@ -8707,7 +8704,7 @@ class StimulusTabs extends React$1.Component {
8707
8704
  __self: this,
8708
8705
  __source: {
8709
8706
  fileName: _jsxFileName,
8710
- lineNumber: 156
8707
+ lineNumber: 153
8711
8708
  }
8712
8709
  }, teacherInstructionsDiv);
8713
8710
  }
@@ -8722,13 +8719,13 @@ class StimulusTabs extends React$1.Component {
8722
8719
  __self: this,
8723
8720
  __source: {
8724
8721
  fileName: _jsxFileName,
8725
- lineNumber: 171
8722
+ lineNumber: 168
8726
8723
  }
8727
8724
  }, this.renderInstructions(showTeacherInstructions, tab.teacherInstructions, disabledTabs), React$1.createElement('h2', {
8728
8725
  __self: this,
8729
8726
  __source: {
8730
8727
  fileName: _jsxFileName,
8731
- lineNumber: 179
8728
+ lineNumber: 176
8732
8729
  }
8733
8730
  }, React$1.createElement('div', {
8734
8731
  className: classNames(classes.passageTitle, 'title'),
@@ -8738,7 +8735,7 @@ class StimulusTabs extends React$1.Component {
8738
8735
  __self: this,
8739
8736
  __source: {
8740
8737
  fileName: _jsxFileName,
8741
- lineNumber: 180
8738
+ lineNumber: 177
8742
8739
  }
8743
8740
  }), React$1.createElement('div', {
8744
8741
  className: classNames(classes.passageSubtitle, 'subtitle'),
@@ -8748,7 +8745,7 @@ class StimulusTabs extends React$1.Component {
8748
8745
  __self: this,
8749
8746
  __source: {
8750
8747
  fileName: _jsxFileName,
8751
- lineNumber: 184
8748
+ lineNumber: 181
8752
8749
  }
8753
8750
  })), React$1.createElement('div', {
8754
8751
  className: classNames(classes.passageAuthor, 'author'),
@@ -8758,7 +8755,7 @@ class StimulusTabs extends React$1.Component {
8758
8755
  __self: this,
8759
8756
  __source: {
8760
8757
  fileName: _jsxFileName,
8761
- lineNumber: 189
8758
+ lineNumber: 186
8762
8759
  }
8763
8760
  }), React$1.createElement('div', {
8764
8761
  key: tab.id,
@@ -8769,7 +8766,7 @@ class StimulusTabs extends React$1.Component {
8769
8766
  __self: this,
8770
8767
  __source: {
8771
8768
  fileName: _jsxFileName,
8772
- lineNumber: 193
8769
+ lineNumber: 190
8773
8770
  }
8774
8771
  }));
8775
8772
  }
@@ -8781,13 +8778,11 @@ class StimulusTabs extends React$1.Component {
8781
8778
  }
8782
8779
  const selectedTab = (tabs || []).find(tab => tab.id === activeTab);
8783
8780
  return React$1.createElement('div', {
8784
- className: classNames(classes.passages, {
8785
- [classes.breakSpaces]: tabs.length === 1
8786
- }, 'passages'),
8781
+ className: classNames(classes.passages, 'passages'),
8787
8782
  __self: this,
8788
8783
  __source: {
8789
8784
  fileName: _jsxFileName,
8790
- lineNumber: 213
8785
+ lineNumber: 210
8791
8786
  }
8792
8787
  }, disabledTabs || tabs.length === 1 ? tabs.map(tab => this.renderTab(tab, showTeacherInstructions, disabledTabs)) : React$1.createElement(React$1.Fragment, null, React$1.createElement(Tabs, {
8793
8788
  classes: {
@@ -8799,7 +8794,7 @@ class StimulusTabs extends React$1.Component {
8799
8794
  __self: this,
8800
8795
  __source: {
8801
8796
  fileName: _jsxFileName,
8802
- lineNumber: 218
8797
+ lineNumber: 215
8803
8798
  }
8804
8799
  }, tabs.map(tab => React$1.createElement(Tab, {
8805
8800
  className: classes.tab,
@@ -8812,7 +8807,7 @@ class StimulusTabs extends React$1.Component {
8812
8807
  __self: this,
8813
8808
  __source: {
8814
8809
  fileName: _jsxFileName,
8815
- lineNumber: 231
8810
+ lineNumber: 228
8816
8811
  }
8817
8812
  }),
8818
8813
  value: tab.id,
@@ -8824,7 +8819,7 @@ class StimulusTabs extends React$1.Component {
8824
8819
  __self: this,
8825
8820
  __source: {
8826
8821
  fileName: _jsxFileName,
8827
- lineNumber: 227
8822
+ lineNumber: 224
8828
8823
  }
8829
8824
  }))), selectedTab ? this.renderTab(selectedTab, showTeacherInstructions, disabledTabs) : null));
8830
8825
  }
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@pie-element/passage",
3
- "version": "2.21.2",
3
+ "version": "2.21.3-next.4+9d0f87467",
4
4
  "publishConfig": {
5
5
  "access": "public"
6
6
  },
@@ -17,7 +17,7 @@
17
17
  "react": "^16.8.1",
18
18
  "react-dom": "^16.8.1"
19
19
  },
20
- "gitHead": "c49ba75d9b36cf990049a8ac179780177989aa9c",
20
+ "gitHead": "9d0f87467cb2a85e309a8ae0340d8092515b4cc9",
21
21
  "scripts": {
22
22
  "postpublish": "../../scripts/postpublish"
23
23
  },