dynamic-mui 2.5.0 → 2.5.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 +61 -0
- package/dist/{AIForm-Czsvpf7g.mjs → AIForm-BVJ7qhP5.mjs} +2712 -2521
- package/dist/AIForm-D8_6RVmA.js +44 -0
- package/dist/{accordion-8p1FoyfL.js → accordion-B3fSXKqC.js} +1 -1
- package/dist/{accordion-CQ4Vldth.mjs → accordion-BxTjyh5y.mjs} +1 -1
- package/dist/{addressfield-N7DifI3i.mjs → addressfield-C9VaV9xw.mjs} +1 -1
- package/dist/{addressfield-T4e_d87q.js → addressfield-Cv8zK_sb.js} +1 -1
- package/dist/ai/index.cjs +1 -1
- package/dist/ai/index.mjs +1 -1
- package/dist/{asyncautocomplete-BB_MyjIj.mjs → asyncautocomplete-BveFRqpV.mjs} +1 -1
- package/dist/{asyncautocomplete-CpO6EO3W.js → asyncautocomplete-CoOb7mtv.js} +1 -1
- package/dist/{bar-CbpJ-MEV.mjs → bar-BfMaIpfo.mjs} +1 -1
- package/dist/{bar-BOse0ZkP.js → bar-CE_D8esp.js} +1 -1
- package/dist/{cascadeselect-PzCw6JHX.mjs → cascadeselect-C53hT-C-.mjs} +1 -1
- package/dist/{cascadeselect-C30RVgmc.js → cascadeselect-CWECmehh.js} +1 -1
- package/dist/collection-Cf87KWZM.js +1 -0
- package/dist/collection-HUYkt74J.mjs +1140 -0
- package/dist/{colorpicker-CMhVJNQT.mjs → colorpicker-BRQPl_IL.mjs} +1 -1
- package/dist/{colorpicker-DoNrfUY7.js → colorpicker-zE3r16Gc.js} +1 -1
- package/dist/components/controls/Collection/CollectionList.d.ts +22 -0
- package/dist/components/controls/Collection/ItemDialog.d.ts +20 -0
- package/dist/components/controls/Collection/collection.d.ts +9 -0
- package/dist/components/controls/Collection/parts.d.ts +39 -0
- package/dist/components/controls/Collection/tree.d.ts +18 -0
- package/dist/components/controls/Collection/ui.d.ts +49 -0
- package/dist/components/controls/index.d.ts +1 -0
- package/dist/{consentfield-Bp1dXs7L.js → consentfield-CEddOmCa.js} +1 -1
- package/dist/{consentfield-DIa3sXrr.mjs → consentfield-Cylid9il.mjs} +1 -1
- package/dist/{datatable-CyfyY3Wh.js → datatable-3MUZQhnx.js} +1 -1
- package/dist/{datatable-CO0Iv6R6.mjs → datatable-BWimO7zD.mjs} +1 -1
- package/dist/dynamic-mui.cjs +1 -1
- package/dist/dynamic-mui.mjs +2 -2
- package/dist/{editabletable-CCDJ2BPB.js → editabletable--ow4E3bB.js} +1 -1
- package/dist/{editabletable-C_MA7QEb.mjs → editabletable-CVJ14zrm.mjs} +1 -1
- package/dist/{fileupload-WV5shCIK.js → fileupload-B7f6VOb0.js} +1 -1
- package/dist/{fileupload-DX3dxKFN.mjs → fileupload-DHiYLdJ5.mjs} +1 -1
- package/dist/{formrepeater-D5K8qgAA.mjs → formrepeater-BGZGTcVb.mjs} +1 -1
- package/dist/{formrepeater-Cxu8Dk8P.js → formrepeater-CvWeLug8.js} +1 -1
- package/dist/{formwizard-B-HCfrnp.mjs → formwizard-BeJK5mqc.mjs} +1 -1
- package/dist/{formwizard-HRF3hTyF.js → formwizard-DrHKFPfN.js} +1 -1
- package/dist/{geofield-DlqMZ_hl.mjs → geofield-Bchfb6__.mjs} +1 -1
- package/dist/{geofield-0k7PkHRa.js → geofield-thoXisie.js} +1 -1
- package/dist/{group-mONe185y.js → group-B3QBe0YI.js} +1 -1
- package/dist/{group-BFDXdAfg.mjs → group-DUnv46e_.mjs} +1 -1
- package/dist/{intlphone-Bbk2UF9T.mjs → intlphone-BY59PVDg.mjs} +1 -1
- package/dist/{intlphone-zZ0xd-DG.js → intlphone-CMXEolsT.js} +1 -1
- package/dist/{keyvaluefield-BynOkgTq.mjs → keyvaluefield-BAYbTkCY.mjs} +1 -1
- package/dist/{keyvaluefield-B6oRZzic.js → keyvaluefield-FBaHQ8Ak.js} +1 -1
- package/dist/{line-ChQNdVfl.js → line-Bk15u06y.js} +1 -1
- package/dist/{line-DebtzkF3.mjs → line-Bzbkzk7f.mjs} +1 -1
- package/dist/{lineitemlist-CI0LwIUz.js → lineitemlist-8NL2THwe.js} +1 -1
- package/dist/{lineitemlist-CjFNpqI5.mjs → lineitemlist-PsoQ4LU4.mjs} +1 -1
- package/dist/{list-B5wBsflP.mjs → list-BGzVPlgh.mjs} +1 -1
- package/dist/{list-CJFKxKyN.js → list-BmGiSIoi.js} +1 -1
- package/dist/{locationfield-CrOMF7jt.js → locationfield-BG76gNbD.js} +1 -1
- package/dist/{locationfield-DQj3yDCa.mjs → locationfield-CupDmXsM.mjs} +1 -1
- package/dist/{markdowneditor-emqJhQV7.mjs → markdowneditor-4StkbrKV.mjs} +1 -1
- package/dist/{markdowneditor-Jaz7uTyZ.js → markdowneditor-vDHguMtU.js} +1 -1
- package/dist/{matrixfield-j5mf9lh5.mjs → matrixfield-CeROIIAj.mjs} +1 -1
- package/dist/{matrixfield-BPJsawGk.js → matrixfield-Vptf0zNH.js} +1 -1
- package/dist/{multitextbox-CyZiTd_E.mjs → multitextbox-DeVv6uzi.mjs} +1 -1
- package/dist/{multitextbox-DQbcEqkM.js → multitextbox-DtSydHcv.js} +1 -1
- package/dist/{npsscale-BIkJMD4Z.mjs → npsscale-Cd7PoCJS.mjs} +1 -1
- package/dist/{npsscale-oUUyPdxP.js → npsscale-Dwp2T0DQ.js} +1 -1
- package/dist/{numberstepper-thjufBMI.mjs → numberstepper-BFNTu3Ii.mjs} +1 -1
- package/dist/{numberstepper-DRIvgtcH.js → numberstepper-DBKq7hUm.js} +1 -1
- package/dist/{pie-COA-uozf.js → pie-CE4QV82D.js} +1 -1
- package/dist/{pie-4SHUYmRs.mjs → pie-DKRRH37e.mjs} +1 -1
- package/dist/{richtexteditor-BSV7hG6d.js → richtexteditor-B6lK2iIt.js} +1 -1
- package/dist/{richtexteditor-CvZ3Y7X1.mjs → richtexteditor-DdIfi0-T.mjs} +1 -1
- package/dist/schema.d.ts +10 -2
- package/dist/{signature-6QvVbfkT.js → signature-B_drsWTj.js} +1 -1
- package/dist/{signature-DeDxnc8U.mjs → signature-D9B8bFqg.mjs} +1 -1
- package/dist/{stepper-CDsErlLH.js → stepper-CO6XiIaw.js} +1 -1
- package/dist/{stepper-Sx3SWXTM.mjs → stepper-D6e9yWIr.mjs} +1 -1
- package/dist/{summaryfield-CAJjGmE2.mjs → summaryfield-BIA2gc1w.mjs} +1 -1
- package/dist/{summaryfield-DxzQ3g6Z.js → summaryfield-CR3aNMZU.js} +1 -1
- package/dist/{tabs-CnDP2ngC.js → tabs-B4ZbZQvt.js} +1 -1
- package/dist/{tabs-CvHNZU5o.mjs → tabs-PgOpdVX1.mjs} +1 -1
- package/dist/{tagsinput-DZcLPuX1.js → tagsinput-DtNb1IuV.js} +1 -1
- package/dist/{tagsinput-bWU3Mem0.mjs → tagsinput-G_M0DbpI.mjs} +1 -1
- package/dist/types.d.ts +188 -0
- package/dist/util/collection.d.ts +82 -0
- package/package.json +1 -1
- package/dist/AIForm-LoeI18mO.js +0 -43
|
@@ -6,7 +6,7 @@ import A from "@mui/material/TextField";
|
|
|
6
6
|
import I from "@mui/material/FormControl";
|
|
7
7
|
import F from "@mui/material/FormLabel";
|
|
8
8
|
import { alpha as l } from "@mui/material/styles";
|
|
9
|
-
import { j as R, m as x, k as j } from "./AIForm-
|
|
9
|
+
import { j as R, m as x, k as j } from "./AIForm-BVJ7qhP5.mjs";
|
|
10
10
|
const h = "#000000";
|
|
11
11
|
function q({ attributes: t = {}, rules: f = {}, onChange: b }) {
|
|
12
12
|
const { id: p = "", label: r, presets: n = [], MuiAttributes: g = {} } = t, { sx: w, ...v } = g, [a, d] = $.useState(
|
|
@@ -1 +1 @@
|
|
|
1
|
-
"use strict";Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});const r=require("react/jsx-runtime"),k=require("react"),p=require("@mui/material/Box"),x=require("@mui/material/Stack"),C=require("@mui/material/TextField"),$=require("@mui/material/FormControl"),A=require("@mui/material/FormLabel"),i=require("@mui/material/styles"),n=require("./AIForm-
|
|
1
|
+
"use strict";Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});const r=require("react/jsx-runtime"),k=require("react"),p=require("@mui/material/Box"),x=require("@mui/material/Stack"),C=require("@mui/material/TextField"),$=require("@mui/material/FormControl"),A=require("@mui/material/FormLabel"),i=require("@mui/material/styles"),n=require("./AIForm-D8_6RVmA.js"),h="#000000";function I({attributes:t={},rules:m={},onChange:b}){const{id:u="",label:o,presets:s=[],MuiAttributes:g={}}=t,{sx:y,...f}=g,[a,d]=k.useState(t.value||h);n.useUpdateEffect(()=>{d(t.value||h)},[t.value]);const v=m?.validation?.some(e=>e.rule==="mandatory"||e.rule==="mandatoryselect")||!1,c=e=>{d(e),b?.({id:u,value:e})},S=e=>{c(e.target.value)},w=e=>{c(e.target.value)},j=e=>{c(e)},q={width:44,height:44,borderRadius:"10px",border:e=>`1px solid ${i.alpha(e.palette.text.primary,.2)}`,boxShadow:e=>`0 2px 8px ${i.alpha(e.palette.common.black,.12)}`,cursor:"pointer",flexShrink:0,position:"relative",overflow:"hidden"};return r.jsxs($,{required:v,component:"fieldset",fullWidth:!0,children:[o&&r.jsx(A,{component:"legend",children:o}),r.jsxs(x,{direction:"row",spacing:1.5,sx:{alignItems:"center",mt:o?1:0},children:[r.jsx(p,{sx:{...q,backgroundColor:a},children:r.jsx("input",{type:"color","aria-label":o?`${o} colour`:"colour",value:a,onChange:S,...f,style:{position:"absolute",inset:0,width:"100%",height:"100%",opacity:0,border:"none",padding:0,cursor:"pointer"}})}),r.jsx(C,{id:u||void 0,value:a,onChange:w,size:"small",label:"Hex",sx:n.mergeSx(n.premiumInputSx,n.mergeSx({maxWidth:160},y)),slotProps:{htmlInput:{"aria-label":"hex value"}}})]}),Array.isArray(s)&&s.length>0&&r.jsx(x,{direction:"row",spacing:1,sx:{mt:1.5,flexWrap:"wrap",rowGap:1},children:s.map(e=>r.jsx(p,{role:"button","aria-label":`preset ${e}`,onClick:()=>j(e),sx:{width:26,height:26,borderRadius:"8px",backgroundColor:e,cursor:"pointer",flexShrink:0,border:l=>a===e?`2px solid ${l.palette.primary.main}`:`1px solid ${i.alpha(l.palette.text.primary,.2)}`,boxShadow:l=>`0 1px 4px ${i.alpha(l.palette.common.black,.12)}`}},e))})]})}exports.default=I;
|
|
@@ -0,0 +1,22 @@
|
|
|
1
|
+
import { CollectionConfig, CollectionTexts } from '../../../types';
|
|
2
|
+
import { CollectionIssue } from '../../../util/collection';
|
|
3
|
+
import { CollectionNode } from './tree';
|
|
4
|
+
export interface CollectionListProps {
|
|
5
|
+
config: CollectionConfig;
|
|
6
|
+
nodes: CollectionNode[];
|
|
7
|
+
onChange: (next: CollectionNode[]) => void;
|
|
8
|
+
/** Unique prefix for this level's dialog form store. */
|
|
9
|
+
guid: string;
|
|
10
|
+
depth?: number;
|
|
11
|
+
readOnly?: boolean;
|
|
12
|
+
/** Issues for this list, with paths relative to it. */
|
|
13
|
+
issues?: CollectionIssue[];
|
|
14
|
+
showErrors?: boolean;
|
|
15
|
+
/** Mark the heading as required. */
|
|
16
|
+
required?: boolean;
|
|
17
|
+
/** Title of the owning item, shown as context in the dialog. */
|
|
18
|
+
parentTitle?: string;
|
|
19
|
+
/** Texts inherited from the parent level. */
|
|
20
|
+
texts?: CollectionTexts;
|
|
21
|
+
}
|
|
22
|
+
export default function CollectionList({ config, nodes, onChange, guid, depth, readOnly, issues, showErrors, required, parentTitle, texts: inheritedTexts, }: CollectionListProps): import("react/jsx-runtime").JSX.Element;
|
|
@@ -0,0 +1,20 @@
|
|
|
1
|
+
import { CollectionUi } from './ui';
|
|
2
|
+
export type ItemDialogMode = 'add' | 'edit' | 'view';
|
|
3
|
+
interface ItemDialogProps {
|
|
4
|
+
ui: CollectionUi;
|
|
5
|
+
open: boolean;
|
|
6
|
+
mode: ItemDialogMode;
|
|
7
|
+
/** Unique per collection level; the inner form's store key derives from it. */
|
|
8
|
+
guid: string;
|
|
9
|
+
/** Changes on every open so the inner form always remounts fresh. */
|
|
10
|
+
session: number;
|
|
11
|
+
initial?: Record<string, any>;
|
|
12
|
+
/** Title of the parent item this one belongs to ("Acme Corp"). */
|
|
13
|
+
context?: string;
|
|
14
|
+
onClose: () => void;
|
|
15
|
+
onSave: (values: Record<string, any>, keepOpen: boolean) => void;
|
|
16
|
+
}
|
|
17
|
+
/** Add / edit / view dialog for one collection item, hosting a FormGenerator.
|
|
18
|
+
* Every part is styled through the level's `styles` (dialog* slots). */
|
|
19
|
+
export default function ItemDialog({ ui, open, mode, guid, session, initial, context, onClose, onSave }: ItemDialogProps): import("react/jsx-runtime").JSX.Element;
|
|
20
|
+
export {};
|
|
@@ -0,0 +1,9 @@
|
|
|
1
|
+
import { ControlProps } from '../../../types';
|
|
2
|
+
/**
|
|
3
|
+
* `collection` — a nested, dialog-edited list. Each item is added/edited in a
|
|
4
|
+
* modal form and shown as a card; items can own nested collections (e.g.
|
|
5
|
+
* Customer Locations → Services + Backflow devices) to any depth.
|
|
6
|
+
*
|
|
7
|
+
* Value: `[{ ...fields, [child.id]: [{ ...childFields, ... }] }]`.
|
|
8
|
+
*/
|
|
9
|
+
export default function Collection({ attributes, rules, onChange, submitTick }: ControlProps): import("react/jsx-runtime").JSX.Element;
|
|
@@ -0,0 +1,39 @@
|
|
|
1
|
+
import { CollectionColor } from '../../../types';
|
|
2
|
+
import { ItemDetail } from '../../../util/collection';
|
|
3
|
+
import { CollectionUi } from './ui';
|
|
4
|
+
export declare const EASE = "cubic-bezier(0.4, 0, 0.2, 1)";
|
|
5
|
+
export declare function CountPill({ ui, n }: {
|
|
6
|
+
ui: CollectionUi;
|
|
7
|
+
n: number;
|
|
8
|
+
}): import("react/jsx-runtime").JSX.Element;
|
|
9
|
+
/** Optional leading avatar on cards (`display.avatar`; none by default). */
|
|
10
|
+
export declare function ItemAvatar({ ui, mode, title, index }: {
|
|
11
|
+
ui: CollectionUi;
|
|
12
|
+
mode: string;
|
|
13
|
+
title: string;
|
|
14
|
+
index: number;
|
|
15
|
+
}): import("react/jsx-runtime").JSX.Element | null;
|
|
16
|
+
export declare function StatusBadge({ ui, text, color }: {
|
|
17
|
+
ui: CollectionUi;
|
|
18
|
+
text: string;
|
|
19
|
+
color: CollectionColor | 'default';
|
|
20
|
+
}): import("react/jsx-runtime").JSX.Element;
|
|
21
|
+
/** An item's facts: a small icon in front of the label, the value underneath. */
|
|
22
|
+
export declare function Details({ ui, details }: {
|
|
23
|
+
ui: CollectionUi;
|
|
24
|
+
details: ItemDetail[];
|
|
25
|
+
}): import("react/jsx-runtime").JSX.Element;
|
|
26
|
+
/** The add action of a level ("+ Add Service"). */
|
|
27
|
+
export declare function AddButton({ ui, placement, empty, disabled, onClick }: {
|
|
28
|
+
ui: CollectionUi;
|
|
29
|
+
placement: 'header' | 'footer';
|
|
30
|
+
empty: boolean;
|
|
31
|
+
disabled: boolean;
|
|
32
|
+
onClick: () => void;
|
|
33
|
+
}): import("react/jsx-runtime").JSX.Element;
|
|
34
|
+
/** Shown when a level has no items yet. The add button stays the one action. */
|
|
35
|
+
export declare function EmptyState({ ui, readOnly, error }: {
|
|
36
|
+
ui: CollectionUi;
|
|
37
|
+
readOnly: boolean;
|
|
38
|
+
error: boolean;
|
|
39
|
+
}): import("react/jsx-runtime").JSX.Element;
|
|
@@ -0,0 +1,18 @@
|
|
|
1
|
+
import { CollectionConfig } from '../../../types';
|
|
2
|
+
/**
|
|
3
|
+
* Internal representation of a collection value. Each item carries a stable
|
|
4
|
+
* `key` (React identity across edits, moves and duplicates) and keeps its own
|
|
5
|
+
* field values apart from its nested lists. The consumer only ever sees the
|
|
6
|
+
* plain JSON produced by `toValue`.
|
|
7
|
+
*/
|
|
8
|
+
export interface CollectionNode {
|
|
9
|
+
key: string;
|
|
10
|
+
data: Record<string, any>;
|
|
11
|
+
children: Record<string, CollectionNode[]>;
|
|
12
|
+
}
|
|
13
|
+
export declare const nextKey: () => string;
|
|
14
|
+
export declare const emptyChildren: (config: Partial<CollectionConfig>) => Record<string, CollectionNode[]>;
|
|
15
|
+
export declare const toNodes: (value: any, config: Partial<CollectionConfig>) => CollectionNode[];
|
|
16
|
+
export declare const toValue: (nodes: CollectionNode[], config: Partial<CollectionConfig>) => Record<string, any>[];
|
|
17
|
+
/** Deep copy with fresh keys at every level (for "Duplicate"). */
|
|
18
|
+
export declare const cloneNode: (node: CollectionNode) => CollectionNode;
|
|
@@ -0,0 +1,49 @@
|
|
|
1
|
+
import { SxProps, Theme } from '@mui/material/styles';
|
|
2
|
+
import { CollectionActions, CollectionAddButton, CollectionColumns, CollectionConfig, CollectionSlot, CollectionTexts } from '../../../types';
|
|
3
|
+
/**
|
|
4
|
+
* Resolves one collection level's JSON into everything its UI needs: accent
|
|
5
|
+
* colours, wording, behaviour defaults, and `sx(slot, base)` — the built-in
|
|
6
|
+
* style of a part with the JSON `styles[slot]` override layered on top. Every
|
|
7
|
+
* visual and textual detail therefore comes from (or can be replaced by) JSON.
|
|
8
|
+
*/
|
|
9
|
+
export type Accent = {
|
|
10
|
+
main: string;
|
|
11
|
+
light: string;
|
|
12
|
+
dark: string;
|
|
13
|
+
contrastText: string;
|
|
14
|
+
};
|
|
15
|
+
/** Palette colour by name, or any CSS colour expanded into light/dark shades. */
|
|
16
|
+
export declare const accentOf: (theme: Theme, color?: string) => Accent;
|
|
17
|
+
/** Readable accent text on a tinted background, in light and dark mode. */
|
|
18
|
+
export declare const inkOf: (theme: Theme, accent: Accent) => string;
|
|
19
|
+
export declare const DEFAULT_TEXTS: Required<Omit<CollectionTexts, 'emptyText'>> & {
|
|
20
|
+
emptyText?: string;
|
|
21
|
+
};
|
|
22
|
+
/** Fill `{name}` placeholders; unknown ones are left as-is. */
|
|
23
|
+
export declare const fmt: (template: string, vars: Record<string, string | number | undefined>) => string;
|
|
24
|
+
/** MUI `sx` for a responsive grid with `columns` (or auto-fill at `minWidth`). */
|
|
25
|
+
export declare const gridColumns: (columns: CollectionColumns | undefined, minWidth: number) => string | {
|
|
26
|
+
[k: string]: string;
|
|
27
|
+
};
|
|
28
|
+
export interface CollectionUi {
|
|
29
|
+
config: CollectionConfig;
|
|
30
|
+
depth: number;
|
|
31
|
+
nested: boolean;
|
|
32
|
+
accent: Accent;
|
|
33
|
+
ink: string;
|
|
34
|
+
icon: string;
|
|
35
|
+
itemLabel: string;
|
|
36
|
+
plural: string;
|
|
37
|
+
texts: CollectionTexts;
|
|
38
|
+
layout: 'cards' | 'table';
|
|
39
|
+
variant: 'card' | 'outlined' | 'flat';
|
|
40
|
+
addButton: Required<Omit<CollectionAddButton, 'size' | 'fullWidth'>> & Pick<CollectionAddButton, 'size' | 'fullWidth'>;
|
|
41
|
+
actions: Required<CollectionActions>;
|
|
42
|
+
/** Text for `key` with this level's placeholders (+ `vars`) filled in. */
|
|
43
|
+
t: (key: keyof CollectionTexts, vars?: Record<string, string | number | undefined>) => string;
|
|
44
|
+
/** Built-in style for `slot` with the JSON override merged on top. */
|
|
45
|
+
sx: (slot: CollectionSlot, base?: SxProps<Theme>) => SxProps<Theme>;
|
|
46
|
+
/** Same as `sx`, deep-merged into ONE object (for nested selectors, which can't take arrays). */
|
|
47
|
+
merged: (slot: CollectionSlot, base?: Record<string, any>) => Record<string, any>;
|
|
48
|
+
}
|
|
49
|
+
export declare const resolveUi: (theme: Theme, config: CollectionConfig, depth: number, inheritedTexts?: CollectionTexts) => CollectionUi;
|
|
@@ -77,6 +77,7 @@ declare const Controls: {
|
|
|
77
77
|
MultiTextbox: import('react').LazyExoticComponent<typeof import('./MultiTextbox/multitextbox').default>;
|
|
78
78
|
LineItemList: import('react').LazyExoticComponent<typeof import('./LineItemList/lineitemlist').default>;
|
|
79
79
|
FormRepeater: import('react').LazyExoticComponent<typeof import('./FormRepeater/formrepeater').default>;
|
|
80
|
+
Collection: import('react').LazyExoticComponent<typeof import('./Collection/collection').default>;
|
|
80
81
|
Signature: import('react').LazyExoticComponent<typeof import('./Signature/signature').default>;
|
|
81
82
|
Group: import('react').LazyExoticComponent<typeof import('./Group/group').default>;
|
|
82
83
|
Accordion: import('react').LazyExoticComponent<typeof import('./Accordion/accordion').default>;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
"use strict";Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});const t=require("react/jsx-runtime"),a=require("react"),M=require("@mui/material/Box"),w=require("@mui/material/Checkbox"),R=require("@mui/material/FormControl"),A=require("@mui/material/FormControlLabel"),I=require("@mui/material/FormHelperText"),P=require("@mui/material/styles"),s=require("./AIForm-
|
|
1
|
+
"use strict";Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});const t=require("react/jsx-runtime"),a=require("react"),M=require("@mui/material/Box"),w=require("@mui/material/Checkbox"),R=require("@mui/material/FormControl"),A=require("@mui/material/FormControlLabel"),I=require("@mui/material/FormHelperText"),P=require("@mui/material/styles"),s=require("./AIForm-D8_6RVmA.js");function V({attributes:l={},rules:c={},onChange:x}){const{MuiAttributes:g={},id:p="",text:f="",label:i="I agree to the terms",requireScroll:u=!0}=l,[S,d]=a.useState(!!l.value),[q,b]=a.useState(!u),[C,j]=a.useState(!1),[m,v]=a.useState("");s.useUpdateEffect(()=>{d(!!l.value)},[l.value]);const n=c?.validation?.some(e=>e.rule==="mandatory"||e.rule==="mandatoryselect")||!1,y=e=>{let r=!0,o="";return n&&!e&&(r=!1,o=c?.validation?.find(h=>h.rule==="mandatory"||h.rule==="mandatoryselect")?.message||"Required"),{isValid:r,message:o}},T=e=>{const r=e.currentTarget;r.scrollTop+r.clientHeight>=r.scrollHeight-4&&b(!0)},k=e=>{const r=e.target.checked;d(r);const o=y(r);j(!o.isValid),v(o.message),x?.({id:p,value:r})},F=u&&!q,{sx:H,...E}=g,L=n?t.jsxs("span",{children:[i,t.jsx("span",{"aria-hidden":"true",style:{color:"#d32f2f",marginLeft:2},children:"*"})]}):i;return t.jsxs(R,{required:n,error:C,component:"fieldset",fullWidth:!0,children:[t.jsx(M,{"data-testid":"consent-terms",onScroll:T,sx:s.mergeSx(s.premiumSurfaceSx,{maxHeight:200,overflow:"auto",p:2,mb:1,whiteSpace:"pre-wrap",backgroundColor:e=>P.alpha(e.palette.background.paper,1)}),children:f}),t.jsx(A,{...E,sx:s.mergeSx(s.premiumControlLabelSx,H),label:L,control:t.jsx(w,{checked:S,disabled:F,onChange:k,required:n,slotProps:{input:{"aria-label":"consent-agree"}}})}),m&&t.jsx(I,{children:m})]})}exports.default=V;
|
|
@@ -6,7 +6,7 @@ import V from "@mui/material/FormControl";
|
|
|
6
6
|
import A from "@mui/material/FormControlLabel";
|
|
7
7
|
import B from "@mui/material/FormHelperText";
|
|
8
8
|
import { alpha as I } from "@mui/material/styles";
|
|
9
|
-
import { j as P, m as f, l as U, n as W } from "./AIForm-
|
|
9
|
+
import { j as P, m as f, l as U, n as W } from "./AIForm-BVJ7qhP5.mjs";
|
|
10
10
|
function Z({ attributes: l = {}, rules: n = {}, onChange: h }) {
|
|
11
11
|
const {
|
|
12
12
|
MuiAttributes: g = {},
|
|
@@ -1 +1 @@
|
|
|
1
|
-
"use strict";var c=Object.create;var a=Object.defineProperty;var u=Object.getOwnPropertyDescriptor;var l=Object.getOwnPropertyNames;var d=Object.getPrototypeOf,x=Object.prototype.hasOwnProperty;var j=(e,t,r,n)=>{if(t&&typeof t=="object"||typeof t=="function")for(let i of l(t))!x.call(e,i)&&i!==r&&a(e,i,{get:()=>t[i],enumerable:!(n=u(t,i))||n.enumerable});return e};var f=(e,t,r)=>(r=e!=null?c(d(e)):{},j(t||!e||!e.__esModule?a(r,"default",{value:e,enumerable:!0}):r,e));Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});const s=require("react/jsx-runtime"),o=require("react"),y=require("@mui/material/Box"),b=require("@mui/material/CircularProgress"),m=require("./AIForm-
|
|
1
|
+
"use strict";var c=Object.create;var a=Object.defineProperty;var u=Object.getOwnPropertyDescriptor;var l=Object.getOwnPropertyNames;var d=Object.getPrototypeOf,x=Object.prototype.hasOwnProperty;var j=(e,t,r,n)=>{if(t&&typeof t=="object"||typeof t=="function")for(let i of l(t))!x.call(e,i)&&i!==r&&a(e,i,{get:()=>t[i],enumerable:!(n=u(t,i))||n.enumerable});return e};var f=(e,t,r)=>(r=e!=null?c(d(e)):{},j(t||!e||!e.__esModule?a(r,"default",{value:e,enumerable:!0}):r,e));Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});const s=require("react/jsx-runtime"),o=require("react"),y=require("@mui/material/Box"),b=require("@mui/material/CircularProgress"),m=require("./AIForm-D8_6RVmA.js"),p=o.lazy(()=>import("@mui/x-data-grid").then(e=>({default:e.DataGrid})));function q({attributes:e={}}){const{MuiAttributes:t={},container:r={}}=e,n=m.getMuiX("DataGrid")||p;return s.jsx("div",{...r,children:s.jsx(o.Suspense,{fallback:s.jsx(y,{sx:{display:"flex",justifyContent:"center",p:2},children:s.jsx(b,{})}),children:s.jsx(n,{rows:[],columns:[],...t})})})}exports.default=q;
|
|
@@ -2,7 +2,7 @@ import { jsx as t } from "react/jsx-runtime";
|
|
|
2
2
|
import e, { Suspense as n } from "react";
|
|
3
3
|
import s from "@mui/material/Box";
|
|
4
4
|
import c from "@mui/material/CircularProgress";
|
|
5
|
-
import { i as l } from "./AIForm-
|
|
5
|
+
import { i as l } from "./AIForm-BVJ7qhP5.mjs";
|
|
6
6
|
const m = e.lazy(
|
|
7
7
|
() => import("@mui/x-data-grid").then((r) => ({ default: r.DataGrid }))
|
|
8
8
|
);
|
package/dist/dynamic-mui.cjs
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
"use strict";Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});const o=require("./AIForm-
|
|
1
|
+
"use strict";Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});const o=require("./AIForm-D8_6RVmA.js"),g=require("react");function U(e){return r=>{const i=e.safeParse(r);return!i||i.success?[]:(i.error?.issues||i.error?.errors||[]).map(p=>({id:String(p?.path?.[0]??""),message:p?.message||"Invalid value",rule:p?.code||"zod"})).filter(p=>p.id)}}function H(e){return r=>{try{return e.validateSync(r,{abortEarly:!1}),[]}catch(i){return(i?.inner?.length?i.inner:i?[i]:[]).map(p=>({id:String(p?.path??""),message:p?.message||"Invalid value",rule:p?.type||"yup"})).filter(p=>p.id)}}}const R=["mandatory","mandatoryselect"],I=(e,r)=>{const i=[];return(e||[]).forEach(h=>{if(i.push(h),Array.isArray(h.subforms)&&h.subforms.length){const p=h?.id||h?.props?.id,u=p?r[p]:void 0;h.subforms.forEach(a=>{(Array.isArray(u)?u.includes(a.conditionValue):a.conditionValue===u)&&i.push(...I(a.data||[],r))})}}),i},E=e=>e?.id||e?.props?.id||"",W=(e,r)=>!e?.visibleWhen||o.evaluateRule(e.visibleWhen,r),J=(e,r)=>e?.optionsMap&&e?.dependsOn?e.optionsMap[r[e.dependsOn]]||[]:e?.props?.options;function K(e,r={}){const{resolver:i}=r,h=r.messages?.required||"This field is required",p=g.useMemo(()=>{const t={...r.initialValues||{}};return I(e,t).forEach(s=>{const f=E(s),d=s?.props?.value;f&&t[f]===void 0&&d!==void 0&&(t[f]=d)}),t},[]),[u,a]=g.useState(p),[l,C]=g.useState([]),v=g.useRef(p),A=g.useCallback(t=>{const s={...t};return I(e,s).forEach(d=>{const n=E(d);if(n&&d.visibleWhen&&!o.evaluateRule(d.visibleWhen,s)&&delete s[n],n&&d.optionsMap&&d.dependsOn){const b=(d.optionsMap[s[d.dependsOn]]||[]).map(y=>typeof y=="string"?y:y?.value),F=s[n];F!=null&&F!==""&&!b.includes(F)&&delete s[n]}}),(e||[]).forEach(d=>{if(!Array.isArray(d.subforms)||!d.subforms.length)return;const n=E(d),c=n?s[n]:void 0,b=new Set,F=new Set;d.subforms.forEach(y=>{const M=Array.isArray(c)?c.includes(y.conditionValue):y.conditionValue===c;(y.data||[]).forEach(O=>{const m=E(O);m&&(M?b:F).add(m)})}),F.forEach(y=>{b.has(y)||delete s[y]})}),I(e,s).forEach(d=>{const n=E(d);n&&d.formula&&(s[n]=o.computeFormula(d.formula,s))}),s},[e]),L=g.useCallback((t,s)=>{a(f=>A({...f,[t]:s}))},[A]),_=g.useCallback(t=>{a(s=>A({...s,...t||{}}))},[A]),w=g.useCallback(t=>{const s=I(e,t),f=[],d=new Set;if(s.forEach(n=>{const c=E(n);c&&!W(n,t)&&d.add(c)}),s.forEach(n=>{const c=E(n);if(!c||d.has(c))return;const b=[...n?.rules?.validation||[]],F=b.some(m=>R.includes(m.rule));if(n.requiredWhen&&!F&&o.evaluateRule(n.requiredWhen,t)&&b.push({rule:"mandatory",message:n.requiredMessage||h}),!b.length)return;const y=t[c],M=y==null?"":String(y),O=b.some(m=>R.includes(m.rule));b.forEach(m=>{const $=o.CROSS_FIELD_VALIDATORS[m.rule];if($){if(!M&&!O)return;const q=t[m.field??m.value],B=q==null?"":String(q);$(M,B)||f.push({id:c,rule:m.rule,message:m.message});return}const V=o.Validation[m.rule];if(typeof V!="function")return;const k=R.includes(m.rule);if(!M&&!k)return;V(k?y:M,m.value)||f.push({id:c,rule:m.rule,message:m.message||(k?h:"")})})}),i){let n=[];try{n=i(t)||[]}catch{n=[]}n.forEach(c=>{c&&c.id&&!d.has(c.id)&&f.push({id:c.id,rule:c.rule||"schema",message:c.message})})}return f},[e,i,h]),G=g.useCallback(()=>{const t=w(u);return C(t),t},[w,u]),z=g.useCallback(t=>{const s=w(u);return C(s),s.length===0&&t&&t({...u}),s},[w,u]),P=g.useCallback(()=>{a({...v.current}),C([])},[]),S=g.useMemo(()=>{const t=new Map;return l.forEach(s=>{s.id&&!t.has(s.id)&&t.set(s.id,s.message)}),I(e,u).map(s=>{const f=E(s),n=(s?.rules?.validation||[]).some(b=>R.includes(b.rule))||!!(s.requiredWhen&&o.evaluateRule(s.requiredWhen,u)),c=s.formula?o.computeFormula(s.formula,u):u[f];return{id:f,field:s,value:c,visible:W(s,u),disabled:!!(s.disabledWhen&&o.evaluateRule(s.disabledWhen,u)),required:n,options:J(s,u),error:t.get(f)}})},[e,u,l]),Y=g.useMemo(()=>S.filter(t=>t.visible),[S]),j=g.useCallback(t=>S.find(s=>s.id===t),[S]),N=g.useMemo(()=>!o.isEqual(u,v.current),[u]);return{values:u,errors:l,fields:S,visibleFields:Y,getFieldState:j,setValue:L,setValues:_,validate:G,isValid:l.length===0,isDirty:N,reset:P,submit:z}}const Q=new Set(["typography","divider","alert","image","imagelist","hyperlink","button"]),D=e=>e?.id||e?.props?.id,T=(e,r=new Set)=>((e||[]).forEach(i=>{const h=D(i);h&&r.add(h),Array.isArray(i?.subforms)&&i.subforms.forEach(p=>T(p?.data||[],r))}),r),X=e=>{if(!e||typeof e!="object")return[];if(typeof e.field=="string")return[e.field];const r=e.all||e.any||e.none;return Array.isArray(r)?r.flatMap(X):[]},Z=e=>(Array.isArray(e)?e:[]).map(r=>typeof r=="string"?r:r?.value);function x(e){const r=[],i=T(e),h=p=>{const u=new Set;(p||[]).forEach(a=>{const l=D(a),C=a?.type;if(!l&&!Q.has(C)&&r.push({level:"warning",code:"missing-id",message:`A "${C||"field"}" has no id; its value can't be captured.`}),l&&(u.has(l)&&r.push({level:"error",code:"duplicate-id",field:l,message:`Duplicate field id "${l}" among siblings — their values will collide.`}),u.add(l)),a?.dependsOn&&!a?.optionsMap&&r.push({level:"warning",code:"depends-without-options",field:l,message:`"${l}" has \`dependsOn\` but no \`optionsMap\`, so its options never change.`}),a?.optionsMap&&!a?.dependsOn&&r.push({level:"warning",code:"options-without-depends",field:l,message:`"${l}" has \`optionsMap\` but no \`dependsOn\`, so it can't pick a branch.`}),a?.dependsOn&&!i.has(a.dependsOn)&&r.push({level:"error",code:"unknown-depends-target",field:l,message:`"${l}" dependsOn "${a.dependsOn}", which is not a field in this schema.`}),["visibleWhen","disabledWhen","requiredWhen"].forEach(v=>{X(a?.[v]).forEach(A=>{i.has(A)||r.push({level:"error",code:"unknown-rule-field",field:l,message:`"${l}" ${v} references field "${A}", which does not exist.`})})}),(a?.rules?.validation||[]).forEach(v=>{v?.field&&/Field$/.test(v?.rule||"")&&!i.has(v.field)&&r.push({level:"error",code:"unknown-cross-field",field:l,message:`"${l}" rule "${v.rule}" compares against "${v.field}", which does not exist.`})}),Array.isArray(a?.subforms)&&a.subforms.length){const v=Z(a?.props?.options);v.length&&a.subforms.forEach(A=>{A?.conditionValue!==void 0&&!v.includes(A.conditionValue)&&r.push({level:"warning",code:"subform-condition-not-an-option",field:l,message:`"${l}" has a subform for value "${A.conditionValue}", which isn't one of its options.`})}),a.subforms.forEach(A=>h(A?.data||[]))}})};return h(e),r}function ee(e){return e}exports.AIFill=o.AIFill;exports.AIForm=o.AIForm;exports.AIFormGenerator=o.AIFormGenerator;exports.AISchemaReview=o.AISchemaReview;exports.AITextAssist=o.AITextAssist;exports.AIVisionImport=o.AIVisionImport;exports.ClearFormData=o.ClearFormData;exports.Controls=o.Controls_default;exports.DynamicComponent=o.DynamicComponent;exports.FormData=o.FormData;exports.FormGenerator=o.FormGenerator;exports.MuiConfig=o.mui;exports.configureMuiX=o.configureMuiX;exports.createAIClient=o.createAIClient;exports.formFieldsToSimple=o.formFieldsToSimple;exports.getMuiX=o.getMuiX;exports.getRegisteredControl=o.getRegisteredControl;exports.hasRegisteredControl=o.hasRegisteredControl;exports.registerControl=o.registerControl;exports.registerControls=o.registerControls;exports.registeredControlTypes=o.registeredControlTypes;exports.resetMuiX=o.resetMuiX;exports.simpleFieldsToFormFields=o.simpleFieldsToFormFields;exports.slug=o.slug;exports.unregisterControl=o.unregisterControl;exports.useAIAssist=o.useAIAssist;exports.useForm=o.useForm;exports.defineForm=ee;exports.useFormEngine=K;exports.validateSchema=x;exports.yupResolver=H;exports.zodResolver=U;
|
package/dist/dynamic-mui.mjs
CHANGED
|
@@ -1,5 +1,5 @@
|
|
|
1
|
-
import { y as I, z as k, B as Q, V as U, D as Z } from "./AIForm-
|
|
2
|
-
import { A as pe, a as fe, b as me, c as ge, d as ve, e as ye, E as be, C as Ae, G as Ee, q as we, F as Me, w as Se, H as Fe, f as Ie, g as Oe, i as Ve, I as $e, J as Ce, K as We, L as qe, M as Re, N as De, s as ke, h as Te, O as Le, u as _e, Q as ze } from "./AIForm-
|
|
1
|
+
import { y as I, z as k, B as Q, V as U, D as Z } from "./AIForm-BVJ7qhP5.mjs";
|
|
2
|
+
import { A as pe, a as fe, b as me, c as ge, d as ve, e as ye, E as be, C as Ae, G as Ee, q as we, F as Me, w as Se, H as Fe, f as Ie, g as Oe, i as Ve, I as $e, J as Ce, K as We, L as qe, M as Re, N as De, s as ke, h as Te, O as Le, u as _e, Q as ze } from "./AIForm-BVJ7qhP5.mjs";
|
|
3
3
|
import { useMemo as V, useState as T, useRef as x, useCallback as A } from "react";
|
|
4
4
|
function te(e) {
|
|
5
5
|
return (n) => {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
"use strict";Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});const e=require("react/jsx-runtime"),k=require("react"),w=require("@mui/material/Table"),S=require("@mui/material/TableBody"),a=require("@mui/material/TableCell"),I=require("@mui/material/TableContainer"),z=require("@mui/material/TableHead"),j=require("@mui/material/TableRow"),F=require("@mui/material/TextField"),W=require("@mui/material/IconButton"),B=require("@mui/material/Button"),M=require("@mui/material/FormControl"),P=require("@mui/material/FormLabel"),$=require("@mui/material/Paper"),E=require("@mui/icons-material/Add"),L=require("@mui/icons-material/Close"),d=require("./AIForm-
|
|
1
|
+
"use strict";Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});const e=require("react/jsx-runtime"),k=require("react"),w=require("@mui/material/Table"),S=require("@mui/material/TableBody"),a=require("@mui/material/TableCell"),I=require("@mui/material/TableContainer"),z=require("@mui/material/TableHead"),j=require("@mui/material/TableRow"),F=require("@mui/material/TextField"),W=require("@mui/material/IconButton"),B=require("@mui/material/Button"),M=require("@mui/material/FormControl"),P=require("@mui/material/FormLabel"),$=require("@mui/material/Paper"),E=require("@mui/icons-material/Add"),L=require("@mui/icons-material/Close"),d=require("./AIForm-D8_6RVmA.js");function f(o){return Array.isArray(o)?o.map(c=>({...c||{}})):[]}function H({attributes:o={},onChange:c}){const{MuiAttributes:g={},id:p="",columns:x=[],addLabel:q="Add row",label:m}=o,{sx:v,...y}=g,h=Array.isArray(x)?x:[],[l,i]=k.useState(()=>f(o.value));d.useUpdateEffect(()=>{i(f(o.value))},[o.value]);const u=r=>{c?.({id:p,value:r})},C=(r,t,n)=>{const s=l.map((b,T)=>T===r?{...b,[t]:n}:b);i(s),u(s)},A=()=>{const r=[...l,{}];i(r),u(r)},R=r=>{const t=l.filter((n,s)=>s!==r);i(t),u(t)};return e.jsxs(M,{component:"fieldset",fullWidth:!0,children:[m&&e.jsx(P,{component:"legend",sx:{mb:1},children:m}),e.jsx(I,{component:$,variant:"outlined",sx:{borderRadius:2,overflow:"hidden"},children:e.jsxs(w,{size:"small",children:[e.jsx(z,{children:e.jsxs(j,{sx:{backgroundColor:"action.hover"},children:[h.map(r=>e.jsx(a,{sx:{fontWeight:600},children:r.label},r.key)),e.jsx(a,{align:"right",sx:{width:48}})]})}),e.jsx(S,{children:l.map((r,t)=>e.jsxs(j,{sx:{transition:"background-color 150ms cubic-bezier(0.4, 0, 0.2, 1)","&:hover":{backgroundColor:"action.hover"}},children:[h.map(n=>e.jsx(a,{children:e.jsx(F,{...y,type:n.type==="number"?"number":"text",value:r[n.key]??"",onChange:s=>C(t,n.key,s.target.value),size:"small",variant:"standard",fullWidth:!0,sx:d.mergeSx(d.premiumInputSx,v),slotProps:{htmlInput:{"aria-label":`${n.label} row ${t+1}`}}})},n.key)),e.jsx(a,{align:"right",children:e.jsx(W,{"aria-label":`Remove row ${t+1}`,onClick:()=>R(t),size:"small",sx:{borderRadius:2,color:"text.secondary","&:hover":{color:"error.main"}},children:e.jsx(L,{fontSize:"small"})})})]},t))})]})}),e.jsx(B,{onClick:A,startIcon:e.jsx(E,{}),size:"small",variant:"text",sx:{alignSelf:"flex-start",mt:1,borderRadius:2,textTransform:"none",fontWeight:600},children:q})]})}exports.default=H;
|
|
@@ -14,7 +14,7 @@ import L from "@mui/material/FormLabel";
|
|
|
14
14
|
import M from "@mui/material/Paper";
|
|
15
15
|
import P from "@mui/icons-material/Add";
|
|
16
16
|
import H from "@mui/icons-material/Close";
|
|
17
|
-
import { j as U, m as _, k as q } from "./AIForm-
|
|
17
|
+
import { j as U, m as _, k as q } from "./AIForm-BVJ7qhP5.mjs";
|
|
18
18
|
function x(n) {
|
|
19
19
|
return Array.isArray(n) ? n.map((d) => ({ ...d || {} })) : [];
|
|
20
20
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
"use strict";Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});const r=require("react/jsx-runtime"),l=require("react"),i=require("@mui/material/Box"),c=require("@mui/material/Typography"),G=require("@mui/material/IconButton"),_=require("@mui/material/CircularProgress"),H=require("@mui/icons-material/CloudUpload"),J=require("@mui/icons-material/Close"),K=require("@mui/icons-material/InsertDriveFile"),b=require("./AIForm-
|
|
1
|
+
"use strict";Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});const r=require("react/jsx-runtime"),l=require("react"),i=require("@mui/material/Box"),c=require("@mui/material/Typography"),G=require("@mui/material/IconButton"),_=require("@mui/material/CircularProgress"),H=require("@mui/icons-material/CloudUpload"),J=require("@mui/icons-material/Close"),K=require("@mui/icons-material/InsertDriveFile"),b=require("./AIForm-D8_6RVmA.js"),N=require("./s3Upload-B0JeoLkS.js"),R=o=>o?Array.isArray(o)?o.filter(Boolean):[o]:[],Q=o=>/^data:image\//i.test(o)||/\.(png|jpe?g|gif|webp|bmp|svg)(\?.*)?$/i.test(o),V=o=>new Promise((f,x)=>{const s=new FileReader;s.onload=()=>f(s.result||""),s.onerror=()=>x(s.error),s.readAsDataURL(o)});function W({attributes:o={},rules:f={},onChange:x}){const{id:s="",multiple:d=!1,accept:g="",bucket:A="",region:C="",identityPoolId:F="",path:z="",maxSizeMB:h=0,label:j="Upload file",MuiAttributes:B={}}=o,S=l.useRef(null),[p,m]=l.useState(R(o.value)),[w,v]=l.useState(!1),[P,U]=l.useState(!1),[q,y]=l.useState(""),$=f?.validation?.some(e=>e.rule==="mandatory"||e.rule==="mandatoryselect")||!1;b.useUpdateEffect(()=>{m(R(o.value))},[o.value]);const D=(e,t)=>{x?.({id:s,value:d?e:e[0]??"",option:t})},k=async e=>{const t=Array.from(e);if(!t.length)return;y(""),U(!0);const a=[],u=[];try{for(const n of t){if(h&&n.size>h*1024*1024){y(`"${n.name}" exceeds the ${h}MB limit.`);continue}const O=await V(n),E=await N.uploadToS3(O,n.name,A,C,F,z);a.push(E),u.push(n)}}catch(n){console.error("FileUpload failed",n),y("Upload failed. Please try again.")}finally{U(!1)}if(!a.length)return;const I=d?[...p,...a]:a.slice(0,1);m(I),D(I,u)},M=e=>{e.target.files&&k(e.target.files),e.target.value=""},T=e=>{e.preventDefault(),v(!1),e.dataTransfer?.files?.length&&k(e.dataTransfer.files)},L=e=>{const t=p.filter((a,u)=>u!==e);m(t),D(t)};return r.jsxs(i,{sx:{width:"100%",...B.sx},children:[r.jsxs(c,{variant:"subtitle2",gutterBottom:!0,sx:{display:"flex"},children:[j,$&&r.jsx(i,{component:"span",sx:{color:"error.main",ml:.5},children:"*"})]}),r.jsx("input",{ref:S,type:"file",hidden:!0,multiple:d,accept:g||void 0,onChange:M}),r.jsxs(i,{role:"button","aria-label":j,onClick:()=>S.current?.click(),onDragOver:e=>{e.preventDefault(),v(!0)},onDragLeave:()=>v(!1),onDrop:T,sx:{border:"2px dashed",borderColor:w?"primary.main":"divider",borderRadius:"12px",p:3,textAlign:"center",cursor:"pointer",transition:"all .2s",bgcolor:w?"action.hover":"background.paper","&:hover":{borderColor:"primary.main",bgcolor:"action.hover"}},children:[P?r.jsx(_,{size:28}):r.jsx(H,{sx:{fontSize:40,color:"primary.main"}}),r.jsxs(c,{variant:"body2",sx:{mt:1},children:["Drag & drop ",d?"files":"a file"," here, or click to browse"]}),g&&r.jsxs(c,{variant:"caption",sx:{color:"text.secondary"},children:["Accepted: ",g]})]}),q&&r.jsx(c,{variant:"caption",sx:{color:"error.main",display:"block",mt:1},children:q}),p.length>0&&r.jsx(i,{sx:b.mergeSx(b.premiumSurfaceSx,{mt:1.5,p:1}),children:p.map((e,t)=>r.jsxs(i,{sx:{display:"flex",alignItems:"center",gap:1.5,p:1,borderRadius:"8px",transition:"background-color .18s","&:hover":{bgcolor:"action.hover"}},children:[Q(e)?r.jsx(i,{component:"img",src:e,alt:`upload-${t}`,sx:{width:40,height:40,objectFit:"cover",borderRadius:"8px",flexShrink:0}}):r.jsx(K,{color:"action",sx:{flexShrink:0}}),r.jsx(c,{variant:"body2",sx:{flexGrow:1,overflow:"hidden",textOverflow:"ellipsis",whiteSpace:"nowrap"},children:e.split("/").pop()?.split("?")[0]||e}),r.jsx(G,{size:"small","aria-label":"remove",onClick:a=>{a.stopPropagation(),L(t)},children:r.jsx(J,{fontSize:"small"})})]},`${e}-${t}`))})]})}exports.default=W;
|
|
@@ -7,7 +7,7 @@ import H from "@mui/material/CircularProgress";
|
|
|
7
7
|
import J from "@mui/icons-material/CloudUpload";
|
|
8
8
|
import K from "@mui/icons-material/Close";
|
|
9
9
|
import N from "@mui/icons-material/InsertDriveFile";
|
|
10
|
-
import { j as Q, m as V, l as W } from "./AIForm-
|
|
10
|
+
import { j as Q, m as V, l as W } from "./AIForm-BVJ7qhP5.mjs";
|
|
11
11
|
import { u as X } from "./s3Upload-dpioZ2c8.mjs";
|
|
12
12
|
const R = (r) => r ? Array.isArray(r) ? r.filter(Boolean) : [r] : [], Y = (r) => /^data:image\//i.test(r) || /\.(png|jpe?g|gif|webp|bmp|svg)(\?.*)?$/i.test(r), Z = (r) => new Promise((u, g) => {
|
|
13
13
|
const a = new FileReader();
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
import { jsxs as f, jsx as e } from "react/jsx-runtime";
|
|
2
2
|
import { useMemo as _, useState as $, useRef as G, useCallback as y } from "react";
|
|
3
3
|
import { Box as R, TextField as S, InputAdornment as T, Icon as A, Accordion as j, AccordionSummary as q, Typography as z, AccordionDetails as D } from "@mui/material";
|
|
4
|
-
import { q as M, F as P } from "./AIForm-
|
|
4
|
+
import { q as M, F as P } from "./AIForm-BVJ7qhP5.mjs";
|
|
5
5
|
import { v as W } from "./v4-BysszJq8.mjs";
|
|
6
6
|
function H({ attributes: h = {}, rules: v = {}, onChange: o }) {
|
|
7
7
|
const {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
"use strict";Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});const t=require("react/jsx-runtime"),i=require("react"),n=require("@mui/material"),b=require("./AIForm-
|
|
1
|
+
"use strict";Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});const t=require("react/jsx-runtime"),i=require("react"),n=require("@mui/material"),b=require("./AIForm-D8_6RVmA.js"),C=require("./v4-CqdK_b8Y.js");function N({attributes:f={},rules:j={},onChange:o}){const{id:c="",label:g="Group",min:s=1,max:u,subFields:A=[],value:a}=f,v=j?.validation?.some(e=>e.rule==="mandatory")||!1,F=i.useMemo(()=>{if(Array.isArray(a)&&a.length>0)return a.length;const e=Number(f.count);return!isNaN(e)&&e>=s?e:s},[]),[l,I]=i.useState(F),d=i.useRef([]),m=i.useCallback(e=>(d.current[e]||(d.current[e]=C.v4()),d.current[e]),[]),y=i.useCallback(e=>{if(!o)return;const r=Array.from({length:e},(p,x)=>{const h=`${c}-group-${m(x)}`;return b.FormData(h)??{}});o({id:c,value:r})},[c,m,o]),q=e=>{let r=parseInt(e,10);(isNaN(r)||r<s)&&(r=s),u!==void 0&&r>u&&(r=u),I(r),setTimeout(()=>y(r),0)};return t.jsxs(n.Box,{sx:{width:"100%"},children:[t.jsx(n.TextField,{type:"number",size:"small",label:`Number of ${g}s`,value:l,onChange:e=>q(e.target.value),required:v,sx:{mb:2,minWidth:200},slotProps:{input:{startAdornment:t.jsx(n.InputAdornment,{position:"start",children:t.jsx(n.Icon,{fontSize:"small",children:"format_list_numbered"})})},htmlInput:{min:s,...u!==void 0?{max:u}:{}}}}),Array.from({length:l},(e,r)=>{const p=`${c}-group-${m(r)}`,x=Array.isArray(a)?a[r]:void 0;return t.jsxs(n.Accordion,{defaultExpanded:r===0,sx:{mb:1},children:[t.jsx(n.AccordionSummary,{expandIcon:t.jsx(n.Icon,{children:"expand_more"}),children:t.jsxs(n.Typography,{sx:{fontWeight:600},children:[g," ",r+1]})}),t.jsx(n.AccordionDetails,{children:t.jsx(b.FormGenerator,{guid:p,data:A,patch:x??{},onChange:h=>{y(l),o&&o(h)}})})]},p)})]})}exports.default=N;
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
import { jsxs as b, jsx as a } from "react/jsx-runtime";
|
|
2
2
|
import { useState as G, useRef as w, useMemo as B, useCallback as S } from "react";
|
|
3
3
|
import { Box as l, Stepper as U, Step as j, StepLabel as C, Button as v } from "@mui/material";
|
|
4
|
-
import { P as c, F as E, m as M, o as N } from "./AIForm-
|
|
4
|
+
import { P as c, F as E, m as M, o as N } from "./AIForm-BVJ7qhP5.mjs";
|
|
5
5
|
import { v as P } from "./v4-BysszJq8.mjs";
|
|
6
6
|
function T({ attributes: $ = {}, onChange: n }) {
|
|
7
7
|
const {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
"use strict";Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});const s=require("react/jsx-runtime"),a=require("react"),n=require("@mui/material"),i=require("./AIForm-
|
|
1
|
+
"use strict";Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});const s=require("react/jsx-runtime"),a=require("react"),n=require("@mui/material"),i=require("./AIForm-D8_6RVmA.js"),y=require("./v4-CqdK_b8Y.js");function B({attributes:f={},onChange:l}){const{id:c="",guid:M,steps:x=[],patch:v={},finishLabel:j="Finish",validateSteps:d=!1,MuiAttributes:$={}}=f,[e,p]=a.useState(0),u=a.useRef(null),h=a.useMemo(()=>M||`${c}-${y.v4()}`,[]),r=Array.isArray(x)?x:[],o=Math.max(r.length-1,0),I=e>=o,R=e<=0,m=`${h}-step-${e}`,A=a.useCallback(()=>{p(t=>Math.max(t-1,0))},[]),g=a.useCallback(()=>{if(!(d&&u.current&&!u.current.validate())){if(e>=o){l?.({id:c,value:"complete",option:e});return}p(t=>Math.min(t+1,o))}},[e,o,c,l,d]),b=(t=>({borderRadius:`${i.PREMIUM_RADIUS+8}px`,textTransform:"none",fontWeight:600,px:3,transition:`box-shadow .18s ${i.PREMIUM_EASING}, transform .18s ${i.PREMIUM_EASING}`,"&:hover":{transform:"translateY(-1px)",boxShadow:`0 4px 12px ${t.palette.primary.main}22`}}));return s.jsxs(n.Box,{sx:{width:"100%"},...$,children:[s.jsx(n.Stepper,{activeStep:e,alternativeLabel:!0,sx:{mb:3,"& .MuiStepLabel-label":{fontWeight:500},"& .MuiStepIcon-root.Mui-active":{transition:`color .2s ${i.PREMIUM_EASING}`}},children:r.map((t,S)=>s.jsx(n.Step,{children:s.jsx(n.StepLabel,{children:t?.label??`Step ${S+1}`})},`${h}-label-${S}`))}),s.jsx(n.Box,{sx:{mb:3},children:r[e]&&s.jsx(i.FormGenerator,{guid:m,data:r[e].fields??[],patch:v,persistOnUnmount:!0,apiRef:u,onChange:t=>{l?.(t)}},m)}),s.jsxs(n.Box,{sx:{display:"flex",justifyContent:"space-between",gap:2},children:[s.jsx(n.Button,{variant:"outlined",onClick:A,disabled:R,sx:i.mergeSx(b),children:"Back"}),s.jsx(n.Button,{variant:"contained",onClick:g,sx:i.mergeSx(b),children:I?j:"Next"})]})]})}exports.default=B;
|
|
@@ -4,7 +4,7 @@ import s from "@mui/material/Box";
|
|
|
4
4
|
import k from "@mui/material/Link";
|
|
5
5
|
import h from "@mui/material/TextField";
|
|
6
6
|
import L from "@mui/material/Typography";
|
|
7
|
-
import { j, m as f, k as C, l as F } from "./AIForm-
|
|
7
|
+
import { j, m as f, k as C, l as F } from "./AIForm-BVJ7qhP5.mjs";
|
|
8
8
|
const b = (t) => {
|
|
9
9
|
if (t && typeof t == "object")
|
|
10
10
|
return {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
"use strict";Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});const l=require("react/jsx-runtime"),S=require("react"),i=require("@mui/material/Box"),$=require("@mui/material/Link"),x=require("@mui/material/TextField"),w=require("@mui/material/Typography"),o=require("./AIForm-
|
|
1
|
+
"use strict";Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});const l=require("react/jsx-runtime"),S=require("react"),i=require("@mui/material/Box"),$=require("@mui/material/Link"),x=require("@mui/material/TextField"),w=require("@mui/material/Typography"),o=require("./AIForm-D8_6RVmA.js"),h=t=>{if(t&&typeof t=="object")return{lat:t.lat!==void 0&&t.lat!==null?String(t.lat):"",lng:t.lng!==void 0&&t.lng!==null?String(t.lng):""};if(typeof t=="string"&&t.includes(",")){const[c="",a=""]=t.split(",");return{lat:c.trim(),lng:a.trim()}}return{lat:"",lng:""}};function q({attributes:t={},onChange:c}){const{id:a="",label:g="",showMap:b=!1,MuiAttributes:p={}}=t,[n,u]=S.useState(()=>h(t.value));o.useUpdateEffect(()=>{u(h(t.value))},[t.value]);const f=e=>{c?.({id:a,value:{lat:e.lat,lng:e.lng},option:`${e.lat},${e.lng}`})},d=e=>s=>{const r={...n,[e]:s.target.value};u(r),f(r)},y=n.lat!==""&&n.lng!=="",m=o.mergeSx(o.premiumInputSx,p.sx),j=()=>{const e=parseFloat(n.lat),s=parseFloat(n.lng),r=.01;return`https://www.openstreetmap.org/export/embed.html?bbox=${`${s-r},${e-r},${s+r},${e+r}`}&marker=${e},${s}`};return l.jsxs(i,{id:a,children:[g?l.jsx(w,{variant:"body2",sx:{mb:.75,fontWeight:500},children:g}):null,l.jsxs(i,{sx:{display:"flex",gap:1.5,flexWrap:"wrap"},children:[l.jsx(x,{type:"number",...p,label:"Latitude",value:n.lat,onChange:d("lat"),sx:m,slotProps:{htmlInput:{"aria-label":"Latitude",step:"any"}}}),l.jsx(x,{type:"number",...p,label:"Longitude",value:n.lng,onChange:d("lng"),sx:m,slotProps:{htmlInput:{"aria-label":"Longitude",step:"any"}}})]}),l.jsx(i,{sx:{mt:1},children:l.jsx($,{href:`https://www.google.com/maps?q=${n.lat},${n.lng}`,target:"_blank",rel:"noreferrer",variant:"body2",children:"Open in Maps"})}),b&&y?l.jsx(i,{sx:o.mergeSx(e=>({...o.premiumSurfaceSx(e),mt:1.5})),children:l.jsx("iframe",{title:"map",width:"100%",height:"240",style:{border:0,display:"block"},src:j()})}):null]})}exports.default=q;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
"use strict";Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});const e=require("react/jsx-runtime"),c=require("react"),t=require("@mui/material"),l=require("./AIForm-
|
|
1
|
+
"use strict";Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});const e=require("react/jsx-runtime"),c=require("react"),t=require("@mui/material"),l=require("./AIForm-D8_6RVmA.js"),d=require("./v4-CqdK_b8Y.js");function x({attributes:o={},patch:s,onChange:i}){const{MuiAttributes:r={},label:u="Group",subFields:n=[]}=o,a=c.useMemo(()=>d.v4(),[]);return e.jsxs(t.Paper,{elevation:1,sx:{p:2,mb:2,...r.sx},...r,children:[e.jsx(t.Typography,{variant:"subtitle1",gutterBottom:!0,sx:{fontWeight:600},children:u}),e.jsx(t.Box,{children:e.jsx(l.FormGenerator,{guid:a,data:n,patch:s,onChange:i})})]})}exports.default=x;
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
import { jsxs as u, jsx as t } from "react/jsx-runtime";
|
|
2
2
|
import n from "react";
|
|
3
3
|
import { Paper as p, Typography as l, Box as f } from "@mui/material";
|
|
4
|
-
import { F as c } from "./AIForm-
|
|
4
|
+
import { F as c } from "./AIForm-BVJ7qhP5.mjs";
|
|
5
5
|
import { v as d } from "./v4-BysszJq8.mjs";
|
|
6
6
|
function F({ attributes: o = {}, patch: e, onChange: i }) {
|
|
7
7
|
const { MuiAttributes: r = {}, label: s = "Group", subFields: a = [] } = o, m = n.useMemo(() => d(), []);
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
import { jsxs as m, jsx as c } from "react/jsx-runtime";
|
|
2
2
|
import x from "react";
|
|
3
|
-
import { j as k, m as I, k as A, r as G } from "./AIForm-
|
|
3
|
+
import { j as k, m as I, k as A, r as G } from "./AIForm-BVJ7qhP5.mjs";
|
|
4
4
|
import v from "@mui/material/Stack";
|
|
5
5
|
import N from "@mui/material/TextField";
|
|
6
6
|
import F from "@mui/material/MenuItem";
|
|
@@ -1 +1 @@
|
|
|
1
|
-
"use strict";Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});const o=require("react/jsx-runtime"),C=require("react"),t=require("./AIForm-
|
|
1
|
+
"use strict";Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});const o=require("react/jsx-runtime"),C=require("react"),t=require("./AIForm-D8_6RVmA.js"),U=require("@mui/material/Stack"),I=require("@mui/material/TextField"),M=require("@mui/material/MenuItem"),T=require("@mui/material/FormControl"),j=require("@mui/material/FormLabel"),n=[{code:"US",name:"United States",dial:"+1",flag:"🇺🇸"},{code:"GB",name:"United Kingdom",dial:"+44",flag:"🇬🇧"},{code:"IN",name:"India",dial:"+91",flag:"🇮🇳"},{code:"CA",name:"Canada",dial:"+1",flag:"🇨🇦"},{code:"AU",name:"Australia",dial:"+61",flag:"🇦🇺"},{code:"DE",name:"Germany",dial:"+49",flag:"🇩🇪"},{code:"FR",name:"France",dial:"+33",flag:"🇫🇷"},{code:"IT",name:"Italy",dial:"+39",flag:"🇮🇹"},{code:"ES",name:"Spain",dial:"+34",flag:"🇪🇸"},{code:"BR",name:"Brazil",dial:"+55",flag:"🇧🇷"},{code:"MX",name:"Mexico",dial:"+52",flag:"🇲🇽"},{code:"JP",name:"Japan",dial:"+81",flag:"🇯🇵"},{code:"CN",name:"China",dial:"+86",flag:"🇨🇳"},{code:"RU",name:"Russia",dial:"+7",flag:"🇷🇺"},{code:"ZA",name:"South Africa",dial:"+27",flag:"🇿🇦"},{code:"NG",name:"Nigeria",dial:"+234",flag:"🇳🇬"},{code:"KE",name:"Kenya",dial:"+254",flag:"🇰🇪"},{code:"AE",name:"United Arab Emirates",dial:"+971",flag:"🇦🇪"},{code:"SA",name:"Saudi Arabia",dial:"+966",flag:"🇸🇦"},{code:"SG",name:"Singapore",dial:"+65",flag:"🇸🇬"},{code:"MY",name:"Malaysia",dial:"+60",flag:"🇲🇾"},{code:"ID",name:"Indonesia",dial:"+62",flag:"🇮🇩"},{code:"PH",name:"Philippines",dial:"+63",flag:"🇵🇭"},{code:"TH",name:"Thailand",dial:"+66",flag:"🇹🇭"},{code:"VN",name:"Vietnam",dial:"+84",flag:"🇻🇳"},{code:"KR",name:"South Korea",dial:"+82",flag:"🇰🇷"},{code:"NZ",name:"New Zealand",dial:"+64",flag:"🇳🇿"},{code:"IE",name:"Ireland",dial:"+353",flag:"🇮🇪"},{code:"NL",name:"Netherlands",dial:"+31",flag:"🇳🇱"},{code:"SE",name:"Sweden",dial:"+46",flag:"🇸🇪"},{code:"NO",name:"Norway",dial:"+47",flag:"🇳🇴"},{code:"DK",name:"Denmark",dial:"+45",flag:"🇩🇰"},{code:"CH",name:"Switzerland",dial:"+41",flag:"🇨🇭"},{code:"PL",name:"Poland",dial:"+48",flag:"🇵🇱"},{code:"PT",name:"Portugal",dial:"+351",flag:"🇵🇹"},{code:"GR",name:"Greece",dial:"+30",flag:"🇬🇷"},{code:"TR",name:"Turkey",dial:"+90",flag:"🇹🇷"},{code:"EG",name:"Egypt",dial:"+20",flag:"🇪🇬"},{code:"AR",name:"Argentina",dial:"+54",flag:"🇦🇷"},{code:"CL",name:"Chile",dial:"+56",flag:"🇨🇱"}];function A(a,m){if(typeof a=="string"&&a.trim()){const d=[...n].sort((i,c)=>c.dial.length-i.dial.length).find(i=>a.startsWith(i.dial));if(d)return{code:d.code,number:a.slice(d.dial.length).trim()}}return{code:m,number:""}}function v({attributes:a={},rules:m={},onChange:s}){const{id:d="",defaultCountry:i="US",label:c,MuiAttributes:N={}}=a,{sx:u,...P}=N,f=n.some(e=>e.code===i)?i:"US",g=A(a.value,f),[h,S]=C.useState(g.code),[p,x]=C.useState(g.number);t.useUpdateEffect(()=>{const e=A(a.value,f);S(e.code),x(e.number)},[a.value]);const b=m?.validation?.some(e=>e.rule==="mandatory"||e.rule==="mandatoryselect")||!1,y=(e,l)=>{const r=n.find(q=>q.code===e)||n[0];s?.({id:d,value:`${r.dial} ${l}`.trim(),option:{country:r.code,dial:r.dial,number:l}})},E=e=>{const l=e.target.value;S(l),y(l,p)},R=e=>{x(e.value),y(h,e.value)};return o.jsxs(T,{component:"fieldset",fullWidth:!0,children:[c&&o.jsx(j,{component:"legend",required:b,sx:{mb:1},children:c}),o.jsxs(U,{direction:"row",spacing:1,sx:{alignItems:"flex-start"},children:[o.jsx(I,{select:!0,value:h,onChange:E,size:"small",label:"Country","aria-label":"Country dial code",sx:t.mergeSx(t.premiumInputSx,{minWidth:120,flexShrink:0,...u}),slotProps:{select:{renderValue:e=>{const l=n.find(r=>r.code===e)||n[0];return`${l.flag} ${l.dial}`}}},children:n.map(e=>o.jsxs(M,{value:e.code,children:[e.flag," ",e.name," (",e.dial,")"]},e.code))}),o.jsx(t.PatternFormat,{customInput:I,format:"### ### ####",mask:"_",value:p,onValueChange:R,fullWidth:!0,required:b,label:"Phone number",id:d,name:"intlphone",...P,sx:t.mergeSx(t.premiumInputSx,u)})]})]})}exports.default=v;
|
|
@@ -9,7 +9,7 @@ import q from "@mui/material/FormLabel";
|
|
|
9
9
|
import w from "@mui/material/FormHelperText";
|
|
10
10
|
import B from "@mui/icons-material/Add";
|
|
11
11
|
import K from "@mui/icons-material/Close";
|
|
12
|
-
import { j as V, m as b, k as A } from "./AIForm-
|
|
12
|
+
import { j as V, m as b, k as A } from "./AIForm-BVJ7qhP5.mjs";
|
|
13
13
|
function C(t) {
|
|
14
14
|
return Array.isArray(t) ? t.map((r) => ({
|
|
15
15
|
key: r?.key ?? "",
|
|
@@ -1 +1 @@
|
|
|
1
|
-
"use strict";Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});const n=require("react/jsx-runtime"),F=require("react"),v=require("@mui/material/Stack"),j=require("@mui/material/TextField"),z=require("@mui/material/IconButton"),M=require("@mui/material/Button"),T=require("@mui/material/FormControl"),W=require("@mui/material/FormLabel"),E=require("@mui/material/FormHelperText"),L=require("@mui/icons-material/Add"),w=require("@mui/icons-material/Close"),i=require("./AIForm-
|
|
1
|
+
"use strict";Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});const n=require("react/jsx-runtime"),F=require("react"),v=require("@mui/material/Stack"),j=require("@mui/material/TextField"),z=require("@mui/material/IconButton"),M=require("@mui/material/Button"),T=require("@mui/material/FormControl"),W=require("@mui/material/FormLabel"),E=require("@mui/material/FormHelperText"),L=require("@mui/icons-material/Add"),w=require("@mui/icons-material/Close"),i=require("./AIForm-D8_6RVmA.js");function k(t){return Array.isArray(t)?t.map(r=>({key:r?.key??"",value:r?.value??""})):t&&typeof t=="object"?Object.keys(t).map(r=>({key:r,value:String(t[r]??"")})):[]}function B(t){const r={};return t.forEach(l=>{l.key!==""&&(r[l.key]=l.value)}),r}function K({attributes:t={},rules:r={},onChange:l}){const{MuiAttributes:q={},id:b="",keyLabel:S="Key",valueLabel:A="Value",label:m}=t,{sx:x,...y}=q,[a,u]=F.useState(()=>k(t.value)),f=r?.validation?.some(e=>e.rule==="mandatory"||e.rule==="mandatoryselect")||!1;i.useUpdateEffect(()=>{u(k(t.value))},[t.value]);const d=e=>{l?.({id:b,value:B(e),option:e})},h=(e,o,s)=>{const c=a.map((g,R)=>R===e?{...g,[o]:s}:g);u(c),d(c)},C=()=>{const e=[...a,{key:"",value:""}];u(e),d(e)},I=e=>{const o=a.filter((s,c)=>c!==e);u(o),d(o)},p=f&&a.filter(e=>e.key!=="").length===0;return n.jsxs(T,{component:"fieldset",error:p,fullWidth:!0,children:[m&&n.jsx(W,{component:"legend",required:f,sx:{mb:1},children:m}),n.jsx(v,{spacing:1.25,children:a.map((e,o)=>n.jsxs(v,{direction:"row",spacing:1,sx:{alignItems:"center"},children:[n.jsx(j,{...y,label:S,value:e.key,onChange:s=>h(o,"key",s.target.value),size:"small",fullWidth:!0,sx:i.mergeSx(i.premiumInputSx,x)}),n.jsx(j,{...y,label:A,value:e.value,onChange:s=>h(o,"value",s.target.value),size:"small",fullWidth:!0,sx:i.mergeSx(i.premiumInputSx,x)}),n.jsx(z,{"aria-label":`Remove ${e.key||"row"}`,onClick:()=>I(o),size:"small",sx:{borderRadius:2,color:"text.secondary","&:hover":{color:"error.main"}},children:n.jsx(w,{fontSize:"small"})})]},o))}),n.jsx(M,{onClick:C,startIcon:n.jsx(L,{}),size:"small",variant:"text",sx:{alignSelf:"flex-start",mt:1,borderRadius:2,textTransform:"none",fontWeight:600},children:"Add"}),p&&n.jsx(E,{children:r?.validation?.find(e=>e.rule==="mandatory"||e.rule==="mandatoryselect")?.message||"At least one entry is required"})]})}exports.default=K;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
"use strict";var c=Object.create;var u=Object.defineProperty;var a=Object.getOwnPropertyDescriptor;var l=Object.getOwnPropertyNames;var h=Object.getPrototypeOf,d=Object.prototype.hasOwnProperty;var x=(e,t,r,n)=>{if(t&&typeof t=="object"||typeof t=="function")for(let i of l(t))!d.call(e,i)&&i!==r&&u(e,i,{get:()=>t[i],enumerable:!(n=a(t,i))||n.enumerable});return e};var f=(e,t,r)=>(r=e!=null?c(h(e)):{},x(t||!e||!e.__esModule?u(r,"default",{value:e,enumerable:!0}):r,e));Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});const s=require("react/jsx-runtime"),o=require("react"),j=require("@mui/material/Box"),C=require("@mui/material/CircularProgress"),y=require("./AIForm-
|
|
1
|
+
"use strict";var c=Object.create;var u=Object.defineProperty;var a=Object.getOwnPropertyDescriptor;var l=Object.getOwnPropertyNames;var h=Object.getPrototypeOf,d=Object.prototype.hasOwnProperty;var x=(e,t,r,n)=>{if(t&&typeof t=="object"||typeof t=="function")for(let i of l(t))!d.call(e,i)&&i!==r&&u(e,i,{get:()=>t[i],enumerable:!(n=a(t,i))||n.enumerable});return e};var f=(e,t,r)=>(r=e!=null?c(h(e)):{},x(t||!e||!e.__esModule?u(r,"default",{value:e,enumerable:!0}):r,e));Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});const s=require("react/jsx-runtime"),o=require("react"),j=require("@mui/material/Box"),C=require("@mui/material/CircularProgress"),y=require("./AIForm-D8_6RVmA.js"),g=o.lazy(()=>import("@mui/x-charts/LineChart").then(e=>({default:e.LineChart})));function p({attributes:e={}}){const{MuiChartAttributes:t={},id:r=""}=e,n=y.getMuiX("LineChart")||g;return s.jsx(o.Suspense,{fallback:s.jsx(j,{sx:{display:"flex",justifyContent:"center",p:2},children:s.jsx(C,{})}),children:s.jsx(n,{height:300,...t},r)})}exports.default=p;
|
|
@@ -2,7 +2,7 @@ import { jsx as t } from "react/jsx-runtime";
|
|
|
2
2
|
import n, { Suspense as a } from "react";
|
|
3
3
|
import s from "@mui/material/Box";
|
|
4
4
|
import f from "@mui/material/CircularProgress";
|
|
5
|
-
import { i as m } from "./AIForm-
|
|
5
|
+
import { i as m } from "./AIForm-BVJ7qhP5.mjs";
|
|
6
6
|
const c = n.lazy(
|
|
7
7
|
() => import("@mui/x-charts/LineChart").then((r) => ({ default: r.LineChart }))
|
|
8
8
|
);
|
|
@@ -1 +1 @@
|
|
|
1
|
-
"use strict";Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});const i=require("react/jsx-runtime"),g=require("react"),a=require("@mui/material"),T=require("./AIForm-
|
|
1
|
+
"use strict";Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});const i=require("react/jsx-runtime"),g=require("react"),a=require("@mui/material"),T=require("./AIForm-D8_6RVmA.js");function k(t,o){if(Array.isArray(t)&&t.length>0){const l=t[0],c=Object.keys(l).find(d=>d!=="fee");if(c)return c.replace(/\d+$/,"")}return o}function v(t,o){return Array.isArray(t)&&t.length>0?t.map((l,c)=>{const{fee:d=0,...f}=l,u=Object.keys(f)[0]||`${o}${c+1}`;return{key:u,description:String(f[u]??""),fee:Number(d)||0}}):[{key:`${o}1`,description:"",fee:0}]}function W(t){return t.map(o=>({fee:o.fee,[o.key]:o.description}))}function F({attributes:t={},rules:o={},onChange:l}){const{id:c="",keyPrefix:d="item",showRowBadge:f=!0,readOnly:u=!1,showActions:I=!0,MuiAttributes:j={}}=t,w=I&&!u,{row:P={},rowBadge:b={},description:A={},fee:B={},addButton:S={},removeButton:C={}}=j,h=o?.validation?.some(e=>e.rule==="mandatory")||!1,m=k(t.value,d),[s,p]=g.useState(()=>v(t.value,m));T.useUpdateEffect(()=>{const e=k(t.value,d),n=v(t.value,e);JSON.stringify(n)!==JSON.stringify(s)&&p(n)},[t.value]),g.useEffect(()=>{l&&l({id:c,value:W(s)})},[s,c]);const $=()=>{const e=s.length+1;p([...s,{key:`${m}${e}`,description:"",fee:0}])},R=e=>{const r=s.filter((x,y)=>y!==e).map((x,y)=>({...x,key:`${m}${y+1}`}));p(r)},q=(e,n)=>{const r=[...s];r[e]={...r[e],description:n},p(r)},O=(e,n)=>{const r=[...s];r[e]={...r[e],fee:Number(n)||0},p(r)};return i.jsx(a.Stack,{spacing:1.5,sx:{width:"100%"},children:s.map((e,n)=>i.jsxs(a.Box,{sx:{display:"flex",gap:1,alignItems:"flex-start",p:1.5,border:"1px solid",borderColor:"divider",borderRadius:1,backgroundColor:"background.paper"},...P,children:[f&&i.jsx(a.Typography,{variant:"caption",sx:{minWidth:24,height:24,borderRadius:"50%",backgroundColor:"primary.main",color:"primary.contrastText",display:"flex",alignItems:"center",justifyContent:"center",fontWeight:700,flexShrink:0,mt:.75},...b,children:n+1}),i.jsx(a.TextField,{fullWidth:!0,size:"small",label:"Description",required:h,error:h&&!e.description,helperText:h&&!e.description?"Required":"",value:e.description,onChange:r=>q(n,r.target.value),...A,slotProps:{input:{readOnly:u}}}),i.jsx(a.TextField,{size:"small",label:"Fee",type:"number",sx:{minWidth:120},required:h,value:e.fee,onChange:r=>O(n,r.target.value),onWheel:r=>r.target.blur(),...B,slotProps:{input:{readOnly:u,startAdornment:i.jsx(a.InputAdornment,{position:"start",children:"$"})},htmlInput:{min:0,step:.01}}}),w&&(n===s.length-1?i.jsx(a.Button,{variant:"contained",color:"primary",onClick:$,sx:{minWidth:40,px:1,height:40,flexShrink:0},title:"Add row",...S,children:i.jsx(a.Icon,{children:"add"})}):i.jsx(a.IconButton,{color:"error",onClick:()=>R(n),sx:{height:40,flexShrink:0},title:"Remove row",...C,children:i.jsx(a.Icon,{children:"delete"})}))]},e.key))})}exports.default=F;
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
import { jsx as s, jsxs as O } from "react/jsx-runtime";
|
|
2
2
|
import { useState as N, useEffect as T } from "react";
|
|
3
3
|
import { Stack as q, Box as z, Typography as E, TextField as g, InputAdornment as F, Button as D, Icon as x, IconButton as J } from "@mui/material";
|
|
4
|
-
import { j as L } from "./AIForm-
|
|
4
|
+
import { j as L } from "./AIForm-BVJ7qhP5.mjs";
|
|
5
5
|
function k(r, o) {
|
|
6
6
|
if (Array.isArray(r) && r.length > 0) {
|
|
7
7
|
const c = r[0], a = Object.keys(c).find((l) => l !== "fee");
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
import { jsx as r, jsxs as m } from "react/jsx-runtime";
|
|
2
2
|
import { List as a, ListItem as u, ListItemIcon as x, Icon as L, ListItemText as p } from "@mui/material";
|
|
3
|
-
import { m as d, l } from "./AIForm-
|
|
3
|
+
import { m as d, l } from "./AIForm-BVJ7qhP5.mjs";
|
|
4
4
|
function A({ attributes: i = {} }) {
|
|
5
5
|
const { MuiAttributes: e = {}, items: s = [] } = i, { sx: o, ...n } = e;
|
|
6
6
|
return /* @__PURE__ */ r(a, { ...n, sx: d(l, o), children: (Array.isArray(s) ? s : []).map((t, c) => /* @__PURE__ */ m(u, { ...t.MuiListItemAttributes, children: [
|
|
@@ -1 +1 @@
|
|
|
1
|
-
"use strict";Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});const r=require("react/jsx-runtime"),e=require("@mui/material"),i=require("./AIForm-
|
|
1
|
+
"use strict";Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});const r=require("react/jsx-runtime"),e=require("@mui/material"),i=require("./AIForm-D8_6RVmA.js");function x({attributes:n={}}){const{MuiAttributes:c={},items:s=[]}=n,{sx:u,...o}=c;return r.jsx(e.List,{...o,sx:i.mergeSx(i.premiumSurfaceSx,u),children:(Array.isArray(s)?s:[]).map((t,a)=>r.jsxs(e.ListItem,{...t.MuiListItemAttributes,children:[t.icon&&r.jsx(e.ListItemIcon,{children:r.jsx(e.Icon,{children:t.icon})}),r.jsx(e.ListItemText,{primary:t.primary,secondary:t.secondary,...t.MuiListItemTextAttributes})]},a))})}exports.default=x;
|