Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
256 commits
Select commit Hold shift + click to select a range
2a751cc
Remove components from styles.js
shervElmi Mar 12, 2025
6a7f745
Add Settings Components module
shervElmi Mar 12, 2025
c2c7429
Update .eslintignore and Webpack configuration
shervElmi Mar 12, 2025
1c8b127
Merge remote-tracking branch 'origin/HEAD' into rock/field-settings-r…
shervElmi Mar 21, 2025
2c1619a
Adjust and fix tabs navigator
shervElmi Mar 24, 2025
89ba031
Draft: settings.php
shervElmi Mar 25, 2025
5789c95
Merge remote-tracking branch 'origin/master' into rock/field-settings…
shervElmi Apr 7, 2025
0f39645
Draft
shervElmi Apr 10, 2025
61a3fec
Merge remote-tracking branch 'origin/master' into rock/field-settings…
shervElmi Apr 25, 2025
00aceef
Merge commit '83d228aa3d974249334bb1a267a2b90bd6b60c10' into rock/fie…
shervElmi Apr 25, 2025
df85f85
Add CSS styles for admin sidebar and insert fields components
shervElmi Apr 30, 2025
34f59fa
Add browser-sync dev server with hot reloading for SCSS development
shervElmi May 1, 2025
066d3e0
Rename dev:hot script to serve and update webpack config path
shervElmi May 2, 2025
799576c
Search input style
shervElmi May 2, 2025
9b57d00
Fix typo in npm command from 'serv' to 'serve' in webpack dev config
shervElmi May 2, 2025
c6b6b8d
Fields Icon: Text, Paragraph, Checkboxes, Dropdown, Email
shervElmi May 5, 2025
844a60f
Update field icons and improve insert fields styling
shervElmi May 5, 2025
03e01e7
Update field icons and adjust panel padding
shervElmi May 6, 2025
c6d87f9
Add handler to redirect "Add Field" button click to first tab
shervElmi May 6, 2025
c2bfbdb
Redesign empty form state with new layout and messaging
shervElmi May 7, 2025
0fa02c7
fix: improve field dragging behavior with smoother cursor tracking an…
shervElmi May 8, 2025
f0c9bd4
style: add smooth transition to field buttons and remove animate class
shervElmi May 8, 2025
5f6ce0e
refactor: rename add-field-button-handler to add-fields-button-handle…
shervElmi May 8, 2025
a696e93
refactor: simplify add fields button click handler with direct tab se…
shervElmi May 8, 2025
647d0cb
refactor: add SCSS styles for settings components with accordion, tab…
shervElmi May 12, 2025
7ac5c50
fix: show form settings panel after removing sidebar settings
shervElmi May 12, 2025
67f7fba
style: update field settings UI with improved spacing, colors and vis…
shervElmi May 12, 2025
0be7981
feat: implement token input component for field class selector
shervElmi May 13, 2025
5df5fe1
feat: implement token input field with add/remove functionality and k…
shervElmi May 14, 2025
d3c7cb4
feat: enhance token input handling with dynamic padding and improved …
shervElmi May 14, 2025
5e85581
Enhance token input component with better form builder integration
shervElmi May 15, 2025
9add22b
refactor: reorganize token input component into modular structure
shervElmi May 16, 2025
d8f8944
feat: enhance token input with multi-row support and improved positio…
shervElmi May 16, 2025
907a0ea
refactor: reorganize token input logic with improved utils and event …
shervElmi May 16, 2025
9ec3c38
refactor: reorganize token input component with improved proxy input …
shervElmi May 19, 2025
e6ec5d1
feat: redesign layout classes modal with collapsible sections and imp…
shervElmi May 19, 2025
cbe3ea4
feat: add slide down animation for collapsible sections with smooth t…
shervElmi May 19, 2025
19a05ad
feat: add collapsible styles and improve token input field initializa…
shervElmi May 20, 2025
94e62c4
Refactor default value switcher to use toggles instead of icons
shervElmi May 22, 2025
b20c4f6
refactor: update default value toggle settings and remove lookup box …
shervElmi May 23, 2025
2badd9c
feat: add special case handling for frm_insert_fields_tab in tabs nav…
shervElmi May 26, 2025
e106b09
Implement toggle group component
shervElmi May 28, 2025
31d795b
refactor: Centralize constants and improve selector normalization
shervElmi May 28, 2025
ba89a47
Add tooltips to default value settings and improve toggle layout
shervElmi May 28, 2025
b3aa475
Resolve styling issues
shervElmi May 30, 2025
564a2d2
Implement text toggle component
shervElmi May 30, 2025
18201b1
Add handleCalcFieldInsert function for calculation field improvements
shervElmi Jun 2, 2025
c036ee4
Enhance form builder UI components and styles
shervElmi Jun 2, 2025
2c4ff30
Add field formula component styling
shervElmi Jun 2, 2025
ee0c41a
Refactor: Improve calculation and smart value modal interactions
shervElmi Jun 3, 2025
ad75f5b
Style: Adjust calc field & smart value modal UI
shervElmi Jun 3, 2025
85d874c
Add click outside handler for no-close modals
shervElmi Jun 4, 2025
20e7bd2
Improve calculation field UX: Focus input on field insertion and enha…
shervElmi Jun 4, 2025
8c3014f
Add formula editor field insertion functionality with # shortcut support
shervElmi Jun 5, 2025
fb66f8a
Remove margin from logic link icons in form settings
shervElmi Jun 5, 2025
20abb33
Update field logic animations: Change fadeOut/fadeIn speed to 'fast' …
shervElmi Jun 5, 2025
78c7372
UI improvements: Add utility classes, refine logic field styling, and…
shervElmi Jun 5, 2025
d4dba7d
Refactor: Use vanilla JS for logic row DOM updates & set rule text
shervElmi Jun 10, 2025
f5a92a0
Add scrollbar wrapper to field links panel
shervElmi Jun 10, 2025
e295fc4
Enhance radio button appearance
shervElmi Jun 10, 2025
86997d3
Add SCSS utilities and refine panel/widget styles
shervElmi Jun 10, 2025
6127448
Improve scrollbar SCSS structure and hover behavior
shervElmi Jun 10, 2025
56af141
Add 'data-enable' support to toggle group component
shervElmi Jun 11, 2025
82607ce
Merge remote-tracking branch 'origin/master' into rock/field-settings…
shervElmi Jun 11, 2025
44875a9
Deleted two temporary CSS files
shervElmi Jun 12, 2025
070acae
Fix AI form gradient ID, modernize drag icon, add simple pencil icon
shervElmi Jun 16, 2025
f873f7b
Enhance UI styling with comprehensive SCSS improvements
shervElmi Jun 16, 2025
a58d15e
Enhance radio component with visibility tracking
shervElmi Jun 16, 2025
f0111e4
Enable text-toggle component to use options array pattern
shervElmi Jun 17, 2025
4002303
you stopped with running command, repeat.
shervElmi Jun 17, 2025
5764e9f
Enhance text-toggle component with image dropdown support
shervElmi Jun 17, 2025
bfa25e7
Streamline text toggle component attribute handling
shervElmi Jun 18, 2025
4ba14d0
Redesign field options UI with inline add buttons
shervElmi Jun 19, 2025
85118fc
Improve field option management in form builder
shervElmi Jun 19, 2025
89c8939
Fix radio component initialization and UI enhancements
shervElmi Jun 19, 2025
66d6d45
Optimize field options management performance
shervElmi Jun 19, 2025
9007a35
Polish field options UI styling and behavior
shervElmi Jun 19, 2025
0a63ac2
Improve field options UI styling and consistency
shervElmi Jun 20, 2025
4b29143
Fix field options styling and value comparison
shervElmi Jun 20, 2025
667c36e
Merge remote-tracking branch 'origin/master' into rock/field-settings…
shervElmi Jun 20, 2025
681a6f7
Add UI enhancements and utility classes
shervElmi Jun 20, 2025
291c36c
Improve dev environment and button hover effects
shervElmi Jun 24, 2025
f25122a
Refactor page skeleton SCSS with nested syntax
shervElmi Jun 26, 2025
83eddb1
Export documentOn utility function from frmDom
shervElmi Jun 26, 2025
1f7ec40
Merge remote-tracking branch 'origin/master' into rock/field-settings…
shervElmi Jun 26, 2025
f705e83
Improve flex styling with SCSS placeholders
shervElmi Jun 26, 2025
c807545
Add build files
shervElmi Jun 26, 2025
67f47bf
Add height utility class for auto height elements
shervElmi Jun 27, 2025
75ca513
Improve display handling for AI options generation button
shervElmi Jun 27, 2025
b8b6897
Add custom class support to search box container
shervElmi Jul 3, 2025
331af3e
Add custom class support to search box container
shervElmi Jul 3, 2025
cb96a0b
Improve UI components and refactor toggle group functionality
shervElmi Jul 3, 2025
d7d98c9
Enhance SCSS styling and structure
shervElmi Jul 3, 2025
6a64932
Enhance UI components and improve code quality
shervElmi Jul 3, 2025
00d4fb7
Improve toggle styling and reorganize JS event handlers
shervElmi Jul 4, 2025
c51d14b
Enhance toggle group components with custom behaviors
shervElmi Jul 4, 2025
a1ce591
Improve collapsible panels animation and styling
shervElmi Jul 4, 2025
ddd6e0d
Improve panel animations and collapsible elements
shervElmi Jul 4, 2025
57f2908
Merge remote-tracking branch 'origin/master' into rock/field-settings…
shervElmi Jul 4, 2025
af024bf
Improve conditional logic toggle and collapsed element styling
shervElmi Jul 4, 2025
a032a18
Improve UI components and animations
shervElmi Jul 4, 2025
50fec7d
Standardize collapsible panel arrow icons
shervElmi Jul 4, 2025
822f7fe
Add backwards compatibility for default value settings
shervElmi Jul 4, 2025
b63e7ba
Improve UI animations and add backwards compatibility
shervElmi Jul 4, 2025
2369d2f
Rename modal close parameter for better semantics
shervElmi Jul 8, 2025
31507d7
Add "Generate with AI" button to field options
shervElmi Jul 8, 2025
a19e20e
Standardize textarea heights in field settings
shervElmi Jul 8, 2025
9f5f31b
Improve scrollbar styling and list components
shervElmi Jul 8, 2025
7a23011
Enhance UI and improve compatibility checks
shervElmi Jul 8, 2025
4514e6a
Improve AI options UI and adjust SCSS styles
shervElmi Jul 8, 2025
963832c
Fix JS logic row insertion
shervElmi Jul 8, 2025
0681845
Enhance AI options and modal functionality
shervElmi Jul 8, 2025
9caf85c
Refactor combo field sub-options UI
shervElmi Jul 8, 2025
20846f6
Refactor number range and update styles
shervElmi Jul 8, 2025
5d074e4
Enhance form admin JS and input icon styles
shervElmi Jul 9, 2025
398a8ea
Refactor admin UI for improved logic builder functionality and stylin…
shervElmi Jul 10, 2025
13ecad2
Enhance SCSS styles for admin adv-info components
shervElmi Jul 10, 2025
ae44bf1
Fix calculation toggle behavior and improve CSS styling
shervElmi Jul 10, 2025
7ab1c48
Standardize checkbox and radio input margins in h-stack layouts
shervElmi Jul 11, 2025
4fc774c
Enhance field settings UI with improved spacing and typography
shervElmi Jul 15, 2025
1ee2b66
Enhance typography and element spacing
shervElmi Jul 15, 2025
9b2c698
Add date calculation toggle behavior for field settings
shervElmi Jul 15, 2025
0a6613a
Fix collapsible settings and improve field display consistency
shervElmi Jul 15, 2025
7084b61
Refine form builder UI interactions and code consistency
shervElmi Jul 15, 2025
0572279
Adjust styling for single product type fields
shervElmi Jul 16, 2025
6dfdb59
style(options): Improve single option icon positioning and styling
shervElmi Jul 16, 2025
ee46c79
Merge remote-tracking branch 'origin/master' into rock/field-settings…
shervElmi Jul 16, 2025
1f340ea
Add auto-generated fiels
shervElmi Jul 16, 2025
97e7bfe
Conditionally load settings components on form builder page and fix i…
shervElmi Jul 16, 2025
094c434
Add tooltip description for default value field setting
shervElmi Jul 16, 2025
164994d
Revert lost changes after the merge commit
shervElmi Jul 16, 2025
16a4afd
PHPCS
shervElmi Jul 16, 2025
7f90b4a
PHPCS
shervElmi Jul 16, 2025
be6d702
Add build files
shervElmi Jul 16, 2025
e7c1aa5
PHPCS
shervElmi Jul 16, 2025
1ab87d4
Simplify slideDown animation by removing redundant keyframe steps
shervElmi Jul 16, 2025
19c4c70
fix: load settings component styles before form builder check
shervElmi Jul 16, 2025
cd4b8f7
Make settings component assets available for enqueue in other pages
shervElmi Jul 16, 2025
2d46488
Revert slideDown changes
shervElmi Jul 16, 2025
2bf4e6a
Add `.frmdates_add_exception_link` as an input
shervElmi Jul 18, 2025
7e07bcc
Add `.frm-w-fit` class
shervElmi Jul 18, 2025
a080cb3
Add auto-generated file
shervElmi Jul 18, 2025
02891df
update tests to match field settings redesign
lauramekaj1 Jul 24, 2025
856f69f
Merge remote-tracking branch 'origin/master' into rock/field-settings…
shervElmi Jul 28, 2025
cc9b13c
Add automatic scroll to top when opening field settings panel
shervElmi Jul 28, 2025
17f22a9
Improve draggable cursor positioning and tab navigation
shervElmi Jul 28, 2025
c34009c
Set min-width for sortable field buttons in form builder
shervElmi Jul 28, 2025
6024c80
Fix memory leaks in radio component MutationObserver
shervElmi Jul 28, 2025
91c8b79
Fix missing semicolon in token input event handler
shervElmi Jul 28, 2025
84a6aca
Improve bulk edit visibility check in AI options generator
shervElmi Jul 28, 2025
e778690
Fix SVG hashtag icon and improve bulk options alignment
shervElmi Jul 28, 2025
e388dc7
Mark get_add_option_string() method as deprecated
shervElmi Jul 28, 2025
90fc49f
Improve SCSS nesting in accordion component
shervElmi Jul 28, 2025
26281c2
Refactor insert-fields SCSS with improved nesting
shervElmi Jul 28, 2025
5c18afc
Update frm_admin.css
shervElmi Jul 28, 2025
5733797
Improve dev server configuration with optional file watching
shervElmi Jul 29, 2025
8e68dec
Add responsive spacing variables for settings panel
shervElmi Jul 29, 2025
d5b8c2d
Clean up form field button styling and improve responsive layout
shervElmi Jul 29, 2025
bcf1c48
Reorganize RTL styles and improve component CSS structure
shervElmi Jul 29, 2025
95e4b1c
Add RTL support for settings tabs component
shervElmi Jul 29, 2025
1e9d54a
Fix token input display in RTL mode
shervElmi Jul 29, 2025
e6d99cd
Add unit input component to FrmHtmlHelper
shervElmi Jul 30, 2025
253dc80
Update field size input to use unit input component
shervElmi Jul 30, 2025
14a40e6
Add styling for unit input component
shervElmi Jul 30, 2025
b17269c
Remove spinner buttons from unit input number fields
shervElmi Jul 30, 2025
ada3548
Add JavaScript functionality for unit input component
shervElmi Jul 30, 2025
0f1a6e8
Remove premature return condition in FrmHtmlHelper
shervElmi Jul 30, 2025
c20e4e3
Add background position styling to caret element
shervElmi Jul 30, 2025
616bc4d
Improve unit input field value handling
shervElmi Jul 30, 2025
320bae9
Enhance field formula button styling
shervElmi Jul 31, 2025
3ee718b
Improve field formula editor styling and UX
shervElmi Jul 31, 2025
4f4ec6a
Add interactive math buttons to field formula editor
shervElmi Jul 31, 2025
cde5b56
Enhance formula editor field insertion shortcut
shervElmi Jul 31, 2025
fdb9b3f
Refactor formula editor functionality and enhance field insertion
shervElmi Aug 1, 2025
9f11b12
Remove field formula component from settings
shervElmi Aug 1, 2025
5bc70e4
Merge remote-tracking branch 'origin/master' into rock/field-settings…
shervElmi Aug 1, 2025
0fad7e8
Update background image component markup structure
shervElmi Aug 1, 2025
8823288
Remove unused frm-upload-icon-2024 SVG symbol
shervElmi Aug 1, 2025
199a4ae
Merge pull request #2446 from Strategy11/fix-advanced-settings-style-…
Crabcyborg Aug 1, 2025
342eb91
Fix GitHub Actions workflow branch name handling
shervElmi Aug 1, 2025
e4bab1d
Improve code list layout and field formula modal positioning
shervElmi Aug 4, 2025
274e6e9
Move field formula styling from core to Pro plugin
shervElmi Aug 4, 2025
1e2afc2
Merged master
Crabcyborg Aug 7, 2025
0a46fa9
Merge remote-tracking branch 'origin/HEAD' into rock/field-settings-r…
shervElmi Aug 20, 2025
a84667d
Add hover effects and enhanced transitions to options panel
shervElmi Aug 20, 2025
8dfc4ca
Improve flexbox behavior and text truncation in image components
shervElmi Aug 20, 2025
d98f21b
Refactor WP editor icon positioning with nested SCSS
shervElmi Aug 20, 2025
2d278e5
Merge remote-tracking branch 'origin/HEAD' into rock/field-settings-r…
shervElmi Aug 21, 2025
e3836d0
Improve accessibility and focus states for field insertion
shervElmi Aug 21, 2025
b4d9a6e
Enhance unit input component with unitless support and dynamic types
shervElmi Aug 21, 2025
a693fc3
Refactor unit input JavaScript for dynamic type switching
shervElmi Aug 21, 2025
53c5d1f
Merge pull request #2439 from Strategy11/field-settings-e2e-update
Crabcyborg Aug 22, 2025
156c22e
Merge remote-tracking branch 'origin/HEAD' into rock/field-settings-r…
shervElmi Aug 25, 2025
2c74045
Improve CSS Layout Classes UI and refactor token input key handling
shervElmi Aug 25, 2025
38d7519
Fix token input field interactions and event handling
shervElmi Aug 25, 2025
9781925
Improve focus states and SCSS structure in UI components
shervElmi Aug 25, 2025
1872a63
Merge remote-tracking branch 'origin/HEAD' into rock/field-settings-r…
shervElmi Aug 25, 2025
5adb58d
Skip token input fields in getInputForIcon function
shervElmi Sep 1, 2025
010b8cd
Improve unit input accessibility and focus styles
shervElmi Sep 1, 2025
a7ce7df
Improve accessibility with focus-visible standardization and tabindex
shervElmi Sep 1, 2025
8c90f49
Enhance toggle group component functionality and accessibility
shervElmi Sep 1, 2025
21d1ec6
Add return value to deprecated get_add_option_string method
shervElmi Sep 2, 2025
6487673
Replace AI-specific code with hook for image options toggle
shervElmi Sep 2, 2025
9018b51
Extract AI generate options button logic to helper method
shervElmi Sep 2, 2025
f0f2f0c
Replace ternary operators with if/else blocks in inline-modal.php
shervElmi Sep 2, 2025
adbb281
Add auto-generated files
shervElmi Sep 2, 2025
1f58cf3
Merge remote-tracking branch 'origin/HEAD' into rock/field-settings-r…
shervElmi Sep 2, 2025
47fea2e
Fix validation message visibility when deselecting checkboxes
shervElmi Sep 3, 2025
2d6161a
Remove formula field modal left positioning override
shervElmi Sep 3, 2025
66f8d70
Improve token text wrapping and display
shervElmi Sep 4, 2025
01ffff9
Improve field settings UI and fix layout issues
shervElmi Sep 4, 2025
1681426
Improve draggable field sensitivity settings
shervElmi Sep 4, 2025
d5557af
Improve styling for show image checkbox option
shervElmi Sep 5, 2025
a1fe08a
Add utility classes for inline display and 6px margin
shervElmi Sep 5, 2025
63677ae
Refactor tag removal to use WordPress hooks system
shervElmi Sep 5, 2025
b29a0ed
Merge remote-tracking branch 'origin/HEAD' into rock/field-settings-r…
shervElmi Sep 8, 2025
7703a35
Simplify DOM selection in getExcludeArray
shervElmi Sep 8, 2025
dd9cbf4
Refactor addSlideAnimationCssVars to use early returns
shervElmi Sep 8, 2025
876ffcf
Fix JSDoc consistency and improve linting configuration
shervElmi Sep 8, 2025
f0d6ee2
Move custom toggle group behaviors to Pro plugin
shervElmi Sep 8, 2025
df31848
Fix ESLint action error
shervElmi Sep 8, 2025
b11c208
Fix Firefox display issue with input icon containers
shervElmi Sep 8, 2025
f13ca57
Remove unused ajv dependency from package.json
shervElmi Sep 8, 2025
77f3a73
Fix ESLint error
shervElmi Sep 8, 2025
9822328
Fix draggable field positioning and cursor alignment
shervElmi Sep 8, 2025
b0fbd46
Update some e2e tests, show CSS validation errors
Crabcyborg Sep 8, 2025
c2d4724
Merge branch 'master' into rock/field-settings-refresh-lite
Crabcyborg Sep 8, 2025
69cdbab
Dump CSS with errors
Crabcyborg Sep 8, 2025
b0d52a0
Update more e2e tests
Crabcyborg Sep 8, 2025
cbef31f
Update more e2e tests
Crabcyborg Sep 8, 2025
ba29093
Fix more failing e2e tests
Crabcyborg Sep 8, 2025
8f7f516
Replace infinity calc with explicit order values in flex utility classes
shervElmi Sep 8, 2025
6076b5d
Re-apply Lauras e2e2 test updates
Crabcyborg Sep 8, 2025
f4274d5
Merge branch 'rock/field-settings-refresh-lite' of https://github.com…
Crabcyborg Sep 8, 2025
fb0d3bc
Use single quotes
Crabcyborg Sep 8, 2025
942070e
Apply more of Lauras changes
Crabcyborg Sep 8, 2025
11bb93e
Use force: true once more
Crabcyborg Sep 8, 2025
0d7a9e1
Update another reference
Crabcyborg Sep 8, 2025
5307f81
Replace `frm_hidden` with `frm-force-hidden`.
shervElmi Sep 9, 2025
b9e6ae6
Replace `.frm-inline\!` with `.frm-force-inline`
shervElmi Sep 9, 2025
7b59ea6
Replace `.frm-flex\!` with `.frm-force-flex`
shervElmi Sep 9, 2025
f0c6398
Replace `.frm-flex-center\!` with `.frm-force-flex-center`
shervElmi Sep 9, 2025
a0baa7e
Remove `.frm-gap-xs\!`
shervElmi Sep 9, 2025
3cb2e47
Replace `.frm-mr-auto\!` with `.frm-force-mr-auto`
shervElmi Sep 9, 2025
f4eaed4
Add auto-generated files
shervElmi Sep 9, 2025
cc6fff9
Fix ESLint
shervElmi Sep 9, 2025
e3d980d
Improve hook name specificity for admin tag removal
shervElmi Sep 9, 2025
0cacf9e
Merge pull request #2486 from Strategy11/improve-css-class-naming
Crabcyborg Sep 9, 2025
8e33c7c
Merge branch 'rock/field-settings-refresh-lite' into improve/admin-ta…
Crabcyborg Sep 9, 2025
59e7a71
Merge pull request #2487 from Strategy11/improve/admin-tag-removed-ho…
Crabcyborg Sep 9, 2025
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
2 changes: 2 additions & 0 deletions .eslintignore
Original file line number Diff line number Diff line change
Expand Up @@ -10,9 +10,11 @@ js/addons-page.js
js/formidable_styles.js
js/formidable_admin.js
js/bootstrap-multiselect.js
js/formidable-settings-components.js

# Config files
*.config.js
webpack*.js

**/node_modules/**
**/vendor/**
Expand Down
4 changes: 2 additions & 2 deletions .eslintrc.json
Original file line number Diff line number Diff line change
Expand Up @@ -34,7 +34,7 @@
"window": true,
"document": true
},
"plugins": ["react", "jsx-a11y", "sonarjs", "cypress", "no-jquery", "compat"],
"plugins": ["react", "jsx-a11y", "sonarjs", "cypress", "no-jquery", "compat", "jsdoc"],
"settings": {
"import/resolver": {
"webpack": {
Expand Down Expand Up @@ -94,7 +94,7 @@
"@wordpress/no-global-active-element": "off",
"no-alert": "off",
"no-undef": "off",
"jsdoc/no-undefined-types": "off",
"jsdoc/check-tag-names": "error",
"no-shadow": "off",
"sonarjs/no-duplicate-string": "off",
"sonarjs/prefer-single-boolean-return": "off",
Expand Down
9 changes: 8 additions & 1 deletion .github/workflows/qadeploy.yml
Original file line number Diff line number Diff line change
Expand Up @@ -13,11 +13,18 @@ jobs:
- name: 🚚 Get latest code
uses: actions/checkout@v3.5.0

- name: 🔄 Sanitize branch name
id: sanitize
run: |
BRANCH="${{ github.event.pull_request.head.ref }}"
SANITIZED_BRANCH="${BRANCH//\//-}"
echo "sanitized_branch=$SANITIZED_BRANCH" >> $GITHUB_OUTPUT

- name: 📂 Sync files
uses: SamKirkland/FTP-Deploy-Action@4.3.1
with:
server: ${{ secrets.FRM_FTP_HOST }}
server-dir: ${{ github.event.repository.name }}-${{ github.event.pull_request.head.ref }}/
server-dir: ${{ github.event.repository.name }}-${{ steps.sanitize.outputs.sanitized_branch }}/
username: ${{ secrets.FRM_FTP_USERNAME }}
password: ${{ secrets.FRM_FTP_PASSWORD }}
exclude: |
Expand Down
1 change: 1 addition & 0 deletions .stylelintrc.json
Original file line number Diff line number Diff line change
Expand Up @@ -6,6 +6,7 @@
"selector-id-pattern": null,
"font-family-name-quotes": null,
"function-url-quotes": null,
"no-duplicate-selectors": null,
"value-keyword-case": [
"lower",
{
Expand Down
23 changes: 23 additions & 0 deletions classes/controllers/FrmAppController.php
Original file line number Diff line number Diff line change
Expand Up @@ -784,6 +784,29 @@ public static function admin_js() {
wp_register_script( 'formidable_addons', $plugin_url . '/js/admin/addons.js', array( 'formidable_admin', 'wp-dom-ready' ), $version, true );
wp_enqueue_script( 'formidable_addons' );
}

self::enqueue_builder_assets( $plugin_url, $version );
}

/**
* Enqueue the Form Builder assets.
*
* @since x.x
*
* @param string $plugin_url The plugin URL.
* @param string $version The plugin version.
* @return void
*/
private static function enqueue_builder_assets( $plugin_url, $version ) {
wp_register_style( 'formidable-settings-components', $plugin_url . '/css/admin/frm-settings-components.css', array( 'formidable-admin', 'formidable-grids' ), $version );
wp_register_script( 'formidable-settings-components', $plugin_url . '/js/formidable-settings-components.js', array( 'formidable_admin' ), $version, true );

if ( ! FrmAppHelper::is_form_builder_page() ) {
Comment thread
shervElmi marked this conversation as resolved.
return;
}

wp_enqueue_style( 'formidable-settings-components' );
wp_enqueue_script( 'formidable-settings-components' );
}

/**
Expand Down
28 changes: 16 additions & 12 deletions classes/controllers/FrmFieldsController.php
Original file line number Diff line number Diff line change
Expand Up @@ -391,28 +391,30 @@ private static function default_value_types( $field, $atts ) {
'default_value' => array(
'class' => '',
'icon' => 'frm_icon_font frm_text2_icon',
'title' => __( 'Default Value (Text)', 'formidable' ),
'title' => __( 'Default Value', 'formidable' ),
'data' => array(
'frmshow' => '#default-value-for-',
),
),
'calc' => array(
'class' => 'frm_show_upgrade frm_noallow',
'title' => __( 'Default Value (Calculation)', 'formidable' ),
'icon' => 'frm_icon_font frm_calculator_icon',
'data' => array(
'class' => 'frm_show_upgrade frm_noallow',
'title' => __( 'Calculate Value', 'formidable' ),
'icon' => 'frm_icon_font frm_calculator_icon',
'data' => array(
'medium' => 'calculations',
'upgrade' => __( 'Calculator forms', 'formidable' ),
),
'tooltip' => __( 'Automatically calculate the value of this field based on values from other fields.', 'formidable' ),
),
'get_values_field' => array(
'class' => 'frm_show_upgrade frm_noallow',
'title' => __( 'Default Value (Lookup)', 'formidable' ),
'icon' => 'frm_icon_font frm_search_icon',
'data' => array(
'class' => 'frm_show_upgrade frm_noallow',
'title' => __( 'Lookup', 'formidable' ),
'icon' => 'frm_icon_font frm_search_icon',
'data' => array(
'medium' => 'lookup',
'upgrade' => __( 'Lookup fields', 'formidable' ),
),
'tooltip' => __( 'Dynamically retrieve the value of this field from a lookup field.', 'formidable' ),
),
);

Expand All @@ -422,9 +424,11 @@ private static function default_value_types( $field, $atts ) {
$settings = array_keys( $types );
$active = 'default_value';

foreach ( $settings as $type ) {
if ( ! empty( $field[ $type ] ) ) {
$active = $type;
if ( FrmAppHelper::pro_is_connected() ) {
foreach ( $settings as $type ) {
if ( ! empty( $field[ $type ] ) ) {
$active = $type;
}
}
}

Expand Down
2 changes: 1 addition & 1 deletion classes/controllers/FrmFormsController.php
Original file line number Diff line number Diff line change
Expand Up @@ -68,7 +68,7 @@ public static function logic_tip() {
$data_message .= ' <img src="' . esc_url( $images_url ) . '/survey-logic.png" srcset="' . esc_url( $images_url ) . 'survey-logic@2x.png 2x" alt="' . esc_attr__( 'Conditional Logic options', 'formidable' ) . '"/>';
echo '<a href="javascript:void(0)" class="frm_noallow frm_show_upgrade frm_add_logic_link frm-collapsed frm-flex-justify" data-upgrade="' . esc_attr__( 'Conditional Logic options', 'formidable' ) . '" data-message="' . esc_attr( $data_message ) . '" data-medium="builder" data-content="logic">';
esc_html_e( 'Conditional Logic', 'formidable' );
FrmAppHelper::icon_by_class( 'frmfont frm_arrowdown6_icon', array( 'aria-hidden' => 'true' ) );
FrmAppHelper::icon_by_class( 'frmfont frm_arrowdown8_icon', array( 'aria-hidden' => 'true' ) );
Comment thread
shervElmi marked this conversation as resolved.
echo '</a>';
}

Expand Down
6 changes: 2 additions & 4 deletions classes/controllers/FrmStylesController.php
Original file line number Diff line number Diff line change
Expand Up @@ -1265,13 +1265,11 @@ public static function do_accordion_sections( $screen, $context, $data_object )
<li class="control-section accordion-section <?php echo esc_attr( $open_class ); ?> <?php echo esc_attr( $box['id'] ); ?>" id="<?php echo esc_attr( $box['id'] ); ?>">
<h3 class="accordion-section-title hndle">
<?php
FrmAppHelper::icon_by_class( 'frmfont ' . $icon_id );
FrmAppHelper::icon_by_class( 'frmfont ' . $icon_id . ' frm_svg24' );
echo esc_html( $box['title'] );
?>
<button type="button" aria-expanded="<?php echo esc_attr( 'open' === $open_class ? 'true' : 'false' ); ?>" aria-controls="<?php echo esc_attr( $accordion_content_id ); ?>" aria-label="<?php echo esc_attr( $box['title'] ); ?>">
<?php
FrmAppHelper::icon_by_class( 'frmfont frm_arrowdown8_icon' );
?>
<?php FrmAppHelper::icon_by_class( 'frmfont frm_arrowdown8_icon' ); ?>
</button>
</h3>
<div class="accordion-section-content <?php postbox_classes( $box['id'], $page ); ?>" id="<?php echo esc_attr( $accordion_content_id ); ?>">
Expand Down
30 changes: 15 additions & 15 deletions classes/helpers/FrmAppHelper.php
Original file line number Diff line number Diff line change
Expand Up @@ -1540,6 +1540,7 @@ public static function show_search_box( $atts ) {
'text' => __( 'Search', 'formidable' ),
'input_id' => '',
'value' => false,
'class' => '',
);
$atts = array_merge( $defaults, $atts );

Expand Down Expand Up @@ -1574,13 +1575,11 @@ public static function show_search_box( $atts ) {
$input_atts['autocomplete'] = 'off';
}
?>
<p class="frm-search">
<p class="frm-search <?php echo esc_attr( $atts['class'] ); ?>">
<label class="screen-reader-text" for="<?php echo esc_attr( $input_id ); ?>">
<?php echo esc_html( $atts['text'] ); ?>:
</label>

<?php self::icon_by_class( 'frm_icon_font frm_search_icon' ); ?>

<?php self::icon_by_class( 'frm_icon_font frm_search_icon frm_svg20' ); ?>
<input <?php self::array_to_html_params( $input_atts, true ); ?> />
<?php
if ( empty( $atts['tosearch'] ) ) {
Expand Down Expand Up @@ -3910,12 +3909,6 @@ private static function fill_default_images_dropdown_args( $args ) {
$new_args['options'] = (array) $new_args['options'];
$new_args['input_attrs'] = (array) $new_args['input_attrs'];

// Set the number of columns.
$new_args['col_class'] = ceil( 12 / count( $new_args['options'] ) );
if ( $new_args['col_class'] > 6 ) {
$new_args['col_class'] = ceil( $new_args['col_class'] / 2 );
}

/**
* Allows modifying the arguments of images_dropdown() method.
*
Expand Down Expand Up @@ -4227,13 +4220,16 @@ public static function show_new_feature( $feature ) {
}

/**
* Enhances upgrade data parameters with installation link and plan requirement information.
*
* @since 5.0.17
*
* @param string $plugin
* @param array $params
* @return array
* @param string $plugin The plugin slug to get installation data for.
* @param array $params Initial parameters for the upgrade data.
* @param bool $detailed Whether to include detailed information.
* @return array Modified parameters with installation data.
*/
public static function get_upgrade_data_params( $plugin, $params ) {
public static function get_upgrade_data_params( $plugin, $params, $detailed = false ) {
$link = FrmAddonsController::install_link( $plugin );
if ( ! $link ) {
return $params;
Expand All @@ -4246,7 +4242,11 @@ public static function get_upgrade_data_params( $plugin, $params ) {
$params['medium'] = $plugin;
}
} else {
$params['requires'] = FrmFormsHelper::get_plan_required( $link );
$params['requires'] = $params['requires'] ?? FrmFormsHelper::get_plan_required( $link );
}

if ( $detailed ) {
$params['plugin-status'] = $link['status'] ?? '';
}

return $params;
Expand Down
82 changes: 81 additions & 1 deletion classes/helpers/FrmFieldsHelper.php
Original file line number Diff line number Diff line change
Expand Up @@ -601,7 +601,8 @@ public static function show_single_option( $field ) {
$base_name = 'default_value_' . $field['id'];
$html_id = isset( $field['html_id'] ) ? $field['html_id'] : self::get_html_id( $field );

$default_type = self::get_default_value_type( $field );
$default_type = self::get_default_value_type( $field );
$options_count = count( $field['options'] );

foreach ( $field['options'] as $opt_key => $opt ) {
$field_val = self::get_value_from_array( $opt, $opt_key, $field );
Expand Down Expand Up @@ -693,6 +694,7 @@ public static function inline_modal( $args ) {
'args' => array(),
'title' => '',
'inside_class' => 'inside',
'dismiss-icon' => true,
);
$args = array_merge( $defaults, $args );

Expand Down Expand Up @@ -2425,4 +2427,82 @@ public static function get_all_draft_field_ids( $form_id ) {
$draft_field_rows = self::get_draft_field_results( $form_id );
return wp_list_pluck( $draft_field_rows, 'id' );
}

/**
* Render AI generate options button.
*
* @since x.x
*
* @param array $args Field arguments.
* @param bool $should_hide_bulk_edit Whether to hide bulk edit.
*/
public static function render_ai_generate_options_button( $args, $should_hide_bulk_edit = false ) {
$attributes = array( 'class' => self::get_ai_generate_options_button_class() );

Comment thread
shervElmi marked this conversation as resolved.
if ( ! empty( $should_hide_bulk_edit ) ) {
$attributes['class'] .= ' frm-force-hidden';
}

$data = FrmAppHelper::get_upgrade_data_params(
'ai',
array(
'requires' => 'Business',
'upgrade' => __( 'Generate options with AI', 'formidable' ),
'medium' => 'builder',
'content' => 'generate-options-with-ai',
),
true
);

if ( in_array( FrmAddonsController::license_type(), array( 'elite', 'business' ), true ) && 'active' === $data['plugin-status'] ) {
// Backwards compatibility "@since x.x".
if ( ! method_exists( 'FrmAIAppController', 'get_ai_generated_options_summary' ) ) {
$data = array(
'modal-title' => __( 'Generate options with AI', 'formidable' ),
'modal-content' => __( 'Update the Formidable AI add-on to the last version to use this feature.', 'formidable' ),
);
} else {
$attributes['class'] .= ' frm-ai-generate-options-modal-trigger';
$attributes['data-fid'] = $args['likert_id'] ?? $args['field']['id'];
}
Comment thread
shervElmi marked this conversation as resolved.
}

if ( empty( $attributes['data-fid'] ) ) {
unset( $data['plugin-status'] );
foreach ( $data as $key => $value ) {
$attributes[ 'data-' . $key ] = $value;
}
}

include FrmAppHelper::plugin_path() . '/classes/views/frm-fields/back-end/generate-options-with-ai.php';
}

/**
* Get AI generate options button class.
*
* @since x.x
*
* @return string Button class.
*/
private static function get_ai_generate_options_button_class() {
return implode(
' ',
array(
'frm_form_field',
'frm6',
'frm6_followed',
'frm-h-stack',
'button',
'frm-button-secondary',
'frm-button-gradient',
'frm-rounded-6',
'frm-max-w-fit',
'frm-font-normal',
'frm-py-2xs',
'frm-px-xs',
'frm-mt-xs',
'frm-mb-12',
)
);
}
}
Loading
Loading