├── .github
└── workflows
│ └── build-and-deploy.yml
├── .gitignore
├── .prettierrc
├── .vscode
└── settings.json
├── LICENSE.txt
├── assets
├── css
│ ├── animation.css
│ ├── font-awesome.min.css
│ ├── magnific-popup.css
│ └── qubely.animatedheadline.css
├── fonts
│ ├── fa-brands-400.eot
│ ├── fa-brands-400.svg
│ ├── fa-brands-400.ttf
│ ├── fa-brands-400.woff
│ ├── fa-brands-400.woff2
│ ├── fa-regular-400.eot
│ ├── fa-regular-400.svg
│ ├── fa-regular-400.ttf
│ ├── fa-regular-400.woff
│ ├── fa-regular-400.woff2
│ ├── fa-solid-900.eot
│ ├── fa-solid-900.svg
│ ├── fa-solid-900.ttf
│ ├── fa-solid-900.woff
│ └── fa-solid-900.woff2
├── img
│ ├── admin
│ │ ├── cta-1.png
│ │ ├── cta-2.png
│ │ ├── pointer@1x.png
│ │ ├── pointer@2x.png
│ │ ├── thumbs-up@1x.png
│ │ └── thumbs-up@2x.png
│ ├── blocks
│ │ ├── accordion
│ │ │ ├── classic.svg
│ │ │ └── fill.svg
│ │ ├── block-accordion.svg
│ │ ├── block-advanced-list.svg
│ │ ├── block-animatedheadline.svg
│ │ ├── block-button-group.svg
│ │ ├── block-button.svg
│ │ ├── block-column.svg
│ │ ├── block-contact-form.svg
│ │ ├── block-counter.svg
│ │ ├── block-divider.svg
│ │ ├── block-form.svg
│ │ ├── block-heading.svg
│ │ ├── block-icon-list.svg
│ │ ├── block-icon.svg
│ │ ├── block-image.svg
│ │ ├── block-imagecomparison.svg
│ │ ├── block-info-box.svg
│ │ ├── block-map.svg
│ │ ├── block-pie-progress.svg
│ │ ├── block-post-grid.svg
│ │ ├── block-pricing.svg
│ │ ├── block-progressbar.svg
│ │ ├── block-qubely.svg
│ │ ├── block-row.svg
│ │ ├── block-social-icons.svg
│ │ ├── block-tabs.svg
│ │ ├── block-team.svg
│ │ ├── block-testimonial-carousel.svg
│ │ ├── block-testimonial.svg
│ │ ├── block-text.svg
│ │ ├── block-timeline.svg
│ │ ├── block-toc.svg
│ │ ├── block-videopopup.svg
│ │ ├── block-wrapper.svg
│ │ ├── button
│ │ │ ├── fill.svg
│ │ │ ├── fill_xs.svg
│ │ │ ├── outline.svg
│ │ │ └── outline_xs.svg
│ │ ├── form
│ │ │ ├── classic.svg
│ │ │ └── material.svg
│ │ ├── icon
│ │ │ ├── classic.svg
│ │ │ ├── fill.svg
│ │ │ └── outline.svg
│ │ ├── image
│ │ │ ├── blurb.svg
│ │ │ └── simple.svg
│ │ ├── infobox
│ │ │ ├── 1.svg
│ │ │ ├── 2.svg
│ │ │ ├── 3.svg
│ │ │ └── 4.svg
│ │ ├── list
│ │ │ ├── 1.svg
│ │ │ └── 2.svg
│ │ ├── map
│ │ │ ├── aqua-light.jpg
│ │ │ ├── greyscale.jpg
│ │ │ ├── inturlam.jpg
│ │ │ ├── lunar.jpg
│ │ │ ├── midnight.jpg
│ │ │ ├── multi-brand.jpg
│ │ │ ├── purple.jpg
│ │ │ ├── purple.png
│ │ │ ├── shadow-grey.jpg
│ │ │ ├── style-default.jpg
│ │ │ └── ultra-light.jpg
│ │ ├── pieprogress
│ │ │ ├── fill.svg
│ │ │ ├── outline-fill.svg
│ │ │ └── outline.svg
│ │ ├── postgrid
│ │ │ ├── 1.svg
│ │ │ ├── 11.svg
│ │ │ ├── 12.svg
│ │ │ ├── 13.svg
│ │ │ ├── 14.svg
│ │ │ ├── 15.svg
│ │ │ ├── 16.svg
│ │ │ ├── 2.svg
│ │ │ ├── 3.svg
│ │ │ ├── 4.svg
│ │ │ ├── 5.svg
│ │ │ ├── pro1.svg
│ │ │ ├── pro2.svg
│ │ │ └── pro3.svg
│ │ ├── pricing
│ │ │ ├── 1.svg
│ │ │ ├── 2.svg
│ │ │ ├── 3.svg
│ │ │ ├── 4.svg
│ │ │ ├── 5.svg
│ │ │ └── badges
│ │ │ │ ├── 1.svg
│ │ │ │ ├── 2.svg
│ │ │ │ ├── 3.svg
│ │ │ │ ├── 4.svg
│ │ │ │ ├── 5.svg
│ │ │ │ └── 6.svg
│ │ ├── socialicon
│ │ │ ├── fill.svg
│ │ │ └── normal.svg
│ │ ├── tab
│ │ │ ├── pills.svg
│ │ │ ├── tabs.svg
│ │ │ └── underline.svg
│ │ ├── team
│ │ │ ├── 1.svg
│ │ │ ├── 2.svg
│ │ │ └── 3.svg
│ │ ├── testimonial
│ │ │ ├── 1.svg
│ │ │ ├── 2.svg
│ │ │ ├── 3.svg
│ │ │ └── avatars
│ │ │ │ ├── 1.svg
│ │ │ │ ├── 2.svg
│ │ │ │ ├── 3.svg
│ │ │ │ └── 4.svg
│ │ └── videopopup
│ │ │ ├── classic.svg
│ │ │ └── fill.svg
│ ├── disable-pattern.png
│ ├── image-loader.gif
│ ├── options-logo.png
│ ├── qubely-logo-white.svg
│ ├── qubely-logo.svg
│ └── qubely-medium.jpg
├── js
│ ├── blocks
│ │ ├── contactform.js
│ │ ├── image-comparison.js
│ │ └── map.js
│ ├── common-script.js
│ ├── interaction.js
│ ├── jquery.animatedheadline.js
│ └── qubely.magnific-popup.js
├── reactjs
│ ├── .babelrc
│ ├── .eslintrc
│ ├── .npmrc
│ ├── gulpfile.js
│ ├── package.json
│ ├── src
│ │ ├── blocks
│ │ │ ├── accordion
│ │ │ │ ├── Edit.js
│ │ │ │ ├── Save.js
│ │ │ │ ├── index.js
│ │ │ │ ├── innerItem
│ │ │ │ │ ├── Edit.js
│ │ │ │ │ ├── Save.js
│ │ │ │ │ └── index.js
│ │ │ │ └── style.scss
│ │ │ ├── advancedlist
│ │ │ │ ├── Edit.js
│ │ │ │ ├── Save.js
│ │ │ │ ├── attributes.js
│ │ │ │ ├── index.js
│ │ │ │ └── style.scss
│ │ │ ├── animatedheadline
│ │ │ │ ├── Edit.js
│ │ │ │ ├── Save.js
│ │ │ │ ├── attributes.js
│ │ │ │ ├── index.js
│ │ │ │ └── style.scss
│ │ │ ├── button
│ │ │ │ ├── Edit.js
│ │ │ │ ├── Save.js
│ │ │ │ ├── attributes.js
│ │ │ │ ├── index.js
│ │ │ │ └── style.scss
│ │ │ ├── buttongroup
│ │ │ │ ├── Edit.js
│ │ │ │ ├── Save.js
│ │ │ │ ├── attributes.js
│ │ │ │ ├── index.js
│ │ │ │ └── style.scss
│ │ │ ├── contactform
│ │ │ │ ├── Edit.js
│ │ │ │ ├── Save.js
│ │ │ │ ├── attributes.js
│ │ │ │ ├── index.js
│ │ │ │ └── style.scss
│ │ │ ├── counter
│ │ │ │ ├── Edit.js
│ │ │ │ ├── Save.js
│ │ │ │ └── index.js
│ │ │ ├── divider
│ │ │ │ ├── Edit.js
│ │ │ │ ├── Save.js
│ │ │ │ ├── editor.scss
│ │ │ │ ├── icon.js
│ │ │ │ ├── index.js
│ │ │ │ └── style.scss
│ │ │ ├── heading
│ │ │ │ ├── Edit.js
│ │ │ │ ├── Save.js
│ │ │ │ ├── index.js
│ │ │ │ ├── separators.js
│ │ │ │ └── style.scss
│ │ │ ├── icon
│ │ │ │ ├── Edit.js
│ │ │ │ ├── Save.js
│ │ │ │ ├── index.js
│ │ │ │ └── style.scss
│ │ │ ├── iconlist
│ │ │ │ ├── Edit.js
│ │ │ │ ├── Save.js
│ │ │ │ ├── index.js
│ │ │ │ └── style.scss
│ │ │ ├── image-comparison
│ │ │ │ ├── Edit.js
│ │ │ │ ├── Save.js
│ │ │ │ ├── attributes.js
│ │ │ │ ├── index.js
│ │ │ │ └── style.scss
│ │ │ ├── image
│ │ │ │ ├── Edit.js
│ │ │ │ ├── Save.js
│ │ │ │ ├── index.js
│ │ │ │ └── style.scss
│ │ │ ├── infobox
│ │ │ │ ├── Edit.js
│ │ │ │ ├── Save.js
│ │ │ │ ├── attributes.js
│ │ │ │ ├── index.js
│ │ │ │ └── style.scss
│ │ │ ├── map
│ │ │ │ ├── Edit.js
│ │ │ │ ├── Save.js
│ │ │ │ ├── index.js
│ │ │ │ ├── mapStyles.js
│ │ │ │ └── style.scss
│ │ │ ├── pagesettings
│ │ │ │ └── index.js
│ │ │ ├── pieprogress
│ │ │ │ ├── Edit.js
│ │ │ │ ├── Progress.js
│ │ │ │ ├── Save.js
│ │ │ │ ├── index.js
│ │ │ │ └── style.scss
│ │ │ ├── postgrid
│ │ │ │ ├── Edit.js
│ │ │ │ ├── index.js
│ │ │ │ └── style.scss
│ │ │ ├── pricing
│ │ │ │ ├── Edit.js
│ │ │ │ ├── Save.js
│ │ │ │ ├── index.js
│ │ │ │ └── style.scss
│ │ │ ├── progressbar
│ │ │ │ ├── Edit.js
│ │ │ │ ├── index.js
│ │ │ │ ├── save.js
│ │ │ │ └── style.scss
│ │ │ ├── row
│ │ │ │ ├── Edit.js
│ │ │ │ ├── Save.js
│ │ │ │ ├── attributes.js
│ │ │ │ ├── column
│ │ │ │ │ ├── Edit.js
│ │ │ │ │ ├── Save.js
│ │ │ │ │ └── index.js
│ │ │ │ ├── index.js
│ │ │ │ └── style.scss
│ │ │ ├── scss
│ │ │ │ └── style.scss
│ │ │ ├── socialicons
│ │ │ │ ├── Edit.js
│ │ │ │ ├── Save.js
│ │ │ │ ├── index.js
│ │ │ │ └── style.scss
│ │ │ ├── table-of-contents
│ │ │ │ ├── Edit.js
│ │ │ │ ├── Save.js
│ │ │ │ ├── attributes.js
│ │ │ │ ├── components.js
│ │ │ │ ├── index.js
│ │ │ │ └── style.scss
│ │ │ ├── tabs
│ │ │ │ ├── Edit.js
│ │ │ │ ├── Save.js
│ │ │ │ ├── attributes.js
│ │ │ │ ├── index.js
│ │ │ │ ├── style.scss
│ │ │ │ └── tab
│ │ │ │ │ ├── Edit.js
│ │ │ │ │ ├── Save.js
│ │ │ │ │ └── index.js
│ │ │ ├── team
│ │ │ │ ├── Edit.js
│ │ │ │ ├── Save.js
│ │ │ │ ├── index.js
│ │ │ │ └── style.scss
│ │ │ ├── testimonial
│ │ │ │ ├── Edit.js
│ │ │ │ ├── Save.js
│ │ │ │ ├── attributes.js
│ │ │ │ ├── index.js
│ │ │ │ └── style.scss
│ │ │ ├── text
│ │ │ │ ├── Edit.js
│ │ │ │ ├── Save.js
│ │ │ │ ├── index.js
│ │ │ │ └── style.scss
│ │ │ ├── timeline
│ │ │ │ ├── Edit.js
│ │ │ │ ├── Save.js
│ │ │ │ ├── index.js
│ │ │ │ └── style.scss
│ │ │ ├── videopopup
│ │ │ │ ├── Edit.js
│ │ │ │ ├── Save.js
│ │ │ │ ├── index.js
│ │ │ │ └── style.scss
│ │ │ └── wrapper
│ │ │ │ ├── Edit.js
│ │ │ │ ├── Save.js
│ │ │ │ ├── index.js
│ │ │ │ └── style.scss
│ │ ├── components
│ │ │ ├── CssGenerator.js
│ │ │ ├── CssHelper.js
│ │ │ ├── FieldRender.js
│ │ │ ├── HelperFunction.js
│ │ │ ├── InspectorTab.js
│ │ │ ├── InspectorTabs.js
│ │ │ ├── InteractionFields
│ │ │ │ ├── InteractionData.js
│ │ │ │ ├── InteractionParser.js
│ │ │ │ ├── RenderFields.js
│ │ │ │ └── Timeline.js
│ │ │ ├── css
│ │ │ │ ├── InnerPanel.scss
│ │ │ │ ├── alignment.scss
│ │ │ │ ├── animation.scss
│ │ │ │ ├── border.scss
│ │ │ │ ├── buttonGroup.scss
│ │ │ │ ├── color.scss
│ │ │ │ ├── contextmenu.scss
│ │ │ │ ├── dimension.scss
│ │ │ │ ├── dragdimension.scss
│ │ │ │ ├── dropdown.scss
│ │ │ │ ├── editorinline.scss
│ │ │ │ ├── gradient.scss
│ │ │ │ ├── iconlist.scss
│ │ │ │ ├── inline_toolbar.scss
│ │ │ │ ├── inspectorTabs.scss
│ │ │ │ ├── interaction.scss
│ │ │ │ ├── media.scss
│ │ │ │ ├── panelTabs.scss
│ │ │ │ ├── range.scss
│ │ │ │ ├── select.scss
│ │ │ │ ├── selector.scss
│ │ │ │ ├── separator.scss
│ │ │ │ ├── shape.scss
│ │ │ │ ├── styles.scss
│ │ │ │ ├── template.scss
│ │ │ │ ├── toggle.scss
│ │ │ │ ├── typography.scss
│ │ │ │ ├── url.scss
│ │ │ │ └── wrapper.scss
│ │ │ ├── fields
│ │ │ │ ├── Alignment.js
│ │ │ │ ├── Animation.js
│ │ │ │ ├── Background.js
│ │ │ │ ├── Border.js
│ │ │ │ ├── BorderRadius.js
│ │ │ │ ├── BoxShadow.js
│ │ │ │ ├── ButtonGroup.js
│ │ │ │ ├── ButtonSettings.js
│ │ │ │ ├── Carousel
│ │ │ │ │ ├── index.js
│ │ │ │ │ ├── qubelyCarousel.js
│ │ │ │ │ └── utils.js
│ │ │ │ ├── Color.js
│ │ │ │ ├── ColorAdvanced.js
│ │ │ │ ├── ContextMenu.js
│ │ │ │ ├── Counter.js
│ │ │ │ ├── Device.js
│ │ │ │ ├── Dimension.js
│ │ │ │ ├── DragDimension.js
│ │ │ │ ├── DropDown.js
│ │ │ │ ├── GlobalSettings.js
│ │ │ │ ├── Gradient.js
│ │ │ │ ├── Headings.js
│ │ │ │ ├── IconList.js
│ │ │ │ ├── IconSelector.js
│ │ │ │ ├── InnerPanel.js
│ │ │ │ ├── Interaction.js
│ │ │ │ ├── ListSettings.js
│ │ │ │ ├── Margin.js
│ │ │ │ ├── Media.js
│ │ │ │ ├── Padding.js
│ │ │ │ ├── QubelyButton.js
│ │ │ │ ├── QubelyIconList.js
│ │ │ │ ├── RadioAdvanced.js
│ │ │ │ ├── Range.js
│ │ │ │ ├── Select.js
│ │ │ │ ├── Selector.js
│ │ │ │ ├── Separator.js
│ │ │ │ ├── Shape.js
│ │ │ │ ├── Styles.js
│ │ │ │ ├── Tab.js
│ │ │ │ ├── Tabs.js
│ │ │ │ ├── Templates.js
│ │ │ │ ├── Toggle.js
│ │ │ │ ├── Typography.js
│ │ │ │ ├── Url.js
│ │ │ │ ├── Wrapper.js
│ │ │ │ ├── assets
│ │ │ │ │ ├── FontList.js
│ │ │ │ │ ├── IconListData.js
│ │ │ │ │ └── IconSocialData.js
│ │ │ │ ├── headingToolbar
│ │ │ │ │ ├── headingIcon.js
│ │ │ │ │ └── index.js
│ │ │ │ └── inline
│ │ │ │ │ ├── InlineSpacer.js
│ │ │ │ │ ├── InlineToolbar.js
│ │ │ │ │ ├── Selector.js
│ │ │ │ │ └── index.js
│ │ │ ├── format-library
│ │ │ │ ├── background-color
│ │ │ │ │ └── index.js
│ │ │ │ ├── color
│ │ │ │ │ └── index.js
│ │ │ │ ├── custom-formats.js
│ │ │ │ ├── font-size
│ │ │ │ │ ├── index.js
│ │ │ │ │ └── inline.js
│ │ │ │ ├── index.js
│ │ │ │ ├── tooltip
│ │ │ │ │ ├── index.js
│ │ │ │ │ └── inline.js
│ │ │ │ └── upper-case
│ │ │ │ │ └── index.js
│ │ │ └── others
│ │ │ │ ├── index.js
│ │ │ │ └── pagination
│ │ │ │ ├── index.js
│ │ │ │ └── page.js
│ │ ├── editor.scss
│ │ ├── helpers
│ │ │ ├── ParseCss.js
│ │ │ ├── globalCSS.js
│ │ │ ├── icons.js
│ │ │ └── utils.js
│ │ ├── hooks
│ │ │ ├── index.js
│ │ │ └── with-css-generator
│ │ │ │ ├── cssHelpers.js
│ │ │ │ ├── generateCSS.js
│ │ │ │ └── index.js
│ │ ├── index.js
│ │ └── plugins
│ │ │ ├── global-settings
│ │ │ ├── components
│ │ │ │ ├── color.js
│ │ │ │ └── index.js
│ │ │ ├── constants.js
│ │ │ ├── index.js
│ │ │ └── style.scss
│ │ │ └── index.js
│ ├── webpack.config.js
│ └── webpack.production.config.js
└── shape
│ ├── clouds-flat.svg
│ ├── clouds-opacity.svg
│ ├── drip.svg
│ ├── hill-invert.svg
│ ├── hill-wave.svg
│ ├── hill.svg
│ ├── line-wave.svg
│ ├── paper-torn.svg
│ ├── pointy-wave.svg
│ ├── rocky-mountain.svg
│ ├── single-wave.svg
│ ├── slope-opacity.svg
│ ├── slope.svg
│ ├── swirl.svg
│ ├── turning-slope.svg
│ ├── waves3-opacity.svg
│ ├── wavy-opacity.svg
│ └── zigzag-shark.svg
├── build
└── qubely
│ ├── assets
│ ├── css
│ │ ├── font-awesome.min.css
│ │ ├── qubely.bundle.min.css
│ │ └── style.min.css
│ ├── fonts
│ │ ├── fa-brands-400.eot
│ │ ├── fa-brands-400.svg
│ │ ├── fa-brands-400.ttf
│ │ ├── fa-brands-400.woff
│ │ ├── fa-brands-400.woff2
│ │ ├── fa-regular-400.eot
│ │ ├── fa-regular-400.svg
│ │ ├── fa-regular-400.ttf
│ │ ├── fa-regular-400.woff
│ │ ├── fa-regular-400.woff2
│ │ ├── fa-solid-900.eot
│ │ ├── fa-solid-900.svg
│ │ ├── fa-solid-900.ttf
│ │ ├── fa-solid-900.woff
│ │ └── fa-solid-900.woff2
│ ├── img
│ │ ├── admin
│ │ │ ├── cta-1.png
│ │ │ ├── cta-2.png
│ │ │ ├── pointer@1x.png
│ │ │ ├── pointer@2x.png
│ │ │ ├── thumbs-up@1x.png
│ │ │ └── thumbs-up@2x.png
│ │ ├── blocks
│ │ │ ├── accordion
│ │ │ │ ├── classic.svg
│ │ │ │ └── fill.svg
│ │ │ ├── block-accordion.svg
│ │ │ ├── block-advanced-list.svg
│ │ │ ├── block-animatedheadline.svg
│ │ │ ├── block-button-group.svg
│ │ │ ├── block-button.svg
│ │ │ ├── block-column.svg
│ │ │ ├── block-contact-form.svg
│ │ │ ├── block-counter.svg
│ │ │ ├── block-divider.svg
│ │ │ ├── block-form.svg
│ │ │ ├── block-heading.svg
│ │ │ ├── block-icon-list.svg
│ │ │ ├── block-icon.svg
│ │ │ ├── block-image.svg
│ │ │ ├── block-imagecomparison.svg
│ │ │ ├── block-info-box.svg
│ │ │ ├── block-map.svg
│ │ │ ├── block-pie-progress.svg
│ │ │ ├── block-post-grid.svg
│ │ │ ├── block-pricing.svg
│ │ │ ├── block-progressbar.svg
│ │ │ ├── block-qubely.svg
│ │ │ ├── block-row.svg
│ │ │ ├── block-social-icons.svg
│ │ │ ├── block-tabs.svg
│ │ │ ├── block-team.svg
│ │ │ ├── block-testimonial-carousel.svg
│ │ │ ├── block-testimonial.svg
│ │ │ ├── block-text.svg
│ │ │ ├── block-timeline.svg
│ │ │ ├── block-toc.svg
│ │ │ ├── block-videopopup.svg
│ │ │ ├── block-wrapper.svg
│ │ │ ├── button
│ │ │ │ ├── fill.svg
│ │ │ │ ├── fill_xs.svg
│ │ │ │ ├── outline.svg
│ │ │ │ └── outline_xs.svg
│ │ │ ├── form
│ │ │ │ ├── classic.svg
│ │ │ │ └── material.svg
│ │ │ ├── icon
│ │ │ │ ├── classic.svg
│ │ │ │ ├── fill.svg
│ │ │ │ └── outline.svg
│ │ │ ├── image
│ │ │ │ ├── blurb.svg
│ │ │ │ └── simple.svg
│ │ │ ├── infobox
│ │ │ │ ├── 1.svg
│ │ │ │ ├── 2.svg
│ │ │ │ ├── 3.svg
│ │ │ │ └── 4.svg
│ │ │ ├── list
│ │ │ │ ├── 1.svg
│ │ │ │ └── 2.svg
│ │ │ ├── map
│ │ │ │ ├── aqua-light.jpg
│ │ │ │ ├── greyscale.jpg
│ │ │ │ ├── inturlam.jpg
│ │ │ │ ├── lunar.jpg
│ │ │ │ ├── midnight.jpg
│ │ │ │ ├── multi-brand.jpg
│ │ │ │ ├── purple.jpg
│ │ │ │ ├── purple.png
│ │ │ │ ├── shadow-grey.jpg
│ │ │ │ ├── style-default.jpg
│ │ │ │ └── ultra-light.jpg
│ │ │ ├── pieprogress
│ │ │ │ ├── fill.svg
│ │ │ │ ├── outline-fill.svg
│ │ │ │ └── outline.svg
│ │ │ ├── postgrid
│ │ │ │ ├── 1.svg
│ │ │ │ ├── 11.svg
│ │ │ │ ├── 12.svg
│ │ │ │ ├── 13.svg
│ │ │ │ ├── 14.svg
│ │ │ │ ├── 15.svg
│ │ │ │ ├── 16.svg
│ │ │ │ ├── 2.svg
│ │ │ │ ├── 3.svg
│ │ │ │ ├── 4.svg
│ │ │ │ ├── 5.svg
│ │ │ │ ├── pro1.svg
│ │ │ │ ├── pro2.svg
│ │ │ │ └── pro3.svg
│ │ │ ├── pricing
│ │ │ │ ├── 1.svg
│ │ │ │ ├── 2.svg
│ │ │ │ ├── 3.svg
│ │ │ │ ├── 4.svg
│ │ │ │ ├── 5.svg
│ │ │ │ └── badges
│ │ │ │ │ ├── 1.svg
│ │ │ │ │ ├── 2.svg
│ │ │ │ │ ├── 3.svg
│ │ │ │ │ ├── 4.svg
│ │ │ │ │ ├── 5.svg
│ │ │ │ │ └── 6.svg
│ │ │ ├── socialicon
│ │ │ │ ├── fill.svg
│ │ │ │ └── normal.svg
│ │ │ ├── tab
│ │ │ │ ├── pills.svg
│ │ │ │ ├── tabs.svg
│ │ │ │ └── underline.svg
│ │ │ ├── team
│ │ │ │ ├── 1.svg
│ │ │ │ ├── 2.svg
│ │ │ │ └── 3.svg
│ │ │ ├── testimonial
│ │ │ │ ├── 1.svg
│ │ │ │ ├── 2.svg
│ │ │ │ ├── 3.svg
│ │ │ │ └── avatars
│ │ │ │ │ ├── 1.svg
│ │ │ │ │ ├── 2.svg
│ │ │ │ │ ├── 3.svg
│ │ │ │ │ └── 4.svg
│ │ │ └── videopopup
│ │ │ │ ├── classic.svg
│ │ │ │ └── fill.svg
│ │ ├── disable-pattern.png
│ │ ├── image-loader.gif
│ │ ├── options-logo.png
│ │ ├── qubely-logo-white.svg
│ │ ├── qubely-logo.svg
│ │ └── qubely-medium.jpg
│ ├── js
│ │ ├── blocks
│ │ │ ├── contactform.min.js
│ │ │ ├── image-comparison.min.js
│ │ │ └── map.min.js
│ │ ├── common-script.min.js
│ │ ├── interaction.min.js
│ │ ├── jquery.animatedheadline.min.js
│ │ ├── qubely.magnific-popup.min.js
│ │ └── qubely.min.js
│ └── shape
│ │ ├── clouds-flat.svg
│ │ ├── clouds-opacity.svg
│ │ ├── drip.svg
│ │ ├── hill-invert.svg
│ │ ├── hill-wave.svg
│ │ ├── hill.svg
│ │ ├── line-wave.svg
│ │ ├── paper-torn.svg
│ │ ├── pointy-wave.svg
│ │ ├── rocky-mountain.svg
│ │ ├── single-wave.svg
│ │ ├── slope-opacity.svg
│ │ ├── slope.svg
│ │ ├── swirl.svg
│ │ ├── turning-slope.svg
│ │ ├── waves3-opacity.svg
│ │ ├── wavy-opacity.svg
│ │ └── zigzag-shark.svg
│ ├── core
│ ├── Options.php
│ ├── QUBELY.php
│ ├── Template.php
│ ├── admin-views
│ │ ├── Fields.php
│ │ └── Settings.php
│ ├── blocks
│ │ └── postgrid.php
│ ├── initial-setup.php
│ ├── template-canvas.php
│ └── template-full-width.php
│ ├── index.php
│ ├── languages
│ └── qubely.pot
│ ├── qubely.php
│ ├── readme.txt
│ └── wpml-config.xml
├── core
├── Options.php
├── QUBELY.php
├── Template.php
├── admin-views
│ ├── Fields.php
│ └── Settings.php
├── blocks
│ └── postgrid.php
├── initial-setup.php
├── template-canvas.php
└── template-full-width.php
├── docs
├── fields
│ ├── alignment.md
│ └── background.md
├── hooks
│ ├── active-theme-preset.md
│ └── row-container-width.md
└── readme.md
├── gulpfile.js
├── index.php
├── languages
└── qubely.pot
├── package.json
├── qubely.php
├── readme.md
├── readme.txt
└── wpml-config.xml
/.github/workflows/build-and-deploy.yml:
--------------------------------------------------------------------------------
1 | name: Build and Deploy to SVN
2 | on:
3 | push:
4 | tags:
5 | - "*"
6 | jobs:
7 | build:
8 | runs-on: ubuntu-latest
9 | steps:
10 | - name: Checkout repository
11 | uses: actions/checkout@v4
12 |
13 | - name: Set up Node.js
14 | uses: actions/setup-node@v2
15 | with:
16 | node-version: '14.17.5'
17 |
18 | - name: Install dependencies
19 | run: npm install
20 |
21 | - name: Build Plugin
22 | run: npm run build
23 |
24 | - name: Extract version number
25 | id: get_version
26 | run: |
27 | version=$(grep -Po 'Version:\s*\K[\d.]+' qubely.php)
28 | echo "VERSION_NUMBER=$version" >> $GITHUB_ENV
29 |
30 | - name: WordPress Plugin Deploy
31 | id: deploy
32 | uses: 10up/action-wordpress-plugin-deploy@stable
33 | with:
34 | generate-zip: true
35 | env:
36 | SVN_USERNAME: ${{ secrets.SVN_USERNAME }}
37 | SVN_PASSWORD: ${{ secrets.SVN_PASSWORD }}
38 | BUILD_DIR: build/qubely
39 |
40 | - name: Create GitHub release
41 | uses: softprops/action-gh-release@v1
42 | with:
43 | files: ${{ github.event.repository.name }}-${{ env.VERSION_NUMBER }}.zip
44 | env:
45 | GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
46 |
--------------------------------------------------------------------------------
/.prettierrc:
--------------------------------------------------------------------------------
1 | {
2 | "tabWidth": 4,
3 | "useTabs": true,
4 | "printWidth": 120
5 | }
6 |
--------------------------------------------------------------------------------
/.vscode/settings.json:
--------------------------------------------------------------------------------
1 | {
2 | "emmet.includeLanguages": {
3 | "javascript": "javascriptreact"
4 | },
5 | "editor.defaultFormatter": "esbenp.prettier-vscode",
6 | "editor.formatOnType": true,
7 | "editor.formatOnSave": true,
8 | "editor.tabSize": 4,
9 | "prettier.singleQuote": true,
10 | "prettier.printWidth": 120,
11 | "emmet.triggerExpansionOnTab": true,
12 | "prettier.useTabs": true,
13 | "prettier.trailingComma": "all",
14 | "editor.codeActionsOnSave": {
15 | "source.fixAll.eslint": "explicit"
16 | },
17 | "[php]": {
18 | "editor.defaultFormatter": "bmewburn.vscode-intelephense-client"
19 | }
20 | }
21 |
--------------------------------------------------------------------------------
/assets/fonts/fa-brands-400.eot:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/themeum/qubely/ea7fa36554e568de09246c0eada381f63acf8d56/assets/fonts/fa-brands-400.eot
--------------------------------------------------------------------------------
/assets/fonts/fa-brands-400.ttf:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/themeum/qubely/ea7fa36554e568de09246c0eada381f63acf8d56/assets/fonts/fa-brands-400.ttf
--------------------------------------------------------------------------------
/assets/fonts/fa-brands-400.woff:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/themeum/qubely/ea7fa36554e568de09246c0eada381f63acf8d56/assets/fonts/fa-brands-400.woff
--------------------------------------------------------------------------------
/assets/fonts/fa-brands-400.woff2:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/themeum/qubely/ea7fa36554e568de09246c0eada381f63acf8d56/assets/fonts/fa-brands-400.woff2
--------------------------------------------------------------------------------
/assets/fonts/fa-regular-400.eot:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/themeum/qubely/ea7fa36554e568de09246c0eada381f63acf8d56/assets/fonts/fa-regular-400.eot
--------------------------------------------------------------------------------
/assets/fonts/fa-regular-400.ttf:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/themeum/qubely/ea7fa36554e568de09246c0eada381f63acf8d56/assets/fonts/fa-regular-400.ttf
--------------------------------------------------------------------------------
/assets/fonts/fa-regular-400.woff:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/themeum/qubely/ea7fa36554e568de09246c0eada381f63acf8d56/assets/fonts/fa-regular-400.woff
--------------------------------------------------------------------------------
/assets/fonts/fa-regular-400.woff2:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/themeum/qubely/ea7fa36554e568de09246c0eada381f63acf8d56/assets/fonts/fa-regular-400.woff2
--------------------------------------------------------------------------------
/assets/fonts/fa-solid-900.eot:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/themeum/qubely/ea7fa36554e568de09246c0eada381f63acf8d56/assets/fonts/fa-solid-900.eot
--------------------------------------------------------------------------------
/assets/fonts/fa-solid-900.ttf:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/themeum/qubely/ea7fa36554e568de09246c0eada381f63acf8d56/assets/fonts/fa-solid-900.ttf
--------------------------------------------------------------------------------
/assets/fonts/fa-solid-900.woff:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/themeum/qubely/ea7fa36554e568de09246c0eada381f63acf8d56/assets/fonts/fa-solid-900.woff
--------------------------------------------------------------------------------
/assets/fonts/fa-solid-900.woff2:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/themeum/qubely/ea7fa36554e568de09246c0eada381f63acf8d56/assets/fonts/fa-solid-900.woff2
--------------------------------------------------------------------------------
/assets/img/admin/cta-1.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/themeum/qubely/ea7fa36554e568de09246c0eada381f63acf8d56/assets/img/admin/cta-1.png
--------------------------------------------------------------------------------
/assets/img/admin/cta-2.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/themeum/qubely/ea7fa36554e568de09246c0eada381f63acf8d56/assets/img/admin/cta-2.png
--------------------------------------------------------------------------------
/assets/img/admin/pointer@1x.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/themeum/qubely/ea7fa36554e568de09246c0eada381f63acf8d56/assets/img/admin/pointer@1x.png
--------------------------------------------------------------------------------
/assets/img/admin/pointer@2x.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/themeum/qubely/ea7fa36554e568de09246c0eada381f63acf8d56/assets/img/admin/pointer@2x.png
--------------------------------------------------------------------------------
/assets/img/admin/thumbs-up@1x.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/themeum/qubely/ea7fa36554e568de09246c0eada381f63acf8d56/assets/img/admin/thumbs-up@1x.png
--------------------------------------------------------------------------------
/assets/img/admin/thumbs-up@2x.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/themeum/qubely/ea7fa36554e568de09246c0eada381f63acf8d56/assets/img/admin/thumbs-up@2x.png
--------------------------------------------------------------------------------
/assets/img/blocks/accordion/classic.svg:
--------------------------------------------------------------------------------
1 |
--------------------------------------------------------------------------------
/assets/img/blocks/accordion/fill.svg:
--------------------------------------------------------------------------------
1 |
--------------------------------------------------------------------------------
/assets/img/blocks/block-column.svg:
--------------------------------------------------------------------------------
1 |
--------------------------------------------------------------------------------
/assets/img/blocks/block-counter.svg:
--------------------------------------------------------------------------------
1 |
--------------------------------------------------------------------------------
/assets/img/blocks/block-divider.svg:
--------------------------------------------------------------------------------
1 |
--------------------------------------------------------------------------------
/assets/img/blocks/block-heading.svg:
--------------------------------------------------------------------------------
1 |
--------------------------------------------------------------------------------
/assets/img/blocks/block-info-box.svg:
--------------------------------------------------------------------------------
1 |
--------------------------------------------------------------------------------
/assets/img/blocks/block-row.svg:
--------------------------------------------------------------------------------
1 |
--------------------------------------------------------------------------------
/assets/img/blocks/block-team.svg:
--------------------------------------------------------------------------------
1 |
--------------------------------------------------------------------------------
/assets/img/blocks/block-wrapper.svg:
--------------------------------------------------------------------------------
1 |
--------------------------------------------------------------------------------
/assets/img/blocks/button/fill.svg:
--------------------------------------------------------------------------------
1 |
--------------------------------------------------------------------------------
/assets/img/blocks/button/fill_xs.svg:
--------------------------------------------------------------------------------
1 |
5 |
--------------------------------------------------------------------------------
/assets/img/blocks/button/outline.svg:
--------------------------------------------------------------------------------
1 |
--------------------------------------------------------------------------------
/assets/img/blocks/button/outline_xs.svg:
--------------------------------------------------------------------------------
1 |
5 |
--------------------------------------------------------------------------------
/assets/img/blocks/form/classic.svg:
--------------------------------------------------------------------------------
1 |
--------------------------------------------------------------------------------
/assets/img/blocks/form/material.svg:
--------------------------------------------------------------------------------
1 |
--------------------------------------------------------------------------------
/assets/img/blocks/icon/classic.svg:
--------------------------------------------------------------------------------
1 |
--------------------------------------------------------------------------------
/assets/img/blocks/icon/fill.svg:
--------------------------------------------------------------------------------
1 |
--------------------------------------------------------------------------------
/assets/img/blocks/icon/outline.svg:
--------------------------------------------------------------------------------
1 |
--------------------------------------------------------------------------------
/assets/img/blocks/image/blurb.svg:
--------------------------------------------------------------------------------
1 |
--------------------------------------------------------------------------------
/assets/img/blocks/image/simple.svg:
--------------------------------------------------------------------------------
1 |
--------------------------------------------------------------------------------
/assets/img/blocks/infobox/1.svg:
--------------------------------------------------------------------------------
1 |
--------------------------------------------------------------------------------
/assets/img/blocks/infobox/2.svg:
--------------------------------------------------------------------------------
1 |
--------------------------------------------------------------------------------
/assets/img/blocks/infobox/3.svg:
--------------------------------------------------------------------------------
1 |
--------------------------------------------------------------------------------
/assets/img/blocks/infobox/4.svg:
--------------------------------------------------------------------------------
1 |
--------------------------------------------------------------------------------
/assets/img/blocks/list/1.svg:
--------------------------------------------------------------------------------
1 |
--------------------------------------------------------------------------------
/assets/img/blocks/list/2.svg:
--------------------------------------------------------------------------------
1 |
--------------------------------------------------------------------------------
/assets/img/blocks/map/aqua-light.jpg:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/themeum/qubely/ea7fa36554e568de09246c0eada381f63acf8d56/assets/img/blocks/map/aqua-light.jpg
--------------------------------------------------------------------------------
/assets/img/blocks/map/greyscale.jpg:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/themeum/qubely/ea7fa36554e568de09246c0eada381f63acf8d56/assets/img/blocks/map/greyscale.jpg
--------------------------------------------------------------------------------
/assets/img/blocks/map/inturlam.jpg:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/themeum/qubely/ea7fa36554e568de09246c0eada381f63acf8d56/assets/img/blocks/map/inturlam.jpg
--------------------------------------------------------------------------------
/assets/img/blocks/map/lunar.jpg:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/themeum/qubely/ea7fa36554e568de09246c0eada381f63acf8d56/assets/img/blocks/map/lunar.jpg
--------------------------------------------------------------------------------
/assets/img/blocks/map/midnight.jpg:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/themeum/qubely/ea7fa36554e568de09246c0eada381f63acf8d56/assets/img/blocks/map/midnight.jpg
--------------------------------------------------------------------------------
/assets/img/blocks/map/multi-brand.jpg:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/themeum/qubely/ea7fa36554e568de09246c0eada381f63acf8d56/assets/img/blocks/map/multi-brand.jpg
--------------------------------------------------------------------------------
/assets/img/blocks/map/purple.jpg:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/themeum/qubely/ea7fa36554e568de09246c0eada381f63acf8d56/assets/img/blocks/map/purple.jpg
--------------------------------------------------------------------------------
/assets/img/blocks/map/purple.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/themeum/qubely/ea7fa36554e568de09246c0eada381f63acf8d56/assets/img/blocks/map/purple.png
--------------------------------------------------------------------------------
/assets/img/blocks/map/shadow-grey.jpg:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/themeum/qubely/ea7fa36554e568de09246c0eada381f63acf8d56/assets/img/blocks/map/shadow-grey.jpg
--------------------------------------------------------------------------------
/assets/img/blocks/map/style-default.jpg:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/themeum/qubely/ea7fa36554e568de09246c0eada381f63acf8d56/assets/img/blocks/map/style-default.jpg
--------------------------------------------------------------------------------
/assets/img/blocks/map/ultra-light.jpg:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/themeum/qubely/ea7fa36554e568de09246c0eada381f63acf8d56/assets/img/blocks/map/ultra-light.jpg
--------------------------------------------------------------------------------
/assets/img/blocks/pieprogress/fill.svg:
--------------------------------------------------------------------------------
1 |
--------------------------------------------------------------------------------
/assets/img/blocks/pieprogress/outline-fill.svg:
--------------------------------------------------------------------------------
1 |
--------------------------------------------------------------------------------
/assets/img/blocks/pieprogress/outline.svg:
--------------------------------------------------------------------------------
1 |
--------------------------------------------------------------------------------
/assets/img/blocks/postgrid/1.svg:
--------------------------------------------------------------------------------
1 |
--------------------------------------------------------------------------------
/assets/img/blocks/postgrid/11.svg:
--------------------------------------------------------------------------------
1 |
--------------------------------------------------------------------------------
/assets/img/blocks/postgrid/12.svg:
--------------------------------------------------------------------------------
1 |
--------------------------------------------------------------------------------
/assets/img/blocks/postgrid/13.svg:
--------------------------------------------------------------------------------
1 |
--------------------------------------------------------------------------------
/assets/img/blocks/postgrid/14.svg:
--------------------------------------------------------------------------------
1 |
--------------------------------------------------------------------------------
/assets/img/blocks/postgrid/15.svg:
--------------------------------------------------------------------------------
1 |
--------------------------------------------------------------------------------
/assets/img/blocks/postgrid/16.svg:
--------------------------------------------------------------------------------
1 |
--------------------------------------------------------------------------------
/assets/img/blocks/postgrid/2.svg:
--------------------------------------------------------------------------------
1 |
--------------------------------------------------------------------------------
/assets/img/blocks/postgrid/3.svg:
--------------------------------------------------------------------------------
1 |
--------------------------------------------------------------------------------
/assets/img/blocks/postgrid/4.svg:
--------------------------------------------------------------------------------
1 |
--------------------------------------------------------------------------------
/assets/img/blocks/postgrid/5.svg:
--------------------------------------------------------------------------------
1 |
--------------------------------------------------------------------------------
/assets/img/blocks/postgrid/pro1.svg:
--------------------------------------------------------------------------------
1 |
--------------------------------------------------------------------------------
/assets/img/blocks/postgrid/pro2.svg:
--------------------------------------------------------------------------------
1 |
--------------------------------------------------------------------------------
/assets/img/blocks/pricing/1.svg:
--------------------------------------------------------------------------------
1 |
--------------------------------------------------------------------------------
/assets/img/blocks/pricing/2.svg:
--------------------------------------------------------------------------------
1 |
--------------------------------------------------------------------------------
/assets/img/blocks/pricing/3.svg:
--------------------------------------------------------------------------------
1 |
--------------------------------------------------------------------------------
/assets/img/blocks/pricing/4.svg:
--------------------------------------------------------------------------------
1 |
--------------------------------------------------------------------------------
/assets/img/blocks/pricing/5.svg:
--------------------------------------------------------------------------------
1 |
--------------------------------------------------------------------------------
/assets/img/blocks/pricing/badges/1.svg:
--------------------------------------------------------------------------------
1 |
--------------------------------------------------------------------------------
/assets/img/blocks/pricing/badges/2.svg:
--------------------------------------------------------------------------------
1 |
--------------------------------------------------------------------------------
/assets/img/blocks/pricing/badges/3.svg:
--------------------------------------------------------------------------------
1 |
--------------------------------------------------------------------------------
/assets/img/blocks/pricing/badges/4.svg:
--------------------------------------------------------------------------------
1 |
--------------------------------------------------------------------------------
/assets/img/blocks/pricing/badges/5.svg:
--------------------------------------------------------------------------------
1 |
--------------------------------------------------------------------------------
/assets/img/blocks/pricing/badges/6.svg:
--------------------------------------------------------------------------------
1 |
--------------------------------------------------------------------------------
/assets/img/blocks/tab/pills.svg:
--------------------------------------------------------------------------------
1 |
--------------------------------------------------------------------------------
/assets/img/blocks/tab/tabs.svg:
--------------------------------------------------------------------------------
1 |
--------------------------------------------------------------------------------
/assets/img/blocks/tab/underline.svg:
--------------------------------------------------------------------------------
1 |
--------------------------------------------------------------------------------
/assets/img/blocks/team/1.svg:
--------------------------------------------------------------------------------
1 |
--------------------------------------------------------------------------------
/assets/img/blocks/team/2.svg:
--------------------------------------------------------------------------------
1 |
--------------------------------------------------------------------------------
/assets/img/blocks/team/3.svg:
--------------------------------------------------------------------------------
1 |
--------------------------------------------------------------------------------
/assets/img/blocks/testimonial/avatars/1.svg:
--------------------------------------------------------------------------------
1 |
--------------------------------------------------------------------------------
/assets/img/blocks/testimonial/avatars/2.svg:
--------------------------------------------------------------------------------
1 |
--------------------------------------------------------------------------------
/assets/img/blocks/testimonial/avatars/3.svg:
--------------------------------------------------------------------------------
1 |
--------------------------------------------------------------------------------
/assets/img/blocks/testimonial/avatars/4.svg:
--------------------------------------------------------------------------------
1 |
--------------------------------------------------------------------------------
/assets/img/blocks/videopopup/classic.svg:
--------------------------------------------------------------------------------
1 |
--------------------------------------------------------------------------------
/assets/img/blocks/videopopup/fill.svg:
--------------------------------------------------------------------------------
1 |
--------------------------------------------------------------------------------
/assets/img/disable-pattern.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/themeum/qubely/ea7fa36554e568de09246c0eada381f63acf8d56/assets/img/disable-pattern.png
--------------------------------------------------------------------------------
/assets/img/image-loader.gif:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/themeum/qubely/ea7fa36554e568de09246c0eada381f63acf8d56/assets/img/image-loader.gif
--------------------------------------------------------------------------------
/assets/img/options-logo.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/themeum/qubely/ea7fa36554e568de09246c0eada381f63acf8d56/assets/img/options-logo.png
--------------------------------------------------------------------------------
/assets/img/qubely-logo-white.svg:
--------------------------------------------------------------------------------
1 |
--------------------------------------------------------------------------------
/assets/img/qubely-medium.jpg:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/themeum/qubely/ea7fa36554e568de09246c0eada381f63acf8d56/assets/img/qubely-medium.jpg
--------------------------------------------------------------------------------
/assets/reactjs/.babelrc:
--------------------------------------------------------------------------------
1 | {
2 | "presets": [
3 | [
4 | "es2015",
5 | {
6 | "modules": false
7 | }
8 | ],
9 | "react",
10 | "stage-2"
11 | ],
12 | "plugins": [
13 | "syntax-dynamic-import",
14 | "transform-decorators-legacy",
15 | "transform-object-rest-spread",
16 | ["transform-runtime", {
17 | "helpers": false,
18 | "polyfill": false,
19 | "regenerator": true
20 | }]
21 | ],
22 | "env": {
23 | "test": {
24 | "plugins": [
25 | "transform-decorators-legacy",
26 | "transform-object-rest-spread",
27 | "istanbul"
28 | ]
29 | }
30 | }
31 | }
32 |
--------------------------------------------------------------------------------
/assets/reactjs/.eslintrc:
--------------------------------------------------------------------------------
1 | {
2 | "ecmaFeatures": {
3 | "jsx": true,
4 | "modules": true
5 | },
6 | "env": {
7 | "browser": true,
8 | "node": true
9 | },
10 | "parser": "babel-eslint",
11 | "rules": {
12 | "quotes": [
13 | 2,
14 | "single"
15 | ],
16 | "strict": [
17 | 2,
18 | "never"
19 | ],
20 | "react/jsx-uses-react": 2,
21 | "react/jsx-uses-vars": 2,
22 | "react/react-in-jsx-scope": 2
23 | },
24 | "plugins": [
25 | "react"
26 | ]
27 | }
--------------------------------------------------------------------------------
/assets/reactjs/.npmrc:
--------------------------------------------------------------------------------
1 | engine-strict=true
--------------------------------------------------------------------------------
/assets/reactjs/gulpfile.js:
--------------------------------------------------------------------------------
1 | const gulp = require("gulp");
2 | const sass = require("gulp-sass");
3 | const concat = require("gulp-concat");
4 | const minifyCSS = require("gulp-minify-css");
5 | const autoprefixer = require("gulp-autoprefixer");
6 |
7 | gulp.task("sass", function () {
8 | return gulp
9 | .src(["./src/blocks/**/style.scss", "./src/blocks/scss/style.scss"])
10 | .pipe(sass())
11 | .pipe(
12 | autoprefixer({
13 | overrideBrowserslist: ["last 2 versions"],
14 | cascade: false,
15 | })
16 | )
17 | .pipe(minifyCSS())
18 | .pipe(concat("style.min.css"))
19 | .pipe(gulp.dest("../css"));
20 | });
21 |
22 | gulp.task("watch", function () {
23 | gulp.watch("src/blocks/**/*.scss", gulp.series("sass"));
24 | });
25 |
--------------------------------------------------------------------------------
/assets/reactjs/src/blocks/accordion/Save.js:
--------------------------------------------------------------------------------
1 | const { Component } = wp.element;
2 | const { InnerBlocks } = wp.blockEditor;
3 | const {
4 | HelperFunction: { animationAttr, IsInteraction },
5 | } = wp.qubelyComponents;
6 | class Save extends Component {
7 | render() {
8 | const { animation, uniqueId, itemToggle, interaction } = this.props.attributes;
9 | const interactionClass = IsInteraction(interaction) ? "qubley-block-interaction" : "";
10 | const className = `qubely-block-accordion ${interactionClass} qubely-block-${uniqueId}`;
11 | return (
12 |
13 |
14 |
15 | );
16 | }
17 | }
18 | export default Save;
19 |
--------------------------------------------------------------------------------
/assets/reactjs/src/blocks/accordion/index.js:
--------------------------------------------------------------------------------
1 | import "./style.scss";
2 | import Edit from "./Edit";
3 | import Save from "./Save";
4 | const { __ } = wp.i18n;
5 | const { registerBlockType } = wp.blocks;
6 | const {
7 | gloalSettings: { globalAttributes },
8 | } = wp.qubelyComponents;
9 |
10 | registerBlockType("qubely/accordion", {
11 | title: __("Accordion"),
12 | description: "Display creative collapsible texts with Qubely Accordion.",
13 | category: "qubely",
14 | icon:
,
15 | keywords: [__("accordion"), __("collapsible"), __("collapse")],
16 | supports: {
17 | html: false,
18 | className: false,
19 | align: ["center", "wide", "full"],
20 | },
21 | example: {
22 | attributes: {},
23 | innerBlocks: [
24 | {
25 | name: "qubely/accordion-item",
26 | innerBlocks: [
27 | {
28 | name: "qubely/heading",
29 | attributes: {
30 | content: "Qubely - A Full-fledged Gutenberg Builder",
31 | alignment: { md: "center" },
32 | },
33 | },
34 | ],
35 | },
36 | ],
37 | },
38 | attributes: {
39 | uniqueId: { type: "string", default: "" },
40 | defaultItems: { type: "number", default: 2 },
41 | itemToggle: { type: "boolean", default: true },
42 | ...globalAttributes,
43 | },
44 |
45 | edit: Edit,
46 | save: Save,
47 | });
48 |
--------------------------------------------------------------------------------
/assets/reactjs/src/blocks/advancedlist/Save.js:
--------------------------------------------------------------------------------
1 | const { Component } = wp.element;
2 | const {
3 | HelperFunction: { animationAttr, IsInteraction },
4 | } = wp.qubelyComponents;
5 |
6 | class Save extends Component {
7 | renderListItems = () => {
8 | const {
9 | attributes: { listItems },
10 | } = this.props;
11 |
12 | return listItems.map((item, i) => {item});
13 | };
14 | render() {
15 | const {
16 | attributes: { uniqueId, alignment, bulletStyle, listType, animation, interaction },
17 | } = this.props;
18 | const interactionClass = IsInteraction(interaction) ? "qubley-block-interaction" : "";
19 | const ListTag = listType == "ordered" ? "ol" : "ul";
20 | return (
21 |
22 |
23 |
26 | {this.renderListItems()}
27 |
28 |
29 |
30 | );
31 | }
32 | }
33 |
34 | export default Save;
35 |
--------------------------------------------------------------------------------
/assets/reactjs/src/blocks/advancedlist/index.js:
--------------------------------------------------------------------------------
1 | import "./style.scss";
2 | import Edit from "./Edit";
3 | import Save from "./Save";
4 | import attributes from "./attributes";
5 | const { __ } = wp.i18n;
6 | const { registerBlockType } = wp.blocks;
7 |
8 | registerBlockType("qubely/advancedlist", {
9 | title: __("Advanced List"),
10 | description: __("Include stylish lists to display in your site with Qubely Advanced List."),
11 | category: "qubely",
12 | icon: (
13 |
18 | ),
19 | keywords: [
20 | __("Advanced", "qubely"),
21 | __("list", "qubely"),
22 | __("advanced list", "qubely"),
23 | __("Advanced List", "qubely"),
24 | ],
25 | supports: {
26 | align: ["center", "wide", "full"],
27 | },
28 | example: {
29 | attributes: {
30 | background: "#fff",
31 | },
32 | },
33 | attributes,
34 | edit: Edit,
35 | save: Save,
36 | });
37 |
--------------------------------------------------------------------------------
/assets/reactjs/src/blocks/animatedheadline/index.js:
--------------------------------------------------------------------------------
1 | import "./style.scss";
2 | import Edit from "./Edit";
3 | import Save from "./Save";
4 | import { attributes } from "./attributes";
5 |
6 | const { registerBlockType } = wp.blocks;
7 | const { __ } = wp.i18n;
8 |
9 | registerBlockType("qubely/animatedheadline", {
10 | title: __("Animated Headline"),
11 | description: "Grab the attention of your users with animating texts in headlines",
12 | category: "qubely",
13 | icon: (
14 |
15 | ),
16 | keywords: [__("headline"), __("animated"), __("heading"), __("title")],
17 | example: {
18 | attributes: {},
19 | },
20 | attributes,
21 | edit: Edit,
22 | save: Save,
23 | });
24 |
--------------------------------------------------------------------------------
/assets/reactjs/src/blocks/animatedheadline/style.scss:
--------------------------------------------------------------------------------
1 | .qubely-block-animated-heading {
2 | .animated-heading-text {
3 | &.has-text-align-left {
4 | justify-content: flex-start;
5 | }
6 | &.has-text-align-right {
7 | justify-content: flex-end;
8 | }
9 | &.has-text-align-center {
10 | justify-content: center;
11 | }
12 | &::before {
13 | display: none;
14 | }
15 | .qubely-animated-text {
16 | padding-left: 5px;
17 | padding-right: 5px;
18 | line-height: inherit;
19 | }
20 | }
21 | &.qubely-block-animated-heading-backend .animated-heading-text {
22 | display: flex;
23 | flex-wrap: wrap;
24 | align-items: center;
25 | }
26 | }
27 |
--------------------------------------------------------------------------------
/assets/reactjs/src/blocks/button/index.js:
--------------------------------------------------------------------------------
1 | import "./style.scss";
2 | import Edit from "./Edit";
3 | import Save from "./Save";
4 | import attributes from "./attributes";
5 |
6 | const { __ } = wp.i18n;
7 | const { registerBlockType } = wp.blocks;
8 |
9 | registerBlockType("qubely/button", {
10 | title: __("Button"),
11 | description: __("Create stylish call-to-action buttons with Qubely Buttons."),
12 | category: "qubely",
13 | icon:
,
14 | supports: {
15 | align: ["full", "wide", "center"],
16 | },
17 | keywords: [__("link"), __("button")],
18 | example: {
19 | attributes: {},
20 | },
21 | attributes,
22 | // getEditWrapperProps(attributes) {
23 | // if (attributes.customClassName != "") {
24 | // return {
25 | // className: `wp-block block-editor-block-list__block ${attributes.customClassName}`,
26 | // };
27 | // }
28 | // },
29 | edit: Edit,
30 | save: Save,
31 | });
32 |
--------------------------------------------------------------------------------
/assets/reactjs/src/blocks/buttongroup/Save.js:
--------------------------------------------------------------------------------
1 | const { Component } = wp.element;
2 | const { InnerBlocks } = wp.blockEditor;
3 | const {
4 | HelperFunction: { IsInteraction, animationAttr },
5 | } = wp.qubelyComponents;
6 |
7 | class Save extends Component {
8 | render() {
9 | const { uniqueId, interaction, animation } = this.props.attributes;
10 | const interactionClass = IsInteraction(interaction) ? "qubley-block-interaction" : "";
11 | return (
12 |
17 | );
18 | }
19 | }
20 | export default Save;
21 |
--------------------------------------------------------------------------------
/assets/reactjs/src/blocks/buttongroup/attributes.js:
--------------------------------------------------------------------------------
1 | const {
2 | gloalSettings: { globalAttributes },
3 | HelperFunction: { IsInteraction },
4 | } = wp.qubelyComponents;
5 |
6 | const attributes = {
7 | uniqueId: { type: "string", default: "" },
8 | ...globalAttributes,
9 | buttons: { type: "number", default: 2 },
10 | alignment: {
11 | type: "object",
12 | default: { md: "flex-start" },
13 | style: [{ selector: "{{QUBELY}} .qubely-block-button-group {justify-content: {{alignment}}; }" }],
14 | },
15 | spacing: {
16 | type: "object",
17 | default: {
18 | unit: "px",
19 | md: "10",
20 | },
21 | style: [
22 | {
23 | selector:
24 | '{{QUBELY}} .qubely-block-button-group {margin-right: -{{spacing}};} {{QUBELY}} .qubely-block-button-group.qubely-backend .block-editor-block-list__layout > div[data-type="qubely/button"]:not(:nth-last-child(2)), {{QUBELY}} .qubely-block-button-group .wp-block-qubely-button:not(:last-child){margin-right: {{spacing}};}',
25 | },
26 | ],
27 | },
28 | };
29 | export default attributes;
30 |
--------------------------------------------------------------------------------
/assets/reactjs/src/blocks/buttongroup/style.scss:
--------------------------------------------------------------------------------
1 | .qubely-block-button-group {
2 | display: flex;
3 | flex-wrap: wrap;
4 | .block-editor-inner-blocks {
5 | width: auto !important;
6 | .block-editor-block-list__layout {
7 | display: block;
8 | width: fit-content;
9 | > div {
10 | display: inline-block;
11 | width: auto;
12 | .qubely-block-btn {
13 | margin: 4px;
14 | }
15 | &:last-child {
16 | margin: 10px;
17 | }
18 | }
19 | .block-list-appender {
20 | display: inline-block !important;
21 | }
22 | }
23 | }
24 | .qubely-add-new {
25 | display: flex;
26 | align-items: center;
27 | justify-content: center;
28 | width: fit-content;
29 | z-index: 100;
30 | }
31 | }
32 |
--------------------------------------------------------------------------------
/assets/reactjs/src/blocks/counter/Save.js:
--------------------------------------------------------------------------------
1 | const { Component, Fragment } = wp.element;
2 | const {
3 | HelperFunction: { animationAttr, IsInteraction },
4 | } = wp.qubelyComponents;
5 | class Save extends Component {
6 | render() {
7 | const { uniqueId, counterLimit, counterDuration, postfix, prefix, animation, interaction } =
8 | this.props.attributes;
9 | const interactionClass = IsInteraction(interaction) ? "qubley-block-interaction" : "";
10 | return (
11 |
12 |
13 |
14 | {counterLimit > 0 && (
15 |
16 | {prefix && {prefix}}
17 |
23 | {0}
24 |
25 | {postfix && {postfix}}
26 |
27 | )}
28 |
29 |
30 |
31 | );
32 | }
33 | }
34 | export default Save;
35 |
--------------------------------------------------------------------------------
/assets/reactjs/src/blocks/divider/Save.js:
--------------------------------------------------------------------------------
1 | import icons from "../divider/icon";
2 | const { Component } = wp.element;
3 | const {
4 | HelperFunction: { animationAttr, IsInteraction },
5 | } = wp.qubelyComponents;
6 |
7 | class Save extends Component {
8 | render() {
9 | const { uniqueId, style, animation, interaction } = this.props.attributes;
10 | const interactionClass = IsInteraction(interaction) ? "qubley-block-interaction" : "";
11 | return (
12 |
13 |
14 | {style == "fill" || style == "dot" || style == "dash" ? (
15 |
16 | ) : (
17 | icons[style]
18 | )}
19 |
20 |
21 | );
22 | }
23 | }
24 | export default Save;
25 |
--------------------------------------------------------------------------------
/assets/reactjs/src/blocks/divider/style.scss:
--------------------------------------------------------------------------------
1 | .qubely-block-divider {
2 | display: inline-block;
3 | .qubely-block-divider-style-fill {
4 | border-top-style: solid;
5 | }
6 | .qubely-block-divider-style-dot {
7 | border-top-style: dotted;
8 | }
9 | .qubely-block-divider-style-dash {
10 | border-top-style: dashed;
11 | }
12 | > div {
13 | margin: 0 auto;
14 | display: inline-block;
15 | }
16 | .divider-options-trigger {
17 | display: block;
18 | width: 100%;
19 | margin: 0px;
20 | padding: 0px;
21 | color: inherit;
22 | background: none;
23 | box-shadow: none;
24 | border: none;
25 | outline: none;
26 | cursor: pointer;
27 | font: inherit;
28 | &:focus {
29 | outline: none !important;
30 | }
31 | }
32 | }
33 | .qubely-divider-picker-options {
34 | max-height: 300px;
35 | }
36 |
37 | .qubely-divider-picker-option:hover {
38 | background: #e8eaeb;
39 | border-radius: 5px;
40 | }
41 | .qubely-divider-picker.backend {
42 | display: inline-block;
43 | }
44 | .components-panel__body {
45 | .qubely-divider-picker {
46 | width: 100%;
47 | button {
48 | cursor: pointer;
49 | color: inherit;
50 | }
51 | }
52 | }
53 |
54 | .qubely-divider-picker-content .components-popover__content > div {
55 | width: 250px;
56 | }
57 |
--------------------------------------------------------------------------------
/assets/reactjs/src/blocks/heading/style.scss:
--------------------------------------------------------------------------------
1 | .qubely-block-heading {
2 | transition: color 200ms ease-in-out, background-color 200ms ease-in-out, border-color 200ms ease-in-out,
3 | box-shadow 200ms ease-in-out;
4 | position: relative;
5 | h1,
6 | h2,
7 | h3,
8 | h4,
9 | h5,
10 | h6 {
11 | padding: 0;
12 | margin: 0;
13 | line-height: 1;
14 | position: relative;
15 | &::before,
16 | &::after {
17 | display: none !important;
18 | }
19 | }
20 |
21 | .qubely-text-has-bgcolor {
22 | padding-left: 10px;
23 | padding-right: 10px;
24 | }
25 |
26 | .qubely-separator {
27 | font-size: 0;
28 | .qubely-separator-type-css,
29 | .qubely-separator-type-svg {
30 | display: inline-block;
31 | }
32 | }
33 |
34 | &.qubely-separator-position-left,
35 | &.qubely-separator-position-right,
36 | &.qubely-separator-position-leftright {
37 | .qubely-heading-container {
38 | display: inline-flex;
39 | align-items: center;
40 |
41 | .qubely-heading-selector,
42 | .qubely-separator {
43 | display: inline-flex;
44 | }
45 | }
46 | }
47 | }
48 |
--------------------------------------------------------------------------------
/assets/reactjs/src/blocks/icon/Save.js:
--------------------------------------------------------------------------------
1 | const { Component } = wp.element;
2 | const {
3 | HelperFunction: { animationAttr, IsInteraction },
4 | } = wp.qubelyComponents;
5 |
6 | class Save extends Component {
7 | render() {
8 | const { uniqueId, name, qubelyIconUrl:url, animation, interaction } = this.props.attributes;
9 |
10 | const interactionClass = IsInteraction(interaction) ? "qubley-block-interaction" : "";
11 | return (
12 |
13 |
14 |
15 | {url.url ? (
16 |
22 |
23 |
24 | ) : (
25 |
26 | )}
27 |
28 |
29 |
30 | );
31 | }
32 | }
33 | export default Save;
34 |
--------------------------------------------------------------------------------
/assets/reactjs/src/blocks/icon/style.scss:
--------------------------------------------------------------------------------
1 | .qubely-block-icon-wrapper {
2 | .qubely-block-icon {
3 | display: inline-block;
4 | line-height: 1;
5 | font-size: 36px;
6 | text-align: center;
7 | transition: color 400ms, border-color 400ms, background-color 400ms, box-shadow 400ms;
8 | i {
9 | font-style: normal;
10 | width: 1em;
11 | height: 1em;
12 | position: relative;
13 | display: block;
14 | transition: 400ms;
15 | &:before {
16 | position: absolute;
17 | left: 50%;
18 | transform: translateX(-50%);
19 | }
20 | }
21 | .qubely-icon-block-anchor {
22 | text-decoration: none !important;
23 | a {
24 | text-decoration: none !important;
25 | }
26 | }
27 | }
28 | }
29 |
--------------------------------------------------------------------------------
/assets/reactjs/src/blocks/iconlist/Save.js:
--------------------------------------------------------------------------------
1 | const { Component } = wp.element;
2 | const { RichText } = wp.blockEditor;
3 | const {
4 | HelperFunction: { IsInteraction, animationAttr },
5 | } = wp.qubelyComponents;
6 |
7 | class Save extends Component {
8 | renderListItems = () => {
9 | const {
10 | attributes: { listItems, iconPosition },
11 | } = this.props;
12 | return listItems.map((item, index) => {
13 | return (
14 |
15 | {iconPosition == "left" && }
16 |
17 | {iconPosition == "right" && }
18 |
19 | );
20 | });
21 | };
22 |
23 | render() {
24 | const {
25 | attributes: { uniqueId, interaction, animation },
26 | } = this.props;
27 | const interactionClass = IsInteraction(interaction) ? "qubley-block-interaction" : "";
28 | return (
29 |
34 | );
35 | }
36 | }
37 |
38 | export default Save;
39 |
--------------------------------------------------------------------------------
/assets/reactjs/src/blocks/image-comparison/index.js:
--------------------------------------------------------------------------------
1 | import "./style.scss";
2 | import Edit from "./Edit";
3 | import Save from "./Save";
4 | import { attributes } from "./attributes";
5 | const { __ } = wp.i18n;
6 | const { registerBlockType } = wp.blocks;
7 |
8 | registerBlockType("qubely/imagecomparison", {
9 | title: __("Image Comparison"),
10 | description: __("Compare Images with Qubely"),
11 | category: "qubely",
12 | icon: (
13 |
14 | ),
15 | keywords: [__("image"), __("image comparison"), __("comparison")],
16 | supports: {
17 | align: ["center", "wide", "full"],
18 | },
19 | example: {
20 | attributes: {},
21 | },
22 | attributes,
23 | edit: Edit,
24 | save: Save,
25 | });
26 |
--------------------------------------------------------------------------------
/assets/reactjs/src/blocks/infobox/index.js:
--------------------------------------------------------------------------------
1 | import "./style.scss";
2 | import Edit from "./Edit";
3 | import Save from "./Save";
4 | import attributes from "./attributes";
5 | const { __ } = wp.i18n;
6 | const { registerBlockType } = wp.blocks;
7 |
8 | registerBlockType("qubely/infobox", {
9 | title: __("Info Box", "qubely"),
10 | description: "Be creatively informative with Qubely Info Box.",
11 | icon:
,
12 | category: "qubely",
13 | supports: {
14 | align: ["center", "wide", "full"],
15 | },
16 | keywords: [__("service", "qubely"), __("feature", "qubely"), __("info", "qubely")],
17 | example: {
18 | attributes: {},
19 | },
20 | attributes,
21 | edit: Edit,
22 | save: Save,
23 | });
24 |
--------------------------------------------------------------------------------
/assets/reactjs/src/blocks/postgrid/index.js:
--------------------------------------------------------------------------------
1 | import "./style.scss";
2 | import Edit from "./Edit";
3 | const { __ } = wp.i18n;
4 | const { registerBlockType } = wp.blocks;
5 |
6 | if (!qubely_admin.pro_enable) {
7 | registerBlockType("qubely/postgrid", {
8 | title: __("Post Grid"),
9 | description: "Fetch blog posts and display them beautifully in grid or list views with Qubely Postgrid Block.",
10 | icon:
,
11 | category: "qubely",
12 | supports: {
13 | align: ["center", "wide", "full"],
14 | },
15 | keywords: [__("Post"), __("Post Grid"), __("Grid")],
16 | example: {
17 | attributes: {
18 | layout: 2,
19 | column: {
20 | md: 1,
21 | },
22 | showExcerpt: false,
23 | postsToShow: 1,
24 | },
25 | },
26 | edit: Edit,
27 | save: function (props) {
28 | return null;
29 | },
30 | });
31 | }
32 |
--------------------------------------------------------------------------------
/assets/reactjs/src/blocks/progressbar/save.js:
--------------------------------------------------------------------------------
1 | const { Component } = wp.element;
2 | const {
3 | HelperFunction: { animationAttr, IsInteraction },
4 | } = wp.qubelyComponents;
5 | class Save extends Component {
6 | render() {
7 | const { uniqueId, animation, title, labelPosition, striped, progress, showProgress, interaction } =
8 | this.props.attributes;
9 | const interactionClass = IsInteraction(interaction) ? "qubley-block-interaction" : "";
10 | const labelsContent =
11 | title != "" ? (
12 |
13 |
{title}
14 | {showProgress && (
15 |
16 | {progress}%
17 |
18 | )}
19 |
20 | ) : (
21 | ""
22 | );
23 | return (
24 |
25 |
26 | {labelPosition == "outside" && labelsContent}
27 |
28 |
29 | {striped &&
}
30 | {labelPosition == "inside" && labelsContent}
31 |
32 |
33 |
34 |
35 | );
36 | }
37 | }
38 |
39 | export default Save;
40 |
--------------------------------------------------------------------------------
/assets/reactjs/src/blocks/progressbar/style.scss:
--------------------------------------------------------------------------------
1 | .qubely-block-progress-bar {
2 | .qubely-block-progress-labels {
3 | display: -ms-flexbox;
4 | display: flex;
5 | justify-content: space-between;
6 | }
7 |
8 | .qubely-progress {
9 | .qubely-progress-bar {
10 | position: relative;
11 | transition: 300ms;
12 | height: 100%;
13 | overflow: hidden;
14 | .qubely-progress-striped {
15 | height: 100%;
16 | width: 100%;
17 | background-image: linear-gradient(
18 | 45deg,
19 | rgba(255, 255, 255, 0.15) 25%,
20 | transparent 25%,
21 | transparent 50%,
22 | rgba(255, 255, 255, 0.15) 50%,
23 | rgba(255, 255, 255, 0.15) 75%,
24 | transparent 75%,
25 | transparent
26 | );
27 | background-size: 40px 40px;
28 | transition: 300ms;
29 | }
30 | }
31 |
32 | .qubely-block-progress-labels {
33 | position: absolute;
34 | top: 0;
35 | left: 0;
36 | right: 0;
37 | bottom: 0;
38 | padding: 0 10px;
39 | }
40 | }
41 | }
42 |
--------------------------------------------------------------------------------
/assets/reactjs/src/blocks/row/column/Save.js:
--------------------------------------------------------------------------------
1 | const { Component } = wp.element;
2 | const { InnerBlocks } = wp.blockEditor;
3 | const {
4 | HelperFunction: { animationAttr },
5 | } = wp.qubelyComponents;
6 |
7 | class Save extends Component {
8 | render() {
9 | const {
10 | attributes: { uniqueId, animation },
11 | } = this.props;
12 | return (
13 |
18 | );
19 | }
20 | }
21 | export default Save;
22 |
--------------------------------------------------------------------------------
/assets/reactjs/src/blocks/socialicons/Save.js:
--------------------------------------------------------------------------------
1 | const { Component } = wp.element;
2 | const {
3 | HelperFunction: { animationAttr, IsInteraction },
4 | } = wp.qubelyComponents;
5 | class Save extends Component {
6 | render() {
7 | const { uniqueId, socialIcons, iconLabel, layout, useDefaultStyle, animation, interaction } =
8 | this.props.attributes;
9 | const interactionClass = IsInteraction(interaction) ? "qubley-block-interaction" : "";
10 | return (
11 |
35 | );
36 | }
37 | }
38 | export default Save;
39 |
--------------------------------------------------------------------------------
/assets/reactjs/src/blocks/table-of-contents/index.js:
--------------------------------------------------------------------------------
1 | import "./style.scss";
2 | import Edit from "./Edit";
3 | import Save from "./Save";
4 | import attributes from "./attributes";
5 | const { __ } = wp.i18n;
6 | const { registerBlockType } = wp.blocks;
7 |
8 | registerBlockType("qubely/table-of-contents", {
9 | title: __("Table of Contents"),
10 | description: "Organize page/post contents with Qubely Table of Contents",
11 | icon:
,
12 | category: "qubely",
13 | supports: {},
14 | keywords: [__("Table of Contents"), __("Table"), __("Contents"), __("Qubely")],
15 | example: {},
16 | attributes,
17 | edit: Edit,
18 | save: Save,
19 | });
20 |
--------------------------------------------------------------------------------
/assets/reactjs/src/blocks/tabs/tab/Edit.js:
--------------------------------------------------------------------------------
1 | const { Component } = wp.element;
2 | const { InnerBlocks } = wp.blockEditor;
3 | class Edit extends Component {
4 | render() {
5 | return (
6 |
7 | }
11 | />
12 |
13 | );
14 | }
15 | }
16 | export default Edit;
17 |
--------------------------------------------------------------------------------
/assets/reactjs/src/blocks/tabs/tab/Save.js:
--------------------------------------------------------------------------------
1 | import classnames from "classnames";
2 | const { Component } = wp.element;
3 | const { InnerBlocks } = wp.blockEditor;
4 | class Save extends Component {
5 | render() {
6 | const {
7 | attributes: { id },
8 | } = this.props;
9 |
10 | const wrapperClasses = classnames("qubely-tab-content", { ["qubely-active"]: id == 1 });
11 | return (
12 |
13 |
14 |
15 | );
16 | }
17 | }
18 | export default Save;
19 |
--------------------------------------------------------------------------------
/assets/reactjs/src/blocks/tabs/tab/index.js:
--------------------------------------------------------------------------------
1 | import Save from "./Save";
2 | import Edit from "./Edit";
3 | const { __ } = wp.i18n;
4 | const { registerBlockType } = wp.blocks;
5 |
6 | registerBlockType("qubely/tab", {
7 | title: __("Tab"),
8 | category: "qubely",
9 | parent: ["qubely/tabs"],
10 | supports: {
11 | html: false,
12 | inserter: false,
13 | reusable: false,
14 | },
15 | icon:
,
16 | attributes: {
17 | uniqueId: {
18 | type: "string",
19 | default: "",
20 | },
21 | id: {
22 | type: "number",
23 | default: 1,
24 | },
25 | customClassName: {
26 | type: "string",
27 | default: "",
28 | },
29 | },
30 | getEditWrapperProps(attributes) {
31 | return {
32 | "data-tab": attributes.id,
33 | className: `wp-block editor-block-list__block block-editor-block-list__block qubely-tab-content`,
34 | };
35 | },
36 | edit: Edit,
37 | save: Save,
38 | });
39 |
--------------------------------------------------------------------------------
/assets/reactjs/src/blocks/wrapper/Save.js:
--------------------------------------------------------------------------------
1 | const { Component } = wp.element;
2 | const { InnerBlocks } = wp.blockEditor;
3 | const {
4 | HelperFunction: { animationAttr, IsInteraction },
5 | } = wp.qubelyComponents;
6 | class Save extends Component {
7 | render() {
8 | const { uniqueId, animation, interaction } = this.props.attributes;
9 | const interactionClass = IsInteraction(interaction) ? "qubley-block-interaction" : "";
10 | return (
11 |
16 | );
17 | }
18 | }
19 | export default Save;
20 |
--------------------------------------------------------------------------------
/assets/reactjs/src/blocks/wrapper/style.scss:
--------------------------------------------------------------------------------
1 | .qubely-block-wrapper-block {
2 | transition: border-color 400ms, background-color 400ms, box-shadow 400ms;
3 | }
4 |
--------------------------------------------------------------------------------
/assets/reactjs/src/components/InspectorTab.js:
--------------------------------------------------------------------------------
1 | const { Fragment } = wp.element;
2 |
3 | const InspectorTab = (props) => {
4 | const { children, isActive, key } = props;
5 | return (
6 |
12 | {Array.isArray(children) ? children.map((item) => item) : children}
13 |
14 | );
15 | };
16 |
17 | export default InspectorTab;
18 |
--------------------------------------------------------------------------------
/assets/reactjs/src/components/css/InnerPanel.scss:
--------------------------------------------------------------------------------
1 | .qubely-field {
2 | &.qubely-field-inner-panel {
3 | border: 1px solid #e2e4e7;
4 | margin: -1px 0 0 0;
5 | .qubely-field-inner-panel-title {
6 | background: #f8f9f9;
7 | padding: 12px 10px;
8 | display: flex;
9 | align-items: center;
10 | justify-content: space-between;
11 | -webkit-user-select: none;
12 | -moz-user-select: none;
13 | -ms-user-select: none;
14 | user-select: none;
15 | cursor: pointer;
16 | &:hover {
17 | background: #f0f1f1;
18 | }
19 | }
20 |
21 | .qubely-field-inner-panel-body {
22 | border-top: 1px solid #e2e4e7;
23 | padding: 10px 16px;
24 | }
25 | }
26 | }
27 |
--------------------------------------------------------------------------------
/assets/reactjs/src/components/css/alignment.scss:
--------------------------------------------------------------------------------
1 | .qubely-field-button-list {
2 | &.qubely-field-button-list-fluid {
3 | display: flex;
4 | justify-content: space-between;
5 | .qubely-button {
6 | width: 100%;
7 | justify-content: center;
8 | }
9 | }
10 | }
11 |
--------------------------------------------------------------------------------
/assets/reactjs/src/components/css/animation.scss:
--------------------------------------------------------------------------------
1 | .qubely-animation-popup {
2 | padding: 15px;
3 | }
4 |
--------------------------------------------------------------------------------
/assets/reactjs/src/components/css/border.scss:
--------------------------------------------------------------------------------
1 | .qubely-field-border-type {
2 | width: 16px;
3 | display: block;
4 | height: 0;
5 | &.qubely-field-border-type-solid {
6 | border-top: 3px solid #8d96a0;
7 | }
8 | &.qubely-field-border-type-dotted {
9 | border-top: 3px dotted #8d96a0;
10 | }
11 | &.qubely-field-border-type-dashed {
12 | border-top: 3px dashed #8d96a0;
13 | }
14 | &.qubely-field-border-type-double {
15 | border-top: 6px double #8d96a0;
16 | }
17 | }
18 |
19 | .active {
20 | .qubely-field-border-type {
21 | &.qubely-field-border-type-solid {
22 | border-top-color: #2184f9;
23 | }
24 | &.qubely-field-border-type-dotted {
25 | border-top-color: #2184f9;
26 | }
27 | &.qubely-field-border-type-dashed {
28 | border-top-color: #2184f9;
29 | }
30 | &.qubely-field-border-type-double {
31 | border-top-color: #2184f9;
32 | }
33 | }
34 | }
35 |
36 | .qubely-svg-fill {
37 | fill: #8d96a0;
38 | }
39 |
40 | .qubely-svg-stroke {
41 | stroke: #8d96a0;
42 | }
43 | .active {
44 | .qubely-svg-fill {
45 | fill: #2184f9;
46 | }
47 | .qubely-svg-stroke {
48 | stroke: #2184f9;
49 | }
50 | }
51 |
52 | .qubely-border-clear {
53 | font-size: 12px;
54 | color: #8d96a0;
55 | &:hover {
56 | color: #2184f9;
57 | }
58 | }
59 |
--------------------------------------------------------------------------------
/assets/reactjs/src/components/css/buttonGroup.scss:
--------------------------------------------------------------------------------
1 | .qubely-field-group-btn {
2 | align-items: center;
3 | label {
4 | margin-bottom: 0;
5 | }
6 | .qubely-field-child {
7 | display: flex;
8 | justify-content: end;
9 | align-items: center;
10 | .qubley-group-button {
11 | display: inline-block;
12 | white-space: nowrap;
13 | padding: 0px 9px;
14 | color: #8d96a0;
15 | font-size: 12px;
16 | border-top: 1px solid #d6d9dd;
17 | border-bottom: 1px solid #d6d9dd;
18 | border-left: 1px solid #d6d9dd;
19 | text-transform: capitalize;
20 | cursor: pointer;
21 | box-shadow: none;
22 | line-height: 26px;
23 | height: 26px;
24 | &.extra-padding {
25 | padding: 0px 10px;
26 | font-weight: bold;
27 | font-size: 15px;
28 | }
29 | &:last-child {
30 | border-bottom-right-radius: 3px;
31 | border-top-right-radius: 3px;
32 | border-right: 1px solid #d6d9dd;
33 | }
34 | &:first-child {
35 | border-top-left-radius: 3px;
36 | border-bottom-left-radius: 3px;
37 | }
38 | &.qubley-active-group-btn {
39 | color: #2184f9;
40 | background: #d2e7ff;
41 | border-color: #a9d0ff;
42 | & + .qubley-group-button {
43 | border-left-color: #a9d0ff;
44 | }
45 | }
46 | }
47 | }
48 | }
49 |
--------------------------------------------------------------------------------
/assets/reactjs/src/components/css/dimension.scss:
--------------------------------------------------------------------------------
1 | .qubely-field-dimension {
2 | .qubely-dimension-input-group {
3 | overflow: hidden;
4 | > span {
5 | float: left;
6 | width: 20%;
7 | input {
8 | text-align: center;
9 | max-width: 100%;
10 | border: 1px solid #e5e7ea !important;
11 | }
12 | &:not(:last-child) input {
13 | border-radius: 0;
14 | border-right: 0 !important;
15 | }
16 | input + span {
17 | display: block;
18 | font-size: 10px;
19 | text-transform: capitalize;
20 | text-align: center;
21 | }
22 | &:first-child input {
23 | border-radius: 4px 0 0 4px;
24 | }
25 | }
26 | > button {
27 | width: 20%;
28 | justify-content: center;
29 | border-radius: 0 4px 4px 0;
30 | }
31 | }
32 | }
33 |
--------------------------------------------------------------------------------
/assets/reactjs/src/components/css/editorinline.scss:
--------------------------------------------------------------------------------
1 | .components-toolbar.components-toolbar {
2 | div {
3 | button {
4 | width: auto;
5 | .qubely-color-picker-icon-wraper {
6 | border-radius: 3px;
7 | border: none;
8 | outline: none;
9 | padding: 0px 5px 0px 5px;
10 | }
11 | }
12 | }
13 | }
14 | .components-toolbar {
15 | button {
16 | img {
17 | &.qubely-block-icon {
18 | &.small {
19 | width: 50%;
20 | }
21 | }
22 | }
23 | }
24 | }
25 |
26 | .qubely-toolber-popup {
27 | .qubely-field-alignment {
28 | margin-bottom: 15px;
29 | }
30 | }
31 |
--------------------------------------------------------------------------------
/assets/reactjs/src/components/css/inline_toolbar.scss:
--------------------------------------------------------------------------------
1 | .qubely-toolber-field {
2 | display: flex;
3 | justify-content: center;
4 | align-items: center;
5 | min-width: 48px;
6 | button {
7 | padding: 3px;
8 | height: 36px;
9 | width: 36px;
10 | background: none;
11 | text-align: center;
12 | display: block;
13 | border: none;
14 | i {
15 | display: block;
16 | padding: 5px;
17 | border-radius: 4px;
18 | height: 30px;
19 | width: 30px;
20 | line-height: 20px;
21 | font-size: 14px;
22 | font-style: normal !important;
23 | cursor: pointer;
24 | }
25 | &:focus i,
26 | &:hover i {
27 | box-shadow: inset 0 0 0 1px #555d66, inset 0 0 0 2px #fff;
28 | color: #555d66;
29 | }
30 | }
31 | }
32 |
33 | .qubely-toolber-popup {
34 | padding: 15px;
35 | min-width: 220px;
36 | }
37 |
--------------------------------------------------------------------------------
/assets/reactjs/src/components/css/media.scss:
--------------------------------------------------------------------------------
1 | .qubely-media {
2 | margin-bottom: 15px;
3 | label {
4 | margin-bottom: 10px;
5 | display: block;
6 | }
7 | .qubely-media-actions {
8 | position: absolute;
9 | top: 10px;
10 | right: 10px;
11 | }
12 | .qubely-single-img {
13 | .qubely-media-image-parent {
14 | position: relative;
15 | display: inline-block;
16 | min-height: 140px;
17 | min-width: 140px;
18 | img {
19 | margin: 0;
20 | }
21 | }
22 | }
23 | .qubely-placeholder-image {
24 | border: 1px dashed #dddd;
25 | padding: 20px 20px 25px;
26 | text-align: center;
27 | background: #ffffff;
28 | cursor: copy;
29 | border-radius: 5px;
30 | div {
31 | margin: 8px 0px;
32 | text-align: center;
33 | }
34 | }
35 | }
36 |
--------------------------------------------------------------------------------
/assets/reactjs/src/components/css/select.scss:
--------------------------------------------------------------------------------
1 | .qubely-popup-select {
2 | position: relative;
3 | select {
4 | width: 100%;
5 | }
6 | .qubely-clear {
7 | position: absolute;
8 | right: 10px;
9 | top: 50%;
10 | transform: translateY(-50%);
11 | background: #fff;
12 | color: #8d96a0;
13 | padding: 2px 6px;
14 | cursor: pointer;
15 | &:hover {
16 | color: #717982;
17 | }
18 | }
19 | }
20 |
--------------------------------------------------------------------------------
/assets/reactjs/src/components/css/selector.scss:
--------------------------------------------------------------------------------
1 | .qubely-toolber-field {
2 | button:focus {
3 | outline: none;
4 | }
5 | }
6 | .qubely-selector-popup-toolbar {
7 | & .components-popover__content {
8 | display: flex;
9 | align-items: center;
10 | justify-content: center;
11 | min-width: 150px !important;
12 | padding-bottom: 8px;
13 | padding-top: 8px;
14 | border-radius: 5px;
15 | }
16 | }
17 | .qubely-selector-toolber-popup {
18 | width: 100%;
19 | }
20 | .qubely-field-selector {
21 | .qubely-field-child {
22 | display: flex;
23 | flex-wrap: wrap;
24 | flex-basis: auto;
25 | .qubely-selector-button-group {
26 | display: flex;
27 | flex-direction: column;
28 | width: 100%;
29 | padding-left: 2%;
30 | padding-right: 2%;
31 | .qubely-button {
32 | display: flex;
33 | padding: 5px 0px 5px 0px;
34 | margin: 0px 0px 2px 0px;
35 | justify-content: space-evenly;
36 | background: transparent;
37 | border: none;
38 | }
39 | .qubely-button.active {
40 | background: #007eb1;
41 | border-color: #00435d;
42 | border-radius: 3px;
43 | color: #fff;
44 | box-shadow: inset 0 -1px 0 #00435d;
45 | border: none;
46 | }
47 | .qubely-button:focus {
48 | outline: none;
49 | }
50 | }
51 | }
52 | }
53 |
--------------------------------------------------------------------------------
/assets/reactjs/src/components/css/separator.scss:
--------------------------------------------------------------------------------
1 | .qubely-field-separator {
2 | width: 100%;
3 | height: 1px;
4 | background: #e5e7ea;
5 | &:not(:first-child-child) {
6 | margin-top: 20px;
7 | }
8 |
9 | &.qubely-has-label {
10 | position: relative;
11 | label {
12 | position: absolute;
13 | top: -8px;
14 | display: inline-block;
15 | width: auto;
16 | background: #fff;
17 | padding-right: 10px;
18 | margin: 0;
19 | }
20 | }
21 | }
22 | .qubely-field-separator.qubely-separtor-extra-margin {
23 | margin: 20px 0px 30px 0px;
24 | }
25 |
--------------------------------------------------------------------------------
/assets/reactjs/src/components/css/template.scss:
--------------------------------------------------------------------------------
1 | .qubely-design-templates {
2 | column-count: 2;
3 | .qubely-design-template {
4 | display: inline-block;
5 | position: relative;
6 | margin-bottom: 8px;
7 | cursor: pointer;
8 | //border: 1.5px solid transparent;
9 | border-radius: 4px;
10 | box-sizing: border-box;
11 | overflow: hidden;
12 | transition: 300ms;
13 | box-shadow: 0 1px 2px rgba(0, 0, 0, 0.15);
14 | &.active,
15 | &:hover {
16 | box-shadow: 0 0 0 2px #2184f9;
17 | }
18 | img {
19 | display: block;
20 | width: 100%;
21 | height: auto;
22 | object-fit: contain;
23 | }
24 | }
25 | }
26 |
--------------------------------------------------------------------------------
/assets/reactjs/src/components/css/toggle.scss:
--------------------------------------------------------------------------------
1 | .qubely-field {
2 | &.qubely-field-toggle {
3 | display: flex;
4 | flex-wrap: wrap;
5 | align-items: center;
6 | justify-content: space-between;
7 | > label {
8 | width: auto;
9 | margin-bottom: 0;
10 | }
11 | .components-toggle-control,
12 | .components-toggle-control .components-base-control__field {
13 | margin-bottom: 0 !important;
14 | }
15 | .components-toggle-control .components-base-control__field .components-form-toggle {
16 | margin-right: 0;
17 | }
18 | .components-form-toggle.is-checked .components-form-toggle__track {
19 | background-color: #2184f9;
20 | }
21 | }
22 | }
23 |
--------------------------------------------------------------------------------
/assets/reactjs/src/components/css/url.scss:
--------------------------------------------------------------------------------
1 | .qubely-field-url {
2 | .qubely-url-input-group {
3 | display: flex;
4 | input {
5 | flex-grow: 1;
6 | margin: 0 6px 0 0;
7 | }
8 | button {
9 | height: 30px;
10 | line-height: 28px;
11 | }
12 | }
13 | .qubely-url-advance-options {
14 | margin-top: 15px;
15 | }
16 | }
17 |
--------------------------------------------------------------------------------
/assets/reactjs/src/components/css/wrapper.scss:
--------------------------------------------------------------------------------
1 | .qubely-field-wrapper {
2 | margin: 25px -15px 15px -15px;
3 | padding: 25px 15px 15px;
4 | border-top: 1px solid #ebecee;
5 | border-bottom: 1px solid #ebecee;
6 | background: #fafafa;
7 | position: relative;
8 | z-index: 1;
9 | &.qubely-field-wrapper-inline {
10 | position: absolute;
11 | top: 100%;
12 | left: 0;
13 | width: 300px;
14 | z-index: 99;
15 | margin: 0;
16 | padding: 20px;
17 | background: #fff;
18 | border: 1px solid #e5e5e5;
19 | box-shadow: 0 1px 2px rgba(0, 0, 0, 0.1);
20 | .qubely-field-wrapper-content {
21 | position: relative;
22 | }
23 | &.quebly-position-bottom {
24 | }
25 | &.quebly-position-top {
26 | top: auto;
27 | bottom: 100%;
28 | }
29 | &.quebly-position-middle {
30 | left: 100%;
31 | }
32 | }
33 | &.qubely-padding-0 {
34 | padding: 0;
35 | .qubely-icon-list-wrapper {
36 | border: 0;
37 | border-radius: 0;
38 | }
39 | }
40 | .qubely-field-wrapper-label {
41 | margin: 0;
42 | position: absolute;
43 | top: 0;
44 | left: 15px;
45 | display: inline-block;
46 | width: auto;
47 | background: #fff;
48 | border: 1px solid #e2e4e7;
49 | padding: 5px 10px;
50 | line-height: 1;
51 | transform: translateY(-50%);
52 | overflow: hidden;
53 | }
54 |
55 | .qubely-field-separator {
56 | margin-bottom: 15px;
57 | label {
58 | background: #fafafa;
59 | }
60 | }
61 | }
62 |
--------------------------------------------------------------------------------
/assets/reactjs/src/components/fields/Headings.js:
--------------------------------------------------------------------------------
1 | import icons from '../../helpers/icons';
2 |
3 | function Headings(props) {
4 | const { selectedLevel, onChange, label = '' } = props;
5 | return (
6 |
7 | {label &&
}
8 |
9 | {[1, 2, 3, 4, 5, 6].map((data, index) => {
10 | return (
11 |
20 | );
21 | })}
22 |
23 |
24 | );
25 | }
26 | export default Headings;
27 |
--------------------------------------------------------------------------------
/assets/reactjs/src/components/fields/InnerPanel.js:
--------------------------------------------------------------------------------
1 | import "../css/InnerPanel.scss";
2 | const { Component } = wp.element;
3 | class InnerPanel extends Component {
4 | constructor(props) {
5 | super(props);
6 | this.state = { show: false };
7 | }
8 |
9 | render() {
10 | const { children, onTabChange } = this.props;
11 |
12 | return (
13 |
14 | {this.props.title && (
15 |
this.setState({ show: !this.state.show })}
18 | role="button"
19 | >
20 | {this.props.title}
21 |
22 |
23 | )}
24 | {this.state.show && (
25 |
26 | {Array.isArray(children) ? children.map((item) => item) : children}
27 |
28 | )}
29 |
30 | );
31 | }
32 | }
33 | export default InnerPanel;
34 |
--------------------------------------------------------------------------------
/assets/reactjs/src/components/fields/RadioAdvanced.js:
--------------------------------------------------------------------------------
1 | const { Component } = wp.element;
2 | const { Tooltip } = wp.components;
3 |
4 | class RadioAdvanced extends Component {
5 | setSettings(val) {
6 | this.props.onChange(val);
7 | }
8 |
9 | render() {
10 | const { value, label, options } = this.props;
11 | return (
12 |
13 | {label &&
{label}}
14 |
15 | {options.map((data, index) => {
16 | return (
17 |
18 |
31 |
32 | );
33 | })}
34 |
35 |
36 | );
37 | }
38 | }
39 | export default RadioAdvanced;
40 |
--------------------------------------------------------------------------------
/assets/reactjs/src/components/fields/Separator.js:
--------------------------------------------------------------------------------
1 | import "../css/separator.scss";
2 | const { Component } = wp.element;
3 | class Separator extends Component {
4 | render() {
5 | const { label, customClassName } = this.props;
6 | return (
7 |
12 | {label && }
13 |
14 | );
15 | }
16 | }
17 |
18 | export default Separator;
19 |
--------------------------------------------------------------------------------
/assets/reactjs/src/components/fields/Tab.js:
--------------------------------------------------------------------------------
1 | const { Component, Fragment } = wp.element;
2 |
3 | class Tab extends Component {
4 | render() {
5 | const { children, onTabChange } = this.props;
6 | onTabChange && onTabChange();
7 | return {Array.isArray(children) ? children.map((item) => item) : children} ;
8 | }
9 | }
10 | export default Tab;
11 |
--------------------------------------------------------------------------------
/assets/reactjs/src/components/fields/headingToolbar/index.js:
--------------------------------------------------------------------------------
1 | const { __ } = wp.i18n;
2 | const { Component } = wp.element;
3 | const { Toolbar } = wp.components;
4 |
5 | import HeadingLevelIcon from "./headingIcon";
6 |
7 | class HeadingToolbar extends Component {
8 | createLevelControl(targetLevel, selectedLevel, onChange) {
9 | const isActive = targetLevel === selectedLevel;
10 | return {
11 | icon: ,
12 | title: __(`Heading ${targetLevel}`),
13 | isActive,
14 | onClick: () => onChange(targetLevel),
15 | };
16 | }
17 |
18 | headingLevels(minLevel, maxLevel) {
19 | let headingLevels = [];
20 |
21 | for (let level = minLevel; level <= maxLevel; level++) {
22 | headingLevels.push(level);
23 | }
24 | return headingLevels;
25 | }
26 |
27 | render() {
28 | const { isCollapsed = true, minLevel, maxLevel, selectedLevel, onChange } = this.props;
29 |
30 | return (
31 | }
35 | controls={this.headingLevels(minLevel, maxLevel).map((index) =>
36 | this.createLevelControl(index, selectedLevel, onChange)
37 | )}
38 | />
39 | );
40 | }
41 | }
42 |
43 | export default HeadingToolbar;
44 |
--------------------------------------------------------------------------------
/assets/reactjs/src/components/fields/inline/InlineToolbar.js:
--------------------------------------------------------------------------------
1 | const { Component } = wp.element;
2 | import "../../css/inline_toolbar.scss";
3 | import InlineSpacer from "./InlineSpacer";
4 |
5 | class InlineToolbar extends Component {
6 | render() {
7 | let html = [];
8 | this.props.data.forEach((val, i) => {
9 | if (val.name == "InlineSpacer" && this.props.prevState[val.key]) {
10 | html.push(
11 | this.props.setAttributes({ [val.key]: value })}
17 | />
18 | );
19 | }
20 | });
21 | return html;
22 | }
23 | }
24 | export default InlineToolbar;
25 |
--------------------------------------------------------------------------------
/assets/reactjs/src/components/fields/inline/Selector.js:
--------------------------------------------------------------------------------
1 | const { __ } = wp.i18n;
2 | const { Component } = wp.element;
3 | const { Toolbar } = wp.components;
4 | import icons from "../../../helpers/icons";
5 | const defaultOptions = [
6 | ["h1", "Heading 1"],
7 | ["h2", "Heading 2"],
8 | ["h3", "Heading 3"],
9 | ["h4", "Heading 4"],
10 | ["h5", "Heading 5"],
11 | ["h6", "Heading 6"],
12 | ["p", "Paragraph"],
13 | ["span", "span"],
14 | ["div", "div"],
15 | ];
16 |
17 | class InlineSelector extends Component {
18 | headingController = (newSelector) => {
19 | const { selector, setAttributes } = this.props
20 | const [tag, description] = newSelector
21 | return [{
22 | icon: icons[tag],
23 | title: sprintf(__(description)),
24 | isActive: tag === selector,
25 | onClick: () => setAttributes({ selector: tag }),
26 | subscript: String(tag),
27 | }];
28 | };
29 | render() {
30 | const { selector, options } = this.props
31 | return (
32 | this.headingController(newSelector))}
37 | />
38 | )
39 | }
40 | }
41 | export default InlineSelector;
42 |
--------------------------------------------------------------------------------
/assets/reactjs/src/components/fields/inline/index.js:
--------------------------------------------------------------------------------
1 | import InlineToolbar from "./InlineToolbar";
2 | import InlineSpacer from "./InlineSpacer";
3 | import InlineSelector from "./Selector";
4 |
5 | export { InlineToolbar, InlineSpacer, InlineSelector };
6 |
--------------------------------------------------------------------------------
/assets/reactjs/src/components/format-library/custom-formats.js:
--------------------------------------------------------------------------------
1 | /**
2 | * Internal dependencies
3 | */
4 | import { color } from "./color";
5 | import { tooltip } from "./tooltip";
6 | import { fontsize } from "./font-size";
7 | import { uppercase } from "./upper-case";
8 | import { backgroundColor } from "./background-color";
9 |
10 | export default [color, tooltip, fontsize, uppercase, backgroundColor];
11 |
--------------------------------------------------------------------------------
/assets/reactjs/src/components/format-library/index.js:
--------------------------------------------------------------------------------
1 | /**
2 | * WordPress dependencies
3 | */
4 | const { registerFormatType } = wp.richText;
5 |
6 | /**
7 | * Internal dependencies
8 | */
9 | import formats from "./custom-formats";
10 |
11 | formats.forEach(({ name, ...settings }) => registerFormatType(name, settings));
12 |
--------------------------------------------------------------------------------
/assets/reactjs/src/components/format-library/upper-case/index.js:
--------------------------------------------------------------------------------
1 | /**
2 | * WordPress dependencies
3 | */
4 | const { __ } = wp.i18n;
5 | const { Fragment } = wp.element;
6 | const { toggleFormat } = wp.richText;
7 |
8 | const { RichTextToolbarButton } = wp.blockEditor;
9 |
10 | /**
11 | * Internal dependencies
12 | */
13 | import icons from "../../../helpers/icons";
14 | import "../../css/editorinline.scss";
15 |
16 | const name = "qubely/uppercase";
17 | const title = __("Qubely Uppercase");
18 |
19 | export const uppercase = {
20 | name,
21 | title,
22 | tagName: "span",
23 | className: "qubely-text-uppercase",
24 | attributes: {
25 | style: "style",
26 | },
27 | edit(props) {
28 | const { isActive, value, onChange } = props;
29 |
30 | const onToggle = () =>
31 | onChange(
32 | toggleFormat(value, {
33 | type: name,
34 | attributes: {
35 | style: "text-transform: uppercase;",
36 | },
37 | })
38 | );
39 | let isSelected = value.end - value.start > 0 ? true : false;
40 | return (
41 |
42 | {(isSelected || isActive) && (
43 |
49 | )}
50 |
51 | );
52 | },
53 | };
54 |
--------------------------------------------------------------------------------
/assets/reactjs/src/components/others/index.js:
--------------------------------------------------------------------------------
1 | export { default as Pagination } from "./pagination";
2 |
3 |
--------------------------------------------------------------------------------
/assets/reactjs/src/components/others/pagination/page.js:
--------------------------------------------------------------------------------
1 | import PropTypes from "prop-types";
2 | import classnames from "classnames";
3 | const { Component } = wp.element;
4 | const { __ } = wp.i18n;
5 | class Page extends Component {
6 | render() {
7 | const { className, isCurrent, isDots, children, pageKey, onClick } = this.props;
8 |
9 | const classes = classnames(className, { current: isCurrent }, { dots: isDots });
10 | return (
11 |
16 | );
17 | }
18 | }
19 |
20 | Page.defaultProps = {
21 | isCurrent: false,
22 | isDots: false,
23 | className: "",
24 | };
25 | Page.propTypes = {
26 | isCurrent: PropTypes.bool,
27 | className: PropTypes.string,
28 | key: PropTypes.string,
29 | isDots: PropTypes.bool,
30 | onClick: PropTypes.func,
31 | };
32 | export default Page;
33 |
--------------------------------------------------------------------------------
/assets/reactjs/src/helpers/utils.js:
--------------------------------------------------------------------------------
1 | export const placeCaretAtEnd = (el) => {
2 | el.focus();
3 | if (typeof window.getSelection != "undefined" && typeof document.createRange != "undefined") {
4 | var range = document.createRange();
5 | range.selectNodeContents(el);
6 | range.collapse(false);
7 | var sel = window.getSelection();
8 | sel.removeAllRanges();
9 | sel.addRange(range);
10 | } else if (typeof document.body.createTextRange != "undefined") {
11 | var textRange = document.body.createTextRange();
12 | textRange.moveToElementText(el);
13 | textRange.collapse(false);
14 | textRange.select();
15 | }
16 | };
17 |
--------------------------------------------------------------------------------
/assets/reactjs/src/hooks/index.js:
--------------------------------------------------------------------------------
1 | export { default as withCSSGenerator } from "./with-css-generator";
2 |
--------------------------------------------------------------------------------
/assets/reactjs/src/plugins/global-settings/components/index.js:
--------------------------------------------------------------------------------
1 | export { default } from "./color";
2 |
--------------------------------------------------------------------------------
/assets/reactjs/src/plugins/index.js:
--------------------------------------------------------------------------------
1 | import GlobalSettings from "./global-settings";
2 |
3 | const { registerPlugin } = wp.plugins;
4 |
5 | registerPlugin("qubely-global-settings", {
6 | render() {
7 | return ;
8 | },
9 | });
10 |
--------------------------------------------------------------------------------
/assets/reactjs/webpack.config.js:
--------------------------------------------------------------------------------
1 | 'use strict';
2 | var path = require('path');
3 |
4 | module.exports = {
5 | mode: 'development',
6 | entry: [
7 | path.join(__dirname, 'src/index.js')
8 | ],
9 | output: {
10 | path: path.join(__dirname, '../js/'),
11 | filename: 'qubely.dev.js'
12 | },
13 | module: {
14 | rules: [
15 | {
16 | test: /\.js$/,
17 | exclude: /(node_modules|bower_components)/,
18 | use: { loader: 'babel-loader' }
19 | },
20 | {
21 | test: /\.scss$/,
22 | use: [ 'style-loader', 'css-loader', 'sass-loader' ],
23 | }
24 | ]
25 | },
26 | devtool: "source-map"
27 | };
--------------------------------------------------------------------------------
/assets/reactjs/webpack.production.config.js:
--------------------------------------------------------------------------------
1 | 'use strict';
2 |
3 | var path = require('path');
4 | var webpack = require('webpack');
5 |
6 | module.exports = {
7 | mode: 'production',
8 | entry: {
9 | 'qubely': path.join( __dirname, 'src/index.js')
10 | },
11 | output: {
12 | path: path.join( __dirname, '../js'),
13 | filename: '[name].min.js'
14 | },
15 | module: {
16 | rules: [
17 | {
18 | test: /\.js$/,
19 | exclude: /(node_modules|bower_components)/,
20 | use: { loader: 'babel-loader' }
21 | },
22 | {
23 | test: /\.scss$/,
24 | use: [ 'style-loader', 'css-loader', 'sass-loader' ],
25 | }
26 | ]
27 | }
28 | };
--------------------------------------------------------------------------------
/assets/shape/drip.svg:
--------------------------------------------------------------------------------
1 |
--------------------------------------------------------------------------------
/assets/shape/hill-invert.svg:
--------------------------------------------------------------------------------
1 |
--------------------------------------------------------------------------------
/assets/shape/hill-wave.svg:
--------------------------------------------------------------------------------
1 |
6 |
--------------------------------------------------------------------------------
/assets/shape/hill.svg:
--------------------------------------------------------------------------------
1 |
--------------------------------------------------------------------------------
/assets/shape/pointy-wave.svg:
--------------------------------------------------------------------------------
1 |
--------------------------------------------------------------------------------
/assets/shape/single-wave.svg:
--------------------------------------------------------------------------------
1 |
--------------------------------------------------------------------------------
/assets/shape/slope-opacity.svg:
--------------------------------------------------------------------------------
1 |
--------------------------------------------------------------------------------
/assets/shape/slope.svg:
--------------------------------------------------------------------------------
1 |
--------------------------------------------------------------------------------
/assets/shape/turning-slope.svg:
--------------------------------------------------------------------------------
1 |
--------------------------------------------------------------------------------
/assets/shape/waves3-opacity.svg:
--------------------------------------------------------------------------------
1 |
--------------------------------------------------------------------------------
/assets/shape/wavy-opacity.svg:
--------------------------------------------------------------------------------
1 |
7 |
--------------------------------------------------------------------------------
/assets/shape/zigzag-shark.svg:
--------------------------------------------------------------------------------
1 |
7 |
--------------------------------------------------------------------------------
/build/qubely/assets/fonts/fa-brands-400.eot:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/themeum/qubely/ea7fa36554e568de09246c0eada381f63acf8d56/build/qubely/assets/fonts/fa-brands-400.eot
--------------------------------------------------------------------------------
/build/qubely/assets/fonts/fa-brands-400.ttf:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/themeum/qubely/ea7fa36554e568de09246c0eada381f63acf8d56/build/qubely/assets/fonts/fa-brands-400.ttf
--------------------------------------------------------------------------------
/build/qubely/assets/fonts/fa-brands-400.woff:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/themeum/qubely/ea7fa36554e568de09246c0eada381f63acf8d56/build/qubely/assets/fonts/fa-brands-400.woff
--------------------------------------------------------------------------------
/build/qubely/assets/fonts/fa-brands-400.woff2:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/themeum/qubely/ea7fa36554e568de09246c0eada381f63acf8d56/build/qubely/assets/fonts/fa-brands-400.woff2
--------------------------------------------------------------------------------
/build/qubely/assets/fonts/fa-regular-400.eot:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/themeum/qubely/ea7fa36554e568de09246c0eada381f63acf8d56/build/qubely/assets/fonts/fa-regular-400.eot
--------------------------------------------------------------------------------
/build/qubely/assets/fonts/fa-regular-400.ttf:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/themeum/qubely/ea7fa36554e568de09246c0eada381f63acf8d56/build/qubely/assets/fonts/fa-regular-400.ttf
--------------------------------------------------------------------------------
/build/qubely/assets/fonts/fa-regular-400.woff:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/themeum/qubely/ea7fa36554e568de09246c0eada381f63acf8d56/build/qubely/assets/fonts/fa-regular-400.woff
--------------------------------------------------------------------------------
/build/qubely/assets/fonts/fa-regular-400.woff2:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/themeum/qubely/ea7fa36554e568de09246c0eada381f63acf8d56/build/qubely/assets/fonts/fa-regular-400.woff2
--------------------------------------------------------------------------------
/build/qubely/assets/fonts/fa-solid-900.eot:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/themeum/qubely/ea7fa36554e568de09246c0eada381f63acf8d56/build/qubely/assets/fonts/fa-solid-900.eot
--------------------------------------------------------------------------------
/build/qubely/assets/fonts/fa-solid-900.ttf:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/themeum/qubely/ea7fa36554e568de09246c0eada381f63acf8d56/build/qubely/assets/fonts/fa-solid-900.ttf
--------------------------------------------------------------------------------
/build/qubely/assets/fonts/fa-solid-900.woff:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/themeum/qubely/ea7fa36554e568de09246c0eada381f63acf8d56/build/qubely/assets/fonts/fa-solid-900.woff
--------------------------------------------------------------------------------
/build/qubely/assets/fonts/fa-solid-900.woff2:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/themeum/qubely/ea7fa36554e568de09246c0eada381f63acf8d56/build/qubely/assets/fonts/fa-solid-900.woff2
--------------------------------------------------------------------------------
/build/qubely/assets/img/admin/cta-1.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/themeum/qubely/ea7fa36554e568de09246c0eada381f63acf8d56/build/qubely/assets/img/admin/cta-1.png
--------------------------------------------------------------------------------
/build/qubely/assets/img/admin/cta-2.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/themeum/qubely/ea7fa36554e568de09246c0eada381f63acf8d56/build/qubely/assets/img/admin/cta-2.png
--------------------------------------------------------------------------------
/build/qubely/assets/img/admin/pointer@1x.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/themeum/qubely/ea7fa36554e568de09246c0eada381f63acf8d56/build/qubely/assets/img/admin/pointer@1x.png
--------------------------------------------------------------------------------
/build/qubely/assets/img/admin/pointer@2x.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/themeum/qubely/ea7fa36554e568de09246c0eada381f63acf8d56/build/qubely/assets/img/admin/pointer@2x.png
--------------------------------------------------------------------------------
/build/qubely/assets/img/admin/thumbs-up@1x.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/themeum/qubely/ea7fa36554e568de09246c0eada381f63acf8d56/build/qubely/assets/img/admin/thumbs-up@1x.png
--------------------------------------------------------------------------------
/build/qubely/assets/img/admin/thumbs-up@2x.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/themeum/qubely/ea7fa36554e568de09246c0eada381f63acf8d56/build/qubely/assets/img/admin/thumbs-up@2x.png
--------------------------------------------------------------------------------
/build/qubely/assets/img/blocks/accordion/classic.svg:
--------------------------------------------------------------------------------
1 |
--------------------------------------------------------------------------------
/build/qubely/assets/img/blocks/accordion/fill.svg:
--------------------------------------------------------------------------------
1 |
--------------------------------------------------------------------------------
/build/qubely/assets/img/blocks/block-counter.svg:
--------------------------------------------------------------------------------
1 |
--------------------------------------------------------------------------------
/build/qubely/assets/img/blocks/block-divider.svg:
--------------------------------------------------------------------------------
1 |
--------------------------------------------------------------------------------
/build/qubely/assets/img/blocks/block-heading.svg:
--------------------------------------------------------------------------------
1 |
--------------------------------------------------------------------------------
/build/qubely/assets/img/blocks/block-info-box.svg:
--------------------------------------------------------------------------------
1 |
--------------------------------------------------------------------------------
/build/qubely/assets/img/blocks/block-row.svg:
--------------------------------------------------------------------------------
1 |
--------------------------------------------------------------------------------
/build/qubely/assets/img/blocks/block-team.svg:
--------------------------------------------------------------------------------
1 |
--------------------------------------------------------------------------------
/build/qubely/assets/img/blocks/block-wrapper.svg:
--------------------------------------------------------------------------------
1 |
--------------------------------------------------------------------------------
/build/qubely/assets/img/blocks/button/fill.svg:
--------------------------------------------------------------------------------
1 |
--------------------------------------------------------------------------------
/build/qubely/assets/img/blocks/button/fill_xs.svg:
--------------------------------------------------------------------------------
1 |
5 |
--------------------------------------------------------------------------------
/build/qubely/assets/img/blocks/button/outline.svg:
--------------------------------------------------------------------------------
1 |
--------------------------------------------------------------------------------
/build/qubely/assets/img/blocks/button/outline_xs.svg:
--------------------------------------------------------------------------------
1 |
5 |
--------------------------------------------------------------------------------
/build/qubely/assets/img/blocks/form/classic.svg:
--------------------------------------------------------------------------------
1 |
--------------------------------------------------------------------------------
/build/qubely/assets/img/blocks/form/material.svg:
--------------------------------------------------------------------------------
1 |
--------------------------------------------------------------------------------
/build/qubely/assets/img/blocks/icon/classic.svg:
--------------------------------------------------------------------------------
1 |
--------------------------------------------------------------------------------
/build/qubely/assets/img/blocks/icon/fill.svg:
--------------------------------------------------------------------------------
1 |
--------------------------------------------------------------------------------
/build/qubely/assets/img/blocks/icon/outline.svg:
--------------------------------------------------------------------------------
1 |
--------------------------------------------------------------------------------
/build/qubely/assets/img/blocks/image/blurb.svg:
--------------------------------------------------------------------------------
1 |
--------------------------------------------------------------------------------
/build/qubely/assets/img/blocks/image/simple.svg:
--------------------------------------------------------------------------------
1 |
--------------------------------------------------------------------------------
/build/qubely/assets/img/blocks/infobox/1.svg:
--------------------------------------------------------------------------------
1 |
--------------------------------------------------------------------------------
/build/qubely/assets/img/blocks/infobox/2.svg:
--------------------------------------------------------------------------------
1 |
--------------------------------------------------------------------------------
/build/qubely/assets/img/blocks/infobox/3.svg:
--------------------------------------------------------------------------------
1 |
--------------------------------------------------------------------------------
/build/qubely/assets/img/blocks/infobox/4.svg:
--------------------------------------------------------------------------------
1 |
--------------------------------------------------------------------------------
/build/qubely/assets/img/blocks/list/1.svg:
--------------------------------------------------------------------------------
1 |
--------------------------------------------------------------------------------
/build/qubely/assets/img/blocks/list/2.svg:
--------------------------------------------------------------------------------
1 |
--------------------------------------------------------------------------------
/build/qubely/assets/img/blocks/map/aqua-light.jpg:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/themeum/qubely/ea7fa36554e568de09246c0eada381f63acf8d56/build/qubely/assets/img/blocks/map/aqua-light.jpg
--------------------------------------------------------------------------------
/build/qubely/assets/img/blocks/map/greyscale.jpg:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/themeum/qubely/ea7fa36554e568de09246c0eada381f63acf8d56/build/qubely/assets/img/blocks/map/greyscale.jpg
--------------------------------------------------------------------------------
/build/qubely/assets/img/blocks/map/inturlam.jpg:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/themeum/qubely/ea7fa36554e568de09246c0eada381f63acf8d56/build/qubely/assets/img/blocks/map/inturlam.jpg
--------------------------------------------------------------------------------
/build/qubely/assets/img/blocks/map/lunar.jpg:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/themeum/qubely/ea7fa36554e568de09246c0eada381f63acf8d56/build/qubely/assets/img/blocks/map/lunar.jpg
--------------------------------------------------------------------------------
/build/qubely/assets/img/blocks/map/midnight.jpg:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/themeum/qubely/ea7fa36554e568de09246c0eada381f63acf8d56/build/qubely/assets/img/blocks/map/midnight.jpg
--------------------------------------------------------------------------------
/build/qubely/assets/img/blocks/map/multi-brand.jpg:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/themeum/qubely/ea7fa36554e568de09246c0eada381f63acf8d56/build/qubely/assets/img/blocks/map/multi-brand.jpg
--------------------------------------------------------------------------------
/build/qubely/assets/img/blocks/map/purple.jpg:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/themeum/qubely/ea7fa36554e568de09246c0eada381f63acf8d56/build/qubely/assets/img/blocks/map/purple.jpg
--------------------------------------------------------------------------------
/build/qubely/assets/img/blocks/map/purple.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/themeum/qubely/ea7fa36554e568de09246c0eada381f63acf8d56/build/qubely/assets/img/blocks/map/purple.png
--------------------------------------------------------------------------------
/build/qubely/assets/img/blocks/map/shadow-grey.jpg:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/themeum/qubely/ea7fa36554e568de09246c0eada381f63acf8d56/build/qubely/assets/img/blocks/map/shadow-grey.jpg
--------------------------------------------------------------------------------
/build/qubely/assets/img/blocks/map/style-default.jpg:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/themeum/qubely/ea7fa36554e568de09246c0eada381f63acf8d56/build/qubely/assets/img/blocks/map/style-default.jpg
--------------------------------------------------------------------------------
/build/qubely/assets/img/blocks/map/ultra-light.jpg:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/themeum/qubely/ea7fa36554e568de09246c0eada381f63acf8d56/build/qubely/assets/img/blocks/map/ultra-light.jpg
--------------------------------------------------------------------------------
/build/qubely/assets/img/blocks/pieprogress/fill.svg:
--------------------------------------------------------------------------------
1 |
--------------------------------------------------------------------------------
/build/qubely/assets/img/blocks/pieprogress/outline-fill.svg:
--------------------------------------------------------------------------------
1 |
--------------------------------------------------------------------------------
/build/qubely/assets/img/blocks/pieprogress/outline.svg:
--------------------------------------------------------------------------------
1 |
--------------------------------------------------------------------------------
/build/qubely/assets/img/blocks/postgrid/1.svg:
--------------------------------------------------------------------------------
1 |
--------------------------------------------------------------------------------
/build/qubely/assets/img/blocks/postgrid/11.svg:
--------------------------------------------------------------------------------
1 |
--------------------------------------------------------------------------------
/build/qubely/assets/img/blocks/postgrid/12.svg:
--------------------------------------------------------------------------------
1 |
--------------------------------------------------------------------------------
/build/qubely/assets/img/blocks/postgrid/13.svg:
--------------------------------------------------------------------------------
1 |
--------------------------------------------------------------------------------
/build/qubely/assets/img/blocks/postgrid/14.svg:
--------------------------------------------------------------------------------
1 |
--------------------------------------------------------------------------------
/build/qubely/assets/img/blocks/postgrid/15.svg:
--------------------------------------------------------------------------------
1 |
--------------------------------------------------------------------------------
/build/qubely/assets/img/blocks/postgrid/16.svg:
--------------------------------------------------------------------------------
1 |
--------------------------------------------------------------------------------
/build/qubely/assets/img/blocks/postgrid/2.svg:
--------------------------------------------------------------------------------
1 |
--------------------------------------------------------------------------------
/build/qubely/assets/img/blocks/postgrid/3.svg:
--------------------------------------------------------------------------------
1 |
--------------------------------------------------------------------------------
/build/qubely/assets/img/blocks/postgrid/4.svg:
--------------------------------------------------------------------------------
1 |
--------------------------------------------------------------------------------
/build/qubely/assets/img/blocks/postgrid/5.svg:
--------------------------------------------------------------------------------
1 |
--------------------------------------------------------------------------------
/build/qubely/assets/img/blocks/postgrid/pro1.svg:
--------------------------------------------------------------------------------
1 |
--------------------------------------------------------------------------------
/build/qubely/assets/img/blocks/postgrid/pro2.svg:
--------------------------------------------------------------------------------
1 |
--------------------------------------------------------------------------------
/build/qubely/assets/img/blocks/pricing/1.svg:
--------------------------------------------------------------------------------
1 |
--------------------------------------------------------------------------------
/build/qubely/assets/img/blocks/pricing/2.svg:
--------------------------------------------------------------------------------
1 |
--------------------------------------------------------------------------------
/build/qubely/assets/img/blocks/pricing/3.svg:
--------------------------------------------------------------------------------
1 |
--------------------------------------------------------------------------------
/build/qubely/assets/img/blocks/pricing/4.svg:
--------------------------------------------------------------------------------
1 |
--------------------------------------------------------------------------------
/build/qubely/assets/img/blocks/pricing/5.svg:
--------------------------------------------------------------------------------
1 |
--------------------------------------------------------------------------------
/build/qubely/assets/img/blocks/pricing/badges/1.svg:
--------------------------------------------------------------------------------
1 |
--------------------------------------------------------------------------------
/build/qubely/assets/img/blocks/pricing/badges/2.svg:
--------------------------------------------------------------------------------
1 |
--------------------------------------------------------------------------------
/build/qubely/assets/img/blocks/pricing/badges/3.svg:
--------------------------------------------------------------------------------
1 |
--------------------------------------------------------------------------------
/build/qubely/assets/img/blocks/pricing/badges/4.svg:
--------------------------------------------------------------------------------
1 |
--------------------------------------------------------------------------------
/build/qubely/assets/img/blocks/pricing/badges/5.svg:
--------------------------------------------------------------------------------
1 |
--------------------------------------------------------------------------------
/build/qubely/assets/img/blocks/pricing/badges/6.svg:
--------------------------------------------------------------------------------
1 |
--------------------------------------------------------------------------------
/build/qubely/assets/img/blocks/tab/pills.svg:
--------------------------------------------------------------------------------
1 |
--------------------------------------------------------------------------------
/build/qubely/assets/img/blocks/tab/tabs.svg:
--------------------------------------------------------------------------------
1 |
--------------------------------------------------------------------------------
/build/qubely/assets/img/blocks/tab/underline.svg:
--------------------------------------------------------------------------------
1 |
--------------------------------------------------------------------------------
/build/qubely/assets/img/blocks/team/1.svg:
--------------------------------------------------------------------------------
1 |
--------------------------------------------------------------------------------
/build/qubely/assets/img/blocks/team/2.svg:
--------------------------------------------------------------------------------
1 |
--------------------------------------------------------------------------------
/build/qubely/assets/img/blocks/team/3.svg:
--------------------------------------------------------------------------------
1 |
--------------------------------------------------------------------------------
/build/qubely/assets/img/blocks/testimonial/avatars/1.svg:
--------------------------------------------------------------------------------
1 |
--------------------------------------------------------------------------------
/build/qubely/assets/img/blocks/testimonial/avatars/2.svg:
--------------------------------------------------------------------------------
1 |
--------------------------------------------------------------------------------
/build/qubely/assets/img/blocks/testimonial/avatars/3.svg:
--------------------------------------------------------------------------------
1 |
--------------------------------------------------------------------------------
/build/qubely/assets/img/blocks/testimonial/avatars/4.svg:
--------------------------------------------------------------------------------
1 |
--------------------------------------------------------------------------------
/build/qubely/assets/img/blocks/videopopup/classic.svg:
--------------------------------------------------------------------------------
1 |
--------------------------------------------------------------------------------
/build/qubely/assets/img/blocks/videopopup/fill.svg:
--------------------------------------------------------------------------------
1 |
--------------------------------------------------------------------------------
/build/qubely/assets/img/disable-pattern.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/themeum/qubely/ea7fa36554e568de09246c0eada381f63acf8d56/build/qubely/assets/img/disable-pattern.png
--------------------------------------------------------------------------------
/build/qubely/assets/img/image-loader.gif:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/themeum/qubely/ea7fa36554e568de09246c0eada381f63acf8d56/build/qubely/assets/img/image-loader.gif
--------------------------------------------------------------------------------
/build/qubely/assets/img/options-logo.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/themeum/qubely/ea7fa36554e568de09246c0eada381f63acf8d56/build/qubely/assets/img/options-logo.png
--------------------------------------------------------------------------------
/build/qubely/assets/img/qubely-logo-white.svg:
--------------------------------------------------------------------------------
1 |
--------------------------------------------------------------------------------
/build/qubely/assets/img/qubely-medium.jpg:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/themeum/qubely/ea7fa36554e568de09246c0eada381f63acf8d56/build/qubely/assets/img/qubely-medium.jpg
--------------------------------------------------------------------------------
/build/qubely/assets/js/blocks/image-comparison.min.js:
--------------------------------------------------------------------------------
1 | const imageComparison=function(){const e=document.querySelectorAll(".comparison-scrollCircle"),t=document.querySelector(".qubely-block-image-comparison");document.querySelectorAll(".qubely-block-image-comparison img").forEach(e=>{e.style.width=t.offsetWidth+"px"}),e.forEach(e=>{const t=e.parentNode,o=t.querySelector(".resizable-img");function n(){let n=((event.pageX?event.pageX:event.touches[0].clientX)-t.getBoundingClientRect().left)/(t.offsetWidth/100);n<5?n=5:n>95&&(n=95),e.style.left=n+"%",o.style.width=n+"%"}function i(){t.removeEventListener("mousemove",n)}e.addEventListener("mousedown",function o(c){3!=c.which&&2!=c.which?(t.addEventListener("mousemove",n),t.addEventListener("mouseup",i),window.addEventListener("mouseup",i)):e.removeEventListener("mousedown",o)}),e.addEventListener("touchmove",n)})};"complete"===document.readyState||"loading"!==document.readyState&&!document.documentElement.doScroll?imageComparison():document.addEventListener("DOMContentLoaded",imageComparison);
--------------------------------------------------------------------------------
/build/qubely/assets/shape/drip.svg:
--------------------------------------------------------------------------------
1 |
--------------------------------------------------------------------------------
/build/qubely/assets/shape/hill-invert.svg:
--------------------------------------------------------------------------------
1 |
--------------------------------------------------------------------------------
/build/qubely/assets/shape/hill-wave.svg:
--------------------------------------------------------------------------------
1 |
6 |
--------------------------------------------------------------------------------
/build/qubely/assets/shape/hill.svg:
--------------------------------------------------------------------------------
1 |
--------------------------------------------------------------------------------
/build/qubely/assets/shape/pointy-wave.svg:
--------------------------------------------------------------------------------
1 |
--------------------------------------------------------------------------------
/build/qubely/assets/shape/single-wave.svg:
--------------------------------------------------------------------------------
1 |
--------------------------------------------------------------------------------
/build/qubely/assets/shape/slope-opacity.svg:
--------------------------------------------------------------------------------
1 |
--------------------------------------------------------------------------------
/build/qubely/assets/shape/slope.svg:
--------------------------------------------------------------------------------
1 |
--------------------------------------------------------------------------------
/build/qubely/assets/shape/turning-slope.svg:
--------------------------------------------------------------------------------
1 |
--------------------------------------------------------------------------------
/build/qubely/assets/shape/waves3-opacity.svg:
--------------------------------------------------------------------------------
1 |
--------------------------------------------------------------------------------
/build/qubely/assets/shape/wavy-opacity.svg:
--------------------------------------------------------------------------------
1 |
7 |
--------------------------------------------------------------------------------
/build/qubely/assets/shape/zigzag-shark.svg:
--------------------------------------------------------------------------------
1 |
7 |
--------------------------------------------------------------------------------
/build/qubely/core/template-canvas.php:
--------------------------------------------------------------------------------
1 |
13 |
14 | >
15 |
16 |
17 |
18 |
19 |
20 |
21 |
22 |
23 |
24 | >
25 |
26 |
27 |
28 |
29 |
30 |
31 |
--------------------------------------------------------------------------------
/build/qubely/index.php:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 | //span[@class="qubely-accordion-panel-handler-label"]
5 |
6 |
7 | //span[@class="qubely-tab-title-text"]
8 | //div[@class="image-type-nav-title"]
9 |
10 |
11 |
12 | _qubely_css
13 | _qubely_interaction_json
14 | __qubely_available_blocks
15 |
16 |
17 |
18 |
19 |
--------------------------------------------------------------------------------
/core/template-canvas.php:
--------------------------------------------------------------------------------
1 |
13 |
14 | >
15 |
16 |
17 |
18 |
19 |
20 |
21 |
22 |
23 |
24 | >
25 |
26 |
27 |
28 |
29 |
30 |
31 |
--------------------------------------------------------------------------------
/docs/hooks/active-theme-preset.md:
--------------------------------------------------------------------------------
1 | # Active Theme Preset
2 |
3 | Use following hook to active `Theme preset` of Qubely Global Settings from themes.
4 |
5 |
6 | ## Code
7 |
8 | ```php
9 |
10 | add_action('after_switch_theme', 'active_theme_preset');
11 |
12 | function active_theme_preset () {
13 | do_action('qubely_active_theme_preset');
14 | }
15 |
16 | ```
17 |
--------------------------------------------------------------------------------
/docs/hooks/row-container-width.md:
--------------------------------------------------------------------------------
1 | # Row Container width
2 |
3 | Row Container width specifies the max-width of `qubely-container` class.
4 |
5 | ### default values
6 | |Device |Width (px)|
7 | |:---|:---|
8 | |`Landscape Mobile`|540|
9 | |`Tablet`|720|
10 | |`Desktop`|960|
11 | |`Large Desktop`|1140|
12 |
13 |
14 | ## Update
15 | Using following filter hooks default values of `qubely-container` can be updated.
16 |
17 | ## Update container widths for all devices
18 |
19 | ```php
20 |
21 | add_filter('qubely_container_width', 'update_qubely_container_width');
22 |
23 | function update_qubely_container_width() {
24 | return array(
25 | 'sm' => 300,
26 | 'md' => 700,
27 | 'lg' => 900,
28 | 'xl' => 1100
29 | );
30 | }
31 | ```
32 | ### Use following filter hooks to update width for specific device
33 | * Mobile - `qubely_container_sm`
34 | * Tablet - `qubely_container_md`
35 | * Desktop - `qubely_container_lg`
36 | * Large Desktop - `qubely_container_xl`
37 |
38 | #### example
39 | ```php
40 |
41 | add_filter('qubely_container_xs', 'update_qubely_container_xs');
42 |
43 | function update_qubely_container_xs() {
44 | return 320;
45 | }
46 |
47 | ```
48 |
--------------------------------------------------------------------------------
/docs/readme.md:
--------------------------------------------------------------------------------
1 | ## Qubely Developer Docs
2 | Developer Documentation of Qubely
3 |
4 |
5 | ## Hooks:
6 | 1. [Row-container width](./hooks/row-container-width.md)
7 | 2. [Active Theme preset](./hooks/active-theme-preset.md)
8 |
9 | ## Field Types:
10 |
11 | 1. [Alignment](./fields/alignment.md)
12 | 2. [Background](./fields/background.md)
13 | 3. Border
14 | 4. Border Radius
15 | 5. Box Shadow
16 | 6. Button Group
17 | 7. Color
18 | 8. Color Advanced
19 | 9. Dimension
20 | 10. Drag Dimension
21 | 11. Dropdown
22 | 12. Gradient
23 | 13. Headings
24 | 14. Icon List
25 | 15. Icon Selector
26 | 16. Margin
27 | 17. Media
28 | 18. Padding
29 | 19. Radio Advanced
30 | 20. Range
31 | 21. Select
32 | 22. Separator
33 | 23. Tabs
34 | 24. Tab
35 | 25. Toggle
36 | 26. Typography
37 | 27. URL
--------------------------------------------------------------------------------
/index.php:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 | //span[@class="qubely-accordion-panel-handler-label"]
5 |
6 |
7 | //span[@class="qubely-tab-title-text"]
8 | //div[@class="image-type-nav-title"]
9 |
10 |
11 |
12 | _qubely_css
13 | _qubely_interaction_json
14 | __qubely_available_blocks
15 |
16 |
17 |
18 |
19 |
--------------------------------------------------------------------------------