Merged
Conversation
…ts are because of the wrapper removal.
# Conflicts: # resources/js/components/ui/Slider.vue
- section provider becomes fields provider - fields provider accepts prefixes for recursion - recursion works now. values/meta/errors/previews are pulled straight from the store by dotted keys - field conditions work now - field ids are provided to the fieldtype components as an `id` prop rather than a `fieldId` computed - replicators hooked up - group fieldtype hooked up - grid stacked mode hooked up
…er worked. This'll make the upcoming refactor easier.
# Conflicts: # resources/js/components/ui/Select/Select.vue # resources/js/components/ui/Slider.vue # resources/js/components/ui/index.js
Pass disabled as a prop. Style disable based on prop, not sub-control position. The cva classes are now a computed so that it'll update when props change, such as disabled. Adjust slots so you can specify combinations of label and actions.
- Wire up terms publish form with new stuff. - New composition api live preview component with only necessary props. (Values etc come from container) - Container component and store adds more props and things like origin values/meta, localized fields, etc. - Tab slot is actions rather than sidebar. - Localization picker moved into a component. It'll get reused by entries form. - Publish field component can sync/desync and track localized fields - Publish "Components" component can just be dropped into the form. No need to pass any props, slot scope, or loops. - Input component gets a disabled prop. - Text fieldtype passes disabled and id - Slug fieldtype passes disabled - $wait util is moved into its own file - Expose this.$events as Statamic.$events
duncanmcclean
added a commit
that referenced
this pull request
Jun 3, 2025
…wrapper We removed the `<WithField>` wrapper in #11787, but didn't remove the label/description props we passed to it.
Merged
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Note
This PR contains a handful of todos, commented out, and broken bits. Since it's going to the
uibranch, we'll sort them out there. I just want the majority of it to be contained in a PR.Publish Form
You can create a basic publish form without having to think about Vue or Blade.
You will need a route and a controller. The controller will need to getting the blueprint and values, and storing the values.
For example, you might want to create a publish form for an Eloquent model.
Vue Components
If you have more complex needs, you can create your own Vue component using a number of composable elements.
The
SavePipelineis a composable way to save the form using different steps. In this example there are three steps but the only required one is theRequeststep, which will handle the form submission and validation.Container, Tabs, Sections, etc
The publish container is the main store of the form. All the values, metadata, errors, etc will be held in there.
The tabs component will render the standard tabbed based form layout automatically based on the provided blueprint.
You can customize the content of the tabs, but the default is the
PublishSectionscomponent which again will just render the form appropriately.The props and slots available to customize these elements will be described in more detail in the eventual docs.
Difference from existing forms
With this, you no longer have to deal with prop- and event-ception, passing props all the way down through tabs/sections/fields. It's now automatic just by having the Vue component existing on the page.
Also..
This PR also
this.$somethinghelpers to the Statamic class so you can doStatamic.$somethingwhen using composition api