diff --git a/README.md b/README.md index 07c79c1..ba49063 100644 --- a/README.md +++ b/README.md @@ -2,15 +2,15 @@ Journey.js [![Tweet](https://img.shields.io/twitter/url/http/shields.io.svg?style=social)](https://twitter.com/intent/tweet?text=Journey.js%2C%20a%20free%20JavaScript%journey%builder&url=https://github.com/williamtroup/Journey.js&hashtags=javascript,html,journey,guide) -[![npm](https://img.shields.io/badge/npmjs-v1.4.0-blue)](https://www.npmjs.com/package/jjourney.js) -[![nuget](https://img.shields.io/badge/nuget-v1.4.0-purple)](https://www.nuget.org/packages/jJourney.js/) +[![npm](https://img.shields.io/badge/npmjs-v1.5.0-blue)](https://www.npmjs.com/package/jjourney.js) +[![nuget](https://img.shields.io/badge/nuget-v1.5.0-purple)](https://www.nuget.org/packages/jJourney.js/) [![license](https://img.shields.io/badge/license-MIT-green)](https://github.com/williamtroup/Journey.js/blob/main/LICENSE.txt) [![discussions Welcome](https://img.shields.io/badge/discussions-Welcome-red)](https://github.com/williamtroup/Journey.js/discussions) [![coded by William Troup](https://img.shields.io/badge/coded_by-William_Troup-yellow)](https://www.william-troup.com/) >

🚶 A lightweight, easy-to-use JavaScript library to create interactive, customizable, accessible guided tours across your websites or web apps!

->

v1.4.0

+>

v1.5.0


![Journey.js](docs/images/main.png) @@ -30,6 +30,7 @@ Journey.js - Hints support (not included in the main journey). - 51 language translations available! - Customizable tooltips. +- Show progress dots, or a progress bar, or both!

diff --git a/README_NUGET.md b/README_NUGET.md index 797d1d5..09ac4c1 100644 --- a/README_NUGET.md +++ b/README_NUGET.md @@ -1,8 +1,8 @@ -# Journey.js v1.4.0 +# Journey.js v1.5.0 [![Tweet](https://img.shields.io/twitter/url/http/shields.io.svg?style=social)](https://twitter.com/intent/tweet?text=Journey.js%2C%20a%20free%20JavaScript%journey%builder&url=https://github.com/williamtroup/Journey.js&hashtags=javascript,html,journey,guide) -[![npm](https://img.shields.io/badge/npmjs-v1.4.0-blue)](https://www.npmjs.com/package/jjourney.js) -[![nuget](https://img.shields.io/badge/nuget-v1.4.0-purple)](https://www.nuget.org/packages/jJourney.js/) +[![npm](https://img.shields.io/badge/npmjs-v1.5.0-blue)](https://www.npmjs.com/package/jjourney.js) +[![nuget](https://img.shields.io/badge/nuget-v1.5.0-purple)](https://www.nuget.org/packages/jJourney.js/) [![license](https://img.shields.io/badge/license-MIT-green)](https://github.com/williamtroup/Journey.js/blob/main/LICENSE.txt) [![discussions Welcome](https://img.shields.io/badge/discussions-Welcome-red)](https://github.com/williamtroup/Journey.js/discussions) [![coded by William Troup](https://img.shields.io/badge/coded_by-William_Troup-yellow)](https://www.william-troup.com/) @@ -22,6 +22,7 @@ - Hints support (not included in the main journey). - 51 language translations available! - Customizable tooltips. +- Show progress dots, or a progress bar, or both! ## Where can I find the documentation? diff --git a/dist/journey.js b/dist/journey.js index e8b7e27..83b1ea8 100644 --- a/dist/journey.js +++ b/dist/journey.js @@ -1,7 +1,8 @@ -/*! Journey.js v1.4.0 | (c) Bunoon 2024 | MIT License */ +/*! Journey.js v1.5.0 | (c) Bunoon 2024 | MIT License */ (function() { var _parameter_Document = null, _parameter_Window = null, _parameter_Math = null, _parameter_Json = null, _public = {}, _configuration = {}, _configuration_ShortcutKeysEnabled = true, _enum_KeyCodes = {escape:27, left:37, up:38, right:39, down:40}, _string = {empty:"", space:" "}, _elements_Type = {}, _elements_Attributes_Json = {}, _elements_Attributes_Keys = [], _elements_Attributes_Position = 0, _element_Focus_Element_PositionStyle = null, _element_Disabled_Background = null, _element_Dialog = - null, _element_Dialog_Close_Button = null, _element_Dialog_Title = null, _element_Dialog_Description = null, _element_Dialog_CheckBox_Container = null, _element_Dialog_CheckBox_Input = null, _element_Dialog_ProgressDots = null, _element_Dialog_Buttons = null, _element_Dialog_Back_Button = null, _element_Dialog_Next_Button = null, _element_ToolTip = null, _element_ToolTip_Timer = null, _attribute_Name_Options = "data-journey-js"; + null, _element_Dialog_Close_Button = null, _element_Dialog_Title = null, _element_Dialog_Description = null, _element_Dialog_CheckBox_Container = null, _element_Dialog_CheckBox_Input = null, _element_Dialog_ProgressDots = null, _element_Dialog_ProgressBar = null, _element_Dialog_ProgressBar_Percentage = null, _element_Dialog_ProgressBar_Percentage_Text = null, _element_Dialog_Buttons = null, _element_Dialog_Back_Button = null, _element_Dialog_Next_Button = null, _element_ToolTip = null, _element_ToolTip_Timer = + null, _attribute_Name_Options = "data-journey-js"; function renderDisabledBackground() { _element_Disabled_Background = createElement("div", "journey-js-disabled-background"); _element_Disabled_Background.onclick = function() { @@ -35,6 +36,12 @@ _element_Dialog_CheckBox_Input = buildCheckBox(_element_Dialog_CheckBox_Container, _configuration.doNotShowAgainText).input; _element_Dialog_ProgressDots = createElement("div", "progress-dots"); _element_Dialog.appendChild(_element_Dialog_ProgressDots); + _element_Dialog_ProgressBar = createElement("div", "progress-bar"); + _element_Dialog.appendChild(_element_Dialog_ProgressBar); + _element_Dialog_ProgressBar_Percentage = createElement("div", "progress-bar-percentage"); + _element_Dialog_ProgressBar.appendChild(_element_Dialog_ProgressBar_Percentage); + _element_Dialog_ProgressBar_Percentage_Text = createElement("p", "progress-bar-percentage-text"); + _element_Dialog_ProgressBar_Percentage.appendChild(_element_Dialog_ProgressBar_Percentage_Text); _element_Dialog_Buttons = createElement("div", "buttons"); _element_Dialog.appendChild(_element_Dialog_Buttons); _element_Dialog_Back_Button = createElement("button", "back"); @@ -96,6 +103,9 @@ _element_Dialog_Close_Button.style.display = _configuration.showCloseButton ? "block" : "none"; _configuration_ShortcutKeysEnabled = true; bindingOptions.currentView.element.className += _string.space + "journey-js-element-focus"; + if (_configuration.scrollToElements) { + bindingOptions.currentView.element.scrollIntoView(); + } var lastPositionStyle = getStyleValueByName(bindingOptions.currentView.element, "position"); if (lastPositionStyle !== _string.empty && lastPositionStyle.toLowerCase() === "static") { _element_Focus_Element_PositionStyle = lastPositionStyle; @@ -103,6 +113,8 @@ } showElementBasedOnCondition(_element_Dialog_CheckBox_Container, _configuration.showDoNotShowAgain); showElementBasedOnCondition(_element_Dialog_ProgressDots, _configuration.showProgressDots && _elements_Attributes_Keys.length > 1); + showElementBasedOnCondition(_element_Dialog_ProgressBar, _configuration.showProgressBar && _elements_Attributes_Keys.length > 1); + showElementBasedOnCondition(_element_Dialog_ProgressBar_Percentage_Text, _configuration.showProgressBarText); showElementBasedOnCondition(_element_Dialog_Buttons, _configuration.showButtons); _element_Dialog_Back_Button.innerHTML = _configuration.backButtonText; _element_Dialog_Back_Button.disabled = _elements_Attributes_Position === 0; @@ -114,6 +126,7 @@ setDialogText(bindingOptions); setDialogPosition(null, bindingOptions); buildProcessDots(); + setProgressBarPosition(); fireCustomTrigger(bindingOptions.events.onEnter, bindingOptions.currentView.element); if (bindingOptions.sendClick) { bindingOptions.currentView.element.click(); @@ -208,6 +221,13 @@ dot.innerHTML = (keyIndex + 1).toString(); } } + function setProgressBarPosition() { + if (_configuration.showProgressBar) { + var pixelsPerStage = _element_Dialog_ProgressDots.offsetWidth / _elements_Attributes_Keys.length, width = (_elements_Attributes_Position + 1) * pixelsPerStage, percentageComplete = _parameter_Math.ceil((_elements_Attributes_Position + 1) / _elements_Attributes_Keys.length * 100); + _element_Dialog_ProgressBar_Percentage.style.width = width + "px"; + _element_Dialog_ProgressBar_Percentage_Text.innerHTML = percentageComplete + "%"; + } + } function renderToolTip() { if (!isDefined(_element_ToolTip)) { _element_ToolTip = createElement("div", "journey-js-tooltip"); @@ -308,10 +328,14 @@ cancelBubble(e); _element_Dialog_CheckBox_Container.style.display = "none"; _element_Dialog_ProgressDots.style.display = "none"; + _element_Dialog_ProgressBar.style.display = "none"; _element_Dialog_Buttons.style.display = "none"; _configuration_ShortcutKeysEnabled = false; setDialogText(bindingOptions); setDialogPosition(e, bindingOptions); + if (bindingOptions.removeHintWhenViewed) { + clearElementsByClassName(bindingOptions.currentView.element, "journey-js-hint"); + } }; } function buildDocumentEvents(addEvents) { @@ -371,6 +395,7 @@ options.isHint = getDefaultBoolean(options.isHint, false); options.alignHintToClickPosition = getDefaultBoolean(options.alignHintToClickPosition, false); options.showDisabledBackground = getDefaultBoolean(options.showDisabledBackground, true); + options.removeHintWhenViewed = getDefaultBoolean(options.removeHintWhenViewed, false); options = buildAttributeOptionStrings(options); return buildAttributeOptionCustomTriggers(options); } @@ -716,6 +741,8 @@ _configuration.tooltipDelay = getDefaultNumber(_configuration.tooltipDelay, 750); _configuration.showProgressDotToolTips = getDefaultBoolean(_configuration.showProgressDotToolTips, true); _configuration.closeDialogOnDisabledBackgroundClick = getDefaultBoolean(_configuration.closeDialogOnDisabledBackgroundClick, false); + _configuration.showProgressBar = getDefaultBoolean(_configuration.showProgressBar, false); + _configuration.scrollToElements = getDefaultBoolean(_configuration.scrollToElements, false); buildDefaultConfigurationStrings(); buildDefaultConfigurationCustomTriggers(); } @@ -729,12 +756,13 @@ _configuration.attributeNotValidErrorText = getDefaultString(_configuration.attributeNotValidErrorText, "The attribute '{{attribute_name}}' is not a valid object."); _configuration.attributeNotSetErrorText = getDefaultString(_configuration.attributeNotSetErrorText, "The attribute '{{attribute_name}}' has not been set correctly."); _configuration.closeDialogConfirmationText = getDefaultString(_configuration.closeDialogConfirmationText, null); + _configuration.showProgressBarText = getDefaultBoolean(_configuration.showProgressBarText, false); } function buildDefaultConfigurationCustomTriggers() { _configuration.onDoNotShowAgainChange = getDefaultFunction(_configuration.onDoNotShowAgainChange, null); } _public.getVersion = function() { - return "1.4.0"; + return "1.5.0"; }; (function(documentObject, windowObject, mathObject, jsonObject) { _parameter_Document = documentObject; diff --git a/dist/journey.js.css b/dist/journey.js.css index ba6da77..7522ab9 100644 --- a/dist/journey.js.css +++ b/dist/journey.js.css @@ -1,5 +1,5 @@ /* - * Journey.js Library v1.4.0 + * Journey.js Library v1.5.0 * * Copyright 2024 Bunoon * Released under the MIT License @@ -89,6 +89,30 @@ div.journey-js-dialog *::before, div.journey-js-dialog *::after { box-sizing: border-box; line-height: normal; } +div.journey-js-dialog div:first-of-type { + padding-right: calc(var(--journey-js-dialog-close-button-size) + var(--journey-js-spacing)); +} +div.journey-js-dialog div.title { + font-size: large; + font-weight: var(--journey-js-title-bold-weight); + margin-bottom: var(--journey-js-spacing); +} +div.journey-js-dialog div.description { + font-weight: var(--journey-js-text-bold-weight); +} +div.journey-js-dialog div.checkbox-container { + margin-top: var(--journey-js-spacing); + margin-bottom: var(--journey-js-spacing); +} +div.journey-js-dialog div.checkbox-container input { + margin-right: var(--journey-js-spacing); +} + +/* + ------------------------------------------------------------------------- + Journey.js - Dialog - Close Button + ------------------------------------------------------------------------- +*/ div.journey-js-dialog button.close { position: absolute; top: var(--journey-js-spacing); @@ -130,24 +154,12 @@ div.journey-js-dialog button.close:hover { div.journey-js-dialog button.close:hover::before, div.journey-js-dialog button.close:hover::after { background: var(--journey-js-dialog-close-button-hover-x-color); } -div.journey-js-dialog div:first-of-type { - padding-right: calc(var(--journey-js-dialog-close-button-size) + var(--journey-js-spacing)); -} -div.journey-js-dialog div.title { - font-size: large; - font-weight: var(--journey-js-title-bold-weight); - margin-bottom: var(--journey-js-spacing); -} -div.journey-js-dialog div.description { - font-weight: var(--journey-js-text-bold-weight); -} -div.journey-js-dialog div.checkbox-container { - margin-top: var(--journey-js-spacing); - margin-bottom: var(--journey-js-spacing); -} -div.journey-js-dialog div.checkbox-container input { - margin-right: var(--journey-js-spacing); -} + +/* + ------------------------------------------------------------------------- + Journey.js - Dialog - Progress Dots + ------------------------------------------------------------------------- +*/ div.journey-js-dialog div.progress-dots { margin-top: var(--journey-js-spacing); margin-bottom: var(--journey-js-spacing); @@ -193,6 +205,8 @@ div.journey-js-dialog div.progress-dots div.dot-number { color: var(--journey-js-color-gray) !important; } div.journey-js-dialog div.progress-dots div.dot-active { + transition: var(--journey-js-transition); + transition-property: width; border-radius: 10px; height: 10px; width: 15px; @@ -200,42 +214,35 @@ div.journey-js-dialog div.progress-dots div.dot-active { border: var(--journey-js-border-size) solid var(--journey-js-dialog-button-border-color); color: var(--journey-js-color-white) !important; } -div.journey-js-dialog div.buttons { - margin-top: var(--journey-js-spacing); - text-align: right; -} -div.journey-js-dialog div.buttons button.back, -div.journey-js-dialog div.buttons button.next { + +/* + ------------------------------------------------------------------------- + Journey.js - Dialog - Progress Bar + ------------------------------------------------------------------------- +*/ +div.journey-js-dialog div.progress-bar { border-radius: var(--journey-js-border-radius); + margin-top: var(--journey-js-spacing); + margin-bottom: var(--journey-js-spacing); background-color: var(--journey-js-dialog-button-background-color); - color: var(--journey-js-dialog-button-text-color); border: var(--journey-js-border-size) solid var(--journey-js-dialog-button-border-color); - min-width: 100px; - padding: var(--journey-js-spacing); - transition: var(--journey-js-transition); - outline: none; - margin-left: var(--journey-js-spacing); -} -div.journey-js-dialog div.buttons button.back:not([disabled]):active, -div.journey-js-dialog div.buttons button.next:not([disabled]):active { - background-color: var(--journey-js-dialog-button-active-background-color) !important; - color: var(--journey-js-dialog-button-active-text-color) !important; - border: var(--journey-js-border-size) solid var(--journey-js-dialog-button-active-border-color) !important; -} -div.journey-js-dialog div.buttons button.back:not([disabled]):hover, -div.journey-js-dialog div.buttons button.next:not([disabled]):hover { - cursor: pointer; - background-color: var(--journey-js-dialog-button-hover-background-color); - color: var(--journey-js-dialog-button-hover-text-color); - border: var(--journey-js-border-size) solid var(--journey-js-dialog-button-hover-border-color); + text-wrap: nowrap; + overflow: hidden; } -div.journey-js-dialog div.buttons button.back:disabled, -div.journey-js-dialog div.buttons button.next:disabled { - background-color: var(--journey-js-dialog-button-disabled-background-color) !important; - color: var(--journey-js-color-gray); +div.journey-js-dialog div.progress-bar div.progress-bar-percentage { + min-height: 10px; + background-color: var(--journey-js-dialog-button-border-color); + transition: var(--journey-js-transition); + transition-property: width; + text-align: center; + padding: 0 !important; + margin: 0 !important; } -div.journey-js-dialog div.buttons button.next { - font-weight: var(--journey-js-title-bold-weight); +div.journey-js-dialog div.progress-bar div.progress-bar-percentage p.progress-bar-percentage-text { + padding: calc(var(--journey-js-spacing) / 2) !important; + font-size: smaller; + margin: 0 !important; + color: var(--journey-js-color-white); } /* @@ -289,6 +296,49 @@ div.journey-js-dialog label.checkbox span.check-mark::before { border-width: 0 2.5px 2.5px 0; } +/* + ------------------------------------------------------------------------- + Journey.js - Dialog - Buttons + ------------------------------------------------------------------------- +*/ +div.journey-js-dialog div.buttons { + margin-top: var(--journey-js-spacing); + text-align: right; +} +div.journey-js-dialog div.buttons button.back, +div.journey-js-dialog div.buttons button.next { + border-radius: var(--journey-js-border-radius); + background-color: var(--journey-js-dialog-button-background-color); + color: var(--journey-js-dialog-button-text-color); + border: var(--journey-js-border-size) solid var(--journey-js-dialog-button-border-color); + min-width: 100px; + padding: var(--journey-js-spacing); + transition: var(--journey-js-transition); + outline: none; + margin-left: var(--journey-js-spacing); +} +div.journey-js-dialog div.buttons button.back:not([disabled]):active, +div.journey-js-dialog div.buttons button.next:not([disabled]):active { + background-color: var(--journey-js-dialog-button-active-background-color) !important; + color: var(--journey-js-dialog-button-active-text-color) !important; + border: var(--journey-js-border-size) solid var(--journey-js-dialog-button-active-border-color) !important; +} +div.journey-js-dialog div.buttons button.back:not([disabled]):hover, +div.journey-js-dialog div.buttons button.next:not([disabled]):hover { + cursor: pointer; + background-color: var(--journey-js-dialog-button-hover-background-color); + color: var(--journey-js-dialog-button-hover-text-color); + border: var(--journey-js-border-size) solid var(--journey-js-dialog-button-hover-border-color); +} +div.journey-js-dialog div.buttons button.back:disabled, +div.journey-js-dialog div.buttons button.next:disabled { + background-color: var(--journey-js-dialog-button-disabled-background-color) !important; + color: var(--journey-js-color-gray); +} +div.journey-js-dialog div.buttons button.next { + font-weight: var(--journey-js-title-bold-weight); +} + /* ------------------------------------------------------------------------- Journey.js - Hints diff --git a/dist/journey.js.css.map b/dist/journey.js.css.map index 2812732..a64dd70 100644 --- a/dist/journey.js.css.map +++ b/dist/journey.js.css.map @@ -1 +1 @@ -{"version":3,"sourceRoot":"","sources":["../src/journey.js.scss","../src/foundation/_styles.scss"],"names":[],"mappings":"AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAUA;EAEI;EACA;EACA;EACA;EAGA;EACA;EACA;EACA;EAGA;EACA;EACA;EAGA;EACA;EACA;EAGA;EACA;EACA;EAGA;EACA;EACA;EAGA;EAGA;EACA;EACA;EACA;EAGA;EACA;EACA;EAGA;EACA;EACA;EAGA;EACA;EACA;EACA;EAGA;EACA;EACA;EAGA;EACA;EACA;EAGA;EACA;EAGA;EACA;;;AAIJ;AAAA;AAAA;AAAA;AAAA;AAMA;EC7FI;EACA;EACA;EACA;EACA;EACA;EAIA;EACA;EDsFA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;;AAEA;ECtGA;EACA;;ADwGI;ECzGJ;EACA;;AD8GA;EACI;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;;AAEA;EAEI;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;;AAGJ;EACI;;AAGJ;EACI;EACA;;AAEA;EAEI;;AAIR;EACI;EACA;EACA;;AAEA;EAEI;;AAMR;EACI;;AAIR;EACI;EACA;EACA;;AAGJ;EACI;;AAGJ;EACI;EACA;;AAEA;EACI;;AAIR;EACI;EACA;EACA;EACA;;AAEA;AAAA;EAEI;EACA;EACA;EACA;;AAGJ;EACI;EACA;EACA;EACA;EACA;EACA;;AAEA;EACI;EACA;EACA;;AAGJ;EACI;EACA;EACA;EACA;;AAIR;EACI;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;;AAGJ;EACI;EACA;EACA;EACA;EACA;EACA;;AAIR;EACI;EACA;;AAEA;AAAA;EAEI;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;;AAEA;AAAA;EACI;EACA;EACA;;AAGJ;AAAA;EACI;EACA;EACA;EACA;;AAGJ;AAAA;EACI;EACA;;AAIR;EACI;;;AAMZ;AAAA;AAAA;AAAA;AAAA;AAOI;EACI;EACA;EACA;EACA;;AAEA;EACI;;AAEA;EACI;EACA;;AAGJ;EACI;;AAGJ;EAEI;;AAGJ;EACI;;AAIR;EACI;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;;AAEA;EACI;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;;;AAOhB;AAAA;AAAA;AAAA;AAAA;AAMA;EACI;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;;;AAGJ;EACI;IACI;;EAGJ;IACI;;EAGJ;IACI;;;AAKR;AAAA;AAAA;AAAA;AAAA;AAMA;EACI;EACA;EACA;EACA;EACA;EACA;EACA;EACA;;;AAGJ;EACI;;;AAIJ;AAAA;AAAA;AAAA;AAAA;AAMA;ECraI;EACA;EACA;EACA;EACA;EACA;EAIA;EACA;ED8ZA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;;;AAIJ;AAAA;AAAA;AAAA;AAAA;AAMA;EACI;IACI;;EAEJ;IACI","file":"journey.js.css"} \ No newline at end of file +{"version":3,"sourceRoot":"","sources":["../src/journey.js.scss","../src/foundation/_styles.scss"],"names":[],"mappings":"AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAUA;EAEI;EACA;EACA;EACA;EAGA;EACA;EACA;EACA;EAGA;EACA;EACA;EAGA;EACA;EACA;EAGA;EACA;EACA;EAGA;EACA;EACA;EAGA;EAGA;EACA;EACA;EACA;EAGA;EACA;EACA;EAGA;EACA;EACA;EAGA;EACA;EACA;EACA;EAGA;EACA;EACA;EAGA;EACA;EACA;EAGA;EACA;EAGA;EACA;;;AAIJ;AAAA;AAAA;AAAA;AAAA;AAMA;EC7FI;EACA;EACA;EACA;EACA;EACA;EAIA;EACA;EDsFA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;;AAEA;ECtGA;EACA;;ADwGI;ECzGJ;EACA;;AD+GI;EACI;;AAIR;EACI;EACA;EACA;;AAGJ;EACI;;AAGJ;EACI;EACA;;AAEA;EACI;;;AAMZ;AAAA;AAAA;AAAA;AAAA;AAOI;EACI;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;;AAEA;EAEI;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;;AAGJ;EACI;;AAGJ;EACI;EACA;;AAEA;EAEI;;AAIR;EACI;EACA;EACA;;AAEA;EAEI;;;AAOhB;AAAA;AAAA;AAAA;AAAA;AAOI;EACI;EACA;EACA;EACA;;AAEA;AAAA;EAEI;EACA;EACA;EACA;;AAGJ;EACI;EACA;EACA;EACA;EACA;EACA;;AAEA;EACI;EACA;EACA;;AAGJ;EACI;EACA;EACA;EACA;;AAIR;EACI;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;;AAGJ;EACI;EACA;EACA;EACA;EACA;EACA;EACA;EACA;;;AAMZ;AAAA;AAAA;AAAA;AAAA;AAOI;EACI;EACA;EACA;EACA;EACA;EACA;EACA;;AAEA;EACI;EACA;EACA;EACA;EACA;EACA;EACA;;AAEA;EACI;EACA;EACA;EACA;;;AAOhB;AAAA;AAAA;AAAA;AAAA;AAOI;EACI;EACA;EACA;EACA;;AAEA;EACI;;AAEA;EACI;EACA;;AAGJ;EACI;;AAGJ;EAEI;;AAGJ;EACI;;AAIR;EACI;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;;AAEA;EACI;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;;;AAOhB;AAAA;AAAA;AAAA;AAAA;AAOI;EACI;EACA;;AAEA;AAAA;EAEI;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;;AAEA;AAAA;EACI;EACA;EACA;;AAGJ;AAAA;EACI;EACA;EACA;EACA;;AAGJ;AAAA;EACI;EACA;;AAIR;EACI;;;AAMZ;AAAA;AAAA;AAAA;AAAA;AAMA;EACI;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;;;AAGJ;EACI;IACI;;EAGJ;IACI;;EAGJ;IACI;;;AAKR;AAAA;AAAA;AAAA;AAAA;AAMA;EACI;EACA;EACA;EACA;EACA;EACA;EACA;EACA;;;AAGJ;EACI;;;AAIJ;AAAA;AAAA;AAAA;AAAA;AAMA;ECteI;EACA;EACA;EACA;EACA;EACA;EAIA;EACA;ED+dA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;;;AAIJ;AAAA;AAAA;AAAA;AAAA;AAMA;EACI;IACI;;EAEJ;IACI","file":"journey.js.css"} \ No newline at end of file diff --git a/dist/journey.js.min.css b/dist/journey.js.min.css index c63ef78..2ef5e48 100644 --- a/dist/journey.js.min.css +++ b/dist/journey.js.min.css @@ -1,2 +1,2 @@ -/*! Journey.js v1.4.0 | (c) Bunoon 2024 | MIT License */ -:root{--journey-js-default-font:system-ui, -apple-system, "Segoe UI", Roboto, "Helvetica Neue", "Noto Sans", "Liberation Sans", Arial, sans-serif, "Apple Color Emoji", "Segoe UI Emoji", "Segoe UI Symbol", "Noto Color Emoji";--journey-js-text-bold-weight:100;--journey-js-title-bold-weight:700;--journey-js-tooltip-bold-weight:300;--journey-js-color-black:#3b3a3a;--journey-js-color-white:#F5F5F5;--journey-js-color-gray:#AAAAAA;--journey-js-color-hint:rgba( 170, 170, 170, 0.5 );--journey-js-dialog-background-color:#002244;--journey-js-dialog-text-color:var(--journey-js-color-white);--journey-js-dialog-border-color:#72A0C1;--journey-js-dialog-button-background-color:#002D62;--journey-js-dialog-button-border-color:#3457D5;--journey-js-dialog-button-text-color:var(--journey-js-color-white);--journey-js-dialog-button-hover-background-color:#007FFF;--journey-js-dialog-button-hover-border-color:var(--journey-js-dialog-button-border-color);--journey-js-dialog-button-hover-text-color:var(--journey-js-dialog-button-text-color);--journey-js-dialog-button-active-background-color:#00b7ff;--journey-js-dialog-button-active-border-color:var(--journey-js-dialog-button-border-color);--journey-js-dialog-button-active-text-color:var(--journey-js-dialog-button-text-color);--journey-js-dialog-button-disabled-background-color:var(--journey-js-dialog-background-color);--journey-js-dialog-close-button-background-color:var(--journey-js-dialog-button-background-color);--journey-js-dialog-close-button-border-color:var(--journey-js-dialog-button-border-color);--journey-js-dialog-close-button-size:1.1rem;--journey-js-dialog-close-button-x-color:var(--journey-js-color-white);--journey-js-dialog-close-button-hover-background-color:var(--journey-js-dialog-button-hover-background-color);--journey-js-dialog-close-button-hover-x-color:var(--journey-js-dialog-close-button-x-color);--journey-js-dialog-close-button-hover-border-color:var(--journey-js-dialog-close-button-border-color);--journey-js-dialog-close-button-active-background-color:var(--journey-js-dialog-button-active-background-color);--journey-js-dialog-close-button-active-x-color:var(--journey-js-dialog-close-button-x-color);--journey-js-dialog-close-button-active-border-color:var(--journey-js-dialog-close-button-border-color);--journey-js-checkbox-background-color-checked:var(--journey-js-dialog-button-border-color);--journey-js-checkbox-background-color:var(--journey-js-dialog-button-background-color);--journey-js-checkbox-border-color-checked:var(--journey-js-checkbox-background-color-checked);--journey-js-checkbox-border-color:var(--journey-js-dialog-button-border-color);--journey-js-tooltip-background-color:var(--journey-js-dialog-background-color);--journey-js-tooltip-border-color:var(--journey-js-dialog-border-color);--journey-js-tooltip-text-color:var(--journey-js-color-white);--journey-js-border-control-radius:0.25rem;--journey-js-border-radius:0.5rem;--journey-js-border-size:0.5px;--journey-js-spacing:10px;--journey-js-spacing-font-size:0.9rem;--journey-js-transition:all .3s;--journey-js-animation-length:0.5s}div.journey-js-dialog{-moz-user-select:none;-webkit-user-select:none;-ms-user-select:none;-o-user-select:none;user-select:none;cursor:default;box-sizing:border-box;line-height:normal;font-family:var(--journey-js-default-font);position:absolute;display:none;border-radius:var(--journey-js-border-radius);background-color:var(--journey-js-dialog-background-color);color:var(--journey-js-dialog-text-color);border:var(--journey-js-border-size) solid var(--journey-js-dialog-border-color);padding:var(--journey-js-spacing);font-size:var(--journey-js-spacing-font-size);z-index:1001;width:300px;height:auto;transition:var(--journey-js-transition);transition-property:top,left}div.journey-js-dialog *{box-sizing:border-box;line-height:normal}div.journey-js-dialog *::before,div.journey-js-dialog *::after{box-sizing:border-box;line-height:normal}div.journey-js-dialog button.close{position:absolute;top:var(--journey-js-spacing);right:var(--journey-js-spacing);width:var(--journey-js-dialog-close-button-size);height:var(--journey-js-dialog-close-button-size);border-radius:.25rem;padding:0;background-color:var(--journey-js-dialog-close-button-background-color);border:var(--journey-js-border-size) solid var(--journey-js-dialog-close-button-border-color);transition:var(--journey-js-transition)}div.journey-js-dialog button.close::before,div.journey-js-dialog button.close::after{content:"";width:2px;height:100%;background:var(--journey-js-dialog-close-button-x-color);display:block;transform:rotate(45deg) translateX(0);position:absolute;left:calc(50% - 0.5px);top:0}div.journey-js-dialog button.close::after{transform:rotate(-45deg) translateX(0)}div.journey-js-dialog button.close:active{border:var(--journey-js-border-size) solid var(--journey-js-dialog-close-button-active-border-color)!important;background-color:var(--journey-js-dialog-close-button-active-background-color)!important}div.journey-js-dialog button.close:active::before,div.journey-js-dialog button.close:active::after{background:var(--journey-js-dialog-close-button-active-x-color)!important}div.journey-js-dialog button.close:hover{cursor:pointer;border:var(--journey-js-border-size) solid var(--journey-js-dialog-close-button-hover-border-color);background-color:var(--journey-js-dialog-close-button-hover-background-color)}div.journey-js-dialog button.close:hover::before,div.journey-js-dialog button.close:hover::after{background:var(--journey-js-dialog-close-button-hover-x-color)}div.journey-js-dialog div:first-of-type{padding-right:calc(var(--journey-js-dialog-close-button-size) + var(--journey-js-spacing))}div.journey-js-dialog div.title{font-size:large;font-weight:var(--journey-js-title-bold-weight);margin-bottom:var(--journey-js-spacing)}div.journey-js-dialog div.description{font-weight:var(--journey-js-text-bold-weight)}div.journey-js-dialog div.checkbox-container{margin-top:var(--journey-js-spacing);margin-bottom:var(--journey-js-spacing)}div.journey-js-dialog div.checkbox-container input{margin-right:var(--journey-js-spacing)}div.journey-js-dialog div.progress-dots{margin-top:var(--journey-js-spacing);margin-bottom:var(--journey-js-spacing);text-wrap:nowrap;text-align:center}div.journey-js-dialog div.progress-dots div.dot,div.journey-js-dialog div.progress-dots div.dot-active{margin-right:2.5px;margin-left:2.5px;display:inline-block;padding:0!important}div.journey-js-dialog div.progress-dots div.dot{border-radius:50%;height:10px;width:10px;background-color:var(--journey-js-dialog-button-background-color);border:var(--journey-js-border-size) solid var(--journey-js-dialog-button-border-color);transition:var(--journey-js-transition)}div.journey-js-dialog div.progress-dots div.dot:active{background-color:var(--journey-js-dialog-button-active-background-color)!important;border:var(--journey-js-border-size) solid var(--journey-js-dialog-button-active-border-color)!important;color:var(--journey-js-color-white)!important}div.journey-js-dialog div.progress-dots div.dot:hover{cursor:pointer;background-color:var(--journey-js-dialog-button-hover-background-color);border:var(--journey-js-border-size) solid var(--journey-js-dialog-button-hover-border-color);color:var(--journey-js-color-white)!important}div.journey-js-dialog div.progress-dots div.dot-number{height:25px!important;width:25px!important;padding:3px;display:inline-flex;justify-content:center;align-content:center;flex-direction:column;font-size:.8rem;border-radius:50%!important;color:var(--journey-js-color-gray)!important}div.journey-js-dialog div.progress-dots div.dot-active{border-radius:10px;height:10px;width:15px;background-color:var(--journey-js-dialog-button-border-color);border:var(--journey-js-border-size) solid var(--journey-js-dialog-button-border-color);color:var(--journey-js-color-white)!important}div.journey-js-dialog div.buttons{margin-top:var(--journey-js-spacing);text-align:right}div.journey-js-dialog div.buttons button.back,div.journey-js-dialog div.buttons button.next{border-radius:var(--journey-js-border-radius);background-color:var(--journey-js-dialog-button-background-color);color:var(--journey-js-dialog-button-text-color);border:var(--journey-js-border-size) solid var(--journey-js-dialog-button-border-color);min-width:100px;padding:var(--journey-js-spacing);transition:var(--journey-js-transition);outline:none;margin-left:var(--journey-js-spacing)}div.journey-js-dialog div.buttons button.back:not([disabled]):active,div.journey-js-dialog div.buttons button.next:not([disabled]):active{background-color:var(--journey-js-dialog-button-active-background-color)!important;color:var(--journey-js-dialog-button-active-text-color)!important;border:var(--journey-js-border-size) solid var(--journey-js-dialog-button-active-border-color)!important}div.journey-js-dialog div.buttons button.back:not([disabled]):hover,div.journey-js-dialog div.buttons button.next:not([disabled]):hover{cursor:pointer;background-color:var(--journey-js-dialog-button-hover-background-color);color:var(--journey-js-dialog-button-hover-text-color);border:var(--journey-js-border-size) solid var(--journey-js-dialog-button-hover-border-color)}div.journey-js-dialog div.buttons button.back:disabled,div.journey-js-dialog div.buttons button.next:disabled{background-color:var(--journey-js-dialog-button-disabled-background-color)!important;color:var(--journey-js-color-gray)}div.journey-js-dialog div.buttons button.next{font-weight:var(--journey-js-title-bold-weight)}div.journey-js-dialog label.checkbox{display:inline-block;position:relative;padding-left:25px;color:var(--journey-js-color-white)}div.journey-js-dialog label.checkbox input{display:none!important}div.journey-js-dialog label.checkbox input:checked~span.check-mark{background-color:var(--journey-js-checkbox-background-color-checked);border:var(--journey-js-border-size) solid var(--journey-js-checkbox-border-color-checked)}div.journey-js-dialog label.checkbox input:checked~span.check-mark::before{display:block}div.journey-js-dialog label.checkbox input:disabled~span.check-mark,div.journey-js-dialog label.checkbox input:disabled~span.text{opacity:.5}div.journey-js-dialog label.checkbox input:disabled~span.check-mark{border:var(--journey-js-border-size) solid var(--journey-js-color-black)!important}div.journey-js-dialog label.checkbox span.check-mark{position:absolute;top:1.5px;left:0;height:15px;width:15px;background-color:var(--journey-js-checkbox-background-color);border-radius:var(--journey-js-border-control-radius);border:var(--journey-js-border-size) solid var(--journey-js-checkbox-border-color);transition:var(--journey-js-transition)}div.journey-js-dialog label.checkbox span.check-mark::before{content:"";transform:rotate(45deg);position:absolute;display:none;left:4px;top:.5px;width:6px;height:11px;border:solid var(--journey-js-color-white);border-width:0 2.5px 2.5px 0}div.journey-js-hint{position:absolute;width:15px;height:15px;border-radius:50%;background-color:var(--journey-js-color-gray);right:-7.5px;top:-7.5px;animation:journey-js-hint-effect 2s infinite;cursor:pointer}@keyframes journey-js-hint-effect{0%{box-shadow:0 0 0 0 var(--journey-js-color-hint)}70%{box-shadow:0 0 0 10px var(--journey-js-color-hint)}100%{box-shadow:0 0 0 0 var(--journey-js-color-hint)}}div.journey-js-disabled-background{z-index:1000;position:fixed;background-color:#000;background-color:rgb(0 0 0 / .5);top:0;left:0;height:100%;width:100%}.journey-js-element-focus{z-index:1001!important}div.journey-js-tooltip{-moz-user-select:none;-webkit-user-select:none;-ms-user-select:none;-o-user-select:none;user-select:none;cursor:default;box-sizing:border-box;line-height:normal;font-family:var(--journey-js-default-font);animation:fade-in-animation var(--journey-js-animation-length);position:absolute;background-color:var(--journey-js-tooltip-background-color);border:var(--journey-js-border-size) solid var(--journey-js-tooltip-border-color);color:var(--journey-js-tooltip-text-color);border-radius:var(--journey-js-border-radius);z-index:2000;max-width:300px;padding:var(--journey-js-spacing);font-size:var(--journey-js-spacing-font-size);font-weight:var(--journey-js-tooltip-bold-weight);display:none}@keyframes fade-in-animation{0%{opacity:0}100%{opacity:1}} \ No newline at end of file +/*! Journey.js v1.5.0 | (c) Bunoon 2024 | MIT License */ +:root{--journey-js-default-font:system-ui, -apple-system, "Segoe UI", Roboto, "Helvetica Neue", "Noto Sans", "Liberation Sans", Arial, sans-serif, "Apple Color Emoji", "Segoe UI Emoji", "Segoe UI Symbol", "Noto Color Emoji";--journey-js-text-bold-weight:100;--journey-js-title-bold-weight:700;--journey-js-tooltip-bold-weight:300;--journey-js-color-black:#3b3a3a;--journey-js-color-white:#F5F5F5;--journey-js-color-gray:#AAAAAA;--journey-js-color-hint:rgba( 170, 170, 170, 0.5 );--journey-js-dialog-background-color:#002244;--journey-js-dialog-text-color:var(--journey-js-color-white);--journey-js-dialog-border-color:#72A0C1;--journey-js-dialog-button-background-color:#002D62;--journey-js-dialog-button-border-color:#3457D5;--journey-js-dialog-button-text-color:var(--journey-js-color-white);--journey-js-dialog-button-hover-background-color:#007FFF;--journey-js-dialog-button-hover-border-color:var(--journey-js-dialog-button-border-color);--journey-js-dialog-button-hover-text-color:var(--journey-js-dialog-button-text-color);--journey-js-dialog-button-active-background-color:#00b7ff;--journey-js-dialog-button-active-border-color:var(--journey-js-dialog-button-border-color);--journey-js-dialog-button-active-text-color:var(--journey-js-dialog-button-text-color);--journey-js-dialog-button-disabled-background-color:var(--journey-js-dialog-background-color);--journey-js-dialog-close-button-background-color:var(--journey-js-dialog-button-background-color);--journey-js-dialog-close-button-border-color:var(--journey-js-dialog-button-border-color);--journey-js-dialog-close-button-size:1.1rem;--journey-js-dialog-close-button-x-color:var(--journey-js-color-white);--journey-js-dialog-close-button-hover-background-color:var(--journey-js-dialog-button-hover-background-color);--journey-js-dialog-close-button-hover-x-color:var(--journey-js-dialog-close-button-x-color);--journey-js-dialog-close-button-hover-border-color:var(--journey-js-dialog-close-button-border-color);--journey-js-dialog-close-button-active-background-color:var(--journey-js-dialog-button-active-background-color);--journey-js-dialog-close-button-active-x-color:var(--journey-js-dialog-close-button-x-color);--journey-js-dialog-close-button-active-border-color:var(--journey-js-dialog-close-button-border-color);--journey-js-checkbox-background-color-checked:var(--journey-js-dialog-button-border-color);--journey-js-checkbox-background-color:var(--journey-js-dialog-button-background-color);--journey-js-checkbox-border-color-checked:var(--journey-js-checkbox-background-color-checked);--journey-js-checkbox-border-color:var(--journey-js-dialog-button-border-color);--journey-js-tooltip-background-color:var(--journey-js-dialog-background-color);--journey-js-tooltip-border-color:var(--journey-js-dialog-border-color);--journey-js-tooltip-text-color:var(--journey-js-color-white);--journey-js-border-control-radius:0.25rem;--journey-js-border-radius:0.5rem;--journey-js-border-size:0.5px;--journey-js-spacing:10px;--journey-js-spacing-font-size:0.9rem;--journey-js-transition:all .3s;--journey-js-animation-length:0.5s}div.journey-js-dialog{-moz-user-select:none;-webkit-user-select:none;-ms-user-select:none;-o-user-select:none;user-select:none;cursor:default;box-sizing:border-box;line-height:normal;font-family:var(--journey-js-default-font);position:absolute;display:none;border-radius:var(--journey-js-border-radius);background-color:var(--journey-js-dialog-background-color);color:var(--journey-js-dialog-text-color);border:var(--journey-js-border-size) solid var(--journey-js-dialog-border-color);padding:var(--journey-js-spacing);font-size:var(--journey-js-spacing-font-size);z-index:1001;width:300px;height:auto;transition:var(--journey-js-transition);transition-property:top,left}div.journey-js-dialog *{box-sizing:border-box;line-height:normal}div.journey-js-dialog *::before,div.journey-js-dialog *::after{box-sizing:border-box;line-height:normal}div.journey-js-dialog div:first-of-type{padding-right:calc(var(--journey-js-dialog-close-button-size) + var(--journey-js-spacing))}div.journey-js-dialog div.title{font-size:large;font-weight:var(--journey-js-title-bold-weight);margin-bottom:var(--journey-js-spacing)}div.journey-js-dialog div.description{font-weight:var(--journey-js-text-bold-weight)}div.journey-js-dialog div.checkbox-container{margin-top:var(--journey-js-spacing);margin-bottom:var(--journey-js-spacing)}div.journey-js-dialog div.checkbox-container input{margin-right:var(--journey-js-spacing)}div.journey-js-dialog button.close{position:absolute;top:var(--journey-js-spacing);right:var(--journey-js-spacing);width:var(--journey-js-dialog-close-button-size);height:var(--journey-js-dialog-close-button-size);border-radius:.25rem;padding:0;background-color:var(--journey-js-dialog-close-button-background-color);border:var(--journey-js-border-size) solid var(--journey-js-dialog-close-button-border-color);transition:var(--journey-js-transition)}div.journey-js-dialog button.close::before,div.journey-js-dialog button.close::after{content:"";width:2px;height:100%;background:var(--journey-js-dialog-close-button-x-color);display:block;transform:rotate(45deg) translateX(0);position:absolute;left:calc(50% - 0.5px);top:0}div.journey-js-dialog button.close::after{transform:rotate(-45deg) translateX(0)}div.journey-js-dialog button.close:active{border:var(--journey-js-border-size) solid var(--journey-js-dialog-close-button-active-border-color)!important;background-color:var(--journey-js-dialog-close-button-active-background-color)!important}div.journey-js-dialog button.close:active::before,div.journey-js-dialog button.close:active::after{background:var(--journey-js-dialog-close-button-active-x-color)!important}div.journey-js-dialog button.close:hover{cursor:pointer;border:var(--journey-js-border-size) solid var(--journey-js-dialog-close-button-hover-border-color);background-color:var(--journey-js-dialog-close-button-hover-background-color)}div.journey-js-dialog button.close:hover::before,div.journey-js-dialog button.close:hover::after{background:var(--journey-js-dialog-close-button-hover-x-color)}div.journey-js-dialog div.progress-dots{margin-top:var(--journey-js-spacing);margin-bottom:var(--journey-js-spacing);text-wrap:nowrap;text-align:center}div.journey-js-dialog div.progress-dots div.dot,div.journey-js-dialog div.progress-dots div.dot-active{margin-right:2.5px;margin-left:2.5px;display:inline-block;padding:0!important}div.journey-js-dialog div.progress-dots div.dot{border-radius:50%;height:10px;width:10px;background-color:var(--journey-js-dialog-button-background-color);border:var(--journey-js-border-size) solid var(--journey-js-dialog-button-border-color);transition:var(--journey-js-transition)}div.journey-js-dialog div.progress-dots div.dot:active{background-color:var(--journey-js-dialog-button-active-background-color)!important;border:var(--journey-js-border-size) solid var(--journey-js-dialog-button-active-border-color)!important;color:var(--journey-js-color-white)!important}div.journey-js-dialog div.progress-dots div.dot:hover{cursor:pointer;background-color:var(--journey-js-dialog-button-hover-background-color);border:var(--journey-js-border-size) solid var(--journey-js-dialog-button-hover-border-color);color:var(--journey-js-color-white)!important}div.journey-js-dialog div.progress-dots div.dot-number{height:25px!important;width:25px!important;padding:3px;display:inline-flex;justify-content:center;align-content:center;flex-direction:column;font-size:.8rem;border-radius:50%!important;color:var(--journey-js-color-gray)!important}div.journey-js-dialog div.progress-dots div.dot-active{transition:var(--journey-js-transition);transition-property:width;border-radius:10px;height:10px;width:15px;background-color:var(--journey-js-dialog-button-border-color);border:var(--journey-js-border-size) solid var(--journey-js-dialog-button-border-color);color:var(--journey-js-color-white)!important}div.journey-js-dialog div.progress-bar{border-radius:var(--journey-js-border-radius);margin-top:var(--journey-js-spacing);margin-bottom:var(--journey-js-spacing);background-color:var(--journey-js-dialog-button-background-color);border:var(--journey-js-border-size) solid var(--journey-js-dialog-button-border-color);text-wrap:nowrap;overflow:hidden}div.journey-js-dialog div.progress-bar div.progress-bar-percentage{min-height:10px;background-color:var(--journey-js-dialog-button-border-color);transition:var(--journey-js-transition);transition-property:width;text-align:center;padding:0!important;margin:0!important}div.journey-js-dialog div.progress-bar div.progress-bar-percentage p.progress-bar-percentage-text{padding:calc(var(--journey-js-spacing) / 2)!important;font-size:smaller;margin:0!important;color:var(--journey-js-color-white)}div.journey-js-dialog label.checkbox{display:inline-block;position:relative;padding-left:25px;color:var(--journey-js-color-white)}div.journey-js-dialog label.checkbox input{display:none!important}div.journey-js-dialog label.checkbox input:checked~span.check-mark{background-color:var(--journey-js-checkbox-background-color-checked);border:var(--journey-js-border-size) solid var(--journey-js-checkbox-border-color-checked)}div.journey-js-dialog label.checkbox input:checked~span.check-mark::before{display:block}div.journey-js-dialog label.checkbox input:disabled~span.check-mark,div.journey-js-dialog label.checkbox input:disabled~span.text{opacity:.5}div.journey-js-dialog label.checkbox input:disabled~span.check-mark{border:var(--journey-js-border-size) solid var(--journey-js-color-black)!important}div.journey-js-dialog label.checkbox span.check-mark{position:absolute;top:1.5px;left:0;height:15px;width:15px;background-color:var(--journey-js-checkbox-background-color);border-radius:var(--journey-js-border-control-radius);border:var(--journey-js-border-size) solid var(--journey-js-checkbox-border-color);transition:var(--journey-js-transition)}div.journey-js-dialog label.checkbox span.check-mark::before{content:"";transform:rotate(45deg);position:absolute;display:none;left:4px;top:.5px;width:6px;height:11px;border:solid var(--journey-js-color-white);border-width:0 2.5px 2.5px 0}div.journey-js-dialog div.buttons{margin-top:var(--journey-js-spacing);text-align:right}div.journey-js-dialog div.buttons button.back,div.journey-js-dialog div.buttons button.next{border-radius:var(--journey-js-border-radius);background-color:var(--journey-js-dialog-button-background-color);color:var(--journey-js-dialog-button-text-color);border:var(--journey-js-border-size) solid var(--journey-js-dialog-button-border-color);min-width:100px;padding:var(--journey-js-spacing);transition:var(--journey-js-transition);outline:none;margin-left:var(--journey-js-spacing)}div.journey-js-dialog div.buttons button.back:not([disabled]):active,div.journey-js-dialog div.buttons button.next:not([disabled]):active{background-color:var(--journey-js-dialog-button-active-background-color)!important;color:var(--journey-js-dialog-button-active-text-color)!important;border:var(--journey-js-border-size) solid var(--journey-js-dialog-button-active-border-color)!important}div.journey-js-dialog div.buttons button.back:not([disabled]):hover,div.journey-js-dialog div.buttons button.next:not([disabled]):hover{cursor:pointer;background-color:var(--journey-js-dialog-button-hover-background-color);color:var(--journey-js-dialog-button-hover-text-color);border:var(--journey-js-border-size) solid var(--journey-js-dialog-button-hover-border-color)}div.journey-js-dialog div.buttons button.back:disabled,div.journey-js-dialog div.buttons button.next:disabled{background-color:var(--journey-js-dialog-button-disabled-background-color)!important;color:var(--journey-js-color-gray)}div.journey-js-dialog div.buttons button.next{font-weight:var(--journey-js-title-bold-weight)}div.journey-js-hint{position:absolute;width:15px;height:15px;border-radius:50%;background-color:var(--journey-js-color-gray);right:-7.5px;top:-7.5px;animation:journey-js-hint-effect 2s infinite;cursor:pointer}@keyframes journey-js-hint-effect{0%{box-shadow:0 0 0 0 var(--journey-js-color-hint)}70%{box-shadow:0 0 0 10px var(--journey-js-color-hint)}100%{box-shadow:0 0 0 0 var(--journey-js-color-hint)}}div.journey-js-disabled-background{z-index:1000;position:fixed;background-color:#000;background-color:rgb(0 0 0 / .5);top:0;left:0;height:100%;width:100%}.journey-js-element-focus{z-index:1001!important}div.journey-js-tooltip{-moz-user-select:none;-webkit-user-select:none;-ms-user-select:none;-o-user-select:none;user-select:none;cursor:default;box-sizing:border-box;line-height:normal;font-family:var(--journey-js-default-font);animation:fade-in-animation var(--journey-js-animation-length);position:absolute;background-color:var(--journey-js-tooltip-background-color);border:var(--journey-js-border-size) solid var(--journey-js-tooltip-border-color);color:var(--journey-js-tooltip-text-color);border-radius:var(--journey-js-border-radius);z-index:2000;max-width:300px;padding:var(--journey-js-spacing);font-size:var(--journey-js-spacing-font-size);font-weight:var(--journey-js-tooltip-bold-weight);display:none}@keyframes fade-in-animation{0%{opacity:0}100%{opacity:1}} \ No newline at end of file diff --git a/dist/journey.min.js b/dist/journey.min.js index 0bc62eb..6a15680 100644 --- a/dist/journey.min.js +++ b/dist/journey.min.js @@ -1,25 +1,26 @@ -/*! Journey.js v1.4.0 | (c) Bunoon 2024 | MIT License */ -(function(){function va(){K=n("div","journey-js-disabled-background");K.onclick=function(){d.closeDialogOnDisabledBackgroundClick&&F()}}function wa(){g=n("div","journey-js-dialog");g.style.display="none";q.body.appendChild(g);L=n("button","close");g.appendChild(L);L.onclick=function(){F()};W(L,d.closeButtonToolTipText);R=n("div","title");g.appendChild(R);S=n("div","description");g.appendChild(S);M=n("div","checkbox-container");g.appendChild(M);da=xa(M,d.doNotShowAgainText).input;G=n("div", -"progress-dots");g.appendChild(G);H=n("div","buttons");g.appendChild(H);N=n("button","back");N.onclick=ea;H.appendChild(N);T=n("button","next");T.onclick=fa;H.appendChild(T)}function F(a){a=p(a,!0);if(x(d.closeDialogConfirmationText)&&a?confirm(d.closeDialogConfirmationText):1)a=t[m[h]],k(a)&&k(a.currentView.element)&&y(a.events.onClose,a.currentView.element),d.showDoNotShowAgain&&y(d.onDoNotShowAgainChange,da.checked),I(!1),ha(q.body,K),O(),g.style.display="none"}function ea(){0=m.length-1?d.finishButtonText:d.nextButtonText;ja(a);ka(null,a);G.innerHTML=w.empty;if(d.showProgressDots)for(b=m.length,c=0;cr.innerWidth|| -b.alignRight)a-=g.offsetWidth,a+=b.currentView.element.offsetWidth;if(c+g.offsetHeight>r.innerHeight||b.alignTop)c-=g.offsetHeight+b.currentView.element.offsetHeight;g.style.top=c+"px";g.style.left=a+"px"}else a=ma(),b=Z.max(0,(r.innerWidth-g.offsetWidth)/2+a.left),a=Z.max(0,(r.innerHeight-g.offsetHeight)/2+a.top),g.style.left=b+"px",g.style.top=a+"px"}function I(a){a=k(a)?a:!0;var b=t[m[h]];k(b)&&k(b.currentView.element)&&(b.currentView.element.className=b.currentView.element.className.replace(w.space+ -"journey-js-element-focus",w.empty),k(X)&&(b.currentView.element.style.position=X),a&&y(b.events.onLeave,b.currentView.element))}function ya(a,b){b=t[b];var c=null;a===h?c=n("div","dot-active"):(c=n("div","dot"),c.onclick=function(){I();h=a;D()});G.appendChild(c);d.showProgressDotToolTips&&(x(b.tooltip)?W(c,b.tooltip):W(c,b.title));d.showProgressDotNumbers&&(c.className+=" dot-number",c.innerHTML=(a+1).toString())}function za(){k(z)||(z=n("div","journey-js-tooltip"),z.style.display="none",q.body.appendChild(z), -q.body.addEventListener("mousemove",function(){O()}),q.addEventListener("scroll",function(){O()}))}function W(a,b){null!==a&&(a.onmousemove=function(c){Aa(c,b)})}function Aa(a,b){na(a);O();U=setTimeout(function(){z.innerHTML=b;z.style.display="block";la(a,z)},d.tooltipDelay)}function O(){k(z)&&(k(U)&&(clearTimeout(U),U=null),"block"===z.style.display&&(z.style.display="none"))}function oa(){for(var a=d.domElementTypes,b=a.length,c=0;cr.innerWidth?c-=b.offsetWidth:c++;e+b.offsetHeight>r.innerHeight?e-=b.offsetHeight:e++;c=m.length-1};f.addDocumentSteps=function(){oa();return f};f.addStep=function(a,b){B(a)&&B(b)&&(pa(a,qa(b)),m.sort(),V());return f};f.removeStep=function(a){if(B(a)){var b=!1,c;for(c in t)if(t.hasOwnProperty(c)){var e=t[c];if(e.currentView.element===a){y(e.events.onRemoveStep,e.currentView.element);m.splice(m.indexOf(e.order),1);delete t[e.order];m.sort();b=!0;break}}b?V():ra(a,"journey-js-hint")}return f};f.clearSteps=function(){V();for(var a in t)if(t.hasOwnProperty(a)){var b= -t[a];y(b.events.onRemoveStep,b.currentView.element)}t={};m=[];return f};f.clearHints=function(){ra(q.body,"journey-js-hint");return f};f.reverseStepOrder=function(){m.reverse();V();return f};f.setConfiguration=function(a){if(B(a)){var b=!1,c;for(c in a)a.hasOwnProperty(c)&&d.hasOwnProperty(c)&&d[c]!==a[c]&&(d[c]=a[c],b=!0);b&&ta(d)}return f};f.getVersion=function(){return"1.4.0"};(function(a,b,c,e){q=a;r=b;Z=c;sa=e;ta();q.addEventListener("DOMContentLoaded",function(){va();wa();za();oa();var l=void 0, -E=(l=k(l)?l:!0)?q.addEventListener:q.removeEventListener;l=l?r.addEventListener:r.removeEventListener;d.shortcutKeysEnabled&&E("keydown",Da);l("resize",Ea);E=!1;if(d.browserUrlParametersEnabled){l={};var u=r.location.href.split("?");if(1=h.length-1?d.finishButtonText: +d.nextButtonText;na(a);oa(null,a);F.innerHTML=w.empty;if(d.showProgressDots)for(b=h.length,c=0;cr.innerWidth||b.alignRight)a-=g.offsetWidth,a+=b.currentView.element.offsetWidth;if(c+g.offsetHeight>r.innerHeight|| +b.alignTop)c-=g.offsetHeight+b.currentView.element.offsetHeight;g.style.top=c+"px";g.style.left=a+"px"}else a=qa(),b=Y.max(0,(r.innerWidth-g.offsetWidth)/2+a.left),a=Y.max(0,(r.innerHeight-g.offsetHeight)/2+a.top),g.style.left=b+"px",g.style.top=a+"px"}function I(a){a=l(a)?a:!0;var b=t[h[k]];l(b)&&l(b.currentView.element)&&(b.currentView.element.className=b.currentView.element.className.replace(w.space+"journey-js-element-focus",w.empty),l(ca)&&(b.currentView.element.style.position=ca),a&&y(b.events.onLeave, +b.currentView.element))}function Ba(a,b){b=t[b];var c=null;a===k?c=n("div","dot-active"):(c=n("div","dot"),c.onclick=function(){I();k=a;D()});F.appendChild(c);d.showProgressDotToolTips&&(x(b.tooltip)?ba(c,b.tooltip):ba(c,b.title));d.showProgressDotNumbers&&(c.className+=" dot-number",c.innerHTML=(a+1).toString())}function Ca(){l(z)||(z=n("div","journey-js-tooltip"),z.style.display="none",q.body.appendChild(z),q.body.addEventListener("mousemove",function(){P()}),q.addEventListener("scroll",function(){P()}))} +function ba(a,b){null!==a&&(a.onmousemove=function(c){Da(c,b)})}function Da(a,b){ra(a);P();Z=setTimeout(function(){z.innerHTML=b;z.style.display="block";pa(a,z)},d.tooltipDelay)}function P(){l(z)&&(l(Z)&&(clearTimeout(Z),Z=null),"block"===z.style.display&&(z.style.display="none"))}function sa(){for(var a=d.domElementTypes,b=a.length,c=0;cr.innerWidth?c-=b.offsetWidth:c++;e+b.offsetHeight>r.innerHeight?e-=b.offsetHeight:e++;c=h.length-1};f.addDocumentSteps=function(){sa();return f};f.addStep=function(a,b){B(a)&&B(b)&&(ta(a,ua(b)),h.sort(),aa());return f};f.removeStep=function(a){if(B(a)){var b=!1,c;for(c in t)if(t.hasOwnProperty(c)){var e=t[c];if(e.currentView.element===a){y(e.events.onRemoveStep,e.currentView.element); +h.splice(h.indexOf(e.order),1);delete t[e.order];h.sort();b=!0;break}}b?aa():ea(a,"journey-js-hint")}return f};f.clearSteps=function(){aa();for(var a in t)if(t.hasOwnProperty(a)){var b=t[a];y(b.events.onRemoveStep,b.currentView.element)}t={};h=[];return f};f.clearHints=function(){ea(q.body,"journey-js-hint");return f};f.reverseStepOrder=function(){h.reverse();aa();return f};f.setConfiguration=function(a){if(B(a)){var b=!1,c;for(c in a)a.hasOwnProperty(c)&&d.hasOwnProperty(c)&&d[c]!==a[c]&&(d[c]=a[c], +b=!0);b&&wa(d)}return f};f.getVersion=function(){return"1.5.0"};(function(a,b,c,e){q=a;r=b;Y=c;va=e;wa();q.addEventListener("DOMContentLoaded",function(){ya();za();Ca();sa();var m=void 0,E=(m=l(m)?m:!0)?q.addEventListener:q.removeEventListener;m=m?r.addEventListener:r.removeEventListener;d.shortcutKeysEnabled&&E("keydown",Ga);m("resize",Ha);E=!1;if(d.browserUrlParametersEnabled){m={};var u=r.location.href.split("?");if(1 jJourney.js - 1.4.0 + 1.5.0 Journey.js A lightweight, easy-to-use JavaScript library to create interactive, customizable, accessible guided tours across your websites or web apps! William Troup diff --git a/package.json b/package.json index f94cfe5..e5ed61a 100644 --- a/package.json +++ b/package.json @@ -2,7 +2,7 @@ "name": "jjourney.js", "title": "Journey.js", "description": "A lightweight, easy-to-use JavaScript library to create interactive, customizable, accessible guided tours across your websites or web apps!", - "version": "1.4.0", + "version": "1.5.0", "main": "dist/journey.js", "homepage": "https://www.william-troup.com/journey-js/", "author": { diff --git a/src/journey.js b/src/journey.js index 3ba87d9..971f5d1 100644 --- a/src/journey.js +++ b/src/journey.js @@ -4,7 +4,7 @@ * A lightweight, easy-to-use JavaScript library to create interactive, customizable, accessible guided tours across your websites or web apps! * * @file journey.js - * @version v1.4.0 + * @version v1.5.0 * @author Bunoon * @license MIT License * @copyright Bunoon 2024 @@ -64,6 +64,9 @@ _element_Dialog_CheckBox_Container = null, _element_Dialog_CheckBox_Input = null, _element_Dialog_ProgressDots = null, + _element_Dialog_ProgressBar = null, + _element_Dialog_ProgressBar_Percentage = null, + _element_Dialog_ProgressBar_Percentage_Text = null, _element_Dialog_Buttons = null, _element_Dialog_Back_Button = null, _element_Dialog_Next_Button = null, @@ -135,6 +138,15 @@ _element_Dialog_ProgressDots = createElement( "div", "progress-dots" ); _element_Dialog.appendChild( _element_Dialog_ProgressDots ); + _element_Dialog_ProgressBar = createElement( "div", "progress-bar" ); + _element_Dialog.appendChild( _element_Dialog_ProgressBar ); + + _element_Dialog_ProgressBar_Percentage = createElement( "div", "progress-bar-percentage" ); + _element_Dialog_ProgressBar.appendChild( _element_Dialog_ProgressBar_Percentage ); + + _element_Dialog_ProgressBar_Percentage_Text = createElement( "p", "progress-bar-percentage-text" ); + _element_Dialog_ProgressBar_Percentage.appendChild( _element_Dialog_ProgressBar_Percentage_Text ); + _element_Dialog_Buttons = createElement( "div", "buttons" ); _element_Dialog.appendChild( _element_Dialog_Buttons ); @@ -220,6 +232,10 @@ bindingOptions.currentView.element.className += _string.space + "journey-js-element-focus"; + if ( _configuration.scrollToElements ) { + bindingOptions.currentView.element.scrollIntoView(); + } + var lastPositionStyle = getStyleValueByName( bindingOptions.currentView.element, "position" ); if ( lastPositionStyle !== _string.empty && lastPositionStyle.toLowerCase() === "static" ) { @@ -229,6 +245,8 @@ showElementBasedOnCondition( _element_Dialog_CheckBox_Container, _configuration.showDoNotShowAgain ); showElementBasedOnCondition( _element_Dialog_ProgressDots, _configuration.showProgressDots && _elements_Attributes_Keys.length > 1 ); + showElementBasedOnCondition( _element_Dialog_ProgressBar, _configuration.showProgressBar && _elements_Attributes_Keys.length > 1 ); + showElementBasedOnCondition( _element_Dialog_ProgressBar_Percentage_Text, _configuration.showProgressBarText ); showElementBasedOnCondition( _element_Dialog_Buttons, _configuration.showButtons ); _element_Dialog_Back_Button.innerHTML = _configuration.backButtonText; @@ -243,6 +261,7 @@ setDialogText( bindingOptions ); setDialogPosition( null, bindingOptions ); buildProcessDots(); + setProgressBarPosition(); fireCustomTrigger( bindingOptions.events.onEnter, bindingOptions.currentView.element ); if ( bindingOptions.sendClick ) { @@ -373,6 +392,17 @@ } } + function setProgressBarPosition() { + if ( _configuration.showProgressBar ) { + var pixelsPerStage = _element_Dialog_ProgressDots.offsetWidth / _elements_Attributes_Keys.length, + width = ( _elements_Attributes_Position + 1 ) * pixelsPerStage, + percentageComplete = _parameter_Math.ceil( ( ( _elements_Attributes_Position + 1 ) / _elements_Attributes_Keys.length ) * 100 ); + + _element_Dialog_ProgressBar_Percentage.style.width = width + "px"; + _element_Dialog_ProgressBar_Percentage_Text.innerHTML = percentageComplete + "%"; + } + } + /* * ---------------------------------------------------------------------------------------------------------------------------------------------------------------------------- @@ -520,11 +550,16 @@ _element_Dialog_CheckBox_Container.style.display = "none"; _element_Dialog_ProgressDots.style.display = "none"; + _element_Dialog_ProgressBar.style.display = "none"; _element_Dialog_Buttons.style.display = "none"; _configuration_ShortcutKeysEnabled = false; setDialogText( bindingOptions ); setDialogPosition( e, bindingOptions ); + + if ( bindingOptions.removeHintWhenViewed ) { + clearElementsByClassName( bindingOptions.currentView.element, "journey-js-hint" ); + } }; } @@ -616,6 +651,7 @@ options.isHint = getDefaultBoolean( options.isHint, false ); options.alignHintToClickPosition = getDefaultBoolean( options.alignHintToClickPosition, false ); options.showDisabledBackground = getDefaultBoolean( options.showDisabledBackground, true ); + options.removeHintWhenViewed = getDefaultBoolean( options.removeHintWhenViewed, false ); options = buildAttributeOptionStrings( options ); @@ -1286,6 +1322,8 @@ _configuration.tooltipDelay = getDefaultNumber( _configuration.tooltipDelay, 750 ); _configuration.showProgressDotToolTips = getDefaultBoolean( _configuration.showProgressDotToolTips, true ); _configuration.closeDialogOnDisabledBackgroundClick = getDefaultBoolean( _configuration.closeDialogOnDisabledBackgroundClick, false ); + _configuration.showProgressBar = getDefaultBoolean( _configuration.showProgressBar, false ); + _configuration.scrollToElements = getDefaultBoolean( _configuration.scrollToElements, false ); buildDefaultConfigurationStrings(); buildDefaultConfigurationCustomTriggers(); @@ -1301,6 +1339,7 @@ _configuration.attributeNotValidErrorText = getDefaultString( _configuration.attributeNotValidErrorText, "The attribute '{{attribute_name}}' is not a valid object." ); _configuration.attributeNotSetErrorText = getDefaultString( _configuration.attributeNotSetErrorText, "The attribute '{{attribute_name}}' has not been set correctly." ); _configuration.closeDialogConfirmationText = getDefaultString( _configuration.closeDialogConfirmationText, null ); + _configuration.showProgressBarText = getDefaultBoolean( _configuration.showProgressBarText, false ); } function buildDefaultConfigurationCustomTriggers() { @@ -1324,7 +1363,7 @@ * @returns {string} The version number. */ _public.getVersion = function() { - return "1.4.0"; + return "1.5.0"; }; diff --git a/src/journey.js.scss b/src/journey.js.scss index 003aec5..e0c6d1e 100644 --- a/src/journey.js.scss +++ b/src/journey.js.scss @@ -1,5 +1,5 @@ /* - * Journey.js Library v1.4.0 + * Journey.js Library v1.5.0 * * Copyright 2024 Bunoon * Released under the MIT License @@ -119,6 +119,40 @@ div.journey-js-dialog { } } + div { + &:first-of-type { + padding-right: calc( var(--journey-js-dialog-close-button-size) + var(--journey-js-spacing) ); + } + } + + div.title { + font-size: large; + font-weight: var(--journey-js-title-bold-weight); + margin-bottom: var(--journey-js-spacing); + } + + div.description { + font-weight: var(--journey-js-text-bold-weight); + } + + div.checkbox-container { + margin-top: var(--journey-js-spacing); + margin-bottom: var(--journey-js-spacing); + + input { + margin-right: var(--journey-js-spacing); + } + } +} + + +/* + ------------------------------------------------------------------------- + Journey.js - Dialog - Close Button + ------------------------------------------------------------------------- +*/ + +div.journey-js-dialog { button.close { position: absolute; top: var(--journey-js-spacing); @@ -169,32 +203,16 @@ div.journey-js-dialog { } } } +} - div { - &:first-of-type { - padding-right: calc( var(--journey-js-dialog-close-button-size) + var(--journey-js-spacing) ); - } - } - - div.title { - font-size: large; - font-weight: var(--journey-js-title-bold-weight); - margin-bottom: var(--journey-js-spacing); - } - - div.description { - font-weight: var(--journey-js-text-bold-weight); - } - - div.checkbox-container { - margin-top: var(--journey-js-spacing); - margin-bottom: var(--journey-js-spacing); - input { - margin-right: var(--journey-js-spacing); - } - } +/* + ------------------------------------------------------------------------- + Journey.js - Dialog - Progress Dots + ------------------------------------------------------------------------- +*/ +div.journey-js-dialog { div.progress-dots { margin-top: var(--journey-js-spacing); margin-bottom: var(--journey-js-spacing); @@ -245,6 +263,8 @@ div.journey-js-dialog { } div.dot-active { + transition: var(--journey-js-transition); + transition-property: width; border-radius: 10px; height: 10px; width: 15px; @@ -253,45 +273,41 @@ div.journey-js-dialog { color: var(--journey-js-color-white) !important; } } +} - div.buttons { - margin-top: var(--journey-js-spacing); - text-align: right; - button.back, - button.next { - border-radius: var(--journey-js-border-radius); - background-color: var(--journey-js-dialog-button-background-color); - color: var(--journey-js-dialog-button-text-color); - border: var(--journey-js-border-size) solid var(--journey-js-dialog-button-border-color); - min-width: 100px; - padding: var(--journey-js-spacing); - transition: var(--journey-js-transition); - outline: none; - margin-left: var(--journey-js-spacing); +/* + ------------------------------------------------------------------------- + Journey.js - Dialog - Progress Bar + ------------------------------------------------------------------------- +*/ - &:not([disabled]):active { - background-color: var(--journey-js-dialog-button-active-background-color) !important; - color: var(--journey-js-dialog-button-active-text-color) !important; - border: var(--journey-js-border-size) solid var(--journey-js-dialog-button-active-border-color) !important; - } +div.journey-js-dialog { + div.progress-bar { + border-radius: var(--journey-js-border-radius); + margin-top: var(--journey-js-spacing); + margin-bottom: var(--journey-js-spacing); + background-color: var(--journey-js-dialog-button-background-color); + border: var(--journey-js-border-size) solid var(--journey-js-dialog-button-border-color); + text-wrap: nowrap; + overflow: hidden; - &:not([disabled]):hover { - cursor: pointer; - background-color: var(--journey-js-dialog-button-hover-background-color); - color: var(--journey-js-dialog-button-hover-text-color); - border: var(--journey-js-border-size) solid var(--journey-js-dialog-button-hover-border-color); - } + div.progress-bar-percentage { + min-height: 10px; + background-color: var(--journey-js-dialog-button-border-color); + transition: var(--journey-js-transition); + transition-property: width; + text-align: center; + padding: 0 !important; + margin: 0 !important; - &:disabled { - background-color: var(--journey-js-dialog-button-disabled-background-color) !important; - color: var(--journey-js-color-gray); + p.progress-bar-percentage-text { + padding: calc( var(--journey-js-spacing) / 2 ) !important; + font-size: smaller; + margin: 0 !important; + color: var(--journey-js-color-white); } } - - button.next { - font-weight: var(--journey-js-title-bold-weight); - } } } @@ -359,6 +375,55 @@ div.journey-js-dialog { } +/* + ------------------------------------------------------------------------- + Journey.js - Dialog - Buttons + ------------------------------------------------------------------------- +*/ + +div.journey-js-dialog { + div.buttons { + margin-top: var(--journey-js-spacing); + text-align: right; + + button.back, + button.next { + border-radius: var(--journey-js-border-radius); + background-color: var(--journey-js-dialog-button-background-color); + color: var(--journey-js-dialog-button-text-color); + border: var(--journey-js-border-size) solid var(--journey-js-dialog-button-border-color); + min-width: 100px; + padding: var(--journey-js-spacing); + transition: var(--journey-js-transition); + outline: none; + margin-left: var(--journey-js-spacing); + + &:not([disabled]):active { + background-color: var(--journey-js-dialog-button-active-background-color) !important; + color: var(--journey-js-dialog-button-active-text-color) !important; + border: var(--journey-js-border-size) solid var(--journey-js-dialog-button-active-border-color) !important; + } + + &:not([disabled]):hover { + cursor: pointer; + background-color: var(--journey-js-dialog-button-hover-background-color); + color: var(--journey-js-dialog-button-hover-text-color); + border: var(--journey-js-border-size) solid var(--journey-js-dialog-button-hover-border-color); + } + + &:disabled { + background-color: var(--journey-js-dialog-button-disabled-background-color) !important; + color: var(--journey-js-color-gray); + } + } + + button.next { + font-weight: var(--journey-js-title-bold-weight); + } + } +} + + /* ------------------------------------------------------------------------- Journey.js - Hints diff --git a/test/css/styles.css b/test/css/styles.css index 21b7f66..98014c6 100644 --- a/test/css/styles.css +++ b/test/css/styles.css @@ -44,6 +44,6 @@ div.contents { padding: 10px; } -button { +div.contents button { margin: 3px !important; } \ No newline at end of file diff --git a/test/dist/journey.js.bootstrap.html b/test/dist/journey.js.bootstrap.html index 7f0d427..96b4a91 100644 --- a/test/dist/journey.js.bootstrap.html +++ b/test/dist/journey.js.bootstrap.html @@ -28,7 +28,7 @@

Journey.js - Bootstrap

Show/Hide:

- +
@@ -86,7 +86,9 @@

Additional Data:

showProgressDotNumbers: false, shortcutKeysEnabled: true, showProgressDotToolTips: true, - closeDialogOnDisabledBackgroundClick: false + closeDialogOnDisabledBackgroundClick: false, + showProgressBar: false, + showProgressBarText: false } ); \ No newline at end of file diff --git a/test/src/journey.js.bootstrap.html b/test/src/journey.js.bootstrap.html index 33f0f17..86e8c29 100644 --- a/test/src/journey.js.bootstrap.html +++ b/test/src/journey.js.bootstrap.html @@ -28,7 +28,7 @@

Journey.js - Bootstrap

Show/Hide:

- +
@@ -86,7 +86,9 @@

Additional Data:

showProgressDotNumbers: false, shortcutKeysEnabled: true, showProgressDotToolTips: true, - closeDialogOnDisabledBackgroundClick: false + closeDialogOnDisabledBackgroundClick: false, + showProgressBar: false, + showProgressBarText: false } ); \ No newline at end of file