@webiny/admin-ui 0.0.0-unstable.e622468070 → 0.0.0-unstable.f6dc066313
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/AdminUiProvider/AdminUiProvider.d.ts +9 -2
- package/AdminUiProvider/AdminUiProvider.js +42 -7
- package/AdminUiProvider/AdminUiProvider.js.map +1 -1
- package/Alert/Alert.js +5 -1
- package/Alert/Alert.js.map +1 -1
- package/AutoComplete/AutoComplete.d.ts +6 -6
- package/AutoComplete/AutoComplete.js +2 -0
- package/AutoComplete/AutoComplete.js.map +1 -1
- package/AutoComplete/primitives/AutoCompletePrimitive.js +1 -1
- package/AutoComplete/primitives/AutoCompletePrimitive.js.map +1 -1
- package/Checkbox/primitives/CheckboxPrimitive.d.ts +7 -6
- package/Checkbox/primitives/CheckboxPrimitive.js +4 -1
- package/Checkbox/primitives/CheckboxPrimitive.js.map +1 -1
- package/CheckboxGroup/CheckboxGroup.d.ts +6 -6
- package/CheckboxGroup/CheckboxGroup.js +5 -1
- package/CheckboxGroup/CheckboxGroup.js.map +1 -1
- package/CheckboxGroup/primitives/CheckboxGroupPrimitive.d.ts +11 -6
- package/CheckboxGroup/primitives/CheckboxGroupPrimitive.js +5 -2
- package/CheckboxGroup/primitives/CheckboxGroupPrimitive.js.map +1 -1
- package/CodeEditor/CodeEditor.d.ts +6 -6
- package/CodeEditor/CodeEditor.js +2 -0
- package/CodeEditor/CodeEditor.js.map +1 -1
- package/ColorPicker/ColorPicker.d.ts +6 -6
- package/ColorPicker/ColorPicker.js +2 -0
- package/ColorPicker/ColorPicker.js.map +1 -1
- package/DataTable/DataTable.d.ts +1 -0
- package/DataTable/DataTable.js +2 -1
- package/DataTable/DataTable.js.map +1 -1
- package/FilePicker/FilePicker.d.ts +6 -6
- package/FilePicker/FilePicker.js +2 -0
- package/FilePicker/FilePicker.js.map +1 -1
- package/FilePicker/primitives/components/Label.d.ts +2 -2
- package/FilePicker/primitives/components/Label.js +2 -0
- package/FilePicker/primitives/components/Label.js.map +1 -1
- package/FormComponent/Description.js +5 -1
- package/FormComponent/Description.js.map +1 -1
- package/FormComponent/FormComponent.d.ts +4 -0
- package/FormComponent/FormComponent.js.map +1 -1
- package/FormComponent/Note.js +5 -1
- package/FormComponent/Note.js.map +1 -1
- package/Grid/Grid.d.ts +1 -1
- package/HeaderBar/HeaderBar.js +1 -1
- package/HeaderBar/HeaderBar.js.map +1 -1
- package/IconPicker/IconPicker.d.ts +6 -6
- package/IconPicker/IconPicker.js +2 -0
- package/IconPicker/IconPicker.js.map +1 -1
- package/Input/Input.d.ts +6 -6
- package/Input/Input.js +3 -1
- package/Input/Input.js.map +1 -1
- package/Label/Label.d.ts +1 -1
- package/Label/Label.js +7 -3
- package/Label/Label.js.map +1 -1
- package/MultiAutoComplete/MultiAutoComplete.d.ts +6 -6
- package/MultiAutoComplete/MultiAutoComplete.js +2 -0
- package/MultiAutoComplete/MultiAutoComplete.js.map +1 -1
- package/RadioGroup/RadioGroup.d.ts +6 -6
- package/RadioGroup/RadioGroup.js +5 -1
- package/RadioGroup/RadioGroup.js.map +1 -1
- package/RangeSlider/RangeSlider.d.ts +6 -6
- package/RangeSlider/RangeSlider.js +2 -0
- package/RangeSlider/RangeSlider.js.map +1 -1
- package/SegmentedControl/SegmentedControl.d.ts +6 -6
- package/SegmentedControl/SegmentedControl.js +2 -0
- package/SegmentedControl/SegmentedControl.js.map +1 -1
- package/Select/Select.d.ts +6 -6
- package/Select/Select.js +2 -0
- package/Select/Select.js.map +1 -1
- package/Separator/Separator.js +1 -1
- package/Separator/Separator.js.map +1 -1
- package/Slider/Slider.d.ts +6 -6
- package/Slider/Slider.js +2 -0
- package/Slider/Slider.js.map +1 -1
- package/Tags/Tags.d.ts +6 -6
- package/Tags/Tags.js +2 -0
- package/Tags/Tags.js.map +1 -1
- package/Tags/primitives/presenters/TagsValuesPresenter.js +1 -1
- package/Tags/primitives/presenters/TagsValuesPresenter.js.map +1 -1
- package/Textarea/Textarea.d.ts +6 -6
- package/Textarea/Textarea.js +2 -0
- package/Textarea/Textarea.js.map +1 -1
- package/package.json +19 -19
|
@@ -1,12 +1,19 @@
|
|
|
1
1
|
import React from "react";
|
|
2
2
|
import { type LinkComponent } from "../index.js";
|
|
3
|
+
export type CompileMarkdown = (markdown: React.ReactNode) => React.ReactNode;
|
|
3
4
|
export interface AdminUiContextValue {
|
|
4
5
|
linkComponent: LinkComponent;
|
|
6
|
+
compileMarkdown: CompileMarkdown;
|
|
7
|
+
}
|
|
8
|
+
export declare const AdminUiContext: React.Context<AdminUiContextValue | undefined>;
|
|
9
|
+
interface MarkdownCompiler {
|
|
10
|
+
(markdown: string): React.ReactNode;
|
|
5
11
|
}
|
|
6
|
-
export declare const AdminUiContext: React.Context<AdminUiContextValue>;
|
|
7
12
|
export interface AdminUiProviderProps {
|
|
8
13
|
linkComponent?: LinkComponent;
|
|
14
|
+
markdownCompiler?: MarkdownCompiler;
|
|
9
15
|
children: React.ReactNode;
|
|
10
16
|
}
|
|
11
|
-
export declare const AdminUiProvider: ({ children,
|
|
17
|
+
export declare const AdminUiProvider: ({ children, ...props }: AdminUiProviderProps) => React.JSX.Element;
|
|
12
18
|
export declare const useAdminUi: () => AdminUiContextValue;
|
|
19
|
+
export {};
|
|
@@ -1,22 +1,57 @@
|
|
|
1
|
-
import React from "react";
|
|
1
|
+
import React, { useCallback, useEffect, useRef } from "react";
|
|
2
2
|
import { Toast } from "../Toast/index.js";
|
|
3
3
|
import { Tooltip } from "../Tooltip/index.js";
|
|
4
4
|
import { DefaultLinkComponent } from "../index.js";
|
|
5
|
-
|
|
6
|
-
|
|
7
|
-
});
|
|
5
|
+
const passthrough = markdown => markdown;
|
|
6
|
+
export const AdminUiContext = /*#__PURE__*/React.createContext(undefined);
|
|
8
7
|
export const AdminUiProvider = ({
|
|
9
8
|
children,
|
|
10
|
-
|
|
9
|
+
...props
|
|
11
10
|
}) => {
|
|
11
|
+
const linkComponent = props.linkComponent ?? DefaultLinkComponent;
|
|
12
|
+
const markdownCompiler = props.markdownCompiler ?? passthrough;
|
|
13
|
+
|
|
14
|
+
// Cache to store compiled markdown results
|
|
15
|
+
const cacheRef = useRef(new Map());
|
|
16
|
+
|
|
17
|
+
// Clear cache when markdownCompiler changes
|
|
18
|
+
useEffect(() => {
|
|
19
|
+
cacheRef.current.clear();
|
|
20
|
+
}, [markdownCompiler]);
|
|
21
|
+
const compileMarkdown = useCallback(markdown => {
|
|
22
|
+
if (!markdownCompiler) {
|
|
23
|
+
return markdown;
|
|
24
|
+
}
|
|
25
|
+
if (/*#__PURE__*/React.isValidElement(markdown)) {
|
|
26
|
+
return markdown;
|
|
27
|
+
}
|
|
28
|
+
if (typeof markdown === "string") {
|
|
29
|
+
// Check cache first
|
|
30
|
+
const cached = cacheRef.current.get(markdown);
|
|
31
|
+
if (cached !== undefined) {
|
|
32
|
+
return cached;
|
|
33
|
+
}
|
|
34
|
+
|
|
35
|
+
// Compile and cache
|
|
36
|
+
const compiled = markdownCompiler(markdown);
|
|
37
|
+
cacheRef.current.set(markdown, compiled);
|
|
38
|
+
return compiled;
|
|
39
|
+
}
|
|
40
|
+
return markdown;
|
|
41
|
+
}, [markdownCompiler]);
|
|
12
42
|
return /*#__PURE__*/React.createElement(AdminUiContext.Provider, {
|
|
13
43
|
value: {
|
|
14
|
-
linkComponent
|
|
44
|
+
linkComponent,
|
|
45
|
+
compileMarkdown
|
|
15
46
|
}
|
|
16
47
|
}, /*#__PURE__*/React.createElement(Tooltip.Provider, null, children), /*#__PURE__*/React.createElement(Toast.Provider, null));
|
|
17
48
|
};
|
|
18
49
|
export const useAdminUi = () => {
|
|
19
|
-
|
|
50
|
+
const context = React.useContext(AdminUiContext);
|
|
51
|
+
if (!context) {
|
|
52
|
+
throw new Error("AdminUiProvider is missing from the component tree.");
|
|
53
|
+
}
|
|
54
|
+
return context;
|
|
20
55
|
};
|
|
21
56
|
|
|
22
57
|
//# sourceMappingURL=AdminUiProvider.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":["React","Toast","Tooltip","DefaultLinkComponent","AdminUiContext","createContext","
|
|
1
|
+
{"version":3,"names":["React","useCallback","useEffect","useRef","Toast","Tooltip","DefaultLinkComponent","passthrough","markdown","AdminUiContext","createContext","undefined","AdminUiProvider","children","props","linkComponent","markdownCompiler","cacheRef","Map","current","clear","compileMarkdown","isValidElement","cached","get","compiled","set","createElement","Provider","value","useAdminUi","context","useContext","Error"],"sources":["AdminUiProvider.tsx"],"sourcesContent":["import React, { useCallback, useEffect, useRef } from \"react\";\nimport { Toast } from \"~/Toast/index.js\";\nimport { Tooltip } from \"~/Tooltip/index.js\";\nimport { type LinkComponent, DefaultLinkComponent } from \"~/index.js\";\n\nexport type CompileMarkdown = (markdown: React.ReactNode) => React.ReactNode;\n\nexport interface AdminUiContextValue {\n linkComponent: LinkComponent;\n compileMarkdown: CompileMarkdown;\n}\n\nconst passthrough = (markdown: string) => markdown;\n\nexport const AdminUiContext = React.createContext<AdminUiContextValue | undefined>(undefined);\n\ninterface MarkdownCompiler {\n (markdown: string): React.ReactNode;\n}\n\nexport interface AdminUiProviderProps {\n linkComponent?: LinkComponent;\n markdownCompiler?: MarkdownCompiler;\n children: React.ReactNode;\n}\n\nexport const AdminUiProvider = ({ children, ...props }: AdminUiProviderProps) => {\n const linkComponent = props.linkComponent ?? DefaultLinkComponent;\n const markdownCompiler = props.markdownCompiler ?? passthrough;\n\n // Cache to store compiled markdown results\n const cacheRef = useRef(new Map<string, React.ReactNode>());\n\n // Clear cache when markdownCompiler changes\n useEffect(() => {\n cacheRef.current.clear();\n }, [markdownCompiler]);\n\n const compileMarkdown = useCallback(\n (markdown: React.ReactNode) => {\n if (!markdownCompiler) {\n return markdown;\n }\n\n if (React.isValidElement(markdown)) {\n return markdown;\n }\n\n if (typeof markdown === \"string\") {\n // Check cache first\n const cached = cacheRef.current.get(markdown);\n if (cached !== undefined) {\n return cached;\n }\n\n // Compile and cache\n const compiled = markdownCompiler(markdown);\n cacheRef.current.set(markdown, compiled);\n return compiled;\n }\n\n return markdown;\n },\n [markdownCompiler]\n );\n\n return (\n <AdminUiContext.Provider value={{ linkComponent, compileMarkdown }}>\n <Tooltip.Provider>{children}</Tooltip.Provider>\n <Toast.Provider />\n </AdminUiContext.Provider>\n );\n};\n\nexport const useAdminUi = () => {\n const context = React.useContext(AdminUiContext);\n if (!context) {\n throw new Error(\"AdminUiProvider is missing from the component tree.\");\n }\n return context;\n};\n"],"mappings":"AAAA,OAAOA,KAAK,IAAIC,WAAW,EAAEC,SAAS,EAAEC,MAAM,QAAQ,OAAO;AAC7D,SAASC,KAAK;AACd,SAASC,OAAO;AAChB,SAA6BC,oBAAoB;AASjD,MAAMC,WAAW,GAAIC,QAAgB,IAAKA,QAAQ;AAElD,OAAO,MAAMC,cAAc,gBAAGT,KAAK,CAACU,aAAa,CAAkCC,SAAS,CAAC;AAY7F,OAAO,MAAMC,eAAe,GAAGA,CAAC;EAAEC,QAAQ;EAAE,GAAGC;AAA4B,CAAC,KAAK;EAC7E,MAAMC,aAAa,GAAGD,KAAK,CAACC,aAAa,IAAIT,oBAAoB;EACjE,MAAMU,gBAAgB,GAAGF,KAAK,CAACE,gBAAgB,IAAIT,WAAW;;EAE9D;EACA,MAAMU,QAAQ,GAAGd,MAAM,CAAC,IAAIe,GAAG,CAA0B,CAAC,CAAC;;EAE3D;EACAhB,SAAS,CAAC,MAAM;IACZe,QAAQ,CAACE,OAAO,CAACC,KAAK,CAAC,CAAC;EAC5B,CAAC,EAAE,CAACJ,gBAAgB,CAAC,CAAC;EAEtB,MAAMK,eAAe,GAAGpB,WAAW,CAC9BO,QAAyB,IAAK;IAC3B,IAAI,CAACQ,gBAAgB,EAAE;MACnB,OAAOR,QAAQ;IACnB;IAEA,iBAAIR,KAAK,CAACsB,cAAc,CAACd,QAAQ,CAAC,EAAE;MAChC,OAAOA,QAAQ;IACnB;IAEA,IAAI,OAAOA,QAAQ,KAAK,QAAQ,EAAE;MAC9B;MACA,MAAMe,MAAM,GAAGN,QAAQ,CAACE,OAAO,CAACK,GAAG,CAAChB,QAAQ,CAAC;MAC7C,IAAIe,MAAM,KAAKZ,SAAS,EAAE;QACtB,OAAOY,MAAM;MACjB;;MAEA;MACA,MAAME,QAAQ,GAAGT,gBAAgB,CAACR,QAAQ,CAAC;MAC3CS,QAAQ,CAACE,OAAO,CAACO,GAAG,CAAClB,QAAQ,EAAEiB,QAAQ,CAAC;MACxC,OAAOA,QAAQ;IACnB;IAEA,OAAOjB,QAAQ;EACnB,CAAC,EACD,CAACQ,gBAAgB,CACrB,CAAC;EAED,oBACIhB,KAAA,CAAA2B,aAAA,CAAClB,cAAc,CAACmB,QAAQ;IAACC,KAAK,EAAE;MAAEd,aAAa;MAAEM;IAAgB;EAAE,gBAC/DrB,KAAA,CAAA2B,aAAA,CAACtB,OAAO,CAACuB,QAAQ,QAAEf,QAA2B,CAAC,eAC/Cb,KAAA,CAAA2B,aAAA,CAACvB,KAAK,CAACwB,QAAQ,MAAE,CACI,CAAC;AAElC,CAAC;AAED,OAAO,MAAME,UAAU,GAAGA,CAAA,KAAM;EAC5B,MAAMC,OAAO,GAAG/B,KAAK,CAACgC,UAAU,CAACvB,cAAc,CAAC;EAChD,IAAI,CAACsB,OAAO,EAAE;IACV,MAAM,IAAIE,KAAK,CAAC,qDAAqD,CAAC;EAC1E;EACA,OAAOF,OAAO;AAClB,CAAC","ignoreList":[]}
|
package/Alert/Alert.js
CHANGED
|
@@ -7,6 +7,7 @@ import { AlertSwatchBox } from "./AlertSwatchBox.js";
|
|
|
7
7
|
import { AlertPropsProvider, useAlertProps } from "./AlertPropsProvider.js";
|
|
8
8
|
import { AlertCloseButton } from "./AlertCloseButton.js";
|
|
9
9
|
import { defaultVariants } from "./constants.js";
|
|
10
|
+
import { useAdminUi } from "../AdminUiProvider/index.js";
|
|
10
11
|
const alertVariants = cva("flex gap-sm-plus items-start w-full rounded-lg text-md py-sm-extra pl-md pr-sm-plus [&_a]:font-semibold [&_a]:underline", {
|
|
11
12
|
variants: {
|
|
12
13
|
type: {
|
|
@@ -76,6 +77,9 @@ const AlertBase = props => {
|
|
|
76
77
|
children,
|
|
77
78
|
...rootRestProps
|
|
78
79
|
} = props;
|
|
80
|
+
const {
|
|
81
|
+
compileMarkdown
|
|
82
|
+
} = useAdminUi();
|
|
79
83
|
const backgroundColor = useMemo(() => {
|
|
80
84
|
if (!swatchColor) {
|
|
81
85
|
return;
|
|
@@ -95,7 +99,7 @@ const AlertBase = props => {
|
|
|
95
99
|
}
|
|
96
100
|
}, rootRestProps), /*#__PURE__*/React.createElement(AlertSwatchBox, null), /*#__PURE__*/React.createElement(AlertIcon, null), /*#__PURE__*/React.createElement("div", {
|
|
97
101
|
className: "grow py-xxs"
|
|
98
|
-
}, children), actions && /*#__PURE__*/React.createElement("div", {
|
|
102
|
+
}, compileMarkdown(children)), actions && /*#__PURE__*/React.createElement("div", {
|
|
99
103
|
className: "flex gap-sm"
|
|
100
104
|
}, actions), /*#__PURE__*/React.createElement(AlertCloseButton, null)));
|
|
101
105
|
};
|
package/Alert/Alert.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":["React","useMemo","cn","cva","makeDecoratable","withStaticProps","Button","AlertIcon","AlertSwatchBox","AlertPropsProvider","useAlertProps","AlertCloseButton","defaultVariants","alertVariants","variants","type","info","success","warning","danger","variant","strong","subtle","compoundVariants","className","AlertActionBase","props","alertVariant","createElement","Object","assign","text","size","AlertAction","AlertBase","swatchColor","actions","children","rootRestProps","backgroundColor","role","style","Alert","Action"],"sources":["Alert.tsx"],"sourcesContent":["import * as React from \"react\";\nimport { useMemo } from \"react\";\nimport { cn, cva, makeDecoratable, type VariantProps, withStaticProps } from \"~/utils.js\";\nimport { Button, type ButtonProps } from \"~/Button/index.js\";\nimport { AlertIcon } from \"./AlertIcon.js\";\nimport { AlertSwatchBox } from \"./AlertSwatchBox.js\";\nimport { AlertPropsProvider, useAlertProps } from \"./AlertPropsProvider.js\";\nimport { AlertCloseButton } from \"./AlertCloseButton.js\";\nimport { defaultVariants } from \"./constants.js\";\n\nconst alertVariants = cva(\n \"flex gap-sm-plus items-start w-full rounded-lg text-md py-sm-extra pl-md pr-sm-plus [&_a]:font-semibold [&_a]:underline\",\n {\n variants: {\n type: { info: \"\", success: \"\", warning: \"\", danger: \"\" },\n variant: { strong: \"\", subtle: \"\" }\n },\n defaultVariants,\n compoundVariants: [\n {\n type: \"info\",\n variant: \"strong\",\n className: \"bg-neutral-dark text-neutral-light [&_a]:text-neutral-light!\"\n },\n {\n type: \"info\",\n variant: \"subtle\",\n className: \"bg-neutral-dimmed text-neutral-primary [&_a]:text-neutral-primary!\"\n },\n {\n type: \"success\",\n variant: \"strong\",\n className: \"bg-secondary text-neutral-light [&_a]:text-neutral-light!\"\n },\n {\n type: \"success\",\n variant: \"subtle\",\n className: \"bg-success-subtle text-neutral-primary [&_a]:text-neutral-primary!\"\n },\n {\n type: \"warning\",\n variant: \"strong\",\n className: \"bg-warning text-neutral-primary [&_a]:text-neutral-primary!\"\n },\n {\n type: \"warning\",\n variant: \"subtle\",\n className: \"bg-warning-subtle text-neutral-primary [&_a]:text-neutral-primary!\"\n },\n {\n type: \"danger\",\n variant: \"strong\",\n className: \"bg-destructive text-neutral-light [&_a]:text-neutral-light!\"\n },\n {\n type: \"danger\",\n variant: \"subtle\",\n className: \"bg-destructive-subtle text-neutral-primary [&_a]:text-neutral-primary!\"\n }\n ]\n }\n);\n\nexport interface AlertProps\n extends React.HTMLAttributes<HTMLDivElement>,\n VariantProps<typeof alertVariants> {\n showCloseButton?: boolean;\n icon?: React.ReactElement | null;\n onClose?: () => void;\n actions?: React.ReactElement<typeof AlertAction>;\n swatchColor?: string;\n swatchColorIcon?: boolean;\n}\n\nconst AlertActionBase = (props: ButtonProps) => {\n const { variant: alertVariant } = useAlertProps();\n return (\n <Button\n text={\"Button\"}\n variant={alertVariant === \"strong\" ? \"secondary\" : \"tertiary\"}\n size={\"sm\"}\n {...props}\n />\n );\n};\n\nconst AlertAction = makeDecoratable(\"AlertAction\", AlertActionBase);\n\nconst AlertBase = (props: AlertProps) => {\n const { className, type, variant, swatchColor, actions, children, ...rootRestProps } = props;\n\n const backgroundColor = useMemo(() => {\n if (!swatchColor) {\n return;\n }\n\n return swatchColor + \"66\";\n }, [swatchColor]);\n\n return (\n <AlertPropsProvider props={props}>\n <div\n role=\"alert\"\n className={cn(alertVariants({ type, variant }), className)}\n style={{ backgroundColor }}\n {...rootRestProps}\n >\n <AlertSwatchBox />\n <AlertIcon />\n <div className={\"grow py-xxs\"}>{children}</div>\n {actions && <div className={\"flex gap-sm\"}>{actions}</div>}\n <AlertCloseButton />\n </div>\n </AlertPropsProvider>\n );\n};\n\nconst Alert = withStaticProps(makeDecoratable(\"AlertBase\", AlertBase), {\n Action: AlertAction\n});\n\nexport { Alert };\n"],"mappings":"AAAA,OAAO,KAAKA,KAAK,MAAM,OAAO;AAC9B,SAASC,OAAO,QAAQ,OAAO;AAC/B,SAASC,EAAE,EAAEC,GAAG,EAAEC,eAAe,EAAqBC,eAAe;AACrE,SAASC,MAAM;AACf,SAASC,SAAS;AAClB,SAASC,cAAc;AACvB,SAASC,kBAAkB,EAAEC,aAAa;AAC1C,SAASC,gBAAgB;AACzB,SAASC,eAAe;
|
|
1
|
+
{"version":3,"names":["React","useMemo","cn","cva","makeDecoratable","withStaticProps","Button","AlertIcon","AlertSwatchBox","AlertPropsProvider","useAlertProps","AlertCloseButton","defaultVariants","useAdminUi","alertVariants","variants","type","info","success","warning","danger","variant","strong","subtle","compoundVariants","className","AlertActionBase","props","alertVariant","createElement","Object","assign","text","size","AlertAction","AlertBase","swatchColor","actions","children","rootRestProps","compileMarkdown","backgroundColor","role","style","Alert","Action"],"sources":["Alert.tsx"],"sourcesContent":["import * as React from \"react\";\nimport { useMemo } from \"react\";\nimport { cn, cva, makeDecoratable, type VariantProps, withStaticProps } from \"~/utils.js\";\nimport { Button, type ButtonProps } from \"~/Button/index.js\";\nimport { AlertIcon } from \"./AlertIcon.js\";\nimport { AlertSwatchBox } from \"./AlertSwatchBox.js\";\nimport { AlertPropsProvider, useAlertProps } from \"./AlertPropsProvider.js\";\nimport { AlertCloseButton } from \"./AlertCloseButton.js\";\nimport { defaultVariants } from \"./constants.js\";\nimport { useAdminUi } from \"~/AdminUiProvider/index.js\";\n\nconst alertVariants = cva(\n \"flex gap-sm-plus items-start w-full rounded-lg text-md py-sm-extra pl-md pr-sm-plus [&_a]:font-semibold [&_a]:underline\",\n {\n variants: {\n type: { info: \"\", success: \"\", warning: \"\", danger: \"\" },\n variant: { strong: \"\", subtle: \"\" }\n },\n defaultVariants,\n compoundVariants: [\n {\n type: \"info\",\n variant: \"strong\",\n className: \"bg-neutral-dark text-neutral-light [&_a]:text-neutral-light!\"\n },\n {\n type: \"info\",\n variant: \"subtle\",\n className: \"bg-neutral-dimmed text-neutral-primary [&_a]:text-neutral-primary!\"\n },\n {\n type: \"success\",\n variant: \"strong\",\n className: \"bg-secondary text-neutral-light [&_a]:text-neutral-light!\"\n },\n {\n type: \"success\",\n variant: \"subtle\",\n className: \"bg-success-subtle text-neutral-primary [&_a]:text-neutral-primary!\"\n },\n {\n type: \"warning\",\n variant: \"strong\",\n className: \"bg-warning text-neutral-primary [&_a]:text-neutral-primary!\"\n },\n {\n type: \"warning\",\n variant: \"subtle\",\n className: \"bg-warning-subtle text-neutral-primary [&_a]:text-neutral-primary!\"\n },\n {\n type: \"danger\",\n variant: \"strong\",\n className: \"bg-destructive text-neutral-light [&_a]:text-neutral-light!\"\n },\n {\n type: \"danger\",\n variant: \"subtle\",\n className: \"bg-destructive-subtle text-neutral-primary [&_a]:text-neutral-primary!\"\n }\n ]\n }\n);\n\nexport interface AlertProps\n extends React.HTMLAttributes<HTMLDivElement>,\n VariantProps<typeof alertVariants> {\n showCloseButton?: boolean;\n icon?: React.ReactElement | null;\n onClose?: () => void;\n actions?: React.ReactElement<typeof AlertAction>;\n swatchColor?: string;\n swatchColorIcon?: boolean;\n}\n\nconst AlertActionBase = (props: ButtonProps) => {\n const { variant: alertVariant } = useAlertProps();\n return (\n <Button\n text={\"Button\"}\n variant={alertVariant === \"strong\" ? \"secondary\" : \"tertiary\"}\n size={\"sm\"}\n {...props}\n />\n );\n};\n\nconst AlertAction = makeDecoratable(\"AlertAction\", AlertActionBase);\n\nconst AlertBase = (props: AlertProps) => {\n const { className, type, variant, swatchColor, actions, children, ...rootRestProps } = props;\n const { compileMarkdown } = useAdminUi();\n\n const backgroundColor = useMemo(() => {\n if (!swatchColor) {\n return;\n }\n\n return swatchColor + \"66\";\n }, [swatchColor]);\n\n return (\n <AlertPropsProvider props={props}>\n <div\n role=\"alert\"\n className={cn(alertVariants({ type, variant }), className)}\n style={{ backgroundColor }}\n {...rootRestProps}\n >\n <AlertSwatchBox />\n <AlertIcon />\n <div className={\"grow py-xxs\"}>{compileMarkdown(children)}</div>\n {actions && <div className={\"flex gap-sm\"}>{actions}</div>}\n <AlertCloseButton />\n </div>\n </AlertPropsProvider>\n );\n};\n\nconst Alert = withStaticProps(makeDecoratable(\"AlertBase\", AlertBase), {\n Action: AlertAction\n});\n\nexport { Alert };\n"],"mappings":"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","ignoreList":[]}
|
|
@@ -2,21 +2,21 @@ import React from "react";
|
|
|
2
2
|
import type { AutoCompletePrimitiveProps } from "./primitives/index.js";
|
|
3
3
|
import type { FormComponentProps } from "../FormComponent/index.js";
|
|
4
4
|
type AutoCompleteProps = AutoCompletePrimitiveProps & FormComponentProps;
|
|
5
|
-
declare const AutoComplete: (({ label, description, note, required, disabled, validation, ...props }: AutoCompleteProps) => React.JSX.Element) & {
|
|
6
|
-
original: ({ label, description, note, required, disabled, validation, ...props }: AutoCompleteProps) => React.JSX.Element;
|
|
5
|
+
declare const AutoComplete: (({ label, description, note, hint, required, disabled, validation, ...props }: AutoCompleteProps) => React.JSX.Element) & {
|
|
6
|
+
original: ({ label, description, note, hint, required, disabled, validation, ...props }: AutoCompleteProps) => React.JSX.Element;
|
|
7
7
|
originalName: string;
|
|
8
8
|
displayName: string;
|
|
9
9
|
} & {
|
|
10
|
-
original: (({ label, description, note, required, disabled, validation, ...props }: AutoCompleteProps) => React.JSX.Element) & {
|
|
11
|
-
original: ({ label, description, note, required, disabled, validation, ...props }: AutoCompleteProps) => React.JSX.Element;
|
|
10
|
+
original: (({ label, description, note, hint, required, disabled, validation, ...props }: AutoCompleteProps) => React.JSX.Element) & {
|
|
11
|
+
original: ({ label, description, note, hint, required, disabled, validation, ...props }: AutoCompleteProps) => React.JSX.Element;
|
|
12
12
|
originalName: string;
|
|
13
13
|
displayName: string;
|
|
14
14
|
};
|
|
15
15
|
originalName: string;
|
|
16
16
|
displayName: string;
|
|
17
17
|
} & {
|
|
18
|
-
createDecorator: (decorator: import("@webiny/react-composition/types.js").ComponentDecorator<(({ label, description, note, required, disabled, validation, ...props }: AutoCompleteProps) => React.JSX.Element) & {
|
|
19
|
-
original: ({ label, description, note, required, disabled, validation, ...props }: AutoCompleteProps) => React.JSX.Element;
|
|
18
|
+
createDecorator: (decorator: import("@webiny/react-composition/types.js").ComponentDecorator<(({ label, description, note, hint, required, disabled, validation, ...props }: AutoCompleteProps) => React.JSX.Element) & {
|
|
19
|
+
original: ({ label, description, note, hint, required, disabled, validation, ...props }: AutoCompleteProps) => React.JSX.Element;
|
|
20
20
|
originalName: string;
|
|
21
21
|
displayName: string;
|
|
22
22
|
}>) => (props: unknown) => React.JSX.Element;
|
|
@@ -6,6 +6,7 @@ const DecoratableAutoComplete = ({
|
|
|
6
6
|
label,
|
|
7
7
|
description,
|
|
8
8
|
note,
|
|
9
|
+
hint,
|
|
9
10
|
required,
|
|
10
11
|
disabled,
|
|
11
12
|
validation,
|
|
@@ -29,6 +30,7 @@ const DecoratableAutoComplete = ({
|
|
|
29
30
|
className: "w-full"
|
|
30
31
|
}, /*#__PURE__*/React.createElement(FormComponentLabel, {
|
|
31
32
|
text: label,
|
|
33
|
+
hint: hint,
|
|
32
34
|
required: required,
|
|
33
35
|
disabled: disabled,
|
|
34
36
|
invalid: invalid,
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":["React","useMemo","useState","useEffect","useRef","makeDecoratable","AutoCompletePrimitive","FormComponentDescription","FormComponentErrorMessage","FormComponentLabel","FormComponentNote","DecoratableAutoComplete","label","description","note","required","disabled","validation","props","isValid","validationIsValid","message","validationMessage","invalid","inputRef","inputId","setInputId","current","id","createElement","className","text","htmlFor","Object","assign","AutoComplete"],"sources":["AutoComplete.tsx"],"sourcesContent":["import React, { useMemo, useState, useEffect, useRef } from \"react\";\nimport { makeDecoratable } from \"~/utils.js\";\nimport type { AutoCompletePrimitiveProps } from \"./primitives/index.js\";\nimport { AutoCompletePrimitive } from \"./primitives/index.js\";\nimport type { FormComponentProps } from \"~/FormComponent/index.js\";\nimport {\n FormComponentDescription,\n FormComponentErrorMessage,\n FormComponentLabel,\n FormComponentNote\n} from \"~/FormComponent/index.js\";\n\ntype AutoCompleteProps = AutoCompletePrimitiveProps & FormComponentProps;\n\nconst DecoratableAutoComplete = ({\n label,\n description,\n note,\n required,\n disabled,\n validation,\n ...props\n}: AutoCompleteProps) => {\n const { isValid: validationIsValid, message: validationMessage } = validation || {};\n const invalid = useMemo(() => validationIsValid === false, [validationIsValid]);\n\n // Retrieve the internally generated ID from cmdk's <Command.Input> to sync with the external <label>\n const inputRef = useRef<HTMLInputElement>(null);\n const [inputId, setInputId] = useState<string>();\n\n useEffect(() => {\n if (inputRef.current?.id) {\n setInputId(inputRef.current.id);\n }\n }, []);\n\n return (\n <div className={\"w-full\"}>\n <FormComponentLabel\n text={label}\n required={required}\n disabled={disabled}\n invalid={invalid}\n htmlFor={inputId}\n />\n <FormComponentDescription text={description} disabled={disabled} />\n <AutoCompletePrimitive\n {...props}\n inputRef={inputRef}\n disabled={disabled}\n label={label}\n invalid={invalid}\n />\n <FormComponentErrorMessage\n text={validationMessage}\n invalid={invalid}\n disabled={disabled}\n />\n <FormComponentNote text={note} disabled={disabled} />\n </div>\n );\n};\n\nconst AutoComplete = makeDecoratable(\"AutoComplete\", DecoratableAutoComplete);\n\nexport { AutoComplete };\n"],"mappings":"AAAA,OAAOA,KAAK,IAAIC,OAAO,EAAEC,QAAQ,EAAEC,SAAS,EAAEC,MAAM,QAAQ,OAAO;AACnE,SAASC,eAAe;AAExB,SAASC,qBAAqB;AAE9B,SACIC,wBAAwB,EACxBC,yBAAyB,EACzBC,kBAAkB,EAClBC,iBAAiB;AAKrB,MAAMC,uBAAuB,GAAGA,CAAC;EAC7BC,KAAK;EACLC,WAAW;EACXC,IAAI;EACJC,QAAQ;EACRC,QAAQ;EACRC,UAAU;EACV,GAAGC;AACY,CAAC,KAAK;EACrB,MAAM;IAAEC,OAAO,EAAEC,iBAAiB;IAAEC,OAAO,EAAEC;EAAkB,CAAC,GAAGL,UAAU,IAAI,CAAC,CAAC;EACnF,MAAMM,OAAO,
|
|
1
|
+
{"version":3,"names":["React","useMemo","useState","useEffect","useRef","makeDecoratable","AutoCompletePrimitive","FormComponentDescription","FormComponentErrorMessage","FormComponentLabel","FormComponentNote","DecoratableAutoComplete","label","description","note","hint","required","disabled","validation","props","isValid","validationIsValid","message","validationMessage","invalid","inputRef","inputId","setInputId","current","id","createElement","className","text","htmlFor","Object","assign","AutoComplete"],"sources":["AutoComplete.tsx"],"sourcesContent":["import React, { useMemo, useState, useEffect, useRef } from \"react\";\nimport { makeDecoratable } from \"~/utils.js\";\nimport type { AutoCompletePrimitiveProps } from \"./primitives/index.js\";\nimport { AutoCompletePrimitive } from \"./primitives/index.js\";\nimport type { FormComponentProps } from \"~/FormComponent/index.js\";\nimport {\n FormComponentDescription,\n FormComponentErrorMessage,\n FormComponentLabel,\n FormComponentNote\n} from \"~/FormComponent/index.js\";\n\ntype AutoCompleteProps = AutoCompletePrimitiveProps & FormComponentProps;\n\nconst DecoratableAutoComplete = ({\n label,\n description,\n note,\n hint,\n required,\n disabled,\n validation,\n ...props\n}: AutoCompleteProps) => {\n const { isValid: validationIsValid, message: validationMessage } = validation || {};\n const invalid = useMemo(() => validationIsValid === false, [validationIsValid]);\n\n // Retrieve the internally generated ID from cmdk's <Command.Input> to sync with the external <label>\n const inputRef = useRef<HTMLInputElement>(null);\n const [inputId, setInputId] = useState<string>();\n\n useEffect(() => {\n if (inputRef.current?.id) {\n setInputId(inputRef.current.id);\n }\n }, []);\n\n return (\n <div className={\"w-full\"}>\n <FormComponentLabel\n text={label}\n hint={hint}\n required={required}\n disabled={disabled}\n invalid={invalid}\n htmlFor={inputId}\n />\n <FormComponentDescription text={description} disabled={disabled} />\n <AutoCompletePrimitive\n {...props}\n inputRef={inputRef}\n disabled={disabled}\n label={label}\n invalid={invalid}\n />\n <FormComponentErrorMessage\n text={validationMessage}\n invalid={invalid}\n disabled={disabled}\n />\n <FormComponentNote text={note} disabled={disabled} />\n </div>\n );\n};\n\nconst AutoComplete = makeDecoratable(\"AutoComplete\", DecoratableAutoComplete);\n\nexport { AutoComplete };\n"],"mappings":"AAAA,OAAOA,KAAK,IAAIC,OAAO,EAAEC,QAAQ,EAAEC,SAAS,EAAEC,MAAM,QAAQ,OAAO;AACnE,SAASC,eAAe;AAExB,SAASC,qBAAqB;AAE9B,SACIC,wBAAwB,EACxBC,yBAAyB,EACzBC,kBAAkB,EAClBC,iBAAiB;AAKrB,MAAMC,uBAAuB,GAAGA,CAAC;EAC7BC,KAAK;EACLC,WAAW;EACXC,IAAI;EACJC,IAAI;EACJC,QAAQ;EACRC,QAAQ;EACRC,UAAU;EACV,GAAGC;AACY,CAAC,KAAK;EACrB,MAAM;IAAEC,OAAO,EAAEC,iBAAiB;IAAEC,OAAO,EAAEC;EAAkB,CAAC,GAAGL,UAAU,IAAI,CAAC,CAAC;EACnF,MAAMM,OAAO,GAAGvB,OAAO,CAAC,MAAMoB,iBAAiB,KAAK,KAAK,EAAE,CAACA,iBAAiB,CAAC,CAAC;;EAE/E;EACA,MAAMI,QAAQ,GAAGrB,MAAM,CAAmB,IAAI,CAAC;EAC/C,MAAM,CAACsB,OAAO,EAAEC,UAAU,CAAC,GAAGzB,QAAQ,CAAS,CAAC;EAEhDC,SAAS,CAAC,MAAM;IACZ,IAAIsB,QAAQ,CAACG,OAAO,EAAEC,EAAE,EAAE;MACtBF,UAAU,CAACF,QAAQ,CAACG,OAAO,CAACC,EAAE,CAAC;IACnC;EACJ,CAAC,EAAE,EAAE,CAAC;EAEN,oBACI7B,KAAA,CAAA8B,aAAA;IAAKC,SAAS,EAAE;EAAS,gBACrB/B,KAAA,CAAA8B,aAAA,CAACrB,kBAAkB;IACfuB,IAAI,EAAEpB,KAAM;IACZG,IAAI,EAAEA,IAAK;IACXC,QAAQ,EAAEA,QAAS;IACnBC,QAAQ,EAAEA,QAAS;IACnBO,OAAO,EAAEA,OAAQ;IACjBS,OAAO,EAAEP;EAAQ,CACpB,CAAC,eACF1B,KAAA,CAAA8B,aAAA,CAACvB,wBAAwB;IAACyB,IAAI,EAAEnB,WAAY;IAACI,QAAQ,EAAEA;EAAS,CAAE,CAAC,eACnEjB,KAAA,CAAA8B,aAAA,CAACxB,qBAAqB,EAAA4B,MAAA,CAAAC,MAAA,KACdhB,KAAK;IACTM,QAAQ,EAAEA,QAAS;IACnBR,QAAQ,EAAEA,QAAS;IACnBL,KAAK,EAAEA,KAAM;IACbY,OAAO,EAAEA;EAAQ,EACpB,CAAC,eACFxB,KAAA,CAAA8B,aAAA,CAACtB,yBAAyB;IACtBwB,IAAI,EAAET,iBAAkB;IACxBC,OAAO,EAAEA,OAAQ;IACjBP,QAAQ,EAAEA;EAAS,CACtB,CAAC,eACFjB,KAAA,CAAA8B,aAAA,CAACpB,iBAAiB;IAACsB,IAAI,EAAElB,IAAK;IAACG,QAAQ,EAAEA;EAAS,CAAE,CACnD,CAAC;AAEd,CAAC;AAED,MAAMmB,YAAY,GAAG/B,eAAe,CAAC,cAAc,EAAEM,uBAAuB,CAAC;AAE7E,SAASyB,YAAY","ignoreList":[]}
|
|
@@ -62,7 +62,7 @@ const DecoratableAutoCompletePrimitive = props => {
|
|
|
62
62
|
onFocus: () => setListOpenState(true)
|
|
63
63
|
}))), /*#__PURE__*/React.createElement(PopoverPrimitive.Content, {
|
|
64
64
|
style: {
|
|
65
|
-
|
|
65
|
+
minWidth: "var(--radix-popover-trigger-width)"
|
|
66
66
|
},
|
|
67
67
|
onOpenAutoFocus: e => e.preventDefault()
|
|
68
68
|
}, /*#__PURE__*/React.createElement(AutoCompleteList, {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":["React","Command","PopoverPrimitive","useAutoComplete","AutoCompleteInputIcons","AutoCompleteList","makeDecoratable","DecoratableAutoCompletePrimitive","props","vm","setListOpenState","setSelectedOption","searchOption","resetSelectedOption","showSelectedOption","handleKeyDown","useCallback","event","disabled","key","toLowerCase","handleSelectOption","value","handleOnBlur","createElement","open","optionsListVm","onOpenChange","label","String","onKeyDown","Trigger","asChild","Input","inputRef","inputVm","onValueChange","placeholder","size","variant","invalid","startIcon","endIcon","inputSize","inputVariant","displayResetAction","loading","onResetValue","onBlur","onFocus","Content","style","width","onOpenAutoFocus","e","preventDefault","options","onOptionSelect","empty","loadingMessage","emptyMessage","optionRenderer","AutoCompletePrimitive"],"sources":["AutoCompletePrimitive.tsx"],"sourcesContent":["import type { KeyboardEvent } from \"react\";\nimport React from \"react\";\nimport { Command } from \"~/Command/index.js\";\nimport { PopoverPrimitive } from \"~/Popover/index.js\";\nimport type { InputPrimitiveProps } from \"~/Input/index.js\";\nimport { useAutoComplete } from \"./useAutoComplete.js\";\nimport { AutoCompleteInputIcons, AutoCompleteList } from \"./components/index.js\";\nimport type { AutoCompleteOption } from \"../domains/index.js\";\nimport { makeDecoratable } from \"~/utils.js\";\nimport type { Icon } from \"~/Icon/index.js\";\n\ninterface AutoCompletePrimitiveProps {\n /**\n * Indicates if the reset action should be displayed.\n */\n displayResetAction?: boolean;\n /**\n * Indicates if the field is disabled.\n */\n disabled?: boolean;\n /**\n * Message to display when there are no options.\n */\n emptyMessage?: React.ReactNode;\n /**\n * Message to display when there are no options loaded or selected.\n * Use it to invite the user to interact with the autocomplete by typing a value.\n */\n initialMessage?: React.ReactNode;\n /**\n * Reference to the input element.\n */\n inputRef?: React.Ref<HTMLInputElement>;\n /**\n * Indicates if the input field is invalid.\n * Refer to `InputPrimitiveProps[\"invalid\"]` for possible values.\n */\n invalid?: InputPrimitiveProps[\"invalid\"];\n /**\n * Accessible label for the command menu. Not shown visibly.\n */\n label?: string;\n /**\n * Indicates if the autocomplete is loading options.\n */\n loading?: boolean;\n /**\n * Message to display while loading options.\n */\n loadingMessage?: React.ReactNode;\n /**\n * Callback triggered when the open state changes.\n */\n onOpenChange?: (open: boolean) => void;\n /**\n * Callback triggered to reset the value.\n */\n onValueReset?: () => void;\n /**\n * Callback triggered when a value has been searched by the user.\n */\n onValueSearch?: (value: string) => void;\n /**\n * Callback triggered when the value changes.\n */\n onValueChange: (value: string) => void;\n /**\n * List of options for the autocomplete.\n */\n options?: AutoCompleteOption[];\n /**\n * Custom renderer for the options.\n */\n optionRenderer?: (item: any, index: number) => React.ReactNode;\n /**\n * Placeholder text for the input field.\n */\n placeholder?: string;\n /**\n * Size of the input field.\n * Refer to `InputPrimitiveProps[\"size\"]` for possible values.\n */\n size?: InputPrimitiveProps[\"size\"];\n /**\n * Icon to be displayed at the start of the input field.\n */\n startIcon?: React.ReactElement<typeof Icon> | React.ReactElement;\n /**\n * Variant of the input field.\n * Refer to `InputPrimitiveProps[\"variant\"]` for possible values.\n */\n variant?: InputPrimitiveProps[\"variant\"];\n /**\n * Optional selected item.\n */\n value?: string;\n}\n\nconst DecoratableAutoCompletePrimitive = (props: AutoCompletePrimitiveProps) => {\n const {\n vm,\n setListOpenState,\n setSelectedOption,\n searchOption,\n resetSelectedOption,\n showSelectedOption\n } = useAutoComplete(props);\n\n const handleKeyDown = React.useCallback(\n (event: KeyboardEvent<HTMLDivElement>) => {\n if (props.disabled) {\n return;\n }\n\n if (event.key.toLowerCase() === \"escape\") {\n setListOpenState(false);\n } else {\n setListOpenState(true);\n }\n },\n [props.disabled, setListOpenState]\n );\n\n const handleSelectOption = React.useCallback(\n (value: string) => {\n setSelectedOption(value);\n setListOpenState(false);\n },\n [setSelectedOption, setListOpenState]\n );\n\n const handleOnBlur = React.useCallback(() => {\n setListOpenState(false);\n showSelectedOption();\n }, [setListOpenState]);\n\n return (\n <PopoverPrimitive open={vm.optionsListVm.open} onOpenChange={() => setListOpenState(true)}>\n <Command label={String(props.label)} onKeyDown={handleKeyDown}>\n <PopoverPrimitive.Trigger asChild>\n <span>\n <Command.Input\n inputRef={props.inputRef}\n value={vm.inputVm.value}\n onValueChange={searchOption}\n placeholder={vm.inputVm.placeholder}\n size={props.size}\n variant={props.variant}\n disabled={props.disabled}\n invalid={props.invalid}\n startIcon={props.startIcon}\n endIcon={\n <AutoCompleteInputIcons\n inputSize={props.size}\n inputVariant={props.variant}\n displayResetAction={vm.inputVm.displayResetAction}\n disabled={props.disabled}\n loading={props.loading}\n onResetValue={resetSelectedOption}\n onOpenChange={() => setListOpenState(!vm.optionsListVm.open)}\n />\n }\n onBlur={handleOnBlur}\n onFocus={() => setListOpenState(true)}\n />\n </span>\n </PopoverPrimitive.Trigger>\n <PopoverPrimitive.Content\n style={{ width: \"var(--radix-popover-trigger-width)\" }}\n onOpenAutoFocus={e => e.preventDefault()}\n >\n <AutoCompleteList\n options={vm.optionsListVm.options}\n onOptionSelect={handleSelectOption}\n empty={vm.optionsListVm.empty}\n loading={props.loading}\n loadingMessage={vm.optionsListVm.loadingMessage}\n emptyMessage={vm.optionsListVm.emptyMessage}\n optionRenderer={props.optionRenderer}\n />\n </PopoverPrimitive.Content>\n </Command>\n </PopoverPrimitive>\n );\n};\n\nconst AutoCompletePrimitive = makeDecoratable(\n \"AutoCompletePrimitive\",\n DecoratableAutoCompletePrimitive\n);\n\nexport { AutoCompletePrimitive, type AutoCompletePrimitiveProps };\n"],"mappings":"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","ignoreList":[]}
|
|
1
|
+
{"version":3,"names":["React","Command","PopoverPrimitive","useAutoComplete","AutoCompleteInputIcons","AutoCompleteList","makeDecoratable","DecoratableAutoCompletePrimitive","props","vm","setListOpenState","setSelectedOption","searchOption","resetSelectedOption","showSelectedOption","handleKeyDown","useCallback","event","disabled","key","toLowerCase","handleSelectOption","value","handleOnBlur","createElement","open","optionsListVm","onOpenChange","label","String","onKeyDown","Trigger","asChild","Input","inputRef","inputVm","onValueChange","placeholder","size","variant","invalid","startIcon","endIcon","inputSize","inputVariant","displayResetAction","loading","onResetValue","onBlur","onFocus","Content","style","minWidth","onOpenAutoFocus","e","preventDefault","options","onOptionSelect","empty","loadingMessage","emptyMessage","optionRenderer","AutoCompletePrimitive"],"sources":["AutoCompletePrimitive.tsx"],"sourcesContent":["import type { KeyboardEvent } from \"react\";\nimport React from \"react\";\nimport { Command } from \"~/Command/index.js\";\nimport { PopoverPrimitive } from \"~/Popover/index.js\";\nimport type { InputPrimitiveProps } from \"~/Input/index.js\";\nimport { useAutoComplete } from \"./useAutoComplete.js\";\nimport { AutoCompleteInputIcons, AutoCompleteList } from \"./components/index.js\";\nimport type { AutoCompleteOption } from \"../domains/index.js\";\nimport { makeDecoratable } from \"~/utils.js\";\nimport type { Icon } from \"~/Icon/index.js\";\n\ninterface AutoCompletePrimitiveProps {\n /**\n * Indicates if the reset action should be displayed.\n */\n displayResetAction?: boolean;\n /**\n * Indicates if the field is disabled.\n */\n disabled?: boolean;\n /**\n * Message to display when there are no options.\n */\n emptyMessage?: React.ReactNode;\n /**\n * Message to display when there are no options loaded or selected.\n * Use it to invite the user to interact with the autocomplete by typing a value.\n */\n initialMessage?: React.ReactNode;\n /**\n * Reference to the input element.\n */\n inputRef?: React.Ref<HTMLInputElement>;\n /**\n * Indicates if the input field is invalid.\n * Refer to `InputPrimitiveProps[\"invalid\"]` for possible values.\n */\n invalid?: InputPrimitiveProps[\"invalid\"];\n /**\n * Accessible label for the command menu. Not shown visibly.\n */\n label?: string;\n /**\n * Indicates if the autocomplete is loading options.\n */\n loading?: boolean;\n /**\n * Message to display while loading options.\n */\n loadingMessage?: React.ReactNode;\n /**\n * Callback triggered when the open state changes.\n */\n onOpenChange?: (open: boolean) => void;\n /**\n * Callback triggered to reset the value.\n */\n onValueReset?: () => void;\n /**\n * Callback triggered when a value has been searched by the user.\n */\n onValueSearch?: (value: string) => void;\n /**\n * Callback triggered when the value changes.\n */\n onValueChange: (value: string) => void;\n /**\n * List of options for the autocomplete.\n */\n options?: AutoCompleteOption[];\n /**\n * Custom renderer for the options.\n */\n optionRenderer?: (item: any, index: number) => React.ReactNode;\n /**\n * Placeholder text for the input field.\n */\n placeholder?: string;\n /**\n * Size of the input field.\n * Refer to `InputPrimitiveProps[\"size\"]` for possible values.\n */\n size?: InputPrimitiveProps[\"size\"];\n /**\n * Icon to be displayed at the start of the input field.\n */\n startIcon?: React.ReactElement<typeof Icon> | React.ReactElement;\n /**\n * Variant of the input field.\n * Refer to `InputPrimitiveProps[\"variant\"]` for possible values.\n */\n variant?: InputPrimitiveProps[\"variant\"];\n /**\n * Optional selected item.\n */\n value?: string;\n}\n\nconst DecoratableAutoCompletePrimitive = (props: AutoCompletePrimitiveProps) => {\n const {\n vm,\n setListOpenState,\n setSelectedOption,\n searchOption,\n resetSelectedOption,\n showSelectedOption\n } = useAutoComplete(props);\n\n const handleKeyDown = React.useCallback(\n (event: KeyboardEvent<HTMLDivElement>) => {\n if (props.disabled) {\n return;\n }\n\n if (event.key.toLowerCase() === \"escape\") {\n setListOpenState(false);\n } else {\n setListOpenState(true);\n }\n },\n [props.disabled, setListOpenState]\n );\n\n const handleSelectOption = React.useCallback(\n (value: string) => {\n setSelectedOption(value);\n setListOpenState(false);\n },\n [setSelectedOption, setListOpenState]\n );\n\n const handleOnBlur = React.useCallback(() => {\n setListOpenState(false);\n showSelectedOption();\n }, [setListOpenState]);\n\n return (\n <PopoverPrimitive open={vm.optionsListVm.open} onOpenChange={() => setListOpenState(true)}>\n <Command label={String(props.label)} onKeyDown={handleKeyDown}>\n <PopoverPrimitive.Trigger asChild>\n <span>\n <Command.Input\n inputRef={props.inputRef}\n value={vm.inputVm.value}\n onValueChange={searchOption}\n placeholder={vm.inputVm.placeholder}\n size={props.size}\n variant={props.variant}\n disabled={props.disabled}\n invalid={props.invalid}\n startIcon={props.startIcon}\n endIcon={\n <AutoCompleteInputIcons\n inputSize={props.size}\n inputVariant={props.variant}\n displayResetAction={vm.inputVm.displayResetAction}\n disabled={props.disabled}\n loading={props.loading}\n onResetValue={resetSelectedOption}\n onOpenChange={() => setListOpenState(!vm.optionsListVm.open)}\n />\n }\n onBlur={handleOnBlur}\n onFocus={() => setListOpenState(true)}\n />\n </span>\n </PopoverPrimitive.Trigger>\n <PopoverPrimitive.Content\n style={{ minWidth: \"var(--radix-popover-trigger-width)\" }}\n onOpenAutoFocus={e => e.preventDefault()}\n >\n <AutoCompleteList\n options={vm.optionsListVm.options}\n onOptionSelect={handleSelectOption}\n empty={vm.optionsListVm.empty}\n loading={props.loading}\n loadingMessage={vm.optionsListVm.loadingMessage}\n emptyMessage={vm.optionsListVm.emptyMessage}\n optionRenderer={props.optionRenderer}\n />\n </PopoverPrimitive.Content>\n </Command>\n </PopoverPrimitive>\n );\n};\n\nconst AutoCompletePrimitive = makeDecoratable(\n \"AutoCompletePrimitive\",\n DecoratableAutoCompletePrimitive\n);\n\nexport { AutoCompletePrimitive, type AutoCompletePrimitiveProps };\n"],"mappings":"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","ignoreList":[]}
|
|
@@ -17,22 +17,23 @@ interface CheckboxPrimitiveVm {
|
|
|
17
17
|
}
|
|
18
18
|
type CheckboxPrimitiveRendererProps = Omit<CheckboxPrimitiveProps, "onCheckedChange" | "onChange"> & NonNullable<CheckboxPrimitiveVm["item"]> & {
|
|
19
19
|
changeChecked: (checked: boolean) => void;
|
|
20
|
+
disabled?: boolean;
|
|
20
21
|
};
|
|
21
|
-
declare const CheckboxPrimitiveRenderer: (({ label, id, hasLabel, indeterminate, changeChecked, checked, className, ...props }: CheckboxPrimitiveRendererProps) => React.JSX.Element) & {
|
|
22
|
-
original: ({ label, id, hasLabel, indeterminate, changeChecked, checked, className, ...props }: CheckboxPrimitiveRendererProps) => React.JSX.Element;
|
|
22
|
+
declare const CheckboxPrimitiveRenderer: (({ label, id, hasLabel, indeterminate, changeChecked, checked, className, disabled, ...props }: CheckboxPrimitiveRendererProps) => React.JSX.Element) & {
|
|
23
|
+
original: ({ label, id, hasLabel, indeterminate, changeChecked, checked, className, disabled, ...props }: CheckboxPrimitiveRendererProps) => React.JSX.Element;
|
|
23
24
|
originalName: string;
|
|
24
25
|
displayName: string;
|
|
25
26
|
} & {
|
|
26
|
-
original: (({ label, id, hasLabel, indeterminate, changeChecked, checked, className, ...props }: CheckboxPrimitiveRendererProps) => React.JSX.Element) & {
|
|
27
|
-
original: ({ label, id, hasLabel, indeterminate, changeChecked, checked, className, ...props }: CheckboxPrimitiveRendererProps) => React.JSX.Element;
|
|
27
|
+
original: (({ label, id, hasLabel, indeterminate, changeChecked, checked, className, disabled, ...props }: CheckboxPrimitiveRendererProps) => React.JSX.Element) & {
|
|
28
|
+
original: ({ label, id, hasLabel, indeterminate, changeChecked, checked, className, disabled, ...props }: CheckboxPrimitiveRendererProps) => React.JSX.Element;
|
|
28
29
|
originalName: string;
|
|
29
30
|
displayName: string;
|
|
30
31
|
};
|
|
31
32
|
originalName: string;
|
|
32
33
|
displayName: string;
|
|
33
34
|
} & {
|
|
34
|
-
createDecorator: (decorator: import("@webiny/react-composition/types.js").ComponentDecorator<(({ label, id, hasLabel, indeterminate, changeChecked, checked, className, ...props }: CheckboxPrimitiveRendererProps) => React.JSX.Element) & {
|
|
35
|
-
original: ({ label, id, hasLabel, indeterminate, changeChecked, checked, className, ...props }: CheckboxPrimitiveRendererProps) => React.JSX.Element;
|
|
35
|
+
createDecorator: (decorator: import("@webiny/react-composition/types.js").ComponentDecorator<(({ label, id, hasLabel, indeterminate, changeChecked, checked, className, disabled, ...props }: CheckboxPrimitiveRendererProps) => React.JSX.Element) & {
|
|
36
|
+
original: ({ label, id, hasLabel, indeterminate, changeChecked, checked, className, disabled, ...props }: CheckboxPrimitiveRendererProps) => React.JSX.Element;
|
|
36
37
|
originalName: string;
|
|
37
38
|
displayName: string;
|
|
38
39
|
}>) => (props: unknown) => React.JSX.Element;
|
|
@@ -34,6 +34,7 @@ const DecoratableCheckboxPrimitiveRenderer = ({
|
|
|
34
34
|
changeChecked,
|
|
35
35
|
checked,
|
|
36
36
|
className,
|
|
37
|
+
disabled = false,
|
|
37
38
|
...props
|
|
38
39
|
}) => {
|
|
39
40
|
return /*#__PURE__*/React.createElement("div", {
|
|
@@ -45,12 +46,14 @@ const DecoratableCheckboxPrimitiveRenderer = ({
|
|
|
45
46
|
hasLabel
|
|
46
47
|
}), className),
|
|
47
48
|
onCheckedChange: changeChecked,
|
|
48
|
-
checked: indeterminate ? "indeterminate" : checked
|
|
49
|
+
checked: indeterminate ? "indeterminate" : checked,
|
|
50
|
+
disabled: disabled
|
|
49
51
|
}), /*#__PURE__*/React.createElement("span", {
|
|
50
52
|
className: cn("flex items-center justify-center")
|
|
51
53
|
}, indeterminate ? /*#__PURE__*/React.createElement(IndeterminateIcon, null) : /*#__PURE__*/React.createElement(CheckboxPrimitives.Indicator, null, /*#__PURE__*/React.createElement(CheckIcon, {
|
|
52
54
|
className: "size-sm-extra!"
|
|
53
55
|
})))), hasLabel && /*#__PURE__*/React.createElement(Label, {
|
|
56
|
+
disabled: disabled,
|
|
54
57
|
htmlFor: id,
|
|
55
58
|
text: label,
|
|
56
59
|
weight: "light",
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":["React","Checkbox","CheckboxPrimitives","ReactComponent","CheckIcon","cn","makeDecoratable","cva","useCheckbox","Label","IndeterminateIcon","createElement","className","checkboxVariants","variants","indeterminate","true","hasLabel","DecoratableCheckboxPrimitiveRenderer","label","id","changeChecked","checked","props","Root","Object","assign","onCheckedChange","Indicator","htmlFor","text","weight","CheckboxPrimitiveRenderer","DecoratableCheckboxPrimitive","vm","item","CheckboxPrimitive"],"sources":["CheckboxPrimitive.tsx"],"sourcesContent":["import * as React from \"react\";\nimport { Checkbox as CheckboxPrimitives } from \"radix-ui\";\nimport { ReactComponent as CheckIcon } from \"@webiny/icons/check.svg\";\nimport { cn, makeDecoratable, cva, type VariantProps } from \"~/utils.js\";\nimport { useCheckbox } from \"./useCheckbox.js\";\nimport { Label } from \"~/Label/index.js\";\nimport type { CheckboxItemDto, CheckboxItemFormatted } from \"~/Checkbox/index.js\";\n\n/**\n * Indeterminate Icon\n */\nconst IndeterminateIcon = () => {\n return (\n <span\n className={\"block w-sm h-xxs rounded-sm bg-primary group-disabled:bg-primary-disabled\"}\n />\n );\n};\n\n/**\n * Checkbox Renderer\n */\nconst checkboxVariants = cva(\n [\n \"group peer h-md w-md shrink-0 rounded-sm border-sm \",\n \"border-neutral-muted bg-neutral-base [&_svg]:fill-neutral-base! ring-offset-background\",\n \"hover:border-neutral-dark\",\n \"focus:outline-none focus-visible:border-accent-default focus-visible:ring-lg focus-visible:ring-primary-dimmed focus-visible:ring-offset-0\",\n \"disabled:cursor-not-allowed disabled:border-transparent disabled:bg-neutral-disabled\",\n \"data-[state=checked]:bg-primary data-[state=checked]:border-transparent\",\n \"data-[state=checked]:hover:bg-primary-strong\",\n \"data-[state=checked]:disabled:bg-neutral-disabled data-[state=checked]:disabled:fill-neutral-strong\"\n ],\n {\n variants: {\n indeterminate: {\n true: [\n \"border-neutral-muted\",\n \"data-[state=checked]:bg-neutral-base data-[state=checked]:border-neutral-muted\",\n \"data-[state=checked]:hover:bg-neutral-base data-[state=checked]:hover:border-neutral-strong\",\n \"data-[state=checked]:focus-visible:border-accent-default\",\n \"data-[state=checked]:disabled:border-transparent\"\n ]\n },\n hasLabel: {\n true: \"mt-xxs\"\n }\n }\n }\n);\n\ntype CheckboxPrimitiveProps = Omit<\n CheckboxPrimitives.CheckboxProps,\n \"defaultChecked\" | \"onCheckedChange\" | \"onChange\"\n> &\n VariantProps<typeof checkboxVariants> &\n CheckboxItemDto & {\n onChange: (checked: boolean) => void;\n };\n\ninterface CheckboxPrimitiveVm {\n item?: CheckboxItemFormatted;\n}\n\ntype CheckboxPrimitiveRendererProps = Omit<CheckboxPrimitiveProps, \"onCheckedChange\" | \"onChange\"> &\n NonNullable<CheckboxPrimitiveVm[\"item\"]> & {\n changeChecked: (checked: boolean) => void;\n };\n\nconst DecoratableCheckboxPrimitiveRenderer = ({\n label,\n id,\n hasLabel,\n indeterminate,\n changeChecked,\n checked,\n className,\n ...props\n}: CheckboxPrimitiveRendererProps) => {\n return (\n <div className=\"flex items-start space-x-sm-extra\">\n <CheckboxPrimitives.Root\n {...props}\n id={id}\n className={cn(checkboxVariants({ indeterminate, hasLabel }), className)}\n onCheckedChange={changeChecked}\n checked={indeterminate ? \"indeterminate\" : checked}\n >\n <span className={cn(\"flex items-center justify-center\")}>\n {indeterminate ? (\n <IndeterminateIcon />\n ) : (\n <CheckboxPrimitives.Indicator>\n <CheckIcon className={\"size-sm-extra!\"} />\n </CheckboxPrimitives.Indicator>\n )}\n </span>\n </CheckboxPrimitives.Root>\n {hasLabel && <Label
|
|
1
|
+
{"version":3,"names":["React","Checkbox","CheckboxPrimitives","ReactComponent","CheckIcon","cn","makeDecoratable","cva","useCheckbox","Label","IndeterminateIcon","createElement","className","checkboxVariants","variants","indeterminate","true","hasLabel","DecoratableCheckboxPrimitiveRenderer","label","id","changeChecked","checked","disabled","props","Root","Object","assign","onCheckedChange","Indicator","htmlFor","text","weight","CheckboxPrimitiveRenderer","DecoratableCheckboxPrimitive","vm","item","CheckboxPrimitive"],"sources":["CheckboxPrimitive.tsx"],"sourcesContent":["import * as React from \"react\";\nimport { Checkbox as CheckboxPrimitives } from \"radix-ui\";\nimport { ReactComponent as CheckIcon } from \"@webiny/icons/check.svg\";\nimport { cn, makeDecoratable, cva, type VariantProps } from \"~/utils.js\";\nimport { useCheckbox } from \"./useCheckbox.js\";\nimport { Label } from \"~/Label/index.js\";\nimport type { CheckboxItemDto, CheckboxItemFormatted } from \"~/Checkbox/index.js\";\n\n/**\n * Indeterminate Icon\n */\nconst IndeterminateIcon = () => {\n return (\n <span\n className={\"block w-sm h-xxs rounded-sm bg-primary group-disabled:bg-primary-disabled\"}\n />\n );\n};\n\n/**\n * Checkbox Renderer\n */\nconst checkboxVariants = cva(\n [\n \"group peer h-md w-md shrink-0 rounded-sm border-sm \",\n \"border-neutral-muted bg-neutral-base [&_svg]:fill-neutral-base! ring-offset-background\",\n \"hover:border-neutral-dark\",\n \"focus:outline-none focus-visible:border-accent-default focus-visible:ring-lg focus-visible:ring-primary-dimmed focus-visible:ring-offset-0\",\n \"disabled:cursor-not-allowed disabled:border-transparent disabled:bg-neutral-disabled\",\n \"data-[state=checked]:bg-primary data-[state=checked]:border-transparent\",\n \"data-[state=checked]:hover:bg-primary-strong\",\n \"data-[state=checked]:disabled:bg-neutral-disabled data-[state=checked]:disabled:fill-neutral-strong\"\n ],\n {\n variants: {\n indeterminate: {\n true: [\n \"border-neutral-muted\",\n \"data-[state=checked]:bg-neutral-base data-[state=checked]:border-neutral-muted\",\n \"data-[state=checked]:hover:bg-neutral-base data-[state=checked]:hover:border-neutral-strong\",\n \"data-[state=checked]:focus-visible:border-accent-default\",\n \"data-[state=checked]:disabled:border-transparent\"\n ]\n },\n hasLabel: {\n true: \"mt-xxs\"\n }\n }\n }\n);\n\ntype CheckboxPrimitiveProps = Omit<\n CheckboxPrimitives.CheckboxProps,\n \"defaultChecked\" | \"onCheckedChange\" | \"onChange\"\n> &\n VariantProps<typeof checkboxVariants> &\n CheckboxItemDto & {\n onChange: (checked: boolean) => void;\n };\n\ninterface CheckboxPrimitiveVm {\n item?: CheckboxItemFormatted;\n}\n\ntype CheckboxPrimitiveRendererProps = Omit<CheckboxPrimitiveProps, \"onCheckedChange\" | \"onChange\"> &\n NonNullable<CheckboxPrimitiveVm[\"item\"]> & {\n changeChecked: (checked: boolean) => void;\n disabled?: boolean;\n };\n\nconst DecoratableCheckboxPrimitiveRenderer = ({\n label,\n id,\n hasLabel,\n indeterminate,\n changeChecked,\n checked,\n className,\n disabled = false,\n ...props\n}: CheckboxPrimitiveRendererProps) => {\n return (\n <div className=\"flex items-start space-x-sm-extra\">\n <CheckboxPrimitives.Root\n {...props}\n id={id}\n className={cn(checkboxVariants({ indeterminate, hasLabel }), className)}\n onCheckedChange={changeChecked}\n checked={indeterminate ? \"indeterminate\" : checked}\n disabled={disabled}\n >\n <span className={cn(\"flex items-center justify-center\")}>\n {indeterminate ? (\n <IndeterminateIcon />\n ) : (\n <CheckboxPrimitives.Indicator>\n <CheckIcon className={\"size-sm-extra!\"} />\n </CheckboxPrimitives.Indicator>\n )}\n </span>\n </CheckboxPrimitives.Root>\n {hasLabel && (\n <Label\n disabled={disabled}\n htmlFor={id}\n text={label}\n weight={\"light\"}\n className={\"text-md\"}\n />\n )}\n </div>\n );\n};\nconst CheckboxPrimitiveRenderer = makeDecoratable(\n \"CheckboxPrimitiveRenderer\",\n DecoratableCheckboxPrimitiveRenderer\n);\n\n/**\n * Checkbox\n */\nconst DecoratableCheckboxPrimitive = (props: CheckboxPrimitiveProps) => {\n const { vm, changeChecked } = useCheckbox(props);\n\n if (!vm.item) {\n return null;\n }\n\n return <CheckboxPrimitiveRenderer {...props} {...vm.item} changeChecked={changeChecked} />;\n};\nconst CheckboxPrimitive = makeDecoratable(\"CheckboxPrimitive\", DecoratableCheckboxPrimitive);\n\nexport {\n CheckboxPrimitive,\n CheckboxPrimitiveRenderer,\n type CheckboxPrimitiveProps,\n type CheckboxPrimitiveVm\n};\n"],"mappings":"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","ignoreList":[]}
|
|
@@ -2,21 +2,21 @@ import React from "react";
|
|
|
2
2
|
import type { CheckboxGroupPrimitiveProps } from "./primitives/CheckboxGroupPrimitive.js";
|
|
3
3
|
import type { FormComponentProps } from "../FormComponent/index.js";
|
|
4
4
|
type CheckboxGroupProps = CheckboxGroupPrimitiveProps & FormComponentProps;
|
|
5
|
-
declare const CheckboxGroup: (({ label, description, note, required, disabled, validation, ...props }: CheckboxGroupProps) => React.JSX.Element) & {
|
|
6
|
-
original: ({ label, description, note, required, disabled, validation, ...props }: CheckboxGroupProps) => React.JSX.Element;
|
|
5
|
+
declare const CheckboxGroup: (({ label, description, note, required, disabled, hint, validation, ...props }: CheckboxGroupProps) => React.JSX.Element) & {
|
|
6
|
+
original: ({ label, description, note, required, disabled, hint, validation, ...props }: CheckboxGroupProps) => React.JSX.Element;
|
|
7
7
|
originalName: string;
|
|
8
8
|
displayName: string;
|
|
9
9
|
} & {
|
|
10
|
-
original: (({ label, description, note, required, disabled, validation, ...props }: CheckboxGroupProps) => React.JSX.Element) & {
|
|
11
|
-
original: ({ label, description, note, required, disabled, validation, ...props }: CheckboxGroupProps) => React.JSX.Element;
|
|
10
|
+
original: (({ label, description, note, required, disabled, hint, validation, ...props }: CheckboxGroupProps) => React.JSX.Element) & {
|
|
11
|
+
original: ({ label, description, note, required, disabled, hint, validation, ...props }: CheckboxGroupProps) => React.JSX.Element;
|
|
12
12
|
originalName: string;
|
|
13
13
|
displayName: string;
|
|
14
14
|
};
|
|
15
15
|
originalName: string;
|
|
16
16
|
displayName: string;
|
|
17
17
|
} & {
|
|
18
|
-
createDecorator: (decorator: import("@webiny/react-composition/types.js").ComponentDecorator<(({ label, description, note, required, disabled, validation, ...props }: CheckboxGroupProps) => React.JSX.Element) & {
|
|
19
|
-
original: ({ label, description, note, required, disabled, validation, ...props }: CheckboxGroupProps) => React.JSX.Element;
|
|
18
|
+
createDecorator: (decorator: import("@webiny/react-composition/types.js").ComponentDecorator<(({ label, description, note, required, disabled, hint, validation, ...props }: CheckboxGroupProps) => React.JSX.Element) & {
|
|
19
|
+
original: ({ label, description, note, required, disabled, hint, validation, ...props }: CheckboxGroupProps) => React.JSX.Element;
|
|
20
20
|
originalName: string;
|
|
21
21
|
displayName: string;
|
|
22
22
|
}>) => (props: unknown) => React.JSX.Element;
|
|
@@ -8,6 +8,7 @@ const DecoratableCheckboxGroup = ({
|
|
|
8
8
|
note,
|
|
9
9
|
required,
|
|
10
10
|
disabled,
|
|
11
|
+
hint,
|
|
11
12
|
validation,
|
|
12
13
|
...props
|
|
13
14
|
}) => {
|
|
@@ -20,6 +21,7 @@ const DecoratableCheckboxGroup = ({
|
|
|
20
21
|
className: "w-full"
|
|
21
22
|
}, /*#__PURE__*/React.createElement(FormComponentLabel, {
|
|
22
23
|
text: label,
|
|
24
|
+
hint: hint,
|
|
23
25
|
required: required,
|
|
24
26
|
disabled: disabled,
|
|
25
27
|
invalid: invalid
|
|
@@ -32,7 +34,9 @@ const DecoratableCheckboxGroup = ({
|
|
|
32
34
|
invalid: invalid,
|
|
33
35
|
disabled: disabled,
|
|
34
36
|
className: "mt-none mb-xs-plus"
|
|
35
|
-
}), /*#__PURE__*/React.createElement(CheckboxGroupPrimitive,
|
|
37
|
+
}), /*#__PURE__*/React.createElement(CheckboxGroupPrimitive, Object.assign({
|
|
38
|
+
disabled: disabled
|
|
39
|
+
}, props)), /*#__PURE__*/React.createElement(FormComponentNote, {
|
|
36
40
|
text: note,
|
|
37
41
|
disabled: disabled
|
|
38
42
|
}));
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":["React","useMemo","makeDecoratable","CheckboxGroupPrimitive","FormComponentDescription","FormComponentErrorMessage","FormComponentLabel","FormComponentNote","DecoratableCheckboxGroup","label","description","note","required","disabled","validation","props","isValid","validationIsValid","message","validationMessage","invalid","createElement","className","text","CheckboxGroup"],"sources":["CheckboxGroup.tsx"],"sourcesContent":["import React, { useMemo } from \"react\";\nimport { makeDecoratable } from \"~/utils.js\";\nimport type { CheckboxGroupPrimitiveProps } from \"./primitives/CheckboxGroupPrimitive.js\";\nimport { CheckboxGroupPrimitive } from \"./primitives/CheckboxGroupPrimitive.js\";\nimport type { FormComponentProps } from \"~/FormComponent/index.js\";\nimport {\n FormComponentDescription,\n FormComponentErrorMessage,\n FormComponentLabel,\n FormComponentNote\n} from \"~/FormComponent/index.js\";\n\ntype CheckboxGroupProps = CheckboxGroupPrimitiveProps & FormComponentProps;\n\nconst DecoratableCheckboxGroup = ({\n label,\n description,\n note,\n required,\n disabled,\n validation,\n ...props\n}: CheckboxGroupProps) => {\n const { isValid: validationIsValid, message: validationMessage } = validation || {};\n const invalid = useMemo(() => validationIsValid === false, [validationIsValid]);\n\n return (\n <div className={\"w-full\"}>\n <FormComponentLabel\n text={label}\n required={required}\n disabled={disabled}\n invalid={invalid}\n />\n <FormComponentDescription\n text={description}\n disabled={disabled}\n className={\"mb-xs-plus\"}\n />\n <FormComponentErrorMessage\n text={validationMessage}\n invalid={invalid}\n disabled={disabled}\n className={\"mt-none mb-xs-plus\"}\n />\n <CheckboxGroupPrimitive {...props} />\n <FormComponentNote text={note} disabled={disabled} />\n </div>\n );\n};\nconst CheckboxGroup = makeDecoratable(\"CheckboxGroup\", DecoratableCheckboxGroup);\n\nexport { CheckboxGroup };\n"],"mappings":"AAAA,OAAOA,KAAK,IAAIC,OAAO,QAAQ,OAAO;AACtC,SAASC,eAAe;AAExB,SAASC,sBAAsB;AAE/B,SACIC,wBAAwB,EACxBC,yBAAyB,EACzBC,kBAAkB,EAClBC,iBAAiB;AAKrB,MAAMC,wBAAwB,GAAGA,CAAC;EAC9BC,KAAK;EACLC,WAAW;EACXC,IAAI;EACJC,QAAQ;EACRC,QAAQ;EACRC,UAAU;EACV,GAAGC;AACa,CAAC,KAAK;EACtB,MAAM;IAAEC,OAAO,EAAEC,iBAAiB;IAAEC,OAAO,EAAEC;EAAkB,CAAC,GAAGL,UAAU,IAAI,CAAC,CAAC;EACnF,MAAMM,OAAO,
|
|
1
|
+
{"version":3,"names":["React","useMemo","makeDecoratable","CheckboxGroupPrimitive","FormComponentDescription","FormComponentErrorMessage","FormComponentLabel","FormComponentNote","DecoratableCheckboxGroup","label","description","note","required","disabled","hint","validation","props","isValid","validationIsValid","message","validationMessage","invalid","createElement","className","text","Object","assign","CheckboxGroup"],"sources":["CheckboxGroup.tsx"],"sourcesContent":["import React, { useMemo } from \"react\";\nimport { makeDecoratable } from \"~/utils.js\";\nimport type { CheckboxGroupPrimitiveProps } from \"./primitives/CheckboxGroupPrimitive.js\";\nimport { CheckboxGroupPrimitive } from \"./primitives/CheckboxGroupPrimitive.js\";\nimport type { FormComponentProps } from \"~/FormComponent/index.js\";\nimport {\n FormComponentDescription,\n FormComponentErrorMessage,\n FormComponentLabel,\n FormComponentNote\n} from \"~/FormComponent/index.js\";\n\ntype CheckboxGroupProps = CheckboxGroupPrimitiveProps & FormComponentProps;\n\nconst DecoratableCheckboxGroup = ({\n label,\n description,\n note,\n required,\n disabled,\n hint,\n validation,\n ...props\n}: CheckboxGroupProps) => {\n const { isValid: validationIsValid, message: validationMessage } = validation || {};\n const invalid = useMemo(() => validationIsValid === false, [validationIsValid]);\n\n return (\n <div className={\"w-full\"}>\n <FormComponentLabel\n text={label}\n hint={hint}\n required={required}\n disabled={disabled}\n invalid={invalid}\n />\n <FormComponentDescription\n text={description}\n disabled={disabled}\n className={\"mb-xs-plus\"}\n />\n <FormComponentErrorMessage\n text={validationMessage}\n invalid={invalid}\n disabled={disabled}\n className={\"mt-none mb-xs-plus\"}\n />\n <CheckboxGroupPrimitive disabled={disabled} {...props} />\n <FormComponentNote text={note} disabled={disabled} />\n </div>\n );\n};\nconst CheckboxGroup = makeDecoratable(\"CheckboxGroup\", DecoratableCheckboxGroup);\n\nexport { CheckboxGroup };\n"],"mappings":"AAAA,OAAOA,KAAK,IAAIC,OAAO,QAAQ,OAAO;AACtC,SAASC,eAAe;AAExB,SAASC,sBAAsB;AAE/B,SACIC,wBAAwB,EACxBC,yBAAyB,EACzBC,kBAAkB,EAClBC,iBAAiB;AAKrB,MAAMC,wBAAwB,GAAGA,CAAC;EAC9BC,KAAK;EACLC,WAAW;EACXC,IAAI;EACJC,QAAQ;EACRC,QAAQ;EACRC,IAAI;EACJC,UAAU;EACV,GAAGC;AACa,CAAC,KAAK;EACtB,MAAM;IAAEC,OAAO,EAAEC,iBAAiB;IAAEC,OAAO,EAAEC;EAAkB,CAAC,GAAGL,UAAU,IAAI,CAAC,CAAC;EACnF,MAAMM,OAAO,GAAGpB,OAAO,CAAC,MAAMiB,iBAAiB,KAAK,KAAK,EAAE,CAACA,iBAAiB,CAAC,CAAC;EAE/E,oBACIlB,KAAA,CAAAsB,aAAA;IAAKC,SAAS,EAAE;EAAS,gBACrBvB,KAAA,CAAAsB,aAAA,CAAChB,kBAAkB;IACfkB,IAAI,EAAEf,KAAM;IACZK,IAAI,EAAEA,IAAK;IACXF,QAAQ,EAAEA,QAAS;IACnBC,QAAQ,EAAEA,QAAS;IACnBQ,OAAO,EAAEA;EAAQ,CACpB,CAAC,eACFrB,KAAA,CAAAsB,aAAA,CAAClB,wBAAwB;IACrBoB,IAAI,EAAEd,WAAY;IAClBG,QAAQ,EAAEA,QAAS;IACnBU,SAAS,EAAE;EAAa,CAC3B,CAAC,eACFvB,KAAA,CAAAsB,aAAA,CAACjB,yBAAyB;IACtBmB,IAAI,EAAEJ,iBAAkB;IACxBC,OAAO,EAAEA,OAAQ;IACjBR,QAAQ,EAAEA,QAAS;IACnBU,SAAS,EAAE;EAAqB,CACnC,CAAC,eACFvB,KAAA,CAAAsB,aAAA,CAACnB,sBAAsB,EAAAsB,MAAA,CAAAC,MAAA;IAACb,QAAQ,EAAEA;EAAS,GAAKG,KAAK,CAAG,CAAC,eACzDhB,KAAA,CAAAsB,aAAA,CAACf,iBAAiB;IAACiB,IAAI,EAAEb,IAAK;IAACE,QAAQ,EAAEA;EAAS,CAAE,CACnD,CAAC;AAEd,CAAC;AACD,MAAMc,aAAa,GAAGzB,eAAe,CAAC,eAAe,EAAEM,wBAAwB,CAAC;AAEhF,SAASmB,aAAa","ignoreList":[]}
|
|
@@ -13,28 +13,33 @@ interface CheckboxGroupPrimitiveProps<TValue = any> {
|
|
|
13
13
|
* Array of selected checkbox values.
|
|
14
14
|
*/
|
|
15
15
|
value?: TValue[];
|
|
16
|
+
/**
|
|
17
|
+
* Is checkbox group disabled?
|
|
18
|
+
*/
|
|
19
|
+
disabled?: boolean;
|
|
16
20
|
}
|
|
17
21
|
interface CheckboxGroupPrimitiveVm {
|
|
18
22
|
items: CheckboxItemFormatted[];
|
|
19
23
|
}
|
|
20
24
|
type CheckboxGroupPrimitiveRendererProps<TValue = any> = CheckboxGroupPrimitiveVm & {
|
|
21
25
|
changeChecked: (value: TValue) => void;
|
|
26
|
+
disabled?: boolean;
|
|
22
27
|
};
|
|
23
|
-
declare const CheckboxGroupPrimitiveRenderer: (({ items, changeChecked }: CheckboxGroupPrimitiveRendererProps) => React.JSX.Element) & {
|
|
24
|
-
original: ({ items, changeChecked }: CheckboxGroupPrimitiveRendererProps) => React.JSX.Element;
|
|
28
|
+
declare const CheckboxGroupPrimitiveRenderer: (({ items, changeChecked, disabled }: CheckboxGroupPrimitiveRendererProps) => React.JSX.Element) & {
|
|
29
|
+
original: ({ items, changeChecked, disabled }: CheckboxGroupPrimitiveRendererProps) => React.JSX.Element;
|
|
25
30
|
originalName: string;
|
|
26
31
|
displayName: string;
|
|
27
32
|
} & {
|
|
28
|
-
original: (({ items, changeChecked }: CheckboxGroupPrimitiveRendererProps) => React.JSX.Element) & {
|
|
29
|
-
original: ({ items, changeChecked }: CheckboxGroupPrimitiveRendererProps) => React.JSX.Element;
|
|
33
|
+
original: (({ items, changeChecked, disabled }: CheckboxGroupPrimitiveRendererProps) => React.JSX.Element) & {
|
|
34
|
+
original: ({ items, changeChecked, disabled }: CheckboxGroupPrimitiveRendererProps) => React.JSX.Element;
|
|
30
35
|
originalName: string;
|
|
31
36
|
displayName: string;
|
|
32
37
|
};
|
|
33
38
|
originalName: string;
|
|
34
39
|
displayName: string;
|
|
35
40
|
} & {
|
|
36
|
-
createDecorator: (decorator: import("@webiny/react-composition/types.js").ComponentDecorator<(({ items, changeChecked }: CheckboxGroupPrimitiveRendererProps) => React.JSX.Element) & {
|
|
37
|
-
original: ({ items, changeChecked }: CheckboxGroupPrimitiveRendererProps) => React.JSX.Element;
|
|
41
|
+
createDecorator: (decorator: import("@webiny/react-composition/types.js").ComponentDecorator<(({ items, changeChecked, disabled }: CheckboxGroupPrimitiveRendererProps) => React.JSX.Element) & {
|
|
42
|
+
original: ({ items, changeChecked, disabled }: CheckboxGroupPrimitiveRendererProps) => React.JSX.Element;
|
|
38
43
|
originalName: string;
|
|
39
44
|
displayName: string;
|
|
40
45
|
}>) => (props: unknown) => React.JSX.Element;
|
|
@@ -7,13 +7,15 @@ import { useCheckboxGroup } from "./useCheckboxGroup.js";
|
|
|
7
7
|
*/
|
|
8
8
|
const DecoratableCheckboxGroupPrimitiveRenderer = ({
|
|
9
9
|
items,
|
|
10
|
-
changeChecked
|
|
10
|
+
changeChecked,
|
|
11
|
+
disabled
|
|
11
12
|
}) => {
|
|
12
13
|
return /*#__PURE__*/React.createElement("div", {
|
|
13
14
|
className: cn("grid gap-sm-extra py-xs-plus")
|
|
14
15
|
}, items.map(item => /*#__PURE__*/React.createElement(CheckboxPrimitiveRenderer, Object.assign({
|
|
15
16
|
key: item.id
|
|
16
17
|
}, item, {
|
|
18
|
+
disabled: disabled ?? item.disabled,
|
|
17
19
|
changeChecked: () => changeChecked(item.value)
|
|
18
20
|
}))));
|
|
19
21
|
};
|
|
@@ -28,7 +30,8 @@ const DecoratableCheckboxGroupPrimitive = props => {
|
|
|
28
30
|
changeChecked
|
|
29
31
|
} = useCheckboxGroup(props);
|
|
30
32
|
return /*#__PURE__*/React.createElement(CheckboxGroupPrimitiveRenderer, Object.assign({}, vm, {
|
|
31
|
-
changeChecked: changeChecked
|
|
33
|
+
changeChecked: changeChecked,
|
|
34
|
+
disabled: props.disabled
|
|
32
35
|
}));
|
|
33
36
|
};
|
|
34
37
|
const CheckboxGroupPrimitive = makeDecoratable("CheckboxGroupPrimitive", DecoratableCheckboxGroupPrimitive);
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":["React","cn","makeDecoratable","CheckboxPrimitiveRenderer","useCheckboxGroup","DecoratableCheckboxGroupPrimitiveRenderer","items","changeChecked","createElement","className","map","item","Object","assign","key","id","value","CheckboxGroupPrimitiveRenderer","DecoratableCheckboxGroupPrimitive","props","vm","CheckboxGroupPrimitive"],"sources":["CheckboxGroupPrimitive.tsx"],"sourcesContent":["import React from \"react\";\nimport { cn, makeDecoratable } from \"~/utils.js\";\nimport type { CheckboxItemDto, CheckboxItemFormatted } from \"~/Checkbox/index.js\";\nimport { CheckboxPrimitiveRenderer } from \"~/Checkbox/index.js\";\nimport { useCheckboxGroup } from \"./useCheckboxGroup.js\";\n\ninterface CheckboxGroupPrimitiveProps<TValue = any> {\n /**\n * Array of checkbox items.\n */\n items: CheckboxItemDto[];\n /**\n * Callback function called when the checkbox values change.\n */\n onChange?: (values: TValue[]) => void;\n /**\n * Array of selected checkbox values.\n */\n value?: TValue[];\n}\n\ninterface CheckboxGroupPrimitiveVm {\n items: CheckboxItemFormatted[];\n}\n\ntype CheckboxGroupPrimitiveRendererProps<TValue = any> = CheckboxGroupPrimitiveVm & {\n changeChecked: (value: TValue) => void;\n};\n\n/**\n * Checkbox Group Renderer\n */\nconst DecoratableCheckboxGroupPrimitiveRenderer = ({\n items,\n changeChecked\n}: CheckboxGroupPrimitiveRendererProps) => {\n return (\n <div className={cn(\"grid gap-sm-extra py-xs-plus\")}>\n {items.map(item => (\n <CheckboxPrimitiveRenderer\n key={item.id}\n {...item}\n changeChecked={() => changeChecked(item.value)}\n />\n ))}\n </div>\n );\n};\nconst CheckboxGroupPrimitiveRenderer = makeDecoratable(\n \"CheckboxGroupPrimitiveRenderer\",\n DecoratableCheckboxGroupPrimitiveRenderer\n);\n\n/**\n * Checkbox Group\n */\nconst DecoratableCheckboxGroupPrimitive = (props: CheckboxGroupPrimitiveProps) => {\n const { vm, changeChecked } = useCheckboxGroup(props);\n return <CheckboxGroupPrimitiveRenderer
|
|
1
|
+
{"version":3,"names":["React","cn","makeDecoratable","CheckboxPrimitiveRenderer","useCheckboxGroup","DecoratableCheckboxGroupPrimitiveRenderer","items","changeChecked","disabled","createElement","className","map","item","Object","assign","key","id","value","CheckboxGroupPrimitiveRenderer","DecoratableCheckboxGroupPrimitive","props","vm","CheckboxGroupPrimitive"],"sources":["CheckboxGroupPrimitive.tsx"],"sourcesContent":["import React from \"react\";\nimport { cn, makeDecoratable } from \"~/utils.js\";\nimport type { CheckboxItemDto, CheckboxItemFormatted } from \"~/Checkbox/index.js\";\nimport { CheckboxPrimitiveRenderer } from \"~/Checkbox/index.js\";\nimport { useCheckboxGroup } from \"./useCheckboxGroup.js\";\n\ninterface CheckboxGroupPrimitiveProps<TValue = any> {\n /**\n * Array of checkbox items.\n */\n items: CheckboxItemDto[];\n /**\n * Callback function called when the checkbox values change.\n */\n onChange?: (values: TValue[]) => void;\n /**\n * Array of selected checkbox values.\n */\n value?: TValue[];\n /**\n * Is checkbox group disabled?\n */\n disabled?: boolean;\n}\n\ninterface CheckboxGroupPrimitiveVm {\n items: CheckboxItemFormatted[];\n}\n\ntype CheckboxGroupPrimitiveRendererProps<TValue = any> = CheckboxGroupPrimitiveVm & {\n changeChecked: (value: TValue) => void;\n disabled?: boolean;\n};\n\n/**\n * Checkbox Group Renderer\n */\nconst DecoratableCheckboxGroupPrimitiveRenderer = ({\n items,\n changeChecked,\n disabled\n}: CheckboxGroupPrimitiveRendererProps) => {\n return (\n <div className={cn(\"grid gap-sm-extra py-xs-plus\")}>\n {items.map(item => (\n <CheckboxPrimitiveRenderer\n key={item.id}\n {...item}\n disabled={disabled ?? item.disabled}\n changeChecked={() => changeChecked(item.value)}\n />\n ))}\n </div>\n );\n};\nconst CheckboxGroupPrimitiveRenderer = makeDecoratable(\n \"CheckboxGroupPrimitiveRenderer\",\n DecoratableCheckboxGroupPrimitiveRenderer\n);\n\n/**\n * Checkbox Group\n */\nconst DecoratableCheckboxGroupPrimitive = (props: CheckboxGroupPrimitiveProps) => {\n const { vm, changeChecked } = useCheckboxGroup(props);\n return (\n <CheckboxGroupPrimitiveRenderer\n {...vm}\n changeChecked={changeChecked}\n disabled={props.disabled}\n />\n );\n};\nconst CheckboxGroupPrimitive = makeDecoratable(\n \"CheckboxGroupPrimitive\",\n DecoratableCheckboxGroupPrimitive\n);\n\nexport {\n CheckboxGroupPrimitive,\n CheckboxGroupPrimitiveRenderer,\n type CheckboxGroupPrimitiveProps,\n type CheckboxGroupPrimitiveRendererProps,\n type CheckboxGroupPrimitiveVm\n};\n"],"mappings":"AAAA,OAAOA,KAAK,MAAM,OAAO;AACzB,SAASC,EAAE,EAAEC,eAAe;AAE5B,SAASC,yBAAyB;AAClC,SAASC,gBAAgB;AA8BzB;AACA;AACA;AACA,MAAMC,yCAAyC,GAAGA,CAAC;EAC/CC,KAAK;EACLC,aAAa;EACbC;AACiC,CAAC,KAAK;EACvC,oBACIR,KAAA,CAAAS,aAAA;IAAKC,SAAS,EAAET,EAAE,CAAC,8BAA8B;EAAE,GAC9CK,KAAK,CAACK,GAAG,CAACC,IAAI,iBACXZ,KAAA,CAAAS,aAAA,CAACN,yBAAyB,EAAAU,MAAA,CAAAC,MAAA;IACtBC,GAAG,EAAEH,IAAI,CAACI;EAAG,GACTJ,IAAI;IACRJ,QAAQ,EAAEA,QAAQ,IAAII,IAAI,CAACJ,QAAS;IACpCD,aAAa,EAAEA,CAAA,KAAMA,aAAa,CAACK,IAAI,CAACK,KAAK;EAAE,EAClD,CACJ,CACA,CAAC;AAEd,CAAC;AACD,MAAMC,8BAA8B,GAAGhB,eAAe,CAClD,gCAAgC,EAChCG,yCACJ,CAAC;;AAED;AACA;AACA;AACA,MAAMc,iCAAiC,GAAIC,KAAkC,IAAK;EAC9E,MAAM;IAAEC,EAAE;IAAEd;EAAc,CAAC,GAAGH,gBAAgB,CAACgB,KAAK,CAAC;EACrD,oBACIpB,KAAA,CAAAS,aAAA,CAACS,8BAA8B,EAAAL,MAAA,CAAAC,MAAA,KACvBO,EAAE;IACNd,aAAa,EAAEA,aAAc;IAC7BC,QAAQ,EAAEY,KAAK,CAACZ;EAAS,EAC5B,CAAC;AAEV,CAAC;AACD,MAAMc,sBAAsB,GAAGpB,eAAe,CAC1C,wBAAwB,EACxBiB,iCACJ,CAAC;AAED,SACIG,sBAAsB,EACtBJ,8BAA8B","ignoreList":[]}
|