@pie-element/passage 3.1.8-next.14 → 3.2.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/CHANGELOG.md CHANGED
@@ -3,6 +3,22 @@
3
3
  All notable changes to this project will be documented in this file.
4
4
  See [Conventional Commits](https://conventionalcommits.org) for commit guidelines.
5
5
 
6
+ # [3.2.0](https://github.com/pie-framework/pie-elements/compare/@pie-element/passage@3.1.7...@pie-element/passage@3.2.0) (2024-10-29)
7
+
8
+
9
+ ### Bug Fixes
10
+
11
+ * fixed all tests after updating pie-toolbox [PD-1460] ([9f5293d](https://github.com/pie-framework/pie-elements/commit/9f5293d618edc06f69fabb27a042ec5eee66e151))
12
+
13
+
14
+ ### Features
15
+
16
+ * used configlayout, preview layout or uilayout to enable extraCSSRules inside author and player elements [PD-1460] ([eeebb02](https://github.com/pie-framework/pie-elements/commit/eeebb02f200208620c1af56366a22bf65944ba3e))
17
+
18
+
19
+
20
+
21
+
6
22
  ## [3.1.7](https://github.com/pie-framework/pie-elements/compare/@pie-element/passage@3.1.6...@pie-element/passage@3.1.7) (2024-10-29)
7
23
 
8
24
  **Note:** Version bump only for package @pie-element/passage
@@ -3,6 +3,22 @@
3
3
  All notable changes to this project will be documented in this file.
4
4
  See [Conventional Commits](https://conventionalcommits.org) for commit guidelines.
5
5
 
6
+ # [2.1.0](https://github.com/pie-framework/pie-elements/compare/@pie-element/passage-configure@2.0.6...@pie-element/passage-configure@2.1.0) (2024-10-29)
7
+
8
+
9
+ ### Bug Fixes
10
+
11
+ * fixed all tests after updating pie-toolbox [PD-1460] ([9f5293d](https://github.com/pie-framework/pie-elements/commit/9f5293d618edc06f69fabb27a042ec5eee66e151))
12
+
13
+
14
+ ### Features
15
+
16
+ * used configlayout, preview layout or uilayout to enable extraCSSRules inside author and player elements [PD-1460] ([eeebb02](https://github.com/pie-framework/pie-elements/commit/eeebb02f200208620c1af56366a22bf65944ba3e))
17
+
18
+
19
+
20
+
21
+
6
22
  ## [2.0.6](https://github.com/pie-framework/pie-elements/compare/@pie-element/passage-configure@2.0.5...@pie-element/passage-configure@2.0.6) (2024-10-28)
7
23
 
8
24
 
@@ -119,6 +119,7 @@ var Main = /*#__PURE__*/function (_React$Component) {
119
119
  var _ref2 = model || {},
120
120
  _ref2$errors = _ref2.errors,
121
121
  errors = _ref2$errors === void 0 ? {} : _ref2$errors,
122
+ extraCSSRules = _ref2.extraCSSRules,
122
123
  _ref2$passages = _ref2.passages,
123
124
  passages = _ref2$passages === void 0 ? [] : _ref2$passages,
124
125
  teacherInstructionsEnabled = _ref2.teacherInstructionsEnabled,
@@ -157,6 +158,7 @@ var Main = /*#__PURE__*/function (_React$Component) {
157
158
  };
158
159
 
159
160
  return /*#__PURE__*/_react["default"].createElement(_configUi.layout.ConfigLayout, {
161
+ extraCSSRules: extraCSSRules,
160
162
  hideSettings: settingsPanelDisabled,
161
163
  settings: /*#__PURE__*/_react["default"].createElement(Panel, {
162
164
  model: model,
@@ -1 +1 @@
1
- {"version":3,"sources":["../src/design.jsx"],"names":["Panel","settings","toggle","dropdown","Main","props","fieldName","value","index","model","onModelChanged","passages","length","updatedPassages","state","setDimensions","classes","configuration","imageSupport","onConfigurationChanged","uploadSoundSupport","settingsPanelDisabled","language","languageChoices","maxImageWidth","maxImageHeight","mathMlOptions","baseInputConfiguration","teacherInstructions","title","subtitle","text","author","errors","teacherInstructionsEnabled","titleEnabled","subtitleEnabled","authorEnabled","textEnabled","passagesErrors","teacherInstructionsError","titleError","subtitleError","authorError","textError","defaultImageMaxWidth","prompt","defaultImageMaxHeight","panelSettings","label","panelProperties","enabled","options","getPluginProps","customConfiguration","config","Settings","Properties","inputContainer","ALL_PLUGINS","handleChange","inputConfiguration","errorText","React","Component","PropTypes","func","isRequired","object","theme","paddingTop","spacing","unit","marginBottom","width","fontSize","typography","color","palette","error","main"],"mappings":"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","sourcesContent":["import React from 'react';\nimport PropTypes from 'prop-types';\nimport { withStyles } from '@material-ui/core/styles';\nimport { InputContainer, settings, layout } from '@pie-lib/pie-toolbox/config-ui';\nimport { EditableHtml, ALL_PLUGINS } from '@pie-lib/pie-toolbox/editable-html';\n\nconst { Panel, toggle, dropdown } = settings;\n\nexport class Main extends React.Component {\n static propTypes = {\n onModelChanged: PropTypes.func.isRequired,\n onConfigurationChanged: PropTypes.func,\n model: PropTypes.object.isRequired,\n configuration: PropTypes.object.isRequired,\n imageSupport: PropTypes.object.isRequired,\n uploadSoundSupport: PropTypes.object.isRequired,\n classes: PropTypes.object.isRequired,\n };\n\n constructor(props) {\n super(props);\n this.state = { setDimensions: true };\n }\n\n handleChange = (fieldName, value, index = 0) => {\n const { model, onModelChanged } = this.props;\n\n if (!model || !onModelChanged || !model.passages || index < 0 || index >= model.passages.length) {\n return;\n }\n\n const updatedPassages = [...model.passages];\n updatedPassages[index] = { ...updatedPassages[index], [fieldName]: value };\n\n onModelChanged({ ...model, passages: updatedPassages });\n };\n\n render() {\n const { model, classes, configuration, imageSupport, onConfigurationChanged, onModelChanged, uploadSoundSupport } =\n this.props;\n const {\n settingsPanelDisabled,\n language = {},\n languageChoices = {},\n maxImageWidth = {},\n maxImageHeight = {},\n mathMlOptions = {},\n baseInputConfiguration = {},\n teacherInstructions = {},\n title = {},\n subtitle = {},\n text = {},\n author = {},\n } = configuration || {};\n const {\n errors = {},\n passages = [],\n teacherInstructionsEnabled,\n titleEnabled,\n subtitleEnabled,\n authorEnabled,\n textEnabled,\n } = model || {};\n\n const { passages: passagesErrors } = errors || {};\n const {\n teacherInstructions: teacherInstructionsError,\n title: titleError,\n subtitle: subtitleError,\n author: authorError,\n text: textError,\n } = (passagesErrors && passagesErrors[0]) || {}; // only the first passage errors are needed for now\n\n const defaultImageMaxWidth = maxImageWidth && maxImageWidth.prompt;\n const defaultImageMaxHeight = maxImageHeight && maxImageHeight.prompt;\n\n const panelSettings = {\n titleEnabled: title && title.settings && toggle(title.label),\n subtitleEnabled: subtitle && subtitle.settings && toggle(subtitle.label),\n authorEnabled: author && author.settings && toggle(author.label),\n textEnabled: text && text.settings && toggle(text.label),\n };\n\n const panelProperties = {\n teacherInstructionsEnabled:\n teacherInstructions && teacherInstructions.settings && toggle(teacherInstructions.label),\n 'language.enabled': language && language.settings && toggle(language.label, true),\n language:\n language && language.settings && language.enabled && dropdown(languageChoices.label, languageChoices.options),\n };\n\n const getPluginProps = (customConfiguration) => {\n return {\n ...baseInputConfiguration,\n ...customConfiguration,\n };\n };\n\n return (\n <layout.ConfigLayout\n hideSettings={settingsPanelDisabled}\n settings={\n <Panel\n model={model}\n configuration={configuration}\n onChangeModel={(model) => onModelChanged(model)}\n onChangeConfiguration={(config) => onConfigurationChanged(config)}\n groups={{\n Settings: panelSettings,\n Properties: panelProperties,\n }}\n />\n }\n >\n {teacherInstructionsEnabled && (\n <InputContainer label={teacherInstructions.label} className={classes.inputContainer}>\n <EditableHtml\n activePlugins={ALL_PLUGINS}\n markup={passages[0].teacherInstructions || ''}\n onChange={(value) => this.handleChange('teacherInstructions', value)}\n nonEmpty={false}\n error={teacherInstructionsError}\n maxImageWidth={(maxImageWidth && maxImageWidth.teacherInstructions) || defaultImageMaxWidth}\n maxImageHeight={(maxImageHeight && maxImageHeight.teacherInstructions) || defaultImageMaxHeight}\n mathMlOptions={mathMlOptions}\n languageCharactersProps={[{ language: 'spanish' }, { language: 'special' }]}\n pluginProps={getPluginProps(teacherInstructions?.inputConfiguration)}\n />\n {teacherInstructionsError && <div className={classes.errorText}>{teacherInstructionsError}</div>}\n </InputContainer>\n )}\n\n {titleEnabled && (\n <InputContainer label={title.label} className={classes.inputContainer}>\n <EditableHtml\n activePlugins={ALL_PLUGINS}\n markup={passages[0].title || ''}\n onChange={(value) => this.handleChange('title', value)}\n nonEmpty={false}\n error={titleError}\n mathMlOptions={mathMlOptions}\n languageCharactersProps={[{ language: 'spanish' }, { language: 'special' }]}\n pluginProps={getPluginProps(title?.inputConfiguration)}\n />\n {titleError && <div className={classes.errorText}>{titleError}</div>}\n </InputContainer>\n )}\n\n {subtitleEnabled && (\n <InputContainer label={subtitle.label} className={classes.inputContainer}>\n <EditableHtml\n activePlugins={ALL_PLUGINS}\n markup={passages[0].subtitle || ''}\n onChange={(value) => this.handleChange('subtitle', value)}\n nonEmpty={false}\n error={subtitleError}\n mathMlOptions={mathMlOptions}\n languageCharactersProps={[{ language: 'spanish' }, { language: 'special' }]}\n pluginProps={getPluginProps(subtitle?.inputConfiguration)}\n />\n {subtitleError && <div className={classes.errorText}>{subtitleError}</div>}\n </InputContainer>\n )}\n\n {authorEnabled && (\n <InputContainer label={author.label} className={classes.inputContainer}>\n <EditableHtml\n activePlugins={ALL_PLUGINS}\n markup={passages[0].author || ''}\n onChange={(value) => this.handleChange('author', value)}\n nonEmpty={false}\n error={authorError}\n mathMlOptions={mathMlOptions}\n languageCharactersProps={[{ language: 'spanish' }, { language: 'special' }]}\n pluginProps={getPluginProps(author?.inputConfiguration)}\n />\n {authorError && <div className={classes.errorText}>{authorError}</div>}\n </InputContainer>\n )}\n\n {textEnabled && (\n <InputContainer label={text.label} className={classes.inputContainer}>\n <EditableHtml\n activePlugins={ALL_PLUGINS}\n markup={passages[0].text || ''}\n onChange={(value) => this.handleChange('text', value)}\n imageSupport={imageSupport}\n uploadSoundSupport={uploadSoundSupport}\n nonEmpty={false}\n error={textError}\n maxImageWidth={(maxImageWidth && maxImageWidth.text) || defaultImageMaxWidth}\n maxImageHeight={(maxImageHeight && maxImageHeight.text) || defaultImageMaxHeight}\n mathMlOptions={mathMlOptions}\n languageCharactersProps={[{ language: 'spanish' }, { language: 'special' }]}\n pluginProps={getPluginProps(text?.inputConfiguration)}\n />\n {textError && <div className={classes.errorText}>{textError}</div>}\n </InputContainer>\n )}\n </layout.ConfigLayout>\n );\n }\n}\nexport default withStyles((theme) => ({\n inputContainer: {\n paddingTop: theme.spacing.unit * 2,\n marginBottom: theme.spacing.unit * 2,\n width: '100%',\n },\n errorText: {\n fontSize: theme.typography.fontSize - 2,\n color: theme.palette.error.main,\n paddingTop: theme.spacing.unit,\n },\n}))(Main);\n"],"file":"design.js"}
1
+ {"version":3,"sources":["../src/design.jsx"],"names":["Panel","settings","toggle","dropdown","Main","props","fieldName","value","index","model","onModelChanged","passages","length","updatedPassages","state","setDimensions","classes","configuration","imageSupport","onConfigurationChanged","uploadSoundSupport","settingsPanelDisabled","language","languageChoices","maxImageWidth","maxImageHeight","mathMlOptions","baseInputConfiguration","teacherInstructions","title","subtitle","text","author","errors","extraCSSRules","teacherInstructionsEnabled","titleEnabled","subtitleEnabled","authorEnabled","textEnabled","passagesErrors","teacherInstructionsError","titleError","subtitleError","authorError","textError","defaultImageMaxWidth","prompt","defaultImageMaxHeight","panelSettings","label","panelProperties","enabled","options","getPluginProps","customConfiguration","config","Settings","Properties","inputContainer","ALL_PLUGINS","handleChange","inputConfiguration","errorText","React","Component","PropTypes","func","isRequired","object","theme","paddingTop","spacing","unit","marginBottom","width","fontSize","typography","color","palette","error","main"],"mappings":"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","sourcesContent":["import React from 'react';\nimport PropTypes from 'prop-types';\nimport { withStyles } from '@material-ui/core/styles';\nimport { InputContainer, settings, layout } from '@pie-lib/pie-toolbox/config-ui';\nimport { EditableHtml, ALL_PLUGINS } from '@pie-lib/pie-toolbox/editable-html';\n\nconst { Panel, toggle, dropdown } = settings;\n\nexport class Main extends React.Component {\n static propTypes = {\n onModelChanged: PropTypes.func.isRequired,\n onConfigurationChanged: PropTypes.func,\n model: PropTypes.object.isRequired,\n configuration: PropTypes.object.isRequired,\n imageSupport: PropTypes.object.isRequired,\n uploadSoundSupport: PropTypes.object.isRequired,\n classes: PropTypes.object.isRequired,\n };\n\n constructor(props) {\n super(props);\n this.state = { setDimensions: true };\n }\n\n handleChange = (fieldName, value, index = 0) => {\n const { model, onModelChanged } = this.props;\n\n if (!model || !onModelChanged || !model.passages || index < 0 || index >= model.passages.length) {\n return;\n }\n\n const updatedPassages = [...model.passages];\n updatedPassages[index] = { ...updatedPassages[index], [fieldName]: value };\n\n onModelChanged({ ...model, passages: updatedPassages });\n };\n\n render() {\n const { model, classes, configuration, imageSupport, onConfigurationChanged, onModelChanged, uploadSoundSupport } =\n this.props;\n const {\n settingsPanelDisabled,\n language = {},\n languageChoices = {},\n maxImageWidth = {},\n maxImageHeight = {},\n mathMlOptions = {},\n baseInputConfiguration = {},\n teacherInstructions = {},\n title = {},\n subtitle = {},\n text = {},\n author = {},\n } = configuration || {};\n const {\n errors = {},\n extraCSSRules,\n passages = [],\n teacherInstructionsEnabled,\n titleEnabled,\n subtitleEnabled,\n authorEnabled,\n textEnabled,\n } = model || {};\n\n const { passages: passagesErrors } = errors || {};\n const {\n teacherInstructions: teacherInstructionsError,\n title: titleError,\n subtitle: subtitleError,\n author: authorError,\n text: textError,\n } = (passagesErrors && passagesErrors[0]) || {}; // only the first passage errors are needed for now\n\n const defaultImageMaxWidth = maxImageWidth && maxImageWidth.prompt;\n const defaultImageMaxHeight = maxImageHeight && maxImageHeight.prompt;\n\n const panelSettings = {\n titleEnabled: title && title.settings && toggle(title.label),\n subtitleEnabled: subtitle && subtitle.settings && toggle(subtitle.label),\n authorEnabled: author && author.settings && toggle(author.label),\n textEnabled: text && text.settings && toggle(text.label),\n };\n\n const panelProperties = {\n teacherInstructionsEnabled:\n teacherInstructions && teacherInstructions.settings && toggle(teacherInstructions.label),\n 'language.enabled': language && language.settings && toggle(language.label, true),\n language:\n language && language.settings && language.enabled && dropdown(languageChoices.label, languageChoices.options),\n };\n\n const getPluginProps = (customConfiguration) => {\n return {\n ...baseInputConfiguration,\n ...customConfiguration,\n };\n };\n\n return (\n <layout.ConfigLayout\n extraCSSRules={extraCSSRules}\n hideSettings={settingsPanelDisabled}\n settings={\n <Panel\n model={model}\n configuration={configuration}\n onChangeModel={(model) => onModelChanged(model)}\n onChangeConfiguration={(config) => onConfigurationChanged(config)}\n groups={{\n Settings: panelSettings,\n Properties: panelProperties,\n }}\n />\n }\n >\n {teacherInstructionsEnabled && (\n <InputContainer label={teacherInstructions.label} className={classes.inputContainer}>\n <EditableHtml\n activePlugins={ALL_PLUGINS}\n markup={passages[0].teacherInstructions || ''}\n onChange={(value) => this.handleChange('teacherInstructions', value)}\n nonEmpty={false}\n error={teacherInstructionsError}\n maxImageWidth={(maxImageWidth && maxImageWidth.teacherInstructions) || defaultImageMaxWidth}\n maxImageHeight={(maxImageHeight && maxImageHeight.teacherInstructions) || defaultImageMaxHeight}\n mathMlOptions={mathMlOptions}\n languageCharactersProps={[{ language: 'spanish' }, { language: 'special' }]}\n pluginProps={getPluginProps(teacherInstructions?.inputConfiguration)}\n />\n {teacherInstructionsError && <div className={classes.errorText}>{teacherInstructionsError}</div>}\n </InputContainer>\n )}\n\n {titleEnabled && (\n <InputContainer label={title.label} className={classes.inputContainer}>\n <EditableHtml\n activePlugins={ALL_PLUGINS}\n markup={passages[0].title || ''}\n onChange={(value) => this.handleChange('title', value)}\n nonEmpty={false}\n error={titleError}\n mathMlOptions={mathMlOptions}\n languageCharactersProps={[{ language: 'spanish' }, { language: 'special' }]}\n pluginProps={getPluginProps(title?.inputConfiguration)}\n />\n {titleError && <div className={classes.errorText}>{titleError}</div>}\n </InputContainer>\n )}\n\n {subtitleEnabled && (\n <InputContainer label={subtitle.label} className={classes.inputContainer}>\n <EditableHtml\n activePlugins={ALL_PLUGINS}\n markup={passages[0].subtitle || ''}\n onChange={(value) => this.handleChange('subtitle', value)}\n nonEmpty={false}\n error={subtitleError}\n mathMlOptions={mathMlOptions}\n languageCharactersProps={[{ language: 'spanish' }, { language: 'special' }]}\n pluginProps={getPluginProps(subtitle?.inputConfiguration)}\n />\n {subtitleError && <div className={classes.errorText}>{subtitleError}</div>}\n </InputContainer>\n )}\n\n {authorEnabled && (\n <InputContainer label={author.label} className={classes.inputContainer}>\n <EditableHtml\n activePlugins={ALL_PLUGINS}\n markup={passages[0].author || ''}\n onChange={(value) => this.handleChange('author', value)}\n nonEmpty={false}\n error={authorError}\n mathMlOptions={mathMlOptions}\n languageCharactersProps={[{ language: 'spanish' }, { language: 'special' }]}\n pluginProps={getPluginProps(author?.inputConfiguration)}\n />\n {authorError && <div className={classes.errorText}>{authorError}</div>}\n </InputContainer>\n )}\n\n {textEnabled && (\n <InputContainer label={text.label} className={classes.inputContainer}>\n <EditableHtml\n activePlugins={ALL_PLUGINS}\n markup={passages[0].text || ''}\n onChange={(value) => this.handleChange('text', value)}\n imageSupport={imageSupport}\n uploadSoundSupport={uploadSoundSupport}\n nonEmpty={false}\n error={textError}\n maxImageWidth={(maxImageWidth && maxImageWidth.text) || defaultImageMaxWidth}\n maxImageHeight={(maxImageHeight && maxImageHeight.text) || defaultImageMaxHeight}\n mathMlOptions={mathMlOptions}\n languageCharactersProps={[{ language: 'spanish' }, { language: 'special' }]}\n pluginProps={getPluginProps(text?.inputConfiguration)}\n />\n {textError && <div className={classes.errorText}>{textError}</div>}\n </InputContainer>\n )}\n </layout.ConfigLayout>\n );\n }\n}\nexport default withStyles((theme) => ({\n inputContainer: {\n paddingTop: theme.spacing.unit * 2,\n marginBottom: theme.spacing.unit * 2,\n width: '100%',\n },\n errorText: {\n fontSize: theme.typography.fontSize - 2,\n color: theme.palette.error.main,\n paddingTop: theme.spacing.unit,\n },\n}))(Main);\n"],"file":"design.js"}
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "name": "@pie-element/passage-configure",
3
3
  "private": true,
4
- "version": "2.0.6",
4
+ "version": "2.1.0",
5
5
  "description": "",
6
6
  "main": "lib/index.js",
7
7
  "module": "src/index.js",
@@ -10,7 +10,7 @@
10
10
  "dependencies": {
11
11
  "@material-ui/core": "^3.9.2",
12
12
  "@pie-framework/pie-configure-events": "^1.3.0",
13
- "@pie-lib/pie-toolbox": "2.0.15",
13
+ "@pie-lib/pie-toolbox": "2.1.0",
14
14
  "lodash": "^4.17.15",
15
15
  "prop-types": "^15.6.2",
16
16
  "react": "^16.8.1",
@@ -268,6 +268,7 @@ var StimulusTabs = /*#__PURE__*/function (_React$Component) {
268
268
 
269
269
  var _this$props = this.props,
270
270
  classes = _this$props.classes,
271
+ model = _this$props.model,
271
272
  tabs = _this$props.tabs,
272
273
  disabledTabs = _this$props.disabledTabs;
273
274
  var activeTab = this.state.activeTab;
@@ -276,10 +277,12 @@ var StimulusTabs = /*#__PURE__*/function (_React$Component) {
276
277
  return;
277
278
  }
278
279
 
280
+ var extraCSSRules = model.extraCSSRules;
279
281
  var selectedTab = (tabs || []).find(function (tab) {
280
282
  return tab.id === activeTab;
281
283
  });
282
- return /*#__PURE__*/_react["default"].createElement("div", {
284
+ return /*#__PURE__*/_react["default"].createElement(_renderUi.UiLayout, {
285
+ extraCSSRules: extraCSSRules,
283
286
  className: (0, _classnames["default"])(classes.passages, 'passages')
284
287
  }, disabledTabs || tabs.length === 1 ? tabs.map(function (tab) {
285
288
  return _this2.renderTab(tab, disabledTabs);
@@ -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","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","disabledTabs","teacherInstructionsDiv","hidden","visible","classes","renderInstructions","title","subtitle","__html","parsedText","author","state","selectedTab","find","map","renderTab","root","flexContainer","label","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, Purpose } 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(teacherInstructions, disabledTabs = false) {\n if (!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, 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(tab.teacherInstructions, disabledTabs)}\n\n {(tab.title || tab.subtitle) && (\n <h2>\n {tab.title && (\n <Purpose purpose=\"passage-title\">\n <div\n className={classNames(classes.passageTitle, 'title')}\n dangerouslySetInnerHTML={{ __html: this.parsedText(tab.title) }}\n />\n </Purpose>\n )}\n {tab.subtitle && (\n <Purpose purpose=\"passage-subtitle\">\n <div\n className={classNames(classes.passageSubtitle, 'subtitle')}\n dangerouslySetInnerHTML={{ __html: this.parsedText(tab.subtitle) }}\n />\n </Purpose>\n )}\n </h2>\n )}\n\n {tab.author && (\n <Purpose purpose=\"passage-author\">\n <div\n className={classNames(classes.passageAuthor, 'author')}\n dangerouslySetInnerHTML={{ __html: this.parsedText(tab.author) }}\n />\n </Purpose>\n )}\n\n {tab.text && (\n <Purpose purpose=\"passage-text\">\n <div\n key={tab.id}\n className={classNames(classes.passageText, 'text')}\n dangerouslySetInnerHTML={{ __html: this.parsedText(tab.text) }}\n />\n </Purpose>\n )}\n </div>\n );\n }\n\n render() {\n const { classes, tabs, disabledTabs } = 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, 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={\n <Purpose purpose=\"passage-label\">\n <span dangerouslySetInnerHTML={{ __html: this.parsedText(tab.label) }} />\n </Purpose>\n }\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, 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 label: PropTypes.string.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};\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","disabledTabs","teacherInstructionsDiv","hidden","visible","classes","renderInstructions","title","subtitle","__html","parsedText","author","model","state","extraCSSRules","selectedTab","find","map","renderTab","root","flexContainer","label","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, Purpose, UiLayout } 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(teacherInstructions, disabledTabs = false) {\n if (!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, 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(tab.teacherInstructions, disabledTabs)}\n\n {(tab.title || tab.subtitle) && (\n <h2>\n {tab.title && (\n <Purpose purpose=\"passage-title\">\n <div\n className={classNames(classes.passageTitle, 'title')}\n dangerouslySetInnerHTML={{ __html: this.parsedText(tab.title) }}\n />\n </Purpose>\n )}\n {tab.subtitle && (\n <Purpose purpose=\"passage-subtitle\">\n <div\n className={classNames(classes.passageSubtitle, 'subtitle')}\n dangerouslySetInnerHTML={{ __html: this.parsedText(tab.subtitle) }}\n />\n </Purpose>\n )}\n </h2>\n )}\n\n {tab.author && (\n <Purpose purpose=\"passage-author\">\n <div\n className={classNames(classes.passageAuthor, 'author')}\n dangerouslySetInnerHTML={{ __html: this.parsedText(tab.author) }}\n />\n </Purpose>\n )}\n\n {tab.text && (\n <Purpose purpose=\"passage-text\">\n <div\n key={tab.id}\n className={classNames(classes.passageText, 'text')}\n dangerouslySetInnerHTML={{ __html: this.parsedText(tab.text) }}\n />\n </Purpose>\n )}\n </div>\n );\n }\n\n render() {\n const { classes, model, tabs, disabledTabs } = this.props;\n const { activeTab } = this.state;\n\n if (!tabs?.length) {\n return;\n }\n\n const { extraCSSRules } = model;\n const selectedTab = (tabs || []).find((tab) => tab.id === activeTab);\n\n return (\n <UiLayout extraCSSRules={extraCSSRules} className={classNames(classes.passages, 'passages')}>\n {disabledTabs || tabs.length === 1 ? (\n tabs.map((tab) => this.renderTab(tab, 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={\n <Purpose purpose=\"passage-label\">\n <span dangerouslySetInnerHTML={{ __html: this.parsedText(tab.label) }} />\n </Purpose>\n }\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, disabledTabs) : null}\n </>\n )}\n </UiLayout>\n );\n }\n}\n\nStimulusTabs.propTypes = {\n classes: PropTypes.object.isRequired,\n tabs: PropTypes.arrayOf(\n PropTypes.shape({\n id: PropTypes.number.isRequired,\n label: PropTypes.string.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};\n\nexport default withStyles(styles)(StimulusTabs);\n"],"file":"stimulus-tabs.js"}
@@ -5563,7 +5563,7 @@ class Main extends React$1.Component {
5563
5563
  render() {
5564
5564
  const {model, classes, configuration, imageSupport, onConfigurationChanged, onModelChanged, uploadSoundSupport} = this.props;
5565
5565
  const {settingsPanelDisabled, language = {}, languageChoices = {}, maxImageWidth = {}, maxImageHeight = {}, mathMlOptions = {}, baseInputConfiguration = {}, teacherInstructions = {}, title = {}, subtitle = {}, text = {}, author = {}} = configuration || ({});
5566
- const {errors = {}, passages = [], teacherInstructionsEnabled, titleEnabled, subtitleEnabled, authorEnabled, textEnabled} = model || ({});
5566
+ const {errors = {}, extraCSSRules, passages = [], teacherInstructionsEnabled, titleEnabled, subtitleEnabled, authorEnabled, textEnabled} = model || ({});
5567
5567
  const {passages: passagesErrors} = errors || ({});
5568
5568
  const {teacherInstructions: teacherInstructionsError, title: titleError, subtitle: subtitleError, author: authorError, text: textError} = passagesErrors && passagesErrors[0] || ({});
5569
5569
  const defaultImageMaxWidth = maxImageWidth && maxImageWidth.prompt;
@@ -5586,6 +5586,7 @@ class Main extends React$1.Component {
5586
5586
  };
5587
5587
  };
5588
5588
  return React$1.createElement(layout.ConfigLayout, {
5589
+ extraCSSRules: extraCSSRules,
5589
5590
  hideSettings: settingsPanelDisabled,
5590
5591
  settings: React$1.createElement(Panel, {
5591
5592
  model: model,
@@ -5599,13 +5600,13 @@ class Main extends React$1.Component {
5599
5600
  __self: this,
5600
5601
  __source: {
5601
5602
  fileName: _jsxFileName,
5602
- lineNumber: 103
5603
+ lineNumber: 105
5603
5604
  }
5604
5605
  }),
5605
5606
  __self: this,
5606
5607
  __source: {
5607
5608
  fileName: _jsxFileName,
5608
- lineNumber: 100
5609
+ lineNumber: 101
5609
5610
  }
5610
5611
  }, teacherInstructionsEnabled && React$1.createElement(InputContainer, {
5611
5612
  label: teacherInstructions.label,
@@ -5613,7 +5614,7 @@ class Main extends React$1.Component {
5613
5614
  __self: this,
5614
5615
  __source: {
5615
5616
  fileName: _jsxFileName,
5616
- lineNumber: 116
5617
+ lineNumber: 118
5617
5618
  }
5618
5619
  }, React$1.createElement(EditableHtml, {
5619
5620
  activePlugins: ALL_PLUGINS,
@@ -5633,14 +5634,14 @@ class Main extends React$1.Component {
5633
5634
  __self: this,
5634
5635
  __source: {
5635
5636
  fileName: _jsxFileName,
5636
- lineNumber: 117
5637
+ lineNumber: 119
5637
5638
  }
5638
5639
  }), teacherInstructionsError && React$1.createElement('div', {
5639
5640
  className: classes.errorText,
5640
5641
  __self: this,
5641
5642
  __source: {
5642
5643
  fileName: _jsxFileName,
5643
- lineNumber: 129
5644
+ lineNumber: 131
5644
5645
  }
5645
5646
  }, teacherInstructionsError)), titleEnabled && React$1.createElement(InputContainer, {
5646
5647
  label: title.label,
@@ -5648,7 +5649,7 @@ class Main extends React$1.Component {
5648
5649
  __self: this,
5649
5650
  __source: {
5650
5651
  fileName: _jsxFileName,
5651
- lineNumber: 134
5652
+ lineNumber: 136
5652
5653
  }
5653
5654
  }, React$1.createElement(EditableHtml, {
5654
5655
  activePlugins: ALL_PLUGINS,
@@ -5666,14 +5667,14 @@ class Main extends React$1.Component {
5666
5667
  __self: this,
5667
5668
  __source: {
5668
5669
  fileName: _jsxFileName,
5669
- lineNumber: 135
5670
+ lineNumber: 137
5670
5671
  }
5671
5672
  }), titleError && React$1.createElement('div', {
5672
5673
  className: classes.errorText,
5673
5674
  __self: this,
5674
5675
  __source: {
5675
5676
  fileName: _jsxFileName,
5676
- lineNumber: 145
5677
+ lineNumber: 147
5677
5678
  }
5678
5679
  }, titleError)), subtitleEnabled && React$1.createElement(InputContainer, {
5679
5680
  label: subtitle.label,
@@ -5681,7 +5682,7 @@ class Main extends React$1.Component {
5681
5682
  __self: this,
5682
5683
  __source: {
5683
5684
  fileName: _jsxFileName,
5684
- lineNumber: 150
5685
+ lineNumber: 152
5685
5686
  }
5686
5687
  }, React$1.createElement(EditableHtml, {
5687
5688
  activePlugins: ALL_PLUGINS,
@@ -5699,14 +5700,14 @@ class Main extends React$1.Component {
5699
5700
  __self: this,
5700
5701
  __source: {
5701
5702
  fileName: _jsxFileName,
5702
- lineNumber: 151
5703
+ lineNumber: 153
5703
5704
  }
5704
5705
  }), subtitleError && React$1.createElement('div', {
5705
5706
  className: classes.errorText,
5706
5707
  __self: this,
5707
5708
  __source: {
5708
5709
  fileName: _jsxFileName,
5709
- lineNumber: 161
5710
+ lineNumber: 163
5710
5711
  }
5711
5712
  }, subtitleError)), authorEnabled && React$1.createElement(InputContainer, {
5712
5713
  label: author.label,
@@ -5714,7 +5715,7 @@ class Main extends React$1.Component {
5714
5715
  __self: this,
5715
5716
  __source: {
5716
5717
  fileName: _jsxFileName,
5717
- lineNumber: 166
5718
+ lineNumber: 168
5718
5719
  }
5719
5720
  }, React$1.createElement(EditableHtml, {
5720
5721
  activePlugins: ALL_PLUGINS,
@@ -5732,14 +5733,14 @@ class Main extends React$1.Component {
5732
5733
  __self: this,
5733
5734
  __source: {
5734
5735
  fileName: _jsxFileName,
5735
- lineNumber: 167
5736
+ lineNumber: 169
5736
5737
  }
5737
5738
  }), authorError && React$1.createElement('div', {
5738
5739
  className: classes.errorText,
5739
5740
  __self: this,
5740
5741
  __source: {
5741
5742
  fileName: _jsxFileName,
5742
- lineNumber: 177
5743
+ lineNumber: 179
5743
5744
  }
5744
5745
  }, authorError)), textEnabled && React$1.createElement(InputContainer, {
5745
5746
  label: text.label,
@@ -5747,7 +5748,7 @@ class Main extends React$1.Component {
5747
5748
  __self: this,
5748
5749
  __source: {
5749
5750
  fileName: _jsxFileName,
5750
- lineNumber: 182
5751
+ lineNumber: 184
5751
5752
  }
5752
5753
  }, React$1.createElement(EditableHtml, {
5753
5754
  activePlugins: ALL_PLUGINS,
@@ -5769,14 +5770,14 @@ class Main extends React$1.Component {
5769
5770
  __self: this,
5770
5771
  __source: {
5771
5772
  fileName: _jsxFileName,
5772
- lineNumber: 183
5773
+ lineNumber: 185
5773
5774
  }
5774
5775
  }), textError && React$1.createElement('div', {
5775
5776
  className: classes.errorText,
5776
5777
  __self: this,
5777
5778
  __source: {
5778
5779
  fileName: _jsxFileName,
5779
- lineNumber: 197
5780
+ lineNumber: 199
5780
5781
  }
5781
5782
  }, textError)));
5782
5783
  }
package/module/element.js CHANGED
@@ -8582,6 +8582,7 @@ const {Collapsible: Collapsible} = _dll_pie_lib__pie_toolbox_render_ui;
8582
8582
  const {color: color} = _dll_pie_lib__pie_toolbox_render_ui;
8583
8583
  const {PreviewPrompt: PreviewPrompt} = _dll_pie_lib__pie_toolbox_render_ui;
8584
8584
  const {Purpose: Purpose} = _dll_pie_lib__pie_toolbox_render_ui;
8585
+ const {UiLayout: UiLayout} = _dll_pie_lib__pie_toolbox_render_ui;
8585
8586
  const _jsxFileName = "/home/circleci/repo/packages/passage/src/stimulus-tabs.jsx";
8586
8587
  function _optionalChain(ops) {
8587
8588
  let lastAccessLHS = undefined;
@@ -8837,18 +8838,20 @@ class StimulusTabs extends React$1.Component {
8837
8838
  })));
8838
8839
  }
8839
8840
  render() {
8840
- const {classes, tabs, disabledTabs} = this.props;
8841
+ const {classes, model, tabs, disabledTabs} = this.props;
8841
8842
  const {activeTab} = this.state;
8842
8843
  if (!_optionalChain([tabs, 'optionalAccess', _ => _.length])) {
8843
8844
  return;
8844
8845
  }
8846
+ const {extraCSSRules} = model;
8845
8847
  const selectedTab = (tabs || []).find(tab => tab.id === activeTab);
8846
- return React$1.createElement('div', {
8848
+ return React$1.createElement(UiLayout, {
8849
+ extraCSSRules: extraCSSRules,
8847
8850
  className: classNames(classes.passages, 'passages'),
8848
8851
  __self: this,
8849
8852
  __source: {
8850
8853
  fileName: _jsxFileName,
8851
- lineNumber: 231
8854
+ lineNumber: 232
8852
8855
  }
8853
8856
  }, disabledTabs || tabs.length === 1 ? tabs.map(tab => this.renderTab(tab, disabledTabs)) : React$1.createElement(React$1.Fragment, null, React$1.createElement(Tabs, {
8854
8857
  classes: {
@@ -8860,7 +8863,7 @@ class StimulusTabs extends React$1.Component {
8860
8863
  __self: this,
8861
8864
  __source: {
8862
8865
  fileName: _jsxFileName,
8863
- lineNumber: 236
8866
+ lineNumber: 237
8864
8867
  }
8865
8868
  }, tabs.map(tab => React$1.createElement(Tab, {
8866
8869
  className: classes.tab,
@@ -8871,7 +8874,7 @@ class StimulusTabs extends React$1.Component {
8871
8874
  __self: this,
8872
8875
  __source: {
8873
8876
  fileName: _jsxFileName,
8874
- lineNumber: 250
8877
+ lineNumber: 251
8875
8878
  }
8876
8879
  }, React$1.createElement('span', {
8877
8880
  dangerouslySetInnerHTML: {
@@ -8880,7 +8883,7 @@ class StimulusTabs extends React$1.Component {
8880
8883
  __self: this,
8881
8884
  __source: {
8882
8885
  fileName: _jsxFileName,
8883
- lineNumber: 251
8886
+ lineNumber: 252
8884
8887
  }
8885
8888
  })),
8886
8889
  value: tab.id,
@@ -8892,7 +8895,7 @@ class StimulusTabs extends React$1.Component {
8892
8895
  __self: this,
8893
8896
  __source: {
8894
8897
  fileName: _jsxFileName,
8895
- lineNumber: 245
8898
+ lineNumber: 246
8896
8899
  }
8897
8900
  }))), selectedTab ? this.renderTab(selectedTab, disabledTabs) : null));
8898
8901
  }
package/module/print.js CHANGED
@@ -8545,6 +8545,7 @@ const {Collapsible: Collapsible} = _dll_pie_lib__pie_toolbox_render_ui;
8545
8545
  const {color: color} = _dll_pie_lib__pie_toolbox_render_ui;
8546
8546
  const {PreviewPrompt: PreviewPrompt} = _dll_pie_lib__pie_toolbox_render_ui;
8547
8547
  const {Purpose: Purpose} = _dll_pie_lib__pie_toolbox_render_ui;
8548
+ const {UiLayout: UiLayout} = _dll_pie_lib__pie_toolbox_render_ui;
8548
8549
  const _jsxFileName = "/home/circleci/repo/packages/passage/src/stimulus-tabs.jsx";
8549
8550
  function _optionalChain(ops) {
8550
8551
  let lastAccessLHS = undefined;
@@ -8800,18 +8801,20 @@ class StimulusTabs extends React$1.Component {
8800
8801
  })));
8801
8802
  }
8802
8803
  render() {
8803
- const {classes, tabs, disabledTabs} = this.props;
8804
+ const {classes, model, tabs, disabledTabs} = this.props;
8804
8805
  const {activeTab} = this.state;
8805
8806
  if (!_optionalChain([tabs, 'optionalAccess', _ => _.length])) {
8806
8807
  return;
8807
8808
  }
8809
+ const {extraCSSRules} = model;
8808
8810
  const selectedTab = (tabs || []).find(tab => tab.id === activeTab);
8809
- return React$1.createElement('div', {
8811
+ return React$1.createElement(UiLayout, {
8812
+ extraCSSRules: extraCSSRules,
8810
8813
  className: classNames(classes.passages, 'passages'),
8811
8814
  __self: this,
8812
8815
  __source: {
8813
8816
  fileName: _jsxFileName,
8814
- lineNumber: 231
8817
+ lineNumber: 232
8815
8818
  }
8816
8819
  }, disabledTabs || tabs.length === 1 ? tabs.map(tab => this.renderTab(tab, disabledTabs)) : React$1.createElement(React$1.Fragment, null, React$1.createElement(Tabs, {
8817
8820
  classes: {
@@ -8823,7 +8826,7 @@ class StimulusTabs extends React$1.Component {
8823
8826
  __self: this,
8824
8827
  __source: {
8825
8828
  fileName: _jsxFileName,
8826
- lineNumber: 236
8829
+ lineNumber: 237
8827
8830
  }
8828
8831
  }, tabs.map(tab => React$1.createElement(Tab, {
8829
8832
  className: classes.tab,
@@ -8834,7 +8837,7 @@ class StimulusTabs extends React$1.Component {
8834
8837
  __self: this,
8835
8838
  __source: {
8836
8839
  fileName: _jsxFileName,
8837
- lineNumber: 250
8840
+ lineNumber: 251
8838
8841
  }
8839
8842
  }, React$1.createElement('span', {
8840
8843
  dangerouslySetInnerHTML: {
@@ -8843,7 +8846,7 @@ class StimulusTabs extends React$1.Component {
8843
8846
  __self: this,
8844
8847
  __source: {
8845
8848
  fileName: _jsxFileName,
8846
- lineNumber: 251
8849
+ lineNumber: 252
8847
8850
  }
8848
8851
  })),
8849
8852
  value: tab.id,
@@ -8855,7 +8858,7 @@ class StimulusTabs extends React$1.Component {
8855
8858
  __self: this,
8856
8859
  __source: {
8857
8860
  fileName: _jsxFileName,
8858
- lineNumber: 245
8861
+ lineNumber: 246
8859
8862
  }
8860
8863
  }))), selectedTab ? this.renderTab(selectedTab, disabledTabs) : null));
8861
8864
  }
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@pie-element/passage",
3
- "version": "3.1.8-next.14+063527489",
3
+ "version": "3.2.0",
4
4
  "publishConfig": {
5
5
  "access": "public"
6
6
  },
@@ -11,13 +11,13 @@
11
11
  "dependencies": {
12
12
  "@material-ui/core": "^3.9.2",
13
13
  "@pie-framework/pie-player-events": "^0.1.0",
14
- "@pie-lib/pie-toolbox": "2.0.15",
14
+ "@pie-lib/pie-toolbox": "2.1.0",
15
15
  "classnames": "^2.2.5",
16
16
  "prop-types": "^15.6.1",
17
17
  "react": "^16.8.1",
18
18
  "react-dom": "^16.8.1"
19
19
  },
20
- "gitHead": "063527489b1e081dd52509bdcb29e5a93bb4ef17",
20
+ "gitHead": "0ceacdb80b0be7b4cae60b1eff7974170b088358",
21
21
  "scripts": {
22
22
  "postpublish": "../../scripts/postpublish"
23
23
  },