{"version":3,"sources":["../src/form.utils.ts","../src/form.dom.ts","../src/form.connect.ts","../src/form.machine.ts","../src/field.machine.ts","../src/index.ts"],"sourcesContent":["import type { FieldMachineContext, FormMachineContext } from \"./form.types\"\n\nexport { default as equal } from \"fast-deep-equal\"\n\nexport function isPromise(value: any): value is Promise<any> {\n  return !!value && typeof value.then === \"function\"\n}\n\nexport function getFieldValues<K extends string>(fields: FormMachineContext<K>[\"fields\"]) {\n  const values = {} as Record<K, any>\n  for (const key in fields) {\n    if (Object.hasOwnProperty.call(fields, key)) {\n      values[key] = fields[key].state.context.value\n    }\n  }\n  return values\n}\n\nexport function getFirstErrorField<K extends string>(fields: FormMachineContext<K>[\"fields\"]) {\n  for (const key in fields) {\n    if (Object.hasOwnProperty.call(fields, key)) {\n      const error = fields[key].state.context.error\n      if (error) return key\n    }\n  }\n}\n\nexport function getErrors<K extends string>(fields: FormMachineContext<K>[\"fields\"]) {\n  const errors = {} as Record<K, string>\n  for (const key in fields) {\n    if (Object.hasOwnProperty.call(fields, key)) {\n      const error = fields[key].state.context.error\n      if (error) errors[key] = error\n    }\n  }\n  return errors\n}\n\nexport function isValidating<K extends string>(fields: FormMachineContext<K>[\"fields\"]) {\n  return checkFieldContext(fields, \"validating\")\n}\n\nexport function isDirty<K extends string>(fields: FormMachineContext<K>[\"fields\"]) {\n  return checkFieldContext(fields, \"dirty\")\n}\n\nexport function hasError<K extends string>(fields: FormMachineContext<K>[\"fields\"]) {\n  return checkFieldContext(fields, \"error\")\n}\n\nfunction checkFieldContext<K extends string>(fields: FormMachineContext<K>[\"fields\"], item: keyof FieldMachineContext) {\n  for (const key in fields) {\n    if (Object.hasOwnProperty.call(fields, key)) {\n      if (fields[key].state.context[item]) return true\n    }\n  }\n  return false\n}\n","import { createScope } from \"@zag-js/dom-query\"\nimport type { FormMachineContext } from \"./form.types\"\n\ntype Ctx = FormMachineContext<string>\n\nexport const dom = createScope({\n  getFormId: (ctx: Ctx) => ctx.ids?.form ?? `form:${ctx.id}`,\n  getFieldId: (ctx: Ctx, name: any) => ctx.ids?.field?.(name) ?? `form:${ctx.id}:field:${name}`,\n\n  getFormEl: (ctx: Ctx) => dom.getById(ctx, dom.getFormId(ctx)),\n  getFieldEl: (ctx: Ctx, name: any) => dom.getById(ctx, dom.getFieldId(ctx, name)),\n})\n","// import { dataAttr } from \"@zag-js/dom-query\"\nimport type { NormalizeProps, PropTypes } from \"@zag-js/types\"\n// import { parts } from \"./form.anatomy\"\n// import { dom } from \"./form.dom\"\nimport type { FormMachineApi, FormSend, FormState } from \"./form.types\"\nimport * as utils from \"./form.utils\"\nimport { dom } from \"./form.dom\"\n\nexport function formConnect<K extends string, T extends PropTypes>(\n  state: FormState<K>,\n  send: FormSend<K>,\n  normalize: NormalizeProps<T>,\n): FormMachineApi<K, T> {\n  const loading = state.matches(\"loading\")\n\n  return {\n    dirty: utils.isDirty(state.context.fields),\n    validating: utils.isValidating(state.context.fields),\n    errors: utils.getErrors(state.context.fields),\n\n    getValues: () => utils.getFieldValues(state.context.fields),\n\n    onSubmit(cb) {\n      return (event) => {\n        event?.preventDefault()\n        send({ type: \"SUBMIT\", cb })\n      }\n    },\n\n    getFieldProps: (name, options) => {\n      const field = state.context.fields[name]\n      if (!loading && !field) throw new Error(`Add ${name} in values`)\n      field.setContext({ validate: options?.validate })\n\n      return normalize.element({\n        id: dom.getFieldId(state.context, name),\n        name,\n        type: options?.type,\n        value: field?.state.context.value ?? \"\",\n        disabled: loading,\n\n        onChange: (event) => {\n          send({ type: \"FIELD.CHANGE\", name, value: (event.currentTarget as HTMLInputElement).value })\n        },\n        onFocus: () => {\n          send({ type: \"FIELD.FOCUS\", name })\n        },\n        onBlur: () => {\n          send({ type: \"FIELD.BLUR\", name })\n        },\n      })\n    },\n  }\n}\n","import { createMachine, type StateMachine as S, guards } from \"@zag-js/core\"\nimport { compact, isFunction } from \"@zag-js/utils\"\nimport type {\n  FieldMachineContext,\n  FormMachineContext,\n  FormMachineEvent,\n  FormMachineState,\n  FormUserDefinedContext,\n} from \"./form.types\"\nimport { createFieldMachine } from \"./field.machine\"\nimport * as utils from \"./form.utils\"\nimport { nextTick } from \"@zag-js/dom-query\"\nimport { dom } from \"./form.dom\"\nconst { or } = guards\n\nexport function createFormmachine<K extends string>(userContext: FormUserDefinedContext<K>) {\n  const ctx = compact(userContext)\n\n  const FIELD_EVENTS: S.TransitionDefinitionMap<FormMachineContext<K>, FormMachineState, FormMachineEvent<K>> = {\n    \"FIELD.CHANGE\": [\n      {\n        guard: or(\"validateAll\", \"validateChange\"),\n        actions: [\"changeField\", \"validate\"],\n      },\n      {\n        actions: [\"changeField\"],\n      },\n    ],\n    \"FIELD.BLUR\": [\n      {\n        guard: or(\"validateAll\", \"validateBlur\"),\n        actions: [\"blurField\", \"validate\"],\n      },\n      {\n        actions: [\"blurField\"],\n      },\n    ],\n    \"FIELD.FOCUS\": {\n      actions: [\"focusField\"],\n    },\n  }\n\n  return createMachine<FormMachineContext<K>, FormMachineState, FormMachineEvent<K>>(\n    {\n      id: \"form\",\n      initial: isFunction(ctx.defaultValues) ? \"loading\" : \"initialized\",\n\n      created: [\"initializeFields\"],\n\n      context: {\n        defaultValues: () => ({}) as Record<K, any>,\n        fields: {} as Record<K, any>,\n        validation: \"all\",\n        focusOnError: true,\n        ...ctx,\n      },\n\n      //   watch: {\n      //     defaultValues: \"syncFields\",\n      //   },\n\n      computed: {},\n\n      states: {\n        loading: {\n          entry: [\"loadValues\"],\n          on: {\n            INITIALIZE: { actions: [\"initializeFields\", \"onInitialized\"] },\n            INITIALIZED: \"initialized\",\n          },\n        },\n        initialized: {\n          on: {\n            ...FIELD_EVENTS,\n            SUBMIT: [\n              { guard: or(\"validateAll\", \"validateSubmit\"), target: \"submitting\", actions: [\"validate\"] },\n              { target: \"submitted\" },\n            ],\n          },\n        },\n        submitting: {\n          on: {\n            SUBMITTED: {\n              target: \"submitted\",\n              actions: [\"resetErrors\"],\n            },\n            \"SUBMIT.ABORT\": [\n              { guard: \"shouldFocusOnError\", target: \"initialized\", actions: [\"focusOnError\"] },\n              { target: \"initialized\" },\n            ],\n          },\n        },\n        submitted: {\n          on: {\n            ...FIELD_EVENTS,\n            SUBMIT: \"submitting\",\n          },\n        },\n      },\n    },\n    {\n      guards: {\n        validateAll: (ctx) => ctx.validation === \"all\",\n        validateSubmit: (ctx) => ctx.validation === \"submit\",\n        validateBlur: (ctx) => ctx.validation === \"blur\",\n        validateChange: (ctx) => ctx.validation === \"change\",\n        shouldFocusOnError: (ctx) => !!ctx.focusOnError,\n      },\n\n      actions: {\n        focusOnError(ctx) {\n          const fieldName = utils.getFirstErrorField(ctx.fields)\n          const fieldEl = dom.getFieldEl(ctx, fieldName)\n          fieldEl?.focus()\n        },\n        resetErrors(ctx) {\n          for (const key in ctx.fields) {\n            ctx.fields[key].send({ type: \"RESET_ERROR\" })\n          }\n        },\n        validate(ctx, evt, { send }) {\n          const values = utils.getFieldValues(ctx.fields)\n          if (evt.type === \"SUBMIT\") {\n            for (const key in ctx.fields) {\n              const field = ctx.fields[key]\n              field.send({ type: \"VALIDATE\", validator: ctx.validate?.[key], values })\n            }\n\n            if (utils.hasError(ctx.fields)) nextTick(() => send(\"SUBMIT.ABORT\"))\n            else {\n              const values = utils.getFieldValues(ctx.fields)\n              evt.cb?.(values)\n              send(\"SUBMITTED\")\n            }\n          } else if (evt.type === \"FIELD.CHANGE\" || evt.type === \"FIELD.BLUR\") {\n            const field = ctx.fields[evt.name]\n            field.send({ type: \"VALIDATE\", validator: ctx.validate?.[evt.name], values })\n          }\n        },\n\n        changeField(ctx, evt) {\n          if (evt.type !== \"FIELD.CHANGE\") return\n          const field = ctx.fields[evt.name]\n          if (field) field.send({ type: \"CHANGE\", value: evt.value })\n        },\n        focusField(ctx, evt) {\n          if (evt.type !== \"FIELD.FOCUS\") return\n          const field = (ctx.fields as any)[evt.name]\n          if (field) field.send({ type: \"FOCUS\" })\n        },\n        blurField(ctx, evt) {\n          if (evt.type !== \"FIELD.BLUR\") return\n          const field = (ctx.fields as any)[evt.name]\n          if (field) field.send({ type: \"BLUR\" })\n        },\n\n        initializeFields(ctx, _, { self }) {\n          if (isFunction(ctx.defaultValues)) return\n\n          for (const fieldName in ctx.defaultValues) {\n            const options: FieldMachineContext = {\n              dir: ctx.dir,\n              getRootNode: ctx.getRootNode,\n              id: fieldName,\n              value: ctx.defaultValues[fieldName],\n              defaultValue: ctx.defaultValues[fieldName],\n            }\n            const field = createFieldMachine(options)\n            const actor = self.spawn(field)\n            ctx.fields[fieldName] = actor\n          }\n        },\n        loadValues(ctx, _, { send }) {\n          if (!isFunction(ctx.defaultValues)) return\n          const values = ctx.defaultValues()\n          if (utils.isPromise(values)) {\n            values.then((_values) => {\n              ctx.defaultValues = _values\n              return send(\"INITIALIZE\")\n            })\n          } else {\n            ctx.defaultValues = values\n            send(\"INITIALIZE\")\n          }\n        },\n        onInitialized(_, __, { send }) {\n          nextTick(() => send(\"INITIALIZED\"))\n        },\n      },\n    },\n  )\n}\n","import { createMachine } from \"@zag-js/core\"\nimport { compact } from \"@zag-js/utils\"\nimport type { FieldMachineContext, FieldMachineEvent, FieldMachineState, FieldUserDefinedContext } from \"./form.types\"\nimport * as utils from \"./form.utils\"\n\nexport function createFieldMachine(userContext: FieldUserDefinedContext) {\n  const ctx = compact(userContext)\n  return createMachine<FieldMachineContext, FieldMachineState, FieldMachineEvent>(\n    {\n      id: \"field\",\n      initial: \"idle\",\n\n      context: {\n        focused: false,\n        touched: false,\n        dirty: false,\n        validating: false,\n        error: null,\n        ...ctx,\n      },\n\n      created: [\"setDefaultValue\"],\n\n      on: {\n        FOCUS: {\n          actions: [\"focus\"],\n        },\n        BLUR: {\n          actions: [\"blur\"],\n        },\n      },\n\n      watch: {\n        value: \"valueChanged\",\n      },\n\n      states: {\n        idle: {\n          on: {\n            CHANGE: { actions: [\"updateValue\"] },\n            VALIDATE: { actions: [\"validate\"] },\n            RESET_ERROR: { actions: [\"resetError\"] },\n          },\n        },\n      },\n    },\n    {\n      guards: {},\n\n      actions: {\n        resetError(ctx) {\n          ctx.error = null\n        },\n        validate(ctx, evt) {\n          if (evt.type !== \"VALIDATE\") return\n          ctx.validating = true\n\n          const validate = evt.validator ?? ctx.validate\n          if (!validate) return\n\n          const validated = validate(ctx.value, evt.values ?? {})\n          if (utils.isPromise(validated)) {\n            validated.then((error) => {\n              // TODO remove\n              // console.log(\"validate promise\", error)\n\n              ctx.error = error\n              ctx.validating = false\n            })\n          } else {\n            ctx.error = validated\n            ctx.validating = false\n          }\n        },\n        valueChanged(ctx) {\n          ctx.dirty = ctx.value !== ctx.defaultValue\n          ctx.touched = true\n        },\n        updateValue(ctx, evt) {\n          if (evt.type === \"CHANGE\") ctx.value = evt.value\n        },\n        focus(ctx) {\n          ctx.focused = true\n          ctx.touched = true\n        },\n        blur(ctx) {\n          ctx.focused = false\n        },\n      },\n\n      compareFns: {\n        value: (prev, current) => utils.equal(prev, current),\n      },\n    },\n  )\n}\n","import { formConnect } from \"./form.connect\"\nimport { createFormmachine } from \"./form.machine\"\n\nimport { createFieldMachine } from \"./field.machine\"\nexport * from \"./form.types\"\n\nexport const form = {\n  connect: formConnect,\n  machine: createFormmachine,\n}\n\nexport const field = {\n  machine: createFieldMachine,\n}\n"],"mappings":"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","names":["default","field","createMachine","compact","ctx","default","compact","createMachine","ctx","field","values"]}