node.next()
, node.previous()
et node.goTo()
pour les entrées multi-step
via le plugin MultiStep. Cela permet un contrôle externe plus facile de la navigation des entrées multi-step
. #685node.restoreCache()
pour le plugin localStorage permettant de restaurer les valeurs de formulaire en cache en cas d'échec de la soumission. #727multi-step
. #720blur
pouvait provoquer des erreurs de console lors du changement de route. #735beforeStepChange
fonctionne maintenant avec les appels de fonction async
. #743file
ne permettaient pas de télécharger à nouveau le même fichier après avoir appelé reset
. #762fk-
.text
réutilisaient le premier schéma(#719)FormKitValidationMessage
pour aider à taper les fonctions de message de validation (#695)key
, control
, debounce
, beforeSave
et beforeLoad
.group
. par exemple (form
, group
, multi-step
, etc).value
d'un slot n'était pas mise à jour dans certains cas limites (#717).dynamic
de la liste vous permet de créer facilement vos propres répéteurs.require_one
(merci @devoidofgenius), contains_alpha
, contains_alphanumeric
, contains_alpha_space
, contains_symbol
, contains_uppercase
, contains_lowercase
, contains_numeric
, symbol
, uppercase
, et lowercase
(merci @riderx).textarea
avec une hauteur redimensionnable dynamiquement.commitRaw
qui se déclenche même s'il n'y a pas de changement dans la valeur de l'entrée.FormKitSchema
peut maintenant utiliser un seul nœud racine (au lieu d'un fragment)v-show
fonctionnent maintenant et qu'il n'est généralement plus nécessaire d'ajouter une key
aux entrées dynamiques (#528).node.reset()
deviennent la nouvelle valeur par défaut pour l'entrée (#621).zh-TW
)lv
)tet
)node.extend()
.@input
et suppression du rebond maintenant inutile sur l'événement de changement.@formkit/observer
observera désormais les changements de node._value
dans les cas où vous souhaitez opérer sur la valeur d'entrée non rebondie.range
dans @formkit/icons
a été mise à jour pour ne montrer qu'une seule poignée de contrôle puisque les entrées de plage HTML ne supportent pas plusieurs valeurs. L'ancienne icône à plusieurs poignées a été réaffectée pour la nouvelle entrée slider
de FormKit Pro.repeater
imbriquées de s'hydrater correctement (#458).repeater
imbriquées étaient supprimées (#457).@blur
sur une entrée personnalisée (#413).v-model
ne déclenchait des événements d'entrée que sur chaque autre entrée (#463)node.walk()
se terminait prématurément lors de l'utilisation de stopOnFalse
.La Beta 16 est la première version de FormKit qui n'a pas d'identifiant de pré-lancement. La Beta 16 et toutes les versions bêta restantes seront publiées sous la version sémantique 0.x.x
. La première version stable sera 1.0.0
et est prévue pour plus tard cette année. Ce changement de versionnement devrait aider à la résolution des dépendances du gestionnaire de paquets alors que nous terminons nos cycles de sortie en bêta.
overlay
.dirty-behavior
qui permet aux utilisateurs d'opter pour un comportement compare
qui compare la valeur actuelle de l'entrée à la valeur originale de l'entrée. Si l'entrée est ramenée à son état original, le drapeau context.state.dirty
reviendra à faux.options
(utilisée dans select, radio, checkboxes et certains inputs pro) peut maintenant différencier les valeurs null
et undefined
.@formkit/nuxt
et la coloration syntaxique.dirty
d'une entrée non liée était incorrectement défini sur true
lorsqu'un objet (comme un groupe) était mis à jour (#520).submitted
comme les enfants du formulaire lors d'une soumission de formulaire infructueuse (#503).Cette version ajoute de nouveaux plugins de première partie au package @formkit/addons
, expédie des corrections de bugs et des mises à jour de style pour les utilisateurs de CSS et Tailwind CSS.
@formkit/addons
. Livré avec un style CSS autonome que vous pouvez importer et qui fonctionne bien avec notre thème genesis
. Consultez la documentation complète ici.text
(text
, email
, url
, etc) et textarea
avec le nouveau plugin de labels flottants dans @formkit/addons
. Consultez la documentation complète ici.Next
et Previous
à l'objet de localisation de l'interface utilisateur pour une utilisation dans les plugins et les inputs personnalisés.@formkit/themes
.:focus-visible
aux boutons pour montrer l'état de focus lors de l'utilisation de la navigation au clavier.loading
manquants pour les boutons submit
dans le thème Genesis de Tailwind CSS.Cette version corrige certains problèmes pour les utilisateurs de Tailwind qui ont été introduits dans beta.13
.
@formkit/themes/tailwindcss
pour n'inclure qu'un export default
du plugin FormKitVariants
.@formkit/themes/dist/tailwindcss/genesis
.!
à $remove:
afin de ne pas entrer en conflit avec l'opérateur !
intégré de Tailwind qui ajoute !important
à une règle de style.<FormKitMessages>
qui permet de déplacer les messages de validation et d'erreur d'un formulaire et la capacité pour les entrées group
et list
d'afficher leurs propres messages d'erreur et de validation.!
pour supprimer sélectivement une classe existante sans avoir besoin d'utiliser la syntaxe d'objet longue forme. par exemple outer-class="my-class !formkit-outer"
ajoute my-class
et supprime la classe formkit-outer
par défaut.checkbox
et radio
ont maintenant un attribut data-checked
autour de leur enveloppe respective, ce qui facilite l'ajout de styles personnalisés pour les états cochés et non cochés.en
, pt
, zh
).empty-message
permet d'afficher un message dans listbox lorsqu'aucune option n'est passée (dropdown
, autocomplete
, et taglist
). #502dropdown
, autocomplete
, taglist
). #350max
pour taglist
et autocomplete
avec des entrées multiple
. #501closeOnSelect
qui maintient la listbox
déployée au fur et à mesure que les sélections sont effectuées (autocomplete
multiple et taglist
).forceExpanded
qui force la listbox
à rester ouverte à des fins de développement (dropdown
, autocomplete
, et taglist
).disabled
.date_after
affichait un message de validation incorrect à cause des fuseaux horaires. #488v-model
peuvent maintenant être initialisées comme undefined
. #235validation-rules
en ligne se récursaient de manière inattendue. #514sections-schema
. #541disabled
avait besoin de null
au lieu de false
pour rendre l'attribut data-disabled
sur l'enveloppe extérieure. #511v-if
sur le bloc <template v-slot>
). #489sections-schema
.taglist
où des options en double étaient chargées depuis l'API. #497taglist
rendait des props en double lorsque la prop multiple
était réglée sur false
. #494options
autocomplete
se dupliquaient lorsqu'elles étaient utilisées rapidement, de manière répétée, ou avec du contenu collé. #431autocomplete
et taglist
ne pouvait pas être supprimée lorsque la valeur fournie était un objet littéral. #505listbox
était toujours visible lorsqu'aucune option
n'était passée. #504formkit.config.js
.npx formkit create-app
pour initialiser facilement de nouveaux projets FormKit.length
dans toutes les langues.stopIfFalse
sur la fonction walkTree
.null
n'a pas une bonne valeur #415.count:blocking
n'était pas correctement émis dans les Repeaters.[Object object]
après l'existence de la référence #368.3.0.0-rc.8
et 3.0.0-rc.9
#371 et #383.@formkit/themes/tailwindcss
avec TypeScript #376.family
optionnelle, qui ajoute un attribut data-family
, et définit la valeur sur node.props.family
. Ceci est utile pour appliquer des plugins et des styles à des "familles" entières d'entrées comme la famille de textes d'entrées, qui s'appliquerait à text
, email
, password
, number
, etc.forceTypeProp
optionnelle qui assure que le node.props.type
est initialisé comme une valeur donnée même si l'entrée est enregistrée sous un nom différent. Par exemple, myModifiedCheckbox
pourrait toujours avoir node.props.type
rapport "checkbox".data-multiple
aux cases à cocher et aux radios lorsqu'ils ont plusieurs options.@submit-invalid
aux entrées type="form"
. L'événement est déclenché lorsqu'un utilisateur tente de soumettre un formulaire mais qu'il a des entrées invalides.getValidationMessages
à @formkit/validation
qui extrait une Map des nœuds et de leurs messages de validation.decorator-icon
aux cases à cocher et aux radios, facilitant l'utilisation de SVG personnalisés dans vos cases à cocher et radios.context.state.dirty
des entrées à vrai lorsqu'un formulaire v-modelé était modifié (#311).node.reset()
est appelé (#319).removeFiles
de l'entrée de fichier a été renommée en fileRemove
.fileRemove
(précédemment removeFiles
) utilisée pour rendre une balise <a>
, cela a été changé en un button
.@formkit/inputs
ont été remplacés par des "sections". Cela ne devrait affecter que les utilisateurs qui créaient leurs propres entrées à partir de composables préexistants.@formkit/cli
. Modifiez les entrées existantes en ajoutant, supprimant, mettant à jour ou réorganisant les sections - ou ajoutez vos propres variations d'entrées exportées et modifiées à votre bibliothèque d'entrées.meta
à la spécification du schéma (#248).theme
dans defaultConfig()
submit
et setErrors
.key
de fonctionner lors de l'utilisation du raccourci $formkit
dans le schéma (#232).@blur
(#239).for
sur les anciens navigateurs Safari (#299).input-errors
réinitialisera désormais toutes les erreurs qu'elle a précédemment définies lorsqu'elle est définie sur un objet vide {}
(#277).alpha
et alpha_spaces
(#281).tailwindcss
, unocss
, et windicss
doivent maintenant être importés à partir de leur propre sous-chemin du paquet @formkit/themes
. Par exemple :import formKitTailwindPlugin from '@formkit/themes/tailwindcss'
windicss
, tailwindcss
et unocss
.update:model-value
ne sera désormais émis que lors de l'utilisation de la directive v-model
.input
est maintenant différé pour réduire la quantité de bruit émis. Vous pouvez utiliser le nouveau input-raw
pour écouter chaque événement d'entrée.setErrors
sont maintenant automatiquement effacées lors de l'entrée par défaut. Pour revenir au comportement précédent, définissez preserveErrors: true
dans votre objet de configuration global.@formkit/tailwindcss
est maintenant obsolète — le plugin formKitTailwind
et la fonction generateClasses
ont été déplacés vers le paquet @formkit/themes
.checkbox
, radio
, et select
(entrées qui utilisent :options
) peuvent maintenant utiliser n'importe quel type de données comme leur valeur comme des nombres, des objets, ou même null
(#85).node.clearErrors
et clearErrors
pour aider à effacer les erreurs de backend d'une entrée ou d'un formulaire.node.setErrors()
lors de l'entrée de l'utilisateur. Vous pouvez remplacer ce comportement par défaut (pour conserver l'erreur sur l'entrée) avec preserve-errors="true"
.node.addProps
pour ajouter de nouvelles propriétés dans les plugins personnalisés.message
pour modifier les messages lorsqu'ils sont définis.reset
— émis après la réinitialisation d'un formulaire.index
qui permet d'injecter des entrées à un index donné sur un type list
parent.input
du composant <FormKit>
est maintenant différé, ce qui signifie qu'il émet beaucoup moins de bruit.import { features } from '@formkit/inputs'
.input-raw
au composant <FormKit>
qui est émis pour chaque événement d'entrée unique dans une entrée, une liste, un groupe, ou un formulaire (très bruyant).input
, input-raw
, submit
et submit-raw
.dom-input-event
qui a l'objet Event
HTML natif comme charge utile.@formkit/themes
inclut maintenant des exportations nommées pour les fonctions de plugin pour Tailwind CSS (formKitTailwind
), Windi CSS (formKitWindi
), et Uno CSS (formKitUno
). En ajoutant le plugin correct à votre fichier de configuration de framework CSS, vous aurez accès à une variété de variantes formkit telles que formkit-invalid:
et formkit-disabled:
.@formkit/themes
inclut maintenant la fonction d'aide generateClasses
qui vous permet de fournir facilement différentes listes de classes à ${sectionKey}
s en fonction du type d'entrée.v-model
pour les structures profondément imbriquées comme les formulaires avec listes et groupes.null
provoquaient des erreurs (#151)validation-visibility
ne changeait pas lorsqu'il était mis à jour de manière réactive (#159)preserve
bloquait certaines soumissions de formulaires (#145)@formkit/tailwind
(#143)on-value
ne recevaient pas leur valeur initiale lors de l'utilisation de la propriété :value
.multiple="false"
explicite et un espace réservé (#148).classes
ne réagissait pas à la réactivité de Vue lors de l'utilisation de refs imbriquées (#155).disabled
sur le formulaire sans spécifier disabled="true"
(#215)alpha_spaces
(#83)node.input()
(#139)@submit
(#130)data-loading
a été déplacé du bouton de soumission d'un formulaire
à la balise <form>
elle-même.@formkit/tailwindcss
pour créer facilement des thèmes Tailwind pour vos formulaires FormKit. Consultez le guide Créer un thème CSS Tailwind pour plus de détails.reset
programmatique. Cela peut être fait sur n'importe quelle entrée, groupe, formulaire, ou liste et cela restaurera la valeur à son état initial. Il réinitialise également l'objet context.state
(comme blurred
et dirty
).aria-describedby
et aria-live
à tous les types d'entrée fournis. aria-describedby
cible désormais le texte d'aide, les messages de validation, et les messages d'erreur (étiquetage fourni par les balises <label>
qui utilisent l'attribut for
).undefined
à leurs enfants. En d'autres termes, si un formulaire est v-modelé et que sa valeur est définie sur un objet vide {}
, il effacera tout le formulaire.context.state.settled
qui signale lorsque le cycle de rebond interne de l'entrée est terminé et qu'une valeur a fini d'être engagée dans le formulaire.data-submitted
aux entrées qui ont été soumises.fileName
(merci @santi).parent
qui accepte un nœud central pour des cas d'utilisation avancés où les entrées sont découplées de leur formulaire ou où une structure de données est souhaitée.input-class
) à l'intérieur des schémas ne respectaient pas correctement la commande $reset
car elle était traitée comme une variable (#61).file-list-class
ou file-item-class
(#120).import '@formkit/themes/genesis
.node.submit()
(y compris tout nœud enfant du formulaire).this.$formkit.submit('form-id')
(pour l'api de composition, c'est submitForm('form-id')
).setErrors
DX :
node.setErrors(nodeErrors, childErrors)
.setErrors
supporte maintenant la chaîne pure node.setErrors('Mon erreur')
<FormKit>
est maintenant disponible via la référence de modèle.data-invalid
à la section outer
lorsqu'une entrée a des messages de validation échoués qui sont actuellement affichés (exemple de terrain de jeu).data-errors
à la section outer
lorsque l'entrée a des erreurs explicitement placées (via prop ou setErrors
).data-complete
à la section outer
lorsqu'une entrée (exemple de terrain de jeu) :
context.state
:
state.rules
- vrai lorsque l'entrée a des règles de validation.state.errors
- vrai lorsque l'entrée a des erreurs explicites placées sur elle.state.complete
- même logique que data-complete
.state.validationVisible
- vrai lorsque la condition validation-visibility
est remplie (elle montre des erreurs de validation s'il y en a).node.setErrors
.context.state
avec de nouvelles propriétés et de meilleures descriptions.file
de déclencher des événements onChange
personnalisés (#90).id
vers le DOM.:value
sur les formulaires était modifiée lors de l'entrée (#72).prop:{propName}
émis par les propriétés par défaut et les propriétés définies par l'entrée personnalisée (#73)beta.3
allait être une si grande version que nous avons décidé de la sauter et de passer directement à beta.4
👀 ! Juste pour rire. Nous avons eu des problèmes avec npm et avons dû augmenter 🤦.@formkit/nuxt
est un module Nuxt 3 complet qui rend l'utilisation de FormKit avec Nuxt 3 aussi simple que possible !defaultConfig
inclut maintenant un nouveau package @formkit/dev
qui décode les codes d'erreur de FormKit en messages de console utiles (aucune action requise) (#56).preserve
s'applique maintenant à tous les descendants (#53).@formkit/i18n
(#54).@formkit
!options
qui est stockée dans une variable externe (#55)placeholder
sur les entrées de sélection était supprimé si quelque chose provoquait le re-rendu de l'entrée (#52).submit-behavior
pour se désinscrire des nouveaux formulaires automatiquement désactivés.bindings
dans le package @formkit/vue
.button
et submit
sont automatiquement ignorés.messages
dans le defaultConfig
pour permettre des substitutions partielles aux locales. Cela permet des substitutions de messages sélectives pour les locales déjà enregistrées (#42).$: undefined
donnerait la valeur undefined
au lieu de la chaîne "undefined").options
ne s'hydrataient pas correctement lorsqu'elles étaient repeuplées à partir d'un group
, list
, ou form
(#45).options
ne s'affichaient pas correctement lorsqu'il manquait la prop label (#41).validation-behavior
sur le composant <FormKit>
en validation-visibility
.schema
sur le composant <FormKit>
en sections-schema
.file
avec support pour certaines fonctionnalités à valeur ajoutée :
createInput
pour faciliter l'écriture des entrées personnalisées.incomplete-message
permet une personnalisation en ligne (ou la désactivation) du message affiché par un formulaire lorsqu'il tente de soumettre et que toutes ses entrées ne sont pas valides.defaultConfig
pour accepter les entrées personnalisées.props
et attrs
avec __raw__
pour passer la valeur brute au lieu de son résultat analysé (#36).plugin.library
— le mécanisme que les plugins utilisent pour définir de nouveaux types d'entrée..vue
, .js
, formkit.config.js
et tailwind.config.js
.@submit
et @submit-raw
.length
et between
pour toujours placer le nombre inférieur en premier (#35).:options
n'acceptait pas les valeurs numériques.v-if
), elle supprime maintenant sa valeur des données du formulaire et désenregistre son nœud central.preserve
permet aux entrées de ne pas supprimer leurs données des groupes, listes et formulaires lorsqu'elles sont supprimées.placeholder
ne s'affichait pas lorsque la propriété venait après la propriété options
.input-errors
ou les méthodes $formkit.setErrors()
. En savoir plus à ce sujet sur les docs du formulaire.$formkit.setLocale()
change réactivement la langue de tous les messages affichés.rootConfig
qui est utilisé pour stocker la configuration de base globale et les valeurs de propriété (refonte significative du système de configuration).FormKitObservedNode
.length
peut désormais prendre des arguments max/min dans n'importe quel ordre length:15,5
ou length:5,15
évaluent la même chose.getNode
pour accéder directement à un nœud FormKit en utilisant l'API de composition.@formkit/theme
.list
lors de l'affichage des erreurs de validation.node.input()
de déclencher la réactivité dans Vue.$formkit
pour utiliser les entrées FormKit dans un schéma (Issue #15).disabled
sur les entrées de formulaire, de liste et de groupe qui désactive automatiquement toutes les entrées enfants (Issue #16).submitAttrs
sur les formulaires qui vous permet de passer des attributs au bouton de soumission du formulaire.ignore
qui empêche les données d'une entrée d'être utilisées dans un formulaire.children
d'un composant FormKit. (Issue #21).rootClasses
renvoie incorrectement undefined
(Issue #17).submit_x
(Issue #22).$cmp
à se remonter si l'objet racine du schéma était réinitialisé, provoquant une re-analyse complète (Issue #14).