@donotdev/crud 0.0.31 → 0.1.1
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/LICENSE.md +3 -3
- package/dist/CrudService.d.ts +13 -4
- package/dist/CrudService.d.ts.map +1 -1
- package/dist/CrudService.js +2 -2
- package/dist/CrudStore.d.ts +1 -1
- package/dist/CrudStore.d.ts.map +1 -1
- package/dist/CrudStore.js +1 -1
- package/dist/FieldRegistry.d.ts +2 -12
- package/dist/FieldRegistry.d.ts.map +1 -1
- package/dist/FieldRegistry.js +1 -1
- package/dist/adapters/FunctionsAdapter.d.ts +3 -3
- package/dist/adapters/FunctionsAdapter.d.ts.map +1 -1
- package/dist/adapters/FunctionsAdapter.js +1 -1
- package/dist/adapters/index.d.ts +1 -1
- package/dist/builtinFieldTypes.d.ts +1 -1
- package/dist/components/CrudButton.d.ts +1 -0
- package/dist/components/CrudButton.d.ts.map +1 -1
- package/dist/components/CrudButton.js +1 -1
- package/dist/components/CrudCard.d.ts +1 -1
- package/dist/components/CrudCard.d.ts.map +1 -1
- package/dist/components/CrudCard.js +1 -1
- package/dist/components/DateFilter.js +1 -1
- package/dist/components/DisplayFieldRenderer.d.ts +2 -1
- package/dist/components/DisplayFieldRenderer.d.ts.map +1 -1
- package/dist/components/DisplayFieldRenderer.js +1 -1
- package/dist/components/DisplayThumbnail.d.ts +1 -9
- package/dist/components/DisplayThumbnail.d.ts.map +1 -1
- package/dist/components/DisplayThumbnail.js +1 -1
- package/dist/components/EntityFilters.d.ts +1 -0
- package/dist/components/EntityFilters.d.ts.map +1 -1
- package/dist/components/EntityFilters.js +1 -1
- package/dist/components/FormFieldRenderer.d.ts +1 -0
- package/dist/components/FormFieldRenderer.d.ts.map +1 -1
- package/dist/components/FormFieldRenderer.js +1 -1
- package/dist/components/FormLayout.d.ts +2 -1
- package/dist/components/FormLayout.d.ts.map +1 -1
- package/dist/components/FormLayout.js +1 -1
- package/dist/components/controlled/complex/ControlledAddressField.js +1 -1
- package/dist/components/controlled/complex/ControlledDateField.d.ts.map +1 -1
- package/dist/components/controlled/complex/ControlledDateField.js +1 -1
- package/dist/components/controlled/complex/ControlledFieldArrayField.js +1 -1
- package/dist/components/controlled/complex/ControlledGeoPointField.js +1 -1
- package/dist/components/controlled/complex/ControlledMapField.js +1 -1
- package/dist/components/controlled/complex/ControlledMultiInputField.js +1 -1
- package/dist/components/controlled/complex/ControlledRichTextField.js +1 -1
- package/dist/components/controlled/complex/ControlledTimestampField.d.ts.map +1 -1
- package/dist/components/controlled/complex/ControlledTimestampField.js +1 -1
- package/dist/components/controlled/complex/index.js +1 -1
- package/dist/components/controlled/file/ControlledDocumentField.js +1 -1
- package/dist/components/controlled/file/ControlledFileField.js +1 -1
- package/dist/components/controlled/file/ControlledImageField.js +1 -1
- package/dist/components/controlled/file/ControlledMultiDocumentField.js +1 -1
- package/dist/components/controlled/file/ControlledMultiFileField.js +1 -1
- package/dist/components/controlled/file/ControlledMultiImageField.js +1 -1
- package/dist/components/controlled/file/index.js +1 -1
- package/dist/components/controlled/index.js +1 -1
- package/dist/components/controlled/input/ControlledCheckboxField.js +1 -1
- package/dist/components/controlled/input/ControlledCurrencyField.js +1 -1
- package/dist/components/controlled/input/ControlledDurationField.js +1 -1
- package/dist/components/controlled/input/ControlledGdprConsentField.js +1 -1
- package/dist/components/controlled/input/ControlledNumberField.js +1 -1
- package/dist/components/controlled/input/ControlledPasswordField.js +1 -1
- package/dist/components/controlled/input/ControlledPhoneField.js +1 -1
- package/dist/components/controlled/input/ControlledPriceField.js +1 -1
- package/dist/components/controlled/input/ControlledRangeField.js +1 -1
- package/dist/components/controlled/input/ControlledRatingField.js +1 -1
- package/dist/components/controlled/input/ControlledSwitchField.js +1 -1
- package/dist/components/controlled/input/ControlledTextField.d.ts +5 -5
- package/dist/components/controlled/input/ControlledTextField.d.ts.map +1 -1
- package/dist/components/controlled/input/ControlledTextField.js +1 -1
- package/dist/components/controlled/input/ControlledTextareaField.js +1 -1
- package/dist/components/controlled/input/index.js +1 -1
- package/dist/components/controlled/select/ControlledComboboxField.js +1 -1
- package/dist/components/controlled/select/ControlledDropdownField.d.ts +2 -4
- package/dist/components/controlled/select/ControlledDropdownField.d.ts.map +1 -1
- package/dist/components/controlled/select/ControlledDropdownField.js +1 -1
- package/dist/components/controlled/select/ControlledMultiDropdownField.d.ts +2 -4
- package/dist/components/controlled/select/ControlledMultiDropdownField.d.ts.map +1 -1
- package/dist/components/controlled/select/ControlledMultiDropdownField.js +1 -1
- package/dist/components/controlled/select/ControlledRadioField.d.ts +2 -4
- package/dist/components/controlled/select/ControlledRadioField.d.ts.map +1 -1
- package/dist/components/controlled/select/ControlledRadioField.js +1 -1
- package/dist/components/controlled/select/ControlledReferenceField.js +1 -1
- package/dist/components/controlled/select/ControlledYearField.js +1 -1
- package/dist/components/controlled/select/index.js +1 -1
- package/dist/components/controlled/types.js +1 -1
- package/dist/components/fields/display/AvatarFieldDisplay.d.ts +1 -1
- package/dist/components/fields/display/AvatarFieldDisplay.js +1 -1
- package/dist/components/fields/display/BadgeFieldDisplay.d.ts +1 -1
- package/dist/components/fields/display/BadgeFieldDisplay.js +1 -1
- package/dist/components/fields/display/ButtonFieldDisplay.d.ts +2 -2
- package/dist/components/fields/display/ButtonFieldDisplay.js +1 -1
- package/dist/components/fields/display/CheckboxFieldDisplay.d.ts +1 -1
- package/dist/components/fields/display/CheckboxFieldDisplay.js +1 -1
- package/dist/components/fields/display/DateFieldDisplay.d.ts +1 -1
- package/dist/components/fields/display/DateFieldDisplay.d.ts.map +1 -1
- package/dist/components/fields/display/DateFieldDisplay.js +1 -1
- package/dist/components/fields/display/DropdownDisplay.d.ts +1 -1
- package/dist/components/fields/display/DropdownDisplay.js +1 -1
- package/dist/components/fields/display/FileFieldDisplay.d.ts +1 -1
- package/dist/components/fields/display/FileFieldDisplay.js +1 -1
- package/dist/components/fields/display/GeoPointFieldDisplay.d.ts +1 -1
- package/dist/components/fields/display/GeoPointFieldDisplay.js +1 -1
- package/dist/components/fields/display/HiddenFieldDisplay.d.ts +2 -2
- package/dist/components/fields/display/HiddenFieldDisplay.js +1 -1
- package/dist/components/fields/display/ImageFieldDisplay.d.ts +1 -1
- package/dist/components/fields/display/ImageFieldDisplay.js +1 -1
- package/dist/components/fields/display/LinkFieldDisplay.d.ts +1 -1
- package/dist/components/fields/display/LinkFieldDisplay.js +1 -1
- package/dist/components/fields/display/MapFieldDisplay.d.ts +1 -1
- package/dist/components/fields/display/MapFieldDisplay.js +1 -1
- package/dist/components/fields/display/MultiDropdownDisplay.d.ts +1 -1
- package/dist/components/fields/display/MultiDropdownDisplay.js +1 -1
- package/dist/components/fields/display/MultiInputTextFieldDisplay.d.ts +1 -1
- package/dist/components/fields/display/MultiInputTextFieldDisplay.js +1 -1
- package/dist/components/fields/display/NumberFieldDisplay.d.ts +1 -1
- package/dist/components/fields/display/NumberFieldDisplay.d.ts.map +1 -1
- package/dist/components/fields/display/NumberFieldDisplay.js +1 -1
- package/dist/components/fields/display/PasswordFieldDisplay.d.ts +1 -1
- package/dist/components/fields/display/PasswordFieldDisplay.js +1 -1
- package/dist/components/fields/display/PhoneNumberDisplay.d.ts +1 -1
- package/dist/components/fields/display/PhoneNumberDisplay.js +1 -1
- package/dist/components/fields/display/RadioFieldDisplay.d.ts +1 -1
- package/dist/components/fields/display/RadioFieldDisplay.js +1 -1
- package/dist/components/fields/display/RangeFieldDisplay.d.ts +1 -1
- package/dist/components/fields/display/RangeFieldDisplay.js +1 -1
- package/dist/components/fields/display/ReferenceFieldDisplay.d.ts +1 -1
- package/dist/components/fields/display/ReferenceFieldDisplay.js +1 -1
- package/dist/components/fields/display/RichTextDisplay.d.ts +1 -1
- package/dist/components/fields/display/RichTextDisplay.js +2 -2
- package/dist/components/fields/display/TextAreaDisplay.d.ts +1 -1
- package/dist/components/fields/display/TextAreaDisplay.js +1 -1
- package/dist/components/fields/display/TextFieldDisplay.d.ts +1 -1
- package/dist/components/fields/display/TextFieldDisplay.js +1 -1
- package/dist/components/fields/display/TimestampFieldDisplay.d.ts +1 -1
- package/dist/components/fields/display/TimestampFieldDisplay.d.ts.map +1 -1
- package/dist/components/fields/display/TimestampFieldDisplay.js +1 -1
- package/dist/components/fields/display/index.d.ts +1 -1
- package/dist/components/fields/display/index.js +1 -1
- package/dist/components/form/fields/AddressFieldComponent.js +1 -1
- package/dist/components/form/fields/AvatarFieldComponent.d.ts +2 -2
- package/dist/components/form/fields/AvatarFieldComponent.js +1 -1
- package/dist/components/form/fields/BadgeFieldComponent.d.ts +2 -2
- package/dist/components/form/fields/BadgeFieldComponent.js +1 -1
- package/dist/components/form/fields/ButtonFieldComponent.js +1 -1
- package/dist/components/form/fields/CheckboxFieldComponent.d.ts +1 -1
- package/dist/components/form/fields/CheckboxFieldComponent.js +1 -1
- package/dist/components/form/fields/ComboboxComponent.d.ts +1 -1
- package/dist/components/form/fields/ComboboxComponent.js +1 -1
- package/dist/components/form/fields/CurrencyFieldComponent.d.ts +1 -1
- package/dist/components/form/fields/CurrencyFieldComponent.d.ts.map +1 -1
- package/dist/components/form/fields/CurrencyFieldComponent.js +1 -1
- package/dist/components/form/fields/DateFieldComponent.d.ts +3 -3
- package/dist/components/form/fields/DateFieldComponent.d.ts.map +1 -1
- package/dist/components/form/fields/DateFieldComponent.js +1 -1
- package/dist/components/form/fields/DocumentFieldComponent.js +1 -1
- package/dist/components/form/fields/DropdownComponent.d.ts +1 -1
- package/dist/components/form/fields/DropdownComponent.js +1 -1
- package/dist/components/form/fields/DurationFieldComponent.js +1 -1
- package/dist/components/form/fields/FileFieldComponent.js +1 -1
- package/dist/components/form/fields/GdprConsentFieldComponent.d.ts +1 -1
- package/dist/components/form/fields/GdprConsentFieldComponent.js +1 -1
- package/dist/components/form/fields/GeoPointFieldComponent.d.ts +1 -1
- package/dist/components/form/fields/GeoPointFieldComponent.js +1 -1
- package/dist/components/form/fields/HiddenFieldComponent.d.ts +1 -1
- package/dist/components/form/fields/HiddenFieldComponent.js +1 -1
- package/dist/components/form/fields/ImageFieldComponent.d.ts.map +1 -1
- package/dist/components/form/fields/ImageFieldComponent.js +1 -1
- package/dist/components/form/fields/MapFieldComponent.js +1 -1
- package/dist/components/form/fields/MultiDropdownComponent.d.ts +1 -1
- package/dist/components/form/fields/MultiDropdownComponent.js +1 -1
- package/dist/components/form/fields/MultiInputTextFieldComponent.js +1 -1
- package/dist/components/form/fields/NumberFieldComponent.d.ts +1 -1
- package/dist/components/form/fields/NumberFieldComponent.js +1 -1
- package/dist/components/form/fields/PasswordFieldComponent.d.ts +1 -1
- package/dist/components/form/fields/PasswordFieldComponent.js +1 -1
- package/dist/components/form/fields/PhoneNumberComponent.d.ts +1 -1
- package/dist/components/form/fields/PhoneNumberComponent.js +1 -1
- package/dist/components/form/fields/PriceFieldComponent.js +1 -1
- package/dist/components/form/fields/RadioFieldComponent.js +1 -1
- package/dist/components/form/fields/RangeFieldComponent.d.ts +1 -1
- package/dist/components/form/fields/RangeFieldComponent.js +1 -1
- package/dist/components/form/fields/RatingFieldComponent.d.ts +1 -1
- package/dist/components/form/fields/RatingFieldComponent.js +1 -1
- package/dist/components/form/fields/ReferenceFieldComponent.js +1 -1
- package/dist/components/form/fields/RichTextComponent.d.ts +1 -1
- package/dist/components/form/fields/RichTextComponent.js +1 -1
- package/dist/components/form/fields/SwitchFieldComponent.d.ts +1 -1
- package/dist/components/form/fields/SwitchFieldComponent.js +1 -1
- package/dist/components/form/fields/TextAreaComponent.d.ts +1 -1
- package/dist/components/form/fields/TextAreaComponent.js +1 -1
- package/dist/components/form/fields/TextFieldComponent.d.ts +4 -4
- package/dist/components/form/fields/TextFieldComponent.d.ts.map +1 -1
- package/dist/components/form/fields/TextFieldComponent.js +1 -1
- package/dist/components/form/fields/TimestampFieldComponent.d.ts +2 -2
- package/dist/components/form/fields/TimestampFieldComponent.d.ts.map +1 -1
- package/dist/components/form/fields/TimestampFieldComponent.js +1 -1
- package/dist/components/form/fields/index.d.ts +1 -1
- package/dist/components/form/fields/index.js +1 -1
- package/dist/components/form/fields/internal/TiptapEditor.d.ts +1 -1
- package/dist/components/form/fields/internal/TiptapEditor.js +2 -2
- package/dist/components/form/fields/types.d.ts +1 -1
- package/dist/components/form/index.d.ts +1 -1
- package/dist/components/form/internal/ImageViewerDialog.js +1 -1
- package/dist/components/index.d.ts +1 -1
- package/dist/components/index.js +1 -1
- package/dist/contexts/UploadContext.d.ts +1 -0
- package/dist/contexts/UploadContext.d.ts.map +1 -1
- package/dist/contexts/UploadContext.js +1 -1
- package/dist/contexts/index.js +1 -1
- package/dist/fieldTypeRegistry.d.ts.map +1 -1
- package/dist/fieldTypeRegistry.js +1 -1
- package/dist/fieldTypeRegistry.store.d.ts.map +1 -1
- package/dist/fieldTypeRegistry.store.js +1 -1
- package/dist/fieldTypeRegistry.types.d.ts +4 -0
- package/dist/fieldTypeRegistry.types.d.ts.map +1 -1
- package/dist/forms/hooks/index.d.ts +1 -1
- package/dist/forms/hooks/index.js +1 -1
- package/dist/forms/hooks/useController.js +1 -1
- package/dist/forms/hooks/useEntityField.d.ts +1 -1
- package/dist/forms/hooks/useEntityField.js +1 -1
- package/dist/forms/hooks/useEntityForm.d.ts.map +1 -1
- package/dist/forms/hooks/useEntityForm.js +1 -1
- package/dist/forms/index.d.ts +1 -1
- package/dist/forms/index.js +1 -1
- package/dist/forms/types.d.ts +12 -7
- package/dist/forms/types.d.ts.map +1 -1
- package/dist/forms/utils/buildInitialValues.d.ts.map +1 -1
- package/dist/forms/utils/buildInitialValues.js +1 -1
- package/dist/forms/utils/getFieldsForOperation.d.ts +2 -2
- package/dist/forms/utils/getFieldsForOperation.d.ts.map +1 -1
- package/dist/forms/utils/getFieldsForOperation.js +1 -1
- package/dist/forms/utils/index.d.ts +1 -1
- package/dist/forms/utils/index.js +1 -1
- package/dist/forms/utils/isFieldEditable.d.ts +8 -2
- package/dist/forms/utils/isFieldEditable.d.ts.map +1 -1
- package/dist/forms/utils/isFieldEditable.js +1 -1
- package/dist/forms/utils/translateFieldLabel.d.ts +3 -3
- package/dist/forms/utils/translateFieldLabel.js +1 -1
- package/dist/forms/utils/validateEntity.d.ts +1 -1
- package/dist/forms/utils/validateEntity.js +1 -1
- package/dist/hooks/index.d.ts +2 -0
- package/dist/hooks/index.d.ts.map +1 -1
- package/dist/hooks/index.js +1 -1
- package/dist/hooks/useCrudFilters.d.ts +2 -0
- package/dist/hooks/useCrudFilters.d.ts.map +1 -1
- package/dist/hooks/useCrudFilters.js +1 -1
- package/dist/hooks/useCrudPageSize.d.ts +29 -0
- package/dist/hooks/useCrudPageSize.d.ts.map +1 -0
- package/dist/hooks/useCrudPageSize.js +1 -0
- package/dist/hooks/useEntityFavorites.d.ts +2 -0
- package/dist/hooks/useEntityFavorites.d.ts.map +1 -1
- package/dist/hooks/useEntityFavorites.js +1 -1
- package/dist/hooks/useFieldConditions.js +1 -1
- package/dist/hooks/useFileUpload.d.ts.map +1 -1
- package/dist/hooks/useFileUpload.js +1 -1
- package/dist/hooks/useReferenceResolver.d.ts +1 -1
- package/dist/hooks/useReferenceResolver.d.ts.map +1 -1
- package/dist/hooks/useReferenceResolver.js +1 -1
- package/dist/hooks/useRelatedItems.d.ts +2 -0
- package/dist/hooks/useRelatedItems.d.ts.map +1 -1
- package/dist/hooks/useRelatedItems.js +1 -1
- package/dist/hooks/useUnsavedChangesWarning.js +1 -1
- package/dist/index.d.ts +4 -4
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +1 -1
- package/dist/registerBuiltinFieldTypes.d.ts.map +1 -1
- package/dist/registerBuiltinFieldTypes.js +1 -1
- package/dist/stores/FormStore.d.ts +2 -0
- package/dist/stores/FormStore.d.ts.map +1 -1
- package/dist/stores/FormStore.js +1 -1
- package/dist/stores/UploadStore.d.ts +9 -3
- package/dist/stores/UploadStore.d.ts.map +1 -1
- package/dist/stores/UploadStore.js +1 -1
- package/dist/stores/index.d.ts +1 -1
- package/dist/stores/index.js +1 -1
- package/dist/symbol-index.json +1 -0
- package/dist/tsconfig.tsbuildinfo +1 -1
- package/dist/types.d.ts +10 -4
- package/dist/types.d.ts.map +1 -1
- package/dist/types.js +1 -1
- package/dist/useBaseCrudList.js +1 -1
- package/dist/useCrud.d.ts +1 -0
- package/dist/useCrud.d.ts.map +1 -1
- package/dist/useCrud.js +1 -1
- package/dist/useCrudCardList.d.ts +5 -3
- package/dist/useCrudCardList.d.ts.map +1 -1
- package/dist/useCrudCardList.js +1 -1
- package/dist/useCrudList.d.ts +5 -3
- package/dist/useCrudList.d.ts.map +1 -1
- package/dist/useCrudList.js +1 -1
- package/dist/utils/clientListProcessing.d.ts +22 -3
- package/dist/utils/clientListProcessing.d.ts.map +1 -1
- package/dist/utils/clientListProcessing.js +1 -1
- package/dist/utils/collections.d.ts +6 -6
- package/dist/utils/collections.js +1 -1
- package/dist/utils/fileStorage.d.ts +2 -0
- package/dist/utils/fileStorage.d.ts.map +1 -1
- package/dist/utils/fileStorage.js +1 -1
- package/dist/utils/imageProcessing.d.ts +1 -1
- package/dist/utils/imageProcessing.d.ts.map +1 -1
- package/dist/utils/imageProcessing.js +1 -1
- package/dist/utils/imageStorage.d.ts +2 -0
- package/dist/utils/imageStorage.d.ts.map +1 -1
- package/dist/utils/imageStorage.js +1 -1
- package/dist/utils/imageUtils.d.ts +1 -1
- package/dist/utils/imageUtils.js +1 -1
- package/dist/utils/matchesFilter.d.ts.map +1 -1
- package/dist/utils/matchesFilter.js +1 -1
- package/dist/utils/mergeWithOptimistic.js +1 -1
- package/dist/utils/sanitizeHtml.d.ts +0 -5
- package/dist/utils/sanitizeHtml.d.ts.map +1 -1
- package/dist/utils/sanitizeHtml.js +1 -1
- package/dist/utils/scopeUtils.js +1 -1
- package/dist/utils/uploadValidation.d.ts +1 -1
- package/dist/utils/uploadValidation.js +1 -1
- package/dist/workflows/WorkflowPersistence.d.ts +1 -1
- package/dist/workflows/WorkflowPersistence.js +1 -1
- package/dist/workflows/defineWorkflow.d.ts +1 -1
- package/dist/workflows/index.d.ts +1 -1
- package/dist/workflows/index.js +1 -1
- package/dist/workflows/useEntityWorkflow.js +1 -1
- package/guidelines/COMPONENTS.md +234 -0
- package/guidelines/CRUD.md +340 -0
- package/guidelines/GOTCHAS.md +46 -0
- package/package.json +7 -4
|
@@ -1 +1 @@
|
|
|
1
|
-
"use client";import{jsx as
|
|
1
|
+
"use client";import{jsx as m,jsxs as P}from"react/jsx-runtime";import{FilterX as N}from"lucide-react";import{useMemo as O}from"react";import{Button as ee,Combobox as te,Grid as ne,Rating as ie,RangeInput as re,Slider as se,Stack as le}from"@donotdev/components";import{useTranslation as B,handleError as L}from"@donotdev/core";import{DateFilter as ae}from"./DateFilter";import{getFilterType as $,isFilterable as oe}from"../fieldTypeRegistry";import{translateFieldLabel as ce,translateLabel as I}from"../forms/utils";import{useCrudFilters as de}from"../hooks/useCrudFilters";import{useCrudCardList as me}from"../useCrudCardList";import{matchesFilter as ue}from"../utils/matchesFilter";import{matchesFilter as ke}from"../utils/matchesFilter";function Oe({entity:d,data:R,fieldsToFilter:S,variant:z="inline",cols:G}){const X=z==="sidebar",{t:g,i18n:q}=B("crud"),{t:j}=B([d.namespace,"crud"]),H=q?.language||"en",{data:J}=me(d,{enabled:!R}),f=R??(J?.items||[]),{filters:y,setFilters:k}=de({collection:d.collection}),h=O(()=>(S&&S.length>0?S:d.listFields||Object.keys(d.fields)).filter(t=>{const n=d.fields[t]?.type||"text";return oe(n)}),[S,d.listFields,d.fields]),v=O(()=>{const i={};return h.forEach(t=>{const o=Object.fromEntries(Object.entries(y).filter(([n])=>n!==t));if(Object.keys(o).length===0){i[t]=f;return}i[t]=f.filter(n=>Object.entries(o).every(([c,x])=>{const F=n[c],s=d.fields[c]?.type||"text";return ue(F,x,s)}))}),i},[f,y,d.fields,h]),K=O(()=>{const i={};return h.forEach(t=>{const o=d.fields[t];if(!o)return;const n=o.type||"text",c=$(n);if(!c){L(new Error(`Field type "${n}" not registered in field type registry`),{userMessage:`Field type "${n}" is missing from registry`,context:{fieldType:n,fieldName:t,operation:"minmax_computation",fix:"Add to registerBuiltinFieldTypes.ts or registerFieldType()"},severity:"warning"});return}const x=c==="range"&&(n==="date"||n==="datetime-local"||n==="timestamp"||n==="time"||n==="week"||n==="month"||n==="year"),F=c==="range"&&!x,C=n==="price";if(F||C){const s=f.map(r=>r[t]).filter(r=>r!=null&&r!=="").map(r=>C&&typeof r=="object"&&r!==null?Number(r.amount):typeof r=="number"?r:Number(r)).filter(r=>!isNaN(r));s.length>0&&(i[t]={min:Math.min(...s),max:Math.max(...s)})}else if(x){const s=f.map(r=>r[t]).filter(r=>r!=null&&r!=="").map(r=>r instanceof Date?r:new Date(r)).filter(r=>!isNaN(r.getTime()));if(s.length>0){const r=new Date(Math.min(...s.map(T=>T.getTime()))),p=new Date(Math.max(...s.map(T=>T.getTime()))),_=r.toISOString().split("T")[0],E=p.toISOString().split("T")[0];i[t]={min:_||"",max:E||""}}}}),i},[f,d.fields,h]),b=(i,t)=>{const o={...y};if(!t||t==="")delete o[i];else if(Array.isArray(t))o[i]=t;else if(typeof t=="object"&&"min"in t){const n=t.min&&t.min!=="",c=t.max&&t.max!=="";!n&&!c?delete o[i]:o[i]=t}else o[i]=t;k(o)},Q=()=>{k({})},V=O(()=>h.length===0?null:h.map(i=>{const t=d.fields[i];if(!t)return null;const o=ce(i,t,j),n=t.type||"text",c=$(n);if(!c)return L(new Error(`Field type "${n}" not registered in field type registry`),{userMessage:`Field type "${n}" is missing from registry`,context:{fieldType:n,fieldName:i,operation:"filter_ui_render",fix:"Add to registerBuiltinFieldTypes.ts or registerFieldType()"},severity:"warning"}),null;const x=c==="range"&&(n==="date"||n==="datetime-local"||n==="timestamp"||n==="time"||n==="week"||n==="month"||n==="year"),F=c==="range"&&!x,C=c==="select",s=y[i],p=typeof s=="object"&&s!==null&&"min"in s?s:{min:"",max:""};if(c==="rating"){const l=t.validation?.max??5,a=typeof s=="string"&&s!==""?Number(s):0;return m("div",{style:{gridColumn:"span 2",gridRow:"span 1"},children:m(ie,{value:a,max:l,"aria-label":o,onChange:e=>{b(i,e===a?void 0:String(e))}})},i)}if(F){const l=K[i],a=l?.min??0,e=l?.max??100,u=p.min?Number(p.min):a,A=p.max?Number(p.max):e;return P(le,{gap:"tight",style:{gridColumn:"span 2"},children:[m(re,{type:"number",label:o,minPlaceholder:g("filter.min",{defaultValue:"Min"}),maxPlaceholder:g("filter.max",{defaultValue:"Max"}),minValue:p.min||"",maxValue:p.max||"",actualMin:a,actualMax:e,onChange:(M,Z)=>{b(i,{min:M,max:Z})},onClear:()=>b(i,void 0)}),m(se,{value:[u,A],min:a,max:e,step:1,onValueChange:M=>{b(i,{min:String(M[0]),max:String(M[1])})}})]},i)}if(x){const l=n==="week"||n==="month"||n==="year"?n:"date",a=(()=>{if(s){if(typeof s=="object"&&"min"in s){const e=s;return{min:e.min&&e.min.split("T")[0]||"",max:e.max&&e.max.split("T")[0]||""}}if(typeof s=="string"){const e=s.split("T")[0]||"";return{min:e,max:e}}}})();return m("div",{style:{gridColumn:"span 2",gridRow:"span 1"},children:m(ae,{label:o,fieldType:l,value:a,locale:H,onChange:e=>{if(!e){b(i,void 0);return}typeof e=="object"&&"min"in e&&b(i,{min:e.min||"",max:e.max||""})},tCrud:g})},i)}const E=C&&t.validation&&"options"in t.validation&&t.validation?Array.isArray(t.validation.options)?t.validation.options:typeof t.validation.options=="function"?t.validation.options():[]:[],T=v[i]||f,D=new Set,Y=c==="address";T.forEach(l=>{const a=l[i];if(a!=null)if(Y&&typeof a=="object"&&"formatted_address"in a){const e=a;e.formatted_address&&D.add(String(e.formatted_address))}else D.add(String(a))});const w=[{value:"all",label:g("filter.selectPlaceholder",{defaultValue:"All"})}];if(E.length>0){const l=[],a=[];E.forEach(e=>{const u=typeof e=="string"?e:e.value,A=typeof e=="string"?e:e.label;D.has(u)?l.push({value:u,label:A}):a.push({value:u,label:A})}),l.sort((e,u)=>e.label.localeCompare(u.label)),a.sort((e,u)=>e.label.localeCompare(u.label)),l.forEach(e=>{w.push({value:e.value,label:I(e.label,j),disabled:!1})}),a.forEach(e=>{w.push({value:e.value,label:I(e.label,j),disabled:!0})})}else Array.from(D).sort().slice(0,100).forEach(l=>{w.push({value:l,label:l})});return m("div",{style:{gridColumn:"span 1",gridRow:"span 1"},children:m(te,{label:o,value:typeof s=="string"?s:void 0,onValueChange:l=>{b(i,l==="all"||!l?"":String(l))},options:w,placeholder:g("filter.placeholder",{defaultValue:"Filter..."}),clearable:!0})},i)}),[h,d.fields,f,y,j,g,v]);if(!V||V.length===0)return null;const U=V.filter(Boolean),W=Object.keys(y).length>0;return P(ne,{cols:G??(X?2:[2,4,4,6]),children:[U,m(ee,{variant:"outline",icon:m(N,{size:18}),onClick:Q,disabled:!W,style:{gridColumn:"1 / -1",gridRow:"span 1"},children:g("filter.clear",{defaultValue:"Clear Filters"})})]})}export{Oe as EntityFilters,ke as matchesFilter};
|
|
@@ -20,6 +20,7 @@ interface ControlledProps<T extends FieldType, TFieldValues extends FieldValues
|
|
|
20
20
|
onChange?: never;
|
|
21
21
|
error?: never;
|
|
22
22
|
}
|
|
23
|
+
/** Props for {@link FormFieldRenderer}, dispatches to the correct field component via FieldRegistry. */
|
|
23
24
|
export type FormFieldRendererProps<T extends FieldType, TFieldValues extends FieldValues = FieldValues> = UncontrolledProps<T> | ControlledProps<T, TFieldValues>;
|
|
24
25
|
/**
|
|
25
26
|
* FormFieldRenderer - renders fields via registry lookup
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"FormFieldRenderer.d.ts","sourceRoot":"","sources":["../../src/components/FormFieldRenderer.tsx"],"names":[],"mappings":"AAaA,OAAO,KAAK,EAAE,WAAW,EAAE,SAAS,EAAE,iBAAiB,EAAE,MAAM,gBAAgB,CAAC;AAMhF,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,OAAO,CAAC;AAC1C,OAAO,KAAK,EAAE,OAAO,EAAE,WAAW,EAAE,MAAM,iBAAiB,CAAC;AAM5D,UAAU,0BAA0B,CAAC,CAAC,SAAS,SAAS,GAAG,SAAS;IAClE,IAAI,EAAE,MAAM,CAAC;IACb,MAAM,EAAE,WAAW,CAAC,CAAC,CAAC,CAAC;IACvB,CAAC,EAAE,CAAC,GAAG,EAAE,MAAM,EAAE,OAAO,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,KAAK,MAAM,CAAC;CAC3D;AAED,UAAU,iBAAiB,CACzB,CAAC,SAAS,SAAS,CACnB,SAAQ,0BAA0B,CAAC,CAAC,CAAC;IACrC,KAAK,EAAE,iBAAiB,CAAC,CAAC,CAAC,CAAC;IAC5B,QAAQ,EAAE,CAAC,KAAK,EAAE,iBAAiB,CAAC,CAAC,CAAC,KAAK,IAAI,CAAC;IAChD,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,OAAO,CAAC,EAAE,KAAK,CAAC;IAChB,MAAM,CAAC,EAAE,KAAK,CAAC;CAChB;AAED,UAAU,eAAe,CACvB,CAAC,SAAS,SAAS,EACnB,YAAY,SAAS,WAAW,GAAG,WAAW,CAC9C,SAAQ,0BAA0B,CAAC,CAAC,CAAC;IACrC,OAAO,EAAE,OAAO,CAAC,YAAY,CAAC,CAAC;IAC/B,MAAM,EAAE,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,CAAC;IAC5B,KAAK,CAAC,EAAE,KAAK,CAAC;IACd,QAAQ,CAAC,EAAE,KAAK,CAAC;IACjB,KAAK,CAAC,EAAE,KAAK,CAAC;CACf;AAED,MAAM,MAAM,sBAAsB,CAChC,CAAC,SAAS,SAAS,EACnB,YAAY,SAAS,WAAW,GAAG,WAAW,IAC5C,iBAAiB,CAAC,CAAC,CAAC,GAAG,eAAe,CAAC,CAAC,EAAE,YAAY,CAAC,CAAC;AAE5D;;GAEG;AACH,wBAAgB,iBAAiB,CAC/B,CAAC,SAAS,SAAS,EACnB,YAAY,SAAS,WAAW,GAAG,WAAW,EAC9C,EACA,IAAI,EACJ,MAAM,EACN,CAAC,EACD,GAAG,KAAK,EACT,EAAE,sBAAsB,CAAC,CAAC,EAAE,YAAY,CAAC,GAAG,YAAY,
|
|
1
|
+
{"version":3,"file":"FormFieldRenderer.d.ts","sourceRoot":"","sources":["../../src/components/FormFieldRenderer.tsx"],"names":[],"mappings":"AAaA,OAAO,KAAK,EAAE,WAAW,EAAE,SAAS,EAAE,iBAAiB,EAAE,MAAM,gBAAgB,CAAC;AAMhF,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,OAAO,CAAC;AAC1C,OAAO,KAAK,EAAE,OAAO,EAAE,WAAW,EAAE,MAAM,iBAAiB,CAAC;AAM5D,UAAU,0BAA0B,CAAC,CAAC,SAAS,SAAS,GAAG,SAAS;IAClE,IAAI,EAAE,MAAM,CAAC;IACb,MAAM,EAAE,WAAW,CAAC,CAAC,CAAC,CAAC;IACvB,CAAC,EAAE,CAAC,GAAG,EAAE,MAAM,EAAE,OAAO,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,KAAK,MAAM,CAAC;CAC3D;AAED,UAAU,iBAAiB,CACzB,CAAC,SAAS,SAAS,CACnB,SAAQ,0BAA0B,CAAC,CAAC,CAAC;IACrC,KAAK,EAAE,iBAAiB,CAAC,CAAC,CAAC,CAAC;IAC5B,QAAQ,EAAE,CAAC,KAAK,EAAE,iBAAiB,CAAC,CAAC,CAAC,KAAK,IAAI,CAAC;IAChD,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,OAAO,CAAC,EAAE,KAAK,CAAC;IAChB,MAAM,CAAC,EAAE,KAAK,CAAC;CAChB;AAED,UAAU,eAAe,CACvB,CAAC,SAAS,SAAS,EACnB,YAAY,SAAS,WAAW,GAAG,WAAW,CAC9C,SAAQ,0BAA0B,CAAC,CAAC,CAAC;IACrC,OAAO,EAAE,OAAO,CAAC,YAAY,CAAC,CAAC;IAC/B,MAAM,EAAE,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,CAAC;IAC5B,KAAK,CAAC,EAAE,KAAK,CAAC;IACd,QAAQ,CAAC,EAAE,KAAK,CAAC;IACjB,KAAK,CAAC,EAAE,KAAK,CAAC;CACf;AAED,wGAAwG;AACxG,MAAM,MAAM,sBAAsB,CAChC,CAAC,SAAS,SAAS,EACnB,YAAY,SAAS,WAAW,GAAG,WAAW,IAC5C,iBAAiB,CAAC,CAAC,CAAC,GAAG,eAAe,CAAC,CAAC,EAAE,YAAY,CAAC,CAAC;AAE5D;;GAEG;AACH,wBAAgB,iBAAiB,CAC/B,CAAC,SAAS,SAAS,EACnB,YAAY,SAAS,WAAW,GAAG,WAAW,EAC9C,EACA,IAAI,EACJ,MAAM,EACN,CAAC,EACD,GAAG,KAAK,EACT,EAAE,sBAAsB,CAAC,CAAC,EAAE,YAAY,CAAC,GAAG,YAAY,CAwGxD;AAED,eAAe,iBAAiB,CAAC"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
"use client";import{jsx as
|
|
1
|
+
"use client";import{jsx as l}from"react/jsx-runtime";import{handleError as h}from"@donotdev/core";import{getFieldRegistry as T}from"../FieldRegistry";import{ControlledTextField as S}from"./controlled";import{TextFieldComponent as g}from"./form/fields";const x=T();function w({name:r,config:e,t,...o}){const s=n=>d=>{try{n(d)}catch(C){h(C,{userMessage:`Error updating field ${e.label||r}`,context:{fieldName:r,fieldType:e.type},severity:"warning"})}},i="control"in o&&o.control,p=e.type==="submit"||e.type==="reset";if(i&&!p){const{control:n,errors:d}=o,F=e.options?.fieldSpecific?.placeholder,f={control:n,errors:d,fieldConfig:{...e,label:e.label||r},t,placeholder:F,onChange:s(()=>{})},m=x.getControlledComponent(e.type);return m?l(m,{...f}):(h(new Error(`Unregistered field type: ${e.type}`),{userMessage:t("errors.unsupportedFieldType",{type:e.type}),context:{fieldName:r,fieldType:e.type},severity:"warning"}),l(S,{...f,fieldConfig:{...e,type:"text"}}))}const b=i&&p?{name:r,config:e,t,value:void 0,onChange:()=>{},error:void 0}:o,{value:a,onChange:v,error:u}=b,c=s(v),y=x.getUncontrolledComponent(e.type);return y?l(y,{name:r,label:e.label||r,value:a,onChange:c,error:u,t,config:e,...e.options}):l(g,{label:e.label||r,value:a,onChange:c,error:u||void 0,...e.options})}var P=w;export{w as FormFieldRenderer,P as default};
|
|
@@ -1,5 +1,6 @@
|
|
|
1
1
|
import type { FormEventHandler, ReactNode } from 'react';
|
|
2
2
|
import type { UseFormReturn, FieldValues } from 'react-hook-form';
|
|
3
|
+
/** Props for {@link FormLayout}, wraps a form with submit button, loading state, and layout grid. */
|
|
3
4
|
export interface FormDnDevLayoutProps<T extends FieldValues> {
|
|
4
5
|
/** The title of the form */
|
|
5
6
|
title: string;
|
|
@@ -35,7 +36,7 @@ export interface FormDnDevLayoutProps<T extends FieldValues> {
|
|
|
35
36
|
* - ARIA compliance
|
|
36
37
|
* - Multiple variants
|
|
37
38
|
*
|
|
38
|
-
* @version 0.0
|
|
39
|
+
* @version 0.1.0
|
|
39
40
|
* @since 0.0.1
|
|
40
41
|
* @author AMBROISE PARK Consulting
|
|
41
42
|
* - Action buttons
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"FormLayout.d.ts","sourceRoot":"","sources":["../../src/components/FormLayout.tsx"],"names":[],"mappings":"AAyBA,OAAO,KAAK,EAAE,gBAAgB,EAAE,SAAS,EAAa,MAAM,OAAO,CAAC;AACpE,OAAO,KAAK,EAAE,aAAa,EAAE,WAAW,EAAE,MAAM,iBAAiB,CAAC;AAElE,MAAM,WAAW,oBAAoB,CAAC,CAAC,SAAS,WAAW;IACzD,4BAA4B;IAC5B,KAAK,EAAE,MAAM,CAAC;IACd,sCAAsC;IACtC,QAAQ,EAAE,gBAAgB,CAAC,eAAe,CAAC,CAAC;IAC5C,iCAAiC;IACjC,QAAQ,EAAE,SAAS,CAAC;IACpB,sCAAsC;IACtC,WAAW,EAAE,aAAa,CAAC,CAAC,CAAC,CAAC;IAC9B,oBAAoB;IACpB,OAAO,CAAC,EAAE,OAAO,CAAC;IAClB,yBAAyB;IACzB,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,yBAAyB;IACzB,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,yBAAyB;IACzB,UAAU,CAAC,EAAE,OAAO,CAAC;IACrB,qBAAqB;IACrB,QAAQ,CAAC,EAAE,MAAM,IAAI,CAAC;IACtB,0BAA0B;IAC1B,OAAO,CAAC,EAAE,SAAS,GAAG,MAAM,GAAG,SAAS,CAAC;IACzC,yBAAyB;IACzB,OAAO,CAAC,EAAE,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC;IACxB,uBAAuB;IACvB,WAAW,CAAC,EAAE,MAAM,CAAC;CACtB;AAED;;;;;;;;;;;;;;GAcG;AACH,QAAA,MAAM,UAAU,GAAI,CAAC,SAAS,WAAW,EAAE,mIAaxC,oBAAoB,CAAC,CAAC,CAAC,4CAuGzB,CAAC;AAEF,eAAe,UAAU,CAAC"}
|
|
1
|
+
{"version":3,"file":"FormLayout.d.ts","sourceRoot":"","sources":["../../src/components/FormLayout.tsx"],"names":[],"mappings":"AAyBA,OAAO,KAAK,EAAE,gBAAgB,EAAE,SAAS,EAAa,MAAM,OAAO,CAAC;AACpE,OAAO,KAAK,EAAE,aAAa,EAAE,WAAW,EAAE,MAAM,iBAAiB,CAAC;AAElE,qGAAqG;AACrG,MAAM,WAAW,oBAAoB,CAAC,CAAC,SAAS,WAAW;IACzD,4BAA4B;IAC5B,KAAK,EAAE,MAAM,CAAC;IACd,sCAAsC;IACtC,QAAQ,EAAE,gBAAgB,CAAC,eAAe,CAAC,CAAC;IAC5C,iCAAiC;IACjC,QAAQ,EAAE,SAAS,CAAC;IACpB,sCAAsC;IACtC,WAAW,EAAE,aAAa,CAAC,CAAC,CAAC,CAAC;IAC9B,oBAAoB;IACpB,OAAO,CAAC,EAAE,OAAO,CAAC;IAClB,yBAAyB;IACzB,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,yBAAyB;IACzB,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,yBAAyB;IACzB,UAAU,CAAC,EAAE,OAAO,CAAC;IACrB,qBAAqB;IACrB,QAAQ,CAAC,EAAE,MAAM,IAAI,CAAC;IACtB,0BAA0B;IAC1B,OAAO,CAAC,EAAE,SAAS,GAAG,MAAM,GAAG,SAAS,CAAC;IACzC,yBAAyB;IACzB,OAAO,CAAC,EAAE,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC;IACxB,uBAAuB;IACvB,WAAW,CAAC,EAAE,MAAM,CAAC;CACtB;AAED;;;;;;;;;;;;;;GAcG;AACH,QAAA,MAAM,UAAU,GAAI,CAAC,SAAS,WAAW,EAAE,mIAaxC,oBAAoB,CAAC,CAAC,CAAC,4CAuGzB,CAAC;AAEF,eAAe,UAAU,CAAC"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
"use client";import{jsx as
|
|
1
|
+
"use client";import{jsx as e,jsxs as r,Fragment as N}from"react/jsx-runtime";import{useState as j}from"react";import{FormProvider as w}from"react-hook-form";import{Button as s,BUTTON_VARIANT as C,Spinner as F,cn as _,Stack as i,Grid as I}from"@donotdev/components";import{useTranslation as L}from"@donotdev/core";const k=({title:m,onSubmit:c,children:u,formMethods:f,loading:n=!1,submitText:g,cancelText:v,showCancel:p=!1,onCancel:b,variant:l="default",columns:h=1,description:o})=>{const{t:d}=L("crud"),[t,a]=j(!1),y=g||d("form.submit","Submit"),S=v||d("form.cancel","Cancel"),x=async T=>{a(!0);try{await c(T)}finally{a(!1)}},z={1:"dndev-grid-cols-1",2:"dndev-grid-cols-1 dndev-md:grid-cols-2",3:"dndev-grid-cols-1 dndev-md:grid-cols-2 dndev-md:grid-cols-3",4:"dndev-grid-cols-1 dndev-md:grid-cols-2 dndev-md:grid-cols-4"};return e(w,{...f,children:e("form",{onSubmit:x,className:_("dndev-mx-auto",{default:"dndev-surface",card:"dndev-surface",minimal:""}[l]),style:l!=="minimal"?{padding:"var(--gap-lg)"}:void 0,role:"form","aria-labelledby":"form-title",noValidate:!0,children:r(i,{gap:"large",children:[r(i,{gap:"tight",children:[e("h2",{id:"form-title",style:{fontSize:"var(--font-size-2xl)",fontWeight:600,color:"var(--foreground)"},children:m}),o&&e("p",{style:{color:"var(--muted-foreground)"},children:o})]}),e(I,{cols:h,className:"dndev-w-full dndev-min-w-0",children:u}),r(i,{direction:"row",align:"center",justify:"end",style:{paddingTop:"var(--gap-md)",borderTop:"1px solid var(--border)"},children:[p&&e(s,{type:"button",variant:C.OUTLINE,onClick:b,disabled:n||t,children:S}),e(s,{type:"submit",disabled:n||t,style:{minWidth:"120px"},children:n||t?r(N,{children:[e(F,{className:"me-component-gap"}),t?d("form.submitting","Submitting..."):d("form.loading","Loading...")]}):y})]})]})})})};var E=k;export{E as default};
|
|
@@ -1 +1 @@
|
|
|
1
|
-
"use client";import{jsx as
|
|
1
|
+
"use client";import{jsx as i}from"react/jsx-runtime";import{Controller as m}from"react-hook-form";import{AddressFieldComponent as f}from"../../form/fields";import{convertValidationRules as u}from"../types";function j(l){const{control:s,errors:C,fieldConfig:o,t:a}=l,{name:d,label:c,validation:e}=o,r=(o.options||{}).fieldSpecific;return i(m,{name:d,control:s,rules:e?u(e):void 0,render:({field:n,fieldState:t})=>i(f,{label:a(c),value:n.value??void 0,onChange:p=>n.onChange(p),error:!!t.error,helperText:t.error?.message,required:e?.required,enableGoogleMaps:r?.enableGoogleMaps,extractDistrictCode:r?.extractDistrictCode})})}export{j as ControlledAddressField};
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"ControlledDateField.d.ts","sourceRoot":"","sources":["../../../../src/components/controlled/complex/ControlledDateField.tsx"],"names":[],"mappings":"AAMA,OAAO,EAA0B,KAAK,oBAAoB,EAAE,MAAM,UAAU,CAAC;AAE7E,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,OAAO,CAAC;AAG1C;;;;;;GAMG;AAEH,wBAAgB,mBAAmB,CAAC,KAAK,EAAE,oBAAoB,GAAG,YAAY,
|
|
1
|
+
{"version":3,"file":"ControlledDateField.d.ts","sourceRoot":"","sources":["../../../../src/components/controlled/complex/ControlledDateField.tsx"],"names":[],"mappings":"AAMA,OAAO,EAA0B,KAAK,oBAAoB,EAAE,MAAM,UAAU,CAAC;AAE7E,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,OAAO,CAAC;AAG1C;;;;;;GAMG;AAEH,wBAAgB,mBAAmB,CAAC,KAAK,EAAE,oBAAoB,GAAG,YAAY,CA0C7E"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
"use client";import{jsx as
|
|
1
|
+
"use client";import{jsx as t}from"react/jsx-runtime";import{Controller as p}from"react-hook-form";import{DateFieldComponent as f}from"../../form/fields";import{convertValidationRules as C}from"../types";function k(r){const{control:n,errors:g,fieldConfig:a,t:l}=r,{name:m,label:i,validation:e,type:d}=a,s={date:"date","datetime-local":"datetime-local",month:"month",time:"time",week:"week"}[d]||"date";return t(p,{name:m,control:n,rules:e?C(e):void 0,render:({field:o,fieldState:c})=>t(f,{...o,label:l(i),value:o.value??null,onChange:u=>o.onChange(u),error:c.error?.message,required:e?.required,mode:s})})}export{k as ControlledDateField};
|
|
@@ -1 +1 @@
|
|
|
1
|
-
"use client";import{jsxs as t,jsx as
|
|
1
|
+
"use client";import{jsxs as t,jsx as n}from"react/jsx-runtime";import{Plus as j,Trash2 as R}from"lucide-react";import{useFieldArray as $,Controller as q}from"react-hook-form";import{Button as y}from"@donotdev/components";import{getFieldRegistry as A}from"../../../FieldRegistry";import{convertValidationRules as B}from"../types";function D(s){switch(s){case"number":return 0;case"boolean":return!1;default:return""}}function N(s){const{control:d,errors:h,fieldConfig:c,t:o}=s,{name:m,label:p,validation:b}=c,f=c.options?.fieldSpecific??{},r=f.fields??[],l=f.direction??"row",{fields:x,append:C,remove:S}=$({control:d,name:m}),w=A(),z=()=>{if(r.length===0)return;const a={};for(const i of r)a[i.name]=D(i.type);C(a)};return r.length===0?t("div",{style:{fontSize:"var(--font-size-sm)",color:"var(--muted-foreground)"},children:[o(p),": no sub-fields configured"]}):t("div",{style:{display:"flex",flexDirection:"column",gap:"var(--gap-sm)"},children:[t("div",{style:{display:"flex",alignItems:"center",gap:"var(--gap-sm)"},children:[t("span",{style:{fontSize:"var(--font-size-sm)",fontWeight:"var(--font-weight-medium)"},children:[o(p),b?.required&&n("span",{style:{color:"var(--destructive)",marginInlineStart:"var(--gap-tight)"},children:"*"})]}),n(y,{type:"button",variant:"ghost",display:"compact",icon:j,onClick:z,"aria-label":o(p)+" \u2014 add"})]}),x.map((a,i)=>t("div",{style:{display:"flex",flexDirection:l,gap:"var(--gap-sm)",alignItems:l==="row"?"flex-start":void 0},children:[r.map(e=>{const g=`${m}.${i}.${e.name}`,F={name:g,type:e.type,label:e.label,visibility:c.visibility,validation:{...e.validation??{},...e.required?{required:!0}:{}},options:e.options??{}},v=w.getControlledComponent(e.type);return v?n("div",{style:{flex:l==="row"?1:void 0},children:n(v,{control:d,errors:h,fieldConfig:F,t:o})},e.name):n("div",{style:{flex:l==="row"?1:void 0},children:n(q,{name:g,control:d,rules:e.validation?B(e.validation):void 0,render:({field:u})=>t("label",{style:{display:"flex",flexDirection:"column",gap:"var(--gap-tight)"},children:[n("span",{style:{fontSize:"var(--font-size-xs)"},children:o(e.label)}),n("input",{className:"dndev-input",value:String(u.value??""),onChange:u.onChange,onBlur:u.onBlur})]})})},e.name)}),n(y,{type:"button",variant:"ghost",display:"compact",icon:R,onClick:()=>S(i),"aria-label":`Remove row ${i+1}`,style:{alignSelf:l==="row"?"center":"flex-end"}})]},a.id))]})}export{N as ControlledFieldArrayField};
|
|
@@ -1 +1 @@
|
|
|
1
|
-
"use client";import{jsx as
|
|
1
|
+
"use client";import{jsx as t}from"react/jsx-runtime";import{Controller as d}from"react-hook-form";import{GeoPointFieldComponent as p}from"../../form/fields";import{convertValidationRules as C}from"../types";function j(a){const{control:l,errors:h,fieldConfig:i,t:s}=a,{name:g,label:m,validation:r}=i;return t(d,{name:g,control:l,rules:r?C(r):void 0,render:({field:e,fieldState:o})=>{const c=n=>{if("target"in n)try{const u=JSON.parse(n.target.value);e.onChange(u)}catch{e.onChange({lat:0,lng:0})}else e.onChange(n||{lat:0,lng:0})};return t(p,{label:s(m),value:e.value||{lat:0,lng:0},onChange:c,error:!!o.error,helperText:o.error?.message,required:r?.required})}})}export{j as ControlledGeoPointField};
|
|
@@ -1 +1 @@
|
|
|
1
|
-
"use client";import{jsx as
|
|
1
|
+
"use client";import{jsx as t}from"react/jsx-runtime";import{Controller as d}from"react-hook-form";import{MapFieldComponent as g}from"../../form/fields";import{convertValidationRules as C}from"../types";function j(a){const{control:l,errors:h,fieldConfig:s,t:i}=a,{name:m,label:c,validation:e}=s;return t(d,{name:m,control:l,rules:e?C(e):void 0,render:({field:r,fieldState:n})=>{const p=o=>{if("target"in o)try{const u=JSON.parse(o.target.value);r.onChange(u)}catch{r.onChange({})}else r.onChange(o||{})};return t(g,{label:i(c),value:r.value||{},onChange:p,error:!!n.error,helperText:n.error?.message,required:e?.required})}})}export{j as ControlledMapField};
|
|
@@ -1 +1 @@
|
|
|
1
|
-
"use client";import{jsx as
|
|
1
|
+
"use client";import{jsx as t}from"react/jsx-runtime";import{Controller as d}from"react-hook-form";import{MultiInputTextFieldComponent as C}from"../../form/fields";import{convertValidationRules as g}from"../types";function x(a){const{control:l,errors:h,fieldConfig:s,t:i}=a,{name:u,label:c,validation:e,options:m={}}=s;return t(d,{name:u,control:l,rules:e?g(e):void 0,render:({field:r})=>{const p=n=>{if(Array.isArray(n))r.onChange(n);else try{const o=JSON.parse(n.target.value);r.onChange(Array.isArray(o)?o:[])}catch{r.onChange([])}};return t(C,{label:i(c),value:Array.isArray(r.value)?r.value:[],onChange:p,required:e?.required,className:m.className})}})}export{x as ControlledMultiInputField};
|
|
@@ -1 +1 @@
|
|
|
1
|
-
"use client";import{jsx as n}from"react/jsx-runtime";import{Controller as u}from"react-hook-form";import{RichTextComponent as
|
|
1
|
+
"use client";import{jsx as n}from"react/jsx-runtime";import{Controller as u}from"react-hook-form";import{RichTextComponent as h}from"../../form/fields";import{convertValidationRules as f}from"../types";function T(a){const{control:t,errors:x,fieldConfig:s,t:i,placeholder:m}=a,{name:c,label:d,validation:e,options:r={}}=s;return n(u,{name:c,control:t,rules:e?f(e):void 0,render:({field:o,fieldState:l})=>n(h,{label:i(d),value:o.value??"",onChange:p=>o.onChange(p),error:l.error?.message,helperText:l.error?.message,required:e?.required,placeholder:m||r.placeholder,className:r.className})})}export{T as ControlledRichTextField};
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"ControlledTimestampField.d.ts","sourceRoot":"","sources":["../../../../src/components/controlled/complex/ControlledTimestampField.tsx"],"names":[],"mappings":"AAMA,OAAO,EAA0B,KAAK,oBAAoB,EAAE,MAAM,UAAU,CAAC;AAE7E,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,OAAO,CAAC;AAG1C;;;;;;GAMG;AAEH,wBAAgB,wBAAwB,CACtC,KAAK,EAAE,oBAAoB,GAC1B,YAAY,
|
|
1
|
+
{"version":3,"file":"ControlledTimestampField.d.ts","sourceRoot":"","sources":["../../../../src/components/controlled/complex/ControlledTimestampField.tsx"],"names":[],"mappings":"AAMA,OAAO,EAA0B,KAAK,oBAAoB,EAAE,MAAM,UAAU,CAAC;AAE7E,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,OAAO,CAAC;AAG1C;;;;;;GAMG;AAEH,wBAAgB,wBAAwB,CACtC,KAAK,EAAE,oBAAoB,GAC1B,YAAY,CAsBd"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
"use client";import{jsx as
|
|
1
|
+
"use client";import{jsx as o}from"react/jsx-runtime";import{Controller as d}from"react-hook-form";import{TimestampFieldComponent as p}from"../../form/fields";import{convertValidationRules as c}from"../types";function b(n){const{control:t,errors:f,fieldConfig:l,t:i}=n,{name:a,label:m,validation:e}=l;return o(d,{name:a,control:t,rules:e?c(e):void 0,render:({field:r,fieldState:s})=>o(p,{...r,label:i(m),value:r.value??null,onChange:u=>r.onChange(u),error:s.error?.message,required:e?.required})})}export{b as ControlledTimestampField};
|
|
@@ -1 +1 @@
|
|
|
1
|
-
import{ControlledAddressField as
|
|
1
|
+
import{ControlledAddressField as r}from"./ControlledAddressField";import{ControlledFieldArrayField as t}from"./ControlledFieldArrayField";import{ControlledDateField as i}from"./ControlledDateField";import{ControlledGeoPointField as m}from"./ControlledGeoPointField";import{ControlledMapField as x}from"./ControlledMapField";import{ControlledMultiInputField as f}from"./ControlledMultiInputField";import{ControlledRichTextField as a}from"./ControlledRichTextField";import{ControlledTimestampField as u}from"./ControlledTimestampField";export{r as ControlledAddressField,i as ControlledDateField,t as ControlledFieldArrayField,m as ControlledGeoPointField,x as ControlledMapField,f as ControlledMultiInputField,a as ControlledRichTextField,u as ControlledTimestampField};
|
|
@@ -1 +1 @@
|
|
|
1
|
-
"use client";import{jsx as a}from"react/jsx-runtime";import{Controller as p}from"react-hook-form";import{DocumentFieldComponent as
|
|
1
|
+
"use client";import{jsx as a}from"react/jsx-runtime";import{Controller as p}from"react-hook-form";import{DocumentFieldComponent as d}from"../../form/fields";import{convertValidationRules as f}from"../types";function F(i){const{control:m,errors:x,fieldConfig:o,t:s}=i,{name:r,label:u,validation:e}=o,n=o.options||{};return a(p,{name:r,control:m,rules:e?f(e):void 0,render:({field:t,fieldState:l})=>a(d,{name:r,label:s(u),value:t.value??null,onChange:c=>t.onChange(c),error:!!l.error,helperText:l.error?.message,required:e?.required,multiple:!1,maxFiles:1,maxSize:n.maxSize,storagePath:n.storagePath})})}export{F as ControlledDocumentField};
|
|
@@ -1 +1 @@
|
|
|
1
|
-
"use client";import{jsx as
|
|
1
|
+
"use client";import{jsx as i}from"react/jsx-runtime";import{Controller as d}from"react-hook-form";import{FileFieldComponent as c}from"../../form/fields";import{convertValidationRules as f}from"../types";function v(a){const{control:s,errors:x,fieldConfig:o,t:m}=a,{name:r,label:u,validation:e}=o,n=o.options||{};return i(d,{name:r,control:s,rules:e?f(e):void 0,render:({field:l,fieldState:t})=>i(c,{name:r,label:m(u),value:l.value??null,onChange:p=>l.onChange(p),error:!!t.error,helperText:t.error?.message,required:e?.required,multiple:!1,maxFiles:1,maxSize:n.maxSize,storagePath:n.storagePath})})}export{v as ControlledFileField};
|
|
@@ -1 +1 @@
|
|
|
1
|
-
"use client";import{jsx as
|
|
1
|
+
"use client";import{jsx as a}from"react/jsx-runtime";import{Controller as d}from"react-hook-form";import{ImageFieldComponent as c}from"../../form/fields";import{convertValidationRules as g}from"../types";function F(i){const{control:m,errors:f,fieldConfig:o,t:s}=i,{name:r,label:u,validation:e}=o,n=o.options||{};return a(d,{name:r,control:m,rules:e?g(e):void 0,render:({field:t,fieldState:l})=>a(c,{name:r,label:s(u),value:t.value??null,onChange:p=>t.onChange(p),error:!!l.error,helperText:l.error?.message,required:e?.required,multiple:!1,maxFiles:1,maxSize:n.maxSize,storagePath:n.storagePath})})}export{F as ControlledImageField};
|
|
@@ -1 +1 @@
|
|
|
1
|
-
"use client";import{jsx as
|
|
1
|
+
"use client";import{jsx as l}from"react/jsx-runtime";import{Controller as x}from"react-hook-form";import{DocumentFieldComponent as v}from"../../form/fields";import{convertValidationRules as d}from"../types";function y(i){const{control:u,errors:g,fieldConfig:n,t:m}=i,{name:t,label:s,validation:r}=n,o=n.options||{};return l(x,{name:t,control:u,rules:r?d(r):void 0,render:({field:e,fieldState:a})=>{const c=Array.isArray(e.value)?e.value:e.value?[e.value]:null;return l(v,{name:t,label:m(s),value:c,onChange:p=>e.onChange(p),error:!!a.error,helperText:a.error?.message,required:r?.required,multiple:!0,maxFiles:o.maxFiles??10,maxSize:o.maxSize,storagePath:o.storagePath})}})}export{y as ControlledMultiDocumentField};
|
|
@@ -1 +1 @@
|
|
|
1
|
-
"use client";import{jsx as
|
|
1
|
+
"use client";import{jsx as l}from"react/jsx-runtime";import{Controller as x}from"react-hook-form";import{FileFieldComponent as v}from"../../form/fields";import{convertValidationRules as d}from"../types";function y(i){const{control:s,errors:g,fieldConfig:n,t:u}=i,{name:a,label:m,validation:r}=n,o=n.options||{};return l(x,{name:a,control:s,rules:r?d(r):void 0,render:({field:e,fieldState:t})=>{const p=Array.isArray(e.value)?e.value:e.value?[e.value]:null;return l(v,{name:a,label:u(m),value:p,onChange:c=>e.onChange(c),error:!!t.error,helperText:t.error?.message,required:r?.required,multiple:!0,maxFiles:o.maxFiles??10,maxSize:o.maxSize,storagePath:o.storagePath})}})}export{y as ControlledMultiFileField};
|
|
@@ -1 +1 @@
|
|
|
1
|
-
"use client";import{jsx as
|
|
1
|
+
"use client";import{jsx as l}from"react/jsx-runtime";import{Controller as g}from"react-hook-form";import{ImageFieldComponent as x}from"../../form/fields";import{convertValidationRules as d}from"../types";function y(i){const{control:m,errors:v,fieldConfig:a,t:s}=i,{name:n,label:u,validation:r}=a,o=a.options||{};return l(g,{name:n,control:m,rules:r?d(r):void 0,render:({field:e,fieldState:t})=>{const c=Array.isArray(e.value)?e.value:e.value?[e.value]:null;return l(x,{name:n,label:s(u),value:c,onChange:p=>e.onChange(p),error:!!t.error,helperText:t.error?.message,required:r?.required,multiple:!0,maxFiles:o.maxFiles??10,maxSize:o.maxSize,storagePath:o.fieldSpecific?.storagePath})}})}export{y as ControlledMultiImageField};
|
|
@@ -1 +1 @@
|
|
|
1
|
-
import{ControlledDocumentField as l}from"./ControlledDocumentField";import{ControlledFileField as
|
|
1
|
+
import{ControlledDocumentField as l}from"./ControlledDocumentField";import{ControlledFileField as t}from"./ControlledFileField";import{ControlledImageField as i}from"./ControlledImageField";import{ControlledMultiDocumentField as n}from"./ControlledMultiDocumentField";import{ControlledMultiFileField as f}from"./ControlledMultiFileField";import{ControlledMultiImageField as x}from"./ControlledMultiImageField";export{l as ControlledDocumentField,t as ControlledFileField,i as ControlledImageField,n as ControlledMultiDocumentField,f as ControlledMultiFileField,x as ControlledMultiImageField};
|
|
@@ -1 +1 @@
|
|
|
1
|
-
import{convertValidationRules as
|
|
1
|
+
import{convertValidationRules as e,convertPatternToRegex as t}from"./types";export*from"./input";export*from"./select";export*from"./file";export*from"./complex";export{t as convertPatternToRegex,e as convertValidationRules};
|
|
@@ -1 +1 @@
|
|
|
1
|
-
"use client";import{jsx as
|
|
1
|
+
"use client";import{jsx as r}from"react/jsx-runtime";import{Controller as s}from"react-hook-form";import{CheckboxFieldComponent as u}from"../../form/fields";import{convertValidationRules as C}from"../types";function x(t){const{control:l,errors:f,fieldConfig:i,t:a}=t,{name:c,label:e,validation:o}=i,d=typeof e=="string"?a(e):e;return r(s,{name:c,control:l,rules:o?C(o):void 0,render:({field:n})=>r(u,{label:d,checked:!!n.value,onChange:m=>n.onChange(m.target.checked),required:o?.required})})}export{x as ControlledCheckboxField};
|
|
@@ -1 +1 @@
|
|
|
1
|
-
"use client";import{jsx as u}from"react/jsx-runtime";import{Controller as
|
|
1
|
+
"use client";import{jsx as u}from"react/jsx-runtime";import{Controller as g}from"react-hook-form";import{CurrencyFieldComponent as v}from"../../form/fields";import{convertValidationRules as y}from"../types";function q(c){const{control:i,errors:x,fieldConfig:o,t:s,placeholder:p}=c,{name:d,label:m,validation:r}=o,l=(o.options||{}).fieldSpecific;return u(g,{name:d,control:i,rules:r?y(r):void 0,render:({field:e,fieldState:t})=>{const f=h=>{const n=h.target.value;if(n==null||n===""){e.onChange(null);return}const a=typeof n=="number"?n/100:parseFloat(String(n))/100;isNaN(a)?e.onChange(null):e.onChange(a)},C=e.value!=null&&!isNaN(e.value)?Math.round(e.value*100):void 0;return u(v,{label:s(m),value:C,onChange:f,currency:l?.currency||"EUR",locale:l?.locale,error:!!t.error,helperText:t.error?.message,required:r?.required,placeholder:p})}})}export{q as ControlledCurrencyField};
|
|
@@ -1 +1 @@
|
|
|
1
|
-
"use client";import{jsx as
|
|
1
|
+
"use client";import{jsx as l}from"react/jsx-runtime";import{Controller as c}from"react-hook-form";import{DurationFieldComponent as u}from"../../form/fields";import{convertValidationRules as f}from"../types";function j(s){const{control:a,errors:x,fieldConfig:n,t:i}=s,{name:m,label:d,validation:e}=n,o=(n.options||{}).fieldSpecific;return l(c,{name:m,control:a,rules:e?f(e):void 0,render:({field:r,fieldState:t})=>l(u,{label:i(d),value:r.value??0,onChange:p=>r.onChange(p),error:!!t.error,helperText:t.error?.message,required:e?.required,disabled:r.disabled,min:o?.min??0,max:o?.max??480,step:o?.step??5,t:i})})}export{j as ControlledDurationField};
|
|
@@ -1 +1 @@
|
|
|
1
|
-
"use client";import{jsx as
|
|
1
|
+
"use client";import{jsx as r}from"react/jsx-runtime";import{Controller as m}from"react-hook-form";import{GdprConsentFieldComponent as u}from"../../form/fields";import{convertValidationRules as f}from"../types";function D(c){const{control:a,errors:y,fieldConfig:i}=c,{name:s,validation:n,options:l={}}=i,t=l.fieldSpecific,d=t?.privacyPolicyPath||"/legal/privacy",p=t?.termsPath||"/legal/terms";return r(m,{name:s,control:a,rules:n?f(n):void 0,render:({field:o})=>{const e=o.value,h=typeof e=="object"&&e!==null?!!e.gdprConsent:!!e;return r(u,{checked:h,onChange:C=>{if(C.target.checked){const g=new Date().toISOString().split("T")[0];o.onChange({gdprConsent:!0,gdprConsentDate:new Date().toISOString(),gdprConsentVersion:g})}else o.onChange(!1)},required:n?.required,privacyPolicyPath:d,termsPath:p})}})}export{D as ControlledGdprConsentField};
|
|
@@ -1 +1 @@
|
|
|
1
|
-
"use client";import{jsx as
|
|
1
|
+
"use client";import{jsx as s}from"react/jsx-runtime";import{Controller as g}from"react-hook-form";import{NumberFieldComponent as h}from"../../form/fields";import{convertValidationRules as C}from"../types";function j(m){const{control:u,errors:v,fieldConfig:a,t:c,placeholder:x}=m,{name:d,label:p,validation:e}=a,t=a.options||{},n=t.fieldSpecific;return s(g,{name:d,control:u,rules:e?C(e):void 0,render:({field:r,fieldState:l})=>{const f=o=>{if(o.target.value===""||o.target.value===null){r.onChange(null);return}try{const i=parseFloat(o.target.value);isNaN(i)||r.onChange(i)}catch{r.onChange(0)}};return s(h,{...r,label:c(p),value:r.value??void 0,onChange:f,error:!!l.error,helperText:l.error?.message,required:e?.required,min:e?.min,max:e?.max,step:n?.mask==="currency"?.01:n?.mask==="mileage"?1:void 0,mask:n?.mask||"number",className:t.className})}})}export{j as ControlledNumberField};
|
|
@@ -1 +1 @@
|
|
|
1
|
-
"use client";import{jsx as n}from"react/jsx-runtime";import{Controller as p}from"react-hook-form";import{PasswordFieldComponent as u}from"../../form/fields";import{convertValidationRules as
|
|
1
|
+
"use client";import{jsx as n}from"react/jsx-runtime";import{Controller as p}from"react-hook-form";import{PasswordFieldComponent as u}from"../../form/fields";import{convertValidationRules as h}from"../types";function b(a){const{control:s,errors:C,fieldConfig:t,t:i,placeholder:m}=a,{name:d,label:c,validation:e,options:o={}}=t;return n(p,{name:d,control:s,rules:e?h(e):void 0,render:({field:r,fieldState:l})=>n(u,{...r,label:i(c),value:r.value??"",onChange:r.onChange,error:!!l.error,helperText:l.error?.message,required:e?.required,placeholder:m||o.placeholder,className:o.className})})}export{b as ControlledPasswordField};
|
|
@@ -1 +1 @@
|
|
|
1
|
-
"use client";import{jsx as
|
|
1
|
+
"use client";import{jsx as n}from"react/jsx-runtime";import{Controller as p}from"react-hook-form";import{PhoneNumberComponent as c}from"../../form/fields";import{convertValidationRules as d}from"../types";function x(t){const{control:l,errors:g,fieldConfig:a,t:i}=t,{name:m,label:s,validation:e}=a;return n(p,{name:m,control:l,rules:e?d(e):void 0,render:({field:r,fieldState:o})=>n(c,{label:i(s),value:typeof r.value=="string"?r.value:"",onChange:u=>r.onChange(u.target.value||""),error:o.error?.message,helperText:o.error?.message,required:e?.required})})}export{x as ControlledPhoneField};
|
|
@@ -1 +1 @@
|
|
|
1
|
-
"use client";import{jsx as t}from"react/jsx-runtime";import{Controller as C}from"react-hook-form";import{PriceFieldComponent as
|
|
1
|
+
"use client";import{jsx as t}from"react/jsx-runtime";import{Controller as C}from"react-hook-form";import{PriceFieldComponent as h}from"../../form/fields";import{convertValidationRules as g}from"../types";function y(l){const{control:c,errors:v,fieldConfig:o,t:s,placeholder:a}=l,{name:u,label:d,validation:e}=o,r=(o.options||{}).fieldSpecific;return t(C,{name:u,control:c,rules:e?g(e):void 0,render:({field:n,fieldState:i})=>{const p=n.value,f=m=>{n.onChange(m)};return t(h,{label:s(d),value:p??void 0,onChange:f,error:!!i.error,helperText:i.error?.message,required:e?.required,placeholder:a,defaultCurrency:r?.defaultCurrency??"EUR",optionsTitle:r?.optionsTitle,currencies:r?.currencies})}})}export{y as ControlledPriceField};
|
|
@@ -1 +1 @@
|
|
|
1
|
-
"use client";import{jsx as
|
|
1
|
+
"use client";import{jsx as l}from"react/jsx-runtime";import{Controller as d}from"react-hook-form";import{RangeFieldComponent as f}from"../../form/fields";import{convertValidationRules as g}from"../types";function R(a){const{control:s,errors:C,fieldConfig:n,t:m}=a,{name:p,label:u,validation:e}=n,t=n.options||{},c=t.fieldSpecific;return l(d,{name:p,control:s,rules:e?g(e):void 0,render:({field:o,fieldState:i})=>l(f,{label:m(u),value:o.value??void 0,onChange:r=>{typeof r=="number"?o.onChange(r):o.onChange(Number(r.target.value)||0)},error:!!i.error,helperText:i.error?.message,required:e?.required,min:e?.min,max:e?.max,step:t.step,showValue:c?.showValue})})}export{R as ControlledRangeField};
|
|
@@ -1 +1 @@
|
|
|
1
|
-
"use client";import{jsx as
|
|
1
|
+
"use client";import{jsx as t}from"react/jsx-runtime";import{Controller as u}from"react-hook-form";import{RatingFieldComponent as d}from"../../form/fields";import{convertValidationRules as f}from"../types";function V(l){const{control:a,errors:x,fieldConfig:e,t:s}=l,{name:m,label:c,validation:o}=e,r=(e.options||{}).fieldSpecific;return t(u,{name:m,control:a,rules:o?f(o):void 0,render:({field:n,fieldState:i})=>t(d,{label:s(c),value:n.value??0,onChange:p=>{n.onChange(p)},error:!!i.error,helperText:i.error?.message,required:o?.required,max:r?.max??o?.max??5,showValue:r?.showValue})})}export{V as ControlledRatingField};
|
|
@@ -1 +1 @@
|
|
|
1
|
-
"use client";import{jsx as
|
|
1
|
+
"use client";import{jsx as a}from"react/jsx-runtime";import{Controller as V}from"react-hook-form";import{SwitchFieldComponent as x}from"../../form/fields";import"../types";function _(i){const{control:h,errors:S,fieldConfig:s,t:c,onChange:o}=i,{name:u,label:f,options:k={}}=s,e=k.fieldSpecific,m=e?.uncheckedValue??!1,t=e?.checkedValue??!0,l=e?.uncheckedLabel,r=e?.checkedLabel;return a(V,{name:u,control:h,render:({field:{value:p,onChange:C},fieldState:b})=>{const g=p===t,L=n=>{const d=n?t:m;C(d),o&&o(d)};return a(x,{label:c(f),checked:g,onChange:n=>L(n.target.checked),uncheckedLabel:l?c(l):void 0,checkedLabel:r?c(r):void 0,helperText:b.error?.message})}})}export{_ as ControlledSwitchField};
|
|
@@ -1,11 +1,11 @@
|
|
|
1
1
|
import { type ControlledFieldProps } from '../types';
|
|
2
2
|
import type { ReactElement } from 'react';
|
|
3
3
|
/**
|
|
4
|
-
|
|
5
|
-
*
|
|
6
|
-
|
|
7
|
-
*
|
|
8
|
-
|
|
4
|
+
* ControlledTextField - Text input controlled by react-hook-form
|
|
5
|
+
*
|
|
6
|
+
* Uses Controller to keep value in sync with RHF state.
|
|
7
|
+
* register() is incompatible with TextFieldComponent's controlled
|
|
8
|
+
* `<Input value={value}>` — default values are overwritten on re-render.
|
|
9
9
|
*/
|
|
10
10
|
export declare function ControlledTextField(props: ControlledFieldProps): ReactElement;
|
|
11
11
|
//# sourceMappingURL=ControlledTextField.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"ControlledTextField.d.ts","sourceRoot":"","sources":["../../../../src/components/controlled/input/ControlledTextField.tsx"],"names":[],"mappings":"AAMA,OAAO,EAA0B,KAAK,oBAAoB,EAAE,MAAM,UAAU,CAAC;AAG7E,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,OAAO,CAAC;AAG1C;;;;;;GAMG;
|
|
1
|
+
{"version":3,"file":"ControlledTextField.d.ts","sourceRoot":"","sources":["../../../../src/components/controlled/input/ControlledTextField.tsx"],"names":[],"mappings":"AAMA,OAAO,EAA0B,KAAK,oBAAoB,EAAE,MAAM,UAAU,CAAC;AAG7E,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,OAAO,CAAC;AAG1C;;;;;;GAMG;AACH,wBAAgB,mBAAmB,CAAC,KAAK,EAAE,oBAAoB,GAAG,YAAY,CAyC7E"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
"use client";import{jsx as
|
|
1
|
+
"use client";import{jsx as l}from"react/jsx-runtime";import{Controller as C}from"react-hook-form";import{TextFieldComponent as d}from"../../form/fields";import{convertValidationRules as x}from"../types";function b(a){const{control:s,errors:g,fieldConfig:r,t:m,placeholder:u}=a,{name:p,label:c,validation:o,options:n={}}=r,i=o?x(o):void 0,h=r.type==="email"?"email":r.type==="url"?"url":r.type==="color"?"color":"text";return l(C,{name:p,control:s,rules:i,render:({field:e,fieldState:t})=>l(d,{ref:e.ref,name:e.name,value:e.value??"",onChange:e.onChange,onBlur:e.onBlur,label:m(c),error:t.error?.message,helperText:t.error?.message,type:h,required:o?.required,placeholder:u||n.placeholder,maxLength:o?.maxLength,showCharCount:n.showCharCount,className:n.className})})}export{b as ControlledTextField};
|
|
@@ -1 +1 @@
|
|
|
1
|
-
"use client";import{jsx as
|
|
1
|
+
"use client";import{jsx as t}from"react/jsx-runtime";import{Controller as h}from"react-hook-form";import{TextAreaComponent as p}from"../../form/fields";import{convertValidationRules as d}from"../types";function w(s){const{control:l,errors:C,fieldConfig:n,t:i,placeholder:m}=s,{name:u,label:c,validation:o}=n,e=n.options||{};return t(h,{name:u,control:l,rules:o?d(o):void 0,render:({field:r,fieldState:a})=>t(p,{...r,label:i(c),value:r.value??"",onChange:r.onChange,error:a.error?.message,helperText:a.error?.message,required:o?.required,placeholder:m||e.placeholder,maxLength:o?.maxLength,showCharCount:e.showCharCount,autoResize:e.autoResize,rows:e.rows,className:e.className})})}export{w as ControlledTextareaField};
|
|
@@ -1 +1 @@
|
|
|
1
|
-
import{ControlledCheckboxField as
|
|
1
|
+
import{ControlledCheckboxField as r}from"./ControlledCheckboxField";import{ControlledCurrencyField as t}from"./ControlledCurrencyField";import{ControlledNumberField as n}from"./ControlledNumberField";import{ControlledPasswordField as x}from"./ControlledPasswordField";import{ControlledPriceField as m}from"./ControlledPriceField";import{ControlledPhoneField as f}from"./ControlledPhoneField";import{ControlledRangeField as a}from"./ControlledRangeField";import{ControlledRatingField as h}from"./ControlledRatingField";import{ControlledDurationField as u}from"./ControlledDurationField";import{ControlledSwitchField as b}from"./ControlledSwitchField";import{ControlledTextField as w}from"./ControlledTextField";import{ControlledTextareaField as T}from"./ControlledTextareaField";import{ControlledGdprConsentField as y}from"./ControlledGdprConsentField";export{r as ControlledCheckboxField,t as ControlledCurrencyField,u as ControlledDurationField,y as ControlledGdprConsentField,n as ControlledNumberField,x as ControlledPasswordField,f as ControlledPhoneField,m as ControlledPriceField,a as ControlledRangeField,h as ControlledRatingField,b as ControlledSwitchField,w as ControlledTextField,T as ControlledTextareaField};
|
|
@@ -1 +1 @@
|
|
|
1
|
-
"use client";import{jsx as
|
|
1
|
+
"use client";import{jsx as C}from"react/jsx-runtime";import{useMemo as b}from"react";import{Controller as j,useWatch as q,useFormContext as B}from"react-hook-form";import{translateLabel as F}from"../../../forms/utils";import{ComboboxComponent as P}from"../../form/fields";import{convertValidationRules as w}from"../types";function k(h){const{control:u,errors:D,fieldConfig:r,t:l,placeholder:x}=h,{name:g,label:O,validation:o,options:c={}}=r,d=B()?.setValue,n=q({control:u}),t="dependsOn"in r?r.dependsOn:void 0,V=t&&n?n[t.field]:void 0,p=b(()=>{const e=o?.options;return e?typeof e=="function"?e(n||{}):e:[]},[o?.options,n,V]),v=b(()=>p.map(e=>({...e,label:F(e.label,l)})),[p,l]),s=c.fieldSpecific;return C(j,{name:g,control:u,rules:o?w(o):void 0,render:({field:e,fieldState:f})=>{const y=a=>{const m=typeof a=="string"?a:a.target.value;if(e.onChange(m),t&&d&&s?.setParentOnChange){const i=s.setParentOnChange(m,n||{});i!=null&&d(t.field,i,{shouldValidate:!0,shouldDirty:!0})}};return C(P,{...e,label:l(O),value:e.value??"",onChange:y,onBlur:e.onBlur,options:v,error:!!f.error,helperText:f.error?.message,required:o?.required,placeholder:x||c.placeholder,creatable:s?.creatable??!1})}})}export{k as ControlledComboboxField};
|
|
@@ -1,13 +1,11 @@
|
|
|
1
1
|
import { type ControlledFieldProps } from '../types';
|
|
2
2
|
import type { ReactElement } from 'react';
|
|
3
3
|
/**
|
|
4
|
-
|
|
5
4
|
* ControlledDropdownField - Explicit controlled component for select/dropdown inputs
|
|
6
|
-
|
|
5
|
+
*
|
|
7
6
|
* Forwards Controller's ref for focus/validation (simple input)
|
|
8
|
-
|
|
7
|
+
*
|
|
9
8
|
* Handles dynamic options (function-based) and dependsOn logic
|
|
10
|
-
|
|
11
9
|
*/
|
|
12
10
|
export declare function ControlledDropdownField(props: ControlledFieldProps): ReactElement;
|
|
13
11
|
//# sourceMappingURL=ControlledDropdownField.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"ControlledDropdownField.d.ts","sourceRoot":"","sources":["../../../../src/components/controlled/select/ControlledDropdownField.tsx"],"names":[],"mappings":"AAQA,OAAO,EAA0B,KAAK,oBAAoB,EAAE,MAAM,UAAU,CAAC;AAE7E,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,OAAO,CAAC;AAG1C
|
|
1
|
+
{"version":3,"file":"ControlledDropdownField.d.ts","sourceRoot":"","sources":["../../../../src/components/controlled/select/ControlledDropdownField.tsx"],"names":[],"mappings":"AAQA,OAAO,EAA0B,KAAK,oBAAoB,EAAE,MAAM,UAAU,CAAC;AAE7E,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,OAAO,CAAC;AAG1C;;;;;;GAMG;AACH,wBAAgB,uBAAuB,CACrC,KAAK,EAAE,oBAAoB,GAC1B,YAAY,CA8Gd"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
"use client";import{jsx as
|
|
1
|
+
"use client";import{jsx as C}from"react/jsx-runtime";import{useMemo as h}from"react";import{Controller as w,useWatch as D,useFormContext as F}from"react-hook-form";import{translateLabel as j}from"../../../forms/utils";import{DropdownComponent as q}from"../../form/fields";import{convertValidationRules as B}from"../types";function z(g){const{control:u,errors:P,fieldConfig:s,t:i,onChange:S}=g,{name:O,label:x,validation:o,options:V={}}=s,p=F()?.setValue,t="dependsOn"in s?s.dependsOn:void 0,e=t?t.field:void 0,b=typeof o?.options=="function",l=D({control:u,name:e,disabled:!e}),c=h(()=>{const n=o?.options;if(!n)return[];if(typeof n=="function"){const r=e?{[e]:l}:{};return n(r)}return n},[o?.options,b,e,l]),v=h(()=>c.map(n=>({...n,label:j(n.label,i)})),[c,i]),f=V.fieldSpecific;return C(w,{name:O,control:u,rules:o?B(o):void 0,render:({field:n,fieldState:r})=>{const y=a=>{const m=typeof a=="string"?a:a.target.value;if(n.onChange(m),t&&p&&f?.setParentOnChange){const d=f.setParentOnChange(m,e?{[e]:l}:{});d!=null&&p(t.field,d,{shouldValidate:!0,shouldDirty:!0})}};return C(q,{label:i(x),value:n.value!==void 0&&n.value!==null?String(n.value):"",onChange:y,onBlur:n.onBlur,options:v,error:!!r.error,helperText:r.error?.message,required:o?.required})}})}export{z as ControlledDropdownField};
|
|
@@ -1,13 +1,11 @@
|
|
|
1
1
|
import { type ControlledFieldProps } from '../types';
|
|
2
2
|
import type { ReactElement } from 'react';
|
|
3
3
|
/**
|
|
4
|
-
|
|
5
4
|
* ControlledMultiDropdownField - Explicit controlled component for multiselect inputs
|
|
6
|
-
|
|
5
|
+
*
|
|
7
6
|
* Forwards Controller's ref for focus/validation (simple input)
|
|
8
|
-
|
|
7
|
+
*
|
|
9
8
|
* Handles dynamic options
|
|
10
|
-
|
|
11
9
|
*/
|
|
12
10
|
export declare function ControlledMultiDropdownField(props: ControlledFieldProps): ReactElement;
|
|
13
11
|
//# sourceMappingURL=ControlledMultiDropdownField.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"ControlledMultiDropdownField.d.ts","sourceRoot":"","sources":["../../../../src/components/controlled/select/ControlledMultiDropdownField.tsx"],"names":[],"mappings":"AAQA,OAAO,EAA0B,KAAK,oBAAoB,EAAE,MAAM,UAAU,CAAC;AAE7E,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,OAAO,CAAC;AAG1C
|
|
1
|
+
{"version":3,"file":"ControlledMultiDropdownField.d.ts","sourceRoot":"","sources":["../../../../src/components/controlled/select/ControlledMultiDropdownField.tsx"],"names":[],"mappings":"AAQA,OAAO,EAA0B,KAAK,oBAAoB,EAAE,MAAM,UAAU,CAAC;AAE7E,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,OAAO,CAAC;AAG1C;;;;;;GAMG;AACH,wBAAgB,4BAA4B,CAC1C,KAAK,EAAE,oBAAoB,GAC1B,YAAY,CAsFd"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
"use client";import{jsx as
|
|
1
|
+
"use client";import{jsx as c}from"react/jsx-runtime";import{useMemo as m}from"react";import{Controller as b,useWatch as v}from"react-hook-form";import{translateLabel as x}from"../../../forms/utils";import{MultiDropdownComponent as A}from"../../form/fields";import{convertValidationRules as w}from"../types";function J(f){const{control:l,errors:D,fieldConfig:s,t:a}=f,{name:h,label:y,validation:n}=s,u="dependsOn"in s?s.dependsOn:void 0,r=u?u.field:void 0,O=typeof n?.options=="function",p=v({control:l,name:r,disabled:!r}),d=m(()=>{const e=n?.options;if(!e)return[];if(typeof e=="function"){const o=r?{[r]:p}:{};return e(o)}return e},[n?.options,O,r,p]),g=m(()=>d.map(e=>({value:String(e.value),label:x(e.label,a)})),[d,a]);return c(b,{name:h,control:l,rules:n?w(n):void 0,render:({field:e,fieldState:o})=>{const C=i=>{let t;if(Array.isArray(i))t=i;else try{t=JSON.parse(i.target.value)}catch{t=[]}e.onChange(t)};return c(A,{...e,label:a(y),value:Array.isArray(e.value)?e.value:[],onChange:C,onBlur:e.onBlur,options:g,error:!!o.error,helperText:o.error?.message,required:n?.required})}})}export{J as ControlledMultiDropdownField};
|
|
@@ -1,13 +1,11 @@
|
|
|
1
1
|
import { type ControlledFieldProps } from '../types';
|
|
2
2
|
import type { ReactElement } from 'react';
|
|
3
3
|
/**
|
|
4
|
-
|
|
5
4
|
* ControlledRadioField - Explicit controlled component for radio inputs
|
|
6
|
-
|
|
5
|
+
*
|
|
7
6
|
* Forwards Controller's ref for focus/validation (simple input)
|
|
8
|
-
|
|
7
|
+
*
|
|
9
8
|
* Handles dynamic options
|
|
10
|
-
|
|
11
9
|
*/
|
|
12
10
|
export declare function ControlledRadioField(props: ControlledFieldProps): ReactElement;
|
|
13
11
|
//# sourceMappingURL=ControlledRadioField.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"ControlledRadioField.d.ts","sourceRoot":"","sources":["../../../../src/components/controlled/select/ControlledRadioField.tsx"],"names":[],"mappings":"AAQA,OAAO,EAA0B,KAAK,oBAAoB,EAAE,MAAM,UAAU,CAAC;AAE7E,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,OAAO,CAAC;AAG1C
|
|
1
|
+
{"version":3,"file":"ControlledRadioField.d.ts","sourceRoot":"","sources":["../../../../src/components/controlled/select/ControlledRadioField.tsx"],"names":[],"mappings":"AAQA,OAAO,EAA0B,KAAK,oBAAoB,EAAE,MAAM,UAAU,CAAC;AAE7E,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,OAAO,CAAC;AAG1C;;;;;;GAMG;AACH,wBAAgB,oBAAoB,CAClC,KAAK,EAAE,oBAAoB,GAC1B,YAAY,CAsEd"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
"use client";import{jsx as
|
|
1
|
+
"use client";import{jsx as u}from"react/jsx-runtime";import{useMemo as c}from"react";import{Controller as h,useWatch as v}from"react-hook-form";import{translateLabel as x}from"../../../forms/utils";import{RadioFieldComponent as y}from"../../form/fields";import{convertValidationRules as F}from"../types";function M(m){const{control:a,errors:R,fieldConfig:r,t:i}=m,{name:f,label:g,validation:n}=r,l="dependsOn"in r?r.dependsOn:void 0,o=l?l.field:void 0,O=typeof n?.options=="function",d=v({control:a,name:o,disabled:!o}),p=c(()=>{const e=n?.options;if(!e)return[];if(typeof e=="function"){const t=o?{[o]:d}:{};return e(t)}return e},[n?.options,O,o,d]),b=c(()=>p.map(e=>({value:String(e.value),label:x(e.label,i)})),[p,i]);return u(h,{name:f,control:a,rules:n?F(n):void 0,render:({field:e,fieldState:t})=>u(y,{...e,label:i(g),value:e.value??void 0,onChange:s=>{const C=typeof s=="string"?s:s.target.value;e.onChange(C)},options:b,error:!!t.error,helperText:t.error?.message,required:n?.required})})}export{M as ControlledRadioField};
|