@axdspub/axiom-ui-forms 0.3.0 → 0.3.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/README.md CHANGED
@@ -182,7 +182,7 @@ Test schema to form [here](https://axiom-ui-forms.srv.axds.co/schema-to-form)
182
182
 
183
183
  ```
184
184
 
185
- Coming soon...
185
+
186
186
  ```json
187
187
  {
188
188
  "$id": "/test/schema",
@@ -203,16 +203,6 @@ Coming soon...
203
203
  "agree": {
204
204
  "type": "boolean"
205
205
  }
206
- },
207
- "dependentSchemas": {
208
- "agree": {
209
- "properties": {
210
- "signature": {
211
- "type": "string",
212
- "maxLength": 100
213
- }
214
- }
215
- }
216
206
  }
217
207
  }
218
208
  ```
@@ -222,7 +212,7 @@ Coming soon...
222
212
  ```ts
223
213
  import React, {type ReactElement} from 'react'
224
214
  import { FormCreator, type IForm, type IFormValues } from '@axdspub/axiom-ui-forms'
225
- import { type JSONSchema7 } from 'json-schema'
215
+ import { type JSONSchema6 } from 'json-schema'
226
216
 
227
217
  export default ExampleForm = ({schema}:{schema: JSONSchema7 }): ReactElement => {
228
218
  const formValueState = React.useState<IFormValues>({})
@@ -239,7 +229,7 @@ export default ExampleForm = ({schema}:{schema: JSONSchema7 }): ReactElement =>
239
229
  <>{
240
230
  errors !== null
241
231
  ? <p>Schema errors: {{errors}}</p>
242
- : <FormCreator form={formConfig} formValueState={} >
232
+ : <SchemaFormCreator form={formConfig} formValueState={formValueState} >
243
233
  }</>
244
234
 
245
235
  )
@@ -251,7 +241,185 @@ export default ExampleForm = ({schema}:{schema: JSONSchema7 }): ReactElement =>
251
241
 
252
242
  # Create a form using a schema, and modify it with a form config
253
243
 
254
- Coming soon
244
+ ```ts
245
+ import { SchemaFormCreator } from '@axdspub/axiom-ui-forms'
246
+ import { type JSONSchema6 } from 'json-schema'
247
+
248
+
249
+ const schema: JSONSchema6 = {
250
+ properties: {
251
+ text_field: {
252
+
253
+ },
254
+ numeric_field: {
255
+
256
+ }
257
+
258
+ }
259
+ }
260
+
261
+ const fieldOverrides: IFieldOverride[] = [
262
+ {
263
+ prop: 'text_field',
264
+ label: 'This is my text field'
265
+ }
266
+ ]
267
+
268
+ ```
269
+
270
+
271
+ # Field definitions
272
+ ## These can be used to create a form config, or as partials to override a schema
273
+
274
+ ### root (all fields share these properties)
275
+
276
+ ```json
277
+ {
278
+ "id": "fieldId",
279
+ "label": "Field label",
280
+ "description": "Field description",
281
+ "multiple": false,
282
+ "required": true,
283
+ "conditions": {
284
+ "dependsOn": "other_field_id",
285
+ "value": "val"
286
+ },
287
+ "defaultValue": "initial value",
288
+ "settings": {}
289
+
290
+ }
291
+ ```
292
+
293
+ ## string fields
294
+
295
+ ### `type:text`
296
+ single line text field
297
+
298
+ ```json
299
+ {
300
+ "placeHolder": "Example of field response"
301
+ }
302
+ ```
303
+
304
+ ## Enum select fields
305
+
306
+ ### `type:select` and `type:radio`
307
+
308
+ ```json
309
+ {
310
+ "options": [
311
+ {
312
+ "label": "Option 1",
313
+ "value": "option_1"
314
+ },
315
+ {
316
+ "label": "Option 2",
317
+ "value": "option_2"
318
+ }
319
+ ]
320
+ }
321
+ ```
322
+
323
+
324
+ ## boolean
325
+
326
+ ### `type:checkbox` and `type:boolean`
327
+ checkbox field
328
+
329
+
330
+ ## number fields
331
+
332
+ ### `type:number`
333
+
334
+ ## date and time
335
+
336
+ ### `type:date`
337
+ ```json
338
+ {
339
+ "constraints": {
340
+ "minDate": "2023-02-01",
341
+ "maxDate": "2024-06-01"
342
+ }
343
+ }
344
+ ```
345
+
346
+ ### `type:time`
347
+ ```json
348
+ {
349
+ "constraints": {
350
+ "minTime": "02:00:00",
351
+ "maxTime": "18:30:00"
352
+ }
353
+ }
354
+ ```
355
+
356
+ ### `type:datetime`
357
+ ```json
358
+ {
359
+ "constraints": {
360
+ "minDateTime": "2023-02-01T00:00:00Z",
361
+ "maxDateTime": "2024-06-01T00:00:00Z"
362
+ }
363
+ }
364
+ ```
365
+
366
+
367
+ ### `type:object`
368
+ - `skip_path`: if `true`, `id` is not used to create path to child fields in output. Can not be `true` if `multiple` is `true`
369
+ - `fields`: array of child fields
370
+ - `layout`: type of layout for child form elements. Not fully supported yet.
371
+ ```json
372
+ {
373
+ "skip_path": true,
374
+ "layout": "horizontal",
375
+ "fields": [
376
+
377
+ ]
378
+ }
379
+ ```
380
+
381
+ # Field overrides
382
+ Field overrides must contain a `prop` property. This can reference an existing property from a schema. If it doesn't reference an existing property, a new property will be added to the form and the form output
383
+
384
+ # Form overrides
385
+ Form overrides can have the following elements:
386
+
387
+ ## wizard_steps
388
+ These create a wizard interface
389
+ ```json
390
+ "wizard_steps": [
391
+ {
392
+ "id":"first_step",
393
+ "order": 1,
394
+ "label": "First step",
395
+ "fields": [],
396
+ "pages": []
397
+ },
398
+ {
399
+ "id":"second_step",
400
+ "order": 2,
401
+ "label": "Second step",
402
+ "fields": [],
403
+ "pages": []
404
+ }
405
+ ]
406
+ ```
407
+
408
+ ## pages
409
+ ```json
410
+ "pages":
411
+
412
+ ```
413
+
414
+
415
+
416
+
417
+ # Tests
418
+ Uses vitest. Install vitest vscode plugin for extras
419
+
420
+ ```node
421
+ npm run test
422
+ ```
255
423
 
256
424
 
257
425
 
@@ -1,4 +1,4 @@
1
- var jsonSchemaTraverse = {exports: {}};
1
+ var fastUri = {exports: {}};
2
2
 
3
- export { jsonSchemaTraverse as __module };
3
+ export { fastUri as __module };
4
4
  //# sourceMappingURL=index14.js.map
@@ -1,4 +1,4 @@
1
- var fastUri = {exports: {}};
1
+ var jsonSchemaTraverse = {exports: {}};
2
2
 
3
- export { fastUri as __module };
3
+ export { jsonSchemaTraverse as __module };
4
4
  //# sourceMappingURL=index15.js.map
@@ -1,4 +1,4 @@
1
- var discriminator = {};
1
+ var codegen = {};
2
2
 
3
- export { discriminator as __exports };
3
+ export { codegen as __exports };
4
4
  //# sourceMappingURL=index4.js.map
@@ -1,4 +1,4 @@
1
- var codegen = {};
1
+ var discriminator = {};
2
2
 
3
- export { codegen as __exports };
3
+ export { discriminator as __exports };
4
4
  //# sourceMappingURL=index6.js.map
@@ -1,8 +1,8 @@
1
1
  import { getDefaultExportFromCjs } from './_commonjsHelpers.js';
2
- import { __require as requireExtend } from '../node_modules/extend/index.js';
2
+ import { __require as requireCjs } from '../node_modules/style-to-js/cjs/index.js';
3
3
 
4
- var extendExports = requireExtend();
5
- var extend = /*@__PURE__*/getDefaultExportFromCjs(extendExports);
4
+ var cjsExports = requireCjs();
5
+ var styleToJs = /*@__PURE__*/getDefaultExportFromCjs(cjsExports);
6
6
 
7
- export { extend as default };
7
+ export { styleToJs as default };
8
8
  //# sourceMappingURL=index7.js.map
@@ -1,8 +1,8 @@
1
1
  import { getDefaultExportFromCjs } from './_commonjsHelpers.js';
2
- import { __require as requireCjs } from '../node_modules/style-to-js/cjs/index.js';
2
+ import { __require as requireExtend } from '../node_modules/extend/index.js';
3
3
 
4
- var cjsExports = requireCjs();
5
- var styleToJs = /*@__PURE__*/getDefaultExportFromCjs(cjsExports);
4
+ var extendExports = requireExtend();
5
+ var extend = /*@__PURE__*/getDefaultExportFromCjs(extendExports);
6
6
 
7
- export { styleToJs as default };
7
+ export { extend as default };
8
8
  //# sourceMappingURL=index8.js.map
@@ -1,4 +1,4 @@
1
- import { __exports as codegen } from '../../../../../_virtual/index6.js';
1
+ import { __exports as codegen } from '../../../../../_virtual/index4.js';
2
2
  import { __require as requireCode } from './code.js';
3
3
  import { __require as requireScope } from './scope.js';
4
4
 
@@ -1,4 +1,4 @@
1
- import { __exports as discriminator } from '../../../../../_virtual/index4.js';
1
+ import { __exports as discriminator } from '../../../../../_virtual/index6.js';
2
2
  import { __require as requireCodegen } from '../../compile/codegen/index.js';
3
3
  import { __require as requireTypes } from './types.js';
4
4
  import { __require as requireCompile } from '../../compile/index.js';
@@ -1,4 +1,4 @@
1
- import { __module as fastUri } from '../../_virtual/index15.js';
1
+ import { __module as fastUri } from '../../_virtual/index14.js';
2
2
  import { __require as requireUtils } from './lib/utils.js';
3
3
  import { __require as requireSchemes } from './lib/schemes.js';
4
4
 
@@ -2,7 +2,7 @@ import { stringify } from '../../comma-separated-tokens/index.js';
2
2
  import { ok } from '../../devlop/lib/default.js';
3
3
  import { svg, html } from '../../property-information/index.js';
4
4
  import { stringify as stringify$1 } from '../../space-separated-tokens/index.js';
5
- import styleToJs from '../../../_virtual/index8.js';
5
+ import styleToJs from '../../../_virtual/index7.js';
6
6
  import { whitespace } from '../../hast-util-whitespace/lib/index.js';
7
7
  import { name } from '../../estree-util-is-identifier-name/lib/index.js';
8
8
  import { VFileMessage } from '../../vfile-message/lib/index.js';
@@ -1,4 +1,4 @@
1
- import { __module as jsonSchemaTraverse } from '../../_virtual/index14.js';
1
+ import { __module as jsonSchemaTraverse } from '../../_virtual/index15.js';
2
2
 
3
3
  var hasRequiredJsonSchemaTraverse;
4
4
 
@@ -1,5 +1,5 @@
1
1
  import { bail } from '../../bail/index.js';
2
- import extend from '../../../_virtual/index7.js';
2
+ import extend from '../../../_virtual/index8.js';
3
3
  import isPlainObject from '../node_modules/is-plain-obj/index.js';
4
4
  import { CallableInstance } from './callable-instance.js';
5
5
  import { trough } from '../../trough/lib/index.js';
@@ -88,7 +88,7 @@ var MultipleFieldCreator = function (_a) {
88
88
  };
89
89
  var FieldCreator = function (_a) {
90
90
  var _b;
91
- var field = _a.field, value = _a.value, onChange = _a.onChange, className = _a.className, _c = _a.defaultClassName, defaultClassName = _c === void 0 ? 'py-2 flex flex-col gap-8' : _c;
91
+ var field = _a.field, value = _a.value, onChange = _a.onChange, className = _a.className, _c = _a.defaultClassName, defaultClassName = _c === void 0 ? 'py-2 flex flex-col gap-8 flex-grow h-full' : _c;
92
92
  var _d = useFormContext(), form = _d.form, inputOverrides = _d.inputOverrides, setFormValues = _d.setFormValues, formValues = _d.formValues;
93
93
  var InputComponent = __assign(__assign({}, inputMap), (inputOverrides !== null && inputOverrides !== void 0 ? inputOverrides : {}))[field.type];
94
94
  if (!checkCondition(field, formValues)) {
@@ -1 +1 @@
1
- {"version":3,"file":"FieldCreator.js","sources":["../../../../../src/Form/Components/FieldCreator.tsx"],"sourcesContent":["import FieldLabel from '@/Form/Components/FieldLabel'\r\nimport inputMap from '@/Form/Components/Inputs/inputMap'\r\nimport { useFormContext } from '@/Form/Creator/FormContextProvider'\r\nimport { type IFieldInputProps, type IFormField, type IValueChangeFn, type IValueType } from '@/Form/Creator/FormCreatorTypes'\r\nimport { getFieldValue } from '@/utils/getters'\r\nimport { cleanAndUpdateFormValuesWithFieldValue, createOneOfMultipleField, updateFormValuesWithFieldValue } from '@/utils/manipulators'\r\nimport { checkCondition } from '@/utils/validators'\r\nimport { Button, utils } from '@axdspub/axiom-ui-utilities'\r\nimport { CheckIcon, CopyIcon, Cross1Icon, ExclamationTriangleIcon, PlusIcon, TrashIcon } from '@radix-ui/react-icons'\r\nimport React, { useState, type ReactElement } from 'react'\r\n\r\ninterface IFieldCreator {\r\n field: IFormField\r\n onChange?: IValueChangeFn\r\n className?: string\r\n defaultClassName?: string\r\n value?: IValueType | IValueType[]\r\n}\r\n\r\nconst toolButtonClass = 'border-white hover:border-single hover:border-1 hover:border-slate-400'\r\n\r\nconst DeleteMultiple = ({\r\n doDelete\r\n}: {\r\n doDelete: () => void\r\n}): ReactElement => {\r\n const [confirm, setConfirm] = useState(false)\r\n\r\n return (\r\n <>\r\n {\r\n confirm\r\n ? <p className='flex flex-row gap-2 text-sm'><span className='text-slate-600'>Deleting: </span> Are you sure?\r\n <Button size='xs' type='submit'\r\n onClick={() => {\r\n doDelete()\r\n setConfirm(false)\r\n }}>Yes <CheckIcon className='inline ml-2' />\r\n </Button>\r\n <Button size='xs' type='alert'\r\n onClick={() => {\r\n setConfirm(false)\r\n }}>Cancel <Cross1Icon className='inline ml-2' />\r\n </Button>\r\n </p>\r\n : <Button size='xs' className={toolButtonClass} onClick={() => { setConfirm(true) }}>\r\n Delete <TrashIcon className='inline ml-2 fill-white' />\r\n </Button>\r\n }\r\n </>\r\n )\r\n}\r\n\r\nconst OneOfMultiple = ({\r\n InputComponent,\r\n field,\r\n value,\r\n index,\r\n onChange,\r\n values\r\n\r\n}: {\r\n InputComponent: React.FC<IFieldInputProps>\r\n field: IFormField\r\n value: IValueType\r\n index: number\r\n onChange: (v: IValueType[] | undefined) => void\r\n values: IValueType[]\r\n}): ReactElement => {\r\n const addValue = (v: IValueType | null): void => {\r\n const newValues = [...values]\r\n newValues.splice(index + 1, 0, v)\r\n onChange(newValues)\r\n }\r\n\r\n return (\r\n <div className='flex flex-col gap-2'>\r\n <InputComponent\r\n field={field}\r\n value={value}\r\n onChange={(v) => {\r\n const newValues = [...values]\r\n newValues[index] = v as IValueType\r\n onChange(newValues)\r\n }}\r\n />\r\n\r\n <div className='flex flex-row justify-between w-full p-2'>\r\n {index > 0 && (\r\n <DeleteMultiple doDelete={() => {\r\n const newValues = [...values]\r\n newValues.splice(index, 1)\r\n onChange(newValues)\r\n }} />\r\n )}\r\n <div className='ml-auto flex gap-2'>\r\n <Button\r\n size='xs'\r\n className={toolButtonClass}\r\n onClick={() => {\r\n addValue(null)\r\n }}>Add <PlusIcon className='inline ml-2' /></Button>\r\n <Button\r\n size='xs'\r\n className={toolButtonClass}\r\n onClick={() => {\r\n addValue(structuredClone(value))\r\n }}>Duplicate <CopyIcon className='inline ml-2' />\r\n </Button>\r\n </div>\r\n </div>\r\n </div>\r\n )\r\n}\r\n\r\nconst MultipleFieldCreator = ({\r\n field,\r\n onChange,\r\n value\r\n}: IFieldCreator): ReactElement => {\r\n const { formValues, setFormValues, inputOverrides } = useFormContext()\r\n const defaultOnChange = (v: IValueType[] | undefined): void => {\r\n const formValuesCopy = updateFormValuesWithFieldValue(field, v, formValues)\r\n setFormValues(formValuesCopy)\r\n }\r\n\r\n const initialVal = value !== undefined ? value : getFieldValue(field, formValues)\r\n const initialValues = Array.isArray(initialVal) ? initialVal : [initialVal]\r\n\r\n if (field.type === 'object' && field.skip_path === true && field.multiple === true) {\r\n return <div className='p-4 bg-slate-100'>\r\n <FieldLabel {...field} />\r\n <p className='text-rose-700'><ExclamationTriangleIcon className='inline w-4 h-4 mr-2' /> Error with field <span className='font-sans p-2 text-xs bg-slate-200'>{field.id}</span> Object fields with multiple true and skip_path true are not supported.</p>\r\n </div>\r\n }\r\n\r\n const InputComponent = {\r\n ...inputMap,\r\n ...(inputOverrides ?? {})\r\n }[field.type]\r\n\r\n return <div>\r\n {\r\n initialValues?.map((value, index) => {\r\n return <OneOfMultiple\r\n key={`${field.id}-${index}`}\r\n InputComponent={InputComponent}\r\n field={createOneOfMultipleField(field, index)}\r\n value={value}\r\n index={index}\r\n onChange={onChange ?? defaultOnChange}\r\n values={initialValues}\r\n />\r\n })\r\n }\r\n </div>\r\n}\r\n\r\nconst FieldCreator = ({\r\n field,\r\n value,\r\n onChange,\r\n className,\r\n defaultClassName = 'py-2 flex flex-col gap-8'\r\n}: IFieldCreator): ReactElement | null => {\r\n const { form, inputOverrides, setFormValues, formValues } = useFormContext()\r\n const InputComponent = {\r\n ...inputMap,\r\n ...(inputOverrides ?? {})\r\n }[field.type]\r\n\r\n if (!checkCondition(field, formValues)) {\r\n return null\r\n }\r\n\r\n const defaultOnChange = (v: IValueType | IValueType[] | undefined): void => {\r\n const formValuesCopyClean = cleanAndUpdateFormValuesWithFieldValue({\r\n form,\r\n field,\r\n value: v,\r\n formValues\r\n })\r\n setFormValues(formValuesCopyClean)\r\n }\r\n const onChangeFn = onChange ?? defaultOnChange\r\n\r\n const initialValue = value !== undefined ? value : getFieldValue(field, formValues)\r\n\r\n return InputComponent !== undefined\r\n ? <div className={utils.makeClassName({\r\n className,\r\n defaultClassName\r\n })}>{\r\n field.multiple === true\r\n ? <MultipleFieldCreator\r\n field={field}\r\n onChange={onChange}\r\n />\r\n : <InputComponent\r\n field={field}\r\n onChange={onChangeFn}\r\n value={Array.isArray(initialValue) ? initialValue[0] : initialValue}\r\n />\r\n\r\n }</div>\r\n : <div>\r\n <p className='font-bold mb-2'><ExclamationTriangleIcon className='inline' /> {field.label ?? ''}</p>\r\n <p className='p-4 text-sm bg-slate-100'>No component definition for <span className='text-rose-800 font-mono text-xs bg-slate-300 p-2'>type</span><span className='p-2 bg-slate-700 text-white font-mono text-xs'>{field.type}</span> at <span className='text-rose-800 font-mono text-xs bg-slate-300 p-2'>id</span><span className='p-2 bg-slate-700 text-white font-mono text-xs'>{field.id}</span></p>\r\n </div>\r\n}\r\n\r\nexport default FieldCreator\r\n"],"names":["React","utils"],"mappings":"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"}
1
+ {"version":3,"file":"FieldCreator.js","sources":["../../../../../src/Form/Components/FieldCreator.tsx"],"sourcesContent":["import FieldLabel from '@/Form/Components/FieldLabel'\r\nimport inputMap from '@/Form/Components/Inputs/inputMap'\r\nimport { useFormContext } from '@/Form/Creator/FormContextProvider'\r\nimport { type IFieldInputProps, type IFormField, type IValueChangeFn, type IValueType } from '@/Form/Creator/FormCreatorTypes'\r\nimport { getFieldValue } from '@/utils/getters'\r\nimport { cleanAndUpdateFormValuesWithFieldValue, createOneOfMultipleField, updateFormValuesWithFieldValue } from '@/utils/manipulators'\r\nimport { checkCondition } from '@/utils/validators'\r\nimport { Button, utils } from '@axdspub/axiom-ui-utilities'\r\nimport { CheckIcon, CopyIcon, Cross1Icon, ExclamationTriangleIcon, PlusIcon, TrashIcon } from '@radix-ui/react-icons'\r\nimport React, { useState, type ReactElement } from 'react'\r\n\r\ninterface IFieldCreator {\r\n field: IFormField\r\n onChange?: IValueChangeFn\r\n className?: string\r\n defaultClassName?: string\r\n value?: IValueType | IValueType[]\r\n}\r\n\r\nconst toolButtonClass = 'border-white hover:border-single hover:border-1 hover:border-slate-400'\r\n\r\nconst DeleteMultiple = ({\r\n doDelete\r\n}: {\r\n doDelete: () => void\r\n}): ReactElement => {\r\n const [confirm, setConfirm] = useState(false)\r\n\r\n return (\r\n <>\r\n {\r\n confirm\r\n ? <p className='flex flex-row gap-2 text-sm'><span className='text-slate-600'>Deleting: </span> Are you sure?\r\n <Button size='xs' type='submit'\r\n onClick={() => {\r\n doDelete()\r\n setConfirm(false)\r\n }}>Yes <CheckIcon className='inline ml-2' />\r\n </Button>\r\n <Button size='xs' type='alert'\r\n onClick={() => {\r\n setConfirm(false)\r\n }}>Cancel <Cross1Icon className='inline ml-2' />\r\n </Button>\r\n </p>\r\n : <Button size='xs' className={toolButtonClass} onClick={() => { setConfirm(true) }}>\r\n Delete <TrashIcon className='inline ml-2 fill-white' />\r\n </Button>\r\n }\r\n </>\r\n )\r\n}\r\n\r\nconst OneOfMultiple = ({\r\n InputComponent,\r\n field,\r\n value,\r\n index,\r\n onChange,\r\n values\r\n\r\n}: {\r\n InputComponent: React.FC<IFieldInputProps>\r\n field: IFormField\r\n value: IValueType\r\n index: number\r\n onChange: (v: IValueType[] | undefined) => void\r\n values: IValueType[]\r\n}): ReactElement => {\r\n const addValue = (v: IValueType | null): void => {\r\n const newValues = [...values]\r\n newValues.splice(index + 1, 0, v)\r\n onChange(newValues)\r\n }\r\n\r\n return (\r\n <div className='flex flex-col gap-2'>\r\n <InputComponent\r\n field={field}\r\n value={value}\r\n onChange={(v) => {\r\n const newValues = [...values]\r\n newValues[index] = v as IValueType\r\n onChange(newValues)\r\n }}\r\n />\r\n\r\n <div className='flex flex-row justify-between w-full p-2'>\r\n {index > 0 && (\r\n <DeleteMultiple doDelete={() => {\r\n const newValues = [...values]\r\n newValues.splice(index, 1)\r\n onChange(newValues)\r\n }} />\r\n )}\r\n <div className='ml-auto flex gap-2'>\r\n <Button\r\n size='xs'\r\n className={toolButtonClass}\r\n onClick={() => {\r\n addValue(null)\r\n }}>Add <PlusIcon className='inline ml-2' /></Button>\r\n <Button\r\n size='xs'\r\n className={toolButtonClass}\r\n onClick={() => {\r\n addValue(structuredClone(value))\r\n }}>Duplicate <CopyIcon className='inline ml-2' />\r\n </Button>\r\n </div>\r\n </div>\r\n </div>\r\n )\r\n}\r\n\r\nconst MultipleFieldCreator = ({\r\n field,\r\n onChange,\r\n value\r\n}: IFieldCreator): ReactElement => {\r\n const { formValues, setFormValues, inputOverrides } = useFormContext()\r\n const defaultOnChange = (v: IValueType[] | undefined): void => {\r\n const formValuesCopy = updateFormValuesWithFieldValue(field, v, formValues)\r\n setFormValues(formValuesCopy)\r\n }\r\n\r\n const initialVal = value !== undefined ? value : getFieldValue(field, formValues)\r\n const initialValues = Array.isArray(initialVal) ? initialVal : [initialVal]\r\n\r\n if (field.type === 'object' && field.skip_path === true && field.multiple === true) {\r\n return <div className='p-4 bg-slate-100'>\r\n <FieldLabel {...field} />\r\n <p className='text-rose-700'><ExclamationTriangleIcon className='inline w-4 h-4 mr-2' /> Error with field <span className='font-sans p-2 text-xs bg-slate-200'>{field.id}</span> Object fields with multiple true and skip_path true are not supported.</p>\r\n </div>\r\n }\r\n\r\n const InputComponent = {\r\n ...inputMap,\r\n ...(inputOverrides ?? {})\r\n }[field.type]\r\n\r\n return <div>\r\n {\r\n initialValues?.map((value, index) => {\r\n return <OneOfMultiple\r\n key={`${field.id}-${index}`}\r\n InputComponent={InputComponent}\r\n field={createOneOfMultipleField(field, index)}\r\n value={value}\r\n index={index}\r\n onChange={onChange ?? defaultOnChange}\r\n values={initialValues}\r\n />\r\n })\r\n }\r\n </div>\r\n}\r\n\r\nconst FieldCreator = ({\r\n field,\r\n value,\r\n onChange,\r\n className,\r\n defaultClassName = 'py-2 flex flex-col gap-8 flex-grow h-full'\r\n}: IFieldCreator): ReactElement | null => {\r\n const { form, inputOverrides, setFormValues, formValues } = useFormContext()\r\n const InputComponent = {\r\n ...inputMap,\r\n ...(inputOverrides ?? {})\r\n }[field.type]\r\n\r\n if (!checkCondition(field, formValues)) {\r\n return null\r\n }\r\n\r\n const defaultOnChange = (v: IValueType | IValueType[] | undefined): void => {\r\n const formValuesCopyClean = cleanAndUpdateFormValuesWithFieldValue({\r\n form,\r\n field,\r\n value: v,\r\n formValues\r\n })\r\n setFormValues(formValuesCopyClean)\r\n }\r\n const onChangeFn = onChange ?? defaultOnChange\r\n\r\n const initialValue = value !== undefined ? value : getFieldValue(field, formValues)\r\n\r\n return InputComponent !== undefined\r\n ? <div className={utils.makeClassName({\r\n className,\r\n defaultClassName\r\n })}>{\r\n field.multiple === true\r\n ? <MultipleFieldCreator\r\n field={field}\r\n onChange={onChange}\r\n />\r\n : <InputComponent\r\n field={field}\r\n onChange={onChangeFn}\r\n value={Array.isArray(initialValue) ? initialValue[0] : initialValue}\r\n />\r\n\r\n }</div>\r\n : <div>\r\n <p className='font-bold mb-2'><ExclamationTriangleIcon className='inline' /> {field.label ?? ''}</p>\r\n <p className='p-4 text-sm bg-slate-100'>No component definition for <span className='text-rose-800 font-mono text-xs bg-slate-300 p-2'>type</span><span className='p-2 bg-slate-700 text-white font-mono text-xs'>{field.type}</span> at <span className='text-rose-800 font-mono text-xs bg-slate-300 p-2'>id</span><span className='p-2 bg-slate-700 text-white font-mono text-xs'>{field.id}</span></p>\r\n </div>\r\n}\r\n\r\nexport default FieldCreator\r\n"],"names":["React","utils"],"mappings":"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"}
@@ -6,7 +6,7 @@ import React__default from 'react';
6
6
 
7
7
  var FieldDescriptionTooltip = function (field) {
8
8
  return (field.description !== undefined
9
- ? React__default.createElement(RadixTooltip, { content: field.description, contentClassName: 'max-w-[300px] leading-8', className: 'z-[1000]' },
9
+ ? React__default.createElement(RadixTooltip, { content: React__default.createElement("span", { className: 'leading-6' }, field.description), contentClassName: 'max-w-[400px]', className: 'z-[1000]' },
10
10
  React__default.createElement(InfoCircledIcon, null))
11
11
  : React__default.createElement(React__default.Fragment, null));
12
12
  };
@@ -1 +1 @@
1
- {"version":3,"file":"FieldLabel.js","sources":["../../../../../src/Form/Components/FieldLabel.tsx"],"sourcesContent":["import InlineMarkdown from '@/Form/Components/InlineMarkdown'\r\nimport { type IFormField } from '@/Form/Creator/FormCreatorTypes'\r\nimport { Tooltip } from '@axdspub/axiom-ui-utilities'\r\nimport { InfoCircledIcon } from '@radix-ui/react-icons'\r\nimport React, { type ReactElement } from 'react'\r\n\r\nexport const FieldDescriptionTooltip = (field: IFormField): ReactElement => {\r\n return (\r\n field.description !== undefined\r\n ? <Tooltip content={field.description} contentClassName='max-w-[300px] leading-8' className='z-[1000]'><InfoCircledIcon /></Tooltip>\r\n : <></>\r\n )\r\n}\r\n\r\nexport const FieldLabelText = (field: IFormField): ReactElement => {\r\n return (\r\n <strong><InlineMarkdown>{field.label}</InlineMarkdown> { field.required === true ? <span className='text-red-500'>*</span> : ''}</strong>\r\n )\r\n}\r\n\r\nexport const FieldDescriptionText = (field: IFormField): ReactElement => {\r\n return (\r\n <>{\r\n field.description !== undefined\r\n ? <p className='text-xs py-2'><InlineMarkdown>{field.description}</InlineMarkdown></p>\r\n : ''\r\n }</>\r\n )\r\n}\r\n\r\nconst FieldLabel = (field: IFormField): ReactElement => {\r\n return <>\r\n <p><FieldLabelText {...field} /></p>\r\n <FieldDescriptionText {...field} />\r\n\r\n </>\r\n}\r\n\r\nexport default FieldLabel\r\n"],"names":["React","Tooltip"],"mappings":";;;;;;AAMO,IAAM,uBAAuB,GAAG,UAAC,KAAiB,EAAA;AACvD,IAAA,QACE,KAAK,CAAC,WAAW,KAAK;AACpB,UAAEA,cAAC,CAAA,aAAA,CAAAC,YAAO,EAAC,EAAA,OAAO,EAAE,KAAK,CAAC,WAAW,EAAE,gBAAgB,EAAC,yBAAyB,EAAC,SAAS,EAAC,UAAU,EAAA;YAACD,cAAC,CAAA,aAAA,CAAA,eAAe,OAAG;UACxHA,cAAK,CAAA,aAAA,CAAAA,cAAA,CAAA,QAAA,EAAA,IAAA,CAAA;AAEb;AAEO,IAAM,cAAc,GAAG,UAAC,KAAiB,EAAA;AAC9C,IAAA,QACEA,cAAA,CAAA,aAAA,CAAA,QAAA,EAAA,IAAA;AAAQ,QAAAA,cAAA,CAAA,aAAA,CAAC,cAAc,EAAA,IAAA,EAAE,KAAK,CAAC,KAAK,CAAkB;;AAAG,QAAA,KAAK,CAAC,QAAQ,KAAK,IAAI,GAAGA,cAAM,CAAA,aAAA,CAAA,MAAA,EAAA,EAAA,SAAS,EAAC,cAAc,QAAS,GAAG,EAAE,CAAU;AAE7I;AAEO,IAAM,oBAAoB,GAAG,UAAC,KAAiB,EAAA;AACpD,IAAA,QACEA,cACE,CAAA,aAAA,CAAAA,cAAA,CAAA,QAAA,EAAA,IAAA,EAAA,KAAK,CAAC,WAAW,KAAK;AACpB,UAAEA,cAAA,CAAA,aAAA,CAAA,GAAA,EAAA,EAAG,SAAS,EAAC,cAAc,EAAA;AAAC,YAAAA,cAAA,CAAA,aAAA,CAAC,cAAc,EAAE,IAAA,EAAA,KAAK,CAAC,WAAW,CAAkB;AAClF,UAAE,EAAE,CACJ;AAER;AAEM,IAAA,UAAU,GAAG,UAAC,KAAiB,EAAA;IACnC,OAAOA,cAAA,CAAA,aAAA,CAAAA,cAAA,CAAA,QAAA,EAAA,IAAA;AACL,QAAAA,cAAA,CAAA,aAAA,CAAA,GAAA,EAAA,IAAA;AAAG,YAAAA,cAAA,CAAA,aAAA,CAAC,cAAc,EAAA,QAAA,CAAA,EAAA,EAAK,KAAK,CAAA,CAAI,CAAI;AACpC,QAAAA,cAAA,CAAA,aAAA,CAAC,oBAAoB,EAAA,QAAA,CAAA,EAAA,EAAK,KAAK,CAAA,CAAI,CAElC;AACL;;;;"}
1
+ {"version":3,"file":"FieldLabel.js","sources":["../../../../../src/Form/Components/FieldLabel.tsx"],"sourcesContent":["import InlineMarkdown from '@/Form/Components/InlineMarkdown'\r\nimport { type IFormField } from '@/Form/Creator/FormCreatorTypes'\r\nimport { Tooltip } from '@axdspub/axiom-ui-utilities'\r\nimport { InfoCircledIcon } from '@radix-ui/react-icons'\r\nimport React, { type ReactElement } from 'react'\r\n\r\nexport const FieldDescriptionTooltip = (field: IFormField): ReactElement => {\r\n return (\r\n field.description !== undefined\r\n ? <Tooltip content={<span className='leading-6'>{field.description}</span>} contentClassName='max-w-[400px]' className='z-[1000]'><InfoCircledIcon /></Tooltip>\r\n : <></>\r\n )\r\n}\r\n\r\nexport const FieldLabelText = (field: IFormField): ReactElement => {\r\n return (\r\n <strong><InlineMarkdown>{field.label}</InlineMarkdown> { field.required === true ? <span className='text-red-500'>*</span> : ''}</strong>\r\n )\r\n}\r\n\r\nexport const FieldDescriptionText = (field: IFormField): ReactElement => {\r\n return (\r\n <>{\r\n field.description !== undefined\r\n ? <p className='text-xs py-2'><InlineMarkdown>{field.description}</InlineMarkdown></p>\r\n : ''\r\n }</>\r\n )\r\n}\r\n\r\nconst FieldLabel = (field: IFormField): ReactElement => {\r\n return <>\r\n <p><FieldLabelText {...field} /></p>\r\n <FieldDescriptionText {...field} />\r\n\r\n </>\r\n}\r\n\r\nexport default FieldLabel\r\n"],"names":["React","Tooltip"],"mappings":";;;;;;AAMO,IAAM,uBAAuB,GAAG,UAAC,KAAiB,EAAA;AACvD,IAAA,QACE,KAAK,CAAC,WAAW,KAAK;UAClBA,6BAACC,YAAO,EAAA,EAAC,OAAO,EAAED,cAAA,CAAA,aAAA,CAAA,MAAA,EAAA,EAAM,SAAS,EAAC,WAAW,EAAA,EAAE,KAAK,CAAC,WAAW,CAAQ,EAAE,gBAAgB,EAAC,eAAe,EAAC,SAAS,EAAC,UAAU,EAAA;YAACA,cAAC,CAAA,aAAA,CAAA,eAAe,OAAG;UACnJA,cAAK,CAAA,aAAA,CAAAA,cAAA,CAAA,QAAA,EAAA,IAAA,CAAA;AAEb;AAEO,IAAM,cAAc,GAAG,UAAC,KAAiB,EAAA;AAC9C,IAAA,QACEA,cAAA,CAAA,aAAA,CAAA,QAAA,EAAA,IAAA;AAAQ,QAAAA,cAAA,CAAA,aAAA,CAAC,cAAc,EAAA,IAAA,EAAE,KAAK,CAAC,KAAK,CAAkB;;AAAG,QAAA,KAAK,CAAC,QAAQ,KAAK,IAAI,GAAGA,cAAM,CAAA,aAAA,CAAA,MAAA,EAAA,EAAA,SAAS,EAAC,cAAc,QAAS,GAAG,EAAE,CAAU;AAE7I;AAEO,IAAM,oBAAoB,GAAG,UAAC,KAAiB,EAAA;AACpD,IAAA,QACEA,cACE,CAAA,aAAA,CAAAA,cAAA,CAAA,QAAA,EAAA,IAAA,EAAA,KAAK,CAAC,WAAW,KAAK;AACpB,UAAEA,cAAA,CAAA,aAAA,CAAA,GAAA,EAAA,EAAG,SAAS,EAAC,cAAc,EAAA;AAAC,YAAAA,cAAA,CAAA,aAAA,CAAC,cAAc,EAAE,IAAA,EAAA,KAAK,CAAC,WAAW,CAAkB;AAClF,UAAE,EAAE,CACJ;AAER;AAEM,IAAA,UAAU,GAAG,UAAC,KAAiB,EAAA;IACnC,OAAOA,cAAA,CAAA,aAAA,CAAAA,cAAA,CAAA,QAAA,EAAA,IAAA;AACL,QAAAA,cAAA,CAAA,aAAA,CAAA,GAAA,EAAA,IAAA;AAAG,YAAAA,cAAA,CAAA,aAAA,CAAC,cAAc,EAAA,QAAA,CAAA,EAAA,EAAK,KAAK,CAAA,CAAI,CAAI;AACpC,QAAAA,cAAA,CAAA,aAAA,CAAC,oBAAoB,EAAA,QAAA,CAAA,EAAA,EAAK,KAAK,CAAA,CAAI,CAElC;AACL;;;;"}
@@ -2,7 +2,7 @@ import FieldCreator from '../Components/FieldCreator.js';
2
2
  import React__default from 'react';
3
3
 
4
4
  var FormFields = function (_a) {
5
- var fields = _a.fields, onChange = _a.onChange, _b = _a.className, className = _b === void 0 ? 'flex flex-col gap-2' : _b;
5
+ var fields = _a.fields, onChange = _a.onChange, _b = _a.className, className = _b === void 0 ? 'flex flex-col gap-2 flex-grow h-full' : _b;
6
6
  return (React__default.createElement(React__default.Fragment, null, fields === undefined || fields.length < 1
7
7
  ? ''
8
8
  : React__default.createElement("div", { className: className }, fields === null || fields === void 0 ? void 0 : fields.map(function (field) {
@@ -1 +1 @@
1
- {"version":3,"file":"FormFields.js","sources":["../../../../../src/Form/Creator/FormFields.tsx"],"sourcesContent":["import FieldCreator from '@/Form/Components/FieldCreator'\r\nimport { type IFormField, type IValueChangeFn } from '@/Form/Creator/FormCreatorTypes'\r\nimport React, { type ReactElement } from 'react'\r\n\r\nconst FormFields = ({\r\n fields,\r\n onChange,\r\n className = 'flex flex-col gap-2'\r\n}: {\r\n fields?: IFormField[]\r\n onChange?: IValueChangeFn\r\n className?: string\r\n}): ReactElement => {\r\n return (\r\n <>\r\n {\r\n fields === undefined || fields.length < 1\r\n ? ''\r\n : <div className={className}>\r\n {\r\n fields?.map((field) => {\r\n return (\r\n <FieldCreator onChange={onChange} field={field} key={field.id} />\r\n )\r\n })\r\n }\r\n </div>\r\n }\r\n </>\r\n )\r\n}\r\n\r\nexport default FormFields\r\n"],"names":["React"],"mappings":";;;AAIM,IAAA,UAAU,GAAG,UAAC,EAQnB,EAAA;QAPC,MAAM,GAAA,EAAA,CAAA,MAAA,EACN,QAAQ,GAAA,EAAA,CAAA,QAAA,EACR,iBAAiC,EAAjC,SAAS,GAAG,EAAA,KAAA,MAAA,GAAA,qBAAqB,GAAA,EAAA;IAMjC,QACIA,cAEE,CAAA,aAAA,CAAAA,cAAA,CAAA,QAAA,EAAA,IAAA,EAAA,MAAM,KAAK,SAAS,IAAI,MAAM,CAAC,MAAM,GAAG;AACtC,UAAE;AACF,UAAEA,cAAA,CAAA,aAAA,CAAA,KAAA,EAAA,EAAK,SAAS,EAAE,SAAS,EAEvB,EAAA,MAAM,KAAN,IAAA,IAAA,MAAM,uBAAN,MAAM,CAAE,GAAG,CAAC,UAAC,KAAK,EAAA;AAChB,YAAA,QACEA,cAAC,CAAA,aAAA,CAAA,YAAY,IAAC,QAAQ,EAAE,QAAQ,EAAE,KAAK,EAAE,KAAK,EAAE,GAAG,EAAE,KAAK,CAAC,EAAE,EAAA,CAAI;AAErE,SAAC,CAAC,CAEF,CAEL;AAET;;;;"}
1
+ {"version":3,"file":"FormFields.js","sources":["../../../../../src/Form/Creator/FormFields.tsx"],"sourcesContent":["import FieldCreator from '@/Form/Components/FieldCreator'\r\nimport { type IFormField, type IValueChangeFn } from '@/Form/Creator/FormCreatorTypes'\r\nimport React, { type ReactElement } from 'react'\r\n\r\nconst FormFields = ({\r\n fields,\r\n onChange,\r\n className = 'flex flex-col gap-2 flex-grow h-full'\r\n}: {\r\n fields?: IFormField[]\r\n onChange?: IValueChangeFn\r\n className?: string\r\n}): ReactElement => {\r\n return (\r\n <>\r\n {\r\n fields === undefined || fields.length < 1\r\n ? ''\r\n : <div className={className}>\r\n {\r\n fields?.map((field) => {\r\n return (\r\n <FieldCreator onChange={onChange} field={field} key={field.id} />\r\n )\r\n })\r\n }\r\n </div>\r\n }\r\n </>\r\n )\r\n}\r\n\r\nexport default FormFields\r\n"],"names":["React"],"mappings":";;;AAIM,IAAA,UAAU,GAAG,UAAC,EAQnB,EAAA;QAPC,MAAM,GAAA,EAAA,CAAA,MAAA,EACN,QAAQ,GAAA,EAAA,CAAA,QAAA,EACR,iBAAkD,EAAlD,SAAS,GAAG,EAAA,KAAA,MAAA,GAAA,sCAAsC,GAAA,EAAA;IAMlD,QACIA,cAEE,CAAA,aAAA,CAAAA,cAAA,CAAA,QAAA,EAAA,IAAA,EAAA,MAAM,KAAK,SAAS,IAAI,MAAM,CAAC,MAAM,GAAG;AACtC,UAAE;AACF,UAAEA,cAAA,CAAA,aAAA,CAAA,KAAA,EAAA,EAAK,SAAS,EAAE,SAAS,EAEvB,EAAA,MAAM,KAAN,IAAA,IAAA,MAAM,uBAAN,MAAM,CAAE,GAAG,CAAC,UAAC,KAAK,EAAA;AAChB,YAAA,QACEA,cAAC,CAAA,aAAA,CAAA,YAAY,IAAC,QAAQ,EAAE,QAAQ,EAAE,KAAK,EAAE,KAAK,EAAE,GAAG,EAAE,KAAK,CAAC,EAAE,EAAA,CAAI;AAErE,SAAC,CAAC,CAEF,CAEL;AAET;;;;"}
@@ -1 +1 @@
1
- {"version":3,"file":"NavElement.js","sources":["../../../../../src/Form/Creator/NavElement.tsx"],"sourcesContent":["import { Button, utils } from '@axdspub/axiom-ui-utilities'\r\nimport React, { type ReactElement, type ReactNode } from 'react'\r\nimport { Link } from 'react-router-dom'\r\n\r\nconst NavElement = ({\r\n className,\r\n children,\r\n path,\r\n id,\r\n navigable = true,\r\n onClick\r\n}: {\r\n className?: string\r\n navigable?: boolean\r\n children: ReactNode\r\n path: string\r\n id: string\r\n onClick?: () => void\r\n}): ReactElement => {\r\n return (\r\n navigable\r\n ? <Link to={`${path !== '' ? `${path}/` : ''}${id}`} className={utils.createButtonClass({\r\n className\r\n })}>{children}</Link>\r\n : <Button className={className} onClick={onClick}>{children}</Button>\r\n\r\n )\r\n}\r\n\r\nexport default NavElement\r\n"],"names":["React","utils"],"mappings":";;;;AAIM,IAAA,UAAU,GAAG,UAAC,EAcnB,EAAA;AAbC,IAAA,IAAA,SAAS,eAAA,EACT,QAAQ,cAAA,EACR,IAAI,UAAA,EACJ,EAAE,QAAA,EACF,EAAA,GAAA,EAAA,CAAA,SAAgB,EAAhB,SAAS,GAAA,EAAA,KAAA,MAAA,GAAG,IAAI,GAAA,EAAA,EAChB,OAAO,GAAA,EAAA,CAAA,OAAA;AASP,IAAA,QACE;AACE,UAAEA,cAAA,CAAA,aAAA,CAAC,IAAI,EAAA,EAAC,EAAE,EAAE,EAAG,CAAA,MAAA,CAAA,IAAI,KAAK,EAAE,GAAG,EAAA,CAAA,MAAA,CAAG,IAAI,EAAA,GAAA,CAAG,GAAG,EAAE,CAAG,CAAA,MAAA,CAAA,EAAE,CAAE,EAAE,SAAS,EAAEC,OAAK,CAAC,iBAAiB,CAAC;AACtF,gBAAA,SAAS,EAAA;aACV,CAAC,EAAA,EAAG,QAAQ;AACb,UAAED,cAAA,CAAA,aAAA,CAAC,MAAM,EAAA,EAAC,SAAS,EAAE,SAAS,EAAE,OAAO,EAAE,OAAO,EAAA,EAAG,QAAQ,CAAU;AAG3E;;;;"}
1
+ {"version":3,"file":"NavElement.js","sources":["../../../../../src/Form/Creator/NavElement.tsx"],"sourcesContent":["import { Button, utils } from '@axdspub/axiom-ui-utilities'\r\nimport React, { type ReactElement, type ReactNode } from 'react'\r\nimport { Link } from 'react-router-dom'\r\n\r\nconst NavElement = ({\r\n className,\r\n children,\r\n path,\r\n id,\r\n navigable = true,\r\n onClick\r\n}: {\r\n className?: string\r\n overrideClassName?: string\r\n navigable?: boolean\r\n children: ReactNode\r\n path: string\r\n id: string\r\n onClick?: () => void\r\n}): ReactElement => {\r\n return (\r\n navigable\r\n ? <Link to={`${path !== '' ? `${path}/` : ''}${id}`} className={utils.createButtonClass({\r\n className\r\n })}>{children}</Link>\r\n : <Button className={className} onClick={onClick}>{children}</Button>\r\n\r\n )\r\n}\r\n\r\nexport default NavElement\r\n"],"names":["React","utils"],"mappings":";;;;AAIM,IAAA,UAAU,GAAG,UAAC,EAenB,EAAA;AAdC,IAAA,IAAA,SAAS,eAAA,EACT,QAAQ,cAAA,EACR,IAAI,UAAA,EACJ,EAAE,QAAA,EACF,EAAA,GAAA,EAAA,CAAA,SAAgB,EAAhB,SAAS,GAAA,EAAA,KAAA,MAAA,GAAG,IAAI,GAAA,EAAA,EAChB,OAAO,GAAA,EAAA,CAAA,OAAA;AAUP,IAAA,QACE;AACE,UAAEA,cAAA,CAAA,aAAA,CAAC,IAAI,EAAA,EAAC,EAAE,EAAE,EAAG,CAAA,MAAA,CAAA,IAAI,KAAK,EAAE,GAAG,EAAA,CAAA,MAAA,CAAG,IAAI,EAAA,GAAA,CAAG,GAAG,EAAE,CAAG,CAAA,MAAA,CAAA,EAAE,CAAE,EAAE,SAAS,EAAEC,OAAK,CAAC,iBAAiB,CAAC;AACtF,gBAAA,SAAS,EAAA;aACV,CAAC,EAAA,EAAG,QAAQ;AACb,UAAED,cAAA,CAAA,aAAA,CAAC,MAAM,EAAA,EAAC,SAAS,EAAE,SAAS,EAAE,OAAO,EAAE,OAAO,EAAA,EAAG,QAAQ,CAAU;AAG3E;;;;"}
@@ -35,23 +35,26 @@ var PageNavMobile = function (_a) {
35
35
  React__default.createElement(Button, { type: 'default', size: 'sm', className: 'bg-none border-none p-2', onClick: function () {
36
36
  setActive(!active);
37
37
  } },
38
- React__default.createElement("div", { className: '-mr-4 -ml-2' }, active
38
+ React__default.createElement("div", { className: '-mr-6 -ml-2' }, active
39
39
  ? React__default.createElement(Cross2Icon, { className: 'inline' })
40
- : React__default.createElement(DropdownMenuIcon, { className: 'inline w-8 h-8' }))),
40
+ : React__default.createElement(DropdownMenuIcon, { className: 'inline w-8 h-8 rotate-180' }))),
41
41
  active
42
42
  ? React__default.createElement(React__default.Fragment, null,
43
43
  React__default.createElement("div", { className: 'bg-slate-400 bg-opacity-40 fixed top-0 left-0 right-0 bottom-0 z-40', onClick: function () { setActive(false); } }),
44
- React__default.createElement("div", { className: 'fixed left-0 top-0 bottom-0 flex flex-col bg-white z-50 w-[70%] gap-2 p-4 shadow-lg animate-slide-in' },
44
+ React__default.createElement("div", { className: 'fixed left-0 top-0 bottom-0 flex flex-col bg-white z-50 w-[60%] gap-2 p-4 shadow-lg animate-slide-in' },
45
45
  React__default.createElement("div", null,
46
46
  React__default.createElement(DropdownMenuIcon, { className: 'float-left cursor-pointer w-8 h-8', onClick: function () { setActive(false); } }),
47
47
  React__default.createElement(Cross2Icon, { className: 'cursor-pointer w-6 h-6 float-right', onClick: function () { setActive(false); } })), sections === null || sections === void 0 ? void 0 :
48
48
  sections.map(function (p) {
49
49
  return (React__default.createElement(NavElement, { key: p.id, path: path, id: p.id, navigable: urlNavigable !== null && urlNavigable !== void 0 ? urlNavigable : true, onClick: function () { setActiveId(p.id); }, className: "border-none rounded-none bg-slate-100 text-sm font-normal text-left ".concat(activeId === p.id ? 'bg-slate-700 text-white' : 'hover:bg-slate-200') }, p.label));
50
50
  })))
51
- : React__default.createElement(React__default.Fragment, null));
51
+ : React__default.createElement("div", { className: 'flex flex-col gap-2 mt-4' }, sections === null || sections === void 0 ? void 0 : sections.map(function (p) {
52
+ return (React__default.createElement(NavElement, { key: p.id, path: path, id: p.id, navigable: urlNavigable !== null && urlNavigable !== void 0 ? urlNavigable : true, onClick: function () { setActiveId(p.id); }, className: 'p-2 text-center border-none' },
53
+ React__default.createElement("span", { className: "block w-4 h-4 rounded-full ".concat(activeId === p.id ? 'bg-black' : 'bg-white border-2 border-slate-400') }, "\u00A0")));
54
+ })));
52
55
  };
53
56
  var ActivePage = function (_a) {
54
- var formSection = _a.formSection, onChange = _a.onChange, _b = _a.className, className = _b === void 0 ? 'flex flex-col gap-2 flex-grow' : _b, level = _a.level;
57
+ var formSection = _a.formSection, onChange = _a.onChange, _b = _a.className, className = _b === void 0 ? 'flex flex-col gap-2 flex-grow h-full' : _b, level = _a.level;
55
58
  return (React__default.createElement("div", { className: className },
56
59
  (formSection === null || formSection === void 0 ? void 0 : formSection.description) !== undefined
57
60
  ? React__default.createElement("p", { className: ' text-sm' },
@@ -77,7 +80,7 @@ var PageLayout = function (props) {
77
80
  };
78
81
  var PageLayoutContent = function (_a) {
79
82
  var _b;
80
- var sections = _a.sections, onChange = _a.onChange; _a.inputOverrides; var _c = _a.ContentComponent, ContentComponent = _c === void 0 ? ActivePage : _c, _d = _a.NavComponent, NavComponent = _d === void 0 ? PageNav : _d, _e = _a.className, className = _e === void 0 ? 'flex flex-row gap-8' : _e, level = _a.level;
83
+ var sections = _a.sections, onChange = _a.onChange; _a.inputOverrides; var _c = _a.ContentComponent, ContentComponent = _c === void 0 ? ActivePage : _c, _d = _a.NavComponent, NavComponent = _d === void 0 ? PageNav : _d, _e = _a.className, className = _e === void 0 ? 'flex flex-row gap-8 flex-grow' : _e, level = _a.level;
81
84
  if (sections === undefined) {
82
85
  return React__default.createElement(React__default.Fragment, null);
83
86
  }
@@ -1 +1 @@
1
- {"version":3,"file":"Page.js","sources":["../../../../../src/Form/Creator/Page.tsx"],"sourcesContent":["import { FormSectionContextProvider, useFormSectionContext } from '@/Form/Creator/FormSectionContextProvider'\r\nimport { type IFormSectionStatus } from '@/Form/Creator/FormCreator'\r\nimport { type IFormSection, type IValueChangeFn, type IFieldInputProps } from '@/Form/Creator/FormCreatorTypes'\r\nimport FormSection from '@/Form/Creator/FormSection'\r\nimport NavElement from '@/Form/Creator/NavElement'\r\nimport { calculateSectionStatus } from '@/utils/validators'\r\nimport { Cross2Icon, DropdownMenuIcon, InfoCircledIcon } from '@radix-ui/react-icons'\r\nimport React, { useEffect, useState, type ReactElement } from 'react'\r\nimport { useParams } from 'react-router-dom'\r\nimport { useFormContext } from '@/Form/Creator/FormContextProvider'\r\nimport InlineMarkdown from '@/Form/Components/InlineMarkdown'\r\nimport { useAtom } from 'jotai'\r\nimport layoutAtom from '@/utils/responsive/layoutState'\r\nimport { Button } from '@axdspub/axiom-ui-utilities'\r\n\r\nconst PageNav = ({\r\n sections,\r\n level\r\n}: {\r\n sections?: IFormSection[]\r\n level: number\r\n}): ReactElement => {\r\n const [layout] = useAtom(layoutAtom)\r\n const { urlNavigable } = useFormContext()\r\n const { activeId, setActiveId, path } = useFormSectionContext()\r\n return (\r\n layout.size === 'sm' || layout.size === 'md'\r\n ? <PageNavMobile sections={sections} level={level} />\r\n : <div className='flex flex-col w-[200px] border-slate-200'>{\r\n sections?.map(p => {\r\n return (\r\n <NavElement\r\n key={p.id}\r\n path={path}\r\n id={p.id}\r\n navigable={urlNavigable ?? true}\r\n onClick={() => { setActiveId(p.id) }}\r\n className={ `border-none rounded-none bg-slate-100 text-sm font-normal text-left ${activeId === p.id ? 'bg-slate-700 text-white' : 'hover:bg-slate-200'}`}\r\n >{p.label}</NavElement>\r\n )\r\n })\r\n }</div>\r\n\r\n )\r\n}\r\n\r\nconst PageNavMobile = ({\r\n sections,\r\n level\r\n}: {\r\n sections?: IFormSection[]\r\n level: number\r\n}): ReactElement => {\r\n const [active, setActive] = useState(false)\r\n const { activeId, setActiveId, path } = useFormSectionContext()\r\n const { urlNavigable } = useFormContext()\r\n\r\n useEffect(() => {\r\n setActive(false)\r\n }, [activeId])\r\n\r\n return <div className='relative'><Button\r\n type='default'\r\n size='sm'\r\n className='bg-none border-none p-2'\r\n onClick={() => {\r\n setActive(!active)\r\n }}\r\n >\r\n <div className='-mr-4 -ml-2'>{\r\n active\r\n ? <Cross2Icon className='inline' />\r\n : <DropdownMenuIcon className='inline w-8 h-8' />\r\n }\r\n </div>\r\n </Button>\r\n\r\n {\r\n active\r\n ? <><div className='bg-slate-400 bg-opacity-40 fixed top-0 left-0 right-0 bottom-0 z-40' onClick={() => { setActive(false) }}></div>\r\n <div className='fixed left-0 top-0 bottom-0 flex flex-col bg-white z-50 w-[70%] gap-2 p-4 shadow-lg animate-slide-in'>\r\n <div>\r\n <DropdownMenuIcon className='float-left cursor-pointer w-8 h-8' onClick={() => { setActive(false) }} />\r\n <Cross2Icon className='cursor-pointer w-6 h-6 float-right' onClick={() => { setActive(false) }} />\r\n </div>\r\n\r\n {\r\n sections?.map(p => {\r\n return (\r\n <NavElement\r\n key={p.id}\r\n path={path}\r\n id={p.id}\r\n navigable={urlNavigable ?? true}\r\n onClick={() => { setActiveId(p.id) }}\r\n className={ `border-none rounded-none bg-slate-100 text-sm font-normal text-left ${activeId === p.id ? 'bg-slate-700 text-white' : 'hover:bg-slate-200'}`}\r\n >{p.label}</NavElement>\r\n )\r\n })\r\n }\r\n </div>\r\n </>\r\n : <></>\r\n }\r\n </div>\r\n}\r\n\r\nexport interface INavProps {\r\n sections: IFormSection[]\r\n sectionStatus: IFormSectionStatus\r\n level: number\r\n}\r\n\r\nexport interface IPageLayoutProps {\r\n sections?: IFormSection[]\r\n onChange?: IValueChangeFn\r\n level: number\r\n ContentComponent?: React.FC<{\r\n level: number\r\n formSection?: IFormSection\r\n onChange?: IValueChangeFn\r\n sectionStatus: IFormSectionStatus\r\n }>\r\n NavComponent?: React.FC<INavProps>\r\n className?: string\r\n inputOverrides?: Record<string, React.FC<IFieldInputProps>>\r\n}\r\n\r\nexport const ActivePage = ({\r\n formSection,\r\n onChange,\r\n className = 'flex flex-col gap-2 flex-grow',\r\n level\r\n}: {\r\n formSection?: IFormSection\r\n onChange?: IValueChangeFn\r\n className?: string\r\n level: number\r\n}): ReactElement => {\r\n return (\r\n <div className={className}>\r\n {\r\n formSection?.description !== undefined\r\n ? <p className=' text-sm'><InfoCircledIcon className='inline -mt-1' /> <InlineMarkdown>{formSection.description}</InlineMarkdown></p>\r\n : ''\r\n }\r\n <FormSection formSection={formSection} onChange={onChange} level={level + 1} />\r\n </div>\r\n )\r\n}\r\n\r\nconst PageLayout = (props: IPageLayoutProps): ReactElement => {\r\n if (props.sections === undefined) {\r\n return <></>\r\n }\r\n const { urlNavigable } = useFormContext()\r\n const params = (useParams()['*'] ?? '').split('/')\r\n const path = params.slice(0, props.level).join('/')\r\n const id = urlNavigable\r\n ? (params[props.level] && params[props.level] !== '') ? params[props.level] : (props.sections[0]?.id ?? null)\r\n : props.sections[0]?.id ?? null\r\n\r\n return (\r\n <FormSectionContextProvider path={path} id={id}>\r\n <PageLayoutContent {...props} />\r\n </FormSectionContextProvider>\r\n )\r\n}\r\n\r\nconst PageLayoutContent = ({\r\n\r\n sections,\r\n onChange,\r\n inputOverrides,\r\n ContentComponent = ActivePage,\r\n NavComponent = PageNav,\r\n className = 'flex flex-row gap-8',\r\n level\r\n}: IPageLayoutProps): ReactElement => {\r\n if (sections === undefined) {\r\n return <></>\r\n }\r\n\r\n const { setFormValues, formValues } = useFormContext()\r\n const sectionStatus = calculateSectionStatus(sections, [formValues, setFormValues])\r\n const { activeId } = useFormSectionContext()\r\n const formSection = sections?.find(s => s.id === activeId) ?? sections?.[0]\r\n\r\n return (\r\n\r\n <div className={className}>\r\n <NavComponent\r\n sections={sections}\r\n sectionStatus={sectionStatus}\r\n level={level}\r\n />\r\n <ContentComponent\r\n formSection={formSection}\r\n onChange={onChange}\r\n sectionStatus={sectionStatus}\r\n level={level}\r\n />\r\n </div>\r\n )\r\n}\r\n\r\nexport default PageLayout\r\n"],"names":["React"],"mappings":"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"}
1
+ {"version":3,"file":"Page.js","sources":["../../../../../src/Form/Creator/Page.tsx"],"sourcesContent":["import { FormSectionContextProvider, useFormSectionContext } from '@/Form/Creator/FormSectionContextProvider'\r\nimport { type IFormSectionStatus } from '@/Form/Creator/FormCreator'\r\nimport { type IFormSection, type IValueChangeFn, type IFieldInputProps } from '@/Form/Creator/FormCreatorTypes'\r\nimport FormSection from '@/Form/Creator/FormSection'\r\nimport NavElement from '@/Form/Creator/NavElement'\r\nimport { calculateSectionStatus } from '@/utils/validators'\r\nimport { Cross2Icon, DropdownMenuIcon, InfoCircledIcon } from '@radix-ui/react-icons'\r\nimport React, { useEffect, useState, type ReactElement } from 'react'\r\nimport { useParams } from 'react-router-dom'\r\nimport { useFormContext } from '@/Form/Creator/FormContextProvider'\r\nimport InlineMarkdown from '@/Form/Components/InlineMarkdown'\r\nimport { useAtom } from 'jotai'\r\nimport layoutAtom from '@/utils/responsive/layoutState'\r\nimport { Button } from '@axdspub/axiom-ui-utilities'\r\n\r\nconst PageNav = ({\r\n sections,\r\n level\r\n}: {\r\n sections?: IFormSection[]\r\n level: number\r\n}): ReactElement => {\r\n const [layout] = useAtom(layoutAtom)\r\n const { urlNavigable } = useFormContext()\r\n const { activeId, setActiveId, path } = useFormSectionContext()\r\n return (\r\n layout.size === 'sm' || layout.size === 'md'\r\n ? <PageNavMobile sections={sections} level={level} />\r\n : <div className='flex flex-col w-[200px] border-slate-200'>{\r\n sections?.map(p => {\r\n return (\r\n <NavElement\r\n key={p.id}\r\n path={path}\r\n id={p.id}\r\n navigable={urlNavigable ?? true}\r\n onClick={() => { setActiveId(p.id) }}\r\n className={ `border-none rounded-none bg-slate-100 text-sm font-normal text-left ${activeId === p.id ? 'bg-slate-700 text-white' : 'hover:bg-slate-200'}`}\r\n >{p.label}</NavElement>\r\n )\r\n })\r\n }</div>\r\n\r\n )\r\n}\r\n\r\nconst PageNavMobile = ({\r\n sections,\r\n level\r\n}: {\r\n sections?: IFormSection[]\r\n level: number\r\n}): ReactElement => {\r\n const [active, setActive] = useState(false)\r\n const { activeId, setActiveId, path } = useFormSectionContext()\r\n const { urlNavigable } = useFormContext()\r\n\r\n useEffect(() => {\r\n setActive(false)\r\n }, [activeId])\r\n\r\n return <div className='relative'><Button\r\n type='default'\r\n size='sm'\r\n className='bg-none border-none p-2'\r\n onClick={() => {\r\n setActive(!active)\r\n }}\r\n >\r\n <div className='-mr-6 -ml-2'>{\r\n active\r\n ? <Cross2Icon className='inline' />\r\n : <DropdownMenuIcon className='inline w-8 h-8 rotate-180' />\r\n }\r\n </div>\r\n </Button>\r\n\r\n {\r\n active\r\n ? <><div className='bg-slate-400 bg-opacity-40 fixed top-0 left-0 right-0 bottom-0 z-40' onClick={() => { setActive(false) }}></div>\r\n <div className='fixed left-0 top-0 bottom-0 flex flex-col bg-white z-50 w-[60%] gap-2 p-4 shadow-lg animate-slide-in'>\r\n <div>\r\n <DropdownMenuIcon className='float-left cursor-pointer w-8 h-8' onClick={() => { setActive(false) }} />\r\n <Cross2Icon className='cursor-pointer w-6 h-6 float-right' onClick={() => { setActive(false) }} />\r\n </div>\r\n\r\n {\r\n sections?.map(p => {\r\n return (\r\n <NavElement\r\n key={p.id}\r\n path={path}\r\n id={p.id}\r\n navigable={urlNavigable ?? true}\r\n onClick={() => { setActiveId(p.id) }}\r\n className={ `border-none rounded-none bg-slate-100 text-sm font-normal text-left ${activeId === p.id ? 'bg-slate-700 text-white' : 'hover:bg-slate-200'}`}\r\n >{p.label}</NavElement>\r\n )\r\n })\r\n }\r\n </div>\r\n </>\r\n : <div className='flex flex-col gap-2 mt-4'>\r\n {\r\n sections?.map(p => {\r\n return (\r\n <NavElement\r\n key={p.id}\r\n path={path}\r\n id={p.id}\r\n navigable={urlNavigable ?? true}\r\n onClick={() => { setActiveId(p.id) }}\r\n className={'p-2 text-center border-none'}\r\n ><span className={`block w-4 h-4 rounded-full ${activeId === p.id ? 'bg-black' : 'bg-white border-2 border-slate-400'}`}>&nbsp;</span></NavElement>\r\n )\r\n })\r\n }\r\n\r\n </div>\r\n }\r\n </div>\r\n}\r\n\r\nexport interface INavProps {\r\n sections: IFormSection[]\r\n sectionStatus: IFormSectionStatus\r\n level: number\r\n}\r\n\r\nexport interface IPageLayoutProps {\r\n sections?: IFormSection[]\r\n onChange?: IValueChangeFn\r\n level: number\r\n ContentComponent?: React.FC<{\r\n level: number\r\n formSection?: IFormSection\r\n onChange?: IValueChangeFn\r\n sectionStatus: IFormSectionStatus\r\n }>\r\n NavComponent?: React.FC<INavProps>\r\n className?: string\r\n inputOverrides?: Record<string, React.FC<IFieldInputProps>>\r\n}\r\n\r\nexport const ActivePage = ({\r\n formSection,\r\n onChange,\r\n className = 'flex flex-col gap-2 flex-grow h-full',\r\n level\r\n}: {\r\n formSection?: IFormSection\r\n onChange?: IValueChangeFn\r\n className?: string\r\n level: number\r\n}): ReactElement => {\r\n return (\r\n <div className={className}>\r\n {\r\n formSection?.description !== undefined\r\n ? <p className=' text-sm'><InfoCircledIcon className='inline -mt-1' /> <InlineMarkdown>{formSection.description}</InlineMarkdown></p>\r\n : ''\r\n }\r\n <FormSection formSection={formSection} onChange={onChange} level={level + 1} />\r\n </div>\r\n )\r\n}\r\n\r\nconst PageLayout = (props: IPageLayoutProps): ReactElement => {\r\n if (props.sections === undefined) {\r\n return <></>\r\n }\r\n const { urlNavigable } = useFormContext()\r\n const params = (useParams()['*'] ?? '').split('/')\r\n const path = params.slice(0, props.level).join('/')\r\n const id = urlNavigable\r\n ? (params[props.level] && params[props.level] !== '') ? params[props.level] : (props.sections[0]?.id ?? null)\r\n : props.sections[0]?.id ?? null\r\n\r\n return (\r\n <FormSectionContextProvider path={path} id={id}>\r\n <PageLayoutContent {...props} />\r\n </FormSectionContextProvider>\r\n )\r\n}\r\n\r\nconst PageLayoutContent = ({\r\n\r\n sections,\r\n onChange,\r\n inputOverrides,\r\n ContentComponent = ActivePage,\r\n NavComponent = PageNav,\r\n className = 'flex flex-row gap-8 flex-grow',\r\n level\r\n}: IPageLayoutProps): ReactElement => {\r\n if (sections === undefined) {\r\n return <></>\r\n }\r\n\r\n const { setFormValues, formValues } = useFormContext()\r\n const sectionStatus = calculateSectionStatus(sections, [formValues, setFormValues])\r\n const { activeId } = useFormSectionContext()\r\n const formSection = sections?.find(s => s.id === activeId) ?? sections?.[0]\r\n\r\n return (\r\n\r\n <div className={className}>\r\n <NavComponent\r\n sections={sections}\r\n sectionStatus={sectionStatus}\r\n level={level}\r\n />\r\n <ContentComponent\r\n formSection={formSection}\r\n onChange={onChange}\r\n sectionStatus={sectionStatus}\r\n level={level}\r\n />\r\n </div>\r\n )\r\n}\r\n\r\nexport default PageLayout\r\n"],"names":["React"],"mappings":"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"}
@@ -138,7 +138,7 @@ var WizardLayout = function (props) {
138
138
  };
139
139
  var WizardLayoutContent = function (_a) {
140
140
  var _b;
141
- var sections = _a.sections, onChange = _a.onChange, _c = _a.ContentComponent, ContentComponent = _c === void 0 ? ActivePage : _c, _d = _a.NavComponent, NavComponent = _d === void 0 ? WizardNav : _d, _e = _a.SmallNavComponent, SmallNavComponent = _e === void 0 ? WizardNavSmall : _e, _f = _a.className, className = _f === void 0 ? 'flex flex-col gap-4 pt-8' : _f, level = _a.level;
141
+ var sections = _a.sections, onChange = _a.onChange, _c = _a.ContentComponent, ContentComponent = _c === void 0 ? ActivePage : _c, _d = _a.NavComponent, NavComponent = _d === void 0 ? WizardNav : _d, _e = _a.SmallNavComponent, SmallNavComponent = _e === void 0 ? WizardNavSmall : _e, _f = _a.className, className = _f === void 0 ? 'flex flex-col gap-4 pt-8 flex-grow h-full' : _f, level = _a.level;
142
142
  if (sections === undefined) {
143
143
  return React__default.createElement(React__default.Fragment, null);
144
144
  }
@@ -1 +1 @@
1
- {"version":3,"file":"Wizard.js","sources":["../../../../../src/Form/Creator/Wizard.tsx"],"sourcesContent":["import { calculateSectionStatus } from '@/utils/validators'\r\nimport { type IFormSectionStatus } from '@/Form/Creator/FormCreator'\r\nimport { type IFormSection, type IWizardStep } from '@/Form/Creator/FormCreatorTypes'\r\nimport { type IPageLayoutProps, ActivePage, type INavProps } from '@/Form/Creator/Page'\r\nimport { SelectInput, utils } from '@axdspub/axiom-ui-utilities'\r\nimport { CaretRightIcon, CaretLeftIcon } from '@radix-ui/react-icons'\r\nimport React, { type ReactElement } from 'react'\r\nimport { useParams } from 'react-router-dom'\r\nimport NavElement from '@/Form/Creator/NavElement'\r\nimport { FormSectionContextProvider, useFormSectionContext } from '@/Form/Creator/FormSectionContextProvider'\r\nimport { useFormContext } from '@/Form/Creator/FormContextProvider'\r\nimport { useAtomValue } from 'jotai'\r\nimport layoutAtom from '@/utils/responsive/layoutState'\r\n\r\nconst sortByOrder = (a: IWizardStep, b: IWizardStep): number => {\r\n const aOrder = a.order ?? Infinity\r\n const bOrder = b.order ?? Infinity\r\n return aOrder - bOrder\r\n}\r\n\r\nexport const WizardNavMobile = ({\r\n sections,\r\n sectionStatus,\r\n level\r\n}: INavProps): ReactElement => {\r\n const { activeId, setActiveId, path } = useFormSectionContext()\r\n const { urlNavigable } = useFormContext()\r\n const steps = ((sections ?? []) as IWizardStep[]).sort(sortByOrder)\r\n const stepsMap = Object.fromEntries(steps.map(p => [p.id, p]))\r\n const currentStep = stepsMap[activeId ?? ''] ?? steps[0]\r\n const currentIndex = steps.indexOf(currentStep)\r\n const nextIndex = currentIndex + 1\r\n const prevIndex = currentIndex - 1\r\n // const params = (useParams()['*'] ?? '').split('/')\r\n // const path = params.slice(0, level).join('/')\r\n return (\r\n <div className='flex flex-row gap-4 justify-center items-center'>{\r\n prevIndex >= 0\r\n ? <NavElement\r\n className='p-2 bg-none border-none text-sm hover:bg-slate-none'\r\n path={path}\r\n id={steps[prevIndex].id}\r\n navigable={urlNavigable ?? true}\r\n onClick={() => { setActiveId(steps[prevIndex].id) }}\r\n >\r\n <CaretLeftIcon className='inline w-8 h-8' />\r\n </NavElement>\r\n : <span className={utils.createButtonClass({\r\n className: 'p-2 bg-none border-none text-sm text-slate-400 '\r\n })}><CaretLeftIcon className='inline w-8 h-8' /></span>\r\n }\r\n <div className='flex-grow'>\r\n <SelectInput\r\n includePrompt={false}\r\n id='wizard-step-select'\r\n testId='wizard-step-select'\r\n className='shadow-lg'\r\n value={activeId ?? ''}\r\n onChange={(e) => {\r\n setActiveId(e?.value)\r\n }}\r\n options={steps.map(p => ({\r\n value: p.id,\r\n label: p.label ?? p.id\r\n }))}\r\n />\r\n </div>\r\n\r\n {\r\n nextIndex < steps.length\r\n ? <NavElement\r\n path={path}\r\n id={steps[nextIndex].id}\r\n navigable={urlNavigable ?? true}\r\n className='p-2 bg-none border-none text-sm hover:bg-none'\r\n onClick={() => { setActiveId(steps[nextIndex].id) }}\r\n >\r\n <CaretRightIcon className='inline w-8 h-8' />\r\n </NavElement>\r\n : <span className={utils.createButtonClass({\r\n className: 'p-2 bg-none border-none text-sm text-slate-400'\r\n })}><CaretRightIcon className='inline w-8 h-8' /></span>\r\n }\r\n </div>\r\n )\r\n}\r\n\r\nexport const WizardNav = (props: INavProps): ReactElement => {\r\n const layout = useAtomValue(layoutAtom)\r\n return layout.size === 'sm'\r\n ? <WizardNavMobile {...props} />\r\n : <WizardNavLargeScreen {...props} />\r\n}\r\n\r\nexport const WizardNavLargeScreen = ({\r\n sections,\r\n sectionStatus,\r\n level\r\n}: INavProps): ReactElement => {\r\n const { form } = useFormContext()\r\n const steps = ((sections ?? []) as IWizardStep[]).sort(sortByOrder)\r\n const { activeId, setActiveId, path } = useFormSectionContext()\r\n const { urlNavigable } = useFormContext()\r\n\r\n return (\r\n <div className='relative'>\r\n <div className='h-[2px] top-8 bg-slate-300 absolute left-0 right-0 z-0' />\r\n <div className='flex flex-row gap-4 py-4 max-w-full overflow-x-auto overflow-y-visible'>\r\n {\r\n steps.map((p, i) => {\r\n return (\r\n <div key={p.id} className='flex-grow first:flex-shrink last:flex-shrink text-center first:text-left first:ml-4 last:text-right last:mr-4 z-10 relative'>\r\n <NavElement\r\n\r\n path={path}\r\n id={p.id}\r\n navigable={urlNavigable ?? true}\r\n className={`whitespace-nowrap px-8 bg-white z-20 border-none text-sm ${activeId === p.id ? 'bg-slate-600 text-white' : 'hover:bg-slate-100'}`}\r\n onClick={() => { setActiveId(p.id) }}\r\n >\r\n {p.label}\r\n </NavElement>\r\n {\r\n i < steps.length - 1 && steps.length > 1\r\n ? <span className='hidden absolute right-0 top-2 w-4 h-full bg-white'><CaretRightIcon className='w-4 h-6 fill-slate-300 stroke-slate-300' /></span>\r\n : ''\r\n }\r\n {\r\n form?.settings?.show_progress\r\n ? <>\r\n <p className='text-xs mt-4'>{sectionStatus[p.id]?.completed} of {sectionStatus[p.id]?.total} total</p>\r\n <p className='text-xs mt-2'>{sectionStatus[p.id]?.requiredCompleted} of {sectionStatus[p.id]?.requiredTotal} required</p>\r\n </>\r\n : ''\r\n }\r\n\r\n </div>\r\n )\r\n })\r\n }</div>\r\n </div>\r\n )\r\n}\r\n\r\nexport const WizardNavSmall = ({\r\n sections,\r\n sectionStatus,\r\n level\r\n}: {\r\n sections?: IFormSection[]\r\n sectionStatus: IFormSectionStatus\r\n level: number\r\n}): ReactElement => {\r\n const { activeId, setActiveId, path } = useFormSectionContext()\r\n const { urlNavigable } = useFormContext()\r\n const steps = ((sections ?? []) as IWizardStep[]).sort(sortByOrder)\r\n const stepsMap = Object.fromEntries(steps.map(p => [p.id, p]))\r\n const currentStep = stepsMap[activeId ?? ''] ?? steps[0]\r\n const currentIndex = steps.indexOf(currentStep)\r\n const nextIndex = currentIndex + 1\r\n const prevIndex = currentIndex - 1\r\n // const params = (useParams()['*'] ?? '').split('/')\r\n // const path = params.slice(0, level).join('/')\r\n return (\r\n <div className='flex flex-row gap-4 justify-end'>{\r\n prevIndex >= 0\r\n ? <NavElement\r\n className='px-4 bg-slate-600 text-white border-none text-sm hover:bg-slate-700'\r\n path={path}\r\n id={steps[prevIndex].id}\r\n navigable={urlNavigable ?? true}\r\n onClick={() => { setActiveId(steps[prevIndex].id) }}\r\n >\r\n <CaretLeftIcon className='inline' /> Previous\r\n </NavElement>\r\n : <span className={utils.createButtonClass({\r\n className: 'px-4 bg-white border-none text-sm text-slate-400'\r\n })}>Previous</span>\r\n }\r\n {\r\n nextIndex < steps.length\r\n ? <NavElement\r\n path={path}\r\n id={steps[nextIndex].id}\r\n navigable={urlNavigable ?? true}\r\n className='px-4 bg-slate-600 text-white border-none text-sm hover:bg-slate-700'\r\n onClick={() => { setActiveId(steps[nextIndex].id) }}\r\n >\r\n Next <CaretRightIcon className='inline' />\r\n </NavElement>\r\n : <span className={utils.createButtonClass({\r\n className: 'px-4 bg-white border-none text-sm text-slate-400'\r\n })}>Next</span>\r\n }\r\n </div>\r\n )\r\n}\r\n\r\nexport interface IWizardLayoutProps extends IPageLayoutProps {\r\n SmallNavComponent?: React.FC<{\r\n level: number\r\n sections?: IFormSection[]\r\n sectionStatus: IFormSectionStatus\r\n className?: string\r\n }>\r\n}\r\n\r\nconst WizardLayout = (props: IPageLayoutProps): ReactElement => {\r\n if (props.sections === undefined) {\r\n return <></>\r\n }\r\n const { urlNavigable } = useFormContext()\r\n const params = (useParams()['*'] ?? '').split('/')\r\n const path = params.slice(0, props.level).join('/')\r\n const id = urlNavigable\r\n ? (params[props.level] && params[props.level] !== '') ? params[props.level] : (props.sections[0]?.id ?? null)\r\n : props.sections[0]?.id ?? null\r\n\r\n return (\r\n <FormSectionContextProvider path={path} id={id}>\r\n <WizardLayoutContent {...props} />\r\n </FormSectionContextProvider>\r\n )\r\n}\r\n\r\nconst WizardLayoutContent = ({\r\n sections,\r\n onChange,\r\n ContentComponent = ActivePage,\r\n NavComponent = WizardNav,\r\n SmallNavComponent = WizardNavSmall,\r\n className = 'flex flex-col gap-4 pt-8',\r\n level\r\n}: IWizardLayoutProps): ReactElement => {\r\n if (sections === undefined) {\r\n return <></>\r\n }\r\n const { formValues, setFormValues } = useFormContext()\r\n const { activeId } = useFormSectionContext()\r\n const formSection = sections?.find(s => s.id === activeId) ?? sections?.[0]\r\n const sectionStatus = calculateSectionStatus(sections, [formValues, setFormValues])\r\n\r\n return (\r\n\r\n <div className={className}>\r\n <NavComponent\r\n sections={sections}\r\n sectionStatus={sectionStatus}\r\n level={level}\r\n />\r\n <ContentComponent\r\n formSection={formSection}\r\n sectionStatus={sectionStatus}\r\n onChange={onChange}\r\n level={level}\r\n />\r\n <SmallNavComponent\r\n sections={sections}\r\n sectionStatus={sectionStatus}\r\n level={level}\r\n />\r\n </div>\r\n )\r\n}\r\n\r\nexport default WizardLayout\r\n"],"names":["React","utils","SelectInput"],"mappings":"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"}
1
+ {"version":3,"file":"Wizard.js","sources":["../../../../../src/Form/Creator/Wizard.tsx"],"sourcesContent":["import { calculateSectionStatus } from '@/utils/validators'\r\nimport { type IFormSectionStatus } from '@/Form/Creator/FormCreator'\r\nimport { type IFormSection, type IWizardStep } from '@/Form/Creator/FormCreatorTypes'\r\nimport { type IPageLayoutProps, ActivePage, type INavProps } from '@/Form/Creator/Page'\r\nimport { SelectInput, utils } from '@axdspub/axiom-ui-utilities'\r\nimport { CaretRightIcon, CaretLeftIcon } from '@radix-ui/react-icons'\r\nimport React, { type ReactElement } from 'react'\r\nimport { useParams } from 'react-router-dom'\r\nimport NavElement from '@/Form/Creator/NavElement'\r\nimport { FormSectionContextProvider, useFormSectionContext } from '@/Form/Creator/FormSectionContextProvider'\r\nimport { useFormContext } from '@/Form/Creator/FormContextProvider'\r\nimport { useAtomValue } from 'jotai'\r\nimport layoutAtom from '@/utils/responsive/layoutState'\r\n\r\nconst sortByOrder = (a: IWizardStep, b: IWizardStep): number => {\r\n const aOrder = a.order ?? Infinity\r\n const bOrder = b.order ?? Infinity\r\n return aOrder - bOrder\r\n}\r\n\r\nexport const WizardNavMobile = ({\r\n sections,\r\n sectionStatus,\r\n level\r\n}: INavProps): ReactElement => {\r\n const { activeId, setActiveId, path } = useFormSectionContext()\r\n const { urlNavigable } = useFormContext()\r\n const steps = ((sections ?? []) as IWizardStep[]).sort(sortByOrder)\r\n const stepsMap = Object.fromEntries(steps.map(p => [p.id, p]))\r\n const currentStep = stepsMap[activeId ?? ''] ?? steps[0]\r\n const currentIndex = steps.indexOf(currentStep)\r\n const nextIndex = currentIndex + 1\r\n const prevIndex = currentIndex - 1\r\n // const params = (useParams()['*'] ?? '').split('/')\r\n // const path = params.slice(0, level).join('/')\r\n return (\r\n <div className='flex flex-row gap-4 justify-center items-center'>{\r\n prevIndex >= 0\r\n ? <NavElement\r\n className='p-2 bg-none border-none text-sm hover:bg-slate-none'\r\n path={path}\r\n id={steps[prevIndex].id}\r\n navigable={urlNavigable ?? true}\r\n onClick={() => { setActiveId(steps[prevIndex].id) }}\r\n >\r\n <CaretLeftIcon className='inline w-8 h-8' />\r\n </NavElement>\r\n : <span className={utils.createButtonClass({\r\n className: 'p-2 bg-none border-none text-sm text-slate-400 '\r\n })}><CaretLeftIcon className='inline w-8 h-8' /></span>\r\n }\r\n <div className='flex-grow'>\r\n <SelectInput\r\n includePrompt={false}\r\n id='wizard-step-select'\r\n testId='wizard-step-select'\r\n className='shadow-lg'\r\n value={activeId ?? ''}\r\n onChange={(e) => {\r\n setActiveId(e?.value)\r\n }}\r\n options={steps.map(p => ({\r\n value: p.id,\r\n label: p.label ?? p.id\r\n }))}\r\n />\r\n </div>\r\n\r\n {\r\n nextIndex < steps.length\r\n ? <NavElement\r\n path={path}\r\n id={steps[nextIndex].id}\r\n navigable={urlNavigable ?? true}\r\n className='p-2 bg-none border-none text-sm hover:bg-none'\r\n onClick={() => { setActiveId(steps[nextIndex].id) }}\r\n >\r\n <CaretRightIcon className='inline w-8 h-8' />\r\n </NavElement>\r\n : <span className={utils.createButtonClass({\r\n className: 'p-2 bg-none border-none text-sm text-slate-400'\r\n })}><CaretRightIcon className='inline w-8 h-8' /></span>\r\n }\r\n </div>\r\n )\r\n}\r\n\r\nexport const WizardNav = (props: INavProps): ReactElement => {\r\n const layout = useAtomValue(layoutAtom)\r\n return layout.size === 'sm'\r\n ? <WizardNavMobile {...props} />\r\n : <WizardNavLargeScreen {...props} />\r\n}\r\n\r\nexport const WizardNavLargeScreen = ({\r\n sections,\r\n sectionStatus,\r\n level\r\n}: INavProps): ReactElement => {\r\n const { form } = useFormContext()\r\n const steps = ((sections ?? []) as IWizardStep[]).sort(sortByOrder)\r\n const { activeId, setActiveId, path } = useFormSectionContext()\r\n const { urlNavigable } = useFormContext()\r\n\r\n return (\r\n <div className='relative'>\r\n <div className='h-[2px] top-8 bg-slate-300 absolute left-0 right-0 z-0' />\r\n <div className='flex flex-row gap-4 py-4 max-w-full overflow-x-auto overflow-y-visible'>\r\n {\r\n steps.map((p, i) => {\r\n return (\r\n <div key={p.id} className='flex-grow first:flex-shrink last:flex-shrink text-center first:text-left first:ml-4 last:text-right last:mr-4 z-10 relative'>\r\n <NavElement\r\n\r\n path={path}\r\n id={p.id}\r\n navigable={urlNavigable ?? true}\r\n className={`whitespace-nowrap px-8 bg-white z-20 border-none text-sm ${activeId === p.id ? 'bg-slate-600 text-white' : 'hover:bg-slate-100'}`}\r\n onClick={() => { setActiveId(p.id) }}\r\n >\r\n {p.label}\r\n </NavElement>\r\n {\r\n i < steps.length - 1 && steps.length > 1\r\n ? <span className='hidden absolute right-0 top-2 w-4 h-full bg-white'><CaretRightIcon className='w-4 h-6 fill-slate-300 stroke-slate-300' /></span>\r\n : ''\r\n }\r\n {\r\n form?.settings?.show_progress\r\n ? <>\r\n <p className='text-xs mt-4'>{sectionStatus[p.id]?.completed} of {sectionStatus[p.id]?.total} total</p>\r\n <p className='text-xs mt-2'>{sectionStatus[p.id]?.requiredCompleted} of {sectionStatus[p.id]?.requiredTotal} required</p>\r\n </>\r\n : ''\r\n }\r\n\r\n </div>\r\n )\r\n })\r\n }</div>\r\n </div>\r\n )\r\n}\r\n\r\nexport const WizardNavSmall = ({\r\n sections,\r\n sectionStatus,\r\n level\r\n}: {\r\n sections?: IFormSection[]\r\n sectionStatus: IFormSectionStatus\r\n level: number\r\n}): ReactElement => {\r\n const { activeId, setActiveId, path } = useFormSectionContext()\r\n const { urlNavigable } = useFormContext()\r\n const steps = ((sections ?? []) as IWizardStep[]).sort(sortByOrder)\r\n const stepsMap = Object.fromEntries(steps.map(p => [p.id, p]))\r\n const currentStep = stepsMap[activeId ?? ''] ?? steps[0]\r\n const currentIndex = steps.indexOf(currentStep)\r\n const nextIndex = currentIndex + 1\r\n const prevIndex = currentIndex - 1\r\n // const params = (useParams()['*'] ?? '').split('/')\r\n // const path = params.slice(0, level).join('/')\r\n return (\r\n <div className='flex flex-row gap-4 justify-end'>{\r\n prevIndex >= 0\r\n ? <NavElement\r\n className='px-4 bg-slate-600 text-white border-none text-sm hover:bg-slate-700'\r\n path={path}\r\n id={steps[prevIndex].id}\r\n navigable={urlNavigable ?? true}\r\n onClick={() => { setActiveId(steps[prevIndex].id) }}\r\n >\r\n <CaretLeftIcon className='inline' /> Previous\r\n </NavElement>\r\n : <span className={utils.createButtonClass({\r\n className: 'px-4 bg-white border-none text-sm text-slate-400'\r\n })}>Previous</span>\r\n }\r\n {\r\n nextIndex < steps.length\r\n ? <NavElement\r\n path={path}\r\n id={steps[nextIndex].id}\r\n navigable={urlNavigable ?? true}\r\n className='px-4 bg-slate-600 text-white border-none text-sm hover:bg-slate-700'\r\n onClick={() => { setActiveId(steps[nextIndex].id) }}\r\n >\r\n Next <CaretRightIcon className='inline' />\r\n </NavElement>\r\n : <span className={utils.createButtonClass({\r\n className: 'px-4 bg-white border-none text-sm text-slate-400'\r\n })}>Next</span>\r\n }\r\n </div>\r\n )\r\n}\r\n\r\nexport interface IWizardLayoutProps extends IPageLayoutProps {\r\n SmallNavComponent?: React.FC<{\r\n level: number\r\n sections?: IFormSection[]\r\n sectionStatus: IFormSectionStatus\r\n className?: string\r\n }>\r\n}\r\n\r\nconst WizardLayout = (props: IPageLayoutProps): ReactElement => {\r\n if (props.sections === undefined) {\r\n return <></>\r\n }\r\n const { urlNavigable } = useFormContext()\r\n const params = (useParams()['*'] ?? '').split('/')\r\n const path = params.slice(0, props.level).join('/')\r\n const id = urlNavigable\r\n ? (params[props.level] && params[props.level] !== '') ? params[props.level] : (props.sections[0]?.id ?? null)\r\n : props.sections[0]?.id ?? null\r\n\r\n return (\r\n <FormSectionContextProvider path={path} id={id}>\r\n <WizardLayoutContent {...props} />\r\n </FormSectionContextProvider>\r\n )\r\n}\r\n\r\nconst WizardLayoutContent = ({\r\n sections,\r\n onChange,\r\n ContentComponent = ActivePage,\r\n NavComponent = WizardNav,\r\n SmallNavComponent = WizardNavSmall,\r\n className = 'flex flex-col gap-4 pt-8 flex-grow h-full',\r\n level\r\n}: IWizardLayoutProps): ReactElement => {\r\n if (sections === undefined) {\r\n return <></>\r\n }\r\n const { formValues, setFormValues } = useFormContext()\r\n const { activeId } = useFormSectionContext()\r\n const formSection = sections?.find(s => s.id === activeId) ?? sections?.[0]\r\n const sectionStatus = calculateSectionStatus(sections, [formValues, setFormValues])\r\n\r\n return (\r\n\r\n <div className={className}>\r\n <NavComponent\r\n sections={sections}\r\n sectionStatus={sectionStatus}\r\n level={level}\r\n />\r\n <ContentComponent\r\n formSection={formSection}\r\n sectionStatus={sectionStatus}\r\n onChange={onChange}\r\n level={level}\r\n />\r\n <SmallNavComponent\r\n sections={sections}\r\n sectionStatus={sectionStatus}\r\n level={level}\r\n />\r\n </div>\r\n )\r\n}\r\n\r\nexport default WizardLayout\r\n"],"names":["React","utils","SelectInput"],"mappings":";;;;;;;;;;;;;AAcA,IAAM,WAAW,GAAG,UAAC,CAAc,EAAE,CAAc,EAAA;;IACjD,IAAM,MAAM,GAAG,CAAA,EAAA,GAAA,CAAC,CAAC,KAAK,MAAA,IAAA,IAAA,EAAA,KAAA,MAAA,GAAA,EAAA,GAAI,QAAQ;IAClC,IAAM,MAAM,GAAG,CAAA,EAAA,GAAA,CAAC,CAAC,KAAK,MAAA,IAAA,IAAA,EAAA,KAAA,MAAA,GAAA,EAAA,GAAI,QAAQ;IAClC,OAAO,MAAM,GAAG,MAAM;AACxB,CAAC;AAEM,IAAM,eAAe,GAAG,UAAC,EAIpB,EAAA;;AAHV,IAAA,IAAA,QAAQ,cAAA,CACR,CAAa,EAAA,CAAA,aAAA,CAAA,CACR,EAAA,CAAA;AAEC,IAAA,IAAA,EAAkC,GAAA,qBAAqB,EAAE,EAAvD,QAAQ,GAAA,EAAA,CAAA,QAAA,EAAE,WAAW,GAAA,EAAA,CAAA,WAAA,EAAE,IAAI,GAAA,EAAA,CAAA,IAA4B;AACvD,IAAA,IAAA,YAAY,GAAK,cAAc,EAAE,aAArB;AACpB,IAAA,IAAM,KAAK,GAAI,CAAC,QAAQ,KAAA,IAAA,IAAR,QAAQ,KAAR,MAAA,GAAA,QAAQ,GAAI,EAAE,EAAoB,IAAI,CAAC,WAAW,CAAC;IACnE,IAAM,QAAQ,GAAG,MAAM,CAAC,WAAW,CAAC,KAAK,CAAC,GAAG,CAAC,UAAA,CAAC,IAAI,OAAA,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAT,EAAS,CAAC,CAAC;AAC9D,IAAA,IAAM,WAAW,GAAG,CAAA,EAAA,GAAA,QAAQ,CAAC,QAAQ,aAAR,QAAQ,KAAA,MAAA,GAAR,QAAQ,GAAI,EAAE,CAAC,MAAA,IAAA,IAAA,EAAA,KAAA,MAAA,GAAA,EAAA,GAAI,KAAK,CAAC,CAAC,CAAC;IACxD,IAAM,YAAY,GAAG,KAAK,CAAC,OAAO,CAAC,WAAW,CAAC;AAC/C,IAAA,IAAM,SAAS,GAAG,YAAY,GAAG,CAAC;AAClC,IAAA,IAAM,SAAS,GAAG,YAAY,GAAG,CAAC;;;AAGlC,IAAA,QACIA,cAAA,CAAA,aAAA,CAAA,KAAA,EAAA,EAAK,SAAS,EAAC,iDAAiD,EAAA;AAC9D,QAAA,SAAS,IAAI;cACTA,6BAAC,UAAU,EAAA,EACT,SAAS,EAAC,sDAAsD,EAChE,IAAI,EAAE,IAAI,EACV,EAAE,EAAE,KAAK,CAAC,SAAS,CAAC,CAAC,EAAE,EACvB,SAAS,EAAE,YAAY,KAAA,IAAA,IAAZ,YAAY,KAAZ,MAAA,GAAA,YAAY,GAAI,IAAI,EAC/B,OAAO,EAAE,YAAA,EAAQ,WAAW,CAAC,KAAK,CAAC,SAAS,CAAC,CAAC,EAAE,CAAC,CAAA,EAAE,EAAA;AAEjD,gBAAAA,cAAA,CAAA,aAAA,CAAC,aAAa,EAAC,EAAA,SAAS,EAAC,gBAAgB,GAAG;AAElD,cAAEA,cAAM,CAAA,aAAA,CAAA,MAAA,EAAA,EAAA,SAAS,EAAEC,OAAK,CAAC,iBAAiB,CAAC;AACzC,oBAAA,SAAS,EAAE;iBACZ,CAAC,EAAA;AAAE,gBAAAD,cAAA,CAAA,aAAA,CAAC,aAAa,EAAC,EAAA,SAAS,EAAC,gBAAgB,GAAG,CAAO;QAEzDA,cAAK,CAAA,aAAA,CAAA,KAAA,EAAA,EAAA,SAAS,EAAC,WAAW,EAAA;AAC1B,YAAAA,cAAA,CAAA,aAAA,CAACE,MAAW,EAAA,EACV,aAAa,EAAE,KAAK,EACpB,EAAE,EAAC,oBAAoB,EACvB,MAAM,EAAC,oBAAoB,EAC3B,SAAS,EAAC,WAAW,EACrB,KAAK,EAAE,QAAQ,aAAR,QAAQ,KAAA,MAAA,GAAR,QAAQ,GAAI,EAAE,EACrB,QAAQ,EAAE,UAAC,CAAC,EAAA;oBACV,WAAW,CAAC,CAAC,KAAD,IAAA,IAAA,CAAC,uBAAD,CAAC,CAAE,KAAK,CAAC;iBACtB,EACD,OAAO,EAAE,KAAK,CAAC,GAAG,CAAC,UAAA,CAAC,EAAA;;AAAI,oBAAA,QAAC;wBACvB,KAAK,EAAE,CAAC,CAAC,EAAE;wBACX,KAAK,EAAE,MAAA,CAAC,CAAC,KAAK,MAAI,IAAA,IAAA,EAAA,KAAA,MAAA,GAAA,EAAA,GAAA,CAAC,CAAC;AACrB,qBAAA;AAAC,iBAAA,CAAC,GACD,CACE;QAGJ,SAAS,GAAG,KAAK,CAAC;cACdF,6BAAC,UAAU,EAAA,EACT,IAAI,EAAE,IAAI,EACV,EAAE,EAAE,KAAK,CAAC,SAAS,CAAC,CAAC,EAAE,EACvB,SAAS,EAAE,YAAY,KAAZ,IAAA,IAAA,YAAY,cAAZ,YAAY,GAAI,IAAI,EAC/B,SAAS,EAAC,gDAAgD,EAC1D,OAAO,EAAE,YAAA,EAAQ,WAAW,CAAC,KAAK,CAAC,SAAS,CAAC,CAAC,EAAE,CAAC,CAAA,EAAE,EAAA;AAEjD,gBAAAA,cAAA,CAAA,aAAA,CAAC,cAAc,EAAC,EAAA,SAAS,EAAC,gBAAgB,GAAG;AAEnD,cAAEA,cAAM,CAAA,aAAA,CAAA,MAAA,EAAA,EAAA,SAAS,EAAEC,OAAK,CAAC,iBAAiB,CAAC;AACzC,oBAAA,SAAS,EAAE;iBACZ,CAAC,EAAA;gBAAED,cAAC,CAAA,aAAA,CAAA,cAAc,IAAC,SAAS,EAAC,gBAAgB,EAAG,CAAA,CAAO,CAExD;AAEZ;AAEO,IAAM,SAAS,GAAG,UAAC,KAAgB,EAAA;AACxC,IAAA,IAAM,MAAM,GAAG,YAAY,CAAC,UAAU,CAAC;AACvC,IAAA,OAAO,MAAM,CAAC,IAAI,KAAK;AACrB,UAAEA,cAAA,CAAA,aAAA,CAAC,eAAe,EAAA,QAAA,CAAA,EAAA,EAAK,KAAK,CAAI;AAChC,UAAEA,cAAC,CAAA,aAAA,CAAA,oBAAoB,EAAK,QAAA,CAAA,EAAA,EAAA,KAAK,EAAI;AACzC;AAEO,IAAM,oBAAoB,GAAG,UAAC,EAIzB,EAAA;AAHV,IAAA,IAAA,QAAQ,cAAA,CACR,CAAA,aAAa,GAAA,EAAA,CAAA,aAAA,CAAA,CACR,EAAA,CAAA;AAEG,IAAA,IAAA,IAAI,GAAK,cAAc,EAAE,KAArB;AACZ,IAAA,IAAM,KAAK,GAAI,CAAC,QAAQ,KAAA,IAAA,IAAR,QAAQ,KAAR,MAAA,GAAA,QAAQ,GAAI,EAAE,EAAoB,IAAI,CAAC,WAAW,CAAC;AAC7D,IAAA,IAAA,EAAkC,GAAA,qBAAqB,EAAE,EAAvD,QAAQ,GAAA,EAAA,CAAA,QAAA,EAAE,WAAW,GAAA,EAAA,CAAA,WAAA,EAAE,IAAI,GAAA,EAAA,CAAA,IAA4B;AACvD,IAAA,IAAA,YAAY,GAAK,cAAc,EAAE,aAArB;AAEpB,IAAA,QACIA,cAAA,CAAA,aAAA,CAAA,KAAA,EAAA,EAAK,SAAS,EAAC,UAAU,EAAA;QACvBA,cAAK,CAAA,aAAA,CAAA,KAAA,EAAA,EAAA,SAAS,EAAC,wDAAwD,EAAG,CAAA;QAC1EA,cAAK,CAAA,aAAA,CAAA,KAAA,EAAA,EAAA,SAAS,EAAC,yEAAyE,EAExF,EAAA,KAAK,CAAC,GAAG,CAAC,UAAC,CAAC,EAAE,CAAC,EAAA;;YACb,QACEA,cAAK,CAAA,aAAA,CAAA,KAAA,EAAA,EAAA,GAAG,EAAE,CAAC,CAAC,EAAE,EAAE,SAAS,EAAC,6HAA6H,EAAA;gBACrJA,cAAC,CAAA,aAAA,CAAA,UAAU,EAET,EAAA,IAAI,EAAE,IAAI,EACV,EAAE,EAAE,CAAC,CAAC,EAAE,EACR,SAAS,EAAE,YAAY,KAAA,IAAA,IAAZ,YAAY,KAAA,MAAA,GAAZ,YAAY,GAAI,IAAI,EAC/B,SAAS,EAAE,2DAA4D,CAAA,MAAA,CAAA,QAAQ,KAAK,CAAC,CAAC,EAAE,GAAG,yBAAyB,GAAG,oBAAoB,CAAE,EAC7I,OAAO,EAAE,YAAA,EAAQ,WAAW,CAAC,CAAC,CAAC,EAAE,CAAC,CAAA,EAAE,EAEnC,EAAA,CAAC,CAAC,KAAK,CACG;gBAEX,CAAC,GAAG,KAAK,CAAC,MAAM,GAAG,CAAC,IAAI,KAAK,CAAC,MAAM,GAAG;AACrC,sBAAEA,cAAA,CAAA,aAAA,CAAA,MAAA,EAAA,EAAM,SAAS,EAAC,mDAAmD,EAAA;AAAC,wBAAAA,cAAA,CAAA,aAAA,CAAC,cAAc,EAAC,EAAA,SAAS,EAAC,yCAAyC,GAAG;AAC5I,sBAAE,EAAE;gBAGN,CAAA,CAAA,EAAA,GAAA,IAAI,KAAJ,IAAA,IAAA,IAAI,uBAAJ,IAAI,CAAE,QAAQ,MAAA,IAAA,IAAA,EAAA,KAAA,MAAA,GAAA,MAAA,GAAA,EAAA,CAAE,aAAa;AAC3B,sBAAEA,cAAA,CAAA,aAAA,CAAAA,cAAA,CAAA,QAAA,EAAA,IAAA;wBACAA,cAAG,CAAA,aAAA,CAAA,GAAA,EAAA,EAAA,SAAS,EAAC,cAAc,EAAE,EAAA,CAAA,EAAA,GAAA,aAAa,CAAC,CAAC,CAAC,EAAE,CAAC,MAAA,IAAA,IAAA,EAAA,KAAA,MAAA,GAAA,MAAA;+BAAE,SAAS;AAAM,4BAAA,MAAA,EAAA,CAAA,EAAA,GAAA,aAAa,CAAC,CAAC,CAAC,EAAE,CAAC,MAAA,IAAA,IAAA,EAAA,KAAA,MAAA,GAAA,MAAA;+BAAE,KAAK;AAAW,4BAAA,QAAA,CAAA;wBACtGA,cAAG,CAAA,aAAA,CAAA,GAAA,EAAA,EAAA,SAAS,EAAC,cAAc,EAAE,EAAA,CAAA,EAAA,GAAA,aAAa,CAAC,CAAC,CAAC,EAAE,CAAC,MAAA,IAAA,IAAA,EAAA,KAAA,MAAA,GAAA,MAAA;+BAAE,iBAAiB;AAAM,4BAAA,MAAA,EAAA,CAAA,EAAA,GAAA,aAAa,CAAC,CAAC,CAAC,EAAE,CAAC,MAAA,IAAA,IAAA,EAAA,KAAA,MAAA,GAAA,MAAA;+BAAE,aAAa;wCAAc;AAE3H,sBAAE,EAAE,CAGJ;AAEV,SAAC,CAAC,CACG,CACD;AAEZ;AAEO,IAAM,cAAc,GAAG,UAAC,EAQ9B,EAAA;;AAPC,IAAA,IAAA,QAAQ,cAAA,CACR,CAAa,EAAA,CAAA,aAAA,CAAA,CACR,EAAA,CAAA;AAMC,IAAA,IAAA,EAAkC,GAAA,qBAAqB,EAAE,EAAvD,QAAQ,GAAA,EAAA,CAAA,QAAA,EAAE,WAAW,GAAA,EAAA,CAAA,WAAA,EAAE,IAAI,GAAA,EAAA,CAAA,IAA4B;AACvD,IAAA,IAAA,YAAY,GAAK,cAAc,EAAE,aAArB;AACpB,IAAA,IAAM,KAAK,GAAI,CAAC,QAAQ,KAAA,IAAA,IAAR,QAAQ,KAAR,MAAA,GAAA,QAAQ,GAAI,EAAE,EAAoB,IAAI,CAAC,WAAW,CAAC;IACnE,IAAM,QAAQ,GAAG,MAAM,CAAC,WAAW,CAAC,KAAK,CAAC,GAAG,CAAC,UAAA,CAAC,IAAI,OAAA,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAT,EAAS,CAAC,CAAC;AAC9D,IAAA,IAAM,WAAW,GAAG,CAAA,EAAA,GAAA,QAAQ,CAAC,QAAQ,aAAR,QAAQ,KAAA,MAAA,GAAR,QAAQ,GAAI,EAAE,CAAC,MAAA,IAAA,IAAA,EAAA,KAAA,MAAA,GAAA,EAAA,GAAI,KAAK,CAAC,CAAC,CAAC;IACxD,IAAM,YAAY,GAAG,KAAK,CAAC,OAAO,CAAC,WAAW,CAAC;AAC/C,IAAA,IAAM,SAAS,GAAG,YAAY,GAAG,CAAC;AAClC,IAAA,IAAM,SAAS,GAAG,YAAY,GAAG,CAAC;;;AAGlC,IAAA,QACIA,cAAA,CAAA,aAAA,CAAA,KAAA,EAAA,EAAK,SAAS,EAAC,iCAAiC,EAAA;AAC9C,QAAA,SAAS,IAAI;cACTA,6BAAC,UAAU,EAAA,EACT,SAAS,EAAC,qEAAqE,EAC/E,IAAI,EAAE,IAAI,EACV,EAAE,EAAE,KAAK,CAAC,SAAS,CAAC,CAAC,EAAE,EACvB,SAAS,EAAE,YAAY,KAAA,IAAA,IAAZ,YAAY,KAAZ,MAAA,GAAA,YAAY,GAAI,IAAI,EAC/B,OAAO,EAAE,YAAA,EAAQ,WAAW,CAAC,KAAK,CAAC,SAAS,CAAC,CAAC,EAAE,CAAC,CAAA,EAAE,EAAA;AAEjD,gBAAAA,cAAA,CAAA,aAAA,CAAC,aAAa,EAAA,EAAC,SAAS,EAAC,QAAQ,EAAG,CAAA;AAC3B,gBAAA,WAAA;AACf,cAAEA,cAAM,CAAA,aAAA,CAAA,MAAA,EAAA,EAAA,SAAS,EAAEC,OAAK,CAAC,iBAAiB,CAAC;AACzC,oBAAA,SAAS,EAAE;AACZ,iBAAA,CAAC,EAAiB,EAAA,UAAA,CAAA;QAGnB,SAAS,GAAG,KAAK,CAAC;cACdD,6BAAC,UAAU,EAAA,EACT,IAAI,EAAE,IAAI,EACV,EAAE,EAAE,KAAK,CAAC,SAAS,CAAC,CAAC,EAAE,EACvB,SAAS,EAAE,YAAY,KAAZ,IAAA,IAAA,YAAY,cAAZ,YAAY,GAAI,IAAI,EAC/B,SAAS,EAAC,qEAAqE,EAC/E,OAAO,EAAE,YAAA,EAAQ,WAAW,CAAC,KAAK,CAAC,SAAS,CAAC,CAAC,EAAE,CAAC,CAAA,EAAE,EAAA;;AAE5C,gBAAAA,cAAA,CAAA,aAAA,CAAC,cAAc,EAAC,EAAA,SAAS,EAAC,QAAQ,GAAG;AAEhD,cAAEA,cAAM,CAAA,aAAA,CAAA,MAAA,EAAA,EAAA,SAAS,EAAEC,OAAK,CAAC,iBAAiB,CAAC;AACzC,oBAAA,SAAS,EAAE;iBACZ,CAAC,EAAA,EAAA,MAAA,CAAa,CAEf;AAEZ;AAWM,IAAA,YAAY,GAAG,UAAC,KAAuB,EAAA;;AAC3C,IAAA,IAAI,KAAK,CAAC,QAAQ,KAAK,SAAS,EAAE;AAChC,QAAA,OAAOD,2DAAK;;AAEN,IAAA,IAAA,YAAY,GAAK,cAAc,EAAE,aAArB;AACpB,IAAA,IAAM,MAAM,GAAG,CAAC,CAAA,EAAA,GAAA,SAAS,EAAE,CAAC,GAAG,CAAC,MAAA,IAAA,IAAA,EAAA,KAAA,MAAA,GAAA,EAAA,GAAI,EAAE,EAAE,KAAK,CAAC,GAAG,CAAC;AAClD,IAAA,IAAM,IAAI,GAAG,MAAM,CAAC,KAAK,CAAC,CAAC,EAAE,KAAK,CAAC,KAAK,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC;IACnD,IAAM,EAAE,GAAG;AACT,UAAE,CAAC,MAAM,CAAC,KAAK,CAAC,KAAK,CAAC,IAAI,MAAM,CAAC,KAAK,CAAC,KAAK,CAAC,KAAK,EAAE,IAAI,MAAM,CAAC,KAAK,CAAC,KAAK,CAAC,IAAI,CAAA,EAAA,GAAA,CAAA,EAAA,GAAA,KAAK,CAAC,QAAQ,CAAC,CAAC,CAAC,0CAAE,EAAE,MAAA,IAAA,IAAA,EAAA,KAAA,MAAA,GAAA,EAAA,GAAI,IAAI;AAC5G,UAAE,CAAA,EAAA,GAAA,CAAA,EAAA,GAAA,KAAK,CAAC,QAAQ,CAAC,CAAC,CAAC,MAAA,IAAA,IAAA,EAAA,KAAA,MAAA,GAAA,MAAA,GAAA,EAAA,CAAE,EAAE,MAAA,IAAA,IAAA,EAAA,KAAA,MAAA,GAAA,EAAA,GAAI,IAAI;IAEjC,QACEA,cAAC,CAAA,aAAA,CAAA,0BAA0B,EAAC,EAAA,IAAI,EAAE,IAAI,EAAE,EAAE,EAAE,EAAE,EAAA;AAC5C,QAAAA,cAAA,CAAA,aAAA,CAAC,mBAAmB,EAAK,QAAA,CAAA,EAAA,EAAA,KAAK,CAAI,CAAA,CACP;AAEjC;AAEA,IAAM,mBAAmB,GAAG,UAAC,EAQR,EAAA;;AAPnB,IAAA,IAAA,QAAQ,GAAA,EAAA,CAAA,QAAA,EACR,QAAQ,GAAA,EAAA,CAAA,QAAA,EACR,EAA6B,GAAA,EAAA,CAAA,gBAAA,EAA7B,gBAAgB,GAAA,EAAA,KAAA,MAAA,GAAG,UAAU,GAAA,EAAA,EAC7B,EAAwB,GAAA,EAAA,CAAA,YAAA,EAAxB,YAAY,GAAG,EAAA,KAAA,MAAA,GAAA,SAAS,GAAA,EAAA,EACxB,EAAkC,GAAA,EAAA,CAAA,iBAAA,EAAlC,iBAAiB,GAAA,EAAA,KAAA,MAAA,GAAG,cAAc,GAAA,EAAA,EAClC,EAAuD,GAAA,EAAA,CAAA,SAAA,EAAvD,SAAS,GAAG,EAAA,KAAA,MAAA,GAAA,2CAA2C,GAAA,EAAA,EACvD,KAAK,GAAA,EAAA,CAAA,KAAA;AAEL,IAAA,IAAI,QAAQ,KAAK,SAAS,EAAE;AAC1B,QAAA,OAAOA,2DAAK;;IAER,IAAA,EAAA,GAAgC,cAAc,EAAE,EAA9C,UAAU,GAAA,EAAA,CAAA,UAAA,EAAE,aAAa,GAAA,EAAA,CAAA,aAAqB;AAC9C,IAAA,IAAA,QAAQ,GAAK,qBAAqB,EAAE,SAA5B;AAChB,IAAA,IAAM,WAAW,GAAG,CAAA,EAAA,GAAA,QAAQ,aAAR,QAAQ,KAAA,MAAA,GAAA,MAAA,GAAR,QAAQ,CAAE,IAAI,CAAC,UAAA,CAAC,IAAI,OAAA,CAAC,CAAC,EAAE,KAAK,QAAQ,CAAjB,EAAiB,CAAC,MAAI,IAAA,IAAA,EAAA,KAAA,MAAA,GAAA,EAAA,GAAA,QAAQ,KAAR,IAAA,IAAA,QAAQ,KAAR,MAAA,GAAA,MAAA,GAAA,QAAQ,CAAG,CAAC,CAAC;AAC3E,IAAA,IAAM,aAAa,GAAG,sBAAsB,CAAC,QAAQ,EAAE,CAAC,UAAU,EAAE,aAAa,CAAC,CAAC;AAEnF,IAAA,QAEIA,cAAA,CAAA,aAAA,CAAA,KAAA,EAAA,EAAK,SAAS,EAAE,SAAS,EAAA;AACvB,QAAAA,cAAA,CAAA,aAAA,CAAC,YAAY,EAAA,EACT,QAAQ,EAAE,QAAQ,EAClB,aAAa,EAAE,aAAa,EAC5B,KAAK,EAAE,KAAK,EACZ,CAAA;AACJ,QAAAA,cAAA,CAAA,aAAA,CAAC,gBAAgB,EACb,EAAA,WAAW,EAAE,WAAW,EACxB,aAAa,EAAE,aAAa,EAC5B,QAAQ,EAAE,QAAQ,EAClB,KAAK,EAAE,KAAK,EACV,CAAA;AACN,QAAAA,cAAA,CAAA,aAAA,CAAC,iBAAiB,EAChB,EAAA,QAAQ,EAAE,QAAQ,EAClB,aAAa,EAAE,aAAa,EAC5B,KAAK,EAAE,KAAK,EACV,CAAA,CACA;AAEZ,CAAC;;;;"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@axdspub/axiom-ui-forms",
3
- "version": "0.3.0",
3
+ "version": "0.3.1",
4
4
  "private": false,
5
5
  "type": "module",
6
6
  "description": "Axiom UI Forms",