diff --git a/Gruntfile.js b/Gruntfile.js index 143dad7cd..0a84b7236 100644 --- a/Gruntfile.js +++ b/Gruntfile.js @@ -1,5 +1,9 @@ 'use strict'; -module.exports = function(grunt) { +module.exports = function( grunt) { + const tailwindFileMap = { + 'admin/form-builder/views/form-builder.php': 'admin/form-builder.css', + } + var formBuilderAssets = require('./admin/form-builder/assets/js/form-builder-assets.js'); var pkg = grunt.file.readJSON('package.json'); @@ -112,7 +116,21 @@ module.exports = function(grunt) { tasks: [ 'shell:npm_build' ] - } + }, + + tailwind: { + files: [ + 'src/css/**/*.css', + 'admin/form-builder/views/*.php', + 'admin/form-builder/assets/js/**/*.php', + 'admin/form-builder/assets/js/**/*.js', + 'includes/Admin/**/*.php', + ], + tasks: ['shell:tailwind'], + options: { + spawn: false + } + }, }, // Clean up build directory @@ -224,6 +242,11 @@ module.exports = function(grunt) { shell: { npm_build: { command: 'npm run build', + }, + tailwind: { + command: function ( input, output ) { + return `npx tailwindcss -i ${input} -o ${output}`; + } } } }); @@ -241,6 +264,7 @@ module.exports = function(grunt) { grunt.loadNpmTasks( 'grunt-notify' ); grunt.loadNpmTasks( 'grunt-wp-readme-to-markdown' ); grunt.loadNpmTasks( 'grunt-shell' ); + grunt.loadNpmTasks( 'grunt-postcss' ); grunt.registerTask( 'default', [ 'less', 'concat', 'uglify', 'i18n' ] ); @@ -251,4 +275,28 @@ module.exports = function(grunt) { // build stuff grunt.registerTask( 'release', [ 'less', 'concat', 'uglify', 'i18n', 'readme' ] ); grunt.registerTask( 'zip', [ 'clean', 'copy', 'compress' ] ); + + grunt.event.on('watch', function(action, filepath, target) { + if (target === 'tailwind') { + grunt.task.run('tailwind'); + } + }); + + grunt.registerTask('tailwind', function() { + const done = this.async(); + + // Process each file mapping + Object.entries(tailwindFileMap).forEach(([phpFile, cssFile]) => { + const inputFile = `src/css/${cssFile}`; + const outputFile = `assets/css/${cssFile}`; + + // Ensure the input file exists + if (grunt.file.exists(inputFile)) { + // Run the tailwind command + grunt.task.run(`shell:tailwind:${inputFile}:${outputFile}`); + } + }); + + done(); + }); }; diff --git a/admin/form-builder/assets/js/components/builder-stage/template.php b/admin/form-builder/assets/js/components/builder-stage/template.php index bbab45717..159161406 100644 --- a/admin/form-builder/assets/js/components/builder-stage/template.php +++ b/admin/form-builder/assets/js/components/builder-stage/template.php @@ -1,81 +1,192 @@ -
+

- - +
  • +
     
    + +
  • +

    -
    • - : {{ field.name }} | : {{ field.meta_value }} - -
      -

      - - - -

      +
      + : {{ field.name }} | + : {{ field.meta_value }} +
      +
      +
      + + + + + Remove + + + + + + + + +
    - -
    +
    diff --git a/admin/form-builder/assets/js/components/form-checkbox_field/template.php b/admin/form-builder/assets/js/components/form-checkbox_field/template.php index 0111026b0..9c672b254 100644 --- a/admin/form-builder/assets/js/components/form-checkbox_field/template.php +++ b/admin/form-builder/assets/js/components/form-checkbox_field/template.php @@ -1,16 +1,38 @@
    - + class="wpuf-h-4 wpuf-w-4 wpuf-rounded wpuf-border-gray-300 wpuf-text-indigo-600 focus:wpuf-ring-indigo-600 !wpuf-mt-0.5"> + +
    + + - +
    +
    + + +
    +
    + +

    diff --git a/admin/form-builder/assets/js/components/form-column_field/index.js b/admin/form-builder/assets/js/components/form-column_field/index.js index c1adddbb8..25fb0f3cf 100644 --- a/admin/form-builder/assets/js/components/form-column_field/index.js +++ b/admin/form-builder/assets/js/components/form-column_field/index.js @@ -38,7 +38,6 @@ Vue.component('form-column_field', { self.resizeColumns(self.field.columns); }); - columnFieldArea.mouseleave(function() { columnFields.unbind( "mouseup" ); columnFields.unbind( "mousemove" ); @@ -120,6 +119,10 @@ Vue.component('form-column_field', { field_settings: function () { return this.$store.state.field_settings; }, + + action_button_classes: function() { + return 'hover:wpuf-cursor-pointer hover:wpuf-text-white'; + } }, methods: { diff --git a/admin/form-builder/assets/js/components/form-column_field/template.php b/admin/form-builder/assets/js/components/form-column_field/template.php index 20edae32f..b5febdf64 100644 --- a/admin/form-builder/assets/js/components/form-column_field/template.php +++ b/admin/form-builder/assets/js/components/form-column_field/template.php @@ -1,47 +1,120 @@ -
    -
    -
    - -
    -
    -
    \ No newline at end of file +
    diff --git a/admin/form-builder/assets/js/components/form-custom_hidden_field/template.php b/admin/form-builder/assets/js/components/form-custom_hidden_field/template.php index 63564e1fd..d50004369 100644 --- a/admin/form-builder/assets/js/components/form-custom_hidden_field/template.php +++ b/admin/form-builder/assets/js/components/form-custom_hidden_field/template.php @@ -1,10 +1,10 @@
    - +

    diff --git a/admin/form-builder/assets/js/components/form-dropdown_field/template.php b/admin/form-builder/assets/js/components/form-dropdown_field/template.php index 691c46644..1c08353fa 100644 --- a/admin/form-builder/assets/js/components/form-dropdown_field/template.php +++ b/admin/form-builder/assets/js/components/form-dropdown_field/template.php @@ -1,9 +1,8 @@
    - - +

    diff --git a/admin/form-builder/assets/js/components/form-email_address/template.php b/admin/form-builder/assets/js/components/form-email_address/template.php index 34e6d90bc..54848ed40 100644 --- a/admin/form-builder/assets/js/components/form-email_address/template.php +++ b/admin/form-builder/assets/js/components/form-email_address/template.php @@ -1,10 +1,10 @@
    - +

    diff --git a/admin/form-builder/assets/js/components/form-featured_image/template.php b/admin/form-builder/assets/js/components/form-featured_image/template.php index 392a947d0..9785cd681 100644 --- a/admin/form-builder/assets/js/components/form-featured_image/template.php +++ b/admin/form-builder/assets/js/components/form-featured_image/template.php @@ -1,16 +1,20 @@
    - +

    diff --git a/admin/form-builder/assets/js/components/form-image_upload/template.php b/admin/form-builder/assets/js/components/form-image_upload/template.php index 6f754a4c8..738c7f6a2 100644 --- a/admin/form-builder/assets/js/components/form-image_upload/template.php +++ b/admin/form-builder/assets/js/components/form-image_upload/template.php @@ -1,16 +1,24 @@
    - +

    diff --git a/admin/form-builder/assets/js/components/form-multiple_select/template.php b/admin/form-builder/assets/js/components/form-multiple_select/template.php index fbb44cc16..b17c6a8f7 100644 --- a/admin/form-builder/assets/js/components/form-multiple_select/template.php +++ b/admin/form-builder/assets/js/components/form-multiple_select/template.php @@ -1,6 +1,7 @@
    + :class="builder_class_names('textareafield')">{{ field.default }} - - + + +

    diff --git a/admin/form-builder/assets/js/components/form-website_url/template.php b/admin/form-builder/assets/js/components/form-website_url/template.php index 7ff7ce442..c5590df1f 100644 --- a/admin/form-builder/assets/js/components/form-website_url/template.php +++ b/admin/form-builder/assets/js/components/form-website_url/template.php @@ -1,10 +1,10 @@
    - +

    diff --git a/admin/form-builder/assets/js/form-builder.js b/admin/form-builder/assets/js/form-builder.js index 8349eb77a..324a45851 100644 --- a/admin/form-builder/assets/js/form-builder.js +++ b/admin/form-builder/assets/js/form-builder.js @@ -410,7 +410,12 @@ is_form_saved: false, is_form_switcher: false, post_title_editing: false, - isDirty: false + isDirty: false, + enableMultistep: false, + shortcodeCopied: false, + active_tab: 'form-editor', + active_settings_tab: '#wpuf-metabox-settings', + logoUrl: wpuf_form_builder.assetUrl + '/images/wpuf-icon-circle.svg' }, computed: { @@ -448,7 +453,7 @@ }); return meta_key.map(function(name) { return '{' + name +'}' }).join( ); - } + }, }, watch: { @@ -471,33 +476,31 @@ }, mounted: function () { - // primary nav tabs and their contents - this.bind_tab_on_click($('#wpuf-form-builder > fieldset > .nav-tab-wrapper > a'), '#wpuf-form-builder'); - // secondary settings tabs and their contents - var settings_tabs = $('#wpuf-form-builder-settings .nav-tab'), - settings_tab_contents = $('#wpuf-form-builder-settings .tab-contents .group'); - - settings_tabs.first().addClass('nav-tab-active'); - settings_tab_contents.first().addClass('active'); + var settings_tabs = $('#wpuf-form-builder-settings-tabs .nav-tab'); + var self = this; - this.bind_tab_on_click(settings_tabs, '#wpuf-form-builder-settings'); + // add a click listener to each settings_tab + settings_tabs.each(function () { + $(this).bind('click', self.setActiveSettingsTab ); + }); var clipboard = new window.Clipboard('.form-id'); $(".form-id").tooltip(); - var self = this; - clipboard.on('success', function(e) { // Show copied tooltip $(e.trigger) - .attr('data-original-title', 'Copied!') + .attr('data-original-title', 'Shortcode copied!') .tooltip('show'); + self.shortcodeCopied = true; + // Reset the copied tooltip setTimeout(function() { $(e.trigger).tooltip('hide') .attr('data-original-title', self.i18n.copy_shortcode); + self.shortcodeCopied = false; }, 1000); e.clearSelection(); @@ -511,20 +514,8 @@ }, methods: { - // tabs and their contents - bind_tab_on_click: function (tabs, scope) { - tabs.on('click', function (e) { - e.preventDefault(); - - var button = $(this), - tab_contents = $(scope + ' > fieldset > .tab-contents'), - group_id = button.attr('href'); - - button.addClass('nav-tab-active').siblings('.nav-tab-active').removeClass('nav-tab-active'); - - tab_contents.children().removeClass('active'); - $(group_id).addClass('active'); - }); + setActiveSettingsTab: function (e) { + this.active_settings_tab = $(e.target).attr('href'); }, // switch form @@ -899,11 +890,11 @@ // on DOM ready $(function() { - resizeBuilderContainer(); - - $("#collapse-menu").click(function () { - resizeBuilderContainer(); - }); + // resizeBuilderContainer(); + // + // $("#collapse-menu").click(function () { + // resizeBuilderContainer(); + // }); function resizeBuilderContainer() { if ($(document.body).hasClass('folded')) { diff --git a/admin/form-builder/assets/js/mixins/add-form-field.js b/admin/form-builder/assets/js/mixins/add-form-field.js index 7d37fac15..4e9442130 100644 --- a/admin/form-builder/assets/js/mixins/add-form-field.js +++ b/admin/form-builder/assets/js/mixins/add-form-field.js @@ -46,4 +46,10 @@ wpuf_mixins.add_form_field = { this.$store.commit('add_form_field_element', payload); }, }, + + computed: { + action_button_classes: function() { + return 'wpuf-p-2 hover:wpuf-cursor-pointer hover:wpuf-text-white'; + } + }, }; diff --git a/admin/form-builder/assets/js/mixins/form-field.js b/admin/form-builder/assets/js/mixins/form-field.js index 18aff97b9..c0169a190 100644 --- a/admin/form-builder/assets/js/mixins/form-field.js +++ b/admin/form-builder/assets/js/mixins/form-field.js @@ -33,6 +33,32 @@ wpuf_mixins.form_field_mixin = { ]; }, + builder_class_names: function(type_class) { + var commonClasses = ''; + + switch (type_class) { + case 'text': + case 'url': + case 'email': + case 'textareafield': + case 'textfield': + case 'select': + commonClasses = 'wpuf-block wpuf-min-w-full wpuf-rounded-md wpuf-py-1.5 wpuf-text-gray-900 !wpuf-shadow-sm placeholder:wpuf-text-gray-400 sm:wpuf-text-sm sm:wpuf-leading-6 wpuf-border !wpuf-border-gray-300 wpuf-max-w-full'; + break; + + case 'upload_btn': + commonClasses = 'file-selector wpuf-rounded-md wpuf-btn-secondary'; + break; + } + + return [ + type_class, + this.required_class(), + 'wpuf_' + this.field.name + '_' + this.form_id, + commonClasses + ]; + }, + required_class: function () { return ('yes' === this.required) ? 'required' : ''; }, diff --git a/admin/form-builder/assets/less/form-builder.less b/admin/form-builder/assets/less/form-builder.less index 0470be569..3a6c2dde2 100644 --- a/admin/form-builder/assets/less/form-builder.less +++ b/admin/form-builder/assets/less/form-builder.less @@ -1126,16 +1126,6 @@ ul.wpuf-form li .wpuf-password-field:after { } .wpuf-form-template-modal { - background: #fff; - position: fixed; - top: 5%; - bottom: 5%; - right: 10%; - left: 10%; - // display: block; - display: none; - box-shadow: 0 1px 20px 5px rgba(0, 0, 0, 0.1); - z-index: 160000; &.show { display: block; diff --git a/admin/form-builder/views/form-builder-old.php b/admin/form-builder/views/form-builder-old.php new file mode 100644 index 000000000..1e3381f98 --- /dev/null +++ b/admin/form-builder/views/form-builder-old.php @@ -0,0 +1,120 @@ +
    +
    + + +
    +
    +
    +
    + {{ post.post_title }} + + + + + + + + 1 && isset( $shortcodes[0]['type'] ) ) { + foreach ( $shortcodes as $shortcode ) { + /* translators: %s: form id */ + printf( " %s: #{{ post.ID }}", sprintf( esc_html( __( 'Click to copy %s shortcode', 'wp-user-frontend' ) ), esc_attr( $shortcode['type'] ) ), sprintf( '[%s type="%s" id="%s"]', esc_attr( $shortcode['name'] ), esc_attr( $shortcode['type'] ), esc_attr( $form_id ) ), esc_attr( ucwords( $shortcode['type'] ) ), esc_attr( $shortcode['type'] ) ); + } + } else { + printf( " #{{ post.ID }}", esc_html( __( 'Click to copy shortcode', 'wp-user-frontend' ) ), '[' . esc_attr( $shortcodes[0]['name'] ) . ' id="' . esc_attr( $form_id ) . '"]' ); + } + ?> +
    + + + +
    +
    + +
    +
    +
    + +
    +
    + +
    + +
    +
    + +
    +
    +
    +
    + +
    +
    + + +
    + +
    +
    +
    + + +
    + + + + + + + + +
    +
    diff --git a/admin/form-builder/views/form-builder.php b/admin/form-builder/views/form-builder.php index ed6271c7b..769261680 100644 --- a/admin/form-builder/views/form-builder.php +++ b/admin/form-builder/views/form-builder.php @@ -1,120 +1,183 @@ -
    -
    - - -
    -
    -
    -
    - {{ post.post_title }} - - - - - - - - 1 && isset( $shortcodes[0]['type'] ) ) { - foreach ( $shortcodes as $shortcode ) { - /* translators: %s: form id */ - printf( " %s: #{{ post.ID }}", sprintf( esc_html( __( 'Click to copy %s shortcode', 'wp-user-frontend' ) ), esc_attr( $shortcode['type'] ) ), sprintf( '[%s type="%s" id="%s"]', esc_attr( $shortcode['name'] ), esc_attr( $shortcode['type'] ), esc_attr( $form_id ) ), esc_attr( ucwords( $shortcode['type'] ) ), esc_attr( $shortcode['type'] ) ); - } - } else { - printf( " #{{ post.ID }}", esc_html( __( 'Click to copy shortcode', 'wp-user-frontend' ) ), '[' . esc_attr( $shortcodes[0]['name'] ) . ' id="' . esc_attr( $form_id ) . '"]' ); - } - ?> -
    - - - -
    -
    - + +
    +
    +
    + WPUF Icon +
    -
    - -
    -
    - -
    - -
    -
    - -
    -
    -
    -
    - -
    -
    - - -
    - -
    -
    -
    +
    + + + 1 && isset( $shortcodes[0]['type'] ) ) { + foreach ( $shortcodes as $shortcode ) { + /* translators: %s: form id */ + printf( " %s: #{{ post.ID }}", sprintf( esc_html( __( 'Click to copy %s shortcode', 'wp-user-frontend' ) ), esc_attr( $shortcode['type'] ) ), sprintf( '[%s type="%s" id="%s"]', esc_attr( $shortcode['name'] ), esc_attr( $shortcode['type'] ), esc_attr( $form_id ) ), esc_attr( ucwords( $shortcode['type'] ) ), esc_attr( $shortcode['type'] ) ); + } + } else { + ?> + ">#{{ post.ID }} + + + + + + + + + + + + +
    +
    + + + + + + + + +
    +
    + - +
    +
    +
    + + + + + + + +
    +
    + + +
    + +
    +
    + +
    +
    Field attributes
    +
    +
    +
    + +
    +
    +
    + +
    +
    + - - - + + + - + - -
    -
    + + diff --git a/assets/css/admin.css b/assets/css/admin.css index 27f72c7db..36b8b97b6 100644 --- a/assets/css/admin.css +++ b/assets/css/admin.css @@ -584,17 +584,9 @@ ul.wpuf-form .wpuf-field-columns .wpuf-column-field-inner-columns .wpuf-column . position: relative; } ul.wpuf-form .wpuf-field-columns .wpuf-column-field-inner-columns .wpuf-column .wpuf-column-inner-fields ul.wpuf-column-fields-sortable-list { - border: 1px dashed #ffb900; - background: rgba(255, 185, 0, 0.08); margin: 0; padding: 0 0 50px 0; } -ul.wpuf-form .wpuf-field-columns .wpuf-column-field-inner-columns .wpuf-column .wpuf-column-inner-fields ul.wpuf-column-fields-sortable-list li.column-field-items { - background: #fff; - -webkit-box-shadow: 0 0 10px rgba(0, 0, 0, 0.3); - box-shadow: 0 0 10px rgba(0, 0, 0, 0.3); - position: relative; -} ul.wpuf-form .wpuf-field-columns .wpuf-column-field-inner-columns .wpuf-column .wpuf-column-inner-fields ul.wpuf-column-fields-sortable-list li.column-field-items.current-editing { background-color: rgba(255, 185, 0, 0.15); } diff --git a/assets/css/admin/form-builder.css b/assets/css/admin/form-builder.css new file mode 100644 index 000000000..f21955b37 --- /dev/null +++ b/assets/css/admin/form-builder.css @@ -0,0 +1,4057 @@ +/* +! tailwindcss v3.4.11 | MIT License | https://tailwindcss.com +*/ + +/* +1. Prevent padding and border from affecting element width. (https://github.com/mozdevs/cssremedy/issues/4) +2. Allow adding a border to an element by just adding a border-width. (https://github.com/tailwindcss/tailwindcss/pull/116) +*/ + +*, +::before, +::after { + box-sizing: border-box; + /* 1 */ + border-width: 0; + /* 2 */ + border-style: solid; + /* 2 */ + border-color: #e5e7eb; + /* 2 */ +} + +::before, +::after { + --tw-content: ''; +} + +/* +1. Use a consistent sensible line-height in all browsers. +2. Prevent adjustments of font size after orientation changes in iOS. +3. Use a more readable tab size. +4. Use the user's configured `sans` font-family by default. +5. Use the user's configured `sans` font-feature-settings by default. +6. Use the user's configured `sans` font-variation-settings by default. +7. Disable tap highlights on iOS +*/ + +html, +:host { + line-height: 1.5; + /* 1 */ + -webkit-text-size-adjust: 100%; + /* 2 */ + -moz-tab-size: 4; + /* 3 */ + -o-tab-size: 4; + tab-size: 4; + /* 3 */ + font-family: ui-sans-serif, system-ui, sans-serif, "Apple Color Emoji", "Segoe UI Emoji", "Segoe UI Symbol", "Noto Color Emoji"; + /* 4 */ + font-feature-settings: normal; + /* 5 */ + font-variation-settings: normal; + /* 6 */ + -webkit-tap-highlight-color: transparent; + /* 7 */ +} + +/* +1. Remove the margin in all browsers. +2. Inherit line-height from `html` so users can set them as a class directly on the `html` element. +*/ + +body { + margin: 0; + /* 1 */ + line-height: inherit; + /* 2 */ +} + +/* +1. Add the correct height in Firefox. +2. Correct the inheritance of border color in Firefox. (https://bugzilla.mozilla.org/show_bug.cgi?id=190655) +3. Ensure horizontal rules are visible by default. +*/ + +hr { + height: 0; + /* 1 */ + color: inherit; + /* 2 */ + border-top-width: 1px; + /* 3 */ +} + +/* +Add the correct text decoration in Chrome, Edge, and Safari. +*/ + +abbr:where([title]) { + -webkit-text-decoration: underline dotted; + text-decoration: underline dotted; +} + +/* +Remove the default font size and weight for headings. +*/ + +h1, +h2, +h3, +h4, +h5, +h6 { + font-size: inherit; + font-weight: inherit; +} + +/* +Reset links to optimize for opt-in styling instead of opt-out. +*/ + +a { + color: inherit; + text-decoration: inherit; +} + +/* +Add the correct font weight in Edge and Safari. +*/ + +b, +strong { + font-weight: bolder; +} + +/* +1. Use the user's configured `mono` font-family by default. +2. Use the user's configured `mono` font-feature-settings by default. +3. Use the user's configured `mono` font-variation-settings by default. +4. Correct the odd `em` font sizing in all browsers. +*/ + +code, +kbd, +samp, +pre { + font-family: ui-monospace, SFMono-Regular, Menlo, Monaco, Consolas, "Liberation Mono", "Courier New", monospace; + /* 1 */ + font-feature-settings: normal; + /* 2 */ + font-variation-settings: normal; + /* 3 */ + font-size: 1em; + /* 4 */ +} + +/* +Add the correct font size in all browsers. +*/ + +small { + font-size: 80%; +} + +/* +Prevent `sub` and `sup` elements from affecting the line height in all browsers. +*/ + +sub, +sup { + font-size: 75%; + line-height: 0; + position: relative; + vertical-align: baseline; +} + +sub { + bottom: -0.25em; +} + +sup { + top: -0.5em; +} + +/* +1. Remove text indentation from table contents in Chrome and Safari. (https://bugs.chromium.org/p/chromium/issues/detail?id=999088, https://bugs.webkit.org/show_bug.cgi?id=201297) +2. Correct table border color inheritance in all Chrome and Safari. (https://bugs.chromium.org/p/chromium/issues/detail?id=935729, https://bugs.webkit.org/show_bug.cgi?id=195016) +3. Remove gaps between table borders by default. +*/ + +table { + text-indent: 0; + /* 1 */ + border-color: inherit; + /* 2 */ + border-collapse: collapse; + /* 3 */ +} + +/* +1. Change the font styles in all browsers. +2. Remove the margin in Firefox and Safari. +3. Remove default padding in all browsers. +*/ + +button, +input, +optgroup, +select, +textarea { + font-family: inherit; + /* 1 */ + font-feature-settings: inherit; + /* 1 */ + font-variation-settings: inherit; + /* 1 */ + font-size: 100%; + /* 1 */ + font-weight: inherit; + /* 1 */ + line-height: inherit; + /* 1 */ + letter-spacing: inherit; + /* 1 */ + color: inherit; + /* 1 */ + margin: 0; + /* 2 */ + padding: 0; + /* 3 */ +} + +/* +Remove the inheritance of text transform in Edge and Firefox. +*/ + +button, +select { + text-transform: none; +} + +/* +1. Correct the inability to style clickable types in iOS and Safari. +2. Remove default button styles. +*/ + +button, +input:where([type='button']), +input:where([type='reset']), +input:where([type='submit']) { + -webkit-appearance: button; + /* 1 */ + background-color: transparent; + /* 2 */ + background-image: none; + /* 2 */ +} + +/* +Use the modern Firefox focus style for all focusable elements. +*/ + +:-moz-focusring { + outline: auto; +} + +/* +Remove the additional `:invalid` styles in Firefox. (https://github.com/mozilla/gecko-dev/blob/2f9eacd9d3d995c937b4251a5557d95d494c9be1/layout/style/res/forms.css#L728-L737) +*/ + +:-moz-ui-invalid { + box-shadow: none; +} + +/* +Add the correct vertical alignment in Chrome and Firefox. +*/ + +progress { + vertical-align: baseline; +} + +/* +Correct the cursor style of increment and decrement buttons in Safari. +*/ + +::-webkit-inner-spin-button, +::-webkit-outer-spin-button { + height: auto; +} + +/* +1. Correct the odd appearance in Chrome and Safari. +2. Correct the outline style in Safari. +*/ + +[type='search'] { + -webkit-appearance: textfield; + /* 1 */ + outline-offset: -2px; + /* 2 */ +} + +/* +Remove the inner padding in Chrome and Safari on macOS. +*/ + +::-webkit-search-decoration { + -webkit-appearance: none; +} + +/* +1. Correct the inability to style clickable types in iOS and Safari. +2. Change font properties to `inherit` in Safari. +*/ + +::-webkit-file-upload-button { + -webkit-appearance: button; + /* 1 */ + font: inherit; + /* 2 */ +} + +/* +Add the correct display in Chrome and Safari. +*/ + +summary { + display: list-item; +} + +/* +Removes the default spacing and border for appropriate elements. +*/ + +blockquote, +dl, +dd, +h1, +h2, +h3, +h4, +h5, +h6, +hr, +figure, +p, +pre { + margin: 0; +} + +fieldset { + margin: 0; + padding: 0; +} + +legend { + padding: 0; +} + +ol, +ul, +menu { + list-style: none; + margin: 0; + padding: 0; +} + +/* +Reset default styling for dialogs. +*/ + +dialog { + padding: 0; +} + +/* +Prevent resizing textareas horizontally by default. +*/ + +textarea { + resize: vertical; +} + +/* +1. Reset the default placeholder opacity in Firefox. (https://github.com/tailwindlabs/tailwindcss/issues/3300) +2. Set the default placeholder color to the user's configured gray 400 color. +*/ + +input::-moz-placeholder, textarea::-moz-placeholder { + opacity: 1; + /* 1 */ + color: #9ca3af; + /* 2 */ +} + +input::placeholder, +textarea::placeholder { + opacity: 1; + /* 1 */ + color: #9ca3af; + /* 2 */ +} + +/* +Set the default cursor for buttons. +*/ + +button, +[role="button"] { + cursor: pointer; +} + +/* +Make sure disabled buttons don't get the pointer cursor. +*/ + +:disabled { + cursor: default; +} + +/* +1. Make replaced elements `display: block` by default. (https://github.com/mozdevs/cssremedy/issues/14) +2. Add `vertical-align: middle` to align replaced elements more sensibly by default. (https://github.com/jensimmons/cssremedy/issues/14#issuecomment-634934210) + This can trigger a poorly considered lint error in some tools but is included by design. +*/ + +img, +svg, +video, +canvas, +audio, +iframe, +embed, +object { + display: block; + /* 1 */ + vertical-align: middle; + /* 2 */ +} + +/* +Constrain images and videos to the parent width and preserve their intrinsic aspect ratio. (https://github.com/mozdevs/cssremedy/issues/14) +*/ + +img, +video { + max-width: 100%; + height: auto; +} + +/* Make elements with the HTML hidden attribute stay hidden by default */ + +[hidden] { + display: none; +} + +[type='text'],input:where(:not([type])),[type='email'],[type='url'],[type='password'],[type='number'],[type='date'],[type='datetime-local'],[type='month'],[type='search'],[type='tel'],[type='time'],[type='week'],[multiple],textarea,select { + -webkit-appearance: none; + -moz-appearance: none; + appearance: none; + background-color: #fff; + border-color: #6b7280; + border-width: 1px; + border-radius: 0px; + padding-top: 0.5rem; + padding-right: 0.75rem; + padding-bottom: 0.5rem; + padding-left: 0.75rem; + font-size: 1rem; + line-height: 1.5rem; + --tw-shadow: 0 0 #0000; +} + +[type='text']:focus, input:where(:not([type])):focus, [type='email']:focus, [type='url']:focus, [type='password']:focus, [type='number']:focus, [type='date']:focus, [type='datetime-local']:focus, [type='month']:focus, [type='search']:focus, [type='tel']:focus, [type='time']:focus, [type='week']:focus, [multiple]:focus, textarea:focus, select:focus { + outline: 2px solid transparent; + outline-offset: 2px; + --tw-ring-inset: var(--tw-empty,/*!*/ /*!*/); + --tw-ring-offset-width: 0px; + --tw-ring-offset-color: #fff; + --tw-ring-color: #2563eb; + --tw-ring-offset-shadow: var(--tw-ring-inset) 0 0 0 var(--tw-ring-offset-width) var(--tw-ring-offset-color); + --tw-ring-shadow: var(--tw-ring-inset) 0 0 0 calc(1px + var(--tw-ring-offset-width)) var(--tw-ring-color); + box-shadow: var(--tw-ring-offset-shadow), var(--tw-ring-shadow), var(--tw-shadow); + border-color: #2563eb; +} + +input::-moz-placeholder, textarea::-moz-placeholder { + color: #6b7280; + opacity: 1; +} + +input::placeholder,textarea::placeholder { + color: #6b7280; + opacity: 1; +} + +::-webkit-datetime-edit-fields-wrapper { + padding: 0; +} + +::-webkit-date-and-time-value { + min-height: 1.5em; + text-align: inherit; +} + +::-webkit-datetime-edit { + display: inline-flex; +} + +::-webkit-datetime-edit,::-webkit-datetime-edit-year-field,::-webkit-datetime-edit-month-field,::-webkit-datetime-edit-day-field,::-webkit-datetime-edit-hour-field,::-webkit-datetime-edit-minute-field,::-webkit-datetime-edit-second-field,::-webkit-datetime-edit-millisecond-field,::-webkit-datetime-edit-meridiem-field { + padding-top: 0; + padding-bottom: 0; +} + +select { + background-image: url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' fill='none' viewBox='0 0 20 20'%3e%3cpath stroke='%236b7280' stroke-linecap='round' stroke-linejoin='round' stroke-width='1.5' d='M6 8l4 4 4-4'/%3e%3c/svg%3e"); + background-position: right 0.5rem center; + background-repeat: no-repeat; + background-size: 1.5em 1.5em; + padding-right: 2.5rem; + -webkit-print-color-adjust: exact; + print-color-adjust: exact; +} + +[multiple],[size]:where(select:not([size="1"])) { + background-image: initial; + background-position: initial; + background-repeat: unset; + background-size: initial; + padding-right: 0.75rem; + -webkit-print-color-adjust: unset; + print-color-adjust: unset; +} + +[type='checkbox'],[type='radio'] { + -webkit-appearance: none; + -moz-appearance: none; + appearance: none; + padding: 0; + -webkit-print-color-adjust: exact; + print-color-adjust: exact; + display: inline-block; + vertical-align: middle; + background-origin: border-box; + -webkit-user-select: none; + -moz-user-select: none; + user-select: none; + flex-shrink: 0; + height: 1rem; + width: 1rem; + color: #2563eb; + background-color: #fff; + border-color: #6b7280; + border-width: 1px; + --tw-shadow: 0 0 #0000; +} + +[type='checkbox'] { + border-radius: 0px; +} + +[type='radio'] { + border-radius: 100%; +} + +[type='checkbox']:focus,[type='radio']:focus { + outline: 2px solid transparent; + outline-offset: 2px; + --tw-ring-inset: var(--tw-empty,/*!*/ /*!*/); + --tw-ring-offset-width: 2px; + --tw-ring-offset-color: #fff; + --tw-ring-color: #2563eb; + --tw-ring-offset-shadow: var(--tw-ring-inset) 0 0 0 var(--tw-ring-offset-width) var(--tw-ring-offset-color); + --tw-ring-shadow: var(--tw-ring-inset) 0 0 0 calc(2px + var(--tw-ring-offset-width)) var(--tw-ring-color); + box-shadow: var(--tw-ring-offset-shadow), var(--tw-ring-shadow), var(--tw-shadow); +} + +[type='checkbox']:checked,[type='radio']:checked { + border-color: transparent; + background-color: currentColor; + background-size: 100% 100%; + background-position: center; + background-repeat: no-repeat; +} + +[type='checkbox']:checked { + background-image: url("data:image/svg+xml,%3csvg viewBox='0 0 16 16' fill='white' xmlns='http://www.w3.org/2000/svg'%3e%3cpath d='M12.207 4.793a1 1 0 010 1.414l-5 5a1 1 0 01-1.414 0l-2-2a1 1 0 011.414-1.414L6.5 9.086l4.293-4.293a1 1 0 011.414 0z'/%3e%3c/svg%3e"); +} + +@media (forced-colors: active) { + [type='checkbox']:checked { + -webkit-appearance: auto; + -moz-appearance: auto; + appearance: auto; + } +} + +[type='radio']:checked { + background-image: url("data:image/svg+xml,%3csvg viewBox='0 0 16 16' fill='white' xmlns='http://www.w3.org/2000/svg'%3e%3ccircle cx='8' cy='8' r='3'/%3e%3c/svg%3e"); +} + +@media (forced-colors: active) { + [type='radio']:checked { + -webkit-appearance: auto; + -moz-appearance: auto; + appearance: auto; + } +} + +[type='checkbox']:checked:hover,[type='checkbox']:checked:focus,[type='radio']:checked:hover,[type='radio']:checked:focus { + border-color: transparent; + background-color: currentColor; +} + +[type='checkbox']:indeterminate { + background-image: url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' fill='none' viewBox='0 0 16 16'%3e%3cpath stroke='white' stroke-linecap='round' stroke-linejoin='round' stroke-width='2' d='M4 8h8'/%3e%3c/svg%3e"); + border-color: transparent; + background-color: currentColor; + background-size: 100% 100%; + background-position: center; + background-repeat: no-repeat; +} + +@media (forced-colors: active) { + [type='checkbox']:indeterminate { + -webkit-appearance: auto; + -moz-appearance: auto; + appearance: auto; + } +} + +[type='checkbox']:indeterminate:hover,[type='checkbox']:indeterminate:focus { + border-color: transparent; + background-color: currentColor; +} + +[type='file'] { + background: unset; + border-color: inherit; + border-width: 0; + border-radius: 0; + padding: 0; + font-size: unset; + line-height: inherit; +} + +[type='file']:focus { + outline: 1px solid ButtonText; + outline: 1px auto -webkit-focus-ring-color; +} + +:root, +[data-theme] { + background-color: var(--fallback-b1,oklch(var(--b1)/1)); + color: var(--fallback-bc,oklch(var(--bc)/1)); +} + +@supports not (color: oklch(0% 0 0)) { + :root { + color-scheme: light; + --fallback-p: #491eff; + --fallback-pc: #d4dbff; + --fallback-s: #ff41c7; + --fallback-sc: #fff9fc; + --fallback-a: #00cfbd; + --fallback-ac: #00100d; + --fallback-n: #2b3440; + --fallback-nc: #d7dde4; + --fallback-b1: #ffffff; + --fallback-b2: #e5e6e6; + --fallback-b3: #e5e6e6; + --fallback-bc: #1f2937; + --fallback-in: #00b3f0; + --fallback-inc: #000000; + --fallback-su: #00ca92; + --fallback-suc: #000000; + --fallback-wa: #ffc22d; + --fallback-wac: #000000; + --fallback-er: #ff6f70; + --fallback-erc: #000000; + } + + @media (prefers-color-scheme: dark) { + :root { + color-scheme: dark; + --fallback-p: #7582ff; + --fallback-pc: #050617; + --fallback-s: #ff71cf; + --fallback-sc: #190211; + --fallback-a: #00c7b5; + --fallback-ac: #000e0c; + --fallback-n: #2a323c; + --fallback-nc: #a6adbb; + --fallback-b1: #1d232a; + --fallback-b2: #191e24; + --fallback-b3: #15191e; + --fallback-bc: #a6adbb; + --fallback-in: #00b3f0; + --fallback-inc: #000000; + --fallback-su: #00ca92; + --fallback-suc: #000000; + --fallback-wa: #ffc22d; + --fallback-wac: #000000; + --fallback-er: #ff6f70; + --fallback-erc: #000000; + } + } +} + +html { + -webkit-tap-highlight-color: transparent; +} + +* { + scrollbar-color: color-mix(in oklch, currentColor 35%, transparent) transparent; +} + +*:hover { + scrollbar-color: color-mix(in oklch, currentColor 60%, transparent) transparent; +} + +*, ::before, ::after { + --tw-border-spacing-x: 0; + --tw-border-spacing-y: 0; + --tw-translate-x: 0; + --tw-translate-y: 0; + --tw-rotate: 0; + --tw-skew-x: 0; + --tw-skew-y: 0; + --tw-scale-x: 1; + --tw-scale-y: 1; + --tw-pan-x: ; + --tw-pan-y: ; + --tw-pinch-zoom: ; + --tw-scroll-snap-strictness: proximity; + --tw-gradient-from-position: ; + --tw-gradient-via-position: ; + --tw-gradient-to-position: ; + --tw-ordinal: ; + --tw-slashed-zero: ; + --tw-numeric-figure: ; + --tw-numeric-spacing: ; + --tw-numeric-fraction: ; + --tw-ring-inset: ; + --tw-ring-offset-width: 0px; + --tw-ring-offset-color: #fff; + --tw-ring-color: rgb(59 130 246 / 0.5); + --tw-ring-offset-shadow: 0 0 #0000; + --tw-ring-shadow: 0 0 #0000; + --tw-shadow: 0 0 #0000; + --tw-shadow-colored: 0 0 #0000; + --tw-blur: ; + --tw-brightness: ; + --tw-contrast: ; + --tw-grayscale: ; + --tw-hue-rotate: ; + --tw-invert: ; + --tw-saturate: ; + --tw-sepia: ; + --tw-drop-shadow: ; + --tw-backdrop-blur: ; + --tw-backdrop-brightness: ; + --tw-backdrop-contrast: ; + --tw-backdrop-grayscale: ; + --tw-backdrop-hue-rotate: ; + --tw-backdrop-invert: ; + --tw-backdrop-opacity: ; + --tw-backdrop-saturate: ; + --tw-backdrop-sepia: ; + --tw-contain-size: ; + --tw-contain-layout: ; + --tw-contain-paint: ; + --tw-contain-style: ; +} + +::backdrop { + --tw-border-spacing-x: 0; + --tw-border-spacing-y: 0; + --tw-translate-x: 0; + --tw-translate-y: 0; + --tw-rotate: 0; + --tw-skew-x: 0; + --tw-skew-y: 0; + --tw-scale-x: 1; + --tw-scale-y: 1; + --tw-pan-x: ; + --tw-pan-y: ; + --tw-pinch-zoom: ; + --tw-scroll-snap-strictness: proximity; + --tw-gradient-from-position: ; + --tw-gradient-via-position: ; + --tw-gradient-to-position: ; + --tw-ordinal: ; + --tw-slashed-zero: ; + --tw-numeric-figure: ; + --tw-numeric-spacing: ; + --tw-numeric-fraction: ; + --tw-ring-inset: ; + --tw-ring-offset-width: 0px; + --tw-ring-offset-color: #fff; + --tw-ring-color: rgb(59 130 246 / 0.5); + --tw-ring-offset-shadow: 0 0 #0000; + --tw-ring-shadow: 0 0 #0000; + --tw-shadow: 0 0 #0000; + --tw-shadow-colored: 0 0 #0000; + --tw-blur: ; + --tw-brightness: ; + --tw-contrast: ; + --tw-grayscale: ; + --tw-hue-rotate: ; + --tw-invert: ; + --tw-saturate: ; + --tw-sepia: ; + --tw-drop-shadow: ; + --tw-backdrop-blur: ; + --tw-backdrop-brightness: ; + --tw-backdrop-contrast: ; + --tw-backdrop-grayscale: ; + --tw-backdrop-hue-rotate: ; + --tw-backdrop-invert: ; + --tw-backdrop-opacity: ; + --tw-backdrop-saturate: ; + --tw-backdrop-sepia: ; + --tw-contain-size: ; + --tw-contain-layout: ; + --tw-contain-paint: ; + --tw-contain-style: ; +} + +.wpuf-avatar { + position: relative; + display: inline-flex; +} + +.wpuf-avatar > div { + display: block; + aspect-ratio: 1 / 1; + overflow: hidden; +} + +.wpuf-avatar img { + height: 100%; + width: 100%; + -o-object-fit: cover; + object-fit: cover; +} + +.wpuf-avatar.wpuf-placeholder > div { + display: flex; + align-items: center; + justify-content: center; +} + +@media (hover:hover) { + .wpuf-label a:hover { + --tw-text-opacity: 1; + color: var(--fallback-bc,oklch(var(--bc)/var(--tw-text-opacity))); + } + + .wpuf-menu li > *:not(ul, .wpuf-menu-title, details, .wpuf-btn):active, +.wpuf-menu li > *:not(ul, .wpuf-menu-title, details, .wpuf-btn).wpuf-active, +.wpuf-menu li > details > summary:active { + --tw-bg-opacity: 1; + background-color: var(--fallback-n,oklch(var(--n)/var(--tw-bg-opacity))); + --tw-text-opacity: 1; + color: var(--fallback-nc,oklch(var(--nc)/var(--tw-text-opacity))); + } +} + +.wpuf-btn { + display: inline-flex; + height: 3rem; + min-height: 3rem; + flex-shrink: 0; + cursor: pointer; + -webkit-user-select: none; + -moz-user-select: none; + user-select: none; + flex-wrap: wrap; + align-items: center; + justify-content: center; + border-radius: var(--rounded-btn, 0.5rem); + border-color: transparent; + border-color: oklch(var(--btn-color, var(--b2)) / var(--tw-border-opacity)); + padding-left: 1rem; + padding-right: 1rem; + text-align: center; + font-size: 0.875rem; + line-height: 1em; + gap: 0.5rem; + font-weight: 600; + text-decoration-line: none; + transition-duration: 200ms; + transition-timing-function: cubic-bezier(0, 0, 0.2, 1); + border-width: var(--border-btn, 1px); + transition-property: color, background-color, border-color, opacity, box-shadow, transform; + --tw-text-opacity: 1; + color: var(--fallback-bc,oklch(var(--bc)/var(--tw-text-opacity))); + --tw-shadow: 0 1px 2px 0 rgb(0 0 0 / 0.05); + --tw-shadow-colored: 0 1px 2px 0 var(--tw-shadow-color); + box-shadow: var(--tw-ring-offset-shadow, 0 0 #0000), var(--tw-ring-shadow, 0 0 #0000), var(--tw-shadow); + outline-color: var(--fallback-bc,oklch(var(--bc)/1)); + background-color: oklch(var(--btn-color, var(--b2)) / var(--tw-bg-opacity)); + --tw-bg-opacity: 1; + --tw-border-opacity: 1; +} + +.wpuf-btn-disabled, + .wpuf-btn[disabled], + .wpuf-btn:disabled { + pointer-events: none; +} + +:where(.wpuf-btn:is(input[type="checkbox"])), +:where(.wpuf-btn:is(input[type="radio"])) { + width: auto; + -webkit-appearance: none; + -moz-appearance: none; + appearance: none; +} + +.wpuf-btn:is(input[type="checkbox"]):after, +.wpuf-btn:is(input[type="radio"]):after { + --tw-content: attr(aria-label); + content: var(--tw-content); +} + +.wpuf-dropdown { + position: relative; + display: inline-block; +} + +.wpuf-dropdown > *:not(summary):focus { + outline: 2px solid transparent; + outline-offset: 2px; +} + +.wpuf-dropdown .wpuf-dropdown-content { + position: absolute; +} + +.wpuf-dropdown:is(:not(details)) .wpuf-dropdown-content { + transition-timing-function: cubic-bezier(0.4, 0, 0.2, 1); + transition-timing-function: cubic-bezier(0, 0, 0.2, 1); + visibility: hidden; + opacity: 0; + transform-origin: top; + --tw-scale-x: .95; + --tw-scale-y: .95; + transform: translate(var(--tw-translate-x), var(--tw-translate-y)) rotate(var(--tw-rotate)) skewX(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y)); + transition-property: color, background-color, border-color, text-decoration-color, fill, stroke, opacity, box-shadow, transform, filter, -webkit-backdrop-filter; + transition-property: color, background-color, border-color, text-decoration-color, fill, stroke, opacity, box-shadow, transform, filter, backdrop-filter; + transition-property: color, background-color, border-color, text-decoration-color, fill, stroke, opacity, box-shadow, transform, filter, backdrop-filter, -webkit-backdrop-filter; + transition-timing-function: cubic-bezier(0.4, 0, 0.2, 1); + transition-timing-function: cubic-bezier(0, 0, 0.2, 1); + transition-duration: 200ms; +} + +.wpuf-dropdown-end .wpuf-dropdown-content { + inset-inline-end: 0px; +} + +.wpuf-dropdown-left .wpuf-dropdown-content { + bottom: auto; + inset-inline-end: 100%; + top: 0px; + transform-origin: right; +} + +.wpuf-dropdown-right .wpuf-dropdown-content { + bottom: auto; + inset-inline-start: 100%; + top: 0px; + transform-origin: left; +} + +.wpuf-dropdown-bottom .wpuf-dropdown-content { + bottom: auto; + top: 100%; + transform-origin: top; +} + +.wpuf-dropdown-top .wpuf-dropdown-content { + bottom: 100%; + top: auto; + transform-origin: bottom; +} + +.wpuf-dropdown-end.wpuf-dropdown-right .wpuf-dropdown-content { + bottom: 0px; + top: auto; +} + +.wpuf-dropdown-end.wpuf-dropdown-left .wpuf-dropdown-content { + bottom: 0px; + top: auto; +} + +.wpuf-dropdown.wpuf-dropdown-open .wpuf-dropdown-content, +.wpuf-dropdown:not(.wpuf-dropdown-hover):focus .wpuf-dropdown-content, +.wpuf-dropdown:focus-within .wpuf-dropdown-content { + visibility: visible; + opacity: 1; +} + +@media (hover: hover) { + .wpuf-dropdown.wpuf-dropdown-hover:hover .wpuf-dropdown-content { + visibility: visible; + opacity: 1; + } + + .wpuf-btn:hover { + --tw-border-opacity: 1; + border-color: var(--fallback-b3,oklch(var(--b3)/var(--tw-border-opacity))); + --tw-bg-opacity: 1; + background-color: var(--fallback-b3,oklch(var(--b3)/var(--tw-bg-opacity))); + } + + @supports (color: color-mix(in oklab, black, black)) { + .wpuf-btn:hover { + background-color: color-mix( + in oklab, + oklch(var(--btn-color, var(--b2)) / var(--tw-bg-opacity, 1)) 90%, + black + ); + border-color: color-mix( + in oklab, + oklch(var(--btn-color, var(--b2)) / var(--tw-border-opacity, 1)) 90%, + black + ); + } + } + + @supports not (color: oklch(0% 0 0)) { + .wpuf-btn:hover { + background-color: var(--btn-color, var(--fallback-b2)); + border-color: var(--btn-color, var(--fallback-b2)); + } + } + + .wpuf-btn:hover { + --tw-border-opacity: 1; + border-color: var(--fallback-b3,oklch(var(--b3)/var(--tw-border-opacity))); + --tw-bg-opacity: 1; + background-color: var(--fallback-b3,oklch(var(--b3)/var(--tw-bg-opacity))); + } + + @supports (color: color-mix(in oklab, black, black)) { + .wpuf-btn:hover { + background-color: color-mix( + in oklab, + oklch(var(--btn-color, var(--b2)) / var(--tw-bg-opacity, 1)) 90%, + black + ); + border-color: color-mix( + in oklab, + oklch(var(--btn-color, var(--b2)) / var(--tw-border-opacity, 1)) 90%, + black + ); + } + } + + @supports not (color: oklch(0% 0 0)) { + .wpuf-btn:hover { + background-color: var(--btn-color, var(--fallback-b2)); + border-color: var(--btn-color, var(--fallback-b2)); + } + } + + .wpuf-btn:hover { + --tw-border-opacity: 1; + border-color: var(--fallback-b3,oklch(var(--b3)/var(--tw-border-opacity))); + --tw-bg-opacity: 1; + background-color: var(--fallback-b3,oklch(var(--b3)/var(--tw-bg-opacity))); + } + + @supports (color: color-mix(in oklab, black, black)) { + .wpuf-btn:hover { + background-color: color-mix( + in oklab, + oklch(var(--btn-color, var(--b2)) / var(--tw-bg-opacity, 1)) 90%, + black + ); + border-color: color-mix( + in oklab, + oklch(var(--btn-color, var(--b2)) / var(--tw-border-opacity, 1)) 90%, + black + ); + } + } + + @supports not (color: oklch(0% 0 0)) { + .wpuf-btn:hover { + background-color: var(--btn-color, var(--fallback-b2)); + border-color: var(--btn-color, var(--fallback-b2)); + } + } + + .wpuf-btn.wpuf-glass:hover { + --glass-opacity: 25%; + --glass-border-opacity: 15%; + } + + .wpuf-btn-outline.wpuf-btn-primary:hover { + --tw-text-opacity: 1; + color: var(--fallback-pc,oklch(var(--pc)/var(--tw-text-opacity))); + } + + @supports (color: color-mix(in oklab, black, black)) { + .wpuf-btn-outline.wpuf-btn-primary:hover { + background-color: color-mix(in oklab, var(--fallback-p,oklch(var(--p)/1)) 90%, black); + border-color: color-mix(in oklab, var(--fallback-p,oklch(var(--p)/1)) 90%, black); + } + } + + .wpuf-btn-outline.wpuf-btn-primary:hover { + --tw-text-opacity: 1; + color: var(--fallback-pc,oklch(var(--pc)/var(--tw-text-opacity))); + } + + @supports (color: color-mix(in oklab, black, black)) { + .wpuf-btn-outline.wpuf-btn-primary:hover { + background-color: color-mix(in oklab, var(--fallback-p,oklch(var(--p)/1)) 90%, black); + border-color: color-mix(in oklab, var(--fallback-p,oklch(var(--p)/1)) 90%, black); + } + } + + .wpuf-btn-outline.wpuf-btn-secondary:hover { + --tw-text-opacity: 1; + color: var(--fallback-sc,oklch(var(--sc)/var(--tw-text-opacity))); + } + + @supports (color: color-mix(in oklab, black, black)) { + .wpuf-btn-outline.wpuf-btn-secondary:hover { + background-color: color-mix(in oklab, var(--fallback-s,oklch(var(--s)/1)) 90%, black); + border-color: color-mix(in oklab, var(--fallback-s,oklch(var(--s)/1)) 90%, black); + } + } + + .wpuf-btn-outline.wpuf-btn-secondary:hover { + --tw-text-opacity: 1; + color: var(--fallback-sc,oklch(var(--sc)/var(--tw-text-opacity))); + } + + @supports (color: color-mix(in oklab, black, black)) { + .wpuf-btn-outline.wpuf-btn-secondary:hover { + background-color: color-mix(in oklab, var(--fallback-s,oklch(var(--s)/1)) 90%, black); + border-color: color-mix(in oklab, var(--fallback-s,oklch(var(--s)/1)) 90%, black); + } + } + + .wpuf-btn-disabled:hover, + .wpuf-btn[disabled]:hover, + .wpuf-btn:disabled:hover { + --tw-border-opacity: 0; + background-color: var(--fallback-n,oklch(var(--n)/var(--tw-bg-opacity))); + --tw-bg-opacity: 0.2; + color: var(--fallback-bc,oklch(var(--bc)/var(--tw-text-opacity))); + --tw-text-opacity: 0.2; + } + + @supports (color: color-mix(in oklab, black, black)) { + .wpuf-btn:is(input[type="checkbox"]:checked):hover, .wpuf-btn:is(input[type="radio"]:checked):hover { + background-color: color-mix(in oklab, var(--fallback-p,oklch(var(--p)/1)) 90%, black); + border-color: color-mix(in oklab, var(--fallback-p,oklch(var(--p)/1)) 90%, black); + } + } + + .wpuf-dropdown.wpuf-dropdown-hover:hover .wpuf-dropdown-content { + --tw-scale-x: 1; + --tw-scale-y: 1; + transform: translate(var(--tw-translate-x), var(--tw-translate-y)) rotate(var(--tw-rotate)) skewX(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y)); + } + + :where(.wpuf-menu li:not(.wpuf-menu-title, .wpuf-disabled) > *:not(ul, details, .wpuf-menu-title)):not(.wpuf-active, .wpuf-btn):hover, :where(.wpuf-menu li:not(.wpuf-menu-title, .wpuf-disabled) > details > summary:not(.wpuf-menu-title)):not(.wpuf-active, .wpuf-btn):hover { + cursor: pointer; + outline: 2px solid transparent; + outline-offset: 2px; + } + + @supports (color: oklch(0% 0 0)) { + :where(.wpuf-menu li:not(.wpuf-menu-title, .wpuf-disabled) > *:not(ul, details, .wpuf-menu-title)):not(.wpuf-active, .wpuf-btn):hover, :where(.wpuf-menu li:not(.wpuf-menu-title, .wpuf-disabled) > details > summary:not(.wpuf-menu-title)):not(.wpuf-active, .wpuf-btn):hover { + background-color: var(--fallback-bc,oklch(var(--bc)/0.1)); + } + } + + :where(.wpuf-menu li:not(.wpuf-menu-title, .wpuf-disabled) > *:not(ul, details, .wpuf-menu-title)):not(.wpuf-active, .wpuf-btn):hover, :where(.wpuf-menu li:not(.wpuf-menu-title, .wpuf-disabled) > details > summary:not(.wpuf-menu-title)):not(.wpuf-active, .wpuf-btn):hover { + cursor: pointer; + outline: 2px solid transparent; + outline-offset: 2px; + } + + @supports (color: oklch(0% 0 0)) { + :where(.wpuf-menu li:not(.wpuf-menu-title, .wpuf-disabled) > *:not(ul, details, .wpuf-menu-title)):not(.wpuf-active, .wpuf-btn):hover, :where(.wpuf-menu li:not(.wpuf-menu-title, .wpuf-disabled) > details > summary:not(.wpuf-menu-title)):not(.wpuf-active, .wpuf-btn):hover { + background-color: var(--fallback-bc,oklch(var(--bc)/0.1)); + } + } + + :where(.wpuf-menu li:not(.wpuf-menu-title, .wpuf-disabled) > *:not(ul, details, .wpuf-menu-title)):not(.wpuf-active, .wpuf-btn):hover, :where(.wpuf-menu li:not(.wpuf-menu-title, .wpuf-disabled) > details > summary:not(.wpuf-menu-title)):not(.wpuf-active, .wpuf-btn):hover { + cursor: pointer; + outline: 2px solid transparent; + outline-offset: 2px; + } + + @supports (color: oklch(0% 0 0)) { + :where(.wpuf-menu li:not(.wpuf-menu-title, .wpuf-disabled) > *:not(ul, details, .wpuf-menu-title)):not(.wpuf-active, .wpuf-btn):hover, :where(.wpuf-menu li:not(.wpuf-menu-title, .wpuf-disabled) > details > summary:not(.wpuf-menu-title)):not(.wpuf-active, .wpuf-btn):hover { + background-color: var(--fallback-bc,oklch(var(--bc)/0.1)); + } + } + + :where(.wpuf-menu li:not(.wpuf-menu-title, .wpuf-disabled) > *:not(ul, details, .wpuf-menu-title)):not(.wpuf-active, .wpuf-btn):hover, :where(.wpuf-menu li:not(.wpuf-menu-title, .wpuf-disabled) > details > summary:not(.wpuf-menu-title)):not(.wpuf-active, .wpuf-btn):hover { + cursor: pointer; + outline: 2px solid transparent; + outline-offset: 2px; + } + + @supports (color: oklch(0% 0 0)) { + :where(.wpuf-menu li:not(.wpuf-menu-title, .wpuf-disabled) > *:not(ul, details, .wpuf-menu-title)):not(.wpuf-active, .wpuf-btn):hover, :where(.wpuf-menu li:not(.wpuf-menu-title, .wpuf-disabled) > details > summary:not(.wpuf-menu-title)):not(.wpuf-active, .wpuf-btn):hover { + background-color: var(--fallback-bc,oklch(var(--bc)/0.1)); + } + } +} + +.wpuf-dropdown:is(details) summary::-webkit-details-marker { + display: none; +} + +.wpuf-label { + display: flex; + -webkit-user-select: none; + -moz-user-select: none; + user-select: none; + align-items: center; + justify-content: space-between; + padding-left: 0.25rem; + padding-right: 0.25rem; + padding-top: 0.5rem; + padding-bottom: 0.5rem; +} + +.wpuf-join .wpuf-dropdown .wpuf-join-item:first-child:not(:last-child), + .wpuf-join *:first-child:not(:last-child) .wpuf-dropdown .wpuf-join-item { + border-start-end-radius: inherit; + border-end-end-radius: inherit; +} + +.wpuf-menu { + display: flex; + flex-direction: column; + flex-wrap: wrap; + font-size: 0.875rem; + line-height: 1.25rem; + padding: 0.5rem; +} + +.wpuf-menu :where(li ul) { + position: relative; + white-space: nowrap; + margin-inline-start: 1rem; + padding-inline-start: 0.5rem; +} + +.wpuf-menu :where(li:not(.wpuf-menu-title) > *:not(ul, details, .wpuf-menu-title, .wpuf-btn)), .wpuf-menu :where(li:not(.wpuf-menu-title) > details > summary:not(.wpuf-menu-title)) { + display: grid; + grid-auto-flow: column; + align-content: flex-start; + align-items: center; + gap: 0.5rem; + grid-auto-columns: minmax(auto, max-content) auto max-content; + -webkit-user-select: none; + -moz-user-select: none; + user-select: none; +} + +.wpuf-menu li.wpuf-disabled { + cursor: not-allowed; + -webkit-user-select: none; + -moz-user-select: none; + user-select: none; + color: var(--fallback-bc,oklch(var(--bc)/0.3)); +} + +.wpuf-menu :where(li > .wpuf-menu-dropdown:not(.wpuf-menu-dropdown-show)) { + display: none; +} + +:where(.wpuf-menu li) { + position: relative; + display: flex; + flex-shrink: 0; + flex-direction: column; + flex-wrap: wrap; + align-items: stretch; +} + +:where(.wpuf-menu li) .wpuf-badge { + justify-self: end; +} + +.wpuf-avatar-group :where(.wpuf-avatar) { + overflow: hidden; + border-radius: 9999px; + border-width: 4px; + --tw-border-opacity: 1; + border-color: var(--fallback-b1,oklch(var(--b1)/var(--tw-border-opacity))); +} + +.wpuf-btm-nav > * .wpuf-label { + font-size: 1rem; + line-height: 1.5rem; +} + +@media (prefers-reduced-motion: no-preference) { + .wpuf-btn { + animation: button-pop var(--animation-btn, 0.25s) ease-out; + } +} + +.wpuf-btn:active:hover, + .wpuf-btn:active:focus { + animation: button-pop 0s ease-out; + transform: scale(var(--btn-focus-scale, 0.97)); +} + +@supports not (color: oklch(0% 0 0)) { + .wpuf-btn { + background-color: var(--btn-color, var(--fallback-b2)); + border-color: var(--btn-color, var(--fallback-b2)); + } + + .wpuf-btn-primary { + --btn-color: var(--fallback-p); + } + + .wpuf-btn-secondary { + --btn-color: var(--fallback-s); + } +} + +@supports (color: color-mix(in oklab, black, black)) { + .wpuf-btn-outline.wpuf-btn-primary.wpuf-btn-active { + background-color: color-mix(in oklab, var(--fallback-p,oklch(var(--p)/1)) 90%, black); + border-color: color-mix(in oklab, var(--fallback-p,oklch(var(--p)/1)) 90%, black); + } + + .wpuf-btn-outline.wpuf-btn-secondary.wpuf-btn-active { + background-color: color-mix(in oklab, var(--fallback-s,oklch(var(--s)/1)) 90%, black); + border-color: color-mix(in oklab, var(--fallback-s,oklch(var(--s)/1)) 90%, black); + } +} + +.wpuf-btn:focus-visible { + outline-style: solid; + outline-width: 2px; + outline-offset: 2px; +} + +.wpuf-btn-primary { + --tw-text-opacity: 1; + color: var(--fallback-pc,oklch(var(--pc)/var(--tw-text-opacity))); + outline-color: var(--fallback-p,oklch(var(--p)/1)); +} + +@supports (color: oklch(0% 0 0)) { + .wpuf-btn-primary { + --btn-color: var(--p); + } + + .wpuf-btn-secondary { + --btn-color: var(--s); + } +} + +.wpuf-btn-secondary { + --tw-text-opacity: 1; + color: var(--fallback-sc,oklch(var(--sc)/var(--tw-text-opacity))); + outline-color: var(--fallback-s,oklch(var(--s)/1)); +} + +.wpuf-btn.wpuf-glass { + --tw-shadow: 0 0 #0000; + --tw-shadow-colored: 0 0 #0000; + box-shadow: var(--tw-ring-offset-shadow, 0 0 #0000), var(--tw-ring-shadow, 0 0 #0000), var(--tw-shadow); + outline-color: currentColor; +} + +.wpuf-btn.wpuf-glass.wpuf-btn-active { + --glass-opacity: 25%; + --glass-border-opacity: 15%; +} + +.wpuf-btn-outline.wpuf-btn-primary { + --tw-text-opacity: 1; + color: var(--fallback-p,oklch(var(--p)/var(--tw-text-opacity))); +} + +.wpuf-btn-outline.wpuf-btn-primary.wpuf-btn-active { + --tw-text-opacity: 1; + color: var(--fallback-pc,oklch(var(--pc)/var(--tw-text-opacity))); +} + +.wpuf-btn-outline.wpuf-btn-secondary { + --tw-text-opacity: 1; + color: var(--fallback-s,oklch(var(--s)/var(--tw-text-opacity))); +} + +.wpuf-btn-outline.wpuf-btn-secondary.wpuf-btn-active { + --tw-text-opacity: 1; + color: var(--fallback-sc,oklch(var(--sc)/var(--tw-text-opacity))); +} + +.wpuf-btn.wpuf-btn-disabled, + .wpuf-btn[disabled], + .wpuf-btn:disabled { + --tw-border-opacity: 0; + background-color: var(--fallback-n,oklch(var(--n)/var(--tw-bg-opacity))); + --tw-bg-opacity: 0.2; + color: var(--fallback-bc,oklch(var(--bc)/var(--tw-text-opacity))); + --tw-text-opacity: 0.2; +} + +.wpuf-btn:is(input[type="checkbox"]:checked), +.wpuf-btn:is(input[type="radio"]:checked) { + --tw-border-opacity: 1; + border-color: var(--fallback-p,oklch(var(--p)/var(--tw-border-opacity))); + --tw-bg-opacity: 1; + background-color: var(--fallback-p,oklch(var(--p)/var(--tw-bg-opacity))); + --tw-text-opacity: 1; + color: var(--fallback-pc,oklch(var(--pc)/var(--tw-text-opacity))); +} + +.wpuf-btn:is(input[type="checkbox"]:checked):focus-visible, .wpuf-btn:is(input[type="radio"]:checked):focus-visible { + outline-color: var(--fallback-p,oklch(var(--p)/1)); +} + +@keyframes button-pop { + 0% { + transform: scale(var(--btn-focus-scale, 0.98)); + } + + 40% { + transform: scale(1.02); + } + + 100% { + transform: scale(1); + } +} + +@keyframes checkmark { + 0% { + background-position-y: 5px; + } + + 50% { + background-position-y: -2px; + } + + 100% { + background-position-y: 0; + } +} + +.wpuf-dropdown.wpuf-dropdown-open .wpuf-dropdown-content, +.wpuf-dropdown:focus .wpuf-dropdown-content, +.wpuf-dropdown:focus-within .wpuf-dropdown-content { + --tw-scale-x: 1; + --tw-scale-y: 1; + transform: translate(var(--tw-translate-x), var(--tw-translate-y)) rotate(var(--tw-rotate)) skewX(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y)); +} + +.wpuf-join > :where(*:not(:first-child)):is(.wpuf-btn) { + margin-inline-start: calc(var(--border-btn) * -1); +} + +.wpuf-loading { + pointer-events: none; + display: inline-block; + aspect-ratio: 1 / 1; + width: 1.5rem; + background-color: currentColor; + -webkit-mask-size: 100%; + mask-size: 100%; + -webkit-mask-repeat: no-repeat; + mask-repeat: no-repeat; + -webkit-mask-position: center; + mask-position: center; + -webkit-mask-image: url("data:image/svg+xml,%3Csvg width='24' height='24' stroke='%23000' viewBox='0 0 24 24' xmlns='http://www.w3.org/2000/svg'%3E%3Cstyle%3E.spinner_V8m1%7Btransform-origin:center;animation:spinner_zKoa 2s linear infinite%7D.spinner_V8m1 circle%7Bstroke-linecap:round;animation:spinner_YpZS 1.5s ease-out infinite%7D%40keyframes spinner_zKoa%7B100%25%7Btransform:rotate(360deg)%7D%7D%40keyframes spinner_YpZS%7B0%25%7Bstroke-dasharray:0 150;stroke-dashoffset:0%7D47.5%25%7Bstroke-dasharray:42 150;stroke-dashoffset:-16%7D95%25%2C100%25%7Bstroke-dasharray:42 150;stroke-dashoffset:-59%7D%7D%3C%2Fstyle%3E%3Cg class='spinner_V8m1'%3E%3Ccircle cx='12' cy='12' r='9.5' fill='none' stroke-width='3'%3E%3C%2Fcircle%3E%3C%2Fg%3E%3C%2Fsvg%3E"); + mask-image: url("data:image/svg+xml,%3Csvg width='24' height='24' stroke='%23000' viewBox='0 0 24 24' xmlns='http://www.w3.org/2000/svg'%3E%3Cstyle%3E.spinner_V8m1%7Btransform-origin:center;animation:spinner_zKoa 2s linear infinite%7D.spinner_V8m1 circle%7Bstroke-linecap:round;animation:spinner_YpZS 1.5s ease-out infinite%7D%40keyframes spinner_zKoa%7B100%25%7Btransform:rotate(360deg)%7D%7D%40keyframes spinner_YpZS%7B0%25%7Bstroke-dasharray:0 150;stroke-dashoffset:0%7D47.5%25%7Bstroke-dasharray:42 150;stroke-dashoffset:-16%7D95%25%2C100%25%7Bstroke-dasharray:42 150;stroke-dashoffset:-59%7D%7D%3C%2Fstyle%3E%3Cg class='spinner_V8m1'%3E%3Ccircle cx='12' cy='12' r='9.5' fill='none' stroke-width='3'%3E%3C%2Fcircle%3E%3C%2Fg%3E%3C%2Fsvg%3E"); +} + +:where(.wpuf-menu li:empty) { + --tw-bg-opacity: 1; + background-color: var(--fallback-bc,oklch(var(--bc)/var(--tw-bg-opacity))); + opacity: 0.1; + margin: 0.5rem 1rem; + height: 1px; +} + +.wpuf-menu :where(li ul):before { + position: absolute; + bottom: 0.75rem; + inset-inline-start: 0px; + top: 0.75rem; + width: 1px; + --tw-bg-opacity: 1; + background-color: var(--fallback-bc,oklch(var(--bc)/var(--tw-bg-opacity))); + opacity: 0.1; + content: ""; +} + +.wpuf-menu :where(li:not(.wpuf-menu-title) > *:not(ul, details, .wpuf-menu-title, .wpuf-btn)), +.wpuf-menu :where(li:not(.wpuf-menu-title) > details > summary:not(.wpuf-menu-title)) { + transition-timing-function: cubic-bezier(0.4, 0, 0.2, 1); + transition-timing-function: cubic-bezier(0, 0, 0.2, 1); + border-radius: var(--rounded-btn, 0.5rem); + padding-left: 1rem; + padding-right: 1rem; + padding-top: 0.5rem; + padding-bottom: 0.5rem; + text-align: start; + transition-property: color, background-color, border-color, text-decoration-color, fill, stroke, opacity, box-shadow, transform, filter, -webkit-backdrop-filter; + transition-property: color, background-color, border-color, text-decoration-color, fill, stroke, opacity, box-shadow, transform, filter, backdrop-filter; + transition-property: color, background-color, border-color, text-decoration-color, fill, stroke, opacity, box-shadow, transform, filter, backdrop-filter, -webkit-backdrop-filter; + transition-timing-function: cubic-bezier(0.4, 0, 0.2, 1); + transition-timing-function: cubic-bezier(0, 0, 0.2, 1); + transition-duration: 200ms; + text-wrap: balance; +} + +:where(.wpuf-menu li:not(.wpuf-menu-title, .wpuf-disabled) > *:not(ul, details, .wpuf-menu-title)):not(summary, .wpuf-active, .wpuf-btn).wpuf-focus, :where(.wpuf-menu li:not(.wpuf-menu-title, .wpuf-disabled) > *:not(ul, details, .wpuf-menu-title)):not(summary, .wpuf-active, .wpuf-btn):focus, :where(.wpuf-menu li:not(.wpuf-menu-title, .wpuf-disabled) > *:not(ul, details, .wpuf-menu-title)):is(summary):not(.wpuf-active, .wpuf-btn):focus-visible, :where(.wpuf-menu li:not(.wpuf-menu-title, .wpuf-disabled) > details > summary:not(.wpuf-menu-title)):not(summary, .wpuf-active, .wpuf-btn).wpuf-focus, :where(.wpuf-menu li:not(.wpuf-menu-title, .wpuf-disabled) > details > summary:not(.wpuf-menu-title)):not(summary, .wpuf-active, .wpuf-btn):focus, :where(.wpuf-menu li:not(.wpuf-menu-title, .wpuf-disabled) > details > summary:not(.wpuf-menu-title)):is(summary):not(.wpuf-active, .wpuf-btn):focus-visible { + cursor: pointer; + background-color: var(--fallback-bc,oklch(var(--bc)/0.1)); + --tw-text-opacity: 1; + color: var(--fallback-bc,oklch(var(--bc)/var(--tw-text-opacity))); + outline: 2px solid transparent; + outline-offset: 2px; +} + +.wpuf-menu li > *:not(ul, .wpuf-menu-title, details, .wpuf-btn):active, +.wpuf-menu li > *:not(ul, .wpuf-menu-title, details, .wpuf-btn).wpuf-active, +.wpuf-menu li > details > summary:active { + --tw-bg-opacity: 1; + background-color: var(--fallback-n,oklch(var(--n)/var(--tw-bg-opacity))); + --tw-text-opacity: 1; + color: var(--fallback-nc,oklch(var(--nc)/var(--tw-text-opacity))); +} + +.wpuf-menu :where(li > details > summary)::-webkit-details-marker { + display: none; +} + +.wpuf-menu :where(li > details > summary):after, +.wpuf-menu :where(li > .wpuf-menu-dropdown-toggle):after { + justify-self: end; + display: block; + margin-top: -0.5rem; + height: 0.5rem; + width: 0.5rem; + transform: rotate(45deg); + transition-property: transform, margin-top; + transition-duration: 0.3s; + transition-timing-function: cubic-bezier(0.4, 0, 0.2, 1); + content: ""; + transform-origin: 75% 75%; + box-shadow: 2px 2px; + pointer-events: none; +} + +.wpuf-menu :where(li > details[open] > summary):after, +.wpuf-menu :where(li > .wpuf-menu-dropdown-toggle.wpuf-menu-dropdown-show):after { + transform: rotate(225deg); + margin-top: 0; +} + +@keyframes modal-pop { + 0% { + opacity: 0; + } +} + +@keyframes progress-loading { + 50% { + background-position-x: -115%; + } +} + +@keyframes radiomark { + 0% { + box-shadow: 0 0 0 12px var(--fallback-b1,oklch(var(--b1)/1)) inset, + 0 0 0 12px var(--fallback-b1,oklch(var(--b1)/1)) inset; + } + + 50% { + box-shadow: 0 0 0 3px var(--fallback-b1,oklch(var(--b1)/1)) inset, + 0 0 0 3px var(--fallback-b1,oklch(var(--b1)/1)) inset; + } + + 100% { + box-shadow: 0 0 0 4px var(--fallback-b1,oklch(var(--b1)/1)) inset, + 0 0 0 4px var(--fallback-b1,oklch(var(--b1)/1)) inset; + } +} + +@keyframes rating-pop { + 0% { + transform: translateY(-0.125em); + } + + 40% { + transform: translateY(-0.125em); + } + + 100% { + transform: translateY(0); + } +} + +@keyframes skeleton { + from { + background-position: 150%; + } + + to { + background-position: -50%; + } +} + +@keyframes toast-pop { + 0% { + transform: scale(0.9); + opacity: 0; + } + + 100% { + transform: scale(1); + opacity: 1; + } +} + +.wpuf-tooltip { + position: relative; + display: inline-block; + --tooltip-offset: calc(100% + 1px + var(--tooltip-tail, 0px)); +} + +.wpuf-tooltip:before { + position: absolute; + pointer-events: none; + z-index: 1; + content: var(--tw-content); + --tw-content: attr(data-tip); +} + +.wpuf-tooltip:before, .wpuf-tooltip-top:before { + transform: translateX(-50%); + top: auto; + left: 50%; + right: auto; + bottom: var(--tooltip-offset); +} + +.wpuf-avatar.wpuf-online:before { + content: ""; + position: absolute; + z-index: 10; + display: block; + border-radius: 9999px; + --tw-bg-opacity: 1; + background-color: var(--fallback-su,oklch(var(--su)/var(--tw-bg-opacity))); + outline-style: solid; + outline-width: 2px; + outline-color: var(--fallback-b1,oklch(var(--b1)/1)); + width: 15%; + height: 15%; + top: 7%; + right: 7%; +} + +.wpuf-avatar.wpuf-offline:before { + content: ""; + position: absolute; + z-index: 10; + display: block; + border-radius: 9999px; + --tw-bg-opacity: 1; + background-color: var(--fallback-b3,oklch(var(--b3)/var(--tw-bg-opacity))); + outline-style: solid; + outline-width: 2px; + outline-color: var(--fallback-b1,oklch(var(--b1)/1)); + width: 15%; + height: 15%; + top: 7%; + right: 7%; +} + +.wpuf-join.wpuf-join-vertical > :where(*:not(:first-child)):is(.wpuf-btn) { + margin-top: calc(var(--border-btn) * -1); +} + +.wpuf-join.wpuf-join-horizontal > :where(*:not(:first-child)):is(.wpuf-btn) { + margin-inline-start: calc(var(--border-btn) * -1); +} + +.wpuf-tooltip { + position: relative; + display: inline-block; + text-align: center; + --tooltip-tail: 0.1875rem; + --tooltip-color: var(--fallback-n,oklch(var(--n)/1)); + --tooltip-text-color: var(--fallback-nc,oklch(var(--nc)/1)); + --tooltip-tail-offset: calc(100% + 0.0625rem - var(--tooltip-tail)); +} + +.wpuf-tooltip:before, +.wpuf-tooltip:after { + opacity: 0; + transition-property: color, background-color, border-color, text-decoration-color, fill, stroke, opacity, box-shadow, transform, filter, -webkit-backdrop-filter; + transition-property: color, background-color, border-color, text-decoration-color, fill, stroke, opacity, box-shadow, transform, filter, backdrop-filter; + transition-property: color, background-color, border-color, text-decoration-color, fill, stroke, opacity, box-shadow, transform, filter, backdrop-filter, -webkit-backdrop-filter; + transition-delay: 100ms; + transition-duration: 200ms; + transition-timing-function: cubic-bezier(0.4, 0, 0.2, 1); +} + +.wpuf-tooltip:after { + position: absolute; + content: ""; + border-style: solid; + border-width: var(--tooltip-tail, 0); + width: 0; + height: 0; + display: block; +} + +.wpuf-tooltip:before { + max-width: 20rem; + white-space: normal; + border-radius: 0.25rem; + padding-left: 0.5rem; + padding-right: 0.5rem; + padding-top: 0.25rem; + padding-bottom: 0.25rem; + font-size: 0.875rem; + line-height: 1.25rem; + background-color: var(--tooltip-color); + color: var(--tooltip-text-color); + width: -moz-max-content; + width: max-content; +} + +.wpuf-tooltip.wpuf-tooltip-open:before { + opacity: 1; + transition-delay: 75ms; +} + +.wpuf-tooltip.wpuf-tooltip-open:after { + opacity: 1; + transition-delay: 75ms; +} + +.wpuf-tooltip:hover:before { + opacity: 1; + transition-delay: 75ms; +} + +.wpuf-tooltip:hover:after { + opacity: 1; + transition-delay: 75ms; +} + +.wpuf-tooltip:has(:focus-visible):after, +.wpuf-tooltip:has(:focus-visible):before { + opacity: 1; + transition-delay: 75ms; +} + +.wpuf-tooltip:not([data-tip]):hover:before, +.wpuf-tooltip:not([data-tip]):hover:after { + visibility: hidden; + opacity: 0; +} + +.wpuf-tooltip:after, .wpuf-tooltip-top:after { + transform: translateX(-50%); + border-color: var(--tooltip-color) transparent transparent transparent; + top: auto; + left: 50%; + right: auto; + bottom: var(--tooltip-tail-offset); +} + +.wpuf-btn-primary { + border-radius: 0.375rem; + --tw-bg-opacity: 1; + background-color: rgb(22 101 52 / var(--tw-bg-opacity)); + padding-left: 0.875rem; + padding-right: 0.875rem; + padding-top: 0.5rem; + padding-bottom: 0.5rem; + font-size: 0.875rem; + line-height: 1.25rem; + font-weight: 600; + --tw-text-opacity: 1; + color: rgb(255 255 255 / var(--tw-text-opacity)); +} + +.wpuf-btn-primary:hover { + --tw-bg-opacity: 1; + background-color: rgb(21 128 61 / var(--tw-bg-opacity)); + --tw-text-opacity: 1; + color: rgb(255 255 255 / var(--tw-text-opacity)); +} + +.wpuf-btn-secondary { + border-radius: 0.375rem; + border-width: 1px; + --tw-border-opacity: 1; + border-color: rgb(134 239 172 / var(--tw-border-opacity)); + --tw-bg-opacity: 1; + background-color: rgb(240 253 244 / var(--tw-bg-opacity)); + padding-left: 0.875rem; + padding-right: 0.875rem; + padding-top: 0.5rem; + padding-bottom: 0.5rem; + font-size: 0.875rem; + line-height: 1.25rem; + font-weight: 600; + --tw-text-opacity: 1; + color: rgb(21 128 61 / var(--tw-text-opacity)); +} + +.wpuf-btn-secondary:hover { + --tw-bg-opacity: 1; + background-color: rgb(220 252 231 / var(--tw-bg-opacity)); + --tw-text-opacity: 1; + color: rgb(255 255 255 / var(--tw-text-opacity)); +} + +.wpuf-sr-only { + position: absolute; + width: 1px; + height: 1px; + padding: 0; + margin: -1px; + overflow: hidden; + clip: rect(0, 0, 0, 0); + white-space: nowrap; + border-width: 0; +} + +.wpuf-pointer-events-none { + pointer-events: none; +} + +.wpuf-fixed { + position: fixed; +} + +.wpuf-absolute { + position: absolute; +} + +.wpuf-relative { + position: relative; +} + +.wpuf-inset-0 { + inset: 0px; +} + +.wpuf-inset-y-0 { + top: 0px; + bottom: 0px; +} + +.wpuf--left-20 { + left: -5rem; +} + +.wpuf-left-0 { + left: 0px; +} + +.wpuf-left-\[-2\%\] { + left: -2%; +} + +.wpuf-left-\[-20px\] { + left: -20px; +} + +.wpuf-left-\[calc\(50\%-5rem\)\] { + left: calc(50% - 5rem); +} + +.wpuf-right-0 { + right: 0px; +} + +.wpuf-right-4 { + right: 1rem; +} + +.wpuf-right-6 { + right: 1.5rem; +} + +.wpuf-right-8 { + right: 2rem; +} + +.wpuf-top-0 { + top: 0px; +} + +.wpuf-top-1\/3 { + top: 33.333333%; +} + +.wpuf-top-20 { + top: 5rem; +} + +.wpuf-top-4 { + top: 1rem; +} + +.wpuf-top-\[-40\%\] { + top: -40%; +} + +.wpuf-z-10 { + z-index: 10; +} + +.wpuf-z-20 { + z-index: 20; +} + +.wpuf-z-40 { + z-index: 40; +} + +.wpuf-z-50 { + z-index: 50; +} + +.wpuf-z-\[1\] { + z-index: 1; +} + +.wpuf-col-span-2 { + grid-column: span 2 / span 2; +} + +.\!wpuf-m-0 { + margin: 0px !important; +} + +.wpuf-m-0 { + margin: 0px; +} + +.wpuf-m-1 { + margin: 0.25rem; +} + +.wpuf-m-4 { + margin: 1rem; +} + +.wpuf--mx-1\.5 { + margin-left: -0.375rem; + margin-right: -0.375rem; +} + +.wpuf--my-1\.5 { + margin-top: -0.375rem; + margin-bottom: -0.375rem; +} + +.wpuf-mx-4 { + margin-left: 1rem; + margin-right: 1rem; +} + +.wpuf-mx-auto { + margin-left: auto; + margin-right: auto; +} + +.wpuf-my-0 { + margin-top: 0px; + margin-bottom: 0px; +} + +.wpuf-my-8 { + margin-top: 2rem; + margin-bottom: 2rem; +} + +.\!wpuf-mt-0\.5 { + margin-top: 0.125rem !important; +} + +.\!wpuf-mt-\[\.5px\] { + margin-top: .5px !important; +} + +.wpuf--mb-px { + margin-bottom: -1px; +} + +.wpuf--ml-1 { + margin-left: -0.25rem; +} + +.wpuf--ml-3 { + margin-left: -0.75rem; +} + +.wpuf--mr-3 { + margin-right: -0.75rem; +} + +.wpuf-mb-0 { + margin-bottom: 0px; +} + +.wpuf-mb-1 { + margin-bottom: 0.25rem; +} + +.wpuf-mb-12 { + margin-bottom: 3rem; +} + +.wpuf-mb-4 { + margin-bottom: 1rem; +} + +.wpuf-mb-5 { + margin-bottom: 1.25rem; +} + +.wpuf-me-2 { + margin-inline-end: 0.5rem; +} + +.wpuf-ml-1 { + margin-left: 0.25rem; +} + +.wpuf-ml-2 { + margin-left: 0.5rem; +} + +.wpuf-ml-3 { + margin-left: 0.75rem; +} + +.wpuf-ml-4 { + margin-left: 1rem; +} + +.wpuf-ml-6 { + margin-left: 1.5rem; +} + +.wpuf-ml-\[-20px\] { + margin-left: -20px; +} + +.wpuf-mr-1 { + margin-right: 0.25rem; +} + +.wpuf-mr-2 { + margin-right: 0.5rem; +} + +.wpuf-mr-4 { + margin-right: 1rem; +} + +.wpuf-mr-6 { + margin-right: 1.5rem; +} + +.wpuf-mr-\[10px\] { + margin-right: 10px; +} + +.wpuf-mr-\[16px\] { + margin-right: 16px; +} + +.wpuf-mt-0 { + margin-top: 0px; +} + +.wpuf-mt-1 { + margin-top: 0.25rem; +} + +.wpuf-mt-12 { + margin-top: 3rem; +} + +.wpuf-mt-16 { + margin-top: 4rem; +} + +.wpuf-mt-2 { + margin-top: 0.5rem; +} + +.wpuf-mt-4 { + margin-top: 1rem; +} + +.wpuf-mt-5 { + margin-top: 1.25rem; +} + +.wpuf-mt-8 { + margin-top: 2rem; +} + +.wpuf-mt-\[-5px\] { + margin-top: -5px; +} + +.wpuf-mt-\[1px\] { + margin-top: 1px; +} + +.wpuf-mt-\[32px\] { + margin-top: 32px; +} + +.wpuf-mt-\[40px\] { + margin-top: 40px; +} + +.wpuf-block { + display: block; +} + +.wpuf-inline-block { + display: inline-block; +} + +.wpuf-flex { + display: flex; +} + +.wpuf-inline-flex { + display: inline-flex; +} + +.wpuf-grid { + display: grid; +} + +.wpuf-hidden { + display: none; +} + +.wpuf-size-4 { + width: 1rem; + height: 1rem; +} + +.wpuf-size-5 { + width: 1.25rem; + height: 1.25rem; +} + +.wpuf-h-0 { + height: 0px; +} + +.wpuf-h-10 { + height: 2.5rem; +} + +.wpuf-h-12 { + height: 3rem; +} + +.wpuf-h-3 { + height: 0.75rem; +} + +.wpuf-h-4 { + height: 1rem; +} + +.wpuf-h-5 { + height: 1.25rem; +} + +.wpuf-h-6 { + height: 1.5rem; +} + +.wpuf-h-8 { + height: 2rem; +} + +.wpuf-h-80 { + height: 20rem; +} + +.wpuf-h-\[180\%\] { + height: 180%; +} + +.wpuf-h-\[50vh\] { + height: 50vh; +} + +.wpuf-h-full { + height: 100%; +} + +.wpuf-h-max { + height: -moz-max-content; + height: max-content; +} + +.wpuf-h-min { + height: -moz-min-content; + height: min-content; +} + +.wpuf-h-screen { + height: 100vh; +} + +.wpuf-h-svh { + height: 100svh; +} + +.wpuf-min-h-full { + min-height: 100%; +} + +.wpuf-min-h-max { + min-height: -moz-max-content; + min-height: max-content; +} + +.wpuf-min-h-min { + min-height: -moz-min-content; + min-height: min-content; +} + +.wpuf-min-h-screen { + min-height: 100vh; +} + +.wpuf-w-1\/2 { + width: 50%; +} + +.wpuf-w-1\/3 { + width: 33.333333%; +} + +.wpuf-w-1\/4 { + width: 25%; +} + +.wpuf-w-10 { + width: 2.5rem; +} + +.wpuf-w-11 { + width: 2.75rem; +} + +.wpuf-w-12 { + width: 3rem; +} + +.wpuf-w-2\/3 { + width: 66.666667%; +} + +.wpuf-w-2\/4 { + width: 50%; +} + +.wpuf-w-2\/5 { + width: 40%; +} + +.wpuf-w-3 { + width: 0.75rem; +} + +.wpuf-w-3\/4 { + width: 75%; +} + +.wpuf-w-4 { + width: 1rem; +} + +.wpuf-w-44 { + width: 11rem; +} + +.wpuf-w-5 { + width: 1.25rem; +} + +.wpuf-w-52 { + width: 13rem; +} + +.wpuf-w-6 { + width: 1.5rem; +} + +.wpuf-w-8 { + width: 2rem; +} + +.wpuf-w-9 { + width: 2.25rem; +} + +.wpuf-w-\[104\%\] { + width: 104%; +} + +.wpuf-w-\[calc\(100\%\+20px\)\] { + width: calc(100% + 20px); +} + +.wpuf-w-\[calc\(100\%\+40px\)\] { + width: calc(100% + 40px); +} + +.wpuf-w-\[calc\(100\%-2rem\)\] { + width: calc(100% - 2rem); +} + +.wpuf-w-auto { + width: auto; +} + +.wpuf-w-fit { + width: -moz-fit-content; + width: fit-content; +} + +.wpuf-w-full { + width: 100%; +} + +.wpuf-w-max { + width: -moz-max-content; + width: max-content; +} + +.wpuf-w-screen { + width: 100vw; +} + +.wpuf-min-w-0 { + min-width: 0px; +} + +.wpuf-min-w-16 { + min-width: 4rem; +} + +.wpuf-min-w-full { + min-width: 100%; +} + +.\!wpuf-max-w-full { + max-width: 100% !important; +} + +.wpuf-max-w-32 { + max-width: 8rem; +} + +.wpuf-max-w-\[768px\] { + max-width: 768px; +} + +.wpuf-max-w-full { + max-width: 100%; +} + +.wpuf-max-w-lg { + max-width: 32rem; +} + +.wpuf-max-w-xs { + max-width: 20rem; +} + +.wpuf-flex-1 { + flex: 1 1 0%; +} + +.wpuf-flex-none { + flex: none; +} + +.wpuf-flex-shrink { + flex-shrink: 1; +} + +.wpuf-flex-shrink-0 { + flex-shrink: 0; +} + +.wpuf-shrink-0 { + flex-shrink: 0; +} + +.wpuf-flex-grow { + flex-grow: 1; +} + +.wpuf-basis-1\/2 { + flex-basis: 50%; +} + +.wpuf-basis-1\/5 { + flex-basis: 20%; +} + +.wpuf-basis-4\/5 { + flex-basis: 80%; +} + +.wpuf-translate-x-0 { + --tw-translate-x: 0px; + transform: translate(var(--tw-translate-x), var(--tw-translate-y)) rotate(var(--tw-rotate)) skewX(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y)); +} + +.wpuf-translate-x-5 { + --tw-translate-x: 1.25rem; + transform: translate(var(--tw-translate-x), var(--tw-translate-y)) rotate(var(--tw-rotate)) skewX(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y)); +} + +.wpuf-rotate-180 { + --tw-rotate: 180deg; + transform: translate(var(--tw-translate-x), var(--tw-translate-y)) rotate(var(--tw-rotate)) skewX(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y)); +} + +.wpuf-rotate-6 { + --tw-rotate: 6deg; + transform: translate(var(--tw-translate-x), var(--tw-translate-y)) rotate(var(--tw-rotate)) skewX(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y)); +} + +.wpuf-rotate-90 { + --tw-rotate: 90deg; + transform: translate(var(--tw-translate-x), var(--tw-translate-y)) rotate(var(--tw-rotate)) skewX(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y)); +} + +.wpuf-transform { + transform: translate(var(--tw-translate-x), var(--tw-translate-y)) rotate(var(--tw-rotate)) skewX(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y)); +} + +.wpuf-cursor-not-allowed { + cursor: not-allowed; +} + +.wpuf-cursor-pointer { + cursor: pointer; +} + +.wpuf-cursor-wait { + cursor: wait; +} + +.wpuf-list-none { + list-style-type: none; +} + +.wpuf-grid-cols-1 { + grid-template-columns: repeat(1, minmax(0, 1fr)); +} + +.wpuf-grid-cols-3 { + grid-template-columns: repeat(3, minmax(0, 1fr)); +} + +.wpuf-grid-cols-4 { + grid-template-columns: repeat(4, minmax(0, 1fr)); +} + +.wpuf-flex-row { + flex-direction: row; +} + +.wpuf-flex-row-reverse { + flex-direction: row-reverse; +} + +.wpuf-flex-col { + flex-direction: column; +} + +.wpuf-flex-wrap { + flex-wrap: wrap; +} + +.wpuf-place-content-center { + place-content: center; +} + +.wpuf-items-start { + align-items: flex-start; +} + +.wpuf-items-center { + align-items: center; +} + +.wpuf-items-baseline { + align-items: baseline; +} + +.wpuf-justify-start { + justify-content: flex-start; +} + +.wpuf-justify-end { + justify-content: flex-end; +} + +.wpuf-justify-center { + justify-content: center; +} + +.wpuf-justify-between { + justify-content: space-between; +} + +.wpuf-justify-around { + justify-content: space-around; +} + +.wpuf-justify-evenly { + justify-content: space-evenly; +} + +.wpuf-gap-2 { + gap: 0.5rem; +} + +.wpuf-gap-3 { + gap: 0.75rem; +} + +.wpuf-gap-4 { + gap: 1rem; +} + +.wpuf-gap-6 { + gap: 1.5rem; +} + +.wpuf-gap-x-1\.5 { + -moz-column-gap: 0.375rem; + column-gap: 0.375rem; +} + +.wpuf-gap-x-2 { + -moz-column-gap: 0.5rem; + column-gap: 0.5rem; +} + +.wpuf-gap-x-3 { + -moz-column-gap: 0.75rem; + column-gap: 0.75rem; +} + +.wpuf--space-x-px > :not([hidden]) ~ :not([hidden]) { + --tw-space-x-reverse: 0; + margin-right: calc(-1px * var(--tw-space-x-reverse)); + margin-left: calc(-1px * calc(1 - var(--tw-space-x-reverse))); +} + +.wpuf-space-x-4 > :not([hidden]) ~ :not([hidden]) { + --tw-space-x-reverse: 0; + margin-right: calc(1rem * var(--tw-space-x-reverse)); + margin-left: calc(1rem * calc(1 - var(--tw-space-x-reverse))); +} + +.wpuf-space-y-2 > :not([hidden]) ~ :not([hidden]) { + --tw-space-y-reverse: 0; + margin-top: calc(0.5rem * calc(1 - var(--tw-space-y-reverse))); + margin-bottom: calc(0.5rem * var(--tw-space-y-reverse)); +} + +.wpuf-space-y-6 > :not([hidden]) ~ :not([hidden]) { + --tw-space-y-reverse: 0; + margin-top: calc(1.5rem * calc(1 - var(--tw-space-y-reverse))); + margin-bottom: calc(1.5rem * var(--tw-space-y-reverse)); +} + +.wpuf-overflow-hidden { + overflow: hidden; +} + +.wpuf-overflow-y-auto { + overflow-y: auto; +} + +.wpuf-whitespace-nowrap { + white-space: nowrap; +} + +.wpuf-text-wrap { + text-wrap: wrap; +} + +.wpuf-rounded { + border-radius: 0.25rem; +} + +.wpuf-rounded-3xl { + border-radius: 1.5rem; +} + +.wpuf-rounded-full { + border-radius: 9999px; +} + +.wpuf-rounded-lg { + border-radius: 0.5rem; +} + +.wpuf-rounded-md { + border-radius: 0.375rem; +} + +.wpuf-rounded-none { + border-radius: 0px; +} + +.wpuf-rounded-xl { + border-radius: 0.75rem; +} + +.wpuf-rounded-b-lg { + border-bottom-right-radius: 0.5rem; + border-bottom-left-radius: 0.5rem; +} + +.wpuf-rounded-b-md { + border-bottom-right-radius: 0.375rem; + border-bottom-left-radius: 0.375rem; +} + +.wpuf-rounded-b-xl { + border-bottom-right-radius: 0.75rem; + border-bottom-left-radius: 0.75rem; +} + +.wpuf-rounded-l-md { + border-top-left-radius: 0.375rem; + border-bottom-left-radius: 0.375rem; +} + +.wpuf-rounded-r-md { + border-top-right-radius: 0.375rem; + border-bottom-right-radius: 0.375rem; +} + +.wpuf-rounded-t-lg { + border-top-left-radius: 0.5rem; + border-top-right-radius: 0.5rem; +} + +.wpuf-rounded-t-md { + border-top-left-radius: 0.375rem; + border-top-right-radius: 0.375rem; +} + +.wpuf-rounded-t-xl { + border-top-left-radius: 0.75rem; + border-top-right-radius: 0.75rem; +} + +.\!wpuf-border-0 { + border-width: 0px !important; +} + +.wpuf-border { + border-width: 1px; +} + +.wpuf-border-0 { + border-width: 0px; +} + +.wpuf-border-2 { + border-width: 2px; +} + +.wpuf-border-b { + border-bottom-width: 1px; +} + +.wpuf-border-b-2 { + border-bottom-width: 2px; +} + +.wpuf-border-l { + border-left-width: 1px; +} + +.wpuf-border-r { + border-right-width: 1px; +} + +.wpuf-border-r-2 { + border-right-width: 2px; +} + +.wpuf-border-t { + border-top-width: 1px; +} + +.wpuf-border-dashed { + border-style: dashed; +} + +.\!wpuf-border-gray-300 { + --tw-border-opacity: 1 !important; + border-color: rgb(209 213 219 / var(--tw-border-opacity)) !important; +} + +.\!wpuf-border-red-500 { + --tw-border-opacity: 1 !important; + border-color: rgb(239 68 68 / var(--tw-border-opacity)) !important; +} + +.wpuf-border-blue-500 { + --tw-border-opacity: 1; + border-color: rgb(59 130 246 / var(--tw-border-opacity)); +} + +.wpuf-border-blue-600 { + --tw-border-opacity: 1; + border-color: rgb(37 99 235 / var(--tw-border-opacity)); +} + +.wpuf-border-gray-100 { + --tw-border-opacity: 1; + border-color: rgb(243 244 246 / var(--tw-border-opacity)); +} + +.wpuf-border-gray-200 { + --tw-border-opacity: 1; + border-color: rgb(229 231 235 / var(--tw-border-opacity)); +} + +.wpuf-border-gray-300 { + --tw-border-opacity: 1; + border-color: rgb(209 213 219 / var(--tw-border-opacity)); +} + +.wpuf-border-green-200 { + --tw-border-opacity: 1; + border-color: rgb(187 247 208 / var(--tw-border-opacity)); +} + +.wpuf-border-green-400 { + --tw-border-opacity: 1; + border-color: rgb(74 222 128 / var(--tw-border-opacity)); +} + +.wpuf-border-indigo-600 { + --tw-border-opacity: 1; + border-color: rgb(79 70 229 / var(--tw-border-opacity)); +} + +.wpuf-border-red-500 { + --tw-border-opacity: 1; + border-color: rgb(239 68 68 / var(--tw-border-opacity)); +} + +.wpuf-border-transparent { + border-color: transparent; +} + +.wpuf-border-zinc-300 { + --tw-border-opacity: 1; + border-color: rgb(212 212 216 / var(--tw-border-opacity)); +} + +.\!wpuf-bg-green-600 { + --tw-bg-opacity: 1 !important; + background-color: rgb(22 163 74 / var(--tw-bg-opacity)) !important; +} + +.wpuf-bg-amber-500 { + --tw-bg-opacity: 1; + background-color: rgb(245 158 11 / var(--tw-bg-opacity)); +} + +.wpuf-bg-amber-600 { + --tw-bg-opacity: 1; + background-color: rgb(217 119 6 / var(--tw-bg-opacity)); +} + +.wpuf-bg-black\/25 { + background-color: rgb(0 0 0 / 0.25); +} + +.wpuf-bg-blue-500 { + --tw-bg-opacity: 1; + background-color: rgb(59 130 246 / var(--tw-bg-opacity)); +} + +.wpuf-bg-gray-100 { + --tw-bg-opacity: 1; + background-color: rgb(243 244 246 / var(--tw-bg-opacity)); +} + +.wpuf-bg-gray-200 { + --tw-bg-opacity: 1; + background-color: rgb(229 231 235 / var(--tw-bg-opacity)); +} + +.wpuf-bg-gray-50 { + --tw-bg-opacity: 1; + background-color: rgb(249 250 251 / var(--tw-bg-opacity)); +} + +.wpuf-bg-gray-500 { + --tw-bg-opacity: 1; + background-color: rgb(107 114 128 / var(--tw-bg-opacity)); +} + +.wpuf-bg-green-100 { + --tw-bg-opacity: 1; + background-color: rgb(220 252 231 / var(--tw-bg-opacity)); +} + +.wpuf-bg-green-50 { + --tw-bg-opacity: 1; + background-color: rgb(240 253 244 / var(--tw-bg-opacity)); +} + +.wpuf-bg-green-600 { + --tw-bg-opacity: 1; + background-color: rgb(22 163 74 / var(--tw-bg-opacity)); +} + +.wpuf-bg-green-700\/70 { + background-color: rgb(21 128 61 / 0.7); +} + +.wpuf-bg-indigo-600 { + --tw-bg-opacity: 1; + background-color: rgb(79 70 229 / var(--tw-bg-opacity)); +} + +.wpuf-bg-indigo-700 { + --tw-bg-opacity: 1; + background-color: rgb(67 56 202 / var(--tw-bg-opacity)); +} + +.wpuf-bg-orange-50 { + --tw-bg-opacity: 1; + background-color: rgb(255 247 237 / var(--tw-bg-opacity)); +} + +.wpuf-bg-primary { + --tw-bg-opacity: 1; + background-color: rgb(22 101 52 / var(--tw-bg-opacity)); +} + +.wpuf-bg-red-100 { + --tw-bg-opacity: 1; + background-color: rgb(254 226 226 / var(--tw-bg-opacity)); +} + +.wpuf-bg-red-50 { + --tw-bg-opacity: 1; + background-color: rgb(254 242 242 / var(--tw-bg-opacity)); +} + +.wpuf-bg-red-500 { + --tw-bg-opacity: 1; + background-color: rgb(239 68 68 / var(--tw-bg-opacity)); +} + +.wpuf-bg-red-600 { + --tw-bg-opacity: 1; + background-color: rgb(220 38 38 / var(--tw-bg-opacity)); +} + +.wpuf-bg-slate-100 { + --tw-bg-opacity: 1; + background-color: rgb(241 245 249 / var(--tw-bg-opacity)); +} + +.wpuf-bg-slate-50 { + --tw-bg-opacity: 1; + background-color: rgb(248 250 252 / var(--tw-bg-opacity)); +} + +.wpuf-bg-transparent { + background-color: transparent; +} + +.wpuf-bg-white { + --tw-bg-opacity: 1; + background-color: rgb(255 255 255 / var(--tw-bg-opacity)); +} + +.wpuf-bg-yellow-100 { + --tw-bg-opacity: 1; + background-color: rgb(254 249 195 / var(--tw-bg-opacity)); +} + +.wpuf-bg-yellow-50 { + --tw-bg-opacity: 1; + background-color: rgb(254 252 232 / var(--tw-bg-opacity)); +} + +.wpuf-bg-opacity-75 { + --tw-bg-opacity: 0.75; +} + +.\!wpuf-stroke-primary { + stroke: #166534 !important; +} + +.wpuf-stroke-gray-400 { + stroke: #9ca3af; +} + +.\!wpuf-p-0 { + padding: 0px !important; +} + +.wpuf-p-0 { + padding: 0px; +} + +.wpuf-p-1 { + padding: 0.25rem; +} + +.wpuf-p-1\.5 { + padding: 0.375rem; +} + +.wpuf-p-10 { + padding: 2.5rem; +} + +.wpuf-p-12 { + padding: 3rem; +} + +.wpuf-p-2 { + padding: 0.5rem; +} + +.wpuf-p-20 { + padding: 5rem; +} + +.wpuf-p-4 { + padding: 1rem; +} + +.wpuf-p-5 { + padding: 1.25rem; +} + +.wpuf-p-6 { + padding: 1.5rem; +} + +.wpuf-p-\[10px\] { + padding: 10px; +} + +.wpuf-px-12 { + padding-left: 3rem; + padding-right: 3rem; +} + +.wpuf-px-2 { + padding-left: 0.5rem; + padding-right: 0.5rem; +} + +.wpuf-px-2\.5 { + padding-left: 0.625rem; + padding-right: 0.625rem; +} + +.wpuf-px-3 { + padding-left: 0.75rem; + padding-right: 0.75rem; +} + +.wpuf-px-4 { + padding-left: 1rem; + padding-right: 1rem; +} + +.wpuf-px-5 { + padding-left: 1.25rem; + padding-right: 1.25rem; +} + +.wpuf-px-6 { + padding-left: 1.5rem; + padding-right: 1.5rem; +} + +.wpuf-px-\[20px\] { + padding-left: 20px; + padding-right: 20px; +} + +.wpuf-py-0\.5 { + padding-top: 0.125rem; + padding-bottom: 0.125rem; +} + +.wpuf-py-1 { + padding-top: 0.25rem; + padding-bottom: 0.25rem; +} + +.wpuf-py-1\.5 { + padding-top: 0.375rem; + padding-bottom: 0.375rem; +} + +.wpuf-py-2 { + padding-top: 0.5rem; + padding-bottom: 0.5rem; +} + +.wpuf-py-3 { + padding-top: 0.75rem; + padding-bottom: 0.75rem; +} + +.wpuf-py-4 { + padding-top: 1rem; + padding-bottom: 1rem; +} + +.wpuf-py-5 { + padding-top: 1.25rem; + padding-bottom: 1.25rem; +} + +.wpuf-py-6 { + padding-top: 1.5rem; + padding-bottom: 1.5rem; +} + +.wpuf-py-8 { + padding-top: 2rem; + padding-bottom: 2rem; +} + +.wpuf-pb-4 { + padding-bottom: 1rem; +} + +.wpuf-pb-6 { + padding-bottom: 1.5rem; +} + +.wpuf-pl-1 { + padding-left: 0.25rem; +} + +.wpuf-pl-2 { + padding-left: 0.5rem; +} + +.wpuf-pl-3 { + padding-left: 0.75rem; +} + +.wpuf-pl-\[20px\] { + padding-left: 20px; +} + +.wpuf-pl-\[48px\] { + padding-left: 48px; +} + +.wpuf-pr-10 { + padding-right: 2.5rem; +} + +.wpuf-pr-2 { + padding-right: 0.5rem; +} + +.wpuf-pr-3 { + padding-right: 0.75rem; +} + +.wpuf-pr-4 { + padding-right: 1rem; +} + +.wpuf-pr-\[20px\] { + padding-right: 20px; +} + +.wpuf-pr-\[48px\] { + padding-right: 48px; +} + +.wpuf-pt-1 { + padding-top: 0.25rem; +} + +.wpuf-pt-4 { + padding-top: 1rem; +} + +.wpuf-pt-5 { + padding-top: 1.25rem; +} + +.wpuf-pt-8 { + padding-top: 2rem; +} + +.wpuf-pt-\[40px\] { + padding-top: 40px; +} + +.wpuf-text-left { + text-align: left; +} + +.wpuf-text-center { + text-align: center; +} + +.wpuf-text-end { + text-align: end; +} + +.\!wpuf-text-sm { + font-size: 0.875rem !important; + line-height: 1.25rem !important; +} + +.\!wpuf-text-xl { + font-size: 1.25rem !important; + line-height: 1.75rem !important; +} + +.wpuf-text-2xl { + font-size: 1.5rem; + line-height: 2rem; +} + +.wpuf-text-3xl { + font-size: 1.875rem; + line-height: 2.25rem; +} + +.wpuf-text-5xl { + font-size: 3rem; + line-height: 1; +} + +.wpuf-text-\[11px\] { + font-size: 11px; +} + +.wpuf-text-\[24px\] { + font-size: 24px; +} + +.wpuf-text-base { + font-size: 1rem; + line-height: 1.5rem; +} + +.wpuf-text-lg { + font-size: 1.125rem; + line-height: 1.75rem; +} + +.wpuf-text-sm { + font-size: 0.875rem; + line-height: 1.25rem; +} + +.wpuf-text-xs { + font-size: 0.75rem; + line-height: 1rem; +} + +.\!wpuf-font-bold { + font-weight: 700 !important; +} + +.wpuf-font-bold { + font-weight: 700; +} + +.wpuf-font-medium { + font-weight: 500; +} + +.wpuf-font-normal { + font-weight: 400; +} + +.wpuf-font-semibold { + font-weight: 600; +} + +.wpuf-italic { + font-style: italic; +} + +.\!wpuf-leading-none { + line-height: 1 !important; +} + +.wpuf-leading-10 { + line-height: 2.5rem; +} + +.wpuf-leading-6 { + line-height: 1.5rem; +} + +.wpuf-leading-none { + line-height: 1; +} + +.wpuf-tracking-tight { + letter-spacing: -0.025em; +} + +.\!wpuf-text-red-900 { + --tw-text-opacity: 1 !important; + color: rgb(127 29 29 / var(--tw-text-opacity)) !important; +} + +.wpuf-text-blue-600 { + --tw-text-opacity: 1; + color: rgb(37 99 235 / var(--tw-text-opacity)); +} + +.wpuf-text-gray-400 { + --tw-text-opacity: 1; + color: rgb(156 163 175 / var(--tw-text-opacity)); +} + +.wpuf-text-gray-500 { + --tw-text-opacity: 1; + color: rgb(107 114 128 / var(--tw-text-opacity)); +} + +.wpuf-text-gray-600 { + --tw-text-opacity: 1; + color: rgb(75 85 99 / var(--tw-text-opacity)); +} + +.wpuf-text-gray-700 { + --tw-text-opacity: 1; + color: rgb(55 65 81 / var(--tw-text-opacity)); +} + +.wpuf-text-gray-800 { + --tw-text-opacity: 1; + color: rgb(31 41 55 / var(--tw-text-opacity)); +} + +.wpuf-text-gray-900 { + --tw-text-opacity: 1; + color: rgb(17 24 39 / var(--tw-text-opacity)); +} + +.wpuf-text-green-200 { + --tw-text-opacity: 1; + color: rgb(187 247 208 / var(--tw-text-opacity)); +} + +.wpuf-text-green-500 { + --tw-text-opacity: 1; + color: rgb(34 197 94 / var(--tw-text-opacity)); +} + +.wpuf-text-green-700 { + --tw-text-opacity: 1; + color: rgb(21 128 61 / var(--tw-text-opacity)); +} + +.wpuf-text-indigo-600 { + --tw-text-opacity: 1; + color: rgb(79 70 229 / var(--tw-text-opacity)); +} + +.wpuf-text-orange-700 { + --tw-text-opacity: 1; + color: rgb(194 65 12 / var(--tw-text-opacity)); +} + +.wpuf-text-red-500 { + --tw-text-opacity: 1; + color: rgb(239 68 68 / var(--tw-text-opacity)); +} + +.wpuf-text-red-600 { + --tw-text-opacity: 1; + color: rgb(220 38 38 / var(--tw-text-opacity)); +} + +.wpuf-text-red-700 { + --tw-text-opacity: 1; + color: rgb(185 28 28 / var(--tw-text-opacity)); +} + +.wpuf-text-slate-700 { + --tw-text-opacity: 1; + color: rgb(51 65 85 / var(--tw-text-opacity)); +} + +.wpuf-text-slate-900 { + --tw-text-opacity: 1; + color: rgb(15 23 42 / var(--tw-text-opacity)); +} + +.wpuf-text-white { + --tw-text-opacity: 1; + color: rgb(255 255 255 / var(--tw-text-opacity)); +} + +.wpuf-text-yellow-400 { + --tw-text-opacity: 1; + color: rgb(250 204 21 / var(--tw-text-opacity)); +} + +.wpuf-text-yellow-500 { + --tw-text-opacity: 1; + color: rgb(234 179 8 / var(--tw-text-opacity)); +} + +.wpuf-text-yellow-700 { + --tw-text-opacity: 1; + color: rgb(161 98 7 / var(--tw-text-opacity)); +} + +.wpuf-opacity-0 { + opacity: 0; +} + +.\!wpuf-shadow-sm { + --tw-shadow: 0 1px 2px 0 rgb(0 0 0 / 0.05) !important; + --tw-shadow-colored: 0 1px 2px 0 var(--tw-shadow-color) !important; + box-shadow: var(--tw-ring-offset-shadow, 0 0 #0000), var(--tw-ring-shadow, 0 0 #0000), var(--tw-shadow) !important; +} + +.wpuf-shadow { + --tw-shadow: 0 1px 3px 0 rgb(0 0 0 / 0.1), 0 1px 2px -1px rgb(0 0 0 / 0.1); + --tw-shadow-colored: 0 1px 3px 0 var(--tw-shadow-color), 0 1px 2px -1px var(--tw-shadow-color); + box-shadow: var(--tw-ring-offset-shadow, 0 0 #0000), var(--tw-ring-shadow, 0 0 #0000), var(--tw-shadow); +} + +.wpuf-shadow-lg { + --tw-shadow: 0 10px 15px -3px rgb(0 0 0 / 0.1), 0 4px 6px -4px rgb(0 0 0 / 0.1); + --tw-shadow-colored: 0 10px 15px -3px var(--tw-shadow-color), 0 4px 6px -4px var(--tw-shadow-color); + box-shadow: var(--tw-ring-offset-shadow, 0 0 #0000), var(--tw-ring-shadow, 0 0 #0000), var(--tw-shadow); +} + +.wpuf-shadow-none { + --tw-shadow: 0 0 #0000; + --tw-shadow-colored: 0 0 #0000; + box-shadow: var(--tw-ring-offset-shadow, 0 0 #0000), var(--tw-ring-shadow, 0 0 #0000), var(--tw-shadow); +} + +.wpuf-shadow-sm { + --tw-shadow: 0 1px 2px 0 rgb(0 0 0 / 0.05); + --tw-shadow-colored: 0 1px 2px 0 var(--tw-shadow-color); + box-shadow: var(--tw-ring-offset-shadow, 0 0 #0000), var(--tw-ring-shadow, 0 0 #0000), var(--tw-shadow); +} + +.wpuf-shadow-xl { + --tw-shadow: 0 20px 25px -5px rgb(0 0 0 / 0.1), 0 8px 10px -6px rgb(0 0 0 / 0.1); + --tw-shadow-colored: 0 20px 25px -5px var(--tw-shadow-color), 0 8px 10px -6px var(--tw-shadow-color); + box-shadow: var(--tw-ring-offset-shadow, 0 0 #0000), var(--tw-ring-shadow, 0 0 #0000), var(--tw-shadow); +} + +.wpuf-ring-0 { + --tw-ring-offset-shadow: var(--tw-ring-inset) 0 0 0 var(--tw-ring-offset-width) var(--tw-ring-offset-color); + --tw-ring-shadow: var(--tw-ring-inset) 0 0 0 calc(0px + var(--tw-ring-offset-width)) var(--tw-ring-color); + box-shadow: var(--tw-ring-offset-shadow), var(--tw-ring-shadow), var(--tw-shadow, 0 0 #0000); +} + +.wpuf-ring-1 { + --tw-ring-offset-shadow: var(--tw-ring-inset) 0 0 0 var(--tw-ring-offset-width) var(--tw-ring-offset-color); + --tw-ring-shadow: var(--tw-ring-inset) 0 0 0 calc(1px + var(--tw-ring-offset-width)) var(--tw-ring-color); + box-shadow: var(--tw-ring-offset-shadow), var(--tw-ring-shadow), var(--tw-shadow, 0 0 #0000); +} + +.wpuf-ring-inset { + --tw-ring-inset: inset; +} + +.wpuf-ring-blue-200 { + --tw-ring-opacity: 1; + --tw-ring-color: rgb(191 219 254 / var(--tw-ring-opacity)); +} + +.wpuf-ring-gray-300 { + --tw-ring-opacity: 1; + --tw-ring-color: rgb(209 213 219 / var(--tw-ring-opacity)); +} + +.wpuf-ring-gray-900\/5 { + --tw-ring-color: rgb(17 24 39 / 0.05); +} + +.wpuf-ring-green-600\/20 { + --tw-ring-color: rgb(22 163 74 / 0.2); +} + +.wpuf-ring-indigo-600 { + --tw-ring-opacity: 1; + --tw-ring-color: rgb(79 70 229 / var(--tw-ring-opacity)); +} + +.wpuf-ring-orange-600\/10 { + --tw-ring-color: rgb(234 88 12 / 0.1); +} + +.wpuf-ring-red-300 { + --tw-ring-opacity: 1; + --tw-ring-color: rgb(252 165 165 / var(--tw-ring-opacity)); +} + +.wpuf-ring-red-500 { + --tw-ring-opacity: 1; + --tw-ring-color: rgb(239 68 68 / var(--tw-ring-opacity)); +} + +.wpuf-ring-red-600\/10 { + --tw-ring-color: rgb(220 38 38 / 0.1); +} + +.wpuf-ring-slate-600\/10 { + --tw-ring-color: rgb(71 85 105 / 0.1); +} + +.wpuf-ring-yellow-600\/10 { + --tw-ring-color: rgb(202 138 4 / 0.1); +} + +.wpuf-blur { + --tw-blur: blur(8px); + filter: var(--tw-blur) var(--tw-brightness) var(--tw-contrast) var(--tw-grayscale) var(--tw-hue-rotate) var(--tw-invert) var(--tw-saturate) var(--tw-sepia) var(--tw-drop-shadow); +} + +.wpuf-drop-shadow-sm { + --tw-drop-shadow: drop-shadow(0 1px 1px rgb(0 0 0 / 0.05)); + filter: var(--tw-blur) var(--tw-brightness) var(--tw-contrast) var(--tw-grayscale) var(--tw-hue-rotate) var(--tw-invert) var(--tw-saturate) var(--tw-sepia) var(--tw-drop-shadow); +} + +.wpuf-transition { + transition-property: color, background-color, border-color, text-decoration-color, fill, stroke, opacity, box-shadow, transform, filter, -webkit-backdrop-filter; + transition-property: color, background-color, border-color, text-decoration-color, fill, stroke, opacity, box-shadow, transform, filter, backdrop-filter; + transition-property: color, background-color, border-color, text-decoration-color, fill, stroke, opacity, box-shadow, transform, filter, backdrop-filter, -webkit-backdrop-filter; + transition-timing-function: cubic-bezier(0.4, 0, 0.2, 1); + transition-duration: 150ms; +} + +.wpuf-transition-all { + transition-property: all; + transition-timing-function: cubic-bezier(0.4, 0, 0.2, 1); + transition-duration: 150ms; +} + +.wpuf-transition-colors { + transition-property: color, background-color, border-color, text-decoration-color, fill, stroke; + transition-timing-function: cubic-bezier(0.4, 0, 0.2, 1); + transition-duration: 150ms; +} + +.wpuf-transition-opacity { + transition-property: opacity; + transition-timing-function: cubic-bezier(0.4, 0, 0.2, 1); + transition-duration: 150ms; +} + +.wpuf-transition-transform { + transition-property: transform; + transition-timing-function: cubic-bezier(0.4, 0, 0.2, 1); + transition-duration: 150ms; +} + +.wpuf-duration-150 { + transition-duration: 150ms; +} + +.wpuf-duration-200 { + transition-duration: 200ms; +} + +.wpuf-ease-in-out { + transition-timing-function: cubic-bezier(0.4, 0, 0.2, 1); +} + +.wpuf-ease-out { + transition-timing-function: cubic-bezier(0, 0, 0.2, 1); +} + +.wpuf-transition-all { + transition-property: all; +} + +.wpuf-ease-out { + transition-timing-function: cubic-bezier(0, 0, 0.2, 1); +} + +/* Transition styles */ + +.wpuf-dropdown-item { + --tw-scale-x: .75; + --tw-scale-y: .75; + transform: translate(var(--tw-translate-x), var(--tw-translate-y)) rotate(var(--tw-rotate)) skewX(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y)); + opacity: 0; + transition-timing-function: cubic-bezier(0.4, 0, 0.2, 1); + transition-property: all; + transition-duration: 100ms; + transition-timing-function: cubic-bezier(0, 0, 0.2, 1); +} + +.wpuf-dropdown-container:hover .wpuf-dropdown-item { + --tw-scale-x: 1; + --tw-scale-y: 1; + transform: translate(var(--tw-translate-x), var(--tw-translate-y)) rotate(var(--tw-rotate)) skewX(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y)); + opacity: 1; + transform: scale(1); +} + +.wpuf-pattern-1 { + border: 1px dashed #ddd; + background-color: #ffffff; + opacity: 1; + background: repeating-linear-gradient( -45deg, #dcfce7, #dcfce7 2px, #ffffff 2px, #ffffff 6px ); +} + +.placeholder\:wpuf-text-gray-400::-moz-placeholder { + --tw-text-opacity: 1; + color: rgb(156 163 175 / var(--tw-text-opacity)); +} + +.placeholder\:wpuf-text-gray-400::placeholder { + --tw-text-opacity: 1; + color: rgb(156 163 175 / var(--tw-text-opacity)); +} + +.placeholder\:wpuf-text-red-300::-moz-placeholder { + --tw-text-opacity: 1; + color: rgb(252 165 165 / var(--tw-text-opacity)); +} + +.placeholder\:wpuf-text-red-300::placeholder { + --tw-text-opacity: 1; + color: rgb(252 165 165 / var(--tw-text-opacity)); +} + +.before\:wpuf-absolute::before { + content: var(--tw-content); + position: absolute; +} + +.before\:wpuf--top-6::before { + content: var(--tw-content); + top: -1.5rem; +} + +.before\:wpuf-mt-3::before { + content: var(--tw-content); + margin-top: 0.75rem; +} + +.before\:wpuf-h-3::before { + content: var(--tw-content); + height: 0.75rem; +} + +.before\:wpuf-bg-gray-700::before { + content: var(--tw-content); + --tw-bg-opacity: 1; + background-color: rgb(55 65 81 / var(--tw-bg-opacity)); +} + +.before\:wpuf-text-zinc-50::before { + content: var(--tw-content); + --tw-text-opacity: 1; + color: rgb(250 250 250 / var(--tw-text-opacity)); +} + +.after\:wpuf-absolute::after { + content: var(--tw-content); + position: absolute; +} + +.after\:wpuf-border::after { + content: var(--tw-content); + border-width: 1px; +} + +.after\:wpuf-border-b-0::after { + content: var(--tw-content); + border-bottom-width: 0px; +} + +.after\:wpuf-border-r-0::after { + content: var(--tw-content); + border-right-width: 0px; +} + +.after\:wpuf-border-x-transparent::after { + content: var(--tw-content); + border-left-color: transparent; + border-right-color: transparent; +} + +.after\:wpuf-border-t-gray-700::after { + content: var(--tw-content); + --tw-border-opacity: 1; + border-top-color: rgb(55 65 81 / var(--tw-border-opacity)); +} + +.after\:wpuf-bg-white::after { + content: var(--tw-content); + --tw-bg-opacity: 1; + background-color: rgb(255 255 255 / var(--tw-bg-opacity)); +} + +.hover\:wpuf-block:hover { + display: block; +} + +.hover\:\!wpuf-cursor-move:hover { + cursor: move !important; +} + +.hover\:wpuf-cursor-pointer:hover { + cursor: pointer; +} + +.hover\:wpuf-rounded-md:hover { + border-radius: 0.375rem; +} + +.hover\:wpuf-border-b-2:hover { + border-bottom-width: 2px; +} + +.hover\:wpuf-border-blue-600:hover { + --tw-border-opacity: 1; + border-color: rgb(37 99 235 / var(--tw-border-opacity)); +} + +.hover\:wpuf-border-blue-700:hover { + --tw-border-opacity: 1; + border-color: rgb(29 78 216 / var(--tw-border-opacity)); +} + +.hover\:wpuf-border-gray-300:hover { + --tw-border-opacity: 1; + border-color: rgb(209 213 219 / var(--tw-border-opacity)); +} + +.hover\:wpuf-border-red-700:hover { + --tw-border-opacity: 1; + border-color: rgb(185 28 28 / var(--tw-border-opacity)); +} + +.hover\:wpuf-bg-amber-600:hover { + --tw-bg-opacity: 1; + background-color: rgb(217 119 6 / var(--tw-bg-opacity)); +} + +.hover\:wpuf-bg-blue-700:hover { + --tw-bg-opacity: 1; + background-color: rgb(29 78 216 / var(--tw-bg-opacity)); +} + +.hover\:wpuf-bg-gray-100:hover { + --tw-bg-opacity: 1; + background-color: rgb(243 244 246 / var(--tw-bg-opacity)); +} + +.hover\:wpuf-bg-gray-50:hover { + --tw-bg-opacity: 1; + background-color: rgb(249 250 251 / var(--tw-bg-opacity)); +} + +.hover\:wpuf-bg-green-50:hover { + --tw-bg-opacity: 1; + background-color: rgb(240 253 244 / var(--tw-bg-opacity)); +} + +.hover\:wpuf-bg-green-700:hover { + --tw-bg-opacity: 1; + background-color: rgb(21 128 61 / var(--tw-bg-opacity)); +} + +.hover\:wpuf-bg-indigo-500:hover { + --tw-bg-opacity: 1; + background-color: rgb(99 102 241 / var(--tw-bg-opacity)); +} + +.hover\:wpuf-bg-indigo-700:hover { + --tw-bg-opacity: 1; + background-color: rgb(67 56 202 / var(--tw-bg-opacity)); +} + +.hover\:wpuf-bg-indigo-800:hover { + --tw-bg-opacity: 1; + background-color: rgb(55 48 163 / var(--tw-bg-opacity)); +} + +.hover\:wpuf-bg-red-500:hover { + --tw-bg-opacity: 1; + background-color: rgb(239 68 68 / var(--tw-bg-opacity)); +} + +.hover\:wpuf-bg-red-700:hover { + --tw-bg-opacity: 1; + background-color: rgb(185 28 28 / var(--tw-bg-opacity)); +} + +.hover\:wpuf-bg-slate-100:hover { + --tw-bg-opacity: 1; + background-color: rgb(241 245 249 / var(--tw-bg-opacity)); +} + +.hover\:wpuf-bg-slate-500:hover { + --tw-bg-opacity: 1; + background-color: rgb(100 116 139 / var(--tw-bg-opacity)); +} + +.hover\:wpuf-bg-white:hover { + --tw-bg-opacity: 1; + background-color: rgb(255 255 255 / var(--tw-bg-opacity)); +} + +.hover\:wpuf-text-blue-600:hover { + --tw-text-opacity: 1; + color: rgb(37 99 235 / var(--tw-text-opacity)); +} + +.hover\:wpuf-text-gray-500:hover { + --tw-text-opacity: 1; + color: rgb(107 114 128 / var(--tw-text-opacity)); +} + +.hover\:wpuf-text-gray-600:hover { + --tw-text-opacity: 1; + color: rgb(75 85 99 / var(--tw-text-opacity)); +} + +.hover\:wpuf-text-gray-700:hover { + --tw-text-opacity: 1; + color: rgb(55 65 81 / var(--tw-text-opacity)); +} + +.hover\:wpuf-text-gray-800:hover { + --tw-text-opacity: 1; + color: rgb(31 41 55 / var(--tw-text-opacity)); +} + +.hover\:wpuf-text-gray-900:hover { + --tw-text-opacity: 1; + color: rgb(17 24 39 / var(--tw-text-opacity)); +} + +.hover\:wpuf-text-indigo-600:hover { + --tw-text-opacity: 1; + color: rgb(79 70 229 / var(--tw-text-opacity)); +} + +.hover\:wpuf-text-white:hover { + --tw-text-opacity: 1; + color: rgb(255 255 255 / var(--tw-text-opacity)); +} + +.hover\:wpuf-shadow-none:hover { + --tw-shadow: 0 0 #0000; + --tw-shadow-colored: 0 0 #0000; + box-shadow: var(--tw-ring-offset-shadow, 0 0 #0000), var(--tw-ring-shadow, 0 0 #0000), var(--tw-shadow); +} + +.hover\:wpuf-drop-shadow-sm:hover { + --tw-drop-shadow: drop-shadow(0 1px 1px rgb(0 0 0 / 0.05)); + filter: var(--tw-blur) var(--tw-brightness) var(--tw-contrast) var(--tw-grayscale) var(--tw-hue-rotate) var(--tw-invert) var(--tw-saturate) var(--tw-sepia) var(--tw-drop-shadow); +} + +.hover\:wpuf-transition-all:hover { + transition-timing-function: cubic-bezier(0.4, 0, 0.2, 1); + transition-duration: 150ms; + transition-property: all; +} + +.focus\:wpuf-z-20:focus { + z-index: 20; +} + +.focus\:\!wpuf-border-indigo-500:focus { + --tw-border-opacity: 1 !important; + border-color: rgb(99 102 241 / var(--tw-border-opacity)) !important; +} + +.focus\:wpuf-bg-amber-600:focus { + --tw-bg-opacity: 1; + background-color: rgb(217 119 6 / var(--tw-bg-opacity)); +} + +.focus\:wpuf-bg-indigo-500:focus { + --tw-bg-opacity: 1; + background-color: rgb(99 102 241 / var(--tw-bg-opacity)); +} + +.focus\:wpuf-bg-slate-100:focus { + --tw-bg-opacity: 1; + background-color: rgb(241 245 249 / var(--tw-bg-opacity)); +} + +.focus\:wpuf-text-white:focus { + --tw-text-opacity: 1; + color: rgb(255 255 255 / var(--tw-text-opacity)); +} + +.focus\:wpuf-shadow-none:focus { + --tw-shadow: 0 0 #0000; + --tw-shadow-colored: 0 0 #0000; + box-shadow: var(--tw-ring-offset-shadow, 0 0 #0000), var(--tw-ring-shadow, 0 0 #0000), var(--tw-shadow); +} + +.focus\:wpuf-outline-none:focus { + outline: 2px solid transparent; + outline-offset: 2px; +} + +.focus\:wpuf-ring:focus { + --tw-ring-offset-shadow: var(--tw-ring-inset) 0 0 0 var(--tw-ring-offset-width) var(--tw-ring-offset-color); + --tw-ring-shadow: var(--tw-ring-inset) 0 0 0 calc(3px + var(--tw-ring-offset-width)) var(--tw-ring-color); + box-shadow: var(--tw-ring-offset-shadow), var(--tw-ring-shadow), var(--tw-shadow, 0 0 #0000); +} + +.focus\:wpuf-ring-1:focus { + --tw-ring-offset-shadow: var(--tw-ring-inset) 0 0 0 var(--tw-ring-offset-width) var(--tw-ring-offset-color); + --tw-ring-shadow: var(--tw-ring-inset) 0 0 0 calc(1px + var(--tw-ring-offset-width)) var(--tw-ring-color); + box-shadow: var(--tw-ring-offset-shadow), var(--tw-ring-shadow), var(--tw-shadow, 0 0 #0000); +} + +.focus\:wpuf-ring-2:focus { + --tw-ring-offset-shadow: var(--tw-ring-inset) 0 0 0 var(--tw-ring-offset-width) var(--tw-ring-offset-color); + --tw-ring-shadow: var(--tw-ring-inset) 0 0 0 calc(2px + var(--tw-ring-offset-width)) var(--tw-ring-color); + box-shadow: var(--tw-ring-offset-shadow), var(--tw-ring-shadow), var(--tw-shadow, 0 0 #0000); +} + +.focus\:wpuf-ring-blue-200:focus { + --tw-ring-opacity: 1; + --tw-ring-color: rgb(191 219 254 / var(--tw-ring-opacity)); +} + +.focus\:wpuf-ring-gray-300:focus { + --tw-ring-opacity: 1; + --tw-ring-color: rgb(209 213 219 / var(--tw-ring-opacity)); +} + +.focus\:wpuf-ring-indigo-500:focus { + --tw-ring-opacity: 1; + --tw-ring-color: rgb(99 102 241 / var(--tw-ring-opacity)); +} + +.focus\:wpuf-ring-indigo-600:focus { + --tw-ring-opacity: 1; + --tw-ring-color: rgb(79 70 229 / var(--tw-ring-opacity)); +} + +.focus\:wpuf-ring-red-200:focus { + --tw-ring-opacity: 1; + --tw-ring-color: rgb(254 202 202 / var(--tw-ring-opacity)); +} + +.focus\:wpuf-ring-red-500:focus { + --tw-ring-opacity: 1; + --tw-ring-color: rgb(239 68 68 / var(--tw-ring-opacity)); +} + +.focus-visible\:wpuf-outline:focus-visible { + outline-style: solid; +} + +.focus-visible\:wpuf-outline-2:focus-visible { + outline-width: 2px; +} + +.focus-visible\:wpuf-outline-offset-2:focus-visible { + outline-offset: 2px; +} + +.focus-visible\:wpuf-outline-indigo-600:focus-visible { + outline-color: #4f46e5; +} + +.active\:wpuf-shadow-none:active { + --tw-shadow: 0 0 #0000; + --tw-shadow-colored: 0 0 #0000; + box-shadow: var(--tw-ring-offset-shadow, 0 0 #0000), var(--tw-ring-shadow, 0 0 #0000), var(--tw-shadow); +} + +.wpuf-group:hover .group-hover\:wpuf-flex { + display: flex; +} + +.wpuf-group:hover .group-hover\:wpuf-rotate-6 { + --tw-rotate: 6deg; + transform: translate(var(--tw-translate-x), var(--tw-translate-y)) rotate(var(--tw-rotate)) skewX(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y)); +} + +.wpuf-group:hover .group-hover\:wpuf-cursor-pointer { + cursor: pointer; +} + +.wpuf-group:hover .group-hover\:wpuf-border-dashed { + border-style: dashed; +} + +.wpuf-group\/column-inner:hover .group-hover\/column-inner\:wpuf-border-green-400 { + --tw-border-opacity: 1; + border-color: rgb(74 222 128 / var(--tw-border-opacity)); +} + +.wpuf-group:hover .group-hover\:wpuf-border-green-400 { + --tw-border-opacity: 1; + border-color: rgb(74 222 128 / var(--tw-border-opacity)); +} + +.wpuf-group:hover .group-hover\:wpuf-stroke-gray-500 { + stroke: #6b7280; +} + +.wpuf-group\/column-inner:hover .group-hover\/column-inner\:wpuf-opacity-100 { + opacity: 1; +} + +.wpuf-group:hover .group-hover\:wpuf-opacity-100 { + opacity: 1; +} + +.wpuf-peer:hover ~ .peer-hover\:wpuf-block { + display: block; +} + +@media (min-width: 640px) { + .sm\:wpuf-flex { + display: flex; + } + + .sm\:wpuf-items-center { + align-items: center; + } + + .sm\:wpuf-space-x-10 > :not([hidden]) ~ :not([hidden]) { + --tw-space-x-reverse: 0; + margin-right: calc(2.5rem * var(--tw-space-x-reverse)); + margin-left: calc(2.5rem * calc(1 - var(--tw-space-x-reverse))); + } + + .sm\:wpuf-space-y-0 > :not([hidden]) ~ :not([hidden]) { + --tw-space-y-reverse: 0; + margin-top: calc(0px * calc(1 - var(--tw-space-y-reverse))); + margin-bottom: calc(0px * var(--tw-space-y-reverse)); + } + + .sm\:wpuf-p-0 { + padding: 0px; + } + + .sm\:wpuf-text-sm { + font-size: 0.875rem; + line-height: 1.25rem; + } + + .sm\:wpuf-leading-6 { + line-height: 1.5rem; + } +} + +@media (min-width: 768px) { + .md\:wpuf-w-1\/4 { + width: 25%; + } + + .md\:wpuf-w-3\/4 { + width: 75%; + } + + .md\:wpuf-flex-row { + flex-direction: row; + } +} + +@media (min-width: 1536px) { + .\32xl\:wpuf-w-1\/3 { + width: 33.333333%; + } +} + +.rtl\:wpuf-left-auto:where([dir="rtl"], [dir="rtl"] *) { + left: auto; +} + +.rtl\:wpuf-right-0:where([dir="rtl"], [dir="rtl"] *) { + right: 0px; +} + +.rtl\:wpuf-ml-1:where([dir="rtl"], [dir="rtl"] *) { + margin-left: 0.25rem; +} + +.rtl\:wpuf-mr-0:where([dir="rtl"], [dir="rtl"] *) { + margin-right: 0px; +} + +.rtl\:wpuf-pl-0:where([dir="rtl"], [dir="rtl"] *) { + padding-left: 0px; +} + +.rtl\:wpuf-pr-2:where([dir="rtl"], [dir="rtl"] *) { + padding-right: 0.5rem; +} + +.rtl\:wpuf-text-right:where([dir="rtl"], [dir="rtl"] *) { + text-align: right; +} diff --git a/assets/css/frontend-forms.css b/assets/css/frontend-forms.css index 39fb30fe9..d74de735b 100644 --- a/assets/css/frontend-forms.css +++ b/assets/css/frontend-forms.css @@ -11,9 +11,6 @@ body { /* CSS for custom columns */ /* Upload Button */ } -body #wpfooter { - position: fixed !important; -} body .has-error { background: #FFE4E4; padding: 10px; @@ -258,22 +255,6 @@ body ul.wpuf-form li .wpuf-label { body ul.wpuf-form li .wpuf-label .required { color: red; } -body ul.wpuf-form li.field-size-large .wpuf-fields { - float: left; - width: 70%; -} -body ul.wpuf-form li.field-size-medium .wpuf-fields { - float: left; - width: 50%; -} -body ul.wpuf-form li.field-size-small .wpuf-fields { - float: left; - width: 30%; -} -body ul.wpuf-form li .wpuf-fields { - float: left; - width: 70%; -} body ul.wpuf-form li .wpuf-fields .wpuf-radio-inline, body ul.wpuf-form li .wpuf-fields .wpuf-checkbox-inline { display: inline-block; @@ -284,31 +265,6 @@ body ul.wpuf-form li .wpuf-fields .wpuf-checkbox-block { display: block; margin-bottom: 6px; } -body ul.wpuf-form li .wpuf-fields a.file-selector { - display: inline; - text-decoration: none; - padding: 5px 12px; - margin: 0; - height: 30px; - line-height: 28px; - border: 1px solid #ccc; - -webkit-border-radius: 3px; - -moz-border-radius: 3px; - border-radius: 3px; - background: #fafafa; - color: #23282d; - box-shadow: 0 1px 0 #cccccc; - vertical-align: top; - cursor: pointer; - -webkit-appearance: none; - white-space: nowrap; -} -body ul.wpuf-form li .wpuf-fields a.file-selector:hover, -body ul.wpuf-form li .wpuf-fields a.file-selector:focus { - background: #fafafa; - border-color: #999; - color: #23282d; -} body ul.wpuf-form li .wpuf-fields .google-map img { max-width: none !important; } diff --git a/assets/css/wpuf-form-builder.css b/assets/css/wpuf-form-builder.css index 67834ec19..600c1a549 100644 --- a/assets/css/wpuf-form-builder.css +++ b/assets/css/wpuf-form-builder.css @@ -867,17 +867,6 @@ ul.wpuf-form li .wpuf-password-field:after { margin: 0; padding: 5px 10px; } -.wpuf-form-template-modal { - background: #fff; - position: fixed; - top: 5%; - bottom: 5%; - right: 10%; - left: 10%; - display: none; - box-shadow: 0 1px 20px 5px rgba(0, 0, 0, 0.1); - z-index: 160000; -} .wpuf-form-template-modal.show { display: block; } diff --git a/assets/images/templates/blank.svg b/assets/images/templates/blank.svg new file mode 100644 index 000000000..c9c53326e --- /dev/null +++ b/assets/images/templates/blank.svg @@ -0,0 +1,23 @@ + + + + + + + + + + + + + + + + + + + + + + + diff --git a/assets/images/templates/edd.png b/assets/images/templates/edd.png deleted file mode 100644 index e28738c50..000000000 Binary files a/assets/images/templates/edd.png and /dev/null differ diff --git a/assets/images/templates/edd.svg b/assets/images/templates/edd.svg new file mode 100644 index 000000000..6580e3e79 --- /dev/null +++ b/assets/images/templates/edd.svg @@ -0,0 +1,34 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/assets/images/templates/event.svg b/assets/images/templates/event.svg new file mode 100644 index 000000000..c2da1d073 --- /dev/null +++ b/assets/images/templates/event.svg @@ -0,0 +1,34 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/assets/images/templates/post.png b/assets/images/templates/post.png deleted file mode 100644 index 5f4872d88..000000000 Binary files a/assets/images/templates/post.png and /dev/null differ diff --git a/assets/images/templates/post.svg b/assets/images/templates/post.svg new file mode 100644 index 000000000..516eb21b5 --- /dev/null +++ b/assets/images/templates/post.svg @@ -0,0 +1,33 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/assets/images/templates/woocommerce.png b/assets/images/templates/woocommerce.png deleted file mode 100644 index 941cad437..000000000 Binary files a/assets/images/templates/woocommerce.png and /dev/null differ diff --git a/assets/images/templates/woocommerce.svg b/assets/images/templates/woocommerce.svg new file mode 100644 index 000000000..ebf61f740 --- /dev/null +++ b/assets/images/templates/woocommerce.svg @@ -0,0 +1,36 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/assets/js-templates/form-components.php b/assets/js-templates/form-components.php index 93414ac83..13f335851 100644 --- a/assets/js-templates/form-components.php +++ b/assets/js-templates/form-components.php @@ -1,85 +1,196 @@ @@ -454,64 +587,138 @@ class="wpuf-turnstile-placeholder" + + @@ -523,9 +730,8 @@ class="wpuf-turnstile-placeholder"
    - - +

    @@ -542,12 +747,12 @@ class="wpuf-turnstile-placeholder"
    - +

    @@ -555,18 +760,22 @@ class="wpuf-turnstile-placeholder"
    - +

    @@ -626,18 +835,26 @@ class="button"
    - +

    @@ -645,6 +862,7 @@ class="button"
    + :class="builder_class_names('textareafield')">{{ field.default }} - - + + +

    @@ -850,12 +1113,12 @@ class="textfield"
    - +

    diff --git a/assets/js/wpuf-form-builder-components.js b/assets/js/wpuf-form-builder-components.js index a23c61525..eb1929850 100644 --- a/assets/js/wpuf-form-builder-components.js +++ b/assets/js/wpuf-form-builder-components.js @@ -842,7 +842,6 @@ Vue.component('form-column_field', { self.resizeColumns(self.field.columns); }); - columnFieldArea.mouseleave(function() { columnFields.unbind( "mouseup" ); columnFields.unbind( "mousemove" ); @@ -924,6 +923,10 @@ Vue.component('form-column_field', { field_settings: function () { return this.$store.state.field_settings; }, + + action_button_classes: function() { + return 'hover:wpuf-cursor-pointer hover:wpuf-text-white'; + } }, methods: { diff --git a/assets/js/wpuf-form-builder-mixins.js b/assets/js/wpuf-form-builder-mixins.js index 7380deac1..b907b6484 100644 --- a/assets/js/wpuf-form-builder-mixins.js +++ b/assets/js/wpuf-form-builder-mixins.js @@ -49,6 +49,12 @@ wpuf_mixins.add_form_field = { this.$store.commit('add_form_field_element', payload); }, }, + + computed: { + action_button_classes: function() { + return 'wpuf-p-2 hover:wpuf-cursor-pointer hover:wpuf-text-white'; + } + }, }; /** @@ -86,6 +92,32 @@ wpuf_mixins.form_field_mixin = { ]; }, + builder_class_names: function(type_class) { + var commonClasses = ''; + + switch (type_class) { + case 'text': + case 'url': + case 'email': + case 'textareafield': + case 'textfield': + case 'select': + commonClasses = 'wpuf-block wpuf-min-w-full wpuf-rounded-md wpuf-py-1.5 wpuf-text-gray-900 !wpuf-shadow-sm placeholder:wpuf-text-gray-400 sm:wpuf-text-sm sm:wpuf-leading-6 wpuf-border !wpuf-border-gray-300 wpuf-max-w-full'; + break; + + case 'upload_btn': + commonClasses = 'file-selector wpuf-rounded-md wpuf-btn-secondary'; + break; + } + + return [ + type_class, + this.required_class(), + 'wpuf_' + this.field.name + '_' + this.form_id, + commonClasses + ]; + }, + required_class: function () { return ('yes' === this.required) ? 'required' : ''; }, diff --git a/assets/js/wpuf-form-builder.js b/assets/js/wpuf-form-builder.js index 8349eb77a..324a45851 100644 --- a/assets/js/wpuf-form-builder.js +++ b/assets/js/wpuf-form-builder.js @@ -410,7 +410,12 @@ is_form_saved: false, is_form_switcher: false, post_title_editing: false, - isDirty: false + isDirty: false, + enableMultistep: false, + shortcodeCopied: false, + active_tab: 'form-editor', + active_settings_tab: '#wpuf-metabox-settings', + logoUrl: wpuf_form_builder.assetUrl + '/images/wpuf-icon-circle.svg' }, computed: { @@ -448,7 +453,7 @@ }); return meta_key.map(function(name) { return '{' + name +'}' }).join( ); - } + }, }, watch: { @@ -471,33 +476,31 @@ }, mounted: function () { - // primary nav tabs and their contents - this.bind_tab_on_click($('#wpuf-form-builder > fieldset > .nav-tab-wrapper > a'), '#wpuf-form-builder'); - // secondary settings tabs and their contents - var settings_tabs = $('#wpuf-form-builder-settings .nav-tab'), - settings_tab_contents = $('#wpuf-form-builder-settings .tab-contents .group'); - - settings_tabs.first().addClass('nav-tab-active'); - settings_tab_contents.first().addClass('active'); + var settings_tabs = $('#wpuf-form-builder-settings-tabs .nav-tab'); + var self = this; - this.bind_tab_on_click(settings_tabs, '#wpuf-form-builder-settings'); + // add a click listener to each settings_tab + settings_tabs.each(function () { + $(this).bind('click', self.setActiveSettingsTab ); + }); var clipboard = new window.Clipboard('.form-id'); $(".form-id").tooltip(); - var self = this; - clipboard.on('success', function(e) { // Show copied tooltip $(e.trigger) - .attr('data-original-title', 'Copied!') + .attr('data-original-title', 'Shortcode copied!') .tooltip('show'); + self.shortcodeCopied = true; + // Reset the copied tooltip setTimeout(function() { $(e.trigger).tooltip('hide') .attr('data-original-title', self.i18n.copy_shortcode); + self.shortcodeCopied = false; }, 1000); e.clearSelection(); @@ -511,20 +514,8 @@ }, methods: { - // tabs and their contents - bind_tab_on_click: function (tabs, scope) { - tabs.on('click', function (e) { - e.preventDefault(); - - var button = $(this), - tab_contents = $(scope + ' > fieldset > .tab-contents'), - group_id = button.attr('href'); - - button.addClass('nav-tab-active').siblings('.nav-tab-active').removeClass('nav-tab-active'); - - tab_contents.children().removeClass('active'); - $(group_id).addClass('active'); - }); + setActiveSettingsTab: function (e) { + this.active_settings_tab = $(e.target).attr('href'); }, // switch form @@ -899,11 +890,11 @@ // on DOM ready $(function() { - resizeBuilderContainer(); - - $("#collapse-menu").click(function () { - resizeBuilderContainer(); - }); + // resizeBuilderContainer(); + // + // $("#collapse-menu").click(function () { + // resizeBuilderContainer(); + // }); function resizeBuilderContainer() { if ($(document.body).hasClass('folded')) { diff --git a/assets/less/admin.less b/assets/less/admin.less index 1c15ae848..3fcbabd96 100644 --- a/assets/less/admin.less +++ b/assets/less/admin.less @@ -763,17 +763,10 @@ ul.wpuf-form{ position: relative; ul.wpuf-column-fields-sortable-list{ - border: 1px dashed #ffb900; - background: rgba(255, 185, 0, 0.08); margin: 0; padding: 0 0 50px 0; li.column-field-items{ - background: #fff; - -webkit-box-shadow: 0 0 10px rgba(0, 0, 0, 0.3); - box-shadow: 0 0 10px rgba(0, 0, 0, 0.3); - position: relative; - &.current-editing{ background-color: rgba(255, 185, 0, 0.15); } diff --git a/assets/less/frontend-forms.less b/assets/less/frontend-forms.less index 902907249..f8faec655 100644 --- a/assets/less/frontend-forms.less +++ b/assets/less/frontend-forms.less @@ -5,9 +5,6 @@ @mediaMD: 1200px; /* DivTable.com */ body { -#wpfooter { - position: fixed !important -} .has-error { background: #FFE4E4; padding: 10px; @@ -281,29 +278,8 @@ ul.wpuf-form { color: red; } } - &.field-size-large { - .wpuf-fields { - float: left; - width: 70%; - } - } - &.field-size-medium { - .wpuf-fields { - float: left; - width: 50%; - } - } - &.field-size-small { - .wpuf-fields { - float: left; - width: 30%; - } - } .wpuf-fields { - float: left; - width: 70%; - .wpuf-radio-inline, .wpuf-checkbox-inline{ display: inline-block; @@ -316,31 +292,6 @@ ul.wpuf-form { margin-bottom: 6px; } - a.file-selector { - display: inline; - text-decoration: none; - padding: 5px 12px; - margin: 0; - height: 30px; - line-height: 28px; - border: 1px solid #ccc; - .border-radius(3px); - background: #fafafa; - color: #23282d; - box-shadow: 0 1px 0 #cccccc; - vertical-align: top; - cursor: pointer; - -webkit-appearance: none; - white-space: nowrap; - - &:hover, - &:focus { - background: #fafafa; - border-color: #999; - color: #23282d; - } - } - .google-map { img { max-width: none !important; diff --git a/includes/Admin/Forms/Admin_Form.php b/includes/Admin/Forms/Admin_Form.php index e2bd4de98..77b870ccd 100644 --- a/includes/Admin/Forms/Admin_Form.php +++ b/includes/Admin/Forms/Admin_Form.php @@ -196,27 +196,27 @@ public function add_settings_tab_contents() { $form_settings = wpuf_get_form_settings( $post->ID ); ?> -
    +
    -
    +
    -
    +
    -
    +
    -
    +
    -
    +
    admin->admin_form->form_post_expiration(); ?>
    @@ -234,18 +234,24 @@ public function add_settings_tab_contents() { */ public function add_settings_tabs() { ?> - - - - - - - + + + + + + @@ -261,11 +267,13 @@ public function add_settings_tabs() { */ public function add_primary_tabs() { ?> - - + - -
    +
    diff --git a/includes/Admin/Forms/Admin_Form_Builder.php b/includes/Admin/Forms/Admin_Form_Builder.php index 3b051b337..45f8cb9d3 100644 --- a/includes/Admin/Forms/Admin_Form_Builder.php +++ b/includes/Admin/Forms/Admin_Form_Builder.php @@ -48,6 +48,7 @@ public function __construct( $settings ) { add_action( 'admin_footer', [ $this, 'custom_dequeue' ] ); add_action( 'admin_footer', [ $this, 'admin_footer' ] ); add_action( 'wpuf_admin_form_builder', [ $this, 'include_form_builder' ] ); + add_action( 'wpuf_admin_form_builder_view', [ $this, 'include_form_builder' ] ); } add_action( 'wpuf_form_builder_template_builder_stage_submit_area', [ $this, 'add_form_submit_area' ] ); @@ -154,6 +155,7 @@ public function admin_enqueue_scripts() { 'i18n' => $this->i18n(), 'post' => $post, 'form_fields' => wpuf_get_form_fields( $post->ID ), + 'assetUrl' => WPUF_ASSET_URI, 'panel_sections' => wpuf()->fields->get_field_groups(), 'field_settings' => wpuf()->fields->get_js_settings(), 'form_settings' => wpuf_get_form_settings( $post->ID ), @@ -257,12 +259,22 @@ public function include_form_builder() { $post_type = $this->settings['post_type']; $form_settings_key = $this->settings['form_settings_key']; $shortcodes = $this->settings['shortcodes']; - $forms = get_posts( [ 'post_type' => $post_type, 'post_status' => 'any' ] ); - include WPUF_ROOT . '/admin/form-builder/views/form-builder.php'; + $forms = get_posts( + [ + 'post_type' => $post_type, + 'post_status' => 'any', + ] + ); + + if ( defined( 'WPUF_PRO_VERSION' ) && version_compare( WPUF_PRO_VERSION, '4.0.12', '<' ) ) { + include WPUF_ROOT . '/admin/form-builder/views/form-builder-old.php'; + } else { + include WPUF_ROOT . '/admin/form-builder/views/form-builder.php'; + } } /** - * i18n translatable strings + * WordPress i18n translatable strings * * @since 2.5 * diff --git a/includes/Admin/Forms/Post/Templates/Form_Template.php b/includes/Admin/Forms/Post/Templates/Form_Template.php index 76a7fe893..a42b08d10 100644 --- a/includes/Admin/Forms/Post/Templates/Form_Template.php +++ b/includes/Admin/Forms/Post/Templates/Form_Template.php @@ -16,7 +16,7 @@ public function __construct() { add_action( 'admin_enqueue_scripts', [ $this, 'deregister_scripts' ], 99 ); // post form templates - add_action( 'admin_footer', [ $this, 'render_post_form_templates' ] ); + // add_action( 'admin_footer', [ $this, 'render_post_form_templates' ] ); // form settings add_action( 'wpuf_form_setting', [ $this, 'post_form_settings' ], 8, 2 ); @@ -82,7 +82,11 @@ public function enqueue_scripts() { wp_enqueue_style( $deps ); } - wp_enqueue_style( 'wpuf-form-builder' ); + if ( defined( 'WPUF_PRO_VERSION' ) && version_compare( WPUF_PRO_VERSION, '4.0.13', '<' ) ) { + wp_enqueue_style( 'wpuf-form-builder' ); + } else { + wp_enqueue_style( 'wpuf-admin-form-builder' ); + } } /** @@ -105,7 +109,9 @@ public function render_post_form_templates() { return; } - include WPUF_ROOT . '/includes/Admin/template-parts/modal.php'; + $modal = WPUF_ROOT . '/includes/Admin/template-parts/modal.php'; + + wpuf_include_once( $modal ); } /** diff --git a/includes/Admin/Forms/Post/Templates/Post_Form_Template_Events_Calendar.php b/includes/Admin/Forms/Post/Templates/Post_Form_Template_Events_Calendar.php index e9a14aec8..ffb93c9f2 100644 --- a/includes/Admin/Forms/Post/Templates/Post_Form_Template_Events_Calendar.php +++ b/includes/Admin/Forms/Post/Templates/Post_Form_Template_Events_Calendar.php @@ -17,7 +17,7 @@ public function __construct() { $this->title = __( 'The Events Calendar', 'wp-user-frontend' ); $this->description = __( 'Form for creating events. The Events Calendar plugin is required.', 'wp-user-frontend' ); - $this->image = WPUF_ASSET_URI . '/images/templates/post.png'; + $this->image = WPUF_ASSET_URI . '/images/templates/post.svg'; $this->form_fields = [ [ 'input_type' => 'text', diff --git a/includes/Admin/Forms/Post/Templates/Post_Form_Template_Post.php b/includes/Admin/Forms/Post/Templates/Post_Form_Template_Post.php index 8a76bdaea..651d66ec0 100644 --- a/includes/Admin/Forms/Post/Templates/Post_Form_Template_Post.php +++ b/includes/Admin/Forms/Post/Templates/Post_Form_Template_Post.php @@ -15,7 +15,7 @@ public function __construct() { $this->enabled = true; $this->title = __( 'Post Form', 'wp-user-frontend' ); $this->description = __( 'Form for creating a blog post.', 'wp-user-frontend' ); - $this->image = WPUF_ASSET_URI . '/images/templates/post.png'; + $this->image = WPUF_ASSET_URI . '/images/templates/post.svg'; $this->form_fields = [ [ 'input_type' => 'text', diff --git a/includes/Admin/Forms/Post/Templates/Post_Form_Template_WooCommerce.php b/includes/Admin/Forms/Post/Templates/Post_Form_Template_WooCommerce.php index d3e52e973..1856a6377 100644 --- a/includes/Admin/Forms/Post/Templates/Post_Form_Template_WooCommerce.php +++ b/includes/Admin/Forms/Post/Templates/Post_Form_Template_WooCommerce.php @@ -14,7 +14,7 @@ public function __construct() { $this->enabled = class_exists( 'WooCommerce' ); $this->title = __( 'WooCommerce Product', 'wp-user-frontend' ); $this->description = __( 'Create a simple product form for WooCommerce.', 'wp-user-frontend' ); - $this->image = WPUF_ASSET_URI . '/images/templates/woocommerce.png'; + $this->image = WPUF_ASSET_URI . '/images/templates/woocommerce.svg'; $this->form_fields = [ [ 'input_type' => 'text', diff --git a/includes/Admin/Forms/Post/Templates/Pro_Form_Preview_EDD.php b/includes/Admin/Forms/Post/Templates/Pro_Form_Preview_EDD.php index 576f92035..2156ae513 100644 --- a/includes/Admin/Forms/Post/Templates/Pro_Form_Preview_EDD.php +++ b/includes/Admin/Forms/Post/Templates/Pro_Form_Preview_EDD.php @@ -27,7 +27,7 @@ class Pro_Form_Preview_EDD { public function __construct() { $this->title = __( 'EDD Download', 'wp-user-frontend' ); - $this->image = WPUF_ASSET_URI . '/images/templates/edd.png'; + $this->image = WPUF_ASSET_URI . '/images/templates/edd.svg'; $this->pro_icon = WPUF_ASSET_URI . '/images/templates/crown.svg'; } diff --git a/includes/Admin/Menu.php b/includes/Admin/Menu.php index 3c5dfd051..711647f89 100644 --- a/includes/Admin/Menu.php +++ b/includes/Admin/Menu.php @@ -116,6 +116,22 @@ public function wpuf_post_forms_page() { default: require_once WPUF_INCLUDES . '/Admin/views/post-forms-list-table-view.php'; + + $registry = wpuf_get_post_form_templates(); + $pro_templates = wpuf_get_pro_form_previews(); + $blank_form_url = admin_url( 'admin.php?page=wpuf-post-forms&action=add-new' ); + $action_name = 'post_form_template'; + $footer_help = sprintf( + // translators: %s: mailto link + __( 'Want a new integration? Let us know.', 'wp-user-frontend' ), 'mailto:support@wedevs.com?subject=WPUF Custom Post Template Integration Request' + ); + + if ( ! $registry ) { + break; + } + + require_once WPUF_ROOT . '/includes/Admin/template-parts/modal.php'; + break; } } diff --git a/includes/Admin/Posting.php b/includes/Admin/Posting.php index 5f42698d3..c0acfd7ea 100644 --- a/includes/Admin/Posting.php +++ b/includes/Admin/Posting.php @@ -22,12 +22,27 @@ public function __construct() { add_action( 'add_meta_boxes', [ $this, 'add_meta_box_post_lock'] ); // add_action( 'admin_enqueue_scripts', [ $this, 'enqueue_script'] ); add_action( 'wpuf_load_post_forms', [ $this, 'enqueue_script' ] ); + add_action( 'admin_enqueue_scripts', [ $this, 'dequeue_assets' ] ); add_action( 'wpuf_load_registration_forms', [ $this, 'enqueue_script' ] ); add_action( 'save_post', [ $this, 'save_meta'], 100, 2 ); // save the custom fields add_action( 'save_post', [ $this, 'form_selection_metabox_save' ], 1, 2 ); // save edit form id add_action( 'save_post', [ $this, 'post_lock_metabox_save' ], 1, 2 ); // save post lock option } + /** + * Dequeue assets + * + * @since WPUF_SINCE + * + * @return void + */ + public function dequeue_assets() { + wp_dequeue_style( 'wpuf-form-builder' ); + if ( defined( 'WPUF_PRO_VERSION' ) && version_compare( WPUF_PRO_VERSION, '4.0.13', '<' ) ) { + wp_dequeue_style( 'wpuf-form-builder-pro' ); + } + } + public static function init() { if ( !self::$_instance ) { self::$_instance = new self(); @@ -39,6 +54,12 @@ public static function init() { public function enqueue_script() { $api_key = wpuf_get_option( 'gmap_api_key', 'wpuf_general' ); + if ( defined( 'WPUF_PRO_VERSION' ) && version_compare( WPUF_PRO_VERSION, '4.0.12', '<' ) ) { + wp_enqueue_style( 'wpuf-form-builder' ); + } else { + wp_enqueue_style( 'wpuf-admin-form-builder' ); + } + wp_enqueue_style( 'jquery-ui', WPUF_ASSET_URI . '/css/jquery-ui-1.9.1.custom.css' ); wp_enqueue_script( 'jquery-ui-slider' ); diff --git a/includes/Admin/template-parts/modal.php b/includes/Admin/template-parts/modal.php index ae8e0d1a6..2871eff7d 100644 --- a/includes/Admin/template-parts/modal.php +++ b/includes/Admin/template-parts/modal.php @@ -1,111 +1,118 @@ -
    -
    - - - × - - - - - - -
    - -
    -
    -
    diff --git a/includes/Admin/views/post-form.php b/includes/Admin/views/post-form.php index deff992f9..0a680f25e 100644 --- a/includes/Admin/views/post-form.php +++ b/includes/Admin/views/post-form.php @@ -1,3 +1,11 @@ -
    - -
    + +
    + +
    + diff --git a/includes/Assets.php b/includes/Assets.php index c74370b7a..2da2214dd 100644 --- a/includes/Assets.php +++ b/includes/Assets.php @@ -106,74 +106,77 @@ public function register_scripts( $scripts ) { */ public function get_styles() { $styles = [ - 'frontend-forms' => [ + 'frontend-forms' => [ 'src' => WPUF_ASSET_URI . '/css/frontend-forms.css', ], - 'layout1' => [ + 'layout1' => [ 'src' => WPUF_ASSET_URI . '/css/frontend-form/layout1.css', ], - 'layout2' => [ + 'layout2' => [ 'src' => WPUF_ASSET_URI . '/css/frontend-form/layout2.css', ], - 'layout3' => [ + 'layout3' => [ 'src' => WPUF_ASSET_URI . '/css/frontend-form/layout3.css', ], - 'layout4' => [ + 'layout4' => [ 'src' => WPUF_ASSET_URI . '/css/frontend-form/layout4.css', ], - 'layout5' => [ + 'layout5' => [ 'src' => WPUF_ASSET_URI . '/css/frontend-form/layout5.css', ], - 'jquery-ui' => [ + 'jquery-ui' => [ 'src' => WPUF_ASSET_URI . '/css/jquery-ui-1.9.1.custom.css', 'version' => '1.9.1', ], - 'sweetalert2' => [ + 'sweetalert2' => [ 'src' => WPUF_ASSET_URI . '/vendor/sweetalert2/dist/sweetalert2.css', 'version' => '11.4.19', ], - 'font-awesome' => [ + 'font-awesome' => [ 'src' => WPUF_ASSET_URI . '/vendor/font-awesome/css/font-awesome.min.css', 'version' => '4.7.0', ], - 'selectize' => [ + 'selectize' => [ 'src' => WPUF_ASSET_URI . '/vendor/selectize/css/selectize.default.css', 'version' => '0.12.4', ], - 'toastr' => [ + 'toastr' => [ 'src' => WPUF_ASSET_URI . '/vendor/toastr/toastr.min.css', 'version' => '2.1.3', ], - 'tooltip' => [ + 'tooltip' => [ 'src' => WPUF_ASSET_URI . '/vendor/tooltip/tooltip.css', 'version' => '3.3.7', ], - 'form-builder' => [ + 'form-builder' => [ 'src' => WPUF_ASSET_URI . '/css/wpuf-form-builder.css', 'deps' => $this->form_builder_css_deps, ], - 'admin' => [ + 'admin-form-builder' => [ + 'src' => WPUF_ASSET_URI . '/css/admin/form-builder.css', + ], + 'admin' => [ 'src' => WPUF_ASSET_URI . '/css/admin.css', ], - 'admin-subscriptions' => [ + 'admin-subscriptions' => [ 'src' => WPUF_ASSET_URI . '/css/admin/subscriptions.min.css', ], - 'registration-forms' => [ + 'registration-forms' => [ 'src' => WPUF_ASSET_URI . '/css/registration-forms.css', ], - 'module' => [ + 'module' => [ 'src' => WPUF_ASSET_URI . '/css/admin/wpuf-module.css', ], - 'swiffy-slider' => [ + 'swiffy-slider' => [ 'src' => WPUF_ASSET_URI . '/vendor/swiffy-slider/swiffy-slider.min.css', 'version' => '1.6.0', ], - 'setup' => [ + 'setup' => [ 'src' => WPUF_ASSET_URI . '/css/admin/wpuf-setup.css', 'deps' => [ 'dashicons', 'install' ], ], - 'whats-new' => [ - 'src' => WPUF_ASSET_URI . '/css/admin/whats-new.css', + 'whats-new' => [ + 'src' => WPUF_ASSET_URI . '/css/admin/whats-new.css', ], ]; diff --git a/includes/Fields/Form_Field_SectionBreak.php b/includes/Fields/Form_Field_SectionBreak.php index 24e9a069e..3718529c1 100755 --- a/includes/Fields/Form_Field_SectionBreak.php +++ b/includes/Fields/Form_Field_SectionBreak.php @@ -2,7 +2,6 @@ namespace WeDevs\Wpuf\Fields; - /** * Section Break Field Class */ @@ -81,15 +80,16 @@ public function get_options_settings() { */ public function get_field_props() { $props = [ - 'input_type' => 'section_break', - 'template' => $this->get_type(), - 'label' => $this->get_name(), - 'description' => __( 'Some description about this section', 'wp-user-frontend' ), - 'id' => 0, - 'is_new' => true, - 'show_in_post' => 'yes', - 'hide_field_label' => 'no', - 'wpuf_cond' => null, + 'input_type' => 'section_break', + 'template' => $this->get_type(), + 'label' => $this->get_name(), + 'description' => __( 'Some description about this section adshfdsh', 'wp-user-frontend' ), + 'id' => 0, + 'is_new' => true, + 'show_in_post' => 'yes', + 'hide_field_label' => 'no', + 'wpuf_cond' => null, + 'divider' => 'regular', ]; return $props; diff --git a/includes/Fields/Form_Field_reCaptcha.php b/includes/Fields/Form_Field_reCaptcha.php index 02703023e..7e5c76bdc 100755 --- a/includes/Fields/Form_Field_reCaptcha.php +++ b/includes/Fields/Form_Field_reCaptcha.php @@ -2,7 +2,6 @@ namespace WeDevs\Wpuf\Fields; - /** * Recaptcha Field Class */ @@ -188,6 +187,15 @@ public function get_options_settings() { return $settings; } + /** + * It's a full width block + * + * @return bool + */ + public function is_full_width() { + return true; + } + /** * Get the field props * diff --git a/includes/Fields/Form_Pro_Upgrade_Fields.php b/includes/Fields/Form_Pro_Upgrade_Fields.php index ab4dcee1a..1e5996116 100755 --- a/includes/Fields/Form_Pro_Upgrade_Fields.php +++ b/includes/Fields/Form_Pro_Upgrade_Fields.php @@ -10,6 +10,8 @@ public function __construct() { $this->fields['repeat_field'] = new Form_Field_Repeat(); $this->fields['country_list_field'] = new Form_Field_Country(); $this->fields['date_field'] = new Form_Field_Date(); + $this->fields['time_field'] = new Form_Field_Time(); + $this->fields['phone_field'] = new Form_Field_Phone(); $this->fields['embed'] = new Form_Field_Embed(); $this->fields['file_upload'] = new Form_Field_File(); $this->fields['google_map'] = new Form_Field_GMap(); @@ -61,6 +63,32 @@ public function __construct() { } } +/** + * Time Field Class + * + * @since WPUF_SINCE + */ +class Form_Field_Time extends Form_Field_Pro { + public function __construct() { + $this->name = __( 'Time', 'wp-user-frontend' ); + $this->input_type = 'time_field'; + $this->icon = 'clock-o'; + } +} + +/** + * Phone Field Class + * + * @since WPUF_SINCE + */ +class Form_Field_Phone extends Form_Field_Pro { + public function __construct() { + $this->name = __( 'Phone Field', 'wpuf-pro' ); + $this->input_type = 'phone_field'; + $this->icon = 'phone'; + } +} + class Form_Field_Embed extends Form_Field_Pro { public function __construct() { $this->name = __( 'Embed', 'wp-user-frontend' ); diff --git a/includes/Setup_Wizard.php b/includes/Setup_Wizard.php index 02df40b71..70a702e95 100644 --- a/includes/Setup_Wizard.php +++ b/includes/Setup_Wizard.php @@ -37,10 +37,6 @@ public function __construct() { * @return void */ public function custom_admin_bar_styles() { - if ( ! is_admin_bar_showing() ) { - return; - } - if ( function_exists( 'wp_enqueue_admin_bar_header_styles' ) ) { wp_enqueue_admin_bar_header_styles(); } else { diff --git a/languages/wp-user-frontend.pot b/languages/wp-user-frontend.pot index e8816dfc8..c1fcc6c16 100644 --- a/languages/wp-user-frontend.pot +++ b/languages/wp-user-frontend.pot @@ -4,7 +4,7 @@ msgid "" msgstr "" "Project-Id-Version: WP User Frontend 4.0.14\n" "Report-Msgid-Bugs-To: https://wedevs.com/contact/\n" -"POT-Creation-Date: 2024-11-23 04:35:17+00:00\n" +"POT-Creation-Date: 2024-11-26 04:19:40+00:00\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=utf-8\n" "Content-Transfer-Encoding: 8bit\n" @@ -136,9 +136,10 @@ msgid "Help" msgstr "" #: admin/class-admin-settings.php:121 admin/class-admin-settings.php:169 -#: admin/form-builder/views/form-builder.php:9 +#: admin/form-builder/views/form-builder-old.php:9 +#: admin/form-builder/views/form-builder.php:122 #: includes/Admin/Admin_Settings.php:68 includes/Admin/Menu.php:91 -#: includes/Admin/Menu.php:358 includes/Setup_Wizard.php:160 +#: includes/Admin/Menu.php:358 includes/Setup_Wizard.php:156 msgid "Settings" msgstr "" @@ -202,89 +203,89 @@ msgstr "" msgid "Add fields by dragging the fields from the right sidebar to this area." msgstr "" -#: admin/form-builder/assets/js/components/builder-stage/template.php:29 -#: admin/form-builder/assets/js/components/form-column_field/template.php:29 -#: assets/js-templates/form-components.php:30 -#: assets/js-templates/form-components.php:485 +#: admin/form-builder/assets/js/components/builder-stage/template.php:43 +#: admin/form-builder/assets/js/components/form-column_field/template.php:52 +#: assets/js-templates/form-components.php:44 +#: assets/js-templates/form-components.php:642 msgid "is available in Pro Version" msgstr "" -#: admin/form-builder/assets/js/components/builder-stage/template.php:60 -#: assets/js-templates/form-components.php:61 +#: admin/form-builder/assets/js/components/builder-stage/template.php:120 +#: assets/js-templates/form-components.php:121 msgid "Hidden Fields" msgstr "" -#: admin/form-builder/assets/js/components/builder-stage/template.php:67 -#: assets/js-templates/form-components.php:68 +#: admin/form-builder/assets/js/components/builder-stage/template.php:129 +#: assets/js-templates/form-components.php:130 msgid "key" msgstr "" -#: admin/form-builder/assets/js/components/builder-stage/template.php:67 -#: assets/js-templates/form-components.php:68 +#: admin/form-builder/assets/js/components/builder-stage/template.php:130 +#: assets/js-templates/form-components.php:131 msgid "value" msgstr "" #: admin/form-builder/assets/js/components/field-option-data/template.php:10 -#: admin/template.php:231 assets/js-templates/form-components.php:130 +#: admin/template.php:231 assets/js-templates/form-components.php:242 #: includes/Admin/Forms/Admin_Template.php:270 msgid "Show values" msgstr "" #: admin/form-builder/assets/js/components/field-option-data/template.php:18 -#: assets/js-templates/form-components.php:138 +#: assets/js-templates/form-components.php:250 msgid "Sync values" msgstr "" #: admin/form-builder/assets/js/components/field-option-data/template.php:20 -#: assets/js-templates/form-components.php:140 +#: assets/js-templates/form-components.php:252 msgid "When enabled, option values will update according to their labels." msgstr "" #: admin/form-builder/assets/js/components/field-option-data/template.php:32 #: admin/template.php:234 admin/template.php:286 -#: assets/js-templates/form-components.php:152 +#: assets/js-templates/form-components.php:264 #: includes/Admin/Forms/Admin_Template.php:275 #: includes/Admin/Forms/Admin_Template.php:336 msgid "Label" msgstr "" #: admin/form-builder/assets/js/components/field-option-data/template.php:33 -#: assets/js-templates/form-components.php:153 +#: assets/js-templates/form-components.php:265 msgid "Do not use & or other special character for option label" msgstr "" #: admin/form-builder/assets/js/components/field-option-data/template.php:37 #: admin/template.php:234 admin/template.php:286 -#: assets/js-templates/form-components.php:157 +#: assets/js-templates/form-components.php:269 #: includes/Admin/Forms/Admin_Template.php:276 #: includes/Admin/Forms/Admin_Template.php:337 msgid "Value" msgstr "" #: admin/form-builder/assets/js/components/field-option-data/template.php:85 -#: assets/js-templates/form-components.php:205 +#: assets/js-templates/form-components.php:317 msgid "Clear Selection" msgstr "" #: admin/form-builder/assets/js/components/field-option-pro-feature-alert/template.php:4 -#: assets/js-templates/form-components.php:213 +#: assets/js-templates/form-components.php:325 msgid "Available in Pro Version" msgstr "" #: admin/form-builder/assets/js/components/field-select/template.php:7 -#: assets/js-templates/form-components.php:308 +#: assets/js-templates/form-components.php:420 msgid "Select an option" msgstr "" #: admin/form-builder/assets/js/components/field-visibility/template.php:52 -#: assets/js-templates/form-components.php:412 +#: assets/js-templates/form-components.php:524 msgid "No subscription plan found." msgstr "" -#: admin/form-builder/assets/js/components/form-featured_image/template.php:6 -#: admin/form-builder/assets/js/components/form-image_upload/template.php:6 -#: assets/js-templates/form-components.php:560 -#: assets/js-templates/form-components.php:631 class/render-form.php:1670 +#: admin/form-builder/assets/js/components/form-featured_image/template.php:7 +#: admin/form-builder/assets/js/components/form-image_upload/template.php:11 +#: assets/js-templates/form-components.php:767 +#: assets/js-templates/form-components.php:846 class/render-form.php:1670 #: includes/Fields/Form_Field_Featured_Image.php:128 #: includes/Fields/Form_Field_Image.php:122 #: includes/Fields/Form_Field_Image.php:143 includes/Render_Form.php:1527 @@ -292,61 +293,71 @@ msgid "Select Image" msgstr "" #: admin/form-builder/assets/js/components/form-post_content/template.php:4 -#: assets/js-templates/form-components.php:668 class/render-form.php:1058 +#: assets/js-templates/form-components.php:887 class/render-form.php:1058 #: includes/Fields/Form_Field_Post_Content.php:72 includes/Render_Form.php:915 msgid "Insert Photo" msgstr "" -#: admin/form-builder/assets/js/components/form-recaptcha/template.php:10 -#: assets/js-templates/form-components.php:760 +#: admin/form-builder/assets/js/components/form-recaptcha/template.php:12 +#: assets/js-templates/form-components.php:1003 msgid "Invisible reCaptcha" msgstr "" -#: admin/form-builder/assets/js/components/form-taxonomy/template.php:11 -#: assets/js-templates/form-components.php:783 +#: admin/form-builder/assets/js/components/form-taxonomy/template.php:13 +#: assets/js-templates/form-components.php:1043 msgid "— Select —" msgstr "" -#: admin/form-builder/views/form-builder.php:5 +#: admin/form-builder/views/form-builder-old.php:5 +#: admin/form-builder/views/form-builder.php:115 msgid "Form Editor" msgstr "" -#: admin/form-builder/views/form-builder.php:15 +#: admin/form-builder/views/form-builder-old.php:15 +#: admin/form-builder/views/form-builder.php:87 #: admin/html/form-settings-post.php:23 templates/dashboard/posts.php:165 msgid "Preview" msgstr "" -#: admin/form-builder/views/form-builder.php:18 +#: admin/form-builder/views/form-builder-old.php:18 +#: admin/form-builder/views/form-builder.php:99 msgid "Save Form" msgstr "" -#: admin/form-builder/views/form-builder.php:22 +#: admin/form-builder/views/form-builder-old.php:22 +#: admin/form-builder/views/form-builder.php:101 msgid "Saving Form Data" msgstr "" -#: admin/form-builder/views/form-builder.php:25 -#: admin/form-builder/views/form-builder.php:77 +#: admin/form-builder/views/form-builder-old.php:25 +#: admin/form-builder/views/form-builder-old.php:77 msgid "Add Fields" msgstr "" -#: admin/form-builder/views/form-builder.php:26 +#: admin/form-builder/views/form-builder-old.php:26 msgid "Show Form" msgstr "" -#: admin/form-builder/views/form-builder.php:47 +#: admin/form-builder/views/form-builder-old.php:47 +#: admin/form-builder/views/form-builder.php:57 #. translators: %s: form id msgid "Click to copy %s shortcode" msgstr "" -#: admin/form-builder/views/form-builder.php:50 -#: includes/Admin/Forms/Admin_Form_Builder.php:293 +#: admin/form-builder/views/form-builder-old.php:50 +#: includes/Admin/Forms/Admin_Form_Builder.php:305 msgid "Click to copy shortcode" msgstr "" -#: admin/form-builder/views/form-builder.php:83 +#: admin/form-builder/views/form-builder-old.php:83 msgid "Field Options" msgstr "" +#: admin/form-builder/views/form-builder.php:145 +#: includes/Free/Form_Element.php:176 includes/Free/Form_Element.php:180 +msgid "Enable Multistep" +msgstr "" + #: admin/html/form-settings-display.php:11 msgid "Label Position" msgstr "" @@ -426,7 +437,7 @@ msgstr "" msgid "Payment Options" msgstr "" -#: admin/html/form-settings-payment.php:26 includes/Setup_Wizard.php:343 +#: admin/html/form-settings-payment.php:26 includes/Setup_Wizard.php:339 #: includes/functions/settings-options.php:472 msgid "Enable Payments" msgstr "" @@ -595,7 +606,7 @@ msgid "Submit" msgstr "" #: admin/html/form-settings-post.php:22 class/render-form.php:761 -#: includes/Admin/Forms/Admin_Form_Builder.php:74 +#: includes/Admin/Forms/Admin_Form_Builder.php:75 #: includes/Frontend_Render_Form.php:79 includes/Render_Form.php:618 #: includes/class-frontend-render-form.php:183 msgid "Save Draft" @@ -836,7 +847,7 @@ msgid "" msgstr "" #: admin/installer.php:30 includes/Admin/Admin_Installer.php:34 -#: includes/Admin/Admin_Tools.php:343 includes/Setup_Wizard.php:350 +#: includes/Admin/Admin_Tools.php:343 includes/Setup_Wizard.php:346 msgid "Install WPUF Pages" msgstr "" @@ -930,85 +941,85 @@ msgid "Sample Form" msgstr "" #: admin/posting.php:74 class/render-form.php:1688 -#: includes/Admin/Posting.php:61 includes/Admin.php:111 +#: includes/Admin/Posting.php:67 includes/Admin.php:111 #: includes/Fields/Field_Contract.php:931 includes/Frontend.php:72 #: includes/Render_Form.php:1545 msgid "Are you sure?" msgstr "" -#: admin/posting.php:75 includes/Admin/Forms/Admin_Form_Builder.php:276 -#: includes/Admin/Posting.php:62 includes/Admin.php:112 +#: admin/posting.php:75 includes/Admin/Forms/Admin_Form_Builder.php:288 +#: includes/Admin/Posting.php:68 includes/Admin.php:112 #: includes/Fields/Field_Contract.php:932 includes/Frontend.php:73 msgid "Yes, delete it" msgstr "" -#: admin/posting.php:76 includes/Admin/Forms/Admin_Form_Builder.php:277 -#: includes/Admin/Posting.php:63 includes/Admin.php:113 +#: admin/posting.php:76 includes/Admin/Forms/Admin_Form_Builder.php:289 +#: includes/Admin/Posting.php:69 includes/Admin.php:113 #: includes/Fields/Field_Contract.php:933 includes/Frontend.php:74 msgid "No, cancel it" msgstr "" -#: admin/posting.php:82 includes/Admin/Posting.php:69 includes/Admin.php:121 +#: admin/posting.php:82 includes/Admin/Posting.php:75 includes/Admin.php:121 #: includes/Fields/Field_Contract.php:943 includes/Frontend.php:84 msgid "Allowed Files" msgstr "" -#: admin/posting.php:85 includes/Admin/Posting.php:72 includes/Admin.php:127 +#: admin/posting.php:85 includes/Admin/Posting.php:78 includes/Admin.php:127 #: includes/Fields/Field_Contract.php:949 includes/Frontend.php:90 msgid "Maximum number of files reached!" msgstr "" -#: admin/posting.php:86 includes/Admin/Posting.php:73 includes/Admin.php:128 +#: admin/posting.php:86 includes/Admin/Posting.php:79 includes/Admin.php:128 #: includes/Fields/Field_Contract.php:950 includes/Frontend.php:91 msgid "The file you have uploaded exceeds the file size limit. Please try again." msgstr "" -#: admin/posting.php:87 includes/Admin/Posting.php:74 includes/Admin.php:129 +#: admin/posting.php:87 includes/Admin/Posting.php:80 includes/Admin.php:129 #: includes/Fields/Field_Contract.php:954 includes/Frontend.php:95 msgid "You have uploaded an incorrect file type. Please try again." msgstr "" -#: admin/posting.php:106 includes/Admin/Posting.php:93 +#: admin/posting.php:106 includes/Admin/Posting.php:99 msgid "WPUF Form" msgstr "" -#: admin/posting.php:134 includes/Admin/Posting.php:121 +#: admin/posting.php:134 includes/Admin/Posting.php:127 msgid "Learn more" msgstr "" -#: admin/posting.php:181 includes/Admin/Posting.php:168 +#: admin/posting.php:181 includes/Admin/Posting.php:174 msgid "WPUF Lock User" msgstr "" -#: admin/posting.php:207 includes/Admin/Posting.php:194 +#: admin/posting.php:207 includes/Admin/Posting.php:200 msgid "" "Post is locked, to allow user to edit this post Click here" msgstr "" -#: admin/posting.php:214 includes/Admin/Posting.php:201 +#: admin/posting.php:214 includes/Admin/Posting.php:207 msgid "" "Frontend edit access for this post will be automatically locked after %s, " "Clear Lock Or," msgstr "" -#: admin/posting.php:235 includes/Admin/Posting.php:222 +#: admin/posting.php:235 includes/Admin/Posting.php:228 msgid "Lock Post Permanently" msgstr "" -#: admin/posting.php:240 includes/Admin/Posting.php:227 +#: admin/posting.php:240 includes/Admin/Posting.php:233 msgid "Lock user from editing this post from the frontend dashboard" msgstr "" -#: admin/posting.php:291 includes/Admin/Posting.php:278 +#: admin/posting.php:291 includes/Admin/Posting.php:284 msgid "WPUF Custom Fields" msgstr "" -#: admin/posting.php:348 includes/Admin/Posting.php:335 +#: admin/posting.php:348 includes/Admin/Posting.php:341 msgid "No custom fields found." msgstr "" -#: admin/posting.php:543 includes/Admin/Posting.php:530 +#: admin/posting.php:543 includes/Admin/Posting.php:536 #: includes/Admin/Promotion.php:216 includes/Admin/Promotion.php:220 #: includes/Admin/Promotion.php:224 includes/Admin/Promotion.php:301 #: includes/Admin/Promotion.php:305 includes/Admin/Promotion.php:309 @@ -1391,8 +1402,8 @@ msgstr "" #: includes/Admin/Forms/Admin_Template.php:746 #: includes/Ajax/Upload_Ajax.php:236 #: includes/Fields/Form_Field_Cloudflare_Turnstile.php:93 -#: includes/Fields/Form_Field_SectionBreak.php:58 -#: includes/Fields/Form_Field_reCaptcha.php:150 templates/dashboard/list.php:10 +#: includes/Fields/Form_Field_SectionBreak.php:57 +#: includes/Fields/Form_Field_reCaptcha.php:149 templates/dashboard/list.php:10 #: templates/dashboard/posts.php:100 wpuf-functions.php:1052 msgid "Title" msgstr "" @@ -1413,7 +1424,7 @@ msgstr "" #: admin/template.php:583 includes/Admin/Forms/Admin_Template.php:668 #: includes/Ajax/Upload_Ajax.php:244 -#: includes/Fields/Form_Field_SectionBreak.php:66 wpuf-functions.php:1060 +#: includes/Fields/Form_Field_SectionBreak.php:65 wpuf-functions.php:1060 msgid "Description" msgstr "" @@ -1438,12 +1449,12 @@ msgid "reCaptcha type" msgstr "" #: admin/template.php:672 includes/Admin/Forms/Admin_Template.php:774 -#: includes/Fields/Form_Field_reCaptcha.php:163 +#: includes/Fields/Form_Field_reCaptcha.php:162 msgid "Enable Invisible reCaptcha" msgstr "" #: admin/template.php:676 includes/Admin/Forms/Admin_Template.php:780 -#: includes/Fields/Form_Field_reCaptcha.php:162 +#: includes/Fields/Form_Field_reCaptcha.php:161 msgid "Enable noCaptcha" msgstr "" @@ -1578,7 +1589,7 @@ msgid "To cancel the pack, press the following cancel button" msgstr "" #: class/subscription.php:869 includes/Admin/Admin_Subscription.php:931 -#: includes/Admin/Forms/Admin_Form_Builder.php:279 +#: includes/Admin/Forms/Admin_Form_Builder.php:291 #: includes/Admin/List_Table_Subscribers.php:146 #: includes/Admin/Subscription.php:888 includes/Frontend/Payment.php:246 #: templates/dashboard/subscription.php:68 @@ -2491,50 +2502,50 @@ msgstr "" msgid "Display Settings" msgstr "" -#: includes/Admin/Forms/Admin_Form.php:266 includes/Free/Form_Element.php:239 +#: includes/Admin/Forms/Admin_Form.php:269 includes/Free/Form_Element.php:239 #: includes/Free/Form_Element.php:281 msgid "Notification" msgstr "" -#: includes/Admin/Forms/Admin_Form.php:302 -#: includes/Admin/Forms/Admin_Form.php:308 +#: includes/Admin/Forms/Admin_Form.php:304 +#: includes/Admin/Forms/Admin_Form.php:310 msgid "- Select -" msgstr "" -#: includes/Admin/Forms/Admin_Form.php:346 +#: includes/Admin/Forms/Admin_Form.php:348 msgid "Post Fields" msgstr "" -#: includes/Admin/Forms/Admin_Form.php:351 +#: includes/Admin/Forms/Admin_Form.php:353 msgid "Taxonomies" msgstr "" -#: includes/Admin/Forms/Admin_Form.php:444 +#: includes/Admin/Forms/Admin_Form.php:446 msgid "Post Forms must have either Post Title, Post Body or Excerpt field" msgstr "" -#: includes/Admin/Forms/Admin_Form_Builder.php:274 +#: includes/Admin/Forms/Admin_Form_Builder.php:286 msgid "Advanced Options" msgstr "" -#: includes/Admin/Forms/Admin_Form_Builder.php:275 +#: includes/Admin/Forms/Admin_Form_Builder.php:287 msgid "Are you sure you want to delete this field?" msgstr "" -#: includes/Admin/Forms/Admin_Form_Builder.php:278 +#: includes/Admin/Forms/Admin_Form_Builder.php:290 msgid "OK" msgstr "" -#: includes/Admin/Forms/Admin_Form_Builder.php:280 +#: includes/Admin/Forms/Admin_Form_Builder.php:292 #: includes/Admin/views/shortcode-builder.php:70 msgid "Close" msgstr "" -#: includes/Admin/Forms/Admin_Form_Builder.php:281 +#: includes/Admin/Forms/Admin_Form_Builder.php:293 msgid "This field must contain at least one choice" msgstr "" -#: includes/Admin/Forms/Admin_Form_Builder.php:282 +#: includes/Admin/Forms/Admin_Form_Builder.php:294 #: includes/Fields/Form_Field_Checkbox.php:110 #: includes/Fields/Form_Field_Dropdown.php:109 #: includes/Fields/Form_Field_MultiDropdown.php:84 @@ -2542,36 +2553,36 @@ msgstr "" msgid "Option" msgstr "" -#: includes/Admin/Forms/Admin_Form_Builder.php:283 +#: includes/Admin/Forms/Admin_Form_Builder.php:295 msgid "Column" msgstr "" -#: includes/Admin/Forms/Admin_Form_Builder.php:284 +#: includes/Admin/Forms/Admin_Form_Builder.php:296 msgid "This field must contain at least one column" msgstr "" -#: includes/Admin/Forms/Admin_Form_Builder.php:285 +#: includes/Admin/Forms/Admin_Form_Builder.php:297 msgid "is available in Pro version" msgstr "" -#: includes/Admin/Forms/Admin_Form_Builder.php:286 +#: includes/Admin/Forms/Admin_Form_Builder.php:298 msgid "Please upgrade to the Pro version to unlock all these awesome features" msgstr "" -#: includes/Admin/Forms/Admin_Form_Builder.php:289 +#: includes/Admin/Forms/Admin_Form_Builder.php:301 msgid "Get the Pro version" msgstr "" -#: includes/Admin/Forms/Admin_Form_Builder.php:290 +#: includes/Admin/Forms/Admin_Form_Builder.php:302 #: includes/Fields/Field_Contract.php:445 msgid "Select" msgstr "" -#: includes/Admin/Forms/Admin_Form_Builder.php:291 +#: includes/Admin/Forms/Admin_Form_Builder.php:303 msgid "Saved form data" msgstr "" -#: includes/Admin/Forms/Admin_Form_Builder.php:292 +#: includes/Admin/Forms/Admin_Form_Builder.php:304 msgid "You have unsaved changes." msgstr "" @@ -2627,19 +2638,19 @@ msgstr "" msgid "Payment type not selected for this form. Please contact admin." msgstr "" -#: includes/Admin/Forms/Post/Templates/Form_Template.php:102 +#: includes/Admin/Forms/Post/Templates/Form_Template.php:106 msgid "Want a new integration? Let us know." msgstr "" -#: includes/Admin/Forms/Post/Templates/Form_Template.php:214 +#: includes/Admin/Forms/Post/Templates/Form_Template.php:218 msgid "Form Template" msgstr "" -#: includes/Admin/Forms/Post/Templates/Form_Template.php:217 +#: includes/Admin/Forms/Post/Templates/Form_Template.php:221 msgid "— No Template —" msgstr "" -#: includes/Admin/Forms/Post/Templates/Form_Template.php:226 +#: includes/Admin/Forms/Post/Templates/Form_Template.php:230 msgid "" "If selected a form template, it will try to execute that integration " "options when new post created and updated." @@ -2679,7 +2690,7 @@ msgstr "" #: includes/Admin/Forms/Post/Templates/List_Table_Admin_Post_Forms.php:325 #: includes/Admin/views/premium.php:39 -#: includes/Fields/Form_Pro_Upgrade_Fields.php:187 +#: includes/Fields/Form_Pro_Upgrade_Fields.php:215 #: includes/Free/Form_Element.php:33 msgid "Shortcode" msgstr "" @@ -3120,7 +3131,7 @@ msgid "Advanced Fields" msgstr "" #: includes/Admin/views/premium.php:33 -#: includes/Fields/Form_Pro_Upgrade_Fields.php:47 +#: includes/Fields/Form_Pro_Upgrade_Fields.php:49 #: includes/Free/Form_Element.php:18 msgid "Country List" msgstr "" @@ -3134,12 +3145,12 @@ msgid "Date Field" msgstr "" #: includes/Admin/views/premium.php:36 -#: includes/Fields/Form_Pro_Upgrade_Fields.php:88 +#: includes/Fields/Form_Pro_Upgrade_Fields.php:116 msgid "Google Map" msgstr "" #: includes/Admin/views/premium.php:37 -#: includes/Fields/Form_Pro_Upgrade_Fields.php:99 +#: includes/Fields/Form_Pro_Upgrade_Fields.php:127 #: includes/Free/Form_Element.php:36 msgid "Action Hook" msgstr "" @@ -3157,7 +3168,7 @@ msgid "Repeater" msgstr "" #: includes/Admin/views/premium.php:42 -#: includes/Fields/Form_Pro_Upgrade_Fields.php:77 +#: includes/Fields/Form_Pro_Upgrade_Fields.php:105 #: includes/Free/Form_Element.php:16 msgid "File Upload" msgstr "" @@ -4365,7 +4376,7 @@ msgid "Cloudflare Turnstile" msgstr "" #: includes/Fields/Form_Field_Cloudflare_Turnstile.php:72 -#: includes/Fields/Form_Field_reCaptcha.php:129 +#: includes/Fields/Form_Field_reCaptcha.php:128 msgid "Site key and Secret key" msgstr "" @@ -4380,18 +4391,18 @@ msgstr "" #: includes/Fields/Form_Field_Cloudflare_Turnstile.php:97 #: includes/Fields/Form_Field_Column.php:83 -#: includes/Fields/Form_Field_SectionBreak.php:62 -#: includes/Fields/Form_Field_reCaptcha.php:154 +#: includes/Fields/Form_Field_SectionBreak.php:61 +#: includes/Fields/Form_Field_reCaptcha.php:153 msgid "Title of the section" msgstr "" #: includes/Fields/Form_Field_Cloudflare_Turnstile.php:104 -#: includes/Fields/Form_Field_reCaptcha.php:176 +#: includes/Fields/Form_Field_reCaptcha.php:175 msgid "Light" msgstr "" #: includes/Fields/Form_Field_Cloudflare_Turnstile.php:105 -#: includes/Fields/Form_Field_reCaptcha.php:177 +#: includes/Fields/Form_Field_reCaptcha.php:176 msgid "Dark" msgstr "" @@ -4482,7 +4493,7 @@ msgid "Image Upload" msgstr "" #: includes/Fields/Form_Field_Numeric.php:9 -#: includes/Fields/Form_Pro_Upgrade_Fields.php:110 +#: includes/Fields/Form_Pro_Upgrade_Fields.php:138 #: includes/Free/Form_Element.php:19 msgid "Numeric Field" msgstr "" @@ -4500,16 +4511,16 @@ msgstr "" msgid "Radio" msgstr "" -#: includes/Fields/Form_Field_SectionBreak.php:12 +#: includes/Fields/Form_Field_SectionBreak.php:11 msgid "Section Break" msgstr "" -#: includes/Fields/Form_Field_SectionBreak.php:70 +#: includes/Fields/Form_Field_SectionBreak.php:69 msgid "Some details text about the section" msgstr "" -#: includes/Fields/Form_Field_SectionBreak.php:87 -msgid "Some description about this section" +#: includes/Fields/Form_Field_SectionBreak.php:86 +msgid "Some description about this section adshfdsh" msgstr "" #: includes/Fields/Form_Field_Text.php:11 @@ -4537,83 +4548,91 @@ msgstr "" msgid "Choose whether the link will open in new tab or same window" msgstr "" -#: includes/Fields/Form_Field_reCaptcha.php:12 +#: includes/Fields/Form_Field_reCaptcha.php:11 #: includes/Free/Form_Element.php:34 msgid "reCaptcha" msgstr "" -#: includes/Fields/Form_Field_reCaptcha.php:51 +#: includes/Fields/Form_Field_reCaptcha.php:50 msgid "reCaptcha API key is missing." msgstr "" -#: includes/Fields/Form_Field_reCaptcha.php:131 +#: includes/Fields/Form_Field_reCaptcha.php:130 msgid "" "You need to set Site key and Secret key in Settings in order to use \"Recaptcha\" field. Click here to get the these key." msgstr "" -#: includes/Fields/Form_Field_reCaptcha.php:168 +#: includes/Fields/Form_Field_reCaptcha.php:167 msgid "Select reCaptcha type" msgstr "" -#: includes/Fields/Form_Field_reCaptcha.php:182 +#: includes/Fields/Form_Field_reCaptcha.php:181 msgid "Select reCaptcha Theme" msgstr "" -#: includes/Fields/Form_Pro_Upgrade_Fields.php:36 +#: includes/Fields/Form_Pro_Upgrade_Fields.php:38 #: includes/Free/Form_Element.php:20 msgid "Address Field" msgstr "" -#: includes/Fields/Form_Pro_Upgrade_Fields.php:58 +#: includes/Fields/Form_Pro_Upgrade_Fields.php:60 msgid "Date / Time" msgstr "" -#: includes/Fields/Form_Pro_Upgrade_Fields.php:66 +#: includes/Fields/Form_Pro_Upgrade_Fields.php:73 +msgid "Time" +msgstr "" + +#: includes/Fields/Form_Pro_Upgrade_Fields.php:86 +msgid "Phone Field" +msgstr "" + +#: includes/Fields/Form_Pro_Upgrade_Fields.php:94 msgid "Embed" msgstr "" -#: includes/Fields/Form_Pro_Upgrade_Fields.php:121 +#: includes/Fields/Form_Pro_Upgrade_Fields.php:149 msgid "Ratings" msgstr "" -#: includes/Fields/Form_Pro_Upgrade_Fields.php:132 +#: includes/Fields/Form_Pro_Upgrade_Fields.php:160 msgid "Linear Scale" msgstr "" -#: includes/Fields/Form_Pro_Upgrade_Fields.php:143 +#: includes/Fields/Form_Pro_Upgrade_Fields.php:171 msgid "Checkbox Grid" msgstr "" -#: includes/Fields/Form_Pro_Upgrade_Fields.php:154 +#: includes/Fields/Form_Pro_Upgrade_Fields.php:182 msgid "Multiple Choice Grid" msgstr "" -#: includes/Fields/Form_Pro_Upgrade_Fields.php:165 +#: includes/Fields/Form_Pro_Upgrade_Fields.php:193 #: includes/Free/Form_Element.php:14 msgid "Repeat Field" msgstr "" -#: includes/Fields/Form_Pro_Upgrade_Fields.php:176 +#: includes/Fields/Form_Pro_Upgrade_Fields.php:204 #: includes/Free/Form_Element.php:35 msgid "Really Simple Captcha" msgstr "" -#: includes/Fields/Form_Pro_Upgrade_Fields.php:198 +#: includes/Fields/Form_Pro_Upgrade_Fields.php:226 #: includes/Free/Form_Element.php:21 msgid "Step Start" msgstr "" -#: includes/Fields/Form_Pro_Upgrade_Fields.php:209 +#: includes/Fields/Form_Pro_Upgrade_Fields.php:237 msgid "Terms & Conditions" msgstr "" -#: includes/Fields/Form_Pro_Upgrade_Fields.php:221 +#: includes/Fields/Form_Pro_Upgrade_Fields.php:249 msgid "Math Captcha" msgstr "" -#: includes/Fields/Form_Pro_Upgrade_Fields.php:233 +#: includes/Fields/Form_Pro_Upgrade_Fields.php:261 msgid "QR Code" msgstr "" @@ -4756,10 +4775,6 @@ msgstr "" msgid "Post Expiration Message" msgstr "" -#: includes/Free/Form_Element.php:176 includes/Free/Form_Element.php:180 -msgid "Enable Multistep" -msgstr "" - #: includes/Free/Form_Element.php:183 msgid "If checked, form will be displayed in frontend in multiple steps" msgstr "" @@ -6135,27 +6150,27 @@ msgstr "" msgid "Set endpoint for vendor submit post page" msgstr "" -#: includes/Setup_Wizard.php:155 +#: includes/Setup_Wizard.php:151 msgid "Introduction" msgstr "" -#: includes/Setup_Wizard.php:165 +#: includes/Setup_Wizard.php:161 msgid "Ready!" msgstr "" -#: includes/Setup_Wizard.php:202 +#: includes/Setup_Wizard.php:198 msgid "WPUF › Setup Wizard" msgstr "" -#: includes/Setup_Wizard.php:275 +#: includes/Setup_Wizard.php:271 msgid "Return to the WordPress Dashboard" msgstr "" -#: includes/Setup_Wizard.php:316 +#: includes/Setup_Wizard.php:312 msgid "Welcome to the world of WPUF!" msgstr "" -#: includes/Setup_Wizard.php:321 +#: includes/Setup_Wizard.php:317 #. translators: %1$s and %2$s are strong tags msgid "" "Thank you for choosing WPUF to power your websites frontend! This quick " @@ -6163,54 +6178,54 @@ msgid "" "completely optional and shouldn’t take longer than a minute%2$s" msgstr "" -#: includes/Setup_Wizard.php:325 +#: includes/Setup_Wizard.php:321 msgid "" "No time right now? If you don’t want to go through the wizard, you can skip " "and return to the WordPress dashboard. Come back anytime if you change your " "mind!" msgstr "" -#: includes/Setup_Wizard.php:327 +#: includes/Setup_Wizard.php:323 msgid "Let's Go!" msgstr "" -#: includes/Setup_Wizard.php:328 +#: includes/Setup_Wizard.php:324 msgid "Not right now" msgstr "" -#: includes/Setup_Wizard.php:339 +#: includes/Setup_Wizard.php:335 msgid "Basic Setting" msgstr "" -#: includes/Setup_Wizard.php:346 +#: includes/Setup_Wizard.php:342 msgid "Make payment enable for user to add posts on frontend." msgstr "" -#: includes/Setup_Wizard.php:353 +#: includes/Setup_Wizard.php:349 msgid "Install neccessery pages on your site frontend." msgstr "" -#: includes/Setup_Wizard.php:358 +#: includes/Setup_Wizard.php:354 msgid "Share Essentials " msgstr "" -#: includes/Setup_Wizard.php:390 +#: includes/Setup_Wizard.php:386 msgid "Continue" msgstr "" -#: includes/Setup_Wizard.php:391 +#: includes/Setup_Wizard.php:387 msgid "Skip this step" msgstr "" -#: includes/Setup_Wizard.php:440 +#: includes/Setup_Wizard.php:436 msgid "Thank you!" msgstr "" -#: includes/Setup_Wizard.php:445 +#: includes/Setup_Wizard.php:441 msgid "Welcome to Awesomeness!" msgstr "" -#: includes/Setup_Wizard.php:449 +#: includes/Setup_Wizard.php:445 msgid "Go to Full Settings" msgstr "" @@ -7826,62 +7841,62 @@ msgstr "" msgid "https://wedevs.com/?utm_source=WPUF_Author_URI" msgstr "" -#: includes/Setup_Wizard.php:62 +#: includes/Setup_Wizard.php:58 msgctxt "enhanced select" msgid "One result is available, press enter to select it." msgstr "" -#: includes/Setup_Wizard.php:65 +#: includes/Setup_Wizard.php:61 msgctxt "enhanced select" msgid "%qty% results are available, use up and down arrow keys to navigate." msgstr "" -#: includes/Setup_Wizard.php:69 +#: includes/Setup_Wizard.php:65 msgctxt "enhanced select" msgid "No matches found" msgstr "" -#: includes/Setup_Wizard.php:70 +#: includes/Setup_Wizard.php:66 msgctxt "enhanced select" msgid "Loading failed" msgstr "" -#: includes/Setup_Wizard.php:71 +#: includes/Setup_Wizard.php:67 msgctxt "enhanced select" msgid "Please enter 1 or more characters" msgstr "" -#: includes/Setup_Wizard.php:74 +#: includes/Setup_Wizard.php:70 msgctxt "enhanced select" msgid "Please enter %qty% or more characters" msgstr "" -#: includes/Setup_Wizard.php:77 +#: includes/Setup_Wizard.php:73 msgctxt "enhanced select" msgid "Please delete 1 character" msgstr "" -#: includes/Setup_Wizard.php:78 +#: includes/Setup_Wizard.php:74 msgctxt "enhanced select" msgid "Please delete %qty% characters" msgstr "" -#: includes/Setup_Wizard.php:81 +#: includes/Setup_Wizard.php:77 msgctxt "enhanced select" msgid "You can only select 1 item" msgstr "" -#: includes/Setup_Wizard.php:84 +#: includes/Setup_Wizard.php:80 msgctxt "enhanced select" msgid "You can only select %qty% items" msgstr "" -#: includes/Setup_Wizard.php:87 +#: includes/Setup_Wizard.php:83 msgctxt "enhanced select" msgid "Loading more results…" msgstr "" -#: includes/Setup_Wizard.php:90 +#: includes/Setup_Wizard.php:86 msgctxt "enhanced select" msgid "Searching…" msgstr "" diff --git a/package-lock.json b/package-lock.json index 327f4688a..275eb1cb4 100644 --- a/package-lock.json +++ b/package-lock.json @@ -23,6 +23,7 @@ "devDependencies": { "@tailwindcss/forms": "^0.5.7", "@vitejs/plugin-vue": "^5.0.4", + "autoprefixer": "^10.4.16", "daisyui": "^4.12.2", "grunt": "^1.5.3", "grunt-contrib-clean": "~1.0.0", @@ -36,13 +37,16 @@ "grunt-contrib-watch": "^1.0.0", "grunt-notify": "^0.4.5", "grunt-phplint": "0.0.8", + "grunt-postcss": "^0.9.0", "grunt-shell": "^4.0.0", "grunt-text-replace": "^0.4.0", "grunt-wp-i18n": "^1.0.3", "grunt-wp-readme-to-markdown": "^2.0.1", "jshint-stylish": "^2.2.1", + "postcss": "^8.4.31", "prettier": "^3.2.5", "prettier-plugin-tailwindcss": "^0.5.11", + "tailwindcss": "^3.3.5", "vitawind": "^2.3.0", "vite": "^5.1.4" } @@ -3118,6 +3122,16 @@ "integrity": "sha512-gxtyfqMg7GKyhQmb056K7M3xszy/myH8w+B4RT+QXBQsvAOdc3XymqDDPHx1BgPgsdAA5SIifona89YtRATDzw==", "dev": true }, + "node_modules/diff": { + "version": "3.5.0", + "resolved": "https://registry.npmjs.org/diff/-/diff-3.5.0.tgz", + "integrity": "sha512-A46qtFgd+g7pDZinpnwiRJtxbC1hpgf0uzP3iG89scHk0AUC7A1TGxf5OiiOUv/JMZR8GOt8hL900hV0bOy5xA==", + "dev": true, + "license": "BSD-3-Clause", + "engines": { + "node": ">=0.3.1" + } + }, "node_modules/dlv": { "version": "1.1.3", "resolved": "https://registry.npmjs.org/dlv/-/dlv-1.1.3.tgz", @@ -5539,6 +5553,107 @@ "which": "bin/which" } }, + "node_modules/grunt-postcss": { + "version": "0.9.0", + "resolved": "https://registry.npmjs.org/grunt-postcss/-/grunt-postcss-0.9.0.tgz", + "integrity": "sha512-lglLcVaoOIqH0sFv7RqwUKkEFGQwnlqyAKbatxZderwZGV1nDyKHN7gZS9LUiTx1t5GOvRBx0BEalHMyVwFAIA==", + "dev": true, + "license": "MIT", + "dependencies": { + "chalk": "^2.1.0", + "diff": "^3.0.0", + "postcss": "^6.0.11" + }, + "engines": { + "node": ">= 0.12.0" + }, + "peerDependencies": { + "grunt": ">=0.4.5" + } + }, + "node_modules/grunt-postcss/node_modules/ansi-styles": { + "version": "3.2.1", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-3.2.1.tgz", + "integrity": "sha512-VT0ZI6kZRdTh8YyJw3SMbYm/u+NqfsAxEpWO0Pf9sq8/e94WxxOpPKx9FR1FlyCtOVDNOQ+8ntlqFxiRc+r5qA==", + "dev": true, + "license": "MIT", + "dependencies": { + "color-convert": "^1.9.0" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/grunt-postcss/node_modules/chalk": { + "version": "2.4.2", + "resolved": "https://registry.npmjs.org/chalk/-/chalk-2.4.2.tgz", + "integrity": "sha512-Mti+f9lpJNcwF4tWV8/OrTTtF1gZi+f8FqlyAdouralcFWFQWF2+NgCHShjkCb+IFBLq9buZwE1xckQU4peSuQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "ansi-styles": "^3.2.1", + "escape-string-regexp": "^1.0.5", + "supports-color": "^5.3.0" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/grunt-postcss/node_modules/color-convert": { + "version": "1.9.3", + "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-1.9.3.tgz", + "integrity": "sha512-QfAUtd+vFdAtFQcC8CCyYt1fYWxSqAiK2cSD6zDB8N3cpsEBAvRxp9zOGg6G/SHHJYAT88/az/IuDGALsNVbGg==", + "dev": true, + "license": "MIT", + "dependencies": { + "color-name": "1.1.3" + } + }, + "node_modules/grunt-postcss/node_modules/color-name": { + "version": "1.1.3", + "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.3.tgz", + "integrity": "sha512-72fSenhMw2HZMTVHeCA9KCmpEIbzWiQsjN+BHcBbS9vr1mtt+vJjPdksIBNUmKAW8TFUDPJK5SUU3QhE9NEXDw==", + "dev": true, + "license": "MIT" + }, + "node_modules/grunt-postcss/node_modules/has-flag": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-3.0.0.tgz", + "integrity": "sha512-sKJf1+ceQBr4SMkvQnBDNDtf4TXpVhVGateu0t918bl30FnbE2m4vNLX+VWe/dpjlb+HugGYzW7uQXH98HPEYw==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=4" + } + }, + "node_modules/grunt-postcss/node_modules/postcss": { + "version": "6.0.23", + "resolved": "https://registry.npmjs.org/postcss/-/postcss-6.0.23.tgz", + "integrity": "sha512-soOk1h6J3VMTZtVeVpv15/Hpdl2cBLX3CAw4TAbkpTJiNPk9YP/zWcD1ND+xEtvyuuvKzbxliTOIyvkSeSJ6ag==", + "dev": true, + "license": "MIT", + "dependencies": { + "chalk": "^2.4.1", + "source-map": "^0.6.1", + "supports-color": "^5.4.0" + }, + "engines": { + "node": ">=4.0.0" + } + }, + "node_modules/grunt-postcss/node_modules/supports-color": { + "version": "5.5.0", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-5.5.0.tgz", + "integrity": "sha512-QjVjwdXIt408MIiAqCX4oUKsgU2EqAGzs2Ppkm4aQYbjm+ZEWEcW4SfFNTr4uMNZma0ey4f5lgLrkB0aX0QMow==", + "dev": true, + "license": "MIT", + "dependencies": { + "has-flag": "^3.0.0" + }, + "engines": { + "node": ">=4" + } + }, "node_modules/grunt-shell": { "version": "4.0.0", "resolved": "https://registry.npmjs.org/grunt-shell/-/grunt-shell-4.0.0.tgz", @@ -9575,6 +9690,16 @@ "node": ">=0.8.0" } }, + "node_modules/source-map": { + "version": "0.6.1", + "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz", + "integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==", + "dev": true, + "license": "BSD-3-Clause", + "engines": { + "node": ">=0.10.0" + } + }, "node_modules/source-map-js": { "version": "1.2.1", "resolved": "https://registry.npmjs.org/source-map-js/-/source-map-js-1.2.1.tgz", diff --git a/package.json b/package.json index 39a0f8069..aa56ab122 100644 --- a/package.json +++ b/package.json @@ -26,6 +26,7 @@ "grunt-contrib-watch": "^1.0.0", "grunt-notify": "^0.4.5", "grunt-phplint": "0.0.8", + "grunt-postcss": "^0.9.0", "grunt-shell": "^4.0.0", "grunt-text-replace": "^0.4.0", "grunt-wp-i18n": "^1.0.3", @@ -34,7 +35,10 @@ "prettier": "^3.2.5", "prettier-plugin-tailwindcss": "^0.5.11", "vitawind": "^2.3.0", - "vite": "^5.1.4" + "vite": "^5.1.4", + "tailwindcss": "^3.3.5", + "autoprefixer": "^10.4.16", + "postcss": "^8.4.31" }, "dependencies": { "@heroicons/vue": "^2.1.1", diff --git a/src/css/admin/form-builder.css b/src/css/admin/form-builder.css new file mode 100644 index 000000000..d06ada590 --- /dev/null +++ b/src/css/admin/form-builder.css @@ -0,0 +1,47 @@ +@tailwind base; +@tailwind components; +@tailwind utilities; + +@layer components { + .wpuf-btn-primary { + @apply wpuf-rounded-md wpuf-bg-green-800 wpuf-text-white hover:wpuf-bg-green-700 hover:wpuf-text-white wpuf-px-3.5 wpuf-py-2 wpuf-text-sm wpuf-font-semibold; + } + + .wpuf-btn-secondary { + @apply wpuf-rounded-md wpuf-bg-green-50 wpuf-text-green-700 wpuf-px-3.5 wpuf-py-2 wpuf-text-sm wpuf-border wpuf-border-green-300 wpuf-font-semibold hover:wpuf-bg-green-100 hover:wpuf-text-white; + } +} + +@layer utilities { + .wpuf-transition-all { + transition-property: all; + } + .wpuf-duration-100 { + transition-duration: 100ms; + } + .wpuf-ease-out { + transition-timing-function: cubic-bezier(0, 0, 0.2, 1); + } + .wpuf-scale-95 { + transform: scale(.95); + } + .wpuf-scale-100 { + transform: scale(1); + } +} + +/* Transition styles */ +.wpuf-dropdown-item { + @apply wpuf-transition-all wpuf-duration-100 wpuf-ease-out wpuf-opacity-0 wpuf-scale-75; +} + +.wpuf-dropdown-container:hover .wpuf-dropdown-item { + @apply wpuf-opacity-100 wpuf-scale-100; +} + +.wpuf-pattern-1 { + border: 1px dashed #ddd; + background-color: #ffffff; + opacity: 1; + background: repeating-linear-gradient( -45deg, #dcfce7, #dcfce7 2px, #ffffff 2px, #ffffff 6px ); +} diff --git a/tailwind.config.js b/tailwind.config.js index 48f8c62d0..6a0bd9e0a 100644 --- a/tailwind.config.js +++ b/tailwind.config.js @@ -1,9 +1,20 @@ /** @type {import('tailwindcss').Config} */ module.exports = { prefix: 'wpuf-', - content: ["./assets/**/*.{js,jsx,ts,tsx,vue,html}", "./includes/Admin/views/*.php"], + content: [ + './assets/**/*.{js,jsx,ts,tsx,vue,html}', + './includes/Admin/views/*.php', + './includes/Admin/template-parts/*.php', + './admin/form-builder/views/*.php', + './admin/form-builder/assets/js/**/*.php', + ], theme: { - extend: {}, + extend: { + colors: { + primary: '#166534', + primaryHover: '#15803d', + } + }, }, plugins: [ require('@tailwindcss/forms'), diff --git a/tests/chrome_recordings/post form templates.json b/tests/chrome_recordings/post form templates.json new file mode 100644 index 000000000..00dd13719 --- /dev/null +++ b/tests/chrome_recordings/post form templates.json @@ -0,0 +1,493 @@ +{ + "title": "post form templates", + "steps": [ + { + "type": "setViewport", + "width": 1280, + "height": 934, + "deviceScaleFactor": 1, + "isMobile": false, + "hasTouch": false, + "isLandscape": false + }, + { + "type": "navigate", + "url": "https://wpuf.test/wp-admin/admin.php?page=wpuf-post-forms", + "assertedEvents": [ + { + "type": "navigation", + "url": "https://wpuf.test/wp-admin/admin.php?page=wpuf-post-forms", + "title": "Post Forms ‹ wpuf playground — WordPress" + } + ] + }, + { + "type": "click", + "target": "main", + "selectors": [ + [ + "aria/Post Forms" + ], + [ + "#toplevel_page_wp-user-frontend li.wp-first-item > a" + ], + [ + "xpath///*[@id=\"toplevel_page_wp-user-frontend\"]/ul/li[2]/a" + ], + [ + "pierce/#toplevel_page_wp-user-frontend li.wp-first-item > a" + ] + ], + "offsetY": 9.125, + "offsetX": 55, + "assertedEvents": [ + { + "type": "navigation", + "url": "https://wpuf.test/wp-admin/admin.php?page=wpuf-post-forms", + "title": "Post Forms ‹ wpuf playground — WordPress" + } + ] + }, + { + "type": "click", + "target": "main", + "selectors": [ + [ + "aria/Add Form" + ], + [ + "#new-wpuf-post-form" + ], + [ + "xpath///*[@id=\"new-wpuf-post-form\"]" + ], + [ + "pierce/#new-wpuf-post-form" + ], + [ + "text/Add Form" + ] + ], + "offsetY": 18, + "offsetX": 52.46875 + }, + { + "type": "click", + "target": "main", + "selectors": [ + [ + "aria/[role=\"main\"]", + "aria/[role=\"button\"]" + ], + [ + "div.wpuf-form-template-modal button" + ], + [ + "xpath///*[@id=\"wpbody-content\"]/div[3]/div[1]/button" + ], + [ + "pierce/div.wpuf-form-template-modal button" + ] + ], + "offsetY": 34, + "offsetX": 18 + }, + { + "type": "click", + "target": "main", + "selectors": [ + [ + "aria/Add Form" + ], + [ + "#new-wpuf-post-form" + ], + [ + "xpath///*[@id=\"new-wpuf-post-form\"]" + ], + [ + "pierce/#new-wpuf-post-form" + ], + [ + "text/Add Form" + ] + ], + "offsetY": 18, + "offsetX": 65.46875 + }, + { + "type": "click", + "target": "main", + "selectors": [ + [ + "aria/Upgrade to PRO" + ], + [ + "div:nth-of-type(5) a" + ], + [ + "xpath///*[@id=\"wpbody-content\"]/div[3]/div[1]/div[2]/div/div[5]/div/a" + ], + [ + "pierce/div:nth-of-type(5) a" + ], + [ + "text/Upgrade to PRO" + ] + ], + "offsetY": 10.71875, + "offsetX": 75.203125 + }, + { + "type": "click", + "target": "main", + "selectors": [ + [ + "div.wpuf-grid > div > div:nth-of-type(2) a" + ], + [ + "xpath///*[@id=\"wpbody-content\"]/div[3]/div[1]/div[2]/div/div[2]/div/a" + ], + [ + "pierce/div.wpuf-grid > div > div:nth-of-type(2) a" + ] + ], + "offsetY": 14.953125, + "offsetX": 113, + "assertedEvents": [ + { + "type": "navigation", + "url": "https://wpuf.test/wp-admin/admin.php?page=wpuf-post-forms&action=edit&id=3927", + "title": "Post Forms ‹ wpuf playground — WordPress" + } + ] + }, + { + "type": "click", + "target": "main", + "selectors": [ + [ + "#wpuf-form-builder > div.wpuf-bg-white div.wpuf-flex > span" + ], + [ + "xpath///*[@id=\"wpuf-form-builder\"]/div[1]/div[1]/div[1]/span" + ], + [ + "pierce/#wpuf-form-builder > div.wpuf-bg-white div.wpuf-flex > span" + ], + [ + "text/#3927" + ] + ], + "offsetY": 14, + "offsetX": 43.140625 + }, + { + "type": "click", + "target": "main", + "selectors": [ + [ + "aria/Post Forms" + ], + [ + "#toplevel_page_wp-user-frontend li.wp-first-item > a" + ], + [ + "xpath///*[@id=\"toplevel_page_wp-user-frontend\"]/ul/li[2]/a" + ], + [ + "pierce/#toplevel_page_wp-user-frontend li.wp-first-item > a" + ], + [ + "text/Post Forms" + ] + ], + "offsetY": 17.125, + "offsetX": 97, + "assertedEvents": [ + { + "type": "navigation", + "url": "https://wpuf.test/wp-admin/admin.php?page=wpuf-post-forms", + "title": "Post Forms ‹ wpuf playground — WordPress" + } + ] + }, + { + "type": "click", + "target": "main", + "selectors": [ + [ + "aria/Add Form" + ], + [ + "#new-wpuf-post-form" + ], + [ + "xpath///*[@id=\"new-wpuf-post-form\"]" + ], + [ + "pierce/#new-wpuf-post-form" + ], + [ + "text/Add Form" + ] + ], + "offsetY": 21, + "offsetX": 27.46875 + }, + { + "type": "click", + "target": "main", + "selectors": [ + [ + "div.wpuf-relative > div.wpuf-grid > div > div:nth-of-type(1) a" + ], + [ + "xpath///*[@id=\"wpbody-content\"]/div[3]/div[1]/div[2]/div/div[1]/div/a" + ], + [ + "pierce/div.wpuf-relative > div.wpuf-grid > div > div:nth-of-type(1) a" + ] + ], + "offsetY": 13.921875, + "offsetX": 101, + "assertedEvents": [ + { + "type": "navigation", + "url": "https://wpuf.test/wp-admin/admin.php?page=wpuf-post-forms&action=edit&id=3934", + "title": "Post Forms ‹ wpuf playground — WordPress" + } + ] + }, + { + "type": "click", + "target": "main", + "selectors": [ + [ + "aria/Post Forms" + ], + [ + "#toplevel_page_wp-user-frontend li.wp-first-item > a" + ], + [ + "xpath///*[@id=\"toplevel_page_wp-user-frontend\"]/ul/li[2]/a" + ], + [ + "pierce/#toplevel_page_wp-user-frontend li.wp-first-item > a" + ], + [ + "text/Post Forms" + ] + ], + "offsetY": 9.125, + "offsetX": 103, + "assertedEvents": [ + { + "type": "navigation", + "url": "https://wpuf.test/wp-admin/admin.php?page=wpuf-post-forms", + "title": "Post Forms ‹ wpuf playground — WordPress" + } + ] + }, + { + "type": "click", + "target": "main", + "selectors": [ + [ + "aria/Add Form" + ], + [ + "#new-wpuf-post-form" + ], + [ + "xpath///*[@id=\"new-wpuf-post-form\"]" + ], + [ + "pierce/#new-wpuf-post-form" + ], + [ + "text/Add Form" + ] + ], + "offsetY": 26, + "offsetX": 56.46875 + }, + { + "type": "click", + "target": "main", + "selectors": [ + [ + "div.wpuf-grid > div > div:nth-of-type(3) a" + ], + [ + "xpath///*[@id=\"wpbody-content\"]/div[3]/div[1]/div[2]/div/div[3]/div/a" + ], + [ + "pierce/div.wpuf-grid > div > div:nth-of-type(3) a" + ] + ], + "offsetY": 11.921875, + "offsetX": 88, + "assertedEvents": [ + { + "type": "navigation", + "url": "https://wpuf.test/wp-admin/admin.php?page=wpuf-post-forms&action=edit&id=3935", + "title": "Post Forms ‹ wpuf playground — WordPress" + } + ] + }, + { + "type": "click", + "target": "main", + "selectors": [ + [ + "aria/Post Forms" + ], + [ + "#toplevel_page_wp-user-frontend li.wp-first-item > a" + ], + [ + "xpath///*[@id=\"toplevel_page_wp-user-frontend\"]/ul/li[2]/a" + ], + [ + "pierce/#toplevel_page_wp-user-frontend li.wp-first-item > a" + ], + [ + "text/Post Forms" + ] + ], + "offsetY": 6.125, + "offsetX": 101, + "assertedEvents": [ + { + "type": "navigation", + "url": "https://wpuf.test/wp-admin/admin.php?page=wpuf-post-forms", + "title": "Post Forms ‹ wpuf playground — WordPress" + } + ] + }, + { + "type": "click", + "target": "main", + "selectors": [ + [ + "aria/Add Form" + ], + [ + "#new-wpuf-post-form" + ], + [ + "xpath///*[@id=\"new-wpuf-post-form\"]" + ], + [ + "pierce/#new-wpuf-post-form" + ], + [ + "text/Add Form" + ] + ], + "offsetY": 17, + "offsetX": 44.46875 + }, + { + "type": "click", + "target": "main", + "selectors": [ + [ + "#wpbody div:nth-of-type(4) a" + ], + [ + "xpath///*[@id=\"wpbody-content\"]/div[3]/div[1]/div[2]/div/div[4]/div/a" + ], + [ + "pierce/#wpbody div:nth-of-type(4) a" + ] + ], + "offsetY": 16.53125, + "offsetX": 106, + "assertedEvents": [ + { + "type": "navigation", + "url": "https://wpuf.test/wp-admin/admin.php?page=wpuf-post-forms&action=edit&id=3946", + "title": "" + } + ] + }, + { + "type": "click", + "target": "main", + "selectors": [ + [ + "aria/Post Forms" + ], + [ + "#toplevel_page_wp-user-frontend li.wp-first-item > a" + ], + [ + "xpath///*[@id=\"toplevel_page_wp-user-frontend\"]/ul/li[2]/a" + ], + [ + "pierce/#toplevel_page_wp-user-frontend li.wp-first-item > a" + ], + [ + "text/Post Forms" + ] + ], + "offsetY": 6.125, + "offsetX": 87, + "assertedEvents": [ + { + "type": "navigation", + "url": "https://wpuf.test/wp-admin/admin.php?page=wpuf-post-forms", + "title": "" + } + ] + }, + { + "type": "click", + "target": "main", + "selectors": [ + [ + "aria/Add Form" + ], + [ + "#new-wpuf-post-form" + ], + [ + "xpath///*[@id=\"new-wpuf-post-form\"]" + ], + [ + "pierce/#new-wpuf-post-form" + ], + [ + "text/Add Form" + ] + ], + "offsetY": 23, + "offsetX": 22.46875 + }, + { + "type": "click", + "target": "main", + "selectors": [ + [ + "aria/Upgrade to PRO" + ], + [ + "div:nth-of-type(5) a" + ], + [ + "xpath///*[@id=\"wpbody-content\"]/div[3]/div[1]/div[2]/div/div[5]/div/a" + ], + [ + "pierce/div:nth-of-type(5) a" + ], + [ + "text/Upgrade to PRO" + ] + ], + "offsetY": 20.71875, + "offsetX": 52.203125 + } + ] +} diff --git a/wpuf-functions.php b/wpuf-functions.php index 1609a2d0a..041a0c416 100644 --- a/wpuf-functions.php +++ b/wpuf-functions.php @@ -982,7 +982,7 @@ function wpuf_show_custom_fields( $content ) { continue; } - if ( method_exists( $wpuf_field, 'render_field_data' ) ) { + if ( ! empty( $wpuf_field ) && method_exists( $wpuf_field, 'render_field_data' ) ) { $html .= $wpuf_field->render_field_data( $field_value, $attr ); continue; }