diff --git a/.vscode/settings.json b/.vscode/settings.json index 495ac31a02..56add3db1f 100644 --- a/.vscode/settings.json +++ b/.vscode/settings.json @@ -5,5 +5,6 @@ "titleBar.activeForeground": "#F9FAF2" }, "java.debug.settings.onBuildFailureProceed": true, - "java.configuration.updateBuildConfiguration": "automatic" + "java.configuration.updateBuildConfiguration": "automatic", + "terminal.integrated.scrollback": 100000000, } \ No newline at end of file diff --git a/client/packages/lowcoder-design/src/components/Dropdown.tsx b/client/packages/lowcoder-design/src/components/Dropdown.tsx index 309eb40761..5adb4e1869 100644 --- a/client/packages/lowcoder-design/src/components/Dropdown.tsx +++ b/client/packages/lowcoder-design/src/components/Dropdown.tsx @@ -184,7 +184,7 @@ export function Dropdown<T extends OptionsType>(props: DropdownProps<T>) { <CustomSelect open={props.open} listHeight={props.lineHeight} - popupClassName="ob-dropdown-control-select" + classNames={{popup: { root: "ob-dropdown-control-select"}}} showSearch={props.showSearch} filterOption={(input, option) => { if (props.optionFilterProp) { @@ -216,7 +216,7 @@ export function Dropdown<T extends OptionsType>(props: DropdownProps<T>) { allowClear={props.allowClear} placeholder={props.placeholder} optionLabelProp={props.optionLabelProp} - dropdownRender={(menu) => + popupRender={(menu) => props.preNode ? ( <> {props.preNode()} diff --git a/client/packages/lowcoder-design/src/components/TriggeredDialog.tsx b/client/packages/lowcoder-design/src/components/TriggeredDialog.tsx index a1f7e9dc1a..75302c470f 100644 --- a/client/packages/lowcoder-design/src/components/TriggeredDialog.tsx +++ b/client/packages/lowcoder-design/src/components/TriggeredDialog.tsx @@ -40,7 +40,7 @@ export function TriggeredDialog(props: { <CustomModal open={visible} title={modalTitle} - destroyOnClose + destroyOnHidden onCancel={() => setVisible(false)} showOkButton={false} showCancelButton={false} diff --git a/client/packages/lowcoder-design/src/components/colorSelect/index.tsx b/client/packages/lowcoder-design/src/components/colorSelect/index.tsx index 52f2a206f1..18e14008af 100644 --- a/client/packages/lowcoder-design/src/components/colorSelect/index.tsx +++ b/client/packages/lowcoder-design/src/components/colorSelect/index.tsx @@ -48,7 +48,7 @@ export const ColorSelect = (props: ColorSelectProps) => { useEffect(() => { if (color !== selectedColor) { - const value = getGradientObject(); + const value = getGradientObject("#ffffff"); if (!value?.isGradient) { return throttleChange(toHex(selectedColor)); } diff --git a/client/packages/lowcoder-design/src/components/customSelect.tsx b/client/packages/lowcoder-design/src/components/customSelect.tsx index e06427465e..2f13f0db8e 100644 --- a/client/packages/lowcoder-design/src/components/customSelect.tsx +++ b/client/packages/lowcoder-design/src/components/customSelect.tsx @@ -96,7 +96,7 @@ const CustomSelect = React.forwardRef<HTMLDivElement, CustomSelectProps>(( return ( <SelectWrapper className={className} ref={ref} $border={border}> <AntdSelect - popupClassName={popupClassName} + classNames={{popup: { root: popupClassName }}} popupMatchSelectWidth={false} suffixIcon={<PackUpIcon />} {...restProps} diff --git a/client/packages/lowcoder-design/src/components/form.tsx b/client/packages/lowcoder-design/src/components/form.tsx index 364a9e610f..ca469d5072 100644 --- a/client/packages/lowcoder-design/src/components/form.tsx +++ b/client/packages/lowcoder-design/src/components/form.tsx @@ -331,7 +331,7 @@ const FormSelect = (props: any) => { }} popupMatchSelectWidth={false} placeholder={props.placeholder} - dropdownRender={props.dropdownRender} + popupRender={props.dropdownRender} > {props.options?.map((item: any) => { return ( diff --git a/client/packages/lowcoder-design/src/components/tacoInput.tsx b/client/packages/lowcoder-design/src/components/tacoInput.tsx index e7ce12111c..a6f4583877 100644 --- a/client/packages/lowcoder-design/src/components/tacoInput.tsx +++ b/client/packages/lowcoder-design/src/components/tacoInput.tsx @@ -283,7 +283,7 @@ function PhoneNumberInput(props: { <CustomSelect disabled style={{ width: "80px", height: "38px" }} - dropdownStyle={{ width: "408px" }} + styles={{ popup: { root: { width: "408px" }}}} defaultValue={defaultCountryCode} optionLabelProp="value" onChange={(value) => { diff --git a/client/packages/lowcoder-design/src/icons/index.tsx b/client/packages/lowcoder-design/src/icons/index.tsx index b76629d6fa..94453db48b 100644 --- a/client/packages/lowcoder-design/src/icons/index.tsx +++ b/client/packages/lowcoder-design/src/icons/index.tsx @@ -132,7 +132,11 @@ export { ReactComponent as APIDocsIcon } from "./remix/instance-line.svg"; export { ReactComponent as SubscriptionIcon } from "./remix/award-fill.svg"; export { ReactComponent as SupportIcon } from "./remix/user-heart-line.svg"; // export { ReactComponent as AllAppIcon } from "./v1/icon-all-app.svg"; - +// EE +export { ReactComponent as EnvironmentsIcon } from "./remix/git-branch-line.svg"; +export { ReactComponent as UsageStatisticsIcon } from "./remix/line-chart-line.svg"; +export { ReactComponent as AutitLogsIcon } from "./remix/user-community-line.svg"; +export { ReactComponent as BrandingIcon } from "./remix/paint-brush-line.svg"; // Data Sources export { ReactComponent as MysqlIcon } from "./v1/icon-query-MySQL.svg"; diff --git a/client/packages/lowcoder-design/src/icons/remix/account-box-2-fill.svg b/client/packages/lowcoder-design/src/icons/remix/account-box-2-fill.svg new file mode 100644 index 0000000000..c2c5a7354b --- /dev/null +++ b/client/packages/lowcoder-design/src/icons/remix/account-box-2-fill.svg @@ -0,0 +1 @@ +<svg viewBox="0 0 24 24" fill="currentColor" xmlns="http://www.w3.org/2000/svg"><path d="M3 4.99509C3 3.89323 3.89262 3 4.99509 3H19.0049C20.1068 3 21 3.89262 21 4.99509V19.0049C21 20.1068 20.1074 21 19.0049 21H4.99509C3.89323 21 3 20.1074 3 19.0049V4.99509ZM12 8C12.5523 8 13 8.44772 13 9C13 9.55228 12.5523 10 12 10C11.4477 10 11 9.55228 11 9C11 8.44772 11.4477 8 12 8ZM12 12C13.6569 12 15 10.6569 15 9C15 7.34315 13.6569 6 12 6C10.3431 6 9 7.34315 9 9C9 10.6569 10.3431 12 12 12ZM12 15C13.1046 15 14 15.8954 14 17H16C16 14.7909 14.2091 13 12 13C9.79086 13 8 14.7909 8 17H10C10 15.8954 10.8954 15 12 15Z"/></svg> \ No newline at end of file diff --git a/client/packages/lowcoder-design/src/icons/remix/account-box-2-line.svg b/client/packages/lowcoder-design/src/icons/remix/account-box-2-line.svg new file mode 100644 index 0000000000..bb144965aa --- /dev/null +++ b/client/packages/lowcoder-design/src/icons/remix/account-box-2-line.svg @@ -0,0 +1 @@ +<svg viewBox="0 0 24 24" fill="currentColor" xmlns="http://www.w3.org/2000/svg"><path d="M4.99509 3C3.89262 3 3 3.89323 3 4.99509V19.0049C3 20.1074 3.89323 21 4.99509 21H19.0049C20.1074 21 21 20.1068 21 19.0049V4.99509C21 3.89262 20.1068 3 19.0049 3H4.99509ZM5 19V5H19V19H5ZM12 8C12.5523 8 13 8.44772 13 9C13 9.55228 12.5523 10 12 10C11.4477 10 11 9.55228 11 9C11 8.44772 11.4477 8 12 8ZM12 12C13.6569 12 15 10.6569 15 9C15 7.34315 13.6569 6 12 6C10.3431 6 9 7.34315 9 9C9 10.6569 10.3431 12 12 12ZM12 15C10.8954 15 10 15.8954 10 17H8C8 14.7909 9.79086 13 12 13C14.2091 13 16 14.7909 16 17H14C14 15.8954 13.1046 15 12 15Z"/></svg> \ No newline at end of file diff --git a/client/packages/lowcoder-design/src/icons/remix/account-circle-2-fill.svg b/client/packages/lowcoder-design/src/icons/remix/account-circle-2-fill.svg new file mode 100644 index 0000000000..fad8ce6843 --- /dev/null +++ b/client/packages/lowcoder-design/src/icons/remix/account-circle-2-fill.svg @@ -0,0 +1 @@ +<svg viewBox="0 0 24 24" fill="currentColor" xmlns="http://www.w3.org/2000/svg"><path d="M12 22C6.47715 22 2 17.5228 2 12C2 6.47715 6.47715 2 12 2C17.5228 2 22 6.47715 22 12C22 17.5228 17.5228 22 12 22ZM12 8C12.5523 8 13 8.44772 13 9C13 9.55228 12.5523 10 12 10C11.4477 10 11 9.55228 11 9C11 8.44772 11.4477 8 12 8ZM12 12C13.6569 12 15 10.6569 15 9C15 7.34315 13.6569 6 12 6C10.3431 6 9 7.34315 9 9C9 10.6569 10.3431 12 12 12ZM12 15C13.1046 15 14 15.8954 14 17H16C16 14.7909 14.2091 13 12 13C9.79086 13 8 14.7909 8 17H10C10 15.8954 10.8954 15 12 15Z"/></svg> \ No newline at end of file diff --git a/client/packages/lowcoder-design/src/icons/remix/account-circle-2-line.svg b/client/packages/lowcoder-design/src/icons/remix/account-circle-2-line.svg new file mode 100644 index 0000000000..c37c70644e --- /dev/null +++ b/client/packages/lowcoder-design/src/icons/remix/account-circle-2-line.svg @@ -0,0 +1 @@ +<svg viewBox="0 0 24 24" fill="currentColor" xmlns="http://www.w3.org/2000/svg"><path d="M12 22C6.47715 22 2 17.5228 2 12C2 6.47715 6.47715 2 12 2C17.5228 2 22 6.47715 22 12C22 17.5228 17.5228 22 12 22ZM12 20C16.4183 20 20 16.4183 20 12C20 7.58172 16.4183 4 12 4C7.58172 4 4 7.58172 4 12C4 16.4183 7.58172 20 12 20ZM12 8C12.5523 8 13 8.44772 13 9C13 9.55228 12.5523 10 12 10C11.4477 10 11 9.55228 11 9C11 8.44772 11.4477 8 12 8ZM12 12C13.6569 12 15 10.6569 15 9C15 7.34315 13.6569 6 12 6C10.3431 6 9 7.34315 9 9C9 10.6569 10.3431 12 12 12ZM12 15C10.8954 15 10 15.8954 10 17H8C8 14.7909 9.79086 13 12 13C14.2091 13 16 14.7909 16 17H14C14 15.8954 13.1046 15 12 15Z"/></svg> \ No newline at end of file diff --git a/client/packages/lowcoder-design/src/icons/remix/add-large-fill.svg b/client/packages/lowcoder-design/src/icons/remix/add-large-fill.svg new file mode 100644 index 0000000000..9d6989bb1d --- /dev/null +++ b/client/packages/lowcoder-design/src/icons/remix/add-large-fill.svg @@ -0,0 +1 @@ +<svg viewBox="0 0 24 24" fill="currentColor" xmlns="http://www.w3.org/2000/svg"><path d="M11 11.0001L11 2.0005L13 2.00049L13 11.0001L22.0001 10.9999L22.0002 12.9999L13 13.0001L13.0001 22L11.0001 22L11.0001 13.0001L2.00004 13.0003L2 11.0003L11 11.0001Z"/></svg> \ No newline at end of file diff --git a/client/packages/lowcoder-design/src/icons/remix/add-large-line.svg b/client/packages/lowcoder-design/src/icons/remix/add-large-line.svg new file mode 100644 index 0000000000..234bb93fc1 --- /dev/null +++ b/client/packages/lowcoder-design/src/icons/remix/add-large-line.svg @@ -0,0 +1 @@ +<svg viewBox="0 0 24 24" fill="currentColor" xmlns="http://www.w3.org/2000/svg"><path d="M13.0001 10.9999L22.0002 10.9997L22.0002 12.9997L13.0001 12.9999L13.0001 21.9998L11.0001 21.9998L11.0001 12.9999L2.00004 13.0001L2 11.0001L11.0001 10.9999L11 2.00025L13 2.00024L13.0001 10.9999Z"/></svg> \ No newline at end of file diff --git a/client/packages/lowcoder-design/src/icons/remix/aed-electrodes-fill.svg b/client/packages/lowcoder-design/src/icons/remix/aed-electrodes-fill.svg new file mode 100644 index 0000000000..04a170e709 --- /dev/null +++ b/client/packages/lowcoder-design/src/icons/remix/aed-electrodes-fill.svg @@ -0,0 +1 @@ +<svg viewBox="0 0 24 24" fill="currentColor" xmlns="http://www.w3.org/2000/svg"><path d="M8 3C7.44772 3 7 3.44772 7 4V7H4C3.44772 7 3 7.44772 3 8V20C3 20.5523 3.44772 21 4 21H9V23H11V21H16C16.5523 21 17 20.5523 17 20V17H20C20.5523 17 21 16.5523 21 16V4C21 3.44772 20.5523 3 20 3H8ZM17 15V8C17 7.44772 16.5523 7 16 7H9V5H19V15H17Z"/></svg> \ No newline at end of file diff --git a/client/packages/lowcoder-design/src/icons/remix/aed-electrodes-line.svg b/client/packages/lowcoder-design/src/icons/remix/aed-electrodes-line.svg new file mode 100644 index 0000000000..1f719410b6 --- /dev/null +++ b/client/packages/lowcoder-design/src/icons/remix/aed-electrodes-line.svg @@ -0,0 +1 @@ +<svg viewBox="0 0 24 24" fill="currentColor" xmlns="http://www.w3.org/2000/svg"><path d="M7 4C7 3.44772 7.44772 3 8 3H20C20.5523 3 21 3.44772 21 4V16C21 16.5523 20.5523 17 20 17H17V20C17 20.5523 16.5523 21 16 21H11V23H9V21H4C3.44772 21 3 20.5523 3 20V8C3 7.44772 3.44772 7 4 7H7V4ZM19 15V5H9V7H16C16.5523 7 17 7.44772 17 8V15H19ZM5 9V19H15V9H5Z"/></svg> \ No newline at end of file diff --git a/client/packages/lowcoder-design/src/icons/remix/aed-fill.svg b/client/packages/lowcoder-design/src/icons/remix/aed-fill.svg new file mode 100644 index 0000000000..5029acc403 --- /dev/null +++ b/client/packages/lowcoder-design/src/icons/remix/aed-fill.svg @@ -0,0 +1 @@ +<svg viewBox="0 0 24 24" fill="currentColor" xmlns="http://www.w3.org/2000/svg"><path d="M6 3C4.34315 3 3 4.34315 3 6V18C3 19.6569 4.34315 21 6 21H18C19.6569 21 21 19.6569 21 18V6C21 4.34315 19.6569 3 18 3H6ZM16 11L11 18V13H8L13 6V11H16Z"/></svg> \ No newline at end of file diff --git a/client/packages/lowcoder-design/src/icons/remix/aed-line.svg b/client/packages/lowcoder-design/src/icons/remix/aed-line.svg new file mode 100644 index 0000000000..a7bab2a690 --- /dev/null +++ b/client/packages/lowcoder-design/src/icons/remix/aed-line.svg @@ -0,0 +1 @@ +<svg viewBox="0 0 24 24" fill="currentColor" xmlns="http://www.w3.org/2000/svg"><path d="M6 5C5.44772 5 5 5.44772 5 6V18C5 18.5523 5.44772 19 6 19H18C18.5523 19 19 18.5523 19 18V6C19 5.44772 18.5523 5 18 5H6ZM3 6C3 4.34315 4.34315 3 6 3H18C19.6569 3 21 4.34315 21 6V18C21 19.6569 19.6569 21 18 21H6C4.34315 21 3 19.6569 3 18V6ZM16 11H13V6L8 13H11V18L16 11Z"/></svg> \ No newline at end of file diff --git a/client/packages/lowcoder-design/src/icons/remix/ai-generate-2.svg b/client/packages/lowcoder-design/src/icons/remix/ai-generate-2.svg new file mode 100644 index 0000000000..06232c34af --- /dev/null +++ b/client/packages/lowcoder-design/src/icons/remix/ai-generate-2.svg @@ -0,0 +1 @@ +<svg viewBox="0 0 24 24" fill="currentColor" xmlns="http://www.w3.org/2000/svg"><path d="M20.4668 8.69379L20.7134 8.12811C21.1529 7.11947 21.9445 6.31641 22.9323 5.87708L23.6919 5.53922C24.1027 5.35653 24.1027 4.75881 23.6919 4.57612L22.9748 4.25714C21.9616 3.80651 21.1558 2.97373 20.7238 1.93083L20.4706 1.31953C20.2942 0.893489 19.7058 0.893489 19.5293 1.31953L19.2761 1.93083C18.8442 2.97373 18.0384 3.80651 17.0252 4.25714L16.308 4.57612C15.8973 4.75881 15.8973 5.35653 16.308 5.53922L17.0677 5.87708C18.0555 6.31641 18.8471 7.11947 19.2866 8.12811L19.5331 8.69379C19.7136 9.10792 20.2864 9.10792 20.4668 8.69379ZM5.79993 16H7.95399L8.55399 14.5H11.4459L12.0459 16H14.1999L10.9999 8H8.99993L5.79993 16ZM9.99993 10.8852L10.6459 12.5H9.35399L9.99993 10.8852ZM15 16V8H17V16H15ZM3 3C2.44772 3 2 3.44772 2 4V20C2 20.5523 2.44772 21 3 21H21C21.5523 21 22 20.5523 22 20V11H20V19H4V5H14V3H3Z"/></svg> \ No newline at end of file diff --git a/client/packages/lowcoder-design/src/icons/remix/ai-generate-text.svg b/client/packages/lowcoder-design/src/icons/remix/ai-generate-text.svg new file mode 100644 index 0000000000..52df2eed99 --- /dev/null +++ b/client/packages/lowcoder-design/src/icons/remix/ai-generate-text.svg @@ -0,0 +1 @@ +<svg viewBox="0 0 24 24" fill="currentColor" xmlns="http://www.w3.org/2000/svg"><path d="M20.4668 8.69379L20.7134 8.12811C21.1529 7.11947 21.9445 6.31641 22.9323 5.87708L23.6919 5.53922C24.1027 5.35653 24.1027 4.75881 23.6919 4.57612L22.9748 4.25714C21.9616 3.80651 21.1558 2.97373 20.7238 1.93083L20.4706 1.31953C20.2942 0.893489 19.7058 0.893489 19.5293 1.31953L19.2761 1.93083C18.8442 2.97373 18.0384 3.80651 17.0252 4.25714L16.308 4.57612C15.8973 4.75881 15.8973 5.35653 16.308 5.53922L17.0677 5.87708C18.0555 6.31641 18.8471 7.11947 19.2866 8.12811L19.5331 8.69379C19.7136 9.10792 20.2864 9.10792 20.4668 8.69379ZM2 4C2 3.44772 2.44772 3 3 3H14V5H4V19H20V11H22V20C22 20.5523 21.5523 21 21 21H3C2.44772 21 2 20.5523 2 20V4ZM7 8H17V11H15V10H13V14H14.5V16H9.5V14H11V10H9V11H7V8Z"/></svg> \ No newline at end of file diff --git a/client/packages/lowcoder-design/src/icons/remix/ai-generate.svg b/client/packages/lowcoder-design/src/icons/remix/ai-generate.svg index 1203650788..ad44f33ddd 100644 --- a/client/packages/lowcoder-design/src/icons/remix/ai-generate.svg +++ b/client/packages/lowcoder-design/src/icons/remix/ai-generate.svg @@ -1 +1 @@ -<svg viewBox="0 0 24 24" fill="currentColor" xmlns="http://www.w3.org/2000/svg"><path d="M15 5.25C16.7949 5.25 18.25 3.79493 18.25 2H19.75C19.75 3.79493 21.2051 5.25 23 5.25V6.75C21.2051 6.75 19.75 8.20507 19.75 10H18.25C18.25 8.20507 16.7949 6.75 15 6.75V5.25ZM4 7C4 5.89543 4.89543 5 6 5H13V3H6C3.79086 3 2 4.79086 2 7V17C2 19.2091 3.79086 21 6 21H18C20.2091 21 22 19.2091 22 17V12H20V17C20 18.1046 19.1046 19 18 19H6C4.89543 19 4 18.1046 4 17V7Z"/></svg> \ No newline at end of file +<svg viewBox="0 0 24 24" fill="currentColor" xmlns="http://www.w3.org/2000/svg"><path d="M19.7134 9.12811L19.4668 9.69379C19.2864 10.1079 18.7136 10.1079 18.5331 9.69379L18.2866 9.12811C17.8471 8.11947 17.0555 7.31641 16.0677 6.87708L15.308 6.53922C14.8973 6.35653 14.8973 5.75881 15.308 5.57612L16.0252 5.25714C17.0384 4.80651 17.8442 3.97373 18.2761 2.93083L18.5293 2.31953C18.7058 1.89349 19.2942 1.89349 19.4706 2.31953L19.7238 2.93083C20.1558 3.97373 20.9616 4.80651 21.9748 5.25714L22.6919 5.57612C23.1027 5.75881 23.1027 6.35653 22.6919 6.53922L21.9323 6.87708C20.9445 7.31641 20.1529 8.11947 19.7134 9.12811ZM6 5C4.89543 5 4 5.89543 4 7V17C4 18.1046 4.89543 19 6 19H18C19.1046 19 20 18.1046 20 17V12H22V17C22 19.2091 20.2091 21 18 21H6C3.79086 21 2 19.2091 2 17V7C2 4.79086 3.79086 3 6 3H13V5H6Z"/></svg> \ No newline at end of file diff --git a/client/packages/lowcoder-design/src/icons/remix/alarm-snooze-fill.svg b/client/packages/lowcoder-design/src/icons/remix/alarm-snooze-fill.svg new file mode 100644 index 0000000000..65a5122bd5 --- /dev/null +++ b/client/packages/lowcoder-design/src/icons/remix/alarm-snooze-fill.svg @@ -0,0 +1 @@ +<svg viewBox="0 0 24 24" fill="currentColor" xmlns="http://www.w3.org/2000/svg"><path d="M3.00012 13.0001C3.00012 17.9707 7.02956 22.0001 12.0001 22.0001C16.9707 22.0001 21.0001 17.9707 21.0001 13.0001C21.0001 8.02956 16.9707 4.00012 12.0001 4.00012C7.02956 4.00012 3.00012 8.02956 3.00012 13.0001ZM5.2826 2.74707L1.74707 6.2826L3.16128 7.69682L6.69682 4.16128L5.2826 2.74707ZM22.2532 6.2826L18.7176 2.74707L17.3034 4.16128L20.839 7.69682L22.2532 6.2826ZM9 11V9H15V11.4142L11.4142 15H15V17H9V14.5858L12.5858 11H9Z"/></svg> \ No newline at end of file diff --git a/client/packages/lowcoder-design/src/icons/remix/alarm-snooze-line.svg b/client/packages/lowcoder-design/src/icons/remix/alarm-snooze-line.svg new file mode 100644 index 0000000000..86b4c5ed20 --- /dev/null +++ b/client/packages/lowcoder-design/src/icons/remix/alarm-snooze-line.svg @@ -0,0 +1 @@ +<svg viewBox="0 0 24 24" fill="currentColor" xmlns="http://www.w3.org/2000/svg"><path d="M3.00012 13.0001C3.00012 17.9707 7.02956 22.0001 12.0001 22.0001C16.9707 22.0001 21.0001 17.9707 21.0001 13.0001C21.0001 8.02956 16.9707 4.00012 12.0001 4.00012C7.02956 4.00012 3.00012 8.02956 3.00012 13.0001ZM19.0001 13.0001C19.0001 16.8661 15.8661 20.0001 12.0001 20.0001C8.13412 20.0001 5.00012 16.8661 5.00012 13.0001C5.00012 9.13412 8.13412 6.00012 12.0001 6.00012C15.8661 6.00012 19.0001 9.13412 19.0001 13.0001ZM5.2826 2.74707L1.74707 6.2826L3.16128 7.69682L6.69682 4.16128L5.2826 2.74707ZM22.2532 6.2826L18.7176 2.74707L17.3034 4.16128L20.839 7.69682L22.2532 6.2826ZM9 11H12.5858L9 14.5858V17H15V15H11.4142L15 11.4142V9H9V11Z"/></svg> \ No newline at end of file diff --git a/client/packages/lowcoder-design/src/icons/remix/alibaba-cloud-fill.svg b/client/packages/lowcoder-design/src/icons/remix/alibaba-cloud-fill.svg new file mode 100644 index 0000000000..0365782e44 --- /dev/null +++ b/client/packages/lowcoder-design/src/icons/remix/alibaba-cloud-fill.svg @@ -0,0 +1 @@ +<svg viewBox="0 0 24 24" fill="currentColor" xmlns="http://www.w3.org/2000/svg"><path d="M9.51445 5.14H4.67954C3.70366 5.14 2.76776 5.52766 2.07771 6.21771C1.38766 6.90776 1 7.84366 1 8.81954V15.1778C1 16.1537 1.38766 17.0896 2.07771 17.7796C2.76776 18.4697 3.70366 18.8573 4.67954 18.8573H9.52917L8.35908 17.2015L4.82304 16.1197C4.51117 16.0203 4.23916 15.8239 4.04659 15.5592C3.85401 15.2945 3.75092 14.9753 3.7523 14.6479V9.37147C3.74976 9.04385 3.85241 8.72406 4.04515 8.45913C4.23789 8.19419 4.51055 7.99809 4.82304 7.89965L8.35908 6.79579L9.51445 5.14ZM19.3388 5.14H14.4892L15.6593 6.79579L19.1953 7.89965C19.5074 7.99822 19.7796 8.19447 19.9717 8.45947C20.1638 8.72446 20.2657 9.04418 20.2624 9.37147V14.6479C20.2646 14.9749 20.1622 15.2941 19.9703 15.5589C19.7783 15.8236 19.5068 16.0202 19.1953 16.1197L15.6593 17.2015L14.4892 18.8573H19.3388C19.8213 18.8578 20.2991 18.7628 20.7447 18.5779C21.1903 18.3929 21.5949 18.1216 21.9352 17.7796C22.2755 17.4376 22.5448 17.0316 22.7275 16.5851C22.9103 16.1385 23.0028 15.6603 22.9999 15.1778V8.81954C22.9999 7.84684 22.6148 6.91372 21.9287 6.22419C21.2427 5.53467 20.3115 5.14486 19.3388 5.14ZM15.6666 11.1376H8.33698V12.7897H15.6666V11.1376Z"/></svg> \ No newline at end of file diff --git a/client/packages/lowcoder-design/src/icons/remix/alibaba-cloud-line.svg b/client/packages/lowcoder-design/src/icons/remix/alibaba-cloud-line.svg new file mode 100644 index 0000000000..1a273433ae --- /dev/null +++ b/client/packages/lowcoder-design/src/icons/remix/alibaba-cloud-line.svg @@ -0,0 +1 @@ +<svg viewBox="0 0 24 24" fill="currentColor" xmlns="http://www.w3.org/2000/svg"><path d="M5 5C2.79086 5 1 6.79086 1 9V15C1 17.2091 2.79086 19 5 19H9L8 17H5C3.89543 17 3 16.1046 3 15V9C3 7.89543 3.89543 7 5 7H8L9 5H5ZM16 7H19C20.1046 7 21 7.89543 21 9V15C21 16.1046 20.1046 17 19 17H16L15 19H19C21.2091 19 23 17.2091 23 15V9C23 6.79086 21.2091 5 19 5H15L16 7ZM8 13H16V11H8V13Z"/></svg> \ No newline at end of file diff --git a/client/packages/lowcoder-design/src/icons/remix/align-item-bottom-fill.svg b/client/packages/lowcoder-design/src/icons/remix/align-item-bottom-fill.svg new file mode 100644 index 0000000000..4fc13b7374 --- /dev/null +++ b/client/packages/lowcoder-design/src/icons/remix/align-item-bottom-fill.svg @@ -0,0 +1 @@ +<svg viewBox="0 0 24 24" fill="currentColor" xmlns="http://www.w3.org/2000/svg"><path d="M4 4C4 3.44772 4.44772 3 5 3H10C10.5523 3 11 3.44772 11 4L11 16C11 16.5523 10.5523 17 10 17H5C4.44772 17 4 16.5523 4 16L4 4ZM14 7C13.4477 7 13 7.44772 13 8V16C13 16.5523 13.4477 17 14 17H19C19.5523 17 20 16.5523 20 16V8C20 7.44772 19.5523 7 19 7L14 7ZM21 19L3 19V21H21V19Z"/></svg> \ No newline at end of file diff --git a/client/packages/lowcoder-design/src/icons/remix/align-item-bottom-line.svg b/client/packages/lowcoder-design/src/icons/remix/align-item-bottom-line.svg new file mode 100644 index 0000000000..6f9a7d3b16 --- /dev/null +++ b/client/packages/lowcoder-design/src/icons/remix/align-item-bottom-line.svg @@ -0,0 +1 @@ +<svg viewBox="0 0 24 24" fill="currentColor" xmlns="http://www.w3.org/2000/svg"><path d="M9 5L9 15H6L6 5L9 5ZM5 3C4.44772 3 4 3.44772 4 4L4 16C4 16.5523 4.44772 17 5 17H10C10.5523 17 11 16.5523 11 16L11 4C11 3.44772 10.5523 3 10 3H5ZM15 9V15H18V9H15ZM13 8C13 7.44772 13.4477 7 14 7L19 7C19.5523 7 20 7.44772 20 8V16C20 16.5523 19.5523 17 19 17H14C13.4477 17 13 16.5523 13 16V8ZM21 19L3 19V21H21V19Z"/></svg> \ No newline at end of file diff --git a/client/packages/lowcoder-design/src/icons/remix/align-item-horizontal-center-fill.svg b/client/packages/lowcoder-design/src/icons/remix/align-item-horizontal-center-fill.svg new file mode 100644 index 0000000000..4ee53f0c8e --- /dev/null +++ b/client/packages/lowcoder-design/src/icons/remix/align-item-horizontal-center-fill.svg @@ -0,0 +1 @@ +<svg viewBox="0 0 24 24" fill="currentColor" xmlns="http://www.w3.org/2000/svg"><path d="M11 4V2H13V4H19C19.5523 4 20 4.44772 20 5V10C20 10.5523 19.5523 11 19 11H13V13H17C17.5523 13 18 13.4477 18 14V19C18 19.5523 17.5523 20 17 20H13V22H11V20H7C6.44772 20 6 19.5523 6 19V14C6 13.4477 6.44772 13 7 13H11V11H5C4.44772 11 4 10.5523 4 10V5C4 4.44772 4.44772 4 5 4H11Z"/></svg> \ No newline at end of file diff --git a/client/packages/lowcoder-design/src/icons/remix/align-item-horizontal-center-line.svg b/client/packages/lowcoder-design/src/icons/remix/align-item-horizontal-center-line.svg new file mode 100644 index 0000000000..42019219e3 --- /dev/null +++ b/client/packages/lowcoder-design/src/icons/remix/align-item-horizontal-center-line.svg @@ -0,0 +1 @@ +<svg viewBox="0 0 24 24" fill="currentColor" xmlns="http://www.w3.org/2000/svg"><path d="M11 4V2H13V4H19C19.5523 4 20 4.44772 20 5V10C20 10.5523 19.5523 11 19 11H13V13H17C17.5523 13 18 13.4477 18 14V19C18 19.5523 17.5523 20 17 20H13V22H11V20H7C6.44772 20 6 19.5523 6 19V14C6 13.4477 6.44772 13 7 13H11V11H5C4.44772 11 4 10.5523 4 10V5C4 4.44772 4.44772 4 5 4H11ZM8 15V18H16V15H8ZM6 9H18V6H6V9Z"/></svg> \ No newline at end of file diff --git a/client/packages/lowcoder-design/src/icons/remix/align-item-left-fill.svg b/client/packages/lowcoder-design/src/icons/remix/align-item-left-fill.svg new file mode 100644 index 0000000000..48731721bb --- /dev/null +++ b/client/packages/lowcoder-design/src/icons/remix/align-item-left-fill.svg @@ -0,0 +1 @@ +<svg viewBox="0 0 24 24" fill="currentColor" xmlns="http://www.w3.org/2000/svg"><path d="M3 21V3H5V21H3ZM7 14C7 13.4477 7.44772 13 8 13H16C16.5523 13 17 13.4477 17 14V19C17 19.5523 16.5523 20 16 20H8C7.44772 20 7 19.5523 7 19V14ZM8 4C7.44772 4 7 4.44772 7 5V10C7 10.5523 7.44772 11 8 11H20C20.5523 11 21 10.5523 21 10V5C21 4.44772 20.5523 4 20 4H8Z"/></svg> \ No newline at end of file diff --git a/client/packages/lowcoder-design/src/icons/remix/align-item-left-line.svg b/client/packages/lowcoder-design/src/icons/remix/align-item-left-line.svg new file mode 100644 index 0000000000..98172d2a7d --- /dev/null +++ b/client/packages/lowcoder-design/src/icons/remix/align-item-left-line.svg @@ -0,0 +1 @@ +<svg viewBox="0 0 24 24" fill="currentColor" xmlns="http://www.w3.org/2000/svg"><path d="M3 21V3H5V21H3ZM9 15H15V18H9V15ZM8 13C7.44772 13 7 13.4477 7 14V19C7 19.5523 7.44772 20 8 20H16C16.5523 20 17 19.5523 17 19V14C17 13.4477 16.5523 13 16 13H8ZM9 9H19V6H9V9ZM7 5C7 4.44772 7.44772 4 8 4H20C20.5523 4 21 4.44772 21 5V10C21 10.5523 20.5523 11 20 11H8C7.44772 11 7 10.5523 7 10V5Z"/></svg> \ No newline at end of file diff --git a/client/packages/lowcoder-design/src/icons/remix/align-item-right-fill.svg b/client/packages/lowcoder-design/src/icons/remix/align-item-right-fill.svg new file mode 100644 index 0000000000..b9828b3567 --- /dev/null +++ b/client/packages/lowcoder-design/src/icons/remix/align-item-right-fill.svg @@ -0,0 +1 @@ +<svg viewBox="0 0 24 24" fill="currentColor" xmlns="http://www.w3.org/2000/svg"><path d="M19 21V3H21V21H19ZM7 14C7 13.4477 7.44772 13 8 13H16C16.5523 13 17 13.4477 17 14V19C17 19.5523 16.5523 20 16 20H8C7.44772 20 7 19.5523 7 19V14ZM4 4C3.44772 4 3 4.44772 3 5V10C3 10.5523 3.44772 11 4 11H16C16.5523 11 17 10.5523 17 10V5C17 4.44772 16.5523 4 16 4H4Z"/></svg> \ No newline at end of file diff --git a/client/packages/lowcoder-design/src/icons/remix/align-item-right-line.svg b/client/packages/lowcoder-design/src/icons/remix/align-item-right-line.svg new file mode 100644 index 0000000000..94a34b9d24 --- /dev/null +++ b/client/packages/lowcoder-design/src/icons/remix/align-item-right-line.svg @@ -0,0 +1 @@ +<svg viewBox="0 0 24 24" fill="currentColor" xmlns="http://www.w3.org/2000/svg"><path d="M19 21V3H21V21H19ZM9 15H15V18H9V15ZM8 13C7.44772 13 7 13.4477 7 14V19C7 19.5523 7.44772 20 8 20H16C16.5523 20 17 19.5523 17 19V14C17 13.4477 16.5523 13 16 13H8ZM5 9H15V6H5V9ZM3 5C3 4.44772 3.44772 4 4 4H16C16.5523 4 17 4.44772 17 5V10C17 10.5523 16.5523 11 16 11H4C3.44772 11 3 10.5523 3 10V5Z"/></svg> \ No newline at end of file diff --git a/client/packages/lowcoder-design/src/icons/remix/align-item-top-fill.svg b/client/packages/lowcoder-design/src/icons/remix/align-item-top-fill.svg new file mode 100644 index 0000000000..947b17dccb --- /dev/null +++ b/client/packages/lowcoder-design/src/icons/remix/align-item-top-fill.svg @@ -0,0 +1 @@ +<svg viewBox="0 0 24 24" fill="currentColor" xmlns="http://www.w3.org/2000/svg"><path d="M21 3H3V5L21 5V3ZM14 7C13.4477 7 13 7.44772 13 8V16C13 16.5523 13.4477 17 14 17H19C19.5523 17 20 16.5523 20 16V8C20 7.44772 19.5523 7 19 7L14 7ZM4 8C4 7.44772 4.44772 7 5 7L10 7C10.5523 7 11 7.44772 11 8L11 20C11 20.5523 10.5523 21 10 21H5C4.44772 21 4 20.5523 4 20L4 8Z"/></svg> \ No newline at end of file diff --git a/client/packages/lowcoder-design/src/icons/remix/align-item-top-line.svg b/client/packages/lowcoder-design/src/icons/remix/align-item-top-line.svg new file mode 100644 index 0000000000..51872b52fd --- /dev/null +++ b/client/packages/lowcoder-design/src/icons/remix/align-item-top-line.svg @@ -0,0 +1 @@ +<svg viewBox="0 0 24 24" fill="currentColor" xmlns="http://www.w3.org/2000/svg"><path d="M21 3H3V5L21 5V3ZM15 9V15H18V9H15ZM13 8C13 7.44772 13.4477 7 14 7L19 7C19.5523 7 20 7.44772 20 8V16C20 16.5523 19.5523 17 19 17H14C13.4477 17 13 16.5523 13 16V8ZM9 9L9 19H6L6 9H9ZM5 7C4.44772 7 4 7.44772 4 8L4 20C4 20.5523 4.44772 21 5 21H10C10.5523 21 11 20.5523 11 20L11 8C11 7.44772 10.5523 7 10 7L5 7Z"/></svg> \ No newline at end of file diff --git a/client/packages/lowcoder-design/src/icons/remix/align-item-vertical-center-fill.svg b/client/packages/lowcoder-design/src/icons/remix/align-item-vertical-center-fill.svg new file mode 100644 index 0000000000..c13c71413e --- /dev/null +++ b/client/packages/lowcoder-design/src/icons/remix/align-item-vertical-center-fill.svg @@ -0,0 +1 @@ +<svg viewBox="0 0 24 24" fill="currentColor" xmlns="http://www.w3.org/2000/svg"><path d="M4 19C4 19.5523 4.44772 20 5 20H10C10.5523 20 11 19.5523 11 19V13H13V17C13 17.5523 13.4477 18 14 18H19C19.5523 18 20 17.5523 20 17V13H22V11H20V7C20 6.44772 19.5523 6 19 6L14 6C13.4477 6 13 6.44772 13 7V11H11V5C11 4.44771 10.5523 4 10 4H5C4.44771 4 4 4.44772 4 5L4 11H2V13H4L4 19Z"/></svg> \ No newline at end of file diff --git a/client/packages/lowcoder-design/src/icons/remix/align-item-vertical-center-line.svg b/client/packages/lowcoder-design/src/icons/remix/align-item-vertical-center-line.svg new file mode 100644 index 0000000000..5bcc8e843d --- /dev/null +++ b/client/packages/lowcoder-design/src/icons/remix/align-item-vertical-center-line.svg @@ -0,0 +1 @@ +<svg viewBox="0 0 24 24" fill="currentColor" xmlns="http://www.w3.org/2000/svg"><path d="M9 18L9 6L6 6L6 18H9ZM5 20C4.44772 20 4 19.5523 4 19L4 13H2V11H4L4 5C4 4.44771 4.44771 4 5 4H10C10.5523 4 11 4.44771 11 5V11H13V7C13 6.44771 13.4477 6 14 6L19 6C19.5523 6 20 6.44772 20 7V11H22V13H20V17C20 17.5523 19.5523 18 19 18H14C13.4477 18 13 17.5523 13 17V13H11V19C11 19.5523 10.5523 20 10 20H5ZM15 16H18V8L15 8V16Z"/></svg> \ No newline at end of file diff --git a/client/packages/lowcoder-design/src/icons/remix/anthropic-fill.svg b/client/packages/lowcoder-design/src/icons/remix/anthropic-fill.svg new file mode 100644 index 0000000000..fc27aa712b --- /dev/null +++ b/client/packages/lowcoder-design/src/icons/remix/anthropic-fill.svg @@ -0,0 +1 @@ +<svg viewBox="0 0 24 24" fill="currentColor" xmlns="http://www.w3.org/2000/svg"><path d="M16.7645 5H13.4568L19.3799 20H22.6107L16.7645 5ZM7.22604 5L1.37988 20H4.68758L5.99527 16.8462H12.1491L13.3799 19.9231H16.6876L10.6876 5H7.30296H7.22604ZM6.91834 14.0769L8.91834 8.76923L10.9953 14.0769H6.99527H6.91834Z"/></svg> \ No newline at end of file diff --git a/client/packages/lowcoder-design/src/icons/remix/anthropic-line.svg b/client/packages/lowcoder-design/src/icons/remix/anthropic-line.svg new file mode 100644 index 0000000000..0235928119 --- /dev/null +++ b/client/packages/lowcoder-design/src/icons/remix/anthropic-line.svg @@ -0,0 +1 @@ +<svg viewBox="0 0 24 24" fill="currentColor" xmlns="http://www.w3.org/2000/svg"><path d="M14.1219 5H16.2678L22.1012 20H19.9553L14.1219 5ZM7.65986 5H10.3411L16.1103 20H13.9675L12.429 16H5.57192L4.03345 20H1.89062L7.65986 5ZM11.6598 14L9.00047 7.08577L6.34115 14H11.6598Z"/></svg> \ No newline at end of file diff --git a/client/packages/lowcoder-design/src/icons/remix/apps-2-add-fill.svg b/client/packages/lowcoder-design/src/icons/remix/apps-2-add-fill.svg new file mode 100644 index 0000000000..89b019d8d0 --- /dev/null +++ b/client/packages/lowcoder-design/src/icons/remix/apps-2-add-fill.svg @@ -0,0 +1 @@ +<svg viewBox="0 0 24 24" fill="currentColor" xmlns="http://www.w3.org/2000/svg"><path d="M2.5 7C2.5 9.48528 4.51472 11.5 7 11.5C9.48528 11.5 11.5 9.48528 11.5 7C11.5 4.51472 9.48528 2.5 7 2.5C4.51472 2.5 2.5 4.51472 2.5 7ZM2.5 17C2.5 19.4853 4.51472 21.5 7 21.5C9.48528 21.5 11.5 19.4853 11.5 17C11.5 14.5147 9.48528 12.5 7 12.5C4.51472 12.5 2.5 14.5147 2.5 17ZM12.5 17C12.5 19.4853 14.5147 21.5 17 21.5C19.4853 21.5 21.5 19.4853 21.5 17C21.5 14.5147 19.4853 12.5 17 12.5C14.5147 12.5 12.5 14.5147 12.5 17ZM16 11V8H13V6H16V3H18V6H21V8H18V11H16Z"/></svg> \ No newline at end of file diff --git a/client/packages/lowcoder-design/src/icons/remix/apps-2-add-line.svg b/client/packages/lowcoder-design/src/icons/remix/apps-2-add-line.svg new file mode 100644 index 0000000000..2712485591 --- /dev/null +++ b/client/packages/lowcoder-design/src/icons/remix/apps-2-add-line.svg @@ -0,0 +1 @@ +<svg viewBox="0 0 24 24" fill="currentColor" xmlns="http://www.w3.org/2000/svg"><path d="M2.5 7C2.5 9.48528 4.51472 11.5 7 11.5C9.48528 11.5 11.5 9.48528 11.5 7C11.5 4.51472 9.48528 2.5 7 2.5C4.51472 2.5 2.5 4.51472 2.5 7ZM2.5 17C2.5 19.4853 4.51472 21.5 7 21.5C9.48528 21.5 11.5 19.4853 11.5 17C11.5 14.5147 9.48528 12.5 7 12.5C4.51472 12.5 2.5 14.5147 2.5 17ZM12.5 17C12.5 19.4853 14.5147 21.5 17 21.5C19.4853 21.5 21.5 19.4853 21.5 17C21.5 14.5147 19.4853 12.5 17 12.5C14.5147 12.5 12.5 14.5147 12.5 17ZM9.5 7C9.5 8.38071 8.38071 9.5 7 9.5C5.61929 9.5 4.5 8.38071 4.5 7C4.5 5.61929 5.61929 4.5 7 4.5C8.38071 4.5 9.5 5.61929 9.5 7ZM9.5 17C9.5 18.3807 8.38071 19.5 7 19.5C5.61929 19.5 4.5 18.3807 4.5 17C4.5 15.6193 5.61929 14.5 7 14.5C8.38071 14.5 9.5 15.6193 9.5 17ZM19.5 17C19.5 18.3807 18.3807 19.5 17 19.5C15.6193 19.5 14.5 18.3807 14.5 17C14.5 15.6193 15.6193 14.5 17 14.5C18.3807 14.5 19.5 15.6193 19.5 17ZM16 11V8H13V6H16V3H18V6H21V8H18V11H16Z"/></svg> \ No newline at end of file diff --git a/client/packages/lowcoder-design/src/icons/remix/apps-2-ai-fill.svg b/client/packages/lowcoder-design/src/icons/remix/apps-2-ai-fill.svg new file mode 100644 index 0000000000..0d14e9ac59 --- /dev/null +++ b/client/packages/lowcoder-design/src/icons/remix/apps-2-ai-fill.svg @@ -0,0 +1 @@ +<svg viewBox="0 0 24 24" fill="currentColor" xmlns="http://www.w3.org/2000/svg"><path d="M2.5 7C2.5 9.48528 4.51472 11.5 7 11.5C9.48528 11.5 11.5 9.48528 11.5 7C11.5 4.51472 9.48528 2.5 7 2.5C4.51472 2.5 2.5 4.51472 2.5 7ZM2.5 17C2.5 19.4853 4.51472 21.5 7 21.5C9.48528 21.5 11.5 19.4853 11.5 17C11.5 14.5147 9.48528 12.5 7 12.5C4.51472 12.5 2.5 14.5147 2.5 17ZM12.5 17C12.5 19.4853 14.5147 21.5 17 21.5C19.4853 21.5 21.5 19.4853 21.5 17C21.5 14.5147 19.4853 12.5 17 12.5C14.5147 12.5 12.5 14.5147 12.5 17ZM17.5252 11.155L17.8026 10.5186C18.297 9.38398 19.1876 8.48059 20.2988 7.98638L21.1534 7.60631C21.6155 7.4008 21.6155 6.7284 21.1534 6.52289L20.3467 6.16406C19.2068 5.65713 18.3002 4.72031 17.8143 3.54712L17.5295 2.85945C17.3309 2.38018 16.669 2.38018 16.4705 2.85945L16.1856 3.54712C15.6997 4.72031 14.7932 5.65713 13.6534 6.16406L12.8466 6.52289C12.3845 6.7284 12.3845 7.4008 12.8466 7.60631L13.7011 7.98638C14.8124 8.48059 15.7029 9.38398 16.1974 10.5186L16.4748 11.155C16.6778 11.6209 17.3222 11.6209 17.5252 11.155Z"/></svg> \ No newline at end of file diff --git a/client/packages/lowcoder-design/src/icons/remix/apps-2-ai-line.svg b/client/packages/lowcoder-design/src/icons/remix/apps-2-ai-line.svg new file mode 100644 index 0000000000..8120843ded --- /dev/null +++ b/client/packages/lowcoder-design/src/icons/remix/apps-2-ai-line.svg @@ -0,0 +1 @@ +<svg viewBox="0 0 24 24" fill="currentColor" xmlns="http://www.w3.org/2000/svg"><path d="M2.5 7C2.5 9.48528 4.51472 11.5 7 11.5C9.48528 11.5 11.5 9.48528 11.5 7C11.5 4.51472 9.48528 2.5 7 2.5C4.51472 2.5 2.5 4.51472 2.5 7ZM2.5 17C2.5 19.4853 4.51472 21.5 7 21.5C9.48528 21.5 11.5 19.4853 11.5 17C11.5 14.5147 9.48528 12.5 7 12.5C4.51472 12.5 2.5 14.5147 2.5 17ZM12.5 17C12.5 19.4853 14.5147 21.5 17 21.5C19.4853 21.5 21.5 19.4853 21.5 17C21.5 14.5147 19.4853 12.5 17 12.5C14.5147 12.5 12.5 14.5147 12.5 17ZM9.5 7C9.5 8.38071 8.38071 9.5 7 9.5C5.61929 9.5 4.5 8.38071 4.5 7C4.5 5.61929 5.61929 4.5 7 4.5C8.38071 4.5 9.5 5.61929 9.5 7ZM9.5 17C9.5 18.3807 8.38071 19.5 7 19.5C5.61929 19.5 4.5 18.3807 4.5 17C4.5 15.6193 5.61929 14.5 7 14.5C8.38071 14.5 9.5 15.6193 9.5 17ZM19.5 17C19.5 18.3807 18.3807 19.5 17 19.5C15.6193 19.5 14.5 18.3807 14.5 17C14.5 15.6193 15.6193 14.5 17 14.5C18.3807 14.5 19.5 15.6193 19.5 17ZM17.5252 11.155L17.8026 10.5186C18.297 9.38398 19.1876 8.48059 20.2988 7.98638L21.1534 7.60631C21.6155 7.4008 21.6155 6.7284 21.1534 6.52289L20.3467 6.16406C19.2068 5.65713 18.3002 4.72031 17.8143 3.54712L17.5295 2.85945C17.3309 2.38018 16.669 2.38018 16.4705 2.85945L16.1856 3.54712C15.6997 4.72031 14.7932 5.65713 13.6534 6.16406L12.8466 6.52289C12.3845 6.7284 12.3845 7.4008 12.8466 7.60631L13.7011 7.98638C14.8124 8.48059 15.7029 9.38398 16.1974 10.5186L16.4748 11.155C16.6778 11.6209 17.3222 11.6209 17.5252 11.155Z"/></svg> \ No newline at end of file diff --git a/client/packages/lowcoder-design/src/icons/remix/arrow-down-box-fill.svg b/client/packages/lowcoder-design/src/icons/remix/arrow-down-box-fill.svg new file mode 100644 index 0000000000..c35478490d --- /dev/null +++ b/client/packages/lowcoder-design/src/icons/remix/arrow-down-box-fill.svg @@ -0,0 +1 @@ +<svg viewBox="0 0 24 24" fill="currentColor" xmlns="http://www.w3.org/2000/svg"><path d="M4 3C3.44772 3 3 3.44772 3 4V20C3 20.5523 3.44772 21 4 21H20C20.5523 21 21 20.5523 21 20V4C21 3.44772 20.5523 3 20 3H4ZM11.9996 17.656L6.0498 11.7062H10.9996V6.34229H12.9996V11.7062H17.9493L11.9996 17.656Z"/></svg> \ No newline at end of file diff --git a/client/packages/lowcoder-design/src/icons/remix/arrow-down-box-line.svg b/client/packages/lowcoder-design/src/icons/remix/arrow-down-box-line.svg new file mode 100644 index 0000000000..c3c4882699 --- /dev/null +++ b/client/packages/lowcoder-design/src/icons/remix/arrow-down-box-line.svg @@ -0,0 +1 @@ +<svg viewBox="0 0 24 24" fill="currentColor" xmlns="http://www.w3.org/2000/svg"><path d="M20 3H4C3.44772 3 3 3.44772 3 4V20C3 20.5523 3.44772 21 4 21H20C20.5523 21 21 20.5523 21 20V4C21 3.44772 20.5523 3 20 3ZM5 19V5H19V19H5ZM11.0005 6.34375V13.829L7.75789 10.5864L6.34367 12.0006L12.0005 17.6575L17.6574 12.0006L16.2432 10.5864L13.0005 13.829V6.34375H11.0005Z"/></svg> \ No newline at end of file diff --git a/client/packages/lowcoder-design/src/icons/remix/arrow-down-double-fill.svg b/client/packages/lowcoder-design/src/icons/remix/arrow-down-double-fill.svg index 196fb72c80..60d3e0767b 100644 --- a/client/packages/lowcoder-design/src/icons/remix/arrow-down-double-fill.svg +++ b/client/packages/lowcoder-design/src/icons/remix/arrow-down-double-fill.svg @@ -1 +1 @@ -<svg viewBox="0 0 24 24" fill="currentColor" xmlns="http://www.w3.org/2000/svg"><path d="M12 19.1642L18.2071 12.9571L16.7929 11.5429L12 16.3358L7.20711 11.5429L5.79289 12.9571L12 19.1642ZM12 13.5143L18.2071 7.30722L16.7929 5.89301L12 10.6859L7.20711 5.89301L5.79289 7.30722L12 13.5143Z"/></svg> \ No newline at end of file +<svg viewBox="0 0 24 24" fill="currentColor" xmlns="http://www.w3.org/2000/svg"><path d="M12 19.1642L18.2071 12.9571L16.7929 11.5429L12 16.3358L7.20712 11.5429L5.79291 12.9571L12 19.1642ZM12 13.5143L18.2071 7.30722L16.7929 5.89301L12 10.6859L7.20712 5.89301L5.79291 7.30722L12 13.5143Z"/></svg> \ No newline at end of file diff --git a/client/packages/lowcoder-design/src/icons/remix/arrow-down-double-line.svg b/client/packages/lowcoder-design/src/icons/remix/arrow-down-double-line.svg index 196fb72c80..60d3e0767b 100644 --- a/client/packages/lowcoder-design/src/icons/remix/arrow-down-double-line.svg +++ b/client/packages/lowcoder-design/src/icons/remix/arrow-down-double-line.svg @@ -1 +1 @@ -<svg viewBox="0 0 24 24" fill="currentColor" xmlns="http://www.w3.org/2000/svg"><path d="M12 19.1642L18.2071 12.9571L16.7929 11.5429L12 16.3358L7.20711 11.5429L5.79289 12.9571L12 19.1642ZM12 13.5143L18.2071 7.30722L16.7929 5.89301L12 10.6859L7.20711 5.89301L5.79289 7.30722L12 13.5143Z"/></svg> \ No newline at end of file +<svg viewBox="0 0 24 24" fill="currentColor" xmlns="http://www.w3.org/2000/svg"><path d="M12 19.1642L18.2071 12.9571L16.7929 11.5429L12 16.3358L7.20712 11.5429L5.79291 12.9571L12 19.1642ZM12 13.5143L18.2071 7.30722L16.7929 5.89301L12 10.6859L7.20712 5.89301L5.79291 7.30722L12 13.5143Z"/></svg> \ No newline at end of file diff --git a/client/packages/lowcoder-design/src/icons/remix/arrow-left-box-fill.svg b/client/packages/lowcoder-design/src/icons/remix/arrow-left-box-fill.svg new file mode 100644 index 0000000000..0d69d3f436 --- /dev/null +++ b/client/packages/lowcoder-design/src/icons/remix/arrow-left-box-fill.svg @@ -0,0 +1 @@ +<svg viewBox="0 0 24 24" fill="currentColor" xmlns="http://www.w3.org/2000/svg"><path d="M4 3C3.44772 3 3 3.44772 3 4V20C3 20.5523 3.44772 21 4 21H20C20.5523 21 21 20.5523 21 20V4C21 3.44772 20.5523 3 20 3H4ZM6.34277 11.9996L12.2925 6.0498V10.9996H17.6565V12.9996H12.2925V17.9493L6.34277 11.9996Z"/></svg> \ No newline at end of file diff --git a/client/packages/lowcoder-design/src/icons/remix/arrow-left-box-line.svg b/client/packages/lowcoder-design/src/icons/remix/arrow-left-box-line.svg new file mode 100644 index 0000000000..bb88b96e47 --- /dev/null +++ b/client/packages/lowcoder-design/src/icons/remix/arrow-left-box-line.svg @@ -0,0 +1 @@ +<svg viewBox="0 0 24 24" fill="currentColor" xmlns="http://www.w3.org/2000/svg"><path d="M20 3H4C3.44772 3 3 3.44772 3 4V20C3 20.5523 3.44772 21 4 21H20C20.5523 21 21 20.5523 21 20V4C21 3.44772 20.5523 3 20 3ZM5 19V5H19V19H5ZM6.3436 12.001L12.0005 6.34412L13.4147 7.75834L10.172 11.001H17.6573V13.001H10.172L13.4147 16.2436L12.0005 17.6578L6.3436 12.001Z"/></svg> \ No newline at end of file diff --git a/client/packages/lowcoder-design/src/icons/remix/arrow-left-double-fill.svg b/client/packages/lowcoder-design/src/icons/remix/arrow-left-double-fill.svg index 48ae6cefd5..d2b489d5d9 100644 --- a/client/packages/lowcoder-design/src/icons/remix/arrow-left-double-fill.svg +++ b/client/packages/lowcoder-design/src/icons/remix/arrow-left-double-fill.svg @@ -1 +1 @@ -<svg viewBox="0 0 24 24" fill="currentColor" xmlns="http://www.w3.org/2000/svg"><path d="M4.83578 12L11.0429 18.2071L12.4571 16.7929L7.66421 12L12.4571 7.20712L11.0429 5.79291L4.83578 12ZM10.4857 12L16.6928 18.2071L18.107 16.7929L13.3141 12L18.107 7.20712L16.6928 5.79291L10.4857 12Z"/></svg> \ No newline at end of file +<svg viewBox="0 0 24 24" fill="currentColor" xmlns="http://www.w3.org/2000/svg"><path d="M4.83582 12L11.0429 18.2071L12.4571 16.7929L7.66424 12L12.4571 7.20712L11.0429 5.79291L4.83582 12ZM10.4857 12L16.6928 18.2071L18.107 16.7929L13.3141 12L18.107 7.20712L16.6928 5.79291L10.4857 12Z"/></svg> \ No newline at end of file diff --git a/client/packages/lowcoder-design/src/icons/remix/arrow-left-double-line.svg b/client/packages/lowcoder-design/src/icons/remix/arrow-left-double-line.svg index 48ae6cefd5..d2b489d5d9 100644 --- a/client/packages/lowcoder-design/src/icons/remix/arrow-left-double-line.svg +++ b/client/packages/lowcoder-design/src/icons/remix/arrow-left-double-line.svg @@ -1 +1 @@ -<svg viewBox="0 0 24 24" fill="currentColor" xmlns="http://www.w3.org/2000/svg"><path d="M4.83578 12L11.0429 18.2071L12.4571 16.7929L7.66421 12L12.4571 7.20712L11.0429 5.79291L4.83578 12ZM10.4857 12L16.6928 18.2071L18.107 16.7929L13.3141 12L18.107 7.20712L16.6928 5.79291L10.4857 12Z"/></svg> \ No newline at end of file +<svg viewBox="0 0 24 24" fill="currentColor" xmlns="http://www.w3.org/2000/svg"><path d="M4.83582 12L11.0429 18.2071L12.4571 16.7929L7.66424 12L12.4571 7.20712L11.0429 5.79291L4.83582 12ZM10.4857 12L16.6928 18.2071L18.107 16.7929L13.3141 12L18.107 7.20712L16.6928 5.79291L10.4857 12Z"/></svg> \ No newline at end of file diff --git a/client/packages/lowcoder-design/src/icons/remix/arrow-left-down-box-fill.svg b/client/packages/lowcoder-design/src/icons/remix/arrow-left-down-box-fill.svg new file mode 100644 index 0000000000..60d068aa37 --- /dev/null +++ b/client/packages/lowcoder-design/src/icons/remix/arrow-left-down-box-fill.svg @@ -0,0 +1 @@ +<svg viewBox="0 0 24 24" fill="currentColor" xmlns="http://www.w3.org/2000/svg"><path d="M4 3C3.44772 3 3 3.44772 3 4V20C3 20.5523 3.44772 21 4 21H20C20.5523 21 21 20.5523 21 20V4C21 3.44772 20.5523 3 20 3H4ZM8 15.9991V7.58489L11.5 11.0849L15.2929 7.29199L16.7071 8.70621L12.9142 12.4991L16.4142 15.9991H8Z"/></svg> \ No newline at end of file diff --git a/client/packages/lowcoder-design/src/icons/remix/arrow-left-down-box-line.svg b/client/packages/lowcoder-design/src/icons/remix/arrow-left-down-box-line.svg new file mode 100644 index 0000000000..939b918471 --- /dev/null +++ b/client/packages/lowcoder-design/src/icons/remix/arrow-left-down-box-line.svg @@ -0,0 +1 @@ +<svg viewBox="0 0 24 24" fill="currentColor" xmlns="http://www.w3.org/2000/svg"><path d="M20 3H4C3.44772 3 3 3.44772 3 4V20C3 20.5523 3.44772 21 4 21H20C20.5523 21 21 20.5523 21 20V4C21 3.44772 20.5523 3 20 3ZM5 19V5H19V19H5ZM8 16.001V8.00098H10V12.5868L15.2929 7.29387L16.7071 8.70808L11.4142 14.001H16V16.001H8Z"/></svg> \ No newline at end of file diff --git a/client/packages/lowcoder-design/src/icons/remix/arrow-left-up-box-fill.svg b/client/packages/lowcoder-design/src/icons/remix/arrow-left-up-box-fill.svg new file mode 100644 index 0000000000..9c213bd29b --- /dev/null +++ b/client/packages/lowcoder-design/src/icons/remix/arrow-left-up-box-fill.svg @@ -0,0 +1 @@ +<svg viewBox="0 0 24 24" fill="currentColor" xmlns="http://www.w3.org/2000/svg"><path d="M4 3C3.44772 3 3 3.44772 3 4V20C3 20.5523 3.44772 21 4 21H20C20.5523 21 21 20.5523 21 20V4C21 3.44772 20.5523 3 20 3H4ZM8 8H16.4142L12.9142 11.5L16.7071 15.2929L15.2929 16.7071L11.5 12.9142L8 16.4142V8Z"/></svg> \ No newline at end of file diff --git a/client/packages/lowcoder-design/src/icons/remix/arrow-left-up-box-line.svg b/client/packages/lowcoder-design/src/icons/remix/arrow-left-up-box-line.svg new file mode 100644 index 0000000000..f514b04dae --- /dev/null +++ b/client/packages/lowcoder-design/src/icons/remix/arrow-left-up-box-line.svg @@ -0,0 +1 @@ +<svg viewBox="0 0 24 24" fill="currentColor" xmlns="http://www.w3.org/2000/svg"><path d="M20 3H4C3.44772 3 3 3.44772 3 4V20C3 20.5523 3.44772 21 4 21H20C20.5523 21 21 20.5523 21 20V4C21 3.44772 20.5523 3 20 3ZM5 19V5H19V19H5ZM8 8V16H10V11.4142L15.2929 16.7071L16.7071 15.2929L11.4142 10H16V8H8Z"/></svg> \ No newline at end of file diff --git a/client/packages/lowcoder-design/src/icons/remix/arrow-left-wide-fill.svg b/client/packages/lowcoder-design/src/icons/remix/arrow-left-wide-fill.svg index a8d801646f..fd63e92e6a 100644 --- a/client/packages/lowcoder-design/src/icons/remix/arrow-left-wide-fill.svg +++ b/client/packages/lowcoder-design/src/icons/remix/arrow-left-wide-fill.svg @@ -1 +1 @@ -<svg viewBox="0 0 24 24" fill="currentColor" xmlns="http://www.w3.org/2000/svg"><path d="M8.36853 12L13.1162 3.03212L14.8838 3.9679L10.6315 12L14.8838 20.0321L13.1162 20.9679L8.36853 12Z"/></svg> \ No newline at end of file +<svg viewBox="0 0 24 24" fill="currentColor" xmlns="http://www.w3.org/2000/svg"><path d="M8.3685 12L13.1162 3.03212L14.8838 3.9679L10.6315 12L14.8838 20.0321L13.1162 20.9679L8.3685 12Z"/></svg> \ No newline at end of file diff --git a/client/packages/lowcoder-design/src/icons/remix/arrow-left-wide-line.svg b/client/packages/lowcoder-design/src/icons/remix/arrow-left-wide-line.svg index a8d801646f..fd63e92e6a 100644 --- a/client/packages/lowcoder-design/src/icons/remix/arrow-left-wide-line.svg +++ b/client/packages/lowcoder-design/src/icons/remix/arrow-left-wide-line.svg @@ -1 +1 @@ -<svg viewBox="0 0 24 24" fill="currentColor" xmlns="http://www.w3.org/2000/svg"><path d="M8.36853 12L13.1162 3.03212L14.8838 3.9679L10.6315 12L14.8838 20.0321L13.1162 20.9679L8.36853 12Z"/></svg> \ No newline at end of file +<svg viewBox="0 0 24 24" fill="currentColor" xmlns="http://www.w3.org/2000/svg"><path d="M8.3685 12L13.1162 3.03212L14.8838 3.9679L10.6315 12L14.8838 20.0321L13.1162 20.9679L8.3685 12Z"/></svg> \ No newline at end of file diff --git a/client/packages/lowcoder-design/src/icons/remix/arrow-right-box-fill.svg b/client/packages/lowcoder-design/src/icons/remix/arrow-right-box-fill.svg new file mode 100644 index 0000000000..1ea22a404f --- /dev/null +++ b/client/packages/lowcoder-design/src/icons/remix/arrow-right-box-fill.svg @@ -0,0 +1 @@ +<svg viewBox="0 0 24 24" fill="currentColor" xmlns="http://www.w3.org/2000/svg"><path d="M4 3C3.44772 3 3 3.44772 3 4V20C3 20.5523 3.44772 21 4 21H20C20.5523 21 21 20.5523 21 20V4C21 3.44772 20.5523 3 20 3H4ZM17.6575 11.9996L11.7077 17.9493V12.9996H6.34375V10.9996H11.7077V6.0498L17.6575 11.9996Z"/></svg> \ No newline at end of file diff --git a/client/packages/lowcoder-design/src/icons/remix/arrow-right-box-line.svg b/client/packages/lowcoder-design/src/icons/remix/arrow-right-box-line.svg new file mode 100644 index 0000000000..04ab615d73 --- /dev/null +++ b/client/packages/lowcoder-design/src/icons/remix/arrow-right-box-line.svg @@ -0,0 +1 @@ +<svg viewBox="0 0 24 24" fill="currentColor" xmlns="http://www.w3.org/2000/svg"><path d="M20 3H4C3.44772 3 3 3.44772 3 4V20C3 20.5523 3.44772 21 4 21H20C20.5523 21 21 20.5523 21 20V4C21 3.44772 20.5523 3 20 3ZM5 19V5H19V19H5ZM17.6569 12L12 17.6568L10.5858 16.2426L13.8284 13H6.34315V11L13.8284 11L10.5858 7.75732L12 6.34311L17.6569 12Z"/></svg> \ No newline at end of file diff --git a/client/packages/lowcoder-design/src/icons/remix/arrow-right-down-box-fill.svg b/client/packages/lowcoder-design/src/icons/remix/arrow-right-down-box-fill.svg new file mode 100644 index 0000000000..bfe769f374 --- /dev/null +++ b/client/packages/lowcoder-design/src/icons/remix/arrow-right-down-box-fill.svg @@ -0,0 +1 @@ +<svg viewBox="0 0 24 24" fill="currentColor" xmlns="http://www.w3.org/2000/svg"><path d="M4 3C3.44772 3 3 3.44772 3 4V20C3 20.5523 3.44772 21 4 21H20C20.5523 21 21 20.5523 21 20V4C21 3.44772 20.5523 3 20 3H4ZM16.0001 15.9991H7.58586L11.0859 12.4991L7.29297 8.70621L8.70718 7.29199L12.5001 11.0849L16.0001 7.58489V15.9991Z"/></svg> \ No newline at end of file diff --git a/client/packages/lowcoder-design/src/icons/remix/arrow-right-down-box-line.svg b/client/packages/lowcoder-design/src/icons/remix/arrow-right-down-box-line.svg new file mode 100644 index 0000000000..bd9c4626cb --- /dev/null +++ b/client/packages/lowcoder-design/src/icons/remix/arrow-right-down-box-line.svg @@ -0,0 +1 @@ +<svg viewBox="0 0 24 24" fill="currentColor" xmlns="http://www.w3.org/2000/svg"><path d="M20 3H4C3.44772 3 3 3.44772 3 4V20C3 20.5523 3.44772 21 4 21H20C20.5523 21 21 20.5523 21 20V4C21 3.44772 20.5523 3 20 3ZM5 19V5H19V19H5ZM16 16H8V14H12.5858L7.29289 8.70711L8.70711 7.29289L14 12.5858V8H16V16Z"/></svg> \ No newline at end of file diff --git a/client/packages/lowcoder-design/src/icons/remix/arrow-right-up-box-fill.svg b/client/packages/lowcoder-design/src/icons/remix/arrow-right-up-box-fill.svg new file mode 100644 index 0000000000..760b4dd249 --- /dev/null +++ b/client/packages/lowcoder-design/src/icons/remix/arrow-right-up-box-fill.svg @@ -0,0 +1 @@ +<svg viewBox="0 0 24 24" fill="currentColor" xmlns="http://www.w3.org/2000/svg"><path d="M4 3C3.44772 3 3 3.44772 3 4V20C3 20.5523 3.44772 21 4 21H20C20.5523 21 21 20.5523 21 20V4C21 3.44772 20.5523 3 20 3H4ZM16.0001 8V16.4142L12.5001 12.9142L8.70718 16.7071L7.29297 15.2929L11.0859 11.5L7.58586 8H16.0001Z"/></svg> \ No newline at end of file diff --git a/client/packages/lowcoder-design/src/icons/remix/arrow-right-up-box-line.svg b/client/packages/lowcoder-design/src/icons/remix/arrow-right-up-box-line.svg new file mode 100644 index 0000000000..69b11582ab --- /dev/null +++ b/client/packages/lowcoder-design/src/icons/remix/arrow-right-up-box-line.svg @@ -0,0 +1 @@ +<svg viewBox="0 0 24 24" fill="currentColor" xmlns="http://www.w3.org/2000/svg"><path d="M20 3H4C3.44772 3 3 3.44772 3 4V20C3 20.5523 3.44772 21 4 21H20C20.5523 21 21 20.5523 21 20V4C21 3.44772 20.5523 3 20 3ZM5 19V5H19V19H5ZM16 8V16H14V11.4142L8.70711 16.7071L7.29289 15.2929L12.5858 10H8V8H16Z"/></svg> \ No newline at end of file diff --git a/client/packages/lowcoder-design/src/icons/remix/arrow-up-box-fill.svg b/client/packages/lowcoder-design/src/icons/remix/arrow-up-box-fill.svg new file mode 100644 index 0000000000..c5ec4b95a8 --- /dev/null +++ b/client/packages/lowcoder-design/src/icons/remix/arrow-up-box-fill.svg @@ -0,0 +1 @@ +<svg viewBox="0 0 24 24" fill="currentColor" xmlns="http://www.w3.org/2000/svg"><path d="M4 3C3.44772 3 3 3.44772 3 4V20C3 20.5523 3.44772 21 4 21H20C20.5523 21 21 20.5523 21 20V4C21 3.44772 20.5523 3 20 3H4ZM11.9996 6.34326L17.9493 12.293H12.9996V17.657H10.9996V12.293H6.0498L11.9996 6.34326Z"/></svg> \ No newline at end of file diff --git a/client/packages/lowcoder-design/src/icons/remix/arrow-up-box-line.svg b/client/packages/lowcoder-design/src/icons/remix/arrow-up-box-line.svg new file mode 100644 index 0000000000..64d7667da4 --- /dev/null +++ b/client/packages/lowcoder-design/src/icons/remix/arrow-up-box-line.svg @@ -0,0 +1 @@ +<svg viewBox="0 0 24 24" fill="currentColor" xmlns="http://www.w3.org/2000/svg"><path d="M20 3H4C3.44772 3 3 3.44772 3 4V20C3 20.5523 3.44772 21 4 21H20C20.5523 21 21 20.5523 21 20V4C21 3.44772 20.5523 3 20 3ZM5 19V5H19V19H5ZM12 6.34311L6.34315 12L7.75736 13.4142L11 10.1715V17.6568H13V10.1715L16.2426 13.4142L17.6569 12L12 6.34311Z"/></svg> \ No newline at end of file diff --git a/client/packages/lowcoder-design/src/icons/remix/arrow-up-wide-fill.svg b/client/packages/lowcoder-design/src/icons/remix/arrow-up-wide-fill.svg index 53a393175b..ef2b9da3fc 100644 --- a/client/packages/lowcoder-design/src/icons/remix/arrow-up-wide-fill.svg +++ b/client/packages/lowcoder-design/src/icons/remix/arrow-up-wide-fill.svg @@ -1 +1 @@ -<svg viewBox="0 0 24 24" fill="currentColor" xmlns="http://www.w3.org/2000/svg"><path d="M12 8.36853L20.9679 13.1162L20.0321 14.8838L12 10.6315L3.96788 14.8838L3.0321 13.1162L12 8.36853Z"/></svg> \ No newline at end of file +<svg viewBox="0 0 24 24" fill="currentColor" xmlns="http://www.w3.org/2000/svg"><path d="M12 8.36853L20.9679 13.1162L20.0321 14.8838L12 10.6315L3.9679 14.8838L3.03212 13.1162L12 8.36853Z"/></svg> \ No newline at end of file diff --git a/client/packages/lowcoder-design/src/icons/remix/arrow-up-wide-line.svg b/client/packages/lowcoder-design/src/icons/remix/arrow-up-wide-line.svg index 53a393175b..ef2b9da3fc 100644 --- a/client/packages/lowcoder-design/src/icons/remix/arrow-up-wide-line.svg +++ b/client/packages/lowcoder-design/src/icons/remix/arrow-up-wide-line.svg @@ -1 +1 @@ -<svg viewBox="0 0 24 24" fill="currentColor" xmlns="http://www.w3.org/2000/svg"><path d="M12 8.36853L20.9679 13.1162L20.0321 14.8838L12 10.6315L3.96788 14.8838L3.0321 13.1162L12 8.36853Z"/></svg> \ No newline at end of file +<svg viewBox="0 0 24 24" fill="currentColor" xmlns="http://www.w3.org/2000/svg"><path d="M12 8.36853L20.9679 13.1162L20.0321 14.8838L12 10.6315L3.9679 14.8838L3.03212 13.1162L12 8.36853Z"/></svg> \ No newline at end of file diff --git a/client/packages/lowcoder-design/src/icons/remix/bar-chart-box-ai-fill.svg b/client/packages/lowcoder-design/src/icons/remix/bar-chart-box-ai-fill.svg new file mode 100644 index 0000000000..343ea056c8 --- /dev/null +++ b/client/packages/lowcoder-design/src/icons/remix/bar-chart-box-ai-fill.svg @@ -0,0 +1 @@ +<svg viewBox="0 0 24 24" fill="currentColor" xmlns="http://www.w3.org/2000/svg"><path d="M20.7134 8.12811L20.4668 8.69379C20.2864 9.10792 19.7136 9.10792 19.5331 8.69379L19.2866 8.12811C18.8471 7.11947 18.0555 6.31641 17.0677 5.87708L16.308 5.53922C15.8973 5.35653 15.8973 4.75881 16.308 4.57612L17.0252 4.25714C18.0384 3.80651 18.8442 2.97373 19.2761 1.93083L19.5293 1.31953C19.7058 0.893489 20.2942 0.893489 20.4706 1.31953L20.7238 1.93083C21.1558 2.97373 21.9616 3.80651 22.9748 4.25714L23.6919 4.57612C24.1027 4.75881 24.1027 5.35653 23.6919 5.53922L22.9323 5.87708C21.9445 6.31641 21.1529 7.11947 20.7134 8.12811ZM22 20V10.6586C21.3744 10.8797 20.7013 11 20 11C18.9071 11 17.8825 10.7078 17 10.1973V17H15V10H16.6822C15.0655 8.92508 14 7.08697 14 5C14 4.29873 14.1203 3.62556 14.3414 3H3C2.44772 3 2 3.44772 2 4V20C2 20.5523 2.44772 21 3 21H21C21.5523 21 22 20.5523 22 20ZM7 13H9V17H7V13ZM11 7H13V17H11V7Z"/></svg> \ No newline at end of file diff --git a/client/packages/lowcoder-design/src/icons/remix/bar-chart-box-ai-line.svg b/client/packages/lowcoder-design/src/icons/remix/bar-chart-box-ai-line.svg new file mode 100644 index 0000000000..1b4b132986 --- /dev/null +++ b/client/packages/lowcoder-design/src/icons/remix/bar-chart-box-ai-line.svg @@ -0,0 +1 @@ +<svg viewBox="0 0 24 24" fill="currentColor" xmlns="http://www.w3.org/2000/svg"><path d="M20.7134 8.12811L20.4668 8.69379C20.2864 9.10792 19.7136 9.10792 19.5331 8.69379L19.2866 8.12811C18.8471 7.11947 18.0555 6.31641 17.0677 5.87708L16.308 5.53922C15.8973 5.35653 15.8973 4.75881 16.308 4.57612L17.0252 4.25714C18.0384 3.80651 18.8442 2.97373 19.2761 1.93083L19.5293 1.31953C19.7058 0.893489 20.2942 0.893489 20.4706 1.31953L20.7238 1.93083C21.1558 2.97373 21.9616 3.80651 22.9748 4.25714L23.6919 4.57612C24.1027 4.75881 24.1027 5.35653 23.6919 5.53922L22.9323 5.87708C21.9445 6.31641 21.1529 7.11947 20.7134 8.12811ZM2 4C2 3.44772 2.44772 3 3 3H14V5H4V19H20V11H22V20C22 20.5523 21.5523 21 21 21H3C2.44772 21 2 20.5523 2 20V4ZM7 13H9V17H7V13ZM11 7H13V17H11V7ZM15 10H17V17H15V10Z"/></svg> \ No newline at end of file diff --git a/client/packages/lowcoder-design/src/icons/remix/book-shelf-fill.svg b/client/packages/lowcoder-design/src/icons/remix/book-shelf-fill.svg new file mode 100644 index 0000000000..76f96664b7 --- /dev/null +++ b/client/packages/lowcoder-design/src/icons/remix/book-shelf-fill.svg @@ -0,0 +1 @@ +<svg viewBox="0 0 24 24" fill="currentColor" xmlns="http://www.w3.org/2000/svg"><path d="M4 3C3.44772 3 3 3.44772 3 4V20C3 20.5523 3.44772 21 4 21H14C14.5523 21 15 20.5523 15 20V10.6973L17.0215 20.2076C17.1363 20.7479 17.6673 21.0927 18.2075 20.9779L21.142 20.3541C21.6822 20.2393 22.027 19.7083 21.9122 19.1681L19.0015 5.47402C18.8866 4.9338 18.3556 4.58896 17.8154 4.70378L15 5.30221V5C15 4.44772 14.5523 4 14 4H9C9 3.44772 8.55228 3 8 3H4ZM9 6H13V14H9V6ZM13 16V19H9V16H13ZM7 17V19H5V17H7ZM18.7699 18.8137L18.3541 16.8577L19.3323 16.6498L19.748 18.6058L18.7699 18.8137Z"/></svg> \ No newline at end of file diff --git a/client/packages/lowcoder-design/src/icons/remix/book-shelf-line.svg b/client/packages/lowcoder-design/src/icons/remix/book-shelf-line.svg new file mode 100644 index 0000000000..485baadd53 --- /dev/null +++ b/client/packages/lowcoder-design/src/icons/remix/book-shelf-line.svg @@ -0,0 +1 @@ +<svg viewBox="0 0 24 24" fill="currentColor" xmlns="http://www.w3.org/2000/svg"><path d="M4 3C3.44772 3 3 3.44772 3 4V20C3 20.5523 3.44772 21 4 21H14C14.5523 21 15 20.5523 15 20V15.2973L15.9995 19.9996C16.1143 20.5398 16.6454 20.8847 17.1856 20.7699L21.0982 19.9382C21.6384 19.8234 21.9832 19.2924 21.8684 18.7522L18.9576 5.0581C18.8428 4.51788 18.3118 4.17304 17.7716 4.28786L14.9927 4.87853C14.9328 4.38353 14.5112 4 14 4H10C10 3.44772 9.55228 3 9 3H4ZM10 6H13V14H10V6ZM10 19V16H13V19H10ZM8 5V15H5V5H8ZM8 17V19H5V17H8ZM17.3321 16.6496L19.2884 16.2338L19.7042 18.1898L17.7479 18.6057L17.3321 16.6496ZM16.9163 14.6933L15.253 6.86789L17.2092 6.45207L18.8726 14.2775L16.9163 14.6933Z"/></svg> \ No newline at end of file diff --git a/client/packages/lowcoder-design/src/icons/remix/brain-2-fill.svg b/client/packages/lowcoder-design/src/icons/remix/brain-2-fill.svg new file mode 100644 index 0000000000..e8318dac48 --- /dev/null +++ b/client/packages/lowcoder-design/src/icons/remix/brain-2-fill.svg @@ -0,0 +1 @@ +<svg viewBox="0 0 24 24" fill="currentColor" xmlns="http://www.w3.org/2000/svg"><path d="M8.5 2C6.567 2 5 3.567 5 5.5C5 5.68016 5.01364 5.85714 5.03993 6.02997C3.32436 6.25523 2 7.72295 2 9.5C2 10.4793 2.40223 11.3647 3.05051 12C2.40223 12.6353 2 13.5207 2 14.5C2 15.9018 2.82359 17.1104 4.01353 17.6693C4.00457 17.7785 4 17.8888 4 18C4 20.2091 5.79086 22 8 22C9.19469 22 10.2671 21.4762 11 20.6458V3.05051C10.3647 2.40223 9.47934 2 8.5 2ZM13 3.05051V20.6458C13.7329 21.4762 14.8053 22 16 22C18.2091 22 20 20.2091 20 18C20 17.8888 19.9954 17.7785 19.9865 17.6693C21.1764 17.1104 22 15.9018 22 14.5C22 13.5207 21.5978 12.6353 20.9495 12C21.5978 11.3647 22 10.4793 22 9.5C22 7.72295 20.6756 6.25523 18.9601 6.02997C18.9864 5.85714 19 5.68016 19 5.5C19 3.567 17.433 2 15.5 2C14.5207 2 13.6353 2.40223 13 3.05051Z"/></svg> \ No newline at end of file diff --git a/client/packages/lowcoder-design/src/icons/remix/brain-2-line.svg b/client/packages/lowcoder-design/src/icons/remix/brain-2-line.svg new file mode 100644 index 0000000000..07599aed13 --- /dev/null +++ b/client/packages/lowcoder-design/src/icons/remix/brain-2-line.svg @@ -0,0 +1 @@ +<svg viewBox="0 0 24 24" fill="currentColor" xmlns="http://www.w3.org/2000/svg"><path d="M7 6C7 6.23676 7.04072 6.46184 7.11469 6.66999C7.22686 6.98559 7.17357 7.33638 6.97276 7.60444C6.77194 7.8725 6.45026 8.02222 6.11585 8.00327C6.0776 8.0011 6.03898 8 6 8C4.89543 8 4 8.89543 4 10C4 10.5129 4.19174 10.9786 4.50903 11.3331C4.84885 11.7128 4.84885 12.2872 4.50903 12.6669C4.19174 13.0214 4 13.4871 4 14C4 14.8842 4.57447 15.6369 5.37327 15.9001C5.84924 16.057 6.1356 16.5419 6.04308 17.0345C6.01489 17.1846 6 17.3401 6 17.5C6 18.8807 7.11929 20 8.5 20C9.75862 20 10.8015 19.069 10.9746 17.8583C10.9806 17.8165 10.9891 17.7756 11 17.7358V6C11 4.89543 10.1046 4 9 4C7.89543 4 7 4.89543 7 6ZM13 17.7358C13.0109 17.7756 13.0194 17.8165 13.0254 17.8583C13.1985 19.069 14.2414 20 15.5 20C16.8807 20 18 18.8807 18 17.5C18 17.3401 17.9851 17.1846 17.9569 17.0345C17.8644 16.5419 18.1508 16.057 18.6267 15.9001C19.4255 15.6369 20 14.8842 20 14C20 13.4871 19.8083 13.0214 19.491 12.6669C19.1511 12.2872 19.1511 11.7128 19.491 11.3331C19.8083 10.9786 20 10.5129 20 10C20 8.89543 19.1046 8 18 8C17.961 8 17.9224 8.0011 17.8841 8.00327C17.5497 8.02222 17.2281 7.8725 17.0272 7.60444C16.8264 7.33638 16.7731 6.98559 16.8853 6.66999C16.9593 6.46184 17 6.23676 17 6C17 4.89543 16.1046 4 15 4C13.8954 4 13 4.89543 13 6V17.7358ZM9 2C10.1947 2 11.2671 2.52376 12 3.35418C12.7329 2.52376 13.8053 2 15 2C17.2091 2 19 3.79086 19 6C19 6.04198 18.9994 6.08382 18.9981 6.12552C20.7243 6.56889 22 8.13546 22 10C22 10.728 21.8049 11.4116 21.4646 12C21.8049 12.5884 22 13.272 22 14C22 15.4817 21.1949 16.7734 19.9999 17.4646L20 17.5C20 19.9853 17.9853 22 15.5 22C14.0859 22 12.8248 21.3481 12 20.3285C11.1752 21.3481 9.91405 22 8.5 22C6.01472 22 4 19.9853 4 17.5L4.00014 17.4646C2.80512 16.7734 2 15.4817 2 14C2 13.272 2.19513 12.5884 2.53536 12C2.19513 11.4116 2 10.728 2 10C2 8.13546 3.27573 6.56889 5.00194 6.12552C5.00065 6.08382 5 6.04198 5 6C5 3.79086 6.79086 2 9 2Z"/></svg> \ No newline at end of file diff --git a/client/packages/lowcoder-design/src/icons/remix/brush-ai-fill.svg b/client/packages/lowcoder-design/src/icons/remix/brush-ai-fill.svg new file mode 100644 index 0000000000..a5d0321e9e --- /dev/null +++ b/client/packages/lowcoder-design/src/icons/remix/brush-ai-fill.svg @@ -0,0 +1 @@ +<svg viewBox="0 0 24 24" fill="currentColor" xmlns="http://www.w3.org/2000/svg"><path d="M4.7134 7.12811L4.46682 7.69379C4.28637 8.10792 3.71357 8.10792 3.53312 7.69379L3.28656 7.12811C2.84706 6.11947 2.05545 5.31641 1.06767 4.87708L0.308047 4.53922C-0.102682 4.35653 -0.102682 3.75881 0.308047 3.57612L1.0252 3.25714C2.03838 2.80651 2.84417 1.97373 3.27612 0.930828L3.52932 0.319534C3.70578 -0.106511 4.29417 -0.106511 4.47063 0.319534L4.72382 0.930828C5.15577 1.97373 5.96158 2.80651 6.9748 3.25714L7.69188 3.57612C8.10271 3.75881 8.10271 4.35653 7.69188 4.53922L6.93228 4.87708C5.94451 5.31641 5.15288 6.11947 4.7134 7.12811ZM18.2278 2.3713L13.2886 6.21289C9.34224 5.23923 5.55843 7.54646 4.5 11.4966C4.39826 11.8763 4.36647 12.262 4.33317 12.666C4.21829 14.0599 4.08554 15.6707 1 17.9966C3.5 19.4966 8 20.9984 11.5016 20.9984C14.8142 20.9984 17.8463 18.7896 18.7444 15.4377C19.0836 14.1719 19.0778 12.895 18.7847 11.7067L22.6253 6.76879C22.9349 6.3707 22.8997 5.80435 22.543 5.44774L19.5488 2.45355C19.1922 2.09694 18.6259 2.06168 18.2278 2.3713ZM16.8952 8.2852C16.8319 8.21952 16.7673 8.15494 16.7015 8.09149L15.5769 6.96685L18.7589 4.49198L20.5046 6.23774L18.0297 9.41972L16.8952 8.2852Z"/></svg> \ No newline at end of file diff --git a/client/packages/lowcoder-design/src/icons/remix/brush-ai-line.svg b/client/packages/lowcoder-design/src/icons/remix/brush-ai-line.svg new file mode 100644 index 0000000000..d39e9e9048 --- /dev/null +++ b/client/packages/lowcoder-design/src/icons/remix/brush-ai-line.svg @@ -0,0 +1 @@ +<svg viewBox="0 0 24 24" fill="currentColor" xmlns="http://www.w3.org/2000/svg"><path d="M4.7134 7.12811L4.46682 7.69379C4.28637 8.10792 3.71357 8.10792 3.53312 7.69379L3.28656 7.12811C2.84706 6.11947 2.05545 5.31641 1.06767 4.87708L0.308047 4.53922C-0.102682 4.35653 -0.102682 3.75881 0.308047 3.57612L1.0252 3.25714C2.03838 2.80651 2.84417 1.97373 3.27612 0.930828L3.52932 0.319534C3.70578 -0.106511 4.29417 -0.106511 4.47063 0.319534L4.72382 0.930828C5.15577 1.97373 5.96158 2.80651 6.9748 3.25714L7.69188 3.57612C8.10271 3.75881 8.10271 4.35653 7.69188 4.53922L6.93228 4.87708C5.94451 5.31641 5.15288 6.11947 4.7134 7.12811ZM15.3144 9.53285L15.4565 9.67491C16.7513 11.018 17.3306 12.9868 16.8126 14.9201C16.1644 17.3393 13.9702 18.9984 11.5016 18.9984C9.46572 18.9984 6.78847 18.3726 4.5286 17.4841C5.73449 16.0696 6.17423 14.675 6.3285 12.805C6.36574 12.3536 6.38901 12.1741 6.43185 12.0142C7.22541 9.05261 10.0168 7.40515 12.9235 8.18399C13.8549 8.43357 14.6661 8.90783 15.3144 9.53285ZM18.2278 2.3713L13.2886 6.21289C9.34224 5.23923 5.55843 7.54646 4.5 11.4966C4.39826 11.8763 4.36647 12.262 4.33317 12.666C4.21829 14.0599 4.08554 15.6707 1 17.9966C3.5 19.4966 8 20.9984 11.5016 20.9984C14.8142 20.9984 17.8463 18.7896 18.7444 15.4377C19.0836 14.1719 19.0778 12.895 18.7847 11.7067L22.6253 6.76879C22.9349 6.3707 22.8997 5.80435 22.543 5.44774L19.5488 2.45355C19.1922 2.09694 18.6259 2.06168 18.2278 2.3713ZM16.8952 8.2852C16.8319 8.21952 16.7673 8.15494 16.7015 8.09149L15.5769 6.96685L18.7589 4.49198L20.5046 6.23774L18.0297 9.41972L16.8952 8.2852Z"/></svg> \ No newline at end of file diff --git a/client/packages/lowcoder-design/src/icons/remix/camera-ai-fill.svg b/client/packages/lowcoder-design/src/icons/remix/camera-ai-fill.svg new file mode 100644 index 0000000000..c75b1adc5f --- /dev/null +++ b/client/packages/lowcoder-design/src/icons/remix/camera-ai-fill.svg @@ -0,0 +1 @@ +<svg viewBox="0 0 24 24" fill="currentColor" xmlns="http://www.w3.org/2000/svg"><path d="M20.7134 8.12811L20.4668 8.69379C20.2864 9.10792 19.7136 9.10792 19.5331 8.69379L19.2866 8.12811C18.8471 7.11947 18.0555 6.31641 17.0677 5.87708L16.308 5.53922C15.8973 5.35653 15.8973 4.75881 16.308 4.57612L17.0252 4.25714C18.0384 3.80651 18.8442 2.97373 19.2761 1.93083L19.5293 1.31953C19.7058 0.893489 20.2942 0.893489 20.4706 1.31953L20.7238 1.93083C21.1558 2.97373 21.9616 3.80651 22.9748 4.25714L23.6919 4.57612C24.1027 4.75881 24.1027 5.35653 23.6919 5.53922L22.9323 5.87708C21.9445 6.31641 21.1529 7.11947 20.7134 8.12811ZM22 20V10.6586C21.3744 10.8797 20.7013 11 20 11C19.0753 11 18.1994 10.7908 17.4172 10.4172C17.7908 11.1994 18 12.0753 18 13C18 16.3137 15.3137 19 12 19C8.68629 19 6 16.3137 6 13C6 9.68629 8.68629 7 12 7C12.9247 7 13.8006 7.20919 14.5828 7.58283C14.2092 6.80057 14 5.92472 14 5C14 4.29873 14.1203 3.62556 14.3414 3H9L7 5H3C2.44772 5 2 5.44772 2 6V20C2 20.5523 2.44772 21 3 21H21C21.5523 21 22 20.5523 22 20ZM12 17C9.79086 17 8 15.2091 8 13C8 10.7909 9.79086 9 12 9C14.2091 9 16 10.7909 16 13C16 15.2091 14.2091 17 12 17Z"/></svg> \ No newline at end of file diff --git a/client/packages/lowcoder-design/src/icons/remix/camera-ai-line.svg b/client/packages/lowcoder-design/src/icons/remix/camera-ai-line.svg new file mode 100644 index 0000000000..a178c9d40d --- /dev/null +++ b/client/packages/lowcoder-design/src/icons/remix/camera-ai-line.svg @@ -0,0 +1 @@ +<svg viewBox="0 0 24 24" fill="currentColor" xmlns="http://www.w3.org/2000/svg"><path d="M20.7134 8.12811L20.4668 8.69379C20.2864 9.10792 19.7136 9.10792 19.5331 8.69379L19.2866 8.12811C18.8471 7.11947 18.0555 6.31641 17.0677 5.87708L16.308 5.53922C15.8973 5.35653 15.8973 4.75881 16.308 4.57612L17.0252 4.25714C18.0384 3.80651 18.8442 2.97373 19.2761 1.93083L19.5293 1.31953C19.7058 0.893489 20.2942 0.893489 20.4706 1.31953L20.7238 1.93083C21.1558 2.97373 21.9616 3.80651 22.9748 4.25714L23.6919 4.57612C24.1027 4.75881 24.1027 5.35653 23.6919 5.53922L22.9323 5.87708C21.9445 6.31641 21.1529 7.11947 20.7134 8.12811ZM9 3H14V5H9.82843L7.82843 7H4V19H20V11H22V20C22 20.5523 21.5523 21 21 21H3C2.44772 21 2 20.5523 2 20V6C2 5.44772 2.44772 5 3 5H7L9 3ZM12 18C8.96243 18 6.5 15.5376 6.5 12.5C6.5 9.46243 8.96243 7 12 7C15.0376 7 17.5 9.46243 17.5 12.5C17.5 15.5376 15.0376 18 12 18ZM12 16C13.933 16 15.5 14.433 15.5 12.5C15.5 10.567 13.933 9 12 9C10.067 9 8.5 10.567 8.5 12.5C8.5 14.433 10.067 16 12 16Z"/></svg> \ No newline at end of file diff --git a/client/packages/lowcoder-design/src/icons/remix/camera-lens-ai-fill.svg b/client/packages/lowcoder-design/src/icons/remix/camera-lens-ai-fill.svg new file mode 100644 index 0000000000..6851e8348b --- /dev/null +++ b/client/packages/lowcoder-design/src/icons/remix/camera-lens-ai-fill.svg @@ -0,0 +1 @@ +<svg viewBox="0 0 24 24" fill="currentColor" xmlns="http://www.w3.org/2000/svg"><path d="M20.4668 8.69379L20.7134 8.12811C21.1529 7.11947 21.9445 6.31641 22.9323 5.87708L23.6919 5.53922C24.1027 5.35653 24.1027 4.75881 23.6919 4.57612L22.9748 4.25714C21.9616 3.80651 21.1558 2.97373 20.7238 1.93083L20.4706 1.31953C20.2942 0.893489 19.7058 0.893489 19.5293 1.31953L19.2761 1.93083C18.8442 2.97373 18.0384 3.80651 17.0252 4.25714L16.308 4.57612C15.8973 4.75881 15.8973 5.35653 16.308 5.53922L17.0677 5.87708C18.0555 6.31641 18.8471 7.11947 19.2866 8.12811L19.5331 8.69379C19.7136 9.10792 20.2864 9.10792 20.4668 8.69379ZM14.3094 14L9.82726 21.7633C10.5268 21.9183 11.2538 22 12 22C14.1805 22 16.198 21.3021 17.8413 20.1175L14.3094 14ZM2.4578 15C3.31516 17.7297 5.3115 19.955 7.88985 21.119L11.4226 15H2.4578ZM2 12C2 12.3375 2.01672 12.6711 2.04938 13H9.11325L4.6322 5.23859C2.99773 7.0187 2 9.39284 2 12ZM12 2C9.81949 2 7.80198 2.6979 6.15866 3.88251L9.6906 10L14.1727 2.2367C13.4732 2.08172 12.7462 2 12 2ZM22 12C22 11.6625 21.9833 11.3289 21.9506 11H14.8868L19.3678 18.7614C21.0023 16.9813 22 14.6072 22 12Z"/></svg> \ No newline at end of file diff --git a/client/packages/lowcoder-design/src/icons/remix/camera-lens-ai-line.svg b/client/packages/lowcoder-design/src/icons/remix/camera-lens-ai-line.svg new file mode 100644 index 0000000000..91e18f3b00 --- /dev/null +++ b/client/packages/lowcoder-design/src/icons/remix/camera-lens-ai-line.svg @@ -0,0 +1 @@ +<svg viewBox="0 0 24 24" fill="currentColor" xmlns="http://www.w3.org/2000/svg"><path d="M20.4668 8.69379L20.7134 8.12811C21.1529 7.11947 21.9445 6.31641 22.9323 5.87708L23.6919 5.53922C24.1027 5.35653 24.1027 4.75881 23.6919 4.57612L22.9748 4.25714C21.9616 3.80651 21.1558 2.97373 20.7238 1.93083L20.4706 1.31953C20.2942 0.89349 19.7058 0.89349 19.5293 1.31953L19.2761 1.93083C18.8442 2.97373 18.0384 3.80651 17.0252 4.25714L16.308 4.57612C15.8973 4.75881 15.8973 5.35653 16.308 5.53922L17.0677 5.87708C18.0555 6.31641 18.8471 7.11947 19.2866 8.12811L19.5331 8.69379C19.7136 9.10792 20.2864 9.10792 20.4668 8.69379ZM12 22C17.5228 22 22 17.5228 22 12C22 11.5972 21.9762 11.2 21.9299 10.8097L19.9437 11.0454C19.9809 11.3584 20 11.677 20 12C20 13.4577 19.6101 14.8243 18.929 16.0013L15.4641 10H17.9295L16.7755 8H12.0003L15.1686 2.51246C14.1729 2.1801 13.1074 2 12 2C6.47715 2 2 6.47715 2 12C2 17.5228 6.47715 22 12 22ZM12.0003 4L8.53606 10.0003L6.39495 6.29181C7.83839 4.87429 9.81744 4 12.0003 4ZM9.69076 12.0003L10.8456 10H13.1547L14.3095 12.0001L13.1548 14H10.8453L9.69076 12.0003ZM12.0001 16L9.85814 19.7101C7.81886 19.1448 6.10694 17.7921 5.07026 16H12.0001ZM12.0001 20L15.4642 14.0001L17.605 17.7082C16.1616 19.1257 14.183 20 12.0001 20ZM5.07102 7.99869L8.53588 14H4.25204C4.08751 13.3608 4 12.6906 4 12C4 10.5423 4.38987 9.17568 5.07102 7.99869Z"/></svg> \ No newline at end of file diff --git a/client/packages/lowcoder-design/src/icons/remix/camera-off-line.svg b/client/packages/lowcoder-design/src/icons/remix/camera-off-line.svg index 244f2340d4..b6734dec5f 100644 --- a/client/packages/lowcoder-design/src/icons/remix/camera-off-line.svg +++ b/client/packages/lowcoder-design/src/icons/remix/camera-off-line.svg @@ -1 +1 @@ -<svg viewBox="0 0 24 24" fill="currentColor" xmlns="http://www.w3.org/2000/svg"><path d="M19.5859 21H3.00016C2.44787 21 2.00016 20.5523 2.00016 20V6C2.00016 5.44772 2.44787 5 3.00016 5H3.58594L1.39355 2.80762L2.80777 1.3934L22.6068 21.1924L21.1925 22.6066L19.5859 21ZM5.58594 7H4.00016V19H17.5859L15.4053 16.8194C14.4688 17.5588 13.286 18 12.0002 18C8.96259 18 6.50016 15.5376 6.50016 12.5C6.50016 11.2142 6.94141 10.0314 7.68076 9.09482L5.58594 7ZM9.11052 10.5246C8.72543 11.0868 8.50016 11.7671 8.50016 12.5C8.50016 14.433 10.0672 16 12.0002 16C12.7331 16 13.4134 15.7747 13.9756 15.3896L9.11052 10.5246ZM22.0002 17.7858L20.0002 15.7858V7H16.1717L14.1717 5H9.82858L9.52147 5.30712L8.10726 3.8929L9.00016 3H15.0002L17.0002 5H21.0002C21.5524 5 22.0002 5.44772 22.0002 6V17.7858ZM11.2633 7.04894C11.5043 7.01667 11.7503 7 12.0002 7C15.0377 7 17.5002 9.46244 17.5002 12.5C17.5002 12.7499 17.4835 12.9958 17.4512 13.2369L15.1133 10.899C14.7794 10.251 14.2492 9.72074 13.6012 9.38683L11.2633 7.04894Z"/></svg> \ No newline at end of file +<svg viewBox="0 0 24 24" fill="currentColor" xmlns="http://www.w3.org/2000/svg"><path d="M19.5859 21H3.00016C2.44787 21 2.00016 20.5523 2.00016 20V6.00003C2.00016 5.44775 2.44787 5.00003 3.00016 5.00003H3.58594L1.39355 2.80765L2.80777 1.39343L22.6068 21.1924L21.1925 22.6066L19.5859 21ZM5.58594 7.00003H4.00016V19H17.5859L15.4053 16.8194C14.4688 17.5588 13.286 18 12.0002 18C8.96259 18 6.50016 15.5376 6.50016 12.5C6.50016 11.2142 6.94141 10.0314 7.68076 9.09485L5.58594 7.00003ZM9.11052 10.5246C8.72543 11.0868 8.50016 11.7671 8.50016 12.5C8.50016 14.433 10.0672 16 12.0002 16C12.7331 16 13.4134 15.7748 13.9756 15.3897L9.11052 10.5246ZM22.0002 17.7858L20.0002 15.7858V7.00003H16.1717L14.1717 5.00003H9.82858L9.52147 5.30715L8.10726 3.89293L9.00016 3.00003H15.0002L17.0002 5.00003H21.0002C21.5524 5.00003 22.0002 5.44775 22.0002 6.00003V17.7858ZM11.2633 7.04897C11.5043 7.0167 11.7503 7.00003 12.0002 7.00003C15.0377 7.00003 17.5002 9.46247 17.5002 12.5C17.5002 12.7499 17.4835 12.9959 17.4512 13.2369L15.1133 10.899C14.7794 10.251 14.2492 9.72077 13.6012 9.38686L11.2633 7.04897Z"/></svg> \ No newline at end of file diff --git a/client/packages/lowcoder-design/src/icons/remix/chat-ai-fill.svg b/client/packages/lowcoder-design/src/icons/remix/chat-ai-fill.svg new file mode 100644 index 0000000000..ff0a5180be --- /dev/null +++ b/client/packages/lowcoder-design/src/icons/remix/chat-ai-fill.svg @@ -0,0 +1 @@ +<svg viewBox="0 0 24 24" fill="currentColor" xmlns="http://www.w3.org/2000/svg"><path d="M20.7134 8.12811L20.4668 8.69379C20.2864 9.10792 19.7136 9.10792 19.5331 8.69379L19.2866 8.12811C18.8471 7.11947 18.0555 6.31641 17.0677 5.87708L16.308 5.53922C15.8973 5.35653 15.8973 4.75881 16.308 4.57612L17.0252 4.25714C18.0384 3.80651 18.8442 2.97373 19.2761 1.93083L19.5293 1.31953C19.7058 0.893489 20.2942 0.893489 20.4706 1.31953L20.7238 1.93083C21.1558 2.97373 21.9616 3.80651 22.9748 4.25714L23.6919 4.57612C24.1027 4.75881 24.1027 5.35653 23.6919 5.53922L22.9323 5.87708C21.9445 6.31641 21.1529 7.11947 20.7134 8.12811ZM20 11C20.6986 11 21.3694 10.8806 21.9929 10.6611C21.9976 10.7735 22 10.8865 22 11C22 15.4183 18.4183 19 14 19V22.5C9 20.5 2 17.5 2 11C2 6.58172 5.58172 3 10 3H14C14.1135 3 14.2265 3.00237 14.3389 3.00705C14.1194 3.63061 14 4.30136 14 5C14 8.31371 16.6863 11 20 11Z"/></svg> \ No newline at end of file diff --git a/client/packages/lowcoder-design/src/icons/remix/chat-ai-line.svg b/client/packages/lowcoder-design/src/icons/remix/chat-ai-line.svg new file mode 100644 index 0000000000..224451e5d6 --- /dev/null +++ b/client/packages/lowcoder-design/src/icons/remix/chat-ai-line.svg @@ -0,0 +1 @@ +<svg viewBox="0 0 24 24" fill="currentColor" xmlns="http://www.w3.org/2000/svg"><path d="M20.7134 8.12811L20.4668 8.69379C20.2864 9.10792 19.7136 9.10792 19.5331 8.69379L19.2866 8.12811C18.8471 7.11947 18.0555 6.31641 17.0677 5.87708L16.308 5.53922C15.8973 5.35653 15.8973 4.75881 16.308 4.57612L17.0252 4.25714C18.0384 3.80651 18.8442 2.97373 19.2761 1.93083L19.5293 1.31953C19.7058 0.893489 20.2942 0.893489 20.4706 1.31953L20.7238 1.93083C21.1558 2.97373 21.9616 3.80651 22.9748 4.25714L23.6919 4.57612C24.1027 4.75881 24.1027 5.35653 23.6919 5.53922L22.9323 5.87708C21.9445 6.31641 21.1529 7.11947 20.7134 8.12811ZM10 3H14V5H10C6.68629 5 4 7.68629 4 11C4 14.61 6.46208 16.9656 12 19.4798V17H14C17.3137 17 20 14.3137 20 11H22C22 15.4183 18.4183 19 14 19V22.5C9 20.5 2 17.5 2 11C2 6.58172 5.58172 3 10 3Z"/></svg> \ No newline at end of file diff --git a/client/packages/lowcoder-design/src/icons/remix/chat-off-fill.svg b/client/packages/lowcoder-design/src/icons/remix/chat-off-fill.svg index c5a2a8fb01..c888a3d95a 100644 --- a/client/packages/lowcoder-design/src/icons/remix/chat-off-fill.svg +++ b/client/packages/lowcoder-design/src/icons/remix/chat-off-fill.svg @@ -1 +1 @@ -<svg viewBox="0 0 24 24" fill="currentColor" xmlns="http://www.w3.org/2000/svg"><path d="M2.80777 1.3934L22.6068 21.1924L21.1925 22.6066L17.5846 18.9994L6.45516 19L2.00016 22.5V4C2.00016 3.8307 2.04223 3.67123 2.11649 3.53146L1.39355 2.80762L2.80777 1.3934ZM21.0002 3C21.5524 3 22.0002 3.44772 22.0002 4V17.785L7.21416 3H21.0002Z"/></svg> \ No newline at end of file +<svg viewBox="0 0 24 24" fill="currentColor" xmlns="http://www.w3.org/2000/svg"><path d="M2.80777 1.39337L22.6068 21.1924L21.1925 22.6066L17.5846 18.9994L6.45516 19L2.00016 22.5V3.99997C2.00016 3.83067 2.04223 3.6712 2.11649 3.53143L1.39355 2.80759L2.80777 1.39337ZM21.0002 2.99997C21.5524 2.99997 22.0002 3.44769 22.0002 3.99997V17.785L7.21416 2.99997H21.0002Z"/></svg> \ No newline at end of file diff --git a/client/packages/lowcoder-design/src/icons/remix/chat-search-fill.svg b/client/packages/lowcoder-design/src/icons/remix/chat-search-fill.svg new file mode 100644 index 0000000000..1f13133967 --- /dev/null +++ b/client/packages/lowcoder-design/src/icons/remix/chat-search-fill.svg @@ -0,0 +1 @@ +<svg viewBox="0 0 24 24" fill="currentColor" xmlns="http://www.w3.org/2000/svg"><path d="M6.45455 19L2 22.5V4C2 3.44772 2.44772 3 3 3H21C21.5523 3 22 3.44772 22 4V12.8027C21.1175 12.2922 20.0929 12 19 12C15.6863 12 13 14.6863 13 18C13 18.3407 13.0284 18.6748 13.083 19H6.45455ZM23.9497 21.5355L22.4462 20.032C22.7981 19.4365 23 18.7418 23 18C23 15.7909 21.2091 14 19 14C16.7909 14 15 15.7909 15 18C15 20.2091 16.7909 22 19 22C19.7418 22 20.4365 21.7981 21.032 21.4462L22.5355 22.9497L23.9497 21.5355ZM21 18C21 19.1046 20.1046 20 19 20C17.8954 20 17 19.1046 17 18C17 16.8954 17.8954 16 19 16C20.1046 16 21 16.8954 21 18Z"/></svg> \ No newline at end of file diff --git a/client/packages/lowcoder-design/src/icons/remix/chat-search-line.svg b/client/packages/lowcoder-design/src/icons/remix/chat-search-line.svg new file mode 100644 index 0000000000..51ca58b50a --- /dev/null +++ b/client/packages/lowcoder-design/src/icons/remix/chat-search-line.svg @@ -0,0 +1 @@ +<svg viewBox="0 0 24 24" fill="currentColor" xmlns="http://www.w3.org/2000/svg"><path d="M5.76282 17H13.083C13.0284 17.3252 13 17.6593 13 18C13 18.3407 13.0284 18.6748 13.083 19H6.45455L2 22.5V4C2 3.44772 2.44772 3 3 3H21C21.5523 3 22 3.44772 22 4V12.8027C21.3926 12.4513 20.7179 12.2034 20 12.083V5H4V18.3851L5.76282 17ZM23.9497 21.5355L22.4462 20.032C22.7981 19.4365 23 18.7418 23 18C23 15.7909 21.2091 14 19 14C16.7909 14 15 15.7909 15 18C15 20.2091 16.7909 22 19 22C19.7418 22 20.4365 21.7981 21.032 21.4462L22.5355 22.9497L23.9497 21.5355ZM21 18C21 19.1046 20.1046 20 19 20C17.8954 20 17 19.1046 17 18C17 16.8954 17.8954 16 19 16C20.1046 16 21 16.8954 21 18Z"/></svg> \ No newline at end of file diff --git a/client/packages/lowcoder-design/src/icons/remix/chat-smile-ai-fill.svg b/client/packages/lowcoder-design/src/icons/remix/chat-smile-ai-fill.svg new file mode 100644 index 0000000000..cee022cc62 --- /dev/null +++ b/client/packages/lowcoder-design/src/icons/remix/chat-smile-ai-fill.svg @@ -0,0 +1 @@ +<svg viewBox="0 0 24 24" fill="currentColor" xmlns="http://www.w3.org/2000/svg"><path d="M20.7134 8.12811L20.4668 8.69379C20.2864 9.10792 19.7136 9.10792 19.5331 8.69379L19.2866 8.12811C18.8471 7.11947 18.0555 6.31641 17.0677 5.87708L16.308 5.53922C15.8973 5.35653 15.8973 4.75881 16.308 4.57612L17.0252 4.25714C18.0384 3.80651 18.8442 2.97373 19.2761 1.93083L19.5293 1.31953C19.7058 0.893489 20.2942 0.893489 20.4706 1.31953L20.7238 1.93083C21.1558 2.97373 21.9616 3.80651 22.9748 4.25714L23.6919 4.57612C24.1027 4.75881 24.1027 5.35653 23.6919 5.53922L22.9323 5.87708C21.9445 6.31641 21.1529 7.11947 20.7134 8.12811ZM20 11C20.6695 11 21.3134 10.8903 21.9147 10.688C21.971 11.1174 22 11.5553 22 12C22 17.5228 17.5228 22 12 22C10.2975 22 8.6944 21.5746 7.29117 20.8242L2 22L3.17581 16.7088C2.42544 15.3056 2 13.7025 2 12C2 6.47715 6.47715 2 12 2C12.9056 2 13.7831 2.12039 14.6174 2.34603C14.2221 3.14617 14 4.04715 14 5C14 8.31371 16.6863 11 20 11ZM7 12C7 14.7614 9.23858 17 12 17C14.7614 17 17 14.7614 17 12H15C15 13.6569 13.6569 15 12 15C10.3431 15 9 13.6569 9 12H7Z"/></svg> \ No newline at end of file diff --git a/client/packages/lowcoder-design/src/icons/remix/chat-smile-ai-line.svg b/client/packages/lowcoder-design/src/icons/remix/chat-smile-ai-line.svg new file mode 100644 index 0000000000..0826c646d6 --- /dev/null +++ b/client/packages/lowcoder-design/src/icons/remix/chat-smile-ai-line.svg @@ -0,0 +1 @@ +<svg viewBox="0 0 24 24" fill="currentColor" xmlns="http://www.w3.org/2000/svg"><path d="M20.7134 8.12811L20.4668 8.69379C20.2864 9.10792 19.7136 9.10792 19.5331 8.69379L19.2866 8.12811C18.8471 7.11947 18.0555 6.31641 17.0677 5.87708L16.308 5.53922C15.8973 5.35653 15.8973 4.75881 16.308 4.57612L17.0252 4.25714C18.0384 3.80651 18.8442 2.97373 19.2761 1.93083L19.5293 1.31953C19.7058 0.893489 20.2942 0.893489 20.4706 1.31953L20.7238 1.93083C21.1558 2.97373 21.9616 3.80651 22.9748 4.25714L23.6919 4.57612C24.1027 4.75881 24.1027 5.35653 23.6919 5.53922L22.9323 5.87708C21.9445 6.31641 21.1529 7.11947 20.7134 8.12811ZM12 2C6.47715 2 2 6.47715 2 12C2 13.7025 2.42544 15.3056 3.17581 16.7088L2 22L7.29117 20.8242C8.6944 21.5746 10.2975 22 12 22C17.5228 22 22 17.5228 22 12C22 11.5975 21.9762 11.2002 21.9298 10.8094L19.9437 11.0452C19.9809 11.3579 20 11.6765 20 12C20 16.4183 16.4183 20 12 20C10.6655 20 9.38248 19.6745 8.23428 19.0605L7.58075 18.711L4.63416 19.3658L5.28896 16.4192L4.93949 15.7657C4.32549 14.6175 4 13.3345 4 12C4 7.58172 7.58172 4 12 4C12.6919 4 13.3618 4.0876 14 4.25179L14.4983 2.31487C13.6987 2.10914 12.8614 2 12 2ZM9 12H7C7 14.7614 9.23858 17 12 17C14.7614 17 17 14.7614 17 12H15C15 13.6569 13.6569 15 12 15C10.3431 15 9 13.6569 9 12Z"/></svg> \ No newline at end of file diff --git a/client/packages/lowcoder-design/src/icons/remix/chat-unread-fill.svg b/client/packages/lowcoder-design/src/icons/remix/chat-unread-fill.svg new file mode 100644 index 0000000000..4103ae8de7 --- /dev/null +++ b/client/packages/lowcoder-design/src/icons/remix/chat-unread-fill.svg @@ -0,0 +1 @@ +<svg viewBox="0 0 24 24" fill="currentColor" xmlns="http://www.w3.org/2000/svg"><path d="M21 7C22.6569 7 24 5.65685 24 4C24 2.34315 22.6569 1 21 1C19.3431 1 18 2.34315 18 4C18 5.65685 19.3431 7 21 7ZM21 9C21.3425 9 21.6769 8.96557 22 8.89998V18C22 18.5523 21.5523 19 21 19H6.45455L2 22.5V4C2 3.44772 2.44772 3 3 3H16.1C16.0344 3.32311 16 3.65753 16 4C16 6.76142 18.2386 9 21 9Z"/></svg> \ No newline at end of file diff --git a/client/packages/lowcoder-design/src/icons/remix/chat-unread-line.svg b/client/packages/lowcoder-design/src/icons/remix/chat-unread-line.svg new file mode 100644 index 0000000000..564c5e04bf --- /dev/null +++ b/client/packages/lowcoder-design/src/icons/remix/chat-unread-line.svg @@ -0,0 +1 @@ +<svg viewBox="0 0 24 24" fill="currentColor" xmlns="http://www.w3.org/2000/svg"><path d="M21 7C22.6569 7 24 5.65685 24 4C24 2.34315 22.6569 1 21 1C19.3431 1 18 2.34315 18 4C18 5.65685 19.3431 7 21 7ZM22 18V8.89998C21.6769 8.96557 21.3425 9 21 9C20.6575 9 20.3231 8.96557 20 8.89998V17H5.76282L4 18.3851V5H16.1C16.0344 4.67689 16 4.34247 16 4C16 3.65753 16.0344 3.32311 16.1 3H3C2.44772 3 2 3.44772 2 4V22.5L6.45455 19H21C21.5523 19 22 18.5523 22 18Z"/></svg> \ No newline at end of file diff --git a/client/packages/lowcoder-design/src/icons/remix/chat-voice-ai-fill.svg b/client/packages/lowcoder-design/src/icons/remix/chat-voice-ai-fill.svg new file mode 100644 index 0000000000..bd2c87851f --- /dev/null +++ b/client/packages/lowcoder-design/src/icons/remix/chat-voice-ai-fill.svg @@ -0,0 +1 @@ +<svg viewBox="0 0 24 24" fill="currentColor" xmlns="http://www.w3.org/2000/svg"><path d="M20.7134 8.12811L20.4668 8.69379C20.2864 9.10792 19.7136 9.10792 19.5331 8.69379L19.2866 8.12811C18.8471 7.11947 18.0555 6.31641 17.0677 5.87708L16.308 5.53922C15.8973 5.35653 15.8973 4.75881 16.308 4.57612L17.0252 4.25714C18.0384 3.80651 18.8442 2.97373 19.2761 1.93083L19.5293 1.31953C19.7058 0.893489 20.2942 0.893489 20.4706 1.31953L20.7238 1.93083C21.1558 2.97373 21.9616 3.80651 22.9748 4.25714L23.6919 4.57612C24.1027 4.75881 24.1027 5.35653 23.6919 5.53922L22.9323 5.87708C21.9445 6.31641 21.1529 7.11947 20.7134 8.12811ZM22 12C22 11.5553 21.971 11.1174 21.9147 10.688C21.3134 10.8903 20.6695 11 20 11C18.9071 11 17.8825 10.7078 17 10.1973V15H15V9H15.5278C14.5777 7.93849 14 6.53671 14 5C14 4.04715 14.2221 3.14617 14.6174 2.34603C13.7831 2.12039 12.9056 2 12 2C6.47715 2 2 6.47715 2 12C2 14.7614 3.11929 17.2614 4.92893 19.0711L2 22H12C17.5228 22 22 17.5228 22 12ZM11 6H13V18H11V6ZM7 15V9H9V15H7Z"/></svg> \ No newline at end of file diff --git a/client/packages/lowcoder-design/src/icons/remix/chat-voice-ai-line.svg b/client/packages/lowcoder-design/src/icons/remix/chat-voice-ai-line.svg new file mode 100644 index 0000000000..275840c558 --- /dev/null +++ b/client/packages/lowcoder-design/src/icons/remix/chat-voice-ai-line.svg @@ -0,0 +1 @@ +<svg viewBox="0 0 24 24" fill="currentColor" xmlns="http://www.w3.org/2000/svg"><path d="M20.7134 8.12811L20.4668 8.69379C20.2864 9.10792 19.7136 9.10792 19.5331 8.69379L19.2866 8.12811C18.8471 7.11947 18.0555 6.31641 17.0677 5.87708L16.308 5.53922C15.8973 5.35653 15.8973 4.75881 16.308 4.57612L17.0252 4.25714C18.0384 3.80651 18.8442 2.97373 19.2761 1.93083L19.5293 1.31953C19.7058 0.893489 20.2942 0.893489 20.4706 1.31953L20.7238 1.93083C21.1558 2.97373 21.9616 3.80651 22.9748 4.25714L23.6919 4.57612C24.1027 4.75881 24.1027 5.35653 23.6919 5.53922L22.9323 5.87708C21.9445 6.31641 21.1529 7.11947 20.7134 8.12811ZM12 2C6.47715 2 2 6.47715 2 12C2 14.7614 3.11929 17.2614 4.92893 19.0711L2 22H12C17.5228 22 22 17.5228 22 12C22 11.5975 21.9762 11.2002 21.9298 10.8094L19.9437 11.0452C19.9809 11.3579 20 11.6765 20 12C20 16.4183 16.4183 20 12 20H6.82843L7.75736 19.0711L6.34315 17.6569C4.85124 16.1649 4 14.1524 4 12C4 7.58172 7.58172 4 12 4C12.6919 4 13.3618 4.0876 14 4.25179L14.4983 2.31487C13.6987 2.10914 12.8614 2 12 2ZM9 9H7V15H9V9ZM17 9H15V15H17V9ZM13 6H11V18H13V6Z"/></svg> \ No newline at end of file diff --git a/client/packages/lowcoder-design/src/icons/remix/clapperboard-ai-fill.svg b/client/packages/lowcoder-design/src/icons/remix/clapperboard-ai-fill.svg new file mode 100644 index 0000000000..29a5c89eea --- /dev/null +++ b/client/packages/lowcoder-design/src/icons/remix/clapperboard-ai-fill.svg @@ -0,0 +1 @@ +<svg viewBox="0 0 24 24" fill="currentColor" xmlns="http://www.w3.org/2000/svg"><path d="M20.4668 8.69379L20.7134 8.12811C21.1529 7.11947 21.9445 6.31641 22.9323 5.87708L23.6919 5.53922C24.1027 5.35653 24.1027 4.75881 23.6919 4.57612L22.9748 4.25714C21.9616 3.80651 21.1558 2.97373 20.7238 1.93083L20.4706 1.31953C20.2942 0.893489 19.7058 0.893489 19.5293 1.31953L19.2761 1.93083C18.8442 2.97373 18.0384 3.80651 17.0252 4.25714L16.308 4.57612C15.8973 4.75881 15.8973 5.35653 16.308 5.53922L17.0677 5.87708C18.0555 6.31641 18.8471 7.11947 19.2866 8.12811L19.5331 8.69379C19.7136 9.10792 20.2864 9.10792 20.4668 8.69379ZM20 11C20.7013 11 21.3744 10.8797 22 10.6586V20.0066C22 20.5552 21.5447 21 21.0082 21H2.9918C2.44405 21 2 20.5551 2 20.0066V3.9934C2 3.44476 2.45531 3 2.9918 3H5.99807L3.68867 7H5.99807L8.30747 3H11.9981L9.68867 7H11.9981L14.3075 3H14.3414C14.1203 3.62556 14 4.29873 14 5C14 8.31371 16.6863 11 20 11Z"/></svg> \ No newline at end of file diff --git a/client/packages/lowcoder-design/src/icons/remix/clapperboard-ai-line.svg b/client/packages/lowcoder-design/src/icons/remix/clapperboard-ai-line.svg new file mode 100644 index 0000000000..a7ab75aeb5 --- /dev/null +++ b/client/packages/lowcoder-design/src/icons/remix/clapperboard-ai-line.svg @@ -0,0 +1 @@ +<svg viewBox="0 0 24 24" fill="currentColor" xmlns="http://www.w3.org/2000/svg"><path d="M20.4668 8.69379L20.7134 8.12811C21.1529 7.11947 21.9445 6.31641 22.9323 5.87708L23.6919 5.53922C24.1027 5.35653 24.1027 4.75881 23.6919 4.57612L22.9748 4.25714C21.9616 3.80651 21.1558 2.97373 20.7238 1.93083L20.4706 1.31953C20.2942 0.893489 19.7058 0.893489 19.5293 1.31953L19.2761 1.93083C18.8442 2.97373 18.0384 3.80651 17.0252 4.25714L16.308 4.57612C15.8973 4.75881 15.8973 5.35653 16.308 5.53922L17.0677 5.87708C18.0555 6.31641 18.8471 7.11947 19.2866 8.12811L19.5331 8.69379C19.7136 9.10792 20.2864 9.10792 20.4668 8.69379ZM14.3075 3H14.3414C14.1203 3.62556 14 4.29873 14 5C14 5.70127 14.1203 6.37444 14.3414 7H11.9981L14.3075 3ZM20 11V19H4V6.46076L5.99807 3H2.9918C2.45531 3 2 3.44476 2 3.9934V20.0066C2 20.5551 2.44405 21 2.9918 21H21.0082C21.5447 21 22 20.5552 22 20.0066V11H20ZM8.30747 3L5.99807 7H9.68867L11.9981 3H8.30747Z"/></svg> \ No newline at end of file diff --git a/client/packages/lowcoder-design/src/icons/remix/claude-fill.svg b/client/packages/lowcoder-design/src/icons/remix/claude-fill.svg new file mode 100644 index 0000000000..f699875fc0 --- /dev/null +++ b/client/packages/lowcoder-design/src/icons/remix/claude-fill.svg @@ -0,0 +1 @@ +<svg viewBox="0 0 24 24" fill="currentColor" xmlns="http://www.w3.org/2000/svg"><path d="M5.92 15.3L9.86 13.1L9.92 12.9L9.86 12.8H9.66L9 12.76L6.76 12.7L4.8 12.6L2.9 12.5L2.42 12.4L2 11.8L2.04 11.5L2.44 11.24L3.02 11.28L4.28 11.38L6.18 11.5L7.56 11.58L9.6 11.82H9.92L9.96 11.68L9.86 11.6L9.78 11.52L7.8 10.2L5.68 8.8L4.56 7.98L3.96 7.58L3.66 7.18L3.54 6.34L4.08 5.74L4.82 5.8L5 5.84L5.74 6.42L7.34 7.64L9.4 9.2L9.7 9.44L9.82 9.36L9.84 9.3L9.7 9.08L8.6 7L7.4 4.92L6.86 4.06L6.72 3.54C6.66 3.34 6.64 3.14 6.64 2.94L7.24 2.1L7.6 2L8.44 2.12L8.76 2.4L9.28 3.6L10.1 5.46L11.4 7.98L11.8 8.74L12 9.42L12.06 9.62H12.2V9.52L12.3 8.08L12.5 6.34L12.7 4.1L12.76 3.46L13.08 2.7L13.68 2.3L14.2 2.52L14.6 3.1L14.54 3.46L14.32 5L13.8 7.42L13.5 9.06H13.68L13.88 8.84L14.7 7.76L16.08 6.04L16.68 5.34L17.4 4.6L17.86 4.24H18.72L19.34 5.18L19.06 6.16L18.18 7.28L17.44 8.22L16.38 9.64L15.74 10.78L15.8 10.86H15.94L18.34 10.34L19.62 10.12L21.14 9.86L21.84 10.18L21.92 10.5L21.64 11.18L20 11.58L18.08 11.98L15.22 12.64L15.18 12.66L15.22 12.72L16.5 12.84L17.06 12.88H18.42L20.94 13.08L21.6 13.48L21.98 14.02L21.92 14.42L20.9 14.94L19.54 14.62L16.34 13.86L15.26 13.6H15.1V13.68L16.02 14.58L17.68 16.08L19.8 18.02L19.9 18.5L19.64 18.9L19.36 18.86L17.52 17.46L16.8 16.86L15.2 15.5H15.1V15.64L15.46 16.18L17.42 19.12L17.52 20.02L17.38 20.3L16.86 20.5L16.32 20.38L15.16 18.78L13.96 16.98L13.02 15.34L12.92 15.42L12.34 21.46L12.08 21.76L11.48 22L10.98 21.6L10.7 21L10.98 19.76L11.3 18.16L11.56 16.88L11.8 15.3L11.94 14.78V14.74H11.8L10.6 16.4L8.8 18.86L7.36 20.38L7.02 20.52L6.42 20.22L6.48 19.66L6.8 19.2L8.8 16.64L10 15.06L10.8 14.14L10.78 14.04H10.72L5.44 17.48L4.5 17.6L4.1 17.2L4.14 16.6L4.34 16.4L5.94 15.3H5.92Z"/></svg> \ No newline at end of file diff --git a/client/packages/lowcoder-design/src/icons/remix/claude-line.svg b/client/packages/lowcoder-design/src/icons/remix/claude-line.svg new file mode 100644 index 0000000000..e3f457ffa7 --- /dev/null +++ b/client/packages/lowcoder-design/src/icons/remix/claude-line.svg @@ -0,0 +1 @@ +<svg viewBox="0 0 24 24" fill="currentColor" xmlns="http://www.w3.org/2000/svg"><path d="M8.64445 2.55279C8.39746 2.05881 7.79679 1.85859 7.30281 2.10558C6.80883 2.35257 6.60861 2.95324 6.8556 3.44722L9.68128 9.09859L5.06655 5.92596C4.61145 5.61308 3.98887 5.72837 3.67598 6.18348C3.3631 6.63858 3.47839 7.26116 3.9335 7.57405L9.40503 11.3357L3.05258 11.0014C2.50106 10.9724 2.03043 11.3959 2.00141 11.9474C1.97238 12.499 2.39594 12.9696 2.94747 12.9986L8.74187 13.3036L4.44532 16.168C3.9858 16.4743 3.86162 17.0952 4.16797 17.5547C4.47433 18.0142 5.0952 18.1384 5.55473 17.8321L9.19687 15.404L6.68629 18.9188C6.36528 19.3682 6.46937 19.9927 6.91879 20.3137C7.3682 20.6347 7.99275 20.5307 8.31376 20.0812L11.3471 15.8345L10.5136 20.8356C10.4228 21.3804 10.7909 21.8956 11.3356 21.9864C11.8804 22.0772 12.3956 21.7092 12.4864 21.1644L13.2883 16.3532L15.6588 20.0408C15.9575 20.5053 16.5762 20.6398 17.0408 20.3412C17.5054 20.0425 17.6399 19.4238 17.3412 18.9592L15.5553 16.1812L18.3217 18.7348C18.7276 19.1094 19.3602 19.0841 19.7348 18.6783C20.1094 18.2725 20.0841 17.6398 19.6783 17.2652L16.6427 14.4631L20.876 14.9923C21.424 15.0608 21.9238 14.6721 21.9923 14.124C22.0608 13.576 21.6721 13.0762 21.1241 13.0077L16.9342 12.484L21.2291 11.4734C21.7667 11.3469 22.0999 10.8086 21.9734 10.271C21.8469 9.73336 21.3086 9.40009 20.771 9.52659L15.1819 10.8417L19.2863 5.61783C19.6276 5.18356 19.5521 4.5549 19.1178 4.21369C18.6836 3.87247 18.0549 3.94791 17.7137 4.38218L13.8574 9.29015L14.738 3.65438C14.8233 3.10872 14.4501 2.59725 13.9044 2.51199C13.3587 2.42673 12.8473 2.79996 12.762 3.34563L11.876 9.01594L8.64445 2.55279Z"/></svg> \ No newline at end of file diff --git a/client/packages/lowcoder-design/src/icons/remix/clockwise-2-line.svg b/client/packages/lowcoder-design/src/icons/remix/clockwise-2-line.svg index 76335881ce..3256cba63b 100644 --- a/client/packages/lowcoder-design/src/icons/remix/clockwise-2-line.svg +++ b/client/packages/lowcoder-design/src/icons/remix/clockwise-2-line.svg @@ -1 +1 @@ -<svg viewBox="0 0 24 24" fill="currentColor" xmlns="http://www.w3.org/2000/svg"><path d="M10.5858 4.00003L8.75736 2.1716L10.1716 0.757385L14.4142 5.00003L10.1716 9.24267L8.75736 7.82845L10.5858 6.00003H8C6.34315 6.00003 5 7.34317 5 9.00003V13H3V9.00003C3 6.2386 5.23858 4.00003 8 4.00003H10.5858ZM9 11C9 10.4477 9.44772 10 10 10H20C20.5523 10 21 10.4477 21 11V21C21 21.5523 20.5523 22 20 22H10C9.44772 22 9 21.5523 9 21V11ZM11 12V20H19V12H11Z"/></svg> \ No newline at end of file +<svg viewBox="0 0 24 24" fill="currentColor" xmlns="http://www.w3.org/2000/svg"><path d="M10.5858 3.99997L8.75736 2.17154L10.1716 0.757324L14.4142 4.99997L10.1716 9.24261L8.75736 7.82839L10.5858 5.99997H8C6.34315 5.99997 5 7.34311 5 8.99997V13H3V8.99997C3 6.23854 5.23858 3.99997 8 3.99997H10.5858ZM9 11C9 10.4477 9.44772 9.99997 10 9.99997H20C20.5523 9.99997 21 10.4477 21 11V21C21 21.5522 20.5523 22 20 22H10C9.44772 22 9 21.5522 9 21V11ZM11 12V20H19V12H11Z"/></svg> \ No newline at end of file diff --git a/client/packages/lowcoder-design/src/icons/remix/close-large-fill.svg b/client/packages/lowcoder-design/src/icons/remix/close-large-fill.svg new file mode 100644 index 0000000000..2e891d0883 --- /dev/null +++ b/client/packages/lowcoder-design/src/icons/remix/close-large-fill.svg @@ -0,0 +1 @@ +<svg viewBox="0 0 24 24" fill="currentColor" xmlns="http://www.w3.org/2000/svg"><path d="M10.5859 12L2.79297 4.20706L4.20718 2.79285L12.0001 10.5857L19.793 2.79285L21.2072 4.20706L13.4143 12L21.2072 19.7928L19.793 21.2071L12.0001 13.4142L4.20718 21.2071L2.79297 19.7928L10.5859 12Z"/></svg> \ No newline at end of file diff --git a/client/packages/lowcoder-design/src/icons/remix/close-large-line.svg b/client/packages/lowcoder-design/src/icons/remix/close-large-line.svg new file mode 100644 index 0000000000..2e891d0883 --- /dev/null +++ b/client/packages/lowcoder-design/src/icons/remix/close-large-line.svg @@ -0,0 +1 @@ +<svg viewBox="0 0 24 24" fill="currentColor" xmlns="http://www.w3.org/2000/svg"><path d="M10.5859 12L2.79297 4.20706L4.20718 2.79285L12.0001 10.5857L19.793 2.79285L21.2072 4.20706L13.4143 12L21.2072 19.7928L19.793 21.2071L12.0001 13.4142L4.20718 21.2071L2.79297 19.7928L10.5859 12Z"/></svg> \ No newline at end of file diff --git a/client/packages/lowcoder-design/src/icons/remix/closed-captioning-ai-fill.svg b/client/packages/lowcoder-design/src/icons/remix/closed-captioning-ai-fill.svg new file mode 100644 index 0000000000..7ca60921fe --- /dev/null +++ b/client/packages/lowcoder-design/src/icons/remix/closed-captioning-ai-fill.svg @@ -0,0 +1 @@ +<svg viewBox="0 0 24 24" fill="currentColor" xmlns="http://www.w3.org/2000/svg"><path d="M20.4668 8.69379L20.7134 8.12811C21.1529 7.11947 21.9445 6.31641 22.9323 5.87708L23.6919 5.53922C24.1027 5.35653 24.1027 4.75881 23.6919 4.57612L22.9748 4.25714C21.9616 3.80651 21.1558 2.97373 20.7238 1.93083L20.4706 1.31953C20.2942 0.893489 19.7058 0.893489 19.5293 1.31953L19.2761 1.93083C18.8442 2.97373 18.0384 3.80651 17.0252 4.25714L16.308 4.57612C15.8973 4.75881 15.8973 5.35653 16.308 5.53922L17.0677 5.87708C18.0555 6.31641 18.8471 7.11947 19.2866 8.12811L19.5331 8.69379C19.7136 9.10792 20.2864 9.10792 20.4668 8.69379ZM22 20V10.6586C21.3744 10.8797 20.7013 11 20 11C19.1201 11 18.2845 10.8106 17.5316 10.4703L17.4153 10.5866C17.0534 10.2241 16.553 10 16 10C14.895 10 14 10.895 14 12C14 13.105 14.895 14 16 14C16.5525 14 17.0525 13.7762 17.4144 13.4144L18.828 14.828C18.104 15.552 17.104 16 16 16C13.792 16 12 14.208 12 12C12 10.1752 13.224 8.63446 14.8953 8.1547C14.3277 7.23814 14 6.15734 14 5C14 4.29873 14.1203 3.62556 14.3414 3H3C2.44772 3 2 3.44772 2 4V20C2 20.5523 2.44772 21 3 21H21C21.5523 21 22 20.5523 22 20ZM9 8C10.1045 8 11.1049 8.44841 11.829 9.173L10.4153 10.5866C10.0483 10.22 9.55 10 9 10C7.895 10 7 10.895 7 12C7 13.105 7.895 14 9 14C9.5525 14 10.0525 13.7762 10.4144 13.4144L11.828 14.828C11.1 15.55 10.1 16 9 16C6.792 16 5 14.208 5 12C5 9.792 6.792 8 9 8Z"/></svg> \ No newline at end of file diff --git a/client/packages/lowcoder-design/src/icons/remix/closed-captioning-ai-line.svg b/client/packages/lowcoder-design/src/icons/remix/closed-captioning-ai-line.svg new file mode 100644 index 0000000000..ae47eb6c04 --- /dev/null +++ b/client/packages/lowcoder-design/src/icons/remix/closed-captioning-ai-line.svg @@ -0,0 +1 @@ +<svg viewBox="0 0 24 24" fill="currentColor" xmlns="http://www.w3.org/2000/svg"><path d="M20.4668 8.69379L20.7134 8.12811C21.1529 7.11947 21.9445 6.31641 22.9323 5.87708L23.6919 5.53922C24.1027 5.35653 24.1027 4.75881 23.6919 4.57612L22.9748 4.25714C21.9616 3.80651 21.1558 2.97373 20.7238 1.93083L20.4706 1.31953C20.2942 0.893489 19.7058 0.893489 19.5293 1.31953L19.2761 1.93083C18.8442 2.97373 18.0384 3.80651 17.0252 4.25714L16.308 4.57612C15.8973 4.75881 15.8973 5.35653 16.308 5.53922L17.0677 5.87708C18.0555 6.31641 18.8471 7.11947 19.2866 8.12811L19.5331 8.69379C19.7136 9.10792 20.2864 9.10792 20.4668 8.69379ZM3 3H14V5H4V19H20V11H22V20C22 20.5523 21.5523 21 21 21H3C2.44772 21 2 20.5523 2 20V4C2 3.44772 2.44772 3 3 3ZM9 8C10.1045 8 11.1049 8.44841 11.829 9.173L10.4153 10.5866C10.0534 10.2241 9.55299 10 9 10C7.895 10 7 10.895 7 12C7 13.105 7.895 14 9 14C9.5525 14 10.0525 13.7762 10.4144 13.4144L11.828 14.828C11.104 15.552 10.104 16 9 16C6.792 16 5 14.208 5 12C5 9.792 6.792 8 9 8ZM16 8C17.1045 8 18.1049 8.44841 18.829 9.173L17.4153 10.5866C17.0534 10.2241 16.553 10 16 10C14.895 10 14 10.895 14 12C14 13.105 14.895 14 16 14C16.5525 14 17.0525 13.7762 17.4144 13.4144L18.828 14.828C18.104 15.552 17.104 16 16 16C13.792 16 12 14.208 12 12C12 9.792 13.792 8 16 8Z"/></svg> \ No newline at end of file diff --git a/client/packages/lowcoder-design/src/icons/remix/code-ai-fill.svg b/client/packages/lowcoder-design/src/icons/remix/code-ai-fill.svg new file mode 100644 index 0000000000..613628dd00 --- /dev/null +++ b/client/packages/lowcoder-design/src/icons/remix/code-ai-fill.svg @@ -0,0 +1 @@ +<svg viewBox="0 0 24 24" fill="currentColor" xmlns="http://www.w3.org/2000/svg"><path d="M17.7134 10.1281L17.4668 10.6938C17.2864 11.1079 16.7136 11.1079 16.5331 10.6938L16.2866 10.1281C15.8471 9.11947 15.0555 8.31641 14.0677 7.87708L13.308 7.53922C12.8973 7.35653 12.8973 6.75881 13.308 6.57612L14.0252 6.25714C15.0384 5.80651 15.8442 4.97373 16.2761 3.93083L16.5293 3.31953C16.7058 2.89349 17.2942 2.89349 17.4706 3.31953L17.7238 3.93083C18.1558 4.97373 18.9616 5.80651 19.9748 6.25714L20.6919 6.57612C21.1027 6.75881 21.1027 7.35653 20.6919 7.53922L19.9323 7.87708C18.9445 8.31641 18.1529 9.11947 17.7134 10.1281ZM2.82843 12.0001L7.07107 16.2428L5.65685 17.657L0 12.0001L5.65685 6.34326L7.07107 7.75748L2.82843 12.0001ZM18.3429 17.6572L23.9998 12.0003L21.1714 9.17188L19.7571 10.5861L21.1714 12.0003L16.9287 16.2429L18.3429 17.6572Z"/></svg> \ No newline at end of file diff --git a/client/packages/lowcoder-design/src/icons/remix/code-ai-line.svg b/client/packages/lowcoder-design/src/icons/remix/code-ai-line.svg new file mode 100644 index 0000000000..613628dd00 --- /dev/null +++ b/client/packages/lowcoder-design/src/icons/remix/code-ai-line.svg @@ -0,0 +1 @@ +<svg viewBox="0 0 24 24" fill="currentColor" xmlns="http://www.w3.org/2000/svg"><path d="M17.7134 10.1281L17.4668 10.6938C17.2864 11.1079 16.7136 11.1079 16.5331 10.6938L16.2866 10.1281C15.8471 9.11947 15.0555 8.31641 14.0677 7.87708L13.308 7.53922C12.8973 7.35653 12.8973 6.75881 13.308 6.57612L14.0252 6.25714C15.0384 5.80651 15.8442 4.97373 16.2761 3.93083L16.5293 3.31953C16.7058 2.89349 17.2942 2.89349 17.4706 3.31953L17.7238 3.93083C18.1558 4.97373 18.9616 5.80651 19.9748 6.25714L20.6919 6.57612C21.1027 6.75881 21.1027 7.35653 20.6919 7.53922L19.9323 7.87708C18.9445 8.31641 18.1529 9.11947 17.7134 10.1281ZM2.82843 12.0001L7.07107 16.2428L5.65685 17.657L0 12.0001L5.65685 6.34326L7.07107 7.75748L2.82843 12.0001ZM18.3429 17.6572L23.9998 12.0003L21.1714 9.17188L19.7571 10.5861L21.1714 12.0003L16.9287 16.2429L18.3429 17.6572Z"/></svg> \ No newline at end of file diff --git a/client/packages/lowcoder-design/src/icons/remix/coins-fill.svg b/client/packages/lowcoder-design/src/icons/remix/coins-fill.svg index 9822088bee..fd0a93bc4f 100644 --- a/client/packages/lowcoder-design/src/icons/remix/coins-fill.svg +++ b/client/packages/lowcoder-design/src/icons/remix/coins-fill.svg @@ -1 +1 @@ -<svg viewBox="0 0 24 24" fill="currentColor" xmlns="http://www.w3.org/2000/svg"><path d="M14.0049 2.00275C18.4232 2.00275 22.0049 5.58447 22.0049 10.0027C22.0049 13.2474 20.0733 16.0408 17.2973 17.296C16.0422 20.0717 13.249 22.0027 10.0049 22.0027C5.5866 22.0027 2.00488 18.421 2.00488 14.0027C2.00488 10.7586 3.9359 7.96548 6.71122 6.71006C7.96681 3.93431 10.7603 2.00275 14.0049 2.00275ZM11.0049 9.00275H9.00488V10.0027C7.62417 10.0027 6.50488 11.122 6.50488 12.5027C6.50488 13.8282 7.53642 14.9128 8.84051 14.9974L9.00488 15.0027H11.0049L11.0948 15.0108C11.328 15.0531 11.5049 15.2573 11.5049 15.5027C11.5049 15.7482 11.328 15.9524 11.0948 15.9947L11.0049 16.0027H7.00488V18.0027H9.00488V19.0027H11.0049V18.0027C12.3856 18.0027 13.5049 16.8835 13.5049 15.5027C13.5049 14.1773 12.4733 13.0927 11.1693 13.0081L11.0049 13.0027H9.00488L8.91501 12.9947C8.68176 12.9524 8.50488 12.7482 8.50488 12.5027C8.50488 12.2573 8.68176 12.0531 8.91501 12.0108L9.00488 12.0027H13.0049V10.0027H11.0049V9.00275ZM14.0049 4.00275C12.2214 4.00275 10.6196 4.78091 9.52064 6.01623C9.68133 6.00758 9.84254 6.00275 10.0049 6.00275C14.4232 6.00275 18.0049 9.58447 18.0049 14.0027C18.0049 14.1654 18 14.327 17.9905 14.4872C19.2265 13.3885 20.0049 11.7865 20.0049 10.0027C20.0049 6.68904 17.3186 4.00275 14.0049 4.00275Z"/></svg> \ No newline at end of file +<svg viewBox="0 0 24 24" fill="currentColor" xmlns="http://www.w3.org/2000/svg"><path d="M14.0049 2.00281C18.4232 2.00281 22.0049 5.58453 22.0049 10.0028C22.0049 13.2474 20.0733 16.0409 17.2973 17.296C16.0422 20.0718 13.249 22.0028 10.0049 22.0028C5.5866 22.0028 2.00488 18.4211 2.00488 14.0028C2.00488 10.7587 3.9359 7.96554 6.71122 6.71012C7.96681 3.93438 10.7603 2.00281 14.0049 2.00281ZM11.0049 9.00281H9.00488V10.0028C7.62417 10.0028 6.50488 11.1221 6.50488 12.5028C6.50488 13.8283 7.53642 14.9128 8.84051 14.9975L9.00488 15.0028H11.0049L11.0948 15.0109C11.328 15.0532 11.5049 15.2573 11.5049 15.5028C11.5049 15.7483 11.328 15.9524 11.0948 15.9948L11.0049 16.0028H7.00488V18.0028H9.00488V19.0028H11.0049V18.0028C12.3856 18.0028 13.5049 16.8835 13.5049 15.5028C13.5049 14.1773 12.4733 13.0928 11.1693 13.0081L11.0049 13.0028H9.00488L8.91501 12.9948C8.68176 12.9524 8.50488 12.7483 8.50488 12.5028C8.50488 12.2573 8.68176 12.0532 8.91501 12.0109L9.00488 12.0028H13.0049V10.0028H11.0049V9.00281ZM14.0049 4.00281C12.2214 4.00281 10.6196 4.78097 9.52064 6.01629C9.68133 6.00764 9.84254 6.00281 10.0049 6.00281C14.4232 6.00281 18.0049 9.58453 18.0049 14.0028C18.0049 14.1655 18 14.327 17.9905 14.4873C19.2265 13.3885 20.0049 11.7866 20.0049 10.0028C20.0049 6.6891 17.3186 4.00281 14.0049 4.00281Z"/></svg> \ No newline at end of file diff --git a/client/packages/lowcoder-design/src/icons/remix/coins-line.svg b/client/packages/lowcoder-design/src/icons/remix/coins-line.svg index 25180f2b04..45ed051d74 100644 --- a/client/packages/lowcoder-design/src/icons/remix/coins-line.svg +++ b/client/packages/lowcoder-design/src/icons/remix/coins-line.svg @@ -1 +1 @@ -<svg viewBox="0 0 24 24" fill="currentColor" xmlns="http://www.w3.org/2000/svg"><path d="M14.0049 2.00275C18.4232 2.00275 22.0049 5.58447 22.0049 10.0027C22.0049 13.2474 20.0733 16.0408 17.2973 17.296C16.0422 20.0717 13.249 22.0027 10.0049 22.0027C5.5866 22.0027 2.00488 18.421 2.00488 14.0027C2.00488 10.7586 3.9359 7.96548 6.71122 6.71006C7.96681 3.93431 10.7603 2.00275 14.0049 2.00275ZM10.0049 8.00275C6.69117 8.00275 4.00488 10.689 4.00488 14.0027C4.00488 17.3165 6.69117 20.0027 10.0049 20.0027C13.3186 20.0027 16.0049 17.3165 16.0049 14.0027C16.0049 10.689 13.3186 8.00275 10.0049 8.00275ZM11.0049 9.00275V10.0027H13.0049V12.0027H9.00488C8.72874 12.0027 8.50488 12.2266 8.50488 12.5027C8.50488 12.7482 8.68176 12.9524 8.91501 12.9947L9.00488 13.0027H11.0049C12.3856 13.0027 13.5049 14.122 13.5049 15.5027C13.5049 16.8835 12.3856 18.0027 11.0049 18.0027V19.0027H9.00488V18.0027H7.00488V16.0027H11.0049C11.281 16.0027 11.5049 15.7789 11.5049 15.5027C11.5049 15.2573 11.328 15.0531 11.0948 15.0108L11.0049 15.0027H9.00488C7.62417 15.0027 6.50488 13.8835 6.50488 12.5027C6.50488 11.122 7.62417 10.0027 9.00488 10.0027V9.00275H11.0049ZM14.0049 4.00275C12.2214 4.00275 10.6196 4.78091 9.52064 6.01623C9.68133 6.00758 9.84254 6.00275 10.0049 6.00275C14.4232 6.00275 18.0049 9.58447 18.0049 14.0027C18.0049 14.1654 18 14.327 17.9905 14.4872C19.2265 13.3885 20.0049 11.7865 20.0049 10.0027C20.0049 6.68904 17.3186 4.00275 14.0049 4.00275Z"/></svg> \ No newline at end of file +<svg viewBox="0 0 24 24" fill="currentColor" xmlns="http://www.w3.org/2000/svg"><path d="M14.0049 2.00281C18.4232 2.00281 22.0049 5.58453 22.0049 10.0028C22.0049 13.2474 20.0733 16.0409 17.2973 17.296C16.0422 20.0718 13.249 22.0028 10.0049 22.0028C5.5866 22.0028 2.00488 18.4211 2.00488 14.0028C2.00488 10.7587 3.9359 7.96554 6.71122 6.71012C7.96681 3.93438 10.7603 2.00281 14.0049 2.00281ZM10.0049 8.00281C6.69117 8.00281 4.00488 10.6891 4.00488 14.0028C4.00488 17.3165 6.69117 20.0028 10.0049 20.0028C13.3186 20.0028 16.0049 17.3165 16.0049 14.0028C16.0049 10.6891 13.3186 8.00281 10.0049 8.00281ZM11.0049 9.00281V10.0028H13.0049V12.0028H9.00488C8.72874 12.0028 8.50488 12.2267 8.50488 12.5028C8.50488 12.7483 8.68176 12.9524 8.91501 12.9948L9.00488 13.0028H11.0049C12.3856 13.0028 13.5049 14.1221 13.5049 15.5028C13.5049 16.8835 12.3856 18.0028 11.0049 18.0028V19.0028H9.00488V18.0028H7.00488V16.0028H11.0049C11.281 16.0028 11.5049 15.7789 11.5049 15.5028C11.5049 15.2573 11.328 15.0532 11.0948 15.0109L11.0049 15.0028H9.00488C7.62417 15.0028 6.50488 13.8835 6.50488 12.5028C6.50488 11.1221 7.62417 10.0028 9.00488 10.0028V9.00281H11.0049ZM14.0049 4.00281C12.2214 4.00281 10.6196 4.78097 9.52064 6.01629C9.68133 6.00764 9.84254 6.00281 10.0049 6.00281C14.4232 6.00281 18.0049 9.58453 18.0049 14.0028C18.0049 14.1655 18 14.327 17.9905 14.4873C19.2265 13.3885 20.0049 11.7866 20.0049 10.0028C20.0049 6.6891 17.3186 4.00281 14.0049 4.00281Z"/></svg> \ No newline at end of file diff --git a/client/packages/lowcoder-design/src/icons/remix/collapse-diagonal-2-fill.svg b/client/packages/lowcoder-design/src/icons/remix/collapse-diagonal-2-fill.svg new file mode 100644 index 0000000000..bc81f08a7f --- /dev/null +++ b/client/packages/lowcoder-design/src/icons/remix/collapse-diagonal-2-fill.svg @@ -0,0 +1 @@ +<svg viewBox="0 0 24 24" fill="currentColor" xmlns="http://www.w3.org/2000/svg"><path d="M3.50008 11.0001H11.0001V3.50008L7.95718 6.54297L4.70718 3.29297L3.29297 4.70718L6.54297 7.95718L3.50008 11.0001ZM20.5 13H13V20.5L16.0429 17.4571L19.2929 20.7071L20.7071 19.2929L17.4571 16.0429L20.5 13Z"/></svg> \ No newline at end of file diff --git a/client/packages/lowcoder-design/src/icons/remix/collapse-diagonal-2-line.svg b/client/packages/lowcoder-design/src/icons/remix/collapse-diagonal-2-line.svg new file mode 100644 index 0000000000..be3c64793b --- /dev/null +++ b/client/packages/lowcoder-design/src/icons/remix/collapse-diagonal-2-line.svg @@ -0,0 +1 @@ +<svg viewBox="0 0 24 24" fill="currentColor" xmlns="http://www.w3.org/2000/svg"><path d="M9.00008 4.00008H11.0001V11.0001H4.00008V9.00008H7.58586L3.29297 4.70718L4.70718 3.29297L9.00008 7.58586V4.00008ZM20 15H16.4142L20.7071 19.2929L19.2929 20.7071L15 16.4142V20H13V13H20V15Z"/></svg> \ No newline at end of file diff --git a/client/packages/lowcoder-design/src/icons/remix/collapse-diagonal-fill.svg b/client/packages/lowcoder-design/src/icons/remix/collapse-diagonal-fill.svg new file mode 100644 index 0000000000..5fbfdb87f4 --- /dev/null +++ b/client/packages/lowcoder-design/src/icons/remix/collapse-diagonal-fill.svg @@ -0,0 +1 @@ +<svg viewBox="0 0 24 24" fill="currentColor" xmlns="http://www.w3.org/2000/svg"><path d="M20.5 11.0001H13V3.50008L16.0429 6.54297L19.2929 3.29297L20.7071 4.70718L17.4571 7.95718L20.5 11.0001ZM3.50008 13H11.0001V20.5L7.95718 17.4571L4.70718 20.7071L3.29297 19.2929L6.54297 16.0429L3.50008 13Z"/></svg> \ No newline at end of file diff --git a/client/packages/lowcoder-design/src/icons/remix/collapse-diagonal-line.svg b/client/packages/lowcoder-design/src/icons/remix/collapse-diagonal-line.svg new file mode 100644 index 0000000000..39a1e07c1c --- /dev/null +++ b/client/packages/lowcoder-design/src/icons/remix/collapse-diagonal-line.svg @@ -0,0 +1 @@ +<svg viewBox="0 0 24 24" fill="currentColor" xmlns="http://www.w3.org/2000/svg"><path d="M15 4.00008H13V11.0001H20V9.00008H16.4142L20.7071 4.70718L19.2929 3.29297L15 7.58586V4.00008ZM4.00008 15H7.58586L3.29297 19.2929L4.70718 20.7071L9.00008 16.4142V20H11.0001V13H4.00008V15Z"/></svg> \ No newline at end of file diff --git a/client/packages/lowcoder-design/src/icons/remix/collapse-horizontal-fill.svg b/client/packages/lowcoder-design/src/icons/remix/collapse-horizontal-fill.svg new file mode 100644 index 0000000000..35ec4a983c --- /dev/null +++ b/client/packages/lowcoder-design/src/icons/remix/collapse-horizontal-fill.svg @@ -0,0 +1 @@ +<svg viewBox="0 0 24 24" fill="currentColor" xmlns="http://www.w3.org/2000/svg"><path d="M13.5 12 18.4497 7.05029 18.4488 11H23V13H18.4483L18.4473 16.9473 13.5 12ZM1 13H5.55013L5.55005 16.9493 10.5 11.9996 5.55025 7.0498 5.55017 11H1V13Z"/></svg> \ No newline at end of file diff --git a/client/packages/lowcoder-design/src/icons/remix/collapse-horizontal-line.svg b/client/packages/lowcoder-design/src/icons/remix/collapse-horizontal-line.svg new file mode 100644 index 0000000000..cccd9ee797 --- /dev/null +++ b/client/packages/lowcoder-design/src/icons/remix/collapse-horizontal-line.svg @@ -0,0 +1 @@ +<svg viewBox="0 0 24 24" fill="currentColor" xmlns="http://www.w3.org/2000/svg"><path d="M13.5 12 18.4497 7.05029 19.864 8.46451 17.3284 11H23V13H17.3284L19.8615 15.5331 18.4473 16.9473 13.5 12ZM1 13H6.67084L4.13584 15.535 5.55005 16.9493 10.5 11.9996 5.55025 7.0498 4.13604 8.46402 6.67206 11H1V13Z"/></svg> \ No newline at end of file diff --git a/client/packages/lowcoder-design/src/icons/remix/collapse-vertical-fill.svg b/client/packages/lowcoder-design/src/icons/remix/collapse-vertical-fill.svg new file mode 100644 index 0000000000..241e7b3b12 --- /dev/null +++ b/client/packages/lowcoder-design/src/icons/remix/collapse-vertical-fill.svg @@ -0,0 +1 @@ +<svg viewBox="0 0 24 24" fill="currentColor" xmlns="http://www.w3.org/2000/svg"><path d="M11.9995 13.4995 16.9493 18.4493 12.9995 18.4483 12.9995 22.9995H10.9995L10.9995 18.4478 7.05225 18.4468 11.9995 13.4995ZM10.9995.999512 10.9995 5.54964 7.05029 5.54956 12 10.4995 16.9497 5.54977 12.9995 5.54968V.999512L10.9995.999512Z"/></svg> \ No newline at end of file diff --git a/client/packages/lowcoder-design/src/icons/remix/collapse-vertical-line.svg b/client/packages/lowcoder-design/src/icons/remix/collapse-vertical-line.svg new file mode 100644 index 0000000000..4ac65c0106 --- /dev/null +++ b/client/packages/lowcoder-design/src/icons/remix/collapse-vertical-line.svg @@ -0,0 +1 @@ +<svg viewBox="0 0 24 24" fill="currentColor" xmlns="http://www.w3.org/2000/svg"><path d="M11.9995 13.4995 16.9493 18.4493 15.535 19.8635 12.9995 17.3279 12.9995 22.9995H10.9995L10.9995 17.3279 8.46646 19.861 7.05225 18.4468 11.9995 13.4995ZM10.9995.999512 10.9995 6.67035 8.46451 4.13535 7.05029 5.54956 12 10.4995 16.9497 5.54977 15.5355 4.13555 12.9995 6.67157V.999512L10.9995.999512Z"/></svg> \ No newline at end of file diff --git a/client/packages/lowcoder-design/src/icons/remix/color-filter-ai-fill.svg b/client/packages/lowcoder-design/src/icons/remix/color-filter-ai-fill.svg new file mode 100644 index 0000000000..b0669fa30f --- /dev/null +++ b/client/packages/lowcoder-design/src/icons/remix/color-filter-ai-fill.svg @@ -0,0 +1 @@ +<svg viewBox="0 0 25 24" fill="currentColor" xmlns="http://www.w3.org/2000/svg"><path d="M15.5111 7.30032C15.8957 7.46801 16.2807 7.63473 16.6635 7.80646C16.6346 7.88102 16.604 7.95471 16.5717 8.02749C14.576 8.20785 12.6858 9.24029 11.4704 10.9723C8.95785 10.7079 6.99981 8.58261 6.99981 6C6.99981 3.23858 9.23839 1 11.9998 1C13.4594 1 14.773 1.62543 15.687 2.62292C14.7051 3.05106 14 3.8962 14 4.99997C14 5.9935 14.6012 6.90361 15.5111 7.30032ZM13.1542 17.9462C13.996 16.1276 14.047 13.9741 13.1547 12.0554C14.6399 10.0118 17.4591 9.37883 19.6956 10.6701C22.087 12.0509 22.9064 15.1086 21.5257 17.5C20.145 19.8915 17.087 20.7109 14.6956 19.3302C14.0707 18.9694 13.5532 18.4942 13.1542 17.9462ZM6.27311 10.0269C7.42726 11.6652 9.26672 12.786 11.3746 12.9726C12.4016 15.2807 11.5401 18.0388 9.30357 19.3301C6.91211 20.7108 3.85415 19.8914 2.47344 17.5C1.09273 15.1085 1.91211 12.0505 4.30357 10.6698C4.92851 10.309 5.59897 10.0984 6.27311 10.0269ZM16.8763 5.7134L16.3106 5.46682C15.8965 5.28637 15.8965 4.71357 16.3106 4.53312L16.8763 4.28656C17.8849 3.84706 18.688 3.05545 19.1273 2.06767L19.4652 1.30805C19.6479 0.897318 20.2456 0.897318 20.4283 1.30805L20.7472 2.0252C21.1979 3.03838 22.0307 3.84417 23.0736 4.27612L23.6849 4.52932C24.1109 4.70578 24.1109 5.29417 23.6849 5.47063L23.0736 5.72382C22.0307 6.15577 21.1979 6.96158 20.7472 7.9748L20.4283 8.69188C20.2456 9.10271 19.6479 9.10271 19.4652 8.69188L19.1273 7.93228C18.688 6.94451 17.8849 6.15288 16.8763 5.7134Z"/></svg> \ No newline at end of file diff --git a/client/packages/lowcoder-design/src/icons/remix/color-filter-ai-line.svg b/client/packages/lowcoder-design/src/icons/remix/color-filter-ai-line.svg new file mode 100644 index 0000000000..43273fc998 --- /dev/null +++ b/client/packages/lowcoder-design/src/icons/remix/color-filter-ai-line.svg @@ -0,0 +1 @@ +<svg viewBox="0 0 24 24" fill="currentColor" xmlns="http://www.w3.org/2000/svg"><path d="M6.00723 7.29726C6.00242 7.19876 5.99998 7.09965 5.99998 7C5.99998 3.68629 8.68627 1 12 1C13.3496 1 14.5977 1.44677 15.6006 2.20007L14.3994 3.7992C13.731 3.29712 12.9016 3 12 3C11.7239 3 11.4542 3.02798 11.1938 3.08127C9.37112 3.45426 8 5.06701 8 7C8 9.03308 9.51679 10.7119 11.4805 10.9666C12.5039 9.55847 14.055 8.70883 15.696 8.53306C16.3796 8.45983 17.0792 8.50382 17.7635 8.67248C18.3006 8.80481 18.828 9.01404 19.33 9.3039C22.1998 10.9608 23.183 14.6303 21.5262 17.5C19.8693 20.3698 16.1998 21.3531 13.33 19.6962C12.828 19.4064 12.3832 19.0543 12 18.6554C11.6169 19.0543 11.172 19.4064 10.6699 19.6963C7.80019 21.3531 4.13065 20.3699 2.47379 17.5001C0.81694 14.6304 1.80019 10.9608 4.66995 9.30397C5.17193 9.01416 5.69919 8.80494 6.23623 8.67261C6.11278 8.24646 6.03531 7.80079 6.00955 7.3413L6.00723 7.29726ZM7.14979 10.5328C6.64359 10.5989 6.14138 10.7638 5.66995 11.036C3.75678 12.1406 3.10128 14.587 4.20585 16.5001C5.31042 18.4133 7.75678 19.0688 9.66995 17.9642C10.3021 17.5993 10.7949 17.09 11.1337 16.5024C11.7429 15.4457 11.8532 14.1391 11.3649 12.9669C10.9807 12.9264 10.6072 12.8497 10.2481 12.7402C10.2028 12.7264 10.1577 12.712 10.1128 12.6972C8.91238 12.2997 7.87997 11.5335 7.14979 10.5328ZM13.1543 16.9343C13.4647 17.3396 13.8586 17.692 14.33 17.9642C16.2432 19.0687 18.6895 18.4132 19.7941 16.5C20.2936 15.635 20.4332 14.6609 20.2593 13.7511C20.0488 12.6488 19.3781 11.6409 18.33 11.0357C17.6978 10.6708 17.0104 10.4986 16.3322 10.499C15.1125 10.4998 13.9259 11.0576 13.1548 12.0666C13.2661 12.3165 13.3588 12.5707 13.4336 12.8277C13.4336 12.8277 13.4336 12.8277 13.4336 12.8277C13.4774 12.9785 13.5151 13.1302 13.5467 13.2825C13.5602 13.3478 13.5726 13.4131 13.5839 13.4786C13.7871 14.6567 13.6297 15.8611 13.1543 16.9343ZM18.5774 7C18.866 7.33402 19.106 7.71371 19.2866 8.12811L19.5331 8.69379C19.7136 9.10792 20.2864 9.10792 20.4668 8.69379L20.7134 8.12811C21.1529 7.11947 21.9445 6.31641 22.9323 5.87708L23.6919 5.53922C24.1027 5.35653 24.1027 4.75881 23.6919 4.57612L22.9748 4.25714C21.9616 3.80651 21.1558 2.97373 20.7238 1.93083L20.4706 1.31953C20.2942 0.893489 19.7058 0.893489 19.5293 1.31953L19.2761 1.93083C19.1965 2.12319 19.1041 2.3084 19 2.48538C18.5399 3.26793 17.8515 3.88963 17.0252 4.25714L16.308 4.57612C15.8973 4.75881 15.8973 5.35653 16.308 5.53922L17.0677 5.87708C17.6496 6.13591 18.1635 6.521 18.5774 7Z"/></svg> \ No newline at end of file diff --git a/client/packages/lowcoder-design/src/icons/remix/contract-left-right-line.svg b/client/packages/lowcoder-design/src/icons/remix/contract-left-right-line.svg index 1c31760ad4..c65ce81c50 100644 --- a/client/packages/lowcoder-design/src/icons/remix/contract-left-right-line.svg +++ b/client/packages/lowcoder-design/src/icons/remix/contract-left-right-line.svg @@ -1 +1 @@ -<svg viewBox="0 0 24 24" fill="currentColor" xmlns="http://www.w3.org/2000/svg"><path d="M18.7931 5.79285 12.586 12 18.7931 18.2071 20.2073 16.7928 15.4144 12 20.2073 7.20706 18.7931 5.79285ZM5.20697 18.2072 11.4141 12.0001 5.20697 5.793 3.79276 7.20721 8.58565 12.0001 3.79276 16.793 5.20697 18.2072Z"/></svg> \ No newline at end of file +<svg viewBox="0 0 24 24" fill="currentColor" xmlns="http://www.w3.org/2000/svg"><path d="M18.793 5.79285 12.5859 12 18.793 18.2071 20.2073 16.7928 15.4144 12 20.2073 7.20706 18.793 5.79285ZM5.20695 18.2072 11.4141 12.0001 5.20695 5.793 3.79274 7.20721 8.58563 12.0001 3.79274 16.793 5.20695 18.2072Z"/></svg> \ No newline at end of file diff --git a/client/packages/lowcoder-design/src/icons/remix/corner-up-left-double-fill.svg b/client/packages/lowcoder-design/src/icons/remix/corner-up-left-double-fill.svg index 1cd4b65edf..3d62fac47f 100644 --- a/client/packages/lowcoder-design/src/icons/remix/corner-up-left-double-fill.svg +++ b/client/packages/lowcoder-design/src/icons/remix/corner-up-left-double-fill.svg @@ -1 +1 @@ -<svg viewBox="0 0 24 24" fill="currentColor" xmlns="http://www.w3.org/2000/svg"><path d="M20.0003 19.0001 20.0002 10.0002 14.4141 10.0002V4.58588L7.99994 11.0001 14.4141 17.4143V12.0002L18.0002 12.0002 18.0003 19.0001 20.0003 19.0001ZM10.1637 6.05023 8.74951 4.63601 2.38554 11 8.7495 17.3639 10.1637 15.9497 5.21397 11 10.1637 6.05023Z"/></svg> \ No newline at end of file +<svg viewBox="0 0 24 24" fill="currentColor" xmlns="http://www.w3.org/2000/svg"><path d="M20.0003 19.0001 20.0002 10.0002 14.4142 10.0002V4.58588L7.99995 11.0001 14.4142 17.4143V12.0002L18.0002 12.0002 18.0003 19.0001 20.0003 19.0001ZM10.1637 6.05023 8.74951 4.63601 2.38555 11 8.74951 17.3639 10.1637 15.9497 5.21398 11 10.1637 6.05023Z"/></svg> \ No newline at end of file diff --git a/client/packages/lowcoder-design/src/icons/remix/coupon-5-fill.svg b/client/packages/lowcoder-design/src/icons/remix/coupon-5-fill.svg index b6361c4ce0..ba7627edea 100644 --- a/client/packages/lowcoder-design/src/icons/remix/coupon-5-fill.svg +++ b/client/packages/lowcoder-design/src/icons/remix/coupon-5-fill.svg @@ -1 +1 @@ -<svg viewBox="0 0 24 24" fill="currentColor" xmlns="http://www.w3.org/2000/svg"><path d="M21.0049 13.9997V20.9997C21.0049 21.5519 20.5572 21.9997 20.0049 21.9997H4.00488C3.4526 21.9997 3.00488 21.5519 3.00488 20.9997V13.9997C4.10945 13.9997 5.00488 13.1042 5.00488 11.9997C5.00488 10.8951 4.10945 9.99966 3.00488 9.99966V2.99966C3.00488 2.44738 3.4526 1.99966 4.00488 1.99966H20.0049C20.5572 1.99966 21.0049 2.44738 21.0049 2.99966V9.99966C19.9003 9.99966 19.0049 10.8951 19.0049 11.9997C19.0049 13.1042 19.9003 13.9997 21.0049 13.9997ZM9.00488 5.99966V7.99966H15.0049V5.99966H9.00488ZM9.00488 15.9997V17.9997H15.0049V15.9997H9.00488Z"/></svg> \ No newline at end of file +<svg viewBox="0 0 24 24" fill="currentColor" xmlns="http://www.w3.org/2000/svg"><path d="M21.0049 13.9997V20.9997C21.0049 21.552 20.5572 21.9997 20.0049 21.9997H4.00488C3.4526 21.9997 3.00488 21.552 3.00488 20.9997V13.9997C4.10945 13.9997 5.00488 13.1043 5.00488 11.9997C5.00488 10.8951 4.10945 9.99969 3.00488 9.99969V2.99969C3.00488 2.44741 3.4526 1.99969 4.00488 1.99969H20.0049C20.5572 1.99969 21.0049 2.44741 21.0049 2.99969V9.99969C19.9003 9.99969 19.0049 10.8951 19.0049 11.9997C19.0049 13.1043 19.9003 13.9997 21.0049 13.9997ZM9.00488 5.99969V7.99969H15.0049V5.99969H9.00488ZM9.00488 15.9997V17.9997H15.0049V15.9997H9.00488Z"/></svg> \ No newline at end of file diff --git a/client/packages/lowcoder-design/src/icons/remix/currency-fill.svg b/client/packages/lowcoder-design/src/icons/remix/currency-fill.svg index ea8302992a..e61e222951 100644 --- a/client/packages/lowcoder-design/src/icons/remix/currency-fill.svg +++ b/client/packages/lowcoder-design/src/icons/remix/currency-fill.svg @@ -1 +1 @@ -<svg viewBox="0 0 24 24" fill="currentColor" xmlns="http://www.w3.org/2000/svg"><path d="M17.0047 16.0027H19.0047V4.00275H9.00468V6.00275H17.0047V16.0027ZM17.0047 18.0027V21.0019C17.0047 21.5546 16.5547 22.0027 15.9978 22.0027H4.01154C3.45548 22.0027 3.00488 21.5581 3.00488 21.0019L3.00748 7.00362C3.00759 6.45085 3.45752 6.00275 4.0143 6.00275H7.00468V3.00275C7.00468 2.45046 7.4524 2.00275 8.00468 2.00275H20.0047C20.557 2.00275 21.0047 2.45046 21.0047 3.00275V17.0027C21.0047 17.555 20.557 18.0027 20.0047 18.0027H17.0047ZM7.00468 16.0027V18.0027H9.00468V19.0027H11.0047V18.0027H11.5047C12.8854 18.0027 14.0047 16.8835 14.0047 15.5027C14.0047 14.122 12.8854 13.0027 11.5047 13.0027H8.50468C8.22854 13.0027 8.00468 12.7789 8.00468 12.5027C8.00468 12.2266 8.22854 12.0027 8.50468 12.0027H13.0047V10.0027H11.0047V9.00275H9.00468V10.0027H8.50468C7.12397 10.0027 6.00468 11.122 6.00468 12.5027C6.00468 13.8835 7.12397 15.0027 8.50468 15.0027H11.5047C11.7808 15.0027 12.0047 15.2266 12.0047 15.5027C12.0047 15.7789 11.7808 16.0027 11.5047 16.0027H7.00468Z"/></svg> \ No newline at end of file +<svg viewBox="0 0 24 24" fill="currentColor" xmlns="http://www.w3.org/2000/svg"><path d="M17.0047 16.0028H19.0047V4.00281H9.00468V6.00281H17.0047V16.0028ZM17.0047 18.0028V21.0019C17.0047 21.5547 16.5547 22.0028 15.9978 22.0028H4.01154C3.45548 22.0028 3.00488 21.5582 3.00488 21.0019L3.00748 7.00368C3.00759 6.45091 3.45752 6.00281 4.0143 6.00281H7.00468V3.00281C7.00468 2.45052 7.4524 2.00281 8.00468 2.00281H20.0047C20.557 2.00281 21.0047 2.45052 21.0047 3.00281V17.0028C21.0047 17.5551 20.557 18.0028 20.0047 18.0028H17.0047ZM7.00468 16.0028V18.0028H9.00468V19.0028H11.0047V18.0028H11.5047C12.8854 18.0028 14.0047 16.8835 14.0047 15.5028C14.0047 14.1221 12.8854 13.0028 11.5047 13.0028H8.50468C8.22854 13.0028 8.00468 12.7789 8.00468 12.5028C8.00468 12.2267 8.22854 12.0028 8.50468 12.0028H13.0047V10.0028H11.0047V9.00281H9.00468V10.0028H8.50468C7.12397 10.0028 6.00468 11.1221 6.00468 12.5028C6.00468 13.8835 7.12397 15.0028 8.50468 15.0028H11.5047C11.7808 15.0028 12.0047 15.2267 12.0047 15.5028C12.0047 15.7789 11.7808 16.0028 11.5047 16.0028H7.00468Z"/></svg> \ No newline at end of file diff --git a/client/packages/lowcoder-design/src/icons/remix/currency-line.svg b/client/packages/lowcoder-design/src/icons/remix/currency-line.svg index 2f48c43d94..bdfa0839f6 100644 --- a/client/packages/lowcoder-design/src/icons/remix/currency-line.svg +++ b/client/packages/lowcoder-design/src/icons/remix/currency-line.svg @@ -1 +1 @@ -<svg viewBox="0 0 24 24" fill="currentColor" xmlns="http://www.w3.org/2000/svg"><path d="M17.0047 16.0027H19.0047V4.00275H9.00468V6.00275H17.0047V16.0027ZM17.0047 18.0027V21.0019C17.0047 21.5546 16.5547 22.0027 15.9978 22.0027H4.01154C3.45548 22.0027 3.00488 21.5581 3.00488 21.0019L3.00748 7.00362C3.00759 6.45085 3.45752 6.00275 4.0143 6.00275H7.00468V3.00275C7.00468 2.45046 7.4524 2.00275 8.00468 2.00275H20.0047C20.557 2.00275 21.0047 2.45046 21.0047 3.00275V17.0027C21.0047 17.555 20.557 18.0027 20.0047 18.0027H17.0047ZM5.0073 8.00275L5.00507 20.0027H15.0047V8.00275H5.0073ZM7.00468 16.0027H11.5047C11.7808 16.0027 12.0047 15.7789 12.0047 15.5027C12.0047 15.2266 11.7808 15.0027 11.5047 15.0027H8.50468C7.12397 15.0027 6.00468 13.8835 6.00468 12.5027C6.00468 11.122 7.12397 10.0027 8.50468 10.0027H9.00468V9.00275H11.0047V10.0027H13.0047V12.0027H8.50468C8.22854 12.0027 8.00468 12.2266 8.00468 12.5027C8.00468 12.7789 8.22854 13.0027 8.50468 13.0027H11.5047C12.8854 13.0027 14.0047 14.122 14.0047 15.5027C14.0047 16.8835 12.8854 18.0027 11.5047 18.0027H11.0047V19.0027H9.00468V18.0027H7.00468V16.0027Z"/></svg> \ No newline at end of file +<svg viewBox="0 0 24 24" fill="currentColor" xmlns="http://www.w3.org/2000/svg"><path d="M17.0047 16.0028H19.0047V4.00281H9.00468V6.00281H17.0047V16.0028ZM17.0047 18.0028V21.0019C17.0047 21.5547 16.5547 22.0028 15.9978 22.0028H4.01154C3.45548 22.0028 3.00488 21.5582 3.00488 21.0019L3.00748 7.00368C3.00759 6.45091 3.45752 6.00281 4.0143 6.00281H7.00468V3.00281C7.00468 2.45052 7.4524 2.00281 8.00468 2.00281H20.0047C20.557 2.00281 21.0047 2.45052 21.0047 3.00281V17.0028C21.0047 17.5551 20.557 18.0028 20.0047 18.0028H17.0047ZM5.0073 8.00281L5.00507 20.0028H15.0047V8.00281H5.0073ZM7.00468 16.0028H11.5047C11.7808 16.0028 12.0047 15.7789 12.0047 15.5028C12.0047 15.2267 11.7808 15.0028 11.5047 15.0028H8.50468C7.12397 15.0028 6.00468 13.8835 6.00468 12.5028C6.00468 11.1221 7.12397 10.0028 8.50468 10.0028H9.00468V9.00281H11.0047V10.0028H13.0047V12.0028H8.50468C8.22854 12.0028 8.00468 12.2267 8.00468 12.5028C8.00468 12.7789 8.22854 13.0028 8.50468 13.0028H11.5047C12.8854 13.0028 14.0047 14.1221 14.0047 15.5028C14.0047 16.8835 12.8854 18.0028 11.5047 18.0028H11.0047V19.0028H9.00468V18.0028H7.00468V16.0028Z"/></svg> \ No newline at end of file diff --git a/client/packages/lowcoder-design/src/icons/remix/custom-size.svg b/client/packages/lowcoder-design/src/icons/remix/custom-size.svg new file mode 100644 index 0000000000..7c8d630e89 --- /dev/null +++ b/client/packages/lowcoder-design/src/icons/remix/custom-size.svg @@ -0,0 +1 @@ +<svg viewBox="0 0 24 24" fill="currentColor" xmlns="http://www.w3.org/2000/svg"><path d="M8 3H15V0.5L18.5 4L15 7.5V5H8V7.5L4.5 4L8 0.5V3ZM3 17V6.5H5V17C5 18.1046 5.89543 19 7 19H17.5V21H7C4.79086 21 3 19.2091 3 17ZM21 16V9H23.5L20 5.5L16.5 9H19V16H16.5L20 19.5L23.5 16H21Z"/></svg> \ No newline at end of file diff --git a/client/packages/lowcoder-design/src/icons/remix/dashboard-fill.svg b/client/packages/lowcoder-design/src/icons/remix/dashboard-fill.svg index e7a4e4b89a..6c1117c841 100644 --- a/client/packages/lowcoder-design/src/icons/remix/dashboard-fill.svg +++ b/client/packages/lowcoder-design/src/icons/remix/dashboard-fill.svg @@ -1 +1 @@ -<svg viewBox="0 0 24 24" fill="currentColor" xmlns="http://www.w3.org/2000/svg"><path d="M3 13H11V3H3V13ZM3 21H11V15H3V21ZM13 21H21V11H13V21ZM13 3V9H21V3H13Z"/></svg> \ No newline at end of file +<svg viewBox="0 0 24 24" fill="currentColor" xmlns="http://www.w3.org/2000/svg"><path d="M3 12C3 12.5523 3.44772 13 4 13H10C10.5523 13 11 12.5523 11 12V4C11 3.44772 10.5523 3 10 3H4C3.44772 3 3 3.44772 3 4V12ZM3 20C3 20.5523 3.44772 21 4 21H10C10.5523 21 11 20.5523 11 20V16C11 15.4477 10.5523 15 10 15H4C3.44772 15 3 15.4477 3 16V20ZM13 20C13 20.5523 13.4477 21 14 21H20C20.5523 21 21 20.5523 21 20V12C21 11.4477 20.5523 11 20 11H14C13.4477 11 13 11.4477 13 12V20ZM14 3C13.4477 3 13 3.44772 13 4V8C13 8.55228 13.4477 9 14 9H20C20.5523 9 21 8.55228 21 8V4C21 3.44772 20.5523 3 20 3H14Z"/></svg> \ No newline at end of file diff --git a/client/packages/lowcoder-design/src/icons/remix/dashboard-horizontal-fill.svg b/client/packages/lowcoder-design/src/icons/remix/dashboard-horizontal-fill.svg new file mode 100644 index 0000000000..ae5d1b991e --- /dev/null +++ b/client/packages/lowcoder-design/src/icons/remix/dashboard-horizontal-fill.svg @@ -0,0 +1 @@ +<svg viewBox="0 0 24 24" fill="currentColor" xmlns="http://www.w3.org/2000/svg"><path d="M12 3C12.5523 3 13 3.44771 13 4L13 10C13 10.5523 12.5523 11 12 11L4 11C3.44772 11 3 10.5523 3 10L3 4C3 3.44772 3.44772 3 4 3L12 3ZM20 3C20.5523 3 21 3.44771 21 4L21 10C21 10.5523 20.5523 11 20 11L16 11C15.4477 11 15 10.5523 15 10L15 4C15 3.44771 15.4477 3 16 3L20 3ZM20 13C20.5523 13 21 13.4477 21 14L21 20C21 20.5523 20.5523 21 20 21L12 21C11.4477 21 11 20.5523 11 20L11 14C11 13.4477 11.4477 13 12 13L20 13ZM3 14C3 13.4477 3.44772 13 4 13L8 13C8.55229 13 9 13.4477 9 14L9 20C9 20.5523 8.55229 21 8 21L4 21C3.44772 21 3 20.5523 3 20L3 14Z"/></svg> \ No newline at end of file diff --git a/client/packages/lowcoder-design/src/icons/remix/dashboard-horizontal-line.svg b/client/packages/lowcoder-design/src/icons/remix/dashboard-horizontal-line.svg new file mode 100644 index 0000000000..70c79c8f04 --- /dev/null +++ b/client/packages/lowcoder-design/src/icons/remix/dashboard-horizontal-line.svg @@ -0,0 +1 @@ +<svg viewBox="0 0 24 24" fill="currentColor" xmlns="http://www.w3.org/2000/svg"><path d="M3 10C3 10.5523 3.44772 11 4 11L12 11C12.5523 11 13 10.5523 13 10V4C13 3.44772 12.5523 3 12 3H4C3.44772 3 3 3.44772 3 4V10ZM11 20C11 20.5523 11.4477 21 12 21H20C20.5523 21 21 20.5523 21 20V14C21 13.4477 20.5523 13 20 13H12C11.4477 13 11 13.4477 11 14V20ZM13 15H19V19H13V15ZM3 20C3 20.5523 3.44772 21 4 21H8C8.55229 21 9 20.5523 9 20V14C9 13.4477 8.55229 13 8 13H4C3.44772 13 3 13.4477 3 14V20ZM5 19V15H7V19H5ZM5 9V5L11 5L11 9L5 9ZM20 11C20.5523 11 21 10.5523 21 10V4C21 3.44772 20.5523 3 20 3H16C15.4477 3 15 3.44772 15 4V10C15 10.5523 15.4477 11 16 11H20ZM19 9H17V5H19V9Z"/></svg> \ No newline at end of file diff --git a/client/packages/lowcoder-design/src/icons/remix/dashboard-line.svg b/client/packages/lowcoder-design/src/icons/remix/dashboard-line.svg index a0178465f6..ad64197d8b 100644 --- a/client/packages/lowcoder-design/src/icons/remix/dashboard-line.svg +++ b/client/packages/lowcoder-design/src/icons/remix/dashboard-line.svg @@ -1 +1 @@ -<svg viewBox="0 0 24 24" fill="currentColor" xmlns="http://www.w3.org/2000/svg"><path d="M13 21V11H21V21H13ZM3 13V3H11V13H3ZM9 11V5H5V11H9ZM3 21V15H11V21H3ZM5 19H9V17H5V19ZM15 19H19V13H15V19ZM13 3H21V9H13V3ZM15 5V7H19V5H15Z"/></svg> \ No newline at end of file +<svg viewBox="0 0 24 24" fill="currentColor" xmlns="http://www.w3.org/2000/svg"><path d="M14 21C13.4477 21 13 20.5523 13 20V12C13 11.4477 13.4477 11 14 11H20C20.5523 11 21 11.4477 21 12V20C21 20.5523 20.5523 21 20 21H14ZM4 13C3.44772 13 3 12.5523 3 12V4C3 3.44772 3.44772 3 4 3H10C10.5523 3 11 3.44772 11 4V12C11 12.5523 10.5523 13 10 13H4ZM9 11V5H5V11H9ZM4 21C3.44772 21 3 20.5523 3 20V16C3 15.4477 3.44772 15 4 15H10C10.5523 15 11 15.4477 11 16V20C11 20.5523 10.5523 21 10 21H4ZM5 19H9V17H5V19ZM15 19H19V13H15V19ZM13 4C13 3.44772 13.4477 3 14 3H20C20.5523 3 21 3.44772 21 4V8C21 8.55228 20.5523 9 20 9H14C13.4477 9 13 8.55228 13 8V4ZM15 5V7H19V5H15Z"/></svg> \ No newline at end of file diff --git a/client/packages/lowcoder-design/src/icons/remix/dna-fill.svg b/client/packages/lowcoder-design/src/icons/remix/dna-fill.svg new file mode 100644 index 0000000000..69cfa9fe47 --- /dev/null +++ b/client/packages/lowcoder-design/src/icons/remix/dna-fill.svg @@ -0,0 +1 @@ +<svg viewBox="0 0 24 24" fill="currentColor" xmlns="http://www.w3.org/2000/svg"><path d="M18 1C18 1.71561 17.9359 2.37948 17.8155 3H8.23193C8.87053 5.55223 10.7943 7.22876 13.5829 9.4281C13.0772 9.8647 12.5462 10.294 12 10.7267C8.72906 8.13494 6 5.66845 6 1H4C4 6.46624 7.21013 9.46355 10.3863 12C7.21013 14.5365 4 17.5338 4 23H6C6 18.0404 9.08011 15.566 12.6178 12.7863L12.7096 12.7142C16.149 10.0123 20 6.98705 20 1H18ZM17.8155 21.0002H8.23193C8.89098 18.3663 10.9188 16.665 13.8535 14.3592C14.2973 14.0106 14.7419 13.663 15.1811 13.3086C17.7659 15.5981 20 18.44 20 23.0002H18C18 22.2846 17.9359 21.6207 17.8155 21.0002Z"/></svg> \ No newline at end of file diff --git a/client/packages/lowcoder-design/src/icons/remix/dna-line.svg b/client/packages/lowcoder-design/src/icons/remix/dna-line.svg new file mode 100644 index 0000000000..79c298dbae --- /dev/null +++ b/client/packages/lowcoder-design/src/icons/remix/dna-line.svg @@ -0,0 +1 @@ +<svg viewBox="0 0 24 24" fill="currentColor" xmlns="http://www.w3.org/2000/svg"><path d="M18 1C18 1.71561 17.9359 2.37948 17.8155 3H8.23193C8.41382 3.72694 8.69997 4.38283 9.08066 5H17.1807C16.132 7.31672 14.1871 8.99371 12 10.7267C8.72906 8.13494 6 5.66845 6 1H4C4 6.46624 7.21013 9.46355 10.3863 12C7.21013 14.5365 4 17.5338 4 23H6C6 18.0404 9.08011 15.566 12.6178 12.7863L12.7096 12.7142C16.149 10.0123 20 6.98705 20 1H18ZM17.8155 21.0002H8.23193C8.41382 20.2733 8.69997 19.6174 9.08066 19.0002H17.1807C16.3939 17.262 15.1026 15.8839 13.583 14.5721C14.1162 14.1516 14.6526 13.7351 15.1811 13.3086C17.7659 15.5981 20 18.44 20 23.0002H18C18 22.2846 17.9359 21.6207 17.8155 21.0002Z"/></svg> \ No newline at end of file diff --git a/client/packages/lowcoder-design/src/icons/remix/dropper-fill.svg b/client/packages/lowcoder-design/src/icons/remix/dropper-fill.svg new file mode 100644 index 0000000000..33212ea641 --- /dev/null +++ b/client/packages/lowcoder-design/src/icons/remix/dropper-fill.svg @@ -0,0 +1 @@ +<svg viewBox="0 0 24 24" fill="currentColor" xmlns="http://www.w3.org/2000/svg"><path d="M15.5355 2.80744C17.0976 1.24534 19.6303 1.24534 21.1924 2.80744C22.7545 4.36953 22.7545 6.90219 21.1924 8.46429L18.3638 11.2929L18.7175 11.6466C19.108 12.0371 19.108 12.6703 18.7175 13.0608C18.327 13.4513 17.6938 13.4513 17.3033 13.0608L16.9498 12.7073L10.7351 18.922C10.1767 19.4804 9.46547 19.861 8.6911 20.0159L6.93694 20.3667C6.54976 20.4442 6.19416 20.6345 5.91496 20.9137L4.92894 21.8997C4.53841 22.2902 3.90525 22.2902 3.51472 21.8997L2.10051 20.4855C1.70999 20.095 1.70999 19.4618 2.10051 19.0713L3.08653 18.0852C3.36574 17.806 3.55605 17.4504 3.63348 17.0633L3.98431 15.3091C4.13919 14.5347 4.51981 13.8235 5.07821 13.2651L11.2929 7.05045L10.9393 6.69686C10.5488 6.30634 10.5488 5.67317 10.9393 5.28265C11.3299 4.89212 11.963 4.89212 12.3535 5.28265L12.7069 5.63604L15.5355 2.80744ZM12.7071 8.46466L6.49242 14.6794C6.21322 14.9586 6.02291 15.3142 5.94548 15.7013L5.59464 17.4555C5.43977 18.2299 5.05915 18.9411 4.50075 19.4995C5.05915 18.9411 5.77035 18.5604 6.54471 18.4056L8.29887 18.0547C8.68605 17.9773 9.04165 17.787 9.32085 17.5078L15.5355 11.2931L12.7071 8.46466Z"/></svg> \ No newline at end of file diff --git a/client/packages/lowcoder-design/src/icons/remix/dropper-line.svg b/client/packages/lowcoder-design/src/icons/remix/dropper-line.svg new file mode 100644 index 0000000000..ada5e2384b --- /dev/null +++ b/client/packages/lowcoder-design/src/icons/remix/dropper-line.svg @@ -0,0 +1 @@ +<svg viewBox="0 0 24 24" fill="currentColor" xmlns="http://www.w3.org/2000/svg"><path d="M19.7782 4.22165C20.5592 5.0027 20.5592 6.26903 19.7782 7.05008L16.9498 9.8785L14.1213 7.05008L16.9498 4.22165C17.7308 3.4406 18.9971 3.4406 19.7782 4.22165ZM21.1924 2.80744C19.6303 1.24534 17.0976 1.24534 15.5355 2.80744L12.7071 5.63586L12.3535 5.28265C11.963 4.89212 11.3299 4.89212 10.9393 5.28265C10.5488 5.67317 10.5488 6.30633 10.9393 6.69686L11.2929 7.05044L5.07821 13.2651C4.51981 13.8235 4.13919 14.5347 3.98431 15.3091L3.63348 17.0633C3.55605 17.4504 3.36574 17.806 3.08653 18.0852L2.10051 19.0713C1.70999 19.4618 1.70999 20.095 2.10051 20.4855L3.51472 21.8997C3.90525 22.2902 4.53841 22.2902 4.92894 21.8997L5.91496 20.9137C6.19416 20.6345 6.54976 20.4442 6.93694 20.3667L8.6911 20.0159C9.46547 19.861 10.1767 19.4804 10.7351 18.922L16.9498 12.7073L17.3033 13.0608C17.6938 13.4513 18.327 13.4513 18.7175 13.0608C19.108 12.6703 19.108 12.0371 18.7175 11.6466L18.364 11.2931L21.1924 8.46429C22.7545 6.90219 22.7545 4.36953 21.1924 2.80744ZM12.7071 8.46466L15.5355 11.2931L9.32085 17.5078C9.04165 17.787 8.68605 17.9773 8.29887 18.0547L6.54471 18.4056C5.77035 18.5604 5.05915 18.9411 4.50075 19.4995C5.05915 18.9411 5.43977 18.2299 5.59464 17.4555L5.94548 15.7013C6.02291 15.3142 6.21322 14.9586 6.49242 14.6794L12.7071 8.46466Z"/></svg> \ No newline at end of file diff --git a/client/packages/lowcoder-design/src/icons/remix/dvd-ai-fill.svg b/client/packages/lowcoder-design/src/icons/remix/dvd-ai-fill.svg new file mode 100644 index 0000000000..b962b1ad06 --- /dev/null +++ b/client/packages/lowcoder-design/src/icons/remix/dvd-ai-fill.svg @@ -0,0 +1 @@ +<svg viewBox="0 0 24 24" fill="currentColor" xmlns="http://www.w3.org/2000/svg"><path d="M20.4668 8.69379L20.7134 8.12811C21.1529 7.11947 21.9445 6.31641 22.9323 5.87708L23.6919 5.53922C24.1027 5.35653 24.1027 4.75881 23.6919 4.57612L22.9748 4.25714C21.9616 3.80651 21.1558 2.97373 20.7238 1.93083L20.4706 1.31953C20.2942 0.893489 19.7058 0.893489 19.5293 1.31953L19.2761 1.93083C18.8442 2.97373 18.0384 3.80651 17.0252 4.25714L16.308 4.57612C15.8973 4.75881 15.8973 5.35653 16.308 5.53922L17.0677 5.87708C18.0555 6.31641 18.8471 7.11947 19.2866 8.12811L19.5331 8.69379C19.7136 9.10792 20.2864 9.10792 20.4668 8.69379ZM20 11C20.6695 11 21.3134 10.8903 21.9147 10.688C21.971 11.1174 22 11.5553 22 12C22 17.5228 17.5228 22 12 22C6.47715 22 2 17.5228 2 12C2 6.47715 6.47715 2 12 2C12.9056 2 13.7831 2.12039 14.6174 2.34603C14.2221 3.14617 14 4.04715 14 5C14 8.31371 16.6863 11 20 11ZM13 11V6L8 13H11V18L16 11H13Z"/></svg> \ No newline at end of file diff --git a/client/packages/lowcoder-design/src/icons/remix/dvd-ai-line.svg b/client/packages/lowcoder-design/src/icons/remix/dvd-ai-line.svg new file mode 100644 index 0000000000..243f6d4a5a --- /dev/null +++ b/client/packages/lowcoder-design/src/icons/remix/dvd-ai-line.svg @@ -0,0 +1 @@ +<svg viewBox="0 0 24 24" fill="currentColor" xmlns="http://www.w3.org/2000/svg"><path d="M20.7134 8.12811L20.4668 8.69379C20.2864 9.10792 19.7136 9.10792 19.5331 8.69379L19.2866 8.12811C18.8471 7.11947 18.0555 6.31641 17.0677 5.87708L16.308 5.53922C15.8973 5.35653 15.8973 4.75881 16.308 4.57612L17.0252 4.25714C18.0384 3.80651 18.8442 2.97373 19.2761 1.93083L19.5293 1.31953C19.7058 0.893489 20.2942 0.893489 20.4706 1.31953L20.7238 1.93083C21.1558 2.97373 21.9616 3.80651 22.9748 4.25714L23.6919 4.57612C24.1027 4.75881 24.1027 5.35653 23.6919 5.53922L22.9323 5.87708C21.9445 6.31641 21.1529 7.11947 20.7134 8.12811ZM12 4C7.58172 4 4 7.58172 4 12C4 16.4183 7.58172 20 12 20C16.4183 20 20 16.4183 20 12C20 11.6765 19.9809 11.3579 19.9437 11.0452L21.9298 10.8094C21.9762 11.2002 22 11.5975 22 12C22 17.5228 17.5228 22 12 22C6.47715 22 2 17.5228 2 12C2 6.47715 6.47715 2 12 2C12.8614 2 13.6987 2.10914 14.4983 2.31487L14 4.25179C13.3618 4.0876 12.6919 4 12 4ZM13 11H16L11 18V13H8L13 6V11Z"/></svg> \ No newline at end of file diff --git a/client/packages/lowcoder-design/src/icons/remix/edit-box-fill.svg b/client/packages/lowcoder-design/src/icons/remix/edit-box-fill.svg index 52bcac4b82..dcebb38efe 100644 --- a/client/packages/lowcoder-design/src/icons/remix/edit-box-fill.svg +++ b/client/packages/lowcoder-design/src/icons/remix/edit-box-fill.svg @@ -1 +1 @@ -<svg viewBox="0 0 24 24" fill="currentColor" xmlns="http://www.w3.org/2000/svg"><path d="M16.7574 2.99677L9.29145 10.4627L9.29886 14.7098L13.537 14.7024L21 7.23941V19.9968C21 20.5491 20.5523 20.9968 20 20.9968H4C3.44772 20.9968 3 20.5491 3 19.9968V3.99677C3 3.44448 3.44772 2.99677 4 2.99677H16.7574ZM20.4853 2.09727L21.8995 3.51149L12.7071 12.7039L11.2954 12.7063L11.2929 11.2897L20.4853 2.09727Z"/></svg> \ No newline at end of file +<svg viewBox="0 0 24 24" fill="currentColor" xmlns="http://www.w3.org/2000/svg"><path d="M16.7574 2.99678L9.29145 10.4627L9.29886 14.7099L13.537 14.7024L21 7.23943V19.9968C21 20.5491 20.5523 20.9968 20 20.9968H4C3.44772 20.9968 3 20.5491 3 19.9968V3.99678C3 3.4445 3.44772 2.99678 4 2.99678H16.7574ZM20.4853 2.09729L21.8995 3.5115L12.7071 12.7039L11.2954 12.7064L11.2929 11.2897L20.4853 2.09729Z"/></svg> \ No newline at end of file diff --git a/client/packages/lowcoder-design/src/icons/remix/edit-box-line.svg b/client/packages/lowcoder-design/src/icons/remix/edit-box-line.svg index d182545e3e..21bf1d68ee 100644 --- a/client/packages/lowcoder-design/src/icons/remix/edit-box-line.svg +++ b/client/packages/lowcoder-design/src/icons/remix/edit-box-line.svg @@ -1 +1 @@ -<svg viewBox="0 0 24 24" fill="currentColor" xmlns="http://www.w3.org/2000/svg"><path d="M16.7574 2.99677L14.7574 4.99677H5V18.9968H19V9.23941L21 7.23941V19.9968C21 20.5491 20.5523 20.9968 20 20.9968H4C3.44772 20.9968 3 20.5491 3 19.9968V3.99677C3 3.44448 3.44772 2.99677 4 2.99677H16.7574ZM20.4853 2.09727L21.8995 3.51149L12.7071 12.7039L11.2954 12.7063L11.2929 11.2897L20.4853 2.09727Z"/></svg> \ No newline at end of file +<svg viewBox="0 0 24 24" fill="currentColor" xmlns="http://www.w3.org/2000/svg"><path d="M16.7574 2.99678L14.7574 4.99678H5V18.9968H19V9.23943L21 7.23943V19.9968C21 20.5491 20.5523 20.9968 20 20.9968H4C3.44772 20.9968 3 20.5491 3 19.9968V3.99678C3 3.4445 3.44772 2.99678 4 2.99678H16.7574ZM20.4853 2.09729L21.8995 3.5115L12.7071 12.7039L11.2954 12.7064L11.2929 11.2897L20.4853 2.09729Z"/></svg> \ No newline at end of file diff --git a/client/packages/lowcoder-design/src/icons/remix/expand-diagonal-2-fill.svg b/client/packages/lowcoder-design/src/icons/remix/expand-diagonal-2-fill.svg new file mode 100644 index 0000000000..fcb41bbab6 --- /dev/null +++ b/client/packages/lowcoder-design/src/icons/remix/expand-diagonal-2-fill.svg @@ -0,0 +1 @@ +<svg viewBox="0 0 24 24" fill="currentColor" xmlns="http://www.w3.org/2000/svg"><path d="M3 3H10.5L7.45711 6.04289L10.7071 9.29289L9.29289 10.7071L6.04289 7.45711L3 10.5V3ZM21 21H13.5L16.5429 17.9571L13.2929 14.7071L14.7071 13.2929L17.9571 16.5429L21 13.5V21Z"/></svg> \ No newline at end of file diff --git a/client/packages/lowcoder-design/src/icons/remix/expand-diagonal-2-line.svg b/client/packages/lowcoder-design/src/icons/remix/expand-diagonal-2-line.svg new file mode 100644 index 0000000000..6583215a8a --- /dev/null +++ b/client/packages/lowcoder-design/src/icons/remix/expand-diagonal-2-line.svg @@ -0,0 +1 @@ +<svg viewBox="0 0 24 24" fill="currentColor" xmlns="http://www.w3.org/2000/svg"><path d="M6.41421 5H10V3H3V10H5V6.41421L9.29289 10.7071L10.7071 9.29289L6.41421 5ZM21 14H19V17.5858L14.7071 13.2929L13.2929 14.7071L17.5858 19H14V21H21V14Z"/></svg> \ No newline at end of file diff --git a/client/packages/lowcoder-design/src/icons/remix/expand-diagonal-fill.svg b/client/packages/lowcoder-design/src/icons/remix/expand-diagonal-fill.svg new file mode 100644 index 0000000000..0f8e597def --- /dev/null +++ b/client/packages/lowcoder-design/src/icons/remix/expand-diagonal-fill.svg @@ -0,0 +1 @@ +<svg viewBox="0 0 24 24" fill="currentColor" xmlns="http://www.w3.org/2000/svg"><path d="M21 3H13.5L16.5429 6.04289L13.2929 9.29289L14.7071 10.7071L17.9571 7.45711L21 10.5V3ZM3 21H10.5L7.45711 17.9571L10.7071 14.7071L9.29289 13.2929L6.04289 16.5429L3 13.5V21Z"/></svg> \ No newline at end of file diff --git a/client/packages/lowcoder-design/src/icons/remix/expand-diagonal-line.svg b/client/packages/lowcoder-design/src/icons/remix/expand-diagonal-line.svg new file mode 100644 index 0000000000..32054b5d55 --- /dev/null +++ b/client/packages/lowcoder-design/src/icons/remix/expand-diagonal-line.svg @@ -0,0 +1 @@ +<svg viewBox="0 0 24 24" fill="currentColor" xmlns="http://www.w3.org/2000/svg"><path d="M17.5858 5H14V3H21V10H19V6.41421L14.7071 10.7071L13.2929 9.29289L17.5858 5ZM3 14H5V17.5858L9.29289 13.2929L10.7071 14.7071L6.41421 19H10V21H3V14Z"/></svg> \ No newline at end of file diff --git a/client/packages/lowcoder-design/src/icons/remix/expand-diagonal-s-2-fill.svg b/client/packages/lowcoder-design/src/icons/remix/expand-diagonal-s-2-fill.svg new file mode 100644 index 0000000000..8788f93410 --- /dev/null +++ b/client/packages/lowcoder-design/src/icons/remix/expand-diagonal-s-2-fill.svg @@ -0,0 +1 @@ +<svg viewBox="0 0 24 24" fill="currentColor" xmlns="http://www.w3.org/2000/svg"><path d="M5 5L5 12.5L8.04289 9.45711L14.5429 15.9571L11.5 19H19L19 11.5L15.9571 14.5429L9.45711 8.04289L12.5 5L5 5Z"/></svg> \ No newline at end of file diff --git a/client/packages/lowcoder-design/src/icons/remix/expand-diagonal-s-2-line.svg b/client/packages/lowcoder-design/src/icons/remix/expand-diagonal-s-2-line.svg new file mode 100644 index 0000000000..368da86107 --- /dev/null +++ b/client/packages/lowcoder-design/src/icons/remix/expand-diagonal-s-2-line.svg @@ -0,0 +1 @@ +<svg viewBox="0 0 24 24" fill="currentColor" xmlns="http://www.w3.org/2000/svg"><path d="M7 8.41421V12L5 12L5 5L12 5V7L8.41421 7L17 15.5858V12L19 12L19 19H12V17H15.5858L7 8.41421Z"/></svg> \ No newline at end of file diff --git a/client/packages/lowcoder-design/src/icons/remix/expand-diagonal-s-fill.svg b/client/packages/lowcoder-design/src/icons/remix/expand-diagonal-s-fill.svg new file mode 100644 index 0000000000..eca6101efa --- /dev/null +++ b/client/packages/lowcoder-design/src/icons/remix/expand-diagonal-s-fill.svg @@ -0,0 +1 @@ +<svg viewBox="0 0 24 24" fill="currentColor" xmlns="http://www.w3.org/2000/svg"><path d="M19 5H11.5L14.5429 8.04289L8.04289 14.5429L5 11.5V19H12.5L9.45711 15.9571L15.9571 9.45711L19 12.5V5Z"/></svg> \ No newline at end of file diff --git a/client/packages/lowcoder-design/src/icons/remix/expand-diagonal-s-line.svg b/client/packages/lowcoder-design/src/icons/remix/expand-diagonal-s-line.svg new file mode 100644 index 0000000000..c06feaff3a --- /dev/null +++ b/client/packages/lowcoder-design/src/icons/remix/expand-diagonal-s-line.svg @@ -0,0 +1 @@ +<svg viewBox="0 0 24 24" fill="currentColor" xmlns="http://www.w3.org/2000/svg"><path d="M15.5858 7H12V5H19V12H17V8.41421L8.41421 17H12V19H5V12H7V15.5858L15.5858 7Z"/></svg> \ No newline at end of file diff --git a/client/packages/lowcoder-design/src/icons/remix/expand-horizontal-fill.svg b/client/packages/lowcoder-design/src/icons/remix/expand-horizontal-fill.svg new file mode 100644 index 0000000000..e4e9986cba --- /dev/null +++ b/client/packages/lowcoder-design/src/icons/remix/expand-horizontal-fill.svg @@ -0,0 +1 @@ +<svg viewBox="0 0 24 24" fill="currentColor" xmlns="http://www.w3.org/2000/svg"><path d="M0.5 12L5.44975 7.05029L5.44876 11H10V13H5.44826L5.44727 16.9473L0.5 12ZM14 13H18.5501L18.55 16.9493L23.5 11.9996L18.5503 7.0498L18.5502 11H14V13Z"/></svg> \ No newline at end of file diff --git a/client/packages/lowcoder-design/src/icons/remix/expand-horizontal-line.svg b/client/packages/lowcoder-design/src/icons/remix/expand-horizontal-line.svg new file mode 100644 index 0000000000..e1f60a982b --- /dev/null +++ b/client/packages/lowcoder-design/src/icons/remix/expand-horizontal-line.svg @@ -0,0 +1 @@ +<svg viewBox="0 0 24 24" fill="currentColor" xmlns="http://www.w3.org/2000/svg"><path d="M0.5 12L5.44975 7.05029L6.86396 8.46451L4.32843 11H10V13H4.32843L6.86148 15.5331L5.44727 16.9473L0.5 12ZM14 13H19.6708L17.1358 15.535L18.55 16.9493L23.5 11.9996L18.5503 7.0498L17.136 8.46402L19.6721 11H14V13Z"/></svg> \ No newline at end of file diff --git a/client/packages/lowcoder-design/src/icons/remix/expand-horizontal-s-fill.svg b/client/packages/lowcoder-design/src/icons/remix/expand-horizontal-s-fill.svg new file mode 100644 index 0000000000..491a2be238 --- /dev/null +++ b/client/packages/lowcoder-design/src/icons/remix/expand-horizontal-s-fill.svg @@ -0,0 +1 @@ +<svg viewBox="0 0 24 24" fill="currentColor" xmlns="http://www.w3.org/2000/svg"><path d="M7.44975 7.05017L2.5 11.9999L7.44727 16.9472L7.44826 12.9999H16.5501L16.55 16.9491L21.5 11.9994L16.5503 7.04968L16.5502 10.9999H7.44876L7.44975 7.05017Z"/></svg> \ No newline at end of file diff --git a/client/packages/lowcoder-design/src/icons/remix/expand-horizontal-s-line.svg b/client/packages/lowcoder-design/src/icons/remix/expand-horizontal-s-line.svg new file mode 100644 index 0000000000..b717eb4f75 --- /dev/null +++ b/client/packages/lowcoder-design/src/icons/remix/expand-horizontal-s-line.svg @@ -0,0 +1 @@ +<svg viewBox="0 0 24 24" fill="currentColor" xmlns="http://www.w3.org/2000/svg"><path d="M7.44975 7.05029L2.5 12L7.44727 16.9473L8.86148 15.5331L6.32843 13H17.6708L15.1358 15.535L16.55 16.9493L21.5 11.9996L16.5503 7.0498L15.136 8.46402L17.6721 11H6.32843L8.86396 8.46451L7.44975 7.05029Z"/></svg> \ No newline at end of file diff --git a/client/packages/lowcoder-design/src/icons/remix/expand-right-fill.svg b/client/packages/lowcoder-design/src/icons/remix/expand-right-fill.svg index ba7908cc98..f44ca62afb 100644 --- a/client/packages/lowcoder-design/src/icons/remix/expand-right-fill.svg +++ b/client/packages/lowcoder-design/src/icons/remix/expand-right-fill.svg @@ -1 +1 @@ -<svg viewBox="0 0 24 24" fill="currentColor" xmlns="http://www.w3.org/2000/svg"><path d="M13.9999 4.99982L21.0001 11.9999L13.9999 18.9998V13H7.99983L7.99981 11H13.9999V4.99982ZM3.99988 18.9998L3.99988 4.99982H5.99988V18.9998H3.99988Z"/></svg> \ No newline at end of file +<svg viewBox="0 0 24 24" fill="currentColor" xmlns="http://www.w3.org/2000/svg"><path d="M13.9998 4.99982L21.0001 11.9999L13.9998 18.9998V13H7.9998L7.99978 11H13.9998V4.99982ZM3.99985 18.9998L3.99985 4.99982H5.99985V18.9998H3.99985Z"/></svg> \ No newline at end of file diff --git a/client/packages/lowcoder-design/src/icons/remix/expand-right-line.svg b/client/packages/lowcoder-design/src/icons/remix/expand-right-line.svg index acde6a1651..a5f7ad4881 100644 --- a/client/packages/lowcoder-design/src/icons/remix/expand-right-line.svg +++ b/client/packages/lowcoder-design/src/icons/remix/expand-right-line.svg @@ -1 +1 @@ -<svg viewBox="0 0 24 24" fill="currentColor" xmlns="http://www.w3.org/2000/svg"><path d="M17.1717 11.0001L12.5148 6.34323L13.929 4.92902L21.0001 12.0001L13.929 19.0712L12.5148 17.6569L17.1716 13.0001L7.99983 13.0002L7.99981 11.0002L17.1717 11.0001ZM3.99988 19L3.99988 5.00003H5.99988V19H3.99988Z"/></svg> \ No newline at end of file +<svg viewBox="0 0 24 24" fill="currentColor" xmlns="http://www.w3.org/2000/svg"><path d="M17.1717 11.0001L12.5148 6.34323L13.929 4.92902L21.0001 12.0001L13.929 19.0712L12.5148 17.6569L17.1716 13.0001L7.9998 13.0002L7.99978 11.0002L17.1717 11.0001ZM3.99985 19L3.99985 5.00003H5.99985V19H3.99985Z"/></svg> \ No newline at end of file diff --git a/client/packages/lowcoder-design/src/icons/remix/expand-up-down-line.svg b/client/packages/lowcoder-design/src/icons/remix/expand-up-down-line.svg index 1a6ddc0ce1..879deb1997 100644 --- a/client/packages/lowcoder-design/src/icons/remix/expand-up-down-line.svg +++ b/client/packages/lowcoder-design/src/icons/remix/expand-up-down-line.svg @@ -1 +1 @@ -<svg viewBox="0 0 24 24" fill="currentColor" xmlns="http://www.w3.org/2000/svg"><path d="M18.2072 9.0428 12.0001 2.83569 5.79297 9.0428 7.20718 10.457 12.0001 5.66412 16.793 10.457 18.2072 9.0428ZM5.79282 14.9572 11.9999 21.1643 18.207 14.9572 16.7928 13.543 11.9999 18.3359 7.20703 13.543 5.79282 14.9572Z"/></svg> \ No newline at end of file +<svg viewBox="0 0 24 24" fill="currentColor" xmlns="http://www.w3.org/2000/svg"><path d="M18.2072 9.0428 12.0001 2.83569 5.793 9.0428 7.20721 10.457 12.0001 5.66412 16.793 10.457 18.2072 9.0428ZM5.79285 14.9572 12 21.1643 18.2071 14.9572 16.7928 13.543 12 18.3359 7.20706 13.543 5.79285 14.9572Z"/></svg> \ No newline at end of file diff --git a/client/packages/lowcoder-design/src/icons/remix/expand-vertical-fill.svg b/client/packages/lowcoder-design/src/icons/remix/expand-vertical-fill.svg new file mode 100644 index 0000000000..3ff760820a --- /dev/null +++ b/client/packages/lowcoder-design/src/icons/remix/expand-vertical-fill.svg @@ -0,0 +1 @@ +<svg viewBox="0 0 24 24" fill="currentColor" xmlns="http://www.w3.org/2000/svg"><path d="M11.9995 0.499512L16.9492 5.44926L12.9995 5.44827V9.99951H10.9995V5.44777L7.05222 5.44678L11.9995 0.499512ZM10.9995 13.9995L10.9995 18.5496L7.05026 18.5496L12 23.4995L16.9497 18.5498L12.9995 18.5497V13.9995H10.9995Z"/></svg> \ No newline at end of file diff --git a/client/packages/lowcoder-design/src/icons/remix/expand-vertical-line.svg b/client/packages/lowcoder-design/src/icons/remix/expand-vertical-line.svg new file mode 100644 index 0000000000..5897a0d46a --- /dev/null +++ b/client/packages/lowcoder-design/src/icons/remix/expand-vertical-line.svg @@ -0,0 +1 @@ +<svg viewBox="0 0 24 24" fill="currentColor" xmlns="http://www.w3.org/2000/svg"><path d="M11.9995 0.499512L16.9492 5.44926L15.535 6.86347L12.9995 4.32794V9.99951H10.9995L10.9995 4.32794L8.46643 6.86099L7.05222 5.44678L11.9995 0.499512ZM10.9995 13.9995L10.9995 19.6704L8.46448 17.1353L7.05026 18.5496L12 23.4995L16.9497 18.5498L15.5355 17.1356L12.9995 19.6716V13.9995H10.9995Z"/></svg> \ No newline at end of file diff --git a/client/packages/lowcoder-design/src/icons/remix/expand-vertical-s-fill.svg b/client/packages/lowcoder-design/src/icons/remix/expand-vertical-s-fill.svg new file mode 100644 index 0000000000..c067505dd7 --- /dev/null +++ b/client/packages/lowcoder-design/src/icons/remix/expand-vertical-s-fill.svg @@ -0,0 +1 @@ +<svg viewBox="0 0 24 24" fill="currentColor" xmlns="http://www.w3.org/2000/svg"><path d="M16.9493 7.44926L11.9995 2.49951L7.05228 7.44678L10.9995 7.44777L10.9995 16.5496L7.05032 16.5496L12 21.4995L16.9498 16.5498L12.9995 16.5497L12.9995 7.44827L16.9493 7.44926Z"/></svg> \ No newline at end of file diff --git a/client/packages/lowcoder-design/src/icons/remix/expand-vertical-s-line.svg b/client/packages/lowcoder-design/src/icons/remix/expand-vertical-s-line.svg new file mode 100644 index 0000000000..f7b07e542b --- /dev/null +++ b/client/packages/lowcoder-design/src/icons/remix/expand-vertical-s-line.svg @@ -0,0 +1 @@ +<svg viewBox="0 0 24 24" fill="currentColor" xmlns="http://www.w3.org/2000/svg"><path d="M16.9492 7.44926L11.9995 2.49951L7.05222 7.44678L8.46643 8.86099L10.9995 6.32794L10.9995 17.6704L8.46448 15.1353L7.05026 16.5496L12 21.4995L16.9497 16.5498L15.5355 15.1356L12.9995 17.6716L12.9995 6.32794L15.535 8.86347L16.9492 7.44926Z"/></svg> \ No newline at end of file diff --git a/client/packages/lowcoder-design/src/icons/remix/fediverse-fill.svg b/client/packages/lowcoder-design/src/icons/remix/fediverse-fill.svg new file mode 100644 index 0000000000..7e38585f2c --- /dev/null +++ b/client/packages/lowcoder-design/src/icons/remix/fediverse-fill.svg @@ -0,0 +1 @@ +<svg viewBox="0 0 24 24" fill="currentColor" xmlns="http://www.w3.org/2000/svg"><path d="M11.2676 1.55469V2.17041L11.5205 6.18555L8.16894 3.95899L7.63622 3.65137L6.90331 4.92042L7.43652 5.22803L11.04 7.0171L7.43652 8.80567L6.90331 9.11328L7.63622 10.3823L8.16894 10.0747L11.5205 7.84815L11.2676 11.8638V12.479H12.7329V11.8638L12.48 7.84815L15.8311 10.0747L16.3642 10.3823L17.0967 9.11328L16.564 8.80567L12.96 7.0171L16.564 5.22803L17.0967 4.92042L16.3642 3.65137L15.8311 3.95899L12.48 6.18555L12.7329 2.17041V1.55469H11.2676ZM5.97215 10.7266V11.3418L6.22509 15.3574L2.87403 13.1309L2.34081 12.8228L1.6084 14.0923L2.14111 14.3999L5.74561 16.1885L2.14111 17.9775L1.6084 18.2852L2.34081 19.5542L2.87403 19.2466L6.22509 17.02L5.97215 21.0352V21.6509H7.4375V21.0352L7.18504 17.0195L10.5361 19.2466L11.0688 19.5542L11.8018 18.2852L11.2686 17.9775L7.66454 16.1885L11.2686 14.3999L11.8018 14.0923L11.0688 12.8228L10.5361 13.1309L7.18504 15.3574L7.4375 11.3418V10.7266H5.97215ZM16.5625 10.7266V11.3418L16.8154 15.3574L13.4643 13.1309L12.9316 12.8228L12.1987 14.0923L12.7314 14.3999L16.3359 16.1885L12.7314 17.9775L12.1987 18.2852L12.9316 19.5542L13.4643 19.2466L16.8154 17.02L16.5625 21.0352V21.6509H18.0283V21.0352L17.7754 17.0195L21.1265 19.2466L21.6592 19.5542L22.3921 18.2852L21.8589 17.9775L18.2549 16.1885L21.8589 14.3999L22.3921 14.0923L21.6592 12.8228L21.1265 13.1309L17.7754 15.3574L18.0283 11.3418V10.7266H16.5625Z"/></svg> \ No newline at end of file diff --git a/client/packages/lowcoder-design/src/icons/remix/fediverse-line.svg b/client/packages/lowcoder-design/src/icons/remix/fediverse-line.svg new file mode 100644 index 0000000000..6ea6e6af14 --- /dev/null +++ b/client/packages/lowcoder-design/src/icons/remix/fediverse-line.svg @@ -0,0 +1 @@ +<svg viewBox="0 0 24 24" fill="currentColor" xmlns="http://www.w3.org/2000/svg"><path d="M11.0002 11.5V8.23202L8.17007 9.86602L7.17007 8.13397L10.0002 6.5L7.17007 4.86602L8.17007 3.13397L11.0002 4.76798V1.5H13.0002V4.76792L15.8303 3.13397L16.8303 4.86603L14.0002 6.5L16.8303 8.13397L15.8303 9.86602L13.0002 8.23208V11.5H11.0002ZM21.4596 12.884L18.6294 14.518V11.25H16.6294V14.518L13.7992 12.884L12.7992 14.616L15.6294 16.25L12.7993 17.884L13.7993 19.616L16.6294 17.9821V21.25H18.6294V17.9821L21.4595 19.616L22.4595 17.884L19.6294 16.25L22.4596 14.616L21.4596 12.884ZM7.37109 17.9815L7.37109 21.2495L5.37109 21.2495L5.37109 17.9816L2.54102 19.6155L1.54102 17.8835L4.37114 16.2495L1.54102 14.6155L2.54102 12.8835L5.37109 14.5174L5.37109 11.2495H7.37109L7.37109 14.5175L10.2013 12.8835L11.2013 14.6155L8.37114 16.2495L11.2013 17.8835L10.2013 19.6155L7.37109 17.9815Z"/></svg> \ No newline at end of file diff --git a/client/packages/lowcoder-design/src/icons/remix/film-ai-fill.svg b/client/packages/lowcoder-design/src/icons/remix/film-ai-fill.svg new file mode 100644 index 0000000000..1efdb57b25 --- /dev/null +++ b/client/packages/lowcoder-design/src/icons/remix/film-ai-fill.svg @@ -0,0 +1 @@ +<svg viewBox="0 0 24 24" fill="currentColor" xmlns="http://www.w3.org/2000/svg"><path d="M20.4668 8.69379L20.7134 8.12811C21.1529 7.11947 21.9445 6.31641 22.9323 5.87708L23.6919 5.53922C24.1027 5.35653 24.1027 4.75881 23.6919 4.57612L22.9748 4.25714C21.9616 3.80651 21.1558 2.97373 20.7238 1.93083L20.4706 1.31953C20.2942 0.893489 19.7058 0.893489 19.5293 1.31953L19.2761 1.93083C18.8442 2.97373 18.0384 3.80651 17.0252 4.25714L16.308 4.57612C15.8973 4.75881 15.8973 5.35653 16.308 5.53922L17.0677 5.87708C18.0555 6.31641 18.8471 7.11947 19.2866 8.12811L19.5331 8.69379C19.7136 9.10792 20.2864 9.10792 20.4668 8.69379ZM20 11C20.7013 11 21.3744 10.8797 22 10.6586V20.0066C22 20.5552 21.5447 21 21.0082 21H2.9918C2.44405 21 2 20.5551 2 20.0066V3.9934C2 3.44476 2.45531 3 2.9918 3H14.3414C14.1203 3.62556 14 4.29873 14 5C14 8.31371 16.6863 11 20 11ZM4 5V7H6V5H4ZM4 9V11H6V9H4ZM4 13V15H6V13H4ZM18 13V15H20V13H18ZM4 17V19H6V17H4ZM18 17V19H20V17H18Z"/></svg> \ No newline at end of file diff --git a/client/packages/lowcoder-design/src/icons/remix/film-ai-line.svg b/client/packages/lowcoder-design/src/icons/remix/film-ai-line.svg new file mode 100644 index 0000000000..f28c12d05a --- /dev/null +++ b/client/packages/lowcoder-design/src/icons/remix/film-ai-line.svg @@ -0,0 +1 @@ +<svg viewBox="0 0 24 24" fill="currentColor" xmlns="http://www.w3.org/2000/svg"><path d="M20.4668 8.69379L20.7134 8.12811C21.1529 7.11947 21.9445 6.31641 22.9323 5.87708L23.6919 5.53922C24.1027 5.35653 24.1027 4.75881 23.6919 4.57612L22.9748 4.25714C21.9616 3.80651 21.1558 2.97373 20.7238 1.93083L20.4706 1.31953C20.2942 0.893489 19.7058 0.893489 19.5293 1.31953L19.2761 1.93083C18.8442 2.97373 18.0384 3.80651 17.0252 4.25714L16.308 4.57612C15.8973 4.75881 15.8973 5.35653 16.308 5.53922L17.0677 5.87708C18.0555 6.31641 18.8471 7.11947 19.2866 8.12811L19.5331 8.69379C19.7136 9.10792 20.2864 9.10792 20.4668 8.69379ZM2.9918 3H14V5H8V19H16V9H18V11H20H22V20.0066C22 20.5552 21.5447 21 21.0082 21H2.9918C2.44405 21 2 20.5551 2 20.0066V3.9934C2 3.44476 2.45531 3 2.9918 3ZM4 5V7H6V5H4ZM4 9V11H6V9H4ZM4 13V15H6V13H4ZM18 13V15H20V13H18ZM4 17V19H6V17H4ZM18 17V19H20V17H18Z"/></svg> \ No newline at end of file diff --git a/client/packages/lowcoder-design/src/icons/remix/firebase-fill.svg b/client/packages/lowcoder-design/src/icons/remix/firebase-fill.svg new file mode 100644 index 0000000000..e42e0b201b --- /dev/null +++ b/client/packages/lowcoder-design/src/icons/remix/firebase-fill.svg @@ -0,0 +1 @@ +<svg viewBox="0 0 24 24" fill="currentColor" xmlns="http://www.w3.org/2000/svg"><path d="M6.75651 1.50129L4 18.4998L4.00007 18.4998L9.47342 4.81645L7.69485 1.35292C7.47439 0.923595 6.83377 1.02489 6.75651 1.50129ZM11.5638 4.31793L4.00008 18.4998L4.00012 18.4999L13.8396 6.94912L12.4412 4.32699C12.2546 3.9771 11.7558 3.97408 11.5638 4.31793ZM10.94 22.8373L4.00013 18.4999L17.31 5.66535C17.6037 5.39537 18.0834 5.56273 18.1424 5.96076L20 18.4998L13.06 22.8373C12.4115 23.2426 11.5885 23.2426 10.94 22.8373Z"/></svg> \ No newline at end of file diff --git a/client/packages/lowcoder-design/src/icons/remix/firebase-line.svg b/client/packages/lowcoder-design/src/icons/remix/firebase-line.svg new file mode 100644 index 0000000000..0d86e01203 --- /dev/null +++ b/client/packages/lowcoder-design/src/icons/remix/firebase-line.svg @@ -0,0 +1 @@ +<svg viewBox="0 0 24 24" fill="currentColor" xmlns="http://www.w3.org/2000/svg"><path d="M9.22296 8.70695L6.91128 13.0414L8.00027 6.32592L9.22296 8.70695ZM10.3684 6.55928L7.69485 1.35292C7.47439 0.923595 6.83377 1.02489 6.75651 1.50129L4 18.4998L5.74819 19.5926L10.94 22.8375C11.5885 23.2428 12.4115 23.2428 13.06 22.8375L20 18.5L18.1424 5.96098C18.0828 5.5587 17.5934 5.39205 17.3007 5.67433L14.566 8.31132L12.4412 4.32721C12.2529 3.97426 11.7471 3.97426 11.5588 4.32721L10.3684 6.55928ZM13.0692 9.75472L8.66667 14L12 7.75L13.0692 9.75472ZM7.23219 18.1616L16.5911 9.137L17.8297 17.4979L12 21.1415L7.23219 18.1616Z"/></svg> \ No newline at end of file diff --git a/client/packages/lowcoder-design/src/icons/remix/flag-off-fill.svg b/client/packages/lowcoder-design/src/icons/remix/flag-off-fill.svg new file mode 100644 index 0000000000..f8b11ea316 --- /dev/null +++ b/client/packages/lowcoder-design/src/icons/remix/flag-off-fill.svg @@ -0,0 +1 @@ +<svg viewBox="0 0 24 24" fill="currentColor" xmlns="http://www.w3.org/2000/svg"><path d="M16.5859 18L21.1925 22.6066L22.6068 21.1924L2.80777 1.39343L1.39355 2.80765L3.00008 4.41417V22H5.00008V16H12.0001L12.7237 17.4472C12.8931 17.786 13.2393 18 13.6181 18H16.5859ZM21.0001 5.99995V16.7576L7.24241 2.99995H12.382C12.7608 2.99995 13.1071 3.21396 13.2765 3.55274L14.0001 4.99995H20.0001C20.5524 4.99995 21.0001 5.44767 21.0001 5.99995Z"/></svg> \ No newline at end of file diff --git a/client/packages/lowcoder-design/src/icons/remix/flag-off-line.svg b/client/packages/lowcoder-design/src/icons/remix/flag-off-line.svg new file mode 100644 index 0000000000..5bfc2d9208 --- /dev/null +++ b/client/packages/lowcoder-design/src/icons/remix/flag-off-line.svg @@ -0,0 +1 @@ +<svg viewBox="0 0 24 24" fill="currentColor" xmlns="http://www.w3.org/2000/svg"><path d="M16.5859 18L21.1925 22.6066L22.6068 21.1924L2.80777 1.39343L1.39355 2.80765L3.00008 4.41417V22H5.00008V16H12.0001L12.7237 17.4472C12.8931 17.786 13.2393 18 13.6181 18H16.5859ZM14.5859 16H14.2361L13.8864 15.3005L14.5859 16ZM12.5859 14H5.00008V6.41417L12.5859 14ZM21.0001 5.99995V16.7576L19.0001 14.7576V6.99995H12.764L11.764 4.99995H9.24241L7.24241 2.99995H12.382C12.7608 2.99995 13.1071 3.21396 13.2765 3.55274L14.0001 4.99995H20.0001C20.5524 4.99995 21.0001 5.44767 21.0001 5.99995Z"/></svg> \ No newline at end of file diff --git a/client/packages/lowcoder-design/src/icons/remix/flip-horizontal-2-fill.svg b/client/packages/lowcoder-design/src/icons/remix/flip-horizontal-2-fill.svg new file mode 100644 index 0000000000..06a0ebe71e --- /dev/null +++ b/client/packages/lowcoder-design/src/icons/remix/flip-horizontal-2-fill.svg @@ -0,0 +1 @@ +<svg viewBox="0 0 24 24" fill="currentColor" xmlns="http://www.w3.org/2000/svg"><path d="M4 3C3.44772 3 3 3.44772 3 4V20C3 20.5523 3.44772 21 4 21H20C20.5523 21 21 20.5523 21 20V4C21 3.44772 20.5523 3 20 3H4ZM10 8V11H14V8L18 12L14 16V13H10V16L6 12L10 8Z"/></svg> \ No newline at end of file diff --git a/client/packages/lowcoder-design/src/icons/remix/flip-horizontal-2-line.svg b/client/packages/lowcoder-design/src/icons/remix/flip-horizontal-2-line.svg new file mode 100644 index 0000000000..e48ca94cd1 --- /dev/null +++ b/client/packages/lowcoder-design/src/icons/remix/flip-horizontal-2-line.svg @@ -0,0 +1 @@ +<svg viewBox="0 0 24 24" fill="currentColor" xmlns="http://www.w3.org/2000/svg"><path d="M5 19H19V5H5V19ZM3 4C3 3.44772 3.44772 3 4 3H20C20.5523 3 21 3.44772 21 4V20C21 20.5523 20.5523 21 20 21H4C3.44772 21 3 20.5523 3 20V4ZM10 8V11H14V8L18 12L14 16V13H10V16L6 12L10 8Z"/></svg> \ No newline at end of file diff --git a/client/packages/lowcoder-design/src/icons/remix/flip-horizontal-fill.svg b/client/packages/lowcoder-design/src/icons/remix/flip-horizontal-fill.svg new file mode 100644 index 0000000000..f5bd390c95 --- /dev/null +++ b/client/packages/lowcoder-design/src/icons/remix/flip-horizontal-fill.svg @@ -0,0 +1 @@ +<svg viewBox="0 0 24 24" fill="currentColor" xmlns="http://www.w3.org/2000/svg"><path d="M11 2V22H13V2H11ZM7 6V18H4L4 6H7ZM4 4C2.89543 4 2 4.89543 2 6V18C2 19.1046 2.89543 20 4 20H7C8.10457 20 9 19.1046 9 18V6C9 4.89543 8.10457 4 7 4H4ZM15 6C15 4.89543 15.8954 4 17 4H20C21.1046 4 22 4.89543 22 6V18C22 19.1046 21.1046 20 20 20H17C15.8954 20 15 19.1046 15 18V6Z"/></svg> \ No newline at end of file diff --git a/client/packages/lowcoder-design/src/icons/remix/flip-horizontal-line.svg b/client/packages/lowcoder-design/src/icons/remix/flip-horizontal-line.svg new file mode 100644 index 0000000000..4a0dea90c1 --- /dev/null +++ b/client/packages/lowcoder-design/src/icons/remix/flip-horizontal-line.svg @@ -0,0 +1 @@ +<svg viewBox="0 0 24 24" fill="currentColor" xmlns="http://www.w3.org/2000/svg"><path d="M11 2V22H13V2H11ZM2 6C2 4.89543 2.89543 4 4 4H7C8.10457 4 9 4.89543 9 6V18C9 19.1046 8.10457 20 7 20H4C2.89543 20 2 19.1046 2 18V6ZM20 6V18H17V6H20ZM17 4C15.8954 4 15 4.89543 15 6V18C15 19.1046 15.8954 20 17 20H20C21.1046 20 22 19.1046 22 18V6C22 4.89543 21.1046 4 20 4H17Z"/></svg> \ No newline at end of file diff --git a/client/packages/lowcoder-design/src/icons/remix/flip-vertical-2-fill.svg b/client/packages/lowcoder-design/src/icons/remix/flip-vertical-2-fill.svg new file mode 100644 index 0000000000..43eaaede8f --- /dev/null +++ b/client/packages/lowcoder-design/src/icons/remix/flip-vertical-2-fill.svg @@ -0,0 +1 @@ +<svg viewBox="0 0 24 24" fill="currentColor" xmlns="http://www.w3.org/2000/svg"><path d="M4 3C3.44772 3 3 3.44772 3 4V20C3 20.5523 3.44772 21 4 21H20C20.5523 21 21 20.5523 21 20V4C21 3.44772 20.5523 3 20 3H4ZM8 10L12 6L16 10H13V14H16L12 18L8 14H11L11 10H8Z"/></svg> \ No newline at end of file diff --git a/client/packages/lowcoder-design/src/icons/remix/flip-vertical-2-line.svg b/client/packages/lowcoder-design/src/icons/remix/flip-vertical-2-line.svg new file mode 100644 index 0000000000..c6f2e23d20 --- /dev/null +++ b/client/packages/lowcoder-design/src/icons/remix/flip-vertical-2-line.svg @@ -0,0 +1 @@ +<svg viewBox="0 0 24 24" fill="currentColor" xmlns="http://www.w3.org/2000/svg"><path d="M5 19H19V5H5V19ZM3 4C3 3.44772 3.44772 3 4 3H20C20.5523 3 21 3.44772 21 4V20C21 20.5523 20.5523 21 20 21H4C3.44772 21 3 20.5523 3 20V4ZM8 10L12 6L16 10H13V14H16L12 18L8 14H11V10L8 10Z"/></svg> \ No newline at end of file diff --git a/client/packages/lowcoder-design/src/icons/remix/flip-vertical-fill.svg b/client/packages/lowcoder-design/src/icons/remix/flip-vertical-fill.svg new file mode 100644 index 0000000000..51414161da --- /dev/null +++ b/client/packages/lowcoder-design/src/icons/remix/flip-vertical-fill.svg @@ -0,0 +1 @@ +<svg viewBox="0 0 24 24" fill="currentColor" xmlns="http://www.w3.org/2000/svg"><path d="M22 11L2 11L2 13L22 13V11ZM18 7L6 7V4L18 4V7ZM20 4C20 2.89543 19.1046 2 18 2L6 2C4.89543 2 4 2.89543 4 4L4 7C4 8.10457 4.89543 9 6 9L18 9C19.1046 9 20 8.10457 20 7V4ZM18 15C19.1046 15 20 15.8954 20 17V20C20 21.1046 19.1046 22 18 22H6C4.89543 22 4 21.1046 4 20L4 17C4 15.8954 4.89543 15 6 15L18 15Z"/></svg> \ No newline at end of file diff --git a/client/packages/lowcoder-design/src/icons/remix/flip-vertical-line.svg b/client/packages/lowcoder-design/src/icons/remix/flip-vertical-line.svg new file mode 100644 index 0000000000..b5ca54ecd2 --- /dev/null +++ b/client/packages/lowcoder-design/src/icons/remix/flip-vertical-line.svg @@ -0,0 +1 @@ +<svg viewBox="0 0 24 24" fill="currentColor" xmlns="http://www.w3.org/2000/svg"><path d="M22 11L2 11L2 13L22 13V11ZM18 2C19.1046 2 20 2.89543 20 4V7C20 8.10457 19.1046 9 18 9L6 9C4.89543 9 4 8.10457 4 7L4 4C4 2.89543 4.89543 2 6 2L18 2ZM18 20H6V17L18 17V20ZM20 17C20 15.8954 19.1046 15 18 15L6 15C4.89543 15 4 15.8954 4 17L4 20C4 21.1046 4.89543 22 6 22H18C19.1046 22 20 21.1046 20 20V17Z"/></svg> \ No newline at end of file diff --git a/client/packages/lowcoder-design/src/icons/remix/flower-line.svg b/client/packages/lowcoder-design/src/icons/remix/flower-line.svg index f02942bfa0..8f41a4b1f2 100644 --- a/client/packages/lowcoder-design/src/icons/remix/flower-line.svg +++ b/client/packages/lowcoder-design/src/icons/remix/flower-line.svg @@ -1 +1 @@ -<svg viewBox="0 0 24 24" fill="currentColor" xmlns="http://www.w3.org/2000/svg"><path d="M11.9999 2.07611L12.4551 2.30879C14.2208 3.21143 15.7328 4.53809 16.8573 6.15473C17.7852 5.71402 18.7788 5.38872 19.8193 5.19758L21 4.98071V12.9998C21 17.9703 16.9706 22 12 22C7.02944 22 3 17.9705 3 13V4.98071L4.18066 5.19758C5.22115 5.38871 6.2147 5.71398 7.14253 6.15465C8.26706 4.53805 9.77902 3.21141 11.5447 2.30879L11.9999 2.07611ZM8.87757 7.16504C10.1073 8.02646 11.1679 9.11266 12 10.3644C12.8322 9.11272 13.893 8.02642 15.1223 7.16515C14.2952 6.01594 13.2302 5.04923 11.9999 4.33741C10.7697 5.0492 9.70468 6.01587 8.87757 7.16504ZM10.8993 12.4338C10.0182 10.7202 8.65593 9.2932 6.99112 8.33225C6.3667 7.97183 5.6999 7.67707 5 7.45728V13C5 16.2899 7.26961 19.0497 10.3285 19.7992C10.1137 18.9004 10 17.9629 10 16.9998C10 15.383 10.3198 13.8411 10.8993 12.4338ZM12.4531 19.9855C16.1079 19.752 19 16.7136 19 12.9998V7.45728C18.3 7.67709 17.6332 7.97187 17.0088 8.33233C14.0127 10.0617 12 13.2963 12 16.9998C12 18.041 12.1588 19.0436 12.4531 19.9855Z"/></svg> \ No newline at end of file +<svg viewBox="0 0 24 24" fill="currentColor" xmlns="http://www.w3.org/2000/svg"><path d="M11.9999 2.07617L12.4551 2.30885C14.2208 3.21149 15.7328 4.53815 16.8573 6.15479C17.7852 5.71408 18.7788 5.38878 19.8193 5.19765L21 4.98077V12.9998C21 17.9703 16.9706 22 12 22C7.02944 22 3 17.9706 3 13V4.98077L4.18066 5.19765C5.22115 5.38877 6.2147 5.71404 7.14253 6.15472C8.26706 4.53811 9.77902 3.21147 11.5447 2.30885L11.9999 2.07617ZM8.87757 7.1651C10.1073 8.02652 11.1679 9.11272 12 10.3645C12.8322 9.11279 13.893 8.02648 15.1223 7.16521C14.2952 6.016 13.2302 5.04929 11.9999 4.33747C10.7697 5.04926 9.70468 6.01593 8.87757 7.1651ZM10.8993 12.4338C10.0182 10.7203 8.65593 9.29326 6.99112 8.33231C6.3667 7.97189 5.6999 7.67713 5 7.45734V13C5 16.29 7.26961 19.0498 10.3285 19.7992C10.1137 18.9004 10 17.9629 10 16.9998C10 15.3831 10.3198 13.8412 10.8993 12.4338ZM12.4531 19.9856C16.1079 19.7521 19 16.7136 19 12.9998V7.45734C18.3 7.67715 17.6332 7.97193 17.0088 8.33239C14.0127 10.0618 12 13.2964 12 16.9998C12 18.0411 12.1588 19.0437 12.4531 19.9856Z"/></svg> \ No newline at end of file diff --git a/client/packages/lowcoder-design/src/icons/remix/font-size-ai.svg b/client/packages/lowcoder-design/src/icons/remix/font-size-ai.svg new file mode 100644 index 0000000000..e6b258b009 --- /dev/null +++ b/client/packages/lowcoder-design/src/icons/remix/font-size-ai.svg @@ -0,0 +1 @@ +<svg viewBox="0 0 24 24" fill="currentColor" xmlns="http://www.w3.org/2000/svg"><path d="M19.4668 8.69379L19.7134 8.12811C20.1529 7.11947 20.9445 6.31641 21.9323 5.87708L22.6919 5.53922C23.1027 5.35653 23.1027 4.75881 22.6919 4.57612L21.9748 4.25714C20.9616 3.80651 20.1558 2.97373 19.7238 1.93083L19.4706 1.31953C19.2942 0.893489 18.7058 0.893489 18.5293 1.31953L18.2761 1.93083C17.8442 2.97373 17.0384 3.80651 16.0252 4.25714L15.308 4.57612C14.8973 4.75881 14.8973 5.35653 15.308 5.53922L16.0677 5.87708C17.0555 6.31641 17.8471 7.11947 18.2866 8.12811L18.5331 8.69379C18.7136 9.10792 19.2864 9.10792 19.4668 8.69379ZM4.75416 15H11.246L13.246 20H15.4001L9.0001 4H7.0001L0.600098 20H2.75416L4.75416 15ZM8.0001 6.88516L10.446 13H5.55416L8.0001 6.88516ZM21.0001 12V12.5351C20.4118 12.1948 19.7287 12 19.0001 12C16.791 12 15.0001 13.7909 15.0001 16C15.0001 18.2091 16.791 20 19.0001 20C19.7287 20 20.4118 19.8052 21.0001 19.4649V20H23.0001V12H21.0001ZM21.0001 16C21.0001 17.1046 20.1047 18 19.0001 18C17.8955 18 17.0001 17.1046 17.0001 16C17.0001 14.8954 17.8955 14 19.0001 14C20.1047 14 21.0001 14.8954 21.0001 16Z"/></svg> \ No newline at end of file diff --git a/client/packages/lowcoder-design/src/icons/remix/formula.svg b/client/packages/lowcoder-design/src/icons/remix/formula.svg new file mode 100644 index 0000000000..0f62173e58 --- /dev/null +++ b/client/packages/lowcoder-design/src/icons/remix/formula.svg @@ -0,0 +1 @@ +<svg viewBox="0 0 24 24" fill="currentColor" xmlns="http://www.w3.org/2000/svg"><path d="M10 2C7.79086 2 6 3.79086 6 6V9H3V11H6V18C6 19.1046 5.10457 20 4 20H3V22H4C6.20914 22 8 20.2091 8 18V11H11V9H8V6C8 4.89543 8.89543 4 10 4H11V2H10ZM15.2022 16.9971L11.8907 21H14.4864L16.5 18.5659L18.5137 21H21.1093L17.7979 16.9971L21.1046 13H18.5089L16.5 15.4283L14.4912 13H11.8955L15.2022 16.9971Z"/></svg> \ No newline at end of file diff --git a/client/packages/lowcoder-design/src/icons/remix/function-add-fill.svg b/client/packages/lowcoder-design/src/icons/remix/function-add-fill.svg new file mode 100644 index 0000000000..b42b929f34 --- /dev/null +++ b/client/packages/lowcoder-design/src/icons/remix/function-add-fill.svg @@ -0,0 +1 @@ +<svg viewBox="0 0 24 24" fill="currentColor" xmlns="http://www.w3.org/2000/svg"><path d="M4 3C3.44772 3 3 3.44772 3 4V10C3 10.5523 3.44772 11 4 11H10C10.5523 11 11 10.5523 11 10V4C11 3.44772 10.5523 3 10 3H4ZM4 13C3.44772 13 3 13.4477 3 14V20C3 20.5523 3.44772 21 4 21H10C10.5523 21 11 20.5523 11 20V14C11 13.4477 10.5523 13 10 13H4ZM14 13C13.4477 13 13 13.4477 13 14V20C13 20.5523 13.4477 21 14 21H20C20.5523 21 21 20.5523 21 20V14C21 13.4477 20.5523 13 20 13H14ZM16 11V8H13V6H16V3H18V6H21V8H18V11H16Z"/></svg> \ No newline at end of file diff --git a/client/packages/lowcoder-design/src/icons/remix/function-add-line.svg b/client/packages/lowcoder-design/src/icons/remix/function-add-line.svg new file mode 100644 index 0000000000..b70b2bcf12 --- /dev/null +++ b/client/packages/lowcoder-design/src/icons/remix/function-add-line.svg @@ -0,0 +1 @@ +<svg viewBox="0 0 24 24" fill="currentColor" xmlns="http://www.w3.org/2000/svg"><path d="M4 3C3.44772 3 3 3.44772 3 4V10C3 10.5523 3.44772 11 4 11H10C10.5523 11 11 10.5523 11 10V4C11 3.44772 10.5523 3 10 3H4ZM4 13C3.44772 13 3 13.4477 3 14V20C3 20.5523 3.44772 21 4 21H10C10.5523 21 11 20.5523 11 20V14C11 13.4477 10.5523 13 10 13H4ZM14 13C13.4477 13 13 13.4477 13 14V20C13 20.5523 13.4477 21 14 21H20C20.5523 21 21 20.5523 21 20V14C21 13.4477 20.5523 13 20 13H14ZM15 19V15H19V19H15ZM5 9V5H9V9H5ZM5 19V15H9V19H5ZM16 11V8H13V6H16V3H18V6H21V8H18V11H16Z"/></svg> \ No newline at end of file diff --git a/client/packages/lowcoder-design/src/icons/remix/function-fill.svg b/client/packages/lowcoder-design/src/icons/remix/function-fill.svg index 5130a65a97..ea1c5c961e 100644 --- a/client/packages/lowcoder-design/src/icons/remix/function-fill.svg +++ b/client/packages/lowcoder-design/src/icons/remix/function-fill.svg @@ -1 +1 @@ -<svg viewBox="0 0 24 24" fill="currentColor" xmlns="http://www.w3.org/2000/svg"><path d="M3 3H11V11H3V3ZM3 13H11V21H3V13ZM13 3H21V11H13V3ZM13 13H21V21H13V13Z"/></svg> \ No newline at end of file +<svg viewBox="0 0 24 24" fill="currentColor" xmlns="http://www.w3.org/2000/svg"><path d="M3 4C3 3.44772 3.44772 3 4 3H10C10.5523 3 11 3.44772 11 4V10C11 10.5523 10.5523 11 10 11H4C3.44772 11 3 10.5523 3 10V4ZM3 14C3 13.4477 3.44772 13 4 13H10C10.5523 13 11 13.4477 11 14V20C11 20.5523 10.5523 21 10 21H4C3.44772 21 3 20.5523 3 20V14ZM13 4C13 3.44772 13.4477 3 14 3H20C20.5523 3 21 3.44772 21 4V10C21 10.5523 20.5523 11 20 11H14C13.4477 11 13 10.5523 13 10V4ZM13 14C13 13.4477 13.4477 13 14 13H20C20.5523 13 21 13.4477 21 14V20C21 20.5523 20.5523 21 20 21H14C13.4477 21 13 20.5523 13 20V14Z"/></svg> \ No newline at end of file diff --git a/client/packages/lowcoder-design/src/icons/remix/function-line.svg b/client/packages/lowcoder-design/src/icons/remix/function-line.svg index b130499724..9557ca05d4 100644 --- a/client/packages/lowcoder-design/src/icons/remix/function-line.svg +++ b/client/packages/lowcoder-design/src/icons/remix/function-line.svg @@ -1 +1 @@ -<svg viewBox="0 0 24 24" fill="currentColor" xmlns="http://www.w3.org/2000/svg"><path d="M3 3H11V11H3V3ZM3 13H11V21H3V13ZM13 3H21V11H13V3ZM13 13H21V21H13V13ZM15 5V9H19V5H15ZM15 15V19H19V15H15ZM5 5V9H9V5H5ZM5 15V19H9V15H5Z"/></svg> \ No newline at end of file +<svg viewBox="0 0 24 24" fill="currentColor" xmlns="http://www.w3.org/2000/svg"><path d="M3 4C3 3.44772 3.44772 3 4 3H10C10.5523 3 11 3.44772 11 4V10C11 10.5523 10.5523 11 10 11H4C3.44772 11 3 10.5523 3 10V4ZM3 14C3 13.4477 3.44772 13 4 13H10C10.5523 13 11 13.4477 11 14V20C11 20.5523 10.5523 21 10 21H4C3.44772 21 3 20.5523 3 20V14ZM13 4C13 3.44772 13.4477 3 14 3H20C20.5523 3 21 3.44772 21 4V10C21 10.5523 20.5523 11 20 11H14C13.4477 11 13 10.5523 13 10V4ZM13 14C13 13.4477 13.4477 13 14 13H20C20.5523 13 21 13.4477 21 14V20C21 20.5523 20.5523 21 20 21H14C13.4477 21 13 20.5523 13 20V14ZM15 5V9H19V5H15ZM15 15V19H19V15H15ZM5 5V9H9V5H5ZM5 15V19H9V15H5Z"/></svg> \ No newline at end of file diff --git a/client/packages/lowcoder-design/src/icons/remix/gemini-fill.svg b/client/packages/lowcoder-design/src/icons/remix/gemini-fill.svg new file mode 100644 index 0000000000..3f758a1107 --- /dev/null +++ b/client/packages/lowcoder-design/src/icons/remix/gemini-fill.svg @@ -0,0 +1 @@ +<svg viewBox="0 0 24 24" fill="currentColor" xmlns="http://www.w3.org/2000/svg"><path d="M23.9996 12.0235C17.5625 12.4117 12.4114 17.563 12.0232 24H11.9762C11.588 17.563 6.4369 12.4117 0 12.0235V11.9765C6.4369 11.5883 11.588 6.43719 11.9762 0H12.0232C12.4114 6.43719 17.5625 11.5883 23.9996 11.9765V12.0235Z"/></svg> \ No newline at end of file diff --git a/client/packages/lowcoder-design/src/icons/remix/gemini-line.svg b/client/packages/lowcoder-design/src/icons/remix/gemini-line.svg new file mode 100644 index 0000000000..d1925da047 --- /dev/null +++ b/client/packages/lowcoder-design/src/icons/remix/gemini-line.svg @@ -0,0 +1 @@ +<svg viewBox="0 0 24 24" fill="currentColor" xmlns="http://www.w3.org/2000/svg"><path d="M11.1244 1.09094H12.8753L12.9269 1.9453C13.2227 6.85075 17.1493 10.7773 22.0546 11.0732L22.909 11.1247V12.8757L22.0546 12.9272C17.1493 13.2231 13.2227 17.1498 12.9269 22.0551L12.8753 22.9095H11.1244L11.0728 22.0551C10.777 17.1498 6.85036 13.2231 1.94518 12.9272L1.09082 12.8757V11.1247L1.94518 11.0732C6.85036 10.7773 10.777 6.85075 11.0728 1.9453L11.1244 1.09094ZM11.9999 5.85023C10.83 8.61547 8.61512 10.8304 5.84996 12.0002C8.61512 13.1701 10.83 15.385 11.9999 18.1502C13.1697 15.385 15.3846 13.1701 18.1498 12.0002C15.3846 10.8304 13.1697 8.61547 11.9999 5.85023Z"/></svg> \ No newline at end of file diff --git a/client/packages/lowcoder-design/src/icons/remix/goblet-2-fill.svg b/client/packages/lowcoder-design/src/icons/remix/goblet-2-fill.svg new file mode 100644 index 0000000000..f1342bee0b --- /dev/null +++ b/client/packages/lowcoder-design/src/icons/remix/goblet-2-fill.svg @@ -0,0 +1 @@ +<svg viewBox="0 0 24 24" fill="currentColor" xmlns="http://www.w3.org/2000/svg"><path d="M6.13317 2L5.01052 9.85858C4.70849 11.9728 5.53231 13.7891 6.89117 15.0465C7.99601 16.0688 9.45948 16.7319 11.0005 16.9343V20H6.00047V22H18.0005V20H13.0005V16.9343C14.5415 16.7319 16.0049 16.0688 17.1098 15.0465C18.4686 13.7891 19.2924 11.9728 18.9904 9.85858L17.8678 2H6.13317ZM10.0003 7C9.16936 7.00013 8.16238 7.24244 7.37122 7.47579L7.86776 4H16.1332L16.6234 7.4314C15.7848 7.70691 14.8897 8 14.0005 8C12.6083 8 11.4276 6.99978 10.0003 7Z"/></svg> \ No newline at end of file diff --git a/client/packages/lowcoder-design/src/icons/remix/goblet-2-line.svg b/client/packages/lowcoder-design/src/icons/remix/goblet-2-line.svg new file mode 100644 index 0000000000..c5306d0fd1 --- /dev/null +++ b/client/packages/lowcoder-design/src/icons/remix/goblet-2-line.svg @@ -0,0 +1 @@ +<svg viewBox="0 0 24 24" fill="currentColor" xmlns="http://www.w3.org/2000/svg"><path d="M6.13317 2L5.01052 9.85858C4.70849 11.9728 5.53231 13.7891 6.89117 15.0465C7.99601 16.0688 9.45948 16.7319 11.0005 16.9343V20H6.00047V22H18.0005V20H13.0005V16.9343C14.5415 16.7319 16.0049 16.0688 17.1098 15.0465C18.4686 13.7891 19.2924 11.9728 18.9904 9.85858L17.8678 2H6.13317ZM6.99042 10.1414L7.86776 4H16.1332L17.0105 10.1414C17.2085 11.5272 16.6892 12.7109 15.7514 13.5785C14.7968 14.4618 13.4178 15 12.0005 15C10.5831 15 9.20412 14.4618 8.24948 13.5785C7.31177 12.7109 6.79245 11.5272 6.99042 10.1414Z"/></svg> \ No newline at end of file diff --git a/client/packages/lowcoder-design/src/icons/remix/golf-ball-fill.svg b/client/packages/lowcoder-design/src/icons/remix/golf-ball-fill.svg new file mode 100644 index 0000000000..d075568dea --- /dev/null +++ b/client/packages/lowcoder-design/src/icons/remix/golf-ball-fill.svg @@ -0,0 +1 @@ +<svg viewBox="0 0 24 24" fill="currentColor" xmlns="http://www.w3.org/2000/svg"><path d="M22 12C22 17.5228 17.5228 22 12 22C6.47715 22 2 17.5228 2 12C2 6.47715 6.47715 2 12 2C17.5228 2 22 6.47715 22 12ZM14 7C14 6.44772 13.5523 6 13 6C12.4477 6 12 6.44772 12 7C12 7.55228 12.4477 8 13 8C13.5523 8 14 7.55228 14 7ZM13 11C13.5523 11 14 10.5523 14 10C14 9.44772 13.5523 9 13 9C12.4477 9 12 9.44772 12 10C12 10.5523 12.4477 11 13 11ZM17 12C17 11.4477 16.5523 11 16 11C15.4477 11 15 11.4477 15 12C15 12.5523 15.4477 13 16 13C16.5523 13 17 12.5523 17 12ZM16 10C16.5523 10 17 9.55228 17 9C17 8.44772 16.5523 8 16 8C15.4477 8 15 8.44772 15 9C15 9.55228 15.4477 10 16 10Z"/></svg> \ No newline at end of file diff --git a/client/packages/lowcoder-design/src/icons/remix/golf-ball-line.svg b/client/packages/lowcoder-design/src/icons/remix/golf-ball-line.svg new file mode 100644 index 0000000000..451793eebb --- /dev/null +++ b/client/packages/lowcoder-design/src/icons/remix/golf-ball-line.svg @@ -0,0 +1 @@ +<svg viewBox="0 0 24 24" fill="currentColor" xmlns="http://www.w3.org/2000/svg"><path d="M12 20C7.58172 20 4 16.4183 4 12C4 7.58172 7.58172 4 12 4C16.4183 4 20 7.58172 20 12C20 16.4183 16.4183 20 12 20ZM12 22C17.5228 22 22 17.5228 22 12C22 6.47715 17.5228 2 12 2C6.47715 2 2 6.47715 2 12C2 17.5228 6.47715 22 12 22ZM14 7C14 7.55228 13.5523 8 13 8C12.4477 8 12 7.55228 12 7C12 6.44772 12.4477 6 13 6C13.5523 6 14 6.44772 14 7ZM13 11C13.5523 11 14 10.5523 14 10C14 9.44771 13.5523 9 13 9C12.4477 9 12 9.44771 12 10C12 10.5523 12.4477 11 13 11ZM17 12C17 12.5523 16.5523 13 16 13C15.4477 13 15 12.5523 15 12C15 11.4477 15.4477 11 16 11C16.5523 11 17 11.4477 17 12ZM16 10C16.5523 10 17 9.55229 17 9C17 8.44771 16.5523 8 16 8C15.4477 8 15 8.44771 15 9C15 9.55229 15.4477 10 16 10Z"/></svg> \ No newline at end of file diff --git a/client/packages/lowcoder-design/src/icons/remix/group-3-fill.svg b/client/packages/lowcoder-design/src/icons/remix/group-3-fill.svg new file mode 100644 index 0000000000..981d5170cb --- /dev/null +++ b/client/packages/lowcoder-design/src/icons/remix/group-3-fill.svg @@ -0,0 +1 @@ +<svg viewBox="0 0 24 24" fill="currentColor" xmlns="http://www.w3.org/2000/svg"><path d="M2.5 7C2.5 9.20914 4.29086 11 6.5 11C8.70914 11 10.5 9.20914 10.5 7C10.5 4.79086 8.70914 3 6.5 3C4.29086 3 2.5 4.79086 2.5 7ZM2 21V16.5C2 14.0147 4.01472 12 6.5 12C8.98528 12 11 14.0147 11 16.5V21H2ZM17.5 11C15.2909 11 13.5 9.20914 13.5 7C13.5 4.79086 15.2909 3 17.5 3C19.7091 3 21.5 4.79086 21.5 7C21.5 9.20914 19.7091 11 17.5 11ZM13 21V16.5C13 14.0147 15.0147 12 17.5 12C19.9853 12 22 14.0147 22 16.5V21H13Z"/></svg> \ No newline at end of file diff --git a/client/packages/lowcoder-design/src/icons/remix/group-3-line.svg b/client/packages/lowcoder-design/src/icons/remix/group-3-line.svg new file mode 100644 index 0000000000..84440de518 --- /dev/null +++ b/client/packages/lowcoder-design/src/icons/remix/group-3-line.svg @@ -0,0 +1 @@ +<svg viewBox="0 0 24 24" fill="currentColor" xmlns="http://www.w3.org/2000/svg"><path d="M8.5 7C8.5 8.10457 7.60457 9 6.5 9C5.39543 9 4.5 8.10457 4.5 7C4.5 5.89543 5.39543 5 6.5 5C7.60457 5 8.5 5.89543 8.5 7ZM2.5 7C2.5 9.20914 4.29086 11 6.5 11C8.70914 11 10.5 9.20914 10.5 7C10.5 4.79086 8.70914 3 6.5 3C4.29086 3 2.5 4.79086 2.5 7ZM9 16.5C9 15.1193 7.88071 14 6.5 14C5.11929 14 4 15.1193 4 16.5V19H9V16.5ZM11 21H2V16.5C2 14.0147 4.01472 12 6.5 12C8.98528 12 11 14.0147 11 16.5V21ZM19.5 7C19.5 8.10457 18.6046 9 17.5 9C16.3954 9 15.5 8.10457 15.5 7C15.5 5.89543 16.3954 5 17.5 5C18.6046 5 19.5 5.89543 19.5 7ZM13.5 7C13.5 9.20914 15.2909 11 17.5 11C19.7091 11 21.5 9.20914 21.5 7C21.5 4.79086 19.7091 3 17.5 3C15.2909 3 13.5 4.79086 13.5 7ZM20 16.5C20 15.1193 18.8807 14 17.5 14C16.1193 14 15 15.1193 15 16.5V19H20V16.5ZM13 19V16.5C13 14.0147 15.0147 12 17.5 12C19.9853 12 22 14.0147 22 16.5V21H13V19Z"/></svg> \ No newline at end of file diff --git a/client/packages/lowcoder-design/src/icons/remix/heart-add-2-fill.svg b/client/packages/lowcoder-design/src/icons/remix/heart-add-2-fill.svg new file mode 100644 index 0000000000..512b461c2e --- /dev/null +++ b/client/packages/lowcoder-design/src/icons/remix/heart-add-2-fill.svg @@ -0,0 +1 @@ +<svg viewBox="0 0 24 24" fill="currentColor" xmlns="http://www.w3.org/2000/svg"><path d="M16.5 3C19.5376 3 22 5.5 22 9C22 10.4251 21.6891 11.7259 21.1729 12.9066C20.2524 12.332 19.165 12 18 12C14.6863 12 12 14.6863 12 18C12 19.1005 12.2963 20.1318 12.8134 21.0185C12.506 21.2007 12.2316 21.3611 12 21.5C9.50001 20 2 16 2 9C2 5.5 4.5 3 7.5 3C9.35997 3 11 4 12 5C13 4 14.64 3 16.5 3ZM19 17V14H17V17H14V19H16.999L17 22H19L18.999 19H22V17H19Z"/></svg> \ No newline at end of file diff --git a/client/packages/lowcoder-design/src/icons/remix/heart-add-2-line.svg b/client/packages/lowcoder-design/src/icons/remix/heart-add-2-line.svg new file mode 100644 index 0000000000..c19271b14b --- /dev/null +++ b/client/packages/lowcoder-design/src/icons/remix/heart-add-2-line.svg @@ -0,0 +1 @@ +<svg viewBox="0 0 24 24" fill="currentColor" xmlns="http://www.w3.org/2000/svg"><path d="M4 9C4 6.49238 5.71351 5 7.5 5C9.40609 5 10.7537 6.58211 12 7.82843C13.2463 6.58211 14.5939 5 16.5 5C18.3158 5 20 6.48356 20 9C20 10.1222 19.7639 11.1501 19.3509 12.1019L21.1856 12.8981C21.7005 11.7114 22 10.4135 22 9C22 5.49592 19.5337 3 16.5 3C14.5905 3 13.1464 3.9848 12 5.02802C10.8536 3.9848 9.40952 3 7.5 3C4.50355 3 2 5.49623 2 9C2 12.0199 3.36207 14.4702 5.20346 16.445C7.03313 18.4073 9.38528 19.955 11.4916 21.1985L12.5084 19.4762C10.441 18.2557 8.29313 16.8259 6.66623 15.0811C5.05106 13.3489 4 11.3626 4 9ZM19 17V14H17V17H14V19H16.999L17 22H19L18.999 19H22V17H19Z"/></svg> \ No newline at end of file diff --git a/client/packages/lowcoder-design/src/icons/remix/home-9-fill.svg b/client/packages/lowcoder-design/src/icons/remix/home-9-fill.svg new file mode 100644 index 0000000000..c862102912 --- /dev/null +++ b/client/packages/lowcoder-design/src/icons/remix/home-9-fill.svg @@ -0,0 +1 @@ +<svg viewBox="0 0 24 24" fill="currentColor" xmlns="http://www.w3.org/2000/svg"><path d="M12.5812 2.68627C12.2335 2.43791 11.7664 2.43791 11.4187 2.68627L1.9187 9.47198L3.08118 11.0994L11.9999 4.7289L20.9187 11.0994L22.0812 9.47198L12.5812 2.68627ZM19.5812 12.6863L12.5812 7.68627C12.2335 7.43791 11.7664 7.43791 11.4187 7.68627L4.4187 12.6863C4.15591 12.874 3.99994 13.177 3.99994 13.5V20C3.99994 20.5523 4.44765 21 4.99994 21H18.9999C19.5522 21 19.9999 20.5523 19.9999 20V13.5C19.9999 13.177 19.844 12.874 19.5812 12.6863Z"/></svg> \ No newline at end of file diff --git a/client/packages/lowcoder-design/src/icons/remix/home-9-line.svg b/client/packages/lowcoder-design/src/icons/remix/home-9-line.svg new file mode 100644 index 0000000000..82901eb607 --- /dev/null +++ b/client/packages/lowcoder-design/src/icons/remix/home-9-line.svg @@ -0,0 +1 @@ +<svg viewBox="0 0 24 24" fill="currentColor" xmlns="http://www.w3.org/2000/svg"><path d="M12.5812 2.68627C12.2335 2.43791 11.7664 2.43791 11.4187 2.68627L1.9187 9.47198L3.08118 11.0994L11.9999 4.7289L20.9187 11.0994L22.0812 9.47198L12.5812 2.68627ZM19.5812 12.6863L12.5812 7.68627C12.2335 7.43791 11.7664 7.43791 11.4187 7.68627L4.4187 12.6863C4.15591 12.874 3.99994 13.177 3.99994 13.5V20C3.99994 20.5523 4.44765 21 4.99994 21H18.9999C19.5522 21 19.9999 20.5523 19.9999 20V13.5C19.9999 13.177 19.844 12.874 19.5812 12.6863ZM5.99994 19V14.0146L11.9999 9.7289L17.9999 14.0146V19H5.99994Z"/></svg> \ No newline at end of file diff --git a/client/packages/lowcoder-design/src/icons/remix/id-card-fill.svg b/client/packages/lowcoder-design/src/icons/remix/id-card-fill.svg new file mode 100644 index 0000000000..34d9c99183 --- /dev/null +++ b/client/packages/lowcoder-design/src/icons/remix/id-card-fill.svg @@ -0,0 +1 @@ +<svg viewBox="0 0 24 24" fill="currentColor" xmlns="http://www.w3.org/2000/svg"><path d="M1 5C1 4.44772 1.44772 4 2 4H22C22.5523 4 23 4.44772 23 5V19C23 19.5523 22.5523 20 22 20H2C1.44772 20 1 19.5523 1 19V5ZM13 8V10H19V8H13ZM18 12H13V14H18V12ZM10.5 10C10.5 8.61929 9.38071 7.5 8 7.5C6.61929 7.5 5.5 8.61929 5.5 10C5.5 11.3807 6.61929 12.5 8 12.5C9.38071 12.5 10.5 11.3807 10.5 10ZM8 13.5C6.067 13.5 4.5 15.067 4.5 17H11.5C11.5 15.067 9.933 13.5 8 13.5Z"/></svg> \ No newline at end of file diff --git a/client/packages/lowcoder-design/src/icons/remix/id-card-line.svg b/client/packages/lowcoder-design/src/icons/remix/id-card-line.svg new file mode 100644 index 0000000000..a82d7245d6 --- /dev/null +++ b/client/packages/lowcoder-design/src/icons/remix/id-card-line.svg @@ -0,0 +1 @@ +<svg viewBox="0 0 24 24" fill="currentColor" xmlns="http://www.w3.org/2000/svg"><path d="M3 6H21V18H3V6ZM2 4C1.44772 4 1 4.44772 1 5V19C1 19.5523 1.44772 20 2 20H22C22.5523 20 23 19.5523 23 19V5C23 4.44772 22.5523 4 22 4H2ZM13 8H19V10H13V8ZM18 12H13V14H18V12ZM10.5 10C10.5 11.3807 9.38071 12.5 8 12.5C6.61929 12.5 5.5 11.3807 5.5 10C5.5 8.61929 6.61929 7.5 8 7.5C9.38071 7.5 10.5 8.61929 10.5 10ZM8 13.5C6.067 13.5 4.5 15.067 4.5 17H11.5C11.5 15.067 9.933 13.5 8 13.5Z"/></svg> \ No newline at end of file diff --git a/client/packages/lowcoder-design/src/icons/remix/image-ai-fill.svg b/client/packages/lowcoder-design/src/icons/remix/image-ai-fill.svg new file mode 100644 index 0000000000..37fefadea2 --- /dev/null +++ b/client/packages/lowcoder-design/src/icons/remix/image-ai-fill.svg @@ -0,0 +1 @@ +<svg viewBox="0 0 24 24" fill="currentColor" xmlns="http://www.w3.org/2000/svg"><path d="M20.7134 8.12811L20.4668 8.69379C20.2864 9.10792 19.7136 9.10792 19.5331 8.69379L19.2866 8.12811C18.8471 7.11947 18.0555 6.31641 17.0677 5.87708L16.308 5.53922C15.8973 5.35653 15.8973 4.75881 16.308 4.57612L17.0252 4.25714C18.0384 3.80651 18.8442 2.97373 19.2761 1.93083L19.5293 1.31953C19.7058 0.893489 20.2942 0.893489 20.4706 1.31953L20.7238 1.93083C21.1558 2.97373 21.9616 3.80651 22.9748 4.25714L23.6919 4.57612C24.1027 4.75881 24.1027 5.35653 23.6919 5.53922L22.9323 5.87708C21.9445 6.31641 21.1529 7.11947 20.7134 8.12811ZM2.9918 3H14V5H4V19L13.2923 9.70649C13.6828 9.31595 14.3159 9.31591 14.7065 9.70641L20 15.0104V11H22V20.0066C22 20.5552 21.5447 21 21.0082 21H2.9918C2.44405 21 2 20.5551 2 20.0066V3.9934C2 3.44476 2.45531 3 2.9918 3ZM8 11C6.89543 11 6 10.1046 6 9C6 7.89543 6.89543 7 8 7C9.10457 7 10 7.89543 10 9C10 10.1046 9.10457 11 8 11Z"/></svg> \ No newline at end of file diff --git a/client/packages/lowcoder-design/src/icons/remix/image-ai-line.svg b/client/packages/lowcoder-design/src/icons/remix/image-ai-line.svg new file mode 100644 index 0000000000..643cfea84f --- /dev/null +++ b/client/packages/lowcoder-design/src/icons/remix/image-ai-line.svg @@ -0,0 +1 @@ +<svg viewBox="0 0 24 24" fill="currentColor" xmlns="http://www.w3.org/2000/svg"><path d="M20.7134 8.12811L20.4668 8.69379C20.2864 9.10792 19.7136 9.10792 19.5331 8.69379L19.2866 8.12811C18.8471 7.11947 18.0555 6.31641 17.0677 5.87708L16.308 5.53922C15.8973 5.35653 15.8973 4.75881 16.308 4.57612L17.0252 4.25714C18.0384 3.80651 18.8442 2.97373 19.2761 1.93083L19.5293 1.31953C19.7058 0.893489 20.2942 0.893489 20.4706 1.31953L20.7238 1.93083C21.1558 2.97373 21.9616 3.80651 22.9748 4.25714L23.6919 4.57612C24.1027 4.75881 24.1027 5.35653 23.6919 5.53922L22.9323 5.87708C21.9445 6.31641 21.1529 7.11947 20.7134 8.12811ZM2.9918 3H14V5H4V19L14 9L20 15V11H22V20.0066C22 20.5552 21.5447 21 21.0082 21H2.9918C2.44405 21 2 20.5551 2 20.0066V3.9934C2 3.44476 2.45531 3 2.9918 3ZM20 17.8284L14 11.8284L6.82843 19H20V17.8284ZM8 11C6.89543 11 6 10.1046 6 9C6 7.89543 6.89543 7 8 7C9.10457 7 10 7.89543 10 9C10 10.1046 9.10457 11 8 11Z"/></svg> \ No newline at end of file diff --git a/client/packages/lowcoder-design/src/icons/remix/image-circle-ai-fill.svg b/client/packages/lowcoder-design/src/icons/remix/image-circle-ai-fill.svg new file mode 100644 index 0000000000..400c008936 --- /dev/null +++ b/client/packages/lowcoder-design/src/icons/remix/image-circle-ai-fill.svg @@ -0,0 +1 @@ +<svg viewBox="0 0 24 24" fill="currentColor" xmlns="http://www.w3.org/2000/svg"><path d="M20.4668 8.69379L20.7134 8.12811C21.1529 7.11947 21.9445 6.31641 22.9323 5.87708L23.6919 5.53922C24.1027 5.35653 24.1027 4.75881 23.6919 4.57612L22.9748 4.25714C21.9616 3.80651 21.1558 2.97373 20.7238 1.93083L20.4706 1.31953C20.2942 0.893489 19.7058 0.893489 19.5293 1.31953L19.2761 1.93083C18.8442 2.97373 18.0384 3.80651 17.0252 4.25714L16.308 4.57612C15.8973 4.75881 15.8973 5.35653 16.308 5.53922L17.0677 5.87708C18.0555 6.31641 18.8471 7.11947 19.2866 8.12811L19.5331 8.69379C19.7136 9.10792 20.2864 9.10792 20.4668 8.69379ZM12 2C6.47715 2 2 6.47715 2 12C2 17.5228 6.47715 22 12 22C17.5228 22 22 17.5228 22 12C22 11.5975 21.9762 11.2002 21.9298 10.8094L19.9437 11.0452C19.9809 11.3579 20 11.6765 20 12C20 12.9012 19.851 13.7676 19.5762 14.5759L15.7073 10.707C15.3168 10.3164 14.6836 10.3164 14.2931 10.707L6.86516 18.1349C5.11372 16.6674 4 14.4637 4 12C4 7.58172 7.58172 4 12 4C12.6919 4 13.3618 4.0876 14 4.25179L14.4983 2.31487C13.6987 2.10914 12.8614 2 12 2ZM9 12C10.1046 12 11 11.1046 11 10C11 8.89543 10.1046 8 9 8C7.89543 8 7 8.89543 7 10C7 11.1046 7.89543 12 9 12Z"/></svg> \ No newline at end of file diff --git a/client/packages/lowcoder-design/src/icons/remix/image-circle-ai-line.svg b/client/packages/lowcoder-design/src/icons/remix/image-circle-ai-line.svg new file mode 100644 index 0000000000..5c04ccfcc5 --- /dev/null +++ b/client/packages/lowcoder-design/src/icons/remix/image-circle-ai-line.svg @@ -0,0 +1 @@ +<svg viewBox="0 0 24 24" fill="currentColor" xmlns="http://www.w3.org/2000/svg"><path d="M20.4668 8.69379L20.7134 8.12811C21.1529 7.11947 21.9445 6.31641 22.9323 5.87708L23.6919 5.53922C24.1027 5.35653 24.1027 4.75881 23.6919 4.57612L22.9748 4.25714C21.9616 3.80651 21.1558 2.97373 20.7238 1.93083L20.4706 1.31953C20.2942 0.893489 19.7058 0.893489 19.5293 1.31953L19.2761 1.93083C18.8442 2.97373 18.0384 3.80651 17.0252 4.25714L16.308 4.57612C15.8973 4.75881 15.8973 5.35653 16.308 5.53922L17.0677 5.87708C18.0555 6.31641 18.8471 7.11947 19.2866 8.12811L19.5331 8.69379C19.7136 9.10792 20.2864 9.10792 20.4668 8.69379ZM12 4C7.58172 4 4 7.58172 4 12C4 14.4636 5.11358 16.6671 6.86484 18.1346L14.2925 10.707C14.683 10.3164 15.3162 10.3164 15.7067 10.707L19.5761 14.5764C19.5773 14.5729 19.5785 14.5693 19.5797 14.5658C19.8522 13.7604 20 12.8975 20 12C20 11.6765 19.9809 11.3579 19.9437 11.0452L21.9298 10.8094C21.9762 11.2002 22 11.5975 22 12C22 17.5228 17.5228 22 12 22C6.47715 22 2 17.5228 2 12C2 6.47715 6.47715 2 12 2C12.8614 2 13.6987 2.10914 14.4983 2.31487L14 4.25179C13.3618 4.0876 12.6919 4 12 4ZM10.813 19.9125C11.2 19.9701 11.5962 19.9998 11.9996 19.9998C14.7613 19.9998 17.1992 18.6003 18.6379 16.4666L14.9996 12.8283L8.58927 19.2386L8.59334 19.2405C9.28476 19.5664 10.0304 19.7961 10.813 19.9125ZM11 10C11 11.1046 10.1046 12 9 12C7.89543 12 7 11.1046 7 10C7 8.89543 7.89543 8 9 8C10.1046 8 11 8.89543 11 10Z"/></svg> \ No newline at end of file diff --git a/client/packages/lowcoder-design/src/icons/remix/info-card-fill.svg b/client/packages/lowcoder-design/src/icons/remix/info-card-fill.svg new file mode 100644 index 0000000000..de249dc24a --- /dev/null +++ b/client/packages/lowcoder-design/src/icons/remix/info-card-fill.svg @@ -0,0 +1 @@ +<svg viewBox="0 0 24 24" fill="currentColor" xmlns="http://www.w3.org/2000/svg"><path d="M1 5C1 4.44772 1.44772 4 2 4H22C22.5523 4 23 4.44772 23 5V19C23 19.5523 22.5523 20 22 20H2C1.44772 20 1 19.5523 1 19V5ZM9 8H7V10H9V8ZM7 13V16H9V11H6V13H7ZM13 9V11H19V9H13ZM18 13H13V15H18V13Z"/></svg> \ No newline at end of file diff --git a/client/packages/lowcoder-design/src/icons/remix/info-card-line.svg b/client/packages/lowcoder-design/src/icons/remix/info-card-line.svg new file mode 100644 index 0000000000..db0b7ee53e --- /dev/null +++ b/client/packages/lowcoder-design/src/icons/remix/info-card-line.svg @@ -0,0 +1 @@ +<svg viewBox="0 0 24 24" fill="currentColor" xmlns="http://www.w3.org/2000/svg"><path d="M3 6H21V18H3V6ZM2 4C1.44772 4 1 4.44772 1 5V19C1 19.5523 1.44772 20 2 20H22C22.5523 20 23 19.5523 23 19V5C23 4.44772 22.5523 4 22 4H2ZM13 9H19V11H13V9ZM18 13H13V15H18V13ZM6 13H7V16H9V11H6V13ZM9 8H7V10H9V8Z"/></svg> \ No newline at end of file diff --git a/client/packages/lowcoder-design/src/icons/remix/information-off-fill.svg b/client/packages/lowcoder-design/src/icons/remix/information-off-fill.svg new file mode 100644 index 0000000000..b0c6b098b7 --- /dev/null +++ b/client/packages/lowcoder-design/src/icons/remix/information-off-fill.svg @@ -0,0 +1 @@ +<svg viewBox="0 0 24 24" fill="currentColor" xmlns="http://www.w3.org/2000/svg"><path d="M19.7429 18.3287C21.1536 16.6049 22 14.4013 22 12C22 6.47715 17.5228 2 12 2C9.59873 2 7.39514 2.84637 5.67127 4.25705L11.9142 10.5H13V11.5858L19.7429 18.3287ZM10 11.4142L4.25705 5.67127C2.84637 7.39514 2 9.59873 2 12C2 17.5228 6.47715 22 12 22C14.4013 22 16.6049 21.1536 18.3287 19.7429L14 15.4142V17H10V15H11V12.5H10V11.4142ZM13.5858 15H13V14.4142L13.5858 15ZM13.5 8C13.5 8.82843 12.8284 9.5 12 9.5C11.1716 9.5 10.5 8.82843 10.5 8C10.5 7.17157 11.1716 6.5 12 6.5C12.8284 6.5 13.5 7.17157 13.5 8Z"/></svg> \ No newline at end of file diff --git a/client/packages/lowcoder-design/src/icons/remix/information-off-line.svg b/client/packages/lowcoder-design/src/icons/remix/information-off-line.svg new file mode 100644 index 0000000000..6e79a8db97 --- /dev/null +++ b/client/packages/lowcoder-design/src/icons/remix/information-off-line.svg @@ -0,0 +1 @@ +<svg viewBox="0 0 24 24" fill="currentColor" xmlns="http://www.w3.org/2000/svg"><path d="M2 12C2 17.5228 6.47715 22 12 22C17.5228 22 22 17.5228 22 12C22 6.47715 17.5228 2 12 2C6.47715 2 2 6.47715 2 12ZM16.9056 18.3199C15.551 19.3729 13.8487 20 12 20C7.58172 20 4 16.4183 4 12C4 10.1513 4.62708 8.44904 5.68014 7.09436L10 11.4142V12.5H11V15H10V17H14V15.4142L16.9056 18.3199ZM18.3199 16.9056L13 11.5858V10.5H11.9142L7.09436 5.68014C8.44904 4.62708 10.1513 4 12 4C16.4183 4 20 7.58172 20 12C20 13.8487 19.3729 15.551 18.3199 16.9056ZM13 14.4142V15H13.5858L13 14.4142ZM12 9.5C12.8284 9.5 13.5 8.82843 13.5 8C13.5 7.17157 12.8284 6.5 12 6.5C11.1716 6.5 10.5 7.17157 10.5 8C10.5 8.82843 11.1716 9.5 12 9.5Z"/></svg> \ No newline at end of file diff --git a/client/packages/lowcoder-design/src/icons/remix/java-fill.svg b/client/packages/lowcoder-design/src/icons/remix/java-fill.svg new file mode 100644 index 0000000000..22ec97ca40 --- /dev/null +++ b/client/packages/lowcoder-design/src/icons/remix/java-fill.svg @@ -0,0 +1 @@ +<svg viewBox="0 0 24 24" fill="currentColor" xmlns="http://www.w3.org/2000/svg"><path d="M15.6381 4.56605L15.6938 4.5979C14.9364 4.9983 12.7704 6.28707 12.7704 7.92968C12.7704 8.4836 13.0874 9.01832 13.3844 9.51951C13.6464 9.96157 13.893 10.3776 13.893 10.7576C13.893 11.7154 12.9598 12.4572 12.4328 12.7998L12.3326 12.7419C12.532 12.4988 12.7769 12.0921 12.7769 11.6583C12.7769 11.0601 12.4704 10.5823 12.159 10.0969C11.8375 9.59566 11.5106 9.08622 11.5106 8.42742C11.5106 6.1347 14.6259 4.90505 15.6381 4.56605ZM11.5434 5.77848C12.7958 4.65825 14.1645 3.43386 14.1645 1.59287C14.1645 0.759703 13.8238 0.227919 13.6546 0.0151978L13.6005 0.0463524C13.6419 0.211686 13.7011 0.518006 13.7011 0.917705C13.7011 2.59364 12.2794 3.76866 10.903 4.90626C9.61148 5.97365 8.35986 7.0081 8.35986 8.39247C8.35986 10.3768 10.3182 11.5983 11.1447 12.1138C11.1667 12.1275 11.1879 12.1407 11.2082 12.1534L11.2587 12.1243C11.2135 12.0755 11.1657 12.0246 11.1159 11.9716C10.4801 11.2952 9.51432 10.2677 9.51432 8.69722C9.51432 7.59357 10.4875 6.72305 11.5434 5.77848ZM11.0908 15.6857C12.8553 15.6857 14.0892 15.4328 14.637 15.2776L15.4693 15.7583C14.6762 16.1607 12.918 16.4679 11.0874 16.4679C8.93406 16.4679 6.58033 16.0056 6.57265 15.3901C6.5682 15.0509 7.3385 14.8244 8.1677 14.6778L8.21766 14.7068C8.21766 14.7068 7.93691 14.808 7.93983 15.0402C7.94424 15.3893 9.35916 15.6857 11.0908 15.6857ZM7.56243 17.857C7.56243 17.4495 8.40054 17.2571 8.78509 17.1805L8.83501 17.2094C8.76891 17.2586 8.73343 17.3259 8.73343 17.3827C8.73343 17.6501 9.66273 17.8944 11.0891 17.8944C12.3671 17.8944 13.0768 17.7367 13.4981 17.6363L14.4885 18.2094C14.4444 18.2411 13.4687 18.854 11.0867 18.854C9.35558 18.854 7.56243 18.4216 7.56243 17.857ZM16.0908 16.1289C17.2713 15.4563 18.4524 14.6603 18.519 13.3819C18.5628 12.5433 17.7924 11.9276 16.9493 12.0926L16.994 11.9801L16.9946 11.9781C17.2064 11.9136 17.4675 11.8618 17.761 11.8618C18.7036 11.8618 19.4266 12.427 19.5192 13.2181C19.705 14.8043 17.4574 15.8362 16.1978 16.1906L16.0908 16.1289ZM18.0656 19.1167C18.0751 20.2067 14.3677 20.8553 11.0541 20.8841C8.19296 20.9092 3.57989 20.3685 3.57033 19.2795C3.5637 18.5262 5.57092 18.0045 6.66027 17.8545L6.77512 17.9201C6.77512 17.9201 5.14953 18.2966 5.15551 18.9817C5.16149 19.665 8.58036 20.2563 11.0485 20.2348C14.8736 20.2014 17.4627 19.5776 17.769 18.7331L17.8234 18.702C17.9352 18.7838 18.0639 18.9191 18.0656 19.1167ZM6.43132 21.3375C7.78419 21.5649 9.39241 21.6739 10.7095 21.6623C16.9181 21.6081 18.6693 20.0816 18.9407 19.7504L18.9875 19.7777C18.9226 20.986 15.6401 21.99 11.5914 22.0254C9.52977 22.0433 7.65363 21.8047 6.30604 21.4096L6.43132 21.3375ZM9.03259 12.0541C7.95397 12.1371 5.63738 12.4797 5.63738 13.0904C5.63738 13.5516 7.76084 14.2028 11.0887 14.2028C14.083 14.2028 15.9733 13.6377 16.4136 13.4221L15.7707 13.048C15.3111 13.1734 13.6023 13.5539 11.0886 13.5539C9.60853 13.5539 7.05875 13.281 7.05875 12.8646C7.05875 12.4903 8.65043 12.2016 9.10709 12.1187C9.11713 12.1169 9.12662 12.1152 9.13553 12.1135L9.03259 12.0541Z"/></svg> \ No newline at end of file diff --git a/client/packages/lowcoder-design/src/icons/remix/java-line.svg b/client/packages/lowcoder-design/src/icons/remix/java-line.svg new file mode 100644 index 0000000000..030ca53e01 --- /dev/null +++ b/client/packages/lowcoder-design/src/icons/remix/java-line.svg @@ -0,0 +1 @@ +<svg viewBox="0 0 24 24" fill="currentColor" xmlns="http://www.w3.org/2000/svg"><path d="M10.8193 8.42654C10.0602 7.34217 9.77392 6.55513 9.71179 5.98243C9.6531 5.44149 9.78522 5.01294 10.0473 4.59929C10.3303 4.15244 10.755 3.73687 11.2954 3.24643C11.8004 2.78803 12.4323 2.24339 12.9281 1.62639L11.369 0.373657C10.9532 0.891134 10.4413 1.32064 9.95118 1.76549C9.41712 2.25024 8.80225 2.82728 8.35773 3.52902C7.89217 4.26395 7.60866 5.13997 7.72346 6.19813C7.83481 7.22454 8.31113 8.33114 9.18085 9.57351L10.8193 8.42654ZM12.0691 5.39666C12.3539 4.71314 12.9313 4.02758 13.8492 3.24077L15.1508 4.75928C14.3187 5.47247 14.0211 5.91191 13.9153 6.16589C13.8112 6.41559 13.8802 6.66497 13.9502 6.91319C14.0337 7.20908 14.1728 7.70231 14.1639 8.23544C14.1522 8.94083 13.9104 9.6872 13.3321 10.5547L11.6679 9.44533C12.0896 8.81285 12.1603 8.43422 12.1642 8.20211C12.1691 7.907 12.0921 7.74146 11.9674 7.24256C11.8478 6.76427 11.7573 6.14506 12.0691 5.39666ZM6.14205 9.99985C6.61127 9.68577 7.19166 9.52606 7.73387 9.39563L7.26613 7.4511C6.45314 7.64666 5.71471 7.91182 5.15413 8.25779C4.64408 8.57258 4 9.13581 4 9.99993C4 10.7262 4.48572 11.306 5.06549 11.6857C5.02301 11.8687 5 12.0596 5 12.2576C5 13.238 5.41805 14.0646 6.14274 14.6786C6.03632 14.9777 5.98811 15.3119 6.00331 15.6465C5.22587 15.7972 4.46698 16.0193 3.83335 16.3097C3.40087 16.5079 2.97509 16.7612 2.64304 17.0874C2.30876 17.4157 2 17.8913 2 18.5C2 18.927 2.18863 19.2717 2.37382 19.5093C2.56286 19.7519 2.8059 19.9586 3.05811 20.1338C3.56429 20.4854 4.24239 20.8028 5.0167 21.0702C6.57504 21.6084 8.68585 22 11 22C14.3273 22 16.6627 21.6161 18.1899 21.2177C18.9534 21.0185 19.5137 20.816 19.894 20.6568C20.1036 20.5691 20.3141 20.4759 20.5102 20.3601C20.5209 20.3537 19.4817 18.6448 19.4864 18.642C18.9216 18.9361 18.2983 19.1224 17.6851 19.2824C16.3373 19.634 14.1727 20 11 20C8.89587 20 7.00668 19.6416 5.6696 19.1798C5.13841 18.9964 4.58196 18.7818 4.12894 18.4405C4.24432 18.3492 4.41971 18.241 4.66665 18.1278C5.22462 17.8721 5.98958 17.6623 6.80607 17.5366C7.03515 17.7796 7.30872 17.994 7.62113 18.1763C8.58641 18.7394 9.91268 19 11.5 19C12.81 19 13.7578 18.8682 14.3982 18.7263C14.7536 18.6476 15.1117 18.5587 15.4402 18.3979C15.4434 18.3964 14.5589 16.6026 14.5589 16.6026C14.3651 16.6735 14.1673 16.729 13.9657 16.7737C13.4775 16.8818 12.6753 17 11.5 17C10.0873 17 9.16359 16.7606 8.62887 16.4487C8.20348 16.2006 8.04009 15.9254 8.00673 15.6255C8.87463 15.8783 9.90235 16 11.0625 16C12.5261 16 13.5815 15.8565 14.2908 15.7033C14.6765 15.62 15.0664 15.5241 15.4255 15.3566C15.4458 15.3469 14.5678 13.5498 14.5678 13.5498C14.513 13.5722 14.2892 13.6575 13.8686 13.7483C13.3082 13.8694 12.3949 14 11.0625 14C9.45935 14 8.39107 13.7356 7.76003 13.3767C7.28904 13.1088 7.08228 12.8089 7.02081 12.487C8.26048 12.8135 9.82491 12.9999 11.5 12.9999C13.3167 12.9999 15.0016 12.7806 16.2832 12.4022L15.7168 10.4841C14.6626 10.7954 13.1762 10.9999 11.5 10.9999C9.77625 10.9999 8.25501 10.7836 7.19789 10.4584C6.69889 10.3048 6.35214 10.1417 6.14205 9.99985ZM17.5905 10.7457C18.8029 10.6355 19.2497 10.934 19.3939 11.0885C19.543 11.2483 19.5952 11.496 19.5299 11.7573C19.4137 12.2219 19.0872 12.6724 18.5567 13.0863C18.0281 13.4988 17.3563 13.8266 16.6839 14.0506L17.3161 15.9481C18.1437 15.6723 19.0344 15.2504 19.787 14.6631C20.5378 14.0773 21.2113 13.278 21.4701 12.2424C21.6547 11.5039 21.5819 10.5016 20.8561 9.72387C20.1252 8.94081 18.9471 8.61417 17.4095 8.75396L17.5905 10.7457Z"/></svg> \ No newline at end of file diff --git a/client/packages/lowcoder-design/src/icons/remix/landscape-ai-fill.svg b/client/packages/lowcoder-design/src/icons/remix/landscape-ai-fill.svg new file mode 100644 index 0000000000..18dc067ef9 --- /dev/null +++ b/client/packages/lowcoder-design/src/icons/remix/landscape-ai-fill.svg @@ -0,0 +1 @@ +<svg viewBox="0 0 24 24" fill="currentColor" xmlns="http://www.w3.org/2000/svg"><path d="M6.2134 8.62811L5.96682 9.19379C5.78637 9.60792 5.21357 9.60792 5.03312 9.19379L4.78656 8.62811C4.34706 7.61947 3.55545 6.81641 2.56767 6.37708L1.80805 6.03922C1.39732 5.85653 1.39732 5.25881 1.80805 5.07612L2.5252 4.75714C3.53838 4.30651 4.34417 3.47373 4.77612 2.43083L5.02932 1.81953C5.20578 1.39349 5.79417 1.39349 5.97063 1.81953L6.22382 2.43083C6.65577 3.47373 7.46158 4.30651 8.4748 4.75714L9.19188 5.07612C9.60271 5.25881 9.60271 5.85653 9.19188 6.03922L8.43228 6.37708C7.44451 6.81641 6.65288 7.61947 6.2134 8.62811ZM11.2381 12.2698L16 21H23L15 6L11.2381 12.2698ZM14 21L8 10L2 21H14Z"/></svg> \ No newline at end of file diff --git a/client/packages/lowcoder-design/src/icons/remix/landscape-ai-line.svg b/client/packages/lowcoder-design/src/icons/remix/landscape-ai-line.svg new file mode 100644 index 0000000000..3ec508c41d --- /dev/null +++ b/client/packages/lowcoder-design/src/icons/remix/landscape-ai-line.svg @@ -0,0 +1 @@ +<svg viewBox="0 0 24 24" fill="currentColor" xmlns="http://www.w3.org/2000/svg"><path d="M6.2134 8.62811L5.96682 9.19379C5.78637 9.60792 5.21357 9.60792 5.03312 9.19379L4.78656 8.62811C4.34706 7.61947 3.55545 6.81641 2.56767 6.37708L1.80805 6.03922C1.39732 5.85653 1.39732 5.25881 1.80805 5.07612L2.5252 4.75714C3.53838 4.30651 4.34417 3.47373 4.77612 2.43083L5.02932 1.81953C5.20578 1.39349 5.79417 1.39349 5.97063 1.81953L6.22382 2.43083C6.65577 3.47373 7.46158 4.30651 8.4748 4.75714L9.19188 5.07612C9.60271 5.25881 9.60271 5.85653 9.19188 6.03922L8.43228 6.37708C7.44451 6.81641 6.65288 7.61947 6.2134 8.62811ZM15 6L11.2703 12.2162L9 8L2 21H23L15 6ZM14.9873 19L12.3897 14.2378L14.8976 10.058L19.6667 19H14.9873ZM12.6516 19H5.34843L9 12.2185L12.6516 19Z"/></svg> \ No newline at end of file diff --git a/client/packages/lowcoder-design/src/icons/remix/layout-grid-2-fill.svg b/client/packages/lowcoder-design/src/icons/remix/layout-grid-2-fill.svg new file mode 100644 index 0000000000..162dcacc32 --- /dev/null +++ b/client/packages/lowcoder-design/src/icons/remix/layout-grid-2-fill.svg @@ -0,0 +1 @@ +<svg viewBox="0 0 24 24" fill="currentColor" xmlns="http://www.w3.org/2000/svg"><path d="M3 3C2.44772 3 2 3.44772 2 4V8L7.5 8V3H3ZM9.5 3V8H14.5V3H9.5ZM16.5 3V8H22V4C22 3.44772 21.5523 3 21 3H16.5ZM22 10H16.5V14H22V10ZM22 16H16.5V21H21C21.5523 21 22 20.5523 22 20V16ZM14.5 21V16H9.5V21H14.5ZM7.5 21V16H2V20C2 20.5523 2.44772 21 3 21H7.5ZM2 14H7.5V10L2 10V14ZM9.5 10H14.5V14H9.5V10Z"/></svg> \ No newline at end of file diff --git a/client/packages/lowcoder-design/src/icons/remix/layout-grid-2-line.svg b/client/packages/lowcoder-design/src/icons/remix/layout-grid-2-line.svg new file mode 100644 index 0000000000..ac75881642 --- /dev/null +++ b/client/packages/lowcoder-design/src/icons/remix/layout-grid-2-line.svg @@ -0,0 +1 @@ +<svg viewBox="0 0 24 24" fill="currentColor" xmlns="http://www.w3.org/2000/svg"><path d="M4 10L8 10V14H4V10ZM4 19V16H8V19H4ZM10 19V16H14V19H10ZM16 19V16H20V19H16ZM16 14V10H20V14H16ZM16 8V5H20V8H16ZM14 5V8H10V5H14ZM14 10V14H10V10H14ZM4 8V5H8V8L4 8ZM3 3C2.44772 3 2 3.44772 2 4V20C2 20.5523 2.44772 21 3 21H21C21.5523 21 22 20.5523 22 20V4C22 3.44772 21.5523 3 21 3H3Z"/></svg> \ No newline at end of file diff --git a/client/packages/lowcoder-design/src/icons/remix/layout-horizontal-fill.svg b/client/packages/lowcoder-design/src/icons/remix/layout-horizontal-fill.svg new file mode 100644 index 0000000000..7def54d976 --- /dev/null +++ b/client/packages/lowcoder-design/src/icons/remix/layout-horizontal-fill.svg @@ -0,0 +1 @@ +<svg viewBox="0 0 24 24" fill="currentColor" xmlns="http://www.w3.org/2000/svg"><path d="M4 3C3.44772 3 3 3.44772 3 4V20C3 20.5523 3.44772 21 4 21H20C20.5523 21 21 20.5523 21 20V4C21 3.44772 20.5523 3 20 3H4ZM7 9V7H17V9H7ZM7 13V11H17V13H7ZM17 17H7V15H17V17Z"/></svg> \ No newline at end of file diff --git a/client/packages/lowcoder-design/src/icons/remix/layout-horizontal-line.svg b/client/packages/lowcoder-design/src/icons/remix/layout-horizontal-line.svg new file mode 100644 index 0000000000..5ae1e9a9ad --- /dev/null +++ b/client/packages/lowcoder-design/src/icons/remix/layout-horizontal-line.svg @@ -0,0 +1 @@ +<svg viewBox="0 0 24 24" fill="currentColor" xmlns="http://www.w3.org/2000/svg"><path d="M5 19H19V5H5V19ZM3 4C3 3.44772 3.44772 3 4 3H20C20.5523 3 21 3.44772 21 4V20C21 20.5523 20.5523 21 20 21H4C3.44772 21 3 20.5523 3 20V4ZM7 9H17V7H7V9ZM17 13H7V11H17V13ZM7 17H17V15H7V17Z"/></svg> \ No newline at end of file diff --git a/client/packages/lowcoder-design/src/icons/remix/layout-vertical-fill.svg b/client/packages/lowcoder-design/src/icons/remix/layout-vertical-fill.svg new file mode 100644 index 0000000000..8b9daabc68 --- /dev/null +++ b/client/packages/lowcoder-design/src/icons/remix/layout-vertical-fill.svg @@ -0,0 +1 @@ +<svg viewBox="0 0 24 24" fill="currentColor" xmlns="http://www.w3.org/2000/svg"><path d="M4 3C3.44772 3 3 3.44772 3 4V20C3 20.5523 3.44772 21 4 21H20C20.5523 21 21 20.5523 21 20V4C21 3.44772 20.5523 3 20 3H4ZM6.99993 16.9999V6.99993H8.99993V16.9999H6.99993ZM10.9999 6.99993H12.9999V16.9999H10.9999V6.99993ZM14.9999 6.99993H16.9999V16.9999H14.9999V6.99993Z"/></svg> \ No newline at end of file diff --git a/client/packages/lowcoder-design/src/icons/remix/layout-vertical-line.svg b/client/packages/lowcoder-design/src/icons/remix/layout-vertical-line.svg new file mode 100644 index 0000000000..17ab99dd0b --- /dev/null +++ b/client/packages/lowcoder-design/src/icons/remix/layout-vertical-line.svg @@ -0,0 +1 @@ +<svg viewBox="0 0 24 24" fill="currentColor" xmlns="http://www.w3.org/2000/svg"><path d="M5 19H19V5H5V19ZM3 4C3 3.44772 3.44772 3 4 3H20C20.5523 3 21 3.44772 21 4V20C21 20.5523 20.5523 21 20 21H4C3.44772 21 3 20.5523 3 20V4ZM15 7V17H17V7H15ZM11 7L11 17H13V7H11ZM7 17L7 7L9 7L9 17H7Z"/></svg> \ No newline at end of file diff --git a/client/packages/lowcoder-design/src/icons/remix/letter-spacing-2.svg b/client/packages/lowcoder-design/src/icons/remix/letter-spacing-2.svg new file mode 100644 index 0000000000..78071d825d --- /dev/null +++ b/client/packages/lowcoder-design/src/icons/remix/letter-spacing-2.svg @@ -0,0 +1 @@ +<svg viewBox="0 0 24 24" fill="currentColor" xmlns="http://www.w3.org/2000/svg"><path d="M6.19983 14H8.3539L9.55389 11H14.4458L15.6458 14H17.7998L12.9998 2H10.9998L6.19983 14ZM11.9998 4.88517 13.6458 9H10.3539L11.9998 4.88517ZM3 16V22L5 22 4.99992 20H18.9999L19 22 21 22 20.9999 16H18.9999V18H4.99992L5 16 3 16Z"/></svg> \ No newline at end of file diff --git a/client/packages/lowcoder-design/src/icons/remix/line-height-2.svg b/client/packages/lowcoder-design/src/icons/remix/line-height-2.svg new file mode 100644 index 0000000000..c54792e4a9 --- /dev/null +++ b/client/packages/lowcoder-design/src/icons/remix/line-height-2.svg @@ -0,0 +1 @@ +<svg viewBox="0 0 24 24" fill="currentColor" xmlns="http://www.w3.org/2000/svg"><path d="M2 3.00012L2.00008 5.00012L4.00004 5.00004L4.00004 19L2 19.0001L2.00008 21.0001L8.00004 21V19H6.00004L6.00004 5.00004L8 5.00012L8.00008 3.00012L2 3.00012ZM10.2 18H12.3541L13.5541 15H18.4459L19.6459 18H21.8L17 6H15L10.2 18ZM16 8.88517L17.6459 13H14.3541L16 8.88517Z"/></svg> \ No newline at end of file diff --git a/client/packages/lowcoder-design/src/icons/remix/mail-ai-fill.svg b/client/packages/lowcoder-design/src/icons/remix/mail-ai-fill.svg new file mode 100644 index 0000000000..fe974e84d9 --- /dev/null +++ b/client/packages/lowcoder-design/src/icons/remix/mail-ai-fill.svg @@ -0,0 +1 @@ +<svg viewBox="0 0 24 24" fill="currentColor" xmlns="http://www.w3.org/2000/svg"><path d="M20.7134 8.12811L20.4668 8.69379C20.2864 9.10792 19.7136 9.10792 19.5331 8.69379L19.2866 8.12811C18.8471 7.11947 18.0555 6.31641 17.0677 5.87708L16.308 5.53922C15.8973 5.35653 15.8973 4.75881 16.308 4.57612L17.0252 4.25714C18.0384 3.80651 18.8442 2.97373 19.2761 1.93083L19.5293 1.31953C19.7058 0.893489 20.2942 0.893489 20.4706 1.31953L20.7238 1.93083C21.1558 2.97373 21.9616 3.80651 22.9748 4.25714L23.6919 4.57612C24.1027 4.75881 24.1027 5.35653 23.6919 5.53922L22.9323 5.87708C21.9445 6.31641 21.1529 7.11947 20.7134 8.12811ZM19.9999 11C20.7012 11 21.3744 10.8797 22 10.6586V20C22 20.5523 21.5523 21 21 21H2V4C2 3.44772 2.44772 3 3 3H14.3413C14.1202 3.62556 13.9999 4.29873 13.9999 5C13.9999 6.44366 14.5098 7.76824 15.3593 8.80348L11.9999 11.6829L5.6507 6.24074L4.34912 7.75926L11.9999 14.3171L16.8855 10.1294C17.7934 10.6818 18.8595 11 19.9999 11Z"/></svg> \ No newline at end of file diff --git a/client/packages/lowcoder-design/src/icons/remix/mail-ai-line.svg b/client/packages/lowcoder-design/src/icons/remix/mail-ai-line.svg new file mode 100644 index 0000000000..8295e7bada --- /dev/null +++ b/client/packages/lowcoder-design/src/icons/remix/mail-ai-line.svg @@ -0,0 +1 @@ +<svg viewBox="0 0 24 24" fill="currentColor" xmlns="http://www.w3.org/2000/svg"><path d="M20.7134 8.12811L20.4668 8.69379C20.2864 9.10792 19.7136 9.10792 19.5331 8.69379L19.2866 8.12811C18.8471 7.11947 18.0555 6.31641 17.0677 5.87708L16.308 5.53922C15.8973 5.35653 15.8973 4.75881 16.308 4.57612L17.0252 4.25714C18.0384 3.80651 18.8442 2.97373 19.2761 1.93083L19.5293 1.31953C19.7058 0.893489 20.2942 0.893489 20.4706 1.31953L20.7238 1.93083C21.1558 2.97373 21.9616 3.80651 22.9748 4.25714L23.6919 4.57612C24.1027 4.75881 24.1027 5.35653 23.6919 5.53922L22.9323 5.87708C21.9445 6.31641 21.1529 7.11947 20.7134 8.12811ZM2 4C2 3.44772 2.44772 3 3 3H14V5H4.5052L12 11.662L16.3981 7.75259L17.7269 9.24741L12 14.338L4 7.22684V19H20V11H22V20C22 20.5523 21.5523 21 21 21H3C2.44772 21 2 20.5523 2 20V4Z"/></svg> \ No newline at end of file diff --git a/client/packages/lowcoder-design/src/icons/remix/menu-fold-2-fill.svg b/client/packages/lowcoder-design/src/icons/remix/menu-fold-2-fill.svg new file mode 100644 index 0000000000..dccba128c1 --- /dev/null +++ b/client/packages/lowcoder-design/src/icons/remix/menu-fold-2-fill.svg @@ -0,0 +1 @@ +<svg viewBox="0 0 24 24" fill="currentColor" xmlns="http://www.w3.org/2000/svg"><path d="M4 3.5L9 8.49955L4 13.5V3.5ZM21 19.9995V17.9995H3V19.9995H21ZM21 12.9995V10.9995H12V12.9995H21ZM21 5.99951V3.99951H12V5.99951H21Z"/></svg> \ No newline at end of file diff --git a/client/packages/lowcoder-design/src/icons/remix/menu-fold-2-line.svg b/client/packages/lowcoder-design/src/icons/remix/menu-fold-2-line.svg new file mode 100644 index 0000000000..25b6857f0a --- /dev/null +++ b/client/packages/lowcoder-design/src/icons/remix/menu-fold-2-line.svg @@ -0,0 +1 @@ +<svg viewBox="0 0 24 24" fill="currentColor" xmlns="http://www.w3.org/2000/svg"><path d="M4.40347 3.90332L2.98926 5.31753L6.17124 8.49951L2.98926 11.6815L4.40347 13.0957L8.99967 8.49951L4.40347 3.90332ZM20.9997 19.9995V17.9995H2.99967V19.9995H20.9997ZM20.9997 12.9995V10.9995H11.9997V12.9995H20.9997ZM20.9997 5.99951V3.99951H11.9997V5.99951H20.9997Z"/></svg> \ No newline at end of file diff --git a/client/packages/lowcoder-design/src/icons/remix/menu-fold-3-fill.svg b/client/packages/lowcoder-design/src/icons/remix/menu-fold-3-fill.svg new file mode 100644 index 0000000000..5137e4d88a --- /dev/null +++ b/client/packages/lowcoder-design/src/icons/remix/menu-fold-3-fill.svg @@ -0,0 +1 @@ +<svg viewBox="0 0 24 24" fill="currentColor" xmlns="http://www.w3.org/2000/svg"><path d="M21 4H7V6H21V4ZM21 11H11V13H21V11ZM21 18H7V20H21V18ZM8 17V7L3 11.9996L8 17Z"/></svg> \ No newline at end of file diff --git a/client/packages/lowcoder-design/src/icons/remix/menu-fold-3-line.svg b/client/packages/lowcoder-design/src/icons/remix/menu-fold-3-line.svg new file mode 100644 index 0000000000..1c551f3ea5 --- /dev/null +++ b/client/packages/lowcoder-design/src/icons/remix/menu-fold-3-line.svg @@ -0,0 +1 @@ +<svg viewBox="0 0 24 24" fill="currentColor" xmlns="http://www.w3.org/2000/svg"><path d="M21 4H7V6H21V4ZM21 11H11V13H21V11ZM21 18H7V20H21V18ZM9.01041 8.81412L7.59619 7.3999L3 11.9961L7.59619 16.5923L9.01041 15.1781L5.82843 11.9961L9.01041 8.81412Z"/></svg> \ No newline at end of file diff --git a/client/packages/lowcoder-design/src/icons/remix/menu-fold-4-fill.svg b/client/packages/lowcoder-design/src/icons/remix/menu-fold-4-fill.svg new file mode 100644 index 0000000000..df6254e2c6 --- /dev/null +++ b/client/packages/lowcoder-design/src/icons/remix/menu-fold-4-fill.svg @@ -0,0 +1 @@ +<svg viewBox="0 0 24 24" fill="currentColor" xmlns="http://www.w3.org/2000/svg"><path d="M21 4H7V6H21V4ZM21 11H11V13H21V11ZM21 18H7V20H21V18ZM3 17V7L8 11.9996L3 17Z"/></svg> \ No newline at end of file diff --git a/client/packages/lowcoder-design/src/icons/remix/menu-fold-4-line.svg b/client/packages/lowcoder-design/src/icons/remix/menu-fold-4-line.svg new file mode 100644 index 0000000000..2a4718e0e8 --- /dev/null +++ b/client/packages/lowcoder-design/src/icons/remix/menu-fold-4-line.svg @@ -0,0 +1 @@ +<svg viewBox="0 0 24 24" fill="currentColor" xmlns="http://www.w3.org/2000/svg"><path d="M20.9997 4H6.99967V6H20.9997V4ZM20.9997 11H10.9997V13H20.9997V11ZM20.9997 18H6.99967V20H20.9997V18ZM1.98926 8.81412L3.40347 7.3999L7.99967 11.9961L3.40347 16.5923L1.98926 15.1781L5.17124 11.9961L1.98926 8.81412Z"/></svg> \ No newline at end of file diff --git a/client/packages/lowcoder-design/src/icons/remix/menu-fold-fill.svg b/client/packages/lowcoder-design/src/icons/remix/menu-fold-fill.svg index 445f1e36cc..c9890fda42 100644 --- a/client/packages/lowcoder-design/src/icons/remix/menu-fold-fill.svg +++ b/client/packages/lowcoder-design/src/icons/remix/menu-fold-fill.svg @@ -1 +1 @@ -<svg viewBox="0 0 24 24" fill="currentColor" xmlns="http://www.w3.org/2000/svg"><path d="M21 17.9996V19.9996H3V17.9996H21ZM6.94975 3.5498V13.4493L2 8.49955L6.94975 3.5498ZM21 10.9996V12.9996H12V10.9996H21ZM21 3.99955V5.99955H12V3.99955H21Z"/></svg> \ No newline at end of file +<svg viewBox="0 0 24 24" fill="currentColor" xmlns="http://www.w3.org/2000/svg"><path d="M21 17.9996V19.9996H3V17.9996H21ZM7 3.5V13.5L2 8.49955L7 3.5ZM21 10.9996V12.9996H12V10.9996H21ZM21 3.99955V5.99955H12V3.99955H21Z"/></svg> \ No newline at end of file diff --git a/client/packages/lowcoder-design/src/icons/remix/menu-unfold-2-fill.svg b/client/packages/lowcoder-design/src/icons/remix/menu-unfold-2-fill.svg new file mode 100644 index 0000000000..76b33487b6 --- /dev/null +++ b/client/packages/lowcoder-design/src/icons/remix/menu-unfold-2-fill.svg @@ -0,0 +1 @@ +<svg viewBox="0 0 24 24" fill="currentColor" xmlns="http://www.w3.org/2000/svg"><path d="M21 3.5V13.5L16 8.49955L21 3.5ZM21 19.9995V17.9995H3V19.9995H21ZM12 12.9995V10.9995H3V12.9995H12ZM12 5.99951V3.99951H3V5.99951H12Z"/></svg> \ No newline at end of file diff --git a/client/packages/lowcoder-design/src/icons/remix/menu-unfold-2-line.svg b/client/packages/lowcoder-design/src/icons/remix/menu-unfold-2-line.svg new file mode 100644 index 0000000000..0f555eb767 --- /dev/null +++ b/client/packages/lowcoder-design/src/icons/remix/menu-unfold-2-line.svg @@ -0,0 +1 @@ +<svg viewBox="0 0 24 24" fill="currentColor" xmlns="http://www.w3.org/2000/svg"><path d="M20.5956 3.90332L15.9994 8.49951L20.5956 13.0957L22.0098 11.6815L18.8278 8.49951L22.0098 5.31753L20.5956 3.90332ZM21 19.9995V17.9995H3V19.9995H21ZM12 12.9995V10.9995H3V12.9995H12ZM12 5.99951V3.99951H3V5.99951H12Z"/></svg> \ No newline at end of file diff --git a/client/packages/lowcoder-design/src/icons/remix/menu-unfold-3-fill.svg b/client/packages/lowcoder-design/src/icons/remix/menu-unfold-3-fill.svg new file mode 100644 index 0000000000..7c882453e0 --- /dev/null +++ b/client/packages/lowcoder-design/src/icons/remix/menu-unfold-3-fill.svg @@ -0,0 +1 @@ +<svg viewBox="0 0 24 24" fill="currentColor" xmlns="http://www.w3.org/2000/svg"><path d="M17 4H3V6H17V4ZM13 11H3V13H13V11ZM17 18H3V20H17V18ZM17 17V7L22 11.9996L17 17Z"/></svg> \ No newline at end of file diff --git a/client/packages/lowcoder-design/src/icons/remix/menu-unfold-3-line.svg b/client/packages/lowcoder-design/src/icons/remix/menu-unfold-3-line.svg new file mode 100644 index 0000000000..a223280d93 --- /dev/null +++ b/client/packages/lowcoder-design/src/icons/remix/menu-unfold-3-line.svg @@ -0,0 +1 @@ +<svg viewBox="0 0 24 24" fill="currentColor" xmlns="http://www.w3.org/2000/svg"><path d="M17 4H3V6H17V4ZM13 11H3V13H13V11ZM17 18H3V20H17V18ZM15.9896 8.81412L17.4038 7.3999L22 11.9961L17.4038 16.5923L15.9896 15.1781L19.1716 11.9961L15.9896 8.81412Z"/></svg> \ No newline at end of file diff --git a/client/packages/lowcoder-design/src/icons/remix/menu-unfold-4-fill.svg b/client/packages/lowcoder-design/src/icons/remix/menu-unfold-4-fill.svg new file mode 100644 index 0000000000..3d28776823 --- /dev/null +++ b/client/packages/lowcoder-design/src/icons/remix/menu-unfold-4-fill.svg @@ -0,0 +1 @@ +<svg viewBox="0 0 24 24" fill="currentColor" xmlns="http://www.w3.org/2000/svg"><path d="M17 4H3V6H17V4ZM13 11H3V13H13V11ZM17 18H3V20H17V18ZM21 17V7L16 11.9996L21 17Z"/></svg> \ No newline at end of file diff --git a/client/packages/lowcoder-design/src/icons/remix/menu-unfold-4-line.svg b/client/packages/lowcoder-design/src/icons/remix/menu-unfold-4-line.svg new file mode 100644 index 0000000000..a51e2b5599 --- /dev/null +++ b/client/packages/lowcoder-design/src/icons/remix/menu-unfold-4-line.svg @@ -0,0 +1 @@ +<svg viewBox="0 0 24 24" fill="currentColor" xmlns="http://www.w3.org/2000/svg"><path d="M17 4H3V6H17V4ZM13 11H3V13H13V11ZM17 18H3V20H17V18ZM22.0104 8.81412L20.5962 7.3999L16 11.9961L20.5962 16.5923L22.0104 15.1781L18.8284 11.9961L22.0104 8.81412Z"/></svg> \ No newline at end of file diff --git a/client/packages/lowcoder-design/src/icons/remix/menu-unfold-fill.svg b/client/packages/lowcoder-design/src/icons/remix/menu-unfold-fill.svg index c63a8cb4ff..1c0b6bbb30 100644 --- a/client/packages/lowcoder-design/src/icons/remix/menu-unfold-fill.svg +++ b/client/packages/lowcoder-design/src/icons/remix/menu-unfold-fill.svg @@ -1 +1 @@ -<svg viewBox="0 0 24 24" fill="currentColor" xmlns="http://www.w3.org/2000/svg"><path d="M21 17.9996V19.9996H3V17.9996H21ZM17.0503 3.5498L22 8.49955L17.0503 13.4493V3.5498ZM12 10.9996V12.9996H3V10.9996H12ZM12 3.99955V5.99955H3V3.99955H12Z"/></svg> \ No newline at end of file +<svg viewBox="0 0 24 24" fill="currentColor" xmlns="http://www.w3.org/2000/svg"><path d="M21 17.9996V19.9996H3V17.9996H21ZM17 3.5L22 8.49955L17 13.5V3.5ZM12 10.9996V12.9996H3V10.9996H12ZM12 3.99955V5.99955H3V3.99955H12Z"/></svg> \ No newline at end of file diff --git a/client/packages/lowcoder-design/src/icons/remix/mic-2-ai-fill.svg b/client/packages/lowcoder-design/src/icons/remix/mic-2-ai-fill.svg new file mode 100644 index 0000000000..4fd3bce176 --- /dev/null +++ b/client/packages/lowcoder-design/src/icons/remix/mic-2-ai-fill.svg @@ -0,0 +1 @@ +<svg viewBox="0 0 24 24" fill="currentColor" xmlns="http://www.w3.org/2000/svg"><path d="M14.3869 6.33879C14.661 6.77254 15.0357 7.09305 15.5111 7.30032L16.0764 7.54679C16.4567 7.71256 16.7646 7.94544 17.0001 8.24543V12C17.0001 14.7614 14.7615 17 12.0001 17C9.23865 17 7.00008 14.7614 7.00008 12V6C7.00008 3.23858 9.23865 1 12.0001 1C13.4596 1 14.7731 1.6254 15.6872 2.62284L15.5109 2.6997C15.0357 2.90685 14.661 3.22733 14.3869 3.66114C14.129 4.06938 14 4.51566 14 4.99997C14 5.48428 14.129 5.93056 14.3869 6.33879ZM2.19238 13.9615L4.15392 13.5692C4.88321 17.2361 8.11888 20 12.0001 20C15.8813 20 19.1169 17.2361 19.8462 13.5692L21.8078 13.9615C20.8961 18.5452 16.8516 22 12.0001 22C7.14858 22 3.104 18.5452 2.19238 13.9615ZM19.4668 8.69379L19.7134 8.12811C20.1529 7.11947 20.9445 6.31641 21.9323 5.87708L22.6919 5.53922C23.1027 5.35653 23.1027 4.75881 22.6919 4.57612L21.9748 4.25714C20.9616 3.80651 20.1558 2.97373 19.7238 1.93083L19.4706 1.31953C19.2942 0.893489 18.7058 0.893489 18.5293 1.31953L18.2761 1.93083C17.8442 2.97373 17.0384 3.80651 16.0252 4.25714L15.308 4.57612C14.8973 4.75881 14.8973 5.35653 15.308 5.53922L16.0677 5.87708C17.0555 6.31641 17.8471 7.11947 18.2866 8.12811L18.5331 8.69379C18.7136 9.10792 19.2864 9.10792 19.4668 8.69379Z"/></svg> \ No newline at end of file diff --git a/client/packages/lowcoder-design/src/icons/remix/mic-2-ai-line.svg b/client/packages/lowcoder-design/src/icons/remix/mic-2-ai-line.svg new file mode 100644 index 0000000000..2f85039566 --- /dev/null +++ b/client/packages/lowcoder-design/src/icons/remix/mic-2-ai-line.svg @@ -0,0 +1 @@ +<svg viewBox="0 0 24 24" fill="currentColor" xmlns="http://www.w3.org/2000/svg"><path d="M20.7134 7.12811L20.4668 7.69379C20.2864 8.10792 19.7136 8.10792 19.5331 7.69379L19.2866 7.12811C18.8471 6.11947 18.0555 5.31641 17.0677 4.87708L16.308 4.53922C15.8973 4.35653 15.8973 3.75881 16.308 3.57612L17.0252 3.25714C18.0384 2.80651 18.8442 1.97373 19.2761 0.930828L19.5293 0.319534C19.7058 -0.106511 20.2942 -0.106511 20.4706 0.319534L20.7238 0.930828C21.1558 1.97373 21.9616 2.80651 22.9748 3.25714L23.6919 3.57612C24.1027 3.75881 24.1027 4.35653 23.6919 4.53922L22.9323 4.87708C21.9445 5.31641 21.1529 6.11947 20.7134 7.12811ZM7 6C7 3.23858 9.23858 1 12 1C12.9914 1 13.9182 1.28957 14.6969 1.7891L13.617 3.47248C13.1509 3.17349 12.5972 3 12 3C10.3431 3 9 4.34315 9 6V12C9 13.6569 10.3431 15 12 15C13.6569 15 15 13.6569 15 12V7H17V12C17 14.7614 14.7614 17 12 17C9.23858 17 7 14.7614 7 12V6ZM2.19238 13.9617L4.15392 13.5693C4.88321 17.2362 8.11888 20.0001 12.0001 20.0001C15.8813 20.0001 19.1169 17.2363 19.8462 13.5693L21.8078 13.9617C20.8961 18.5453 16.8516 22.0001 12.0001 22.0001C7.14858 22.0001 3.104 18.5453 2.19238 13.9617Z"/></svg> \ No newline at end of file diff --git a/client/packages/lowcoder-design/src/icons/remix/mic-ai-fill.svg b/client/packages/lowcoder-design/src/icons/remix/mic-ai-fill.svg new file mode 100644 index 0000000000..24ee07345f --- /dev/null +++ b/client/packages/lowcoder-design/src/icons/remix/mic-ai-fill.svg @@ -0,0 +1 @@ +<svg viewBox="0 0 24 24" fill="currentColor" xmlns="http://www.w3.org/2000/svg"><path d="M14.3869 6.33879C14.661 6.77254 15.0357 7.09305 15.5111 7.30032L16.0764 7.54679C16.4565 7.71249 16.7643 7.94524 16.9998 8.24503V10C16.9998 12.7614 14.7612 15 11.9998 15C9.23833 15 6.99976 12.7614 6.99976 10V6C6.99976 3.23858 9.23833 1 11.9998 1C13.4594 1 14.7729 1.62544 15.687 2.62293L15.5109 2.6997C15.0357 2.90685 14.661 3.22733 14.3869 3.66114C14.129 4.06938 14 4.51566 14 4.99997C14 5.48428 14.129 5.93056 14.3869 6.33879ZM3.05469 11H5.07065C5.55588 14.3923 8.47329 17 11.9998 17C15.5262 17 18.4436 14.3923 18.9289 11H20.9448C20.4837 15.1716 17.1714 18.4839 12.9998 18.9451V23H10.9998V18.9451C6.82814 18.4839 3.51584 15.1716 3.05469 11ZM19.4668 8.69379L19.7134 8.12811C20.1529 7.11947 20.9445 6.31641 21.9323 5.87708L22.6919 5.53922C23.1027 5.35653 23.1027 4.75881 22.6919 4.57612L21.9748 4.25714C20.9616 3.80651 20.1558 2.97373 19.7238 1.93083L19.4706 1.31953C19.2942 0.893489 18.7058 0.893489 18.5293 1.31953L18.2761 1.93083C17.8442 2.97373 17.0384 3.80651 16.0252 4.25714L15.308 4.57612C14.8973 4.75881 14.8973 5.35653 15.308 5.53922L16.0677 5.87708C17.0555 6.31641 17.8471 7.11947 18.2866 8.12811L18.5331 8.69379C18.7136 9.10792 19.2864 9.10792 19.4668 8.69379Z"/></svg> \ No newline at end of file diff --git a/client/packages/lowcoder-design/src/icons/remix/mic-ai-line.svg b/client/packages/lowcoder-design/src/icons/remix/mic-ai-line.svg new file mode 100644 index 0000000000..9ff2c6678f --- /dev/null +++ b/client/packages/lowcoder-design/src/icons/remix/mic-ai-line.svg @@ -0,0 +1 @@ +<svg viewBox="0 0 24 24" fill="currentColor" xmlns="http://www.w3.org/2000/svg"><path d="M20.4668 7.69379L20.7134 7.12811C21.1529 6.11947 21.9445 5.31641 22.9323 4.87708L23.6919 4.53922C24.1027 4.35653 24.1027 3.75881 23.6919 3.57612L22.9748 3.25714C21.9616 2.80651 21.1558 1.97373 20.7238 0.930828L20.4706 0.319534C20.2942 -0.106511 19.7058 -0.106511 19.5293 0.319534L19.2761 0.930828C18.8442 1.97373 18.0384 2.80651 17.0252 3.25714L16.308 3.57612C15.8973 3.75881 15.8973 4.35653 16.308 4.53922L17.0677 4.87708C18.0555 5.31641 18.8471 6.11947 19.2866 7.12811L19.5331 7.69379C19.7136 8.10792 20.2864 8.10792 20.4668 7.69379ZM3.05469 11H5.07065C5.55588 14.3923 8.47329 17 11.9998 17C15.5262 17 18.4436 14.3923 18.9289 11H20.9448C20.4837 15.1716 17.1714 18.4839 12.9998 18.9451V23H10.9998V18.9451C6.82814 18.4839 3.51584 15.1716 3.05469 11ZM12 1C9.23858 1 7 3.23858 7 6V10C7 12.7614 9.23858 15 12 15C14.7614 15 17 12.7614 17 10V7H15V10C15 11.6569 13.6569 13 12 13C10.3431 13 9 11.6569 9 10V6C9 4.34315 10.3431 3 12 3C12.5972 3 13.1509 3.17349 13.617 3.47248L14.6969 1.7891C13.9182 1.28957 12.9914 1 12 1Z"/></svg> \ No newline at end of file diff --git a/client/packages/lowcoder-design/src/icons/remix/mixtral-fill.svg b/client/packages/lowcoder-design/src/icons/remix/mixtral-fill.svg new file mode 100644 index 0000000000..fcf3987ca3 --- /dev/null +++ b/client/packages/lowcoder-design/src/icons/remix/mixtral-fill.svg @@ -0,0 +1 @@ +<svg viewBox="0 0 24 24" fill="currentColor" xmlns="http://www.w3.org/2000/svg"><path d="M3 3H6.6V6.6L10.2001 6.6001V10.2001L13.8 10.2002L13.8 6.6001H17.3999V3H20.9999V20.9999H17.3999V13.8002L13.8 13.7998V17.3998H10.2V13.8002L6.6 13.7998V20.9999H3V3Z"/></svg> \ No newline at end of file diff --git a/client/packages/lowcoder-design/src/icons/remix/mixtral-line.svg b/client/packages/lowcoder-design/src/icons/remix/mixtral-line.svg new file mode 100644 index 0000000000..3e62914fed --- /dev/null +++ b/client/packages/lowcoder-design/src/icons/remix/mixtral-line.svg @@ -0,0 +1 @@ +<svg viewBox="0 0 24 24" fill="currentColor" xmlns="http://www.w3.org/2000/svg"><path d="M3 3H8.20002V6.20004L11.4001 6.20013V9.40015L12.6 9.40018L12.6001 6.2001H15.8V3H21V21H15.8V14.6001L14.6 14.6V17.7999H9.39999V14.6001L8.20002 14.6V21H3V3ZM5 5V19H6.20002V12.5998L11.4 12.6003V15.7999H12.6V12.5998L17.8 12.6003V19H19V5H17.8V8.2001H14.6001L14.6 11.4002L9.40012 11.4001V8.20008L6.20002 8.19999V5H5Z"/></svg> \ No newline at end of file diff --git a/client/packages/lowcoder-design/src/icons/remix/mobile-download-fill.svg b/client/packages/lowcoder-design/src/icons/remix/mobile-download-fill.svg new file mode 100644 index 0000000000..f5bca3cd33 --- /dev/null +++ b/client/packages/lowcoder-design/src/icons/remix/mobile-download-fill.svg @@ -0,0 +1 @@ +<svg viewBox="0 0 24 24" fill="currentColor" xmlns="http://www.w3.org/2000/svg"><path d="M12 6C12 4.46329 12.5777 3.06151 13.5278 2H6C5.44772 2 5 2.44772 5 3V21C5 21.5523 5.44772 22 6 22H18C18.5523 22 19 21.5523 19 21V11.917C18.6748 11.9716 18.3407 12 18 12C14.6863 12 12 9.31371 12 6ZM12 17C12.5523 17 13 17.4477 13 18C13 18.5523 12.5523 19 12 19C11.4477 19 11 18.5523 11 18C11 17.4477 11.4477 17 12 17ZM22 6H19V2H17V6H14L18 10L22 6Z"/></svg> \ No newline at end of file diff --git a/client/packages/lowcoder-design/src/icons/remix/mobile-download-line.svg b/client/packages/lowcoder-design/src/icons/remix/mobile-download-line.svg new file mode 100644 index 0000000000..c992aa6b4b --- /dev/null +++ b/client/packages/lowcoder-design/src/icons/remix/mobile-download-line.svg @@ -0,0 +1 @@ +<svg viewBox="0 0 24 24" fill="currentColor" xmlns="http://www.w3.org/2000/svg"><path d="M7 4V20H17V12H19V21C19 21.5523 18.5523 22 18 22H6C5.44772 22 5 21.5523 5 21V3C5 2.44772 5.44772 2 6 2H13V4H7ZM19 6H22L18 10L14 6H17V2H19V6ZM13 18C13 18.5523 12.5523 19 12 19C11.4477 19 11 18.5523 11 18C11 17.4477 11.4477 17 12 17C12.5523 17 13 17.4477 13 18Z"/></svg> \ No newline at end of file diff --git a/client/packages/lowcoder-design/src/icons/remix/movie-2-ai-fill.svg b/client/packages/lowcoder-design/src/icons/remix/movie-2-ai-fill.svg new file mode 100644 index 0000000000..b67632b011 --- /dev/null +++ b/client/packages/lowcoder-design/src/icons/remix/movie-2-ai-fill.svg @@ -0,0 +1 @@ +<svg viewBox="0 0 24 24" fill="currentColor" xmlns="http://www.w3.org/2000/svg"><path d="M20.4668 8.69379L20.7134 8.12811C21.1529 7.11947 21.9445 6.31641 22.9323 5.87708L23.6919 5.53922C24.1027 5.35653 24.1027 4.75881 23.6919 4.57612L22.9748 4.25714C21.9616 3.80651 21.1558 2.97373 20.7238 1.93083L20.4706 1.31953C20.2942 0.893489 19.7058 0.893489 19.5293 1.31953L19.2761 1.93083C18.8442 2.97373 18.0384 3.80651 17.0252 4.25714L16.308 4.57612C15.8973 4.75881 15.8973 5.35653 16.308 5.53922L17.0677 5.87708C18.0555 6.31641 18.8471 7.11947 19.2866 8.12811L19.5331 8.69379C19.7136 9.10792 20.2864 9.10792 20.4668 8.69379ZM20 11C20.6695 11 21.3134 10.8903 21.9147 10.688C21.971 11.1174 22 11.5553 22 12C22 15.2712 20.4293 18.1755 18.001 20H20V22H12C6.47715 22 2 17.5228 2 12C2 6.47715 6.47715 2 12 2C12.9056 2 13.7831 2.12039 14.6174 2.34603C14.2221 3.14617 14 4.04715 14 5C14 8.31371 16.6863 11 20 11ZM12 10C13.1046 10 14 9.10457 14 8C14 6.89543 13.1046 6 12 6C10.8954 6 10 6.89543 10 8C10 9.10457 10.8954 10 12 10ZM8 14C9.10457 14 10 13.1046 10 12C10 10.8954 9.10457 10 8 10C6.89543 10 6 10.8954 6 12C6 13.1046 6.89543 14 8 14ZM16 14C17.1046 14 18 13.1046 18 12C18 10.8954 17.1046 10 16 10C14.8954 10 14 10.8954 14 12C14 13.1046 14.8954 14 16 14ZM12 18C13.1046 18 14 17.1046 14 16C14 14.8954 13.1046 14 12 14C10.8954 14 10 14.8954 10 16C10 17.1046 10.8954 18 12 18Z"/></svg> \ No newline at end of file diff --git a/client/packages/lowcoder-design/src/icons/remix/movie-2-ai-line.svg b/client/packages/lowcoder-design/src/icons/remix/movie-2-ai-line.svg new file mode 100644 index 0000000000..17999cdb36 --- /dev/null +++ b/client/packages/lowcoder-design/src/icons/remix/movie-2-ai-line.svg @@ -0,0 +1 @@ +<svg viewBox="0 0 24 24" fill="currentColor" xmlns="http://www.w3.org/2000/svg"><path d="M20.7134 8.12811L20.4668 8.69379C20.2864 9.10792 19.7136 9.10792 19.5331 8.69379L19.2866 8.12811C18.8471 7.11947 18.0555 6.31641 17.0677 5.87708L16.308 5.53922C15.8973 5.35653 15.8973 4.75881 16.308 4.57612L17.0252 4.25714C18.0384 3.80651 18.8442 2.97373 19.2761 1.93083L19.5293 1.31953C19.7058 0.893489 20.2942 0.893489 20.4706 1.31953L20.7238 1.93083C21.1558 2.97373 21.9616 3.80651 22.9748 4.25714L23.6919 4.57612C24.1027 4.75881 24.1027 5.35653 23.6919 5.53922L22.9323 5.87708C21.9445 6.31641 21.1529 7.11947 20.7134 8.12811ZM12 2C6.47715 2 2 6.47715 2 12C2 17.5228 6.47715 22 12 22H20V20H18.001C18.7582 19.4311 19.4319 18.7572 20.0007 18C21.2561 16.3287 22 14.2512 22 12C22 11.5975 21.9762 11.2002 21.9298 10.8094L19.9437 11.0452C19.9809 11.3579 20 11.6765 20 12C20 14.3894 18.9525 16.5341 17.2916 18C15.8814 19.2447 14.0289 20 12 20C7.58172 20 4 16.4183 4 12C4 7.58172 7.58172 4 12 4C12.6919 4 13.3618 4.0876 14 4.25179L14.4983 2.31487C13.6987 2.10914 12.8614 2 12 2ZM10 8C10 9.10457 10.8954 10 12 10C13.1046 10 14 9.10457 14 8C14 6.89543 13.1046 6 12 6C10.8954 6 10 6.89543 10 8ZM6 12C6 13.1046 6.89543 14 8 14C9.10457 14 10 13.1046 10 12C10 10.8954 9.10457 10 8 10C6.89543 10 6 10.8954 6 12ZM14 12C14 13.1046 14.8954 14 16 14C17.1046 14 18 13.1046 18 12C18 10.8954 17.1046 10 16 10C14.8954 10 14 10.8954 14 12ZM10 16C10 17.1046 10.8954 18 12 18C13.1046 18 14 17.1046 14 16C14 14.8954 13.1046 14 12 14C10.8954 14 10 14.8954 10 16Z"/></svg> \ No newline at end of file diff --git a/client/packages/lowcoder-design/src/icons/remix/movie-ai-fill.svg b/client/packages/lowcoder-design/src/icons/remix/movie-ai-fill.svg new file mode 100644 index 0000000000..23555f425c --- /dev/null +++ b/client/packages/lowcoder-design/src/icons/remix/movie-ai-fill.svg @@ -0,0 +1 @@ +<svg viewBox="0 0 24 24" fill="currentColor" xmlns="http://www.w3.org/2000/svg"><path d="M20.7134 8.12811L20.4668 8.69379C20.2864 9.10792 19.7136 9.10792 19.5331 8.69379L19.2866 8.12811C18.8471 7.11947 18.0555 6.31641 17.0677 5.87708L16.308 5.53922C15.8973 5.35653 15.8973 4.75881 16.308 4.57612L17.0252 4.25714C18.0384 3.80651 18.8442 2.97373 19.2761 1.93083L19.5293 1.31953C19.7058 0.893489 20.2942 0.893489 20.4706 1.31953L20.7238 1.93083C21.1558 2.97373 21.9616 3.80651 22.9748 4.25714L23.6919 4.57612C24.1027 4.75881 24.1027 5.35653 23.6919 5.53922L22.9323 5.87708C21.9445 6.31641 21.1529 7.11947 20.7134 8.12811ZM20 11C20.7013 11 21.3744 10.8797 22 10.6586V20.0066C22 20.5552 21.5447 21 21.0082 21H2.9918C2.44405 21 2 20.5551 2 20.0066V3.9934C2 3.44476 2.45531 3 2.9918 3H14.3414C14.1203 3.62556 14 4.29873 14 5C14 8.31371 16.6863 11 20 11ZM10.6219 8.41459C10.5562 8.37078 10.479 8.34741 10.4 8.34741C10.1791 8.34741 10 8.52649 10 8.74741V15.2526C10 15.3316 10.0234 15.4088 10.0672 15.4745C10.1897 15.6583 10.4381 15.708 10.6219 15.5854L15.5008 12.3328C15.5447 12.3035 15.5824 12.2658 15.6117 12.2219C15.7343 12.0381 15.6846 11.7897 15.5008 11.6672L10.6219 8.41459Z"/></svg> \ No newline at end of file diff --git a/client/packages/lowcoder-design/src/icons/remix/movie-ai-line.svg b/client/packages/lowcoder-design/src/icons/remix/movie-ai-line.svg new file mode 100644 index 0000000000..ec34b90016 --- /dev/null +++ b/client/packages/lowcoder-design/src/icons/remix/movie-ai-line.svg @@ -0,0 +1 @@ +<svg viewBox="0 0 24 24" fill="currentColor" xmlns="http://www.w3.org/2000/svg"><path d="M20.7134 8.12811L20.4668 8.69379C20.2864 9.10792 19.7136 9.10792 19.5331 8.69379L19.2866 8.12811C18.8471 7.11947 18.0555 6.31641 17.0677 5.87708L16.308 5.53922C15.8973 5.35653 15.8973 4.75881 16.308 4.57612L17.0252 4.25714C18.0384 3.80651 18.8442 2.97373 19.2761 1.93083L19.5293 1.31953C19.7058 0.893489 20.2942 0.893489 20.4706 1.31953L20.7238 1.93083C21.1558 2.97373 21.9616 3.80651 22.9748 4.25714L23.6919 4.57612C24.1027 4.75881 24.1027 5.35653 23.6919 5.53922L22.9323 5.87708C21.9445 6.31641 21.1529 7.11947 20.7134 8.12811ZM2.9918 3H14V5H4V19H20V11H22V20.0066C22 20.5552 21.5447 21 21.0082 21H2.9918C2.44405 21 2 20.5551 2 20.0066V3.9934C2 3.44476 2.45531 3 2.9918 3ZM10.6219 8.41459L15.5008 11.6672C15.6846 11.7897 15.7343 12.0381 15.6117 12.2219C15.5824 12.2658 15.5447 12.3035 15.5008 12.3328L10.6219 15.5854C10.4381 15.708 10.1897 15.6583 10.0672 15.4745C10.0234 15.4088 10 15.3316 10 15.2526V8.74741C10 8.52649 10.1791 8.34741 10.4 8.34741C10.479 8.34741 10.5562 8.37078 10.6219 8.41459Z"/></svg> \ No newline at end of file diff --git a/client/packages/lowcoder-design/src/icons/remix/music-ai-fill.svg b/client/packages/lowcoder-design/src/icons/remix/music-ai-fill.svg new file mode 100644 index 0000000000..bfc284ecd7 --- /dev/null +++ b/client/packages/lowcoder-design/src/icons/remix/music-ai-fill.svg @@ -0,0 +1 @@ +<svg viewBox="0 0 24 24" fill="currentColor" xmlns="http://www.w3.org/2000/svg"><path d="M18.7134 8.12811L18.4668 8.69379C18.2864 9.10792 17.7136 9.10792 17.5331 8.69379L17.2866 8.12811C16.8471 7.11947 16.0555 6.31641 15.0677 5.87708L14.308 5.53922C13.8973 5.35653 13.8973 4.75881 14.308 4.57612L15.0252 4.25714C16.0384 3.80651 16.8442 2.97373 17.2761 1.93083L17.5293 1.31953C17.7058 0.893489 18.2942 0.893489 18.4706 1.31953L18.7238 1.93083C19.1558 2.97373 19.9616 3.80651 20.9748 4.25714L21.6919 4.57612C22.1027 4.75881 22.1027 5.35653 21.6919 5.53922L20.9323 5.87708C19.9445 6.31641 19.1529 7.11947 18.7134 8.12811ZM7 3H12V6H9V17C9 19.2091 7.20914 21 5 21C2.79086 21 1 19.2091 1 17C1 14.7909 2.79086 13 5 13C5.72857 13 6.41165 13.1948 7 13.5351V3ZM18 13.5351V11H20V17C20 19.2091 18.2091 21 16 21C13.7909 21 12 19.2091 12 17C12 14.7909 13.7909 13 16 13C16.7286 13 17.4117 13.1948 18 13.5351Z"/></svg> \ No newline at end of file diff --git a/client/packages/lowcoder-design/src/icons/remix/music-ai-line.svg b/client/packages/lowcoder-design/src/icons/remix/music-ai-line.svg new file mode 100644 index 0000000000..0d92fb3708 --- /dev/null +++ b/client/packages/lowcoder-design/src/icons/remix/music-ai-line.svg @@ -0,0 +1 @@ +<svg viewBox="0 0 24 24" fill="currentColor" xmlns="http://www.w3.org/2000/svg"><path d="M18.7134 8.12811L18.4668 8.69379C18.2864 9.10792 17.7136 9.10792 17.5331 8.69379L17.2866 8.12811C16.8471 7.11947 16.0555 6.31641 15.0677 5.87708L14.308 5.53922C13.8973 5.35653 13.8973 4.75881 14.308 4.57612L15.0252 4.25714C16.0384 3.80651 16.8442 2.97373 17.2761 1.93083L17.5293 1.31953C17.7058 0.893489 18.2942 0.893489 18.4706 1.31953L18.7238 1.93083C19.1558 2.97373 19.9616 3.80651 20.9748 4.25714L21.6919 4.57612C22.1027 4.75881 22.1027 5.35653 21.6919 5.53922L20.9323 5.87708C19.9445 6.31641 19.1529 7.11947 18.7134 8.12811ZM7 3H12V5H9V17C9 19.2091 7.20914 21 5 21C2.79086 21 1 19.2091 1 17C1 14.7909 2.79086 13 5 13C5.72857 13 6.41165 13.1948 7 13.5351V3ZM18 13.5351V11H20V17C20 19.2091 18.2091 21 16 21C13.7909 21 12 19.2091 12 17C12 14.7909 13.7909 13 16 13C16.7286 13 17.4117 13.1948 18 13.5351ZM5 19C6.10457 19 7 18.1046 7 17C7 15.8954 6.10457 15 5 15C3.89543 15 3 15.8954 3 17C3 18.1046 3.89543 19 5 19ZM16 19C17.1046 19 18 18.1046 18 17C18 15.8954 17.1046 15 16 15C14.8954 15 14 15.8954 14 17C14 18.1046 14.8954 19 16 19Z"/></svg> \ No newline at end of file diff --git a/client/packages/lowcoder-design/src/icons/remix/mv-ai-fill.svg b/client/packages/lowcoder-design/src/icons/remix/mv-ai-fill.svg new file mode 100644 index 0000000000..04cd023409 --- /dev/null +++ b/client/packages/lowcoder-design/src/icons/remix/mv-ai-fill.svg @@ -0,0 +1 @@ +<svg viewBox="0 0 24 24" fill="currentColor" xmlns="http://www.w3.org/2000/svg"><path d="M20.4668 8.69379L20.7134 8.12811C21.1529 7.11947 21.9445 6.31641 22.9323 5.87708L23.6919 5.53922C24.1027 5.35653 24.1027 4.75881 23.6919 4.57612L22.9748 4.25714C21.9616 3.80651 21.1558 2.97373 20.7238 1.93083L20.4706 1.31953C20.2942 0.893489 19.7058 0.893489 19.5293 1.31953L19.2761 1.93083C18.8442 2.97373 18.0384 3.80651 17.0252 4.25714L16.308 4.57612C15.8973 4.75881 15.8973 5.35653 16.308 5.53922L17.0677 5.87708C18.0555 6.31641 18.8471 7.11947 19.2866 8.12811L19.5331 8.69379C19.7136 9.10792 20.2864 9.10792 20.4668 8.69379ZM20 11C20.7013 11 21.3744 10.8797 22 10.6586V20.0066C22 20.5552 21.5447 21 21.0082 21H2.9918C2.44405 21 2 20.5551 2 20.0066V3.9934C2 3.44476 2.45531 3 2.9918 3H14.3414C14.1203 3.62556 14 4.29873 14 5C14 5.34071 14.0284 5.67479 14.083 6H12V12.1707C11.6872 12.0602 11.3506 12 11 12C9.34315 12 8 13.3431 8 15C8 16.6569 9.34315 18 11 18C12.6569 18 14 16.6569 14 15V8H14.8027C15.8401 9.7934 17.7792 11 20 11Z"/></svg> \ No newline at end of file diff --git a/client/packages/lowcoder-design/src/icons/remix/mv-ai-line.svg b/client/packages/lowcoder-design/src/icons/remix/mv-ai-line.svg new file mode 100644 index 0000000000..5f0681349a --- /dev/null +++ b/client/packages/lowcoder-design/src/icons/remix/mv-ai-line.svg @@ -0,0 +1 @@ +<svg viewBox="0 0 24 24" fill="currentColor" xmlns="http://www.w3.org/2000/svg"><path d="M20.4668 8.69379L20.7134 8.12811C21.1529 7.11947 21.9445 6.31641 22.9323 5.87708L23.6919 5.53922C24.1027 5.35653 24.1027 4.75881 23.6919 4.57612L22.9748 4.25714C21.9616 3.80651 21.1558 2.97373 20.7238 1.93083L20.4706 1.31953C20.2942 0.893489 19.7058 0.893489 19.5293 1.31953L19.2761 1.93083C18.8442 2.97373 18.0384 3.80651 17.0252 4.25714L16.308 4.57612C15.8973 4.75881 15.8973 5.35653 16.308 5.53922L17.0677 5.87708C18.0555 6.31641 18.8471 7.11947 19.2866 8.12811L19.5331 8.69379C19.7136 9.10792 20.2864 9.10792 20.4668 8.69379ZM2 4C2 3.44772 2.44772 3 3 3H14V5H4V19H20V11H22V20C22 20.5523 21.5523 21 21 21H3C2.44772 21 2 20.5523 2 20V4ZM12 12.1707V6H16V8H14V15C14 16.6569 12.6569 18 11 18C9.34315 18 8 16.6569 8 15C8 13.3431 9.34315 12 11 12C11.3506 12 11.6872 12.0602 12 12.1707Z"/></svg> \ No newline at end of file diff --git a/client/packages/lowcoder-design/src/icons/remix/nextjs-fill.svg b/client/packages/lowcoder-design/src/icons/remix/nextjs-fill.svg new file mode 100644 index 0000000000..65689bc1bc --- /dev/null +++ b/client/packages/lowcoder-design/src/icons/remix/nextjs-fill.svg @@ -0,0 +1 @@ +<svg viewBox="0 0 24 24" fill="currentColor" xmlns="http://www.w3.org/2000/svg"><path d="M12 22C6.47715 22 2 17.5228 2 12C2 6.47715 6.47715 2 12 2C17.5228 2 22 6.47715 22 12C22 17.5228 17.5228 22 12 22ZM15.9999 8H14.6499V12H15.9999V8ZM9.34609 9.70937L15.405 17.5379L16.4591 16.7293L9.68281 8H8V15.9969H9.34609V9.70937Z"/></svg> \ No newline at end of file diff --git a/client/packages/lowcoder-design/src/icons/remix/nextjs-line.svg b/client/packages/lowcoder-design/src/icons/remix/nextjs-line.svg new file mode 100644 index 0000000000..0d8df51ee0 --- /dev/null +++ b/client/packages/lowcoder-design/src/icons/remix/nextjs-line.svg @@ -0,0 +1 @@ +<svg viewBox="0 0 24 24" fill="currentColor" xmlns="http://www.w3.org/2000/svg"><path d="M17.6644 17.6493L10.2602 8H8V16H10V10.9462L16.0869 18.8788C14.8907 19.5909 13.4931 20 12 20C7.58172 20 4 16.4183 4 12C4 7.58172 7.58172 4 12 4C16.4183 4 20 7.58172 20 12C20 14.2053 19.1077 16.2022 17.6644 17.6493ZM12 22C17.5228 22 22 17.5228 22 12C22 6.47715 17.5228 2 12 2C6.47715 2 2 6.47715 2 12C2 17.5228 6.47715 22 12 22ZM14 12V8H16V12H14Z"/></svg> \ No newline at end of file diff --git a/client/packages/lowcoder-design/src/icons/remix/nodejs-fill.svg b/client/packages/lowcoder-design/src/icons/remix/nodejs-fill.svg new file mode 100644 index 0000000000..9a91f6365f --- /dev/null +++ b/client/packages/lowcoder-design/src/icons/remix/nodejs-fill.svg @@ -0,0 +1 @@ +<svg viewBox="0 0 24 24" fill="currentColor" xmlns="http://www.w3.org/2000/svg"><path d="M11.174 22.5552C11.4297 22.6937 11.7051 22.7729 12.0002 22.7729C12.2952 22.7729 12.5902 22.6937 12.8262 22.5947L20.6745 18.023C21.1854 17.7261 21.5 17.172 21.5 16.5781V7.45437C21.5 6.86056 21.1854 6.30644 20.6745 6.00954L12.8262 1.43778C12.3345 1.16072 11.6657 1.16072 11.174 1.43778L3.32604 6.00954C2.81468 6.30644 2.5 6.86056 2.5 7.45437V16.5781C2.5 17.172 2.81468 17.7261 3.32604 18.023L5.3913 19.2105C6.39448 19.7052 6.74854 19.7052 7.20089 19.7052C8.67604 19.7052 9.52182 18.7948 9.52182 17.2313V8.22623C9.52182 8.08765 9.4038 7.98875 9.28578 7.98875H8.28271C8.14495 7.98875 8.04667 8.10749 8.04667 8.22623V17.2313C8.04667 17.924 7.31891 18.6167 6.15844 18.023L4.01453 16.776C3.93578 16.7365 3.89651 16.6376 3.89651 16.5584V7.43453C3.89651 7.35536 3.93578 7.25647 4.01453 7.21689L11.8625 2.66486C11.9214 2.62528 12.0198 2.62528 12.0984 2.66486L19.9466 7.21689C20.0247 7.25647 20.0648 7.33563 20.0648 7.43453V16.5584C20.0648 16.6573 20.0247 16.7365 19.9466 16.776L12.0984 21.3479C12.0394 21.3875 11.9411 21.3875 11.8625 21.3479L9.85624 20.1407C9.79723 20.1011 9.71849 20.0812 9.65948 20.1208C9.10875 20.4375 9.01047 20.477 8.47937 20.6552C8.36135 20.6948 8.16469 20.774 8.55802 20.9917L11.174 22.5552ZM10.2887 13.5698C10.2887 14.9156 10.9967 16.499 14.4393 16.499C16.9169 16.499 18.3531 15.5093 18.3531 13.7677C18.3531 12.0657 17.212 11.6104 14.7929 11.2938C12.3539 10.9772 12.0982 10.799 12.0982 10.225C12.0982 9.75008 12.3146 9.11679 14.1242 9.11679C15.7367 9.11679 16.3463 9.47302 16.5828 10.5615C16.6023 10.6605 16.701 10.7397 16.7987 10.7397H17.8411C17.9008 10.7397 17.9594 10.7001 17.9994 10.6605C18.0385 10.6011 18.058 10.5418 18.058 10.4824C17.9008 8.58241 16.6619 7.71155 14.1438 7.71155C11.9015 7.71155 10.564 8.66157 10.564 10.2646C10.564 11.9865 11.9015 12.4615 14.0454 12.6792C16.6219 12.9365 16.8192 13.3126 16.8192 13.8271C16.8192 14.7177 16.1109 15.0938 14.4588 15.0938C12.3736 15.0938 11.9212 14.5792 11.7639 13.5302C11.7639 13.4115 11.6655 13.3323 11.5475 13.3323H10.5247C10.387 13.3323 10.2887 13.4511 10.2887 13.5698Z"/></svg> \ No newline at end of file diff --git a/client/packages/lowcoder-design/src/icons/remix/nodejs-line.svg b/client/packages/lowcoder-design/src/icons/remix/nodejs-line.svg new file mode 100644 index 0000000000..6c78fc902d --- /dev/null +++ b/client/packages/lowcoder-design/src/icons/remix/nodejs-line.svg @@ -0,0 +1 @@ +<svg viewBox="0 0 24 24" fill="currentColor" xmlns="http://www.w3.org/2000/svg"><path d="M12.8873 1.36173C12.3396 1.03958 11.6604 1.03958 11.1127 1.36173L3.36271 5.92056C2.8282 6.23498 2.5 6.8088 2.5 7.42894V16.571C2.5 17.1912 2.8282 17.765 3.36272 18.0794L5.98596 19.6225C7.31923 20.4068 9 19.4454 9 17.8986V7.74655H7V17.8986L4.5 16.428V7.57193L12 3.16016L19.5 7.57193V16.428L12 20.8398L10.2316 19.7996L9.21757 21.5234L11.1127 22.6382C11.6604 22.9604 12.3396 22.9604 12.8873 22.6382L20.6373 18.0794C21.1718 17.765 21.5 17.1912 21.5 16.571V7.42894C21.5 6.8088 21.1718 6.23498 20.6373 5.92056L12.8873 1.36173ZM13.9999 7.49998C12.6372 7.49998 11.6712 7.85114 11.0504 8.46993C10.4336 9.08484 10.3135 9.80885 10.3135 10.2313C10.3135 10.7862 10.4705 11.289 10.7951 11.7048C11.1076 12.1053 11.5199 12.3537 11.9146 12.5159C12.6341 12.8116 13.5358 12.9086 14.2587 12.9863L14.346 12.9957C15.1774 13.0856 15.7998 13.1627 16.2263 13.3411C16.4189 13.4217 16.4983 13.4954 16.531 13.5379C16.5524 13.5658 16.5934 13.6278 16.5934 13.7977C16.5934 14.0618 16.5027 14.2319 16.2204 14.3926C15.873 14.5904 15.2596 14.7396 14.3368 14.7396C13.4218 14.7396 12.7838 14.5705 12.4192 14.3181C12.1357 14.1218 11.9273 13.821 11.9822 13.1683L9.98923 13.0007C9.88075 14.29 10.3479 15.3167 11.2808 15.9625C12.1325 16.5521 13.2518 16.7396 14.3368 16.7396C15.414 16.7396 16.4289 16.5753 17.2098 16.1307C18.0558 15.6491 18.5934 14.8482 18.5934 13.7977C18.5934 13.2414 18.4381 12.7369 18.1162 12.3184C17.8054 11.9144 17.3942 11.6617 16.9981 11.496C16.2701 11.1915 15.3576 11.0932 14.6296 11.0147H14.6296L14.5609 11.0073C13.7274 10.9172 13.1036 10.8423 12.6748 10.666C12.4808 10.5863 12.4025 10.5137 12.3716 10.4742C12.3528 10.4501 12.3135 10.394 12.3135 10.2313C12.3135 10.1538 12.3363 10.0121 12.4624 9.88637C12.5847 9.76449 12.9618 9.49998 13.9999 9.49998C14.9904 9.49998 15.5674 9.60515 15.897 9.80064C16.1123 9.92838 16.3451 10.1633 16.3761 10.9329L18.3745 10.8524C18.3243 9.60675 17.8694 8.64527 16.9173 8.08051C16.0795 7.58349 15.0094 7.49998 13.9999 7.49998Z"/></svg> \ No newline at end of file diff --git a/client/packages/lowcoder-design/src/icons/remix/notification-snooze-fill.svg b/client/packages/lowcoder-design/src/icons/remix/notification-snooze-fill.svg new file mode 100644 index 0000000000..1ca5cb7958 --- /dev/null +++ b/client/packages/lowcoder-design/src/icons/remix/notification-snooze-fill.svg @@ -0,0 +1 @@ +<svg viewBox="0 0 24 24" fill="currentColor" xmlns="http://www.w3.org/2000/svg"><path d="M22 17H20V10C20 5.58172 16.4183 2 12 2C7.58172 2 4 5.58172 4 10V17H2V19H22V17ZM15 23V21H9V23H15ZM9 9V7H15V9.41421L11.4142 13H15V15H9V12.5858L12.5858 9H9Z"/></svg> \ No newline at end of file diff --git a/client/packages/lowcoder-design/src/icons/remix/notification-snooze-line.svg b/client/packages/lowcoder-design/src/icons/remix/notification-snooze-line.svg new file mode 100644 index 0000000000..e61a9f0d08 --- /dev/null +++ b/client/packages/lowcoder-design/src/icons/remix/notification-snooze-line.svg @@ -0,0 +1 @@ +<svg viewBox="0 0 24 24" fill="currentColor" xmlns="http://www.w3.org/2000/svg"><path d="M22 17H20V10C20 5.58172 16.4183 2 12 2C7.58172 2 4 5.58172 4 10V17H2V19H22V17ZM18 10V17H6V10C6 6.68629 8.68629 4 12 4C15.3137 4 18 6.68629 18 10ZM15 23V21H9V23H15ZM9 9H12.5858L9 12.5858V15H15V13H11.4142L15 9.41421V7H9V9Z"/></svg> \ No newline at end of file diff --git a/client/packages/lowcoder-design/src/icons/remix/pause-large-fill.svg b/client/packages/lowcoder-design/src/icons/remix/pause-large-fill.svg new file mode 100644 index 0000000000..80f44be317 --- /dev/null +++ b/client/packages/lowcoder-design/src/icons/remix/pause-large-fill.svg @@ -0,0 +1 @@ +<svg viewBox="0 0 24 24" fill="currentColor" xmlns="http://www.w3.org/2000/svg"><path d="M6 3H8V21H6V3ZM16 3H18V21H16V3Z"/></svg> \ No newline at end of file diff --git a/client/packages/lowcoder-design/src/icons/remix/pause-large-line.svg b/client/packages/lowcoder-design/src/icons/remix/pause-large-line.svg new file mode 100644 index 0000000000..80f44be317 --- /dev/null +++ b/client/packages/lowcoder-design/src/icons/remix/pause-large-line.svg @@ -0,0 +1 @@ +<svg viewBox="0 0 24 24" fill="currentColor" xmlns="http://www.w3.org/2000/svg"><path d="M6 3H8V21H6V3ZM16 3H18V21H16V3Z"/></svg> \ No newline at end of file diff --git a/client/packages/lowcoder-design/src/icons/remix/pentagon-fill.svg b/client/packages/lowcoder-design/src/icons/remix/pentagon-fill.svg index c3a8d1e6d5..ba753f3f25 100644 --- a/client/packages/lowcoder-design/src/icons/remix/pentagon-fill.svg +++ b/client/packages/lowcoder-design/src/icons/remix/pentagon-fill.svg @@ -1 +1 @@ -<svg viewBox="0 0 24 24" fill="currentColor" xmlns="http://www.w3.org/2000/svg"><path d="M12.0001 0.700195L22.7471 8.5083L18.6421 21.1421H5.35814L1.25317 8.5083L12.0001 0.700195Z"/></svg> \ No newline at end of file +<svg viewBox="0 0 24 24" fill="currentColor" xmlns="http://www.w3.org/2000/svg"><path d="M12.0004 0.700195L22.7473 8.5083L18.6423 21.1421H5.35838L1.25342 8.5083L12.0004 0.700195Z"/></svg> \ No newline at end of file diff --git a/client/packages/lowcoder-design/src/icons/remix/pentagon-line.svg b/client/packages/lowcoder-design/src/icons/remix/pentagon-line.svg index 963054766f..4734a6ec2c 100644 --- a/client/packages/lowcoder-design/src/icons/remix/pentagon-line.svg +++ b/client/packages/lowcoder-design/src/icons/remix/pentagon-line.svg @@ -1 +1 @@ -<svg viewBox="0 0 24 24" fill="currentColor" xmlns="http://www.w3.org/2000/svg"><path d="M12.0001 3.03043L20.5306 9.22822L17.2723 19.2564H6.72796L3.4696 9.22822L12.0001 3.03043ZM22.7471 8.50806L12.0001 0.699951L1.25317 8.50806L5.35814 21.1418H18.6421L22.7471 8.50806Z"/></svg> \ No newline at end of file +<svg viewBox="0 0 24 24" fill="currentColor" xmlns="http://www.w3.org/2000/svg"><path d="M12.0004 3.03043L20.5309 9.22822L17.2725 19.2564H6.72821L3.46984 9.22822L12.0004 3.03043ZM22.7473 8.50806L12.0004 0.699951L1.25342 8.50806L5.35838 21.1418H18.6423L22.7473 8.50806Z"/></svg> \ No newline at end of file diff --git a/client/packages/lowcoder-design/src/icons/remix/perplexity-fill.svg b/client/packages/lowcoder-design/src/icons/remix/perplexity-fill.svg new file mode 100644 index 0000000000..cd0582d795 --- /dev/null +++ b/client/packages/lowcoder-design/src/icons/remix/perplexity-fill.svg @@ -0,0 +1 @@ +<svg viewBox="0 0 24 24" fill="currentColor" xmlns="http://www.w3.org/2000/svg"><path d="M5.73486 2L11.4299 7.24715V7.24595V2.01211H12.5385V7.27063L18.2591 2V7.98253H20.6078V16.6118H18.2663V21.9389L12.5385 16.9066V21.9967H11.4299V16.9896L5.74131 22V16.6118H3.39258V7.98253H5.73486V2ZM10.5942 9.0776H4.50118V15.5167H5.73992V13.4856L10.5942 9.0776ZM6.84986 13.9715V19.5565L11.4299 15.5225V9.81146L6.84986 13.9715ZM12.5704 15.4691L17.1577 19.4994V16.6118H17.1518V13.9663L12.5704 9.80608V15.4691ZM18.2663 15.5167H19.4992V9.0776H13.4516L18.2663 13.4399V15.5167ZM17.1505 7.98253V4.51888L13.3911 7.98253H17.1505ZM10.6028 7.98253L6.84346 4.51888V7.98253H10.6028Z"/></svg> \ No newline at end of file diff --git a/client/packages/lowcoder-design/src/icons/remix/perplexity-line.svg b/client/packages/lowcoder-design/src/icons/remix/perplexity-line.svg new file mode 100644 index 0000000000..2660940e33 --- /dev/null +++ b/client/packages/lowcoder-design/src/icons/remix/perplexity-line.svg @@ -0,0 +1 @@ +<svg viewBox="0 0 24 24" fill="currentColor" xmlns="http://www.w3.org/2000/svg"><path d="M7.17267 3.26011L5.5 1.7395V4.00005V7.50005H4H3V8.50005V16.0001V17.0001H4H5.5V20.0001V22.2606L7.17267 20.74L11 17.2606V22.0001H13V17.2606L16.8273 20.74L18.5 22.2606V20.0001V17.0001H20H21V16.0001V8.50005V7.50005H20H18.5V4.00005V1.7395L16.8273 3.26011L13 6.7395V2.00005H11V6.7395L7.17267 3.26011ZM16.5 7.50005H15.1366L16.5 6.26061V7.50005ZM8.86339 7.50005H7.5V6.26061L8.86339 7.50005ZM9.96339 9.50005L5.82733 13.2601L5.5 13.5577V14.0001V15.0001H5V9.50005H9.96339ZM14.0366 9.50005H19V15.0001H18.5V14.0001V13.5577L18.1727 13.2601L14.0366 9.50005ZM7.5 14.4424L11 11.2606V14.5577L7.5 17.7395V14.4424ZM13 11.2606L16.5 14.4424V17.7395L13 14.5577V11.2606Z"/></svg> \ No newline at end of file diff --git a/client/packages/lowcoder-design/src/icons/remix/php-fill.svg b/client/packages/lowcoder-design/src/icons/remix/php-fill.svg new file mode 100644 index 0000000000..c87bd4e4fc --- /dev/null +++ b/client/packages/lowcoder-design/src/icons/remix/php-fill.svg @@ -0,0 +1 @@ +<svg viewBox="0 0 24 24" fill="currentColor" xmlns="http://www.w3.org/2000/svg"><path d="M4.931 9.45962H3.59366L2.86408 13.211H4.05124C4.83891 13.211 5.42541 13.0622 5.81074 12.7661C6.19608 12.4686 6.45533 11.9742 6.58991 11.28C6.72024 10.6142 6.66075 10.1439 6.41425 9.87045C6.16633 9.59703 5.67333 9.45962 4.931 9.45962ZM7.38183 13.6133C7.01208 13.9675 6.56725 14.2338 6.08275 14.3939C5.60675 14.5469 4.999 14.6262 4.26233 14.6262H2.58924L2.126 17.0076H0.173828L1.91633 8.04578H5.67049C6.79958 8.04578 7.62266 8.34187 8.14116 8.93545C8.65966 9.52762 8.81549 10.355 8.60866 11.4175C8.52944 11.8379 8.38357 12.243 8.17658 12.6174C7.97399 12.9786 7.70908 13.3115 7.38183 13.6133ZM13.0825 14.6262L13.8517 10.661C13.941 10.2105 13.907 9.90162 13.7554 9.7387C13.6038 9.57437 13.2794 9.4922 12.7822 9.4922H11.2352L10.2378 14.6276H8.29983L10.0423 5.66437H11.9789L11.5157 8.0472H13.2412C14.3277 8.0472 15.0757 8.23703 15.488 8.61528C15.9002 8.99353 16.0235 9.60695 15.8606 10.4555L15.0502 14.6262H13.0825ZM23.8449 11.4175C23.767 11.8382 23.621 12.2435 23.4128 12.6174C23.2102 12.9786 22.9453 13.3115 22.6181 13.6133C22.2481 13.9664 21.8044 14.233 21.319 14.3939C20.843 14.5469 20.2352 14.6262 19.4972 14.6262H17.8255L17.3622 17.009H15.4101L17.1526 8.0472H20.9053C22.0344 8.0472 22.8575 8.34328 23.376 8.93687C23.8945 9.52762 24.0517 10.355 23.8449 11.4175ZM20.1687 9.45962H18.8327L18.1017 13.211H19.2889C20.078 13.211 20.6645 13.0622 21.0484 12.7661C21.4337 12.4686 21.693 11.9742 21.829 11.28C21.9593 10.6142 21.8984 10.1439 21.6519 9.87045C21.4054 9.59703 20.9096 9.45962 20.1687 9.45962Z"/></svg> \ No newline at end of file diff --git a/client/packages/lowcoder-design/src/icons/remix/php-line.svg b/client/packages/lowcoder-design/src/icons/remix/php-line.svg new file mode 100644 index 0000000000..ef40e72300 --- /dev/null +++ b/client/packages/lowcoder-design/src/icons/remix/php-line.svg @@ -0,0 +1 @@ +<svg viewBox="0 0 24 24" fill="currentColor" xmlns="http://www.w3.org/2000/svg"><path d="M10.15 5.5498L8.43273 14.3844H10.4327L11.2914 9.96713H12.7914C13.3437 9.96713 13.7059 10.4066 13.6006 10.9488L12.9327 14.3844H14.9327L15.6006 10.9488C15.9167 9.32234 14.8298 8.00387 13.173 8.00387H11.673L12.15 5.5498H10.15ZM2.17285 8.00392H5.92285C7.71777 8.00392 8.89521 9.43226 8.55272 11.1942C8.21023 12.9562 6.47751 14.3845 4.68259 14.3845H2.93259L2.45557 16.8386H0.455566L2.17285 8.00392ZM3.31421 12.4212H5.06421C5.75456 12.4212 6.42099 11.8719 6.55272 11.1942C6.68444 10.5165 6.23159 9.96717 5.54123 9.96717H3.79123L3.31421 12.4212ZM17.1728 8.00392H20.9228C22.7178 8.00392 23.8952 9.43226 23.5527 11.1942C23.2102 12.9562 21.4775 14.3845 19.6826 14.3845H17.9326L17.4556 16.8386H15.4556L17.1728 8.00392ZM18.3142 12.4212H20.0642C20.7546 12.4212 21.421 11.8719 21.5527 11.1942C21.6844 10.5165 21.2316 9.96717 20.5412 9.96717H18.7912L18.3142 12.4212Z"/></svg> \ No newline at end of file diff --git a/client/packages/lowcoder-design/src/icons/remix/pix-fill.svg b/client/packages/lowcoder-design/src/icons/remix/pix-fill.svg new file mode 100644 index 0000000000..f11f09325d --- /dev/null +++ b/client/packages/lowcoder-design/src/icons/remix/pix-fill.svg @@ -0,0 +1 @@ +<svg viewBox="0 0 24 24" fill="currentColor" xmlns="http://www.w3.org/2000/svg"><g clip-path="url(#clip0_1315_1152)"><path d="M5.38545 18.1135L9.52498 22.253C10.8918 23.6199 13.1079 23.6199 14.4747 22.253L18.6143 18.1135C17.5088 18.1824 16.3802 17.7945 15.5354 16.9497L12.5302 13.9445C12.2373 13.6516 11.7624 13.6516 11.4695 13.9445L8.46432 16.9497C7.61954 17.7945 6.49092 18.1824 5.38545 18.1135ZM20.4851 16.2426L22.2529 14.4748C23.6197 13.108 23.6197 10.8919 22.2529 9.5251L20.4851 7.75734C19.3136 6.58576 17.4141 6.58576 16.2425 7.75734L13.2373 10.7625C12.5539 11.446 11.4458 11.446 10.7624 10.7625L7.75721 7.75734C6.58564 6.58576 4.68615 6.58576 3.51457 7.75734L1.74681 9.5251C0.37997 10.8919 0.37997 13.108 1.74681 14.4748L3.51457 16.2426C4.68615 17.4142 6.58564 17.4142 7.75721 16.2426L10.7624 13.2374C11.4458 12.554 12.5539 12.554 13.2373 13.2374L16.2425 16.2426C17.4141 17.4142 19.3136 17.4142 20.4851 16.2426ZM5.38545 5.88646C6.49092 5.81753 7.61954 6.20545 8.46432 7.05023L11.4695 10.0554C11.7624 10.3483 12.2373 10.3483 12.5302 10.0554L15.5354 7.05023C16.3802 6.20545 17.5088 5.81753 18.6143 5.88646L14.4747 1.74693C13.1079 0.380092 10.8918 0.380092 9.52498 1.74693L5.38545 5.88646Z"/></g><defs><clipPath id="clip0_1315_1152"><rect fill="white"/></clipPath></defs></svg> \ No newline at end of file diff --git a/client/packages/lowcoder-design/src/icons/remix/pix-line.svg b/client/packages/lowcoder-design/src/icons/remix/pix-line.svg new file mode 100644 index 0000000000..9a37711c7c --- /dev/null +++ b/client/packages/lowcoder-design/src/icons/remix/pix-line.svg @@ -0,0 +1 @@ +<svg viewBox="0 0 24 24" fill="currentColor" xmlns="http://www.w3.org/2000/svg"><g clip-path="url(#clip0_1315_1150)"><path d="M1.74681 9.5251C0.37997 10.8919 0.37997 13.108 1.74681 14.4748L9.52498 22.253C10.8918 23.6199 13.1079 23.6199 14.4747 22.253L22.2529 14.4748C23.6197 13.108 23.6197 10.8919 22.2529 9.5251L14.4747 1.74693C13.1079 0.380092 10.8918 0.380092 9.52498 1.74693L1.74681 9.5251ZM5.98945 8.11089C6.57523 7.5251 7.52498 7.5251 8.11077 8.11089L10.5856 10.5858C11.3667 11.3668 12.633 11.3668 13.4141 10.5858L15.8889 8.11089C16.4746 7.52526 17.4244 7.52559 18.0103 8.11089L20.8387 10.9393C21.4245 11.5251 21.4245 12.4748 20.8387 13.0606L18.0103 15.8891L18.0092 15.8901C17.4234 16.4748 16.4744 16.4745 15.8889 15.8891L13.4141 13.4142C12.633 12.6331 11.3667 12.6331 10.5856 13.4142L8.11077 15.8891C7.52523 16.4746 6.57603 16.4748 5.99018 15.8898L3.16102 13.0606C2.57523 12.4748 2.57523 11.5251 3.16102 10.9393L5.98945 8.11089ZM15.7736 5.87418C15.2994 6.04294 14.8543 6.3171 14.4747 6.69668L11.9999 9.17155L9.52498 6.69668C9.14541 6.3171 8.70034 6.04294 8.22616 5.87418L10.9392 3.16114C11.525 2.57535 12.4747 2.57536 13.0605 3.16114L15.7736 5.87418ZM15.7736 18.1258L13.0605 20.8388C12.4747 21.4246 11.525 21.4246 10.9392 20.8388L8.22616 18.1258C8.70034 17.957 9.14541 17.6828 9.52498 17.3033L11.9999 14.8284L14.4747 17.3033C14.8543 17.6828 15.2994 17.957 15.7736 18.1258Z"/></g><defs><clipPath id="clip0_1315_1150"><rect fill="white"/></clipPath></defs></svg> \ No newline at end of file diff --git a/client/packages/lowcoder-design/src/icons/remix/play-large-fill.svg b/client/packages/lowcoder-design/src/icons/remix/play-large-fill.svg new file mode 100644 index 0000000000..85c30aedfa --- /dev/null +++ b/client/packages/lowcoder-design/src/icons/remix/play-large-fill.svg @@ -0,0 +1 @@ +<svg viewBox="0 0 24 24" fill="currentColor" xmlns="http://www.w3.org/2000/svg"><path d="M6 20.1957V3.80421C6 3.01878 6.86395 2.53993 7.53 2.95621L20.6432 11.152C21.2699 11.5436 21.2699 12.4563 20.6432 12.848L7.53 21.0437C6.86395 21.46 6 20.9812 6 20.1957Z"/></svg> \ No newline at end of file diff --git a/client/packages/lowcoder-design/src/icons/remix/play-large-line.svg b/client/packages/lowcoder-design/src/icons/remix/play-large-line.svg new file mode 100644 index 0000000000..c423dbb57a --- /dev/null +++ b/client/packages/lowcoder-design/src/icons/remix/play-large-line.svg @@ -0,0 +1 @@ +<svg viewBox="0 0 24 24" fill="currentColor" xmlns="http://www.w3.org/2000/svg"><path d="M8 18.3915V5.60846L18.2264 12L8 18.3915ZM6 3.80421V20.1957C6 20.9812 6.86395 21.46 7.53 21.0437L20.6432 12.848C21.2699 12.4563 21.2699 11.5436 20.6432 11.152L7.53 2.95621C6.86395 2.53993 6 3.01878 6 3.80421Z"/></svg> \ No newline at end of file diff --git a/client/packages/lowcoder-design/src/icons/remix/play-reverse-large-fill.svg b/client/packages/lowcoder-design/src/icons/remix/play-reverse-large-fill.svg new file mode 100644 index 0000000000..95d4dd2b60 --- /dev/null +++ b/client/packages/lowcoder-design/src/icons/remix/play-reverse-large-fill.svg @@ -0,0 +1 @@ +<svg viewBox="0 0 24 24" fill="currentColor" xmlns="http://www.w3.org/2000/svg"><path d="M18 20.1957V3.80421C18 3.01878 17.1361 2.53993 16.47 2.95621L3.3568 11.152C2.73013 11.5436 2.73013 12.4563 3.3568 12.848L16.47 21.0437C17.136 21.46 18 20.9812 18 20.1957Z"/></svg> \ No newline at end of file diff --git a/client/packages/lowcoder-design/src/icons/remix/play-reverse-large-line.svg b/client/packages/lowcoder-design/src/icons/remix/play-reverse-large-line.svg new file mode 100644 index 0000000000..0cb6d29a88 --- /dev/null +++ b/client/packages/lowcoder-design/src/icons/remix/play-reverse-large-line.svg @@ -0,0 +1 @@ +<svg viewBox="0 0 24 24" fill="currentColor" xmlns="http://www.w3.org/2000/svg"><path d="M16 18.3915V5.60846L5.77359 12L16 18.3915ZM18 3.80421V20.1957C18 20.9812 17.136 21.46 16.47 21.0437L3.3568 12.848C2.73013 12.4563 2.73013 11.5436 3.3568 11.152L16.47 2.95621C17.1361 2.53993 18 3.01878 18 3.80421Z"/></svg> \ No newline at end of file diff --git a/client/packages/lowcoder-design/src/icons/remix/poker-clubs-fill.svg b/client/packages/lowcoder-design/src/icons/remix/poker-clubs-fill.svg new file mode 100644 index 0000000000..dc45edd754 --- /dev/null +++ b/client/packages/lowcoder-design/src/icons/remix/poker-clubs-fill.svg @@ -0,0 +1 @@ +<svg viewBox="0 0 24 24" fill="currentColor" xmlns="http://www.w3.org/2000/svg"><path d="M13.7748 11.0393C14.933 9.26656 16 7.63328 16 6C16 3.79086 14.2091 2 12 2C9.79086 2 8 3.79086 8 6C8 7.63328 9.06704 9.26656 10.2252 11.0393L10.226 11.0405C10.3036 11.1593 10.3816 11.2787 10.4597 11.3988C10.1704 11.179 9.90318 10.9699 9.65213 10.7734C8.27615 9.69663 7.38594 9 6 9C3.79086 9 2 10.7909 2 13C2 15.2091 3.79086 17 6 17C7.63328 17 9.26656 15.933 11.0393 14.7748L11.0701 14.7547C10.9774 17.0361 10.1119 18.4381 9.15685 19.9853L9.15684 19.9853L9.15683 19.9853C9.03494 20.1828 8.91159 20.3826 8.7882 20.5869C8.4039 21.2232 8.87465 22 9.61803 22H14.382C15.1253 22 15.5961 21.2232 15.2118 20.5869C15.0884 20.3826 14.9651 20.1828 14.8432 19.9853L14.8432 19.9853L14.8432 19.9853C13.8881 18.4381 13.0226 17.0361 12.9299 14.7547C12.9402 14.7614 12.9505 14.7681 12.9607 14.7748C14.7334 15.933 16.3667 17 18 17C20.2091 17 22 15.2091 22 13C22 10.7909 20.2091 9 18 9C16.6141 9 15.7238 9.69663 14.3479 10.7734C14.0968 10.9699 13.8296 11.179 13.5403 11.3988C13.6187 11.2783 13.697 11.1585 13.7748 11.0393Z"/></svg> \ No newline at end of file diff --git a/client/packages/lowcoder-design/src/icons/remix/poker-clubs-line.svg b/client/packages/lowcoder-design/src/icons/remix/poker-clubs-line.svg new file mode 100644 index 0000000000..cc4a914c37 --- /dev/null +++ b/client/packages/lowcoder-design/src/icons/remix/poker-clubs-line.svg @@ -0,0 +1 @@ +<svg viewBox="0 0 24 24" fill="currentColor" xmlns="http://www.w3.org/2000/svg"><path d="M8.23611 7.46049C8.57416 8.54052 9.22587 9.55225 9.86317 10.5037L10.0123 10.7259C10.1653 10.9537 10.316 11.1779 10.4597 11.3988C10.4597 11.3988 9.90318 10.9699 9.65213 10.7734C8.52697 9.89291 7.72662 9.2666 6.71443 9.06753C6.48879 9.02315 6.25263 9 6 9C3.79086 9 2 10.7909 2 13C2 15.2091 3.79086 17 6 17C6.67629 17 7.35259 16.817 8.03878 16.5204C8.72217 16.225 9.41538 15.8169 10.1282 15.3645C10.1123 16.3363 9.99514 17.1443 9.79852 17.8863C9.55229 18.8155 9.18139 19.6409 8.72841 20.5544C8.39815 21.2204 8.87465 22 9.61803 22H14.382C15.1253 22 15.6018 21.2204 15.2716 20.5544C14.8186 19.6409 14.4477 18.8155 14.2015 17.8863C14.0049 17.1443 13.8877 16.3363 13.8718 15.3645C14.5846 15.8169 15.2778 16.225 15.9612 16.5204C16.6474 16.8171 17.3237 17 18 17C20.2091 17 22 15.2091 22 13C22 10.7909 20.2091 9 18 9C17.7332 9 17.4848 9.02581 17.2478 9.07518C16.2533 9.28228 15.459 9.90391 14.3479 10.7734C14.0968 10.9699 13.5403 11.3988 13.5403 11.3988C13.6181 11.2791 13.6959 11.1601 13.7732 11.0417L13.7747 11.0395L13.7748 11.0393L13.7749 11.0391L13.7751 11.0389C13.8946 10.856 14.0131 10.6746 14.1296 10.4945C14.8038 9.45198 15.4097 8.45411 15.7391 7.47113C15.9043 6.97825 16 6.48913 16 6C16 3.79086 14.2091 2 12 2C9.79086 2 8 3.79086 8 6C8 6.50041 8.08792 6.98701 8.23611 7.46049ZM13.4584 7.72074C13.1078 8.40207 12.65 9.10337 12.1022 9.94258L11.9996 10.0997C11.8684 9.90093 11.7419 9.7126 11.6196 9.53077L11.6196 9.53074C11.2389 8.96424 10.9005 8.46087 10.5982 7.90024C10.1889 7.14129 10 6.53374 10 6C10 4.89543 10.8954 4 12 4C13.1046 4 14 4.89543 14 6C14 6.41382 13.8532 6.95355 13.4584 7.72074ZM10.4958 13.3985C10.9721 13.3899 11.4445 13.2117 11.8164 12.8683C11.8826 12.8072 11.9438 12.7426 12 12.6748C12.0562 12.7426 12.1174 12.8072 12.1836 12.8683C12.5555 13.2117 13.0279 13.3899 13.5042 13.3985C13.2933 13.4379 13.0871 13.5116 12.894 13.6198C12.4758 13.8541 12.1635 14.2258 12 14.6599C11.8365 14.2258 11.5242 13.8541 11.106 13.6198C10.9129 13.5116 10.7067 13.4379 10.4958 13.3985ZM11.1853 20C11.5527 19.1113 11.8427 18.1782 12 17.0726C12.1573 18.1782 12.4473 19.1113 12.8147 20H11.1853ZM13.9087 13.3648C14.4532 13.2631 14.902 12.898 15.3304 12.5495C15.4144 12.4811 15.4976 12.4134 15.5807 12.3485C17.0606 11.1904 17.4148 11 18.0002 11C19.1048 11 20.0002 11.8954 20.0002 13C20.0002 14.1046 19.1048 15 18.0002 15C17.3011 15 16.4061 14.604 14.9438 13.6759C14.6281 13.4755 14.2694 13.3714 13.9087 13.3648ZM6 11C6.58546 11 6.93965 11.1904 8.41957 12.3485C8.50259 12.4134 8.58582 12.4811 8.66983 12.5495C9.09823 12.898 9.54698 13.2631 10.0915 13.3648C9.73085 13.3714 9.37215 13.4755 9.05642 13.6759C7.59418 14.604 6.69912 15 6 15C4.89543 15 4 14.1046 4 13C4 11.8954 4.89543 11 6 11Z"/></svg> \ No newline at end of file diff --git a/client/packages/lowcoder-design/src/icons/remix/poker-diamonds-fill.svg b/client/packages/lowcoder-design/src/icons/remix/poker-diamonds-fill.svg new file mode 100644 index 0000000000..77fffbb869 --- /dev/null +++ b/client/packages/lowcoder-design/src/icons/remix/poker-diamonds-fill.svg @@ -0,0 +1 @@ +<svg viewBox="0 0 24 24" fill="currentColor" xmlns="http://www.w3.org/2000/svg"><path d="M4.03607 10.7336L11.2259 1.94599C11.626 1.45697 12.3737 1.45697 12.7738 1.94599L19.9637 10.7336C20.5664 11.4703 20.5664 12.5298 19.9637 13.2665L12.7738 22.0541C12.3737 22.5431 11.626 22.5431 11.2259 22.0541L4.03607 13.2665C3.43329 12.5298 3.43329 11.4703 4.03607 10.7336Z"/></svg> \ No newline at end of file diff --git a/client/packages/lowcoder-design/src/icons/remix/poker-diamonds-line.svg b/client/packages/lowcoder-design/src/icons/remix/poker-diamonds-line.svg new file mode 100644 index 0000000000..677903ce86 --- /dev/null +++ b/client/packages/lowcoder-design/src/icons/remix/poker-diamonds-line.svg @@ -0,0 +1 @@ +<svg viewBox="0 0 24 24" fill="currentColor" xmlns="http://www.w3.org/2000/svg"><path d="M4.03607 10.7334C3.43329 11.4702 3.43329 12.5297 4.03607 13.2664L11.2259 22.054C11.626 22.543 12.3737 22.543 12.7738 22.054L19.9637 13.2664C20.5664 12.5297 20.5664 11.4702 19.9637 10.7334L12.7738 1.94586C12.3737 1.45685 11.626 1.45685 11.2259 1.94586L4.03607 10.7334ZM11.9999 4.15829L18.4157 11.9999L11.9999 19.8415L5.58398 11.9999L11.9999 4.15829Z"/></svg> \ No newline at end of file diff --git a/client/packages/lowcoder-design/src/icons/remix/poker-hearts-fill.svg b/client/packages/lowcoder-design/src/icons/remix/poker-hearts-fill.svg new file mode 100644 index 0000000000..19bffc2833 --- /dev/null +++ b/client/packages/lowcoder-design/src/icons/remix/poker-hearts-fill.svg @@ -0,0 +1 @@ +<svg viewBox="0 0 24 24" fill="currentColor" xmlns="http://www.w3.org/2000/svg"><path d="M2 8.5C2 5.46243 4.46243 3 7.5 3C9.36016 3 11.0046 3.92345 12 5.33692C12.9954 3.92345 14.6398 3 16.5 3C19.5376 3 22 5.46243 22 8.5C22 16 11.9999 21.4852 11.9999 21.4852C11.9999 21.4852 2 16 2 8.5Z"/></svg> \ No newline at end of file diff --git a/client/packages/lowcoder-design/src/icons/remix/poker-hearts-line.svg b/client/packages/lowcoder-design/src/icons/remix/poker-hearts-line.svg new file mode 100644 index 0000000000..f85023fc68 --- /dev/null +++ b/client/packages/lowcoder-design/src/icons/remix/poker-hearts-line.svg @@ -0,0 +1 @@ +<svg viewBox="0 0 24 24" fill="currentColor" xmlns="http://www.w3.org/2000/svg"><path d="M12 8.81056L13.6352 6.48845C14.2721 5.58412 15.3179 5 16.5 5C18.433 5 20 6.567 20 8.5C20 11.3788 18.0407 14.1215 15.643 16.3358C14.4877 17.4027 13.3237 18.2603 12.4451 18.8521C12.2861 18.9592 12.1371 19.0571 11.9999 19.1456C11.8627 19.0571 11.7137 18.9592 11.5547 18.8521C10.6761 18.2604 9.51216 17.4028 8.35685 16.3358C5.95926 14.1216 4 11.3788 4 8.5C4 6.567 5.567 5 7.5 5C8.68209 5 9.72794 5.58412 10.3648 6.48845L12 8.81056ZM10.5557 3.92626C9.68172 3.3412 8.63071 3 7.5 3C4.46243 3 2 5.46243 2 8.5C2 16 11.9999 21.4852 11.9999 21.4852C11.9999 21.4852 22 16 22 8.5C22 5.46243 19.5376 3 16.5 3C15.3693 3 14.3183 3.3412 13.4443 3.92626C12.8805 4.3037 12.3903 4.78263 12 5.33692C11.6097 4.78263 11.1195 4.3037 10.5557 3.92626Z"/></svg> \ No newline at end of file diff --git a/client/packages/lowcoder-design/src/icons/remix/poker-spades-fill.svg b/client/packages/lowcoder-design/src/icons/remix/poker-spades-fill.svg new file mode 100644 index 0000000000..8727d4acfc --- /dev/null +++ b/client/packages/lowcoder-design/src/icons/remix/poker-spades-fill.svg @@ -0,0 +1 @@ +<svg viewBox="0 0 24 24" fill="currentColor" xmlns="http://www.w3.org/2000/svg"><path d="M10.9513 15.8933C10.0076 16.5855 8.80705 17 7.5 17C4.46243 17 2 14.7614 2 12C2 8.45193 5.52486 5.91097 8.64404 3.66245C9.92046 2.74232 11.1289 1.87116 12.0001 1C12.8713 1.87114 14.0797 2.74228 15.3561 3.66238C18.4752 5.91092 22 8.4519 22 12C22 14.7614 19.5376 17 16.5 17C15.193 17 13.9924 16.5855 13.0487 15.8933C13.333 17.5389 14.0578 18.713 14.8432 19.9853C14.965 20.1827 15.0884 20.3826 15.2118 20.5869C15.5961 21.2232 15.1253 22 14.382 22H9.61803C8.87465 22 8.4039 21.2232 8.7882 20.5869C8.91159 20.3826 9.03495 20.1827 9.15685 19.9853C9.94224 18.713 10.667 17.5389 10.9513 15.8933Z"/></svg> \ No newline at end of file diff --git a/client/packages/lowcoder-design/src/icons/remix/poker-spades-line.svg b/client/packages/lowcoder-design/src/icons/remix/poker-spades-line.svg new file mode 100644 index 0000000000..972c9c2d6c --- /dev/null +++ b/client/packages/lowcoder-design/src/icons/remix/poker-spades-line.svg @@ -0,0 +1 @@ +<svg viewBox="0 0 24 24" fill="currentColor" xmlns="http://www.w3.org/2000/svg"><path d="M12 15.9157C11.8821 15.467 11.6096 15.0654 11.2182 14.7894C10.6256 14.3715 9.85332 14.3071 9.19971 14.621C8.70291 14.8596 8.12567 15 7.5 15C5.38335 15 4 13.4817 4 12C4 10.9402 4.51493 9.88477 5.61339 8.70965C6.74632 7.49767 8.26768 6.39904 9.89838 5.22372C10.5914 4.72424 11.3194 4.19956 12.0001 3.65734C12.6809 4.19953 13.4088 4.72418 14.1017 5.22364C15.7324 6.39897 17.2537 7.4976 18.3866 8.70959C19.4851 9.88471 20 10.9402 20 12C20 13.4817 18.6166 15 16.5 15C15.8743 15 15.2971 14.8596 14.8003 14.621C14.1467 14.3071 13.3744 14.3715 12.7818 14.7894C12.3904 15.0654 12.1179 15.467 12 15.9157ZM12.0001 1C11.1289 1.87116 9.92046 2.74232 8.64404 3.66245C5.52486 5.91097 2 8.45193 2 12C2 14.7614 4.46243 17 7.5 17C8.42657 17 9.29962 16.7917 10.0656 16.4238C9.9739 17.2908 9.78783 18.0297 9.52965 18.7406C9.31014 19.345 9.03851 19.9291 8.72841 20.5544C8.39815 21.2204 8.87465 22 9.61803 22H14.382C15.1253 22 15.6018 21.2204 15.2716 20.5544C14.9615 19.9291 14.6899 19.345 14.4704 18.7406C14.2122 18.0297 14.0261 17.2908 13.9344 16.4238C14.7004 16.7917 15.5734 17 16.5 17C19.5376 17 22 14.7614 22 12C22 8.4519 18.4752 5.91092 15.3561 3.66238C14.0797 2.74228 12.8713 1.87114 12.0001 1ZM12 17.0738C12.1583 18.1843 12.4514 19.1212 12.8146 20H11.1854C11.5486 19.1212 11.8417 18.1843 12 17.0738Z"/></svg> \ No newline at end of file diff --git a/client/packages/lowcoder-design/src/icons/remix/police-badge-fill.svg b/client/packages/lowcoder-design/src/icons/remix/police-badge-fill.svg new file mode 100644 index 0000000000..c8f2416f53 --- /dev/null +++ b/client/packages/lowcoder-design/src/icons/remix/police-badge-fill.svg @@ -0,0 +1 @@ +<svg viewBox="0 0 24 24" fill="currentColor" xmlns="http://www.w3.org/2000/svg"><path d="M2.91312 11.6739C3.23584 10.1953 3.53865 8.80805 2 6.5L5.5 2.5C5.5 2.5 9 4 12 1.5C15 4 18.5 2.5 18.5 2.5L22 6.5C20.4612 8.8081 20.7641 10.1954 21.0868 11.674C21.3933 13.0781 21.7177 14.5645 20.5 17C19.3425 19.315 17.3478 20.1227 15.4849 20.877C14.1289 21.4261 12.8428 21.9469 12.0003 23C11.1577 21.9469 9.8715 21.4261 8.51549 20.8771C6.65245 20.1227 4.65758 19.315 3.50001 17C2.28218 14.5645 2.60663 13.078 2.91312 11.6739ZM14.3776 12.7725L16.7552 10.4549L13.4694 9.97746L11.9999 7L10.5304 9.97746L7.24463 10.4549L9.62227 12.7725L9.06098 16.0451L11.9999 14.5L14.9388 16.0451L14.3776 12.7725Z"/></svg> \ No newline at end of file diff --git a/client/packages/lowcoder-design/src/icons/remix/police-badge-line.svg b/client/packages/lowcoder-design/src/icons/remix/police-badge-line.svg new file mode 100644 index 0000000000..076e446d30 --- /dev/null +++ b/client/packages/lowcoder-design/src/icons/remix/police-badge-line.svg @@ -0,0 +1 @@ +<svg viewBox="0 0 24 24" fill="currentColor" xmlns="http://www.w3.org/2000/svg"><path d="M16.4749 4.935C16.9805 4.90972 17.437 4.8446 17.8262 4.76709L19.5583 6.74664C19.168 7.5663 18.9456 8.34894 18.8629 9.12355C18.7392 10.2814 18.9517 11.2675 19.1081 11.9874L19.1152 12.02C19.2771 12.7643 19.3835 13.2536 19.3679 13.8288C19.3533 14.3705 19.2212 15.0854 18.7112 16.1056C17.6105 18.307 15.0162 18.7716 12.9964 19.7815C12.6702 19.9446 12.3335 20.1308 12.0002 20.3499C11.6669 20.1308 11.3301 19.9445 11.0039 19.7814C8.98405 18.7716 6.38962 18.307 5.28885 16.1055C4.77874 15.0854 4.64666 14.3704 4.63201 13.8287C4.61645 13.2535 4.72283 12.7642 4.8847 12.0198L4.89176 11.9873C5.04823 11.2676 5.2607 10.2815 5.13707 9.12358C5.05436 8.34897 4.83196 7.56633 4.44171 6.74666L6.17384 4.76709C6.56299 4.8446 7.01951 4.90972 7.52512 4.935C8.78997 4.99825 10.402 4.81028 12 3.91846C13.598 4.81028 15.21 4.99825 16.4749 4.935ZM21.0868 11.674C20.7641 10.1954 20.4612 8.8081 22 6.5L18.5 2.5C18.5 2.5 15 4 12 1.5C9 4 5.5 2.5 5.5 2.5L2 6.5C3.53865 8.80805 3.23584 10.1953 2.91312 11.6739C2.60663 13.078 2.28218 14.5645 3.50001 17C5.07707 20.1539 8.20822 20.5102 10.4428 21.7453C11.0423 22.0766 11.5772 22.4712 12.0003 23C12.4234 22.4712 12.9583 22.0766 13.5578 21.7452C15.7921 20.5102 18.9231 20.1539 20.5 17C21.7177 14.5645 21.3933 13.0781 21.0868 11.674ZM14.3776 12.7725L14.9388 16.0451L11.9999 14.5L9.06098 16.0451L9.62227 12.7725L7.24463 10.4549L10.5304 9.97746L11.9999 7L13.4694 9.97746L16.7552 10.4549L14.3776 12.7725Z"/></svg> \ No newline at end of file diff --git a/client/packages/lowcoder-design/src/icons/remix/prohibited-2-fill.svg b/client/packages/lowcoder-design/src/icons/remix/prohibited-2-fill.svg new file mode 100644 index 0000000000..fbd02f5d44 --- /dev/null +++ b/client/packages/lowcoder-design/src/icons/remix/prohibited-2-fill.svg @@ -0,0 +1 @@ +<svg viewBox="0 0 24 24" fill="currentColor" xmlns="http://www.w3.org/2000/svg"><path d="M4.25705 18.3287C2.84636 16.6049 2 14.4013 2 12C2 6.47715 6.47715 2 12 2C14.4013 2 16.6049 2.84637 18.3287 4.25705L4.25705 18.3287ZM19.7429 5.67127C21.1536 7.39514 22 9.59873 22 12C22 17.5228 17.5228 22 12 22C9.59873 22 7.39514 21.1536 5.67127 19.7429L19.7429 5.67127Z"/></svg> \ No newline at end of file diff --git a/client/packages/lowcoder-design/src/icons/remix/prohibited-2-line.svg b/client/packages/lowcoder-design/src/icons/remix/prohibited-2-line.svg new file mode 100644 index 0000000000..2b79dc3c0d --- /dev/null +++ b/client/packages/lowcoder-design/src/icons/remix/prohibited-2-line.svg @@ -0,0 +1 @@ +<svg viewBox="0 0 24 24" fill="currentColor" xmlns="http://www.w3.org/2000/svg"><path d="M16.9057 5.68009L5.68009 16.9057C4.62644 15.5506 4 13.8491 4 12C4 7.58172 7.58172 4 12 4C13.8491 4 15.5506 4.62644 16.9057 5.68009ZM7.0943 18.3199L18.3199 7.0943C19.3736 8.44939 20 10.1509 20 12C20 16.4183 16.4183 20 12 20C10.1509 20 8.44939 19.3736 7.0943 18.3199ZM12 2C6.47715 2 2 6.47715 2 12C2 17.5223 6.47771 22 12 22C17.5228 22 22 17.5228 22 12C22 6.47771 17.5223 2 12 2Z"/></svg> \ No newline at end of file diff --git a/client/packages/lowcoder-design/src/icons/remix/pulse-ai-fill.svg b/client/packages/lowcoder-design/src/icons/remix/pulse-ai-fill.svg new file mode 100644 index 0000000000..30546fef8a --- /dev/null +++ b/client/packages/lowcoder-design/src/icons/remix/pulse-ai-fill.svg @@ -0,0 +1 @@ +<svg viewBox="0 0 24 24" fill="currentColor" xmlns="http://www.w3.org/2000/svg"><path d="M19.7134 8.12811L19.4668 8.69379C19.2864 9.10792 18.7136 9.10792 18.5331 8.69379L18.2866 8.12811C17.8471 7.11947 17.0555 6.31641 16.0677 5.87708L15.308 5.53922C14.8973 5.35653 14.8973 4.75881 15.308 4.57612L16.0252 4.25714C17.0384 3.80651 17.8442 2.97373 18.2761 1.93083L18.5293 1.31953C18.7058 0.893489 19.2942 0.893489 19.4706 1.31953L19.7238 1.93083C20.1558 2.97373 20.9616 3.80651 21.9748 4.25714L22.6919 4.57612C23.1027 4.75881 23.1027 5.35653 22.6919 5.53922L21.9323 5.87708C20.9445 6.31641 20.1529 7.11947 19.7134 8.12811ZM15 21.5386L9 7.53861L6.6594 13H1V11H5.3406L9 2.46143L15 16.4614L17.3406 11H23V13H18.6594L15 21.5386Z"/></svg> \ No newline at end of file diff --git a/client/packages/lowcoder-design/src/icons/remix/pulse-ai-line.svg b/client/packages/lowcoder-design/src/icons/remix/pulse-ai-line.svg new file mode 100644 index 0000000000..30546fef8a --- /dev/null +++ b/client/packages/lowcoder-design/src/icons/remix/pulse-ai-line.svg @@ -0,0 +1 @@ +<svg viewBox="0 0 24 24" fill="currentColor" xmlns="http://www.w3.org/2000/svg"><path d="M19.7134 8.12811L19.4668 8.69379C19.2864 9.10792 18.7136 9.10792 18.5331 8.69379L18.2866 8.12811C17.8471 7.11947 17.0555 6.31641 16.0677 5.87708L15.308 5.53922C14.8973 5.35653 14.8973 4.75881 15.308 4.57612L16.0252 4.25714C17.0384 3.80651 17.8442 2.97373 18.2761 1.93083L18.5293 1.31953C18.7058 0.893489 19.2942 0.893489 19.4706 1.31953L19.7238 1.93083C20.1558 2.97373 20.9616 3.80651 21.9748 4.25714L22.6919 4.57612C23.1027 4.75881 23.1027 5.35653 22.6919 5.53922L21.9323 5.87708C20.9445 6.31641 20.1529 7.11947 19.7134 8.12811ZM15 21.5386L9 7.53861L6.6594 13H1V11H5.3406L9 2.46143L15 16.4614L17.3406 11H23V13H18.6594L15 21.5386Z"/></svg> \ No newline at end of file diff --git a/client/packages/lowcoder-design/src/icons/remix/quill-pen-ai-fill.svg b/client/packages/lowcoder-design/src/icons/remix/quill-pen-ai-fill.svg new file mode 100644 index 0000000000..b0fe7db79d --- /dev/null +++ b/client/packages/lowcoder-design/src/icons/remix/quill-pen-ai-fill.svg @@ -0,0 +1 @@ +<svg viewBox="0 0 24 24" fill="currentColor" xmlns="http://www.w3.org/2000/svg"><path d="M4.7134 7.12811L4.46682 7.69379C4.28637 8.10792 3.71357 8.10792 3.53312 7.69379L3.28656 7.12811C2.84706 6.11947 2.05545 5.31641 1.06767 4.87708L0.308047 4.53922C-0.102682 4.35653 -0.102682 3.75881 0.308047 3.57612L1.0252 3.25714C2.03838 2.80651 2.84417 1.97373 3.27612 0.930828L3.52932 0.319534C3.70578 -0.106511 4.29417 -0.106511 4.47063 0.319534L4.72382 0.930828C5.15577 1.97373 5.96158 2.80651 6.9748 3.25714L7.69188 3.57612C8.10271 3.75881 8.10271 4.35653 7.69188 4.53922L6.93228 4.87708C5.94451 5.31641 5.15288 6.11947 4.7134 7.12811ZM3.06361 21.6132C4.08854 15.422 6.31105 1.99658 21 1.99658C19.5042 4.99658 18.5 6.49658 17.5 7.49658L16.5 8.49658L18 9.49658C17 12.4966 14 15.9966 10 16.4966C7.33146 16.8301 5.66421 18.6635 4.99824 21.9966H3C3.02074 21.8722 3.0419 21.7443 3.06361 21.6132Z"/></svg> \ No newline at end of file diff --git a/client/packages/lowcoder-design/src/icons/remix/quill-pen-ai-line.svg b/client/packages/lowcoder-design/src/icons/remix/quill-pen-ai-line.svg new file mode 100644 index 0000000000..8213088e2e --- /dev/null +++ b/client/packages/lowcoder-design/src/icons/remix/quill-pen-ai-line.svg @@ -0,0 +1 @@ +<svg viewBox="0 0 24 24" fill="currentColor" xmlns="http://www.w3.org/2000/svg"><path d="M4.7134 7.12811L4.46682 7.69379C4.28637 8.10792 3.71357 8.10792 3.53312 7.69379L3.28656 7.12811C2.84706 6.11947 2.05545 5.31641 1.06767 4.87708L0.308047 4.53922C-0.102682 4.35653 -0.102682 3.75881 0.308047 3.57612L1.0252 3.25714C2.03838 2.80651 2.84417 1.97373 3.27612 0.930828L3.52932 0.319534C3.70578 -0.106511 4.29417 -0.106511 4.47063 0.319534L4.72382 0.930828C5.15577 1.97373 5.96158 2.80651 6.9748 3.25714L7.69188 3.57612C8.10271 3.75881 8.10271 4.35653 7.69188 4.53922L6.93228 4.87708C5.94451 5.31641 5.15288 6.11947 4.7134 7.12811ZM6.33421 15.8154C6.51032 15.233 6.7072 14.6562 6.93912 14.0327C8.99484 8.50636 12.4197 5.08172 18.0129 4.21479C17.5 5.35838 17.0151 6.15301 16.5858 6.58237C16.2521 6.91603 15.9185 7.24993 15.5848 7.58407L14.1721 8.99878L15.6279 10.4535C14.4976 12.5384 12.2652 14.1979 9.75193 14.512C8.43544 14.6766 7.29345 15.1188 6.33421 15.8154ZM18 9.99658L17 8.99728C17.3331 8.66372 17.6662 8.33039 18.0027 7.99391C19.0018 6.99303 20.0009 4.99392 21 1.99658C6.31105 1.99658 4.08854 15.422 3.06361 21.6132C3.0419 21.7443 3.02074 21.8722 3 21.9966H4.99824C5.66421 18.6635 7.33146 16.8301 10 16.4966C14 15.9966 17 12.9966 18 9.99658Z"/></svg> \ No newline at end of file diff --git a/client/packages/lowcoder-design/src/icons/remix/reset-left-fill.svg b/client/packages/lowcoder-design/src/icons/remix/reset-left-fill.svg new file mode 100644 index 0000000000..189130fa0f --- /dev/null +++ b/client/packages/lowcoder-design/src/icons/remix/reset-left-fill.svg @@ -0,0 +1 @@ +<svg viewBox="0 0 24 24" fill="currentColor" xmlns="http://www.w3.org/2000/svg"><path d="M22 12C22 17.5228 17.5229 22 12 22C6.4772 22 2 17.5228 2 12C2 6.47715 6.4772 2 12 2V4C7.5817 4 4 7.58172 4 12C4 16.4183 7.5817 20 12 20C16.4183 20 20 16.4183 20 12C20 9.53614 18.8862 7.33243 17.1346 5.86492L15 8V2L21 2L18.5535 4.44656C20.6649 6.28002 22 8.9841 22 12Z"/></svg> \ No newline at end of file diff --git a/client/packages/lowcoder-design/src/icons/remix/reset-left-line.svg b/client/packages/lowcoder-design/src/icons/remix/reset-left-line.svg new file mode 100644 index 0000000000..fd58168fc3 --- /dev/null +++ b/client/packages/lowcoder-design/src/icons/remix/reset-left-line.svg @@ -0,0 +1 @@ +<svg viewBox="0 0 24 24" fill="currentColor" xmlns="http://www.w3.org/2000/svg"><path d="M22 12C22 17.5228 17.5229 22 12 22C6.4772 22 2 17.5228 2 12C2 6.47715 6.4772 2 12 2V4C7.5817 4 4 7.58172 4 12C4 16.4183 7.5817 20 12 20C16.4183 20 20 16.4183 20 12C20 9.25022 18.6127 6.82447 16.4998 5.38451L16.5 8H14.5V2L20.5 2V4L18.0008 3.99989C20.4293 5.82434 22 8.72873 22 12Z"/></svg> \ No newline at end of file diff --git a/client/packages/lowcoder-design/src/icons/remix/reset-right-fill.svg b/client/packages/lowcoder-design/src/icons/remix/reset-right-fill.svg new file mode 100644 index 0000000000..f5b0dc42d7 --- /dev/null +++ b/client/packages/lowcoder-design/src/icons/remix/reset-right-fill.svg @@ -0,0 +1 @@ +<svg viewBox="0 0 24 24" fill="currentColor" xmlns="http://www.w3.org/2000/svg"><path d="M2 12C2 17.5228 6.47715 22 12 22C17.5228 22 22 17.5228 22 12C22 6.47715 17.5228 2 12 2V4C16.4183 4 20 7.58172 20 12C20 16.4183 16.4183 20 12 20C7.58172 20 4 16.4183 4 12C4 9.53614 5.11383 7.33243 6.86543 5.86492L9 8V2L3 2L5.44648 4.44656C3.33509 6.28002 2 8.9841 2 12Z"/></svg> \ No newline at end of file diff --git a/client/packages/lowcoder-design/src/icons/remix/reset-right-line.svg b/client/packages/lowcoder-design/src/icons/remix/reset-right-line.svg new file mode 100644 index 0000000000..d586a6d9b2 --- /dev/null +++ b/client/packages/lowcoder-design/src/icons/remix/reset-right-line.svg @@ -0,0 +1 @@ +<svg viewBox="0 0 24 24" fill="currentColor" xmlns="http://www.w3.org/2000/svg"><path d="M2 12C2 17.5228 6.47715 22 12 22C17.5228 22 22 17.5228 22 12C22 6.47715 17.5228 2 12 2V4C16.4183 4 20 7.58172 20 12C20 16.4183 16.4183 20 12 20C7.58172 20 4 16.4183 4 12C4 9.25022 5.38734 6.82447 7.50024 5.38451L7.5 8H9.5V2L3.5 2V4L5.99918 3.99989C3.57075 5.82434 2 8.72873 2 12Z"/></svg> \ No newline at end of file diff --git a/client/packages/lowcoder-design/src/icons/remix/safe-3-fill.svg b/client/packages/lowcoder-design/src/icons/remix/safe-3-fill.svg new file mode 100644 index 0000000000..cddda77dd7 --- /dev/null +++ b/client/packages/lowcoder-design/src/icons/remix/safe-3-fill.svg @@ -0,0 +1 @@ +<svg viewBox="0 0 24 24" fill="currentColor" xmlns="http://www.w3.org/2000/svg"><path d="M3 3C2.44772 3 2 3.44772 2 4V19C2 19.5523 2.44772 20 3 20H4V22H6V20H18V22H20V20H21C21.5523 20 22 19.5523 22 19V4C22 3.44772 21.5523 3 21 3H3ZM15.3492 8.23642L16.682 6.90366L18.0962 8.31787L16.7634 9.65063C17.4122 10.794 17.4122 12.2057 16.7634 13.3491L18.0962 14.6818L16.682 16.096L15.3492 14.7633C14.2058 15.412 12.7942 15.412 11.6508 14.7633L10.318 16.096L8.90381 14.6818L10.2366 13.3491C9.58781 12.2057 9.58781 10.794 10.2366 9.65063L8.90381 8.31787L10.318 6.90366L11.6508 8.23642C12.7942 7.58767 14.2058 7.58767 15.3492 8.23642ZM14.7374 10.2624C14.054 9.579 12.946 9.579 12.2626 10.2624C11.5791 10.9458 11.5791 12.0539 12.2626 12.7373C12.946 13.4207 14.054 13.4207 14.7374 12.7373C15.4209 12.0539 15.4209 10.9458 14.7374 10.2624ZM5 8H7V15H5V8Z"/></svg> \ No newline at end of file diff --git a/client/packages/lowcoder-design/src/icons/remix/safe-3-line.svg b/client/packages/lowcoder-design/src/icons/remix/safe-3-line.svg new file mode 100644 index 0000000000..a47ce8c736 --- /dev/null +++ b/client/packages/lowcoder-design/src/icons/remix/safe-3-line.svg @@ -0,0 +1 @@ +<svg viewBox="0 0 24 24" fill="currentColor" xmlns="http://www.w3.org/2000/svg"><path d="M2 4C2 3.44772 2.44772 3 3 3H21C21.5523 3 22 3.44772 22 4V19C22 19.5523 21.5523 20 21 20H20V22H18V20H6V22H4V20H3C2.44772 20 2 19.5523 2 19V4ZM4 18H5H19H20V5H4V18ZM15.3492 8.23642C14.2058 7.58767 12.7942 7.58767 11.6508 8.23642L10.318 6.90366L8.90381 8.31787L10.2366 9.65063C9.58781 10.794 9.58781 12.2057 10.2366 13.3491L8.90381 14.6818L10.318 16.096L11.6508 14.7633C12.7942 15.412 14.2058 15.412 15.3492 14.7633L16.682 16.096L18.0962 14.6818L16.7634 13.3491C17.4122 12.2057 17.4122 10.794 16.7634 9.65063L18.0962 8.31787L16.682 6.90366L15.3492 8.23642ZM14.7374 10.2624C15.4209 10.9458 15.4209 12.0539 14.7374 12.7373C14.054 13.4207 12.946 13.4207 12.2626 12.7373C11.5791 12.0539 11.5791 10.9458 12.2626 10.2624C12.946 9.579 14.054 9.579 14.7374 10.2624ZM5 8V15H7V8H5Z"/></svg> \ No newline at end of file diff --git a/client/packages/lowcoder-design/src/icons/remix/shopping-bag-4-fill.svg b/client/packages/lowcoder-design/src/icons/remix/shopping-bag-4-fill.svg new file mode 100644 index 0000000000..6605461a02 --- /dev/null +++ b/client/packages/lowcoder-design/src/icons/remix/shopping-bag-4-fill.svg @@ -0,0 +1 @@ +<svg viewBox="0 0 24 24" fill="currentColor" xmlns="http://www.w3.org/2000/svg"><path d="M9 6C9 4.34315 10.3431 3 12 3C13.6569 3 15 4.34315 15 6H9ZM7 6H4C3.44772 6 3 6.44772 3 7V21C3 21.5523 3.44772 22 4 22H20C20.5523 22 21 21.5523 21 21V7C21 6.44772 20.5523 6 20 6H17C17 3.23858 14.7614 1 12 1C9.23858 1 7 3.23858 7 6ZM9 10C9 11.6569 10.3431 13 12 13C13.6569 13 15 11.6569 15 10H17C17 12.7614 14.7614 15 12 15C9.23858 15 7 12.7614 7 10H9Z"/></svg> \ No newline at end of file diff --git a/client/packages/lowcoder-design/src/icons/remix/shopping-bag-4-line.svg b/client/packages/lowcoder-design/src/icons/remix/shopping-bag-4-line.svg new file mode 100644 index 0000000000..f7b2854af9 --- /dev/null +++ b/client/packages/lowcoder-design/src/icons/remix/shopping-bag-4-line.svg @@ -0,0 +1 @@ +<svg viewBox="0 0 24 24" fill="currentColor" xmlns="http://www.w3.org/2000/svg"><path d="M9 6H15C15 4.34315 13.6569 3 12 3C10.3431 3 9 4.34315 9 6ZM7 6C7 3.23858 9.23858 1 12 1C14.7614 1 17 3.23858 17 6H20C20.5523 6 21 6.44772 21 7V21C21 21.5523 20.5523 22 20 22H4C3.44772 22 3 21.5523 3 21V7C3 6.44772 3.44772 6 4 6H7ZM5 8V20H19V8H5ZM9 10C9 11.6569 10.3431 13 12 13C13.6569 13 15 11.6569 15 10H17C17 12.7614 14.7614 15 12 15C9.23858 15 7 12.7614 7 10H9Z"/></svg> \ No newline at end of file diff --git a/client/packages/lowcoder-design/src/icons/remix/skip-up-line.svg b/client/packages/lowcoder-design/src/icons/remix/skip-up-line.svg index 3cfa8e2aa9..e37b2992ad 100644 --- a/client/packages/lowcoder-design/src/icons/remix/skip-up-line.svg +++ b/client/packages/lowcoder-design/src/icons/remix/skip-up-line.svg @@ -1 +1 @@ -<svg viewBox="0 0 24 24" fill="currentColor" xmlns="http://www.w3.org/2000/svg"><path d="M12 13.9142L16.7929 18.7071L18.2071 17.2929L12 11.0858L5.79291 17.2929L7.20712 18.7071L12 13.9142ZM6.00001 7L18 7V9L6.00001 9L6.00001 7Z"/></svg> \ No newline at end of file +<svg viewBox="0 0 24 24" fill="currentColor" xmlns="http://www.w3.org/2000/svg"><path d="M12 13.9142L16.7929 18.7071L18.2071 17.2929L12 11.0858L5.79289 17.2929L7.20711 18.7071L12 13.9142ZM6 7L18 7V9L6 9L6 7Z"/></svg> \ No newline at end of file diff --git a/client/packages/lowcoder-design/src/icons/remix/snowflake-fill.svg b/client/packages/lowcoder-design/src/icons/remix/snowflake-fill.svg new file mode 100644 index 0000000000..82c2728b3c --- /dev/null +++ b/client/packages/lowcoder-design/src/icons/remix/snowflake-fill.svg @@ -0,0 +1 @@ +<svg viewBox="0 0 24 24" fill="currentColor" xmlns="http://www.w3.org/2000/svg"><path d="M11.9998 3.29814L14.4451 1.66794L15.5545 3.33204L12.9998 5.03517V10.2678L17.5313 7.65149L17.7289 4.58748L19.7247 4.7162L19.5356 7.64899L22.17 8.95159L21.2836 10.7444L18.5313 9.38354L14.0001 11.9996L18.5317 14.616L21.284 13.2551L22.1704 15.0479L19.536 16.3505L19.7251 19.2833L17.7293 19.412L17.5317 16.348L12.9998 13.7315V18.9648L15.5545 20.6679L14.4451 22.332L11.9998 20.7018L9.55446 22.332L8.44506 20.6679L10.9998 18.9648V13.7319L6.46786 16.3484L6.27026 19.4124L4.2744 19.2836L4.46355 16.3508L1.8291 15.0483L2.71555 13.2554L5.46786 14.6163L10.0001 11.9996L5.46824 9.38319L2.71594 10.7441L1.82948 8.95124L4.46393 7.64864L4.27478 4.71585L6.27064 4.58713L6.46824 7.65113L10.9998 10.2674V5.03517L8.44506 3.33204L9.55446 1.66794L11.9998 3.29814Z"/></svg> \ No newline at end of file diff --git a/client/packages/lowcoder-design/src/icons/remix/snowflake-line.svg b/client/packages/lowcoder-design/src/icons/remix/snowflake-line.svg new file mode 100644 index 0000000000..82c2728b3c --- /dev/null +++ b/client/packages/lowcoder-design/src/icons/remix/snowflake-line.svg @@ -0,0 +1 @@ +<svg viewBox="0 0 24 24" fill="currentColor" xmlns="http://www.w3.org/2000/svg"><path d="M11.9998 3.29814L14.4451 1.66794L15.5545 3.33204L12.9998 5.03517V10.2678L17.5313 7.65149L17.7289 4.58748L19.7247 4.7162L19.5356 7.64899L22.17 8.95159L21.2836 10.7444L18.5313 9.38354L14.0001 11.9996L18.5317 14.616L21.284 13.2551L22.1704 15.0479L19.536 16.3505L19.7251 19.2833L17.7293 19.412L17.5317 16.348L12.9998 13.7315V18.9648L15.5545 20.6679L14.4451 22.332L11.9998 20.7018L9.55446 22.332L8.44506 20.6679L10.9998 18.9648V13.7319L6.46786 16.3484L6.27026 19.4124L4.2744 19.2836L4.46355 16.3508L1.8291 15.0483L2.71555 13.2554L5.46786 14.6163L10.0001 11.9996L5.46824 9.38319L2.71594 10.7441L1.82948 8.95124L4.46393 7.64864L4.27478 4.71585L6.27064 4.58713L6.46824 7.65113L10.9998 10.2674V5.03517L8.44506 3.33204L9.55446 1.66794L11.9998 3.29814Z"/></svg> \ No newline at end of file diff --git a/client/packages/lowcoder-design/src/icons/remix/speak-ai-fill.svg b/client/packages/lowcoder-design/src/icons/remix/speak-ai-fill.svg new file mode 100644 index 0000000000..bbd5bfc36d --- /dev/null +++ b/client/packages/lowcoder-design/src/icons/remix/speak-ai-fill.svg @@ -0,0 +1 @@ +<svg viewBox="0 0 24 24" fill="currentColor" xmlns="http://www.w3.org/2000/svg"><path d="M20.7134 7.12811L20.4668 7.69379C20.2864 8.10792 19.7136 8.10792 19.5331 7.69379L19.2866 7.12811C18.8471 6.11947 18.0555 5.31641 17.0677 4.87708L16.308 4.53922C15.8973 4.35653 15.8973 3.75881 16.308 3.57612L17.0252 3.25714C18.0384 2.80651 18.8442 1.97373 19.2761 0.930828L19.5293 0.319534C19.7058 -0.106511 20.2942 -0.106511 20.4706 0.319534L20.7238 0.930828C21.1558 1.97373 21.9616 2.80651 22.9748 3.25714L23.6919 3.57612C24.1027 3.75881 24.1027 4.35653 23.6919 4.53922L22.9323 4.87708C21.9445 5.31641 21.1529 6.11947 20.7134 7.12811ZM9 2C13.0675 2 16.426 5.03562 16.9337 8.96494L19.1842 12.5037C19.3324 12.7367 19.3025 13.0847 18.9593 13.2317L17 14.071V17C17 18.1046 16.1046 19 15 19H13.001L13 22H4L4.00025 18.3061C4.00033 17.1252 3.56351 16.0087 2.7555 15.0011C1.65707 13.6313 1 11.8924 1 10C1 5.58172 4.58172 2 9 2ZM21.1535 18.1024L19.4893 16.9929C20.4436 15.5642 21 13.8471 21 12.0001C21 11.489 20.9574 10.9878 20.8756 10.5L22.8186 10C22.9378 10.6486 23 11.317 23 12.0001C23 14.2576 22.32 16.3562 21.1535 18.1024Z"/></svg> \ No newline at end of file diff --git a/client/packages/lowcoder-design/src/icons/remix/speak-ai-line.svg b/client/packages/lowcoder-design/src/icons/remix/speak-ai-line.svg new file mode 100644 index 0000000000..0e7df0c33d --- /dev/null +++ b/client/packages/lowcoder-design/src/icons/remix/speak-ai-line.svg @@ -0,0 +1 @@ +<svg viewBox="0 0 24 24" fill="currentColor" xmlns="http://www.w3.org/2000/svg"><path d="M20.7134 7.12811L20.4668 7.69379C20.2864 8.10792 19.7136 8.10792 19.5331 7.69379L19.2866 7.12811C18.8471 6.11947 18.0555 5.31641 17.0677 4.87708L16.308 4.53922C15.8973 4.35653 15.8973 3.75881 16.308 3.57612L17.0252 3.25714C18.0384 2.80651 18.8442 1.97373 19.2761 0.930828L19.5293 0.319534C19.7058 -0.106511 20.2942 -0.106511 20.4706 0.319534L20.7238 0.930828C21.1558 1.97373 21.9616 2.80651 22.9748 3.25714L23.6919 3.57612C24.1027 3.75881 24.1027 4.35653 23.6919 4.53922L22.9323 4.87708C21.9445 5.31641 21.1529 6.11947 20.7134 7.12811ZM9 2C13.0675 2 16.426 5.03562 16.9337 8.96494L19.1842 12.5037C19.3324 12.7367 19.3025 13.0847 18.9593 13.2317L17 14.071V17C17 18.1046 16.1046 19 15 19H13.001L13 22H4L4.00025 18.3061C4.00033 17.1252 3.56351 16.0087 2.7555 15.0011C1.65707 13.6313 1 11.8924 1 10C1 5.58172 4.58172 2 9 2ZM9 4C5.68629 4 3 6.68629 3 10C3 11.3849 3.46818 12.6929 4.31578 13.7499C5.40965 15.114 6.00036 16.6672 6.00025 18.3063L6.00013 20H11.0007L11.0017 17H15V12.7519L16.5497 12.0881L15.0072 9.66262L14.9501 9.22118C14.5665 6.25141 12.0243 4 9 4ZM19.4893 16.9929L21.1535 18.1024C22.32 16.3562 23 14.2576 23 12.0001C23 11.317 22.9378 10.6486 22.8186 10L20.8756 10.5C20.9574 10.9878 21 11.489 21 12.0001C21 13.8471 20.4436 15.5642 19.4893 16.9929Z"/></svg> \ No newline at end of file diff --git a/client/packages/lowcoder-design/src/icons/remix/square-root.svg b/client/packages/lowcoder-design/src/icons/remix/square-root.svg new file mode 100644 index 0000000000..66d7d36079 --- /dev/null +++ b/client/packages/lowcoder-design/src/icons/remix/square-root.svg @@ -0,0 +1 @@ +<svg viewBox="0 0 24 24" fill="currentColor" xmlns="http://www.w3.org/2000/svg"><path d="M15.382 4H22V6H16.618L9 21.2361L5.38197 14H2V12H6.61803L9 16.7639L15.382 4Z"/></svg> \ No newline at end of file diff --git a/client/packages/lowcoder-design/src/icons/remix/stack-fill.svg b/client/packages/lowcoder-design/src/icons/remix/stack-fill.svg index 77f341113b..c9c8e9b1a8 100644 --- a/client/packages/lowcoder-design/src/icons/remix/stack-fill.svg +++ b/client/packages/lowcoder-design/src/icons/remix/stack-fill.svg @@ -1 +1 @@ -<svg viewBox="0 0 24 24" fill="currentColor" xmlns="http://www.w3.org/2000/svg"><path d="M20.0834 10.4999L21.2855 11.2212C21.5223 11.3633 21.599 11.6704 21.457 11.9072C21.4147 11.9776 21.3559 12.0365 21.2855 12.0787L12.0001 17.6499L2.71463 12.0787C2.47784 11.9366 2.40106 11.6295 2.54313 11.3927C2.58536 11.3223 2.64425 11.2634 2.71463 11.2212L3.91672 10.4999L12.0001 15.3499L20.0834 10.4999ZM20.0834 15.1999L21.2855 15.9212C21.5223 16.0633 21.599 16.3704 21.457 16.6072C21.4147 16.6776 21.3559 16.7365 21.2855 16.7787L12.5145 22.0412C12.1979 22.2313 11.8022 22.2313 11.4856 22.0412L2.71463 16.7787C2.47784 16.6366 2.40106 16.3295 2.54313 16.0927C2.58536 16.0223 2.64425 15.9634 2.71463 15.9212L3.91672 15.1999L12.0001 20.0499L20.0834 15.1999ZM12.5145 1.30864L21.2855 6.5712C21.5223 6.71327 21.599 7.0204 21.457 7.25719C21.4147 7.32757 21.3559 7.38647 21.2855 7.42869L12.0001 12.9999L2.71463 7.42869C2.47784 7.28662 2.40106 6.97949 2.54313 6.7427C2.58536 6.67232 2.64425 6.61343 2.71463 6.5712L11.4856 1.30864C11.8022 1.11864 12.1979 1.11864 12.5145 1.30864Z"/></svg> \ No newline at end of file +<svg viewBox="0 0 24 24" fill="currentColor" xmlns="http://www.w3.org/2000/svg"><path d="M20.0833 10.4999L21.2854 11.2212C21.5221 11.3633 21.5989 11.6704 21.4569 11.9072C21.4146 11.9776 21.3557 12.0365 21.2854 12.0787L11.9999 17.6499L2.71451 12.0787C2.47772 11.9366 2.40093 11.6295 2.54301 11.3927C2.58523 11.3223 2.64413 11.2634 2.71451 11.2212L3.9166 10.4999L11.9999 15.3499L20.0833 10.4999ZM20.0833 15.1999L21.2854 15.9212C21.5221 16.0633 21.5989 16.3704 21.4569 16.6072C21.4146 16.6776 21.3557 16.7365 21.2854 16.7787L12.5144 22.0412C12.1977 22.2313 11.8021 22.2313 11.4854 22.0412L2.71451 16.7787C2.47772 16.6366 2.40093 16.3295 2.54301 16.0927C2.58523 16.0223 2.64413 15.9634 2.71451 15.9212L3.9166 15.1999L11.9999 20.0499L20.0833 15.1999ZM12.5144 1.30864L21.2854 6.5712C21.5221 6.71327 21.5989 7.0204 21.4569 7.25719C21.4146 7.32757 21.3557 7.38647 21.2854 7.42869L11.9999 12.9999L2.71451 7.42869C2.47772 7.28662 2.40093 6.97949 2.54301 6.7427C2.58523 6.67232 2.64413 6.61343 2.71451 6.5712L11.4854 1.30864C11.8021 1.11864 12.1977 1.11864 12.5144 1.30864Z"/></svg> \ No newline at end of file diff --git a/client/packages/lowcoder-design/src/icons/remix/stack-line.svg b/client/packages/lowcoder-design/src/icons/remix/stack-line.svg index 650b770d1e..da2b98c24d 100644 --- a/client/packages/lowcoder-design/src/icons/remix/stack-line.svg +++ b/client/packages/lowcoder-design/src/icons/remix/stack-line.svg @@ -1 +1 @@ -<svg viewBox="0 0 24 24" fill="currentColor" xmlns="http://www.w3.org/2000/svg"><path d="M20.0834 15.1999L21.2855 15.9212C21.5223 16.0633 21.599 16.3704 21.457 16.6072C21.4147 16.6776 21.3559 16.7365 21.2855 16.7787L12.5145 22.0412C12.1979 22.2313 11.8022 22.2313 11.4856 22.0412L2.71463 16.7787C2.47784 16.6366 2.40106 16.3295 2.54313 16.0927C2.58536 16.0223 2.64425 15.9634 2.71463 15.9212L3.91672 15.1999L12.0001 20.0499L20.0834 15.1999ZM20.0834 10.4999L21.2855 11.2212C21.5223 11.3633 21.599 11.6704 21.457 11.9072C21.4147 11.9776 21.3559 12.0365 21.2855 12.0787L12.0001 17.6499L2.71463 12.0787C2.47784 11.9366 2.40106 11.6295 2.54313 11.3927C2.58536 11.3223 2.64425 11.2634 2.71463 11.2212L3.91672 10.4999L12.0001 15.3499L20.0834 10.4999ZM12.5145 1.30864L21.2855 6.5712C21.5223 6.71327 21.599 7.0204 21.457 7.25719C21.4147 7.32757 21.3559 7.38647 21.2855 7.42869L12.0001 12.9999L2.71463 7.42869C2.47784 7.28662 2.40106 6.97949 2.54313 6.7427C2.58536 6.67232 2.64425 6.61343 2.71463 6.5712L11.4856 1.30864C11.8022 1.11864 12.1979 1.11864 12.5145 1.30864ZM12.0001 3.33233L5.88735 6.99995L12.0001 10.6676L18.1128 6.99995L12.0001 3.33233Z"/></svg> \ No newline at end of file +<svg viewBox="0 0 24 24" fill="currentColor" xmlns="http://www.w3.org/2000/svg"><path d="M20.0833 15.1999L21.2854 15.9212C21.5221 16.0633 21.5989 16.3704 21.4569 16.6072C21.4146 16.6776 21.3557 16.7365 21.2854 16.7787L12.5144 22.0412C12.1977 22.2313 11.8021 22.2313 11.4854 22.0412L2.71451 16.7787C2.47772 16.6366 2.40093 16.3295 2.54301 16.0927C2.58523 16.0223 2.64413 15.9634 2.71451 15.9212L3.9166 15.1999L11.9999 20.0499L20.0833 15.1999ZM20.0833 10.4999L21.2854 11.2212C21.5221 11.3633 21.5989 11.6704 21.4569 11.9072C21.4146 11.9776 21.3557 12.0365 21.2854 12.0787L11.9999 17.6499L2.71451 12.0787C2.47772 11.9366 2.40093 11.6295 2.54301 11.3927C2.58523 11.3223 2.64413 11.2634 2.71451 11.2212L3.9166 10.4999L11.9999 15.3499L20.0833 10.4999ZM12.5144 1.30864L21.2854 6.5712C21.5221 6.71327 21.5989 7.0204 21.4569 7.25719C21.4146 7.32757 21.3557 7.38647 21.2854 7.42869L11.9999 12.9999L2.71451 7.42869C2.47772 7.28662 2.40093 6.97949 2.54301 6.7427C2.58523 6.67232 2.64413 6.61343 2.71451 6.5712L11.4854 1.30864C11.8021 1.11864 12.1977 1.11864 12.5144 1.30864ZM11.9999 3.33233L5.88723 6.99995L11.9999 10.6676L18.1126 6.99995L11.9999 3.33233Z"/></svg> \ No newline at end of file diff --git a/client/packages/lowcoder-design/src/icons/remix/stairs-fill.svg b/client/packages/lowcoder-design/src/icons/remix/stairs-fill.svg new file mode 100644 index 0000000000..8087db07a0 --- /dev/null +++ b/client/packages/lowcoder-design/src/icons/remix/stairs-fill.svg @@ -0,0 +1 @@ +<svg viewBox="0 0 24 24" fill="currentColor" xmlns="http://www.w3.org/2000/svg"><path d="M15 3H21V21H3V15H7V11H11V7H15V3Z"/></svg> \ No newline at end of file diff --git a/client/packages/lowcoder-design/src/icons/remix/stairs-line.svg b/client/packages/lowcoder-design/src/icons/remix/stairs-line.svg new file mode 100644 index 0000000000..01dbcb9b02 --- /dev/null +++ b/client/packages/lowcoder-design/src/icons/remix/stairs-line.svg @@ -0,0 +1 @@ +<svg viewBox="0 0 24 24" fill="currentColor" xmlns="http://www.w3.org/2000/svg"><path d="M15 3H21V21H3V15H7V11H11V7H15V3ZM17 5V9H13V13H9V17H5V19H19V5H17Z"/></svg> \ No newline at end of file diff --git a/client/packages/lowcoder-design/src/icons/remix/star-off-fill.svg b/client/packages/lowcoder-design/src/icons/remix/star-off-fill.svg new file mode 100644 index 0000000000..4437f95df3 --- /dev/null +++ b/client/packages/lowcoder-design/src/icons/remix/star-off-fill.svg @@ -0,0 +1 @@ +<svg viewBox="0 0 24 24" fill="currentColor" xmlns="http://www.w3.org/2000/svg"><path d="M23.4132 8.7918L18.0211 13.7783L9.70961 5.46678L12.0006 0.5L15.3862 7.84006L23.4132 8.7918ZM18.6224 20.0361L21.193 22.6067L22.6072 21.1925L2.80818 1.39348L1.39397 2.80769L6.65832 8.07205L0.587891 8.7918L6.52248 14.2799L4.94715 22.2082L12.0006 18.26L19.054 22.2082L18.6224 20.0361Z"/></svg> \ No newline at end of file diff --git a/client/packages/lowcoder-design/src/icons/remix/star-off-line.svg b/client/packages/lowcoder-design/src/icons/remix/star-off-line.svg new file mode 100644 index 0000000000..3f682ff8b7 --- /dev/null +++ b/client/packages/lowcoder-design/src/icons/remix/star-off-line.svg @@ -0,0 +1 @@ +<svg viewBox="0 0 24 24" fill="currentColor" xmlns="http://www.w3.org/2000/svg"><path d="M23.4132 8.7918L18.0211 13.7783L16.6058 12.363L18.8719 10.2674L14.039 9.69434L12.0006 5.27502L11.2169 6.97405L9.70961 5.46678L12.0006 0.5L15.3862 7.84006L23.4132 8.7918ZM8.45885 9.87258L5.12921 10.2674L8.70231 13.5717L7.75383 18.3451L12.0006 15.968L16.2473 18.3451L16.0777 17.4914L8.45885 9.87258ZM18.6224 20.0361L19.054 22.2082L12.0006 18.26L4.94715 22.2082L6.52248 14.2799L0.587891 8.7918L6.65832 8.07205L1.39397 2.80769L2.80818 1.39348L22.6072 21.1925L21.193 22.6067L18.6224 20.0361Z"/></svg> \ No newline at end of file diff --git a/client/packages/lowcoder-design/src/icons/remix/stop-large-fill.svg b/client/packages/lowcoder-design/src/icons/remix/stop-large-fill.svg new file mode 100644 index 0000000000..53d2462cb9 --- /dev/null +++ b/client/packages/lowcoder-design/src/icons/remix/stop-large-fill.svg @@ -0,0 +1 @@ +<svg viewBox="0 0 24 24" fill="currentColor" xmlns="http://www.w3.org/2000/svg"><path d="M3 4C3 3.44772 3.44772 3 4 3H20C20.5523 3 21 3.44772 21 4V20C21 20.5523 20.5523 21 20 21H4C3.44772 21 3 20.5523 3 20V4Z"/></svg> \ No newline at end of file diff --git a/client/packages/lowcoder-design/src/icons/remix/stop-large-line.svg b/client/packages/lowcoder-design/src/icons/remix/stop-large-line.svg new file mode 100644 index 0000000000..a0462d9565 --- /dev/null +++ b/client/packages/lowcoder-design/src/icons/remix/stop-large-line.svg @@ -0,0 +1 @@ +<svg viewBox="0 0 24 24" fill="currentColor" xmlns="http://www.w3.org/2000/svg"><path d="M5 5H19V19H5V5ZM4 3C3.44772 3 3 3.44772 3 4V20C3 20.5523 3.44772 21 4 21H20C20.5523 21 21 20.5523 21 20V4C21 3.44772 20.5523 3 20 3H4Z"/></svg> \ No newline at end of file diff --git a/client/packages/lowcoder-design/src/icons/remix/tailwind-css-fill.svg b/client/packages/lowcoder-design/src/icons/remix/tailwind-css-fill.svg new file mode 100644 index 0000000000..3d2ad9ecb4 --- /dev/null +++ b/client/packages/lowcoder-design/src/icons/remix/tailwind-css-fill.svg @@ -0,0 +1 @@ +<svg viewBox="0 0 24 24" fill="currentColor" xmlns="http://www.w3.org/2000/svg"><path d="M11.9996 4.85999C8.82628 4.85999 6.84294 6.44665 6.04961 9.61999C7.23961 8.03332 8.62794 7.43832 10.2146 7.83499C11.12 8.06109 11.7666 8.71757 12.4835 9.44545C13.6507 10.6295 15.0004 12 17.9496 12C21.1229 12 23.1063 10.4133 23.8996 7.23998C22.7096 8.82665 21.3213 9.42165 19.7346 9.02499C18.8292 8.79889 18.1827 8.1424 17.4657 7.41452C16.2995 6.23047 14.9498 4.85999 11.9996 4.85999ZM6.04961 12C2.87628 12 0.892943 13.5867 0.0996094 16.76C1.28961 15.1733 2.67794 14.5783 4.26461 14.975C5.17 15.2011 5.81657 15.8576 6.53354 16.5855C7.70073 17.7695 9.05039 19.14 11.9996 19.14C15.1729 19.14 17.1563 17.5533 17.9496 14.38C16.7596 15.9667 15.3713 16.5617 13.7846 16.165C12.8792 15.9389 12.2326 15.2824 11.5157 14.5545C10.3495 13.3705 8.99982 12 6.04961 12Z"/></svg> \ No newline at end of file diff --git a/client/packages/lowcoder-design/src/icons/remix/tailwind-css-line.svg b/client/packages/lowcoder-design/src/icons/remix/tailwind-css-line.svg new file mode 100644 index 0000000000..ee12623462 --- /dev/null +++ b/client/packages/lowcoder-design/src/icons/remix/tailwind-css-line.svg @@ -0,0 +1 @@ +<svg viewBox="0 0 24 24" fill="currentColor" xmlns="http://www.w3.org/2000/svg"><path d="M8.1267 6.21913C9.17785 5.37821 10.4989 5 12.0014 5C13.41 5 14.4863 5.33092 15.3593 5.83363C16.0983 6.25922 16.7127 6.84126 17.3072 7.44492C17.953 8.10062 18.3034 8.41984 18.7437 8.52979C19.217 8.64811 19.617 8.61249 19.9825 8.45585C20.3621 8.29317 20.7745 7.96918 21.2014 7.4L22.9715 8.24254C22.6005 9.72673 21.9241 10.9425 20.8761 11.7809C19.8249 12.6218 18.5038 13 17.0014 13C15.5931 13 14.517 12.669 13.6441 12.1664C12.8103 11.6862 12.2012 11.068 11.7232 10.583C11.0611 9.9112 10.7056 9.5817 10.2591 9.47021C9.78583 9.35189 9.3858 9.38751 9.02031 9.54415C8.64071 9.70683 8.22828 10.0308 7.80139 10.6L6.03125 9.75746C6.4023 8.27328 7.07869 7.05754 8.1267 6.21913ZM12.0014 7C11.1728 7 10.5057 7.14609 9.96802 7.40781C11.2881 7.49046 12.1492 8.30299 13.0247 9.12911C13.5289 9.60492 14.0379 10.0852 14.6422 10.4332C15.2012 10.7551 15.9313 11 17.0014 11C17.8299 11 18.497 10.8539 19.0347 10.5922C17.7147 10.5095 16.8538 9.69708 15.9786 8.87101C15.4744 8.39515 14.9655 7.91478 14.3612 7.56679C13.8022 7.24491 13.0719 7 12.0014 7ZM3.1267 12.2191C4.17785 11.3782 5.49894 11 7.00139 11C8.41001 11 9.48634 11.3309 10.3593 11.8336C11.0983 12.2592 11.7127 12.8413 12.3072 13.4449C12.953 14.1006 13.3034 14.4198 13.7437 14.5298C14.217 14.6481 14.617 14.6125 14.9825 14.4559C15.3621 14.2932 15.7745 13.9692 16.2014 13.4L17.9715 14.2425C17.6005 15.7267 16.9241 16.9425 15.8761 17.7809C14.8249 18.6218 13.5038 19 12.0014 19C10.5931 19 9.51701 18.669 8.64412 18.1664C7.81033 17.6862 7.20115 17.068 6.72319 16.583C6.06109 15.9112 5.70557 15.5817 5.25911 15.4702C4.78583 15.3519 4.3858 15.3875 4.02031 15.5441C3.64071 15.7068 3.22828 16.0308 2.80139 16.6L1.03125 15.7575C1.4023 14.2733 2.07869 13.0575 3.1267 12.2191ZM7.00136 13C6.17284 13 5.50571 13.1461 4.96802 13.4078C6.28809 13.4905 7.14918 14.303 8.02466 15.1291L8.02467 15.1291C8.52891 15.6049 9.03793 16.0852 9.64217 16.4332C10.2012 16.7551 10.9313 17 12.0014 17C12.8299 17 13.497 16.8539 14.0347 16.5922C12.7147 16.5095 11.8538 15.6971 10.9786 14.871C10.4744 14.3952 9.96546 13.9148 9.36117 13.5668C8.80225 13.2449 8.0719 13 7.00136 13Z"/></svg> \ No newline at end of file diff --git a/client/packages/lowcoder-design/src/icons/remix/telegram-2-fill.svg b/client/packages/lowcoder-design/src/icons/remix/telegram-2-fill.svg new file mode 100644 index 0000000000..0df6bfd87a --- /dev/null +++ b/client/packages/lowcoder-design/src/icons/remix/telegram-2-fill.svg @@ -0,0 +1 @@ +<svg viewBox="0 0 24 24" fill="currentColor" xmlns="http://www.w3.org/2000/svg"><path d="M2.14753 11.8099C7.3949 9.52374 10.894 8.01654 12.6447 7.28833C17.6435 5.20916 18.6822 4.84799 19.3592 4.83606C19.5081 4.83344 19.8411 4.87034 20.0567 5.04534C20.2388 5.1931 20.2889 5.39271 20.3129 5.5328C20.3369 5.6729 20.3667 5.99204 20.343 6.2414C20.0721 9.08763 18.9 15.9947 18.3037 19.1825C18.0514 20.5314 17.5546 20.9836 17.0736 21.0279C16.0283 21.1241 15.2345 20.3371 14.2221 19.6735C12.6379 18.635 11.7429 17.9885 10.2051 16.9751C8.42795 15.804 9.58001 15.1603 10.5928 14.1084C10.8579 13.8331 15.4635 9.64397 15.5526 9.26395C15.5637 9.21642 15.5741 9.03926 15.4688 8.94571C15.3636 8.85216 15.2083 8.88415 15.0962 8.9096C14.9373 8.94566 12.4064 10.6184 7.50365 13.928C6.78528 14.4212 6.13461 14.6616 5.55163 14.649C4.90893 14.6351 3.67265 14.2856 2.7536 13.9869C1.62635 13.6204 0.730432 13.4267 0.808447 12.8044C0.849081 12.4803 1.29544 12.1488 2.14753 11.8099Z"/></svg> \ No newline at end of file diff --git a/client/packages/lowcoder-design/src/icons/remix/telegram-2-line.svg b/client/packages/lowcoder-design/src/icons/remix/telegram-2-line.svg new file mode 100644 index 0000000000..b102cd6f8b --- /dev/null +++ b/client/packages/lowcoder-design/src/icons/remix/telegram-2-line.svg @@ -0,0 +1 @@ +<svg viewBox="0 0 24 24" fill="currentColor" xmlns="http://www.w3.org/2000/svg"><path d="M17.0943 7.14643C17.6874 6.93123 17.9818 6.85378 18.1449 6.82608C18.1461 6.87823 18.1449 6.92051 18.1422 6.94825C17.9096 9.39217 16.8906 15.4048 16.3672 18.2026C16.2447 18.8578 16.1507 19.1697 15.5179 18.798C15.1014 18.5532 14.7245 18.2452 14.3207 17.9805C12.9961 17.1121 11.1 15.8189 11.2557 15.8967C9.95162 15.0373 10.4975 14.5111 11.2255 13.8093C11.3434 13.6957 11.466 13.5775 11.5863 13.4525C11.64 13.3967 11.9027 13.1524 12.2731 12.8081C13.4612 11.7035 15.7571 9.56903 15.8151 9.32202C15.8246 9.2815 15.8334 9.13045 15.7436 9.05068C15.6539 8.97092 15.5215 8.9982 15.4259 9.01989C15.2904 9.05064 13.1326 10.4769 8.95243 13.2986C8.33994 13.7192 7.78517 13.9242 7.28811 13.9134L7.29256 13.9156C6.63781 13.6847 5.9849 13.4859 5.32855 13.286C4.89736 13.1546 4.46469 13.0228 4.02904 12.8812C3.92249 12.8466 3.81853 12.8137 3.72083 12.783C8.24781 10.8109 11.263 9.51243 12.7739 8.884C14.9684 7.97124 16.2701 7.44551 17.0943 7.14643ZM19.5169 5.21806C19.2635 5.01244 18.985 4.91807 18.7915 4.87185C18.5917 4.82412 18.4018 4.80876 18.2578 4.8113C17.7814 4.81969 17.2697 4.95518 16.4121 5.26637C15.5373 5.58382 14.193 6.12763 12.0058 7.03736C10.4638 7.67874 7.39388 9.00115 2.80365 11.001C2.40046 11.1622 2.03086 11.3451 1.73884 11.5619C1.46919 11.7622 1.09173 12.1205 1.02268 12.6714C0.970519 13.0874 1.09182 13.4714 1.33782 13.7738C1.55198 14.037 1.82635 14.1969 2.03529 14.2981C2.34545 14.4483 2.76276 14.5791 3.12952 14.6941C3.70264 14.8737 4.27444 15.0572 4.84879 15.233C6.62691 15.7773 8.09066 16.2253 9.7012 17.2866C10.8825 18.0651 12.041 18.8775 13.2243 19.6531C13.6559 19.936 14.0593 20.2607 14.5049 20.5224C14.9916 20.8084 15.6104 21.0692 16.3636 20.9998C17.5019 20.8951 18.0941 19.8479 18.3331 18.5703C18.8552 15.7796 19.8909 9.68351 20.1332 7.13774C20.1648 6.80544 20.1278 6.433 20.097 6.25318C20.0653 6.068 19.9684 5.58448 19.5169 5.21806Z"/></svg> \ No newline at end of file diff --git a/client/packages/lowcoder-design/src/icons/remix/telegram-fill.svg b/client/packages/lowcoder-design/src/icons/remix/telegram-fill.svg index f497543c08..ef041adaac 100644 --- a/client/packages/lowcoder-design/src/icons/remix/telegram-fill.svg +++ b/client/packages/lowcoder-design/src/icons/remix/telegram-fill.svg @@ -1 +1 @@ -<svg viewBox="0 0 24 24" fill="currentColor" xmlns="http://www.w3.org/2000/svg"><path d="M12.001 22C6.47813 22 2.00098 17.5228 2.00098 12C2.00098 6.47715 6.47813 2 12.001 2C17.5238 2 22.001 6.47715 22.001 12C22.001 17.5228 17.5238 22 12.001 22ZM8.89113 13.1708L8.90378 13.1628C9.48351 15.0767 9.77337 16.0337 9.77337 16.0337C9.88564 16.3442 10.04 16.3996 10.2273 16.3743C10.4145 16.3489 10.5139 16.2476 10.6361 16.1297C10.6361 16.1297 11.0324 15.7472 11.825 14.9823L14.3759 16.8698C14.8407 17.1266 15.1763 16.9941 15.2917 16.4377L16.9495 8.61641C17.1325 7.88842 16.8115 7.59644 16.247 7.82754L6.51397 11.5871C5.84996 11.854 5.85317 12.2255 6.39308 12.3911L8.89113 13.1708Z"/></svg> \ No newline at end of file +<svg viewBox="0 0 24 24" fill="currentColor" xmlns="http://www.w3.org/2000/svg"><path d="M22 12C22 17.5228 17.5228 22 12 22C6.47715 22 2 17.5228 2 12C2 6.47715 6.47715 2 12 2C17.5228 2 22 6.47715 22 12ZM12.3584 9.38246C11.3857 9.78702 9.4418 10.6244 6.5266 11.8945C6.05321 12.0827 5.80524 12.2669 5.78266 12.4469C5.74451 12.7513 6.12561 12.8711 6.64458 13.0343C6.71517 13.0565 6.78832 13.0795 6.8633 13.1039C7.37388 13.2698 8.06071 13.464 8.41776 13.4717C8.74164 13.4787 9.10313 13.3452 9.50222 13.0711C12.226 11.2325 13.632 10.3032 13.7203 10.2832C13.7826 10.269 13.8689 10.2513 13.9273 10.3032C13.9858 10.3552 13.98 10.4536 13.9739 10.48C13.9361 10.641 12.4401 12.0318 11.666 12.7515C11.4351 12.9661 11.2101 13.1853 10.9833 13.4039C10.509 13.8611 10.1533 14.204 11.003 14.764C11.8644 15.3317 12.7323 15.8982 13.5724 16.4971C13.9867 16.7925 14.359 17.0579 14.8188 17.0156C15.0861 16.991 15.3621 16.7397 15.5022 15.9903C15.8335 14.2193 16.4847 10.3821 16.6352 8.80083C16.6484 8.6623 16.6318 8.485 16.6185 8.40717C16.6052 8.32934 16.5773 8.21844 16.4762 8.13635C16.3563 8.03913 16.1714 8.01863 16.0887 8.02009C15.7125 8.02672 15.1355 8.22737 12.3584 9.38246Z"/></svg> \ No newline at end of file diff --git a/client/packages/lowcoder-design/src/icons/remix/telegram-line.svg b/client/packages/lowcoder-design/src/icons/remix/telegram-line.svg index d66dec8aac..30ed0ae908 100644 --- a/client/packages/lowcoder-design/src/icons/remix/telegram-line.svg +++ b/client/packages/lowcoder-design/src/icons/remix/telegram-line.svg @@ -1 +1 @@ -<svg viewBox="0 0 24 24" fill="currentColor" xmlns="http://www.w3.org/2000/svg"><path d="M12.001 20C16.4193 20 20.001 16.4183 20.001 12C20.001 7.58172 16.4193 4 12.001 4C7.5827 4 4.00098 7.58172 4.00098 12C4.00098 16.4183 7.5827 20 12.001 20ZM12.001 22C6.47813 22 2.00098 17.5228 2.00098 12C2.00098 6.47715 6.47813 2 12.001 2C17.5238 2 22.001 6.47715 22.001 12C22.001 17.5228 17.5238 22 12.001 22ZM8.89113 13.1708L6.39308 12.3911C5.85317 12.2255 5.84996 11.854 6.51397 11.5871L16.247 7.82754C16.8115 7.59644 17.1325 7.88842 16.9495 8.61641L15.2917 16.4377C15.1763 16.9941 14.8407 17.1266 14.3759 16.8698L11.825 14.9823L10.6361 16.1297C10.5139 16.2476 10.4145 16.3489 10.2273 16.3743C10.04 16.3996 9.88564 16.3442 9.77337 16.0337L8.90378 13.1628L8.89113 13.1708Z"/></svg> \ No newline at end of file +<svg viewBox="0 0 24 24" fill="currentColor" xmlns="http://www.w3.org/2000/svg"><path d="M20 12C20 16.4183 16.4183 20 12 20C7.58172 20 4 16.4183 4 12C4 7.58172 7.58172 4 12 4C16.4183 4 20 7.58172 20 12ZM12 22C17.5228 22 22 17.5228 22 12C22 6.47715 17.5228 2 12 2C6.47715 2 2 6.47715 2 12C2 17.5228 6.47715 22 12 22ZM12.3584 9.38246C11.3857 9.78702 9.4418 10.6244 6.5266 11.8945C6.05321 12.0827 5.80524 12.2669 5.78266 12.4469C5.74451 12.7513 6.12561 12.8711 6.64458 13.0343C6.71517 13.0565 6.78832 13.0795 6.8633 13.1039C7.37388 13.2698 8.06071 13.464 8.41776 13.4717C8.74164 13.4787 9.10313 13.3452 9.50222 13.0711C12.226 11.2325 13.632 10.3032 13.7203 10.2832C13.7826 10.269 13.8689 10.2513 13.9273 10.3032C13.9858 10.3552 13.98 10.4536 13.9739 10.48C13.9361 10.641 12.4401 12.0318 11.6659 12.7515C11.4351 12.9661 11.2101 13.1853 10.9833 13.4039C10.509 13.8611 10.1533 14.204 11.003 14.764C11.8644 15.3317 12.7323 15.8982 13.5724 16.4971C13.9867 16.7925 14.359 17.0579 14.8188 17.0156C15.0861 16.991 15.3621 16.7397 15.5022 15.9903C15.8335 14.2193 16.4847 10.3821 16.6352 8.80083C16.6484 8.6623 16.6318 8.485 16.6185 8.40717C16.6052 8.32934 16.5773 8.21844 16.4762 8.13635C16.3563 8.03913 16.1714 8.01863 16.0887 8.02009C15.7125 8.02672 15.1355 8.22737 12.3584 9.38246Z"/></svg> \ No newline at end of file diff --git a/client/packages/lowcoder-design/src/icons/remix/tools-fill.svg b/client/packages/lowcoder-design/src/icons/remix/tools-fill.svg index a9a735f93c..cca0ba292f 100644 --- a/client/packages/lowcoder-design/src/icons/remix/tools-fill.svg +++ b/client/packages/lowcoder-design/src/icons/remix/tools-fill.svg @@ -1 +1 @@ -<svg viewBox="0 0 24 24" fill="currentColor" xmlns="http://www.w3.org/2000/svg"><path d="M5.32943 3.27152C6.56252 2.83314 7.9923 3.10743 8.97927 4.0944C9.96652 5.08165 10.2407 6.51196 9.80178 7.74529L20.6465 18.5901L18.5252 20.7114L7.67936 9.86703C6.44627 10.3054 5.01649 10.0311 4.02952 9.04415C3.04227 8.0569 2.7681 6.62659 3.20701 5.39326L5.44373 7.62994C6.02952 8.21572 6.97927 8.21572 7.56505 7.62994C8.15084 7.04415 8.15084 6.0944 7.56505 5.50862L5.32943 3.27152ZM15.6968 5.15506L18.8788 3.38729L20.293 4.80151L18.5252 7.98349L16.7574 8.33704L14.6361 10.4584L13.2219 9.04415L15.3432 6.92283L15.6968 5.15506ZM8.62572 12.9332L10.747 15.0546L5.79729 20.0043C5.2115 20.5901 4.26175 20.5901 3.67597 20.0043C3.12464 19.453 3.09221 18.5792 3.57867 17.99L3.67597 17.883L8.62572 12.9332Z"/></svg> \ No newline at end of file +<svg viewBox="0 0 24 24" fill="currentColor" xmlns="http://www.w3.org/2000/svg"><path d="M5.32943 3.27158C6.56252 2.8332 7.9923 3.10749 8.97927 4.09446C9.96652 5.08171 10.2407 6.51202 9.80178 7.74535L20.6465 18.5902L18.5252 20.7115L7.67936 9.86709C6.44627 10.3055 5.01649 10.0312 4.02952 9.04421C3.04227 8.05696 2.7681 6.62665 3.20701 5.39332L5.44373 7.63C6.02952 8.21578 6.97927 8.21578 7.56505 7.63C8.15084 7.04421 8.15084 6.09446 7.56505 5.50868L5.32943 3.27158ZM15.6968 5.15512L18.8788 3.38736L20.293 4.80157L18.5252 7.98355L16.7574 8.3371L14.6361 10.4584L13.2219 9.04421L15.3432 6.92289L15.6968 5.15512ZM8.62572 12.9333L10.747 15.0546L5.79729 20.0044C5.2115 20.5902 4.26175 20.5902 3.67597 20.0044C3.12464 19.453 3.09221 18.5793 3.57867 17.99L3.67597 17.883L8.62572 12.9333Z"/></svg> \ No newline at end of file diff --git a/client/packages/lowcoder-design/src/icons/remix/tools-line.svg b/client/packages/lowcoder-design/src/icons/remix/tools-line.svg index 2181886d99..1fe39b6afa 100644 --- a/client/packages/lowcoder-design/src/icons/remix/tools-line.svg +++ b/client/packages/lowcoder-design/src/icons/remix/tools-line.svg @@ -1 +1 @@ -<svg viewBox="0 0 24 24" fill="currentColor" xmlns="http://www.w3.org/2000/svg"><path d="M5.32943 3.27152C6.56252 2.83314 7.9923 3.10743 8.97927 4.0944C10.1002 5.21531 10.3019 6.90735 9.5843 8.23378L20.293 18.9436L18.8788 20.3579L8.16982 9.64869C6.84325 10.3668 5.15069 10.1653 4.02952 9.04415C3.04227 8.0569 2.7681 6.62659 3.20701 5.39326L5.44373 7.62994C6.02952 8.21572 6.97927 8.21572 7.56505 7.62994C8.15084 7.04415 8.15084 6.0944 7.56505 5.50862L5.32943 3.27152ZM15.6968 5.15506L18.8788 3.38729L20.293 4.80151L18.5252 7.98349L16.7574 8.33704L14.6361 10.4584L13.2219 9.04415L15.3432 6.92283L15.6968 5.15506ZM8.97927 13.2868L10.3935 14.701L5.09018 20.0043C4.69966 20.3948 4.06649 20.3948 3.67597 20.0043C3.31334 19.6417 3.28744 19.0698 3.59826 18.6773L3.67597 18.5901L8.97927 13.2868Z"/></svg> \ No newline at end of file +<svg viewBox="0 0 24 24" fill="currentColor" xmlns="http://www.w3.org/2000/svg"><path d="M5.32943 3.27158C6.56252 2.8332 7.9923 3.10749 8.97927 4.09446C10.1002 5.21537 10.3019 6.90741 9.5843 8.23385L20.293 18.9437L18.8788 20.3579L8.16982 9.64875C6.84325 10.3669 5.15069 10.1654 4.02952 9.04421C3.04227 8.05696 2.7681 6.62665 3.20701 5.39332L5.44373 7.63C6.02952 8.21578 6.97927 8.21578 7.56505 7.63C8.15084 7.04421 8.15084 6.09446 7.56505 5.50868L5.32943 3.27158ZM15.6968 5.15512L18.8788 3.38736L20.293 4.80157L18.5252 7.98355L16.7574 8.3371L14.6361 10.4584L13.2219 9.04421L15.3432 6.92289L15.6968 5.15512ZM8.97927 13.2868L10.3935 14.7011L5.09018 20.0044C4.69966 20.3949 4.06649 20.3949 3.67597 20.0044C3.31334 19.6417 3.28744 19.0699 3.59826 18.6774L3.67597 18.5902L8.97927 13.2868Z"/></svg> \ No newline at end of file diff --git a/client/packages/lowcoder-design/src/icons/remix/tooth-fill.svg b/client/packages/lowcoder-design/src/icons/remix/tooth-fill.svg new file mode 100644 index 0000000000..f160996daa --- /dev/null +++ b/client/packages/lowcoder-design/src/icons/remix/tooth-fill.svg @@ -0,0 +1 @@ +<svg viewBox="0 0 24 24" fill="currentColor" xmlns="http://www.w3.org/2000/svg"><path d="M12.0002 3.23235C13.5819 4.0567 14.7825 5.51252 15.2664 7.26605C15.4134 7.79843 15.9641 8.1109 16.4964 7.96396C17.0288 7.81702 17.3413 7.26633 17.1943 6.73395C16.7346 5.06811 15.7806 3.60711 14.4998 2.519C14.665 2.50641 14.8318 2.5 15 2.5C17.0071 2.5 18.6792 3.228 19.8307 4.60982C20.962 5.96738 21.5 7.84558 21.5 10C21.5 13.0971 20.9858 15.8652 20.1051 17.8976C19.265 19.8362 17.8974 21.5 16 21.5C14.8997 21.5 14.2129 20.8477 13.8053 20.1396C13.4431 19.5106 13.2269 18.7169 13.0529 18.0779C12.8459 17.3179 12.6873 16.7504 12.4615 16.3583C12.2754 16.0352 12.1497 16 12 16C11.8503 16 11.7246 16.0352 11.5385 16.3583C11.3127 16.7504 11.1541 17.3179 10.9471 18.0779L10.9471 18.0779C10.7731 18.7169 10.5569 19.5106 10.1947 20.1396C9.78706 20.8477 9.10027 21.5 8 21.5C6.1026 21.5 4.73499 19.8362 3.89494 17.8976C3.01425 15.8652 2.5 13.0971 2.5 10C2.5 7.84558 3.03797 5.96738 4.16928 4.60982C5.32079 3.228 6.9929 2.5 9 2.5C9.00948 2.5 9.01896 2.50002 9.02843 2.50006C10.0987 2.50466 11.1098 2.7686 12 3.23245C12.0001 3.23242 12.0001 3.23238 12.0002 3.23235Z"/></svg> \ No newline at end of file diff --git a/client/packages/lowcoder-design/src/icons/remix/tooth-line.svg b/client/packages/lowcoder-design/src/icons/remix/tooth-line.svg new file mode 100644 index 0000000000..86de6efec7 --- /dev/null +++ b/client/packages/lowcoder-design/src/icons/remix/tooth-line.svg @@ -0,0 +1 @@ +<svg viewBox="0 0 24 24" fill="currentColor" xmlns="http://www.w3.org/2000/svg"><path d="M5.70572 5.89018C6.42921 5.022 7.5071 4.5 9 4.5C9.90702 4.5 10.7486 4.7673 11.4538 5.22714C12.2364 5.73739 12.8501 6.48416 13.1936 7.36377C13.3945 7.87822 13.9744 8.13239 14.4888 7.93149C15.0033 7.73058 15.2575 7.15067 15.0565 6.63623C14.769 5.89989 14.3515 5.22943 13.8324 4.65272C14.2044 4.55311 14.5957 4.5 15 4.5C16.4929 4.5 17.5708 5.022 18.2943 5.89018C19.038 6.78262 19.5 8.15442 19.5 10C19.5 12.9029 19.0142 15.3848 18.2699 17.1024C17.485 18.9138 16.6026 19.5 16 19.5C15.8503 19.5 15.7246 19.4648 15.5385 19.1417C15.3127 18.7496 15.1541 18.1821 14.9471 17.4221C14.7731 16.7831 14.5569 15.9894 14.1947 15.3604C13.7871 14.6523 13.1003 14 12 14C10.8997 14 10.2129 14.6523 9.80525 15.3604C9.44313 15.9894 9.22692 16.7831 9.05289 17.4221C8.8459 18.1821 8.68726 18.7496 8.4615 19.1417C8.27544 19.4648 8.14973 19.5 8 19.5C7.3974 19.5 6.51501 18.9138 5.73006 17.1024C4.98575 15.3848 4.5 12.9029 4.5 10C4.5 8.15442 4.96203 6.78262 5.70572 5.89018ZM12 3.23245C11.1019 2.7645 10.0808 2.5 9 2.5C6.9929 2.5 5.32079 3.228 4.16928 4.60982C3.03797 5.96738 2.5 7.84558 2.5 10C2.5 13.0971 3.01425 15.8652 3.89494 17.8976C4.73499 19.8362 6.1026 21.5 8 21.5C9.10027 21.5 9.78706 20.8477 10.1947 20.1396C10.5692 19.4892 10.7876 18.6626 10.9648 18.0131C11.1626 17.2875 11.3192 16.7392 11.5385 16.3583C11.7246 16.0352 11.8503 16 12 16C12.1497 16 12.2754 16.0352 12.4615 16.3583C12.6808 16.7392 12.8374 17.2875 13.0352 18.0131C13.2123 18.6625 13.4308 19.4892 13.8053 20.1396C14.2129 20.8477 14.8997 21.5 16 21.5C17.8974 21.5 19.265 19.8362 20.1051 17.8976C20.9858 15.8652 21.5 13.0971 21.5 10C21.5 7.84558 20.962 5.96738 19.8307 4.60982C18.6792 3.228 17.0071 2.5 15 2.5C13.9192 2.5 12.8981 2.7645 12 3.23245Z"/></svg> \ No newline at end of file diff --git a/client/packages/lowcoder-design/src/icons/remix/translate-ai-2.svg b/client/packages/lowcoder-design/src/icons/remix/translate-ai-2.svg new file mode 100644 index 0000000000..039b27e5b5 --- /dev/null +++ b/client/packages/lowcoder-design/src/icons/remix/translate-ai-2.svg @@ -0,0 +1 @@ +<svg viewBox="0 0 24 24" fill="currentColor" xmlns="http://www.w3.org/2000/svg"><path d="M19.7134 8.12811L19.4668 8.69379C19.2864 9.10792 18.7136 9.10792 18.5331 8.69379L18.2866 8.12811C17.8471 7.11947 17.0555 6.31641 16.0677 5.87708L15.308 5.53922C14.8973 5.35653 14.8973 4.75881 15.308 4.57612L16.0252 4.25714C17.0384 3.80651 17.8442 2.97373 18.2761 1.93083L18.5293 1.31953C18.7058 0.893489 19.2942 0.893489 19.4706 1.31953L19.7238 1.93083C20.1558 2.97373 20.9616 3.80651 21.9748 4.25714L22.6919 4.57612C23.1027 4.75881 23.1027 5.35653 22.6919 5.53922L21.9323 5.87708C20.9445 6.31641 20.1529 7.11947 19.7134 8.12811ZM22.9 21L18.5 10H16.5L12.101 21H14.255L15.454 18H19.544L20.745 21H22.9ZM16.253 16L17.5 12.8852L18.745 16H16.253ZM7.5466 12.3036C6.41407 11.0171 5.45992 9.56967 4.72266 8H6.96329C7.53108 9.04434 8.21011 10.0196 8.98442 10.9097C10.2737 9.48824 11.3027 7.82653 11.9961 6H2V4H8V2H10V4H14.6497C14.5624 4.42994 14.4594 4.85421 14.3412 5.27216C13.5862 7.94155 12.2142 10.3512 10.389 12.3375C11.1089 12.9848 11.8869 13.5688 12.7142 14.0805L11.9615 15.9627C10.8814 15.3228 9.87297 14.5749 8.95119 13.7336C7.17781 15.2694 5.09248 16.4547 2.8027 17.1819L2.1973 15.2757C4.18364 14.6449 5.99672 13.6242 7.5466 12.3036Z"/></svg> \ No newline at end of file diff --git a/client/packages/lowcoder-design/src/icons/remix/translate-ai.svg b/client/packages/lowcoder-design/src/icons/remix/translate-ai.svg new file mode 100644 index 0000000000..1a32e50371 --- /dev/null +++ b/client/packages/lowcoder-design/src/icons/remix/translate-ai.svg @@ -0,0 +1 @@ +<svg viewBox="0 0 24 24" fill="currentColor" xmlns="http://www.w3.org/2000/svg"><path d="M19.7134 8.12811L19.4668 8.69379C19.2864 9.10792 18.7136 9.10792 18.5331 8.69379L18.2866 8.12811C17.8471 7.11947 17.0555 6.31641 16.0677 5.87708L15.308 5.53922C14.8973 5.35653 14.8973 4.75881 15.308 4.57612L16.0252 4.25714C17.0384 3.80651 17.8442 2.97373 18.2761 1.93083L18.5293 1.31953C18.7058 0.893489 19.2942 0.893489 19.4706 1.31953L19.7238 1.93083C20.1558 2.97373 20.9616 3.80651 21.9748 4.25714L22.6919 4.57612C23.1027 4.75881 23.1027 5.35653 22.6919 5.53922L21.9323 5.87708C20.9445 6.31641 20.1529 7.11947 19.7134 8.12811ZM5 17V15H3V17C3 19.2091 4.79086 21 7 21H10V19H7L6.85074 18.9945C5.81588 18.9182 5 18.0544 5 17ZM22.4 21L18 10H16L11.601 21H13.755L14.954 18H19.044L20.245 21H22.4ZM15.753 16L17 12.8852L18.245 16H15.753ZM8 4V2H6V4H2V11H6V14H8V11H12V4H8ZM4 6H6V9H4V6ZM8 6H10V9H8V6Z"/></svg> \ No newline at end of file diff --git a/client/packages/lowcoder-design/src/icons/remix/triangular-flag-fill.svg b/client/packages/lowcoder-design/src/icons/remix/triangular-flag-fill.svg new file mode 100644 index 0000000000..38daaf555e --- /dev/null +++ b/client/packages/lowcoder-design/src/icons/remix/triangular-flag-fill.svg @@ -0,0 +1 @@ +<svg viewBox="0 0 24 24" fill="currentColor" xmlns="http://www.w3.org/2000/svg"><path d="M5.66056 2.18123C5.01456 1.61285 4 2.07155 4 2.932V22H6V18.0002H20.9896C21.9116 18.0002 22.3423 16.8584 21.6501 16.2494L5.66056 2.18123Z"/></svg> \ No newline at end of file diff --git a/client/packages/lowcoder-design/src/icons/remix/triangular-flag-line.svg b/client/packages/lowcoder-design/src/icons/remix/triangular-flag-line.svg new file mode 100644 index 0000000000..591cdd3a89 --- /dev/null +++ b/client/packages/lowcoder-design/src/icons/remix/triangular-flag-line.svg @@ -0,0 +1 @@ +<svg viewBox="0 0 24 24" fill="currentColor" xmlns="http://www.w3.org/2000/svg"><path d="M6 5.1438V16.0002H18.3391L6 5.1438ZM4 2.932C4 2.07155 5.01456 1.61285 5.66056 2.18123L21.6501 16.2494C22.3423 16.8584 21.9116 18.0002 20.9896 18.0002H6V22H4V2.932Z"/></svg> \ No newline at end of file diff --git a/client/packages/lowcoder-design/src/icons/remix/twitter-x-fill.svg b/client/packages/lowcoder-design/src/icons/remix/twitter-x-fill.svg index 0f5090d446..1879f1c121 100644 --- a/client/packages/lowcoder-design/src/icons/remix/twitter-x-fill.svg +++ b/client/packages/lowcoder-design/src/icons/remix/twitter-x-fill.svg @@ -1 +1 @@ -<svg viewBox="0 0 24 24" fill="currentColor" xmlns="http://www.w3.org/2000/svg"><path d="M18.2048 2.25H21.5128L14.2858 10.51L22.7878 21.75H16.1308L10.9168 14.933L4.95084 21.75H1.64084L9.37084 12.915L1.21484 2.25H8.04084L12.7538 8.481L18.2048 2.25ZM17.0438 19.77H18.8768L7.04484 4.126H5.07784L17.0438 19.77Z"/></svg> \ No newline at end of file +<svg viewBox="0 0 24 24" fill="currentColor" xmlns="http://www.w3.org/2000/svg"><path d="M17.6874 3.0625L12.6907 8.77425L8.37045 3.0625H2.11328L9.58961 12.8387L2.50378 20.9375H5.53795L11.0068 14.6886L15.7863 20.9375H21.8885L14.095 10.6342L20.7198 3.0625H17.6874ZM16.6232 19.1225L5.65436 4.78217H7.45745L18.3034 19.1225H16.6232Z"/></svg> \ No newline at end of file diff --git a/client/packages/lowcoder-design/src/icons/remix/twitter-x-line.svg b/client/packages/lowcoder-design/src/icons/remix/twitter-x-line.svg index 2f7d3ab06f..65ffe96dfa 100644 --- a/client/packages/lowcoder-design/src/icons/remix/twitter-x-line.svg +++ b/client/packages/lowcoder-design/src/icons/remix/twitter-x-line.svg @@ -1 +1 @@ -<svg viewBox="0 0 24 24" fill="currentColor" xmlns="http://www.w3.org/2000/svg"><path d="M8 2H1L9.26086 13.0145L1.44995 21.9999H4.09998L10.4883 14.651L16 22H23L14.3917 10.5223L21.8001 2H19.1501L13.1643 8.88578L8 2ZM17 20L5 4H7L19 20H17Z"/></svg> \ No newline at end of file +<svg viewBox="0 0 24 24" fill="currentColor" xmlns="http://www.w3.org/2000/svg"><path d="M10.4883 14.651L15.25 21H22.25L14.3917 10.5223L20.9308 3H18.2808L13.1643 8.88578L8.75 3H1.75L9.26086 13.0145L2.31915 21H4.96917L10.4883 14.651ZM16.25 19L5.75 5H7.75L18.25 19H16.25Z"/></svg> \ No newline at end of file diff --git a/client/packages/lowcoder-design/src/icons/remix/user-community-fill.svg b/client/packages/lowcoder-design/src/icons/remix/user-community-fill.svg new file mode 100644 index 0000000000..a64d62fbf2 --- /dev/null +++ b/client/packages/lowcoder-design/src/icons/remix/user-community-fill.svg @@ -0,0 +1 @@ +<svg viewBox="0 0 24 24" fill="currentColor" xmlns="http://www.w3.org/2000/svg"><path d="M5.23379 7.72989C6.65303 5.48625 9.15342 4 12.0002 4C14.847 4 17.3474 5.48625 18.7667 7.72989L20.4569 6.66071C18.6865 3.86199 15.5612 2 12.0002 2C8.43928 2 5.31393 3.86199 3.54356 6.66071L5.23379 7.72989ZM12.0002 20C9.15342 20 6.65303 18.5138 5.23379 16.2701L3.54356 17.3393C5.31393 20.138 8.43928 22 12.0002 22C15.5612 22 18.6865 20.138 20.4569 17.3393L18.7667 16.2701C17.3474 18.5138 14.847 20 12.0002 20ZM12 12C13.6569 12 15 10.6569 15 9C15 7.34315 13.6569 6 12 6C10.3431 6 9 7.34315 9 9C9 10.6569 10.3431 12 12 12ZM12 13C14.2091 13 16 14.7909 16 17H8C8 14.7909 9.79086 13 12 13ZM6 12C6 13.6569 4.65685 15 3 15C1.34315 15 0 13.6569 0 12C0 10.3431 1.34315 9 3 9C4.65685 9 6 10.3431 6 12ZM21 15C22.6569 15 24 13.6569 24 12C24 10.3431 22.6569 9 21 9C19.3431 9 18 10.3431 18 12C18 13.6569 19.3431 15 21 15Z"/></svg> \ No newline at end of file diff --git a/client/packages/lowcoder-design/src/icons/remix/user-community-line.svg b/client/packages/lowcoder-design/src/icons/remix/user-community-line.svg new file mode 100644 index 0000000000..ea66741bda --- /dev/null +++ b/client/packages/lowcoder-design/src/icons/remix/user-community-line.svg @@ -0,0 +1 @@ +<svg viewBox="0 0 24 24" fill="currentColor" xmlns="http://www.w3.org/2000/svg"><path d="M5.23379 7.72989C6.65303 5.48625 9.15342 4 12.0002 4C14.847 4 17.3474 5.48625 18.7667 7.72989L20.4569 6.66071C18.6865 3.86199 15.5612 2 12.0002 2C8.43928 2 5.31393 3.86199 3.54356 6.66071L5.23379 7.72989ZM12.0002 20C9.15342 20 6.65303 18.5138 5.23379 16.2701L3.54356 17.3393C5.31393 20.138 8.43928 22 12.0002 22C15.5612 22 18.6865 20.138 20.4569 17.3393L18.7667 16.2701C17.3474 18.5138 14.847 20 12.0002 20ZM12 8C12.5523 8 13 8.44772 13 9C13 9.55228 12.5523 10 12 10C11.4477 10 11 9.55228 11 9C11 8.44772 11.4477 8 12 8ZM12 12C13.6569 12 15 10.6569 15 9C15 7.34315 13.6569 6 12 6C10.3431 6 9 7.34315 9 9C9 10.6569 10.3431 12 12 12ZM12 15C10.8954 15 10 15.8954 10 17H8C8 14.7909 9.79086 13 12 13C14.2091 13 16 14.7909 16 17H14C14 15.8954 13.1046 15 12 15ZM3 11C2.44772 11 2 11.4477 2 12C2 12.5523 2.44772 13 3 13C3.55228 13 4 12.5523 4 12C4 11.4477 3.55228 11 3 11ZM0 12C0 10.3431 1.34315 9 3 9C4.65685 9 6 10.3431 6 12C6 13.6569 4.65685 15 3 15C1.34315 15 0 13.6569 0 12ZM20 12C20 11.4477 20.4477 11 21 11C21.5523 11 22 11.4477 22 12C22 12.5523 21.5523 13 21 13C20.4477 13 20 12.5523 20 12ZM21 9C19.3431 9 18 10.3431 18 12C18 13.6569 19.3431 15 21 15C22.6569 15 24 13.6569 24 12C24 10.3431 22.6569 9 21 9Z"/></svg> \ No newline at end of file diff --git a/client/packages/lowcoder-design/src/icons/remix/user-minus-fill.svg b/client/packages/lowcoder-design/src/icons/remix/user-minus-fill.svg new file mode 100644 index 0000000000..5367efed8b --- /dev/null +++ b/client/packages/lowcoder-design/src/icons/remix/user-minus-fill.svg @@ -0,0 +1 @@ +<svg viewBox="0 0 24 24" fill="currentColor" xmlns="http://www.w3.org/2000/svg"><path d="M14 14.252V22H4C4 17.5817 7.58172 14 12 14C12.6906 14 13.3608 14.0875 14 14.252ZM12 13C8.685 13 6 10.315 6 7C6 3.685 8.685 1 12 1C15.315 1 18 3.685 18 7C18 10.315 15.315 13 12 13ZM23 18V20H15V18H23Z"/></svg> \ No newline at end of file diff --git a/client/packages/lowcoder-design/src/icons/remix/user-minus-line.svg b/client/packages/lowcoder-design/src/icons/remix/user-minus-line.svg new file mode 100644 index 0000000000..d2225637f5 --- /dev/null +++ b/client/packages/lowcoder-design/src/icons/remix/user-minus-line.svg @@ -0,0 +1 @@ +<svg viewBox="0 0 24 24" fill="currentColor" xmlns="http://www.w3.org/2000/svg"><path d="M14 14.252V16.3414C13.3744 16.1203 12.7013 16 12 16C8.68629 16 6 18.6863 6 22H4C4 17.5817 7.58172 14 12 14C12.6906 14 13.3608 14.0875 14 14.252ZM12 13C8.685 13 6 10.315 6 7C6 3.685 8.685 1 12 1C15.315 1 18 3.685 18 7C18 10.315 15.315 13 12 13ZM12 11C14.21 11 16 9.21 16 7C16 4.79 14.21 3 12 3C9.79 3 8 4.79 8 7C8 9.21 9.79 11 12 11ZM23 18V20H15V18H23Z"/></svg> \ No newline at end of file diff --git a/client/packages/lowcoder-design/src/icons/remix/vercel-fill.svg b/client/packages/lowcoder-design/src/icons/remix/vercel-fill.svg new file mode 100644 index 0000000000..848b4324d8 --- /dev/null +++ b/client/packages/lowcoder-design/src/icons/remix/vercel-fill.svg @@ -0,0 +1 @@ +<svg viewBox="0 0 24 24" fill="currentColor" xmlns="http://www.w3.org/2000/svg"><path d="M23 21.6479H1L12 2.35205L23 21.6479Z"/></svg> \ No newline at end of file diff --git a/client/packages/lowcoder-design/src/icons/remix/vercel-line.svg b/client/packages/lowcoder-design/src/icons/remix/vercel-line.svg new file mode 100644 index 0000000000..2d8c6e3b2a --- /dev/null +++ b/client/packages/lowcoder-design/src/icons/remix/vercel-line.svg @@ -0,0 +1 @@ +<svg viewBox="0 0 24 24" fill="currentColor" xmlns="http://www.w3.org/2000/svg"><path d="M23 21.6479L12 2.35205L1 21.6479H23ZM19.5577 19.6479H4.4423L12 6.39042L19.5577 19.6479Z"/></svg> \ No newline at end of file diff --git a/client/packages/lowcoder-design/src/icons/remix/verified-badge-line.svg b/client/packages/lowcoder-design/src/icons/remix/verified-badge-line.svg index 3eafef0ea4..08979cf4a1 100644 --- a/client/packages/lowcoder-design/src/icons/remix/verified-badge-line.svg +++ b/client/packages/lowcoder-design/src/icons/remix/verified-badge-line.svg @@ -1 +1 @@ -<svg viewBox="0 0 24 24" fill="currentColor" xmlns="http://www.w3.org/2000/svg"><path d="M10.0073 2.10365C8.60568 1.64993 7.08206 2.28104 6.41181 3.59294L5.60603 5.17011C5.51029 5.35751 5.35787 5.50992 5.17048 5.60566L3.5933 6.41144C2.2814 7.08169 1.6503 8.60532 2.10401 10.0069L2.64947 11.6919C2.71428 11.8921 2.71428 12.1077 2.64947 12.3079L2.10401 13.9929C1.6503 15.3945 2.28141 16.9181 3.5933 17.5883L5.17048 18.3941C5.35787 18.4899 5.51029 18.6423 5.60603 18.8297L6.41181 20.4068C7.08206 21.7187 8.60569 22.3498 10.0073 21.8961L11.6923 21.3507C11.8925 21.2859 12.108 21.2859 12.3082 21.3507L13.9932 21.8961C15.3948 22.3498 16.9185 21.7187 17.5887 20.4068L18.3945 18.8297C18.4902 18.6423 18.6426 18.4899 18.83 18.3941L20.4072 17.5883C21.7191 16.9181 22.3502 15.3945 21.8965 13.9929L21.351 12.3079C21.2862 12.1077 21.2862 11.8921 21.351 11.6919L21.8965 10.0069C22.3502 8.60531 21.7191 7.08169 20.4072 6.41144L18.83 5.60566C18.6426 5.50992 18.4902 5.3575 18.3945 5.17011L17.5887 3.59294C16.9185 2.28104 15.3948 1.64993 13.9932 2.10365L12.3082 2.6491C12.108 2.71391 11.8925 2.71391 11.6923 2.6491L10.0073 2.10365ZM8.19283 4.50286C8.41624 4.06556 8.92412 3.8552 9.39132 4.00643L11.0763 4.55189C11.6769 4.74632 12.3236 4.74632 12.9242 4.55189L14.6092 4.00643C15.0764 3.8552 15.5843 4.06556 15.8077 4.50286L16.6135 6.08004C16.9007 6.64222 17.3579 7.09946 17.9201 7.38668L19.4973 8.19246C19.9346 8.41588 20.145 8.92375 19.9937 9.39095L19.4483 11.076C19.2538 11.6766 19.2538 12.3232 19.4483 12.9238L19.9937 14.6088C20.145 15.076 19.9346 15.5839 19.4973 15.8073L17.9201 16.6131C17.3579 16.9003 16.9007 17.3576 16.6135 17.9197L15.8077 19.4969C15.5843 19.9342 15.0764 20.1446 14.6092 19.9933L12.9242 19.4479C12.3236 19.2535 11.6769 19.2535 11.0763 19.4479L9.39132 19.9933C8.92412 20.1446 8.41624 19.9342 8.19283 19.4969L7.38705 17.9197C7.09983 17.3576 6.64258 16.9003 6.08041 16.6131L4.50323 15.8073C4.06593 15.5839 3.85556 15.076 4.0068 14.6088L4.55226 12.9238C4.74668 12.3232 4.74668 11.6766 4.55226 11.076L4.0068 9.39095C3.85556 8.92375 4.06593 8.41588 4.50323 8.19246L6.0804 7.38668C6.64258 7.09946 7.09983 6.64222 7.38705 6.08004L8.19283 4.50286ZM6.75984 11.7573L11.0025 15.9999L18.0736 8.92885L16.6594 7.51464L11.0025 13.1715L8.17406 10.343L6.75984 11.7573Z"/></svg> \ No newline at end of file +<svg viewBox="0 0 24 24" fill="currentColor" xmlns="http://www.w3.org/2000/svg"><path d="M10.0072 2.10365C8.60556 1.64993 7.08193 2.28104 6.41168 3.59294L5.6059 5.17011C5.51016 5.35751 5.35775 5.50992 5.17036 5.60566L3.59318 6.41144C2.28128 7.08169 1.65018 8.60532 2.10389 10.0069L2.64935 11.6919C2.71416 11.8921 2.71416 12.1077 2.64935 12.3079L2.10389 13.9929C1.65018 15.3945 2.28129 16.9181 3.59318 17.5883L5.17036 18.3941C5.35775 18.4899 5.51016 18.6423 5.6059 18.8297L6.41169 20.4068C7.08194 21.7187 8.60556 22.3498 10.0072 21.8961L11.6922 21.3507C11.8924 21.2859 12.1079 21.2859 12.3081 21.3507L13.9931 21.8961C15.3947 22.3498 16.9183 21.7187 17.5886 20.4068L18.3944 18.8297C18.4901 18.6423 18.6425 18.4899 18.8299 18.3941L20.4071 17.5883C21.719 16.9181 22.3501 15.3945 21.8964 13.9929L21.3509 12.3079C21.2861 12.1077 21.2861 11.8921 21.3509 11.6919L21.8964 10.0069C22.3501 8.60531 21.719 7.08169 20.4071 6.41144L18.8299 5.60566C18.6425 5.50992 18.4901 5.3575 18.3944 5.17011L17.5886 3.59294C16.9183 2.28104 15.3947 1.64993 13.9931 2.10365L12.3081 2.6491C12.1079 2.71391 11.8924 2.71391 11.6922 2.6491L10.0072 2.10365ZM8.19271 4.50286C8.41612 4.06556 8.924 3.8552 9.39119 4.00643L11.0762 4.55189C11.6768 4.74632 12.3235 4.74632 12.9241 4.55189L14.6091 4.00643C15.0763 3.8552 15.5841 4.06556 15.8076 4.50286L16.6133 6.08004C16.9006 6.64222 17.3578 7.09946 17.92 7.38668L19.4972 8.19246C19.9345 8.41588 20.1448 8.92375 19.9936 9.39095L19.4481 11.076C19.2537 11.6766 19.2537 12.3232 19.4481 12.9238L19.9936 14.6088C20.1448 15.076 19.9345 15.5839 19.4972 15.8073L17.92 16.6131C17.3578 16.9003 16.9006 17.3576 16.6133 17.9197L15.8076 19.4969C15.5841 19.9342 15.0763 20.1446 14.6091 19.9933L12.9241 19.4479C12.3235 19.2535 11.6768 19.2535 11.0762 19.4479L9.3912 19.9933C8.924 20.1446 8.41612 19.9342 8.19271 19.4969L7.38692 17.9197C7.09971 17.3576 6.64246 16.9003 6.08028 16.6131L4.50311 15.8073C4.06581 15.5839 3.85544 15.076 4.00668 14.6088L4.55213 12.9238C4.74656 12.3232 4.74656 11.6766 4.55213 11.076L4.00668 9.39095C3.85544 8.92375 4.06581 8.41588 4.50311 8.19246L6.08028 7.38668C6.64246 7.09946 7.09971 6.64222 7.38692 6.08004L8.19271 4.50286ZM6.75972 11.7573L11.0023 15.9999L18.0734 8.92885L16.6592 7.51464L11.0023 13.1715L8.17394 10.343L6.75972 11.7573Z"/></svg> \ No newline at end of file diff --git a/client/packages/lowcoder-design/src/icons/remix/video-ai-fill.svg b/client/packages/lowcoder-design/src/icons/remix/video-ai-fill.svg new file mode 100644 index 0000000000..6b55b914d5 --- /dev/null +++ b/client/packages/lowcoder-design/src/icons/remix/video-ai-fill.svg @@ -0,0 +1 @@ +<svg viewBox="0 0 24 24" fill="currentColor" xmlns="http://www.w3.org/2000/svg"><path d="M19.7134 8.12811L19.4668 8.69379C19.2864 9.10792 18.7136 9.10792 18.5331 8.69379L18.2866 8.12811C17.8471 7.11947 17.0555 6.31641 16.0677 5.87708L15.308 5.53922C14.8973 5.35653 14.8973 4.75881 15.308 4.57612L16.0252 4.25714C17.0384 3.80651 17.8442 2.97373 18.2761 1.93083L18.5293 1.31953C18.7058 0.893489 19.2942 0.893489 19.4706 1.31953L19.7238 1.93083C20.1558 2.97373 20.9616 3.80651 21.9748 4.25714L22.6919 4.57612C23.1027 4.75881 23.1027 5.35653 22.6919 5.53922L21.9323 5.87708C20.9445 6.31641 20.1529 7.11947 19.7134 8.12811ZM19 11C19.7013 11 20.3744 10.8797 21 10.6586V20.0066C21 20.5552 20.5551 21 20.0066 21H3.9934C3.44476 21 3 20.5551 3 20.0066V3.9934C3 3.44476 3.44495 3 3.9934 3H13.3414C13.1203 3.62556 13 4.29873 13 5C13 8.31371 15.6863 11 19 11ZM10.6219 8.41459C10.5562 8.37078 10.479 8.34741 10.4 8.34741C10.1791 8.34741 10 8.52649 10 8.74741V15.2526C10 15.3316 10.0234 15.4088 10.0672 15.4745C10.1897 15.6583 10.4381 15.708 10.6219 15.5854L15.5008 12.3328C15.5447 12.3035 15.5824 12.2658 15.6117 12.2219C15.7343 12.0381 15.6846 11.7897 15.5008 11.6672L10.6219 8.41459Z"/></svg> \ No newline at end of file diff --git a/client/packages/lowcoder-design/src/icons/remix/video-ai-line.svg b/client/packages/lowcoder-design/src/icons/remix/video-ai-line.svg new file mode 100644 index 0000000000..7ca98a6d13 --- /dev/null +++ b/client/packages/lowcoder-design/src/icons/remix/video-ai-line.svg @@ -0,0 +1 @@ +<svg viewBox="0 0 24 24" fill="currentColor" xmlns="http://www.w3.org/2000/svg"><path d="M19.7134 8.12811L19.4668 8.69379C19.2864 9.10792 18.7136 9.10792 18.5331 8.69379L18.2866 8.12811C17.8471 7.11947 17.0555 6.31641 16.0677 5.87708L15.308 5.53922C14.8973 5.35653 14.8973 4.75881 15.308 4.57612L16.0252 4.25714C17.0384 3.80651 17.8442 2.97373 18.2761 1.93083L18.5293 1.31953C18.7058 0.893489 19.2942 0.893489 19.4706 1.31953L19.7238 1.93083C20.1558 2.97373 20.9616 3.80651 21.9748 4.25714L22.6919 4.57612C23.1027 4.75881 23.1027 5.35653 22.6919 5.53922L21.9323 5.87708C20.9445 6.31641 20.1529 7.11947 19.7134 8.12811ZM3.9934 3H13V5H5V19H19V11H21V20.0066C21 20.5552 20.5551 21 20.0066 21H3.9934C3.44476 21 3 20.5551 3 20.0066V3.9934C3 3.44476 3.44495 3 3.9934 3ZM10.6219 8.41459L15.5008 11.6672C15.6846 11.7897 15.7343 12.0381 15.6117 12.2219C15.5824 12.2658 15.5447 12.3035 15.5008 12.3328L10.6219 15.5854C10.4381 15.708 10.1897 15.6583 10.0672 15.4745C10.0234 15.4088 10 15.3316 10 15.2526V8.74741C10 8.52649 10.1791 8.34741 10.4 8.34741C10.479 8.34741 10.5562 8.37078 10.6219 8.41459Z"/></svg> \ No newline at end of file diff --git a/client/packages/lowcoder-design/src/icons/remix/video-off-fill.svg b/client/packages/lowcoder-design/src/icons/remix/video-off-fill.svg new file mode 100644 index 0000000000..93514eda3c --- /dev/null +++ b/client/packages/lowcoder-design/src/icons/remix/video-off-fill.svg @@ -0,0 +1 @@ +<svg viewBox="0 0 24 24" fill="currentColor" xmlns="http://www.w3.org/2000/svg"><path d="M17 18.4142L21.1925 22.6067L22.6067 21.1925L2.80769 1.39349L1.39348 2.80771L2.58579 4.00001H2C1.44772 4.00001 1 4.44773 1 5.00001V19C1 19.5523 1.44772 20 2 20H16C16.5523 20 17 19.5523 17 19V18.4142ZM16 4.00001H8.21402L22.7083 18.4943C22.8805 18.4153 23 18.2415 23 18.0397V5.96034C23 5.85776 22.9684 5.75765 22.9096 5.67361C22.7513 5.44739 22.4395 5.39237 22.2133 5.55073L17 9.20001V5.00001C17 4.44773 16.5523 4.00001 16 4.00001Z"/></svg> \ No newline at end of file diff --git a/client/packages/lowcoder-design/src/icons/remix/video-off-line.svg b/client/packages/lowcoder-design/src/icons/remix/video-off-line.svg new file mode 100644 index 0000000000..36c718741d --- /dev/null +++ b/client/packages/lowcoder-design/src/icons/remix/video-off-line.svg @@ -0,0 +1 @@ +<svg viewBox="0 0 24 24" fill="currentColor" xmlns="http://www.w3.org/2000/svg"><path d="M17 18.4142L21.1925 22.6067L22.6067 21.1925L2.80769 1.39349L1.39348 2.80771L2.58579 4.00001H2C1.44772 4.00001 1 4.44773 1 5.00001V19C1 19.5523 1.44772 20 2 20H16C16.5523 20 17 19.5523 17 19V18.4142ZM15 16.4142V18H3V6.00001H4.58579L15 16.4142ZM23 18.0397C23 18.2517 22.875 18.4176 22.7083 18.4943L21 16.786V8.84133L17 11.6413V12.786L15 10.786V6.00001H10.214L8.21402 4.00001H16C16.5523 4.00001 17 4.44773 17 5.00001V9.20001L22.2133 5.55073C22.5447 5.31876 23 5.55583 23 5.96034V18.0397Z"/></svg> \ No newline at end of file diff --git a/client/packages/lowcoder-design/src/icons/remix/video-on-ai-fill.svg b/client/packages/lowcoder-design/src/icons/remix/video-on-ai-fill.svg new file mode 100644 index 0000000000..4f83309162 --- /dev/null +++ b/client/packages/lowcoder-design/src/icons/remix/video-on-ai-fill.svg @@ -0,0 +1 @@ +<svg viewBox="0 0 24 24" fill="currentColor" xmlns="http://www.w3.org/2000/svg"><path d="M4.7134 9.12811L4.46682 9.69379C4.28637 10.1079 3.71357 10.1079 3.53312 9.69379L3.28656 9.12811C2.84706 8.11947 2.05545 7.31641 1.06767 6.87708L0.308047 6.53922C-0.102682 6.35653 -0.102682 5.75881 0.308047 5.57612L1.0252 5.25714C2.03838 4.80651 2.84417 3.97373 3.27612 2.93083L3.52932 2.31953C3.70578 1.89349 4.29417 1.89349 4.47063 2.31953L4.72382 2.93083C5.15577 3.97373 5.96158 4.80651 6.9748 5.25714L7.69188 5.57612C8.10271 5.75881 8.10271 6.35653 7.69188 6.53922L6.93228 6.87708C5.94451 7.31641 5.15288 8.11947 4.7134 9.12811ZM10 6C10 9.31371 7.31371 12 4 12C2.90714 12 1.88252 11.7078 1 11.1973V19C1 19.5523 1.44772 20 2 20H16C16.5523 20 17 19.5523 17 19V14.8L22.2133 18.4493C22.2973 18.5081 22.3974 18.5397 22.5 18.5397C22.7761 18.5397 23 18.3158 23 18.0397V5.96033C23 5.85774 22.9684 5.75764 22.9096 5.6736C22.7513 5.44737 22.4395 5.39235 22.2133 5.55071L17 9.2V5C17 4.44772 16.5523 4 16 4H9.65859C9.87969 4.62556 10 5.29873 10 6Z"/></svg> \ No newline at end of file diff --git a/client/packages/lowcoder-design/src/icons/remix/video-on-ai-line.svg b/client/packages/lowcoder-design/src/icons/remix/video-on-ai-line.svg new file mode 100644 index 0000000000..a56067dadc --- /dev/null +++ b/client/packages/lowcoder-design/src/icons/remix/video-on-ai-line.svg @@ -0,0 +1 @@ +<svg viewBox="0 0 24 24" fill="currentColor" xmlns="http://www.w3.org/2000/svg"><path d="M4.7134 9.12811L4.46682 9.69379C4.28637 10.1079 3.71357 10.1079 3.53312 9.69379L3.28656 9.12811C2.84706 8.11947 2.05545 7.31641 1.06767 6.87708L0.308047 6.53922C-0.102682 6.35653 -0.102682 5.75881 0.308047 5.57612L1.0252 5.25714C2.03838 4.80651 2.84417 3.97373 3.27612 2.93083L3.52932 2.31953C3.70578 1.89349 4.29417 1.89349 4.47063 2.31953L4.72382 2.93083C5.15577 3.97373 5.96158 4.80651 6.9748 5.25714L7.69188 5.57612C8.10271 5.75881 8.10271 6.35653 7.69188 6.53922L6.93228 6.87708C5.94451 7.31641 5.15288 8.11947 4.7134 9.12811ZM1 19V12H3V18H15V6H10V4H16C16.5523 4 17 4.44772 17 5V9.2L22.2133 5.55071C22.4395 5.39235 22.7513 5.44737 22.9096 5.6736C22.9684 5.75764 23 5.85774 23 5.96033V18.0397C23 18.3158 22.7761 18.5397 22.5 18.5397C22.3974 18.5397 22.2973 18.5081 22.2133 18.4493L17 14.8V19C17 19.5523 16.5523 20 16 20H2C1.44772 20 1 19.5523 1 19ZM17 12.3587L21 15.1587V8.84131L17 11.6413V12.3587Z"/></svg> \ No newline at end of file diff --git a/client/packages/lowcoder-design/src/icons/remix/video-on-fill.svg b/client/packages/lowcoder-design/src/icons/remix/video-on-fill.svg new file mode 100644 index 0000000000..631f6065e3 --- /dev/null +++ b/client/packages/lowcoder-design/src/icons/remix/video-on-fill.svg @@ -0,0 +1 @@ +<svg viewBox="0 0 24 24" fill="currentColor" xmlns="http://www.w3.org/2000/svg"><path d="M17 9.2L22.2133 5.55071C22.4395 5.39235 22.7513 5.44737 22.9096 5.6736C22.9684 5.75764 23 5.85774 23 5.96033V18.0397C23 18.3158 22.7761 18.5397 22.5 18.5397C22.3974 18.5397 22.2973 18.5081 22.2133 18.4493L17 14.8V19C17 19.5523 16.5523 20 16 20H2C1.44772 20 1 19.5523 1 19V5C1 4.44772 1.44772 4 2 4H16C16.5523 4 17 4.44772 17 5V9.2Z"/></svg> \ No newline at end of file diff --git a/client/packages/lowcoder-design/src/icons/remix/video-on-line.svg b/client/packages/lowcoder-design/src/icons/remix/video-on-line.svg new file mode 100644 index 0000000000..cec745d019 --- /dev/null +++ b/client/packages/lowcoder-design/src/icons/remix/video-on-line.svg @@ -0,0 +1 @@ +<svg viewBox="0 0 24 24" fill="currentColor" xmlns="http://www.w3.org/2000/svg"><path d="M17 9.2L22.2133 5.55071C22.4395 5.39235 22.7513 5.44737 22.9096 5.6736C22.9684 5.75764 23 5.85774 23 5.96033V18.0397C23 18.3158 22.7761 18.5397 22.5 18.5397C22.3974 18.5397 22.2973 18.5081 22.2133 18.4493L17 14.8V19C17 19.5523 16.5523 20 16 20H2C1.44772 20 1 19.5523 1 19V5C1 4.44772 1.44772 4 2 4H16C16.5523 4 17 4.44772 17 5V9.2ZM17 12.3587L21 15.1587V8.84131L17 11.6413V12.3587ZM3 6V18H15V6H3Z"/></svg> \ No newline at end of file diff --git a/client/packages/lowcoder-design/src/icons/remix/vip-crown-2-line.svg b/client/packages/lowcoder-design/src/icons/remix/vip-crown-2-line.svg index b88ede5c83..2f62c57320 100644 --- a/client/packages/lowcoder-design/src/icons/remix/vip-crown-2-line.svg +++ b/client/packages/lowcoder-design/src/icons/remix/vip-crown-2-line.svg @@ -1 +1 @@ -<svg viewBox="0 0 24 24" fill="currentColor" xmlns="http://www.w3.org/2000/svg"><path d="M3.49709 8.06467L4.78355 18.9996H19.2266L20.513 8.06467L16.5032 10.7379L12.0051 4.44054L7.50694 10.7379L3.49709 8.06467ZM2.80577 5.20009L7.00505 7.99961L11.1913 2.13884C11.5123 1.68943 12.1369 1.58534 12.5863 1.90635C12.6761 1.97049 12.7546 2.04905 12.8188 2.13884L17.0051 7.99961L21.2043 5.20009C21.6639 4.89374 22.2847 5.01791 22.5911 5.47744C22.7228 5.67506 22.7799 5.91311 22.7522 6.14898L21.109 20.1165C21.0497 20.6201 20.6229 20.9996 20.1158 20.9996H3.8943C3.38722 20.9996 2.9604 20.6201 2.90115 20.1165L1.25792 6.14898C1.19339 5.60048 1.58573 5.10352 2.13423 5.03899C2.37011 5.01124 2.60816 5.06835 2.80577 5.20009ZM12.0051 14.9996C10.9005 14.9996 10.0051 14.1042 10.0051 12.9996C10.0051 11.895 10.9005 10.9996 12.0051 10.9996C13.1096 10.9996 14.0051 11.895 14.0051 12.9996C14.0051 14.1042 13.1096 14.9996 12.0051 14.9996Z"/></svg> \ No newline at end of file +<svg viewBox="0 0 24 24" fill="currentColor" xmlns="http://www.w3.org/2000/svg"><path d="M3.49709 8.06464L4.78355 18.9996H19.2266L20.513 8.06464L16.5032 10.7379L12.0051 4.44051L7.50694 10.7379L3.49709 8.06464ZM2.80577 5.20006L7.00505 7.99958L11.1913 2.13881C11.5123 1.6894 12.1369 1.58531 12.5863 1.90631C12.6761 1.97045 12.7546 2.04901 12.8188 2.13881L17.0051 7.99958L21.2043 5.20006C21.6639 4.89371 22.2847 5.01788 22.5911 5.47741C22.7228 5.67503 22.7799 5.91308 22.7522 6.14895L21.109 20.1164C21.0497 20.62 20.6229 20.9996 20.1158 20.9996H3.8943C3.38722 20.9996 2.9604 20.62 2.90115 20.1164L1.25792 6.14895C1.19339 5.60045 1.58573 5.10349 2.13423 5.03896C2.37011 5.01121 2.60816 5.06832 2.80577 5.20006ZM12.0051 14.9996C10.9005 14.9996 10.0051 14.1042 10.0051 12.9996C10.0051 11.895 10.9005 10.9996 12.0051 10.9996C13.1096 10.9996 14.0051 11.895 14.0051 12.9996C14.0051 14.1042 13.1096 14.9996 12.0051 14.9996Z"/></svg> \ No newline at end of file diff --git a/client/packages/lowcoder-design/src/icons/remix/voice-ai-fill.svg b/client/packages/lowcoder-design/src/icons/remix/voice-ai-fill.svg new file mode 100644 index 0000000000..8d4fcac83d --- /dev/null +++ b/client/packages/lowcoder-design/src/icons/remix/voice-ai-fill.svg @@ -0,0 +1 @@ +<svg viewBox="0 0 24 24" fill="currentColor" xmlns="http://www.w3.org/2000/svg"><path d="M20.7134 7.12811L20.4668 7.69379C20.2864 8.10792 19.7136 8.10792 19.5331 7.69379L19.2866 7.12811C18.8471 6.11947 18.0555 5.31641 17.0677 4.87708L16.308 4.53922C15.8973 4.35653 15.8973 3.75881 16.308 3.57612L17.0252 3.25714C18.0384 2.80651 18.8442 1.97373 19.2761 0.930828L19.5293 0.319534C19.7058 -0.106511 20.2942 -0.106511 20.4706 0.319534L20.7238 0.930828C21.1558 1.97373 21.9616 2.80651 22.9748 3.25714L23.6919 3.57612C24.1027 3.75881 24.1027 4.35653 23.6919 4.53922L22.9323 4.87708C21.9445 5.31641 21.1529 6.11947 20.7134 7.12811ZM8.5 6H6.5V18H8.5V6ZM4 10H2V14H4V10ZM13 2H11V22H13V2ZM17.5 8H15.5V18H17.5V8ZM22 10H20V14H22V10Z"/></svg> \ No newline at end of file diff --git a/client/packages/lowcoder-design/src/icons/remix/voice-ai-line.svg b/client/packages/lowcoder-design/src/icons/remix/voice-ai-line.svg new file mode 100644 index 0000000000..8d4fcac83d --- /dev/null +++ b/client/packages/lowcoder-design/src/icons/remix/voice-ai-line.svg @@ -0,0 +1 @@ +<svg viewBox="0 0 24 24" fill="currentColor" xmlns="http://www.w3.org/2000/svg"><path d="M20.7134 7.12811L20.4668 7.69379C20.2864 8.10792 19.7136 8.10792 19.5331 7.69379L19.2866 7.12811C18.8471 6.11947 18.0555 5.31641 17.0677 4.87708L16.308 4.53922C15.8973 4.35653 15.8973 3.75881 16.308 3.57612L17.0252 3.25714C18.0384 2.80651 18.8442 1.97373 19.2761 0.930828L19.5293 0.319534C19.7058 -0.106511 20.2942 -0.106511 20.4706 0.319534L20.7238 0.930828C21.1558 1.97373 21.9616 2.80651 22.9748 3.25714L23.6919 3.57612C24.1027 3.75881 24.1027 4.35653 23.6919 4.53922L22.9323 4.87708C21.9445 5.31641 21.1529 6.11947 20.7134 7.12811ZM8.5 6H6.5V18H8.5V6ZM4 10H2V14H4V10ZM13 2H11V22H13V2ZM17.5 8H15.5V18H17.5V8ZM22 10H20V14H22V10Z"/></svg> \ No newline at end of file diff --git a/client/packages/lowcoder-design/src/icons/remix/volume-down-fill.svg b/client/packages/lowcoder-design/src/icons/remix/volume-down-fill.svg index a75bc551e1..0f5ee10cef 100644 --- a/client/packages/lowcoder-design/src/icons/remix/volume-down-fill.svg +++ b/client/packages/lowcoder-design/src/icons/remix/volume-down-fill.svg @@ -1 +1 @@ -<svg viewBox="0 0 24 24" fill="currentColor" xmlns="http://www.w3.org/2000/svg"><path d="M8.88889 16H5C4.44772 16 4 15.5523 4 15V9.00001C4 8.44772 4.44772 8.00001 5 8.00001H8.88889L14.1834 3.66815C14.3971 3.49329 14.7121 3.52479 14.887 3.73851C14.9601 3.82784 15 3.93971 15 4.05513V19.9449C15 20.221 14.7761 20.4449 14.5 20.4449C14.3846 20.4449 14.2727 20.405 14.1834 20.3319L8.88889 16ZM18.8631 16.5911L17.4411 15.169C18.3892 14.4376 19 13.2901 19 12C19 10.5697 18.2493 9.31469 17.1203 8.6076L18.5589 7.169C20.0396 8.2616 21 10.0187 21 12C21 13.8422 20.1698 15.4904 18.8631 16.5911Z"/></svg> \ No newline at end of file +<svg viewBox="0 0 24 24" fill="currentColor" xmlns="http://www.w3.org/2000/svg"><path d="M8.88889 16.0001H5C4.44772 16.0001 4 15.5524 4 15.0001V9.00007C4 8.44778 4.44772 8.00007 5 8.00007H8.88889L14.1834 3.66821C14.3971 3.49335 14.7121 3.52485 14.887 3.73857C14.9601 3.8279 15 3.93977 15 4.05519V19.9449C15 20.2211 14.7761 20.4449 14.5 20.4449C14.3846 20.4449 14.2727 20.405 14.1834 20.3319L8.88889 16.0001ZM18.8631 16.5911L17.4411 15.1691C18.3892 14.4376 19 13.2902 19 12.0001C19 10.5697 18.2493 9.31476 17.1203 8.60766L18.5589 7.16906C20.0396 8.26166 21 10.0187 21 12.0001C21 13.8422 20.1698 15.4905 18.8631 16.5911Z"/></svg> \ No newline at end of file diff --git a/client/packages/lowcoder-design/src/icons/remix/volume-down-line.svg b/client/packages/lowcoder-design/src/icons/remix/volume-down-line.svg index 82285d9e02..5c495eaabf 100644 --- a/client/packages/lowcoder-design/src/icons/remix/volume-down-line.svg +++ b/client/packages/lowcoder-design/src/icons/remix/volume-down-line.svg @@ -1 +1 @@ -<svg viewBox="0 0 24 24" fill="currentColor" xmlns="http://www.w3.org/2000/svg"><path d="M13 7.22049L9.60282 10H6V14H9.60282L13 16.7795V7.22049ZM8.88889 16H5C4.44772 16 4 15.5523 4 15V9.00001C4 8.44772 4.44772 8.00001 5 8.00001H8.88889L14.1834 3.66815C14.3971 3.49329 14.7121 3.52479 14.887 3.73851C14.9601 3.82784 15 3.93971 15 4.05513V19.9449C15 20.221 14.7761 20.4449 14.5 20.4449C14.3846 20.4449 14.2727 20.405 14.1834 20.3319L8.88889 16ZM18.8631 16.5911L17.4411 15.169C18.3892 14.4376 19 13.2901 19 12C19 10.5697 18.2493 9.31469 17.1203 8.6076L18.5589 7.169C20.0396 8.2616 21 10.0187 21 12C21 13.8422 20.1698 15.4904 18.8631 16.5911Z"/></svg> \ No newline at end of file +<svg viewBox="0 0 24 24" fill="currentColor" xmlns="http://www.w3.org/2000/svg"><path d="M13 7.22056L9.60282 10.0001H6V14.0001H9.60282L13 16.7796V7.22056ZM8.88889 16.0001H5C4.44772 16.0001 4 15.5524 4 15.0001V9.00007C4 8.44778 4.44772 8.00007 5 8.00007H8.88889L14.1834 3.66821C14.3971 3.49335 14.7121 3.52485 14.887 3.73857C14.9601 3.8279 15 3.93977 15 4.05519V19.9449C15 20.2211 14.7761 20.4449 14.5 20.4449C14.3846 20.4449 14.2727 20.405 14.1834 20.3319L8.88889 16.0001ZM18.8631 16.5911L17.4411 15.1691C18.3892 14.4376 19 13.2902 19 12.0001C19 10.5697 18.2493 9.31476 17.1203 8.60766L18.5589 7.16906C20.0396 8.26166 21 10.0187 21 12.0001C21 13.8422 20.1698 15.4905 18.8631 16.5911Z"/></svg> \ No newline at end of file diff --git a/client/packages/lowcoder-design/src/icons/remix/volume-mute-fill.svg b/client/packages/lowcoder-design/src/icons/remix/volume-mute-fill.svg index 4f4219c048..5b53f7f8af 100644 --- a/client/packages/lowcoder-design/src/icons/remix/volume-mute-fill.svg +++ b/client/packages/lowcoder-design/src/icons/remix/volume-mute-fill.svg @@ -1 +1 @@ -<svg viewBox="0 0 24 24" fill="currentColor" xmlns="http://www.w3.org/2000/svg"><path d="M5.88889 16H2C1.44772 16 1 15.5523 1 15V9.00001C1 8.44772 1.44772 8.00001 2 8.00001H5.88889L11.1834 3.66815C11.3971 3.49329 11.7121 3.52479 11.887 3.73851C11.9601 3.82784 12 3.93971 12 4.05513V19.9449C12 20.221 11.7761 20.4449 11.5 20.4449C11.3846 20.4449 11.2727 20.405 11.1834 20.3319L5.88889 16ZM20.4142 12L23.9497 15.5355L22.5355 16.9498L19 13.4142L15.4645 16.9498L14.0503 15.5355L17.5858 12L14.0503 8.46447L15.4645 7.05026L19 10.5858L22.5355 7.05026L23.9497 8.46447L20.4142 12Z"/></svg> \ No newline at end of file +<svg viewBox="0 0 24 24" fill="currentColor" xmlns="http://www.w3.org/2000/svg"><path d="M5.88889 16.0001H2C1.44772 16.0001 1 15.5524 1 15.0001V9.00007C1 8.44778 1.44772 8.00007 2 8.00007H5.88889L11.1834 3.66821C11.3971 3.49335 11.7121 3.52485 11.887 3.73857C11.9601 3.8279 12 3.93977 12 4.05519V19.9449C12 20.2211 11.7761 20.4449 11.5 20.4449C11.3846 20.4449 11.2727 20.405 11.1834 20.3319L5.88889 16.0001ZM20.4142 12.0001L23.9497 15.5356L22.5355 16.9498L19 13.4143L15.4645 16.9498L14.0503 15.5356L17.5858 12.0001L14.0503 8.46454L15.4645 7.05032L19 10.5859L22.5355 7.05032L23.9497 8.46454L20.4142 12.0001Z"/></svg> \ No newline at end of file diff --git a/client/packages/lowcoder-design/src/icons/remix/volume-mute-line.svg b/client/packages/lowcoder-design/src/icons/remix/volume-mute-line.svg index 0982be3d1c..61718751a9 100644 --- a/client/packages/lowcoder-design/src/icons/remix/volume-mute-line.svg +++ b/client/packages/lowcoder-design/src/icons/remix/volume-mute-line.svg @@ -1 +1 @@ -<svg viewBox="0 0 24 24" fill="currentColor" xmlns="http://www.w3.org/2000/svg"><path d="M10 7.22049L6.60282 10H3V14H6.60282L10 16.7795V7.22049ZM5.88889 16H2C1.44772 16 1 15.5523 1 15V9.00001C1 8.44772 1.44772 8.00001 2 8.00001H5.88889L11.1834 3.66815C11.3971 3.49329 11.7121 3.52479 11.887 3.73851C11.9601 3.82784 12 3.93971 12 4.05513V19.9449C12 20.221 11.7761 20.4449 11.5 20.4449C11.3846 20.4449 11.2727 20.405 11.1834 20.3319L5.88889 16ZM20.4142 12L23.9497 15.5355L22.5355 16.9498L19 13.4142L15.4645 16.9498L14.0503 15.5355L17.5858 12L14.0503 8.46447L15.4645 7.05026L19 10.5858L22.5355 7.05026L23.9497 8.46447L20.4142 12Z"/></svg> \ No newline at end of file +<svg viewBox="0 0 24 24" fill="currentColor" xmlns="http://www.w3.org/2000/svg"><path d="M10 7.22056L6.60282 10.0001H3V14.0001H6.60282L10 16.7796V7.22056ZM5.88889 16.0001H2C1.44772 16.0001 1 15.5524 1 15.0001V9.00007C1 8.44778 1.44772 8.00007 2 8.00007H5.88889L11.1834 3.66821C11.3971 3.49335 11.7121 3.52485 11.887 3.73857C11.9601 3.8279 12 3.93977 12 4.05519V19.9449C12 20.2211 11.7761 20.4449 11.5 20.4449C11.3846 20.4449 11.2727 20.405 11.1834 20.3319L5.88889 16.0001ZM20.4142 12.0001L23.9497 15.5356L22.5355 16.9498L19 13.4143L15.4645 16.9498L14.0503 15.5356L17.5858 12.0001L14.0503 8.46454L15.4645 7.05032L19 10.5859L22.5355 7.05032L23.9497 8.46454L20.4142 12.0001Z"/></svg> \ No newline at end of file diff --git a/client/packages/lowcoder-design/src/icons/remix/webhook-fill.svg b/client/packages/lowcoder-design/src/icons/remix/webhook-fill.svg new file mode 100644 index 0000000000..f095685347 --- /dev/null +++ b/client/packages/lowcoder-design/src/icons/remix/webhook-fill.svg @@ -0,0 +1 @@ +<svg viewBox="0 0 24 24" fill="currentColor" xmlns="http://www.w3.org/2000/svg"><path d="M13.5011 4.39885C14.7217 5.10357 15.2612 6.53847 14.8826 7.83501L16.8025 8.3956C17.4334 6.23483 16.5385 3.8431 14.5011 2.6668C12.1096 1.28609 9.05169 2.10547 7.67098 4.49693C6.4615 6.59181 6.94024 9.19811 8.68509 10.7404L6.80304 14.0002L6.7998 14.0002C5.69524 14.0002 4.7998 14.8957 4.7998 16.0002C4.7998 17.1048 5.69524 18.0002 6.7998 18.0002C7.90437 18.0002 8.7998 17.1048 8.7998 16.0002C8.7998 15.8408 8.78115 15.6857 8.7459 15.537C8.66351 15.1896 8.64362 14.8123 8.82215 14.503L11.3671 10.095L10.5011 9.59501C9.06623 8.76658 8.5746 6.93181 9.40303 5.49693C10.2315 4.06205 12.0662 3.57043 13.5011 4.39885ZM15.0313 18.0802C15.9648 19.0563 17.4772 19.3066 18.6978 18.6018C20.1327 17.7734 20.6243 15.9387 19.7959 14.5038C18.9675 13.0689 17.1327 12.5773 15.6978 13.4057L14.8318 13.9057L12.2864 9.49688C12.1079 9.18768 11.7711 9.01623 11.4291 8.91386C11.2827 8.87005 11.1391 8.80868 11.0011 8.72897C10.0445 8.17668 9.71673 6.9535 10.269 5.99692C10.8213 5.04033 12.0445 4.71258 13.0011 5.26487C13.9577 5.81715 14.2854 7.04033 13.7331 7.99692L13.7314 7.99981L15.6139 11.2603C17.822 10.5203 20.3185 11.4089 21.528 13.5038C22.9087 15.8952 22.0893 18.9532 19.6978 20.3339C17.6604 21.5102 15.1417 21.0893 13.5859 19.4625L15.0313 18.0802ZM3.7998 16.0005C3.7998 14.5911 4.77271 13.4064 6.08484 13.086L5.61041 11.1431C3.42366 11.677 1.7998 13.6479 1.7998 16.0005C1.7998 18.7619 4.03838 21.0005 6.7998 21.0005C9.21876 21.0005 11.2365 19.2827 11.6998 17.0005H15.4641L15.4658 17.0036C16.0181 17.9602 17.2413 18.2879 18.1979 17.7356C19.1545 17.1833 19.4822 15.9602 18.9299 15.0036C18.3776 14.047 17.1545 13.7192 16.1979 14.2715C16.0598 14.3512 15.9349 14.4449 15.8238 14.5497C15.5642 14.7947 15.2474 15.0005 14.8904 15.0005H9.7998V16.0005C9.7998 17.6574 8.45666 19.0005 6.7998 19.0005C5.14295 19.0005 3.7998 17.6574 3.7998 16.0005Z"/></svg> \ No newline at end of file diff --git a/client/packages/lowcoder-design/src/icons/remix/webhook-line.svg b/client/packages/lowcoder-design/src/icons/remix/webhook-line.svg new file mode 100644 index 0000000000..925735cab4 --- /dev/null +++ b/client/packages/lowcoder-design/src/icons/remix/webhook-line.svg @@ -0,0 +1 @@ +<svg viewBox="0 0 24 24" fill="currentColor" xmlns="http://www.w3.org/2000/svg"><path d="M8.86874 14.1392C8.6556 14.4912 8.55014 14.7778 8.72043 15.2253C9.1905 16.4613 8.52737 17.664 7.28097 17.9905C6.10556 18.2985 4.96035 17.526 4.72713 16.2676C4.52048 15.1537 5.38488 14.0617 6.61294 13.8877C6.67963 13.8781 6.74717 13.874 6.83351 13.8688C6.88044 13.866 6.93293 13.8628 6.99384 13.8582L8.86194 10.7257C7.687 9.55742 6.98767 8.19164 7.14246 6.49936C7.25188 5.30308 7.72226 4.26933 8.58208 3.42201C10.2288 1.79945 12.7411 1.53667 14.68 2.78212C16.5423 3.97841 17.3951 6.30867 16.6681 8.30311L14.9611 7.84C15.1895 6.73115 15.0206 5.73536 14.2727 4.88234C13.7786 4.31914 13.1446 4.02394 12.4236 3.91516C10.9783 3.69681 9.55922 4.6254 9.13816 6.04399C8.66019 7.65406 9.38355 8.96924 11.3603 9.96029C10.5311 11.3541 9.70859 12.7518 8.86874 14.1392ZM13.7838 8.27337C14.3816 9.32798 14.9886 10.3986 15.5902 11.4593C18.631 10.5186 20.9237 12.2018 21.7462 14.004C22.7396 16.1809 22.0605 18.7593 20.1094 20.1023C18.1067 21.481 15.5741 21.2454 13.7997 19.4744L15.1919 18.3094C16.9444 19.4445 18.4772 19.3911 19.6151 18.047C20.5855 16.9003 20.5644 15.1906 19.5659 14.068C18.4136 12.7726 16.8701 12.7331 15.0044 13.9767C14.2305 12.6037 13.443 11.2413 12.6936 9.85845C12.4409 9.39233 12.1618 9.12196 11.5923 9.0233C10.6411 8.85839 10.027 8.04157 9.99016 7.12642C9.95395 6.22138 10.4871 5.4033 11.3205 5.08455C12.146 4.7688 13.1148 5.02367 13.6701 5.72554C14.1239 6.29901 14.2681 6.94443 14.0293 7.65167C13.9843 7.7852 13.9304 7.91584 13.8713 8.05885C13.8431 8.12694 13.8138 8.19801 13.7838 8.27337ZM11.552 16.895H15.2126C15.2636 16.963 15.3113 17.0303 15.3579 17.0959C15.4551 17.233 15.5474 17.3632 15.6551 17.4788C16.4304 18.3077 17.7395 18.3489 18.5682 17.5795C19.4271 16.7821 19.466 15.4426 18.6544 14.6101C17.8602 13.7955 16.5029 13.7177 15.7655 14.5802C15.3176 15.1044 14.8586 15.166 14.2641 15.1567C12.7414 15.1332 11.2177 15.149 9.69524 15.149C9.79406 17.2909 8.98436 18.6255 7.37841 18.9424C5.80582 19.2528 4.3575 18.4504 3.84759 16.9864C3.26842 15.3229 3.98467 13.9925 6.05421 12.9366C5.89847 12.3725 5.74115 11.8016 5.58541 11.236C3.32977 11.7276 1.63749 13.916 1.8122 16.378C1.96652 18.5514 3.71968 20.4815 5.86369 20.8273C7.02819 21.0153 8.12233 20.82 9.13741 20.2442C10.4433 19.5032 11.2011 18.3381 11.552 16.895Z" fill="#231F20"/></svg> \ No newline at end of file diff --git a/client/packages/lowcoder-design/src/icons/remix/weight-fill.svg b/client/packages/lowcoder-design/src/icons/remix/weight-fill.svg new file mode 100644 index 0000000000..e7dbb5ed5c --- /dev/null +++ b/client/packages/lowcoder-design/src/icons/remix/weight-fill.svg @@ -0,0 +1 @@ +<svg viewBox="0 0 24 24" fill="currentColor" xmlns="http://www.w3.org/2000/svg"><path d="M14.0004 6C14.0004 7.10457 13.1049 8 12.0004 8C10.8958 8 10.0004 7.10457 10.0004 6C10.0004 4.89543 10.8958 4 12.0004 4C13.1049 4 14.0004 4.89543 14.0004 6ZM15.4652 8C15.8056 7.41165 16.0004 6.72857 16.0004 6C16.0004 3.79086 14.2095 2 12.0004 2C9.79122 2 8.00036 3.79086 8.00036 6C8.00036 6.72857 8.19515 7.41165 8.53549 8H5.06615C4.57888 8 4.16255 8.3512 4.08045 8.8315L2.2001 19.8315C2.0957 20.4423 2.56618 21 3.18581 21H20.8149C21.4345 21 21.905 20.4423 21.8006 19.8315L19.9203 8.8315C19.8382 8.3512 19.4218 8 18.9346 8H15.4652Z"/></svg> \ No newline at end of file diff --git a/client/packages/lowcoder-design/src/icons/remix/weight-line.svg b/client/packages/lowcoder-design/src/icons/remix/weight-line.svg new file mode 100644 index 0000000000..e1a5ee24f3 --- /dev/null +++ b/client/packages/lowcoder-design/src/icons/remix/weight-line.svg @@ -0,0 +1 @@ +<svg viewBox="0 0 24 24" fill="currentColor" xmlns="http://www.w3.org/2000/svg"><path d="M14.0004 6C14.0004 7.10457 13.1049 8 12.0004 8C10.8958 8 10.0004 7.10457 10.0004 6C10.0004 4.89543 10.8958 4 12.0004 4C13.1049 4 14.0004 4.89543 14.0004 6ZM15.4652 8C15.8056 7.41165 16.0004 6.72857 16.0004 6C16.0004 3.79086 14.2095 2 12.0004 2C9.79122 2 8.00036 3.79086 8.00036 6C8.00036 6.72857 8.19515 7.41165 8.53549 8H5.06615C4.57888 8 4.16255 8.3512 4.08045 8.8315L2.2001 19.8315C2.0957 20.4423 2.56618 21 3.18581 21H20.8149C21.4345 21 21.905 20.4423 21.8006 19.8315L19.9203 8.8315C19.8382 8.3512 19.4218 8 18.9346 8H15.4652ZM12.0004 10H18.091L19.6295 19H4.37125L5.90971 10H12.0004Z"/></svg> \ No newline at end of file diff --git a/client/packages/lowcoder-design/src/icons/v1/icon-application-marketplace.svg b/client/packages/lowcoder-design/src/icons/v1/icon-application-marketplace.svg index 4175130634..d5e51f61fe 100644 --- a/client/packages/lowcoder-design/src/icons/v1/icon-application-marketplace.svg +++ b/client/packages/lowcoder-design/src/icons/v1/icon-application-marketplace.svg @@ -1,16 +1,4 @@ <?xml version="1.0" encoding="UTF-8"?> -<svg width="20px" height="20px" viewBox="0 0 23 23" version="1.1" xmlns="http://www.w3.org/2000/svg"> - <defs> - <linearGradient id="icon-application-marketplace_svg__a" x1="50%" y1="1.89576049%" x2="50%" y2="94.4251638%"> - <stop stop-color="#5C6066" offset="0%"/> - <stop stop-color="#333740" offset="100%"/> - </linearGradient> - <linearGradient x1="50%" y1="1.89576049%" x2="50%" y2="94.4251638%"> - <stop stop-color="#6D83F2" offset="0%"/> - <stop stop-color="#4965F2" offset="100%"/> - </linearGradient> - </defs> - <g stroke="none" stroke-width="1" fill="none" fill-rule="evenodd"> - <path d="M2.7,9.45a4.235,4.235,0,0,0,.3.3V22a1,1,0,0,0,1,1H20a1,1,0,0,0,1-1V9.752a4.235,4.235,0,0,0,.3-.3,4,4,0,0,0,.731-3.456L20.97,1.758A1,1,0,0,0,20,1H4a1,1,0,0,0-.97.758L1.972,5.994A4,4,0,0,0,2.7,9.45ZM13,21H11V16h2Zm6,0H15V15a1,1,0,0,0-1-1H10a1,1,0,0,0-1,1v6H5V10.9A3.989,3.989,0,0,0,8.914,9.61c.026.03.053.059.08.089A4.086,4.086,0,0,0,12.041,11a4.039,4.039,0,0,0,2.965-1.3c.027-.03.054-.059.08-.089A3.989,3.989,0,0,0,19,10.9ZM3.911,6.479,4.781,3H19.219l.87,3.479A2.029,2.029,0,0,1,18.12,9,2.041,2.041,0,0,1,16.1,7.14l-.042-.5a1,1,0,0,0-1.993.166v0a2.006,2.006,0,0,1-.529,1.539A2.059,2.059,0,0,1,11.959,9,2.029,2.029,0,0,1,9.937,6.806v0a1,1,0,0,0-.914-1.079.989.989,0,0,0-1.079.913l-.042.5A2.041,2.041,0,0,1,5.88,9,2.029,2.029,0,0,1,3.911,6.479Z" fill="url(#icon-application-marketplace_svg__a)" fill-rule="nonzero" /> - </g> +<svg fill="currentColor" width="20px" height="20px" viewBox="0 0 23 23" version="1.1" xmlns="http://www.w3.org/2000/svg"> + <path d="M2.7,9.45a4.235,4.235,0,0,0,.3.3V22a1,1,0,0,0,1,1H20a1,1,0,0,0,1-1V9.752a4.235,4.235,0,0,0,.3-.3,4,4,0,0,0,.731-3.456L20.97,1.758A1,1,0,0,0,20,1H4a1,1,0,0,0-.97.758L1.972,5.994A4,4,0,0,0,2.7,9.45ZM13,21H11V16h2Zm6,0H15V15a1,1,0,0,0-1-1H10a1,1,0,0,0-1,1v6H5V10.9A3.989,3.989,0,0,0,8.914,9.61c.026.03.053.059.08.089A4.086,4.086,0,0,0,12.041,11a4.039,4.039,0,0,0,2.965-1.3c.027-.03.054-.059.08-.089A3.989,3.989,0,0,0,19,10.9ZM3.911,6.479,4.781,3H19.219l.87,3.479A2.029,2.029,0,0,1,18.12,9,2.041,2.041,0,0,1,16.1,7.14l-.042-.5a1,1,0,0,0-1.993.166v0a2.006,2.006,0,0,1-.529,1.539A2.059,2.059,0,0,1,11.959,9,2.029,2.029,0,0,1,9.937,6.806v0a1,1,0,0,0-.914-1.079.989.989,0,0,0-1.079.913l-.042.5A2.041,2.041,0,0,1,5.88,9,2.029,2.029,0,0,1,3.911,6.479Z" /> </svg> \ No newline at end of file diff --git a/client/packages/lowcoder/package.json b/client/packages/lowcoder/package.json index 4b2ba61554..86576c3eba 100644 --- a/client/packages/lowcoder/package.json +++ b/client/packages/lowcoder/package.json @@ -46,6 +46,7 @@ "copy-to-clipboard": "^3.3.3", "core-js": "^3.25.2", "echarts": "^5.4.3", + "echarts-for-react": "^3.0.2", "echarts-wordcloud": "^2.1.0", "eslint4b-prebuilt-2": "^7.32.0", "file-saver": "^2.0.5", @@ -61,6 +62,7 @@ "moment": "^2.29.4", "numbro": "^2.3.6", "papaparse": "^5.3.2", + "pigeon-maps": "^0.22.1", "qrcode.react": "^3.1.0", "rc-trigger": "^5.3.1", "react": "18.3.0", @@ -99,6 +101,7 @@ "sql-formatter": "^8.2.0", "styled-components": "^6.1.8", "stylis": "^4.1.1", + "supercluster": "^8.0.1", "tern": "^0.24.3", "typescript-collections": "^1.3.3", "ua-parser-js": "^1.0.33", @@ -120,6 +123,7 @@ "@types/react": "18", "@types/react-dom": "18", "@types/regenerator-runtime": "^0.13.1", + "@types/supercluster": "^7.1.3", "@types/uuid": "^8.3.4", "@vitejs/plugin-react": "^2.2.0", "dotenv": "^16.0.3", diff --git a/client/packages/lowcoder/src/api/enterpriseApi.ts b/client/packages/lowcoder/src/api/enterpriseApi.ts new file mode 100644 index 0000000000..c548eb53fa --- /dev/null +++ b/client/packages/lowcoder/src/api/enterpriseApi.ts @@ -0,0 +1,122 @@ +import axios from 'axios'; + +export interface FetchBrandingSettingPayload { + orgId?: string; + fallbackToGlobal?: boolean; +} +export interface BrandingSettings { + logo?: string | null; + squareLogo?: string | null; + mainBrandingColor?: string; + appHeaderColor?: string; + adminSidebarColor?: string; + adminSidebarFontColor?: string; + adminSidebarActiveBgColor?: string; + adminSidebarActiveFontColor?: string; + editorSidebarColor?: string; + editorSidebarFontColor?: string; + editorSidebarActiveBgColor?: string; + editorSidebarActiveFontColor?: string; + font?: string; + errorPageText?: string; + errorPageImage?: string | null; + signUpPageText?: string; + signUpPageImage?: string | null; + loggedOutPageText?: string; + loggedOutPageImage?: string | null; + standardDescription?: string; + standardTitle?: string; + showDocumentation?: boolean; + documentationLink?: string | null; + submitIssue?: boolean; + whatsNew?: boolean; + whatsNewLink?: string | null; +} +export interface BrandingConfig { + config_name?: string, + config_description?: string, + config_icon?: string, + config_set?: BrandingSettings, + orgId?: string, + user_id?: string, + id?: string, +} + +export interface BrandingSettingResponse extends BrandingConfig {}; + +export interface EnterpriseLicenseResponse { + eeActive: boolean; + remainingAPICalls: number; + eeLicenses: Array<{ + uuid: string; + issuedTo: string; + apiCallsLimit: number; + }>; +} + +// Existing functions +export const getEnterpriseLicense = async () => { + const response = await axios.get('/api/plugins/enterprise/license'); + return response.data; +}; + +export const getAuditLogs = async (params = {}) => { + const query = new URLSearchParams(params).toString(); + const response = await axios.get(`/api/plugins/enterprise/audit-logs${query ? `?${query}` : ''}`); + return response.data; +}; + +export const getAuditLogStatistics = async (params = {}) => { + const query = new URLSearchParams(params).toString(); + const response = await axios.get(`/api/plugins/enterprise/audit-logs/statistics?groupByParam=eventTypeId${query ? `&${query}` : ''}`); + return response.data; +}; + +export const getMeta = async (formData = {}) => { + const response = await axios.post(`/api/meta/`, formData); + return response.data; +} + +export const getEnvironmentsByIds = async (formData: string[] = []) => { + const response = await axios.post(`/api/plugins/enterprise/environments/byIds`, formData); + return response.data; +} + +export const getAppUsageLogs = async (params = {}) => { + const query = new URLSearchParams(params).toString(); + const response = await axios.get(`/api/plugins/enterprise/app-usage-logs${query ? `?${query}` : ''}`); + return response.data; +}; + +export const getAppUsageStatistics = async (groupByParam : string) => { + const response = await axios.get(`/api/plugins/enterprise/app-usage-logs/statistics?groupByParam=${groupByParam}`); + return response.data; +}; + + +export const getBranding = async (orgId: string = '') => { + const response = await axios.get('/api/plugins/enterprise/branding?orgId='+orgId); + const data = response.data; + if (Boolean(data.error)) { + return {}; + } + return { + ...data, + config_set: JSON.parse(data.config_set), + }; +}; + +export const createBranding = async (brandingData : any) => { + let response; + if (brandingData.id) { + response = await axios.put(`/api/plugins/enterprise/branding?brandId=${brandingData.id}`, brandingData); + } else { + response = await axios.post('/api/plugins/enterprise/branding', brandingData); + } + return response.data; +}; + +export const updateBranding = async (brandingData : any) => { + const response = await axios.put('/api/plugins/enterprise/branding', brandingData); + return response.data; +}; diff --git a/client/packages/lowcoder/src/api/materialApi.ts b/client/packages/lowcoder/src/api/materialApi.ts index 01700b1acf..51562d8e5c 100644 --- a/client/packages/lowcoder/src/api/materialApi.ts +++ b/client/packages/lowcoder/src/api/materialApi.ts @@ -10,6 +10,7 @@ interface UploadResponse { export enum MaterialUploadTypeEnum { LOGO = "LOGO", FAVICON = "FAVICON", + COMMON = "COMMON", } class MaterialApi extends Api { diff --git a/client/packages/lowcoder/src/api/subscriptionApi.ts b/client/packages/lowcoder/src/api/subscriptionApi.ts index 7e19c8f19d..db4599dc4b 100644 --- a/client/packages/lowcoder/src/api/subscriptionApi.ts +++ b/client/packages/lowcoder/src/api/subscriptionApi.ts @@ -140,7 +140,7 @@ export const searchCustomersSubscriptions = async (Customer: LowcoderSearchCusto } // Filter out entries with `"success": "false"` - const validEntries = result.data.filter((entry: any) => entry.success !== "false"); + const validEntries = result.data?.filter((entry: any) => entry.success !== "false"); // Flatten the data arrays and filter out duplicates by `id` const uniqueSubscriptions = Object.values( diff --git a/client/packages/lowcoder/src/app.tsx b/client/packages/lowcoder/src/app.tsx index 80429f66c3..60b6f4ddec 100644 --- a/client/packages/lowcoder/src/app.tsx +++ b/client/packages/lowcoder/src/app.tsx @@ -31,7 +31,7 @@ import { ADMIN_AUTH_URL, PUBLIC_APP_EDITOR_URL, } from "constants/routesURL"; -import React from "react"; +import React, { useMemo } from "react"; import { createRoot } from "react-dom/client"; import { Helmet } from "react-helmet"; import { connect, Provider } from "react-redux"; @@ -60,7 +60,10 @@ import GlobalInstances from 'components/GlobalInstances'; import { fetchHomeData, fetchServerSettingsAction } from "./redux/reduxActions/applicationActions"; import { getNpmPackageMeta } from "./comps/utils/remote"; import { packageMetaReadyAction, setLowcoderCompsLoading } from "./redux/reduxActions/npmPluginActions"; +import { fetchBrandingSetting } from "./redux/reduxActions/enterpriseActions"; +import { EnterpriseProvider } from "./util/context/EnterpriseContext"; import { SimpleSubscriptionContextProvider } from "./util/context/SimpleSubscriptionContext"; +import { getBrandingSetting } from "./redux/selectors/enterpriseSelectors"; const LazyUserAuthComp = React.lazy(() => import("pages/userAuth")); const LazyInviteLanding = React.lazy(() => import("pages/common/inviteLanding")); @@ -73,18 +76,39 @@ const LazyApplicationHome = React.lazy(() => import("pages/ApplicationV2")); const LazyDebugComp = React.lazy(() => import("./debug")); const LazyDebugNewComp = React.lazy(() => import("./debugNew")); -const Wrapper = (props: { children: React.ReactNode, language: string }) => ( - <ConfigProvider - theme={{ hashed: false }} - wave={{ disabled: true }} - locale={getAntdLocale(props.language)} - > - <App> - <GlobalInstances /> - {props.children} - </App> - </ConfigProvider> -); +const Wrapper = React.memo((props: { + children: React.ReactNode, + language: string, + fontFamily?: string +}) => { + const theme = useMemo(() => { + return { + hashed: false, + token: { + fontFamily: `${ + props.fontFamily + ? props.fontFamily.split('+').join(' ') + : `-apple-system, BlinkMacSystemFont, "Helvetica Neue", Arial, "Segoe UI", "PingFang SC", + "Microsoft Yahei", "Hiragino Sans GB", sans-serif, "Apple Color Emoji", "Segoe UI Emoji", + "Segoe UI Symbol", "Noto Color Emoji"` + }, sans-serif`, + }, + } + }, [props.fontFamily]); + + return ( + <ConfigProvider + theme={theme} + wave={{ disabled: true }} + locale={getAntdLocale(props.language)} + > + <App> + <GlobalInstances /> + {props.children} + </App> + </ConfigProvider> + ); +}); type AppIndexProps = { isFetchUserFinished: boolean; @@ -96,13 +120,16 @@ type AppIndexProps = { defaultHomePage: string | null | undefined; fetchHomeDataFinished: boolean; fetchConfig: (orgId?: string) => void; + fetchBrandingSetting: (orgId?: string) => void; fetchHomeData: (currentUserAnonymous?: boolean | undefined) => void; fetchLowcoderCompVersions: () => void; getCurrentUser: () => void; fetchServerSettings: () => void; favicon: string; brandName: string; + brandDescription: string; uiLanguage: string; + brandingFontFamily?: string; }; class AppIndex extends React.Component<AppIndexProps, any> { @@ -123,6 +150,7 @@ class AppIndex extends React.Component<AppIndexProps, any> { if (!this.props.currentUserAnonymous) { this.props.fetchHomeData(this.props.currentUserAnonymous); this.props.fetchLowcoderCompVersions(); + this.props.fetchBrandingSetting(this.props.currentOrgId); } } } @@ -152,11 +180,11 @@ class AppIndex extends React.Component<AppIndexProps, any> { localStorage.setItem('lowcoder_uiLanguage', this.props.uiLanguage); return ( - <Wrapper language={this.props.uiLanguage}> + <Wrapper language={this.props.uiLanguage} fontFamily={this.props.brandingFontFamily}> <Helmet> {<title>{this.props.brandName}</title>} {<link rel="icon" href={this.props.favicon} />} - <meta name="description" content={trans('productDesc')} /> + <meta name="description" content={this.props.brandDescription} /> <meta name="keywords" content="Lowcoder, Applications, App Builder, Internal Applications, Websites, Dashboards, Data Visualization, Customer Applications, CRM, ERP, eCommerce, VideoMeeting, Rapid Development" @@ -172,7 +200,7 @@ class AppIndex extends React.Component<AppIndexProps, any> { <meta key="og:description" property="og:description" - content={trans('productDesc')} + content={this.props.brandDescription} /> <meta key="og:image" @@ -195,7 +223,7 @@ class AppIndex extends React.Component<AppIndexProps, any> { <meta key="twitter:description" name="twitter:description" - content={trans('productDesc')} + content={this.props.brandDescription} /> <meta key="twitter:image" @@ -268,7 +296,7 @@ class AppIndex extends React.Component<AppIndexProps, any> { <meta key="iframely:description" property="iframely:description" - content={trans('productDesc')} + content={this.props.brandDescription} />, <link key="iframely" @@ -277,7 +305,8 @@ class AppIndex extends React.Component<AppIndexProps, any> { href={window.location.href} media="(aspect-ratio: 1280/720)" />, - + ]} + {((isLowCoderDomain || isLocalhost) && !Boolean(this.props.brandingFontFamily)) && [ <link key="preconnect-googleapis" rel="preconnect" @@ -295,6 +324,24 @@ class AppIndex extends React.Component<AppIndexProps, any> { rel="stylesheet" /> ]} + {Boolean(this.props.brandingFontFamily) && [ + <link + key="preconnect-googleapis" + rel="preconnect" + href="https://fonts.googleapis.com" + />, + <link + key="preconnect-gstatic" + rel="preconnect" + href="https://fonts.gstatic.com" + crossOrigin="anonymous" + />, + <link + key={this.props.brandingFontFamily} + href={`https://fonts.googleapis.com/css2?family=${this.props.brandingFontFamily}&display=swap`} + rel="stylesheet" + /> + ]} </Helmet> <SystemWarning /> <Router history={history}> @@ -443,8 +490,10 @@ const mapStateToProps = (state: AppState) => ({ favicon: getBrandingConfig(state)?.favicon ? buildMaterialPreviewURL(getBrandingConfig(state)?.favicon!) : favicon, - brandName: getBrandingConfig(state)?.brandName ?? trans("productName"), + brandName: getBrandingSetting(state)?.config_set?.standardTitle ?? trans("productName"), + brandDescription: getBrandingSetting(state)?.config_set?.standardDescription ?? trans('productDesc'), uiLanguage: state.ui.users.user.uiLanguage, + brandingFontFamily: getBrandingSetting(state)?.config_set?.font, }); const mapDispatchToProps = (dispatch: any) => ({ @@ -455,6 +504,7 @@ const mapDispatchToProps = (dispatch: any) => ({ fetchHomeData: (currentUserAnonymous: boolean | undefined) => { dispatch(fetchHomeData({})); }, + fetchBrandingSetting: (orgId?: string) => dispatch(fetchBrandingSetting({ orgId, fallbackToGlobal: true })), fetchLowcoderCompVersions: async () => { try { dispatch(setLowcoderCompsLoading(true)); @@ -482,7 +532,9 @@ export function bootstrap() { const root = createRoot(container!); root.render( <Provider store={reduxStore}> + <EnterpriseProvider> <AppIndexWithProps /> + </EnterpriseProvider> </Provider> ); } diff --git a/client/packages/lowcoder/src/components/BrandedIcon.tsx b/client/packages/lowcoder/src/components/BrandedIcon.tsx new file mode 100644 index 0000000000..254c324fdd --- /dev/null +++ b/client/packages/lowcoder/src/components/BrandedIcon.tsx @@ -0,0 +1,21 @@ +import { getBrandingSetting } from "@lowcoder-ee/redux/selectors/enterpriseSelectors"; +import { ReactNode } from "react"; +import { useSelector } from "react-redux"; +import { styled } from "styled-components"; + +const IconWrapper = styled.span<{$color?: string}>` + svg > path[fill-rule='evenodd'] { + ${props => props.$color && `fill: ${props.$color}` }; + } +`; + +export const BrandedIcon = (props: { + children: ReactNode, +}) => { + const brandingSettings = useSelector(getBrandingSetting); + return ( + <IconWrapper $color={brandingSettings?.config_set?.mainBrandingColor}> + {props.children} + </IconWrapper> + ); +}; diff --git a/client/packages/lowcoder/src/components/ErrorFallback.tsx b/client/packages/lowcoder/src/components/ErrorFallback.tsx new file mode 100644 index 0000000000..dc3e7a4be9 --- /dev/null +++ b/client/packages/lowcoder/src/components/ErrorFallback.tsx @@ -0,0 +1,71 @@ +import { ExclamationCircleFilled, WarningFilled } from "@ant-design/icons"; +import { ALL_APPLICATIONS_URL } from "@lowcoder-ee/constants/routesURL"; +import { getBrandingSetting } from "@lowcoder-ee/redux/selectors/enterpriseSelectors"; +import { buildMaterialPreviewURL } from "@lowcoder-ee/util/materialUtils"; +import Button from "antd/es/button"; +import Flex from "antd/es/flex"; +import { useMemo } from "react"; +import { useSelector } from "react-redux"; +import styled from "styled-components"; +import history from "util/history"; + +const StyledFlex = styled(Flex)` + height: 100vh; + width: 300px; + margin: 0 auto; +`; + +const StyledErrorImage = styled.img` + width: 300px; +`; + +const StyledErrorIcon = styled(ExclamationCircleFilled)` + svg { + width: 80px; + height: 80px; + color: #ff4d4f; + } +`; + +const StyledErrorText = styled.h2` + margin: 1rem 0; + text-align: center; +`; + +const DefaultErrorMessage = 'Something went wrong while displaying this webpage'; + +const ErrorFallback = (props: { + errorMessage?: string, +}) => { + const brandingSettings = useSelector(getBrandingSetting); + + const errorText = useMemo(() => { + if (props.errorMessage) return props.errorMessage; + if (brandingSettings?.config_set?.errorPageText) return brandingSettings?.config_set?.errorPageText; + return DefaultErrorMessage; + }, [props.errorMessage, brandingSettings?.config_set?.errorPageText]); + + const errorImage = useMemo(() => { + const imageUrl = brandingSettings?.config_set?.errorPageImage || ''; + if (Boolean(brandingSettings?.orgId)) { + return buildMaterialPreviewURL(imageUrl); + } + return imageUrl; + }, [brandingSettings?.orgId, brandingSettings?.config_set?.errorPageImage]); + + return ( + + <StyledFlex align="center" justify="center" vertical> + {Boolean(errorImage) && false + ? <StyledErrorImage src={errorImage} /> + : <StyledErrorIcon /> + } + <StyledErrorText>{errorText}</StyledErrorText> + <Button type="primary" onClick={() => history.push(ALL_APPLICATIONS_URL)}> + Go to Apps + </Button> + </StyledFlex> + ) +} + +export default ErrorFallback; \ No newline at end of file diff --git a/client/packages/lowcoder/src/components/JSLibraryModal.tsx b/client/packages/lowcoder/src/components/JSLibraryModal.tsx index 37b8b6efa4..34224677a4 100644 --- a/client/packages/lowcoder/src/components/JSLibraryModal.tsx +++ b/client/packages/lowcoder/src/components/JSLibraryModal.tsx @@ -273,7 +273,7 @@ export function JSLibraryModal(props: JSLibraryModalProps) { setInstallError(undefined); setURL(""); }} - destroyOnClose={true} + destroyOnHidden={true} showOkButton={false} showCancelButton={false} width="648px" diff --git a/client/packages/lowcoder/src/components/PermissionDialog/PermissionDialog.tsx b/client/packages/lowcoder/src/components/PermissionDialog/PermissionDialog.tsx index 0834cf2d9e..b3645f7887 100644 --- a/client/packages/lowcoder/src/components/PermissionDialog/PermissionDialog.tsx +++ b/client/packages/lowcoder/src/components/PermissionDialog/PermissionDialog.tsx @@ -65,7 +65,7 @@ export const PermissionDialog = (props: { return ( <StepModal open={visible} - destroyOnClose + destroyOnHidden onCancel={() => { setActiveStepKey("view"); onVisibleChange(false); diff --git a/client/packages/lowcoder/src/components/layout/Layout.tsx b/client/packages/lowcoder/src/components/layout/Layout.tsx index 0404658a6c..04acd92071 100644 --- a/client/packages/lowcoder/src/components/layout/Layout.tsx +++ b/client/packages/lowcoder/src/components/layout/Layout.tsx @@ -9,15 +9,23 @@ import SideBar from "components/layout/SideBar"; import { CNMainContent, CNSidebar } from "constants/styleSelectors"; import { SideBarSection, SideBarSectionProps } from "./SideBarSection"; import styled from "styled-components"; +import { useSelector } from "react-redux"; import { MenuOutlined } from "@ant-design/icons"; import { Drawer, Button } from "antd"; +import { getBrandingSetting } from "@lowcoder-ee/redux/selectors/enterpriseSelectors"; type LayoutProps = { sections: SideBarSectionProps[]; }; -const SideBarV2 = styled(SideBar)` - background: #f7f9fc !important; +const SideBarV2 = styled(SideBar)<{ + $bgColor?: string, + $fontColor?: string, + $activeBgColor?: string, + $activeFontColor?: string, +}>` + background: ${props => props.$bgColor ? props.$bgColor : '#f7f9fc'} !important; + ${props => props.$fontColor && `color: ${props.$fontColor}`}; padding: 28px 10px; border-right: 1px solid #ebebeb; @@ -50,9 +58,9 @@ const DrawerContentWrapper = styled.div` `; export function Layout(props: LayoutProps) { - const [drawerVisible, setDrawerVisible] = useState(false); const [isMobile, setIsMobile] = useState(false); + const brandingSettings = useSelector(getBrandingSetting); const toggleDrawer = () => { setDrawerVisible(!drawerVisible); @@ -115,10 +123,16 @@ export function Layout(props: LayoutProps) { styles={{ body: { padding: "0px" } }} - destroyOnClose // Ensure drawer content is removed when closed + destroyOnHidden // Ensure drawer content is removed when closed > <DrawerContentWrapper> - <SideBarV2 className={CNSidebar}> + <SideBarV2 + className={CNSidebar} + $bgColor={brandingSettings?.config_set?.adminSidebarColor} + $fontColor={brandingSettings?.config_set?.adminSidebarFontColor} + $activeBgColor={brandingSettings?.config_set?.adminSidebarActiveBgColor} + $activeFontColor={brandingSettings?.config_set?.adminSidebarActiveFontColor} + > {mobileSections .filter((section) => section.items.length > 0) .map((section, index) => ( @@ -135,7 +149,13 @@ export function Layout(props: LayoutProps) { {/* Desktop Layout */} <AntdLayout> {!isMobile && ( - <SideBarV2 className={`${CNSidebar} desktop-only`}> + <SideBarV2 + className={`${CNSidebar} desktop-only`} + $bgColor={brandingSettings?.config_set?.adminSidebarColor} + $fontColor={brandingSettings?.config_set?.adminSidebarFontColor} + $activeBgColor={brandingSettings?.config_set?.adminSidebarActiveBgColor} + $activeFontColor={brandingSettings?.config_set?.adminSidebarActiveFontColor} + > {desktopSections .filter((section) => section.items.length > 0) .map((section, index) => ( diff --git a/client/packages/lowcoder/src/components/layout/SideBarItem.tsx b/client/packages/lowcoder/src/components/layout/SideBarItem.tsx index ec89099442..695eb4e196 100644 --- a/client/packages/lowcoder/src/components/layout/SideBarItem.tsx +++ b/client/packages/lowcoder/src/components/layout/SideBarItem.tsx @@ -6,7 +6,12 @@ import { useLocation } from "react-router-dom"; type SideBarSize = "medium" | "small"; -const Wrapper = styled.div<{ $size?: SideBarSize; $selected?: boolean }>` +const Wrapper = styled.div<{ + $size?: SideBarSize; + $selected?: boolean; + $selectedBgColor?: string; + $selectedFontColor?: string; +}>` width: 100%; height: ${(props) => (props.$size === "small" ? "36px" : "44px")}; border-radius: 4px; @@ -16,7 +21,12 @@ const Wrapper = styled.div<{ $size?: SideBarSize; $selected?: boolean }>` cursor: pointer; &:hover { - background: ${(props) => (props.$selected ? "#ebf0f7" : "#efeff1")}; + background: ${(props) => (props.$selected ? ( + `${props.$selectedBgColor ? props.$selectedBgColor : '#ebf0f7'}` + ) : ( + `${props.$selectedBgColor ? props.$selectedBgColor : '#efeff1'}` + ))}; + color: ${(props) => props.$selectedFontColor ? props.$selectedFontColor : '#4965f2'} } svg { @@ -26,8 +36,8 @@ const Wrapper = styled.div<{ $size?: SideBarSize; $selected?: boolean }>` ${(props) => props.$selected && css` - color: #4965f2; - background: #ebf0f7; + color: ${props.$selectedFontColor ? props.$selectedFontColor : '#4965f2'}; + background: ${props.$selectedBgColor ? props.$selectedBgColor : '#ebf0f7'}; `} `; @@ -41,6 +51,8 @@ export const SideBarItem = (props: SideBarItemProps) => { className={CNSidebarItem} $size={props.size} $selected={props.selected} + $selectedBgColor={props.selectedBgColor} + $selectedFontColor={props.selectedFontColor} onClick={() => props.onClick?.(currentPath)} > {Icon && <Icon selected={props.selected} style={{ marginRight: "8px" }} />} @@ -53,6 +65,8 @@ export interface SideBarItemProps { icon?: FunctionComponent<SVGProps<any> & { selected?: boolean }>; text: ReactNode | FunctionComponent<{ selected?: boolean }>; selected?: boolean; + selectedBgColor?: string; + selectedFontColor?: string; size?: SideBarSize; onClick?: (currentPath: string) => void; style?: CSSProperties; diff --git a/client/packages/lowcoder/src/components/layout/SideBarSection.tsx b/client/packages/lowcoder/src/components/layout/SideBarSection.tsx index 3a7df0aa79..52a5a2d042 100644 --- a/client/packages/lowcoder/src/components/layout/SideBarSection.tsx +++ b/client/packages/lowcoder/src/components/layout/SideBarSection.tsx @@ -11,6 +11,7 @@ import { getUser } from "../../redux/selectors/usersSelectors"; import { normalAppListSelector } from "../../redux/selectors/applicationSelector"; import { useLocation } from "react-router-dom"; import history from "../../util/history"; +import { getBrandingSetting } from "@lowcoder-ee/redux/selectors/enterpriseSelectors"; const defaultOnSelectedFn = (routePath: string, currentPath: string) => routePath === currentPath; @@ -23,6 +24,7 @@ const Wrapper = styled.div` export const SideBarSection = (props: SideBarSectionProps) => { const user = useSelector<AppState, User>(getUser); const applications = useSelector<AppState, ApplicationMeta[]>(normalAppListSelector); + const brandingSettings = useSelector(getBrandingSetting); const currentPath = useLocation().pathname; const isShow = props.items .map((item) => (item.visible ? item.visible({ user: user, applications: applications }) : true)) @@ -45,6 +47,8 @@ export const SideBarSection = (props: SideBarSectionProps) => { ? item.onSelected(item.routePath, currentPath) : defaultOnSelectedFn(item.routePath, currentPath) } + selectedBgColor={brandingSettings?.config_set?.adminSidebarActiveBgColor} + selectedFontColor={brandingSettings?.config_set?.adminSidebarActiveFontColor} onClick={() => { // Trigger item's onClick if defined item.onClick diff --git a/client/packages/lowcoder/src/comps/comps/autoCompleteComp/autoCompleteComp.tsx b/client/packages/lowcoder/src/comps/comps/autoCompleteComp/autoCompleteComp.tsx index f7107f039c..a8211777db 100644 --- a/client/packages/lowcoder/src/comps/comps/autoCompleteComp/autoCompleteComp.tsx +++ b/client/packages/lowcoder/src/comps/comps/autoCompleteComp/autoCompleteComp.tsx @@ -257,7 +257,7 @@ let AutoCompleteCompBase = (function () { } return false; }} - dropdownRender={(originNode: ReactNode) => ( + popupRender={(originNode: ReactNode) => ( <DropdownStyled $style={props.childrenInputFieldStyle as ChildrenMultiSelectStyleType}> {originNode} </DropdownStyled> diff --git a/client/packages/lowcoder/src/comps/comps/avatar.tsx b/client/packages/lowcoder/src/comps/comps/avatar.tsx index a1da4984a7..bbd39f73e8 100644 --- a/client/packages/lowcoder/src/comps/comps/avatar.tsx +++ b/client/packages/lowcoder/src/comps/comps/avatar.tsx @@ -164,7 +164,7 @@ const AvatarView = (props: RecordConstructorToView<typeof childrenMap>) => { placement={props.labelPosition === 'left' ? "bottomLeft" : "bottomRight"} arrow disabled={!props.enableDropdownMenu} - dropdownRender={() => menu} + popupRender={() => menu} > <Wrapper $iconSize={props.iconSize} $labelPosition={props.labelPosition} $style={props.style}> <Badge diff --git a/client/packages/lowcoder/src/comps/comps/buttonComp/dropdownComp.tsx b/client/packages/lowcoder/src/comps/comps/buttonComp/dropdownComp.tsx index a734d7e45f..955d2a5931 100644 --- a/client/packages/lowcoder/src/comps/comps/buttonComp/dropdownComp.tsx +++ b/client/packages/lowcoder/src/comps/comps/buttonComp/dropdownComp.tsx @@ -125,7 +125,7 @@ const DropdownTmpComp = (function () { {props.onlyMenu ? ( <Dropdown disabled={props.disabled} - dropdownRender={() => menu} + popupRender={() => menu} trigger={[props.triggerMode]} > <Button100 $buttonStyle={props.style as any} disabled={props.disabled}> @@ -135,7 +135,7 @@ const DropdownTmpComp = (function () { ) : ( <StyledDropdownButton disabled={props.disabled} - dropdownRender={() => menu} + popupRender={() => menu} trigger={[props.triggerMode]} onClick={() => props.onEvent("click")} buttonsRender={([left, right]) => [ diff --git a/client/packages/lowcoder/src/comps/comps/buttonComp/scannerComp.tsx b/client/packages/lowcoder/src/comps/comps/buttonComp/scannerComp.tsx index 26b48474d6..811ed91be3 100644 --- a/client/packages/lowcoder/src/comps/comps/buttonComp/scannerComp.tsx +++ b/client/packages/lowcoder/src/comps/comps/buttonComp/scannerComp.tsx @@ -214,7 +214,7 @@ const ScannerTmpComp = (function () { showCancelButton={false} open={showModal} maskClosable={props.maskClosable} - destroyOnClose + destroyOnHidden onCancel={() => { setShowModal(false); props.onEvent("close"); diff --git a/client/packages/lowcoder/src/comps/comps/fileComp/fileComp.tsx b/client/packages/lowcoder/src/comps/comps/fileComp/fileComp.tsx index 78857be7eb..8df84e1584 100644 --- a/client/packages/lowcoder/src/comps/comps/fileComp/fileComp.tsx +++ b/client/packages/lowcoder/src/comps/comps/fileComp/fileComp.tsx @@ -346,7 +346,7 @@ const ImageCaptureModal = (props: { showCancelButton={false} open={props.showModal} maskClosable={true} - destroyOnClose + destroyOnHidden onCancel={props.onModalClose} > {!!errMessage ? ( @@ -413,7 +413,7 @@ const ImageCaptureModal = (props: { trigger={["click"]} open={dropdownShow} onOpenChange={(value) => setDropdownShow(value)} - dropdownRender={() => ( + popupRender={() => ( <Menu items={modeList} onClick={(value) => diff --git a/client/packages/lowcoder/src/comps/comps/formComp/createForm.tsx b/client/packages/lowcoder/src/comps/comps/formComp/createForm.tsx index 70982cda6d..6d4f2fc9ad 100644 --- a/client/packages/lowcoder/src/comps/comps/formComp/createForm.tsx +++ b/client/packages/lowcoder/src/comps/comps/formComp/createForm.tsx @@ -729,7 +729,7 @@ export const CreateForm = (props: { onCreate: CreateHandler }) => { > <CustomModal open={visible} - destroyOnClose={true} + destroyOnHidden={true} title={trans("formComp.generateForm")} footer={null} onCancel={handleCancel} diff --git a/client/packages/lowcoder/src/comps/comps/navComp/navComp.tsx b/client/packages/lowcoder/src/comps/comps/navComp/navComp.tsx index 58d3ed0168..1ee33fa616 100644 --- a/client/packages/lowcoder/src/comps/comps/navComp/navComp.tsx +++ b/client/packages/lowcoder/src/comps/comps/navComp/navComp.tsx @@ -198,7 +198,7 @@ const NavCompBase = new UICompBuilder(childrenMap, (props) => { return ( <Dropdown key={idx} - dropdownRender={() => subMenu} + popupRender={() => subMenu} > {item} </Dropdown> diff --git a/client/packages/lowcoder/src/comps/comps/preLoadComp.tsx b/client/packages/lowcoder/src/comps/comps/preLoadComp.tsx index eef0ba0a82..944b639760 100644 --- a/client/packages/lowcoder/src/comps/comps/preLoadComp.tsx +++ b/client/packages/lowcoder/src/comps/comps/preLoadComp.tsx @@ -289,7 +289,7 @@ function PreloadConfigModal(props: ChildrenInstance) { mask={activeKey !== TabKey.CSS} open={showScriptsAndStyleModal} title={trans("preLoad.scriptsAndStyles")} - destroyOnClose + destroyOnHidden onCancel={() => changeExternalState?.({ showScriptsAndStyleModal: false })} showOkButton={false} showCancelButton={false} diff --git a/client/packages/lowcoder/src/comps/comps/selectInputComp/cascaderComp.tsx b/client/packages/lowcoder/src/comps/comps/selectInputComp/cascaderComp.tsx index fad05e2f9f..c71b85e2dd 100644 --- a/client/packages/lowcoder/src/comps/comps/selectInputComp/cascaderComp.tsx +++ b/client/packages/lowcoder/src/comps/comps/selectInputComp/cascaderComp.tsx @@ -58,7 +58,7 @@ let CascaderBasicComp = (function () { $childrenInputFieldStyle={props.childrenInputFieldStyle} onFocus={() => props.onEvent("focus")} onBlur={() => props.onEvent("blur")} - dropdownRender={(menus: React.ReactNode) => ( + popupRender={(menus: React.ReactNode) => ( <DropdownRenderStyle $childrenInputFieldStyle={props.childrenInputFieldStyle}> {menus} </DropdownRenderStyle> diff --git a/client/packages/lowcoder/src/comps/comps/selectInputComp/selectCompConstants.tsx b/client/packages/lowcoder/src/comps/comps/selectInputComp/selectCompConstants.tsx index fe030f20b6..c4d2745045 100644 --- a/client/packages/lowcoder/src/comps/comps/selectInputComp/selectCompConstants.tsx +++ b/client/packages/lowcoder/src/comps/comps/selectInputComp/selectCompConstants.tsx @@ -271,7 +271,7 @@ export const SelectUIView = ( filterOption={(input, option) => option?.label.toLowerCase().includes(input.toLowerCase()) } - dropdownRender={(originNode: ReactNode) => ( + popupRender={(originNode: ReactNode) => ( <DropdownStyled $style={props.childrenInputFieldStyle as ChildrenMultiSelectStyleType}> {originNode} </DropdownStyled> diff --git a/client/packages/lowcoder/src/comps/comps/tableComp/column/columnTypeComps/columnDropdownComp.tsx b/client/packages/lowcoder/src/comps/comps/tableComp/column/columnTypeComps/columnDropdownComp.tsx index b3e0e9d154..d71ad03cb3 100644 --- a/client/packages/lowcoder/src/comps/comps/tableComp/column/columnTypeComps/columnDropdownComp.tsx +++ b/client/packages/lowcoder/src/comps/comps/tableComp/column/columnTypeComps/columnDropdownComp.tsx @@ -127,7 +127,7 @@ const DropdownView = React.memo((props: { <Dropdown trigger={["click"]} placement="bottomRight" - dropdownRender={() => menu} + popupRender={() => menu} > <StyledButton type={props.buttonType} diff --git a/client/packages/lowcoder/src/comps/comps/tableComp/column/columnTypeComps/columnStatusComp.tsx b/client/packages/lowcoder/src/comps/comps/tableComp/column/columnTypeComps/columnStatusComp.tsx index ba647cbc0d..61a8fbc6f8 100644 --- a/client/packages/lowcoder/src/comps/comps/tableComp/column/columnTypeComps/columnStatusComp.tsx +++ b/client/packages/lowcoder/src/comps/comps/tableComp/column/columnTypeComps/columnStatusComp.tsx @@ -144,12 +144,12 @@ const StatusEdit = React.memo((props: StatusEditPropsType) => { showSearch onSearch={handleSearch} onChange={handleChange} - dropdownRender={(originNode: ReactNode) => ( + popupRender={(originNode: ReactNode) => ( <DropdownStyled> <ScrollBar style={{ maxHeight: "256px" }}>{originNode}</ScrollBar> </DropdownStyled> )} - dropdownStyle={{ marginTop: "7px", padding: "8px 0 6px 0" }} + styles={{ popup: { root: { marginTop: "7px", padding: "8px 0 6px 0" }}}} onBlur={handleBlur} onFocus={handleFocus} onClick={handleClick} diff --git a/client/packages/lowcoder/src/comps/comps/tableComp/column/columnTypeComps/columnTagsComp.tsx b/client/packages/lowcoder/src/comps/comps/tableComp/column/columnTypeComps/columnTagsComp.tsx index 0857510136..0f4f1e15f6 100644 --- a/client/packages/lowcoder/src/comps/comps/tableComp/column/columnTypeComps/columnTagsComp.tsx +++ b/client/packages/lowcoder/src/comps/comps/tableComp/column/columnTypeComps/columnTagsComp.tsx @@ -265,12 +265,12 @@ const TagEdit = React.memo((props: TagEditPropsType) => { suffixIcon={<PackUpIcon />} onSearch={handleSearch} onChange={handleChange} - dropdownRender={(originNode: ReactNode) => ( + popupRender={(originNode: ReactNode) => ( <DropdownStyled> <ScrollBar style={{ maxHeight: "256px" }}>{originNode}</ScrollBar> </DropdownStyled> )} - dropdownStyle={{ marginTop: "7px", padding: "8px 0 6px 0" }} + styles={{ popup: { root: { marginTop: "7px", padding: "8px 0 6px 0" }}}} onFocus={() => { if (mountedRef.current) { setOpen(true); diff --git a/client/packages/lowcoder/src/comps/controls/multiSelectControl.tsx b/client/packages/lowcoder/src/comps/controls/multiSelectControl.tsx index 7b45a2690c..64ca4cf9f9 100644 --- a/client/packages/lowcoder/src/comps/controls/multiSelectControl.tsx +++ b/client/packages/lowcoder/src/comps/controls/multiSelectControl.tsx @@ -69,7 +69,7 @@ export function multiSelectControl<T extends OptionsType>( <DropdownContainer $placement={placement}> <CustomSelect mode={"multiple"} - popupClassName="ob-dropdown-control-select" + classNames={{popup: {root: "ob-dropdown-control-select"}}} filterOption={(input, option) => { if (!option?.value) { return false; diff --git a/client/packages/lowcoder/src/comps/queries/resourceDropdown.tsx b/client/packages/lowcoder/src/comps/queries/resourceDropdown.tsx index 9446b6ccbd..7386db7e87 100644 --- a/client/packages/lowcoder/src/comps/queries/resourceDropdown.tsx +++ b/client/packages/lowcoder/src/comps/queries/resourceDropdown.tsx @@ -164,8 +164,8 @@ export const ResourceDropdown = (props: ResourceDropdownProps) => { } props.changeResource(datasourceId, datasourceType); }} - onDropdownVisibleChange={onDropdownVisibleChange} - dropdownRender={ + onOpenChange={onDropdownVisibleChange} + popupRender={ Object.keys(dataSourceTypesMap).length > 0 ? (menu) => ( <DropdownWrapper> diff --git a/client/packages/lowcoder/src/constants/reduxActionConstants.ts b/client/packages/lowcoder/src/constants/reduxActionConstants.ts index 6df5991f2d..aea840a5c6 100644 --- a/client/packages/lowcoder/src/constants/reduxActionConstants.ts +++ b/client/packages/lowcoder/src/constants/reduxActionConstants.ts @@ -169,6 +169,20 @@ export const ReduxActionTypes = { FETCH_SUBSCRIPTIONS_SUCCESS: "FETCH_SUBSCRIPTIONS_SUCCESS", FETCH_SUBSCRIPTIONS_FAILURE: "FETCH_SUBSCRIPTIONS_FAILURE", + /* Enterprise Edition */ + FETCH_ENTERPRISE_LICENSE : "FETCH_ENTERPRISE_LICENSE", + SET_ENTERPRISE_LICENSE : "SET_ENTERPRISE_LICENSE", + + /* Environments */ + FETCH_ENVIRONMENTS : "FETCH_ENVIRONMENTS", + FETCH_ENVIRONMENTS_SUCCESS: "FETCH_ENVIRONMENTS_SUCCESS", + FETCH_ENVIRONMENTS_FAILURE: "FETCH_ENVIRONMENTS_FAILURE", + + /* Branding Setting */ + FETCH_BRANDING_SETTING : "FETCH_BRANDING_SETTING", + SET_WORKSPACE_BRANDING_SETTING : "SET_WORKSPACE_BRANDING_SETTING", + SET_GLOBAL_BRANDING_SETTING : "SET_GLOBAL_BRANDING_SETTING", + /* application snapshot */ FETCH_APP_SNAPSHOTS: "FETCH_APP_SNAPSHOTS", FETCH_APP_SNAPSHOTS_SUCCESS: "FETCH_APP_SNAPSHOTS_SUCCESS", diff --git a/client/packages/lowcoder/src/constants/routesURL.ts b/client/packages/lowcoder/src/constants/routesURL.ts index 6931a1d741..a675ec6495 100644 --- a/client/packages/lowcoder/src/constants/routesURL.ts +++ b/client/packages/lowcoder/src/constants/routesURL.ts @@ -19,6 +19,14 @@ export const THEME_SETTING = "/setting/theme"; export const PLUGINS_SETTING = "/setting/plugins"; export const THEME_DETAIL = "/setting/theme/detail"; export const THEME_DETAIL_URL = `${THEME_DETAIL}/:themeId`; +export const AUDIT_LOG_DASHBOARD = "/setting/audit"; +export const AUDIT_LOG_DETAIL = "/setting/audit/:eventId/detail"; +export const APP_USAGE_DASHBOARD = "/setting/app-usage"; +export const APP_USAGE_DETAIL = "/setting/app-usage/:eventId/detail"; + +export const ENVIRONMENT_SETTING = "/setting/environments"; +export const ENVIRONMENT_DETAIL = `${ENVIRONMENT_SETTING}/:environmentId`; +export const ENVIRONMENT_WORKSPACE_DETAIL = `${ENVIRONMENT_DETAIL}/workspaces/:workspaceId`; export const OAUTH_PROVIDER_SETTING = "/setting/oauth-provider"; export const OAUTH_PROVIDER_DETAIL = "/setting/oauth-provider/detail"; @@ -116,3 +124,7 @@ export const buildSubscriptionSettingsLink = (subscriptionId: string, productId export const buildSubscriptionInfoLink = (productId: string) => `${SUBSCRIPTION_SETTING}/info/${productId}`; export const buildSupportTicketLink = (ticketId: string) => `${SUPPORT_URL}/details/${ticketId}`; + +export const buildEnvironmentId = (environmentId: string) => `${ENVIRONMENT_SETTING}/${environmentId}`; +export const buildEnvironmentWorkspaceId = (environmentId: string, workspaceId: string) => + `${ENVIRONMENT_SETTING}/${environmentId}/workspaces/${workspaceId}`; diff --git a/client/packages/lowcoder/src/i18n/locales/de.ts b/client/packages/lowcoder/src/i18n/locales/de.ts index 33c8940906..c73b7537ba 100644 --- a/client/packages/lowcoder/src/i18n/locales/de.ts +++ b/client/packages/lowcoder/src/i18n/locales/de.ts @@ -2332,7 +2332,6 @@ export const de = { "appUsage": "App-Nutzungsprotokolle", "environments": "Umgebungen", "premium": "Prämie", - "AppUsage": "Globale App-Nutzung", }, "memberSettings": { ...en.memberSettings, @@ -2770,17 +2769,48 @@ export const de = { }, "branding": { ...en.branding, - - "title": "Branding", - "logoTitle": "Logo", - "logoHelp": "Nur .JPG, .SVG oder .PNG", - "faviconTitle": "Favicon", - "faviconHelp": "Nur .JPG, .SVG oder .PNG", - "brandNameTitle": "Markenname", - "headColorTitle": "Kopffarbe", - "save": "Speichern", - "saveSuccessMsg": "Erfolgreich gerettet", - "upload": "Zum Hochladen klicken", + "title": "Branding-Einstellungen", + "logoSection": "Logos", + "logo": "Logo", + "logoHelp": "Laden Sie das Logo Ihres Unternehmens im SVG- oder PNG-Format hoch.", + "squareLogo": "Quadratisches Logo", + "squareLogoHelp": "Laden Sie eine quadratische Version Ihres Logos im SVG- oder PNG-Format hoch.", + "colorFontSection": "Farben und Schriftarten", + "mainBrandingColor": "Hauptbrandingfarbe", + "mainBrandingColorHelp": "Wählen Sie die Hauptfarbe für Ihr Branding.", + "editorHeaderColor": "Editor-Header-Farbe", + "editorHeaderColorHelp": "Wählen Sie die Farbe des Headers des Editors.", + "adminSidebarColor": "Admin-Seitenleistenfarbe", + "adminSidebarColorHelp": "Wählen Sie die Farbe der Admin-Seitenleiste.", + "editorSidebarColor": "Editor-Seitenleistenfarbe", + "editorSidebarColorHelp": "Wählen Sie die Farbe der Seitenleiste des Editors.", + "font": "Schriftart", + "fontHelp": "Wählen Sie eine Schriftart aus Google Fonts für Ihre Anwendung.", + "textSection": "Texte und Seiten", + "errorPage": "Fehlerseiten-Text", + "errorPageHelp": "Geben Sie den Text ein, der auf der Fehlerseite angezeigt wird.", + "signUpPage": "Anmeldeseiten-Text", + "signUpPageHelp": "Geben Sie den Text ein, der auf der Anmeldeseite angezeigt wird.", + "loggedOutPage": "Abmeldeseiten-Text", + "loggedOutPageHelp": "Geben Sie den Text ein, der auf der Abmeldeseite angezeigt wird.", + "standardDescription": "Standardbeschreibung", + "standardDescriptionHelp": "Geben Sie die Standardbeschreibung für SEO-Metainformationen ein.", + "standardTitle": "Standardtitel", + "standardTitleHelp": "Geben Sie den Standardtitel für SEO-Metainformationen ein.", + "showDocumentation": "Dokumentation anzeigen", + "submitIssue": "Problem melden erlauben", + "whatsNew": "„Neuigkeiten“ aktivieren", + "saveButton": "Einstellungen speichern", + "errorPageImage": "Laden Sie ein Bild für die Fehlerseite im SVG- oder PNG-Format hoch.", + "signUpPageImage": "Laden Sie ein Bild für die Registrierungsseite im SVG- oder PNG-Format hoch.", + "loggedOutPageImage": "Laden Sie ein Bild für die Abmeldeseite im SVG- oder PNG-Format hoch.", + "documentationLink": "Dokumentationslink", + "documentationLinkPlaceholder": "Geben Sie die URL für Ihre Dokumentation ein...", + "documentationLinkHelp": "Geben Sie eine gültige URL an, die Benutzer für die Dokumentation besuchen können.", + "whatsNewSection": "Dokumentationseinstellungen", + "whatsNewLink": "Dokumentationslink", + "whatsNewLinkPlaceholder": "Geben Sie die URL für Ihre Dokumentation ein...", + "whatsNewLinkHelp": "Geben Sie eine gültige URL an, die Benutzer für Ihre Neuigkeiten besuchen können." }, "networkMessage": { ...en.networkMessage, diff --git a/client/packages/lowcoder/src/i18n/locales/en.ts b/client/packages/lowcoder/src/i18n/locales/en.ts index 09bd420831..281aabf3eb 100644 --- a/client/packages/lowcoder/src/i18n/locales/en.ts +++ b/client/packages/lowcoder/src/i18n/locales/en.ts @@ -2394,7 +2394,158 @@ export const en = { "appUsage": "App Usage Logs", "environments": "Environments", "premium": "Premium", - "AppUsage": "Global App Usage", + }, + + "enterprise" : { + "AuditLogTitle": "Audit Log Dasboard", + "AuditLogOverview": "Log Filter", + "USER_LOGIN" : "User Login ", + "USER_LOGOUT" : "User Logout ", + "APPLICATION_VIEW" : "View Application ", + "APPLICATION_CREATE" : "Create Application ", + "APPLICATION_DELETE" : "Delete Application ", + "APPLICATION_UPDATE" : "Update Application ", + "APPLICATION_MOVE" : "Move Application ", + "APPLICATION_RECYCLED" : "Recycle Application ", + "APPLICATION_RESTORE" : "Restore Application ", + "APPLICATION_PUBLISH" : "Application Publishing ", + "APPLICATION_VERSION_CHANGE" : "Application Version Update ", + "APPLICATION_SHARING_CHANGE" : "Application Sharing Change ", + "APPLICATION_PERMISSION_CHANGE" : "Application Permission Change ", + "FOLDER_CREATE" : "Create Folder ", + "FOLDER_DELETE" : "Delete Folder ", + "FOLDER_UPDATE" : "Update Folder ", + "QUERY_EXECUTION" : "Execute Query ", + "GROUP_CREATE" : "Create Group ", + "GROUP_UPDATE" : "Update Group ", + "GROUP_DELETE" : "Delete Group ", + "GROUP_MEMBER_ADD" : "Add Group Member ", + "GROUP_MEMBER_ROLE_UPDATE" : "Update Group Member Role ", + "GROUP_MEMBER_LEAVE" : "Leave Group ", + "GROUP_MEMBER_REMOVE" : "Remove Group Member ", + "SERVER_START_UP" : "Server Startup ", + "SERVER_INFO" : "View Server Info ", + "DATA_SOURCE_CREATE" : "Create Datasource ", + "DATA_SOURCE_UPDATE" : "Update Datasource ", + "DATA_SOURCE_DELETE" : "Delete Datasource ", + "DATA_SOURCE_PERMISSION_GRANT" : "Grant Datasource Permission ", + "DATA_SOURCE_PERMISSION_UPDATE" : "Update Datasource Permission ", + "DATA_SOURCE_PERMISSION_DELETE" : "Delete Datasource Permission ", + "LIBRARY_QUERY_CREATE" : "Create Library Query ", + "LIBRARY_QUERY_UPDATE" : "Update Library Query ", + "LIBRARY_QUERY_DELETE" : "Delete Library Query ", + "LIBRARY_QUERY_PUBLISH" : "Publish Library Query ", + "API_CALL_EVENT" : "API Call Event ", + "logFilter" : "Log Filter", + "noLogsFound" : "No logs found. Adjust the filters and try again.", + "usageLogUserEngagement" : "User Engagement By Region", + "usageLogAppViews" : "App Usage over time", + "usageLogTopTen" : "Top 10 Apps", + "usageLogAnonymousKNown" : "Anonymous/Known Users", + "usageLogDevices" : "Device/OS Breakdown", + "usageLogBrowsers" : "Browser/Layout Engine Breakdown", + "premiumFeaturesNotice" : "All Premium Features are avilable in the Enterprise Edition of Lowcoder.", + "requestLicense" : "Request Enterprise Edition Licenses", + "requestLicensesBtton" : "Request Enterprise Access", + "AuditLogsTitle": "Audit Logs", + "AuditLogsIntroTitle": "Powerful visibility into your workspace activity", + "AuditLogsIntro1": "Audit Logs enable administrators to track exactly what happens across the entire Lowcoder platform. From user sign-ins to app modifications, every relevant action is captured and stored.", + "AuditLogsIntro2": "We include detailed metadata such as geolocation, device type, browser, and operating system for each event.", + "AuditLogsIntro3": "This transparency allows you to monitor activity across all connected environments, providing a robust audit trail to support compliance, security, and operational insight.", + "AuditLogsEventsTitle": "What events are tracked?", + "AuditLogsEventsIntro": "The following user actions are logged in real time:", + "SignIn": "Sign in", + "Logout": "Logout", + "ViewApp": "View app", + "CreateApp": "Create new app", + "DeleteApp": "Delete app", + "UpdateApp": "Update app", + "MoveToFolder": "Move to folder", + "MoveToTrash": "Move to Trash", + "RestoreApp": "Restore app", + "CreateFolder": "Create new folder", + "DeleteFolder": "Delete folder", + "UpdateFolder": "Update folder", + "ExecuteDataQuery": "Execute data query", + "CreateUserGroup": "Create new user-group", + "UpdateUserGroup": "Update user-group", + "DeleteUserGroup": "Delete user-group", + "AddGroupMember": "Add user-group member", + "UpdateGroupMemberRole": "Update user-group member's role", + "LeaveUserGroup": "Leave user-group", + "RemoveGroupMember": "Remove user-group member", + "ServerStartup": "Server startup", + "CreateDataSource": "Create data source", + "UpdateDataSource": "Update data source", + "DeleteDataSource": "Delete data source", + "GrantUpdateDeletePermission": "Grant or update permissions", + "LibraryQueryActions": "Create / Update / Delete library queries", + "PublishLibraryQuery": "Publish library query", + "AuditLogsPreviewTitle": "Preview the Audit Log in action", + "ScreenshotPlaceholder1": "[ Screenshot 1 Placeholder ]", + "ScreenshotPlaceholder2": "[ Screenshot 2 Placeholder ]", + "ScreenshotPlaceholder3": "[ Screenshot 3 Placeholder ]", + "PricingTitle": "Enterprise Edition Pricing", + "PricingIntro": "We offer flexible pricing for organizations of any size, tailored to your usage model:", + "FlatRateTitle": "Option 1: Flat-rate per instance — $169 / month", + "FlatRateDesc": "An instance is a full Lowcoder environment (metadata database + runtime) that can be independently deployed. This includes:", + "FlatRatePoint1": "A dedicated MongoDB metadata store", + "FlatRatePoint2": "One or more app runtimes (\"Api-Service\" and / or \"Node-Service\" containers)", + "UsagePricingTitle": "Option 2: Usage-based pricing — $0.001 per API Call", + "UsagePricingDesc": "Each instance can alternatively be licensed based on API usage. We offer prepaid packages:", + "API100k": "100,000 API Calls — $100", + "API1M": "1,000,000 API Calls — $1,000", + "API10M": "10,000,000 API Calls — $10,000", + "UsageOverrunDesc": "When your API package runs low, we’ll alert you. Once the package is consumed, your instance remains functional but will operate at a reduced speed to prevent abuse and maintain fairness.", + "UsageTopUpInfo": "You can seamlessly add additional packages anytime to ensure continuous, fast access — no service interruptions.", + "AppUsageTitle": "App Usage Logs", + "AppUsageIntroTitle": "Understand how your apps are used", + "AppUsageIntro1": "App Usage Logs give you deep insights into how your published Lowcoder apps are consumed.", + "AppUsageIntro2": "This functionality works like a built-in, simplified version of Google Analytics — but fully private and scoped to your Lowcoder instance.", + "AppUsageIntro3": "Admins can analyze how apps are accessed over time, which ones are most used, and from where users are connecting.", + + "AppUsageMetricsTitle": "Metrics we track", + "AppUsageMetricsIntro": "These analytics help you make informed decisions about engagement and platform usage:", + "MetricActiveUsers": "App Views per day / week / month (based on time filter)", + "MetricViewsPerApp": "Top 10 Apps", + "MetricDevices": "Access by device (desktop, tablet, mobile)", + "MetricBrowsers": "Access by browser and OS", + "MetricCountries": "Geographic origin of users", + "AppUsageScreenshotsTitle": "App Usage Analytics in action", + "AppUsageScreenshot1": "[ App Usage Dashboard Screenshot ]", + "AppUsageScreenshot2": "[ Per-App Views Chart ]", + "AppUsageScreenshot3": "[ Geo Distribution Map ]", + + "BrandingIntroTitle": "Custom Branding & White-Labeling", + "BrandingIntro1": "With Lowcoders Branding settings, you can elevate product experience for your users by offering fully customizable branding.", + "BrandingIntro2": "Empower your customers or internal teams to use the platform as if it were their own — logo, colors, fonts, and custom pages included.", + "BrandingIntro3": "Or you need a fully white-label solution and reinforce your brand identity at every touchpoint.", + "BrandingColorsIntro1": "You can set your own color scheme to match your corporate identity, including primary UI elements and navigation bars.", + "BrandingColorsIntro2": "Customize sidebar highlights, header sections, and even text contrast to enhance user experience and accessibility.", + "BrandingFontsIntro": "Select from curated Google Fonts to make your application truly yours in both style and readability.", + "BrandingLogosIntro": "Naturally, you also can upload your own logos — rectangular and square — to appear in headers, dashboards, and login screens. Maintain brand consistency across devices and screens.", + "BrandingPagesIntro1": "Add personalized text and visuals to your error pages, signup flows, and logout messages.", + "BrandingPagesIntro2": "These touchpoints help deliver a fully branded experience even during unexpected scenarios or account transitions.", + "BrandingMetaIntro": "Define standard metadata like page title and description to improve your SEO presence and brand messaging.", + "BrandingHelpLinksIntro": "Add context-sensitive documentation links directly inside the app, providing just-in-time help to your users.", + "BrandingWhatsNewIntro": "Activate the 'What’s New' section to highlight updates and product announcements in a branded and visible manner.", + + "EnvironmentsIntroTitle": "Lowcoder Staging", + "EnvironmentsTitle" : "Multi-Environment Infrastructure", + "EnvironmentsIntro1": "Lowcoder Environments allow you to separate your Dev, Test, and Prod stages cleanly and safely.", + "EnvironmentsIntro2": "Enterprise teams benefit from structured release workflows, approval processes, and version stability across stages.", + "EnvironmentsIntro3": "With the Environments feature, admins can control what gets deployed, when, and where — all from a single interface.", + + "EnvironmentsUseCasesTitle": "Why Use Environments?", + "EnvironmentsUseCase1": "Prevent unintended changes in production by testing apps in dedicated Dev or QA environments.", + "EnvironmentsUseCase2": "Align with corporate IT governance by implementing staged deployments with audit-ready tracking.", + "EnvironmentsUseCase3": "Empower teams to build confidently with environment-specific configurations, data, and integrations.", + + "EnvironmentsFeaturesTitle": "What You Get", + "EnvironmentsFeature1": "Centralized dashboard to view and manage all Lowcoder environments.", + "EnvironmentsFeature2": "Deployment of applications, data sources, and configurations between environments, directly from the UI.", + "EnvironmentsFeature3": "Environment-specific access controls and visibility rules.", + "EnvironmentsFeature5": "Clear separation of concerns for staging, sandbox, and production operations.", }, "subscription": { @@ -2889,18 +3040,82 @@ export const en = { // sixteenth part - "branding": { - "title": "Branding", - "logoTitle": "Logo", - "logoHelp": ".JPG, .SVG or .PNG Only", - "faviconTitle": "Favicon", - "faviconHelp": ".JPG, .SVG or .PNG Only", - "brandNameTitle": "Brand Name", - "headColorTitle": "Head Color", - "save": "Save", - "saveSuccessMsg": "Saved Successfully", - "upload": "Click to Upload" + "title": "Branding Settings", + "general": "General Settings", + "selectWorkspace": "Select Workspace", + "brandingName": "Branding Name", + "brandingNamePlaceholder": "Enter branding name", + "brandingDescription": "Branding Description", + "brandingDescriptionPlaceholder": "Enter branding description", + "logoSection": "Logos", + "logo": "Logo", + "logoHelp": "Upload your company's logo in SVG or PNG format.", + "logoUrlHelp": "Provide valid image url for Logo.", + "logoUrlPlaceholder" : "Provider image url for Logo", + "squareLogo": "Square Logo", + "squareLogoHelp": "Upload a square version of your logo in SVG or PNG format.", + "squareLogoUrlHelp": "Provide valid image url for Square Logo.", + "squareLogoUrlPlaceholder": "Provide url for Square Logo.", + "colorFontSection": "Colors and Fonts", + "mainBrandingColor": "Main Branding Color", + "mainBrandingColorHelp": "Choose the primary color for your branding.", + "editorHeaderColor": "App Header Color", + "editorHeaderColorHelp": "Choose the color for the app's header.", + "adminSidebarColor": "Admin Sidebar Color", + "adminSidebarColorHelp": "Choose the color for the admin's sidebar.", + "adminSidebarFontColor": "Admin Sidebar Font Color", + "adminSidebarFontColorHelp": "Choose the font color for the admin's sidebar.", + "adminSidebarActiveBgColor": "Admin Sidebar Selected Item's Backround Color", + "adminSidebarActiveBgColorHelp": "Choose the selected item's background color for the admin's sidebar.", + "adminSidebarActiveFontColor": "Admin Sidebar Selected Item's Font Color", + "adminSidebarActiveFontColorHelp": "Choose the selected item's font color for the admin's sidebar.", + "editorSidebarColor": "Editor Sidebar Color", + "editorSidebarColorHelp": "Choose the color for the editor's sidebar.", + "editorSidebarFontColor": "Editor Sidebar Font Color", + "editorSidebarFontColorHelp": "Choose the font color for the editor's sidebar.", + "editorSidebarActiveBgColor": "Editor Sidebar Selected Item's Backround Color", + "editorSidebarActiveBgColorHelp": "Choose the selected item's background color for the editor's sidebar.", + "editorSidebarActiveFontColor": "Editor Sidebar Selected Item's Font Color", + "editorSidebarActiveFontColorHelp": "Choose the selected item's font color for the editor's sidebar.", + "font": "Font", + "fontHelp": "Select a font from Google Fonts for your application.", + "textSection": "Texts and Pages", + "errorPage": "Error Page Text", + "errorPageHelp": "Enter the text displayed on the error page.", + "signUpPage": "Sign-Up Page Text", + "signUpPageHelp": "Enter the text displayed on the sign-up page.", + "loggedOutPage": "Logged-Out Page Text", + "loggedOutPageHelp": "Enter the text displayed on the logged-out page.", + "standardDescription": "Standard Description", + "standardDescriptionHelp": "Enter the standard description for SEO meta information.", + "standardTitle": "Standard Title", + "standardTitleHelp": "Enter the standard title for SEO meta information.", + "showDocumentation": "Show Documentation", + "submitIssue": "Allow Submit Issue", + "whatsNew": "Enable What's New", + "saveButton": "Save Settings", + "errorPageImage" : "Upload an image for the Error Page in SVG or PNG format.", + "errorPageImageUrl" : "Image URL for the Error Page", + "errorPageImageUrlPlaceholder" : "Provider image url for Error Page", + "errorPageImageUrlHelp" : "Provider a valid image url to show on Error Page.", + "signUpPageImage" : "Upload an image for the Sign Up Page in SVG or PNG format.", + "signUpPageImageUrl" : "Image URL for the Sign Up Page", + "signUpPageImageUrlPlaceholder" : "Provider image url for Sign Up Page", + "signUpPageImageUrlHelp" : "Provider a valid image url to show on Sign Up Page.", + "loggedOutPageImage" : "Upload an image for the Logged-out Page in SVG or PNG format.", + "showDocumentationSection": "Documentation Link Settings", + "showWhatsNewSection" : "Whats New Link Settings", + "documentationLink": "Documentation Link", + "documentationLinkPlaceholder": "Enter the URL for your documentation...", + "documentationLinkHelp": "Provide a valid URL that users can visit for documentation.", + "whatsNewSection": "Documentation Settings", + "whatsNewLink": "What's New Link", + "whatsNewLinkPlaceholder": "Enter the URL for your documentation...", + "whatsNewLinkHelp": "Provide a valid URL that users can visit for your news.", + "deleteBranding": "Delete Branding", + "deleteBrandingContent": "Are you sure you want to delete \"{orgName}\" branding?", + "fetchBrandingError": "Something went wrong while fetching branding details. Please try again." }, "networkMessage": { "200": "Success", @@ -3996,6 +4211,7 @@ export const en = { "UTC+13:00": "(UTC+13:00) Nuku'alofa, Samoa", "UserChoice": "UserChoice" }, + tour: { section1Title: "Steps", section1Subtitle: "Steps", diff --git a/client/packages/lowcoder/src/i18n/locales/es.ts b/client/packages/lowcoder/src/i18n/locales/es.ts index 0deceffe82..0f34778119 100644 --- a/client/packages/lowcoder/src/i18n/locales/es.ts +++ b/client/packages/lowcoder/src/i18n/locales/es.ts @@ -2330,7 +2330,6 @@ export const es = { "appUsage": "Registros de uso de aplicaciones", "environments": "Entornos", "premium": "Premium", - "AppUsage": "Uso global de las aplicaciones", }, "memberSettings": { ...en.memberSettings, @@ -2768,17 +2767,48 @@ export const es = { }, "branding": { ...en.branding, - - "title": "Marca", - "logoTitle": "Logotipo", - "logoHelp": "Sólo .JPG, .SVG o .PNG", - "faviconTitle": "Favicon", - "faviconHelp": "Sólo .JPG, .SVG o .PNG", - "brandNameTitle": "Marca", - "headColorTitle": "Color de la cabeza", - "save": "Guardar", - "saveSuccessMsg": "Guardado correctamente", - "upload": "Haga clic para cargar", + "title": "Configuraciones de Marca", + "logoSection": "Logotipos", + "logo": "Logotipo", + "logoHelp": "Sube el logotipo de tu empresa en formato SVG o PNG.", + "squareLogo": "Logotipo Cuadrado", + "squareLogoHelp": "Sube una versión cuadrada de tu logotipo en formato SVG o PNG.", + "colorFontSection": "Colores y Fuentes", + "mainBrandingColor": "Color Principal de la Marca", + "mainBrandingColorHelp": "Selecciona el color principal para tu marca.", + "editorHeaderColor": "Color del Encabezado del Editor", + "editorHeaderColorHelp": "Selecciona el color del encabezado del editor.", + "adminSidebarColor": "Color de la Barra Lateral del Administrador", + "adminSidebarColorHelp": "Selecciona el color de la barra lateral del administrador.", + "editorSidebarColor": "Color de la Barra Lateral del Editor", + "editorSidebarColorHelp": "Selecciona el color de la barra lateral del editor.", + "font": "Fuente", + "fontHelp": "Selecciona una fuente de Google Fonts para tu aplicación.", + "textSection": "Textos y Páginas", + "errorPage": "Texto de la Página de Error", + "errorPageHelp": "Introduce el texto que se mostrará en la página de error.", + "signUpPage": "Texto de la Página de Registro", + "signUpPageHelp": "Introduce el texto que se mostrará en la página de registro.", + "loggedOutPage": "Texto de la Página de Cierre de Sesión", + "loggedOutPageHelp": "Introduce el texto que se mostrará en la página de cierre de sesión.", + "standardDescription": "Descripción Estándar", + "standardDescriptionHelp": "Introduce la descripción estándar para la información meta de SEO.", + "standardTitle": "Título Estándar", + "standardTitleHelp": "Introduce el título estándar para la información meta de SEO.", + "showDocumentation": "Mostrar Documentación", + "submitIssue": "Permitir Enviar Problema", + "whatsNew": "Habilitar \"Novedades\"", + "saveButton": "Guardar Configuraciones", + "errorPageImage": "Sube una imagen para la página de error en formato SVG o PNG.", + "signUpPageImage": "Sube una imagen para la página de registro en formato SVG o PNG.", + "loggedOutPageImage": "Sube una imagen para la página de cierre de sesión en formato SVG o PNG.", + "documentationLink": "Enlace a la documentación", + "documentationLinkPlaceholder": "Introduce la URL de tu documentación...", + "documentationLinkHelp": "Proporciona una URL válida que los usuarios puedan visitar para la documentación.", + "whatsNewSection": "Configuraciones de documentación", + "whatsNewLink": "Enlace a la documentación", + "whatsNewLinkPlaceholder": "Introduce la URL de tu documentación...", + "whatsNewLinkHelp": "Proporciona una URL válida que los usuarios puedan visitar para conocer las novedades." }, "networkMessage": { ...en.networkMessage, diff --git a/client/packages/lowcoder/src/i18n/locales/it.ts b/client/packages/lowcoder/src/i18n/locales/it.ts index 2c0b869e4c..aa792d1090 100644 --- a/client/packages/lowcoder/src/i18n/locales/it.ts +++ b/client/packages/lowcoder/src/i18n/locales/it.ts @@ -2331,7 +2331,6 @@ export const it = { "appUsage": "Registri di utilizzo delle app", "environments": "Ambienti", "premium": "Premio", - "AppUsage": "Utilizzo globale delle app", }, "memberSettings": { ...en.memberSettings, @@ -2770,16 +2769,48 @@ export const it = { "branding": { ...en.branding, - "title": "Branding", - "logoTitle": "Logo", - "logoHelp": "Solo .JPG, .SVG o .PNG", - "faviconTitle": "Favicon", - "faviconHelp": "Solo .JPG, .SVG o .PNG", - "brandNameTitle": "Nome del marchio", - "headColorTitle": "Colore della testa", - "save": "Risparmiare", - "saveSuccessMsg": "Salvato con successo", - "upload": "Fare clic per caricare", + "title": "Impostazioni del Branding", + "logoSection": "Loghi", + "logo": "Logo", + "logoHelp": "Carica il logo della tua azienda in formato SVG o PNG.", + "squareLogo": "Logo Quadrato", + "squareLogoHelp": "Carica una versione quadrata del tuo logo in formato SVG o PNG.", + "colorFontSection": "Colori e Font", + "mainBrandingColor": "Colore Principale del Branding", + "mainBrandingColorHelp": "Seleziona il colore principale per il tuo branding.", + "editorHeaderColor": "Colore dell'intestazione dell'editor", + "editorHeaderColorHelp": "Seleziona il colore dell'intestazione dell'editor.", + "adminSidebarColor": "Colore della barra laterale amministrativa", + "adminSidebarColorHelp": "Seleziona il colore della barra laterale amministrativa.", + "editorSidebarColor": "Colore della barra laterale dell'editor", + "editorSidebarColorHelp": "Seleziona il colore della barra laterale dell'editor.", + "font": "Font", + "fontHelp": "Seleziona un font da Google Fonts per la tua applicazione.", + "textSection": "Testi e Pagine", + "errorPage": "Testo della pagina di errore", + "errorPageHelp": "Inserisci il testo visualizzato nella pagina di errore.", + "signUpPage": "Testo della pagina di registrazione", + "signUpPageHelp": "Inserisci il testo visualizzato nella pagina di registrazione.", + "loggedOutPage": "Testo della pagina di disconnessione", + "loggedOutPageHelp": "Inserisci il testo visualizzato nella pagina di disconnessione.", + "standardDescription": "Descrizione standard", + "standardDescriptionHelp": "Inserisci la descrizione standard per le informazioni meta SEO.", + "standardTitle": "Titolo standard", + "standardTitleHelp": "Inserisci il titolo standard per le informazioni meta SEO.", + "showDocumentation": "Mostra Documentazione", + "submitIssue": "Consenti invio problema", + "whatsNew": "Abilita \"Novità\"", + "saveButton": "Salva Impostazioni", + "errorPageImage": "Carica un'immagine per la pagina di errore in formato SVG o PNG.", + "signUpPageImage": "Carica un'immagine per la pagina di registrazione in formato SVG o PNG.", + "loggedOutPageImage": "Carica un'immagine per la pagina di disconnessione in formato SVG o PNG.", + "documentationLink": "Link alla documentazione", + "documentationLinkPlaceholder": "Inserisci l'URL della tua documentazione...", + "documentationLinkHelp": "Fornisci un URL valido che gli utenti possano visitare per la documentazione.", + "whatsNewSection": "Impostazioni documentazione", + "whatsNewLink": "Link alla documentazione", + "whatsNewLinkPlaceholder": "Inserisci l'URL della tua documentazione...", + "whatsNewLinkHelp": "Fornisci un URL valido che gli utenti possano visitare per le novità." }, "networkMessage": { ...en.networkMessage, diff --git a/client/packages/lowcoder/src/i18n/locales/pt.ts b/client/packages/lowcoder/src/i18n/locales/pt.ts index 643ffda314..91d078b727 100644 --- a/client/packages/lowcoder/src/i18n/locales/pt.ts +++ b/client/packages/lowcoder/src/i18n/locales/pt.ts @@ -2331,7 +2331,6 @@ export const pt = { "appUsage": "Logs de Uso do Aplicativo", "environments": "Ambientes", "premium": "Prémio", - "AppUsage": "Uso Global do Aplicativo", }, "memberSettings": { ...en.memberSettings, @@ -2770,16 +2769,48 @@ export const pt = { "branding": { ...en.branding, - "title": "Marca", - "logoTitle": "Logótipo", - "logoHelp": "Somente .JPG, .SVG ou .PNG", - "faviconTitle": "Favicon", - "faviconHelp": "Somente .JPG, .SVG ou .PNG", - "brandNameTitle": "Nome da Marca", - "headColorTitle": "Cor Principal", - "save": "Salvar", - "saveSuccessMsg": "Salvo com sucesso", - "upload": "Clique para Fazer Upload", + "title": "Configurações de Marca", + "logoSection": "Logotipos", + "logo": "Logotipo", + "logoHelp": "Envie o logotipo da sua empresa em formato SVG ou PNG.", + "squareLogo": "Logotipo Quadrado", + "squareLogoHelp": "Envie uma versão quadrada do seu logotipo em formato SVG ou PNG.", + "colorFontSection": "Cores e Fontes", + "mainBrandingColor": "Cor Principal da Marca", + "mainBrandingColorHelp": "Selecione a cor principal para a sua marca.", + "editorHeaderColor": "Cor do Cabeçalho do Editor", + "editorHeaderColorHelp": "Selecione a cor do cabeçalho do editor.", + "adminSidebarColor": "Cor da Barra Lateral do Administrador", + "adminSidebarColorHelp": "Selecione a cor da barra lateral do administrador.", + "editorSidebarColor": "Cor da Barra Lateral do Editor", + "editorSidebarColorHelp": "Selecione a cor da barra lateral do editor.", + "font": "Fonte", + "fontHelp": "Selecione uma fonte do Google Fonts para o seu aplicativo.", + "textSection": "Textos e Páginas", + "errorPage": "Texto da Página de Erro", + "errorPageHelp": "Insira o texto exibido na página de erro.", + "signUpPage": "Texto da Página de Cadastro", + "signUpPageHelp": "Insira o texto exibido na página de cadastro.", + "loggedOutPage": "Texto da Página de Logout", + "loggedOutPageHelp": "Insira o texto exibido na página de logout.", + "standardDescription": "Descrição Padrão", + "standardDescriptionHelp": "Insira a descrição padrão para as informações meta de SEO.", + "standardTitle": "Título Padrão", + "standardTitleHelp": "Insira o título padrão para as informações meta de SEO.", + "showDocumentation": "Exibir Documentação", + "submitIssue": "Permitir Enviar Problema", + "whatsNew": "Ativar \"Novidades\"", + "saveButton": "Salvar Configurações", + "errorPageImage": "Envie uma imagem para a página de erro no formato SVG ou PNG.", + "signUpPageImage": "Envie uma imagem para a página de cadastro no formato SVG ou PNG.", + "loggedOutPageImage": "Envie uma imagem para a página de saída no formato SVG ou PNG.", + "documentationLink": "Link da documentação", + "documentationLinkPlaceholder": "Insira o URL da sua documentação...", + "documentationLinkHelp": "Forneça um URL válido que os usuários possam visitar para acessar a documentação.", + "whatsNewSection": "Configurações de documentação", + "whatsNewLink": "Link da documentação", + "whatsNewLinkPlaceholder": "Insira o URL da sua documentação...", + "whatsNewLinkHelp": "Forneça um URL válido que os usuários possam visitar para acessar as novidades." }, "networkMessage": { ...en.networkMessage, diff --git a/client/packages/lowcoder/src/i18n/locales/ru.ts b/client/packages/lowcoder/src/i18n/locales/ru.ts index 7f7c09c24f..6a571d5840 100644 --- a/client/packages/lowcoder/src/i18n/locales/ru.ts +++ b/client/packages/lowcoder/src/i18n/locales/ru.ts @@ -2331,7 +2331,6 @@ export const ru = { "appUsage": "Журналы использования приложений", "environments": "Окружающая среда", "premium": "Премиум", - "AppUsage": "Глобальное использование приложений", }, "memberSettings": { ...en.memberSettings, @@ -2769,17 +2768,48 @@ export const ru = { }, "branding": { ...en.branding, - - "title": "Брендинг", - "logoTitle": "Логотип", - "logoHelp": "Только .JPG, .SVG или .PNG", - "faviconTitle": "Фавикон", - "faviconHelp": "Только .JPG, .SVG или .PNG", - "brandNameTitle": "Название бренда", - "headColorTitle": "Цвет головы", - "save": "Сохранить", - "saveSuccessMsg": "Сохранено успешно", - "upload": "Нажмите, чтобы загрузить", + "title": "Настройки брендинга", + "logoSection": "Логотипы", + "logo": "Логотип", + "logoHelp": "Загрузите логотип вашей компании в формате SVG или PNG.", + "squareLogo": "Квадратный логотип", + "squareLogoHelp": "Загрузите квадратную версию логотипа в формате SVG или PNG.", + "colorFontSection": "Цвета и шрифты", + "mainBrandingColor": "Основной цвет бренда", + "mainBrandingColorHelp": "Выберите основной цвет для вашего бренда.", + "editorHeaderColor": "Цвет заголовка редактора", + "editorHeaderColorHelp": "Выберите цвет заголовка редактора.", + "adminSidebarColor": "Цвет боковой панели администратора", + "adminSidebarColorHelp": "Выберите цвет боковой панели администратора.", + "editorSidebarColor": "Цвет боковой панели редактора", + "editorSidebarColorHelp": "Выберите цвет боковой панели редактора.", + "font": "Шрифт", + "fontHelp": "Выберите шрифт из Google Fonts для вашего приложения.", + "textSection": "Тексты и страницы", + "errorPage": "Текст страницы ошибки", + "errorPageHelp": "Введите текст, который отображается на странице ошибки.", + "signUpPage": "Текст страницы регистрации", + "signUpPageHelp": "Введите текст, который отображается на странице регистрации.", + "loggedOutPage": "Текст страницы выхода", + "loggedOutPageHelp": "Введите текст, который отображается на странице выхода.", + "standardDescription": "Стандартное описание", + "standardDescriptionHelp": "Введите стандартное описание для SEO-метаинформации.", + "standardTitle": "Стандартный заголовок", + "standardTitleHelp": "Введите стандартный заголовок для SEO-метаинформации.", + "showDocumentation": "Показать документацию", + "submitIssue": "Разрешить отправку проблемы", + "whatsNew": "Включить \"Что нового\"", + "saveButton": "Сохранить настройки", + "errorPageImage": "Загрузите изображение для страницы ошибки в формате SVG или PNG.", + "signUpPageImage": "Загрузите изображение для страницы регистрации в формате SVG или PNG.", + "loggedOutPageImage": "Загрузите изображение для страницы выхода в формате SVG или PNG.", + "documentationLink": "Ссылка на документацию", + "documentationLinkPlaceholder": "Введите URL для вашей документации...", + "documentationLinkHelp": "Укажите действительный URL, который пользователи могут посетить для просмотра документации.", + "whatsNewSection": "Настройки документации", + "whatsNewLink": "Ссылка на документацию", + "whatsNewLinkPlaceholder": "Введите URL для вашей документации...", + "whatsNewLinkHelp": "Укажите действительный URL, который пользователи могут посетить для просмотра новостей." }, "networkMessage": { ...en.networkMessage, diff --git a/client/packages/lowcoder/src/i18n/locales/zh.ts b/client/packages/lowcoder/src/i18n/locales/zh.ts index 5a0ea8d0f9..8754c9c866 100644 --- a/client/packages/lowcoder/src/i18n/locales/zh.ts +++ b/client/packages/lowcoder/src/i18n/locales/zh.ts @@ -1848,7 +1848,6 @@ export const zh: typeof en = { appUsage: "应用程序使用日志", environments: "环境", premium: "高级版", - "AppUsage": "全球应用程序使用情况", }, memberSettings: { ...en.memberSettings, @@ -2204,19 +2203,53 @@ export const zh: typeof en = { "showHeaderInPublicApps": "在公共视图中显示标题", "showHeaderInPublicAppsHelp": "设置所有应用程序的标题在公共视图中的可见性", }, - branding: { + + "branding": { ...en.branding, - title: "品牌", - logoTitle: "Logo", - logoHelp: "仅支持 .JPG、.SVG 或 .PNG 格式", - faviconTitle: "Favicon", - faviconHelp: "仅支持 .JPG、.SVG 或 .PNG 格式", - brandNameTitle: "品牌名称", - headColorTitle: "头部颜色", - save: "保存", - saveSuccessMsg: "保存成功", - upload: "点击上传", + "title": "品牌设置", + "logoSection": "标志", + "logo": "标志", + "logoHelp": "上传公司标志,支持 SVG 或 PNG 格式。", + "squareLogo": "方形标志", + "squareLogoHelp": "上传方形版本的标志,支持 SVG 或 PNG 格式。", + "colorFontSection": "颜色和字体", + "mainBrandingColor": "主品牌颜色", + "mainBrandingColorHelp": "选择品牌的主要颜色。", + "editorHeaderColor": "编辑器头部颜色", + "editorHeaderColorHelp": "选择编辑器头部的颜色。", + "adminSidebarColor": "管理员侧边栏颜色", + "adminSidebarColorHelp": "选择管理员侧边栏的颜色。", + "editorSidebarColor": "编辑器侧边栏颜色", + "editorSidebarColorHelp": "选择编辑器侧边栏的颜色。", + "font": "字体", + "fontHelp": "从 Google Fonts 中选择您的应用字体。", + "textSection": "文本和页面", + "errorPage": "错误页面文本", + "errorPageHelp": "输入显示在错误页面上的文本。", + "signUpPage": "注册页面文本", + "signUpPageHelp": "输入显示在注册页面上的文本。", + "loggedOutPage": "注销页面文本", + "loggedOutPageHelp": "输入显示在注销页面上的文本。", + "standardDescription": "标准描述", + "standardDescriptionHelp": "输入 SEO 元信息的标准描述。", + "standardTitle": "标准标题", + "standardTitleHelp": "输入 SEO 元信息的标准标题。", + "showDocumentation": "显示文档", + "submitIssue": "允许提交问题", + "whatsNew": "启用“新功能”", + "saveButton": "保存设置", + "errorPageImage": "上传一个用于错误页面的SVG或PNG格式的图片。", + "signUpPageImage": "上传一个用于注册页面的SVG或PNG格式的图片。", + "loggedOutPageImage": "上传一个用于注销页面的SVG或PNG格式的图片。", + "documentationLink": "文档链接", + "documentationLinkPlaceholder": "输入您的文档链接...", + "documentationLinkHelp": "提供一个有效的 URL 用户可以访问查看文档。", + "whatsNewSection": "文档设置", + "whatsNewLink": "文档链接", + "whatsNewLinkPlaceholder": "输入您的文档链接...", + "whatsNewLinkHelp": "提供一个有效的 URL 用户可以访问查看最新消息。" }, + networkMessage: { ...en.networkMessage, 400: "请求参数错误", diff --git a/client/packages/lowcoder/src/pages/ApplicationV2/CreateDropdown.tsx b/client/packages/lowcoder/src/pages/ApplicationV2/CreateDropdown.tsx index 787d3a2439..d6dd554f1b 100644 --- a/client/packages/lowcoder/src/pages/ApplicationV2/CreateDropdown.tsx +++ b/client/packages/lowcoder/src/pages/ApplicationV2/CreateDropdown.tsx @@ -244,7 +244,7 @@ export const CreateDropdown = (props: { defaultVisible?: boolean; mode: HomeLayo trigger={["hover"]} getPopupContainer={(node) => node} onOpenChange={() => setCreateDropdownVisible(!createDropdownVisible)} - dropdownRender={() => ( + popupRender={() => ( <CreateDropdownMenu items={[ getCreateMenuItem(HomeResTypeEnum.Application, mode), diff --git a/client/packages/lowcoder/src/pages/ApplicationV2/HomeResCard.tsx b/client/packages/lowcoder/src/pages/ApplicationV2/HomeResCard.tsx index 38f38f1bfe..04ef180dc0 100644 --- a/client/packages/lowcoder/src/pages/ApplicationV2/HomeResCard.tsx +++ b/client/packages/lowcoder/src/pages/ApplicationV2/HomeResCard.tsx @@ -1,5 +1,5 @@ import { TacoButton } from "lowcoder-design/src/components/button" -import { useState } from "react"; +import { ReactNode, useState } from "react"; import { useDispatch } from "react-redux"; import { updateAppMetaAction } from "redux/reduxActions/applicationActions"; import styled from "styled-components"; @@ -24,6 +24,7 @@ import { TypographyText } from "../../components/TypographyText"; import { useParams } from "react-router-dom"; import { messageInstance } from "lowcoder-design/src/components/GlobalInstances"; import {FolderIcon} from "icons"; +import { BrandedIcon } from "@lowcoder-ee/components/BrandedIcon"; const ExecButton = styled(TacoButton)` width: 52px; @@ -167,13 +168,15 @@ export function HomeResCard(props: { res: HomeRes; onMove: (res: HomeRes) => voi <Wrapper> <Card> {Icon && ( - <Icon width={"42px"} height={"42px"} style={ - { - color: iconColor, - marginRight: "10px", - flexShrink: 0 - } - } /> + <BrandedIcon> + <Icon width={"42px"} height={"42px"} style={ + { + color: iconColor, + marginRight: "10px", + flexShrink: 0 + } + } /> + </BrandedIcon> )} <CardInfo onClick={(e) => { diff --git a/client/packages/lowcoder/src/pages/ApplicationV2/HomeTableView.tsx b/client/packages/lowcoder/src/pages/ApplicationV2/HomeTableView.tsx index 9ca46832a2..ff1ed815fe 100644 --- a/client/packages/lowcoder/src/pages/ApplicationV2/HomeTableView.tsx +++ b/client/packages/lowcoder/src/pages/ApplicationV2/HomeTableView.tsx @@ -22,6 +22,7 @@ import { MoveToFolderModal } from "./MoveToFolderModal"; import { trans } from "../../i18n"; import { useParams } from "react-router-dom"; import { messageInstance } from "lowcoder-design/src/components/GlobalInstances"; +import { BrandedIcon } from "@lowcoder-ee/components/BrandedIcon"; const OperationWrapper = styled.div` display: flex; @@ -119,11 +120,13 @@ export const HomeTableView = (props: { resources: HomeRes[], setModify?: any, mo return ( <NameWrapper> {Icon && ( - <Icon - width={"24px"} - height={"24px"} - style={{ marginRight: "10px", flexShrink: 0 }} - /> + <BrandedIcon> + <Icon + width={"24px"} + height={"24px"} + style={{ marginRight: "10px", flexShrink: 0 }} + /> + </BrandedIcon> )} <TypographyText ellipsis={true} diff --git a/client/packages/lowcoder/src/pages/ApplicationV2/MoveToFolderModal.tsx b/client/packages/lowcoder/src/pages/ApplicationV2/MoveToFolderModal.tsx index 34bd6b9a1b..2e3d4888e1 100644 --- a/client/packages/lowcoder/src/pages/ApplicationV2/MoveToFolderModal.tsx +++ b/client/packages/lowcoder/src/pages/ApplicationV2/MoveToFolderModal.tsx @@ -56,7 +56,7 @@ export const MoveToFolderModal = (props: { source?: HomeRes; onClose: () => void <CustomModal open={!!props.source} onCancel={props.onClose} - destroyOnClose={true} + destroyOnHidden={true} width="408px" centered={true} title={trans("home.moveToFolder")} diff --git a/client/packages/lowcoder/src/pages/ApplicationV2/TrashTableView.tsx b/client/packages/lowcoder/src/pages/ApplicationV2/TrashTableView.tsx index 424d675073..11323e56dc 100644 --- a/client/packages/lowcoder/src/pages/ApplicationV2/TrashTableView.tsx +++ b/client/packages/lowcoder/src/pages/ApplicationV2/TrashTableView.tsx @@ -9,6 +9,7 @@ import { deleteApplication, restoreApplication } from "../../redux/reduxActions/ import { HomeRes } from "./HomeLayout"; import { trans, transToNode } from "../../i18n"; import { messageInstance } from "lowcoder-design/src/components/GlobalInstances"; +import { BrandedIcon } from "@lowcoder-ee/components/BrandedIcon"; const OperationWrapper = styled.div` display: flex; @@ -59,11 +60,13 @@ export const TrashTableView = (props: { resources: HomeRes[] , setModify: any, m return ( <NameWrapper> {Icon && ( - <Icon - width={"24px"} - height={"24px"} - style={{ marginRight: "10px", flexShrink: 0 }} - /> + <BrandedIcon> + <Icon + width={"24px"} + height={"24px"} + style={{ marginRight: "10px", flexShrink: 0 }} + /> + </BrandedIcon> )} {item.name} </NameWrapper> diff --git a/client/packages/lowcoder/src/pages/ApplicationV2/components/CreateApiKeyModal.tsx b/client/packages/lowcoder/src/pages/ApplicationV2/components/CreateApiKeyModal.tsx index 9c52cafbe1..ebe83b3cca 100644 --- a/client/packages/lowcoder/src/pages/ApplicationV2/components/CreateApiKeyModal.tsx +++ b/client/packages/lowcoder/src/pages/ApplicationV2/components/CreateApiKeyModal.tsx @@ -147,7 +147,7 @@ function CreateApiKeyModal(props: CreateApiKeyModalProps) { }} onOk={handleOk} onCancel={handleCancel} - destroyOnClose + destroyOnHidden afterClose={() => form.resetFields()} > <FormStyled diff --git a/client/packages/lowcoder/src/pages/ApplicationV2/index.tsx b/client/packages/lowcoder/src/pages/ApplicationV2/index.tsx index a62cdd0f9e..ddb1aaa9db 100644 --- a/client/packages/lowcoder/src/pages/ApplicationV2/index.tsx +++ b/client/packages/lowcoder/src/pages/ApplicationV2/index.tsx @@ -15,16 +15,15 @@ import { import { getUser, isFetchingUser } from "redux/selectors/usersSelectors"; import { useDispatch, useSelector } from "react-redux"; import { + EllipsisTextCss, + FolderIcon, // EditPopover, HomeDataSourceIcon, NewsIcon, WorkspacesIcon, - // HomeModuleIcon, HomeQueryLibraryIcon, HomeSettingIcon, SupportIcon, - // PlusIcon, - // PointIcon, RecyclerIcon, MarketplaceIcon, AppsIcon, @@ -45,15 +44,10 @@ import { UserProfileView } from "./UserProfileView"; import { NewsView } from "./NewsView"; import { OrgView } from "./OrgView"; import styled, { css } from "styled-components"; -// import history from "../../util/history"; import { FolderView } from "./FolderView"; import { TrashView } from "./TrashView"; import { MarketplaceView } from "./MarketplaceView"; -// import { SideBarItemType } from "../../components/layout/SideBarSection"; -// import InviteDialog from "../common/inviteDialog"; import { fetchFolderElements, updateFolder } from "../../redux/reduxActions/folderActions"; -// import { ModuleView } from "./ModuleView"; -// import { useCreateFolder } from "./useCreateFolder"; import { trans } from "../../i18n"; import { foldersSelector } from "../../redux/selectors/folderSelector"; import Setting from "pages/setting"; @@ -61,9 +55,12 @@ import { Support } from "pages/support"; import { Subscription } from "pages/setting/subscriptions" // import { TypographyText } from "../../components/TypographyText"; // import { messageInstance } from "lowcoder-design/src/components/GlobalInstances"; -import { isEE } from "util/envUtils"; import { getSubscriptions } from 'redux/selectors/subscriptionSelectors'; import { SubscriptionProductsEnum } from '@lowcoder-ee/constants/subscriptionConstants'; +import { EnterpriseProvider } from "@lowcoder-ee/util/context/EnterpriseContext"; +import { SimpleSubscriptionContextProvider } from "@lowcoder-ee/util/context/SimpleSubscriptionContext"; +import { selectIsLicenseActive } from "redux/selectors/enterpriseSelectors"; + // adding App Editor, so we can show Apps inside the Admin Area import AppEditor from "../editor/AppEditor"; @@ -100,6 +97,9 @@ export default function ApplicationHome() { const subscriptions = useSelector(getSubscriptions); const deploymentId = useSelector(getDeploymentId); + const isOrgAdmin = org?.createdBy == user.id ? true : false; + const isLicenseActive = useSelector(selectIsLicenseActive); + useEffect(() => { if (user.currentOrgId) { dispatch(fetchDeploymentIdAction()); @@ -159,158 +159,137 @@ export default function ApplicationHome() { return ( <DivStyled> <LoadingBarHideTrigger /> - <Layout - sections={[ - { - items: [ - { - text: <TabLabel>{trans("home.profile")}</TabLabel>, - routePath: USER_PROFILE_URL, - routeComp: UserProfileView, - icon: ({ selected, ...otherProps }) => selected ? <UserIcon {...otherProps} width={"24px"}/> : <UserIcon {...otherProps} width={"24px"}/>, - mobileVisible: true, - }, - { - text: <TabLabel>{trans("home.news")}</TabLabel>, - routePath: NEWS_URL, - routeComp: NewsView, - icon: ({ selected, ...otherProps }) => selected ? <NewsIcon {...otherProps} width={"24px"}/> : <NewsIcon {...otherProps} width={"24px"}/>, - visible: ({ user }) => user.orgDev, - style: { color: "red" }, - mobileVisible: false, - }, - { - text: <TabLabel>{trans("home.orgHome")}</TabLabel>, - routePath: ORG_HOME_URL, - routePathExact: false, - routeComp: OrgView, - icon: ({ selected, ...otherProps }) => selected ? <WorkspacesIcon {...otherProps} width={"24px"}/> : <WorkspacesIcon {...otherProps} width={"24px"}/>, - visible: ({ user }) => !user.orgDev, - mobileVisible: true, - }, + {/* <EnterpriseProvider> */} + {/* <SimpleSubscriptionContextProvider> */} + <Layout + sections={[ { - text: <TabLabel>{trans("home.marketplace")}</TabLabel>, - routePath: MARKETPLACE_URL, - routePathExact: false, - routeComp: MarketplaceView, - icon: ({ selected, ...otherProps }) => selected ? <MarketplaceIcon {...otherProps} width={"24px"}/> : <MarketplaceIcon {...otherProps} width={"24px"}/>, - mobileVisible: false, + items: [ + { + text: <TabLabel>{trans("home.profile")}</TabLabel>, + routePath: USER_PROFILE_URL, + routeComp: UserProfileView, + icon: ({ selected, ...otherProps }) => selected ? <UserIcon {...otherProps} width={"24px"}/> : <UserIcon {...otherProps} width={"24px"}/>, + }, + { + text: <TabLabel>{trans("home.news")}</TabLabel>, + routePath: NEWS_URL, + routeComp: NewsView, + icon: ({ selected, ...otherProps }) => selected ? <NewsIcon {...otherProps} width={"24px"}/> : <NewsIcon {...otherProps} width={"24px"}/>, + visible: ({ user }) => user.orgDev, + style: { color: "red" }, + }, + { + text: <TabLabel>{trans("home.orgHome")}</TabLabel>, + routePath: ORG_HOME_URL, + routePathExact: false, + routeComp: OrgView, + icon: ({ selected, ...otherProps }) => selected ? <WorkspacesIcon {...otherProps} width={"24px"}/> : <WorkspacesIcon {...otherProps} width={"24px"}/>, + visible: ({ user }) => !user.orgDev, + }, + { + text: <TabLabel>{trans("home.marketplace")}</TabLabel>, + routePath: MARKETPLACE_URL, + routePathExact: false, + routeComp: MarketplaceView, + icon: ({ selected, ...otherProps }) => selected ? <MarketplaceIcon {...otherProps} width={"24px"}/> : <MarketplaceIcon {...otherProps} width={"24px"}/>, + }, + ] }, - ] - }, - { - items: [ - // { - // text: <MoreFoldersWrapper>{trans("home.allFolders")}</MoreFoldersWrapper>, - // routePath: FOLDERS_URL, - // routeComp: RootFolderListView, - // icon: ({ selected, ...otherProps }) => selected ? <FolderIcon {...otherProps} width={"24px"}/> : <FolderIcon {...otherProps} width={"24px"}/>, - // }, { - text: <TabLabel>{trans("home.allApplications")}</TabLabel>, - routePath: ALL_APPLICATIONS_URL, - routeComp: HomeView, - icon: ({ selected, ...otherProps }) => selected ? <AppsIcon {...otherProps} width={"24px"}/> : <AppsIcon {...otherProps} width={"24px"}/>, - mobileVisible: true, + items: [ + { + text: <TabLabel>{trans("home.allApplications")}</TabLabel>, + routePath: ALL_APPLICATIONS_URL, + routeComp: HomeView, + icon: ({ selected, ...otherProps }) => selected ? <AppsIcon {...otherProps} width={"24px"}/> : <AppsIcon {...otherProps} width={"24px"}/>, + }, + ], }, - ], - }, - - { - items: [ - + { - text: <TabLabel>{trans("home.datasource")}</TabLabel>, - routePath: DATASOURCE_URL, - routePathExact: false, - routeComp: DatasourceHome, - icon: ({ selected, ...otherProps }) => selected ? <HomeDataSourceIcon {...otherProps} width={"24px"}/> : <HomeDataSourceIcon {...otherProps} width={"24px"}/>, - visible: ({ user }) => user.orgDev, - onSelected: (_, currentPath) => currentPath.split("/")[1] === "datasource", - mobileVisible: false, + items: [ + { + text: <TabLabel>{trans("home.datasource")}</TabLabel>, + routePath: DATASOURCE_URL, + routePathExact: false, + routeComp: DatasourceHome, + icon: ({ selected, ...otherProps }) => selected ? <HomeDataSourceIcon {...otherProps} width={"24px"}/> : <HomeDataSourceIcon {...otherProps} width={"24px"}/>, + visible: ({ user }) => user.orgDev, + onSelected: (_, currentPath) => currentPath.split("/")[1] === "datasource", + mobileVisible: false, + }, + { + text: <TabLabel>{trans("home.queryLibrary")}</TabLabel>, + routePath: QUERY_LIBRARY_URL, + routeComp: QueryLibraryEditor, + icon: ({ selected, ...otherProps }) => selected ? <HomeQueryLibraryIcon {...otherProps} width={"24px"}/> : <HomeQueryLibraryIcon {...otherProps} width={"24px"}/>, + visible: ({ user }) => user.orgDev, + mobileVisible: false, + } + ], }, - { - text: <TabLabel>{trans("home.queryLibrary")}</TabLabel>, - routePath: QUERY_LIBRARY_URL, - routeComp: QueryLibraryEditor, - icon: ({ selected, ...otherProps }) => selected ? <HomeQueryLibraryIcon {...otherProps} width={"24px"}/> : <HomeQueryLibraryIcon {...otherProps} width={"24px"}/>, - visible: ({ user }) => user.orgDev, - mobileVisible: false, - } - ], - }, - - // Show Subscription if not yet subscribed - !supportSubscription && user.orgDev ? { - items: [ - { - text: <TabLabel>{trans("home.support")}</TabLabel>, - routePath: SUBSCRIPTION_SETTING, - routeComp: Subscription, - routePathExact: false, - icon: ({ selected, ...otherProps }) => selected ? <SupportIcon {...otherProps} width={"24px"}/> : <SupportIcon {...otherProps} width={"24px"}/>, - mobileVisible: true, - }, - ], - } : { items: [] }, - // show Support Section when an active Subscription exist - supportSubscription && user.orgDev ? { - items: [ + // Show Subscription if not yet subscribed else Support Pages + { - text: <TabLabel>{trans("home.support")}</TabLabel>, - routePath: SUPPORT_URL, - routeComp: Support, - routePathExact: false, - icon: ({ selected, ...otherProps }) => selected ? <SupportIcon {...otherProps} width={"24px"}/> : <SupportIcon {...otherProps} width={"24px"}/>, - mobileVisible: true, + items: [ + { + text: <TabLabel>{trans("home.support")}</TabLabel>, + routePath: supportSubscription ? SUPPORT_URL : SUBSCRIPTION_SETTING, + routeComp: supportSubscription ? Support : Setting, + routePathExact: false, + icon: ({ selected, ...otherProps }) => <SupportIcon {...otherProps} width={"24px"} />, + mobileVisible: true, + visible: ({ user }) => user.orgDev + } + ] }, - ], - } : { items: [] }, - { - items: [ { - text: <TabLabel>{trans("settings.title")}</TabLabel>, - routePath: SETTING_URL, - routePathExact: false, - routeComp: Setting, - icon: ({ selected, ...otherProps }) => selected ? <HomeSettingIcon {...otherProps} width={"24px"}/> : <HomeSettingIcon {...otherProps} width={"24px"}/>, - visible: ({ user }) => user.orgDev, - onSelected: (_, currentPath) => currentPath.split("/")[1] === "setting", - mobileVisible: false, - } - ] - }, + items: [ + { + text: <TabLabel>{trans("settings.title")}</TabLabel>, + routePath: SETTING_URL, + routePathExact: false, + routeComp: Setting, + icon: ({ selected, ...otherProps }) => selected ? <HomeSettingIcon {...otherProps} width={"24px"}/> : <HomeSettingIcon {...otherProps} width={"24px"}/>, + visible: ({ user }) => user.orgDev, + onSelected: (_, currentPath) => currentPath.split("/")[1] === "setting", + } + ] + }, - { - items: [ { - text: <TabLabel>{trans("home.trash")}</TabLabel>, - routePath: TRASH_URL, - routeComp: TrashView, - icon: ({ selected, ...otherProps }) => selected ? <RecyclerIcon {...otherProps} width={"24px"}/> : <RecyclerIcon {...otherProps} width={"24px"}/>, - visible: ({ user }) => user.orgDev, - mobileVisible: false, + items: [ + { + text: <TabLabel>{trans("home.trash")}</TabLabel>, + routePath: TRASH_URL, + routeComp: TrashView, + icon: ({ selected, ...otherProps }) => selected ? <RecyclerIcon {...otherProps} width={"24px"}/> : <RecyclerIcon {...otherProps} width={"24px"}/>, + visible: ({ user }) => user.orgDev, + }, + ], }, - ], - }, - // this we need to show the Folders view in the Admin Area - { - items: [ + // this we need to show the Folders view in the Admin Area { - text: "", - routePath: FOLDER_URL, - routeComp: FolderView, - visible: () => false, + items: [ + { + text: "", + routePath: FOLDER_URL, + routeComp: FolderView, + visible: () => false, + } + ] } - ] - } - ]} - /> + ]} + /> + {/* </SimpleSubscriptionContextProvider> */} + {/* </EnterpriseProvider> */} + </DivStyled> ); } diff --git a/client/packages/lowcoder/src/pages/common/copyModal.tsx b/client/packages/lowcoder/src/pages/common/copyModal.tsx index cf8bf658dd..595fba67f4 100644 --- a/client/packages/lowcoder/src/pages/common/copyModal.tsx +++ b/client/packages/lowcoder/src/pages/common/copyModal.tsx @@ -38,7 +38,7 @@ export function CopyModal(props: CopyModalProps) { title={trans("home.copyModalTitle", {name: appName})} open={visible} okButtonProps={{ disabled: !copyName }} - destroyOnClose={true} + destroyOnHidden={true} onCancel={close} showCancelButton showOkButton diff --git a/client/packages/lowcoder/src/pages/common/header.tsx b/client/packages/lowcoder/src/pages/common/header.tsx index d55455dab9..dc17ccb373 100644 --- a/client/packages/lowcoder/src/pages/common/header.tsx +++ b/client/packages/lowcoder/src/pages/common/header.tsx @@ -64,9 +64,14 @@ import Avatar from 'antd/es/avatar'; import UserApi from "@lowcoder-ee/api/userApi"; import { validateResponse } from "@lowcoder-ee/api/apiUtils"; import ProfileImage from "./profileImage"; + +import { buildMaterialPreviewURL } from "@lowcoder-ee/util/materialUtils"; +import { getBrandingSetting } from "@lowcoder-ee/redux/selectors/enterpriseSelectors"; + import GitHubButton from 'react-github-btn'; import { Row, Col } from "antd"; + const { Countdown } = Statistic; const { Text } = Typography; @@ -323,6 +328,10 @@ const DropdownMenuStyled = styled(DropdownMenu)` } `; +const BrandLogo = styled.img` + height: 28px; +` + function HeaderProfile(props: { user: User }) { const { user } = props; const fetchingUser = useSelector(isFetchingUser); @@ -376,6 +385,7 @@ export default function Header(props: HeaderProps) { const dispatch = useDispatch(); const showAppSnapshot = useSelector(showAppSnapshotSelector); const {selectedSnapshot, isArchivedSnapshot} = useSelector(getSelectedAppSnapshot); + const brandingSettings = useSelector(getBrandingSetting); const { appType } = useContext(ExternalEditorContext); const [editName, setEditName] = useState(false); const [editing, setEditing] = useState(false); @@ -426,12 +436,17 @@ export default function Header(props: HeaderProps) { editorState.setEditorModeStatus(value); }; - const headerStart = ( <> <StyledLink onClick={() => history.push(ALL_APPLICATIONS_URL)}> {/* {REACT_APP_LOWCODER_SHOW_BRAND === 'true' ? REACT_APP_LOWCODER_CUSTOM_LOGO_SQUARE !== "" ? <img src={REACT_APP_LOWCODER_CUSTOM_LOGO_SQUARE } height={24} width={24} alt="logo" /> :<LogoIcon /> : <LogoHome />} */} - <LogoHome /> + { brandingSettings?.config_set?.logo + ? ( + Boolean(brandingSettings?.orgId) + ? <BrandLogo src={buildMaterialPreviewURL(brandingSettings?.config_set?.logo)} /> + : <BrandLogo src={brandingSettings?.config_set?.logo} /> + ) : <LogoHome /> + } </StyledLink> {editName ? ( <Wrapper> @@ -613,7 +628,7 @@ export default function Header(props: HeaderProps) { className="cypress-header-dropdown" placement="bottomRight" trigger={["click"]} - dropdownRender={() => ( + popupRender={() => ( <DropdownMenuStyled style={{ minWidth: "110px", borderRadius: "4px" }} onClick={(e) => { @@ -676,6 +691,9 @@ export default function Header(props: HeaderProps) { headerStart={headerStart} headerMiddle={headerMiddle} headerEnd={headerEnd} + style={{ + backgroundColor: brandingSettings?.config_set?.appHeaderColor + }} /> ); } @@ -683,25 +701,34 @@ export default function Header(props: HeaderProps) { // header in manager page export function AppHeader() { const user = useSelector(getUser); - const brandingConfig = useSelector(getBrandingConfig); + const brandingSettings = useSelector(getBrandingSetting); + const headerStart = ( <StyledLink onClick={() => history.push(ALL_APPLICATIONS_URL)}> {/* {REACT_APP_LOWCODER_SHOW_BRAND === 'true' ? REACT_APP_LOWCODER_CUSTOM_LOGO !== "" ? <img src={REACT_APP_LOWCODER_CUSTOM_LOGO} height={28} alt="logo" /> :<LogoWithName branding={!user.orgDev} /> : <LogoHome />} */} - <LogoHome /> + { brandingSettings?.config_set?.logo + ? ( + Boolean(brandingSettings?.orgId) + ? <BrandLogo src={buildMaterialPreviewURL(brandingSettings?.config_set?.logo)} /> + : <BrandLogo src={brandingSettings?.config_set?.logo} /> + ) : <LogoHome /> + } </StyledLink> ); const headerEnd = ( <Row align="middle" gutter={32}> <Col style={{marginTop : "6px"}}> - <GitHubButton - href="https://github.com/lowcoder-org/lowcoder" - data-color-scheme="no-preference: light; light: light; dark: dark;" - data-size="small" - data-show-count="true" - aria-label="Star lowcoder-org/lowcoder on GitHub" - > - Star - </GitHubButton> + {user.orgDev && ( + <GitHubButton + href="https://github.com/lowcoder-org/lowcoder" + data-color-scheme="no-preference: light; light: light; dark: dark;" + data-size="small" + data-show-count="true" + aria-label="Star lowcoder-org/lowcoder on GitHub" + > + Star + </GitHubButton> + )} </Col> <Col> <HeaderProfile user={user} /> @@ -712,9 +739,9 @@ export function AppHeader() { <LayoutHeader headerStart={headerStart} headerEnd={headerEnd} - style={ - user.orgDev ? {} : { backgroundColor: brandingConfig?.headerColor } - } + style={{ + backgroundColor: brandingSettings?.config_set?.appHeaderColor + }} /> ); } diff --git a/client/packages/lowcoder/src/pages/common/headerStartDropdown.tsx b/client/packages/lowcoder/src/pages/common/headerStartDropdown.tsx index 3170f98710..498a857f07 100644 --- a/client/packages/lowcoder/src/pages/common/headerStartDropdown.tsx +++ b/client/packages/lowcoder/src/pages/common/headerStartDropdown.tsx @@ -131,7 +131,7 @@ export function HeaderStartDropdown(props: { setEdit: () => void, isViewMarketpl placement="bottomLeft" trigger={["click"]} disabled={showAppSnapshot} - dropdownRender={() => ( + popupRender={() => ( <DropdownMenuStyled style={{ minWidth: "136px", maxWidth: "288px", borderRadius: "4px" }} onClick={(e) => { diff --git a/client/packages/lowcoder/src/pages/common/help.tsx b/client/packages/lowcoder/src/pages/common/help.tsx index 776dc86b34..dddf129d39 100644 --- a/client/packages/lowcoder/src/pages/common/help.tsx +++ b/client/packages/lowcoder/src/pages/common/help.tsx @@ -11,7 +11,7 @@ import { showCustomerServicePanel, showHelpDropdown, } from "@lowcoder-ee/pages/common/customerService"; -import React, { useCallback, useEffect, useState } from "react"; +import React, { useCallback, useEffect, useMemo, useState } from "react"; import { useDispatch, useSelector } from "react-redux"; import { createApplication } from "redux/reduxActions/applicationActions"; import history from "util/history"; @@ -28,6 +28,7 @@ import { QuestionIcon, UpgradeIcon } from "lowcoder-design"; import { trans } from "i18n"; import { localEnv } from "util/envUtils"; import { isPublicApplication } from "@lowcoder-ee/redux/selectors/applicationSelector"; +import { getBrandingSetting } from "@lowcoder-ee/redux/selectors/enterpriseSelectors"; const StyledMenu = styled(DropdownMenu)<{ $edit: boolean | string }>` ${(props) => @@ -191,6 +192,22 @@ function HelpDropdownComp(props: HelpDropdownProps) { const [toolTipContent, setToolTipContent] = useState<React.ReactNode>(null); const [showDropdown, setShowDropdown] = useState(false); const isPublicApp = useSelector(isPublicApplication); + const brandingSettings = useSelector(getBrandingSetting); + + const showDocLink = useMemo(() => { + if (!Boolean(brandingSettings)) return Boolean(docHomeUrl); + return brandingSettings?.config_set?.showDocumentation; + }, [brandingSettings?.config_set?.showDocumentation]); + + const showSubmitIssueLink = useMemo(() => { + if (!Boolean(brandingSettings)) return Boolean(issueUrl); + return brandingSettings?.config_set?.submitIssue; + }, [brandingSettings?.config_set?.submitIssue]); + + const showWhatsNewLink = useMemo(() => { + if (!Boolean(brandingSettings)) return Boolean(changeLogDocUrl); + return brandingSettings?.config_set?.whatsNew; + }, [brandingSettings?.config_set?.whatsNew]); const closeTooltip = () => { // turn of tooltip @@ -255,6 +272,9 @@ function HelpDropdownComp(props: HelpDropdownProps) { ); return; case "docs": + if (brandingSettings?.config_set?.documentationLink) { + return window.open(brandingSettings?.config_set?.documentationLink); + } window.open(docHomeUrl); return; case "issue": @@ -267,6 +287,9 @@ function HelpDropdownComp(props: HelpDropdownProps) { props.setShowShortcutList?.(true); return; case "changeLog": + if (brandingSettings?.config_set?.whatsNewLink) { + return window.open(brandingSettings?.config_set?.whatsNewLink); + } window.open(changeLogDocUrl); return; } @@ -302,7 +325,7 @@ function HelpDropdownComp(props: HelpDropdownProps) { ), } : null, - { + showDocLink ? { key: "docs", label: ( <ItemWrapper> @@ -310,8 +333,8 @@ function HelpDropdownComp(props: HelpDropdownProps) { <span>{trans("help.docs")}</span> </ItemWrapper> ), - }, - issueUrl + } : null, + showSubmitIssueLink ? { key: "issue", label: ( @@ -353,7 +376,7 @@ function HelpDropdownComp(props: HelpDropdownProps) { ), } : null, - changeLogDocUrl + showWhatsNewLink ? { key: "changeLog", label: ( @@ -431,7 +454,7 @@ function HelpDropdownComp(props: HelpDropdownProps) { <ShortcutListPopup setShowShortcutList={props.setShowShortcutList} /> )} <Dropdown - dropdownRender={() => overlayMenus} + popupRender={() => overlayMenus} placement="topRight" trigger={["click"]} open={showDropdown} diff --git a/client/packages/lowcoder/src/pages/common/inviteDialog.tsx b/client/packages/lowcoder/src/pages/common/inviteDialog.tsx index d4c6233b09..49498788ff 100644 --- a/client/packages/lowcoder/src/pages/common/inviteDialog.tsx +++ b/client/packages/lowcoder/src/pages/common/inviteDialog.tsx @@ -148,7 +148,7 @@ function InviteDialog(props: { <CustomModal open={inviteDialogVisible} title={trans("memberSettings.inviteUser")} - destroyOnClose + destroyOnHidden onCancel={() => setInviteDialogVisible(false)} showOkButton={false} showCancelButton={false} diff --git a/client/packages/lowcoder/src/pages/common/previewHeader.tsx b/client/packages/lowcoder/src/pages/common/previewHeader.tsx index f8d4cba2e0..bf73cd9803 100644 --- a/client/packages/lowcoder/src/pages/common/previewHeader.tsx +++ b/client/packages/lowcoder/src/pages/common/previewHeader.tsx @@ -26,6 +26,8 @@ import MobileOutlined from "@ant-design/icons/MobileOutlined"; import TabletOutlined from "@ant-design/icons/TabletOutlined"; import DesktopOutlined from "@ant-design/icons/DesktopOutlined"; import { DeviceOrientation, DeviceType, EditorContext } from "@lowcoder-ee/comps/editorState"; +import { getBrandingSetting } from "@lowcoder-ee/redux/selectors/enterpriseSelectors"; +import { buildMaterialPreviewURL } from "@lowcoder-ee/util/materialUtils"; const HeaderFont = styled.div<{ $bgColor: string }>` font-weight: 500; @@ -111,6 +113,10 @@ const Wrapper = styled.div` } `; +const BrandLogo = styled.img` + height: 28px; +` + export function HeaderProfile(props: { user: User }) { const { user } = props; const fetchingUser = useSelector(isFetchingUser); @@ -149,14 +155,21 @@ const PreviewHeaderComp = () => { const isPublicApp = useSelector(isPublicApplication); const applicationId = useApplicationId(); const templateId = useSelector(getTemplateId); - const brandingConfig = useSelector(getBrandingConfig); + const brandingSettings = useSelector(getBrandingSetting); const [permissionDialogVisible, setPermissionDialogVisible] = useState(false); const isViewMarketplaceMode = params.viewMode === 'view_marketplace' || isPublicApp; const headerStart = ( <> <StyledLink onClick={() => !isPublicApp && history.push(ALL_APPLICATIONS_URL)}> - <LogoIcon branding={true} /> + {/* <LogoIcon branding={true} /> */} + { brandingSettings?.config_set?.logo + ? ( + Boolean(brandingSettings?.orgId) + ? <BrandLogo src={buildMaterialPreviewURL(brandingSettings?.config_set?.logo)} /> + : <BrandLogo src={brandingSettings?.config_set?.logo} /> + ) : <LogoIcon branding={true} /> + } </StyledLink> {isViewMarketplaceMode && ( <HeaderStartDropdown @@ -165,7 +178,7 @@ const PreviewHeaderComp = () => { /> )} {!isViewMarketplaceMode && ( - <HeaderFont $bgColor={brandingConfig?.headerColor ?? "#2c2c2c"}> + <HeaderFont $bgColor={brandingSettings?.config_set?.appHeaderColor ?? "#2c2c2c"}> {application && application.name} </HeaderFont> )} @@ -256,7 +269,7 @@ const PreviewHeaderComp = () => { headerStart={headerStart} headerMiddle={headerMiddle} headerEnd={headerEnd} - style={{ backgroundColor: brandingConfig?.headerColor }} + style={{ backgroundColor: brandingSettings?.config_set?.appHeaderColor }} /> ); }; diff --git a/client/packages/lowcoder/src/pages/common/profileDropdown.tsx b/client/packages/lowcoder/src/pages/common/profileDropdown.tsx index d3f8b2a6d9..cf9e6d7929 100644 --- a/client/packages/lowcoder/src/pages/common/profileDropdown.tsx +++ b/client/packages/lowcoder/src/pages/common/profileDropdown.tsx @@ -253,7 +253,7 @@ export default function ProfileDropdown(props: DropDownProps) { return ( <> <StyledDropdown - dropdownRender={() => menu} + popupRender={() => menu} trigger={["click"]} > <div> diff --git a/client/packages/lowcoder/src/pages/datasource/datasourceList.tsx b/client/packages/lowcoder/src/pages/datasource/datasourceList.tsx index f85ab88baf..2d7386fa09 100644 --- a/client/packages/lowcoder/src/pages/datasource/datasourceList.tsx +++ b/client/packages/lowcoder/src/pages/datasource/datasourceList.tsx @@ -164,7 +164,7 @@ export const DatasourceList = () => { open={isCreateFormShow} onCancel={() => showCreateForm(false)} activeStepKey={"type"} - destroyOnClose={true} + destroyOnHidden={true} width="888px" steps={[ { diff --git a/client/packages/lowcoder/src/pages/datasource/datasourceModal.tsx b/client/packages/lowcoder/src/pages/datasource/datasourceModal.tsx index 3c16ebe06c..5808fe1462 100644 --- a/client/packages/lowcoder/src/pages/datasource/datasourceModal.tsx +++ b/client/packages/lowcoder/src/pages/datasource/datasourceModal.tsx @@ -339,7 +339,7 @@ export function CreateDataSourceModal(props: CreateDataSourceModalProps) { return ( <StepModal {...otherProps} - destroyOnClose={true} + destroyOnHidden={true} onStepChange={setActiveStepKey} activeStepKey={activeStepKey} width="888px" diff --git a/client/packages/lowcoder/src/pages/editor/AppEditor.tsx b/client/packages/lowcoder/src/pages/editor/AppEditor.tsx index a28feec8f8..0928438920 100644 --- a/client/packages/lowcoder/src/pages/editor/AppEditor.tsx +++ b/client/packages/lowcoder/src/pages/editor/AppEditor.tsx @@ -29,9 +29,6 @@ import { DatasourceApi } from "api/datasourceApi"; import { useRootCompInstance } from "./useRootCompInstance"; import EditorSkeletonView from "./editorSkeletonView"; import {ErrorBoundary, FallbackProps} from 'react-error-boundary'; -import { ALL_APPLICATIONS_URL } from "@lowcoder-ee/constants/routesURL"; -import history from "util/history"; -import Flex from "antd/es/flex"; import React from "react"; import dayjs from "dayjs"; import { currentApplication } from "@lowcoder-ee/redux/selectors/applicationSelector"; @@ -51,6 +48,8 @@ const AppEditorInternalView = lazy( .then(moduleExports => ({default: moduleExports.AppEditorInternalView})) ); +const ErrorFallback = lazy(() => import("components/ErrorFallback")); + const AppEditor = React.memo(() => { const dispatch = useDispatch(); const params = useParams<AppPathParams>(); @@ -224,39 +223,12 @@ const AppEditor = React.memo(() => { } }, [isLowcoderCompLoading, fetchApplication]); - const fallbackUI = useMemo(() => ( - <Flex align="center" justify="center" vertical style={{ - height: '300px', - width: '400px', - margin: '0 auto', - }}> - <h4 style={{margin: 0}}>Something went wrong while displaying this webpage</h4> - <button onClick={() => history.push(ALL_APPLICATIONS_URL)} style={{background: '#4965f2',border: '1px solid #4965f2', color: '#ffffff',borderRadius:'6px'}}>Go to Apps</button> - </Flex> - ), []); - if (Boolean(appError)) { - return ( - <Flex align="center" justify="center" vertical style={{ - height: '300px', - width: '400px', - margin: '0 auto', - }}> - <h4>{appError}</h4> - <button onClick={() => history.push(ALL_APPLICATIONS_URL)} style={{background: '#4965f2',border: '1px solid #4965f2', color: '#ffffff',borderRadius:'6px'}}>Back to Home</button> - </Flex> - ) + return <ErrorFallback errorMessage={appError} /> } return ( - <ErrorBoundary fallback={fallbackUI}> - {/*<PaginationComp*/} - {/* currentPage={currentPage}*/} - {/* pageSize={pageSize}*/} - {/* setPageSize={setPageSize}*/} - {/* setCurrentPage={setCurrentPage}*/} - {/* total={elements.total}*/} - {/*/>*/} + <ErrorBoundary fallback={<ErrorFallback />}> {showAppSnapshot ? ( <Suspense fallback={<EditorSkeletonView />}> <AppSnapshot diff --git a/client/packages/lowcoder/src/pages/editor/LeftContent.tsx b/client/packages/lowcoder/src/pages/editor/LeftContent.tsx index 1c5f6e24fc..126024d650 100644 --- a/client/packages/lowcoder/src/pages/editor/LeftContent.tsx +++ b/client/packages/lowcoder/src/pages/editor/LeftContent.tsx @@ -451,7 +451,7 @@ export const LeftContent = (props: LeftContentProps) => { onOk={() => setShowData([])} cancelButtonProps={{ style: { display: 'none' } }} closable={false} - destroyOnClose={true} + destroyOnHidden={true} maskClosable={false} okText={trans("modalComp.close")} > diff --git a/client/packages/lowcoder/src/pages/editor/LeftLayersContent.tsx b/client/packages/lowcoder/src/pages/editor/LeftLayersContent.tsx index 630609f1eb..907a78867e 100644 --- a/client/packages/lowcoder/src/pages/editor/LeftLayersContent.tsx +++ b/client/packages/lowcoder/src/pages/editor/LeftLayersContent.tsx @@ -538,7 +538,7 @@ export const LeftLayersContent = (props: LeftLayersContentProps) => { <div style={{margin:"10px 0px"}}> <Flex gap="small" vertical> <CustomDropdown - dropdownRender={() => ( + popupRender={() => ( <Menu items={items} onClick={({ key }) => { diff --git a/client/packages/lowcoder/src/pages/editor/appEditorInternal.tsx b/client/packages/lowcoder/src/pages/editor/appEditorInternal.tsx index 99a23e5be2..161fadf165 100644 --- a/client/packages/lowcoder/src/pages/editor/appEditorInternal.tsx +++ b/client/packages/lowcoder/src/pages/editor/appEditorInternal.tsx @@ -235,7 +235,16 @@ export const AppEditorInternalView = React.memo((props: AppEditorInternalViewPro window.location.pathname.split("/")[3] === "admin" ? <div></div> : <EditorSkeletonView /> ) : ( - <ConfigProvider locale={getAntdLocale(currentUser.uiLanguage)}> + <ConfigProvider + locale={getAntdLocale(currentUser.uiLanguage)} + theme={{ + token: { + fontFamily: `-apple-system, BlinkMacSystemFont, "Helvetica Neue", Arial, "Segoe UI", "PingFang SC", + "Microsoft Yahei", "Hiragino Sans GB", sans-serif, "Apple Color Emoji", "Segoe UI Emoji", + "Segoe UI Symbol", "Noto Color Emoji"`, + }, + }} + > <ExternalEditorContext.Provider value={externalEditorState}> {compInstance?.comp?.getView()} </ExternalEditorContext.Provider> diff --git a/client/packages/lowcoder/src/pages/editor/editorView.tsx b/client/packages/lowcoder/src/pages/editor/editorView.tsx index 9933b60aa2..c11d42e9cb 100644 --- a/client/packages/lowcoder/src/pages/editor/editorView.tsx +++ b/client/packages/lowcoder/src/pages/editor/editorView.tsx @@ -57,9 +57,12 @@ import { } from "util/localStorageUtil"; import { isAggregationApp } from "util/appUtils"; import EditorSkeletonView from "./editorSkeletonView"; -import { getCommonSettings } from "@lowcoder-ee/redux/selectors/commonSettingSelectors"; +import { + getCommonSettings +} from "@lowcoder-ee/redux/selectors/commonSettingSelectors"; import { isEqual, noop } from "lodash"; import { AppSettingContext, AppSettingType } from "@lowcoder-ee/comps/utils/appSettingContext"; +import { getBrandingSetting } from "@lowcoder-ee/redux/selectors/enterpriseSelectors"; import Flex from "antd/es/flex"; // import { BottomSkeleton } from "./bottom/BottomContent"; @@ -148,9 +151,14 @@ const ViewBody = styled.div<{ $hideBodyHeader?: boolean; $height?: number }>` )`}; `; -const SiderWrapper = styled.div` +const SiderWrapper = styled.div<{ + $bgColor?: string; + $fontColor?: string; + $activeBgColor?: string; + $activeFontColor?: string; +}>` .ant-menu { - background-color: #393b47; + background-color: ${props => props.$bgColor ? props.$bgColor : '#393b47'}; height: calc(100vh - 48px); .ant-menu-item { @@ -163,15 +171,16 @@ const SiderWrapper = styled.div` height: 26px; width: 26px; padding: 5px; + color: ${props => props.$fontColor ? props.$fontColor : '#ffffffa6'}; } &.ant-menu-item-selected, &:hover, &:active { - background-color: #393b47; - + background-color: ${props => props.$bgColor ? props.$bgColor : '#393b47'}; svg { - background: #8b8fa37f; + background: ${props => props.$activeBgColor ? props.$activeBgColor : '#8b8fa37f'}; + color: ${props => props.$activeFontColor ? props.$activeFontColor : '#ffffffa6'}; border-radius: 4px; } } @@ -400,6 +409,7 @@ function EditorView(props: EditorViewProps) { const locationState = useLocation<UserGuideLocationState>().state; const showNewUserGuide = locationState?.showNewUserGuide; const showAppSnapshot = useSelector(showAppSnapshotSelector); + const brandingSettings = useSelector(getBrandingSetting); const [showShortcutList, setShowShortcutList] = useState(false); const toggleShortcutList = useCallback( () => setShowShortcutList(!showShortcutList), @@ -655,7 +665,12 @@ function EditorView(props: EditorViewProps) { toggleShortcutList={toggleShortcutList} > <Body> - <SiderWrapper> + <SiderWrapper + $bgColor={brandingSettings?.config_set?.editorSidebarColor} + $fontColor={brandingSettings?.config_set?.editorSidebarFontColor} + $activeBgColor={brandingSettings?.config_set?.editorSidebarActiveBgColor} + $activeFontColor={brandingSettings?.config_set?.editorSidebarActiveFontColor} + > <Sider width={40}> <Menu theme="dark" diff --git a/client/packages/lowcoder/src/pages/editor/right/styledComponent.tsx b/client/packages/lowcoder/src/pages/editor/right/styledComponent.tsx index 177ad9cdde..0dee342784 100644 --- a/client/packages/lowcoder/src/pages/editor/right/styledComponent.tsx +++ b/client/packages/lowcoder/src/pages/editor/right/styledComponent.tsx @@ -11,7 +11,7 @@ const NoShake = css` transform-style: preserve-3d; `; -export const CompIconDiv = styled.div<{ $h: number; $w: number, $isSelected?: boolean }>` +export const CompIconDiv = styled.div<{ $h: number; $w: number, $isSelected?: boolean, $color?: string }>` ${NoShake}; padding: 3px; background: #ffffff; @@ -50,6 +50,15 @@ export const CompIconDiv = styled.div<{ $h: number; $w: number, $isSelected?: bo transform-style: preserve-3d; backface-visibility: hidden; `} + + ${props => props.$color && ` + svg > *[fill='#B480DE'] { + fill: ${props.$color}; + } + svg > *[stroke='#B480DE'] { + stroke: ${props.$color}; + } + `} `; export const RightPanelContentWrapper = styled.div` diff --git a/client/packages/lowcoder/src/pages/editor/right/uiCompPanel.tsx b/client/packages/lowcoder/src/pages/editor/right/uiCompPanel.tsx index 068713dab9..b12d59f31a 100644 --- a/client/packages/lowcoder/src/pages/editor/right/uiCompPanel.tsx +++ b/client/packages/lowcoder/src/pages/editor/right/uiCompPanel.tsx @@ -24,6 +24,8 @@ import { } from "lowcoder-design"; import { TransparentImg } from "../../../util/commonUtils"; import { RightContext } from "./rightContext"; +import { useSelector } from "react-redux"; +import { getBrandingSetting } from "@lowcoder-ee/redux/selectors/enterpriseSelectors"; const CompDiv = styled.div` display: flex; @@ -65,8 +67,10 @@ const HovDiv = styled.div` const IconContain = (props: { Icon: React.FunctionComponent<React.SVGProps<SVGSVGElement>> }) => { const { Icon } = props; + const brandingSettings = useSelector(getBrandingSetting); + return ( - <CompIconDiv $w={64} $h={64}> + <CompIconDiv $w={64} $h={64} $color={brandingSettings?.config_set?.mainBrandingColor}> <Icon /> </CompIconDiv> ); diff --git a/client/packages/lowcoder/src/pages/queryLibrary/QueryLibraryEditor.tsx b/client/packages/lowcoder/src/pages/queryLibrary/QueryLibraryEditor.tsx index 48e8f2e29b..cff8de9eb5 100644 --- a/client/packages/lowcoder/src/pages/queryLibrary/QueryLibraryEditor.tsx +++ b/client/packages/lowcoder/src/pages/queryLibrary/QueryLibraryEditor.tsx @@ -315,7 +315,7 @@ const PublishModal = (props: { <CustomModal open={props.visible} onCancel={props.onClose} - destroyOnClose={true} + destroyOnHidden={true} width="600px" title={trans("queryLibrary.publishNewVersion")} footer={ diff --git a/client/packages/lowcoder/src/pages/setting/advanced/AdvancedSetting.tsx b/client/packages/lowcoder/src/pages/setting/advanced/AdvancedSetting.tsx index 6d8bd9fbde..3e4bb33a13 100644 --- a/client/packages/lowcoder/src/pages/setting/advanced/AdvancedSetting.tsx +++ b/client/packages/lowcoder/src/pages/setting/advanced/AdvancedSetting.tsx @@ -173,7 +173,7 @@ export function AdvancedSetting() { allowClear={true} showSearch={true} style={{ width: "264px", height: "32px", marginBottom: 12 }} - dropdownStyle={{ width: "264px" }} + styles={{ popup: { root: { width: "264px" }}}} value={settings.defaultHomePage} onChange={(value: string) => { setSettings((v) => ({ ...v, defaultHomePage: value })); diff --git a/client/packages/lowcoder/src/pages/setting/appUsage/charts/browserEngineBreakdown.tsx b/client/packages/lowcoder/src/pages/setting/appUsage/charts/browserEngineBreakdown.tsx new file mode 100644 index 0000000000..4a8d505891 --- /dev/null +++ b/client/packages/lowcoder/src/pages/setting/appUsage/charts/browserEngineBreakdown.tsx @@ -0,0 +1,61 @@ +import React, { useMemo, useRef } from "react"; +import ReactECharts from "echarts-for-react"; +import dayjs from "dayjs"; +import { debounce } from "lodash"; +import { trans } from "i18n"; + +interface Props { + data: Array<any>; +} + +const BrowserEngineBreakdownChart = ({ data}: Props) => { + const chartRef = useRef<any>(null); + + const browserEngine = useMemo(() => { + return data.reduce((acc, e) => { + const browser = e.agentName || 'Unknown'; + const engine = e.layoutEngineName || 'Unknown'; + acc[browser] = acc[browser] || {}; + acc[browser][engine] = (acc[browser][engine] || 0) + 1; + return acc; + }, {} as Record<string, number>); + }, []); + + // Get unique browser types + const browserTypeSet = [...new Set(data.map((log: any) => log.agentName || 'Unkown'))]; + + // Get unique engine types + const engineTypeSet = [...new Set(data.map((log: any) => log.layoutEngineName || 'Unkown'))]; + + // Prepare series data for each event type + const series = engineTypeSet.map((engineType) => ({ + name: engineType, + type: "bar", + stack: "total", + data: Object.keys(browserEngine).map((browserType: string) => browserEngine[browserType][engineType]), + })); + + return ( + <ReactECharts + ref={chartRef} + option={{ + tooltip: { trigger: "axis", axisPointer: { type: "shadow" } }, + legend: { left: "left", orient: "vertical", top: "12%" }, + grid: { left: "20%", right: "4%", bottom: "3%", containLabel: true }, + xAxis: { + type: "value", + }, + yAxis: { + type: "category", + data: browserTypeSet, + axisLabel: { rotate: 45 }, + }, + series, + }} + // onEvents={{ dataZoom: handleChartEvents }} + style={{ height: "400px", marginBottom: "20px" }} + /> + ); +}; + +export default BrowserEngineBreakdownChart; diff --git a/client/packages/lowcoder/src/pages/setting/appUsage/charts/deviceOSBreakdown.tsx b/client/packages/lowcoder/src/pages/setting/appUsage/charts/deviceOSBreakdown.tsx new file mode 100644 index 0000000000..79a4077e06 --- /dev/null +++ b/client/packages/lowcoder/src/pages/setting/appUsage/charts/deviceOSBreakdown.tsx @@ -0,0 +1,61 @@ +import React, { useMemo, useRef } from "react"; +import ReactECharts from "echarts-for-react"; +import dayjs from "dayjs"; +import { debounce } from "lodash"; +import { trans } from "i18n"; + +interface Props { + data: Array<any>; +} + +const DeviceOSBreakdownChart = ({ data}: Props) => { + const chartRef = useRef<any>(null); + + const deviceOs = useMemo(() => { + return data.reduce((acc, e) => { + const device = e.deviceClass || 'Unknown'; + const os = e.operatingSystemName || 'Unknown'; + acc[device] = acc[device] || {}; + acc[device][os] = (acc[device][os] || 0) + 1; + return acc; + }, {} as Record<string, Record<string, number>>); + }, []); + + // Get unique device types + const deviceTypeSet = [...new Set(data.map((log: any) => log.deviceClass || 'Unkown'))]; + + // Get unique os types + const osTypeSet = [...new Set(data.map((log: any) => log.operatingSystemName || 'Unkown'))]; + + // Prepare series data for each event type + const series = osTypeSet.map((osType) => ({ + name: osType, + type: "bar", + stack: "total", + data: Object.keys(deviceOs).map((deviceType: string) => deviceOs[deviceType][osType]), + })); + + return ( + <ReactECharts + ref={chartRef} + option={{ + tooltip: { trigger: "axis", axisPointer: { type: "shadow" } }, + legend: { left: "left", orient: "vertical", top: "12%" }, // Ensure labels are on the left + grid: { left: "20%", right: "4%", bottom: "3%", containLabel: true }, + xAxis: { + type: "category", + data: deviceTypeSet, + axisLabel: { rotate: 45 }, + }, + yAxis: { + type: "value", + }, + series, + }} + // onEvents={{ dataZoom: handleChartEvents }} + style={{ height: "400px", marginBottom: "20px" }} + /> + ); +}; + +export default DeviceOSBreakdownChart; diff --git a/client/packages/lowcoder/src/pages/setting/appUsage/charts/userActivityByTime.tsx b/client/packages/lowcoder/src/pages/setting/appUsage/charts/userActivityByTime.tsx new file mode 100644 index 0000000000..649cedca71 --- /dev/null +++ b/client/packages/lowcoder/src/pages/setting/appUsage/charts/userActivityByTime.tsx @@ -0,0 +1,111 @@ +import React, { useRef } from "react"; +import ReactECharts from "echarts-for-react"; +import dayjs from "dayjs"; +import { debounce } from "lodash"; +import { trans } from "i18n"; + +interface Props { + data: Array<any>; + setDateRange: (range: { fromTimestamp: string; toTimestamp: string }) => void; +} + +const UserActivityByTimeChart = ({ data, setDateRange }: Props) => { + const chartRef = useRef<any>(null); + + const debouncedSetDateRange = useRef( + debounce((fromTimestamp: string, toTimestamp: string) => { + setDateRange({ fromTimestamp, toTimestamp }); + }, 500) // Delays fetching only after zooming stops + ).current; + + // Extract min/max dates from the data + const allDates = data.map((log) => log.eventTime && dayjs(log.eventTime).format("YYYY-MM-DD")); + const minDate = allDates.length ? dayjs(Math.min(...allDates.map((d) => new Date(d).getTime()))) : dayjs().subtract(7, "days"); + const maxDate = allDates.length ? dayjs(Math.max(...allDates.map((d) => new Date(d).getTime()))) : dayjs(); + + // Generate full date range including missing days + const fullDateRange: string[] = []; + let currentDate = minDate; + while (currentDate.isBefore(maxDate) || currentDate.isSame(maxDate, "day")) { + fullDateRange.push(currentDate.format("YYYY-MM-DD")); + currentDate = currentDate.add(1, "day"); + } + + // Group data by date and eventType + const timeSeriesData = data.reduce((acc: any, log: any) => { + const eventTime = log.eventTime ? new Date(log.eventTime) : null; + if (eventTime && !isNaN(eventTime.getTime())) { + const date = eventTime.toISOString().split("T")[0]; // Extract date part + if (!acc[date]) acc[date] = 0; + acc[date] = acc[date] + 1; + } + return acc; + }, {}); + + // Prepare series data for each event type + const series = [{ + name: "App Views", + type: "line", + stack: "total", + data: fullDateRange.map((date) => timeSeriesData[date] || 0), // Fill gaps with 0 + itemStyle: { + color: "#1890ff", + }, + }]; + + const handleChartEvents = (params: any) => { + if (params.start !== undefined && params.end !== undefined) { + const startIndex = Math.floor((params.start / 100) * (fullDateRange.length - 1)); + const endIndex = Math.floor((params.end / 100) * (fullDateRange.length - 1)); + + const fromDate = new Date(fullDateRange[startIndex] || fullDateRange[0]); // Keep start of day + const toDate = new Date(fullDateRange[endIndex] || fullDateRange[fullDateRange.length - 1]); + + toDate.setHours(23, 59, 59, 999); + + const fromTimestamp = fromDate.toISOString(); + const toTimestamp = toDate.toISOString(); + debouncedSetDateRange(fromTimestamp, toTimestamp); + } + }; + + return ( + <ReactECharts + ref={chartRef} + option={{ + tooltip: { trigger: "axis", axisPointer: { type: "shadow" } }, + legend: { left: "left", orient: "vertical", top: "12%" }, // Ensure labels are on the left + grid: { left: "20%", right: "4%", bottom: "3%", containLabel: true }, + xAxis: { + type: "category", + data: fullDateRange, + axisLabel: { rotate: 45 }, + }, + yAxis: { + type: "value", + }, + dataZoom: [ + { + type: "slider", + xAxisIndex: 0, + filterMode: "weakFilter", + show: true, + start: 0, + end: 100, + realtime: false, + }, + { + type: "inside", + xAxisIndex: 0, + realtime: false, + }, + ], + series, + }} + onEvents={{ dataZoom: handleChartEvents }} + style={{ height: "400px", marginBottom: "20px" }} + /> + ); +}; + +export default UserActivityByTimeChart; diff --git a/client/packages/lowcoder/src/pages/setting/appUsage/charts/userAuthStatus.tsx b/client/packages/lowcoder/src/pages/setting/appUsage/charts/userAuthStatus.tsx new file mode 100644 index 0000000000..48b61829cb --- /dev/null +++ b/client/packages/lowcoder/src/pages/setting/appUsage/charts/userAuthStatus.tsx @@ -0,0 +1,53 @@ +import React, { useMemo, useRef } from "react"; +import ReactECharts from "echarts-for-react"; + +interface Props { + data: Array<any>; +} + +const UserAuthStatusChart = ({ data }: Props) => { + const chartRef = useRef<any>(null); + + const anonKnown = useMemo(() => { + return data.reduce((acc, e) => { + const type = e.isAnonymous ? 'Anonymous' : 'Known'; + acc[type] = (acc[type] || 0) + 1; + return acc; + }, {} as Record<string, number>); + }, [data]); + + const pieData = useMemo(() => { + return Object.entries(anonKnown).map(([name, value]) => ({ name, value })); + }, [anonKnown]); + + const series = [{ + name: 'Anonymouse', + type: 'pie', + radius: '50%', + data: pieData, + emphasis: { + itemStyle: { + shadowBlur: 10, + shadowOffsetX: 0, + shadowColor: 'rgba(0, 0, 0, 0.5)' + } + } + }]; + + return ( + <ReactECharts + ref={chartRef} + option={{ + title: { text: "App Usage Log", left: "center" }, + tooltip: { trigger: "axis", axisPointer: { type: "shadow" } }, + legend: { left: "left", orient: "vertical", top: "12%" }, // Ensure labels are on the left + grid: { left: "20%", right: "4%", bottom: "3%", containLabel: true }, + series, + }} + // onEvents={{ dataZoom: handleChartEvents }} + style={{ height: "400px", marginBottom: "20px" }} + /> + ); +}; + +export default UserAuthStatusChart; diff --git a/client/packages/lowcoder/src/pages/setting/appUsage/charts/userEngagementByRegion.tsx b/client/packages/lowcoder/src/pages/setting/appUsage/charts/userEngagementByRegion.tsx new file mode 100644 index 0000000000..f472c9acb3 --- /dev/null +++ b/client/packages/lowcoder/src/pages/setting/appUsage/charts/userEngagementByRegion.tsx @@ -0,0 +1,209 @@ +import { useMemo, useState, useCallback } from "react"; +import { Map, Marker, Overlay, Bounds } from 'pigeon-maps'; +import Supercluster, { PointFeature } from 'supercluster'; +import styled from 'styled-components'; + +function getClusterSize(count: number): number { + // Logarithmic scaling for better visualization of large numbers + const minSize = 30; + const maxSize = 60; + const scale = Math.log10(count + 1); + return Math.min(maxSize, Math.max(minSize, minSize + (scale * 10))); +} + +function getClusterColor(count: number): string { + if (count > 1000) return '#d32f2f'; // red for very high density + if (count > 500) return '#f57c00'; // orange for high density + if (count > 100) return '#f9a825'; // yellow for medium density + return '#1976d2'; // blue for low density +} + +interface ClusterProperties { + id: string; + count: number; + cluster: boolean; + point_count_abbreviated?: string; +} + +interface GeoPoint { + latitude: number; + longitude: number; + count: number; + id: string; +} + +interface TooltipState { + lat: number; + lng: number; + text: string; +} + +interface Props { + data: Array<any>; +} + +const ClusterMarker = styled.div<{ size: number; color: string }>` + background: ${props => props.color}; + width: ${props => props.size}px; + height: ${props => props.size}px; + border-radius: 50%; + color: #fff; + display: flex; + align-items: center; + justify-content: center; + font-weight: bold; + font-size: ${props => props.size / 3}px; + border: 2px solid white; + box-shadow: 0 0 6px rgba(0,0,0,0.3); + cursor: pointer; + pointer-events: auto; + opacity: 0.5; + transition: opacity 0.2s ease; + + &:hover { + opacity: 1; + } +`; + +const TooltipContainer = styled.div` + background: white; + border: 1px solid #ccc; + padding: 5px 10px; + border-radius: 4px; + box-shadow: 0 2px 6px rgba(0,0,0,0.2); + pointer-events: none; + transform: translateY(-120px); + white-space: nowrap; +`; + +const MapContainer = styled.div` + height: 400px; + width: 100%; + position: relative; +`; + +const UserEngagementByRegionChart = ({ data }: Props) => { + const [zoom, setZoom] = useState(3); + const [bounds, setBounds] = useState<Bounds | null>(null); + const [tooltip, setTooltip] = useState<TooltipState | null>(null); + + const geoPoints = useMemo(() => { + return data.reduce((acc, log) => { + const region = log?.geolocationDataJsonb?.city?.names?.en || 'Unknown'; // assuming `region` is added to each event + let regionData: GeoPoint = { + latitude: log?.geolocationDataJsonb?.location?.latitude ?? 55, + longitude: log?.geolocationDataJsonb?.location?.longitude ?? 15, + count: 0, + id: region, + }; + if (acc[region]) { + acc[region] = { + ...acc[region], + count: acc[region].count + 1, + } + } else { + acc[region] = regionData; + } + return acc; + }, {} as Record<string, GeoPoint>); + }, [data]); + + const cluster = useMemo(() => { + const sc = new Supercluster<ClusterProperties>({ + radius: 300, + maxZoom: 20, + }); + + const geojsonPoints: PointFeature<ClusterProperties>[] = (Object.values(geoPoints) as GeoPoint[]).map(({ id, latitude, longitude, count }) => ({ + type: 'Feature', + properties: { id, count, cluster: true }, + geometry: { + type: 'Point', + coordinates: [longitude, latitude], + }, + })); + + sc.load(geojsonPoints); + return sc; + }, [geoPoints]); + + const clusters = useMemo(() => { + if (!bounds?.ne || !bounds?.sw) return []; + + const westLng = bounds.sw[1]; + const southLat = bounds.sw[0]; + const eastLng = bounds.ne[1]; + const northLat = bounds.ne[0]; + + return cluster.getClusters([westLng, southLat, eastLng, northLat], zoom); + }, [cluster, bounds, zoom]); + + const handleBoundsChanged = useCallback(({ zoom, bounds }: { zoom: number; bounds: Bounds }) => { + setZoom(zoom); + setBounds(bounds); + }, []); + + const handleMarkerMouseOver = useCallback((lat: number, lng: number, id: string, count: number) => { + setTooltip({ lat, lng, text: `${id}: ${count}` }); + }, []); + + const handleMarkerMouseLeave = useCallback(() => { + setTooltip(null); + }, []); + + return ( + <MapContainer> + <Map + height={400} + defaultCenter={[55, 15]} + defaultZoom={5} + onBoundsChanged={handleBoundsChanged} + > + {clusters.map((c, i) => { + const [lng, lat] = c.geometry.coordinates; + const isCluster = !!c.properties.cluster; + + if (isCluster) { + const count = c.properties.count; + const size = getClusterSize(count); + const color = getClusterColor(count); + return ( + <Marker + key={`cluster-${i}`} + anchor={[lat, lng]} + > + <ClusterMarker + size={size} + color={color} + onMouseEnter={() => handleMarkerMouseOver(lat, lng, c.properties.id, c.properties.count)} + onMouseLeave={handleMarkerMouseLeave} + > + {c.properties.point_count_abbreviated} + </ClusterMarker> + </Marker> + ); + } + + return ( + <Marker + key={`marker-${i}`} + anchor={[lat, lng]} + onMouseOver={() => handleMarkerMouseOver(lat, lng, c.properties.id, c.properties.count)} + onMouseOut={handleMarkerMouseLeave} + /> + ); + })} + + {tooltip && ( + <Overlay anchor={[tooltip.lat, tooltip.lng]} offset={[0, -40]}> + <TooltipContainer> + {tooltip.text} + </TooltipContainer> + </Overlay> + )} + </Map> + </MapContainer> + ); +}; + +export default UserEngagementByRegionChart; \ No newline at end of file diff --git a/client/packages/lowcoder/src/pages/setting/appUsage/dashboard.tsx b/client/packages/lowcoder/src/pages/setting/appUsage/dashboard.tsx new file mode 100644 index 0000000000..520fbada92 --- /dev/null +++ b/client/packages/lowcoder/src/pages/setting/appUsage/dashboard.tsx @@ -0,0 +1,544 @@ +import { Card, Form, Select, Input, Button, message, Divider, Skeleton, Table, Flex, Tag, TableProps } from "antd"; +import React, { useEffect, useState, useCallback, useMemo } from "react"; +import { useDispatch, useSelector } from "react-redux"; +import styled from "styled-components"; +import { trans } from "i18n"; +import { + DetailContainer, + DetailContent, + Header, + } from "../theme/styledComponents"; +import { HeaderBack } from "pages/setting/permission/styledComponents"; +import { getUser } from "@lowcoder-ee/redux/selectors/usersSelectors"; +import { getAppUsageLogs, getEnvironmentsByIds, getMeta } from "api/enterpriseApi"; +import { debounce, uniqBy } from "lodash"; +import { DatePicker } from "antd"; +import dayjs, { Dayjs } from "dayjs"; +import { Link, useLocation } from "react-router-dom"; +import history from "util/history"; +import { SETTING_URL } from "@lowcoder-ee/constants/routesURL"; +import { EyeOutlined } from "@ant-design/icons"; +import UserActivityByTimeChart from "./charts/userActivityByTime"; +import UserAuthStatusChart from "./charts/userAuthStatus"; +import DeviceOSBreakdownChart from "./charts/deviceOSBreakdown"; +import BrowserEngineBreakdownChart from "./charts/browserEngineBreakdown"; +import UserEngagementByRegionChart from "./charts/userEngagementByRegion"; +import { geoLocation } from "../audit/auditContants"; +import { Level1SettingPageTitle } from "../styled"; + +const { RangePicker } = DatePicker; + +const AppLogContent = styled.div` + font-size: 14px; + color: #8b8fa3; + flex-grow: 1; + padding-top: 0px; + padding-left: 0px; + max-width: 100%; + margin-bottom: 20px; +`; + +const StyleThemeSettingsCover = styled.div` + display: flex; + flex-direction: row; + background: linear-gradient(34deg, rgba(2, 0, 36, 1) 0%, rgba(102, 9, 121, 1) 35%, rgba(0, 255, 181, 1) 100%); + padding: 15px; + height: 80px; + border-radius: 10px 10px 0 0; +`; + +export function AppUsageDashboard() { + + type AppLog = { + eventType: string; + eventTime: string; + environmentId: string; + orgId: string; + userId: string; + appId: string; + isAnonymous: boolean; + details: Record<string, any>; + geolocationDataJsonb?: Record<string, any>, + }; + + const currentUser = useSelector(getUser); + const location = useLocation(); + + const [allLogs, setAllLogs] = useState<AppLog[]>([]); + const [currentPageLogs, setCurrentPageLogs] = useState<AppLog[]>([]); + const [dataMap, setDataMap] = useState<Record<string, any>>({}); + + // const [logs, setLogs] = useState([]); + const [total, setTotal] = useState(0); + const [loading, setLoading] = useState(false); + const [form] = Form.useForm(); + const [pagination, setPagination] = useState({ pageSize: 25, current: 1 }); + + // Function to get URL parameters + const getQueryParams = () => { + const params = new URLSearchParams(location.search); + let queryObject: Record<string, any> = {}; + + // Convert search params into a JavaScript object + params.forEach((value, key) => { + if (key !== 'fromTimestamp' && key !== 'toTimestamp') { + queryObject[key] = value; + } + }); + + // set date range picker values + let dateRange = new Array<Dayjs>(2); + if (params.get('fromTimestamp')) { + dateRange[0] = dayjs(params.get('fromTimestamp')); + } + if (params.get('toTimestamp')) { + dateRange[1] = dayjs(params.get('toTimestamp')); + } + + queryObject['dateRange'] = dateRange; + return queryObject; + }; + + useEffect(() => { + form.setFieldsValue(getQueryParams()); + }, []); + + const handleQueryParams = (queryParams: Record<string, string>) => { + const params = new URLSearchParams(); + Object.keys(queryParams).map((key) => { + const value = queryParams[key]; + if (value) { + params.set(key, value); + } else { + params.delete(key); // Remove the key if the value is empty + } + }) + history.push({ search: params.toString() }) + } + + // Fetch Logs with all form values if set + const fetchLogs = async (newPage: number, resetData: boolean = false) => { + const formValues = form.getFieldsValue(); + + const cleanedParams = Object.fromEntries( + Object.entries({ + ...formValues, + pageSize: 100, // Always fetch 500 from API + pageNum: newPage, // API page number + fromTimestamp: formValues.dateRange?.[0] ? formValues.dateRange[0].toISOString() : undefined, + toTimestamp: formValues.dateRange?.[1] ? formValues.dateRange[1].toISOString() : undefined, + }).filter(([key, value]) => value !== undefined && value !== null && value !== "" && key !== 'dateRange') + ); + + handleQueryParams(cleanedParams as any); + + setLoading(true); + try { + const data = await getAppUsageLogs(cleanedParams); + + if (resetData) { + setAllLogs(data.data || []); + setPagination({ pageSize: 25, current: 1 }); // Reset pagination + } else { + setAllLogs((prevLogs) => [...prevLogs, ...(data?.data || [])]); + } + + setTotal(data.totalCount); + } catch (error) { + message.error("Failed to fetch audit logs."); + } finally { + setLoading(false); + } + }; + + // Handle chart zoom + const handleChartZoom = ({ fromTimestamp, toTimestamp }: { fromTimestamp: string; toTimestamp: string }) => { + console.log("Zoom applied:", fromTimestamp, toTimestamp); + + const startDate = dayjs(fromTimestamp); + const endDate = dayjs(toTimestamp); + form.setFieldsValue({ dateRange: [startDate, endDate] }); + + setPagination({ pageSize: 25, current: 1 }); + setAllLogs([]); + setCurrentPageLogs([]); + fetchLogs(1, true); + }; + + // Debounce handler for input fields + const handleInputChange = useCallback( + debounce(() => { + setPagination({ pageSize: 25, current: 1 }); + setAllLogs([]); + setCurrentPageLogs([]); + fetchLogs(1, true); + }, 300), + [] + ); + + const handleClickFilter = (field: any, value: any) => { + form.setFieldsValue({ [field]: value }); + + setPagination({ pageSize: 25, current: 1 }); + setAllLogs([]); + setCurrentPageLogs([]); + fetchLogs(1, true); + }; + + const handleDateChange = (dates: any) => { + if (dates?.[0] && dates?.[1]) { + form.setFieldsValue({ + fromTimestamp: dates[0].toISOString(), + toTimestamp: dates[1].toISOString(), + }); + } else { + form.resetFields(["fromTimestamp", "toTimestamp"]); + } + + // Reset pagination and clear logs BEFORE calling fetchLogs + setPagination({ pageSize: 25, current: 1 }); + setAllLogs([]); + setCurrentPageLogs([]); + + // Ensure fetchLogs is called only ONCE + fetchLogs(1, true); + }; + + // Handle page change + const handleTableChange: TableProps<any>["onChange"] = (newPagination) => { + const newPage = newPagination.current ?? 1; + const pageSize = newPagination.pageSize ?? 25; + const startIndex = (newPage - 1) * pageSize; + const endIndex = startIndex + pageSize; + + console.log( + `New Page: ${newPage}, StartIndex: ${startIndex}, EndIndex: ${endIndex}, AllLogs Length: ${allLogs.length}, Total: ${total}` + ); + + if (endIndex <= allLogs.length) { + // ✅ Correctly slice logs and update state + setCurrentPageLogs(allLogs.slice(startIndex, endIndex)); + } else if (allLogs.length < total) { + // ✅ Fetch next set of logs and update state after fetch + const nextApiPage = Math.floor(allLogs.length / 100) + 1; + fetchLogs(nextApiPage).then(() => { + setCurrentPageLogs(allLogs.slice(startIndex, endIndex)); + }); + } + + setPagination({ pageSize, current: newPage }); + }; + + useEffect(() => { + if (allLogs.length > 0) { + const startIndex = (pagination.current - 1) * pagination.pageSize; + const endIndex = startIndex + pagination.pageSize; + + console.log(`Updating displayed logs: StartIndex ${startIndex}, EndIndex ${endIndex}`); + setCurrentPageLogs(allLogs.slice(startIndex, endIndex)); + } + }, [pagination, allLogs]); + + + // Initial Fetch on Mount + useEffect(() => { + fetchLogs(1); + }, [currentUser.currentOrgId]); + + const appViews = useMemo(() => { + if (!allLogs?.length) return []; + + return allLogs.reduce((acc, e) => { + const environmentId = e.environmentId; + const orgId = e.orgId; + const appId = e.appId; + const name = e.details?.applicationName ?? 'Unknown'; + acc[appId] = acc[appId] || { appId, name, orgId, environmentId, count: 0 }; + acc[appId].count++; + return acc; + }, {} as Record<string, { + appId: string, name: string, + orgId: string, + environmentId: string, + count: number + }>); + }, [allLogs]); + + const topApps = useMemo(() => { + if (!Object.keys(appViews)?.length) return []; + + return Object.values(appViews) + .sort((a, b) => b.count - a.count) + .slice(0, 10); + }, [appViews]); + + const findUniqueDataIds = async () => { + if (!topApps.length) { + return setDataMap({}); + } + + const uniqueOrgIds: string[] = uniqBy(topApps, 'orgId').map(item => item.orgId); + const uniqueEnvIds: string[] = uniqBy(topApps, 'environmentId').map(item => item.environmentId); + + const metaResponse = await getMeta({ + orgIds: uniqueOrgIds, + userIds: [], + appIds: [], + groupIds: [], + bundleIds: [], + datasourceIds: [], + folderIds: [], + libraryQueryIds: [] + }); + + const envResponse = await getEnvironmentsByIds(uniqueEnvIds); + + const tempDataMap: Record<string, any> = {}; + metaResponse.data?.orgs?.forEach((org: { id: string; name: string; }) => { + tempDataMap[org.id] = org.name; + }); + envResponse.data?.forEach((env: { environmentId: string; environmentType: string; }) => { + tempDataMap[env.environmentId] = env.environmentType; + }); + setDataMap(tempDataMap); + } + + useEffect(() => { + findUniqueDataIds(); + }, [topApps]); + + const columns = [ + { + title: "", + dataIndex: "viewApp", + key: "viewApp", + render: (_: string, record: any) => ( + <Link to={{ + pathname: `/apps/${record.appId}/view`, + }} + target="_blank" + > + <EyeOutlined /> + </Link> + ), + }, + { + title: "App ID", + dataIndex: "appId", + key: "appId", + render: (text: string, record: any) => ( + <a onClick={() => handleClickFilter("appId", text)}> + { + record.name + || record.appId + || '-' + } + </a> + ), + }, + { + title: "Org ID", + dataIndex: "orgId", + key: "orgId", + render: (text: string) => ( + <a onClick={() => handleClickFilter("orgId", text)}>{dataMap[text] ?? text}</a> + ), + }, + { + title: "Environment ID", + dataIndex: "environmentId", + key: "environmentId", + render: (text: string) => ( + <a onClick={() => handleClickFilter("environmentId", text)}>{dataMap[text] ?? text}</a> + ), + }, + { + title: "Total Views", + dataIndex: "count", + key: "count", + }, + ]; + + return ( + <DetailContainer> + <Header> + <Level1SettingPageTitle style={{marginBottom: 0}}> + <span>{"App Usage Logs"}</span> + </Level1SettingPageTitle> + </Header> + + <DetailContent> + <AppLogContent> + <StyleThemeSettingsCover> + <h2 style={{ color: "#ffffff", marginTop: "8px" }}>{trans("enterprise.logFilter")}</h2> + </StyleThemeSettingsCover> + <Card size="small" style={{ marginBottom: "20px" }}> + <Form + form={form} + layout="inline" + onValuesChange={(changedValue) => { + const key = Object.keys(changedValue)[0]; + if (key === "dateRange") { + handleDateChange(changedValue.dateRange); + } else if (["environmentId", "orgId", "userId", "appId"].includes(key)) { + handleInputChange(); // Debounced input change + } else { + // Avoid calling fetchLogs if `handleDateChange` already did + fetchLogs(1, true); + } + }} + > + <Flex gap="middle" vertical> + <Flex> + <Form.Item name="dateRange"> + <RangePicker + showTime + format="YYYY-MM-DD 00:00:00" + value={form.getFieldValue("dateRange")}/> + </Form.Item> + {/* <Form.Item name="eventType"> + <Select + allowClear + showSearch + placeholder="Event Type" + options={eventTypes} + style={{ width: 200 }} + /> + </Form.Item> */} + </Flex> + + <Flex> + <Form.Item name="environmentId"> + <Input placeholder="Environment ID" allowClear /> + </Form.Item> + <Form.Item name="orgId"> + <Input placeholder="Org ID" allowClear /> + </Form.Item> + <Form.Item name="userId"> + <Input placeholder="User ID" allowClear /> + </Form.Item> + <Form.Item name="appId"> + <Input placeholder="App ID" allowClear /> + </Form.Item> + </Flex> + </Flex> + </Form> + </Card> + </AppLogContent> + <AppLogContent> + <StyleThemeSettingsCover> + <h2 style={{ color: "#ffffff", marginTop: "8px" }}>{trans("enterprise.usageLogUserEngagement")}</h2> + </StyleThemeSettingsCover> + <Card size="small"> + {loading ? ( + <Skeleton active paragraph={{ rows: 5 }} /> + ) : currentPageLogs.length > 0 ? ( + <> + <UserEngagementByRegionChart data={allLogs}/> + </> + ) : ( + <p>{trans("enterprise.noLogsFound")}</p> + )} + </Card> + </AppLogContent> + <AppLogContent> + <StyleThemeSettingsCover> + <h2 style={{ color: "#ffffff", marginTop: "8px" }}>{trans("enterprise.usageLogAppViews")}</h2> + </StyleThemeSettingsCover> + <Card size="small"> + {loading ? ( + <Skeleton active paragraph={{ rows: 5 }} /> + ) : currentPageLogs.length > 0 ? ( + <> + <UserActivityByTimeChart + data={allLogs} + setDateRange={handleChartZoom} + /> + </> + ) : ( + <p>{trans("enterprise.noLogsFound")}</p> + )} + </Card> + </AppLogContent> + <AppLogContent> + <StyleThemeSettingsCover> + <h2 style={{ color: "#ffffff", marginTop: "8px" }}>{trans("enterprise.usageLogTopTen")}</h2> + </StyleThemeSettingsCover> + <Card size="small"> + {loading ? ( + <Skeleton active paragraph={{ rows: 5 }} /> + ) : currentPageLogs.length > 0 ? ( + <div style={{ overflowX: "auto", width: "100%" }}> + <Table + columns={columns} + dataSource={topApps} + size="small" // Compact Layout + style={{ width: "100%", whiteSpace: "nowrap" }} // Fixed width, prevent line break + onChange={handleTableChange} // Handle pagination + loading={loading} + pagination={false} + /> + </div> + ) : ( + <p>{trans("enterprise.noLogsFound")}</p> + )} + </Card> + </AppLogContent> + <AppLogContent> + <StyleThemeSettingsCover> + <h2 style={{ color: "#ffffff", marginTop: "8px" }}>{trans("enterprise.usageLogAnonymousKNown")}</h2> + </StyleThemeSettingsCover> + <Card size="small"> + {loading ? ( + <Skeleton active paragraph={{ rows: 5 }} /> + ) : currentPageLogs.length > 0 ? ( + <> + <UserAuthStatusChart + data={allLogs} + /> + </> + ) : ( + <p>{trans("enterprise.noLogsFound")}</p> + )} + </Card> + </AppLogContent> + <AppLogContent> + <StyleThemeSettingsCover> + <h2 style={{ color: "#ffffff", marginTop: "8px" }}>{trans("enterprise.usageLogDevices")}</h2> + </StyleThemeSettingsCover> + <Card size="small"> + {loading ? ( + <Skeleton active paragraph={{ rows: 5 }} /> + ) : currentPageLogs.length > 0 ? ( + <> + <DeviceOSBreakdownChart + data={allLogs} + /> + </> + ) : ( + <p>{trans("enterprise.noLogsFound")}</p> + )} + </Card> + </AppLogContent> + <AppLogContent> + <StyleThemeSettingsCover> + <h2 style={{ color: "#ffffff", marginTop: "8px" }}>{trans("enterprise.usageLogBrowsers")}</h2> + </StyleThemeSettingsCover> + <Card size="small"> + {loading ? ( + <Skeleton active paragraph={{ rows: 5 }} /> + ) : currentPageLogs.length > 0 ? ( + <> + <BrowserEngineBreakdownChart + data={allLogs} + /> + </> + ) : ( + <p>{trans("enterprise.noLogsFound")}</p> + )} + </Card> + </AppLogContent> + </DetailContent> + </DetailContainer> + ); +} diff --git a/client/packages/lowcoder/src/pages/setting/appUsage/detail.tsx b/client/packages/lowcoder/src/pages/setting/appUsage/detail.tsx new file mode 100644 index 0000000000..f4b78751d5 --- /dev/null +++ b/client/packages/lowcoder/src/pages/setting/appUsage/detail.tsx @@ -0,0 +1,3 @@ +export function AppUsageDetail() { + return <></> +} \ No newline at end of file diff --git a/client/packages/lowcoder/src/pages/setting/appUsage/index.tsx b/client/packages/lowcoder/src/pages/setting/appUsage/index.tsx new file mode 100644 index 0000000000..0c4b807c41 --- /dev/null +++ b/client/packages/lowcoder/src/pages/setting/appUsage/index.tsx @@ -0,0 +1,94 @@ +import { APP_USAGE_DASHBOARD, APP_USAGE_DETAIL } from "@lowcoder-ee/constants/routesURL"; +import { Route, Switch } from "react-router-dom"; +import { AppUsageDashboard } from "./dashboard"; +import { AppUsageDetail } from "./detail"; +import { useSelector } from "react-redux"; +import { selectIsLicenseActive } from "redux/selectors/enterpriseSelectors"; +import styled from "styled-components"; +import { Card, Row, Col, Typography } from "antd"; +import { Level1SettingPageContent, Level1SettingPageTitle } from "../styled"; +import { trans } from "i18n"; + +const { Paragraph, Text } = Typography; + +const StyledSection = styled.div` + margin-bottom: 32px; + + .ant-card { + border-radius: 8px; + } + + .image-placeholder { + background: #f5f5f5; + border: 1px dashed #ccc; + height: 200px; + display: flex; + align-items: center; + justify-content: center; + color: #999; + font-size: 14px; + } +`; + +export const AppUsage = () => { + const isLicenseActive = useSelector(selectIsLicenseActive); + return isLicenseActive ? <AppUsageRoutes /> : <AppUsageDoc />; +}; + +const AppUsageRoutes = () => ( + <Switch> + <Route path={APP_USAGE_DASHBOARD} component={AppUsageDashboard} exact /> + <Route path={APP_USAGE_DETAIL} component={AppUsageDetail} exact /> + </Switch> +); + +const AppUsageDoc = () => { + return ( + <Level1SettingPageContent> + <Level1SettingPageTitle>{trans("enterprise.AppUsageTitle")}</Level1SettingPageTitle> + + <StyledSection> + <Card title={trans("enterprise.AppUsageIntroTitle")}> + <Paragraph>{trans("enterprise.AppUsageIntro1")}</Paragraph> + <Paragraph>{trans("enterprise.AppUsageIntro2")}</Paragraph> + <Paragraph>{trans("enterprise.AppUsageIntro3")}</Paragraph> + </Card> + </StyledSection> + + <StyledSection> + <Card title={trans("enterprise.AppUsageMetricsTitle")}> + <Paragraph>{trans("enterprise.AppUsageMetricsIntro")}</Paragraph> + <ul> + <li>{trans("enterprise.MetricActiveUsers")}</li> + <li>{trans("enterprise.MetricViewsPerApp")}</li> + <li>{trans("enterprise.MetricDevices")}</li> + <li>{trans("enterprise.MetricBrowsers")}</li> + <li>{trans("enterprise.MetricCountries")}</li> + </ul> + </Card> + </StyledSection> + + <StyledSection> + <Card title={trans("enterprise.AppUsageScreenshotsTitle")}> + <Row gutter={[24, 24]}> + <Col span={8}> + <div className="image-placeholder"> + <Text type="secondary">{trans("enterprise.AppUsageScreenshot1")}</Text> + </div> + </Col> + <Col span={8}> + <div className="image-placeholder"> + <Text type="secondary">{trans("enterprise.AppUsageScreenshot2")}</Text> + </div> + </Col> + <Col span={8}> + <div className="image-placeholder"> + <Text type="secondary">{trans("enterprise.AppUsageScreenshot3")}</Text> + </div> + </Col> + </Row> + </Card> + </StyledSection> + </Level1SettingPageContent> + ); +}; diff --git a/client/packages/lowcoder/src/pages/setting/audit/AreaTimeChart/index.tsx b/client/packages/lowcoder/src/pages/setting/audit/AreaTimeChart/index.tsx new file mode 100644 index 0000000000..285c0bfc9d --- /dev/null +++ b/client/packages/lowcoder/src/pages/setting/audit/AreaTimeChart/index.tsx @@ -0,0 +1,68 @@ +import { StyledReactECharts } from "../auditContants"; + +const apiUsage = [ + { date: '2024-12-07', usage: 860 }, + { date: '2024-12-08', usage: 13 }, + { date: '2024-12-09', usage: 0 }, + { date: '2024-12-10', usage: 83 }, + { date: '2024-12-11', usage: 58 }, + { date: '2024-12-12', usage: 0 }, + { date: '2024-12-13', usage: 138 }, + { date: '2024-12-14', usage: 439 }, + { date: '2024-12-15', usage: 11 }, + { date: '2024-12-16', usage: 0 }, + { date: '2024-12-17', usage: 485 }, + { date: '2024-12-18', usage: 907 }, + { date: '2024-12-19', usage: 91 }, + { date: '2024-12-20', usage: 0 }, +]; + +export const AreaTimeChart = () => { + const options = { + tooltip: { + trigger: 'axis', + position: (pt: any) => { + return [pt[0], '10%']; + } + }, + title: { + left: 'center', + text: 'Daily API Usage' + }, + xAxis: { + type: 'time', + boundaryGap: false + }, + yAxis: { + type: 'value', + boundaryGap: [0, '100%'] + }, + dataZoom: [ + { + type: 'inside', + start: 0, + end: 20 + }, + { + start: 0, + end: 20 + } + ], + series: [ + { + name: 'API Usage', + type: 'line', + smooth: true, + symbol: 'none', + areaStyle: {}, + data: apiUsage.map((data) => [new Date(data.date).getTime(), data.usage]) + } + ] + }; + + return ( + <StyledReactECharts + option={ options } + /> + ) +} \ No newline at end of file diff --git a/client/packages/lowcoder/src/pages/setting/audit/auditContants.ts b/client/packages/lowcoder/src/pages/setting/audit/auditContants.ts new file mode 100644 index 0000000000..f0665ae423 --- /dev/null +++ b/client/packages/lowcoder/src/pages/setting/audit/auditContants.ts @@ -0,0 +1,108 @@ +import ReactECharts from 'echarts-for-react'; +import { styled } from 'styled-components'; +import { trans } from "i18n"; + +export const StyledReactECharts = styled(ReactECharts)` + width: 100%; + height: 400px; +`; + +type EventType = | "USER_LOGIN" +| "USER_LOGOUT" +| "APPLICATION_CREATE" +| "APPLICATION_DELETE" +| "APPLICATION_UPDATE" +| "APPLICATION_MOVE" +| "APPLICATION_RECYCLED" +| "APPLICATION_RESTORE" +| "APPLICATION_PUBLISH" +| "APPLICATION_VERSION_CHANGE" +| "APPLICATION_SHARING_CHANGE" +| "APPLICATION_PERMISSION_CHANGE" +| "FOLDER_CREATE" +| "FOLDER_DELETE" +| "FOLDER_UPDATE" +| "QUERY_EXECUTION" +| "GROUP_CREATE" +| "GROUP_UPDATE" +| "GROUP_DELETE" +| "GROUP_MEMBER_ADD" +| "GROUP_MEMBER_ROLE_UPDATE" +| "GROUP_MEMBER_LEAVE" +| "GROUP_MEMBER_REMOVE" +| "SERVER_START_UP" +| "SERVER_INFO" +| "DATA_SOURCE_CREATE" +| "DATA_SOURCE_UPDATE" +| "DATA_SOURCE_DELETE" +| "DATA_SOURCE_PERMISSION_GRANT" +| "DATA_SOURCE_PERMISSION_UPDATE" +| "DATA_SOURCE_PERMISSION_DELETE" +| "LIBRARY_QUERY_CREATE" +| "LIBRARY_QUERY_UPDATE" +| "LIBRARY_QUERY_DELETE" +| "LIBRARY_QUERY_PUBLISH" +| "API_CALL_EVENT"; + +export type AuditLog = { + eventType: EventType; + eventTime: string; + environmentId: string; + orgId: string; + userId: string; + appId: string; +}; + +export type AuditLogStat = { + eventType: EventType; + groupCountResult: number; +} + +export const eventTypes = [ + { value: "USER_LOGIN", label: trans("enterprise.USER_LOGIN"), color: "#1890ff" }, + { value: "USER_LOGOUT", label: trans("enterprise.USER_LOGOUT"), color: "#1d39c4" }, + { value: "APPLICATION_CREATE", label: trans("enterprise.APPLICATION_CREATE"), color: "#52c41a" }, + { value: "APPLICATION_DELETE", label: trans("enterprise.APPLICATION_DELETE"), color: "#389e0d" }, + { value: "APPLICATION_UPDATE", label: trans("enterprise.APPLICATION_UPDATE"), color: "#237804" }, + { value: "APPLICATION_MOVE", label: trans("enterprise.APPLICATION_MOVE"), color: "#135200" }, + { value: "APPLICATION_RECYCLED", label: trans("enterprise.APPLICATION_RECYCLED"), color: "#00474f" }, + { value: "APPLICATION_RESTORE", label: trans("enterprise.APPLICATION_RESTORE"), color: "#003a8c" }, + { value: "APPLICATION_PUBLISH", label: trans("enterprise.APPLICATION_PUBLISH"), color: "#002766" }, + { value: "APPLICATION_VERSION_CHANGE", label: trans("enterprise.APPLICATION_VERSION_CHANGE"), color: "#0050b3" }, + { value: "APPLICATION_SHARING_CHANGE", label: trans("enterprise.APPLICATION_SHARING_CHANGE"), color: "#1890ff" }, + { value: "APPLICATION_PERMISSION_CHANGE", label: trans("enterprise.APPLICATION_PERMISSION_CHANGE"), color: "#1d39c4" }, + { value: "FOLDER_CREATE", label: trans("enterprise.FOLDER_CREATE"), color: "#faad14" }, + { value: "FOLDER_DELETE", label: trans("enterprise.FOLDER_DELETE"), color: "#d48806" }, + { value: "FOLDER_UPDATE", label: trans("enterprise.FOLDER_UPDATE"), color: "#ad6800" }, + { value: "QUERY_EXECUTION", label: trans("enterprise.QUERY_EXECUTION"), color: "#722ed1" }, + { value: "GROUP_CREATE", label: trans("enterprise.GROUP_CREATE"), color: "#f5222d" }, + { value: "GROUP_UPDATE", label: trans("enterprise.GROUP_UPDATE"), color: "#cf1322" }, + { value: "GROUP_DELETE", label: trans("enterprise.GROUP_DELETE"), color: "#a8071a" }, + { value: "GROUP_MEMBER_ADD", label: trans("enterprise.GROUP_MEMBER_ADD"), color: "#820014" }, + { value: "GROUP_MEMBER_ROLE_UPDATE", label: trans("enterprise.GROUP_MEMBER_ROLE_UPDATE"), color: "#5c0011" }, + { value: "GROUP_MEMBER_LEAVE", label: trans("enterprise.GROUP_MEMBER_LEAVE"), color: "#8c8c8c" }, + { value: "GROUP_MEMBER_REMOVE", label: trans("enterprise.GROUP_MEMBER_REMOVE"), color: "#595959" }, + { value: "SERVER_START_UP", label: trans("enterprise.SERVER_START_UP"), color: "#8c8c8c" }, + { value: "SERVER_INFO", label: trans("enterprise.SERVER_INFO"), color: "#595959" }, + { value: "DATA_SOURCE_CREATE", label: trans("enterprise.DATA_SOURCE_CREATE"), color: "#f5222d" }, + { value: "DATA_SOURCE_UPDATE", label: trans("enterprise.DATA_SOURCE_UPDATE"), color: "#cf1322" }, + { value: "DATA_SOURCE_DELETE", label: trans("enterprise.DATA_SOURCE_DELETE"), color: "#a8071a" }, + { value: "DATA_SOURCE_PERMISSION_GRANT", label: trans("enterprise.DATA_SOURCE_PERMISSION_GRANT"), color: "#820014" }, + { value: "DATA_SOURCE_PERMISSION_UPDATE", label: trans("enterprise.DATA_SOURCE_PERMISSION_UPDATE"), color: "#5c0011" }, + { value: "DATA_SOURCE_PERMISSION_DELETE", label: trans("enterprise.DATA_SOURCE_PERMISSION_DELETE"), color: "#8c8c8c" }, + { value: "LIBRARY_QUERY_CREATE", label: trans("enterprise.LIBRARY_QUERY_CREATE"), color: "#722ed1" }, + { value: "LIBRARY_QUERY_UPDATE", label: trans("enterprise.LIBRARY_QUERY_UPDATE"), color: "#531dab" }, + { value: "LIBRARY_QUERY_DELETE", label: trans("enterprise.LIBRARY_QUERY_DELETE"), color: "#391085" }, + { value: "LIBRARY_QUERY_PUBLISH", label: trans("enterprise.LIBRARY_QUERY_PUBLISH"), color: "#22075e" }, + { value: "API_CALL_EVENT", label: trans("enterprise.API_CALL_EVENT"), color: "#8c8c8c" }, +]; + +// temporary geoLocation data +export const geoLocation = { + "location": { + "accuracy_radius": 500, + "latitude": 24.8591, + "longitude": 66.9983, + "time_zone": "Asia/Karachi" + } +} \ No newline at end of file diff --git a/client/packages/lowcoder/src/pages/setting/audit/charts/eventTypesTime.tsx b/client/packages/lowcoder/src/pages/setting/audit/charts/eventTypesTime.tsx new file mode 100644 index 0000000000..ffb5ae83f2 --- /dev/null +++ b/client/packages/lowcoder/src/pages/setting/audit/charts/eventTypesTime.tsx @@ -0,0 +1,127 @@ +import React, { useRef } from "react"; +import ReactECharts from "echarts-for-react"; +import dayjs from "dayjs"; +import { debounce } from "lodash"; + +interface Props { + data: Array<any>; + eventTypeLabels: any; + eventTypes: Array<{ value: string; color: string }>; + setDateRange: (range: { fromTimestamp: string; toTimestamp: string }) => void; +} + +const EventTypeTimeChart = ({ data, eventTypeLabels, eventTypes, setDateRange }: Props) => { + const chartRef = useRef<any>(null); + + const debouncedSetDateRange = useRef( + debounce((fromTimestamp: string, toTimestamp: string) => { + setDateRange({ fromTimestamp, toTimestamp }); + }, 500) // Delays fetching only after zooming stops + ).current; + + // Extract min/max dates from the data + const allDates = data.map((log) => log.eventTime && dayjs(log.eventTime).format("YYYY-MM-DD")); + const minDate = allDates.length ? dayjs(Math.min(...allDates.map((d) => new Date(d).getTime()))) : dayjs().subtract(7, "days"); + const maxDate = allDates.length ? dayjs(Math.max(...allDates.map((d) => new Date(d).getTime()))) : dayjs(); + + // Generate full date range including missing days + const fullDateRange: string[] = []; + let currentDate = minDate; + while (currentDate.isBefore(maxDate) || currentDate.isSame(maxDate, "day")) { + fullDateRange.push(currentDate.format("YYYY-MM-DD")); + currentDate = currentDate.add(1, "day"); + } + + // Group data by date and eventType + const groupedData = data.reduce((acc: any, log: any) => { + const eventTime = log.eventTime ? new Date(log.eventTime) : null; + if (eventTime && !isNaN(eventTime.getTime())) { + const date = eventTime.toISOString().split("T")[0]; // Extract date part + if (!acc[date]) acc[date] = {}; + acc[date][log.eventType] = (acc[date][log.eventType] || 0) + 1; + } + return acc; + }, {}); + + // Get unique event types + const eventTypesSet = [...new Set(data.map((log: any) => log.eventType))]; + + const colorMap: { [key: string]: string } = Object.fromEntries( + eventTypes.map((et) => [et.value, et.color]) + ); + + // Prepare series data for each event type + const series = eventTypesSet.map((eventType) => ({ + name: eventTypeLabels[eventType] || eventType, + type: "bar", + stack: "total", + data: fullDateRange.map((date) => groupedData[date]?.[eventType] || 0), // Fill gaps with 0 + itemStyle: { + color: colorMap[eventType] || "#8c8c8c", // Use predefined color or fallback + }, + })); + + const handleChartEvents = (params: any) => { + // const {start, end} = params.batch?.[0]; + let {start, end} = params; + if (params?.batch) { + start = params.batch?.[0]?.start; + end = params.batch?.[0]?.end; + } + if (start !== undefined && end !== undefined) { + // debugger; + const startIndex = Math.floor((start / 100) * (fullDateRange.length - 1)); + const endIndex = Math.floor((end / 100) * (fullDateRange.length - 1)); + + const fromDate = new Date(fullDateRange[startIndex] || fullDateRange[0]); // Keep start of day + const toDate = new Date(fullDateRange[endIndex] || fullDateRange[fullDateRange.length - 1]); + + toDate.setHours(23, 59, 59, 999); + + const fromTimestamp = fromDate.toISOString(); + const toTimestamp = toDate.toISOString(); + debouncedSetDateRange(fromTimestamp, toTimestamp); + } + }; + + return ( + <ReactECharts + ref={chartRef} + option={{ + title: { text: "Audit Log", left: "center" }, + tooltip: { trigger: "axis", axisPointer: { type: "shadow" } }, + legend: { left: "left", orient: "vertical", top: "12%" }, // Ensure labels are on the left + grid: { left: "20%", right: "4%", bottom: "3%", containLabel: true }, + xAxis: { + type: "category", + data: fullDateRange, + axisLabel: { rotate: 45 }, + }, + yAxis: { + type: "value", + }, + dataZoom: [ + { + type: "slider", + xAxisIndex: 0, + filterMode: "weakFilter", + show: true, + start: 0, + end: 100, + realtime: false, + }, + { + type: "inside", + xAxisIndex: 0, + realtime: false, + }, + ], + series, + }} + onEvents={{ dataZoom: handleChartEvents }} + style={{ height: "400px", marginBottom: "20px" }} + /> + ); +}; + +export default EventTypeTimeChart; diff --git a/client/packages/lowcoder/src/pages/setting/audit/components/statistics.tsx b/client/packages/lowcoder/src/pages/setting/audit/components/statistics.tsx new file mode 100644 index 0000000000..88ee073096 --- /dev/null +++ b/client/packages/lowcoder/src/pages/setting/audit/components/statistics.tsx @@ -0,0 +1,36 @@ +import Statistic from "antd/es/statistic"; +import { AuditLogStat } from "../auditContants"; +import Card from "antd/es/card"; +import styled from "styled-components"; +import { useMemo } from "react"; + +const StyledStatistics = styled(Statistic)` + .ant-statistic-title { + font-size: 12px; + } + .ant-statistic-content { + font-size: 20px; + } +`; + +const Statistics = ({ stats }: { stats: AuditLogStat[] }) => { + const width = useMemo(() => { + if (stats.length < 5) return `${100/stats.length}%`; + return '20%'; + }, [stats.length]); + + return ( + <Card size="small" variant="borderless" style={{marginBottom: '20px'}}> + {stats.map(stat => ( + <Card.Grid key={stat.eventType} hoverable={false} style={{width, padding: '12px'}}> + <StyledStatistics + title={stat.eventType.split('_').join(' ')} + value={stat.groupCountResult} + /> + </Card.Grid> + ))} + </Card> + ) +} + +export default Statistics; diff --git a/client/packages/lowcoder/src/pages/setting/audit/dashboard.tsx b/client/packages/lowcoder/src/pages/setting/audit/dashboard.tsx new file mode 100644 index 0000000000..1180bd39bf --- /dev/null +++ b/client/packages/lowcoder/src/pages/setting/audit/dashboard.tsx @@ -0,0 +1,504 @@ +import { Card, Form, Select, Input, Button, message, Divider, Skeleton, Table, Flex, Tag, TableProps } from "antd"; +import React, { useEffect, useState, useCallback, useMemo } from "react"; +import { useDispatch, useSelector } from "react-redux"; +import styled from "styled-components"; +import { trans } from "i18n"; +import { + DetailContainer, + DetailContent, + Header, + } from "../theme/styledComponents"; +import { HeaderBack } from "pages/setting/permission/styledComponents"; +import { getUser } from "@lowcoder-ee/redux/selectors/usersSelectors"; +import { getAuditLogs, getAuditLogStatistics, getEnvironmentsByIds, getMeta } from "api/enterpriseApi"; +import EventTypeTimeChart from "./charts/eventTypesTime"; +import { debounce, uniqBy } from "lodash"; +import { DatePicker } from "antd"; +import dayjs, { Dayjs } from "dayjs"; +import { Link, useLocation } from "react-router-dom"; +import history from "util/history"; +import { SETTING_URL } from "@lowcoder-ee/constants/routesURL"; +import { EyeOutlined } from "@ant-design/icons"; +import { AuditLog, AuditLogStat, eventTypes } from "./auditContants"; +import Statistics from "./components/statistics"; +import { Level1SettingPageTitle } from "../styled"; + +const { RangePicker } = DatePicker; + +const LOG_PAGE_SIZE = 100; + +const AuditContent = styled.div` + font-size: 14px; + color: #8b8fa3; + flex-grow: 1; + padding-top: 0px; + padding-left: 0px; + max-width: 100%; +`; + +const StyleThemeSettingsCover = styled.div` + display: flex; + flex-direction: row; + background: linear-gradient(34deg, rgba(2, 0, 36, 1) 0%, rgba(102, 9, 121, 1) 35%, rgba(0, 255, 181, 1) 100%); + padding: 15px; + height: 80px; + border-radius: 10px 10px 0 0; +`; + +export const getEventColor = (eventType: string): string => { + const matchedType = eventTypes.find((et) => et.value === eventType); + return matchedType ? matchedType.color : "#8c8c8c"; +}; + +export const getEventLabel = (eventType: string): string => { + const matchedType = eventTypes.find((et) => et.value === eventType); + return matchedType ? matchedType.label : "unknown"; +}; + +export function AuditLogDashboard() { + const currentUser = useSelector(getUser); + const location = useLocation(); + + const [allLogs, setAllLogs] = useState<AuditLog[]>([]); + const [currentPageLogs, setCurrentPageLogs] = useState<AuditLog[]>([]); + const [statistics, setStatistics] = useState<AuditLogStat[]>([]); + const [dataMap, setDataMap] = useState<Record<string, any>>({}); + + const [total, setTotal] = useState(0); + const [loading, setLoading] = useState(false); + const [form] = Form.useForm(); + const [pagination, setPagination] = useState({ pageSize: 25, current: 1 }); + + // Function to get URL parameters + const getQueryParams = () => { + const params = new URLSearchParams(location.search); + let queryObject: Record<string, any> = {}; + + // Convert search params into a JavaScript object + params.forEach((value, key) => { + if (key !== 'fromTimestamp' && key !== 'toTimestamp') { + queryObject[key] = value; + } + }); + + // set date range picker values + let dateRange = new Array<Dayjs>(2); + if (params.get('fromTimestamp')) { + dateRange[0] = dayjs(params.get('fromTimestamp')); + } + if (params.get('toTimestamp')) { + dateRange[1] = dayjs(params.get('toTimestamp')); + } + + queryObject['dateRange'] = dateRange; + return queryObject; + }; + + useEffect(() => { + form.setFieldsValue(getQueryParams()); + }, []); + + const findUniqueDataIds = async () => { + if (!allLogs.length) { + return setDataMap({}); + } + + const uniqueOrgIds: string[] = uniqBy(allLogs, 'orgId').map(item => item.orgId); + const uniqueUserIds: string[] = uniqBy(allLogs, 'userId').map(item => item.userId); + const uniqueEnvIds: string[] = uniqBy(allLogs, 'environmentId').map(item => item.environmentId); + + const metaResponse = await getMeta({ + orgIds: uniqueOrgIds, + userIds: uniqueUserIds, + appIds: [], + groupIds: [], + bundleIds: [], + datasourceIds: [], + folderIds: [], + libraryQueryIds: [] + }); + + const envResponse = await getEnvironmentsByIds(uniqueEnvIds); + + const tempDataMap: Record<string, any> = {}; + metaResponse.data?.orgs?.forEach((org: { id: string; name: string; }) => { + tempDataMap[org.id] = org.name; + }); + metaResponse.data?.users?.forEach((user: { id: string; name: string; }) => { + tempDataMap[user.id] = user.name; + }); + envResponse.data?.forEach((env: { environmentId: string; environmentType: string; }) => { + tempDataMap[env.environmentId] = env.environmentType; + }); + setDataMap(tempDataMap); + } + + useEffect(() => { + findUniqueDataIds(); + }, [allLogs]); + + const getCleanedParams = (newPage?: number, newPageSize?: number) => { + const formValues = form.getFieldsValue(); + + let cleanedParams = Object.fromEntries( + Object.entries({ + ...formValues, + fromTimestamp: formValues.dateRange?.[0] ? formValues.dateRange[0].toISOString() : undefined, + toTimestamp: formValues.dateRange?.[1] ? formValues.dateRange[1].toISOString() : undefined, + }).filter(([key, value]) => value !== undefined && value !== null && value !== "" && key !== 'dateRange') + ); + if (newPage) { + cleanedParams = { + ...cleanedParams, + pageSize: newPageSize || LOG_PAGE_SIZE, // Always fetch 500 from API + pageNum: newPage, // API page number + } + } + + return cleanedParams; + } + + const handleQueryParams = (queryParams: Record<string, string>) => { + const params = new URLSearchParams(); + Object.keys(queryParams).map((key) => { + const value = queryParams[key]; + if (value) { + params.set(key, value); + } else { + params.delete(key); // Remove the key if the value is empty + } + }) + history.push({ search: params.toString() }) + } + + const fetchStatistics = async () => { + const cleanedParams = getCleanedParams(); + + const stats = await getAuditLogStatistics(cleanedParams); + setStatistics(stats?.data || []); + } + + // Fetch Logs with all form values if set + const fetchLogs = async ( + newPage: number, + newPageSize: number = LOG_PAGE_SIZE, + resetData: boolean = false, + resetDataOnly: boolean = false, + ) => { + const cleanedParams = getCleanedParams(newPage, newPageSize); + + handleQueryParams(cleanedParams as any); + + setLoading(true); + try { + const data = await getAuditLogs(cleanedParams); + // fetch statistics only when page is 1 + if (newPage === 1 && !resetDataOnly) { + fetchStatistics(); + } + + if (resetData) { + setAllLogs(data.data || []); + setPagination({ pageSize: 25, current: 1 }); // Reset pagination + } if (resetDataOnly) { + setAllLogs(data.data || []); + } else { + setAllLogs((prevLogs) => [...prevLogs, ...(data?.data || [])]); + } + + setTotal(data.totalCount); + } catch (error) { + message.error("Failed to fetch audit logs."); + } finally { + setLoading(false); + } + }; + + // Handle chart zoom + const handleChartZoom = ({ fromTimestamp, toTimestamp }: { fromTimestamp: string; toTimestamp: string }) => { + console.log("Zoom applied:", fromTimestamp, toTimestamp); + + const startDate = dayjs(fromTimestamp); + const endDate = dayjs(toTimestamp); + form.setFieldsValue({ dateRange: [startDate, endDate] }); + + // setPagination({ pageSize: 25, current: 1 }); + setAllLogs([]); + setCurrentPageLogs([]); + fetchLogs(1, total, true); + }; + + // Debounce handler for input fields + const handleInputChange = useCallback( + debounce(() => { + setPagination({ pageSize: 25, current: 1 }); + setAllLogs([]); + setCurrentPageLogs([]); + fetchLogs(1, LOG_PAGE_SIZE, true); + }, 300), + [] + ); + + const handleClickFilter = (field: any, value: any) => { + form.setFieldsValue({ [field]: value }); + + setPagination({ pageSize: 25, current: 1 }); + setAllLogs([]); + setCurrentPageLogs([]); + fetchLogs(1, LOG_PAGE_SIZE, true); + }; + + const handleDateChange = (dates: any) => { + if (dates?.[0] && dates?.[1]) { + form.setFieldsValue({ + fromTimestamp: dates[0].toISOString(), + toTimestamp: dates[1].toISOString(), + }); + } else { + form.resetFields(["fromTimestamp", "toTimestamp"]); + } + + // Reset pagination and clear logs BEFORE calling fetchLogs + setPagination({ pageSize: 25, current: 1 }); + setAllLogs([]); + setCurrentPageLogs([]); + + // Ensure fetchLogs is called only ONCE + fetchLogs(1, LOG_PAGE_SIZE, true); + }; + + // Handle page change + const handleTableChange: TableProps<any>["onChange"] = (newPagination) => { + const newPage = newPagination.current ?? 1; + const pageSize = newPagination.pageSize ?? 25; + const startIndex = (newPage - 1) * pageSize; + const endIndex = startIndex + pageSize; + + console.log( + `New Page: ${newPage}, StartIndex: ${startIndex}, EndIndex: ${endIndex}, AllLogs Length: ${allLogs.length}, Total: ${total}` + ); + + if (endIndex <= allLogs.length) { + // ✅ Correctly slice logs and update state + setCurrentPageLogs(allLogs.slice(startIndex, endIndex)); + } else if (allLogs.length < total) { + // ✅ Fetch next set of logs and update state after fetch + const originalNextApiPage = Math.floor((newPage * pageSize) / 100) + 1; + let nextApiPage = Math.floor(allLogs.length / 100) + 1; + let logPageSize = LOG_PAGE_SIZE; + let reset = false; + if (originalNextApiPage - pagination.current > 1) { + reset = true; + nextApiPage = 1; + logPageSize = newPage * pageSize; //(originalNextApiPage - pagination.current) * 100; + } + fetchLogs(nextApiPage, logPageSize, false, reset).then(() => { + setCurrentPageLogs(allLogs.slice(startIndex, endIndex)); + }); + } + + setPagination({ pageSize, current: newPage }); + }; + + useEffect(() => { + if (allLogs.length > 0) { + const startIndex = (pagination.current - 1) * pagination.pageSize; + const endIndex = startIndex + pagination.pageSize; + + console.log(`Updating displayed logs: StartIndex ${startIndex}, EndIndex ${endIndex}`); + setCurrentPageLogs(allLogs.slice(startIndex, endIndex)); + } + }, [pagination, allLogs]); + + + // Initial Fetch on Mount + useEffect(() => { + fetchLogs(1); + }, [currentUser.currentOrgId]); + + const columns = [ + { + title: "", + dataIndex: "eventDetail", + key: "eventDetail", + render: (_: string, record: any) => ( + <Link to={{ + pathname: `${SETTING_URL}/audit/${record.id}/detail`, + }} + > + <EyeOutlined /> + </Link> + ), + }, + { + title: "Event Type", + dataIndex: "eventType", + key: "eventType", + render: (text: string) => text ? <Tag color={getEventColor(text)}>{getEventLabel(text)}</Tag> : null, + }, + { + title: "Event Time", + dataIndex: "eventTime", + key: "eventTime", + render: (text: string) => { + if (!text) return null; + const date = new Date(text); + return new Intl.DateTimeFormat(navigator.language, { + year: "numeric", + month: "long", + day: "numeric", + hour: "2-digit", + minute: "2-digit", + second: "2-digit", + timeZoneName: "short", + }).format(date); + }, + }, + { + title: "Environment ID", + dataIndex: "environmentId", + key: "environmentId", + render: (text: string) => ( + <a onClick={() => handleClickFilter("environmentId", text)}>{dataMap[text] ?? text}</a> + ), + }, + { + title: "Org ID", + dataIndex: "orgId", + key: "orgId", + render: (text: string) => ( + <a onClick={() => handleClickFilter("orgId", text)}>{dataMap[text] ?? text}</a> + ), + }, + { + title: "User ID", + dataIndex: "userId", + key: "userId", + render: (text: string) => ( + <a onClick={() => handleClickFilter("userId", text)}>{dataMap[text] ?? text}</a> + ), + }, + { + title: "App ID", + dataIndex: "appId", + key: "appId", + render: (text: string, record: any) => ( + <a onClick={() => handleClickFilter("appId", text)}> + { + record.details?.applicationName + || record.details?.applicationId + || '-' + } + </a> + ), + } + ]; + + const eventTypeLabels = Object.fromEntries(eventTypes.map((et) => [et.value, et.label])); + + return ( + <DetailContainer> + <Header> + <Level1SettingPageTitle style={{marginBottom: 0}}> + <span>{trans("enterprise.AuditLogTitle")}</span> + </Level1SettingPageTitle> + </Header> + + <DetailContent> + <AuditContent> + <StyleThemeSettingsCover> + <h2 style={{ color: "#ffffff", marginTop: "8px" }}>{trans("enterprise.AuditLogOverview")}</h2> + </StyleThemeSettingsCover> + <Card size="small" style={{ marginBottom: "20px" }}> + <Form + form={form} + layout="inline" + onValuesChange={(changedValue) => { + const key = Object.keys(changedValue)[0]; + if (key === "dateRange") { + handleDateChange(changedValue.dateRange); + } else if (["environmentId", "orgId", "userId", "appId"].includes(key)) { + handleInputChange(); // Debounced input change + } else { + // Avoid calling fetchLogs if `handleDateChange` already did + fetchLogs(1, LOG_PAGE_SIZE, true); + } + }} + > + <Flex gap="middle" vertical> + <Flex> + <Form.Item name="dateRange"> + <RangePicker + showTime + format="YYYY-MM-DD 00:00:00" + value={form.getFieldValue("dateRange")}/> + </Form.Item> + <Form.Item name="eventType"> + <Select + allowClear + showSearch + placeholder="Event Type" + options={eventTypes} + style={{ width: 200 }} + /> + </Form.Item> + </Flex> + + <Flex> + <Form.Item name="environmentId"> + <Input placeholder="Environment ID" allowClear /> + </Form.Item> + <Form.Item name="orgId"> + <Input placeholder="Org ID" allowClear /> + </Form.Item> + <Form.Item name="userId"> + <Input placeholder="User ID" allowClear /> + </Form.Item> + <Form.Item name="appId"> + <Input placeholder="App ID" allowClear /> + </Form.Item> + </Flex> + </Flex> + </Form> + </Card> + {Boolean(statistics.length) && !loading && ( + <Statistics stats={statistics} /> + )} + <Card> + {loading ? ( + <Skeleton active paragraph={{ rows: 5 }} /> + ) : currentPageLogs.length > 0 ? ( + <> + <EventTypeTimeChart + data={allLogs} + eventTypeLabels={eventTypeLabels} + eventTypes={eventTypes} + setDateRange={handleChartZoom} + /> + <Divider /> + <div style={{ overflowX: "auto", width: "100%" }}> + <Table + rowKey="id" + columns={columns} + dataSource={currentPageLogs} + size="small" // Compact Layout + pagination={{ + pageSize: pagination.pageSize, + current: pagination.current, + total: total, + }} + style={{ width: "95%", whiteSpace: "nowrap" }} // Fixed width, prevent line break + onChange={handleTableChange} // Handle pagination + loading={loading} + /> + </div> + </> + ) : ( + <p>No logs found. Adjust the filters and try again.</p> + )} + </Card> + </AuditContent> + </DetailContent> + </DetailContainer> + ); +} \ No newline at end of file diff --git a/client/packages/lowcoder/src/pages/setting/audit/detail.tsx b/client/packages/lowcoder/src/pages/setting/audit/detail.tsx new file mode 100644 index 0000000000..16017dd23e --- /dev/null +++ b/client/packages/lowcoder/src/pages/setting/audit/detail.tsx @@ -0,0 +1,331 @@ +import { useParams } from "react-router-dom"; +import { DetailContainer, DetailContent, Header } from "../theme/styledComponents"; +import { HeaderBack } from "../permission/styledComponents"; +import { trans } from "i18n"; +import Card from "antd/es/card"; +import { styled } from "styled-components"; +import Descriptions from "antd/es/descriptions"; +import { AppleOutlined, AppstoreAddOutlined, AppstoreOutlined, ChromeOutlined, DesktopOutlined, EnvironmentOutlined, FileSearchOutlined, InfoCircleOutlined, TeamOutlined, UserOutlined } from "@ant-design/icons"; +import { Map, Marker } from "pigeon-maps" +import Tree from "antd/es/tree"; +import Empty from "antd/es/empty"; +import { ReactNode, useEffect, useMemo, useState } from "react"; +import { getAuditLogs, getEnvironmentsByIds, getMeta } from "@lowcoder-ee/api/enterpriseApi"; +import { isEmpty } from "lodash"; +import { getEventColor, getEventLabel } from "./dashboard"; +import Tag from "antd/es/tag"; +import { ArrowIcon } from "lowcoder-design"; +import history from "util/history"; +import { AUDIT_LOG_DASHBOARD } from "@lowcoder-ee/constants/routesURL"; + +const StyleThemeSettingsCover = styled.div` + display: flex; + flex-direction: row; + background: linear-gradient(34deg, rgba(2, 0, 36, 1) 0%, rgba(102, 9, 121, 1) 35%, rgba(0, 255, 181, 1) 100%); + padding: 15px; + height: 80px; + border-radius: 10px 10px 0 0; +`; + +const StyledTree = styled(Tree)` + &.ant-tree { + margin-top: 24px; + } + + .ant-tree-treenode { + margin-bottom: 12px; + } + + .ant-tree-node-content-wrapper { + padding: 8px; + } + + .ant-tree-switcher { + padding-top: 8px; + &::before { + top: 8px; + } + } + + .ant-tree-switcher_open::after { + content: ""; + width: 1px; + height: 100%; + position: absolute; + left: 46%; + top: 26px; + background: #d9d9d9; + } + + .ant-descriptions-header { + margin-bottom: 8px; + } + + .ant-tree-indent-unit { + width: 0; + } +`; + +const getResourceName = (eventType: string) => { + if (eventType.startsWith("USER_")) return "User"; + if (eventType.startsWith("APPLICATION_")) return "Application"; + if (eventType.startsWith("FOLDER_")) return "Folder"; + if (eventType.startsWith("QUERY_") || eventType.startsWith("LIBRARY_QUERY_")) return "Query"; + if (eventType.startsWith("GROUP_")) return "Group"; + if (eventType.startsWith("SERVER_")) return "Server"; + if (eventType.startsWith("DATA_SOURCE")) return "Data Source"; + if (eventType.startsWith("API_")) return "API"; + + return undefined; +} + +const getResourceData = (eventType: string, eventDetail: any) => { + if (eventType.startsWith("APPLICATION_")) + return { ID: eventDetail.applicationId, Name: eventDetail.applicationName}; + + return { + ID: eventDetail.id, Name: eventDetail.name, + } +} + +const EventTreeNode = (props: { + icon: ReactNode, + title: string, + data: Record<string, any> +}) => { + return ( + <Descriptions + bordered + column={1} + size="small" + title={<span>{props.icon} {props.title}</span>} + > + {Object.keys(props.data).map(dataKey => ( + <Descriptions.Item key={dataKey} label={dataKey}>{props.data[dataKey] || '-'}</Descriptions.Item> + ))} + </Descriptions> + ) +} +export function AuditLogDetail() { + const { eventId } = useParams<{eventId: string}>(); + const [ event, setEvent ] = useState<any>({}); + const [ meta, setMeta ] = useState<any>({}); + const [ environment, setEnvironment ] = useState<any>({}); + + const fetchEventData = async () => { + const response = await getAuditLogs({ eventId }); + setEvent(response?.data?.[0]); + } + + const fetchEventMeta = async () => { + if (isEmpty(event)) return; + + const response = await getMeta({ + orgIds: [event.orgId], + userIds: [event.userId], + appIds: [], + groupIds: [], + bundleIds: [], + datasourceIds: [], + folderIds: [], + libraryQueryIds: [] + }); + setMeta(response.data); + } + + const fetchEnvironmentData = async () => { + if (isEmpty(event)) return; + + const response = await getEnvironmentsByIds([event.environmentId]); + setEnvironment(response.data?.[0] || {}); + } + + useEffect(() => { + fetchEventData(); + }, [eventId]); + + useEffect(() => { + fetchEventMeta(); + fetchEnvironmentData(); + }, [JSON.stringify(event)]); + + const eventHierarchy = useMemo(() => { + if (isEmpty(event)) return []; + + const date = new Date(event.eventTime); + const eventTime = new Intl.DateTimeFormat(navigator.language, { + year: "numeric", + month: "long", + day: "numeric", + hour: "2-digit", + minute: "2-digit", + second: "2-digit", + timeZoneName: "short", + }).format(date); + + const resourceName = getResourceName(event.eventType); + const eventNode = { + title: ( + <EventTreeNode + icon={<InfoCircleOutlined />} + title="Event" + data={{ + Type: <Tag color={getEventColor(event?.eventType)}>{getEventLabel(event?.eventType)}</Tag>, + Time: eventTime, + }} + /> + ), + key: "0-0-0-0-0", + } + + let eventData = []; + if (Boolean(resourceName)) { + if (resourceName !== "User") { + const resource = { + title: ( + <EventTreeNode + icon={<AppstoreAddOutlined />} + title={resourceName as string} + data={getResourceData(event.eventType as string, event.details) || {}} + /> + ), + key: "0-0-0-0", + children: [] as any[], + }; + resource.children.push(eventNode) + eventData.push(resource); + } else { + eventData.push(eventNode) + } + } + + return [ + { + title: ( + <EventTreeNode + icon={<EnvironmentOutlined />} + title="Environment" + data={{ + ID: event?.environmentId, + Name: environment?.environmentType || '-' + }} + /> + ), + key: "0", + children: [ + { + title: ( + <EventTreeNode + icon={<TeamOutlined />} + title="Workspace" + data={{ + ID: event?.orgId, + Name: meta?.orgs?.[0]?.name || '-', + }} + /> + ), + key: "0-0", + children: [ + { + title: ( + <EventTreeNode + icon={<UserOutlined />} + title="User" + data={{ + ID: event?.userId, + Name: meta?.users?.[0]?.name || '-', + }} + /> + ), + key: "0-0-0", + children: eventData, + }, + ], + }, + ], + }, + ]; + }, [event, meta, environment]); + + if (!Boolean(event)) { + return ( + <DetailContainer> + <Header> + <HeaderBack> + <span onClick={() => history.push(AUDIT_LOG_DASHBOARD)}> + {trans("enterprise.AuditLogTitle")} + </span> + <ArrowIcon /> + <span>{"Audit Log Detail"}</span> + </HeaderBack> + </Header> + <DetailContent> + <Empty /> + </DetailContent> + </DetailContainer> + ) + } + + return ( + <DetailContainer> + <Header> + <HeaderBack> + <span onClick={() => history.push(AUDIT_LOG_DASHBOARD)}> + {trans("enterprise.AuditLogTitle")} + </span> + <ArrowIcon /> + <span>{"Audit Log Detail"}</span> + </HeaderBack> + </Header> + + <DetailContent> + {/* Geolocation */} + <StyleThemeSettingsCover> + <h2 style={{ color: "#ffffff", marginTop: "8px" }}>Geo Location</h2> + </StyleThemeSettingsCover> + <Card size="small" style={{ marginBottom: "20px", borderTopLeftRadius: 0, borderTopRightRadius: 0 }}> + <Map + height={300} + defaultZoom={5} + defaultCenter={[55, 15]} + > + <Marker + width={50} + anchor={[55, 15]} + /> + </Map> + </Card> + + {/* Browser/System Meta data */} + <StyleThemeSettingsCover> + <h2 style={{ color: "#ffffff", marginTop: "8px" }}>Browser / System Metadata</h2> + </StyleThemeSettingsCover> + <Card size="small" style={{ marginBottom: "20px", borderTopLeftRadius: 0, borderTopRightRadius: 0 }}> + <Descriptions bordered column={1} size="small"> + <Descriptions.Item label={<span><ChromeOutlined className="text-lg mr-2" /> Browser</span>}>{event?.agentName}</Descriptions.Item> + <Descriptions.Item label={<span><AppleOutlined className="text-lg mr-2" /> OS</span>}>{event?.operatingSystemName} ({event?.operatingSystemVersion})</Descriptions.Item> + <Descriptions.Item label={<span><DesktopOutlined className="text-lg mr-2" /> Device</span>}>{event?.deviceName}</Descriptions.Item> + <Descriptions.Item label={<span><DesktopOutlined className="text-lg mr-2" /> Device Type</span>}>{event?.deviceClass}</Descriptions.Item> + <Descriptions.Item label={<span><AppstoreOutlined className="text-lg mr-2" /> Engine</span>}>{event?.layoutEngineName} (Version: {event?.layoutEngineVersion})</Descriptions.Item> + <Descriptions.Item label={<span><AppstoreOutlined className="text-lg mr-2" /> Webview</span>}>{event?.webviewAppName}</Descriptions.Item> + </Descriptions> + </Card> + + {/* Event Detail */} + <StyleThemeSettingsCover> + <h2 style={{ color: "#ffffff", marginTop: "8px" }}>Event Detail</h2> + </StyleThemeSettingsCover> + <Card size="small" style={{ marginBottom: "20px", borderTopLeftRadius: 0, borderTopRightRadius: 0 }}> + {Boolean(eventHierarchy.length) && ( + <StyledTree + showLine + defaultExpandAll + selectable={false} + treeData={eventHierarchy} + /> + )} + </Card> + </DetailContent> + </DetailContainer> + ) +} \ No newline at end of file diff --git a/client/packages/lowcoder/src/pages/setting/audit/index.tsx b/client/packages/lowcoder/src/pages/setting/audit/index.tsx index 1ea1e77e02..d750932420 100644 --- a/client/packages/lowcoder/src/pages/setting/audit/index.tsx +++ b/client/packages/lowcoder/src/pages/setting/audit/index.tsx @@ -1,169 +1,159 @@ -import { HelpText } from "components/HelpText"; -import { GreyTextColor } from "constants/style"; -import { lazy, useEffect, useState, useRef } from "react"; -import { useDispatch, useSelector } from "react-redux"; -import { fetchCommonSettings } from "redux/reduxActions/commonSettingsActions"; -import { getCommonSettings } from "redux/selectors/commonSettingSelectors"; -import { fetchAPIUsageAction, fetchLastMonthAPIUsageAction } from "redux/reduxActions/orgActions"; -import { getUser } from "redux/selectors/usersSelectors"; -import { getOrgApiUsage, getOrgLastMonthApiUsage } from "redux/selectors/orgSelectors"; +import { AUDIT_LOG_DASHBOARD, AUDIT_LOG_DETAIL } from "@lowcoder-ee/constants/routesURL"; +import { Route, Switch } from "react-router-dom"; +import { AuditLogDashboard } from "./dashboard"; +import { AuditLogDetail } from "./detail"; +import { useSelector } from "react-redux"; import styled from "styled-components"; -import { useShallowEqualSelector } from "util/hooks"; +import { Card, Divider, Typography, Row, Col, Image } from "antd"; +import { HelpText } from "components/HelpText"; import { Level1SettingPageContent, Level1SettingPageTitle } from "../styled"; -import { fetchAllApplications } from "redux/reduxActions/applicationActions"; import { trans } from "i18n"; -import { Location } from "history"; -import Divider from "antd/es/divider"; -import { CustomSelect, TacoButton } from "lowcoder-design"; -import { getDeploymentId } from "@lowcoder-ee/redux/selectors/configSelectors"; +import { selectIsLicenseActive } from "redux/selectors/enterpriseSelectors"; +// import { getOrgApiUsage, getOrgLastMonthApiUsage } from "redux/selectors/orgSelectors"; -const AdvancedSettingContent = styled.div` - max-width: 840px; +const { Title, Paragraph, Text } = Typography; - .section-title { - font-size: 14px; - font-weight: 500; - margin-bottom: 8px; - } +const StyledSection = styled.div` + margin-bottom: 32px; - .section-content { - margin-bottom: 28px; + .ant-card { + border-radius: 8px; } - .section-option { - color: ${GreyTextColor}; - margin-bottom: 14px; - font-size: 13px; - } - - .code-editor { - margin-bottom: 12px; - } -`; - -const SaveButton = styled(TacoButton)` - padding: 4px 8px; - min-width: 84px; - height: 32px; -`; - -const CustomSelectStyle = styled(CustomSelect)` - .ant-select .ant-select-selector .ant-select-selection-item { - max-width: 230px; - display: block; + .image-placeholder { + background: #f5f5f5; + border: 1px dashed #ccc; + height: 200px; + display: flex; + align-items: center; + justify-content: center; + color: #999; + font-size: 14px; } `; -const HubspotFormContainer = styled.div` - max-width: 100%; - width: 100%; - .hs-form { - max-width: 100% !important; - } -`; +export const AuditLog = () => { + const isLicenseActive = useSelector(selectIsLicenseActive); + return isLicenseActive ? <AuditLogRoutes /> : <Audit />; +}; -let locationInfo: Location | Location<unknown> | null = null; - -declare global { - interface Window { - hbspt: { - forms: { - create: (options: { - region: string; - portalId: string; - formId: string; - target: string | HTMLElement | null; - }) => void; - }; - }; - } -} - -export default function Audit() { - const dispatch = useDispatch(); - const currentUser = useSelector(getUser); - const commonSettings = useShallowEqualSelector(getCommonSettings); - const [settings, setSettings] = useState(commonSettings); - const deploymentId = useSelector(getDeploymentId); - - - const apiUsage = useSelector(getOrgApiUsage); - useEffect(() => { - dispatch(fetchAPIUsageAction(currentUser.currentOrgId)); - }, [currentUser.currentOrgId]) - - const lastMonthApiUsage = useSelector(getOrgLastMonthApiUsage); - useEffect(() => { - dispatch(fetchLastMonthAPIUsageAction(currentUser.currentOrgId)); - }, [currentUser.currentOrgId]) - - useEffect(() => { - dispatch(fetchCommonSettings({ orgId: currentUser.currentOrgId })); - dispatch(fetchAllApplications({})); - }, [currentUser.currentOrgId, dispatch]); - - useEffect(() => { - setSettings(commonSettings); - }, [commonSettings]); - - useEffect(() => { - dispatch(fetchCommonSettings({ orgId: currentUser.currentOrgId })); - }, [currentUser.currentOrgId, dispatch]); - - const formRef = useRef<HTMLDivElement>(null); - - useEffect(() => { - const scriptId = "hubspot-script"; - - // Prevent re-adding the script - const existingScript = document.getElementById(scriptId) as HTMLScriptElement; - - const createForm = () => { - // Wait a tick to ensure #hubspot-form is in the DOM - setTimeout(() => { - if (window.hbspt && document.querySelector("#hubspot-form")) { - window.hbspt.forms.create({ - region: "eu1", - portalId: "144574215", - formId: "f03697ad-62cf-4161-a3de-228a2db1180b", - target: "#hubspot-form" - }); - } - }, 0); - }; - - if (!existingScript) { - const script = document.createElement("script"); - script.src = "https://js-eu1.hsforms.net/forms/embed/v2.js"; - script.async = true; - script.defer = true; - script.id = scriptId; - script.onload = createForm; - document.body.appendChild(script); - } else { - if (window.hbspt) { - createForm(); - } else { - existingScript.addEventListener("load", createForm); - } - } - }, []); - - +const AuditLogRoutes = () => ( + <Switch> + <Route path={AUDIT_LOG_DASHBOARD} component={AuditLogDashboard} exact /> + <Route path={AUDIT_LOG_DETAIL} component={AuditLogDetail} exact /> + </Switch> +); +const Audit = () => { return ( <Level1SettingPageContent> - <Level1SettingPageTitle>{trans("advanced.title")}</Level1SettingPageTitle> - <AdvancedSettingContent> - <div className="section-title">{trans("advanced.defaultHomeTitle")}</div> - <HelpText style={{ marginBottom: 12 }}>{trans("advanced.defaultHomeHelp")}</HelpText> - <div className="section-content"> + <Level1SettingPageTitle>{trans("enterprise.AuditLogsTitle")}</Level1SettingPageTitle> + + <StyledSection> + <Card title={trans("enterprise.AuditLogsIntroTitle")}> + <Paragraph>{trans("enterprise.AuditLogsIntro1")}</Paragraph> + <Paragraph>{trans("enterprise.AuditLogsIntro2")}</Paragraph> + <Paragraph>{trans("enterprise.AuditLogsIntro3")}</Paragraph> + </Card> + </StyledSection> + + <StyledSection> + <Card title={trans("enterprise.AuditLogsEventsTitle")}> + <Paragraph>{trans("enterprise.AuditLogsEventsIntro")}</Paragraph> + <Row gutter={[16, 8]}> + <Col span={12}> + <ul> + <li>{trans("enterprise.SignIn")}</li> + <li>{trans("enterprise.Logout")}</li> + <li>{trans("enterprise.ViewApp")}</li> + <li>{trans("enterprise.CreateApp")}</li> + <li>{trans("enterprise.DeleteApp")}</li> + <li>{trans("enterprise.UpdateApp")}</li> + <li>{trans("enterprise.MoveToFolder")}</li> + <li>{trans("enterprise.MoveToTrash")}</li> + <li>{trans("enterprise.RestoreApp")}</li> + <li>{trans("enterprise.CreateFolder")}</li> + <li>{trans("enterprise.DeleteFolder")}</li> + <li>{trans("enterprise.UpdateFolder")}</li> + <li>{trans("enterprise.ExecuteDataQuery")}</li> + </ul> + </Col> + <Col span={12}> + <ul> + <li>{trans("enterprise.CreateUserGroup")}</li> + <li>{trans("enterprise.UpdateUserGroup")}</li> + <li>{trans("enterprise.DeleteUserGroup")}</li> + <li>{trans("enterprise.AddGroupMember")}</li> + <li>{trans("enterprise.UpdateGroupMemberRole")}</li> + <li>{trans("enterprise.LeaveUserGroup")}</li> + <li>{trans("enterprise.RemoveGroupMember")}</li> + <li>{trans("enterprise.ServerStartup")}</li> + <li>{trans("enterprise.CreateDataSource")}</li> + <li>{trans("enterprise.UpdateDataSource")}</li> + <li>{trans("enterprise.DeleteDataSource")}</li> + <li>{trans("enterprise.GrantUpdateDeletePermission")}</li> + <li>{trans("enterprise.LibraryQueryActions")}</li> + <li>{trans("enterprise.PublishLibraryQuery")}</li> + </ul> + </Col> + </Row> + </Card> + </StyledSection> + + <StyledSection> + <Card title={trans("enterprise.AuditLogsPreviewTitle")}> + <Row gutter={[24, 24]}> + <Col span={8}> + <div className="image-placeholder"> + <Text type="secondary">{trans("enterprise.ScreenshotPlaceholder1")}</Text> + </div> + </Col> + <Col span={8}> + <div className="image-placeholder"> + <Text type="secondary">{trans("enterprise.ScreenshotPlaceholder2")}</Text> + </div> + </Col> + <Col span={8}> + <div className="image-placeholder"> + <Text type="secondary">{trans("enterprise.ScreenshotPlaceholder3")}</Text> + </div> + </Col> + </Row> + </Card> + </StyledSection> + + <StyledSection> + <Card title={trans("enterprise.PricingTitle")}> + <Paragraph>{trans("enterprise.PricingIntro")}</Paragraph> + + <Paragraph> + <Text strong>{trans("enterprise.FlatRateTitle")}</Text> + <br /> + {trans("enterprise.FlatRateDesc")} + </Paragraph> + <ul> + <li>{trans("enterprise.FlatRatePoint1")}</li> + <li>{trans("enterprise.FlatRatePoint2")}</li> + </ul> + <Divider /> - <HubspotFormContainer> - <div id="hubspot-form" /> - </HubspotFormContainer> - </div> - </AdvancedSettingContent> + + <Paragraph> + <Text strong>{trans("enterprise.UsagePricingTitle")}</Text> + <br /> + {trans("enterprise.UsagePricingDesc")} + </Paragraph> + <ul> + <li>{trans("enterprise.API100k")}</li> + <li>{trans("enterprise.API1M")}</li> + <li>{trans("enterprise.API10M")}</li> + </ul> + + <Paragraph>{trans("enterprise.UsageOverrunDesc")}</Paragraph> + <Paragraph>{trans("enterprise.UsageTopUpInfo")}</Paragraph> + </Card> + </StyledSection> </Level1SettingPageContent> ); -} + +}; \ No newline at end of file diff --git a/client/packages/lowcoder/src/pages/setting/branding/BrandingSetting.tsx b/client/packages/lowcoder/src/pages/setting/branding/BrandingSetting.tsx index 1a687e90e8..9ec8cd1d8e 100644 --- a/client/packages/lowcoder/src/pages/setting/branding/BrandingSetting.tsx +++ b/client/packages/lowcoder/src/pages/setting/branding/BrandingSetting.tsx @@ -1,3 +1,1136 @@ -import React from "react"; +import { HelpText } from "components/HelpText"; +import { Upload, Switch, Card, Input, message, Divider, Row, Col, Image } from "antd"; +import { TacoButton, CustomSelect, messageInstance, Dropdown, ResetIcon, CustomModal } from "lowcoder-design"; +import React, { useEffect, useMemo, useState, useCallback, useRef } from "react"; +import { useDispatch, useSelector } from "react-redux"; +import styled from "styled-components"; +import { trans } from "i18n"; +import { default as ColorPicker } from "antd/es/color-picker"; +import { + DetailContainer, + DetailContent, + Header, + } from "../theme/styledComponents"; +import { HeaderBack } from "pages/setting/permission/styledComponents"; +import { LoadingOutlined, PlusOutlined } from '@ant-design/icons'; +import type { UploadChangeParam, RcFile } from "antd/es/upload/interface"; +import MaterialApi, { MaterialUploadTypeEnum } from "@lowcoder-ee/api/materialApi"; +import { validateResponse } from "@lowcoder-ee/api/apiUtils"; +import { buildMaterialPreviewURL } from "@lowcoder-ee/util/materialUtils"; +import { getUser } from "@lowcoder-ee/redux/selectors/usersSelectors"; +import { Org } from "@lowcoder-ee/constants/orgConstants"; +import { BrandingConfig, BrandingSettings, createBranding, getBranding } from "@lowcoder-ee/api/enterpriseApi"; +import Flex from "antd/es/flex"; +import { fetchBrandingSetting } from "@lowcoder-ee/redux/reduxActions/enterpriseActions"; +import { Level1SettingPageTitle } from "../styled"; +import Title from "antd/es/typography/Title"; +import Paragraph from "antd/es/typography/Paragraph"; -export const BrandingSetting = () => null; +const { TextArea } = Input; + +enum SettingsEnum { + LOGO = "logo", + SQUARE_LOGO = "squareLogo", + ERROR_PAGE_IMAGE = "errorPageImage", + LOGOUT_PAGE_IMAGE = "loggedOutPageImage", + SIGNUP_PAGE_IMAGE = "signUpPageImage", + MAIN_BRANDING_COLOR = "mainBrandingColor", + APP_HEADER_COLOR = "appHeaderColor", + ADMIN_SIDEBAR_COLOR = "adminSidebarColor", + ADMIN_SIDEBAR_FONT_COLOR = "adminSidebarFontColor", + ADMIN_SIDEBAR_ACTIVE_BG_COLOR = "adminSidebarActiveBgColor", + ADMIN_SIDEBAR_ACTIVE_FONT_COLOR = "adminSidebarActiveFontColor", + EDITOR_SIDEBAR_COLOR = "editorSidebarColor", + EDITOR_SIDEBAR_FONT_COLOR = "editorSidebarFontColor", + EDITOR_SIDEBAR_ACTIVE_BG_COLOR = "editorSidebarActiveBgColor", + EDITOR_SIDEBAR_ACTIVE_FONT_COLOR = "editorSidebarActiveFontColor", + FONT = "font", + ERROR_PAGE_TEXT = "errorPageText", + SIGNUP_PAGE_TEXT = "signUpPageText", + LOGGED_OUT_PAGE_TEXT = "loggedOutPageText", + STANDARD_DESCRIPTION = "standardDescription", + STANDARD_TITLE = "standardTitle", + SHOW_DOCUMENTATION = "showDocumentation", + DOCUMENTATION_LINK = "documentationLink", + SUBMIT_ISSUE = "submitIssue", + WHATS_NEW = "whatsNew", + WHATS_NEW_LINK = "whatsNewLink", +} + +const defaultSettings = { + logo: null, + squareLogo: null, + mainBrandingColor: "#B480DE", + appHeaderColor: "#2c2c2c", + adminSidebarColor: "#f7f9fc", + adminSidebarFontColor: "#000000e0", + adminSidebarActiveBgColor: "#ebf0f7", + adminSidebarActiveFontColor: "#4965f2", + editorSidebarColor: "#393b47", + editorSidebarFontColor: "#ffffffa6", + editorSidebarActiveBgColor: "#8b8fa37f", + editorSidebarActiveFontColor: "#ffffff", + font: "Roboto", + errorPageText: "Oops! Something went wrong.", + errorPageImage: null, + signUpPageText: "Join us today to explore new opportunities!", + signUpPageImage: null, + loggedOutPageText: "You have been logged out successfully.", + loggedOutPageImage: null, + standardDescription: "This is a sample description for SEO.", + standardTitle: "Welcome to Our Application", + showDocumentation: true, + documentationLink: null, + submitIssue: true, + whatsNew: false, + whatsNewLink : null, +}; + +const settingDescription = { + logo: "The main logo displayed in the application header", + squareLogo: "Square or icon-style logo used where space is limited, like browser tabs or mobile headers.", + mainBrandingColor: "Core brand color used for branding across the app.", + appHeaderColor: "Background color of the application's top header/navigation bar.", + adminSidebarColor: "Background color of the admin panel's sidebar.", + adminSidebarFontColor: "Text color of the menu items in the admin sidebar.", + adminSidebarActiveBgColor: "Background color for the active/selected item in the admin sidebar.", + adminSidebarActiveFontColor: "Text color for the active/selected item in the admin sidebar.", + editorSidebarColor: "Background color of the editor (e.g., page builder) sidebar.", + editorSidebarFontColor: "Text color for items in the editor sidebar.6", + editorSidebarActiveBgColor: "Background color for the active item in the editor sidebar.", + editorSidebarActiveFontColor: "Text color for the active item in the editor sidebar.", + font: "Font family used throughout the app interface. Typically selected from Google Fonts.", + errorPageText: "Display a custom message and image when the app fails to load or encounters a critical error.", + errorPageImage: "Optional illustration or graphic shown on error pages.", + signUpPageText: "Customize the Sign Up page with a welcome message and an optional image to match your brand.", + signUpPageImage: "Optional graphic displayed on the signup page.", + loggedOutPageText: "You have been logged out successfully.", + loggedOutPageImage: null, + standardDescription: "Default description text used in metadata (e.g., SEO or share cards).", + standardTitle: "Set a default title and description for SEO and social media sharing when specific page metadata isn't provided", + showDocumentation: "Toggles whether a documentation link should appear in the app UI.", + documentationLink: null, + submitIssue: "Enables a link or button for users to report issues or bugs.", + whatsNew: "Enables display of new features, updates, or changelogs in the app.", + whatsNewLink : null, +}; + +const fonts = [ + {label: 'Roboto', value: 'Roboto'}, + {label: 'Open Sans', value: 'Open+Sans'}, + {label: 'Lato', value: 'Lato'}, + {label: 'Montserrat', value: 'Montserrat'}, + {label: 'Poppins', value: 'Poppins'}, + {label: 'Inter', value: 'Inter'}, + {label: 'Merriweather', value: 'Merriweather'}, + {label: 'Playfair Display', value: 'Playfair+Display'}, + {label: 'Raleway', value: 'Raleway'}, + {label: 'Nunito', value: 'Nunito'}, +] +// type FileType = Parameters<UploadProps["beforeUpload"]>[0] | undefined; + +const StyledBrandingSettingContent = styled.div` + font-size: 14px; + color: #8b8fa3; + flex-grow: 1; + padding-top: 0px; + padding-left: 0px; + max-width: 100%; + margin-top: 20px; +`; + +const StyledThemeSettingsCover = styled.div` + display: flex; + flex-direction: row; + background: linear-gradient(34deg, rgba(2, 0, 36, 1) 0%, rgba(102, 9, 121, 1) 35%, rgba(0, 255, 181, 1) 100%); + padding: 15px; + height: 80px; + border-radius: 10px 10px 0 0; +`; + +const StyledCoverTitle = styled.h2` + color: #ffffff; + margin-top: 8px; +`; + +const StyledSectionTitle = styled.h3` + margin-bottom: 12px; +`; + +const StyledInput = styled(Input)` + margin-bottom: 12px; +`; + +const StyledTextArea = styled(TextArea)` + margin-bottom: 12px; +`; + +const StyledDropdown = styled(Dropdown)` + width: 300px; +`; + +const StyledImage = styled(Image)` + border-radius: 6px; + box-shadow: 0px 0px 8px 0px lightgray; + object-fit: cover; + object-position: top; +`; + +const StyledCustomSelect = styled(CustomSelect)` + min-width: 150px; +`; + +const StyledRow = styled(Row)` + padding: 10px 0; +`; + +const StyledButtonContainer = styled(Flex)` + margin-top: 20px; +`; + +const StyledDivider = styled(Divider)` + margin: 20px 0; +`; + +const StyledSwitchContainer = styled.div` + margin-top: 20px; +`; + +const StyledRectUploadContainer = styled.div` + .avatar-uploader { + width: 240px; + height: 100px; + display: flex; + justify-content: center; + align-items: center; + border: 1px dashed #d9d9d9; + border-radius: 8px; + overflow: hidden; + } + + img { + width: 240px; + height: 100px; + object-fit: cover; + border-radius: 8px; + } +`; + +const StyledSquareUploadContainer = styled.div` + .avatar-uploader { + width: 100px; + height: 100px; + display: flex; + justify-content: center; + align-items: center; + border: 1px dashed #d9d9d9; + border-radius: 8px; + overflow: hidden; + } + + img { + width: 100px; + height: 100px; + object-fit: cover; + border-radius: 8px; + } +`; + +const getBase64 = (file: File): Promise<string> => { + return new Promise((resolve, reject) => { + const reader = new FileReader(); + reader.readAsBinaryString(file); + + reader.onload = () => resolve(reader.result as string); + reader.onerror = error => reject(error); + }); +}; + +const beforeUpload = (file: RcFile) => { + const isJpgOrPng = file.type === "image/jpeg" || file.type === "image/png" || file.type === "image/svg+xml"; + if (!isJpgOrPng) { + message.error("You can only upload JPG/PNG/SVG files!"); + return Upload.LIST_IGNORE; + } + const isLt2M = file.size / 1024 / 1024 < 2; + if (!isLt2M) { + message.error("Image must be smaller than 2MB!"); + return Upload.LIST_IGNORE; + } + return true; +}; + +export function BrandingSetting() { + const dispatch = useDispatch(); + const [configOrgId, setConfigOrgId] = useState<string>(''); + const [configOrgName, setConfigOrgName] = useState<string | undefined>('Global'); + const [settings, setSettings] = useState<BrandingSettings>(defaultSettings); + const [brandingConfig, setBrandingConfig] = useState<BrandingConfig>(); + const [defaultBrandingConfig, setDefaultBrandingConfig] = useState<BrandingConfig>(); + const [loading, setLoading] = useState({ + [SettingsEnum.LOGO]: false, + [SettingsEnum.SQUARE_LOGO]: false, + [SettingsEnum.ERROR_PAGE_IMAGE]: false, + [SettingsEnum.LOGOUT_PAGE_IMAGE]: false, + [SettingsEnum.SIGNUP_PAGE_IMAGE]: false, + }); + const currentUser = useSelector(getUser); + + const orgsList = useMemo(() => { + const list: Array<{label: string, value: string}> = [{ + label: 'Global', + value: '', + }]; + currentUser?.orgs?.forEach((org: Org) => { + list.push({ + value: org.id, + label: org.name, + }); + }); + return list; + }, [currentUser]); + + useEffect(() => { + const fetchBrandingDetails = async() => { + try { + const branding = await getBranding(configOrgId); + setBrandingConfig(branding); + setDefaultBrandingConfig(branding); + } catch(e) { + setBrandingConfig(undefined); + setDefaultBrandingConfig(undefined); + message.error(trans("branding.fetchBrandingError")); + } + } + + fetchBrandingDetails(); + }, [configOrgId]); + + const isBrandingNotChange = useCallback(() => { + return JSON.stringify(brandingConfig) === JSON.stringify(defaultBrandingConfig); + }, [brandingConfig, defaultBrandingConfig]); + + const updateSettings = (key: keyof BrandingSettings, value: any) => { + setBrandingConfig((branding) => ({ + ...branding, + config_set: { + ...branding?.config_set, + [key]: value + } + })); + }; + + const handleUpload = async (options: any, imageType: keyof BrandingSettings) => { + const { onSuccess, onError, file } = options; + + try { + setLoading((loading) => ({ + ...loading, + [imageType]: true, + })) + const base64File = await getBase64(file); + const resp = await MaterialApi.upload( + file.name, + MaterialUploadTypeEnum.COMMON, + btoa(base64File), + ); + if (validateResponse(resp)) { + onSuccess(trans("success")); + updateSettings(imageType, resp.data.data.id); + return; + } + throw new Error("Something went wrong"); + } catch (error: any) { + onError(error); + messageInstance.error(trans("home.fileUploadError")); + } finally { + setLoading((loading) => ({ + ...loading, + [imageType]: false, + })) + } + } + + const handleSave = async (brandingConfig?: BrandingConfig) => { + try { + await createBranding({ + ...brandingConfig, + org_id: configOrgId, + }); + setDefaultBrandingConfig(brandingConfig); + messageInstance.success(trans("theme.saveSuccessMsg")); + + dispatch(fetchBrandingSetting({orgId: configOrgId})); + } catch (e) { + console.error(e) + } + } + + const handleDelete = (id: string) => { + CustomModal.confirm({ + title: trans("branding.deleteBranding"), + content: trans("branding.deleteBrandingContent", {orgName: configOrgName}), + onConfirm: () => { + const newBrandingConfig = { + ...brandingConfig, + config_name: '', + config_description: '', + config_icon: '', + config_set: {}, + } + setBrandingConfig(newBrandingConfig); + handleSave(newBrandingConfig); + }, + confirmBtnType: "delete", + okText: trans("delete"), + }) + } + + const uploadButton = useCallback((loading: boolean) => ( + <div> + {loading ? <LoadingOutlined /> : <PlusOutlined />} + <div style={{ marginTop: 8 }}>{trans("branding.upload")}</div> + </div> + ), []); + + return ( + <DetailContainer> + <Header> + <Level1SettingPageTitle style={{marginBottom: 0}}> + <span>{trans("branding.title")}</span> + </Level1SettingPageTitle> + </Header> + <DetailContent> + + {/* Branding Settings Selection */} + <StyledBrandingSettingContent> + <StyledThemeSettingsCover> + <StyledCoverTitle>{trans("branding.general")}</StyledCoverTitle> + </StyledThemeSettingsCover> + <Card> + <div> + <StyledSectionTitle>{trans("branding.selectWorkspace")}</StyledSectionTitle> + <StyledDropdown + placeholder={trans("branding.selectWorkspace")} + options={orgsList} + allowClear + onChange={(value) => { + setConfigOrgId(value); + setConfigOrgName(orgsList.find(org => org.value === value)?.label) + }} + value={configOrgId} + /> + </div> + + <div> + <StyledSectionTitle>{trans("branding.brandingName")}</StyledSectionTitle> + <StyledInput + placeholder={trans("branding.brandingNamePlaceholder")} + value={brandingConfig?.config_name} + onChange={(e) => { + setBrandingConfig((branding) => ({ + ...(branding || {}), + config_name: e.target.value + })) + }} + /> + {/* <HelpText>{trans("branding.documentationLinkHelp")}</HelpText> */} + </div> + + <div> + <StyledSectionTitle>{trans("branding.brandingDescription")}</StyledSectionTitle> + <StyledInput + placeholder={trans("branding.brandingDescriptionPlaceholder")} + value={brandingConfig?.config_description} + onChange={(e) => { + setBrandingConfig((branding) => ({ + ...(branding || {}), + config_description: e.target.value + })) + }} + /> + {/* <HelpText>{trans("branding.documentationLinkHelp")}</HelpText> */} + </div> + </Card> + </StyledBrandingSettingContent> + + {/* General Logos */} + <StyledBrandingSettingContent> + <StyledThemeSettingsCover> + <StyledCoverTitle>{trans("branding.logoSection")}</StyledCoverTitle> + </StyledThemeSettingsCover> + <Card> + <StyledRow gutter={32} align={"middle"} justify={"space-between"}> + <Col xs={24} md={6}> + <StyledSectionTitle>{trans("branding.logo")}</StyledSectionTitle> + {!Boolean(configOrgId) ? ( + <> + <StyledInput + placeholder={trans("branding.logoUrlPlaceholder")} + value={brandingConfig?.config_set?.[SettingsEnum.LOGO] || ""} + onChange={(e) => updateSettings(SettingsEnum.LOGO, e.target.value)} + style={{ marginBottom: 12 }} + /> + </> + ) : ( + <StyledRectUploadContainer> + <Upload + name="logo" + className="avatar-uploader" + listType="picture-card" + showUploadList={false} + beforeUpload={beforeUpload} + maxCount={1} + customRequest={(options) => handleUpload(options, SettingsEnum.LOGO)} + > + {Boolean(brandingConfig?.config_set?.[SettingsEnum.LOGO]) + ? <img src={buildMaterialPreviewURL(brandingConfig?.config_set?.[SettingsEnum.LOGO]!)} alt="logo" /> + : uploadButton(loading[SettingsEnum.LOGO]) + } + </Upload> + </StyledRectUploadContainer> + )} + </Col> + <Col xs={24} md={8}> + <Paragraph type="secondary"> + {settingDescription[SettingsEnum.LOGO]} + </Paragraph> + </Col> + <Col xs={24} md={8} style={{textAlign: 'right'}}> + <StyledImage + width={200} + height={100} + src="https://placehold.co/200x100" + alt="Color Preview" + preview + loading="lazy" + /> + </Col> + </StyledRow> + </Card> + </StyledBrandingSettingContent> + + {/* Colors and Fonts */} + <StyledBrandingSettingContent> + <StyledThemeSettingsCover> + <StyledCoverTitle>{trans("branding.colorFontSection")}</StyledCoverTitle> + </StyledThemeSettingsCover> + <Card> + <StyledRow gutter={32} align={"middle"} justify={"space-between"}> + <Col xs={24} md={6}> + <StyledSectionTitle>{trans("branding.mainBrandingColor")}</StyledSectionTitle> + <ColorPicker + getPopupContainer={(node: any) => node.parentNode} + value={brandingConfig?.config_set?.mainBrandingColor} + showText + allowClear + format="hex" + onChange={(_, hex) => updateSettings(SettingsEnum.MAIN_BRANDING_COLOR, hex)} + /> + </Col> + <Col xs={24} md={8}> + <Paragraph type="secondary"> + {settingDescription[SettingsEnum.MAIN_BRANDING_COLOR]} + </Paragraph> + </Col> + <Col xs={24} md={8} style={{textAlign: 'right'}}> + <StyledImage + width={200} + height={100} + src="https://placehold.co/200x100" + alt="Color Preview" + preview + loading="lazy" + /> + </Col> + </StyledRow> + + <StyledRow gutter={32} align={"middle"} justify={"space-between"}> + <Col xs={24} md={6}> + <StyledSectionTitle>{trans("branding.editorHeaderColor")}</StyledSectionTitle> + <ColorPicker + getPopupContainer={(node: any) => node.parentNode} + value={brandingConfig?.config_set?.appHeaderColor} + showText + allowClear + format="hex" + onChange={(_, hex) => updateSettings(SettingsEnum.APP_HEADER_COLOR, hex)} + /> + </Col> + <Col xs={24} md={8}> + <Paragraph type="secondary"> + {settingDescription[SettingsEnum.APP_HEADER_COLOR]} + </Paragraph> + </Col> + <Col xs={24} md={8} style={{textAlign: 'right'}}> + <StyledImage + width={200} + height={100} + src="https://placehold.co/200x100" + alt="Color Preview" + preview + loading="lazy" + /> + </Col> + </StyledRow> + + <StyledRow gutter={32} align={"middle"} justify={"space-between"}> + <Col xs={24} md={6}> + <StyledSectionTitle>{trans("branding.adminSidebarColor")}</StyledSectionTitle> + <ColorPicker + getPopupContainer={(node: any) => node.parentNode} + value={brandingConfig?.config_set?.adminSidebarColor} + showText + allowClear + format="hex" + onChange={(_, hex) => updateSettings(SettingsEnum.ADMIN_SIDEBAR_COLOR, hex)} + /> + </Col> + <Col xs={24} md={8}> + <Paragraph type="secondary"> + {settingDescription[SettingsEnum.ADMIN_SIDEBAR_COLOR]} + </Paragraph> + </Col> + <Col xs={24} md={8} style={{textAlign: 'right'}}> + <StyledImage + width={200} + height={100} + src="https://placehold.co/200x100" + alt="Color Preview" + preview + loading="lazy" + /> + </Col> + </StyledRow> + + <StyledRow gutter={32} align={"middle"} justify={"space-between"}> + <Col xs={24} md={6}> + <StyledSectionTitle>{trans("branding.adminSidebarFontColor")}</StyledSectionTitle> + <ColorPicker + getPopupContainer={(node: any) => node.parentNode} + value={brandingConfig?.config_set?.adminSidebarFontColor} + showText + allowClear + format="hex" + onChange={(_, hex) => updateSettings(SettingsEnum.ADMIN_SIDEBAR_FONT_COLOR, hex)} + /> + </Col> + <Col xs={24} md={8}> + <Paragraph type="secondary"> + {settingDescription[SettingsEnum.ADMIN_SIDEBAR_FONT_COLOR]} + </Paragraph> + </Col> + <Col xs={24} md={8} style={{textAlign: 'right'}}> + <StyledImage + width={200} + height={100} + src="https://placehold.co/200x100" + alt="Color Preview" + preview + loading="lazy" + /> + </Col> + </StyledRow> + + <StyledRow gutter={32} align={"middle"} justify={"space-between"}> + <Col xs={24} md={6}> + <StyledSectionTitle>{trans("branding.adminSidebarActiveBgColor")}</StyledSectionTitle> + <ColorPicker + getPopupContainer={(node: any) => node.parentNode} + value={brandingConfig?.config_set?.adminSidebarActiveBgColor} + showText + allowClear + format="hex" + onChange={(_, hex) => updateSettings(SettingsEnum.ADMIN_SIDEBAR_ACTIVE_BG_COLOR, hex)} + /> + </Col> + <Col xs={24} md={8}> + <Paragraph type="secondary"> + {settingDescription[SettingsEnum.ADMIN_SIDEBAR_ACTIVE_BG_COLOR]} + </Paragraph> + </Col> + <Col xs={24} md={8} style={{textAlign: 'right'}}> + <StyledImage + width={200} + height={100} + src="https://placehold.co/200x100" + alt="Color Preview" + preview + loading="lazy" + /> + </Col> + </StyledRow> + + <StyledRow gutter={32} align={"middle"} justify={"space-between"}> + <Col xs={24} md={6}> + <StyledSectionTitle>{trans("branding.adminSidebarActiveFontColor")}</StyledSectionTitle> + <ColorPicker + getPopupContainer={(node: any) => node.parentNode} + value={brandingConfig?.config_set?.adminSidebarActiveFontColor} + showText + allowClear + format="hex" + onChange={(_, hex) => updateSettings(SettingsEnum.ADMIN_SIDEBAR_ACTIVE_FONT_COLOR, hex)} + /> + </Col> + <Col xs={24} md={8}> + <Paragraph type="secondary"> + {settingDescription[SettingsEnum.ADMIN_SIDEBAR_ACTIVE_FONT_COLOR]} + </Paragraph> + </Col> + <Col xs={24} md={8} style={{textAlign: 'right'}}> + <StyledImage + width={200} + height={100} + src="https://placehold.co/200x100" + alt="Color Preview" + preview + loading="lazy" + /> + </Col> + </StyledRow> + + <StyledRow gutter={32} align={"middle"} justify={"space-between"}> + <Col xs={24} md={6}> + <StyledSectionTitle>{trans("branding.editorSidebarColor")}</StyledSectionTitle> + <ColorPicker + getPopupContainer={(node: any) => node.parentNode} + value={brandingConfig?.config_set?.editorSidebarColor} + showText + allowClear + format="hex" + onChange={(_, hex) => updateSettings(SettingsEnum.EDITOR_SIDEBAR_COLOR, hex)} + /> + </Col> + <Col xs={24} md={8}> + <Paragraph type="secondary"> + {settingDescription[SettingsEnum.EDITOR_SIDEBAR_COLOR]} + </Paragraph> + </Col> + <Col xs={24} md={8} style={{textAlign: 'right'}}> + <StyledImage + width={200} + height={100} + src="https://placehold.co/200x100" + alt="Color Preview" + preview + loading="lazy" + /> + </Col> + </StyledRow> + + <StyledRow gutter={32} align={"middle"} justify={"space-between"}> + <Col xs={24} md={6}> + <StyledSectionTitle>{trans("branding.editorSidebarFontColor")}</StyledSectionTitle> + <ColorPicker + getPopupContainer={(node: any) => node.parentNode} + value={brandingConfig?.config_set?.editorSidebarFontColor} + showText + allowClear + format="hex" + onChange={(_, hex) => updateSettings(SettingsEnum.EDITOR_SIDEBAR_FONT_COLOR, hex)} + /> + </Col> + <Col xs={24} md={8}> + <Paragraph type="secondary"> + {settingDescription[SettingsEnum.EDITOR_SIDEBAR_FONT_COLOR]} + </Paragraph> + </Col> + <Col xs={24} md={8} style={{textAlign: 'right'}}> + <StyledImage + width={200} + height={100} + src="https://placehold.co/200x100" + alt="Color Preview" + preview + loading="lazy" + /> + </Col> + </StyledRow> + + <StyledRow gutter={32} align={"middle"} justify={"space-between"}> + <Col xs={24} md={6}> + <StyledSectionTitle>{trans("branding.editorSidebarActiveBgColor")}</StyledSectionTitle> + <ColorPicker + getPopupContainer={(node: any) => node.parentNode} + value={brandingConfig?.config_set?.editorSidebarActiveBgColor} + showText + allowClear + format="hex" + onChange={(_, hex) => updateSettings(SettingsEnum.EDITOR_SIDEBAR_ACTIVE_BG_COLOR, hex)} + /> + </Col> + <Col xs={24} md={8}> + <Paragraph type="secondary"> + {settingDescription[SettingsEnum.EDITOR_SIDEBAR_ACTIVE_BG_COLOR]} + </Paragraph> + </Col> + <Col xs={24} md={8} style={{textAlign: 'right'}}> + <StyledImage + width={200} + height={100} + src="https://placehold.co/200x100" + alt="Color Preview" + preview + loading="lazy" + /> + </Col> + </StyledRow> + + <StyledRow gutter={32} align={"middle"} justify={"space-between"}> + <Col xs={24} md={6}> + <StyledSectionTitle>{trans("branding.editorSidebarActiveFontColor")}</StyledSectionTitle> + <ColorPicker + getPopupContainer={(node: any) => node.parentNode} + value={brandingConfig?.config_set?.editorSidebarActiveFontColor} + showText + allowClear + format="hex" + onChange={(_, hex) => updateSettings(SettingsEnum.EDITOR_SIDEBAR_ACTIVE_FONT_COLOR, hex)} + /> + </Col> + <Col xs={24} md={8}> + <Paragraph type="secondary"> + {settingDescription[SettingsEnum.EDITOR_SIDEBAR_ACTIVE_FONT_COLOR]} + </Paragraph> + </Col> + <Col xs={24} md={8} style={{textAlign: 'right'}}> + <StyledImage + width={200} + height={100} + src="https://placehold.co/200x100" + alt="Color Preview" + preview + loading="lazy" + /> + </Col> + </StyledRow> + + <StyledRow gutter={32} align={"middle"} justify={"space-between"}> + <Col xs={24} md={6}> + <StyledSectionTitle>{trans("branding.font")}</StyledSectionTitle> + <StyledCustomSelect + placeholder={trans("style.fontFamily")} + options={fonts} + value={brandingConfig?.config_set?.font} + onChange={(font) => updateSettings(SettingsEnum.FONT, font)} + /> + </Col> + <Col xs={24} md={8}> + <Paragraph type="secondary"> + {settingDescription[SettingsEnum.FONT]} + </Paragraph> + </Col> + <Col xs={24} md={8} style={{textAlign: 'right'}}> + <StyledImage + width={200} + height={100} + src="https://placehold.co/200x100" + alt="Color Preview" + preview + loading="lazy" + /> + </Col> + </StyledRow> + </Card> + </StyledBrandingSettingContent> + + {/* Texts and Images for Standard Pages */} + <StyledBrandingSettingContent> + <StyledThemeSettingsCover> + <StyledCoverTitle>{trans("branding.textSection")}</StyledCoverTitle> + </StyledThemeSettingsCover> + <Card> + <StyledRow gutter={32} align={"middle"} justify={"space-between"}> + <Col xs={24} md={6}> + <StyledSectionTitle>{trans("branding.errorPage")}</StyledSectionTitle> + <StyledTextArea + rows={4} + value={brandingConfig?.config_set?.errorPageText || ""} + onChange={(e) => updateSettings(SettingsEnum.ERROR_PAGE_TEXT, e.target.value)} + /> + + {!Boolean(configOrgId) ? ( + <> + <StyledSectionTitle style={{marginTop : "20px"}}>{trans("branding.errorPageImageUrl")}</StyledSectionTitle> + <StyledInput + placeholder={trans("branding.errorPageImageUrlPlaceholder")} + value={brandingConfig?.config_set?.[SettingsEnum.ERROR_PAGE_IMAGE] || ""} + onChange={(e) => updateSettings(SettingsEnum.ERROR_PAGE_IMAGE, e.target.value)} + /> + </> + ) : ( + <> + <StyledSectionTitle style={{marginTop : "20px"}}>{trans("branding.errorPageImage")}</StyledSectionTitle> + <StyledRectUploadContainer> + <Upload + name="errorPageImage" + className="avatar-uploader" + listType="picture-card" + showUploadList={false} + beforeUpload={beforeUpload} + maxCount={1} + customRequest={(options) => handleUpload(options, SettingsEnum.ERROR_PAGE_IMAGE)} + > + {Boolean(brandingConfig?.config_set?.[SettingsEnum.ERROR_PAGE_IMAGE]) + ? <img src={buildMaterialPreviewURL(brandingConfig?.config_set?.[SettingsEnum.ERROR_PAGE_IMAGE]!)} alt="error_page_image" /> + : uploadButton(loading[SettingsEnum.ERROR_PAGE_IMAGE]) + } + </Upload> + </StyledRectUploadContainer> + </> + )} + </Col> + <Col xs={24} md={8}> + <Paragraph type="secondary"> + {settingDescription[SettingsEnum.ERROR_PAGE_TEXT]} + </Paragraph> + </Col> + <Col xs={24} md={8} style={{textAlign: 'right'}}> + <StyledImage + width={200} + height={100} + src="https://placehold.co/200x100" + alt="Color Preview" + preview + loading="lazy" + /> + </Col> + </StyledRow> + <StyledDivider /> + <StyledRow gutter={32} align={"middle"} justify={"space-between"}> + <Col xs={24} md={6}> + <StyledSectionTitle style={{marginTop : "20px"}}>{trans("branding.signUpPage")}</StyledSectionTitle> + <StyledTextArea + rows={4} + value={brandingConfig?.config_set?.signUpPageText || ""} + onChange={(e) => updateSettings(SettingsEnum.SIGNUP_PAGE_TEXT, e.target.value)} + /> + + {!Boolean(configOrgId) ? ( + <> + <StyledSectionTitle style={{marginTop : "20px"}}>{trans("branding.signUpPageImageUrl")}</StyledSectionTitle> + <StyledInput + placeholder={trans("branding.signUpPageImageUrlPlaceholder")} + value={brandingConfig?.config_set?.[SettingsEnum.SIGNUP_PAGE_IMAGE] || ""} + onChange={(e) => updateSettings(SettingsEnum.SIGNUP_PAGE_IMAGE, e.target.value)} + /> + </> + ) : ( + <> + <StyledSectionTitle style={{marginTop : "20px"}}>{trans("branding.signUpPageImage")}</StyledSectionTitle> + <StyledRectUploadContainer> + <Upload + name="signUpPageImage" + className="avatar-uploader" + listType="picture-card" + showUploadList={false} + beforeUpload={beforeUpload} + maxCount={1} + customRequest={(options) => handleUpload(options, SettingsEnum.SIGNUP_PAGE_IMAGE)} + > + {Boolean(brandingConfig?.config_set?.[SettingsEnum.SIGNUP_PAGE_IMAGE]) + ? <img src={buildMaterialPreviewURL(brandingConfig?.config_set?.[SettingsEnum.SIGNUP_PAGE_IMAGE]!)} alt="signup_page_image" /> + : uploadButton(loading[SettingsEnum.SIGNUP_PAGE_IMAGE]) + } + </Upload> + </StyledRectUploadContainer> + </> + )} + </Col> + <Col xs={24} md={8}> + <Paragraph type="secondary"> + {settingDescription[SettingsEnum.ERROR_PAGE_TEXT]} + </Paragraph> + </Col> + <Col xs={24} md={8} style={{textAlign: 'right'}}> + <StyledImage + width={200} + height={100} + src="https://placehold.co/200x100" + alt="Color Preview" + preview + loading="lazy" + /> + </Col> + </StyledRow> + <StyledDivider /> + <StyledRow gutter={32} align={"middle"} justify={"space-between"}> + <Col xs={24} md={6}> + <div style={{marginTop : "20px"}}> + <StyledSectionTitle>{trans("branding.standardTitle")}</StyledSectionTitle> + <StyledTextArea + rows={2} + value={brandingConfig?.config_set?.standardTitle || ""} + onChange={(e) => updateSettings(SettingsEnum.STANDARD_TITLE, e.target.value)} + /> + </div> + <div style={{marginTop : "20px"}}> + <StyledSectionTitle>{trans("branding.standardDescription")}</StyledSectionTitle> + <StyledTextArea + rows={2} + value={brandingConfig?.config_set?.standardDescription || ""} + onChange={(e) => updateSettings(SettingsEnum.STANDARD_DESCRIPTION, e.target.value)} + /> + </div> + </Col> + <Col xs={24} md={8}> + <Paragraph type="secondary"> + {settingDescription[SettingsEnum.STANDARD_TITLE]} + </Paragraph> + </Col> + <Col xs={24} md={8} style={{textAlign: 'right'}}> + <StyledImage + width={200} + height={100} + src="https://placehold.co/200x100" + alt="Color Preview" + preview + loading="lazy" + /> + </Col> + </StyledRow> + </Card> + </StyledBrandingSettingContent> + + {/* Helper Links in left submenu */} + <StyledBrandingSettingContent> + <StyledThemeSettingsCover> + <StyledCoverTitle> + {trans("branding.showDocumentationSection")} + </StyledCoverTitle> + </StyledThemeSettingsCover> + <Card> + <StyledRow gutter={32} align={"middle"} justify={"space-between"}> + <Col xs={24} md={6}> + <div> + <StyledSectionTitle>{trans("branding.showDocumentation")}</StyledSectionTitle> + <Switch + checked={brandingConfig?.config_set?.showDocumentation} + onChange={(checked) => updateSettings(SettingsEnum.SHOW_DOCUMENTATION, checked)} + /> + </div> + {brandingConfig?.config_set?.showDocumentation && ( + <StyledSwitchContainer> + <StyledSectionTitle>{trans("branding.documentationLink")}</StyledSectionTitle> + <StyledInput + placeholder={trans("branding.documentationLinkPlaceholder")} + value={brandingConfig?.config_set?.documentationLink || ""} + onChange={(e) => updateSettings(SettingsEnum.DOCUMENTATION_LINK, e.target.value)} + /> + <HelpText>{trans("branding.documentationLinkHelp")}</HelpText> + </StyledSwitchContainer> + )} + </Col> + <Col xs={24} md={8}> + <Paragraph type="secondary"> + {settingDescription[SettingsEnum.SHOW_DOCUMENTATION]} + </Paragraph> + </Col> + <Col xs={24} md={8} style={{textAlign: 'right'}}> + <StyledImage + width={200} + height={100} + src="https://placehold.co/200x100" + alt="Color Preview" + preview + loading="lazy" + /> + </Col> + </StyledRow> + + <StyledRow gutter={32} align={"middle"} justify={"space-between"}> + <Col xs={24} md={6}> + <div style={{ marginTop: "20px" }}> + <StyledSectionTitle>{trans("branding.whatsNew")}</StyledSectionTitle> + <Switch + checked={brandingConfig?.config_set?.whatsNew} + onChange={(checked) => updateSettings(SettingsEnum.WHATS_NEW, checked)} + /> + </div> + {brandingConfig?.config_set?.whatsNew && ( + <StyledSwitchContainer> + <StyledSectionTitle>{trans("branding.whatsNewLink")}</StyledSectionTitle> + <StyledInput + placeholder={trans("branding.whatsNewLinkPlaceholder")} + value={brandingConfig?.config_set?.whatsNewLink || ""} + onChange={(e) => updateSettings(SettingsEnum.WHATS_NEW_LINK, e.target.value)} + /> + <HelpText>{trans("branding.whatsNewLinkHelp")}</HelpText> + </StyledSwitchContainer> + )} + </Col> + <Col xs={24} md={8}> + <Paragraph type="secondary"> + {settingDescription[SettingsEnum.WHATS_NEW]} + </Paragraph> + </Col> + <Col xs={24} md={8} style={{textAlign: 'right'}}> + <StyledImage + width={200} + height={100} + src="https://placehold.co/200x100" + alt="Color Preview" + preview + loading="lazy" + /> + </Col> + </StyledRow> + + <StyledRow gutter={32} align={"middle"} justify={"space-between"}> + <Col xs={24} md={6}> + <div style={{marginTop : "20px"}}> + <StyledSectionTitle>{trans("branding.submitIssue")}</StyledSectionTitle> + <Switch + checked={brandingConfig?.config_set?.submitIssue} + onChange={(checked) => updateSettings(SettingsEnum.SUBMIT_ISSUE, checked)} + /> + </div> + </Col> + <Col xs={24} md={8}> + <Paragraph type="secondary"> + {settingDescription[SettingsEnum.SUBMIT_ISSUE]} + </Paragraph> + </Col> + <Col xs={24} md={8} style={{textAlign: 'right'}}> + <StyledImage + width={200} + height={100} + src="https://placehold.co/200x100" + alt="Color Preview" + preview + loading="lazy" + /> + </Col> + </StyledRow> + </Card> + </StyledBrandingSettingContent> + + <StyledButtonContainer gap={10}> + <TacoButton + buttonType="delete" + disabled={!Boolean(brandingConfig?.id)} + onClick={() => handleDelete(brandingConfig?.id!)} + > + {trans("delete")} + </TacoButton> + <TacoButton + buttonType="normal" + icon={<ResetIcon />} + disabled={isBrandingNotChange()} + onClick={() => setBrandingConfig(defaultBrandingConfig)} + > + {trans("reset")} + </TacoButton> + <TacoButton + buttonType="primary" + disabled={isBrandingNotChange()} + onClick={() => handleSave(brandingConfig)} + > + {trans("branding.saveButton")} + </TacoButton> + </StyledButtonContainer> + </DetailContent> + </DetailContainer> + ); +} diff --git a/client/packages/lowcoder/src/pages/setting/branding/index.tsx b/client/packages/lowcoder/src/pages/setting/branding/index.tsx new file mode 100644 index 0000000000..edd5444480 --- /dev/null +++ b/client/packages/lowcoder/src/pages/setting/branding/index.tsx @@ -0,0 +1,133 @@ +import { useSelector } from "react-redux"; +import { selectIsLicenseActive } from "redux/selectors/enterpriseSelectors"; +import { BrandingSetting } from "./BrandingSetting"; +import { Level1SettingPageContent, Level1SettingPageTitle } from "../styled"; +import styled from "styled-components"; +import { Card, Typography, Row, Col, Divider, Image, Button } from "antd"; +import { trans } from "i18n"; +import { useState } from "react"; +import { getUser } from "@lowcoder-ee/redux/selectors/usersSelectors"; + +const { Title, Paragraph, Text } = Typography; + +const StyledSection = styled.div` + margin-bottom: 32px; + + .ant-card { + border-radius: 8px; + } + + .image-placeholder { + background: #f0f2f5; + border: 1px dashed #d9d9d9; + height: 180px; + display: flex; + align-items: center; + justify-content: center; + color: #999; + font-size: 14px; + } +`; + +export const Branding = () => { + const isLicenseActive = useSelector(selectIsLicenseActive); + return isLicenseActive ? <BrandingSetting /> : <BrandingPromo />; +}; + +const BrandingPromo = () => { + + return ( + <Level1SettingPageContent> + <Level1SettingPageTitle>{trans("branding.title")}</Level1SettingPageTitle> + + <StyledSection> + <Card title={trans("enterprise.BrandingIntroTitle")}> + <Paragraph> + {trans("enterprise.BrandingIntro1")} + </Paragraph> + <Paragraph> + {trans("enterprise.BrandingIntro2")} + </Paragraph> + <Paragraph> + {trans("enterprise.BrandingIntro3")} + </Paragraph> + </Card> + </StyledSection> + + <StyledSection> + <Card title={trans("branding.colorFontSection")}> + <Paragraph>{trans("enterprise.BrandingColorsIntro1")}</Paragraph> + <Paragraph>{trans("enterprise.BrandingColorsIntro2")}</Paragraph> + <Paragraph>{trans("enterprise.BrandingFontsIntro")}</Paragraph> + <Row gutter={[24, 24]}> + <Col span={12}> + <div className="image-placeholder"> + <Text type="secondary">{trans("branding.logoHelp")}</Text> + </div> + </Col> + <Col span={12}> + <div className="image-placeholder"> + <Text type="secondary">{trans("branding.squareLogoHelp")}</Text> + </div> + </Col> + </Row> + </Card> + </StyledSection> + + <StyledSection> + <Card title={trans("branding.logoSection")}> + <Paragraph>{trans("enterprise.BrandingLogosIntro")}</Paragraph> + </Card> + </StyledSection> + + <StyledSection> + <Card title={trans("branding.textSection")}> + <Paragraph>{trans("enterprise.BrandingPagesIntro1")}</Paragraph> + <Paragraph>{trans("enterprise.BrandingPagesIntro2")}</Paragraph> + <Paragraph>{trans("enterprise.BrandingMetaIntro")}</Paragraph> + </Card> + </StyledSection> + + <StyledSection> + <Card title={trans("branding.showDocumentationSection")}> + <Paragraph>{trans("enterprise.BrandingHelpLinksIntro")}</Paragraph> + <Paragraph>{trans("enterprise.BrandingWhatsNewIntro")}</Paragraph> + </Card> + </StyledSection> + + + <StyledSection> + <Card title={trans("enterprise.PricingTitle")}> + <Paragraph>{trans("enterprise.PricingIntro")}</Paragraph> + + <Paragraph> + <Text strong>{trans("enterprise.FlatRateTitle")}</Text> + <br /> + {trans("enterprise.FlatRateDesc")} + </Paragraph> + <ul> + <li>{trans("enterprise.FlatRatePoint1")}</li> + <li>{trans("enterprise.FlatRatePoint2")}</li> + </ul> + + <Divider /> + + <Paragraph> + <Text strong>{trans("enterprise.UsagePricingTitle")}</Text> + <br /> + {trans("enterprise.UsagePricingDesc")} + </Paragraph> + <ul> + <li>{trans("enterprise.API100k")}</li> + <li>{trans("enterprise.API1M")}</li> + <li>{trans("enterprise.API10M")}</li> + </ul> + + <Paragraph>{trans("enterprise.UsageOverrunDesc")}</Paragraph> + <Paragraph>{trans("enterprise.UsageTopUpInfo")}</Paragraph> + </Card> + </StyledSection> + + </Level1SettingPageContent> + ); +}; diff --git a/client/packages/lowcoder/src/pages/setting/environments/EnvironmentDetail.tsx b/client/packages/lowcoder/src/pages/setting/environments/EnvironmentDetail.tsx new file mode 100644 index 0000000000..0419977790 --- /dev/null +++ b/client/packages/lowcoder/src/pages/setting/environments/EnvironmentDetail.tsx @@ -0,0 +1,268 @@ +import React, {useState, useEffect} from "react"; +import { + Spin, + Typography, + Card, + Tabs, + Alert, + Descriptions, + Menu, + Button, + Tag, + Result, +} from "antd"; +import { + LinkOutlined, + HomeOutlined, + AppstoreOutlined, + UsergroupAddOutlined, + EditOutlined, + CheckCircleOutlined, + CloseCircleOutlined, + ExclamationCircleOutlined, + SyncOutlined, +} from "@ant-design/icons"; + +import { useSingleEnvironmentContext } from "./context/SingleEnvironmentContext"; +import EditEnvironmentModal from "./components/EditEnvironmentModal"; +import UnlicensedEnvironmentView from "./components/UnlicensedEnvironmentView"; +import { Environment } from "./types/environment.types"; +import history from "@lowcoder-ee/util/history"; +import WorkspacesTab from "./components/WorkspacesTab"; +import UserGroupsTab from "./components/UserGroupsTab"; +import EnvironmentHeader from "./components/EnvironmentHeader"; +import ModernBreadcrumbs from "./components/ModernBreadcrumbs"; +import { getEnvironmentTagColor } from "./utils/environmentUtils"; +import ErrorComponent from './components/ErrorComponent'; +const { TabPane } = Tabs; + +/** + * Environment Detail Page Component + * Shows detailed information about a specific environment + */ +const EnvironmentDetail: React.FC = () => { + // Use the SingleEnvironmentContext instead of EnvironmentContext + const { + environment, + isLoading, + error, + updateEnvironmentData + } = useSingleEnvironmentContext(); + + const [isEditModalVisible, setIsEditModalVisible] = useState(false); + const [isUpdating, setIsUpdating] = useState(false); + const [activeTab, setActiveTab] = useState('workspaces'); + + // Handle edit menu item click + const handleEditClick = () => { + setIsEditModalVisible(true); + }; + + // Handle modal close + const handleCloseModal = () => { + setIsEditModalVisible(false); + }; + + // Handle save environment + const handleSaveEnvironment = async (data: Partial<Environment>) => { + if (!environment) return; + + setIsUpdating(true); + try { + // Close the modal first, before the update completes + handleCloseModal(); + + // Then update the environment data + await updateEnvironmentData(data); + } catch (error) { + console.error('Failed to update environment:', error); + } finally { + setIsUpdating(false); + } + }; + + + + if (isLoading) { + return ( + <div style={{ display: 'flex', justifyContent: 'center', padding: '60px 0' }}> + <Spin size="large" /> + </div> + ); + } + + if (error || !environment) { + return ( + <ErrorComponent + errorMessage={"Environment Not Found"} + returnPath="/setting/environments" + returnLabel="Return to Environments List" + /> + ); + } + + // Check if environment is not licensed and show modern UI + if (environment.isLicensed === false) { + return ( + <> + <UnlicensedEnvironmentView + environment={environment} + onEditClick={handleEditClick} + /> + + {/* Edit Environment Modal */} + {environment && ( + <EditEnvironmentModal + visible={isEditModalVisible} + environment={environment} + onClose={handleCloseModal} + onSave={handleSaveEnvironment} + loading={isUpdating} + /> + )} + </> + ); + } + + const breadcrumbItems = [ + { + key: 'environments', + title: ( + <span> + <HomeOutlined /> Environments + </span> + ), + onClick: () => history.push("/setting/environments") + }, + { + key: 'currentEnvironment', + title: environment.environmentName + } + ]; + + return ( + <div + className="environment-detail-container" + style={{ padding: "24px", flex: 1, minWidth: "1000px" }} + > + {/* Environment Header Component */} + <EnvironmentHeader + environment={environment} + onEditClick={handleEditClick} + /> + + {/* Basic Environment Information Card */} + <Card + title="Environment Overview" + style={{ + marginBottom: "24px", + borderRadius: '4px', + border: '1px solid #f0f0f0' + }} + className="environment-overview-card" + > + <Descriptions + bordered + layout="vertical" + column={{ xxl: 4, xl: 3, lg: 3, md: 2, sm: 1, xs: 1 }} + size="small" + > + <Descriptions.Item label="Domain"> + {environment.environmentFrontendUrl ? ( + <a + href={environment.environmentFrontendUrl} + target="_blank" + rel="noopener noreferrer" + > + {environment.environmentFrontendUrl} <LinkOutlined /> + </a> + ) : ( + "No domain set" + )} + </Descriptions.Item> + <Descriptions.Item label="Environment Type"> + <Tag + color={getEnvironmentTagColor(environment.environmentType)} + style={{ borderRadius: '4px' }} + > + {environment.environmentType} + </Tag> + </Descriptions.Item> + <Descriptions.Item label="License Status"> + {(() => { + switch (environment.licenseStatus) { + case 'checking': + return <Tag icon={<SyncOutlined spin />} color="blue" style={{ borderRadius: '4px' }}>Checking...</Tag>; + case 'licensed': + return <Tag icon={<CheckCircleOutlined />} color="green" style={{ borderRadius: '4px' }}>Licensed</Tag>; + case 'unlicensed': + return <Tag icon={<CloseCircleOutlined />} color="red" style={{ borderRadius: '4px' }}>Not Licensed</Tag>; + case 'error': + return <Tag icon={<ExclamationCircleOutlined />} color="orange" style={{ borderRadius: '4px' }}>License Error</Tag>; + default: + return <Tag color="default" style={{ borderRadius: '4px' }}>Unknown</Tag>; + } + })()} + </Descriptions.Item> + <Descriptions.Item label="API Key Status"> + {environment.environmentApikey ? ( + <Tag color="green" style={{ borderRadius: '4px' }}>Configured</Tag> + ) : ( + <Tag color="red" style={{ borderRadius: '4px' }}>Not Configured</Tag> + )} + </Descriptions.Item> + <Descriptions.Item label="Master Environment"> + {environment.isMaster ? "Yes" : "No"} + </Descriptions.Item> + </Descriptions> + </Card> + + {/* Modern Breadcrumbs navigation */} + <ModernBreadcrumbs items={breadcrumbItems} /> + + {/* Tabs for Workspaces and User Groups */} + <Tabs + defaultActiveKey="workspaces" + activeKey={activeTab} + onChange={setActiveTab} + className="modern-tabs" + type="line" + > + <TabPane + tab={ + <span> + <AppstoreOutlined /> Workspaces + </span> + } + key="workspaces" + > + <WorkspacesTab environment={environment} /> + </TabPane> + + <TabPane + tab={ + <span> + <UsergroupAddOutlined /> User Groups + </span> + } + key="userGroups" + > + <UserGroupsTab environment={environment} /> + </TabPane> + </Tabs> + + {/* Edit Environment Modal */} + {environment && ( + <EditEnvironmentModal + visible={isEditModalVisible} + environment={environment} + onClose={handleCloseModal} + onSave={handleSaveEnvironment} + loading={isUpdating} + /> + )} + </div> + ); +}; + +export default EnvironmentDetail; \ No newline at end of file diff --git a/client/packages/lowcoder/src/pages/setting/environments/Environments.tsx b/client/packages/lowcoder/src/pages/setting/environments/Environments.tsx new file mode 100644 index 0000000000..5509d2ac06 --- /dev/null +++ b/client/packages/lowcoder/src/pages/setting/environments/Environments.tsx @@ -0,0 +1,29 @@ +// client/packages/lowcoder/src/pages/setting/environments/Environments.tsx +import React from "react"; +import { Switch, Route, useRouteMatch } from "react-router-dom"; +import EnvironmentRoutes from "./routes/EnvironmentRoutes"; +import EnvironmentsList from "./EnvironmentsList"; + +/** + * Top-level Environments component + * No longer needs the EnvironmentProvider since we use Redux + */ +const EnvironmentsSettings: React.FC = () => { + const { path } = useRouteMatch(); + + return ( + <Switch> + {/* Environment list route */} + <Route exact path={path}> + <EnvironmentsList /> + </Route> + + {/* All routes that need a specific environment */} + <Route path={`${path}/:envId`}> + <EnvironmentRoutes /> + </Route> + </Switch> + ); +}; + +export default EnvironmentsSettings; \ No newline at end of file diff --git a/client/packages/lowcoder/src/pages/setting/environments/EnvironmentsList.tsx b/client/packages/lowcoder/src/pages/setting/environments/EnvironmentsList.tsx new file mode 100644 index 0000000000..c6f739c51d --- /dev/null +++ b/client/packages/lowcoder/src/pages/setting/environments/EnvironmentsList.tsx @@ -0,0 +1,283 @@ +import React, { useState, useEffect } from "react"; +import { Alert, Empty, Spin, Card } from "antd"; +import { SyncOutlined, CloudServerOutlined } from "@ant-design/icons"; +import { AddIcon, Search, TacoButton } from "lowcoder-design"; +import { useHistory } from "react-router-dom"; +import { useSelector, useDispatch } from "react-redux"; +import { selectEnvironments, selectEnvironmentsLoading, selectEnvironmentsError } from "redux/selectors/enterpriseSelectors"; +import { fetchEnvironments } from "redux/reduxActions/enterpriseActions"; +import { Environment } from "./types/environment.types"; +import EnvironmentsTable from "./components/EnvironmentsTable"; +import CreateEnvironmentModal from "./components/CreateEnvironmentModal"; +import { buildEnvironmentId } from "@lowcoder-ee/constants/routesURL"; +import { createEnvironment } from "./services/environments.service"; +import { getEnvironmentTagColor } from "./utils/environmentUtils"; +import styled from "styled-components"; + +const EnvironmentsWrapper = styled.div` + display: flex; + flex-direction: column; + width: 100%; + height: 100%; + min-width: 1000px; +`; + +const HeaderWrapper = styled.div` + display: flex; + align-items: center; + height: 92px; + padding: 28px 36px; + width: 100%; +`; + +const Title = styled.div` + font-weight: 500; + font-size: 18px; + color: #222222; + line-height: 18px; + flex-grow: 1; +`; + +const AddBtn = styled(TacoButton)` + min-width: 96px; + width: fit-content; + height: 32px; +`; + +const RefreshBtn = styled(TacoButton)` + width: fit-content; + height: 32px; + margin-right: 12px; +`; + +const BodyWrapper = styled.div` + width: 100%; + flex-grow: 1; + padding: 0 24px; +`; + +const StatsWrapper = styled.div` + margin-bottom: 20px; +`; + +/** + * Environment Listing Page Component + * Displays a table of environments + */ +const EnvironmentsList: React.FC = () => { + // Use Redux state instead of context + const dispatch = useDispatch(); + const environments = useSelector(selectEnvironments); + const isLoading = useSelector(selectEnvironmentsLoading); + const error = useSelector(selectEnvironmentsError); + + // State for search input + const [searchText, setSearchText] = useState(""); + const [isCreateModalVisible, setIsCreateModalVisible] = useState(false); + const [isCreating, setIsCreating] = useState(false); + + // Hook for navigation + const history = useHistory(); + + // Calculate environment type statistics + const environmentStats = React.useMemo(() => { + const stats = environments.reduce((acc, env) => { + const type = env.environmentType.toUpperCase(); + acc[type] = (acc[type] || 0) + 1; + return acc; + }, {} as Record<string, number>); + + // Sort by common environment types first + const typeOrder = ['PROD', 'PREPROD', 'TEST', 'DEV']; + const sortedStats = Object.entries(stats).sort(([a], [b]) => { + const aIndex = typeOrder.indexOf(a); + const bIndex = typeOrder.indexOf(b); + + if (aIndex !== -1 && bIndex !== -1) return aIndex - bIndex; + if (aIndex !== -1) return -1; + if (bIndex !== -1) return 1; + return a.localeCompare(b); + }); + + return sortedStats; + }, [environments]); + + // Get icon for environment type + const getEnvironmentIcon = (type: string) => { + return <CloudServerOutlined />; + }; + + // Stat card component + const StatCard = ({ title, value, color }: { title: string; value: number; color: string }) => ( + <Card + style={{ + height: '100%', + borderRadius: '4px', + border: '1px solid #f0f0f0' + }} + > + <div style={{ display: 'flex', alignItems: 'center', justifyContent: 'space-between' }}> + <div> + <div style={{ fontSize: '13px', color: '#8c8c8c', marginBottom: '8px' }}>{title}</div> + <div style={{ fontSize: '20px', fontWeight: 500 }}>{value}</div> + </div> + <div style={{ + fontSize: '24px', + opacity: 0.8, + color: color, + padding: '8px', + backgroundColor: `${color}15`, + borderRadius: '4px', + display: 'flex', + alignItems: 'center', + justifyContent: 'center' + }}> + {getEnvironmentIcon(title)} + </div> + </div> + </Card> + ); + + // Filter environments based on search text + const filteredEnvironments = environments.filter((env) => { + const searchLower = searchText.toLowerCase(); + return ( + (env.environmentName || "").toLowerCase().includes(searchLower) || + (env.environmentFrontendUrl || "").toLowerCase().includes(searchLower) || + env.environmentId.toLowerCase().includes(searchLower) || + env.environmentType.toLowerCase().includes(searchLower) + ); + }).sort((a, b) => { + // Sort by license status: licensed environments first + const aLicensed = a.isLicensed !== false; // licensed or unknown (default to licensed) + const bLicensed = b.isLicensed !== false; // licensed or unknown (default to licensed) + + if (aLicensed && !bLicensed) return -1; // a licensed, b unlicensed - a comes first + if (!aLicensed && bLicensed) return 1; // a unlicensed, b licensed - b comes first + + // If both have same license status, sort by environment name + return (a.environmentName || "").localeCompare(b.environmentName || ""); + }); + + // Handle row click to navigate to environment detail + const handleRowClick = (record: Environment) => { + // Allow navigation to all environments including unlicensed ones + history.push(buildEnvironmentId(record.environmentId)); + }; + + // Handle refresh + const handleRefresh = () => { + dispatch(fetchEnvironments()); + }; + + // Handle create environment + const handleCreateEnvironment = async (environmentData: Partial<Environment>) => { + setIsCreating(true); + try { + await createEnvironment(environmentData); + dispatch(fetchEnvironments()); // Refresh the list after creation + } catch (error) { + console.error("Failed to create environment:", error); + throw error; // Re-throw to let the modal handle the error display + } finally { + setIsCreating(false); + } + }; + + return ( + <EnvironmentsWrapper> + <HeaderWrapper> + <Title>Environments</Title> + <Search + placeholder="Search" + value={searchText} + onChange={(e) => setSearchText(e.target.value)} + style={{ width: "192px", height: "32px", margin: "0 12px 0 0" }} + /> + <RefreshBtn + buttonType="normal" + icon={<SyncOutlined spin={isLoading} />} + onClick={handleRefresh} + > + Refresh + </RefreshBtn> + <AddBtn buttonType="primary" onClick={() => setIsCreateModalVisible(true)}> + New Environment + </AddBtn> + </HeaderWrapper> + + <BodyWrapper> + {/* Environment Type Statistics */} + {!isLoading && environments.length > 0 && ( + <StatsWrapper> + <div style={{ display: 'flex', gap: '16px', marginBottom: '20px', flexWrap: 'wrap' }}> + {environmentStats.map(([type, count]) => ( + <div key={type} style={{ minWidth: '200px', flex: '1' }}> + <StatCard + title={type} + value={count} + color={getEnvironmentTagColor(type.toLowerCase())} + /> + </div> + ))} + </div> + </StatsWrapper> + )} + + {/* Error handling */} + {error && ( + <Alert + message="Error loading environments" + description={error} + type="error" + showIcon + style={{ marginBottom: "16px" }} + /> + )} + + {/* Loading, empty state or table */} + {isLoading ? ( + <div style={{ display: 'flex', justifyContent: 'center', padding: '60px 0' }}> + <Spin size="large" /> + </div> + ) : environments.length === 0 && !error ? ( + <Empty + description="No environments found" + image={Empty.PRESENTED_IMAGE_SIMPLE} + style={{ padding: '60px 0' }} + /> + ) : filteredEnvironments.length === 0 ? ( + <Empty + description="No environments match your search" + image={Empty.PRESENTED_IMAGE_SIMPLE} + style={{ padding: '60px 0' }} + /> + ) : ( + /* Table component */ + <EnvironmentsTable + environments={filteredEnvironments} + loading={isLoading} + onRowClick={handleRowClick} + /> + )} + + {/* Results counter when searching */} + {searchText && filteredEnvironments.length !== environments.length && ( + <div style={{ marginTop: 16, color: '#8c8c8c', textAlign: 'right' }}> + Showing {filteredEnvironments.length} of {environments.length} environments + </div> + )} + </BodyWrapper> + + {/* Create Environment Modal */} + <CreateEnvironmentModal + visible={isCreateModalVisible} + onClose={() => setIsCreateModalVisible(false)} + onSave={handleCreateEnvironment} + loading={isCreating} + /> + </EnvironmentsWrapper> + ); +}; + +export default EnvironmentsList; \ No newline at end of file diff --git a/client/packages/lowcoder/src/pages/setting/environments/WorkspaceDetail.tsx b/client/packages/lowcoder/src/pages/setting/environments/WorkspaceDetail.tsx new file mode 100644 index 0000000000..6ed3a14270 --- /dev/null +++ b/client/packages/lowcoder/src/pages/setting/environments/WorkspaceDetail.tsx @@ -0,0 +1,151 @@ +import React, { useState } from "react"; +import history from "@lowcoder-ee/util/history"; +import { + Spin, + Typography, + Tabs, +} from "antd"; +import { messageInstance } from "lowcoder-design/src/components/GlobalInstances"; +import { + AppstoreOutlined, + DatabaseOutlined, + CodeOutlined, + HomeOutlined, + TeamOutlined, +} from "@ant-design/icons"; + +// Use the context hooks +import { useSingleEnvironmentContext } from "./context/SingleEnvironmentContext"; +import { useWorkspaceContext } from "./context/WorkspaceContext"; +import { useDeployModal } from "./context/DeployModalContext"; + +import { workspaceConfig } from "./config/workspace.config"; +import AppsTab from "./components/AppsTab"; +import DataSourcesTab from "./components/DataSourcesTab"; +import QueriesTab from "./components/QueriesTab"; +import ModernBreadcrumbs from "./components/ModernBreadcrumbs"; +import WorkspaceHeader from "./components/WorkspaceHeader"; +import ErrorComponent from "./components/ErrorComponent"; + +const { TabPane } = Tabs; + +const WorkspaceDetail: React.FC = () => { + // Use the context hooks + const { environment } = useSingleEnvironmentContext(); + const { workspace, isLoading, error, toggleManagedStatus } = useWorkspaceContext(); + const { openDeployModal } = useDeployModal(); + + + const [isToggling, setIsToggling] = useState(false); + + // Handle toggle managed status + const handleToggleManaged = async (checked: boolean) => { + if (!workspace) return; + + setIsToggling(true); + try { + const success = await toggleManagedStatus(checked); + if (success) { + messageInstance.success(`Workspace is now ${checked ? 'Managed' : 'Unmanaged'}`); + } else { + messageInstance.error('Failed to change managed status'); + } + } finally { + setIsToggling(false); + } + }; + + if (isLoading) { + return ( + <div style={{ display: 'flex', justifyContent: 'center', alignItems: 'center', height: '100%', padding: '50px' }}> + <Spin size="large" tip="Loading workspace details..." style={{ display: 'block', textAlign: 'center' }} /> + </div> + ); + } + + if (error || !environment || !workspace) { + return ( + <ErrorComponent + errorMessage={"Workspace not found"} + returnPath="/setting/environments" + returnLabel="Return to Environments List" + /> + ); + } + + const breadcrumbItems = [ + { + key: 'environments', + title: ( + <span> + <HomeOutlined /> Environments + </span> + ), + onClick: () => history.push("/setting/environments") + }, + { + key: 'environment', + title: ( + <span> + <TeamOutlined /> {environment.environmentName} + </span> + ), + onClick: () => history.push(`/setting/environments/${environment.environmentId}`) + }, + { + key: 'workspace', + title: workspace.name + } + ]; + + return ( + <div className="workspace-detail-container" style={{ + padding: "24px", + flex: 1, + minWidth: "1000px", + overflowX: "auto" + }}> + {/* New Workspace Header */} + <WorkspaceHeader + workspace={workspace} + environment={environment} + isToggling={isToggling} + onToggleManagedStatus={handleToggleManaged} + onDeploy={() => openDeployModal(workspace, workspaceConfig, environment)} + /> + + {/* Modern Breadcrumbs navigation */} + <ModernBreadcrumbs items={breadcrumbItems} /> + + {/* Tabs for Apps, Data Sources, and Queries */} + <Tabs + defaultActiveKey="apps" + className="modern-tabs" + type="line" + > + <TabPane tab={<span><AppstoreOutlined /> Apps</span>} key="apps"> + <AppsTab + environment={environment} + workspaceId={workspace.id} + /> + </TabPane> + + <TabPane tab={<span><DatabaseOutlined /> Data Sources</span>} key="dataSources"> + <DataSourcesTab + environment={environment} + workspaceId={workspace.id} + /> + </TabPane> + <TabPane tab={<span><CodeOutlined /> Queries</span>} key="queries"> + <QueriesTab + environment={environment} + workspaceId={workspace.id} + /> + </TabPane> + + </Tabs> + </div> + ); +}; + +export default WorkspaceDetail; \ No newline at end of file diff --git a/client/packages/lowcoder/src/pages/setting/environments/components/AppsTab.tsx b/client/packages/lowcoder/src/pages/setting/environments/components/AppsTab.tsx new file mode 100644 index 0000000000..150b172423 --- /dev/null +++ b/client/packages/lowcoder/src/pages/setting/environments/components/AppsTab.tsx @@ -0,0 +1,423 @@ +import React, { useState, useEffect } from 'react'; +import { Card, Button, Divider, Alert, Table, Tag, Input, Space, Tooltip, Row, Col } from 'antd'; +import { SyncOutlined, CloudUploadOutlined, AuditOutlined, AppstoreOutlined, CheckCircleFilled, CloudServerOutlined, DisconnectOutlined, FilterOutlined, DeleteOutlined } from '@ant-design/icons'; +import Title from 'antd/lib/typography/Title'; +import { Environment } from '../types/environment.types'; +import { App, AppStats } from '../types/app.types'; +import { getMergedWorkspaceApps } from '../services/apps.service'; +import { Switch, Spin, Empty, Avatar } from 'antd'; +import { ManagedObjectType, setManagedObject, unsetManagedObject } from '../services/managed-objects.service'; +import { useDeployModal } from '../context/DeployModalContext'; +import { appsConfig } from '../config/apps.config'; +import history from "@lowcoder-ee/util/history"; +import { messageInstance } from 'lowcoder-design/src/components/GlobalInstances'; + +const { Search } = Input; + +interface AppsTabProps { + environment: Environment; + workspaceId: string; +} + +const AppsTab: React.FC<AppsTabProps> = ({ environment, workspaceId }) => { + const [apps, setApps] = useState<App[]>([]); + const [stats, setStats] = useState<AppStats>({ + total: 0, + published: 0, + managed: 0, + unmanaged: 0 + }); + const [loading, setLoading] = useState(false); + const [refreshing, setRefreshing] = useState(false); + const [error, setError] = useState<string | null>(null); + const [searchText, setSearchText] = useState(''); + const { openDeployModal } = useDeployModal(); + const [showManagedOnly, setShowManagedOnly] = useState(false); + + // Fetch apps + const fetchApps = async () => { + if (!workspaceId || !environment) return; + + setLoading(true); + setError(null); + + try { + const result = await getMergedWorkspaceApps( + workspaceId, + environment.environmentId, + environment.environmentApikey, + environment.environmentApiServiceUrl! + ); + + setApps(result.apps); + + // Calculate stats + const total = result.apps.length; + const published = result.apps.filter(app => app.published).length; + const managed = result.apps.filter(app => app.managed).length; + + setStats({ + total, + published, + managed, + unmanaged: total - managed + }); + } catch (err) { + setError(err instanceof Error ? err.message : "Failed to fetch apps"); + } finally { + setLoading(false); + setRefreshing(false); + } + }; + + useEffect(() => { + fetchApps(); + }, [environment, workspaceId]); + + // Handle refresh + const handleRefresh = () => { + setRefreshing(true); + fetchApps(); + }; + + // Toggle managed status + const handleToggleManaged = async (app: App, checked: boolean) => { + setRefreshing(true); + try { + if (checked) { + await setManagedObject( + app.applicationGid, + environment.environmentId, + ManagedObjectType.APP, + + ); + } else { + await unsetManagedObject( + app.applicationGid, + environment.environmentId, + ManagedObjectType.APP + ); + } + + // Update the app in state + const updatedApps = apps.map(item => { + if (item.applicationId === app.applicationId) { + return { ...item, managed: checked }; + } + return item; + }); + + setApps(updatedApps); + + // Update stats + const managed = updatedApps.filter(app => app.managed).length; + setStats(prev => ({ + ...prev, + managed, + unmanaged: prev.total - managed + })); + + messageInstance.success(`${app.name} is now ${checked ? 'Managed' : 'Unmanaged'}`); + return true; + } catch (error) { + messageInstance.error(`Failed to change managed status for ${app.name}`); + return false; + } finally { + setRefreshing(false); + } + }; + + // Filter apps based on search + const filteredApps = searchText + ? apps.filter(app => + app.name.toLowerCase().includes(searchText.toLowerCase()) || + app.applicationId.toLowerCase().includes(searchText.toLowerCase())) + : apps; + + const displayedApps = showManagedOnly + ? filteredApps.filter(app => app.managed) + : filteredApps; + + // Table columns + const columns = [ + { + title: 'App', + key: 'app', + render: (app: App) => ( + <div style={{ display: 'flex', alignItems: 'center' }}> + <Avatar + style={{ + backgroundColor: stringToColor(app.name), + marginRight: 12 + }} + shape="square" + > + {app.name.charAt(0).toUpperCase()} + </Avatar> + <div style={{ flex: 1 }}> + <div style={{ display: 'flex', alignItems: 'center', gap: 8 }}> + <span style={{ fontWeight: 500 }}>{app.name}</span> + {app.applicationStatus === 'RECYCLED' && ( + <Tooltip title="This app has been moved to recycle bin"> + <DeleteOutlined + style={{ + color: '#faad14', + fontSize: '14px' + }} + /> + </Tooltip> + )} + </div> + <div style={{ fontSize: 12, color: '#8c8c8c', marginTop: 4 }}> + {app.applicationId} + </div> + </div> + </div> + ), + }, + { + title: 'Status', + key: 'status', + render: (app: App) => ( + <Space direction="vertical" size={0}> + <Tag color={app.published ? 'success' : 'default'} style={{ borderRadius: '4px' }}> + {app.published ? <CheckCircleFilled /> : null} {app.published ? 'Published' : 'Draft'} + </Tag> + <Tag + color={app.managed ? 'processing' : 'default'} + style={{ marginTop: 8, borderRadius: '4px' }} + > + {app.managed ? <CloudServerOutlined /> : <DisconnectOutlined />} {app.managed ? 'Managed' : 'Unmanaged'} + </Tag> + </Space> + ), + }, + { + title: 'Managed', + key: 'managed', + render: (_: any, app: App) => ( + <Switch + checked={!!app.managed} + onChange={(checked: boolean) => handleToggleManaged(app, checked)} + loading={refreshing} + /> + ), + }, + { + title: 'Actions', + key: 'actions', + render: (_: any, app: App) => ( + <Space onClick={(e) => e.stopPropagation()}> + + <Tooltip title={!app.managed ? "App must be managed before it can be deployed" : "Deploy this app to another environment"}> + <Button + type="primary" + icon={<CloudUploadOutlined />} + onClick={() => openDeployModal(app, appsConfig, environment)} + disabled={!app.managed} + > + Deploy + </Button> + </Tooltip> + <Tooltip title="View Audit Logs"> + <Button + icon={<AuditOutlined />} + onClick={(e) => { + e.stopPropagation(); + const auditUrl = `/setting/audit?environmentId=${environment.environmentId}&orgId=${workspaceId}&appId=${app.applicationId}&pageSize=100&pageNum=1`; + window.open(auditUrl, '_blank'); + }} + > + Audit + </Button> + </Tooltip> + </Space> + ), + } + ]; + + // Helper function to generate colors from strings + const stringToColor = (str: string) => { + let hash = 0; + for (let i = 0; i < str.length; i++) { + hash = str.charCodeAt(i) + ((hash << 5) - hash); + } + + const hue = Math.abs(hash % 360); + return `hsl(${hue}, 70%, 50%)`; + }; + + // Stat card component + const StatCard = ({ title, value, icon }: { title: string; value: number; icon: React.ReactNode }) => ( + <Card + style={{ + height: '100%', + borderRadius: '4px', + border: '1px solid #f0f0f0' + }} + > + <div style={{ display: 'flex', alignItems: 'center', justifyContent: 'space-between' }}> + <div> + <div style={{ fontSize: '13px', color: '#8c8c8c', marginBottom: '8px' }}>{title}</div> + <div style={{ fontSize: '20px', fontWeight: 500 }}>{value}</div> + </div> + <div style={{ + fontSize: '24px', + opacity: 0.8, + color: '#1890ff', + padding: '8px', + backgroundColor: 'rgba(24, 144, 255, 0.1)', + borderRadius: '4px', + display: 'flex', + alignItems: 'center', + justifyContent: 'center' + }}> + {icon} + </div> + </div> + </Card> + ); + + return ( + <div style={{ padding: '16px' }}> + {/* Header */} + <div style={{ + display: "flex", + justifyContent: "space-between", + alignItems: "center", + marginBottom: "20px" + }}> + <div> + <Title level={4} style={{ margin: 0, marginBottom: '4px' }}> + <AppstoreOutlined style={{ marginRight: 8 }} /> Apps + </Title> + <p style={{ marginBottom: 0, color: '#8c8c8c', fontSize: '14px' }}> + Manage workspace applications + </p> + </div> + <Button + icon={<SyncOutlined spin={refreshing} />} + onClick={handleRefresh} + loading={loading} + > + Refresh + </Button> + </div> + + {/* Error display */} + {error && ( + <Alert + message="Error loading apps" + description={error} + type="error" + showIcon + style={{ marginBottom: "16px" }} + /> + )} + + {/* Configuration warnings */} + {(!environment.environmentApikey || !environment.environmentApiServiceUrl) && !error && ( + <Alert + message="Configuration Issue" + description="Missing required configuration: API key or API service URL" + type="warning" + showIcon + style={{ marginBottom: "16px" }} + /> + )} + + {/* Stats display */} + <Row gutter={[16, 16]} style={{ marginBottom: '20px' }}> + <Col xs={12} sm={12} md={6}> + <StatCard + title="Total Apps" + value={stats.total} + icon={<AppstoreOutlined />} + /> + </Col> + <Col xs={12} sm={12} md={6}> + <StatCard + title="Published Apps" + value={stats.published} + icon={<CheckCircleFilled />} + /> + </Col> + <Col xs={12} sm={12} md={6}> + <StatCard + title="Managed Apps" + value={stats.managed} + icon={<CloudServerOutlined />} + /> + </Col> + <Col xs={12} sm={12} md={6}> + <StatCard + title="Unmanaged Apps" + value={stats.unmanaged} + icon={<DisconnectOutlined />} + /> + </Col> + </Row> + + {/* Content */} + <Card + style={{ + borderRadius: '4px', + border: '1px solid #f0f0f0' + }} + > + {loading ? ( + <div style={{ display: 'flex', justifyContent: 'center', padding: '40px' }}> + <Spin size="large" /> + </div> + ) : apps.length === 0 ? ( + <Empty + description={error || "No apps found in this workspace"} + image={Empty.PRESENTED_IMAGE_SIMPLE} + /> + ) : ( + <> + {/* Search and Filter Bar */} + <div style={{ display: 'flex', justifyContent: 'space-between', marginBottom: 16 }}> + <Search + placeholder="Search apps by name or ID" + allowClear + onSearch={value => setSearchText(value)} + onChange={e => setSearchText(e.target.value)} + style={{ width: 300 }} + /> + <Button + onClick={() => setShowManagedOnly(!showManagedOnly)} + type={showManagedOnly ? "primary" : "default"} + icon={<FilterOutlined />} + style={{ marginLeft: '8px' }} + > + {showManagedOnly ? 'Show All' : 'Managed Only'} + </Button> + </div> + + {searchText && displayedApps.length !== apps.length && ( + <div style={{ marginBottom: 16, color: '#8c8c8c', fontSize: '13px' }}> + Showing {displayedApps.length} of {apps.length} apps + </div> + )} + + <Table + columns={columns} + dataSource={displayedApps} + rowKey="applicationId" + pagination={{ + pageSize: 10, + showTotal: (total, range) => `${range[0]}-${range[1]} of ${total} apps`, + size: 'small' + }} + size="middle" + rowClassName={() => 'app-row'} + /> + </> + )} + </Card> + </div> + ); +}; + +export default AppsTab; \ No newline at end of file diff --git a/client/packages/lowcoder/src/pages/setting/environments/components/ContactLowcoderModal.tsx b/client/packages/lowcoder/src/pages/setting/environments/components/ContactLowcoderModal.tsx new file mode 100644 index 0000000000..145b08e981 --- /dev/null +++ b/client/packages/lowcoder/src/pages/setting/environments/components/ContactLowcoderModal.tsx @@ -0,0 +1,181 @@ +import React, { useState, useEffect } from 'react'; +import { Modal, Card, Row, Col, Typography, Divider, Spin, Alert } from 'antd'; +import { CustomerServiceOutlined, CloudServerOutlined } from '@ant-design/icons'; +import { useSelector } from 'react-redux'; +import { Environment } from '../types/environment.types'; +import { getEnvironmentDeploymentId } from '../services/environments.service'; +import { HubspotModal } from '../../hubspotModal'; +import { getUser } from 'redux/selectors/usersSelectors'; + +const { Title, Text } = Typography; + +interface ContactLowcoderModalProps { + visible: boolean; + onClose: () => void; + environment: Environment; +} + +/** + * Professional modal for contacting Lowcoder team with HubSpot form integration + */ +const ContactLowcoderModal: React.FC<ContactLowcoderModalProps> = ({ + visible, + onClose, + environment +}) => { + const [deploymentId, setDeploymentId] = useState<string | null>(null); + const [isLoading, setIsLoading] = useState(false); + const [error, setError] = useState<string | null>(null); + const [showHubspotModal, setShowHubspotModal] = useState(false); + const user = useSelector(getUser); + + // Fetch deployment ID when modal opens + useEffect(() => { + const fetchDeploymentId = async () => { + if (!visible || !environment.environmentApiServiceUrl || !environment.environmentApikey) { + if (visible) { + setError('Environment API service URL or API key not configured'); + } + return; + } + + setIsLoading(true); + setError(null); + + try { + const id = await getEnvironmentDeploymentId( + environment.environmentApiServiceUrl, + environment.environmentApikey + ); + setDeploymentId(id); + setShowHubspotModal(true); + } catch (err) { + console.error('Failed to fetch deployment ID:', err); + setError(err instanceof Error ? err.message : 'Failed to fetch deployment ID'); + } finally { + setIsLoading(false); + } + }; + + fetchDeploymentId(); + }, [visible, environment.environmentApiServiceUrl, environment.environmentApikey]); + + // Handle HubSpot modal close + const handleHubspotClose = () => { + setShowHubspotModal(false); + onClose(); + }; + + // Handle main modal close + const handleClose = () => { + setShowHubspotModal(false); + setDeploymentId(null); + setError(null); + onClose(); + }; + + // Show HubSpot modal if we have deployment ID + if (showHubspotModal && deploymentId) { + return ( + <HubspotModal + open={showHubspotModal} + onClose={handleHubspotClose} + orgId={user.currentOrgId} + deploymentIds={[deploymentId]} + /> + ); + } + + return ( + <Modal + title={ + <div style={{ display: 'flex', alignItems: 'center', gap: '12px' }}> + <CustomerServiceOutlined style={{ fontSize: '20px', color: '#1890ff' }} /> + <span style={{ fontSize: '18px', fontWeight: 600 }}>Contact Lowcoder Team</span> + </div> + } + open={visible} + onCancel={handleClose} + footer={null} + width={800} + centered + style={{ top: 20 }} + bodyStyle={{ padding: '24px' }} + > + {/* Environment Context Section */} + <Card + style={{ + marginBottom: '24px', + borderRadius: '8px', + background: '#fafafa', + border: '1px solid #f0f0f0' + }} + bodyStyle={{ padding: '16px' }} + > + <Row gutter={[16, 8]} align="middle"> + <Col> + <CloudServerOutlined style={{ fontSize: '24px', color: '#1890ff' }} /> + </Col> + <Col flex={1}> + <div> + <Text strong style={{ fontSize: '16px', color: '#262626' }}> + Environment: {environment.environmentName || 'Unnamed Environment'} + </Text> + <br /> + <Text style={{ fontSize: '14px', color: '#8c8c8c', fontFamily: 'monospace' }}> + Environment ID: {environment.environmentId} + </Text> + <br /> + <Text style={{ fontSize: '14px', color: '#8c8c8c', fontFamily: 'monospace' }}> + Deployment ID: {isLoading ? 'Loading...' : deploymentId || 'Not available'} + </Text> + </div> + </Col> + </Row> + </Card> + + <Divider style={{ margin: '16px 0' }} /> + + {/* Loading, Error, or Success State */} + <div style={{ minHeight: '200px', padding: '20px 0' }}> + {isLoading && ( + <div style={{ + display: 'flex', + flexDirection: 'column', + alignItems: 'center', + justifyContent: 'center', + minHeight: '200px' + }}> + <Spin size="large" /> + <Text style={{ marginTop: '16px', color: '#8c8c8c' }}> + Fetching deployment information... + </Text> + </div> + )} + + {error && ( + <Alert + message="Unable to Load Contact Form" + description={error} + type="error" + showIcon + style={{ marginBottom: '16px' }} + /> + )} + + {!isLoading && !error && !deploymentId && ( + <div style={{ + textAlign: 'center', + color: '#8c8c8c', + fontSize: '14px' + }}> + <CustomerServiceOutlined style={{ fontSize: '48px', marginBottom: '16px', color: '#d9d9d9' }} /> + <div>Please ensure the environment is properly configured to contact support.</div> + </div> + )} + </div> + </Modal> + ); +}; + +export default ContactLowcoderModal; \ No newline at end of file diff --git a/client/packages/lowcoder/src/pages/setting/environments/components/CreateEnvironmentModal.tsx b/client/packages/lowcoder/src/pages/setting/environments/components/CreateEnvironmentModal.tsx new file mode 100644 index 0000000000..ace410bab5 --- /dev/null +++ b/client/packages/lowcoder/src/pages/setting/environments/components/CreateEnvironmentModal.tsx @@ -0,0 +1,206 @@ +import React, { useState } from 'react'; +import { Modal, Form, Input, Select, Switch, Button, Alert, Tooltip } from 'antd'; +import { useSelector } from 'react-redux'; +import { selectMasterEnvironment, selectHasMasterEnvironment } from 'redux/selectors/enterpriseSelectors'; +import { Environment } from '../types/environment.types'; + +const { Option } = Select; + +interface CreateEnvironmentModalProps { + visible: boolean; + onClose: () => void; + onSave: (data: Partial<Environment>) => Promise<void>; + loading?: boolean; +} + +const CreateEnvironmentModal: React.FC<CreateEnvironmentModalProps> = ({ + visible, + onClose, + onSave, + loading = false +}) => { + const [form] = Form.useForm(); + const [submitLoading, setSubmitLoading] = useState(false); + const [isMaster, setIsMaster] = useState(false); + + // Redux selectors to check for existing master environment + const hasMasterEnvironment = useSelector(selectHasMasterEnvironment); + const masterEnvironment = useSelector(selectMasterEnvironment); + + const handleMasterChange = (checked: boolean) => { + // Only allow enabling master if no master environment exists + if (checked && hasMasterEnvironment) { + return; // Do nothing if trying to enable master when one already exists + } + setIsMaster(checked); + }; + + const handleSubmit = async () => { + try { + const values = await form.validateFields(); + setSubmitLoading(true); + + const submitData = { + ...values, + isMaster + }; + + await onSave(submitData); + form.resetFields(); + setIsMaster(false); // Reset master state + onClose(); + } catch (error) { + if (error instanceof Error) { + console.error("Form validation or submission error:", error); + } + } finally { + setSubmitLoading(false); + } + }; + + const handleCancel = () => { + form.resetFields(); + setIsMaster(false); // Reset master state + onClose(); + }; + + return ( + <Modal + title="Create New Environment" + open={visible} + onCancel={handleCancel} + maskClosable={true} + destroyOnClose={true} + footer={[ + <Button key="back" onClick={handleCancel}> + Cancel + </Button>, + <Button + key="submit" + type="primary" + loading={loading || submitLoading} + onClick={handleSubmit} + > + Create Environment + </Button> + ]} + > + <Form + form={form} + layout="vertical" + name="create_environment_form" + initialValues={{ + environmentType: "DEV" + }} + > + <Form.Item + name="environmentName" + label="Environment Name" + rules={[ + { required: true, message: 'Please enter a name' }, + { min: 2, message: 'Name must be at least 2 characters' } + ]} + > + <Input placeholder="Enter environment name" /> + </Form.Item> + + <Form.Item + name="environmentDescription" + label="Description" + > + <Input.TextArea + placeholder="Enter description" + rows={3} + /> + </Form.Item> + + <Form.Item + name="environmentType" + label="Stage" + rules={[{ required: true, message: 'Please select a stage' }]} + > + <Select placeholder="Select stage"> + <Option value="DEV">Development (DEV)</Option> + <Option value="TEST">Testing (TEST)</Option> + <Option value="PREPROD">Pre-Production (PREPROD)</Option> + <Option value="PROD">Production (PROD)</Option> + </Select> + </Form.Item> + + <Form.Item + name="environmentFrontendUrl" + label="Frontend URL" + rules={[ + { type: 'url', message: 'Please enter a valid URL' } + ]} + > + <Input placeholder="https://example.com" /> + </Form.Item> + + <Form.Item + name="environmentApiServiceUrl" + label="API Service URL" + rules={[ + { type: 'url', message: 'Please enter a valid URL' } + ]} + > + <Input placeholder="https://api.example.com" /> + </Form.Item> + + <Form.Item + name="environmentNodeServiceUrl" + label="Node Service URL" + rules={[ + { type: 'url', message: 'Please enter a valid URL' } + ]} + > + <Input placeholder="https://node.example.com" /> + </Form.Item> + + <Form.Item + name="environmentApikey" + label="API Key" + > + <Input.TextArea + placeholder="Enter API key" + rows={2} + /> + </Form.Item> + + <Form.Item label="Master Environment"> + <div style={{ display: 'flex', alignItems: 'center', gap: '12px' }}> + <Tooltip + title={ + hasMasterEnvironment + ? `${masterEnvironment?.environmentName} is already the Master environment` + : '' + } + > + <Switch + checked={isMaster} + onChange={handleMasterChange} + disabled={hasMasterEnvironment} + + /> + </Tooltip> + {isMaster && ( + <span style={{ color: '#52c41a', fontSize: '12px' }}> + Will be Master + </span> + )} + </div> + </Form.Item> + + <Alert + message="License Information" + description="After creating the environment, the system will automatically check the license status. Make sure the API service URL and API key are correctly configured for license validation." + type="info" + showIcon + style={{ marginTop: '16px' }} + /> + </Form> + </Modal> + ); +}; + +export default CreateEnvironmentModal; \ No newline at end of file diff --git a/client/packages/lowcoder/src/pages/setting/environments/components/DataSourcesTab.tsx b/client/packages/lowcoder/src/pages/setting/environments/components/DataSourcesTab.tsx new file mode 100644 index 0000000000..9cdb0b55a8 --- /dev/null +++ b/client/packages/lowcoder/src/pages/setting/environments/components/DataSourcesTab.tsx @@ -0,0 +1,420 @@ +import React, { useState, useEffect } from 'react'; +import { Card, Button, Divider, Alert, Table, Tag, Input, Space, Tooltip, Row, Col, Avatar } from 'antd'; +import { messageInstance } from 'lowcoder-design/src/components/GlobalInstances'; +import { + SyncOutlined, + CloudUploadOutlined, + DatabaseOutlined, + AuditOutlined, + ApiOutlined, + CheckCircleFilled, + CloudServerOutlined, + DisconnectOutlined, + FilterOutlined +} from '@ant-design/icons'; +import Title from 'antd/lib/typography/Title'; +import { Environment } from '../types/environment.types'; +import { DataSource } from '../types/datasource.types'; +import { getMergedWorkspaceDataSources } from '../services/datasources.service'; +import { Switch, Spin, Empty } from 'antd'; +import { ManagedObjectType, setManagedObject, unsetManagedObject } from '../services/managed-objects.service'; +import { useDeployModal } from '../context/DeployModalContext'; +import { dataSourcesConfig } from '../config/data-sources.config'; +import history from "@lowcoder-ee/util/history"; + +const { Search } = Input; + +interface DataSourcesTabProps { + environment: Environment; + workspaceId: string; +} + +const DataSourcesTab: React.FC<DataSourcesTabProps> = ({ environment, workspaceId }) => { + const [dataSources, setDataSources] = useState<DataSource[]>([]); + const [stats, setStats] = useState({ + total: 0, + types: 0, + managed: 0, + unmanaged: 0 + }); + const [loading, setLoading] = useState(false); + const [refreshing, setRefreshing] = useState(false); + const [error, setError] = useState<string | null>(null); + const [searchText, setSearchText] = useState(''); + const { openDeployModal } = useDeployModal(); + const [showManagedOnly, setShowManagedOnly] = useState(false); + + // Fetch data sources + const fetchDataSources = async () => { + if (!workspaceId || !environment) return; + + setLoading(true); + setError(null); + + try { + const result = await getMergedWorkspaceDataSources( + workspaceId, + environment.environmentId, + environment.environmentApikey, + environment.environmentApiServiceUrl! + ); + + setDataSources(result.dataSources); + setStats(result.stats); + } catch (err) { + setError(err instanceof Error ? err.message : "Failed to fetch data sources"); + } finally { + setLoading(false); + setRefreshing(false); + } + }; + + useEffect(() => { + fetchDataSources(); + }, [environment, workspaceId]); + + // Handle refresh + const handleRefresh = () => { + setRefreshing(true); + fetchDataSources(); + }; + + // Toggle managed status + const handleToggleManaged = async (dataSource: DataSource, checked: boolean) => { + setRefreshing(true); + try { + if (checked) { + await setManagedObject( + dataSource.gid, + environment.environmentId, + ManagedObjectType.DATASOURCE, + ); + } else { + await unsetManagedObject( + dataSource.gid, + environment.environmentId, + ManagedObjectType.DATASOURCE + ); + } + + // Update the data source in state + const updatedDataSources = dataSources.map(item => { + if (item.id === dataSource.id) { + return { ...item, managed: checked }; + } + return item; + }); + + setDataSources(updatedDataSources); + + // Update stats + const managed = updatedDataSources.filter(ds => ds.managed).length; + setStats(prev => ({ + ...prev, + managed, + unmanaged: prev.total - managed + })); + + messageInstance.success(`${dataSource.name} is now ${checked ? 'Managed' : 'Unmanaged'}`); + return true; + } catch (error) { + messageInstance.error(`Failed to change managed status for ${dataSource.name}`); + return false; + } finally { + setRefreshing(false); + } + }; + + // Filter data sources based on managed status and search + const filteredDataSources = searchText + ? dataSources.filter(ds => + ds.name.toLowerCase().includes(searchText.toLowerCase()) || + ds.id.toString().toLowerCase().includes(searchText.toLowerCase())) + : dataSources; + + const displayedDataSources = showManagedOnly + ? filteredDataSources.filter(ds => ds.managed) + : filteredDataSources; + + // Table columns + const columns = [ + { + title: 'Data Source', + key: 'datasource', + render: (dataSource: DataSource) => ( + <div style={{ display: 'flex', alignItems: 'center' }}> + <Avatar + style={{ + backgroundColor: getDataSourceColor(dataSource.type), + marginRight: 12 + }} + shape="square" + icon={<DatabaseOutlined />} + /> + <div> + <div style={{ fontWeight: 500 }}>{dataSource.name}</div> + <div style={{ fontSize: 12, color: '#8c8c8c', marginTop: 4 }}> + {dataSource.id} + </div> + </div> + </div> + ), + }, + { + title: 'Type', + dataIndex: 'type', + key: 'type', + render: (type: string) => ( + <Tag color={getDataSourceColor(type)} style={{ borderRadius: '4px', padding: '2px 12px' }}> + {type} + </Tag> + ), + }, + { + title: 'Status', + key: 'status', + render: (dataSource: DataSource) => ( + <Tag + color={dataSource.managed ? 'processing' : 'default'} + style={{ borderRadius: '4px' }} + > + {dataSource.managed ? <CloudServerOutlined /> : <DisconnectOutlined />} {dataSource.managed ? 'Managed' : 'Unmanaged'} + </Tag> + ), + }, + { + title: 'Managed', + key: 'managed', + render: (_: any, dataSource: DataSource) => ( + <Switch + checked={!!dataSource.managed} + onChange={(checked: boolean) => handleToggleManaged(dataSource, checked)} + loading={refreshing} + /> + ), + }, + { + title: 'Actions', + key: 'actions', + render: (_: any, dataSource: DataSource) => ( + <Space onClick={(e) => e.stopPropagation()}> + + <Tooltip title={!dataSource.managed ? "Data source must be managed before it can be deployed" : "Deploy this data source to another environment"}> + <Button + type="primary" + icon={<CloudUploadOutlined />} + onClick={() => openDeployModal(dataSource, dataSourcesConfig, environment)} + disabled={!dataSource.managed} + > + Deploy + </Button> + </Tooltip> + <Tooltip title="View Audit Logs"> + <Button + icon={<AuditOutlined />} + onClick={(e) => { + e.stopPropagation(); + const auditUrl = `/setting/audit?environmentId=${environment.environmentId}&orgId=${workspaceId}&datasourceId=${dataSource.id}&pageSize=100&pageNum=1`; + window.open(auditUrl, '_blank'); + }} + > + Audit + </Button> + </Tooltip> + </Space> + ), + } + ]; + + // Helper function to get color based on data source type + const getDataSourceColor = (type: string) => { + const colorMap: {[key: string]: string} = { + 'mysql': '#4479A1', + 'postgres': '#336791', + 'mongodb': '#4DB33D', + 'redis': '#DC382D', + 'rest': '#FF6C37', + 'graphql': '#E10098', + 'elasticsearch': '#005571', + 'oracle': '#F80000', + 'mssql': '#CC2927', + 'snowflake': '#29B5E8' + }; + + return colorMap[type.toLowerCase()] || '#1890ff'; + }; + + // Stat card component + const StatCard = ({ title, value, icon }: { title: string; value: number; icon: React.ReactNode }) => ( + <Card + style={{ + height: '100%', + borderRadius: '4px', + border: '1px solid #f0f0f0' + }} + > + <div style={{ display: 'flex', alignItems: 'center', justifyContent: 'space-between' }}> + <div> + <div style={{ fontSize: '13px', color: '#8c8c8c', marginBottom: '8px' }}>{title}</div> + <div style={{ fontSize: '20px', fontWeight: 500 }}>{value}</div> + </div> + <div style={{ + fontSize: '24px', + opacity: 0.8, + color: '#52c41a', + padding: '8px', + backgroundColor: 'rgba(82, 196, 26, 0.1)', + borderRadius: '4px', + display: 'flex', + alignItems: 'center', + justifyContent: 'center' + }}> + {icon} + </div> + </div> + </Card> + ); + + return ( + <div style={{ padding: '16px' }}> + {/* Header */} + <div style={{ + display: "flex", + justifyContent: "space-between", + alignItems: "center", + marginBottom: "20px" + }}> + <div> + <Title level={4} style={{ margin: 0, marginBottom: '4px' }}> + <DatabaseOutlined style={{ marginRight: 8 }} /> Data Sources + </Title> + <p style={{ marginBottom: 0, color: '#8c8c8c', fontSize: '14px' }}> + Manage workspace data connections + </p> + </div> + <Button + icon={<SyncOutlined spin={refreshing} />} + onClick={handleRefresh} + loading={loading} + > + Refresh + </Button> + </div> + + {/* Error display */} + {error && ( + <Alert + message="Error loading data sources" + description={error} + type="error" + showIcon + style={{ marginBottom: "16px" }} + /> + )} + + {/* Configuration warnings */} + {(!environment.environmentApikey || !environment.environmentApiServiceUrl) && !error && ( + <Alert + message="Configuration Issue" + description="Missing required configuration: API key or API service URL" + type="warning" + showIcon + style={{ marginBottom: "16px" }} + /> + )} + + {/* Stats display */} + <Row gutter={[16, 16]} style={{ marginBottom: '20px' }}> + <Col xs={12} sm={12} md={6}> + <StatCard + title="Total Data Sources" + value={stats.total} + icon={<DatabaseOutlined />} + /> + </Col> + <Col xs={12} sm={12} md={6}> + <StatCard + title="Available Types" + value={stats.types} + icon={<ApiOutlined />} + /> + </Col> + <Col xs={12} sm={12} md={6}> + <StatCard + title="Managed" + value={stats.managed} + icon={<CloudServerOutlined />} + /> + </Col> + <Col xs={12} sm={12} md={6}> + <StatCard + title="Unmanaged" + value={stats.unmanaged} + icon={<DisconnectOutlined />} + /> + </Col> + </Row> + + {/* Content */} + <Card + style={{ + borderRadius: '4px', + border: '1px solid #f0f0f0' + }} + > + {loading ? ( + <div style={{ display: 'flex', justifyContent: 'center', padding: '40px' }}> + <Spin size="large" /> + </div> + ) : dataSources.length === 0 ? ( + <Empty + description={error || "No data sources found in this workspace"} + image={Empty.PRESENTED_IMAGE_SIMPLE} + /> + ) : ( + <> + {/* Search and Filter Bar */} + <div style={{ display: 'flex', justifyContent: 'space-between', marginBottom: 16 }}> + <Search + placeholder="Search data sources by name or ID" + allowClear + onSearch={value => setSearchText(value)} + onChange={e => setSearchText(e.target.value)} + style={{ width: 300 }} + /> + <Button + onClick={() => setShowManagedOnly(!showManagedOnly)} + type={showManagedOnly ? "primary" : "default"} + icon={<FilterOutlined />} + style={{ marginLeft: '8px' }} + > + {showManagedOnly ? 'Show All' : 'Managed Only'} + </Button> + </div> + + {searchText && displayedDataSources.length !== dataSources.length && ( + <div style={{ marginBottom: 16, color: '#8c8c8c', fontSize: '13px' }}> + Showing {displayedDataSources.length} of {dataSources.length} data sources + </div> + )} + + <Table + columns={columns} + dataSource={displayedDataSources} + rowKey="id" + pagination={{ + pageSize: 10, + showTotal: (total, range) => `${range[0]}-${range[1]} of ${total} data sources`, + size: 'small' + }} + size="middle" + rowClassName={() => 'datasource-row'} + /> + </> + )} + </Card> + </div> + ); +}; + +export default DataSourcesTab; \ No newline at end of file diff --git a/client/packages/lowcoder/src/pages/setting/environments/components/DeployItemModal.tsx b/client/packages/lowcoder/src/pages/setting/environments/components/DeployItemModal.tsx new file mode 100644 index 0000000000..b7051185c7 --- /dev/null +++ b/client/packages/lowcoder/src/pages/setting/environments/components/DeployItemModal.tsx @@ -0,0 +1,254 @@ +// components/DeployItemModal.tsx +import React, { useState, useEffect } from 'react'; +import { Modal, Form, Select, Checkbox, Button, Spin, Input, Tag, Space, Alert } from 'antd'; +import { messageInstance } from 'lowcoder-design/src/components/GlobalInstances'; +import { useSelector } from 'react-redux'; +import { selectLicensedEnvironments, selectEnvironmentsLoading } from 'redux/selectors/enterpriseSelectors'; +import { Environment } from '../types/environment.types'; +import { DeployableItemConfig } from '../types/deployable-item.types'; +import { getEnvironmentTagColor, formatEnvironmentType } from '../utils/environmentUtils'; +import { ExclamationCircleOutlined } from '@ant-design/icons'; +import { showFirstCredentialOverwriteConfirm, showSecondCredentialOverwriteConfirm } from './credentialConfirmations'; + +interface DeployItemModalProps { + visible: boolean; + item: any | null; + sourceEnvironment: Environment; + config: DeployableItemConfig; + onClose: () => void; + onSuccess?: () => void; +} + +function DeployItemModal({ + visible, + item, + sourceEnvironment, + config, + onClose, + onSuccess +}: DeployItemModalProps) { + const [form] = Form.useForm(); + const licensedEnvironments = useSelector(selectLicensedEnvironments); + const isLoading = useSelector(selectEnvironmentsLoading); + const [deploying, setDeploying] = useState(false); + const [credentialConfirmationStep, setCredentialConfirmationStep] = useState(0); // 0: not started, 1: first confirmation, 2: confirmed + + useEffect(() => { + if (visible) { + form.resetFields(); + setCredentialConfirmationStep(0); + } + }, [visible, form]); + + // Filter out source environment from target list + const targetEnvironments = licensedEnvironments.filter( + (env: Environment) => env.environmentId !== sourceEnvironment.environmentId + ); + + // Handle credential checkbox change with double confirmation + const handleCredentialCheckboxChange = (checked: boolean, fieldName: string) => { + if (!checked) { + // If unchecking, reset confirmation and update form + setCredentialConfirmationStep(0); + form.setFieldsValue({ [fieldName]: false }); + return; + } + + // First confirmation + if (credentialConfirmationStep === 0) { + showFirstCredentialOverwriteConfirm({ + onOk: () => { + setCredentialConfirmationStep(1); + // Show second confirmation immediately + showSecondCredentialOverwriteConfirm({ + onOk: () => { + setCredentialConfirmationStep(2); + form.setFieldsValue({ [fieldName]: true }); + }, + onCancel: () => { + setCredentialConfirmationStep(0); + form.setFieldsValue({ [fieldName]: false }); + } + }); + }, + onCancel: () => { + setCredentialConfirmationStep(0); + form.setFieldsValue({ [fieldName]: false }); + } + }); + } + }; + + const handleDeploy = async () => { + if (!config.deploy || !item) return; + + try { + const values = await form.validateFields(); + const targetEnv = licensedEnvironments.find(env => env.environmentId === values.targetEnvId); + + if (!targetEnv) { + messageInstance.error('Target environment not found'); + return; + } + + // Additional check for credential overwrite + if (values.deployCredential && credentialConfirmationStep !== 2) { + messageInstance.error('Please confirm credential overwrite before deploying'); + return; + } + + setDeploying(true); + + // Prepare parameters based on item type + const params = config.deploy.prepareParams(item, values, sourceEnvironment, targetEnv); + + // Execute deployment + await config.deploy.execute(params); + + messageInstance.success(`Successfully deployed ${item.name} to target environment`); + if (onSuccess) onSuccess(); + onClose(); + } catch (error) { + console.error('Deployment error:', error); + messageInstance.error(`Failed to deploy ${config.deploy.singularLabel.toLowerCase()}`); + } finally { + setDeploying(false); + } + }; + + return ( + <Modal + title={`Deploy ${config.deploy.singularLabel}: ${item?.name || ''}`} + open={visible} + onCancel={onClose} + footer={null} + destroyOnHidden + > + {isLoading ? ( + <div style={{ textAlign: 'center', padding: '20px' }}> + <Spin tip="Loading environments..." /> + </div> + ) : ( + <Form + form={form} + layout="vertical" + > + {/* Source environment display */} + <Form.Item label="Source Environment"> + <Space> + <strong>{sourceEnvironment.environmentName}</strong> + {sourceEnvironment.environmentType && ( + <Tag color={getEnvironmentTagColor(sourceEnvironment.environmentType)}> + {formatEnvironmentType(sourceEnvironment.environmentType)} + </Tag> + )} + </Space> + </Form.Item> + + <Form.Item + name="targetEnvId" + label="Target Environment" + rules={[{ required: true, message: 'Please select a target environment' }]} + > + <Select placeholder="Select target environment"> + {targetEnvironments.map((env) => ( + <Select.Option key={env.environmentId} value={env.environmentId}> + <Space> + {env.environmentName} + {env.environmentType && ( + <Tag color={getEnvironmentTagColor(env.environmentType)}> + {formatEnvironmentType(env.environmentType)} + </Tag> + )} + </Space> + </Select.Option> + ))} + </Select> + </Form.Item> + + {/* Render dynamic fields based on config */} + {config.deploy?.fields.map(field => { + switch (field.type) { + case 'checkbox': + // Special handling for credential-related checkboxes + const isCredentialField = field.name === 'deployCredential'; + return ( + <Form.Item + key={field.name} + name={field.name} + valuePropName="checked" + initialValue={field.defaultValue} + > + <Checkbox + onChange={(e) => { + if (isCredentialField) { + handleCredentialCheckboxChange(e.target.checked, field.name); + } else { + // For non-credential checkboxes, handle normally + form.setFieldsValue({ [field.name]: e.target.checked }); + } + }} + > + {field.label} + {isCredentialField && credentialConfirmationStep === 2 && ( + <Tag + color="red" + style={{ marginLeft: 8 }} + icon={<ExclamationCircleOutlined />} + > + Confirmed + </Tag> + )} + </Checkbox> + </Form.Item> + ); + case 'select': + return ( + <Form.Item + key={field.name} + name={field.name} + label={field.label} + initialValue={field.defaultValue} + rules={field.required ? [{ required: true, message: `Please select ${field.label}` }] : undefined} + > + <Select placeholder={`Select ${field.label}`}> + {field.options?.map(option => ( + <Select.Option key={option.value} value={option.value}> + {option.label} + </Select.Option> + ))} + </Select> + </Form.Item> + ); + case 'input': + return ( + <Form.Item + key={field.name} + name={field.name} + label={field.label} + initialValue={field.defaultValue} + rules={field.required ? [{ required: true, message: `Please input ${field.label}` }] : undefined} + > + <Input placeholder={`Enter ${field.label}`} /> + </Form.Item> + ); + default: + return null; + } + })} + + <Form.Item> + <Button type="default" onClick={onClose} style={{ marginRight: 8 }}> + Cancel + </Button> + <Button type="primary" onClick={handleDeploy} loading={deploying}> + Deploy + </Button> + </Form.Item> + </Form> + )} + </Modal> + ); +} + +export default DeployItemModal; \ No newline at end of file diff --git a/client/packages/lowcoder/src/pages/setting/environments/components/EditEnvironmentModal.tsx b/client/packages/lowcoder/src/pages/setting/environments/components/EditEnvironmentModal.tsx new file mode 100644 index 0000000000..593e4be2e7 --- /dev/null +++ b/client/packages/lowcoder/src/pages/setting/environments/components/EditEnvironmentModal.tsx @@ -0,0 +1,200 @@ +import React, { useState, useEffect } from 'react'; +import { Modal, Form, Input, Select, Switch, Button, Tooltip } from 'antd'; +import { useSelector } from 'react-redux'; +import { selectMasterEnvironment, selectHasMasterEnvironment } from 'redux/selectors/enterpriseSelectors'; +import { Environment } from '../types/environment.types'; + +const { Option } = Select; + +interface EditEnvironmentModalProps { + visible: boolean; + environment: Environment | null; + onClose: () => void; + onSave: (data: Partial<Environment>) => Promise<void>; // Updated signature + loading?: boolean; +} + +const EditEnvironmentModal: React.FC<EditEnvironmentModalProps> = ({ + visible, + environment, + onClose, + onSave, + loading = false +}) => { + const [form] = Form.useForm(); + const [submitLoading, setSubmitLoading] = useState(false); + const [isMaster, setIsMaster] = useState(false); + + // Redux selectors to check for existing master environment + const hasMasterEnvironment = useSelector(selectHasMasterEnvironment); + const masterEnvironment = useSelector(selectMasterEnvironment); + + // Check if another environment is master (not this one) + const hasOtherMaster = hasMasterEnvironment && masterEnvironment?.environmentId !== environment?.environmentId; + + // Initialize form with environment data when it changes + useEffect(() => { + if (environment) { + setIsMaster(environment.isMaster); + form.setFieldsValue({ + environmentName: environment.environmentName || '', + environmentDescription: environment.environmentDescription || '', + environmentType: environment.environmentType, + environmentApiServiceUrl: environment.environmentApiServiceUrl || '', + environmentFrontendUrl: environment.environmentFrontendUrl || '', + environmentNodeServiceUrl: environment.environmentNodeServiceUrl || '', + environmentApikey: environment.environmentApikey || '' + }); + } + }, [environment, form]); + + const handleMasterChange = (checked: boolean) => { + // Only allow enabling master if no other environment is master + if (checked && hasOtherMaster) { + return; // Do nothing if trying to enable master when another exists + } + setIsMaster(checked); + }; + + const handleSubmit = async () => { + if (!environment) return; + + try { + const values = await form.validateFields(); + setSubmitLoading(true); + + const submitData = { + ...values, + isMaster + }; + + await onSave(submitData); + onClose(); + } catch (error) { + if (error instanceof Error) { + console.error("Form validation or submission error:", error); + } + } finally { + setSubmitLoading(false); + } + }; + + return ( + <Modal + title="Edit Environment" + open={visible} + onCancel={onClose} + maskClosable={true} + destroyOnHidden={true} + footer={[ + <Button key="back" onClick={onClose}> + Cancel + </Button>, + <Button + key="submit" + type="primary" + loading={loading || submitLoading} + onClick={handleSubmit} + > + Save Changes + </Button> + ]} + > + <Form + form={form} + layout="vertical" + name="edit_environment_form" + > + <Form.Item + name="environmentName" + label="Environment Name" + rules={[{ required: true, message: 'Please enter a name' }]} + > + <Input placeholder="Enter environment name" /> + </Form.Item> + + <Form.Item + name="environmentDescription" + label="Description" + > + <Input.TextArea + placeholder="Enter description" + rows={3} + /> + </Form.Item> + + <Form.Item + name="environmentType" + label="Stage" + rules={[{ required: true, message: 'Please select a stage' }]} + > + <Select placeholder="Select stage"> + <Option value="DEV">Development (DEV)</Option> + <Option value="TEST">Testing (TEST)</Option> + <Option value="PREPROD">Pre-Production (PREPROD)</Option> + <Option value="PROD">Production (PROD)</Option> + </Select> + </Form.Item> + + <Form.Item + name="environmentFrontendUrl" + label="Frontend URL" + > + <Input placeholder="https://example.com" /> + </Form.Item> + + <Form.Item + name="environmentApiServiceUrl" + label="API Service URL" + > + <Input placeholder="https://api.example.com" /> + </Form.Item> + + <Form.Item + name="environmentNodeServiceUrl" + label="Node Service URL" + > + <Input placeholder="https://node.example.com" /> + </Form.Item> + + <Form.Item + name="environmentApikey" + label="API Key" + > + <Input.TextArea + placeholder="Enter API key" + rows={2} + /> + </Form.Item> + + <Form.Item label="Master Environment"> + <div style={{ display: 'flex', alignItems: 'center', gap: '12px' }}> + <Tooltip + title={ + hasOtherMaster && !isMaster + ? `${masterEnvironment?.environmentName} is already the Master environment` + : '' + } + > + <Switch + checked={isMaster} + onChange={handleMasterChange} + disabled={hasOtherMaster && !isMaster} + + /> + </Tooltip> + {isMaster && ( + <span style={{ color: '#faad14', fontSize: '12px' }}> + Currently Master + </span> + )} + </div> + </Form.Item> + + + </Form> + </Modal> + ); +}; + +export default EditEnvironmentModal; \ No newline at end of file diff --git a/client/packages/lowcoder/src/pages/setting/environments/components/EnvironmentHeader.tsx b/client/packages/lowcoder/src/pages/setting/environments/components/EnvironmentHeader.tsx new file mode 100644 index 0000000000..0a999129e0 --- /dev/null +++ b/client/packages/lowcoder/src/pages/setting/environments/components/EnvironmentHeader.tsx @@ -0,0 +1,94 @@ +import React from 'react'; +import { Button, Tag, Typography, Row, Col } from 'antd'; +import { EditOutlined, CloudServerOutlined } from '@ant-design/icons'; +import { Environment } from '../types/environment.types'; +import { getEnvironmentTagColor, getEnvironmentHeaderGradient } from '../utils/environmentUtils'; + +const { Title, Text } = Typography; + +interface EnvironmentHeaderProps { + environment: Environment; + onEditClick: () => void; +} + +/** + * Header component for environment details + * Displays environment name, ID, type, and controls + */ +const EnvironmentHeader: React.FC<EnvironmentHeaderProps> = ({ + environment, + onEditClick +}) => { + return ( + <div + className="environment-header" + style={{ + marginBottom: "24px", + background: getEnvironmentHeaderGradient(environment.environmentType), + padding: '20px 24px', + borderRadius: '8px', + color: 'white', + boxShadow: '0 2px 8px rgba(0,0,0,0.1)' + }} + > + <Row justify="space-between" align="middle" gutter={[16, 16]}> + <Col xs={24} sm={18}> + <div style={{ display: 'flex', alignItems: 'center', gap: '16px' }}> + <div className="environment-icon" style={{ + fontSize: '32px', + backgroundColor: 'rgba(255,255,255,0.2)', + width: '64px', + height: '64px', + borderRadius: '50%', + display: 'flex', + alignItems: 'center', + justifyContent: 'center' + }}> + <CloudServerOutlined /> + </div> + <div> + <Title level={3} style={{ margin: '0 0 4px 0', color: 'white' }}> + {environment.environmentName || "Unnamed Environment"} + </Title> + <div style={{ display: 'flex', alignItems: 'center', flexWrap: 'wrap', gap: '12px' }}> + <Text style={{ color: 'rgba(255,255,255,0.85)' }}> + ID: {environment.environmentId} + </Text> + <Tag + color={getEnvironmentTagColor(environment.environmentType)} + style={{ marginLeft: 0, borderRadius: '12px' }} + > + {environment.environmentType} + </Tag> + {environment.isMaster && ( + <Tag color="green" style={{ marginLeft: 0, borderRadius: '12px' }}> + Master + </Tag> + )} + </div> + </div> + </div> + </Col> + <Col xs={24} sm={6} style={{ textAlign: 'right' }}> + <Button + icon={<EditOutlined />} + onClick={onEditClick} + type="default" + size="large" + style={{ + background: 'white', + color: '#1890ff', + borderColor: 'white', + fontWeight: 500, + boxShadow: '0 2px 4px rgba(0,0,0,0.1)' + }} + > + Edit Environment + </Button> + </Col> + </Row> + </div> + ); +}; + +export default EnvironmentHeader; \ No newline at end of file diff --git a/client/packages/lowcoder/src/pages/setting/environments/components/EnvironmentsTable.tsx b/client/packages/lowcoder/src/pages/setting/environments/components/EnvironmentsTable.tsx new file mode 100644 index 0000000000..0a1e9d98e9 --- /dev/null +++ b/client/packages/lowcoder/src/pages/setting/environments/components/EnvironmentsTable.tsx @@ -0,0 +1,289 @@ +import React from 'react'; +import { Table, Tag, Button, Tooltip, Space, Card, Row, Col, Typography, Avatar, Spin, Alert } from 'antd'; +import { EditOutlined, AuditOutlined, LinkOutlined, EnvironmentOutlined, StarFilled, CloudServerOutlined, CheckCircleOutlined, CloseCircleOutlined, ExclamationCircleOutlined, SyncOutlined } from '@ant-design/icons'; +import { Environment } from '../types/environment.types'; +import { getEnvironmentTagColor, formatEnvironmentType } from '../utils/environmentUtils'; + +const { Text, Title } = Typography; + +interface EnvironmentsTableProps { + environments: Environment[]; + loading: boolean; + onRowClick: (record: Environment) => void; +} + +/** + * Clean card-based layout for displaying environments consistent with app design + */ +const EnvironmentsTable: React.FC<EnvironmentsTableProps> = ({ + environments, + loading, + onRowClick, +}) => { + // Open audit page in new tab + const openAuditPage = (environmentId: string, e: React.MouseEvent) => { + e.stopPropagation(); // Prevent row click from triggering + const auditUrl = `/setting/audit?environmentId=${environmentId}`; + window.open(auditUrl, '_blank'); + }; + + // Handle row click - allow navigation to all environments including unlicensed + const handleRowClick = (env: Environment) => { + onRowClick(env); + }; + + // Generate background color for environment avatar + const getAvatarColor = (name: string) => { + const type = name.toUpperCase(); + if (type === 'PROD') return '#f5222d'; + if (type === 'PREPROD') return '#fa8c16'; + if (type === 'TEST') return '#722ed1'; + if (type === 'DEV') return '#1890ff'; + + let hash = 0; + for (let i = 0; i < name.length; i++) { + hash = name.charCodeAt(i) + ((hash << 5) - hash); + } + const hue = Math.abs(hash % 360); + return `hsl(${hue}, 70%, 50%)`; + }; + + // Get license status icon and color + const getLicenseStatusDisplay = (env: Environment) => { + switch (env.licenseStatus) { + case 'checking': + return { + icon: <SyncOutlined spin />, + color: '#1890ff', + text: 'Checking...', + status: 'processing' as const + }; + case 'licensed': + return { + icon: <CheckCircleOutlined />, + color: '#52c41a', + text: 'Licensed', + status: 'success' as const + }; + case 'unlicensed': + return { + icon: <CloseCircleOutlined />, + color: '#ff4d4f', + text: 'Not Licensed', + status: 'error' as const + }; + case 'error': + return { + icon: <ExclamationCircleOutlined />, + color: '#faad14', + text: 'License Error', + status: 'warning' as const + }; + default: + return { + icon: <ExclamationCircleOutlined />, + color: '#d9d9d9', + text: 'Unknown', + status: 'default' as const + }; + } + }; + + if (environments.length === 0) { + return null; + } + + return ( + <div className="environments-grid"> + <Row gutter={[16, 16]}> + {environments.map(env => { + const licenseDisplay = getLicenseStatusDisplay(env); + const isAccessible = env.isLicensed !== false; + + return ( + <Col xs={24} sm={24} md={12} lg={8} xl={8} key={env.environmentId}> + <Card + hoverable + style={{ + borderRadius: '4px', + height: '100%', + cursor: 'pointer', + transition: 'all 0.2s ease', + border: '1px solid #f0f0f0', + position: 'relative' + }} + bodyStyle={{ padding: '16px' }} + onClick={() => handleRowClick(env)} + > + {/* Subtle overlay for unlicensed environments */} + {!isAccessible && ( + <div style={{ + position: 'absolute', + top: 0, + left: 0, + right: 0, + bottom: 0, + background: 'rgba(255, 255, 255, 0.8)', + zIndex: 1, + display: 'flex', + alignItems: 'flex-start', + justifyContent: 'flex-end', + padding: '12px' + }}> + {/* Not Licensed Badge */} + <div style={{ + background: licenseDisplay.color, + color: 'white', + padding: '4px 8px', + borderRadius: '4px', + fontSize: '12px', + fontWeight: 500, + display: 'flex', + alignItems: 'center', + gap: '4px' + }}> + {licenseDisplay.icon} + {licenseDisplay.text} + </div> + </div> + )} + + <div style={{ display: 'flex', justifyContent: 'space-between', marginBottom: '12px' }}> + <div style={{ display: 'flex', alignItems: 'center', gap: '12px' }}> + <Avatar + style={{ + backgroundColor: getAvatarColor(env.environmentType), + display: 'flex', + alignItems: 'center', + justifyContent: 'center' + }} + size={40} + icon={<CloudServerOutlined />} + /> + <div> + <Title level={5} style={{ margin: 0, marginBottom: '4px', fontSize: '14px' }}> + {env.environmentName || 'Unnamed Environment'} + {env.isMaster && ( + <Tooltip title="Master Environment"> + <StarFilled style={{ color: '#faad14', marginLeft: '6px', fontSize: '12px' }} /> + </Tooltip> + )} + </Title> + <Space size="small"> + <Tag + color={getEnvironmentTagColor(env.environmentType)} + style={{ fontSize: '11px', borderRadius: '4px' }} + > + {formatEnvironmentType(env.environmentType)} + </Tag> + <Tag + icon={licenseDisplay.icon} + color={licenseDisplay.status === 'success' ? 'green' : + licenseDisplay.status === 'error' ? 'red' : + licenseDisplay.status === 'warning' ? 'orange' : 'blue'} + style={{ fontSize: '11px', borderRadius: '4px' }} + > + {licenseDisplay.text} + </Tag> + </Space> + </div> + </div> + {/* Only show audit button for licensed environments */} + {isAccessible && ( + <div> + <Tooltip title="View Audit Logs" placement="top"> + <Button + type="text" + icon={<AuditOutlined />} + onClick={(e) => openAuditPage(env.environmentId, e)} + size="small" + style={{ + width: '28px', + height: '28px', + display: 'flex', + alignItems: 'center', + justifyContent: 'center' + }} + /> + </Tooltip> + </div> + )} + </div> + + <div style={{ padding: '8px 0', borderTop: '1px solid #f5f5f5' }}> + <div style={{ display: 'flex', flexDirection: 'column', gap: '6px' }}> + <div style={{ display: 'flex', justifyContent: 'space-between', alignItems: 'center' }}> + <Text type="secondary" style={{ fontSize: '12px' }}>ID:</Text> + {isAccessible ? ( + <Text style={{ fontSize: '12px', fontFamily: 'monospace' }} copyable={{ tooltips: ['Copy ID', 'Copied!'] }}> + {env.environmentId} + </Text> + ) : ( + <Text style={{ fontSize: '12px', fontFamily: 'monospace' }}> + {env.environmentId} + </Text> + )} + </div> + + <div style={{ display: 'flex', justifyContent: 'space-between', alignItems: 'center' }}> + <Text type="secondary" style={{ fontSize: '12px' }}>Domain:</Text> + {env.environmentFrontendUrl ? ( + isAccessible ? ( + <a + href={env.environmentFrontendUrl} + target="_blank" + rel="noopener noreferrer" + onClick={(e) => e.stopPropagation()} + style={{ fontSize: '12px' }} + > + {env.environmentFrontendUrl.replace(/^https?:\/\//, '')} + <LinkOutlined style={{ marginLeft: 4, fontSize: '10px' }} /> + </a> + ) : ( + <Text style={{ fontSize: '12px' }}> + {env.environmentFrontendUrl.replace(/^https?:\/\//, '')} + </Text> + ) + ) : ( + <Text style={{ fontSize: '12px' }}>—</Text> + )} + </div> + + <div style={{ display: 'flex', justifyContent: 'space-between', alignItems: 'center' }}> + <Text type="secondary" style={{ fontSize: '12px' }}>Master:</Text> + <Text style={{ fontSize: '12px' }}> + {env.isMaster ? 'Yes' : 'No'} + </Text> + </div> + + <div style={{ display: 'flex', justifyContent: 'space-between', alignItems: 'center' }}> + <Text type="secondary" style={{ fontSize: '12px' }}>License:</Text> + <div style={{ display: 'flex', alignItems: 'center', gap: '4px' }}> + <span style={{ color: licenseDisplay.color, fontSize: '12px' }}> + {licenseDisplay.icon} + </span> + <Text style={{ fontSize: '12px', color: licenseDisplay.color }}> + {licenseDisplay.text} + </Text> + </div> + </div> + </div> + </div> + </Card> + </Col> + ); + })} + </Row> + + {environments.length > 10 && ( + <div style={{ textAlign: 'center', margin: '16px 0' }}> + <Text type="secondary" style={{ fontSize: '13px' }}> + Showing all {environments.length} environments + </Text> + </div> + )} + </div> + ); +}; + +export default EnvironmentsTable; \ No newline at end of file diff --git a/client/packages/lowcoder/src/pages/setting/environments/components/ErrorComponent.tsx b/client/packages/lowcoder/src/pages/setting/environments/components/ErrorComponent.tsx new file mode 100644 index 0000000000..2f4d5fbacc --- /dev/null +++ b/client/packages/lowcoder/src/pages/setting/environments/components/ErrorComponent.tsx @@ -0,0 +1,38 @@ +import React from 'react'; +import { Card, Button, Typography } from 'antd'; +import { HomeOutlined } from '@ant-design/icons'; +import history from '@lowcoder-ee/util/history'; + +const { Title, Text } = Typography; + +interface ErrorComponentProps { + errorMessage: string; + returnPath: string; + returnLabel: string; +} + +const ErrorComponent: React.FC<ErrorComponentProps> = ({ errorMessage, returnPath, returnLabel }) => { + return ( + <div style={{ padding: '24px', flex: 1 }}> + <Card style={{ borderRadius: '8px', boxShadow: '0 2px 8px rgba(0,0,0,0.05)' }}> + <div style={{ textAlign: 'center', padding: '40px 0' }}> + <Title level={3} style={{ color: '#ff4d4f' }}> + {errorMessage} + </Title> + <Text type="secondary" style={{ display: 'block', margin: '16px 0' }}> + The item you're looking for doesn't exist or you don't have permission to view it. + </Text> + <Button + type="primary" + onClick={() => history.push(returnPath)} + style={{ marginTop: '16px' }} + > + <HomeOutlined /> {returnLabel} + </Button> + </div> + </Card> + </div> + ); +}; + +export default ErrorComponent; diff --git a/client/packages/lowcoder/src/pages/setting/environments/components/ModernBreadcrumbs.tsx b/client/packages/lowcoder/src/pages/setting/environments/components/ModernBreadcrumbs.tsx new file mode 100644 index 0000000000..1a3d35524e --- /dev/null +++ b/client/packages/lowcoder/src/pages/setting/environments/components/ModernBreadcrumbs.tsx @@ -0,0 +1,54 @@ +import React, { ReactNode } from 'react'; +import { Breadcrumb } from 'antd'; +import { BreadcrumbProps } from 'antd/lib/breadcrumb'; + +interface ModernBreadcrumbsProps extends BreadcrumbProps { + /** + * Items to display in the breadcrumb + */ + items?: { + key: string; + title: ReactNode; + onClick?: () => void; + }[]; +} + +/** + * Modern styled breadcrumb component with consistent styling + */ +const ModernBreadcrumbs: React.FC<ModernBreadcrumbsProps> = ({ items = [], ...props }) => { + return ( + <div className="modern-breadcrumb" style={{ + background: '#e6f7ff', + padding: '10px 20px', + borderRadius: '8px', + marginBottom: '20px', + boxShadow: '0 1px 3px rgba(0,0,0,0.1)', + display: 'flex', + alignItems: 'center' + }}> + <Breadcrumb {...props} separator="/"> + {items.map(item => ( + <Breadcrumb.Item key={item.key}> + {item.onClick ? ( + <span + style={{ cursor: "pointer", color: '#1890ff', fontWeight: '500' }} + onClick={item.onClick} + onMouseEnter={(e) => e.currentTarget.style.textDecoration = 'underline'} + onMouseLeave={(e) => e.currentTarget.style.textDecoration = 'none'} + > + {item.title} + </span> + ) : ( + <span style={{ color: '#595959', fontWeight: '500' }}> + {item.title} + </span> + )} + </Breadcrumb.Item> + ))} + </Breadcrumb> + </div> + ); +}; + +export default ModernBreadcrumbs; \ No newline at end of file diff --git a/client/packages/lowcoder/src/pages/setting/environments/components/QueriesTab.tsx b/client/packages/lowcoder/src/pages/setting/environments/components/QueriesTab.tsx new file mode 100644 index 0000000000..0d754025f0 --- /dev/null +++ b/client/packages/lowcoder/src/pages/setting/environments/components/QueriesTab.tsx @@ -0,0 +1,413 @@ +import React, { useState, useEffect } from 'react'; +import { Card, Button, Divider, Alert, Table, Tag, Input, Space, Tooltip, Row, Col } from 'antd'; +import { messageInstance } from 'lowcoder-design/src/components/GlobalInstances'; +import { + SyncOutlined, + CloudUploadOutlined, + CodeOutlined, + AuditOutlined, + UserOutlined, + CloudServerOutlined, + DisconnectOutlined, + ApiOutlined, + ThunderboltOutlined, + FilterOutlined +} from '@ant-design/icons'; +import Title from 'antd/lib/typography/Title'; +import { Environment } from '../types/environment.types'; +import { Workspace } from '../types/workspace.types'; +import { Query } from '../types/query.types'; +import { getMergedWorkspaceQueries } from '../services/query.service'; +import { Switch, Spin, Empty, Avatar } from 'antd'; +import { ManagedObjectType, setManagedObject, unsetManagedObject } from '../services/managed-objects.service'; +import { useDeployModal } from '../context/DeployModalContext'; +import { queryConfig } from '../config/query.config'; +import history from "@lowcoder-ee/util/history"; + +const { Search } = Input; + +interface QueriesTabProps { + environment: Environment; + workspaceId: string; +} + +const QueriesTab: React.FC<QueriesTabProps> = ({ environment, workspaceId }) => { + const [queries, setQueries] = useState<Query[]>([]); + const [stats, setStats] = useState({ + total: 0, + managed: 0, + unmanaged: 0 + }); + const [loading, setLoading] = useState(false); + const [refreshing, setRefreshing] = useState(false); + const [error, setError] = useState<string | null>(null); + const [searchText, setSearchText] = useState(''); + const { openDeployModal } = useDeployModal(); + const [showManagedOnly, setShowManagedOnly] = useState(false); + + // Fetch queries + const fetchQueries = async () => { + if (!workspaceId || !environment) return; + + setLoading(true); + setError(null); + + try { + const result = await getMergedWorkspaceQueries( + workspaceId, + environment.environmentId, + environment.environmentApikey, + environment.environmentApiServiceUrl! + ); + + setQueries(result.queries); + setStats(result.stats); + } catch (err) { + setError(err instanceof Error ? err.message : "Failed to fetch queries"); + } finally { + setLoading(false); + setRefreshing(false); + } + }; + + useEffect(() => { + fetchQueries(); + }, [environment, workspaceId]); + + // Handle refresh + const handleRefresh = () => { + setRefreshing(true); + fetchQueries(); + }; + + // Toggle managed status + const handleToggleManaged = async (query: Query, checked: boolean) => { + setRefreshing(true); + try { + if (checked) { + await setManagedObject( + query.gid, + environment.environmentId, + ManagedObjectType.QUERY, + ); + } else { + await unsetManagedObject( + query.gid, + environment.environmentId, + ManagedObjectType.QUERY + ); + } + + // Update the query in state + const updatedQueries = queries.map(item => { + if (item.id === query.id) { + return { ...item, managed: checked }; + } + return item; + }); + + setQueries(updatedQueries); + + // Update stats + const managed = updatedQueries.filter(q => q.managed).length; + setStats(prev => ({ + ...prev, + managed, + unmanaged: prev.total - managed + })); + + messageInstance.success(`${query.name} is now ${checked ? 'Managed' : 'Unmanaged'}`); + return true; + } catch (error) { + messageInstance.error(`Failed to change managed status for ${query.name}`); + return false; + } finally { + setRefreshing(false); + } + }; + + // Filter queries based on search + const filteredQueries = searchText + ? queries.filter(query => + query.name.toLowerCase().includes(searchText.toLowerCase()) || + query.id.toLowerCase().includes(searchText.toLowerCase())) + : queries; + + const displayedQueries = showManagedOnly + ? filteredQueries.filter(query => query.managed) + : filteredQueries; + + // Helper function to generate colors from strings + const stringToColor = (str: string) => { + let hash = 0; + for (let i = 0; i < str.length; i++) { + hash = str.charCodeAt(i) + ((hash << 5) - hash); + } + + const hue = Math.abs(hash % 360); + return `hsl(${hue}, 70%, 50%)`; + }; + + // Table columns + const columns = [ + { + title: 'Query', + key: 'query', + render: (query: Query) => ( + <div style={{ display: 'flex', alignItems: 'center' }}> + <Avatar + style={{ + backgroundColor: stringToColor(query.name), + marginRight: 12 + }} + shape="square" + icon={<CodeOutlined />} + > + </Avatar> + <div> + <div style={{ fontWeight: 500 }}>{query.name}</div> + <div style={{ fontSize: 12, color: '#8c8c8c', marginTop: 4 }}> + {query.id} + </div> + </div> + </div> + ), + }, + { + title: 'Creator', + dataIndex: 'creatorName', + key: 'creatorName', + render: (creatorName: string) => ( + <div style={{ display: 'flex', alignItems: 'center', gap: '8px' }}> + <Avatar + size="small" + icon={<UserOutlined />} + style={{ backgroundColor: '#1890ff' }} + /> + {creatorName} + </div> + ) + }, + { + title: 'Status', + key: 'status', + render: (query: Query) => ( + <Tag + color={query.managed ? 'processing' : 'default'} + style={{ borderRadius: '4px' }} + > + {query.managed ? <CloudServerOutlined /> : <DisconnectOutlined />} {query.managed ? 'Managed' : 'Unmanaged'} + </Tag> + ), + }, + { + title: 'Managed', + key: 'managed', + render: (_: any, query: Query) => ( + <Switch + checked={!!query.managed} + onChange={(checked: boolean) => handleToggleManaged(query, checked)} + loading={refreshing} + /> + ), + }, + { + title: 'Actions', + key: 'actions', + render: (_: any, query: Query) => ( + <Space onClick={(e) => e.stopPropagation()}> + + <Tooltip title={!query.managed ? "Query must be managed before it can be deployed" : "Deploy this query to another environment"}> + <Button + type="primary" + icon={<CloudUploadOutlined />} + onClick={() => openDeployModal(query, queryConfig, environment)} + disabled={!query.managed} + > + Deploy + </Button> + </Tooltip> + <Tooltip title="View Audit Logs"> + <Button + icon={<AuditOutlined />} + onClick={(e) => { + e.stopPropagation(); + const auditUrl = `/setting/audit?environmentId=${environment.environmentId}&orgId=${workspaceId}&queryId=${query.id}&pageSize=100&pageNum=1`; + window.open(auditUrl, '_blank'); + }} + > + Audit + </Button> + </Tooltip> + </Space> + ), + } + ]; + + // Stat card component + const StatCard = ({ title, value, icon }: { title: string; value: number; icon: React.ReactNode }) => ( + <Card + style={{ + height: '100%', + borderRadius: '4px', + border: '1px solid #f0f0f0' + }} + > + <div style={{ display: 'flex', alignItems: 'center', justifyContent: 'space-between' }}> + <div> + <div style={{ fontSize: '13px', color: '#8c8c8c', marginBottom: '8px' }}>{title}</div> + <div style={{ fontSize: '20px', fontWeight: 500 }}>{value}</div> + </div> + <div style={{ + fontSize: '24px', + opacity: 0.8, + color: '#722ed1', + padding: '8px', + backgroundColor: 'rgba(114, 46, 209, 0.1)', + borderRadius: '4px', + display: 'flex', + alignItems: 'center', + justifyContent: 'center' + }}> + {icon} + </div> + </div> + </Card> + ); + + return ( + <div style={{ padding: '16px' }}> + {/* Header */} + <div style={{ + display: "flex", + justifyContent: "space-between", + alignItems: "center", + marginBottom: "20px" + }}> + <div> + <Title level={4} style={{ margin: 0, marginBottom: '4px' }}> + <ThunderboltOutlined style={{ marginRight: 8 }} /> Queries + </Title> + <p style={{ marginBottom: 0, color: '#8c8c8c', fontSize: '14px' }}> + Manage workspace API queries + </p> + </div> + <Button + icon={<SyncOutlined spin={refreshing} />} + onClick={handleRefresh} + loading={loading} + > + Refresh + </Button> + </div> + + {/* Error display */} + {error && ( + <Alert + message="Error loading queries" + description={error} + type="error" + showIcon + style={{ marginBottom: "16px" }} + /> + )} + + {/* Configuration warnings */} + {(!environment.environmentApikey || !environment.environmentApiServiceUrl) && !error && ( + <Alert + message="Configuration Issue" + description="Missing required configuration: API key or API service URL" + type="warning" + showIcon + style={{ marginBottom: "16px" }} + /> + )} + + {/* Stats display */} + <Row gutter={[16, 16]} style={{ marginBottom: '20px' }}> + <Col xs={24} sm={8}> + <StatCard + title="Total Queries" + value={stats.total} + icon={<CodeOutlined />} + /> + </Col> + <Col xs={24} sm={8}> + <StatCard + title="Managed" + value={stats.managed} + icon={<CloudServerOutlined />} + /> + </Col> + <Col xs={24} sm={8}> + <StatCard + title="Unmanaged" + value={stats.unmanaged} + icon={<DisconnectOutlined />} + /> + </Col> + </Row> + + {/* Content */} + <Card + style={{ + borderRadius: '4px', + border: '1px solid #f0f0f0' + }} + > + {loading ? ( + <div style={{ display: 'flex', justifyContent: 'center', padding: '40px' }}> + <Spin size="large" /> + </div> + ) : queries.length === 0 ? ( + <Empty + description={error || "No queries found in this workspace"} + image={Empty.PRESENTED_IMAGE_SIMPLE} + /> + ) : ( + <> + {/* Search and Filter Bar */} + <div style={{ display: 'flex', justifyContent: 'space-between', marginBottom: 16 }}> + <Search + placeholder="Search queries by name or ID" + allowClear + onSearch={value => setSearchText(value)} + onChange={e => setSearchText(e.target.value)} + style={{ width: 300 }} + /> + <Button + onClick={() => setShowManagedOnly(!showManagedOnly)} + type={showManagedOnly ? "primary" : "default"} + icon={<FilterOutlined />} + style={{ marginLeft: '8px' }} + > + {showManagedOnly ? 'Show All' : 'Managed Only'} + </Button> + </div> + + {searchText && displayedQueries.length !== queries.length && ( + <div style={{ marginBottom: 16, color: '#8c8c8c', fontSize: '13px' }}> + Showing {displayedQueries.length} of {queries.length} queries + </div> + )} + + <Table + columns={columns} + dataSource={displayedQueries} + rowKey="id" + pagination={{ + pageSize: 10, + showTotal: (total, range) => `${range[0]}-${range[1]} of ${total} queries`, + size: 'small' + }} + size="middle" + rowClassName={() => 'query-row'} + /> + </> + )} + </Card> + </div> + ); +}; + +export default QueriesTab; \ No newline at end of file diff --git a/client/packages/lowcoder/src/pages/setting/environments/components/UnlicensedEnvironmentView.tsx b/client/packages/lowcoder/src/pages/setting/environments/components/UnlicensedEnvironmentView.tsx new file mode 100644 index 0000000000..6b61379ddd --- /dev/null +++ b/client/packages/lowcoder/src/pages/setting/environments/components/UnlicensedEnvironmentView.tsx @@ -0,0 +1,225 @@ +import React, { useState } from 'react'; +import { Button, Card, Space, Typography, Row, Col } from 'antd'; +import { + CustomerServiceOutlined, + EditOutlined, + ArrowLeftOutlined, + CloseCircleOutlined, + ExclamationCircleOutlined, + WarningOutlined +} from '@ant-design/icons'; +import { Environment } from '../types/environment.types'; +import ContactLowcoderModal from './ContactLowcoderModal'; +import history from "@lowcoder-ee/util/history"; + +const { Title, Text } = Typography; + +interface UnlicensedEnvironmentViewProps { + environment: Environment; + onEditClick: () => void; +} + +/** + * Modern UI for unlicensed environments + */ +const UnlicensedEnvironmentView: React.FC<UnlicensedEnvironmentViewProps> = ({ + environment, + onEditClick +}) => { + const [isContactModalVisible, setIsContactModalVisible] = useState(false); + + const getLicenseIcon = () => { + switch (environment.licenseStatus) { + case 'unlicensed': + return <CloseCircleOutlined style={{ fontSize: '48px', color: '#ff4d4f' }} />; + case 'error': + return <ExclamationCircleOutlined style={{ fontSize: '48px', color: '#faad14' }} />; + default: + return <WarningOutlined style={{ fontSize: '48px', color: '#ff4d4f' }} />; + } + }; + + const getLicenseTitle = () => { + switch (environment.licenseStatus) { + case 'unlicensed': + return 'Environment Not Licensed'; + case 'error': + return 'License Configuration Error'; + default: + return 'License Issue'; + } + }; + + const getLicenseDescription = () => { + if (environment.licenseError) { + return environment.licenseError; + } + + switch (environment.licenseStatus) { + case 'unlicensed': + return 'This environment requires a valid license to access its features and functionality.'; + case 'error': + return 'There was an error validating the license for this environment. Please check the configuration.'; + default: + return 'This environment has license-related issues that need to be resolved.'; + } + }; + + return ( + <div style={{ + padding: "24px", + flex: 1, + minWidth: '1000px', + background: 'linear-gradient(135deg, #f5f7fa 0%, #c3cfe2 100%)' + }}> + <Row justify="center" style={{ minHeight: '80vh' }}> + <Col xs={24} sm={20} md={16} lg={14} xl={12}> + <div style={{ + display: 'flex', + flexDirection: 'column', + justifyContent: 'center', + alignItems: 'center', + minHeight: '70vh', + textAlign: 'center' + }}> + {/* Main Status Card */} + <Card + style={{ + width: '100%', + borderRadius: '16px', + boxShadow: '0 20px 40px rgba(0,0,0,0.1)', + border: 'none', + background: 'white', + overflow: 'hidden' + }} + bodyStyle={{ padding: '48px 32px' }} + > + {/* Status Icon */} + <div style={{ marginBottom: '24px' }}> + {getLicenseIcon()} + </div> + + {/* Environment Info */} + <div style={{ marginBottom: '32px' }}> + <Title level={2} style={{ marginBottom: '8px', color: '#262626' }}> + {getLicenseTitle()} + </Title> + <Text style={{ + fontSize: '16px', + color: '#595959', + display: 'block', + marginBottom: '16px', + lineHeight: '1.6' + }}> + {getLicenseDescription()} + </Text> + + {/* Environment Details */} + <div style={{ + background: '#fafafa', + padding: '16px', + borderRadius: '8px', + marginTop: '24px', + border: '1px solid #f0f0f0' + }}> + <Text strong style={{ color: '#8c8c8c', fontSize: '14px' }}>Environment:</Text> + <Text style={{ + display: 'block', + fontSize: '16px', + color: '#262626', + marginTop: '4px' + }}> + {environment.environmentName || 'Unnamed Environment'} + </Text> + <Text style={{ + fontSize: '13px', + color: '#8c8c8c', + fontFamily: 'monospace' + }}> + ID: {environment.environmentId} + </Text> + </div> + </div> + + {/* Action Buttons */} + <Space size="large" direction="vertical" style={{ width: '100%' }}> + <Button + type="primary" + size="large" + icon={<CustomerServiceOutlined />} + onClick={() => setIsContactModalVisible(true)} + style={{ + width: '100%', + height: '48px', + borderRadius: '8px', + fontSize: '16px', + fontWeight: 500, + background: 'linear-gradient(135deg, #1890ff 0%, #0050b3 100%)', + border: 'none', + boxShadow: '0 4px 12px rgba(24, 144, 255, 0.3)' + }} + > + Contact Lowcoder Team + </Button> + + <Button + size="large" + icon={<EditOutlined />} + onClick={onEditClick} + style={{ + width: '100%', + height: '48px', + borderRadius: '8px', + fontSize: '16px', + fontWeight: 500, + borderColor: '#d9d9d9', + color: '#595959' + }} + > + Edit Environment + </Button> + + <Button + size="large" + icon={<ArrowLeftOutlined />} + onClick={() => history.push("/setting/environments")} + style={{ + width: '100%', + height: '48px', + borderRadius: '8px', + fontSize: '16px', + fontWeight: 500, + borderColor: '#d9d9d9', + color: '#8c8c8c' + }} + > + Back to Environments + </Button> + </Space> + </Card> + + {/* Footer Help Text */} + <Text style={{ + marginTop: '24px', + color: '#8c8c8c', + fontSize: '14px', + maxWidth: '400px', + lineHeight: '1.5' + }}> + Need assistance? Contact our team for licensing support or edit the environment configuration to resolve this issue. + </Text> + </div> + </Col> + </Row> + + {/* Contact Lowcoder Modal */} + <ContactLowcoderModal + visible={isContactModalVisible} + onClose={() => setIsContactModalVisible(false)} + environment={environment} + /> + </div> + ); +}; + +export default UnlicensedEnvironmentView; \ No newline at end of file diff --git a/client/packages/lowcoder/src/pages/setting/environments/components/UserGroupsTab.tsx b/client/packages/lowcoder/src/pages/setting/environments/components/UserGroupsTab.tsx new file mode 100644 index 0000000000..e9f781b3c3 --- /dev/null +++ b/client/packages/lowcoder/src/pages/setting/environments/components/UserGroupsTab.tsx @@ -0,0 +1,348 @@ +import React, { useState, useEffect } from 'react'; +import { Card, Button, Alert, Table, Tag, Input, Space, Row, Col, Avatar, Tooltip } from 'antd'; +import { SyncOutlined, TeamOutlined, UserOutlined, UsergroupAddOutlined, SettingOutlined, CodeOutlined } from '@ant-design/icons'; +import Title from 'antd/lib/typography/Title'; +import { Environment } from '../types/environment.types'; +import { UserGroup, UserGroupsTabStats } from '../types/userGroup.types'; +import { getEnvironmentUserGroups } from '../services/environments.service'; +import { Spin, Empty } from 'antd'; + +const { Search } = Input; + +interface UserGroupsTabProps { + environment: Environment; +} + +const UserGroupsTab: React.FC<UserGroupsTabProps> = ({ environment }) => { + const [userGroups, setUserGroups] = useState<UserGroup[]>([]); + const [stats, setStats] = useState<UserGroupsTabStats>({ + total: 0, + allUsers: 0, + developers: 0, + custom: 0 + }); + const [loading, setLoading] = useState(false); + const [refreshing, setRefreshing] = useState(false); + const [error, setError] = useState<string | null>(null); + const [searchText, setSearchText] = useState(''); + + // Fetch user groups + const fetchUserGroups = async () => { + if (!environment) return; + + setLoading(true); + setError(null); + + try { + // Check for required environment properties + if (!environment.environmentApikey || !environment.environmentApiServiceUrl) { + setError('Missing required configuration: API key or API service URL'); + setLoading(false); + return; + } + + const response = await getEnvironmentUserGroups( + environment.environmentId, + environment.environmentApikey, + environment.environmentApiServiceUrl + ); + + // Extract the groups from the data array in the response + const groups = response|| []; + + setUserGroups(groups); + + // Calculate stats + const total = groups.length; + const allUsers = groups.filter((group: UserGroup) => group.allUsersGroup).length; + const developers = groups.filter((group: UserGroup) => group.devGroup).length; + const custom = total - (allUsers + developers); + + setStats({ + total, + allUsers, + developers, + custom + }); + } catch (err) { + setError(err instanceof Error ? err.message : "Failed to fetch user groups"); + } finally { + setLoading(false); + setRefreshing(false); + } + }; + + useEffect(() => { + fetchUserGroups(); + }, [environment]); + + // Handle refresh + const handleRefresh = () => { + setRefreshing(true); + fetchUserGroups(); + }; + + // Filter user groups based on search + const filteredUserGroups = searchText + ? userGroups.filter(group => + group.groupName.toLowerCase().includes(searchText.toLowerCase()) || + group.groupId.toLowerCase().includes(searchText.toLowerCase())) + : userGroups; + + // Helper function to generate colors from strings + const stringToColor = (str: string) => { + let hash = 0; + for (let i = 0; i < str.length; i++) { + hash = str.charCodeAt(i) + ((hash << 5) - hash); + } + + const hue = Math.abs(hash % 360); + return `hsl(${hue}, 70%, 50%)`; + }; + + // Stat card component + const StatCard = ({ title, value, icon }: { title: string; value: number; icon: React.ReactNode }) => ( + <Card + style={{ + height: '100%', + borderRadius: '4px', + border: '1px solid #f0f0f0' + }} + > + <div style={{ display: 'flex', alignItems: 'center', justifyContent: 'space-between' }}> + <div> + <div style={{ fontSize: '13px', color: '#8c8c8c', marginBottom: '8px' }}>{title}</div> + <div style={{ fontSize: '20px', fontWeight: 500 }}>{value}</div> + </div> + <div style={{ + fontSize: '24px', + opacity: 0.8, + color: '#722ed1', + padding: '8px', + backgroundColor: 'rgba(114, 46, 209, 0.1)', + borderRadius: '4px', + display: 'flex', + alignItems: 'center', + justifyContent: 'center' + }}> + {icon} + </div> + </div> + </Card> + ); + + // Table columns + const columns = [ + { + title: 'User Group', + key: 'group', + render: (group: UserGroup) => ( + <div style={{ display: 'flex', alignItems: 'center' }}> + <Avatar + style={{ + backgroundColor: stringToColor(group.groupName), + marginRight: 12 + }} + shape="square" + size="small" + > + {group.groupName.charAt(0).toUpperCase()} + </Avatar> + <div> + <div style={{ fontWeight: 500, fontSize: '14px' }}>{group.groupName}</div> + <div style={{ fontSize: 12, color: '#8c8c8c', marginTop: 2 }}> + {group.groupId} + </div> + </div> + </div> + ), + }, + { + title: 'Type', + key: 'type', + render: (_: any, group: UserGroup) => { + if (group.allUsersGroup) return ( + <Tag color="blue" style={{ borderRadius: '4px' }}> + <UserOutlined style={{ marginRight: 4 }} /> All Users + </Tag> + ); + if (group.devGroup) return ( + <Tag color="purple" style={{ borderRadius: '4px' }}> + <CodeOutlined style={{ marginRight: 4 }} /> Developers + </Tag> + ); + return ( + <Tag color="default" style={{ borderRadius: '4px' }}> + <SettingOutlined style={{ marginRight: 4 }} /> Custom + </Tag> + ); + }, + }, + { + title: 'Members', + key: 'members', + render: (_: any, group: UserGroup) => ( + <Tooltip title="Total number of members in this group"> + <Tag style={{ borderRadius: '4px', backgroundColor: '#f6f6f6', color: '#333' }}> + <UserOutlined style={{ marginRight: 4 }} /> {group.stats?.userCount || 0} + </Tag> + </Tooltip> + ), + }, + { + title: 'Admin Members', + key: 'adminMembers', + render: (_: any, group: UserGroup) => ( + <Tooltip title="Number of admin users in this group"> + <Tag style={{ borderRadius: '4px', backgroundColor: '#fff1f0', color: '#cf1322' }}> + <UserOutlined style={{ marginRight: 4 }} /> {group.stats?.adminUserCount || 0} + </Tag> + </Tooltip> + ), + }, + { + title: 'Created', + dataIndex: 'createTime', + key: 'createTime', + render: (createTime: number) => ( + <span style={{ color: '#8c8c8c', fontSize: '13px' }}> + {new Date(createTime).toLocaleDateString()} + </span> + ), + } + ]; + + return ( + <div style={{ padding: '16px' }}> + {/* Header */} + <div style={{ + display: "flex", + justifyContent: "space-between", + alignItems: "center", + marginBottom: "20px" + }}> + <div> + <Title level={4} style={{ margin: 0, marginBottom: '4px' }}> + <UsergroupAddOutlined style={{ marginRight: 8 }} /> User Groups + </Title> + <p style={{ marginBottom: 0, color: '#8c8c8c', fontSize: '14px' }}> + Manage user groups in this environment + </p> + </div> + <Button + icon={<SyncOutlined spin={refreshing} />} + onClick={handleRefresh} + loading={loading} + > + Refresh + </Button> + </div> + + {/* Error display */} + {error && ( + <Alert + message="Error loading user groups" + description={error} + type="error" + showIcon + style={{ marginBottom: "16px" }} + /> + )} + + {/* Configuration warnings */} + {(!environment.environmentApikey || !environment.environmentApiServiceUrl) && !error && ( + <Alert + message="Configuration Issue" + description="Missing required configuration: API key or API service URL" + type="warning" + showIcon + style={{ marginBottom: "16px" }} + /> + )} + + {/* Stats display */} + <Row gutter={[16, 16]} style={{ marginBottom: '20px' }}> + <Col xs={24} sm={12} md={6}> + <StatCard + title="Total Groups" + value={stats.total} + icon={<TeamOutlined />} + /> + </Col> + <Col xs={24} sm={12} md={6}> + <StatCard + title="All Users Groups" + value={stats.allUsers} + icon={<UserOutlined />} + /> + </Col> + <Col xs={24} sm={12} md={6}> + <StatCard + title="Developer Groups" + value={stats.developers} + icon={<CodeOutlined />} + /> + </Col> + <Col xs={24} sm={12} md={6}> + <StatCard + title="Custom Groups" + value={stats.custom} + icon={<SettingOutlined />} + /> + </Col> + </Row> + + {/* Content */} + <Card + style={{ + borderRadius: '4px', + border: '1px solid #f0f0f0' + }} + > + {loading ? ( + <div style={{ display: 'flex', justifyContent: 'center', padding: '40px' }}> + <Spin size="large" /> + </div> + ) : userGroups.length === 0 ? ( + <Empty + description={error || "No user groups found in this environment"} + image={Empty.PRESENTED_IMAGE_SIMPLE} + /> + ) : ( + <> + {/* Search Bar */} + <div style={{ marginBottom: 16 }}> + <Search + placeholder="Search user groups by name or ID" + allowClear + onSearch={value => setSearchText(value)} + onChange={e => setSearchText(e.target.value)} + style={{ width: 300 }} + /> + {searchText && filteredUserGroups.length !== userGroups.length && ( + <div style={{ marginTop: 8, color: '#8c8c8c', fontSize: '13px' }}> + Showing {filteredUserGroups.length} of {userGroups.length} user groups + </div> + )} + </div> + + <Table + columns={columns} + dataSource={filteredUserGroups} + rowKey="groupId" + pagination={{ + pageSize: 10, + showTotal: (total, range) => `${range[0]}-${range[1]} of ${total} user groups`, + size: 'small' + }} + size="middle" + rowClassName={() => 'group-row'} + /> + </> + )} + </Card> + </div> + ); +}; + +export default UserGroupsTab; \ No newline at end of file diff --git a/client/packages/lowcoder/src/pages/setting/environments/components/WorkspaceHeader.tsx b/client/packages/lowcoder/src/pages/setting/environments/components/WorkspaceHeader.tsx new file mode 100644 index 0000000000..f4c00c22e5 --- /dev/null +++ b/client/packages/lowcoder/src/pages/setting/environments/components/WorkspaceHeader.tsx @@ -0,0 +1,262 @@ +import React, { useState } from "react"; +import { + Typography, + Switch, + Button, + Tag, + Tooltip, + Row, + Col, + Statistic, + Avatar, + Space, + Divider, + Card, + Dropdown, + Menu +} from "antd"; +import { + CloudUploadOutlined, + SettingOutlined, + TeamOutlined, + AppstoreOutlined, + DatabaseOutlined, + CodeOutlined, + CloudServerOutlined, + ClockCircleOutlined, + MoreOutlined, + StarOutlined, + StarFilled +} from "@ant-design/icons"; +import { Environment } from "../types/environment.types"; +import { Workspace } from "../types/workspace.types"; +import styled from "styled-components"; + +const { Title, Text } = Typography; + +// Styled components for custom design +const HeaderWrapper = styled.div` + border-radius: 12px; + overflow: hidden; + box-shadow: 0 4px 20px rgba(0, 0, 0, 0.08); + position: relative; + margin-bottom: 24px; +`; + +const GradientBanner = styled.div<{ avatarColor: string }>` + background: linear-gradient(135deg, ${props => props.avatarColor} 0%, rgba(24, 144, 255, 0.8) 100%); + height: 140px; + position: relative; + overflow: hidden; + transition: background 1s ease-in-out; + + &::before { + content: ''; + position: absolute; + top: -50%; + left: -50%; + width: 200%; + height: 200%; + background: repeating-linear-gradient( + 45deg, + rgba(255,255,255,0.1), + rgba(255,255,255,0.1) 1px, + transparent 1px, + transparent 10px + ); + animation: moveBackground 30s linear infinite; + } + + @keyframes moveBackground { + 0% { + transform: translate(0, 0); + } + 100% { + transform: translate(100px, 100px); + } + } + + &:hover { + background: linear-gradient(135deg, rgba(24, 144, 255, 0.8) 0%, ${props => props.avatarColor} 100%); + transition: background 1s ease-in-out; + } +`; + +const ContentContainer = styled.div` + background-color: white; + padding: 24px; + position: relative; + transition: transform 0.3s ease-in-out; + + &:hover { + transform: translateY(-2px); + } +`; + +const AvatarContainer = styled.div` + position: absolute; + top: -50px; + left: 24px; + background: white; + padding: 4px; + border-radius: 8px; + border: 1px solid #f0f0f0; +`; + +const StatusBadge = styled(Tag)<{ $active?: boolean }>` + position: absolute; + top: 12px; + right: 12px; + font-weight: 500; + font-size: 12px; + padding: 4px 12px; + border-radius: 4px; + border: none; + background: ${props => props.$active ? '#52c41a' : '#f5f5f5'}; + color: ${props => props.$active ? 'white' : '#8c8c8c'}; +`; + +const StatCard = styled(Card)` + border-radius: 4px; + border: 1px solid #f0f0f0; + transition: all 0.3s; + + &:hover { + transform: translateY(-2px); + border-color: #d9d9d9; + } +`; + +const ActionButton = styled(Button)` + border-radius: 4px; + display: flex; + align-items: center; + justify-content: center; + height: 32px; +`; + +const FavoriteButton = styled(Button)` + position: absolute; + top: 12px; + right: 80px; + border: none; + border-radius: 4px; + background: rgba(255, 255, 255, 0.9); + color: #722ed1; +`; + +interface WorkspaceHeaderProps { + workspace: Workspace; + environment: Environment; + isToggling: boolean; + onToggleManagedStatus: (checked: boolean) => Promise<void>; + onDeploy: () => void; +} + +const WorkspaceHeader: React.FC<WorkspaceHeaderProps> = ({ + workspace, + environment, + isToggling, + onToggleManagedStatus, + onDeploy +}) => { + + // Generate a consistent color for the workspace avatar + const getAvatarColor = (name: string) => { + let hash = 0; + for (let i = 0; i < name.length; i++) { + hash = name.charCodeAt(i) + ((hash << 5) - hash); + } + const hue = Math.abs(hash % 360); + return `hsl(${hue}, 45%, 55%)`; + }; + + // Format date for last updated + const formatDate = (date: number | undefined) => { + if (!date) return "N/A"; + return new Date(date).toLocaleDateString("en-US", { + month: "short", + day: "numeric", + year: "numeric" + }); + }; + + + + + + return ( + <HeaderWrapper> + <GradientBanner avatarColor={getAvatarColor(workspace.name)}> + <StatusBadge $active={workspace.managed}> + {workspace.managed ? "Managed" : "Unmanaged"} + </StatusBadge> + + </GradientBanner> + + <ContentContainer> + <AvatarContainer> + <Avatar + size={80} + style={{ backgroundColor: getAvatarColor(workspace.name) }} + > + {workspace.name.charAt(0).toUpperCase()} + </Avatar> + </AvatarContainer> + + <Row> + <Col xs={24} md={14} style={{ paddingLeft: '90px', marginBottom: '20px' }}> + <Title level={3} style={{ margin: "0 0 8px 0" }}> + {workspace.name} + </Title> + <Space size={16} wrap> + <Text type="secondary">ID: {workspace.id}</Text> + <Text type="secondary"> + <ClockCircleOutlined style={{ marginRight: 4 }} /> + created on {formatDate(workspace.creationDate)} + </Text> + <Tag color="blue" style={{ borderRadius: '4px' }}> + <CloudServerOutlined /> {environment.environmentName} + </Tag> + </Space> + </Col> + + <Col xs={24} md={10}> + <div style={{ display: "flex", justifyContent: "flex-end", gap: "12px", flexWrap: "wrap" }}> + <div style={{ display: "flex", alignItems: "center" }}> + <Text style={{ marginRight: "8px" }}>Managed:</Text> + <Switch + checked={!!workspace.managed} + onChange={onToggleManagedStatus} + loading={isToggling} + style={{ marginRight: 16 }} + /> + </div> + <Tooltip + title={ + !workspace.managed + ? "Workspace must be managed before it can be deployed" + : "Deploy this workspace to another environment" + } + > + <ActionButton + type="primary" + icon={<CloudUploadOutlined />} + onClick={onDeploy} + disabled={!workspace.managed} + > + Deploy + </ActionButton> + </Tooltip> + </div> + </Col> + </Row> + + + + </ContentContainer> + </HeaderWrapper> + ); +}; + +export default WorkspaceHeader; \ No newline at end of file diff --git a/client/packages/lowcoder/src/pages/setting/environments/components/WorkspacesTab.tsx b/client/packages/lowcoder/src/pages/setting/environments/components/WorkspacesTab.tsx new file mode 100644 index 0000000000..26732c76af --- /dev/null +++ b/client/packages/lowcoder/src/pages/setting/environments/components/WorkspacesTab.tsx @@ -0,0 +1,350 @@ +import React, { useState, useEffect } from 'react'; +import { Card, Button, Divider, Alert, Table, Tag, Input, Space, Tooltip, Row, Col, Avatar } from 'antd'; +import { SyncOutlined, AuditOutlined, TeamOutlined, CheckCircleFilled, CloudServerOutlined, DisconnectOutlined, FilterOutlined } from '@ant-design/icons'; +import Title from 'antd/lib/typography/Title'; +import { Environment } from '../types/environment.types'; +import { Workspace } from '../types/workspace.types'; +import { getMergedEnvironmentWorkspaces } from '../services/workspace.service'; +import { Spin, Empty } from 'antd'; + +import history from '@lowcoder-ee/util/history'; + +const { Search } = Input; + +interface WorkspacesTabProps { + environment: Environment; +} + +const WorkspacesTab: React.FC<WorkspacesTabProps> = ({ environment }) => { + const [workspaces, setWorkspaces] = useState<Workspace[]>([]); + const [stats, setStats] = useState({ + total: 0, + managed: 0, + unmanaged: 0 + }); + const [loading, setLoading] = useState(false); + const [refreshing, setRefreshing] = useState(false); + const [error, setError] = useState<string | null>(null); + const [searchText, setSearchText] = useState(''); + const [showManagedOnly, setShowManagedOnly] = useState(false); + + // Fetch workspaces + const fetchWorkspaces = async () => { + if (!environment) return; + + setLoading(true); + setError(null); + + try { + // Check for required environment properties + if (!environment.environmentApikey || !environment.environmentApiServiceUrl) { + setError('Missing required configuration: API key or API service URL'); + setLoading(false); + return; + } + + const result = await getMergedEnvironmentWorkspaces( + environment.environmentId, + environment.environmentApikey, + environment.environmentApiServiceUrl + ); + + setWorkspaces(result.workspaces); + setStats(result.stats); + } catch (err) { + setError(err instanceof Error ? err.message : "Failed to fetch workspaces"); + } finally { + setLoading(false); + setRefreshing(false); + } + }; + + useEffect(() => { + fetchWorkspaces(); + }, [environment]); + + // Handle refresh + const handleRefresh = () => { + setRefreshing(true); + fetchWorkspaces(); + }; + + // Handle row click for navigation + const handleRowClick = (workspace: Workspace) => { + history.push(`/setting/environments/${environment.environmentId}/workspaces/${workspace.id}`); + }; + + // Filter workspaces based on search and managed status + const filteredWorkspaces = searchText + ? workspaces.filter(workspace => + workspace.name.toLowerCase().includes(searchText.toLowerCase()) || + workspace.id.toLowerCase().includes(searchText.toLowerCase())) + : workspaces; + + const displayedWorkspaces = showManagedOnly + ? filteredWorkspaces.filter(workspace => workspace.managed) + : filteredWorkspaces; + + // Helper function to generate colors from strings + const stringToColor = (str: string) => { + let hash = 0; + for (let i = 0; i < str.length; i++) { + hash = str.charCodeAt(i) + ((hash << 5) - hash); + } + + const hue = Math.abs(hash % 360); + return `hsl(${hue}, 70%, 50%)`; + }; + + // Stat card component + const StatCard = ({ title, value, icon }: { title: string; value: number; icon: React.ReactNode }) => ( + <Card + style={{ + height: '100%', + borderRadius: '4px', + border: '1px solid #f0f0f0' + }} + > + <div style={{ display: 'flex', alignItems: 'center', justifyContent: 'space-between' }}> + <div> + <div style={{ fontSize: '13px', color: '#8c8c8c', marginBottom: '8px' }}>{title}</div> + <div style={{ fontSize: '20px', fontWeight: 500 }}>{value}</div> + </div> + <div style={{ + fontSize: '24px', + opacity: 0.8, + color: '#52c41a', + padding: '8px', + backgroundColor: 'rgba(82, 196, 26, 0.1)', + borderRadius: '4px', + display: 'flex', + alignItems: 'center', + justifyContent: 'center' + }}> + {icon} + </div> + </div> + </Card> + ); + + // Table columns + const columns = [ + { + title: 'Workspace', + key: 'workspace', + render: (workspace: Workspace) => ( + <div style={{ display: 'flex', alignItems: 'center' }}> + <Avatar + style={{ + backgroundColor: stringToColor(workspace.name), + marginRight: 12 + }} + shape="square" + size="small" + > + {workspace.name.charAt(0).toUpperCase()} + </Avatar> + <div> + <div style={{ fontWeight: 500, fontSize: '14px' }}>{workspace.name}</div> + <div style={{ fontSize: 12, color: '#8c8c8c', marginTop: 2 }}> + {workspace.id} + </div> + </div> + </div> + ), + }, + { + title: 'Role', + dataIndex: 'role', + key: 'role', + }, + { + title: 'Status', + dataIndex: 'status', + key: 'status', + render: (status: string) => ( + <Tag color={status === 'ACTIVE' ? 'green' : 'red'} style={{ borderRadius: '4px' }}> + {status === 'ACTIVE' ? <CheckCircleFilled style={{ marginRight: 4 }} /> : null} + {status} + </Tag> + ), + }, + { + title: 'Managed', + key: 'managed', + render: (_: any, workspace: Workspace) => ( + <Tag + color={workspace.managed ? 'processing' : 'default'} + style={{ borderRadius: '4px' }} + > + {workspace.managed + ? <CloudServerOutlined style={{ marginRight: 4 }} /> + : <DisconnectOutlined style={{ marginRight: 4 }} /> + } + {workspace.managed ? 'Managed' : 'Unmanaged'} + </Tag> + ), + }, + { + title: 'Actions', + key: 'actions', + render: (_: any, workspace: Workspace) => ( + <Space onClick={(e) => e.stopPropagation()}> + <Tooltip title="View Audit Logs"> + <Button + icon={<AuditOutlined />} + size="small" + onClick={(e) => { + e.stopPropagation(); + const auditUrl = `/setting/audit?environmentId=${environment.environmentId}&orgId=${workspace.id}&pageSize=100&pageNum=1`; + window.open(auditUrl, '_blank'); + }} + > + Audit + </Button> + </Tooltip> + </Space> + ), + }, + ]; + + return ( + <div style={{ padding: '16px' }}> + {/* Header */} + <div style={{ + display: "flex", + justifyContent: "space-between", + alignItems: "center", + marginBottom: "20px" + }}> + <div> + <Title level={4} style={{ margin: 0, marginBottom: '4px' }}> + <TeamOutlined style={{ marginRight: 8 }} /> Workspaces + </Title> + <p style={{ marginBottom: 0, color: '#8c8c8c', fontSize: '14px' }}> + Manage workspaces in this environment + </p> + </div> + <Button + icon={<SyncOutlined spin={refreshing} />} + onClick={handleRefresh} + loading={loading} + > + Refresh + </Button> + </div> + + {/* Error display */} + {error && ( + <Alert + message="Error loading workspaces" + description={error} + type="error" + showIcon + style={{ marginBottom: "16px" }} + /> + )} + + {/* Configuration warnings */} + {(!environment.environmentApikey || !environment.environmentApiServiceUrl) && !error && ( + <Alert + message="Configuration Issue" + description="Missing required configuration: API key or API service URL" + type="warning" + showIcon + style={{ marginBottom: "16px" }} + /> + )} + + {/* Stats display */} + <Row gutter={[16, 16]} style={{ marginBottom: '20px' }}> + <Col xs={24} sm={8}> + <StatCard + title="Total Workspaces" + value={stats.total} + icon={<TeamOutlined />} + /> + </Col> + <Col xs={24} sm={8}> + <StatCard + title="Managed Workspaces" + value={stats.managed} + icon={<CloudServerOutlined />} + /> + </Col> + <Col xs={24} sm={8}> + <StatCard + title="Unmanaged Workspaces" + value={stats.unmanaged} + icon={<DisconnectOutlined />} + /> + </Col> + </Row> + + {/* Content */} + <Card + style={{ + borderRadius: '4px', + border: '1px solid #f0f0f0' + }} + > + {loading ? ( + <div style={{ display: 'flex', justifyContent: 'center', padding: '40px' }}> + <Spin size="large" /> + </div> + ) : workspaces.length === 0 ? ( + <Empty + description={error || "No workspaces found in this environment"} + image={Empty.PRESENTED_IMAGE_SIMPLE} + /> + ) : ( + <> + {/* Search and Filter Bar */} + <div style={{ display: 'flex', justifyContent: 'space-between', marginBottom: 16 }}> + <Search + placeholder="Search workspaces by name or ID" + allowClear + onSearch={value => setSearchText(value)} + onChange={e => setSearchText(e.target.value)} + style={{ width: 300 }} + /> + <Button + onClick={() => setShowManagedOnly(!showManagedOnly)} + type={showManagedOnly ? "primary" : "default"} + icon={<FilterOutlined />} + style={{ marginLeft: '8px' }} + > + {showManagedOnly ? 'Show All' : 'Managed Only'} + </Button> + </div> + + {searchText && displayedWorkspaces.length !== workspaces.length && ( + <div style={{ marginBottom: 16, color: '#8c8c8c', fontSize: '13px' }}> + Showing {displayedWorkspaces.length} of {workspaces.length} workspaces + </div> + )} + + <Table + columns={columns} + dataSource={displayedWorkspaces} + rowKey="id" + pagination={{ + pageSize: 10, + showTotal: (total, range) => `${range[0]}-${range[1]} of ${total} workspaces`, + size: 'small' + }} + size="middle" + onRow={(record) => ({ + onClick: () => handleRowClick(record), + style: { cursor: 'pointer' } + })} + rowClassName={() => 'workspace-row'} + /> + </> + )} + </Card> + </div> + ); +}; + +export default WorkspacesTab; \ No newline at end of file diff --git a/client/packages/lowcoder/src/pages/setting/environments/components/credentialConfirmations.tsx b/client/packages/lowcoder/src/pages/setting/environments/components/credentialConfirmations.tsx new file mode 100644 index 0000000000..dfaee1cc55 --- /dev/null +++ b/client/packages/lowcoder/src/pages/setting/environments/components/credentialConfirmations.tsx @@ -0,0 +1,111 @@ + +import { Modal, Alert } from 'antd'; +import { ExclamationCircleOutlined, WarningOutlined } from '@ant-design/icons'; + +interface ConfirmHandlers { + onOk: () => void; + onCancel: () => void; +} + +/** + * First-step confirmation modal (orange / warning). + */ +export function showFirstCredentialOverwriteConfirm({ onOk, onCancel }: ConfirmHandlers) { + Modal.confirm({ + title: ( + <div style={{ display: 'flex', alignItems: 'center', color: '#ff7a00' }}> + <WarningOutlined style={{ marginRight: 8, fontSize: 18 }} /> + <span style={{ fontSize: 16, fontWeight: 600 }}>Overwrite Credentials Warning</span> + </div> + ), + icon: null, + content: ( + <div style={{ padding: '16px 0' }}> + <Alert + message="This action will overwrite existing credentials in the target environment." + description={ + <div style={{ marginTop: 8 }}> + <p style={{ margin: 0, fontWeight: 500 }}> + This is a serious operation that may affect other applications and users. + </p> + <p style={{ margin: '8px 0 0 0', color: '#8c8c8c' }}> + Are you sure you want to proceed? + </p> + </div> + } + type="warning" + showIcon + style={{ marginBottom: 0, border: '1px solid #fff2e8', borderRadius: 8 }} + /> + </div> + ), + okText: 'Continue', + cancelText: 'Cancel', + okButtonProps: { + style: { backgroundColor: '#ff7a00', borderColor: '#ff7a00', fontWeight: 500 } + }, + cancelButtonProps: { + style: { fontWeight: 500 } + }, + width: 520, + centered: false, + onOk, + onCancel + }); +} + +/** + * Second-step (final) confirmation modal (red / danger). + */ +export function showSecondCredentialOverwriteConfirm({ onOk, onCancel }: ConfirmHandlers) { + Modal.confirm({ + title: ( + <div style={{ display: 'flex', alignItems: 'center', color: '#ff4d4f' }}> + <ExclamationCircleOutlined style={{ marginRight: 8, fontSize: 18 }} /> + <span style={{ fontSize: 16, fontWeight: 600 }}>Final Confirmation Required</span> + </div> + ), + icon: null, + content: ( + <div style={{ padding: '16px 0' }}> + <Alert + message="Final Warning: Credential Overwrite" + description={ + <div style={{ marginTop: 8 }}> + <p style={{ margin: 0, fontWeight: 500 }}> + You are about to overwrite credentials in the target environment. This action cannot be undone and may break existing integrations. + </p> + <p style={{ margin: '8px 0 0 0', color: '#8c8c8c' }}> + Please confirm one more time. + </p> + </div> + } + type="error" + showIcon + style={{ marginBottom: 16, border: '1px solid #ffebee', borderRadius: 8 }} + /> + <div + style={{ + padding: '12px 16px', + backgroundColor: '#fff2f0', + borderRadius: 8, + border: '1px solid #ffccc7' + }} + > + <p style={{ margin: 0, fontWeight: 600, color: '#cf1322', fontSize: 14 }}> + Are you absolutely certain you want to overwrite the credentials? + </p> + </div> + </div> + ), + okText: 'Yes, Overwrite Credentials', + okType: 'danger', + cancelText: 'Cancel', + okButtonProps: { style: { fontWeight: 500 } }, + cancelButtonProps: { style: { fontWeight: 500 } }, + width: 520, + centered: false, + onOk, + onCancel + }); +} \ No newline at end of file diff --git a/client/packages/lowcoder/src/pages/setting/environments/config/apps.config.tsx b/client/packages/lowcoder/src/pages/setting/environments/config/apps.config.tsx new file mode 100644 index 0000000000..197b2a8264 --- /dev/null +++ b/client/packages/lowcoder/src/pages/setting/environments/config/apps.config.tsx @@ -0,0 +1,65 @@ +// config/apps.config.tsx +import { DeployableItemConfig } from '../types/deployable-item.types'; +import { Environment } from '../types/environment.types'; +import { deployApp } from '../services/apps.service'; + +import { App } from '../types/app.types'; + + + +// Define AppStats interface if not already defined + + +export const appsConfig: DeployableItemConfig = { + + + deploy: { + singularLabel: 'App', + fields: [ + { + name: 'updateDependenciesIfNeeded', + label: 'Update Dependencies If Needed', + type: 'checkbox', + defaultValue: false + }, + { + name: 'publishOnTarget', + label: 'Publish On Target', + type: 'checkbox', + defaultValue: false + }, + { + name: 'publicToAll', + label: 'Public To All', + type: 'checkbox', + defaultValue: false + }, + { + name: 'publicToMarketplace', + label: 'Public To Marketplace', + type: 'checkbox', + defaultValue: false + }, + { + name: 'deployCredential', + label: 'Overwrite Credentials', + type: 'checkbox', + defaultValue: false + } + ], + prepareParams: (item: App, values: any, sourceEnv: Environment, targetEnv: Environment) => { + return { + envId: sourceEnv.environmentId, + targetEnvId: targetEnv.environmentId, + applicationId: item.applicationId, + updateDependenciesIfNeeded: values.updateDependenciesIfNeeded, + publishOnTarget: values.publishOnTarget, + publicToAll: values.publicToAll, + publicToMarketplace: values.publicToMarketplace, + applicationGid: item.applicationGid, + deployCredential: values.deployCredential ?? false + }; + }, + execute: (params: any) => deployApp(params) + } +}; \ No newline at end of file diff --git a/client/packages/lowcoder/src/pages/setting/environments/config/data-sources.config.tsx b/client/packages/lowcoder/src/pages/setting/environments/config/data-sources.config.tsx new file mode 100644 index 0000000000..5916218627 --- /dev/null +++ b/client/packages/lowcoder/src/pages/setting/environments/config/data-sources.config.tsx @@ -0,0 +1,39 @@ +// config/data-sources.config.tsx +import React from 'react'; +import { DeployableItemConfig } from '../types/deployable-item.types'; +import { DataSource} from '../types/datasource.types'; +import { Environment } from '../types/environment.types'; +import { deployDataSource, DataSourceStats } from '../services/datasources.service'; + + + +export const dataSourcesConfig: DeployableItemConfig = { + deploy: { + singularLabel: 'Data Source', + fields: [ + { + name: 'updateDependenciesIfNeeded', + label: 'Update Dependencies If Needed', + type: 'checkbox', + defaultValue: false + }, + { + name: 'deployCredential', + label: 'Overwrite Credentials', + type: 'checkbox', + defaultValue: false + } + ], + prepareParams: (item: DataSource, values: any, sourceEnv: Environment, targetEnv: Environment) => { + return { + envId: sourceEnv.environmentId, + targetEnvId: targetEnv.environmentId, + datasourceId: item.id, + updateDependenciesIfNeeded: values.updateDependenciesIfNeeded, + datasourceGid: item.gid, + deployCredential: values.deployCredential ?? false + }; + }, + execute: (params: any) => deployDataSource(params) + } +}; \ No newline at end of file diff --git a/client/packages/lowcoder/src/pages/setting/environments/config/query.config.tsx b/client/packages/lowcoder/src/pages/setting/environments/config/query.config.tsx new file mode 100644 index 0000000000..35189c8c93 --- /dev/null +++ b/client/packages/lowcoder/src/pages/setting/environments/config/query.config.tsx @@ -0,0 +1,33 @@ +// config/query.config.tsx +import { DeployableItemConfig } from '../types/deployable-item.types'; +import { Query } from '../types/query.types'; +import { deployQuery } from '../services/query.service'; +import { Environment } from '../types/environment.types'; + + + + +export const queryConfig: DeployableItemConfig = { + + deploy: { + singularLabel: 'Query', + fields: [ + { + name: 'updateDependenciesIfNeeded', + label: 'Update Dependencies If Needed', + type: 'checkbox', + defaultValue: false + } + ], + prepareParams: (item: Query, values: any, sourceEnv: Environment, targetEnv: Environment) => { + return { + envId: sourceEnv.environmentId, + targetEnvId: targetEnv.environmentId, + queryId: item.id, + updateDependenciesIfNeeded: values.updateDependenciesIfNeeded, + queryGid: item.gid, + }; + }, + execute: (params: any) => deployQuery(params) + } +}; \ No newline at end of file diff --git a/client/packages/lowcoder/src/pages/setting/environments/config/workspace.config.tsx b/client/packages/lowcoder/src/pages/setting/environments/config/workspace.config.tsx new file mode 100644 index 0000000000..6689931f9b --- /dev/null +++ b/client/packages/lowcoder/src/pages/setting/environments/config/workspace.config.tsx @@ -0,0 +1,38 @@ +// config/workspace.config.tsx + +import { DeployableItemConfig } from '../types/deployable-item.types'; +import { Environment } from '../types/environment.types'; +import { deployWorkspace } from '../services/workspace.service'; +import { Workspace } from '../types/workspace.types'; + + + +export const workspaceConfig: DeployableItemConfig = { + + // Deploy configuration + deploy: { + singularLabel: 'Workspace', + fields: [ + { + name: 'deployCredential', + label: 'Overwrite Credentials', + type: 'checkbox', + defaultValue: false + } + ], + prepareParams: (item: Workspace, values: any, sourceEnv: Environment, targetEnv: Environment) => { + if (!item.gid) { + console.error('Missing workspace.gid when deploying workspace:', item); + } + console.log('item.gid', item.gid); + + return { + envId: sourceEnv.environmentId, + targetEnvId: targetEnv.environmentId, + workspaceId: item.gid, + deployCredential: values.deployCredential ?? false + }; + }, + execute: (params: any) => deployWorkspace(params) + } +}; \ No newline at end of file diff --git a/client/packages/lowcoder/src/pages/setting/environments/context/DeployModalContext.tsx b/client/packages/lowcoder/src/pages/setting/environments/context/DeployModalContext.tsx new file mode 100644 index 0000000000..904ab62c67 --- /dev/null +++ b/client/packages/lowcoder/src/pages/setting/environments/context/DeployModalContext.tsx @@ -0,0 +1,75 @@ +// context/DeployModalContext.tsx +import React, { createContext, useContext, useState } from 'react'; +import { DeployableItemConfig } from '../types/deployable-item.types'; +import { Environment } from '../types/environment.types'; +import DeployItemModal from '../components/DeployItemModal'; + +interface DeployModalContextType { + openDeployModal: ( + item: any, + config: DeployableItemConfig, + sourceEnvironment: Environment, + onSuccess?: () => void + ) => void; +} + +const DeployModalContext = createContext<DeployModalContextType | undefined>(undefined); + +export const DeployModalProvider: React.FC<{children: React.ReactNode}> = ({ children }) => { + const [modalState, setModalState] = useState<{ + visible: boolean; + item: any | null; + config: DeployableItemConfig | null; + sourceEnvironment: Environment | null; + onSuccess?: () => void; + }>({ + visible: false, + item: null, + config: null, + sourceEnvironment: null + }); + + const openDeployModal = ( + item: any, + config: DeployableItemConfig, + sourceEnvironment: Environment, + onSuccess?: () => void + ) => { + setModalState({ + visible: true, + item, + config, + sourceEnvironment, + onSuccess + }); + }; + + const closeDeployModal = () => { + setModalState(prev => ({ ...prev, visible: false })); + }; + + return ( + <DeployModalContext.Provider value={{ openDeployModal }}> + {children} + + {modalState.config && modalState.sourceEnvironment && ( + <DeployItemModal + visible={modalState.visible} + item={modalState.item} + sourceEnvironment={modalState.sourceEnvironment} + config={modalState.config} + onClose={closeDeployModal} + onSuccess={modalState.onSuccess} + /> + )} + </DeployModalContext.Provider> + ); +}; + +export const useDeployModal = () => { + const context = useContext(DeployModalContext); + if (context === undefined) { + throw new Error('useDeployModal must be used within a DeployModalProvider'); + } + return context; +}; \ No newline at end of file diff --git a/client/packages/lowcoder/src/pages/setting/environments/context/EnvironmentContext.tsx b/client/packages/lowcoder/src/pages/setting/environments/context/EnvironmentContext.tsx new file mode 100644 index 0000000000..7594aa4044 --- /dev/null +++ b/client/packages/lowcoder/src/pages/setting/environments/context/EnvironmentContext.tsx @@ -0,0 +1,91 @@ +// client/packages/lowcoder/src/pages/setting/environments/context/EnvironmentContext.tsx +import React, { + createContext, + useContext, + useEffect, + useState, + useCallback, + ReactNode, +} from "react"; +import { messageInstance } from "lowcoder-design/src/components/GlobalInstances"; +import { getEnvironmentsWithLicenseStatus } from "../services/environments.service"; +import { Environment } from "../types/environment.types"; + +interface EnvironmentContextState { + // Environments list data + environments: Environment[]; + + // Loading state + isLoading: boolean; + + // Error state + error: string | null; + + // Functions + refreshEnvironments: () => Promise<void>; +} + +const EnvironmentContext = createContext<EnvironmentContextState | undefined>(undefined); + +export const useEnvironmentContext = () => { + const context = useContext(EnvironmentContext); + if (!context) { + throw new Error( + "useEnvironmentContext must be used within an EnvironmentProvider" + ); + } + return context; +}; + +interface ProviderProps { + children: ReactNode; +} + +export const EnvironmentProvider: React.FC<ProviderProps> = ({ + children, +}) => { + // State for environments list + const [environments, setEnvironments] = useState<Environment[]>([]); + + // Loading state + const [isLoading, setIsLoading] = useState<boolean>(true); + + // Error state + const [error, setError] = useState<string | null>(null); + + // Function to fetch all environments + const fetchEnvironments = useCallback(async () => { + setIsLoading(true); + setError(null); + + try { + const data = await getEnvironmentsWithLicenseStatus(); + setEnvironments(data); + } catch (error) { + const errorMessage = error instanceof Error ? error.message : 'Failed to fetch environments'; + messageInstance.error(errorMessage); + console.error('Error fetching environments:', error); + } finally { + setIsLoading(false); + } + }, []); + + // Initial data loading + useEffect(() => { + fetchEnvironments(); + }, [fetchEnvironments]); + + // Create the context value + const value: EnvironmentContextState = { + environments, + isLoading, + error, + refreshEnvironments: fetchEnvironments, + }; + + return ( + <EnvironmentContext.Provider value={value}> + {children} + </EnvironmentContext.Provider> + ); +}; \ No newline at end of file diff --git a/client/packages/lowcoder/src/pages/setting/environments/context/SingleEnvironmentContext.tsx b/client/packages/lowcoder/src/pages/setting/environments/context/SingleEnvironmentContext.tsx new file mode 100644 index 0000000000..4654c121c0 --- /dev/null +++ b/client/packages/lowcoder/src/pages/setting/environments/context/SingleEnvironmentContext.tsx @@ -0,0 +1,137 @@ +// client/packages/lowcoder/src/pages/setting/environments/context/SingleEnvironmentContext.tsx +import React, { + createContext, + useContext, + useEffect, + useState, + useCallback, + ReactNode, + } from "react"; + import { messageInstance } from "lowcoder-design/src/components/GlobalInstances"; + import { useParams } from "react-router-dom"; + import { useDispatch } from "react-redux"; + import { fetchEnvironments } from "redux/reduxActions/enterpriseActions"; + import { getEnvironmentById, updateEnvironment } from "../services/environments.service"; + import { Environment } from "../types/environment.types"; + + interface SingleEnvironmentContextState { + // Environment data + environment: Environment | null; + + // Loading states + isLoading: boolean; + + // Error state + error: string | null; + + // Functions + refreshEnvironment: () => Promise<void>; + updateEnvironmentData: (data: Partial<Environment>) => Promise<Environment>; + } + + const SingleEnvironmentContext = createContext<SingleEnvironmentContextState | undefined>(undefined); + + export const useSingleEnvironmentContext = () => { + const context = useContext(SingleEnvironmentContext); + if (!context) { + throw new Error( + "useSingleEnvironmentContext must be used within a SingleEnvironmentProvider" + ); + } + return context; + }; + + interface ProviderProps { + children: ReactNode; + environmentId?: string; // Optional prop-based ID + } + + export const SingleEnvironmentProvider: React.FC<ProviderProps> = ({ + children, + environmentId: propEnvironmentId, + }) => { + // Get environmentId from URL params if not provided as prop + const { envId } = useParams<{ envId: string }>(); + const environmentId = propEnvironmentId || envId; + + // Use Redux dispatch to refresh environments instead of context + const dispatch = useDispatch(); + + // State for environment data + const [environment, setEnvironment] = useState<Environment | null>(null); + + // Loading states + const [isLoading, setIsLoading] = useState<boolean>(true); + + // Error state + const [error, setError] = useState<string | null>(null); + + // Function to fetch environment by ID + const fetchEnvironment = useCallback(async () => { + // Only fetch if we have an environment ID + if (!environmentId) { + setEnvironment(null); + setIsLoading(false); + return; + } + + setIsLoading(true); + setError(null); + + try { + const data = await getEnvironmentById(environmentId); + setEnvironment(data); + } catch (err) { + const errorMessage = err instanceof Error ? err.message : "Environment not found or failed to load"; + setError(errorMessage); + } finally { + setIsLoading(false); + } + }, [environmentId]); + + // Function to update the environment + const updateEnvironmentData = useCallback(async ( + data: Partial<Environment> + ): Promise<Environment> => { + if (!environmentId || !environment) { + throw new Error("No environment selected"); + } + + try { + const updatedEnv = await updateEnvironment(environmentId, data); + + // Show success message + messageInstance.success("Environment updated successfully"); + + // Refresh both the single environment and environments list + await fetchEnvironment(); // Refresh the current environment + dispatch(fetchEnvironments()); // Refresh the environments list using Redux + + return updatedEnv; + } catch (err) { + const errorMessage = err instanceof Error ? err.message : "Failed to update environment"; + messageInstance.error(errorMessage); + throw err; + } + }, [environment, environmentId, fetchEnvironment, dispatch]); + + // Load environment data when the component mounts or environmentId changes + useEffect(() => { + fetchEnvironment(); + }, [fetchEnvironment]); + + // Create the context value + const value: SingleEnvironmentContextState = { + environment, + isLoading, + error, + refreshEnvironment: fetchEnvironment, + updateEnvironmentData, + }; + + return ( + <SingleEnvironmentContext.Provider value={value}> + {children} + </SingleEnvironmentContext.Provider> + ); + }; \ No newline at end of file diff --git a/client/packages/lowcoder/src/pages/setting/environments/context/WorkspaceContext.tsx b/client/packages/lowcoder/src/pages/setting/environments/context/WorkspaceContext.tsx new file mode 100644 index 0000000000..988c11e5a9 --- /dev/null +++ b/client/packages/lowcoder/src/pages/setting/environments/context/WorkspaceContext.tsx @@ -0,0 +1,163 @@ +// client/packages/lowcoder/src/pages/setting/environments/context/WorkspaceContext.tsx +import React, { + createContext, + useContext, + useEffect, + useState, + useCallback, + ReactNode, + } from "react"; + import { messageInstance } from "lowcoder-design/src/components/GlobalInstances"; + import { useParams } from "react-router-dom"; + import { useSingleEnvironmentContext } from "./SingleEnvironmentContext"; + import { fetchWorkspaceById } from "../services/environments.service"; + import { Workspace } from "../types/workspace.types"; + import { getManagedObjects, ManagedObjectType, setManagedObject, unsetManagedObject } from "../services/managed-objects.service"; + + interface WorkspaceContextState { + // Workspace data + workspace: Workspace | null; + + // Loading states + isLoading: boolean; + + // Error state + error: string | null; + + // Functions + refreshWorkspace: () => Promise<void>; + toggleManagedStatus: (checked: boolean) => Promise<boolean>; + } + + const WorkspaceContext = createContext<WorkspaceContextState | undefined>(undefined); + + export const useWorkspaceContext = () => { + const context = useContext(WorkspaceContext); + if (!context) { + throw new Error("useWorkspaceContext must be used within a WorkspaceProvider"); + } + return context; + }; + + interface ProviderProps { + children: ReactNode; + workspaceId?: string; + } + + export const WorkspaceProvider: React.FC<ProviderProps> = ({ + children, + workspaceId: propWorkspaceId, + }) => { + // Get workspaceId from URL params if not provided as prop + const { workspaceId: urlWorkspaceId } = useParams<{ workspaceId: string }>(); + const workspaceId = propWorkspaceId || urlWorkspaceId; + + // Get the environment context to access environment data + const { environment } = useSingleEnvironmentContext(); + + // State for workspace data + const [workspace, setWorkspace] = useState<Workspace | null>(null); + const [isLoading, setIsLoading] = useState<boolean>(true); + const [error, setError] = useState<string | null>(null); + + // Function to fetch workspace by ID + const fetchWorkspace = useCallback(async () => { + // Only fetch if we have a workspace ID and environment + if (!workspaceId || !environment) { + setWorkspace(null); + setIsLoading(false); + return; + } + + setIsLoading(true); + setError(null); + + try { + // Fetch the workspace data + const workspaceData = await fetchWorkspaceById( + environment.environmentId, + workspaceId, + environment.environmentApikey, + environment.environmentApiServiceUrl! + ); + + if (!workspaceData) { + throw new Error("Workspace not found"); + } + + // Fetch managed workspaces to check if this one is managed + const managedWorkspaces = await getManagedObjects(environment.environmentId, ManagedObjectType.ORG); + + // Set the managed status + const isManaged = managedWorkspaces.some(org => org.objGid === workspaceData.gid); + + // Update the workspace with managed status + setWorkspace({ + ...workspaceData, + managed: isManaged + }); + } catch (error) { + const errorMessage = error instanceof Error ? error.message : 'Failed to fetch workspace'; + messageInstance.error(errorMessage); + setError(errorMessage); + } finally { + setIsLoading(false); + } + }, [workspaceId, environment]); + + // Function to toggle managed status + const toggleManagedStatus = useCallback(async (checked: boolean): Promise<boolean> => { + if (!workspace || !environment) { + return false; + } + + try { + if (checked) { + // Connect the workspace as managed + await setManagedObject( + workspace.gid!, + environment.environmentId, + ManagedObjectType.ORG, + + + ); + } else { + // Disconnect the managed workspace + await unsetManagedObject( + workspace.gid!, + environment.environmentId, + ManagedObjectType.ORG + ); + } + + // Update local state + setWorkspace(prev => prev ? { ...prev, managed: checked } : null); + + return true; + } catch (err) { + const errorMessage = err instanceof Error ? err.message : "Failed to update managed status"; + messageInstance.error(errorMessage); + return false; + } + }, [workspace, environment]); + + // Load workspace data when the component mounts or dependencies change + useEffect(() => { + fetchWorkspace(); + }, [fetchWorkspace]); + + // Create the context value + const value: WorkspaceContextState = { + workspace, + isLoading, + error, + refreshWorkspace: fetchWorkspace, + toggleManagedStatus + }; + + return ( + <WorkspaceContext.Provider value={value}> + {children} + </WorkspaceContext.Provider> + ); + }; \ No newline at end of file diff --git a/client/packages/lowcoder/src/pages/setting/environments/index.tsx b/client/packages/lowcoder/src/pages/setting/environments/index.tsx new file mode 100644 index 0000000000..8225033c50 --- /dev/null +++ b/client/packages/lowcoder/src/pages/setting/environments/index.tsx @@ -0,0 +1,113 @@ +import { useSelector } from "react-redux"; +import { selectIsLicenseActive } from "redux/selectors/enterpriseSelectors"; +import EnvironmentsSettings from "@lowcoder-ee/pages/setting/environments/Environments"; +import { Level1SettingPageContent, Level1SettingPageTitle } from "../styled"; +import styled from "styled-components"; +import { Card, Typography, Row, Col, Divider, Button } from "antd"; +import { trans } from "i18n"; +import { useState } from "react"; +import { getUser } from "@lowcoder-ee/redux/selectors/usersSelectors"; +import { HubspotModal } from "../hubspotModal"; + +const { Paragraph, Text } = Typography; + +const StyledSection = styled.div` + margin-bottom: 32px; + + .ant-card { + border-radius: 8px; + } + + .image-placeholder { + background: #f0f2f5; + border: 1px dashed #d9d9d9; + height: 180px; + display: flex; + align-items: center; + justify-content: center; + color: #999; + font-size: 14px; + } +`; + +export const Environments = () => { + const isLicenseActive = useSelector(selectIsLicenseActive); + return isLicenseActive ? <EnvironmentsSettings /> : <EnvironmentsPromo />; +}; + +const EnvironmentsPromo = () => { + const [modalOpen, setModalOpen] = useState(false); + const user = useSelector(getUser); + + return ( + <Level1SettingPageContent> + <Level1SettingPageTitle>{trans("enterprise.EnvironmentsTitle")}</Level1SettingPageTitle> + + <StyledSection> + <Card title={trans("enterprise.EnvironmentsIntroTitle")}> + <Paragraph>{trans("enterprise.EnvironmentsIntro1")}</Paragraph> + <Paragraph>{trans("enterprise.EnvironmentsIntro2")}</Paragraph> + <Paragraph>{trans("enterprise.EnvironmentsIntro3")}</Paragraph> + </Card> + </StyledSection> + + <StyledSection> + <Card title={trans("enterprise.EnvironmentsUseCasesTitle")}> + <Paragraph>{trans("enterprise.EnvironmentsUseCase1")}</Paragraph> + <Paragraph>{trans("enterprise.EnvironmentsUseCase2")}</Paragraph> + <Paragraph>{trans("enterprise.EnvironmentsUseCase3")}</Paragraph> + </Card> + </StyledSection> + + <StyledSection> + <Card title={trans("enterprise.EnvironmentsFeaturesTitle")}> + <ul> + <li>{trans("enterprise.EnvironmentsFeature1")}</li> + <li>{trans("enterprise.EnvironmentsFeature2")}</li> + <li>{trans("enterprise.EnvironmentsFeature3")}</li> + <li>{trans("enterprise.EnvironmentsFeature5")}</li> + </ul> + </Card> + </StyledSection> + + <StyledSection> + <Card title={trans("enterprise.PricingTitle")}> + <Paragraph>{trans("enterprise.PricingIntro")}</Paragraph> + + <Paragraph> + <Text strong>{trans("enterprise.FlatRateTitle")}</Text> + <br /> + {trans("enterprise.FlatRateDesc")} + </Paragraph> + <ul> + <li>{trans("enterprise.FlatRatePoint1")}</li> + <li>{trans("enterprise.FlatRatePoint2")}</li> + </ul> + + <Divider /> + + <Paragraph> + <Text strong>{trans("enterprise.UsagePricingTitle")}</Text> + <br /> + {trans("enterprise.UsagePricingDesc")} + </Paragraph> + <ul> + <li>{trans("enterprise.API100k")}</li> + <li>{trans("enterprise.API1M")}</li> + <li>{trans("enterprise.API10M")}</li> + </ul> + + <Paragraph>{trans("enterprise.UsageOverrunDesc")}</Paragraph> + <Paragraph>{trans("enterprise.UsageTopUpInfo")}</Paragraph> + </Card> + </StyledSection> + + <HubspotModal + open={modalOpen} + onClose={() => setModalOpen(false)} + orgId={user?.currentOrgId} + deploymentIds={[]} // Add if available + /> + </Level1SettingPageContent> + ); +}; diff --git a/client/packages/lowcoder/src/pages/setting/environments/routes/EnvironmentRoutes.tsx b/client/packages/lowcoder/src/pages/setting/environments/routes/EnvironmentRoutes.tsx new file mode 100644 index 0000000000..69e2addab1 --- /dev/null +++ b/client/packages/lowcoder/src/pages/setting/environments/routes/EnvironmentRoutes.tsx @@ -0,0 +1,35 @@ +// client/packages/lowcoder/src/pages/setting/environments/routes/EnvironmentRoutes.tsx +import React from "react"; +import { Switch, Route, useRouteMatch } from "react-router-dom"; +import { SingleEnvironmentProvider } from "../context/SingleEnvironmentContext"; +import { DeployModalProvider } from "../context/DeployModalContext"; +import EnvironmentDetail from "../EnvironmentDetail"; +import WorkspaceRoutes from "./WorkspaceRoutes"; + +/** + * Routes that require a specific environment + * Provides the SingleEnvironmentProvider for all child routes + */ +const EnvironmentRoutes: React.FC = () => { + const { path } = useRouteMatch(); + + return ( + <SingleEnvironmentProvider> + <DeployModalProvider> + <Switch> + {/* Environment detail route */} + <Route exact path={path}> + <EnvironmentDetail /> + </Route> + + {/* All routes that need a specific workspace */} + <Route path={`${path}/workspaces/:workspaceId`}> + <WorkspaceRoutes /> + </Route> + </Switch> + </DeployModalProvider> + </SingleEnvironmentProvider> + ); +}; + +export default EnvironmentRoutes; \ No newline at end of file diff --git a/client/packages/lowcoder/src/pages/setting/environments/routes/WorkspaceRoutes.tsx b/client/packages/lowcoder/src/pages/setting/environments/routes/WorkspaceRoutes.tsx new file mode 100644 index 0000000000..bc5f7a7b51 --- /dev/null +++ b/client/packages/lowcoder/src/pages/setting/environments/routes/WorkspaceRoutes.tsx @@ -0,0 +1,28 @@ +// client/packages/lowcoder/src/pages/setting/environments/routes/WorkspaceRoutes.tsx +import React from "react"; +import { Switch, Route, useRouteMatch } from "react-router-dom"; +import { WorkspaceProvider } from "../context/WorkspaceContext"; +import WorkspaceDetail from "../WorkspaceDetail"; + +/** + * Routes that require a specific workspace + * Provides the WorkspaceProvider for all child routes + */ +const WorkspaceRoutes: React.FC = () => { + const { path } = useRouteMatch(); + + return ( + <WorkspaceProvider> + <Switch> + {/* Workspace detail route */} + <Route exact path={path}> + <WorkspaceDetail /> + </Route> + + {/* You can add more workspace-specific routes here */} + </Switch> + </WorkspaceProvider> + ); +}; + +export default WorkspaceRoutes; \ No newline at end of file diff --git a/client/packages/lowcoder/src/pages/setting/environments/services/apps.service.ts b/client/packages/lowcoder/src/pages/setting/environments/services/apps.service.ts new file mode 100644 index 0000000000..db7f21dfff --- /dev/null +++ b/client/packages/lowcoder/src/pages/setting/environments/services/apps.service.ts @@ -0,0 +1,144 @@ +// services/appService.ts +import { messageInstance } from "lowcoder-design/src/components/GlobalInstances"; +import { getWorkspaceApps } from "./environments.service"; +import { getManagedApps } from "./enterprise.service"; +import { App, AppStats } from "../types/app.types"; +import axios from "axios"; +import { getManagedObjects, ManagedObject } from "./managed-objects.service"; +import { ManagedObjectType, transferManagedObject } from "./managed-objects.service"; + + +export interface MergedAppsResult { + apps: App[]; + stats: AppStats; +} + + +export interface DeployAppParams { + envId: string; + targetEnvId: string; + applicationId: string; + applicationGid: string; + updateDependenciesIfNeeded?: boolean; + publishOnTarget?: boolean; + publicToAll?: boolean; + publicToMarketplace?: boolean; + deployCredential: boolean; +} + + +// Use your existing merge function with slight modification +export const getMergedApps = (standardApps: App[], managedObjects: ManagedObject[]): App[] => { + return standardApps.map((app) => ({ + ...app, + managed: managedObjects.some((managedObj) => + managedObj.objGid === app.applicationGid && + managedObj.objType === "APP" + ), + })); +}; + +// Calculate app statistics +export const calculateAppStats = (apps: App[]): AppStats => { + const publishedCount = apps.filter(app => app.published).length; + const managedCount = apps.filter(app => app.managed).length; + + return { + total: apps.length, + published: publishedCount, + managed: managedCount, + unmanaged: apps.length - managedCount + }; +}; + +export async function getMergedWorkspaceApps( + workspaceId: string, + environmentId: string, + apiKey: string, + apiServiceUrl: string +): Promise<MergedAppsResult> { + try { + // First, get regular apps for the workspace + const regularApps = await getWorkspaceApps( + workspaceId, + apiKey, + apiServiceUrl + ); + + // If no apps, return early with empty result + if (!regularApps.length) { + return { + apps: [], + stats: { + total: 0, + published: 0, + managed: 0, + unmanaged: 0 + } + }; + } + + // Fetch managed objects instead of managed apps + let managedObjects: ManagedObject[] = []; + try { + managedObjects = await getManagedObjects(environmentId, ManagedObjectType.APP); + } catch (error) { + console.error("Failed to fetch managed objects:", error); + // Continue with empty managed list + } + + // Use the updated merge function + const mergedApps = getMergedApps(regularApps, managedObjects); + + // Calculate stats + const stats = calculateAppStats(mergedApps); + + return { + apps: mergedApps, + stats + }; + } catch (error) { + const errorMessage = + error instanceof Error ? error.message : "Failed to fetch apps"; + messageInstance.error(errorMessage); + throw error; + } +} + + + +export const deployApp = async (params: DeployAppParams): Promise<boolean> => { + try { + const response = await axios.post( + `/api/plugins/enterprise/app/deploy`, + null, + { + params: { + applicationId: params.applicationId, + envId: params.envId, + targetEnvId: params.targetEnvId, + updateDependenciesIfNeeded: params.updateDependenciesIfNeeded ?? false, + publishOnTarget: params.publishOnTarget ?? false, + publicToAll: params.publicToAll ?? false, + publicToMarketplace: params.publicToMarketplace ?? false, + deployCredential: params.deployCredential + } + } + ); + + if (response.status === 200) { + await transferManagedObject( + params.applicationGid, + params.envId, + params.targetEnvId, + ManagedObjectType.APP + ); + } + + return response.status === 200; + } catch (error) { + const errorMessage = error instanceof Error ? error.message : 'Failed to deploy app'; + // Don't show message directly, let the calling component handle it + throw new Error(errorMessage); + } +}; \ No newline at end of file diff --git a/client/packages/lowcoder/src/pages/setting/environments/services/datasources.service.ts b/client/packages/lowcoder/src/pages/setting/environments/services/datasources.service.ts new file mode 100644 index 0000000000..e743179b0f --- /dev/null +++ b/client/packages/lowcoder/src/pages/setting/environments/services/datasources.service.ts @@ -0,0 +1,179 @@ +// services/dataSources.service.ts +import axios from 'axios'; +import { messageInstance } from "lowcoder-design/src/components/GlobalInstances"; +import { DataSource, DataSourceWithMeta } from "../types/datasource.types"; +import { getManagedObjects, ManagedObject, ManagedObjectType , transferManagedObject } from "./managed-objects.service"; + +export interface DataSourceStats { + total: number; + types: number; + managed: number; + unmanaged: number; +} + +export interface MergedDataSourcesResult { + dataSources: DataSource[]; + stats: DataSourceStats; +} + +export interface DeployDataSourceParams { + envId: string; + targetEnvId: string; + datasourceId: string; + datasourceGid: string; + updateDependenciesIfNeeded?: boolean; + deployCredential: boolean; +} +// Get data sources for a workspace - using your correct implementation +export async function getWorkspaceDataSources( + workspaceId: string, + apiKey: string, + apiServiceUrl: string +): Promise<DataSourceWithMeta[]> { + try { + // Check if required parameters are provided + if (!workspaceId) { + throw new Error('Workspace ID is required'); + } + + if (!apiKey) { + throw new Error('API key is required to fetch data sources'); + } + + if (!apiServiceUrl) { + throw new Error('API service URL is required to fetch data sources'); + } + + // Set up headers with the Bearer token format + const headers = { + Authorization: `Bearer ${apiKey}` + }; + + // Make the API request to get data sources + const response = await axios.get<{data:DataSourceWithMeta[]}>(`${apiServiceUrl}/api/datasources/listByOrg`, { + headers, + params: { + orgId: workspaceId + } + }); + + // Check if response is valid + if (!response.data) { + return []; + } + + return response.data.data; + } catch (error) { + // Handle and transform error + const errorMessage = error instanceof Error ? error.message : 'Failed to fetch data sources'; + messageInstance.error(errorMessage); + throw error; + } +} + +// Function to merge regular and managed data sources +export const getMergedDataSources = (standardDataSources: DataSourceWithMeta[], managedObjects: ManagedObject[]): DataSource[] => { + return standardDataSources.map((dataSourceWithMeta) => { + const dataSource = dataSourceWithMeta.datasource; + return { + ...dataSource, + managed: managedObjects.some((obj) => obj.objGid === dataSource.gid && obj.objType === ManagedObjectType.DATASOURCE), + }; + }); +}; + +// Calculate data source statistics +export const calculateDataSourceStats = (dataSources: DataSource[]): DataSourceStats => { + const uniqueTypes = new Set(dataSources.map(ds => ds.type)).size; + const managedCount = dataSources.filter(ds => ds.managed).length; + + return { + total: dataSources.length, + types: uniqueTypes, + managed: managedCount, + unmanaged: dataSources.length - managedCount + }; +}; + +// Get and merge data sources from a workspace +export async function getMergedWorkspaceDataSources( + workspaceId: string, + environmentId: string, + apiKey: string, + apiServiceUrl: string +): Promise<MergedDataSourcesResult> { + try { + // First, get regular data sources for the workspace + const regularDataSourcesWithMeta = await getWorkspaceDataSources( + workspaceId, + apiKey, + apiServiceUrl + ); + + // If no data sources, return early with empty result + if (!regularDataSourcesWithMeta.length) { + return { + dataSources: [], + stats: { + total: 0, + types: 0, + managed: 0, + unmanaged: 0 + } + }; + } + + // Only fetch managed data sources if we have regular data sources + let managedObjects: ManagedObject[] = []; + try { + managedObjects = await getManagedObjects(environmentId, ManagedObjectType.DATASOURCE); + } catch (error) { + console.error("Failed to fetch managed data sources:", error); + // Continue with empty managed list + } + + // Use the merge function + const mergedDataSources = getMergedDataSources(regularDataSourcesWithMeta, managedObjects); + + // Calculate stats + const stats = calculateDataSourceStats(mergedDataSources); + + return { + dataSources: mergedDataSources, + stats + }; + } catch (error) { + const errorMessage = + error instanceof Error ? error.message : "Failed to fetch data sources"; + messageInstance.error(errorMessage); + throw error; + } +} + +// Function to deploy a data source to another environment +export async function deployDataSource(params: DeployDataSourceParams): Promise<boolean> { + try { + const response = await axios.post('/api/plugins/enterprise/datasource/deploy', null, { + params: { + envId: params.envId, + targetEnvId: params.targetEnvId, + datasourceId: params.datasourceId, + updateDependenciesIfNeeded: params.updateDependenciesIfNeeded ?? false, + deployCredential: params.deployCredential + } + }); + if (response.status === 200) { + await transferManagedObject( + params.datasourceGid, + params.envId, + params.targetEnvId, + ManagedObjectType.DATASOURCE + ); + } + return response.status === 200; + } catch (error) { + const errorMessage = error instanceof Error ? error.message : 'Failed to deploy data source'; + messageInstance.error(errorMessage); + throw error; + } +} \ No newline at end of file diff --git a/client/packages/lowcoder/src/pages/setting/environments/services/enterprise.service.ts b/client/packages/lowcoder/src/pages/setting/environments/services/enterprise.service.ts new file mode 100644 index 0000000000..f676f1734e --- /dev/null +++ b/client/packages/lowcoder/src/pages/setting/environments/services/enterprise.service.ts @@ -0,0 +1,282 @@ +import axios from "axios"; +import { messageInstance } from "lowcoder-design/src/components/GlobalInstances"; +import { ManagedOrg } from "../types/enterprise.types"; +import { Query } from "../types/query.types"; + + +/** + * Fetch workspaces for a specific environment + * @param apiServiceUrl - API service URL for the environment + * @param environmentId - ID of the environment + * + * + */ + +export async function getManagedWorkspaces( + environmentId: string, + +): Promise<ManagedOrg[]> { + if (!environmentId) { + throw new Error("Missing environmentId"); + } + + try { + const res = await axios.get(`/api/plugins/enterprise/org/list`); + const all: ManagedOrg[] = res.data.data; + return all.filter(org => org.environmentId === environmentId); + } catch (err) { + const errorMsg = err instanceof Error ? err.message : "Failed to fetch managed workspaces"; + messageInstance.error(errorMsg); + throw err; + } +} + + +/** + * Fetch workspaces for a specific environment + * @param apiServiceUrl - API service URL for the environment + * @param environmentId - ID of the environment + * @param orgName - Name of the workspace + * @param orgTags - Tags of the workspace + * + */ + +export async function connectManagedWorkspace( + environmentId: string, + orgName: string, + org_gid: string, // ✅ not optional + orgTags: string[] = [], +) { + if (!environmentId || !orgName || !org_gid) { + throw new Error("Missing required params to connect org"); + } + + try { + const payload = { + environment_id: environmentId, + org_name: orgName, + org_tags: orgTags, + org_gid, + }; + + const res = await axios.post(`/api/plugins/enterprise/org`, payload); + return res.data; + } catch (err) { + const errorMsg = err instanceof Error ? err.message : "Failed to connect org"; + messageInstance.error(errorMsg); + throw err; + } +} + + + +/** + * Fetch workspaces for a specific environment + * @param apiServiceUrl - API service URL for the environment + * @param orgId - ID of the workspace + * + */ +export async function unconnectManagedWorkspace(orgGid: string) { + if (!orgGid) { + throw new Error("Missing orgGid to unconnect workspace"); + } + + try { + await axios.delete(`/api/plugins/enterprise/org`, { + params: { orgGid }, // ✅ pass as query param + }); + } catch (err) { + const errorMsg = + err instanceof Error ? err.message : "Failed to unconnect org"; + messageInstance.error(errorMsg); + throw err; + } +} + + + + +// FOR APPS + +export async function getManagedApps(environmentId: string) { + const res = await axios.get(`/api/plugins/enterprise/app/list`); + const allApps = res.data.data; + return allApps.filter((app: any) => app.environmentId === environmentId); +} + +// Connect an app +export async function connectManagedApp( + environmentId: string, + app_name: string, + app_gid: string, + app_tags: string[] = [] +) { + try { + const payload = { + environment_id: environmentId, + app_name, + app_gid, + app_tags, + }; + + const res = await axios.post(`/api/plugins/enterprise/app`, payload); + return res.data; + } catch (err) { + const errorMsg = + err instanceof Error ? err.message : "Failed to connect app"; + messageInstance.error(errorMsg); + throw err; + } +} + +// Unconnect an app +export async function unconnectManagedApp(appGid: string) { + try { + await axios.delete(`/api/plugins/enterprise/app`, { + params: { appGid }, + }); + } catch (err) { + const errorMsg = err instanceof Error ? err.message : "Failed to unconnect app"; + messageInstance.error(errorMsg); + throw err; + } +} + +// data sources + +export const getManagedDataSources = async (environmentId: string): Promise<any[]> => { + try { + const response = await axios.get( + `/api/plugins/enterprise/datasource/list?environmentId=${environmentId}` + ); + return response.data.data || []; + } catch (error) { + const errorMsg = error instanceof Error ? error.message : 'Failed to fetch data sources'; + messageInstance.error(errorMsg); + throw error; + } +}; + +// Connect a data source to be managed +export const connectManagedDataSource = async ( + environmentId: string, + name: string, + datasourceGid: string +): Promise<void> => { + try { + const payload = { + environment_id: environmentId, + name, + datasource_gid: datasourceGid, + }; + + + await axios.post(`/api/plugins/enterprise/datasource`, payload); + } catch (error) { + const errorMsg = error instanceof Error ? error.message : 'Failed to deploy data source'; + messageInstance.error(errorMsg); + throw error; + } +}; + +// Disconnect a managed data source +export const unconnectManagedDataSource = async ( + datasourceGid: string +): Promise<void> => { + try { + await axios.delete(`/api/plugins/enterprise/datasource?datasourceGid=${datasourceGid}`); + } catch (error) { + const errorMsg = error instanceof Error ? error.message : 'Failed to disconnect managed data source'; + messageInstance.error(errorMsg); + throw error; + } +}; + + + + +export async function getManagedQueries(environmentId: string): Promise<Query[]> { + try { + if (!environmentId) { + throw new Error('Environment ID is required'); + } + + // Get managed queries from the enterprise endpoint + const response = await axios.get(`/api/plugins/enterprise/qlQuery/list`, { + params: { + environmentId + } + }); + + if (!response.data.data || !Array.isArray(response.data.data)) { + return []; + } + + // Map the response to match our Query interface + // Note: You may need to adjust this mapping based on the actual response structure + return response.data.data.map((item: any) => ({ + id: item.id || item.qlQueryId, + gid: item.qlQueryGid, + name: item.qlQueryName, + organizationId: item.orgId, + libraryQueryDSL: item.libraryQueryDSL || {}, + createTime: item.createTime, + creatorName: item.creatorName || '', + managed: true // These are managed queries + })); + + } catch (error) { + const errorMsg = error instanceof Error ? error.message : 'Failed to fetch queries'; + messageInstance.error(errorMsg); + throw error; + } +} + + +export async function connectManagedQuery( + environmentId: string, + queryName: string, + queryGid: string +): Promise<boolean> { + try { + if (!environmentId || !queryGid) { + throw new Error('Environment ID and Query GID are required'); + } + + const response = await axios.post('/api/plugins/enterprise/qlQuery', { + environment_id: environmentId, + ql_query_name: queryName, + ql_query_tags: [], + ql_query_gid: queryGid + }); + + return response.status === 200; + + } catch (error) { + const errorMsg = error instanceof Error ? error.message : 'Failed to deploy query'; + messageInstance.error(errorMsg); + throw error; + } +} + + +export async function unconnectManagedQuery(queryGid: string): Promise<boolean> { + try { + if (!queryGid) { + throw new Error('Query GID is required'); + } + + const response = await axios.delete(`/api/plugins/enterprise/qlQuery`, { + params: { + qlQueryGid: queryGid + } + }); + + return response.status === 200; + + } catch (error) { + const errorMsg = error instanceof Error ? error.message : 'Failed to disconnect query'; + messageInstance.error(errorMsg); + throw error; + } +} \ No newline at end of file diff --git a/client/packages/lowcoder/src/pages/setting/environments/services/environments.service.ts b/client/packages/lowcoder/src/pages/setting/environments/services/environments.service.ts new file mode 100644 index 0000000000..eb11609f54 --- /dev/null +++ b/client/packages/lowcoder/src/pages/setting/environments/services/environments.service.ts @@ -0,0 +1,624 @@ +import axios from "axios"; +import { messageInstance } from "lowcoder-design/src/components/GlobalInstances"; +import { Environment } from "../types/environment.types"; +import { Workspace } from "../types/workspace.types"; +import { UserGroup } from "../types/userGroup.types"; +import {App} from "../types/app.types"; +import { DataSourceWithMeta } from '../types/datasource.types'; +import { Query, QueryResponse } from "../types/query.types"; +import { checkEnvironmentLicense } from './license.service'; + + + + +export async function updateEnvironment( + environmentId: string, + environmentData: Partial<Environment> +): Promise<Environment> { + if (!environmentId) { + throw new Error("Missing environmentId"); + } + + try { + // Convert frontend model to API model + const payload = { + environment_description: environmentData.environmentDescription || "", + environment_icon: environmentData.environmentIcon || "", + environment_name: environmentData.environmentName || "", + environment_apikey: environmentData.environmentApikey || "", + environment_type: environmentData.environmentType || "", + environment_api_service_url: environmentData.environmentApiServiceUrl || "", + environment_frontend_url: environmentData.environmentFrontendUrl || "", + environment_node_service_url: environmentData.environmentNodeServiceUrl || "", + isMaster: environmentData.isMaster || false + }; + + const res = await axios.put(`/api/plugins/enterprise/environments`, payload, { + params: { environmentId } + }); + + return res.data; + } catch (err) { + const errorMsg = err instanceof Error ? err.message : "Failed to update environment"; + messageInstance.error(errorMsg); + throw err; + } +} + +/** + * Create a new environment manually + * @param environmentData - Environment data to create + * @returns Promise with created environment data + */ +export async function createEnvironment( + environmentData: Partial<Environment> +): Promise<Environment> { + try { + // Convert frontend model to API model + const payload = { + environment_description: environmentData.environmentDescription || "", + environment_icon: environmentData.environmentIcon || "", + environment_name: environmentData.environmentName || "", + environment_apikey: environmentData.environmentApikey || "", + environment_type: environmentData.environmentType || "", + environment_api_service_url: environmentData.environmentApiServiceUrl || "", + environment_frontend_url: environmentData.environmentFrontendUrl || "", + environment_node_service_url: environmentData.environmentNodeServiceUrl || "", + isMaster: environmentData.isMaster || false + }; + + const res = await axios.post(`/api/plugins/enterprise/environments`, payload); + + if (res.data) { + messageInstance.success("Environment created successfully"); + return res.data; + } else { + throw new Error("Failed to create environment"); + } + } catch (err) { + const errorMsg = err instanceof Error ? err.message : "Failed to create environment"; + messageInstance.error(errorMsg); + throw err; + } +} + +/** + * Fetch all environments + * @returns Promise with environments data + */ +export async function getEnvironments(): Promise<Environment[]> { + try { + // The response contains the data array directly in response.data + const response = await axios.get( + "/api/plugins/enterprise/environments/list" + ); + + // Return the data array directly from response.data + return response.data.data || []; + } catch (error) { + const errorMessage = + error instanceof Error ? error.message : "Failed to fetch environments"; + messageInstance.error(errorMessage); + throw error; + } +} + +/** + * Fetch a single environment by ID + * @param id Environment ID + * @returns Promise with environment data + */ +export async function getEnvironmentById(id: string): Promise<Environment> { + try { + const response = await axios.get( + `/api/plugins/enterprise/environments?environmentId=${id}` + ); + + if (!response.data) { + throw new Error("Failed to fetch environment"); + } + + const environment = response.data.data; + + // Check license status for the environment + const envWithLicense: Environment = { + ...environment, + licenseStatus: 'checking' + }; + + try { + if (environment.environmentApiServiceUrl) { + const licenseInfo = await checkEnvironmentLicense( + environment.environmentApiServiceUrl, + environment.environmentApikey + ); + + envWithLicense.isLicensed = licenseInfo.isValid; + envWithLicense.licenseStatus = licenseInfo.isValid ? 'licensed' : 'unlicensed'; + envWithLicense.licenseError = licenseInfo.error; + } else { + envWithLicense.isLicensed = false; + envWithLicense.licenseStatus = 'error'; + envWithLicense.licenseError = 'API service URL not configured'; + } + } catch (error) { + envWithLicense.isLicensed = false; + envWithLicense.licenseStatus = 'error'; + envWithLicense.licenseError = error instanceof Error ? error.message : 'License check failed'; + } + + return envWithLicense; + } catch (error) { + const errorMessage = + error instanceof Error ? error.message : "Failed to fetch environment"; + messageInstance.error(errorMessage); + throw error; + } +} + +/* ================================================================================ + +=============================== ENVIRONMENT WORKSPACES ============================ +*/ + +/** + * Fetch workspaces for a specific environment + * @param environmentId - ID of the environment + * @param apiKey - API key for the environment + * @param apiServiceUrl - API service URL for the environment + * @returns Promise with an array of workspaces + */ +export async function getEnvironmentWorkspaces( + environmentId: string, + apiKey: string, + apiServiceUrl: string +): Promise<Workspace[]> { + try { + // Check if required parameters are provided + if (!environmentId) { + throw new Error("Environment ID is required"); + } + + if (!apiKey) { + throw new Error("API key is required to fetch workspaces"); + } + if (!apiServiceUrl) { + throw new Error('API service URL is required to fetch workspaces'); + } + + // Set up headers with the API key + const headers = { + Authorization: `Bearer ${apiKey}` + }; + + // Make the API request to get user data which includes workspaces + const response = await axios.get(`${apiServiceUrl}/api/users/me`, { headers }); + + // Check if response is valid + if (!response.data || !response.data.success) { + throw new Error(response.data?.message || "Failed to fetch workspaces"); + } + + // Extract workspaces from the response + const userData = response.data.data; + + if (!userData.orgAndRoles || !Array.isArray(userData.orgAndRoles)) { + return []; + } + + // Transform the data to match our Workspace interface + const workspaces: Workspace[] = userData.orgAndRoles.map((item:any) => ({ + id: item.org.id, + name: item.org.name, + role: item.role, + creationDate: item.org.createTime, + status: item.org.state, + gid: item.org.gid, + createdBy: item.org.createdBy, + isAutoGeneratedOrganization: item.org.isAutoGeneratedOrganization, + logoUrl: item.org.logoUrl || "", + })); + + return workspaces; + } catch (error) { + // Handle and transform error + const errorMessage = + error instanceof Error ? error.message : "Failed to fetch workspaces"; + messageInstance.error(errorMessage); + throw error; + } +} + + + +/* ================================================================================ + +=============================== ENVIRONMENT USER GROUPS ============================ */ + +export async function getEnvironmentUserGroups( + environmentId: string, + apiKey: string, + apiServiceUrl: string +): Promise<UserGroup[]> { + try { + // Check if required parameters are provided + if (!environmentId) { + throw new Error('Environment ID is required'); + } + + if (!apiKey) { + throw new Error('API key is required to fetch user groups'); + } + + if (!apiServiceUrl) { + throw new Error('API service URL is required to fetch user groups'); + } + + // Set up headers with the Bearer token format + const headers = { + Authorization: `Bearer ${apiKey}` + }; + + // Make the API request to get user groups + const response = await axios.get(`${apiServiceUrl}/api/groups/list`, { headers }); + + // Check if response is valid + if (!response.data) { + throw new Error('Failed to fetch user groups'); + } + + // The response data is already an array of user groups + const userGroups: UserGroup[] = response.data.data || []; + + return userGroups; + } catch (error) { + // Handle and transform error + const errorMessage = error instanceof Error ? error.message : 'Failed to fetch user groups'; + messageInstance.error(errorMessage); + throw error; + } +} + + + + +/* ================================================================================ + +=============================== WorkSpace Details ============================ */ + + +/** + * Get a specific workspace by ID from the list of workspaces + * @param workspaces - Array of workspaces + * @param workspaceId - ID of the workspace to find + * @returns The found workspace or null if not found + */ +export function getWorkspaceById(workspaces: Workspace[], workspaceId: string): Workspace | null { + if (!workspaces || !workspaceId) { + return null; + } + + return workspaces.find(workspace => workspace.id === workspaceId) || null; +} + +/** + * Fetch a specific workspace from an environment + * @param environmentId - ID of the environment + * @param workspaceId - ID of the workspace to fetch + * @param apiKey - API key for the environment + * @param apiServiceUrl - API service URL for the environment + * @returns Promise with the workspace or null if not found + */ +export async function fetchWorkspaceById( + environmentId: string, + workspaceId: string, + apiKey: string, + apiServiceUrl: string +): Promise<Workspace | null> { + try { + // First fetch all workspaces for the environment + const workspaces = await getEnvironmentWorkspaces(environmentId, apiKey, apiServiceUrl); + + // Then find the specific workspace by ID + return getWorkspaceById(workspaces, workspaceId); + } catch (error) { + throw error; + } +} + +/* ================================================================================ + +=============================== WorkSpace Apps ============================ */ + + + +export async function getWorkspaceApps( + workspaceId: string, + apiKey: string, + apiServiceUrl: string +): Promise<App[]> { + try { + // Check if required parameters are provided + if (!workspaceId) { + throw new Error('Workspace ID is required'); + } + + if (!apiKey) { + throw new Error('API key is required to fetch apps'); + } + + if (!apiServiceUrl) { + throw new Error('API service URL is required to fetch apps'); + } + + // Set up headers with the Bearer token format + const headers = { + Authorization: `Bearer ${apiKey}` + }; + + // First, switch to the target workspace + await axios.put(`${apiServiceUrl}/api/organizations/switchOrganization/${workspaceId}`, {}, { + headers + }); + + // Then fetch applications without the orgId parameter + const response = await axios.get(`${apiServiceUrl}/api/applications/list`, { + headers, + params: { + withContainerSize: false + } + }); + + // Check if response is valid + if (!response.data || !response.data.data) { + return []; + } + + // Filter out DELETED apps + const apps = response.data.data.filter((app: any) => + app.applicationStatus !== 'DELETED' + ); + + return apps; + + } catch (error) { + // Handle and transform error + const errorMessage = error instanceof Error ? error.message : 'Failed to fetch workspace apps'; + messageInstance.error(errorMessage); + throw error; + } +} + + +/* ================================================================================ + +=============================== WorkSpace Data Source ============================ */ + +/** + * Fetch data sources for a specific workspace + * @param workspaceId - ID of the workspace (orgId) + * @param apiKey - API key for the environment + * @param apiServiceUrl - API service URL for the environment + * @returns Promise with an array of data sources + */ +export async function getWorkspaceDataSources( + workspaceId: string, + apiKey: string, + apiServiceUrl: string +): Promise<DataSourceWithMeta[]> { + try { + // Check if required parameters are provided + if (!workspaceId) { + throw new Error('Workspace ID is required'); + } + + if (!apiKey) { + throw new Error('API key is required to fetch data sources'); + } + + if (!apiServiceUrl) { + throw new Error('API service URL is required to fetch data sources'); + } + + // Set up headers with the Bearer token format + const headers = { + Authorization: `Bearer ${apiKey}` + }; + + // Make the API request to get data sources + const response = await axios.get<{data:DataSourceWithMeta[]}>(`${apiServiceUrl}/api/datasources/listByOrg`, { + headers, + params: { + orgId: workspaceId + } + }); + + // Check if response is valid + if (!response.data) { + return []; + } + + return response.data.data ; + } catch (error) { + // Handle and transform error + const errorMessage = error instanceof Error ? error.message : 'Failed to fetch workspace data sources'; + messageInstance.error(errorMessage); + throw error; + } +} + + + +/** + * Fetch queries for a specific workspace + * @param workspaceId - ID of the workspace (orgId) + * @param apiKey - API key for the environment + * @param apiServiceUrl - API service URL for the environment + * @param options - Additional options (name filter, pagination) + * @returns Promise with an array of queries and metadata + */ +export async function getWorkspaceQueries( + workspaceId: string, + apiKey: string, + apiServiceUrl: string, + options: { + name?: string; + pageNum?: number; + pageSize?: number; + } = {} +): Promise<{ queries: Query[], total: number }> { + try { + // Check if required parameters are provided + if (!workspaceId) { + throw new Error('Workspace ID is required'); + } + + if (!apiKey) { + throw new Error('API key is required to fetch queries'); + } + + if (!apiServiceUrl) { + throw new Error('API service URL is required to fetch queries'); + } + + // Set up headers with the Bearer token format + const headers = { + Authorization: `Bearer ${apiKey}` + }; + + // Prepare query parameters + const params: any = { + orgId: workspaceId + }; + + // Add optional parameters if provided + if (options.name) params.name = options.name; + if (options.pageNum !== undefined) params.pageNum = options.pageNum; + if (options.pageSize !== undefined) params.pageSize = options.pageSize; + + // Make the API request to get queries + const response = await axios.get<QueryResponse>(`${apiServiceUrl}/api/library-queries/listByOrg`, { + headers, + params + }); + + // Check if response is valid + if (!response.data) { + return { queries: [], total: 0 }; + } + + // Map the response to include id field required by DeployableItem + const queries = response.data.data.map(query => ({ + ...query, + // Map to DeployableItem fields if not already present + id: query.id, + name: query.name, + managed: false // Default to unmanaged + })); + + return { + queries, + total: response.data.total + }; + + } catch (error) { + // Handle and transform error + const errorMessage = error instanceof Error ? error.message : 'Failed to fetch workspace queries'; + messageInstance.error(errorMessage); + throw error; + } +} + +/** + * Fetch all environments and check their license status + * @returns Promise with environments data including license status + */ +export async function getEnvironmentsWithLicenseStatus(): Promise<Environment[]> { + try { + // First fetch all environments + const environments = await getEnvironments(); + + // Check license status for each environment in parallel + const environmentsWithLicense = await Promise.all( + environments.map(async (env) => { + const envWithLicense: Environment = { + ...env, + licenseStatus: 'checking' + }; + + try { + if (env.environmentApiServiceUrl) { + const licenseInfo = await checkEnvironmentLicense( + env.environmentApiServiceUrl, + env.environmentApikey + ); + + envWithLicense.isLicensed = licenseInfo.isValid; + envWithLicense.licenseStatus = licenseInfo.isValid ? 'licensed' : 'unlicensed'; + envWithLicense.licenseError = licenseInfo.error; + } else { + envWithLicense.isLicensed = false; + envWithLicense.licenseStatus = 'error'; + envWithLicense.licenseError = 'API service URL not configured'; + } + } catch (error) { + envWithLicense.isLicensed = false; + envWithLicense.licenseStatus = 'error'; + envWithLicense.licenseError = error instanceof Error ? error.message : 'License check failed'; + } + + return envWithLicense; + }) + ); + + return environmentsWithLicense; + } catch (error) { + const errorMessage = + error instanceof Error ? error.message : "Failed to fetch environments"; + messageInstance.error(errorMessage); + throw error; + } +} + +/** + * Fetch deployment ID from a specific environment + * @param apiServiceUrl - API service URL for the environment + * @param apiKey - API key for the environment + * @returns Promise with deployment ID string + */ +export async function getEnvironmentDeploymentId( + apiServiceUrl: string, + apiKey: string +): Promise<string> { + try { + // Check if required parameters are provided + if (!apiServiceUrl) { + throw new Error('API service URL is required'); + } + + if (!apiKey) { + throw new Error('API key is required to fetch deployment ID'); + } + + // Set up headers with the Bearer token format + const headers = { + Authorization: `Bearer ${apiKey}` + }; + + // Make the API request to get deployment ID + const response = await axios.get(`${apiServiceUrl}/api/configs/deploymentId`, { headers }); + + // Check if response is valid + if (!response.data) { + throw new Error('Failed to fetch deployment ID'); + } + + // The response should return a string directly + return response.data; + } catch (error) { + // Handle and transform error + const errorMessage = error instanceof Error ? error.message : 'Failed to fetch deployment ID'; + messageInstance.error(errorMessage); + throw error; + } +} \ No newline at end of file diff --git a/client/packages/lowcoder/src/pages/setting/environments/services/license.service.ts b/client/packages/lowcoder/src/pages/setting/environments/services/license.service.ts new file mode 100644 index 0000000000..ff0be0ce6b --- /dev/null +++ b/client/packages/lowcoder/src/pages/setting/environments/services/license.service.ts @@ -0,0 +1,49 @@ +import axios from 'axios'; +import { EnvironmentLicense } from '../types/environment.types'; + +/** + * Check if license endpoint exists for an environment + * @param apiServiceUrl - API service URL for the environment + * @param apiKey - API key for the environment + * @returns Promise with license information + */ +export async function checkEnvironmentLicense( + apiServiceUrl: string, + apiKey?: string +): Promise<EnvironmentLicense> { + try { + if (!apiServiceUrl) { + return { + isValid: false, + error: 'API service URL is required' + }; + } + + // Prepare headers with API key if available + const headers: Record<string, string> = {}; + if (apiKey) { + headers.Authorization = `Bearer ${apiKey}`; + } + + // Use GET request to check endpoint existence + await axios.get( + `${apiServiceUrl}/api/plugins/enterprise/license`, + { + headers, + timeout: 500 // Very short timeout for immediate failure when endpoint doesn't exist + } + ); + + // If we get a successful response, the endpoint exists + return { + isValid: true + }; + + } catch (error) { + // Any error means the endpoint doesn't exist or isn't accessible + return { + isValid: false, + error: 'License not available' + }; + } +} \ No newline at end of file diff --git a/client/packages/lowcoder/src/pages/setting/environments/services/managed-objects.service.ts b/client/packages/lowcoder/src/pages/setting/environments/services/managed-objects.service.ts new file mode 100644 index 0000000000..0a4e0b14a6 --- /dev/null +++ b/client/packages/lowcoder/src/pages/setting/environments/services/managed-objects.service.ts @@ -0,0 +1,207 @@ +import axios from "axios"; +import { messageInstance } from "lowcoder-design/src/components/GlobalInstances"; + +// Object types that can be managed +export enum ManagedObjectType { + ORG = "ORG", + APP = "APP", + QUERY = "QUERY", + DATASOURCE = "DATASOURCE" +} + +// Add this interface after the ManagedObjectType enum +export interface ManagedObject { + id: string; + managedId: string; + objGid: string; + environmentId: string; + objType: ManagedObjectType; +} + +/** + * Check if an object is managed + * @param objGid - Object's global ID + * @param environmentId - Environment ID + * @param objType - Object type (ORG, APP, QUERY, DATASOURCE) + * @returns Promise with boolean indicating if object is managed + */ +export async function isManagedObject( + objGid: string, + environmentId: string, + objType: ManagedObjectType +): Promise<boolean> { + try { + if (!objGid || !environmentId || !objType) { + throw new Error("Missing required parameters"); + } + + const response = await axios.get(`/api/plugins/enterprise/managed-obj`, { + params: { + objGid, + environmentId, + objType + } + }); + + return response.data.managed === true; + } catch (error) { + // If the object doesn't exist as managed, it's not an error + if (axios.isAxiosError(error) && error.response?.status === 404) { + return false; + } + + const errorMessage = error instanceof Error ? error.message : "Failed to check managed status"; + messageInstance.error(errorMessage); + throw error; + } +} + +/** + * Set an object as managed + * @param objGid - Object's global ID + * @param environmentId - Environment ID + * @param objType - Object type (ORG, APP, QUERY, DATASOURCE) + * @param objName - Object name (optional) + * @param objTags - Object tags (optional) + * @returns Promise with operation result + */ +export async function setManagedObject( + objGid: string, + environmentId: string, + objType: ManagedObjectType, + managedId?: string +): Promise<boolean> { + try { + if (!objGid || !environmentId || !objType) { + throw new Error("Missing required parameters"); + } + + const requestBody = { + objGid, + environmentId, + objType, + ...(managedId && { managedId }) + }; + + const response = await axios.post(`/api/plugins/enterprise/managed-obj`, requestBody); + + return response.status === 200; + } catch (error) { + const errorMessage = error instanceof Error ? error.message : `Failed to set ${objType} as managed`; + messageInstance.error(errorMessage); + throw error; + } +} + + +/** + * Set an object as unmanaged + * @param objGid - Object's global ID + * @param environmentId - Environment ID + * @param objType - Object type (ORG, APP, QUERY, DATASOURCE) + * @returns Promise with operation result + */ +export async function unsetManagedObject( + objGid: string, + environmentId: string, + objType: ManagedObjectType +): Promise<boolean> { + try { + if (!objGid || !environmentId || !objType) { + throw new Error("Missing required parameters"); + } + + const response = await axios.delete(`/api/plugins/enterprise/managed-obj`, { + params: { + objGid, + environmentId, + objType + } + }); + + return response.status === 200; + } catch (error) { + const errorMessage = error instanceof Error ? error.message : `Failed to remove ${objType} from managed`; + messageInstance.error(errorMessage); + throw error; + } +} + +// Add this new function +export async function getManagedObjects( + environmentId: string, + objType?: ManagedObjectType +): Promise<ManagedObject[]> { + try { + if (!environmentId) { + throw new Error("Missing environment ID"); + } + + const response = await axios.get(`/api/plugins/enterprise/managed-obj/list`, { + params: { + environmentId, + ...(objType && { objType }) // Only include objType in params if it's provided + } + }); + + return response.data.data; + } catch (error) { + const errorMessage = error instanceof Error ? error.message : "Failed to fetch managed objects"; + messageInstance.error(errorMessage); + throw error; + } +} + +/** + * Get a single managed object by its parameters + * @param objGid - Object's global ID + * @param environmentId - Environment ID + * @param objType - Object type (ORG, APP, QUERY, DATASOURCE) + * @returns Promise with ManagedObject if found + */ +export async function getSingleManagedObject( + objGid: string, + environmentId: string, + objType: ManagedObjectType +): Promise<ManagedObject | null> { + try { + if (!objGid || !environmentId || !objType) { + throw new Error("Missing required parameters"); + } + + const response = await axios.get(`/api/plugins/enterprise/managed-obj`, { + params: { + objGid, + environmentId, + objType + } + }); + + return response.data.data || null; + } catch (error) { + // If the object doesn't exist as managed, return null instead of throwing + if (axios.isAxiosError(error) && error.response?.status === 404) { + return null; + } + + const errorMessage = error instanceof Error ? error.message : "Failed to fetch managed object"; + messageInstance.error(errorMessage); + throw error; + } +} + + +export async function transferManagedObject(objGid: string, sourceEnvId: string, targetEnvId: string, objType: ManagedObjectType): Promise<void> { + try { + const managedObject = await getSingleManagedObject(objGid, sourceEnvId, objType); + if (managedObject) { + await setManagedObject(managedObject.objGid, targetEnvId, objType, managedObject.managedId); + } else { + throw new Error(`Managed object not found for objGid: ${objGid}`); + } + } catch (error) { + console.error('Error transferring managed object:', error); + throw error; + } +} + diff --git a/client/packages/lowcoder/src/pages/setting/environments/services/query.service.ts b/client/packages/lowcoder/src/pages/setting/environments/services/query.service.ts new file mode 100644 index 0000000000..4cf7a29be1 --- /dev/null +++ b/client/packages/lowcoder/src/pages/setting/environments/services/query.service.ts @@ -0,0 +1,90 @@ +/** + * Get merged queries (both regular and managed) for a workspace + */ +import axios from 'axios'; +import { getManagedObjects, ManagedObjectType, transferManagedObject } from './managed-objects.service'; +import { getWorkspaceQueries } from './environments.service'; +import { Query, QueryStats } from '../types/query.types'; +export interface MergedQueriesResult { + queries: Query[]; + stats: QueryStats; + } + + export interface DeployQueryParams { + envId: string; + targetEnvId: string; + queryId: string; + updateDependenciesIfNeeded?: boolean; + queryGid: string; + } + + + export async function getMergedWorkspaceQueries( + workspaceId: string, + environmentId: string, + apiKey: string, + apiServiceUrl: string + ): Promise<MergedQueriesResult> { + try { + // Fetch regular queries + + const regularQueries = await getWorkspaceQueries(workspaceId, apiKey, apiServiceUrl); + + const managedObjects = await getManagedObjects(environmentId, ManagedObjectType.QUERY); + + // Create a set of managed query GIDs for quick lookup + const managedQueryGids = new Set(managedObjects.map(obj => obj.objGid)); + + // Mark regular queries as managed if they exist in managed queries + const mergedQueries = regularQueries.queries.map((query: Query) => { + const isManaged = managedQueryGids.has(query.gid); + + return { + ...query, + managed: isManaged + }; + }); + + // Calculate stats + const total = mergedQueries.length; + const managed = mergedQueries.filter(query => query.managed).length; + + return { + queries: mergedQueries, + stats: { + total, + managed, + unmanaged: total - managed + } + }; + + } catch (error) { + console.error("Error in getMergedWorkspaceQueries:", error); + throw error; + } + } + + export async function deployQuery(params: DeployQueryParams): Promise<boolean> { + try { + const response = await axios.post('/api/plugins/enterprise/qlQuery/deploy', null, { + params: { + envId: params.envId, + targetEnvId: params.targetEnvId, + queryId: params.queryId, + updateDependenciesIfNeeded: params.updateDependenciesIfNeeded ?? false + } + }); + if (response.status === 200) { + await transferManagedObject( + params.queryGid, + params.envId, + params.targetEnvId, + ManagedObjectType.QUERY + ); + } + return response.status === 200; + } catch (error) { + console.error('Error deploying query:', error); + throw error; + } + } \ No newline at end of file diff --git a/client/packages/lowcoder/src/pages/setting/environments/services/workspace.service.ts b/client/packages/lowcoder/src/pages/setting/environments/services/workspace.service.ts new file mode 100644 index 0000000000..dec7c7cf7a --- /dev/null +++ b/client/packages/lowcoder/src/pages/setting/environments/services/workspace.service.ts @@ -0,0 +1,117 @@ +// services/workspacesService.ts (or wherever makes sense in your structure) +import { messageInstance } from "lowcoder-design/src/components/GlobalInstances"; +import { getEnvironmentWorkspaces } from "./environments.service"; +import { getManagedObjects, ManagedObject, ManagedObjectType, transferManagedObject } from "./managed-objects.service"; +import { Workspace } from "../types/workspace.types"; +import { ManagedOrg } from "../types/enterprise.types"; +import axios from "axios"; + +export interface WorkspaceStats { + total: number; + managed: number; + unmanaged: number; +} + +export interface MergedWorkspacesResult { + workspaces: Workspace[]; + stats: WorkspaceStats; +} + +export async function getMergedEnvironmentWorkspaces( + environmentId: string, + apiKey: string, + apiServiceUrl: string +): Promise<MergedWorkspacesResult> { + try { + // First, get regular workspaces + const regularWorkspaces = await getEnvironmentWorkspaces( + environmentId, + apiKey, + apiServiceUrl + ); + + // If no workspaces, return early with empty result + if (!regularWorkspaces.length) { + return { + workspaces: [], + stats: { + total: 0, + managed: 0, + unmanaged: 0 + } + }; + } + + // Only fetch managed workspaces if we have regular workspaces + let managedObjects: ManagedObject[] = []; + try { + managedObjects = await getManagedObjects(environmentId, ManagedObjectType.ORG); + } catch (error) { + console.error("Failed to fetch managed workspaces:", error); + // Continue with empty managed list + } + + // Merge the workspaces + const mergedWorkspaces = regularWorkspaces.map(ws => ({ + ...ws, + managed: managedObjects.some(obj => obj.objGid === ws.gid && obj.objType === ManagedObjectType.ORG) + })); + + // Calculate stats + const managedCount = mergedWorkspaces.filter(ws => ws.managed).length; + + return { + workspaces: mergedWorkspaces, + stats: { + total: mergedWorkspaces.length, + managed: managedCount, + unmanaged: mergedWorkspaces.length - managedCount + } + }; + } catch (error) { + const errorMessage = error instanceof Error ? error.message : "Failed to fetch workspaces"; + messageInstance.error(errorMessage); + throw error; + } +} + +/** + * Deploy a workspace to another environment + * @param params Deployment parameters + * @returns Promise with boolean indicating success + */ +export async function deployWorkspace(params: { + envId: string; + targetEnvId: string; + workspaceId: string; + deployCredential: boolean; // Mandatory parameter +}): Promise<boolean> { + try { + // Use the new endpoint format with only essential parameters + const response = await axios.post('/api/plugins/enterprise/org/deploy', null, { + params: { + orgGid: params.workspaceId, // Using workspaceId as orgGid + envId: params.envId, + targetEnvId: params.targetEnvId, + deployCredential: params.deployCredential + } + }); + + // After successful deployment, set the managed object in target environment + if (response.status === 200) { + await transferManagedObject( + params.workspaceId, // first param has to be GID + params.envId, + params.targetEnvId, + ManagedObjectType.ORG + ); + } + + + return response.status === 200; + } catch (error) { + const errorMessage = error instanceof Error ? error.message : 'Failed to deploy workspace'; + // Don't show message directly, let the calling component handle it + throw new Error(errorMessage); + } +} \ No newline at end of file diff --git a/client/packages/lowcoder/src/pages/setting/environments/types/app.types.ts b/client/packages/lowcoder/src/pages/setting/environments/types/app.types.ts new file mode 100644 index 0000000000..775a589fb5 --- /dev/null +++ b/client/packages/lowcoder/src/pages/setting/environments/types/app.types.ts @@ -0,0 +1,35 @@ + +export interface App { + orgId: string; + applicationId: string; + applicationGid: string; + name: string; + createAt: number; + createBy: string; + role: string; + applicationType: number; + applicationStatus: string; + folderId: string | null; + lastViewTime: number; + lastModifyTime: number; + lastEditedAt: number; + publicToAll: boolean; + publicToMarketplace: boolean; + agencyProfile: boolean; + editingUserId: string | null; + title: string; + description: string; + category: string; + icon: string; + published: boolean; + folder: boolean; + managed?: boolean; + id: string + } + + export interface AppStats { + total: number; + published: number; + managed: number; + unmanaged: number; + } \ No newline at end of file diff --git a/client/packages/lowcoder/src/pages/setting/environments/types/datasource.types.ts b/client/packages/lowcoder/src/pages/setting/environments/types/datasource.types.ts new file mode 100644 index 0000000000..b33e14e867 --- /dev/null +++ b/client/packages/lowcoder/src/pages/setting/environments/types/datasource.types.ts @@ -0,0 +1,41 @@ +/** + * Represents a DataSource configuration + */ +export interface DataSourceConfig { + usingUri: boolean; + srvMode: boolean; + ssl: boolean; + endpoints: any[]; + host: string | null; + port: number; + database: string | null; + username: string; + authMechanism: string | null; + } + + /** + * Represents a DataSource entity + */ + export interface DataSource { + id: string; + createdBy: string; + gid: string; + name: string; + type: string; + organizationId: string; + creationSource: number; + datasourceStatus: string; + pluginDefinition: any | null; + createTime: number; + datasourceConfig: DataSourceConfig; + managed?: boolean; + } + + /** + * Represents a DataSource with additional metadata + */ + export interface DataSourceWithMeta { + datasource: DataSource; + edit: boolean; + creatorName: string; + } diff --git a/client/packages/lowcoder/src/pages/setting/environments/types/deployable-item.types.ts b/client/packages/lowcoder/src/pages/setting/environments/types/deployable-item.types.ts new file mode 100644 index 0000000000..55964eefef --- /dev/null +++ b/client/packages/lowcoder/src/pages/setting/environments/types/deployable-item.types.ts @@ -0,0 +1,22 @@ +// types/deployable-item.types.ts +import { Environment } from './environment.types'; + + + +export interface DeployField { + name: string; + label: string; + type: 'checkbox' | 'select' | 'input'; + defaultValue?: any; + required?: boolean; + options?: Array<{label: string, value: any}>; // For select fields +} +// Configuration for each deployable item type +export interface DeployableItemConfig { + deploy: { + singularLabel: string; + fields: DeployField[]; + prepareParams: (item: any, values: any, sourceEnv: Environment, targetEnv: Environment) => any; + execute: (params: any) => Promise<any>; + }; +} \ No newline at end of file diff --git a/client/packages/lowcoder/src/pages/setting/environments/types/enterprise.types.ts b/client/packages/lowcoder/src/pages/setting/environments/types/enterprise.types.ts new file mode 100644 index 0000000000..e51a787403 --- /dev/null +++ b/client/packages/lowcoder/src/pages/setting/environments/types/enterprise.types.ts @@ -0,0 +1,12 @@ +import { Workspace } from "../types/workspace.types"; +export interface ManagedOrg { + orgGid: string; + environmentId: string; + orgName: string; + orgTags: string[]; + createdAt: string; + updatedAt: string; + } + + + export type MergedWorkspace = Workspace & { managed: boolean }; diff --git a/client/packages/lowcoder/src/pages/setting/environments/types/environment.types.ts b/client/packages/lowcoder/src/pages/setting/environments/types/environment.types.ts new file mode 100644 index 0000000000..388fbab02b --- /dev/null +++ b/client/packages/lowcoder/src/pages/setting/environments/types/environment.types.ts @@ -0,0 +1,29 @@ +/** + * Interface representing an Environment entity + */ +export interface Environment { + environmentId: string; + environmentName?: string; + environmentDescription?: string; + environmentIcon?: string; + environmentType: string; + environmentApiServiceUrl?: string; + environmentNodeServiceUrl?: string; + environmentFrontendUrl?: string; + environmentApikey: string; + isMaster: boolean; + createdAt: string; + updatedAt: string; + // License-related properties + isLicensed?: boolean; + licenseStatus?: 'checking' | 'licensed' | 'unlicensed' | 'error'; + licenseError?: string; +} + +/** + * Interface representing license information for an environment + */ +export interface EnvironmentLicense { + isValid: boolean; + error?: string; +} \ No newline at end of file diff --git a/client/packages/lowcoder/src/pages/setting/environments/types/query.types.ts b/client/packages/lowcoder/src/pages/setting/environments/types/query.types.ts new file mode 100644 index 0000000000..212efeaacc --- /dev/null +++ b/client/packages/lowcoder/src/pages/setting/environments/types/query.types.ts @@ -0,0 +1,62 @@ +// types/query.types.ts + +export interface LibraryQueryDSL { + query: { + compType: string; + comp: { + bodyType: string; + body: string; + httpMethod: string; + path: string; + headers: Array<{ key: string; value: string }>; + params: Array<{ key: string; value: string }>; + bodyFormData: Array<{ key: string; value: string; type: string }>; + }; + id: string; + name: string; + order: number; + datasourceId: string; + triggerType: string; + onEvent: any[]; + notification: { + showSuccess: boolean; + showFail: boolean; + fail: any[]; + }; + timeout: string; + confirmationModal: any; + variables: any[]; + periodic: boolean; + periodicTime: string; + cancelPrevious: boolean; + depQueryName: string; + delayTime: string; + }; +} + +export interface Query { + id: string; + gid: string; + organizationId: string; + name: string; + libraryQueryDSL: LibraryQueryDSL; + createTime: number; + creatorName: string; + managed?: boolean; +} + +export interface QueryStats { + total: number; + managed: number; + unmanaged: number; +} + +export interface QueryResponse { + code: number; + message: string; + data: Query[]; + pageNum: number; + pageSize: number; + total: number; + success: boolean; +} \ No newline at end of file diff --git a/client/packages/lowcoder/src/pages/setting/environments/types/userGroup.types.ts b/client/packages/lowcoder/src/pages/setting/environments/types/userGroup.types.ts new file mode 100644 index 0000000000..5791204c83 --- /dev/null +++ b/client/packages/lowcoder/src/pages/setting/environments/types/userGroup.types.ts @@ -0,0 +1,26 @@ +export interface UserGroupStats { + users: string[]; + adminUserCount: number; + userCount: number; +} + +export interface UserGroup { + groupId: string; + groupGid: string; + groupName: string; + allUsersGroup: boolean; + visitorRole: string; + createTime: number; + dynamicRule: any; + stats: UserGroupStats; + syncDelete: boolean; + devGroup: boolean; + syncGroup: boolean; +} + +export interface UserGroupsTabStats { + total: number; + allUsers: number; + developers: number; + custom: number; +} \ No newline at end of file diff --git a/client/packages/lowcoder/src/pages/setting/environments/types/workspace.types.ts b/client/packages/lowcoder/src/pages/setting/environments/types/workspace.types.ts new file mode 100644 index 0000000000..15f1e7dfbc --- /dev/null +++ b/client/packages/lowcoder/src/pages/setting/environments/types/workspace.types.ts @@ -0,0 +1,16 @@ +/** + * Represents a Workspace entity in an environment + */ +export interface Workspace { + id: string; + name: string; + role: string; // 'admin', 'member', etc. + creationDate?: number; // timestamp + status: string; // 'ACTIVE', 'INACTIVE', etc. + // Optional fields + gid?: string; + createdBy?: string; + isAutoGeneratedOrganization?: boolean | null; + logoUrl?: string; + managed?: boolean; + } \ No newline at end of file diff --git a/client/packages/lowcoder/src/pages/setting/environments/utils/environmentUtils.ts b/client/packages/lowcoder/src/pages/setting/environments/utils/environmentUtils.ts new file mode 100644 index 0000000000..59a21f8596 --- /dev/null +++ b/client/packages/lowcoder/src/pages/setting/environments/utils/environmentUtils.ts @@ -0,0 +1,71 @@ +/** + * Utility functions for environment-related features + */ + +/** + * Get the appropriate color for an environment tag based on its type + * @param envType The environment type/stage (DEV, TEST, PREPROD, PROD) + * @returns A color string to use with Ant Design's Tag component + */ +export const getEnvironmentTagColor = (envType: string | undefined): string => { + if (!envType) return 'default'; + + // Normalize to uppercase for consistent comparison + const type = envType.toUpperCase(); + + switch (type) { + case 'PROD': + return 'red'; // Red for production - indicates caution + + case 'PREPROD': + return 'orange'; // Orange for pre-production + + case 'TEST': + return 'purple'; // Purple for test environment + + case 'DEV': + return 'blue'; // Blue for development + + default: + return 'default'; // Default gray for unknown types + } +}; + +/** + * Get the appropriate background gradient for an environment based on its type + * @param envType The environment type/stage (DEV, TEST, PREPROD, PROD) + * @returns A CSS linear gradient string for the background + */ +export const getEnvironmentHeaderGradient = (envType: string | undefined): string => { + if (!envType) return 'linear-gradient(135deg, #1890ff 0%, #096dd9 100%)'; + + // Normalize to uppercase for consistent comparison + const type = envType.toUpperCase(); + + switch (type) { + case 'PROD': + return 'linear-gradient(135deg, #f5222d 0%, #fa8c16 100%)'; + + case 'PREPROD': + return 'linear-gradient(135deg, #fa8c16 0%, #faad14 100%)'; + + case 'TEST': + return 'linear-gradient(135deg, #722ed1 0%, #b37feb 100%)'; + + case 'DEV': + return 'linear-gradient(135deg, #1890ff 0%, #096dd9 100%)'; + + default: + return 'linear-gradient(135deg, #1890ff 0%, #096dd9 100%)'; + } +}; + +/** + * Format an environment type for display + * @param envType The environment type string + * @returns Formatted environment type string + */ +export const formatEnvironmentType = (envType: string | undefined): string => { + if (!envType) return 'UNKNOWN'; + return envType.toUpperCase(); +}; \ No newline at end of file diff --git a/client/packages/lowcoder/src/pages/setting/hubspotModal.tsx b/client/packages/lowcoder/src/pages/setting/hubspotModal.tsx new file mode 100644 index 0000000000..595ec9d391 --- /dev/null +++ b/client/packages/lowcoder/src/pages/setting/hubspotModal.tsx @@ -0,0 +1,126 @@ +import { useEffect } from "react"; +import { Modal, Typography, Card, Space, Divider } from "antd"; +import styled from "styled-components"; +import Title from "antd/es/typography/Title"; +import { trans } from "i18n"; + +const { Paragraph, Text } = Typography; + +const HubspotFormContainer = styled.div` + max-width: 100%; + width: 100%; + .hs-form { + max-width: 100% !important; + } + --step-content-padding: 0px; + .hsfc-Step__Content { + padding: 0 !important; + } +`; + +declare global { + interface Window { + hbspt: { + forms: { + create: (options: { + region: string; + portalId: string; + formId: string; + target: string | HTMLElement | null; + }) => void; + }; + }; + } +} + +interface Props { + open: boolean; + onClose: () => void; + orgId: string; + deploymentIds: string[]; +} + +export function HubspotModal({ open, onClose, orgId, deploymentIds }: Props) { + useEffect(() => { + if (!open) return; + + const scriptId = "hubspot-script"; + const existingScript = document.getElementById(scriptId) as HTMLScriptElement; + + const createForm = () => { + setTimeout(() => { + if (window.hbspt && document.querySelector("#hubspot-form")) { + window.hbspt.forms.create({ + region: "eu1", + portalId: "144574215", + formId: "f03697ad-62cf-4161-a3de-228a2db1180b", + target: "#hubspot-form", + }); + } + }, 0); + }; + + if (!existingScript) { + const script = document.createElement("script"); + script.src = "https://js-eu1.hsforms.net/forms/embed/v2.js"; + script.async = true; + script.defer = true; + script.id = scriptId; + script.onload = createForm; + document.body.appendChild(script); + } else { + if (window.hbspt) { + createForm(); + } else { + existingScript.addEventListener("load", createForm); + } + } + }, [open]); + + return ( + <Modal + open={open} + onCancel={onClose} + footer={null} + width={720} + destroyOnClose + > + <Space direction="vertical" size="large" style={{ width: "100%" }}> + {/* Info Header Card */} + <Card> + <Typography> + <Title level={2}>{trans("enterprise.requestLicense")}</Title> + + <Paragraph strong> + <Text>Organization ID:</Text> + </Paragraph> + <Paragraph copyable>{orgId}</Paragraph> + + <Paragraph strong> + <Text>Deployment IDs:</Text> + </Paragraph> + + <Space direction="vertical" style={{ width: "100%" }}> + {deploymentIds.length === 0 ? ( + <Text type="secondary">No deployments found.</Text> + ) : ( + deploymentIds.map((id, idx) => ( + <Paragraph key={idx} copyable style={{ marginBottom: 4 }}> + {id} + </Paragraph> + )) + )} + </Space> + </Typography> + </Card> + + {/* Hubspot Form Card */} + <Card> + <HubspotFormContainer> + <div id="hubspot-form"/> + </HubspotFormContainer> + </Card> + </Space> + </Modal> + ); +} diff --git a/client/packages/lowcoder/src/pages/setting/idSource/createModal.tsx b/client/packages/lowcoder/src/pages/setting/idSource/createModal.tsx index d154bfec04..8a68e629ec 100644 --- a/client/packages/lowcoder/src/pages/setting/idSource/createModal.tsx +++ b/client/packages/lowcoder/src/pages/setting/idSource/createModal.tsx @@ -61,7 +61,7 @@ function CreateModal(props: CreateModalProp) { onCancel={handleCancel} showOkButton={false} showCancelButton={false} - destroyOnClose + destroyOnHidden afterClose={() => form.resetFields()} > <FormStyled diff --git a/client/packages/lowcoder/src/pages/setting/permission/addGroupUserDialog.tsx b/client/packages/lowcoder/src/pages/setting/permission/addGroupUserDialog.tsx index 6f4d72f253..8af0e3cecc 100644 --- a/client/packages/lowcoder/src/pages/setting/permission/addGroupUserDialog.tsx +++ b/client/packages/lowcoder/src/pages/setting/permission/addGroupUserDialog.tsx @@ -65,7 +65,7 @@ function AddGroupUserDialog(props: { <CustomModal title={trans("memberSettings.addMember")} open={dialogVisible} - destroyOnClose + destroyOnHidden onCancel={() => { setDialogVisible(false); }} diff --git a/client/packages/lowcoder/src/pages/setting/permission/groupUsersPermission.tsx b/client/packages/lowcoder/src/pages/setting/permission/groupUsersPermission.tsx index 189e147abc..c8270eeb4d 100644 --- a/client/packages/lowcoder/src/pages/setting/permission/groupUsersPermission.tsx +++ b/client/packages/lowcoder/src/pages/setting/permission/groupUsersPermission.tsx @@ -30,6 +30,7 @@ import { } from "./styledComponents"; import history from "util/history"; import { PERMISSION_SETTING } from "constants/routesURL"; +import Column from "antd/es/table/Column"; const StyledAddIcon = styled(AddIcon)` g path { @@ -49,7 +50,7 @@ type GroupPermissionProp = { }; function GroupUsersPermission(props: GroupPermissionProp) { - const { Column } = TableStyled; + // const { Column } = TableStyled; const { group, orgId, groupUsers, currentUserGroupRole, currentUser, setModify, modify, loading } = props; const adminCount = groupUsers.filter((user) => isGroupAdmin(user.role)).length; const sortedGroupUsers = useMemo(() => { @@ -127,7 +128,7 @@ function GroupUsersPermission(props: GroupPermissionProp) { render={(value, record: GroupUser) => ( <CustomSelect style={{ width: "140px", height: "32px" }} - dropdownStyle={{ width: "149px" }} + styles={{ popup: { root: { width: "149px" }}}} defaultValue={record.role} key={record.role} disabled={ @@ -215,4 +216,4 @@ function GroupUsersPermission(props: GroupPermissionProp) { ); } -export default GroupUsersPermission; +export default GroupUsersPermission; \ No newline at end of file diff --git a/client/packages/lowcoder/src/pages/setting/permission/orgUsersPermission.tsx b/client/packages/lowcoder/src/pages/setting/permission/orgUsersPermission.tsx index 4e4a189db4..091cb693d2 100644 --- a/client/packages/lowcoder/src/pages/setting/permission/orgUsersPermission.tsx +++ b/client/packages/lowcoder/src/pages/setting/permission/orgUsersPermission.tsx @@ -45,6 +45,7 @@ import { validateResponse } from "api/apiUtils"; import copyToClipboard from "copy-to-clipboard"; import { BackgroundColor } from "constants/style"; import { messageInstance } from "lowcoder-design/src/components/GlobalInstances"; +import Column from "antd/es/table/Column"; const StyledMembersIcon = styled(MembersIcon)` g g { @@ -62,7 +63,6 @@ type UsersPermissionProp = { }; function OrgUsersPermission(props: UsersPermissionProp) { - const { Column } = TableStyled; const { orgId, orgUsers, currentUser, setModify, modify, loading } = props; const adminCount = orgUsers.filter( (user) => user.role === ADMIN_ROLE || user.role === SUPER_ADMIN_ROLE, @@ -180,7 +180,7 @@ function OrgUsersPermission(props: UsersPermissionProp) { render={(value, record: OrgUser) => ( <CustomSelect style={{ width: "140px", height: "32px" }} - dropdownStyle={{ width: "149px" }} + styles={{ popup: { root: { width: "149px" }}}} defaultValue={record.role} key={record.role} optionLabelProp="label" @@ -301,4 +301,4 @@ function OrgUsersPermission(props: UsersPermissionProp) { ); } -export default OrgUsersPermission; +export default OrgUsersPermission; \ No newline at end of file diff --git a/client/packages/lowcoder/src/pages/setting/settingHome.tsx b/client/packages/lowcoder/src/pages/setting/settingHome.tsx index e6620b22ff..0017e598fc 100644 --- a/client/packages/lowcoder/src/pages/setting/settingHome.tsx +++ b/client/packages/lowcoder/src/pages/setting/settingHome.tsx @@ -1,14 +1,18 @@ +import { useState } from "react"; +import { useSelector } from "react-redux"; +import { useParams } from "react-router-dom"; +import { Helmet } from "react-helmet"; +import { Card, Button } from "antd"; + import { Organization } from "./organization"; import PermissionSetting from "./permission"; import { ThemeHome } from "./theme"; import { AdvancedSetting } from "./advanced/AdvancedSetting"; import { currentOrgAdmin } from "util/permissionUtils"; import { trans } from "i18n"; -import AuditSetting from "@lowcoder-ee/pages/setting/audit"; -import { isEE, isEnterpriseMode, isSelfDomain, showAuditLog } from "util/envUtils"; import { TwoColumnSettingPageContent } from "./styled"; import SubSideBar from "components/layout/SubSideBar"; -import { +import { Menu, UserGroupIcon, UserShieldIcon, @@ -16,130 +20,134 @@ import { ThemeIcon, WorkspacesIcon, SubscriptionIcon, - } from "lowcoder-design"; -import { useSelector } from "react-redux"; -import { useEffect } from "react"; + EnvironmentsIcon, + UsageStatisticsIcon, + AutitLogsIcon, + BrandingIcon, +} from "lowcoder-design"; import { getUser } from "redux/selectors/usersSelectors"; -import history from "util/history"; -import { useParams } from "react-router-dom"; -import { BrandingSetting } from "@lowcoder-ee/pages/setting/branding/BrandingSetting"; -import { IdSourceHome } from "@lowcoder-ee/pages/setting/idSource"; +import { getDeploymentId } from "@lowcoder-ee/redux/selectors/configSelectors"; import { selectSystemConfig } from "redux/selectors/configSelectors"; -import { enableCustomBrand } from "util/featureFlagUtils"; +import { selectIsLicenseActive } from "redux/selectors/enterpriseSelectors"; + import FreeLimitTag from "pages/common/freeLimitTag"; -import { Helmet } from "react-helmet"; -import { Card } from "antd"; +import { Branding } from "@lowcoder-ee/pages/setting/branding"; +import { Environments} from "@lowcoder-ee/pages/setting/environments"; +import { AppUsage } from "@lowcoder-ee/pages/setting/appUsage"; +import { AuditLog } from "@lowcoder-ee/pages/setting/audit"; +import { IdSourceHome } from "@lowcoder-ee/pages/setting/idSource"; import { Subscription } from "./subscriptions"; +import history from "util/history"; +import { HubspotModal } from "./hubspotModal"; enum SettingPageEnum { - UserGroups = "permission", Organization = "organization", - Subscription = "subscription", - Audit = "audit", + OAuthProvider = "oauth-provider", + UserGroups = "permission", Theme = "theme", - Branding = "branding", Advanced = "advanced", - OAuthProvider = "oauth-provider", - AppUsage = "app-usage", Environments = "environments", + AppUsage = "app-usage", + AuditLog = "audit", + Branding = "branding", + Subscription = "subscription", } export function SettingHome() { const user = useSelector(getUser); const config = useSelector(selectSystemConfig); + const isLicenseActive = useSelector(selectIsLicenseActive); + const deploymentId = useSelector(getDeploymentId); // Single deploymentId const selectKey = useParams<{ setting: string }>().setting || SettingPageEnum.UserGroups; + const [hubspotVisible, setHubspotVisible] = useState(false); + const items = [ { key: SettingPageEnum.Organization, label: trans("settings.organization"), - icon: <WorkspacesIcon width={"20px"}/>, + icon: <WorkspacesIcon width={"20px"} />, }, { key: SettingPageEnum.OAuthProvider, - label: (trans("settings.oauthProviders")), + label: trans("settings.oauthProviders"), disabled: !currentOrgAdmin(user), - icon: <UserShieldIcon width={"20px"}/>, + icon: <UserShieldIcon width={"20px"} />, }, { key: SettingPageEnum.UserGroups, label: trans("settings.userGroups"), - icon: <UserGroupIcon width={"20px"}/>, + icon: <UserGroupIcon width={"20px"} />, }, { key: SettingPageEnum.Theme, label: trans("settings.theme"), - icon: <ThemeIcon width={"20px"}/>, + icon: <ThemeIcon width={"20px"} />, }, { key: SettingPageEnum.Advanced, label: trans("settings.advanced"), - icon: <LeftSettingIcon width={"20px"}/>, + icon: <LeftSettingIcon width={"20px"} />, }, - - // Premium features - { key: SettingPageEnum.Environments, label: ( <span> <span className="text">{trans("settings.environments")}</span> - <FreeLimitTag text={trans("settings.premium")} /> + {!isLicenseActive && <FreeLimitTag text={trans("settings.premium")} />} </span> ), - disabled: true, + icon: <EnvironmentsIcon width={"20px"} />, + disabled: !currentOrgAdmin(user), }, { key: SettingPageEnum.AppUsage, label: ( <span> <span className="text">{trans("settings.appUsage")}</span> - <FreeLimitTag text={trans("settings.premium")} /> + {!isLicenseActive && <FreeLimitTag text={trans("settings.premium")} />} </span> ), - disabled: true, + icon: <UsageStatisticsIcon width={"20px"} />, + disabled: !currentOrgAdmin(user), }, { - key: SettingPageEnum.Audit, + key: SettingPageEnum.AuditLog, label: ( <span> <span className="text">{trans("settings.audit")}</span> - {(!showAuditLog(config) || !currentOrgAdmin(user)) && ( - <FreeLimitTag text={trans("settings.premium")} /> - )} + {!isLicenseActive && <FreeLimitTag text={trans("settings.premium")} />} </span> ), - disabled: !showAuditLog(config) || !currentOrgAdmin(user), + icon: <AutitLogsIcon width={"20px"} />, + disabled: !currentOrgAdmin(user), }, { key: SettingPageEnum.Branding, label: ( <span> <span className="text">{trans("settings.branding")}</span> - {(!isEE() || - !currentOrgAdmin(user) || - !enableCustomBrand(config) || - (!isSelfDomain(config) && !isEnterpriseMode(config))) && ( - <FreeLimitTag text={trans("settings.premium")} /> - )} + {!isLicenseActive && <FreeLimitTag text={trans("settings.premium")} />} </span> ), - disabled: - !isEE() || - !currentOrgAdmin(user) || - !enableCustomBrand(config) || - (!isSelfDomain(config) && !isEnterpriseMode(config)), + icon: <BrandingIcon width={"20px"} />, + disabled: !currentOrgAdmin(user), }, - { + { key: SettingPageEnum.Subscription, label: trans("settings.subscription"), - icon: <SubscriptionIcon width={"20px"}/>, - } + icon: <SubscriptionIcon width={"20px"} />, + }, ]; return ( <> - <Helmet>{<title>{trans("productName")} {trans("settings.title")}</title>}</Helmet> + <Helmet> + <title> + {trans("productName")} {trans("settings.title")} + </title> + </Helmet> + <TwoColumnSettingPageContent> <SubSideBar title={trans("settings.title")}> <Menu @@ -148,30 +156,42 @@ export function SettingHome() { selectedKeys={[selectKey]} onClick={(value) => { history.push("/setting/" + value.key); - } } - items={items} /> + }} + items={items} + /> - <Card style={{marginTop: "40px", color:"#aaa"}}> - <div>If you are interested in early access to the upcoming Enterprise Edition, please contact us: <a href="mailto:service@lowcoder.cloud">service@lowcoder.cloud</a></div> - </Card> + {!isLicenseActive && ( + <Card style={{ marginTop: "40px", color: "#aaa" }}> + <div style={{ marginBottom: 12 }}> + {trans("enterprise.premiumFeaturesNotice")} + </div> + <Button type="primary" onClick={() => setHubspotVisible(true)}> + {trans("enterprise.requestLicensesBtton")} + </Button> + </Card> + )} </SubSideBar> - {selectKey === SettingPageEnum.UserGroups && <PermissionSetting />} + {selectKey === SettingPageEnum.Organization && <Organization />} - {selectKey === SettingPageEnum.Theme && <ThemeHome />} {selectKey === SettingPageEnum.OAuthProvider && <IdSourceHome />} - {selectKey === SettingPageEnum.Audit && <AuditSetting />} - {selectKey === SettingPageEnum.Branding && <BrandingSetting />} + {selectKey === SettingPageEnum.UserGroups && <PermissionSetting />} + {selectKey === SettingPageEnum.Theme && <ThemeHome />} {selectKey === SettingPageEnum.Advanced && <AdvancedSetting />} + {selectKey === SettingPageEnum.Environments && <Environments />} + {selectKey === SettingPageEnum.AppUsage && <AppUsage />} + {selectKey === SettingPageEnum.AuditLog && <AuditLog />} + {selectKey === SettingPageEnum.Branding && <Branding />} {selectKey === SettingPageEnum.Subscription && <Subscription />} </TwoColumnSettingPageContent> + + <HubspotModal + open={hubspotVisible} + onClose={() => setHubspotVisible(false)} + orgId={user.currentOrgId} + deploymentIds={[deploymentId]} // Pass current single ID as array + /> </> ); } -// { -// key: SettingPageEnum.Subscription, -// label: trans("settings.subscription"), -// icon: <SubscriptionIcon width={"20px"}/>, -// } - export default SettingHome; diff --git a/client/packages/lowcoder/src/pages/setting/theme/ThemeCompPanel.tsx b/client/packages/lowcoder/src/pages/setting/theme/ThemeCompPanel.tsx index 99a57434ad..22af429cad 100644 --- a/client/packages/lowcoder/src/pages/setting/theme/ThemeCompPanel.tsx +++ b/client/packages/lowcoder/src/pages/setting/theme/ThemeCompPanel.tsx @@ -30,6 +30,8 @@ import { JSONObject } from "util/jsonTypes"; import PreviewApp from "components/PreviewApp"; import { parseCompType } from "comps/utils/remote"; import { defaultTheme } from "@lowcoder-ee/constants/themeConstants"; +import { useSelector } from "react-redux"; +import { getBrandingSetting } from "@lowcoder-ee/redux/selectors/enterpriseSelectors"; const CompDiv = styled.div` display: flex; @@ -79,8 +81,10 @@ const IconContain = (props: { isSelected: boolean, }) => { const { Icon, isSelected } = props; + const brandingSettings = useSelector(getBrandingSetting); + return ( - <CompIconDiv $w={64} $h={64} $isSelected={isSelected}> + <CompIconDiv $w={64} $h={64} $isSelected={isSelected} $color={brandingSettings?.config_set?.mainBrandingColor}> <Icon /> </CompIconDiv> ); diff --git a/client/packages/lowcoder/src/pages/setting/theme/createModal.tsx b/client/packages/lowcoder/src/pages/setting/theme/createModal.tsx index ddddfe6a81..3f44b0bcf6 100644 --- a/client/packages/lowcoder/src/pages/setting/theme/createModal.tsx +++ b/client/packages/lowcoder/src/pages/setting/theme/createModal.tsx @@ -98,7 +98,7 @@ function CreateModal(props: CreateModalProp) { onOk={handleOk} okButtonProps={{ disabled: !name || !selectId }} onCancel={handleCancel} - destroyOnClose + destroyOnHidden draggable={true} > <ModalNameDiv> diff --git a/client/packages/lowcoder/src/pages/setting/theme/detail/index.tsx b/client/packages/lowcoder/src/pages/setting/theme/detail/index.tsx index f2ba2dfeeb..476173e912 100644 --- a/client/packages/lowcoder/src/pages/setting/theme/detail/index.tsx +++ b/client/packages/lowcoder/src/pages/setting/theme/detail/index.tsx @@ -7,9 +7,9 @@ import { ThemeType, } from "api/commonSettingApi"; import history from "util/history"; -import { BASE_URL, THEME_SETTING } from "constants/routesURL"; +import { THEME_SETTING } from "constants/routesURL"; import ThemeSettingsSelector, { configChangeParams } from "../../../../components/ThemeSettingsSelector"; -import React, { lazy, useState } from "react"; +import React, { lazy } from "react"; import { connect } from "react-redux"; import { fetchCommonSettings, setCommonSettings } from "redux/reduxActions/commonSettingsActions"; import { AppState } from "redux/reducers"; @@ -21,7 +21,6 @@ import { DetailTitle, ResetButton, SaveButton, - ChartDesc, ChartInput, Footer, Header, @@ -41,7 +40,7 @@ import { HeaderBack } from "pages/setting/permission/styledComponents"; import dsl from "./previewDsl"; import chartDsl from "./chartPreviewDsl"; import { messageInstance } from "lowcoder-design/src/components/GlobalInstances"; -import { Card, Collapse, CollapseProps, Divider, Flex, List, Tooltip } from 'antd'; +import { Card, Divider, Flex, List, Tooltip } from 'antd'; import { ThemeCompPanel } from "pages/setting/theme/ThemeCompPanel"; import { JSONObject } from "@lowcoder-ee/util/jsonTypes"; diff --git a/client/packages/lowcoder/src/pages/setting/theme/themeList.tsx b/client/packages/lowcoder/src/pages/setting/theme/themeList.tsx index 328dcf6d6a..fe1e5ed314 100644 --- a/client/packages/lowcoder/src/pages/setting/theme/themeList.tsx +++ b/client/packages/lowcoder/src/pages/setting/theme/themeList.tsx @@ -160,7 +160,7 @@ function ThemeList(props: ThemeListProp) { <Dropdown trigger={["click"]} getPopupContainer={() => document.getElementById("theme-list-table")!} - dropdownRender={() => ( + popupRender={() => ( <Menu onClick={(params) => { if (params.key !== MENU_TYPE.RENAME) { diff --git a/client/packages/lowcoder/src/pages/support/supportOverview.tsx b/client/packages/lowcoder/src/pages/support/supportOverview.tsx index 545dffe9e4..44a12eb541 100644 --- a/client/packages/lowcoder/src/pages/support/supportOverview.tsx +++ b/client/packages/lowcoder/src/pages/support/supportOverview.tsx @@ -245,7 +245,7 @@ export function SupportOverview() { open={isCreateFormShow} onCancel={() => showCreateForm(false)} activeStepKey={"type"} - destroyOnClose={true} + destroyOnHidden={true} width="888px" steps={[ { diff --git a/client/packages/lowcoder/src/pages/userAuth/authComponents.tsx b/client/packages/lowcoder/src/pages/userAuth/authComponents.tsx index 9c2b8eb347..40cd50031b 100644 --- a/client/packages/lowcoder/src/pages/userAuth/authComponents.tsx +++ b/client/packages/lowcoder/src/pages/userAuth/authComponents.tsx @@ -1,5 +1,5 @@ import { CheckboxChangeEvent } from "antd/es/checkbox"; -import React, { CSSProperties, useRef } from "react"; +import React, { CSSProperties, ReactNode, useMemo, useRef } from "react"; import { CheckBox, PackUpIcon, TacoButton } from "lowcoder-design"; import { Link } from "react-router-dom"; import styled from "styled-components"; @@ -7,43 +7,85 @@ import ReactHotkeys from "util/hotkeys"; import { StyledLink } from "pages/common/styledComponent"; import { trans } from "i18n"; import { favicon } from "assets/images"; +import { Col, Row, Typography } from "antd"; +import { getBrandingSetting } from "@lowcoder-ee/redux/selectors/enterpriseSelectors"; +import { useSelector } from "react-redux"; +import { buildMaterialPreviewURL } from "@lowcoder-ee/util/materialUtils"; + +const StyledBrandingColumn = styled(Col)<{$bgImage?: string | null}>` + background-color: rgb(234, 234, 234); + background-image: url(${props => props.$bgImage}); + background-size: cover; + background-repeat: no-repeat; + padding: 28px 36px; + display: flex; + flex-direction: column; + justify-content: center; + width: 100%; +`; -const AuthCardContainer = styled.div` +const StyledBrandingText = styled(Typography.Title)` + font-size: 24px !important; + color: black !important; + padding: 20px; + background-color: rgb(234, 234, 234); + border-radius: 10px; + + text-align: center; + + @media screen and (max-width: 640px) { + font-size: 34px !important; + } +`; + +const StyledRightColumn = styled(Col)` + padding: 28px 36px; + display: flex; + flex-direction: column; + justify-content: center; + width: 100%; +`; + +const AuthCardContainer = styled.div<{$isEE?: boolean}>` display: flex; flex-direction: column; align-items: center; - min-height: 100vh; + // min-height: 100vh; height: 100%; background-size: 100% 100%; `; -const AuthCard = styled.div` +const AuthCard = styled.div<{$isEE?: boolean}>` display: flex; flex-direction: column; - width: 480px; + width: ${props => props.$isEE ? '850px' : '480px'}; + max-width: 90%; background: #ffffff; box-shadow: 0 0 20px 20px rgba(246, 248, 250, 0.85); border-radius: 16px; - padding: 28px 36px; - margin-top: 40px; + padding: ${props => props.$isEE ? '0px' : '28px 36px'}; + margin-top: ${props => props.$isEE ? '13vh': '40px'}; + overflow: hidden; @media screen and (max-width: 640px) { margin: 32px 18px 18px 18px; width: calc(100vw - 36px); - padding: 32px 24px; + padding: ${props => props.$isEE ? '0px' : '32px 24px'}; } `; -const AuthCardHeading = styled.div<{ $type?: string }>` +const AuthCardHeading = styled.div<{ $type?: string, $isEE?: boolean }>` font-weight: 600; font-size: 28px; color: #222222; line-height: 28px; - margin-top: 13vh; + text-align: center; + margin-bottom: ${props => props.$isEE ? '28px': '0'}; + margin-top: ${props => props.$isEE ? '0': '13vh'}; @media screen and (min-height: 700px) { - margin-top: 107px; + margin-top: ${props => props.$isEE ? '0': '107px'}; } @media screen and (max-height: 700px) { - margin-top: 47px; + margin-top: ${props => props.$isEE ? '0': '47px'}; } @media screen and (max-width: 640px) { font-size: 23px; @@ -136,22 +178,77 @@ const StyledConfirmButton = styled(TacoButton)` transition: unset; `; +const BrandingWrapper = (props: { + isEE?: boolean; + children: ReactNode; +}) => { + const brandingSettings = useSelector(getBrandingSetting); + const brandingImage = useMemo(() => { + const imageUrl = brandingSettings?.config_set?.signUpPageImage || ''; + if (Boolean(brandingSettings?.orgId)) { + return buildMaterialPreviewURL(imageUrl); + } + return imageUrl; + }, [brandingSettings?.orgId, brandingSettings?.config_set?.signUpPageImage]); + const brandingText = brandingSettings?.config_set?.signUpPageText; + + if (!props.isEE) { + return <>{props.children}</> + } + + return ( + <> + + <Row style={{ minHeight: '500px' }}> + <StyledBrandingColumn md={12} sm={24} $bgImage={brandingImage}> + {brandingText && ( + <StyledBrandingText> + {brandingText} + </StyledBrandingText> + )} + </StyledBrandingColumn> + <StyledRightColumn md={12} sm={24}> + {props.children} + </StyledRightColumn> + </Row> + </> + ) +} + export const AuthContainer = (props: { children: any; heading?: string; subHeading?: string; type?: string + isEE?: boolean; + orgId?: string; }) => { return ( - <AuthCardContainer> - <AuthCardHeading - $type={props.type} - > - {props.heading || ""} - </AuthCardHeading> - - <AuthCard>{props.children}</AuthCard> - { props.subHeading && ( + <AuthCardContainer $isEE={props.isEE}> + {!props.isEE && ( + <AuthCardHeading + $type={props.type} + $isEE={props.isEE} + > + {props.heading || ""} + </AuthCardHeading> + )} + <AuthCard $isEE={props.isEE}> + <BrandingWrapper + isEE={props.isEE} + > + {props.isEE && ( + <AuthCardHeading + $type={props.type} + $isEE={props.isEE} + > + {props.heading || ""} + </AuthCardHeading> + )} + {props.children} + </BrandingWrapper> + </AuthCard> + { props.subHeading && !props.isEE && ( <AuthCardSubFooter> <img src={favicon} alt={"Lowcoder | " + trans("productDesc")} width="20px"/> <a href="https://lowcoder.cloud" target="_blank" rel="noreferrer"> diff --git a/client/packages/lowcoder/src/pages/userAuth/formLoginSteps.tsx b/client/packages/lowcoder/src/pages/userAuth/formLoginSteps.tsx index 4fa73d5cbf..9b88b019cf 100644 --- a/client/packages/lowcoder/src/pages/userAuth/formLoginSteps.tsx +++ b/client/packages/lowcoder/src/pages/userAuth/formLoginSteps.tsx @@ -156,7 +156,8 @@ export default function FormLoginSteps(props: FormLoginProps) { }, [serverSettings]); const afterLoginSuccess = () => { - if (props.organizationId) { + // used invitation link or organization login url then set cookie + if (props.organizationId && !isEnterpriseMode) { localStorage.setItem("lowcoder_login_orgId", props.organizationId); } fetchUserAfterAuthSuccess?.(); @@ -183,7 +184,6 @@ export default function FormLoginSteps(props: FormLoginProps) { // and skip workspace selection step if (Boolean(organizationId)) { setSkipWorkspaceStep(true); - dispatch(fetchConfigAction(organizationId)); setCurrentStep(CurrentStepEnum.AUTH_PROVIDERS); return; } @@ -225,7 +225,6 @@ export default function FormLoginSteps(props: FormLoginProps) { useEffect(() => { if (isEnterpriseMode) { - // dispatch(fetchConfigAction()); fetchOrgsByEmail(); } }, [isEnterpriseMode]); diff --git a/client/packages/lowcoder/src/pages/userAuth/index.tsx b/client/packages/lowcoder/src/pages/userAuth/index.tsx index d33b48fdec..93255e124d 100644 --- a/client/packages/lowcoder/src/pages/userAuth/index.tsx +++ b/client/packages/lowcoder/src/pages/userAuth/index.tsx @@ -12,6 +12,7 @@ import { fetchUserAction } from "redux/reduxActions/userActions"; import LoginAdmin from "./loginAdmin"; import _ from "lodash"; import {LoadingBarHideTrigger} from "@lowcoder-ee/util/hideLoading"; +import { fetchBrandingSetting } from "@lowcoder-ee/redux/reduxActions/enterpriseActions"; export default function UserAuth() { const dispatch = useDispatch(); const location = useLocation<AuthLocationState>(); @@ -29,6 +30,9 @@ export default function UserAuth() { useEffect(() => { if(organizationId) { dispatch(fetchConfigAction(organizationId)); + dispatch(fetchBrandingSetting({orgId: organizationId, fallbackToGlobal: true})); + } else { + dispatch(fetchBrandingSetting({orgId: ''})); } }, [organizationId, dispatch]) diff --git a/client/packages/lowcoder/src/pages/userAuth/login.tsx b/client/packages/lowcoder/src/pages/userAuth/login.tsx index bad5349099..acc36e234e 100644 --- a/client/packages/lowcoder/src/pages/userAuth/login.tsx +++ b/client/packages/lowcoder/src/pages/userAuth/login.tsx @@ -10,6 +10,7 @@ import { AuthContext, getLoginTitle } from "pages/userAuth/authUtils"; import styled from "styled-components"; import { requiresUnAuth } from "pages/userAuth/authHOC"; import FormLoginSteps from "./formLoginSteps"; +import { useEnterpriseContext } from "@lowcoder-ee/util/context/EnterpriseContext"; const ThirdAuthWrapper = styled.div` display: flex; @@ -85,6 +86,7 @@ export const ThirdPartyBindCard = () => { // this is the classic Sign In function Login() { const { inviteInfo, systemConfig, thirdPartyAuthError } = useContext(AuthContext); + const { isEnterpriseActive } = useEnterpriseContext(); const invitationId = inviteInfo?.invitationId; const location = useLocation(); const queryParams = new URLSearchParams(location.search); @@ -143,6 +145,7 @@ function Login() { <AuthContainer heading={loginHeading} subHeading={loginSubHeading} + isEE={isEnterpriseActive} > <FormLoginSteps organizationId={organizationId} /> </AuthContainer> diff --git a/client/packages/lowcoder/src/pages/userAuth/register.tsx b/client/packages/lowcoder/src/pages/userAuth/register.tsx index 1414b24dd5..2a0f3386dd 100644 --- a/client/packages/lowcoder/src/pages/userAuth/register.tsx +++ b/client/packages/lowcoder/src/pages/userAuth/register.tsx @@ -28,6 +28,7 @@ import LoadingOutlined from "@ant-design/icons/LoadingOutlined"; import Spin from "antd/es/spin"; import { useDispatch, useSelector } from "react-redux"; import { getServerSettings } from "@lowcoder-ee/redux/selectors/applicationSelector"; +import { useEnterpriseContext } from "@lowcoder-ee/util/context/EnterpriseContext"; import { fetchConfigAction } from "@lowcoder-ee/redux/reduxActions/configActions"; import { fetchOrgPaginationByEmail } from "@lowcoder-ee/util/pagination/axios"; @@ -62,6 +63,7 @@ function UserRegister() { const redirectUrl = useRedirectUrl(); const serverSettings = useSelector(getServerSettings); const { systemConfig, inviteInfo, fetchUserAfterAuthSuccess } = useContext(AuthContext); + const { isEnterpriseActive } = useEnterpriseContext(); const invitationId = inviteInfo?.invitationId; const isFormLoginEnabled = systemConfig ? systemConfig?.form.enableLogin : true; const authId = systemConfig?.form.id; @@ -134,7 +136,8 @@ function UserRegister() { }, [serverSettings]); const afterLoginSuccess = () => { - if (organizationId) { + // used invitation link or organization login url then set cookie + if (organizationId && !isEnterpriseMode) { localStorage.setItem("lowcoder_login_orgId", organizationId); } fetchUserAfterAuthSuccess?.(); @@ -157,7 +160,7 @@ function UserRegister() { ); const checkEmailExist = () => { - if (!Boolean(account.length) || lastEmailChecked === account) return; + if (!Boolean(account.length) || lastEmailChecked === account || isEnterpriseMode) return; setOrgLoading(true); OrgApi.fetchOrgsByEmail(account) @@ -188,6 +191,7 @@ function UserRegister() { heading={registerHeading} subHeading={registerSubHeading} type="large" + isEE={isEnterpriseActive} > <RegisterContent> { isEmailLoginEnabled && ( diff --git a/client/packages/lowcoder/src/redux/reducers/index.tsx b/client/packages/lowcoder/src/redux/reducers/index.tsx index efe52033b6..821c84c945 100644 --- a/client/packages/lowcoder/src/redux/reducers/index.tsx +++ b/client/packages/lowcoder/src/redux/reducers/index.tsx @@ -14,6 +14,7 @@ import { combineReducers } from "redux"; import npmPluginReducer, { NPMPluginState } from "./npmPluginReducers"; import jsLibraryReducers, { JSLibraryState } from "./jsLibraryReducers"; import { SubscriptionsReduxState } from "./uiReducers/subscriptionReducer"; +import { EnterpriseReduxState } from "./uiReducers/enterpriseReducer"; export interface AppState { ui: { @@ -25,6 +26,7 @@ export interface AppState { config: ConfigState; commonSettings: CommonSettingsState; subscriptions: SubscriptionsReduxState; + enterprise: EnterpriseReduxState; }; entities: { datasource: DatasourceDataState; diff --git a/client/packages/lowcoder/src/redux/reducers/uiReducers/enterpriseReducer.ts b/client/packages/lowcoder/src/redux/reducers/uiReducers/enterpriseReducer.ts new file mode 100644 index 0000000000..83ac8cd7c3 --- /dev/null +++ b/client/packages/lowcoder/src/redux/reducers/uiReducers/enterpriseReducer.ts @@ -0,0 +1,72 @@ +import { BrandingConfig, BrandingSettingResponse, EnterpriseLicenseResponse } from "@lowcoder-ee/api/enterpriseApi"; +import { createReducer } from "@lowcoder-ee/util/reducerUtils"; +import { ReduxAction, ReduxActionTypes } from "constants/reduxActionConstants"; +import { Environment } from "pages/setting/environments/types/environment.types"; +export interface EnterpriseReduxState { + enterprise: EnterpriseLicenseResponse, + globalBranding?: BrandingConfig, + workspaceBranding?: BrandingConfig, + environments: Environment[], + environmentsLoading: boolean, + environmentsError: string | null, +} + +const initialState: EnterpriseReduxState = { + enterprise: { + eeActive: false, + remainingAPICalls: 0, + eeLicenses: [], + }, + environments: [], + environmentsLoading: false, + environmentsError: null, +}; + +const enterpriseReducer = createReducer(initialState, { + [ReduxActionTypes.SET_ENTERPRISE_LICENSE]: ( + state: EnterpriseReduxState, + action: ReduxAction<EnterpriseLicenseResponse> + ) => ({ + ...state, + enterprise: action.payload, + }), + [ReduxActionTypes.SET_GLOBAL_BRANDING_SETTING]: ( + state: EnterpriseReduxState, + action: ReduxAction<BrandingSettingResponse> + ) => ({ + ...state, + globalBranding: action.payload, + }), + [ReduxActionTypes.SET_WORKSPACE_BRANDING_SETTING]: ( + state: EnterpriseReduxState, + action: ReduxAction<BrandingSettingResponse> + ) => ({ + ...state, + workspaceBranding: action.payload, + }), + + [ReduxActionTypes.FETCH_ENVIRONMENTS]: ( + state: EnterpriseReduxState + ) => ({ + ...state, + environmentsLoading: true, + }), + [ReduxActionTypes.FETCH_ENVIRONMENTS_SUCCESS]: ( + state: EnterpriseReduxState, + action: ReduxAction<Environment[]> + ) => ({ + ...state, + environments: action.payload, + environmentsLoading: false, + }), + [ReduxActionTypes.FETCH_ENVIRONMENTS_FAILURE]: ( + state: EnterpriseReduxState, + action: ReduxAction<string> + ) => ({ + ...state, + environmentsLoading: false, + environmentsError: action.payload, + }), +}); + +export default enterpriseReducer; diff --git a/client/packages/lowcoder/src/redux/reducers/uiReducers/index.tsx b/client/packages/lowcoder/src/redux/reducers/uiReducers/index.tsx index dc224314e4..887c22b54c 100644 --- a/client/packages/lowcoder/src/redux/reducers/uiReducers/index.tsx +++ b/client/packages/lowcoder/src/redux/reducers/uiReducers/index.tsx @@ -7,6 +7,8 @@ import appSnapshotReducer from "redux/reducers/uiReducers/appSnapshotReducer"; import commonSettingsReducer from "./commonSettingsReducer"; import { folderReducer } from "./folderReducer"; import subscriptionReducer from "./subscriptionReducer"; +import enterpriseReducer from "./enterpriseReducer"; + export const uiReducerObject = { application: applicationReducer, @@ -17,6 +19,7 @@ export const uiReducerObject = { config: configReducer, commonSettings: commonSettingsReducer, subscriptions: subscriptionReducer, + enterprise: enterpriseReducer, }; const uiReducer = combineReducers(uiReducerObject); diff --git a/client/packages/lowcoder/src/redux/reduxActions/enterpriseActions.ts b/client/packages/lowcoder/src/redux/reduxActions/enterpriseActions.ts new file mode 100644 index 0000000000..2231c45c28 --- /dev/null +++ b/client/packages/lowcoder/src/redux/reduxActions/enterpriseActions.ts @@ -0,0 +1,34 @@ +import { EnterpriseLicenseResponse, FetchBrandingSettingPayload } from "@lowcoder-ee/api/enterpriseApi"; +import { ReduxActionTypes } from "constants/reduxActionConstants"; +import { Environment } from "pages/setting/environments/types/environment.types"; + +export const fetchEnterpriseLicense = () => ({ + type: ReduxActionTypes.FETCH_ENTERPRISE_LICENSE, +}); + +export const setEnterpriseLicense = (licenseData: EnterpriseLicenseResponse) => ({ + type: ReduxActionTypes.SET_ENTERPRISE_LICENSE, + payload: licenseData, +}); + +export const fetchBrandingSetting = (payload: FetchBrandingSettingPayload) => { + return { + type: ReduxActionTypes.FETCH_BRANDING_SETTING, + payload, + }; +}; + +export const fetchEnvironments = () => ({ + type: ReduxActionTypes.FETCH_ENVIRONMENTS, +}); + +export const fetchEnvironmentsSuccess = (environments: Environment[]) => ({ + type: ReduxActionTypes.FETCH_ENVIRONMENTS_SUCCESS, + payload: environments, +}); + +export const fetchEnvironmentsFailure = (error: string) => ({ + type: ReduxActionTypes.FETCH_ENVIRONMENTS_FAILURE, + payload: error, +}); + diff --git a/client/packages/lowcoder/src/redux/sagas/enterpriseSagas.ts b/client/packages/lowcoder/src/redux/sagas/enterpriseSagas.ts new file mode 100644 index 0000000000..ef44210538 --- /dev/null +++ b/client/packages/lowcoder/src/redux/sagas/enterpriseSagas.ts @@ -0,0 +1,62 @@ +import { call, put, takeLatest } from 'redux-saga/effects'; +import { ReduxAction, ReduxActionTypes } from "constants/reduxActionConstants"; +import { setEnterpriseLicense, fetchEnvironmentsSuccess, fetchEnvironmentsFailure } from "redux/reduxActions/enterpriseActions"; +import { BrandingSettingResponse, EnterpriseLicenseResponse, FetchBrandingSettingPayload, getBranding, getEnterpriseLicense } from "api/enterpriseApi"; +import { getEnvironmentsWithLicenseStatus } from "pages/setting/environments/services/environments.service"; +import { Environment } from "pages/setting/environments/types/environment.types"; + +import { AxiosResponse } from 'axios'; + +function* fetchEnterpriseLicenseSaga(): Generator<any, void, EnterpriseLicenseResponse> { + try { + // Type the result from the API call + const data: EnterpriseLicenseResponse = yield call(getEnterpriseLicense); + yield put(setEnterpriseLicense(data)); + } catch (error) { + console.error('Failed to fetch enterprise license:', error); + } +} + +function* fetchEnvironmentsSaga(): Generator<any, void, Environment[]> { + try { + const environments: Environment[] = yield call(getEnvironmentsWithLicenseStatus); + yield put(fetchEnvironmentsSuccess(environments)); + } catch (error) { + console.error('Failed to fetch environments:', error); + yield put(fetchEnvironmentsFailure(error as string)); + } +} + +function* fetchBrandingSettingSaga(action: ReduxAction<FetchBrandingSettingPayload>) { + try { + const response: BrandingSettingResponse = yield getBranding(action.payload.orgId); + if (response && response.id) { + if (action.payload.orgId) { + yield put({ + type: ReduxActionTypes.SET_WORKSPACE_BRANDING_SETTING, + payload: response, + }); + return; + } + yield put({ + type: ReduxActionTypes.SET_GLOBAL_BRANDING_SETTING, + payload: response, + }); + } + } catch (error) { + console.error('Failed to fetch branding setting:', error); + // fetch global branding if org's branding setting is not available + if (Boolean(action.payload.orgId) && action.payload.fallbackToGlobal) { + yield put({ + type: ReduxActionTypes.FETCH_BRANDING_SETTING, + payload: {}, + }) + } + } +} + +export default function* enterpriseSagas() { + yield takeLatest(ReduxActionTypes.FETCH_ENTERPRISE_LICENSE, fetchEnterpriseLicenseSaga); + yield takeLatest(ReduxActionTypes.FETCH_BRANDING_SETTING, fetchBrandingSettingSaga); + yield takeLatest(ReduxActionTypes.FETCH_ENVIRONMENTS, fetchEnvironmentsSaga); +} diff --git a/client/packages/lowcoder/src/redux/sagas/index.tsx b/client/packages/lowcoder/src/redux/sagas/index.tsx index e2c90b8f3a..5bce902698 100644 --- a/client/packages/lowcoder/src/redux/sagas/index.tsx +++ b/client/packages/lowcoder/src/redux/sagas/index.tsx @@ -3,6 +3,7 @@ import { pluginSagas } from "redux/sagas/pluginSagas"; import { datasourceSagas } from "redux/sagas/datasourceSagas"; import userSagas from "redux/sagas/userSagas"; import subscriptionSagas from "redux/sagas/subscriptionSagas"; +import enterpriseSagas from "redux/sagas/enterpriseSagas"; import applicationSagas from "redux/sagas/applicationSagas"; import configSagas from "redux/sagas/configSagas"; import appSnapshotSagas from "redux/sagas/appSnapshotSagas"; @@ -28,6 +29,7 @@ export const sagas = [ commonSettingsSagas, jsLibrarySagas, subscriptionSagas, + enterpriseSagas, ]; export function* rootSaga(sagasToRun = sagas) { diff --git a/client/packages/lowcoder/src/redux/selectors/enterpriseSelectors.ts b/client/packages/lowcoder/src/redux/selectors/enterpriseSelectors.ts new file mode 100644 index 0000000000..9f52c5cb7f --- /dev/null +++ b/client/packages/lowcoder/src/redux/selectors/enterpriseSelectors.ts @@ -0,0 +1,58 @@ +import { AppState } from "../reducers"; + + +export const selectEnterpriseEditionStatus = (state: AppState) => + state.ui.enterprise?.enterprise?.eeActive ?? false; + +export const selectRemainingAPICalls = (state: AppState) => + state.ui.enterprise?.enterprise?.remainingAPICalls ?? 0; + +export const selectEnterpriseLicenses = (state: AppState) => + state.ui.enterprise?.enterprise?.eeLicenses ?? []; + +export const selectIsLicenseActive = (state: AppState) => { + const enterprise = state.ui.enterprise; + return enterprise?.enterprise?.eeActive && enterprise?.enterprise?.remainingAPICalls > 0; +}; + +export const getBrandingSetting = (state: AppState) => { + return state.ui.enterprise?.workspaceBranding || state.ui.enterprise?.globalBranding; +} + +export const getGlobalBrandingSetting = (state: AppState) => { + return state.ui.enterprise?.globalBranding; +} + +export const getWorkspaceBrandingSetting = (state: AppState) => { + return state.ui.enterprise?.workspaceBranding; +} +// Environment selectors +export const selectEnvironments = (state: AppState) => + state.ui.enterprise?.environments ?? []; + +export const selectEnvironmentsLoading = (state: AppState) => + state.ui.enterprise?.environmentsLoading ?? false; + +export const selectEnvironmentsError = (state: AppState) => + state.ui.enterprise?.environmentsError ?? null; + +export const selectUnlicensedEnvironments = (state: AppState) => { + const environments = state.ui.enterprise?.environments ?? []; + return environments.filter(env => env.isLicensed === false); +}; + +export const selectLicensedEnvironments = (state: AppState) => { + const environments = state.ui.enterprise?.environments ?? []; + return environments.filter(env => env.isLicensed !== false); +}; + +export const selectMasterEnvironment = (state: AppState) => { + const environments = state.ui.enterprise?.environments ?? []; + return environments.find(env => env.isMaster) ?? null; +}; + +export const selectHasMasterEnvironment = (state: AppState) => { + const environments = state.ui.enterprise?.environments ?? []; + return environments.some(env => env.isMaster); +}; + diff --git a/client/packages/lowcoder/src/util/context/EnterpriseContext.tsx b/client/packages/lowcoder/src/util/context/EnterpriseContext.tsx new file mode 100644 index 0000000000..d377810687 --- /dev/null +++ b/client/packages/lowcoder/src/util/context/EnterpriseContext.tsx @@ -0,0 +1,49 @@ +import React, { createContext, useContext, useState, useEffect } from 'react'; +import { fetchEnterpriseLicense, fetchEnvironments } from 'redux/reduxActions/enterpriseActions'; +import { selectEnterpriseEditionStatus } from '@lowcoder-ee/redux/selectors/enterpriseSelectors'; +import { useDispatch, useSelector } from 'react-redux'; +import { isEEEnvironment } from "util/envUtils"; + +interface EnterpriseContextValue { + isEnterpriseActive: boolean; +} + +const EnterpriseContext = createContext<EnterpriseContextValue>({ isEnterpriseActive: false }); + +type ProviderProps = { + children: React.ReactNode; +} + +export const EnterpriseProvider: React.FC<ProviderProps> = ({ children }) => { + const dispatch = useDispatch(); + const isEnterpriseActiveRedux = useSelector(selectEnterpriseEditionStatus); // From Redux store + const [isEnterpriseActive, setIsEnterpriseActive] = useState(false); + + useEffect(() => { + if (isEEEnvironment()) { + // Fetch the enterprise license only if we're in an EE environment + dispatch(fetchEnterpriseLicense()); + dispatch(fetchEnvironments()); + } else { + // Set the state to false for non-EE environments + // setEEActiveState(false); + setIsEnterpriseActive(false); + } + }, [dispatch]); + + useEffect(() => { + if (isEEEnvironment()) { + // Update the global EE state based on Redux + // setEEActiveState(isEnterpriseActiveRedux); + setIsEnterpriseActive(isEnterpriseActiveRedux); + } + }, [isEnterpriseActiveRedux]); + + return ( + <EnterpriseContext.Provider value={{ isEnterpriseActive }}> + {children} + </EnterpriseContext.Provider> + ); + }; + + export const useEnterpriseContext = () => useContext(EnterpriseContext); diff --git a/client/packages/lowcoder/src/util/envUtils.ts b/client/packages/lowcoder/src/util/envUtils.ts index 7558b6bb80..72dde72b8e 100644 --- a/client/packages/lowcoder/src/util/envUtils.ts +++ b/client/packages/lowcoder/src/util/envUtils.ts @@ -10,12 +10,9 @@ export function developEnv(): boolean { return REACT_APP_ENV === "development" || localEnv(); } -/** - * is enterprise edition - */ -// Falk: TODO: check EE by API Call -export function isEE(): boolean { - return REACT_APP_EDITION === "enterprise" || REACT_APP_EDITION === "enterprise-global"; +// Is hosted as Enterprise Edition? +export function isEEEnvironment(): boolean { + return REACT_APP_EDITION === "enterprise"; } export function isSaasMode(config?: SystemConfig) { @@ -28,13 +25,4 @@ export function isEnterpriseMode(config?: SystemConfig) { export function isSelfDomain(config?: SystemConfig) { return config?.selfDomain; -} - -export function showAuditLog(config?: SystemConfig) { - return config?.featureFlag?.enableAuditLog; -} - -export function useCloudHosting() { - const systemConfig = useSelector(selectSystemConfig); - return systemConfig?.cloudHosting ?? true; -} +} \ No newline at end of file diff --git a/client/packages/lowcoder/src/util/featureFlagUtils.ts b/client/packages/lowcoder/src/util/featureFlagUtils.ts index b25f4cd6c5..89bf947f1f 100644 --- a/client/packages/lowcoder/src/util/featureFlagUtils.ts +++ b/client/packages/lowcoder/src/util/featureFlagUtils.ts @@ -1,5 +1,5 @@ import { SystemConfig } from "constants/configConstants"; -export function enableCustomBrand(config?: SystemConfig) { +/* export function enableCustomBrand(config?: SystemConfig) { return config?.featureFlag?.enableCustomBranding; -} +} */ \ No newline at end of file diff --git a/client/packages/lowcoder/vite.config.mts b/client/packages/lowcoder/vite.config.mts index 47939e5a1f..e8c9351b9c 100644 --- a/client/packages/lowcoder/vite.config.mts +++ b/client/packages/lowcoder/vite.config.mts @@ -17,8 +17,8 @@ import { terser } from 'rollup-plugin-terser'; dotenv.config(); -const apiProxyTarget = process.env.LOWCODER_API_SERVICE_URL; -const nodeServiceApiProxyTarget = process.env.LOWCODER_NODE_SERVICE_URL; +const apiServiceUrl = process.env.LOWCODER_API_SERVICE_URL; +const nodeServiceUrl = process.env.LOWCODER_NODE_SERVICE_URL; const nodeEnv = process.env.NODE_ENV ?? "development"; const isDev = nodeEnv === "development"; const isVisualizerEnabled = !!process.env.ENABLE_VISUALIZER; @@ -27,7 +27,7 @@ const isVisualizerEnabled = !!process.env.ENABLE_VISUALIZER; const browserCheckFileName = `browser-check.js`; const base = ensureLastSlash(process.env.PUBLIC_URL); -if (!apiProxyTarget && isDev) { +if (!apiServiceUrl && isDev) { console.log(); console.log(chalk.red`LOWCODER_API_SERVICE_URL is required.\n`); console.log(chalk.cyan`Start with command: LOWCODER_API_SERVICE_URL=\{backend-api-addr\} yarn start`); @@ -37,14 +37,14 @@ if (!apiProxyTarget && isDev) { const proxyConfig: ServerOptions["proxy"] = { "/api": { - target: apiProxyTarget, + target: apiServiceUrl, changeOrigin: false, }, }; -if (nodeServiceApiProxyTarget) { +if (nodeServiceUrl) { proxyConfig["/node-service"] = { - target: nodeServiceApiProxyTarget, + target: nodeServiceUrl, }; } diff --git a/client/yarn.lock b/client/yarn.lock index d3661ae7e3..96e83f99cb 100644 --- a/client/yarn.lock +++ b/client/yarn.lock @@ -6,43 +6,42 @@ __metadata: cacheKey: 8 "@adobe/css-tools@npm:^4.0.1": - version: 4.3.3 - resolution: "@adobe/css-tools@npm:4.3.3" - checksum: d21f3786b84911fee59c995a146644a85c98692979097b26484ffa9e442fb1a92ccd68ce984e3e7cf8d5933c3560fbc0ad3e3cd1de50b9a723d1c012e793bbcb + version: 4.4.3 + resolution: "@adobe/css-tools@npm:4.4.3" + checksum: 8c773f624d7327cdc58e92ab9077500f4578b24eee9f504e7925a775df6885cd534399c40c1a2919e38cbd57c0023d5bf9e32f8b89ed783733f706366b0f61e6 languageName: node linkType: hard -"@agora-js/media@npm:4.20.2": - version: 4.20.2 - resolution: "@agora-js/media@npm:4.20.2" +"@agora-js/media@npm:4.23.3": + version: 4.23.3 + resolution: "@agora-js/media@npm:4.23.3" dependencies: - "@agora-js/report": 4.20.2 - "@agora-js/shared": 4.20.2 + "@agora-js/report": 4.23.3 + "@agora-js/shared": 4.23.3 agora-rte-extension: ^1.2.4 - axios: ^1.6.7 - pako: ^2.1.0 + axios: ^1.8.3 webrtc-adapter: 8.2.0 - checksum: 6d2ea88f2a0d59ff5928665ecb52c9c91a886e3d2a1d2f76326dc8565128444f51b34b531ac192bb91870686c36d4014dcbc0a97c5708576b40a474bc94f7640 + checksum: 8a29dc0b9da608b408d33d935e4c8a24acfc5b0a324d298f5863ddfa4758df1372711f397fa7c6d63a222dc3c8cf667960e9defca43759456735d34bd6f0452d languageName: node linkType: hard -"@agora-js/report@npm:4.20.2": - version: 4.20.2 - resolution: "@agora-js/report@npm:4.20.2" +"@agora-js/report@npm:4.23.3": + version: 4.23.3 + resolution: "@agora-js/report@npm:4.23.3" dependencies: - "@agora-js/shared": 4.20.2 - axios: ^1.6.7 - checksum: 5b43a242be97d36774b70ebac8fac7f2b321f856489e6be5a48ab83038555c2ad103443b93350c7aa7a41598681d962b3898734ae79bcc4f1e60f1dfcbe44e68 + "@agora-js/shared": 4.23.3 + axios: ^1.8.3 + checksum: 83a6b486c6e3b07c2e5a6ad91833a5c79f69f28831458fd0f2272aa3a1e82894324b7768cf7384e39f99f12a9797a1a765e7005855229d145c7013f34990db4e languageName: node linkType: hard -"@agora-js/shared@npm:4.20.2": - version: 4.20.2 - resolution: "@agora-js/shared@npm:4.20.2" +"@agora-js/shared@npm:4.23.3": + version: 4.23.3 + resolution: "@agora-js/shared@npm:4.23.3" dependencies: - axios: ^1.6.7 + axios: ^1.8.3 ua-parser-js: ^0.7.34 - checksum: d3447b619cc742da5600facdf9e68316d9bac9117c29b83ce92fb9c3e03e41e63b8c103f978b768e52682a28936f35bfae8cfa6c8fd5c6b0b11a6f85b3740caf + checksum: 6b4a3e38088620b17796ae2bbbfdb35188cded6f24289bbf55f1b0f4608d51f25b988ab9f863b16d61e0e991d7366900a246dec4b9ae53f4a7026168dd6cffd5 languageName: node linkType: hard @@ -56,21 +55,12 @@ __metadata: languageName: node linkType: hard -"@ant-design/colors@npm:^7.0.0": - version: 7.0.2 - resolution: "@ant-design/colors@npm:7.0.2" - dependencies: - "@ctrl/tinycolor": ^3.6.1 - checksum: e09eec01d3f88b4101cbf28498ba181af65a02cb28fc1b7b70f5fdf509bef0fa61185c451d1a83fdcc9f8356057d0a0436253d8183a35e6f78845fea01f40072 - languageName: node - linkType: hard - -"@ant-design/colors@npm:^7.2.0": - version: 7.2.0 - resolution: "@ant-design/colors@npm:7.2.0" +"@ant-design/colors@npm:^7.0.0, @ant-design/colors@npm:^7.2.0": + version: 7.2.1 + resolution: "@ant-design/colors@npm:7.2.1" dependencies: "@ant-design/fast-color": ^2.0.6 - checksum: a2b1e82b98b7258154869e554c1afa160cd9db6f637fee274d74917c4c61acb5c7fc05674f4d7158cb70dc1a978d36de76c4a2c90543c99caad0b092ac2a0e00 + checksum: 505c81c94f3602f28115282c7dae4e89b985dbb7dad8a35c0ad653c0ad8859f7bb541220cc5e086b57842be252a02ca240a78cd2f695ed7e0014e7605aabd80c languageName: node linkType: hard @@ -153,138 +143,129 @@ __metadata: languageName: node linkType: hard -"@babel/code-frame@npm:^7.0.0, @babel/code-frame@npm:^7.10.4, @babel/code-frame@npm:^7.12.13, @babel/code-frame@npm:^7.22.5, @babel/code-frame@npm:^7.23.5, @babel/code-frame@npm:^7.24.1, @babel/code-frame@npm:^7.24.2": - version: 7.24.2 - resolution: "@babel/code-frame@npm:7.24.2" +"@babel/code-frame@npm:^7.0.0, @babel/code-frame@npm:^7.10.4, @babel/code-frame@npm:^7.12.13, @babel/code-frame@npm:^7.22.5, @babel/code-frame@npm:^7.27.1": + version: 7.27.1 + resolution: "@babel/code-frame@npm:7.27.1" dependencies: - "@babel/highlight": ^7.24.2 - picocolors: ^1.0.0 - checksum: 70e867340cfe09ca5488b2f36372c45cabf43c79a5b6426e6df5ef0611ff5dfa75a57dda841895693de6008f32c21a7c97027a8c7bcabd63a7d17416cbead6f8 + "@babel/helper-validator-identifier": ^7.27.1 + js-tokens: ^4.0.0 + picocolors: ^1.1.1 + checksum: 5874edc5d37406c4a0bb14cf79c8e51ad412fb0423d176775ac14fc0259831be1bf95bdda9c2aa651126990505e09a9f0ed85deaa99893bc316d2682c5115bdc languageName: node linkType: hard -"@babel/compat-data@npm:^7.22.6, @babel/compat-data@npm:^7.23.5, @babel/compat-data@npm:^7.24.4": - version: 7.24.4 - resolution: "@babel/compat-data@npm:7.24.4" - checksum: 52ce371658dc7796c9447c9cb3b9c0659370d141b76997f21c5e0028cca4d026ca546b84bc8d157ce7ca30bd353d89f9238504eb8b7aefa9b1f178b4c100c2d4 +"@babel/compat-data@npm:^7.22.6, @babel/compat-data@npm:^7.27.2": + version: 7.27.2 + resolution: "@babel/compat-data@npm:7.27.2" + checksum: 8d4066324e5f1275adc43f2e22110cac29ee09fe926260c43f0eaa432c148859367df4152574a28ee02dbb3e3d11dd57145eed345d49cc07f9b6e11fee06535f languageName: node linkType: hard "@babel/core@npm:^7.11.6, @babel/core@npm:^7.12.3, @babel/core@npm:^7.16.0, @babel/core@npm:^7.19.6, @babel/core@npm:^7.21.3, @babel/core@npm:^7.23.9": - version: 7.24.4 - resolution: "@babel/core@npm:7.24.4" + version: 7.27.1 + resolution: "@babel/core@npm:7.27.1" dependencies: "@ampproject/remapping": ^2.2.0 - "@babel/code-frame": ^7.24.2 - "@babel/generator": ^7.24.4 - "@babel/helper-compilation-targets": ^7.23.6 - "@babel/helper-module-transforms": ^7.23.3 - "@babel/helpers": ^7.24.4 - "@babel/parser": ^7.24.4 - "@babel/template": ^7.24.0 - "@babel/traverse": ^7.24.1 - "@babel/types": ^7.24.0 + "@babel/code-frame": ^7.27.1 + "@babel/generator": ^7.27.1 + "@babel/helper-compilation-targets": ^7.27.1 + "@babel/helper-module-transforms": ^7.27.1 + "@babel/helpers": ^7.27.1 + "@babel/parser": ^7.27.1 + "@babel/template": ^7.27.1 + "@babel/traverse": ^7.27.1 + "@babel/types": ^7.27.1 convert-source-map: ^2.0.0 debug: ^4.1.0 gensync: ^1.0.0-beta.2 json5: ^2.2.3 semver: ^6.3.1 - checksum: 15ecad7581f3329995956ba461961b1af7bed48901f14fe962ccd3217edca60049e9e6ad4ce48134618397e6c90230168c842e2c28e47ef1f16c97dbbf663c61 + checksum: fce205f9eea387ed8a9c6de64e5a8f50256359bfc8f1352c576c843b4c148a6c2ef187cfe8d729453e520fdcc997f65920aca6cb8911fb25dfd2286966b9b914 languageName: node linkType: hard "@babel/eslint-parser@npm:^7.16.3": - version: 7.24.1 - resolution: "@babel/eslint-parser@npm:7.24.1" + version: 7.27.1 + resolution: "@babel/eslint-parser@npm:7.27.1" dependencies: "@nicolo-ribaudo/eslint-scope-5-internals": 5.1.1-v1 eslint-visitor-keys: ^2.1.0 semver: ^6.3.1 peerDependencies: "@babel/core": ^7.11.0 - eslint: ^7.5.0 || ^8.0.0 - checksum: 962ffa98629f76234d7fd75134848bea040137c8534c602c73ed9ad6bdd3be0d2e7eaebd2ad496e81ab87220176170fd805e6fdc98464af6907ac66e1da7fc9a + eslint: ^7.5.0 || ^8.0.0 || ^9.0.0 + checksum: 0e8aa37fe03e5e5f2db35e1e628c02012a9ea9aa14429495eacdb0418e8ebeaf7b6308f9f8931ee3fe64a61fd6ac7637c8ffcc2c0d85eee246b6115198418bc2 languageName: node linkType: hard -"@babel/generator@npm:^7.24.1, @babel/generator@npm:^7.24.4, @babel/generator@npm:^7.7.2": - version: 7.24.4 - resolution: "@babel/generator@npm:7.24.4" +"@babel/generator@npm:^7.27.1, @babel/generator@npm:^7.7.2": + version: 7.27.1 + resolution: "@babel/generator@npm:7.27.1" dependencies: - "@babel/types": ^7.24.0 + "@babel/parser": ^7.27.1 + "@babel/types": ^7.27.1 "@jridgewell/gen-mapping": ^0.3.5 "@jridgewell/trace-mapping": ^0.3.25 - jsesc: ^2.5.1 - checksum: 1b6146c31386c9df3eb594a2c36b5c98da4f67f7c06edb3d68a442b92516b21bb5ba3ad7dbe0058fe76625ed24d66923e15c95b0df75ef1907d4068921a699b8 - languageName: node - linkType: hard - -"@babel/helper-annotate-as-pure@npm:^7.18.6, @babel/helper-annotate-as-pure@npm:^7.22.5": - version: 7.22.5 - resolution: "@babel/helper-annotate-as-pure@npm:7.22.5" - dependencies: - "@babel/types": ^7.22.5 - checksum: 53da330f1835c46f26b7bf4da31f7a496dee9fd8696cca12366b94ba19d97421ce519a74a837f687749318f94d1a37f8d1abcbf35e8ed22c32d16373b2f6198d + jsesc: ^3.0.2 + checksum: d5e220eb20aca1d93aef85c4c716237f84c5aab7d3ed8dfeb7060dcd73d20c593a687fe74cfb6d3dc1604ef9faff2ca24e6cfdb1af18e03e3a5f9f63a04c0bdc languageName: node linkType: hard -"@babel/helper-builder-binary-assignment-operator-visitor@npm:^7.22.15": - version: 7.22.15 - resolution: "@babel/helper-builder-binary-assignment-operator-visitor@npm:7.22.15" +"@babel/helper-annotate-as-pure@npm:^7.18.6, @babel/helper-annotate-as-pure@npm:^7.22.5, @babel/helper-annotate-as-pure@npm:^7.27.1": + version: 7.27.1 + resolution: "@babel/helper-annotate-as-pure@npm:7.27.1" dependencies: - "@babel/types": ^7.22.15 - checksum: 639c697a1c729f9fafa2dd4c9af2e18568190299b5907bd4c2d0bc818fcbd1e83ffeecc2af24327a7faa7ac4c34edd9d7940510a5e66296c19bad17001cf5c7a + "@babel/types": ^7.27.1 + checksum: 3f8e4d591458d6c0621a3d670f8798b8895580214287390126e3e621ddf3df0bd07cbcc9500c2671b9ec10162c2f9feb1194da5cf039d40df8cb69d181fc0cd8 languageName: node linkType: hard -"@babel/helper-compilation-targets@npm:^7.22.6, @babel/helper-compilation-targets@npm:^7.23.6": - version: 7.23.6 - resolution: "@babel/helper-compilation-targets@npm:7.23.6" +"@babel/helper-compilation-targets@npm:^7.22.6, @babel/helper-compilation-targets@npm:^7.27.1, @babel/helper-compilation-targets@npm:^7.27.2": + version: 7.27.2 + resolution: "@babel/helper-compilation-targets@npm:7.27.2" dependencies: - "@babel/compat-data": ^7.23.5 - "@babel/helper-validator-option": ^7.23.5 - browserslist: ^4.22.2 + "@babel/compat-data": ^7.27.2 + "@babel/helper-validator-option": ^7.27.1 + browserslist: ^4.24.0 lru-cache: ^5.1.1 semver: ^6.3.1 - checksum: c630b98d4527ac8fe2c58d9a06e785dfb2b73ec71b7c4f2ddf90f814b5f75b547f3c015f110a010fd31f76e3864daaf09f3adcd2f6acdbfb18a8de3a48717590 + checksum: 7b95328237de85d7af1dea010a4daa28e79f961dda48b652860d5893ce9b136fc8b9ea1f126d8e0a24963b09ba5c6631dcb907b4ce109b04452d34a6ae979807 languageName: node linkType: hard -"@babel/helper-create-class-features-plugin@npm:^7.18.6, @babel/helper-create-class-features-plugin@npm:^7.21.0, @babel/helper-create-class-features-plugin@npm:^7.24.1, @babel/helper-create-class-features-plugin@npm:^7.24.4": - version: 7.24.4 - resolution: "@babel/helper-create-class-features-plugin@npm:7.24.4" +"@babel/helper-create-class-features-plugin@npm:^7.18.6, @babel/helper-create-class-features-plugin@npm:^7.21.0, @babel/helper-create-class-features-plugin@npm:^7.27.1": + version: 7.27.1 + resolution: "@babel/helper-create-class-features-plugin@npm:7.27.1" dependencies: - "@babel/helper-annotate-as-pure": ^7.22.5 - "@babel/helper-environment-visitor": ^7.22.20 - "@babel/helper-function-name": ^7.23.0 - "@babel/helper-member-expression-to-functions": ^7.23.0 - "@babel/helper-optimise-call-expression": ^7.22.5 - "@babel/helper-replace-supers": ^7.24.1 - "@babel/helper-skip-transparent-expression-wrappers": ^7.22.5 - "@babel/helper-split-export-declaration": ^7.22.6 + "@babel/helper-annotate-as-pure": ^7.27.1 + "@babel/helper-member-expression-to-functions": ^7.27.1 + "@babel/helper-optimise-call-expression": ^7.27.1 + "@babel/helper-replace-supers": ^7.27.1 + "@babel/helper-skip-transparent-expression-wrappers": ^7.27.1 + "@babel/traverse": ^7.27.1 semver: ^6.3.1 peerDependencies: "@babel/core": ^7.0.0 - checksum: 75b0a51ae1f7232932559779b78711c271404d02d069156d1bd9a7982c165c5134058d2ec2d8b5f2e42026ee4f52ba2a30c86a7aa3bce6b5fd0991eb721abc8c + checksum: 406954b455e5b20924e7d1b41cf932e6e98e95c3a5224c7a70c3ad96a84e8fbde915ceff7ddbf9c7d121397c4e9274f061241648475122cf6fe54e0a95caae15 languageName: node linkType: hard -"@babel/helper-create-regexp-features-plugin@npm:^7.18.6, @babel/helper-create-regexp-features-plugin@npm:^7.22.15, @babel/helper-create-regexp-features-plugin@npm:^7.22.5": - version: 7.22.15 - resolution: "@babel/helper-create-regexp-features-plugin@npm:7.22.15" +"@babel/helper-create-regexp-features-plugin@npm:^7.18.6, @babel/helper-create-regexp-features-plugin@npm:^7.27.1": + version: 7.27.1 + resolution: "@babel/helper-create-regexp-features-plugin@npm:7.27.1" dependencies: - "@babel/helper-annotate-as-pure": ^7.22.5 - regexpu-core: ^5.3.1 + "@babel/helper-annotate-as-pure": ^7.27.1 + regexpu-core: ^6.2.0 semver: ^6.3.1 peerDependencies: "@babel/core": ^7.0.0 - checksum: 0243b8d4854f1dc8861b1029a46d3f6393ad72f366a5a08e36a4648aa682044f06da4c6e87a456260e1e1b33c999f898ba591a0760842c1387bcc93fbf2151a6 + checksum: 2ede6bbad0016a9262fd281ce8f1a5d69e6179dcec4ea282830e924c29a29b66b0544ecb92e4ef4acdaf2c4c990931d7dc442dbcd6a8bcec4bad73923ef70934 languageName: node linkType: hard -"@babel/helper-define-polyfill-provider@npm:^0.6.1, @babel/helper-define-polyfill-provider@npm:^0.6.2": - version: 0.6.2 - resolution: "@babel/helper-define-polyfill-provider@npm:0.6.2" +"@babel/helper-define-polyfill-provider@npm:^0.6.3, @babel/helper-define-polyfill-provider@npm:^0.6.4": + version: 0.6.4 + resolution: "@babel/helper-define-polyfill-provider@npm:0.6.4" dependencies: "@babel/helper-compilation-targets": ^7.22.6 "@babel/helper-plugin-utils": ^7.22.5 @@ -293,247 +274,204 @@ __metadata: resolve: ^1.14.2 peerDependencies: "@babel/core": ^7.4.0 || ^8.0.0-0 <8.0.0 - checksum: 2bba965ea9a4887ddf9c11d51d740ab473bd7597b787d042c325f6a45912dfe908c2d6bb1d837bf82f7e9fa51e6ad5150563c58131d2bb85515e63d971414a9c + checksum: bfbcb41f005ba11497b459cf801650af558b533f383b2f57034e9ccce592a0af699b585898deef93598ed3d9bd14502327e18dfc8a92a3db48b2a49ae2886f86 languageName: node linkType: hard -"@babel/helper-environment-visitor@npm:^7.22.20": - version: 7.22.20 - resolution: "@babel/helper-environment-visitor@npm:7.22.20" - checksum: d80ee98ff66f41e233f36ca1921774c37e88a803b2f7dca3db7c057a5fea0473804db9fb6729e5dbfd07f4bed722d60f7852035c2c739382e84c335661590b69 - languageName: node - linkType: hard - -"@babel/helper-function-name@npm:^7.22.5, @babel/helper-function-name@npm:^7.23.0": - version: 7.23.0 - resolution: "@babel/helper-function-name@npm:7.23.0" - dependencies: - "@babel/template": ^7.22.15 - "@babel/types": ^7.23.0 - checksum: e44542257b2d4634a1f979244eb2a4ad8e6d75eb6761b4cfceb56b562f7db150d134bc538c8e6adca3783e3bc31be949071527aa8e3aab7867d1ad2d84a26e10 - languageName: node - linkType: hard - -"@babel/helper-hoist-variables@npm:^7.22.5": - version: 7.22.5 - resolution: "@babel/helper-hoist-variables@npm:7.22.5" +"@babel/helper-member-expression-to-functions@npm:^7.27.1": + version: 7.27.1 + resolution: "@babel/helper-member-expression-to-functions@npm:7.27.1" dependencies: - "@babel/types": ^7.22.5 - checksum: 394ca191b4ac908a76e7c50ab52102669efe3a1c277033e49467913c7ed6f7c64d7eacbeabf3bed39ea1f41731e22993f763b1edce0f74ff8563fd1f380d92cc + "@babel/traverse": ^7.27.1 + "@babel/types": ^7.27.1 + checksum: b13a3d120015a6fd2f6e6c2ff789cd12498745ef028710cba612cfb751b91ace700c3f96c1689228d1dcb41e9d4cf83d6dff8627dcb0c8da12d79440e783c6b8 languageName: node linkType: hard -"@babel/helper-member-expression-to-functions@npm:^7.23.0": - version: 7.23.0 - resolution: "@babel/helper-member-expression-to-functions@npm:7.23.0" +"@babel/helper-module-imports@npm:^7.0.0, @babel/helper-module-imports@npm:^7.22.5, @babel/helper-module-imports@npm:^7.27.1": + version: 7.27.1 + resolution: "@babel/helper-module-imports@npm:7.27.1" dependencies: - "@babel/types": ^7.23.0 - checksum: 494659361370c979ada711ca685e2efe9460683c36db1b283b446122596602c901e291e09f2f980ecedfe6e0f2bd5386cb59768285446530df10c14df1024e75 + "@babel/traverse": ^7.27.1 + "@babel/types": ^7.27.1 + checksum: 92d01c71c0e4aacdc2babce418a9a1a27a8f7d770a210ffa0f3933f321befab18b655bc1241bebc40767516731de0b85639140c42e45a8210abe1e792f115b28 languageName: node linkType: hard -"@babel/helper-module-imports@npm:^7.0.0, @babel/helper-module-imports@npm:^7.22.15, @babel/helper-module-imports@npm:^7.22.5, @babel/helper-module-imports@npm:^7.24.1, @babel/helper-module-imports@npm:^7.24.3": - version: 7.24.3 - resolution: "@babel/helper-module-imports@npm:7.24.3" +"@babel/helper-module-transforms@npm:^7.27.1": + version: 7.27.1 + resolution: "@babel/helper-module-transforms@npm:7.27.1" dependencies: - "@babel/types": ^7.24.0 - checksum: c23492189ba97a1ec7d37012336a5661174e8b88194836b6bbf90d13c3b72c1db4626263c654454986f924c6da8be7ba7f9447876d709cd00bd6ffde6ec00796 - languageName: node - linkType: hard - -"@babel/helper-module-transforms@npm:^7.23.3": - version: 7.23.3 - resolution: "@babel/helper-module-transforms@npm:7.23.3" - dependencies: - "@babel/helper-environment-visitor": ^7.22.20 - "@babel/helper-module-imports": ^7.22.15 - "@babel/helper-simple-access": ^7.22.5 - "@babel/helper-split-export-declaration": ^7.22.6 - "@babel/helper-validator-identifier": ^7.22.20 + "@babel/helper-module-imports": ^7.27.1 + "@babel/helper-validator-identifier": ^7.27.1 + "@babel/traverse": ^7.27.1 peerDependencies: "@babel/core": ^7.0.0 - checksum: 5d0895cfba0e16ae16f3aa92fee108517023ad89a855289c4eb1d46f7aef4519adf8e6f971e1d55ac20c5461610e17213f1144097a8f932e768a9132e2278d71 + checksum: 816dd166f0a850616d01ca198715d78fef052a834dc155dd57e4405d702f288071077be3ed58e13c86ac9e63ca560e876cc6d70cf5ef0f1f62bd9321084d4c06 languageName: node linkType: hard -"@babel/helper-optimise-call-expression@npm:^7.22.5": - version: 7.22.5 - resolution: "@babel/helper-optimise-call-expression@npm:7.22.5" +"@babel/helper-optimise-call-expression@npm:^7.27.1": + version: 7.27.1 + resolution: "@babel/helper-optimise-call-expression@npm:7.27.1" dependencies: - "@babel/types": ^7.22.5 - checksum: c70ef6cc6b6ed32eeeec4482127e8be5451d0e5282d5495d5d569d39eb04d7f1d66ec99b327f45d1d5842a9ad8c22d48567e93fc502003a47de78d122e355f7c + "@babel/types": ^7.27.1 + checksum: 0fb7ee824a384529d6b74f8a58279f9b56bfe3cce332168067dddeab2552d8eeb56dc8eaf86c04a3a09166a316cb92dfc79c4c623cd034ad4c563952c98b464f languageName: node linkType: hard -"@babel/helper-plugin-utils@npm:^7.0.0, @babel/helper-plugin-utils@npm:^7.10.4, @babel/helper-plugin-utils@npm:^7.12.13, @babel/helper-plugin-utils@npm:^7.14.5, @babel/helper-plugin-utils@npm:^7.18.6, @babel/helper-plugin-utils@npm:^7.20.2, @babel/helper-plugin-utils@npm:^7.22.5, @babel/helper-plugin-utils@npm:^7.24.0, @babel/helper-plugin-utils@npm:^7.8.0, @babel/helper-plugin-utils@npm:^7.8.3": - version: 7.24.0 - resolution: "@babel/helper-plugin-utils@npm:7.24.0" - checksum: e2baa0eede34d2fa2265947042aa84d444aa48dc51e9feedea55b67fc1bc3ab051387e18b33ca7748285a6061390831ab82f8a2c767d08470b93500ec727e9b9 +"@babel/helper-plugin-utils@npm:^7.0.0, @babel/helper-plugin-utils@npm:^7.10.4, @babel/helper-plugin-utils@npm:^7.12.13, @babel/helper-plugin-utils@npm:^7.14.5, @babel/helper-plugin-utils@npm:^7.18.6, @babel/helper-plugin-utils@npm:^7.20.2, @babel/helper-plugin-utils@npm:^7.22.5, @babel/helper-plugin-utils@npm:^7.27.1, @babel/helper-plugin-utils@npm:^7.8.0": + version: 7.27.1 + resolution: "@babel/helper-plugin-utils@npm:7.27.1" + checksum: 5d715055301badab62bdb2336075a77f8dc8bd290cad2bc1b37ea3bf1b3efc40594d308082229f239deb4d6b5b80b0a73bce000e595ea74416e0339c11037047 languageName: node linkType: hard -"@babel/helper-remap-async-to-generator@npm:^7.22.20": - version: 7.22.20 - resolution: "@babel/helper-remap-async-to-generator@npm:7.22.20" +"@babel/helper-remap-async-to-generator@npm:^7.27.1": + version: 7.27.1 + resolution: "@babel/helper-remap-async-to-generator@npm:7.27.1" dependencies: - "@babel/helper-annotate-as-pure": ^7.22.5 - "@babel/helper-environment-visitor": ^7.22.20 - "@babel/helper-wrap-function": ^7.22.20 + "@babel/helper-annotate-as-pure": ^7.27.1 + "@babel/helper-wrap-function": ^7.27.1 + "@babel/traverse": ^7.27.1 peerDependencies: "@babel/core": ^7.0.0 - checksum: 2fe6300a6f1b58211dffa0aed1b45d4958506d096543663dba83bd9251fe8d670fa909143a65b45e72acb49e7e20fbdb73eae315d9ddaced467948c3329986e7 + checksum: 0747397ba013f87dbf575454a76c18210d61c7c9af0f697546b4bcac670b54ddc156330234407b397f0c948738c304c228e0223039bc45eab4fbf46966a5e8cc languageName: node linkType: hard -"@babel/helper-replace-supers@npm:^7.24.1": - version: 7.24.1 - resolution: "@babel/helper-replace-supers@npm:7.24.1" +"@babel/helper-replace-supers@npm:^7.27.1": + version: 7.27.1 + resolution: "@babel/helper-replace-supers@npm:7.27.1" dependencies: - "@babel/helper-environment-visitor": ^7.22.20 - "@babel/helper-member-expression-to-functions": ^7.23.0 - "@babel/helper-optimise-call-expression": ^7.22.5 + "@babel/helper-member-expression-to-functions": ^7.27.1 + "@babel/helper-optimise-call-expression": ^7.27.1 + "@babel/traverse": ^7.27.1 peerDependencies: "@babel/core": ^7.0.0 - checksum: c04182c34a3195c6396de2f2945f86cb60daa94ca7392db09bd8b0d4e7a15b02fbe1947c70f6062c87eadaea6d7135207129efa35cf458ea0987bab8c0f02d5a + checksum: 3690266c304f21008690ba68062f889a363583cabc13c3d033b94513953147af3e0a3fdb48fa1bb9fa3734b64e221fc65e5222ab70837f02321b7225f487c6ef languageName: node linkType: hard -"@babel/helper-simple-access@npm:^7.22.5": - version: 7.22.5 - resolution: "@babel/helper-simple-access@npm:7.22.5" +"@babel/helper-skip-transparent-expression-wrappers@npm:^7.20.0, @babel/helper-skip-transparent-expression-wrappers@npm:^7.27.1": + version: 7.27.1 + resolution: "@babel/helper-skip-transparent-expression-wrappers@npm:7.27.1" dependencies: - "@babel/types": ^7.22.5 - checksum: fe9686714caf7d70aedb46c3cce090f8b915b206e09225f1e4dbc416786c2fdbbee40b38b23c268b7ccef749dd2db35f255338fb4f2444429874d900dede5ad2 + "@babel/traverse": ^7.27.1 + "@babel/types": ^7.27.1 + checksum: 4f380c5d0e0769fa6942a468b0c2d7c8f0c438f941aaa88f785f8752c103631d0904c7b4e76207a3b0e6588b2dec376595370d92ca8f8f1b422c14a69aa146d4 languageName: node linkType: hard -"@babel/helper-skip-transparent-expression-wrappers@npm:^7.20.0, @babel/helper-skip-transparent-expression-wrappers@npm:^7.22.5": - version: 7.22.5 - resolution: "@babel/helper-skip-transparent-expression-wrappers@npm:7.22.5" - dependencies: - "@babel/types": ^7.22.5 - checksum: 1012ef2295eb12dc073f2b9edf3425661e9b8432a3387e62a8bc27c42963f1f216ab3124228015c748770b2257b4f1fda882ca8fa34c0bf485e929ae5bc45244 +"@babel/helper-string-parser@npm:^7.27.1": + version: 7.27.1 + resolution: "@babel/helper-string-parser@npm:7.27.1" + checksum: 0a8464adc4b39b138aedcb443b09f4005d86207d7126e5e079177e05c3116107d856ec08282b365e9a79a9872f40f4092a6127f8d74c8a01c1ef789dacfc25d6 languageName: node linkType: hard -"@babel/helper-split-export-declaration@npm:^7.22.6": - version: 7.22.6 - resolution: "@babel/helper-split-export-declaration@npm:7.22.6" - dependencies: - "@babel/types": ^7.22.5 - checksum: e141cace583b19d9195f9c2b8e17a3ae913b7ee9b8120246d0f9ca349ca6f03cb2c001fd5ec57488c544347c0bb584afec66c936511e447fd20a360e591ac921 +"@babel/helper-validator-identifier@npm:^7.27.1": + version: 7.27.1 + resolution: "@babel/helper-validator-identifier@npm:7.27.1" + checksum: 3c7e8391e59d6c85baeefe9afb86432f2ab821c6232b00ea9082a51d3e7e95a2f3fb083d74dc1f49ac82cf238e1d2295dafcb001f7b0fab479f3f56af5eaaa47 languageName: node linkType: hard -"@babel/helper-string-parser@npm:^7.23.4": - version: 7.24.1 - resolution: "@babel/helper-string-parser@npm:7.24.1" - checksum: 8404e865b06013979a12406aab4c0e8d2e377199deec09dfe9f57b833b0c9ce7b6e8c1c553f2da8d0bcd240c5005bd7a269f4fef0d628aeb7d5fe035c436fb67 +"@babel/helper-validator-option@npm:^7.27.1": + version: 7.27.1 + resolution: "@babel/helper-validator-option@npm:7.27.1" + checksum: db73e6a308092531c629ee5de7f0d04390835b21a263be2644276cb27da2384b64676cab9f22cd8d8dbd854c92b1d7d56fc8517cf0070c35d1c14a8c828b0903 languageName: node linkType: hard -"@babel/helper-validator-identifier@npm:^7.22.20": - version: 7.22.20 - resolution: "@babel/helper-validator-identifier@npm:7.22.20" - checksum: 136412784d9428266bcdd4d91c32bcf9ff0e8d25534a9d94b044f77fe76bc50f941a90319b05aafd1ec04f7d127cd57a179a3716009ff7f3412ef835ada95bdc - languageName: node - linkType: hard - -"@babel/helper-validator-option@npm:^7.23.5": - version: 7.23.5 - resolution: "@babel/helper-validator-option@npm:7.23.5" - checksum: 537cde2330a8aede223552510e8a13e9c1c8798afee3757995a7d4acae564124fe2bf7e7c3d90d62d3657434a74340a274b3b3b1c6f17e9a2be1f48af29cb09e - languageName: node - linkType: hard - -"@babel/helper-wrap-function@npm:^7.22.20": - version: 7.22.20 - resolution: "@babel/helper-wrap-function@npm:7.22.20" +"@babel/helper-wrap-function@npm:^7.27.1": + version: 7.27.1 + resolution: "@babel/helper-wrap-function@npm:7.27.1" dependencies: - "@babel/helper-function-name": ^7.22.5 - "@babel/template": ^7.22.15 - "@babel/types": ^7.22.19 - checksum: 221ed9b5572612aeb571e4ce6a256f2dee85b3c9536f1dd5e611b0255e5f59a3d0ec392d8d46d4152149156a8109f92f20379b1d6d36abb613176e0e33f05fca + "@babel/template": ^7.27.1 + "@babel/traverse": ^7.27.1 + "@babel/types": ^7.27.1 + checksum: b0427765766494cb5455a188d4cdef5e6167f2835a8ed76f3c25fa3bbe2ec2a716588fa326c52fab0d184a9537200d76e48656e516580a914129d74528322821 languageName: node linkType: hard -"@babel/helpers@npm:^7.24.4": - version: 7.24.4 - resolution: "@babel/helpers@npm:7.24.4" +"@babel/helpers@npm:^7.27.1": + version: 7.27.1 + resolution: "@babel/helpers@npm:7.27.1" dependencies: - "@babel/template": ^7.24.0 - "@babel/traverse": ^7.24.1 - "@babel/types": ^7.24.0 - checksum: ecd2dc0b3b32e24b97fa3bcda432dd3235b77c2be1e16eafc35b8ef8f6c461faa99796a8bc2431a408c98b4aabfd572c160e2b67ecea4c5c9dd3a8314a97994a + "@babel/template": ^7.27.1 + "@babel/types": ^7.27.1 + checksum: 19ede1e996cbd295fb3a881ff70bc0f91c5133ebac256441e9ecd69dfba89456e75cf7ecf06cd276c638a4de7bd6eff21151961c78038d0b23d94b4d23415ee4 languageName: node linkType: hard -"@babel/highlight@npm:^7.24.2": - version: 7.24.2 - resolution: "@babel/highlight@npm:7.24.2" +"@babel/parser@npm:^7.1.0, @babel/parser@npm:^7.14.7, @babel/parser@npm:^7.20.7, @babel/parser@npm:^7.23.9, @babel/parser@npm:^7.27.1, @babel/parser@npm:^7.27.2": + version: 7.27.2 + resolution: "@babel/parser@npm:7.27.2" dependencies: - "@babel/helper-validator-identifier": ^7.22.20 - chalk: ^2.4.2 - js-tokens: ^4.0.0 - picocolors: ^1.0.0 - checksum: 5f17b131cc3ebf3ab285a62cf98a404aef1bd71a6be045e748f8d5bf66d6a6e1aefd62f5972c84369472e8d9f22a614c58a89cd331eb60b7ba965b31b1bbeaf5 + "@babel/types": ^7.27.1 + bin: + parser: ./bin/babel-parser.js + checksum: 1ac70a75028f1cc10eefb10ed2d83cf700ca3e1ddb4cf556a003fc5c4ca53ae83350bbb8065020fcc70d476fcf7bf1c17191b72384f719614ae18397142289cf languageName: node linkType: hard -"@babel/parser@npm:^7.1.0, @babel/parser@npm:^7.14.7, @babel/parser@npm:^7.20.7, @babel/parser@npm:^7.23.9, @babel/parser@npm:^7.24.0, @babel/parser@npm:^7.24.1, @babel/parser@npm:^7.24.4": - version: 7.24.4 - resolution: "@babel/parser@npm:7.24.4" - bin: - parser: ./bin/babel-parser.js - checksum: 94c9e3e592894cd6fc57c519f4e06b65463df9be5f01739bb0d0bfce7ffcf99b3c2fdadd44dc59cc858ba2739ce6e469813a941c2f2dfacf333a3b2c9c5c8465 +"@babel/plugin-bugfix-firefox-class-in-computed-class-key@npm:^7.27.1": + version: 7.27.1 + resolution: "@babel/plugin-bugfix-firefox-class-in-computed-class-key@npm:7.27.1" + dependencies: + "@babel/helper-plugin-utils": ^7.27.1 + "@babel/traverse": ^7.27.1 + peerDependencies: + "@babel/core": ^7.0.0 + checksum: 72f24b9487e445fa61cf8be552aad394a648c2bb445c38d39d1df003186d9685b87dd8d388c950f438ea0ca44c82099d9c49252fb681c719cc72edf02bbe0304 languageName: node linkType: hard -"@babel/plugin-bugfix-firefox-class-in-computed-class-key@npm:^7.24.4": - version: 7.24.4 - resolution: "@babel/plugin-bugfix-firefox-class-in-computed-class-key@npm:7.24.4" +"@babel/plugin-bugfix-safari-class-field-initializer-scope@npm:^7.27.1": + version: 7.27.1 + resolution: "@babel/plugin-bugfix-safari-class-field-initializer-scope@npm:7.27.1" dependencies: - "@babel/helper-environment-visitor": ^7.22.20 - "@babel/helper-plugin-utils": ^7.24.0 + "@babel/helper-plugin-utils": ^7.27.1 peerDependencies: "@babel/core": ^7.0.0 - checksum: 0be3f41b1b865d7a4ed1a432337be48de67989d0b4e47def34a05097a804b6fc193115f97c954fd757339e0b80030ecf1d0a3d3fd6e7e91718644de0a5aae3d3 + checksum: eb7f4146dc01f1198ce559a90b077e58b951a07521ec414e3c7d4593bf6c4ab5c2af22242a7e9fec085e20299e0ba6ea97f44a45e84ab148141bf9eb959ad25e languageName: node linkType: hard -"@babel/plugin-bugfix-safari-id-destructuring-collision-in-function-expression@npm:^7.24.1": - version: 7.24.1 - resolution: "@babel/plugin-bugfix-safari-id-destructuring-collision-in-function-expression@npm:7.24.1" +"@babel/plugin-bugfix-safari-id-destructuring-collision-in-function-expression@npm:^7.27.1": + version: 7.27.1 + resolution: "@babel/plugin-bugfix-safari-id-destructuring-collision-in-function-expression@npm:7.27.1" dependencies: - "@babel/helper-plugin-utils": ^7.24.0 + "@babel/helper-plugin-utils": ^7.27.1 peerDependencies: "@babel/core": ^7.0.0 - checksum: ec5fddc8db6de0e0082a883f21141d6f4f9f9f0bc190d662a732b5e9a506aae5d7d2337049a1bf055d7cb7add6f128036db6d4f47de5e9ac1be29e043c8b7ca8 + checksum: 621cfddfcc99a81e74f8b6f9101fd260b27500cb1a568e3ceae9cc8afe9aee45ac3bca3900a2b66c612b1a2366d29ef67d4df5a1c975be727eaad6906f98c2c6 languageName: node linkType: hard -"@babel/plugin-bugfix-v8-spread-parameters-in-optional-chaining@npm:^7.24.1": - version: 7.24.1 - resolution: "@babel/plugin-bugfix-v8-spread-parameters-in-optional-chaining@npm:7.24.1" +"@babel/plugin-bugfix-v8-spread-parameters-in-optional-chaining@npm:^7.27.1": + version: 7.27.1 + resolution: "@babel/plugin-bugfix-v8-spread-parameters-in-optional-chaining@npm:7.27.1" dependencies: - "@babel/helper-plugin-utils": ^7.24.0 - "@babel/helper-skip-transparent-expression-wrappers": ^7.22.5 - "@babel/plugin-transform-optional-chaining": ^7.24.1 + "@babel/helper-plugin-utils": ^7.27.1 + "@babel/helper-skip-transparent-expression-wrappers": ^7.27.1 + "@babel/plugin-transform-optional-chaining": ^7.27.1 peerDependencies: "@babel/core": ^7.13.0 - checksum: e18235463e716ac2443938aaec3c18b40c417a1746fba0fa4c26cf4d71326b76ef26c002081ab1b445abfae98e063d561519aa55672dddc1ef80b3940211ffbb + checksum: f07aa80272bd7a46b7ba11a4644da6c9b6a5a64e848dfaffdad6f02663adefd512e1aaebe664c4dd95f7ed4f80c872c7f8db8d8e34b47aae0930b412a28711a0 languageName: node linkType: hard -"@babel/plugin-bugfix-v8-static-class-fields-redefine-readonly@npm:^7.24.1": - version: 7.24.1 - resolution: "@babel/plugin-bugfix-v8-static-class-fields-redefine-readonly@npm:7.24.1" +"@babel/plugin-bugfix-v8-static-class-fields-redefine-readonly@npm:^7.27.1": + version: 7.27.1 + resolution: "@babel/plugin-bugfix-v8-static-class-fields-redefine-readonly@npm:7.27.1" dependencies: - "@babel/helper-environment-visitor": ^7.22.20 - "@babel/helper-plugin-utils": ^7.24.0 + "@babel/helper-plugin-utils": ^7.27.1 + "@babel/traverse": ^7.27.1 peerDependencies: "@babel/core": ^7.0.0 - checksum: b5e5889ce5ef51e813e3063cd548f55eb3c88e925c3c08913f334e15d62496861e538ae52a3974e0c56a3044ed8fd5033faea67a64814324af56edc9865b7359 + checksum: 4d6792ccade2d6b9d5577b0a879ab22d05ac8a1206b1a636b6ffdb53a0c0bacaf0f7947e46de254f228ffd75456f4b95ccd82fdeaefc0b92d88af3c5991863ad languageName: node linkType: hard @@ -550,15 +488,15 @@ __metadata: linkType: hard "@babel/plugin-proposal-decorators@npm:^7.16.4": - version: 7.24.1 - resolution: "@babel/plugin-proposal-decorators@npm:7.24.1" + version: 7.27.1 + resolution: "@babel/plugin-proposal-decorators@npm:7.27.1" dependencies: - "@babel/helper-create-class-features-plugin": ^7.24.1 - "@babel/helper-plugin-utils": ^7.24.0 - "@babel/plugin-syntax-decorators": ^7.24.1 + "@babel/helper-create-class-features-plugin": ^7.27.1 + "@babel/helper-plugin-utils": ^7.27.1 + "@babel/plugin-syntax-decorators": ^7.27.1 peerDependencies: "@babel/core": ^7.0.0-0 - checksum: b9375c64656bf9ae6d2eeb965c40823e6447f0f4594979d037231884c0f3a92af97172087f35a05e90b8ca0ccb47551b013998e85853c1c634d47b341f4deece + checksum: 2dd1694ab94165b9b06d03354baf724b4b25b152c28e2aac251f703ab1c310ac8161b8786d4f8ad888417b48f8e009593b9f75b85ac8ef6c59fa18742937b7dd languageName: node linkType: hard @@ -620,7 +558,7 @@ __metadata: languageName: node linkType: hard -"@babel/plugin-proposal-private-property-in-object@npm:^7.16.0": +"@babel/plugin-proposal-private-property-in-object@npm:^7.16.7": version: 7.21.11 resolution: "@babel/plugin-proposal-private-property-in-object@npm:7.21.11" dependencies: @@ -656,7 +594,7 @@ __metadata: languageName: node linkType: hard -"@babel/plugin-syntax-class-properties@npm:^7.12.13, @babel/plugin-syntax-class-properties@npm:^7.8.3": +"@babel/plugin-syntax-class-properties@npm:^7.12.13": version: 7.12.13 resolution: "@babel/plugin-syntax-class-properties@npm:7.12.13" dependencies: @@ -678,73 +616,51 @@ __metadata: languageName: node linkType: hard -"@babel/plugin-syntax-decorators@npm:^7.24.1": - version: 7.24.1 - resolution: "@babel/plugin-syntax-decorators@npm:7.24.1" +"@babel/plugin-syntax-decorators@npm:^7.27.1": + version: 7.27.1 + resolution: "@babel/plugin-syntax-decorators@npm:7.27.1" dependencies: - "@babel/helper-plugin-utils": ^7.24.0 + "@babel/helper-plugin-utils": ^7.27.1 peerDependencies: "@babel/core": ^7.0.0-0 - checksum: 5933fdb1d8d2c0b4b80621ad65dacd4e1ccd836041557c2ddc4cb4c1f46a347fa72977fc519695a801c9cca8b9aaf90d7895ddd52cb4e510fbef5b9f03cb9568 + checksum: c085b6083d9ce71f47563e05dddfff18a7611e376297b5a9eb35ef70e5919822f87bfba5b25276dfa55bdb6465943ba5d8d9a00f870611d63eaa1a148adc275e languageName: node linkType: hard -"@babel/plugin-syntax-dynamic-import@npm:^7.8.3": - version: 7.8.3 - resolution: "@babel/plugin-syntax-dynamic-import@npm:7.8.3" +"@babel/plugin-syntax-flow@npm:^7.27.1": + version: 7.27.1 + resolution: "@babel/plugin-syntax-flow@npm:7.27.1" dependencies: - "@babel/helper-plugin-utils": ^7.8.0 + "@babel/helper-plugin-utils": ^7.27.1 peerDependencies: "@babel/core": ^7.0.0-0 - checksum: ce307af83cf433d4ec42932329fad25fa73138ab39c7436882ea28742e1c0066626d224e0ad2988724c82644e41601cef607b36194f695cb78a1fcdc959637bd + checksum: 7baca3171ed595d04c865b0ce46fca7f21900686df9d7fcd1017036ce78bb5483e33803de810831e68d39cf478953db69f49ae3f3de2e3207bc4ba49a96b6739 languageName: node linkType: hard -"@babel/plugin-syntax-export-namespace-from@npm:^7.8.3": - version: 7.8.3 - resolution: "@babel/plugin-syntax-export-namespace-from@npm:7.8.3" +"@babel/plugin-syntax-import-assertions@npm:^7.27.1": + version: 7.27.1 + resolution: "@babel/plugin-syntax-import-assertions@npm:7.27.1" dependencies: - "@babel/helper-plugin-utils": ^7.8.3 + "@babel/helper-plugin-utils": ^7.27.1 peerDependencies: "@babel/core": ^7.0.0-0 - checksum: 85740478be5b0de185228e7814451d74ab8ce0a26fcca7613955262a26e99e8e15e9da58f60c754b84515d4c679b590dbd3f2148f0f58025f4ae706f1c5a5d4a + checksum: fb661d630808d67ecb85eabad25aac4e9696a20464bad4c4a6a0d3d40e4dc22557d47e9be3d591ec06429cf048cfe169b8891c373606344d51c4f3ac0f91d6d0 languageName: node linkType: hard -"@babel/plugin-syntax-flow@npm:^7.24.1": - version: 7.24.1 - resolution: "@babel/plugin-syntax-flow@npm:7.24.1" +"@babel/plugin-syntax-import-attributes@npm:^7.24.7, @babel/plugin-syntax-import-attributes@npm:^7.27.1": + version: 7.27.1 + resolution: "@babel/plugin-syntax-import-attributes@npm:7.27.1" dependencies: - "@babel/helper-plugin-utils": ^7.24.0 + "@babel/helper-plugin-utils": ^7.27.1 peerDependencies: "@babel/core": ^7.0.0-0 - checksum: 87dfe32f3a3ea77941034fb2a39fdfc9ea18a994b8df40c3659a11c8787b2bc5adea029259c4eafc03cd35f11628f6533aa2a06381db7fcbe3b2cc3c2a2bb54f + checksum: 97973982fff1bbf86b3d1df13380567042887c50e2ae13a400d02a8ff2c9742a60a75e279bfb73019e1cd9710f04be5e6ab81f896e6678dcfcec8b135e8896cf languageName: node linkType: hard -"@babel/plugin-syntax-import-assertions@npm:^7.24.1": - version: 7.24.1 - resolution: "@babel/plugin-syntax-import-assertions@npm:7.24.1" - dependencies: - "@babel/helper-plugin-utils": ^7.24.0 - peerDependencies: - "@babel/core": ^7.0.0-0 - checksum: 2a463928a63b62052e9fb8f8b0018aa11a926e94f32c168260ae012afe864875c6176c6eb361e13f300542c31316dad791b08a5b8ed92436a3095c7a0e4fce65 - languageName: node - linkType: hard - -"@babel/plugin-syntax-import-attributes@npm:^7.24.1": - version: 7.24.1 - resolution: "@babel/plugin-syntax-import-attributes@npm:7.24.1" - dependencies: - "@babel/helper-plugin-utils": ^7.24.0 - peerDependencies: - "@babel/core": ^7.0.0-0 - checksum: 87c8aa4a5ef931313f956871b27f2c051556f627b97ed21e9a5890ca4906b222d89062a956cde459816f5e0dec185ff128d7243d3fdc389504522acb88f0464e - languageName: node - linkType: hard - -"@babel/plugin-syntax-import-meta@npm:^7.10.4, @babel/plugin-syntax-import-meta@npm:^7.8.3": +"@babel/plugin-syntax-import-meta@npm:^7.10.4": version: 7.10.4 resolution: "@babel/plugin-syntax-import-meta@npm:7.10.4" dependencies: @@ -766,18 +682,18 @@ __metadata: languageName: node linkType: hard -"@babel/plugin-syntax-jsx@npm:^7.22.5, @babel/plugin-syntax-jsx@npm:^7.23.3, @babel/plugin-syntax-jsx@npm:^7.24.1, @babel/plugin-syntax-jsx@npm:^7.7.2": - version: 7.24.1 - resolution: "@babel/plugin-syntax-jsx@npm:7.24.1" +"@babel/plugin-syntax-jsx@npm:^7.22.5, @babel/plugin-syntax-jsx@npm:^7.27.1, @babel/plugin-syntax-jsx@npm:^7.7.2": + version: 7.27.1 + resolution: "@babel/plugin-syntax-jsx@npm:7.27.1" dependencies: - "@babel/helper-plugin-utils": ^7.24.0 + "@babel/helper-plugin-utils": ^7.27.1 peerDependencies: "@babel/core": ^7.0.0-0 - checksum: 712f7e7918cb679f106769f57cfab0bc99b311032665c428b98f4c3e2e6d567601d45386a4f246df6a80d741e1f94192b3f008800d66c4f1daae3ad825c243f0 + checksum: c6d1324cff286a369aa95d99b8abd21dd07821b5d3affd5fe7d6058c84cff9190743287826463ee57a7beecd10fa1e4bc99061df532ee14e188c1c8937b13e3a languageName: node linkType: hard -"@babel/plugin-syntax-logical-assignment-operators@npm:^7.10.4, @babel/plugin-syntax-logical-assignment-operators@npm:^7.8.3": +"@babel/plugin-syntax-logical-assignment-operators@npm:^7.10.4": version: 7.10.4 resolution: "@babel/plugin-syntax-logical-assignment-operators@npm:7.10.4" dependencies: @@ -799,7 +715,7 @@ __metadata: languageName: node linkType: hard -"@babel/plugin-syntax-numeric-separator@npm:^7.10.4, @babel/plugin-syntax-numeric-separator@npm:^7.8.3": +"@babel/plugin-syntax-numeric-separator@npm:^7.10.4": version: 7.10.4 resolution: "@babel/plugin-syntax-numeric-separator@npm:7.10.4" dependencies: @@ -854,7 +770,7 @@ __metadata: languageName: node linkType: hard -"@babel/plugin-syntax-top-level-await@npm:^7.14.5, @babel/plugin-syntax-top-level-await@npm:^7.8.3": +"@babel/plugin-syntax-top-level-await@npm:^7.14.5": version: 7.14.5 resolution: "@babel/plugin-syntax-top-level-await@npm:7.14.5" dependencies: @@ -865,14 +781,14 @@ __metadata: languageName: node linkType: hard -"@babel/plugin-syntax-typescript@npm:^7.24.1, @babel/plugin-syntax-typescript@npm:^7.7.2": - version: 7.24.1 - resolution: "@babel/plugin-syntax-typescript@npm:7.24.1" +"@babel/plugin-syntax-typescript@npm:^7.27.1, @babel/plugin-syntax-typescript@npm:^7.7.2": + version: 7.27.1 + resolution: "@babel/plugin-syntax-typescript@npm:7.27.1" dependencies: - "@babel/helper-plugin-utils": ^7.24.0 + "@babel/helper-plugin-utils": ^7.27.1 peerDependencies: "@babel/core": ^7.0.0-0 - checksum: bf4bd70788d5456b5f75572e47a2e31435c7c4e43609bd4dffd2cc0c7a6cf90aabcf6cd389e351854de9a64412a07d30effef5373251fe8f6a4c9db0c0163bda + checksum: 87836f7e32af624c2914c73cd6b9803cf324e07d43f61dbb973c6a86f75df725e12540d91fac7141c14b697aa9268fd064220998daced156e96ac3062d7afb41 languageName: node linkType: hard @@ -888,797 +804,794 @@ __metadata: languageName: node linkType: hard -"@babel/plugin-transform-arrow-functions@npm:^7.24.1": - version: 7.24.1 - resolution: "@babel/plugin-transform-arrow-functions@npm:7.24.1" +"@babel/plugin-transform-arrow-functions@npm:^7.27.1": + version: 7.27.1 + resolution: "@babel/plugin-transform-arrow-functions@npm:7.27.1" dependencies: - "@babel/helper-plugin-utils": ^7.24.0 + "@babel/helper-plugin-utils": ^7.27.1 peerDependencies: "@babel/core": ^7.0.0-0 - checksum: 58f9aa9b0de8382f8cfa3f1f1d40b69d98cd2f52340e2391733d0af745fdddda650ba392e509bc056157c880a2f52834a38ab2c5aa5569af8c61bb6ecbf45f34 + checksum: 62c2cc0ae2093336b1aa1376741c5ed245c0987d9e4b4c5313da4a38155509a7098b5acce582b6781cc0699381420010da2e3086353344abe0a6a0ec38961eb7 languageName: node linkType: hard -"@babel/plugin-transform-async-generator-functions@npm:^7.24.3": - version: 7.24.3 - resolution: "@babel/plugin-transform-async-generator-functions@npm:7.24.3" +"@babel/plugin-transform-async-generator-functions@npm:^7.27.1": + version: 7.27.1 + resolution: "@babel/plugin-transform-async-generator-functions@npm:7.27.1" dependencies: - "@babel/helper-environment-visitor": ^7.22.20 - "@babel/helper-plugin-utils": ^7.24.0 - "@babel/helper-remap-async-to-generator": ^7.22.20 - "@babel/plugin-syntax-async-generators": ^7.8.4 + "@babel/helper-plugin-utils": ^7.27.1 + "@babel/helper-remap-async-to-generator": ^7.27.1 + "@babel/traverse": ^7.27.1 peerDependencies: "@babel/core": ^7.0.0-0 - checksum: 309af02610be65d937664435adb432a32d9b6eb42bb3d3232c377d27fbc57014774d931665a5bfdaff3d1841b72659e0ad7adcef84b709f251cb0b8444f19214 + checksum: 37e8b76c992066f81cc24af11a25f296add6ae39f51f2c37da565fc004dbf3ef9733b42808acbfb86792d73f73bfbb4396338abbd364b9103146b119508b49c7 languageName: node linkType: hard -"@babel/plugin-transform-async-to-generator@npm:^7.24.1": - version: 7.24.1 - resolution: "@babel/plugin-transform-async-to-generator@npm:7.24.1" +"@babel/plugin-transform-async-to-generator@npm:^7.27.1": + version: 7.27.1 + resolution: "@babel/plugin-transform-async-to-generator@npm:7.27.1" dependencies: - "@babel/helper-module-imports": ^7.24.1 - "@babel/helper-plugin-utils": ^7.24.0 - "@babel/helper-remap-async-to-generator": ^7.22.20 + "@babel/helper-module-imports": ^7.27.1 + "@babel/helper-plugin-utils": ^7.27.1 + "@babel/helper-remap-async-to-generator": ^7.27.1 peerDependencies: "@babel/core": ^7.0.0-0 - checksum: 429004a6596aa5c9e707b604156f49a146f8d029e31a3152b1649c0b56425264fda5fd38e5db1ddaeb33c3fe45c97dc8078d7abfafe3542a979b49f229801135 + checksum: d79d7a7ae7d416f6a48200017d027a6ba94c09c7617eea8b4e9c803630f00094c1a4fc32bf20ce3282567824ce3fcbda51653aac4003c71ea4e681b331338979 languageName: node linkType: hard -"@babel/plugin-transform-block-scoped-functions@npm:^7.24.1": - version: 7.24.1 - resolution: "@babel/plugin-transform-block-scoped-functions@npm:7.24.1" +"@babel/plugin-transform-block-scoped-functions@npm:^7.27.1": + version: 7.27.1 + resolution: "@babel/plugin-transform-block-scoped-functions@npm:7.27.1" dependencies: - "@babel/helper-plugin-utils": ^7.24.0 + "@babel/helper-plugin-utils": ^7.27.1 peerDependencies: "@babel/core": ^7.0.0-0 - checksum: d8e18bd57b156da1cd4d3c1780ab9ea03afed56c6824ca8e6e74f67959d7989a0e953ec370fe9b417759314f2eef30c8c437395ce63ada2e26c2f469e4704f82 + checksum: 7fb4988ca80cf1fc8345310d5edfe38e86b3a72a302675cdd09404d5064fe1d1fe1283ebe658ad2b71445ecef857bfb29a748064306b5f6c628e0084759c2201 languageName: node linkType: hard -"@babel/plugin-transform-block-scoping@npm:^7.24.4": - version: 7.24.4 - resolution: "@babel/plugin-transform-block-scoping@npm:7.24.4" +"@babel/plugin-transform-block-scoping@npm:^7.27.1": + version: 7.27.1 + resolution: "@babel/plugin-transform-block-scoping@npm:7.27.1" dependencies: - "@babel/helper-plugin-utils": ^7.24.0 + "@babel/helper-plugin-utils": ^7.27.1 peerDependencies: "@babel/core": ^7.0.0-0 - checksum: 5229ffe1c55744b96f791521e2876b01ed05c81df67488a7453ce66c2faceb9d1d653089ce6f0abf512752e15e9acac0e75a797a860f24e05b4d36497c7c3183 + checksum: 490773ee111fd298d74bd0ba454c941ae23a39db5cd08bf4258997f44f7584399fc4214a7c3816ee70f0273c263fe2ea4e11bb07939e57845702ba05258a9cb0 languageName: node linkType: hard -"@babel/plugin-transform-class-properties@npm:^7.24.1": - version: 7.24.1 - resolution: "@babel/plugin-transform-class-properties@npm:7.24.1" +"@babel/plugin-transform-class-properties@npm:^7.27.1": + version: 7.27.1 + resolution: "@babel/plugin-transform-class-properties@npm:7.27.1" dependencies: - "@babel/helper-create-class-features-plugin": ^7.24.1 - "@babel/helper-plugin-utils": ^7.24.0 + "@babel/helper-create-class-features-plugin": ^7.27.1 + "@babel/helper-plugin-utils": ^7.27.1 peerDependencies: "@babel/core": ^7.0.0-0 - checksum: 95779e9eef0c0638b9631c297d48aee53ffdbb2b1b5221bf40d7eccd566a8e34f859ff3571f8f20b9159b67f1bff7d7dc81da191c15d69fbae5a645197eae7e0 + checksum: 475a6e5a9454912fe1bdc171941976ca10ea4e707675d671cdb5ce6b6761d84d1791ac61b6bca81a2e5f6430cb7b9d8e4b2392404110e69c28207a754e196294 languageName: node linkType: hard -"@babel/plugin-transform-class-static-block@npm:^7.24.4": - version: 7.24.4 - resolution: "@babel/plugin-transform-class-static-block@npm:7.24.4" +"@babel/plugin-transform-class-static-block@npm:^7.27.1": + version: 7.27.1 + resolution: "@babel/plugin-transform-class-static-block@npm:7.27.1" dependencies: - "@babel/helper-create-class-features-plugin": ^7.24.4 - "@babel/helper-plugin-utils": ^7.24.0 - "@babel/plugin-syntax-class-static-block": ^7.14.5 + "@babel/helper-create-class-features-plugin": ^7.27.1 + "@babel/helper-plugin-utils": ^7.27.1 peerDependencies: "@babel/core": ^7.12.0 - checksum: 3b1db3308b57ba21d47772a9f183804234c23fd64c9ca40915d2d65c5dc7a48b49a6de16b8b90b7a354eacbb51232a862f0fca3dbd23e27d34641f511decddab + checksum: 69688fe1641ae0ea025b916b8c2336e8b5643a5ec292e8f546ecd35d9d9d4bb301d738910822a79d867098cf687d550d92cd906ae4cda03c0f69b1ece2149a58 languageName: node linkType: hard -"@babel/plugin-transform-classes@npm:^7.24.1": - version: 7.24.1 - resolution: "@babel/plugin-transform-classes@npm:7.24.1" +"@babel/plugin-transform-classes@npm:^7.27.1": + version: 7.27.1 + resolution: "@babel/plugin-transform-classes@npm:7.27.1" dependencies: - "@babel/helper-annotate-as-pure": ^7.22.5 - "@babel/helper-compilation-targets": ^7.23.6 - "@babel/helper-environment-visitor": ^7.22.20 - "@babel/helper-function-name": ^7.23.0 - "@babel/helper-plugin-utils": ^7.24.0 - "@babel/helper-replace-supers": ^7.24.1 - "@babel/helper-split-export-declaration": ^7.22.6 + "@babel/helper-annotate-as-pure": ^7.27.1 + "@babel/helper-compilation-targets": ^7.27.1 + "@babel/helper-plugin-utils": ^7.27.1 + "@babel/helper-replace-supers": ^7.27.1 + "@babel/traverse": ^7.27.1 globals: ^11.1.0 peerDependencies: "@babel/core": ^7.0.0-0 - checksum: e5337e707d731c9f4dcc107d09c9a99b90786bc0da6a250165919587ed818818f6cae2bbcceea880abef975c0411715c0c7f3f361ecd1526bf2eaca5ad26bb00 + checksum: a4275d3a9e2e4144c421baa49958191e4b33957fca6e87686ed8da0eb3240270d4f91a2a4b9491c87feb6c33f459d8aec013cec8d5f5099c794b740703802dc7 languageName: node linkType: hard -"@babel/plugin-transform-computed-properties@npm:^7.24.1": - version: 7.24.1 - resolution: "@babel/plugin-transform-computed-properties@npm:7.24.1" +"@babel/plugin-transform-computed-properties@npm:^7.27.1": + version: 7.27.1 + resolution: "@babel/plugin-transform-computed-properties@npm:7.27.1" dependencies: - "@babel/helper-plugin-utils": ^7.24.0 - "@babel/template": ^7.24.0 + "@babel/helper-plugin-utils": ^7.27.1 + "@babel/template": ^7.27.1 peerDependencies: "@babel/core": ^7.0.0-0 - checksum: f2832bcf100a70f348facbb395873318ef5b9ee4b0fb4104a420d9daaeb6003cc2ecc12fd8083dd2e4a7c2da873272ad73ff94de4497125a0cf473294ef9664e + checksum: 48bd20f7d631b08c51155751bf75b698d4a22cca36f41c22921ab92e53039c9ec5c3544e5282e18692325ef85d2e4a18c27e12c62b5e20c26fb0c92447e35224 languageName: node linkType: hard -"@babel/plugin-transform-destructuring@npm:^7.24.1": - version: 7.24.1 - resolution: "@babel/plugin-transform-destructuring@npm:7.24.1" +"@babel/plugin-transform-destructuring@npm:^7.27.1": + version: 7.27.1 + resolution: "@babel/plugin-transform-destructuring@npm:7.27.1" dependencies: - "@babel/helper-plugin-utils": ^7.24.0 + "@babel/helper-plugin-utils": ^7.27.1 peerDependencies: "@babel/core": ^7.0.0-0 - checksum: 994fd3c513e40b8f1bdfdd7104ebdcef7c6a11a4e380086074496f586db3ac04cba0ae70babb820df6363b6700747b0556f6860783e046ace7c741a22f49ec5b + checksum: 492013fc4befd5f3554853f983b82cfa748dd2004a525f1f16a37f841ac402a51e891cac2084b03e2b89553f0e1e685cf5bf8bf9df8fed82114c580b3c567bb6 languageName: node linkType: hard -"@babel/plugin-transform-dotall-regex@npm:^7.24.1": - version: 7.24.1 - resolution: "@babel/plugin-transform-dotall-regex@npm:7.24.1" +"@babel/plugin-transform-dotall-regex@npm:^7.27.1": + version: 7.27.1 + resolution: "@babel/plugin-transform-dotall-regex@npm:7.27.1" dependencies: - "@babel/helper-create-regexp-features-plugin": ^7.22.15 - "@babel/helper-plugin-utils": ^7.24.0 + "@babel/helper-create-regexp-features-plugin": ^7.27.1 + "@babel/helper-plugin-utils": ^7.27.1 peerDependencies: "@babel/core": ^7.0.0-0 - checksum: 7f623d25b6f213b94ebc1754e9e31c1077c8e288626d8b7bfa76a97b067ce80ddcd0ede402a546706c65002c0ccf45cd5ec621511c2668eed31ebcabe8391d35 + checksum: 2173e5b13f403538ffc6bd57b190cedf4caf320abc13a99e5b2721864e7148dbd3bd7c82d92377136af80432818f665fdd9a1fd33bc5549a4c91e24e5ce2413c languageName: node linkType: hard -"@babel/plugin-transform-duplicate-keys@npm:^7.24.1": - version: 7.24.1 - resolution: "@babel/plugin-transform-duplicate-keys@npm:7.24.1" +"@babel/plugin-transform-duplicate-keys@npm:^7.27.1": + version: 7.27.1 + resolution: "@babel/plugin-transform-duplicate-keys@npm:7.27.1" dependencies: - "@babel/helper-plugin-utils": ^7.24.0 + "@babel/helper-plugin-utils": ^7.27.1 peerDependencies: "@babel/core": ^7.0.0-0 - checksum: a3b07c07cee441e185858a9bb9739bb72643173c18bf5f9f949dd2d4784ca124e56b01d0a270790fb1ff0cf75d436075db0a2b643fb4285ff9a21df9e8dc6284 + checksum: ef2112d658338e3ff0827f39a53c0cfa211f1cbbe60363bca833a5269df389598ec965e7283600b46533c39cdca82307d0d69c0f518290ec5b00bb713044715b + languageName: node + linkType: hard + +"@babel/plugin-transform-duplicate-named-capturing-groups-regex@npm:^7.27.1": + version: 7.27.1 + resolution: "@babel/plugin-transform-duplicate-named-capturing-groups-regex@npm:7.27.1" + dependencies: + "@babel/helper-create-regexp-features-plugin": ^7.27.1 + "@babel/helper-plugin-utils": ^7.27.1 + peerDependencies: + "@babel/core": ^7.0.0 + checksum: 2a109613535e6ac79240dced71429e988affd6a5b3d0cd0f563c8d6c208c51ce7bf2c300bc1150502376b26a51f279119b3358f1c0f2d2f8abca3bcd62e1ae46 languageName: node linkType: hard -"@babel/plugin-transform-dynamic-import@npm:^7.24.1": - version: 7.24.1 - resolution: "@babel/plugin-transform-dynamic-import@npm:7.24.1" +"@babel/plugin-transform-dynamic-import@npm:^7.27.1": + version: 7.27.1 + resolution: "@babel/plugin-transform-dynamic-import@npm:7.27.1" dependencies: - "@babel/helper-plugin-utils": ^7.24.0 - "@babel/plugin-syntax-dynamic-import": ^7.8.3 + "@babel/helper-plugin-utils": ^7.27.1 peerDependencies: "@babel/core": ^7.0.0-0 - checksum: 59fc561ee40b1a69f969c12c6c5fac206226d6642213985a569dd0f99f8e41c0f4eaedebd36936c255444a8335079842274c42a975a433beadb436d4c5abb79b + checksum: 7a9fbc8d17148b7f11a1d1ca3990d2c2cd44bd08a45dcaf14f20a017721235b9044b20e6168b6940282bb1b48fb78e6afbdfb9dd9d82fde614e15baa7d579932 languageName: node linkType: hard -"@babel/plugin-transform-exponentiation-operator@npm:^7.24.1": - version: 7.24.1 - resolution: "@babel/plugin-transform-exponentiation-operator@npm:7.24.1" +"@babel/plugin-transform-exponentiation-operator@npm:^7.27.1": + version: 7.27.1 + resolution: "@babel/plugin-transform-exponentiation-operator@npm:7.27.1" dependencies: - "@babel/helper-builder-binary-assignment-operator-visitor": ^7.22.15 - "@babel/helper-plugin-utils": ^7.24.0 + "@babel/helper-plugin-utils": ^7.27.1 peerDependencies: "@babel/core": ^7.0.0-0 - checksum: f90841fe1a1e9f680b4209121d3e2992f923e85efcd322b26e5901c180ef44ff727fb89790803a23fac49af34c1ce2e480018027c22b4573b615512ac5b6fc50 + checksum: 4ff4a0f30babc457a5ae8564deda209599627c2ce647284a0e8e66f65b44f6d968cf77761a4cc31b45b61693f0810479248c79e681681d8ccb39d0c52944c1fd languageName: node linkType: hard -"@babel/plugin-transform-export-namespace-from@npm:^7.24.1": - version: 7.24.1 - resolution: "@babel/plugin-transform-export-namespace-from@npm:7.24.1" +"@babel/plugin-transform-export-namespace-from@npm:^7.27.1": + version: 7.27.1 + resolution: "@babel/plugin-transform-export-namespace-from@npm:7.27.1" dependencies: - "@babel/helper-plugin-utils": ^7.24.0 - "@babel/plugin-syntax-export-namespace-from": ^7.8.3 + "@babel/helper-plugin-utils": ^7.27.1 peerDependencies: "@babel/core": ^7.0.0-0 - checksum: bc710ac231919df9555331885748385c11c5e695d7271824fe56fba51dd637d48d3e5cd52e1c69f2b1a384fbbb41552572bc1ca3a2285ee29571f002e9bb2421 + checksum: 85082923eca317094f08f4953d8ea2a6558b3117826c0b740676983902b7236df1f4213ad844cb38c2dae104753dbe8f1cc51f01567835d476d32f5f544a4385 languageName: node linkType: hard "@babel/plugin-transform-flow-strip-types@npm:^7.16.0": - version: 7.24.1 - resolution: "@babel/plugin-transform-flow-strip-types@npm:7.24.1" + version: 7.27.1 + resolution: "@babel/plugin-transform-flow-strip-types@npm:7.27.1" dependencies: - "@babel/helper-plugin-utils": ^7.24.0 - "@babel/plugin-syntax-flow": ^7.24.1 + "@babel/helper-plugin-utils": ^7.27.1 + "@babel/plugin-syntax-flow": ^7.27.1 peerDependencies: "@babel/core": ^7.0.0-0 - checksum: 83faac90c934e15a8fe813d90cbfdf8aa2cb2cc9108f55e4a1ecda1c3097735af6a0b6623057f059153b572bc1dd088aeb2ff24217e9de82ad2390ab1210d01b + checksum: 0885028866fadefef35292d5a27f878d6a12b6f83778f8731481d4503b49c258507882a7de2aafda9b62d5f6350042f1a06355b998d5ed5e85d693bfcb77b939 languageName: node linkType: hard -"@babel/plugin-transform-for-of@npm:^7.24.1": - version: 7.24.1 - resolution: "@babel/plugin-transform-for-of@npm:7.24.1" +"@babel/plugin-transform-for-of@npm:^7.27.1": + version: 7.27.1 + resolution: "@babel/plugin-transform-for-of@npm:7.27.1" dependencies: - "@babel/helper-plugin-utils": ^7.24.0 - "@babel/helper-skip-transparent-expression-wrappers": ^7.22.5 + "@babel/helper-plugin-utils": ^7.27.1 + "@babel/helper-skip-transparent-expression-wrappers": ^7.27.1 peerDependencies: "@babel/core": ^7.0.0-0 - checksum: 990adde96ea1766ed6008c006c7040127bef59066533bb2977b246ea4a596fe450a528d1881a0db5f894deaf1b81654dfb494b19ad405b369be942738aa9c364 + checksum: c9224e08de5d80b2c834383d4359aa9e519db434291711434dd996a4f86b7b664ad67b45d65459b7ec11fa582e3e11a3c769b8a8ca71594bdd4e2f0503f84126 languageName: node linkType: hard -"@babel/plugin-transform-function-name@npm:^7.24.1": - version: 7.24.1 - resolution: "@babel/plugin-transform-function-name@npm:7.24.1" +"@babel/plugin-transform-function-name@npm:^7.27.1": + version: 7.27.1 + resolution: "@babel/plugin-transform-function-name@npm:7.27.1" dependencies: - "@babel/helper-compilation-targets": ^7.23.6 - "@babel/helper-function-name": ^7.23.0 - "@babel/helper-plugin-utils": ^7.24.0 + "@babel/helper-compilation-targets": ^7.27.1 + "@babel/helper-plugin-utils": ^7.27.1 + "@babel/traverse": ^7.27.1 peerDependencies: "@babel/core": ^7.0.0-0 - checksum: 31eb3c75297dda7265f78eba627c446f2324e30ec0124a645ccc3e9f341254aaa40d6787bd62b2280d77c0a5c9fbfce1da2c200ef7c7f8e0a1b16a8eb3644c6f + checksum: 26a2a183c3c52a96495967420a64afc5a09f743a230272a131668abf23001e393afa6371e6f8e6c60f4182bea210ed31d1caf866452d91009c1daac345a52f23 languageName: node linkType: hard -"@babel/plugin-transform-json-strings@npm:^7.24.1": - version: 7.24.1 - resolution: "@babel/plugin-transform-json-strings@npm:7.24.1" +"@babel/plugin-transform-json-strings@npm:^7.27.1": + version: 7.27.1 + resolution: "@babel/plugin-transform-json-strings@npm:7.27.1" dependencies: - "@babel/helper-plugin-utils": ^7.24.0 - "@babel/plugin-syntax-json-strings": ^7.8.3 + "@babel/helper-plugin-utils": ^7.27.1 peerDependencies: "@babel/core": ^7.0.0-0 - checksum: f42302d42fc81ac00d14e9e5d80405eb80477d7f9039d7208e712d6bcd486a4e3b32fdfa07b5f027d6c773723d8168193ee880f93b0e430c828e45f104fb82a4 + checksum: 2c05a02f63b49f47069271b3405a66c3c8038de5b995b0700b1bd9a5e2bb3e67abd01e4604629302a521f4d8122a4233944aefa16559fd4373d256cc5d3da57f languageName: node linkType: hard -"@babel/plugin-transform-literals@npm:^7.24.1": - version: 7.24.1 - resolution: "@babel/plugin-transform-literals@npm:7.24.1" +"@babel/plugin-transform-literals@npm:^7.27.1": + version: 7.27.1 + resolution: "@babel/plugin-transform-literals@npm:7.27.1" dependencies: - "@babel/helper-plugin-utils": ^7.24.0 + "@babel/helper-plugin-utils": ^7.27.1 peerDependencies: "@babel/core": ^7.0.0-0 - checksum: 2df94e9478571852483aca7588419e574d76bde97583e78551c286f498e01321e7dbb1d0ef67bee16e8f950688f79688809cfde370c5c4b84c14d841a3ef217a + checksum: 0a76d12ab19f32dd139964aea7da48cecdb7de0b75e207e576f0f700121fe92367d788f328bf4fb44b8261a0f605c97b44e62ae61cddbb67b14e94c88b411f95 languageName: node linkType: hard -"@babel/plugin-transform-logical-assignment-operators@npm:^7.24.1": - version: 7.24.1 - resolution: "@babel/plugin-transform-logical-assignment-operators@npm:7.24.1" +"@babel/plugin-transform-logical-assignment-operators@npm:^7.27.1": + version: 7.27.1 + resolution: "@babel/plugin-transform-logical-assignment-operators@npm:7.27.1" dependencies: - "@babel/helper-plugin-utils": ^7.24.0 - "@babel/plugin-syntax-logical-assignment-operators": ^7.10.4 + "@babel/helper-plugin-utils": ^7.27.1 peerDependencies: "@babel/core": ^7.0.0-0 - checksum: 895f2290adf457cbf327428bdb4fb90882a38a22f729bcf0629e8ad66b9b616d2721fbef488ac00411b647489d1dda1d20171bb3772d0796bb7ef5ecf057808a + checksum: 2757955d81d65cc4701c17b83720745f6858f7a1d1d58117e379c204f47adbeb066b778596b6168bdbf4a22c229aab595d79a9abc261d0c6bfd62d4419466e73 languageName: node linkType: hard -"@babel/plugin-transform-member-expression-literals@npm:^7.24.1": - version: 7.24.1 - resolution: "@babel/plugin-transform-member-expression-literals@npm:7.24.1" +"@babel/plugin-transform-member-expression-literals@npm:^7.27.1": + version: 7.27.1 + resolution: "@babel/plugin-transform-member-expression-literals@npm:7.27.1" dependencies: - "@babel/helper-plugin-utils": ^7.24.0 + "@babel/helper-plugin-utils": ^7.27.1 peerDependencies: "@babel/core": ^7.0.0-0 - checksum: 4ea641cc14a615f9084e45ad2319f95e2fee01c77ec9789685e7e11a6c286238a426a98f9c1ed91568a047d8ac834393e06e8c82d1ff01764b7aa61bee8e9023 + checksum: 804121430a6dcd431e6ffe99c6d1fbbc44b43478113b79c677629e7f877b4f78a06b69c6bfb2747fd84ee91879fe2eb32e4620b53124603086cf5b727593ebe8 languageName: node linkType: hard -"@babel/plugin-transform-modules-amd@npm:^7.24.1": - version: 7.24.1 - resolution: "@babel/plugin-transform-modules-amd@npm:7.24.1" +"@babel/plugin-transform-modules-amd@npm:^7.27.1": + version: 7.27.1 + resolution: "@babel/plugin-transform-modules-amd@npm:7.27.1" dependencies: - "@babel/helper-module-transforms": ^7.23.3 - "@babel/helper-plugin-utils": ^7.24.0 + "@babel/helper-module-transforms": ^7.27.1 + "@babel/helper-plugin-utils": ^7.27.1 peerDependencies: "@babel/core": ^7.0.0-0 - checksum: 3d777c262f257e93f0405b13e178f9c4a0f31855b409f0191a76bb562a28c541326a027bfe6467fcb74752f3488c0333b5ff2de64feec1b3c4c6ace1747afa03 + checksum: 8bb36d448e438d5d30f4faf19120e8c18aa87730269e65d805bf6032824d175ed738057cc392c2c8a650028f1ae0f346cad8d6b723f31a037b586e2092a7be18 languageName: node linkType: hard -"@babel/plugin-transform-modules-commonjs@npm:^7.24.1": - version: 7.24.1 - resolution: "@babel/plugin-transform-modules-commonjs@npm:7.24.1" +"@babel/plugin-transform-modules-commonjs@npm:^7.27.1": + version: 7.27.1 + resolution: "@babel/plugin-transform-modules-commonjs@npm:7.27.1" dependencies: - "@babel/helper-module-transforms": ^7.23.3 - "@babel/helper-plugin-utils": ^7.24.0 - "@babel/helper-simple-access": ^7.22.5 + "@babel/helper-module-transforms": ^7.27.1 + "@babel/helper-plugin-utils": ^7.27.1 peerDependencies: "@babel/core": ^7.0.0-0 - checksum: 11402b34c49f76aa921b43c2d76f3f129a32544a1dc4f0d1e48b310f9036ab75269a6d8684ed0198b7a0b07bd7898b12f0cacceb26fbb167999fd2a819aa0802 + checksum: bc45c1beff9b145c982bd6a614af338893d38bce18a9df7d658c9084e0d8114b286dcd0e015132ae7b15dd966153cb13321e4800df9766d0ddd892d22bf09d2a languageName: node linkType: hard -"@babel/plugin-transform-modules-systemjs@npm:^7.24.1": - version: 7.24.1 - resolution: "@babel/plugin-transform-modules-systemjs@npm:7.24.1" +"@babel/plugin-transform-modules-systemjs@npm:^7.27.1": + version: 7.27.1 + resolution: "@babel/plugin-transform-modules-systemjs@npm:7.27.1" dependencies: - "@babel/helper-hoist-variables": ^7.22.5 - "@babel/helper-module-transforms": ^7.23.3 - "@babel/helper-plugin-utils": ^7.24.0 - "@babel/helper-validator-identifier": ^7.22.20 + "@babel/helper-module-transforms": ^7.27.1 + "@babel/helper-plugin-utils": ^7.27.1 + "@babel/helper-validator-identifier": ^7.27.1 + "@babel/traverse": ^7.27.1 peerDependencies: "@babel/core": ^7.0.0-0 - checksum: 903766f6808f04278e887e4adec9b1efa741726279652dad255eaad0f5701df8f8ff0af25eb8541a00eb3c9eae2dccf337b085cfa011426ca33ed1f95d70bf75 + checksum: 7c17a8973676c18525d87f277944616596f1b154cc2b9263bfd78ecdbf5f4288ec46c7f58017321ca3e3d6dfeb96875467b95311a39719b475d42a157525d87f languageName: node linkType: hard -"@babel/plugin-transform-modules-umd@npm:^7.24.1": - version: 7.24.1 - resolution: "@babel/plugin-transform-modules-umd@npm:7.24.1" +"@babel/plugin-transform-modules-umd@npm:^7.27.1": + version: 7.27.1 + resolution: "@babel/plugin-transform-modules-umd@npm:7.27.1" dependencies: - "@babel/helper-module-transforms": ^7.23.3 - "@babel/helper-plugin-utils": ^7.24.0 + "@babel/helper-module-transforms": ^7.27.1 + "@babel/helper-plugin-utils": ^7.27.1 peerDependencies: "@babel/core": ^7.0.0-0 - checksum: 4922f5056d34de6fd59a1ab1c85bc3472afa706c776aceeb886289c9ac9117e6eb8e22d06c537eb5bc0ede6c30f6bd85210bdcc150dc0ae2d2373f8252df9364 + checksum: b007dd89231f2eeccf1c71a85629bcb692573303977a4b1c5f19a835ea6b5142c18ef07849bc6d752b874a11bc0ddf3c67468b77c8ee8310290b688a4f01ef31 languageName: node linkType: hard -"@babel/plugin-transform-named-capturing-groups-regex@npm:^7.22.5": - version: 7.22.5 - resolution: "@babel/plugin-transform-named-capturing-groups-regex@npm:7.22.5" +"@babel/plugin-transform-named-capturing-groups-regex@npm:^7.27.1": + version: 7.27.1 + resolution: "@babel/plugin-transform-named-capturing-groups-regex@npm:7.27.1" dependencies: - "@babel/helper-create-regexp-features-plugin": ^7.22.5 - "@babel/helper-plugin-utils": ^7.22.5 + "@babel/helper-create-regexp-features-plugin": ^7.27.1 + "@babel/helper-plugin-utils": ^7.27.1 peerDependencies: "@babel/core": ^7.0.0 - checksum: 3ee564ddee620c035b928fdc942c5d17e9c4b98329b76f9cefac65c111135d925eb94ed324064cd7556d4f5123beec79abea1d4b97d1c8a2a5c748887a2eb623 + checksum: a711c92d9753df26cefc1792481e5cbff4fe4f32b383d76b25e36fa865d8023b1b9aa6338cf18f5c0e864c71a7fbe8115e840872ccd61a914d9953849c68de7d languageName: node linkType: hard -"@babel/plugin-transform-new-target@npm:^7.24.1": - version: 7.24.1 - resolution: "@babel/plugin-transform-new-target@npm:7.24.1" +"@babel/plugin-transform-new-target@npm:^7.27.1": + version: 7.27.1 + resolution: "@babel/plugin-transform-new-target@npm:7.27.1" dependencies: - "@babel/helper-plugin-utils": ^7.24.0 + "@babel/helper-plugin-utils": ^7.27.1 peerDependencies: "@babel/core": ^7.0.0-0 - checksum: f56159ba56e8824840b8073f65073434e4bc4ef20e366bc03aa6cae9a4389365574fa72390e48aed76049edbc6eba1181eb810e58fae22c25946c62f9da13db4 + checksum: 32c8078d843bda001244509442d68fd3af088d7348ba883f45c262b2c817a27ffc553b0d78e7f7a763271b2ece7fac56151baad7a91fb21f5bb1d2f38e5acad7 languageName: node linkType: hard -"@babel/plugin-transform-nullish-coalescing-operator@npm:^7.24.1": - version: 7.24.1 - resolution: "@babel/plugin-transform-nullish-coalescing-operator@npm:7.24.1" +"@babel/plugin-transform-nullish-coalescing-operator@npm:^7.27.1": + version: 7.27.1 + resolution: "@babel/plugin-transform-nullish-coalescing-operator@npm:7.27.1" dependencies: - "@babel/helper-plugin-utils": ^7.24.0 - "@babel/plugin-syntax-nullish-coalescing-operator": ^7.8.3 + "@babel/helper-plugin-utils": ^7.27.1 peerDependencies: "@babel/core": ^7.0.0-0 - checksum: 74025e191ceb7cefc619c15d33753aab81300a03d81b96ae249d9b599bc65878f962d608f452462d3aad5d6e334b7ab2b09a6bdcfe8d101fe77ac7aacca4261e + checksum: 1c6b3730748782d2178cc30f5cc37be7d7666148260f3f2dfc43999908bdd319bdfebaaf19cf04ac1f9dee0f7081093d3fa730cda5ae1b34bcd73ce406a78be7 languageName: node linkType: hard -"@babel/plugin-transform-numeric-separator@npm:^7.24.1": - version: 7.24.1 - resolution: "@babel/plugin-transform-numeric-separator@npm:7.24.1" +"@babel/plugin-transform-numeric-separator@npm:^7.27.1": + version: 7.27.1 + resolution: "@babel/plugin-transform-numeric-separator@npm:7.27.1" dependencies: - "@babel/helper-plugin-utils": ^7.24.0 - "@babel/plugin-syntax-numeric-separator": ^7.10.4 + "@babel/helper-plugin-utils": ^7.27.1 peerDependencies: "@babel/core": ^7.0.0-0 - checksum: 3247bd7d409574fc06c59e0eb573ae7470d6d61ecf780df40b550102bb4406747d8f39dcbec57eb59406df6c565a86edd3b429e396ad02e4ce201ad92050832e + checksum: 049b958911de86d32408cd78017940a207e49c054ae9534ab53a32a57122cc592c0aae3c166d6f29bd1a7d75cc779d71883582dd76cb28b2fbb493e842d8ffca languageName: node linkType: hard -"@babel/plugin-transform-object-rest-spread@npm:^7.24.1": - version: 7.24.1 - resolution: "@babel/plugin-transform-object-rest-spread@npm:7.24.1" +"@babel/plugin-transform-object-rest-spread@npm:^7.27.2": + version: 7.27.2 + resolution: "@babel/plugin-transform-object-rest-spread@npm:7.27.2" dependencies: - "@babel/helper-compilation-targets": ^7.23.6 - "@babel/helper-plugin-utils": ^7.24.0 - "@babel/plugin-syntax-object-rest-spread": ^7.8.3 - "@babel/plugin-transform-parameters": ^7.24.1 + "@babel/helper-compilation-targets": ^7.27.2 + "@babel/helper-plugin-utils": ^7.27.1 + "@babel/plugin-transform-destructuring": ^7.27.1 + "@babel/plugin-transform-parameters": ^7.27.1 peerDependencies: "@babel/core": ^7.0.0-0 - checksum: d5d28b1f33c279a38299d34011421a4915e24b3846aa23a1aba947f1366ce673ddf8df09dd915e0f2c90c5327f798bf126dca013f8adff1fc8f09e18878b675a + checksum: 6d518c21cddfa436029d72409aac8f680d3ba3a10eb94477112869132226498474a61218893ac9958f8bc079109af0f684d1347d5036fee8e9b477daecf2d8f3 languageName: node linkType: hard -"@babel/plugin-transform-object-super@npm:^7.24.1": - version: 7.24.1 - resolution: "@babel/plugin-transform-object-super@npm:7.24.1" +"@babel/plugin-transform-object-super@npm:^7.27.1": + version: 7.27.1 + resolution: "@babel/plugin-transform-object-super@npm:7.27.1" dependencies: - "@babel/helper-plugin-utils": ^7.24.0 - "@babel/helper-replace-supers": ^7.24.1 + "@babel/helper-plugin-utils": ^7.27.1 + "@babel/helper-replace-supers": ^7.27.1 peerDependencies: "@babel/core": ^7.0.0-0 - checksum: d34d437456a54e2a5dcb26e9cf09ed4c55528f2a327c5edca92c93e9483c37176e228d00d6e0cf767f3d6fdbef45ae3a5d034a7c59337a009e20ae541c8220fa + checksum: 46b819cb9a6cd3cfefe42d07875fee414f18d5e66040366ae856116db560ad4e16f3899a0a7fddd6773e0d1458444f94b208b67c0e3b6977a27ea17a5c13dbf6 languageName: node linkType: hard -"@babel/plugin-transform-optional-catch-binding@npm:^7.24.1": - version: 7.24.1 - resolution: "@babel/plugin-transform-optional-catch-binding@npm:7.24.1" +"@babel/plugin-transform-optional-catch-binding@npm:^7.27.1": + version: 7.27.1 + resolution: "@babel/plugin-transform-optional-catch-binding@npm:7.27.1" dependencies: - "@babel/helper-plugin-utils": ^7.24.0 - "@babel/plugin-syntax-optional-catch-binding": ^7.8.3 + "@babel/helper-plugin-utils": ^7.27.1 peerDependencies: "@babel/core": ^7.0.0-0 - checksum: ff7c02449d32a6de41e003abb38537b4a1ad90b1eaa4c0b578cb1b55548201a677588a8c47f3e161c72738400ae811a6673ea7b8a734344755016ca0ac445dac + checksum: f4356b04cf21a98480f9788ea50f1f13ee88e89bb6393ba4b84d1f39a4a84c7928c9a4328e8f4c5b6deb218da68a8fd17bf4f46faec7653ddc20ffaaa5ba49f4 languageName: node linkType: hard -"@babel/plugin-transform-optional-chaining@npm:^7.24.1": - version: 7.24.1 - resolution: "@babel/plugin-transform-optional-chaining@npm:7.24.1" +"@babel/plugin-transform-optional-chaining@npm:^7.27.1": + version: 7.27.1 + resolution: "@babel/plugin-transform-optional-chaining@npm:7.27.1" dependencies: - "@babel/helper-plugin-utils": ^7.24.0 - "@babel/helper-skip-transparent-expression-wrappers": ^7.22.5 - "@babel/plugin-syntax-optional-chaining": ^7.8.3 + "@babel/helper-plugin-utils": ^7.27.1 + "@babel/helper-skip-transparent-expression-wrappers": ^7.27.1 peerDependencies: "@babel/core": ^7.0.0-0 - checksum: 0eb5f4abdeb1a101c0f67ef25eba4cce0978a74d8722f6222cdb179a28e60d21ab545eda231855f50169cd63d604ec8268cff44ae9370fd3a499a507c56c2bbd + checksum: c4428d31f182d724db6f10575669aad3dbccceb0dea26aa9071fa89f11b3456278da3097fcc78937639a13c105a82cd452dc0218ce51abdbcf7626a013b928a5 languageName: node linkType: hard -"@babel/plugin-transform-parameters@npm:^7.24.1": - version: 7.24.1 - resolution: "@babel/plugin-transform-parameters@npm:7.24.1" +"@babel/plugin-transform-parameters@npm:^7.27.1": + version: 7.27.1 + resolution: "@babel/plugin-transform-parameters@npm:7.27.1" dependencies: - "@babel/helper-plugin-utils": ^7.24.0 + "@babel/helper-plugin-utils": ^7.27.1 peerDependencies: "@babel/core": ^7.0.0-0 - checksum: d183008e67b1a13b86c92fb64327a75cd8e13c13eb80d0b6952e15806f1b0c4c456d18360e451c6af73485b2c8f543608b0a29e5126c64eb625a31e970b65f80 + checksum: 52dd9db2be63ca954dbf86bba3f1dedce5f8bcf0cbc2b9ab26981b6f9c3ad5ea3a1b7ba286d18ae05d7487763f2bd086533826ee82f7b8d76873265569e45125 languageName: node linkType: hard -"@babel/plugin-transform-private-methods@npm:^7.24.1": - version: 7.24.1 - resolution: "@babel/plugin-transform-private-methods@npm:7.24.1" +"@babel/plugin-transform-private-methods@npm:^7.27.1": + version: 7.27.1 + resolution: "@babel/plugin-transform-private-methods@npm:7.27.1" dependencies: - "@babel/helper-create-class-features-plugin": ^7.24.1 - "@babel/helper-plugin-utils": ^7.24.0 + "@babel/helper-create-class-features-plugin": ^7.27.1 + "@babel/helper-plugin-utils": ^7.27.1 peerDependencies: "@babel/core": ^7.0.0-0 - checksum: 7208c30bb3f3fbc73fb3a88bdcb78cd5cddaf6d523eb9d67c0c04e78f6fc6319ece89f4a5abc41777ceab16df55b3a13a4120e0efc9275ca6d2d89beaba80aa0 + checksum: c76f8f6056946466116e67eb9d8014a2d748ade2062636ab82045c1dac9c233aff10e597777bc5af6f26428beb845ceb41b95007abef7d0484da95789da56662 languageName: node linkType: hard -"@babel/plugin-transform-private-property-in-object@npm:^7.24.1": - version: 7.24.1 - resolution: "@babel/plugin-transform-private-property-in-object@npm:7.24.1" +"@babel/plugin-transform-private-property-in-object@npm:^7.27.1": + version: 7.27.1 + resolution: "@babel/plugin-transform-private-property-in-object@npm:7.27.1" dependencies: - "@babel/helper-annotate-as-pure": ^7.22.5 - "@babel/helper-create-class-features-plugin": ^7.24.1 - "@babel/helper-plugin-utils": ^7.24.0 - "@babel/plugin-syntax-private-property-in-object": ^7.14.5 + "@babel/helper-annotate-as-pure": ^7.27.1 + "@babel/helper-create-class-features-plugin": ^7.27.1 + "@babel/helper-plugin-utils": ^7.27.1 peerDependencies: "@babel/core": ^7.0.0-0 - checksum: 47c123ca9975f7f6b20e6fe8fe89f621cd04b622539faf5ec037e2be7c3d53ce2506f7c785b1930dcdea11994eff79094a02715795218c7d6a0bdc11f2fb3ac2 + checksum: af539af1bd423aa46b9da83d649be716494ca80783841f47094b6741fa24e11141446027fd152ddff791dede9d4a76d0d5eb467402a2e584d7f5ea90e2673c7e languageName: node linkType: hard -"@babel/plugin-transform-property-literals@npm:^7.24.1": - version: 7.24.1 - resolution: "@babel/plugin-transform-property-literals@npm:7.24.1" +"@babel/plugin-transform-property-literals@npm:^7.27.1": + version: 7.27.1 + resolution: "@babel/plugin-transform-property-literals@npm:7.27.1" dependencies: - "@babel/helper-plugin-utils": ^7.24.0 + "@babel/helper-plugin-utils": ^7.27.1 peerDependencies: "@babel/core": ^7.0.0-0 - checksum: a73646d7ecd95b3931a3ead82c7d5efeb46e68ba362de63eb437d33531f294ec18bd31b6d24238cd3b6a3b919a6310c4a0ba4a2629927721d4d10b0518eb7715 + checksum: 7caec27d5ed8870895c9faf4f71def72745d69da0d8e77903146a4e135fd7bed5778f5f9cebb36c5fba86338e6194dd67a08c033fc84b4299b7eceab6d9630cb languageName: node linkType: hard "@babel/plugin-transform-react-constant-elements@npm:^7.18.12, @babel/plugin-transform-react-constant-elements@npm:^7.21.3": - version: 7.24.1 - resolution: "@babel/plugin-transform-react-constant-elements@npm:7.24.1" + version: 7.27.1 + resolution: "@babel/plugin-transform-react-constant-elements@npm:7.27.1" dependencies: - "@babel/helper-plugin-utils": ^7.24.0 + "@babel/helper-plugin-utils": ^7.27.1 peerDependencies: "@babel/core": ^7.0.0-0 - checksum: 37fd10113b786a2462cf15366aa3a11a2a5bdba9bf8881b2544941f5ad6175ebc31116be5a53549c9fce56a08ded6e0b57adb45d6e42efb55d3bc0ff7afdd433 + checksum: 8372cf17ed551cd2e3da4f32a211881265692a17ad4c4fd40a8adcb89316d147db54f023630022ad7ec7474c4108647f67e3a62db43e515246a7574dcb5eeefe languageName: node linkType: hard -"@babel/plugin-transform-react-display-name@npm:^7.16.0, @babel/plugin-transform-react-display-name@npm:^7.24.1": - version: 7.24.1 - resolution: "@babel/plugin-transform-react-display-name@npm:7.24.1" +"@babel/plugin-transform-react-display-name@npm:^7.16.0, @babel/plugin-transform-react-display-name@npm:^7.27.1": + version: 7.27.1 + resolution: "@babel/plugin-transform-react-display-name@npm:7.27.1" dependencies: - "@babel/helper-plugin-utils": ^7.24.0 + "@babel/helper-plugin-utils": ^7.27.1 peerDependencies: "@babel/core": ^7.0.0-0 - checksum: d87ac36073f923a25de0ed3cffac067ec5abc4cde63f7f4366881388fbea6dcbced0e4fefd3b7e99edfe58a4ce32ea4d4c523a577d2b9f0515b872ed02b3d8c3 + checksum: 9fb5fae6283f612983dac4df51a6cd41e085e698008146e046357fe324e6e8264cedf8426ea5a188326f6d3cd1e7a3d3174e15d510851e93e9ef7ceeba380dc2 languageName: node linkType: hard -"@babel/plugin-transform-react-jsx-development@npm:^7.18.6, @babel/plugin-transform-react-jsx-development@npm:^7.22.5": - version: 7.22.5 - resolution: "@babel/plugin-transform-react-jsx-development@npm:7.22.5" +"@babel/plugin-transform-react-jsx-development@npm:^7.18.6, @babel/plugin-transform-react-jsx-development@npm:^7.27.1": + version: 7.27.1 + resolution: "@babel/plugin-transform-react-jsx-development@npm:7.27.1" dependencies: - "@babel/plugin-transform-react-jsx": ^7.22.5 + "@babel/plugin-transform-react-jsx": ^7.27.1 peerDependencies: "@babel/core": ^7.0.0-0 - checksum: 36bc3ff0b96bb0ef4723070a50cfdf2e72cfd903a59eba448f9fe92fea47574d6f22efd99364413719e1f3fb3c51b6c9b2990b87af088f8486a84b2a5f9e4560 + checksum: b88865d5b8c018992f2332da939faa15c4d4a864c9435a5937beaff3fe43781432cc42e0a5d5631098e0bd4066fc33f5fa72203b388b074c3545fe7aaa21e474 languageName: node linkType: hard "@babel/plugin-transform-react-jsx-self@npm:^7.18.6": - version: 7.24.1 - resolution: "@babel/plugin-transform-react-jsx-self@npm:7.24.1" + version: 7.27.1 + resolution: "@babel/plugin-transform-react-jsx-self@npm:7.27.1" dependencies: - "@babel/helper-plugin-utils": ^7.24.0 + "@babel/helper-plugin-utils": ^7.27.1 peerDependencies: "@babel/core": ^7.0.0-0 - checksum: a0ff893b946bb0e501ad5aab43ce4b321ed9e74b94c0bc7191e2ee6409014fc96ee1a47dcb1ecdf445c44868564667ae16507ed4516dcacf6aa9c37a0ad28382 + checksum: 72cbae66a58c6c36f7e12e8ed79f292192d858dd4bb00e9e89d8b695e4c5cb6ef48eec84bffff421a5db93fd10412c581f1cccdb00264065df76f121995bdb68 languageName: node linkType: hard "@babel/plugin-transform-react-jsx-source@npm:^7.19.6": - version: 7.24.1 - resolution: "@babel/plugin-transform-react-jsx-source@npm:7.24.1" + version: 7.27.1 + resolution: "@babel/plugin-transform-react-jsx-source@npm:7.27.1" dependencies: - "@babel/helper-plugin-utils": ^7.24.0 + "@babel/helper-plugin-utils": ^7.27.1 peerDependencies: "@babel/core": ^7.0.0-0 - checksum: 396ce878dc588e74113d38c5a1773e0850bb878a073238a74f8cdf62d968d56a644f5485bf4032dc095fe8863fe2bd9fbbbab6abc3adf69542e038ac5c689d4c + checksum: e2843362adb53692be5ee9fa07a386d2d8883daad2063a3575b3c373fc14cdf4ea7978c67a183cb631b4c9c8d77b2f48c24c088f8e65cc3600cb8e97d72a7161 languageName: node linkType: hard -"@babel/plugin-transform-react-jsx@npm:^7.19.0, @babel/plugin-transform-react-jsx@npm:^7.22.5, @babel/plugin-transform-react-jsx@npm:^7.23.4": - version: 7.23.4 - resolution: "@babel/plugin-transform-react-jsx@npm:7.23.4" +"@babel/plugin-transform-react-jsx@npm:^7.19.0, @babel/plugin-transform-react-jsx@npm:^7.27.1": + version: 7.27.1 + resolution: "@babel/plugin-transform-react-jsx@npm:7.27.1" dependencies: - "@babel/helper-annotate-as-pure": ^7.22.5 - "@babel/helper-module-imports": ^7.22.15 - "@babel/helper-plugin-utils": ^7.22.5 - "@babel/plugin-syntax-jsx": ^7.23.3 - "@babel/types": ^7.23.4 + "@babel/helper-annotate-as-pure": ^7.27.1 + "@babel/helper-module-imports": ^7.27.1 + "@babel/helper-plugin-utils": ^7.27.1 + "@babel/plugin-syntax-jsx": ^7.27.1 + "@babel/types": ^7.27.1 peerDependencies: "@babel/core": ^7.0.0-0 - checksum: d8b8c52e8e22e833bf77c8d1a53b0a57d1fd52ba9596a319d572de79446a8ed9d95521035bc1175c1589d1a6a34600d2e678fa81d81bac8fac121137097f1f0a + checksum: 960d36e5d11ba68e4fbf1e2b935c153cb6ea7b0004f838aaee8baf7de30462b8f0562743a39ce3c370cc70b8f79d3c549104a415a615b2b0055b71fd025df0f3 languageName: node linkType: hard -"@babel/plugin-transform-react-pure-annotations@npm:^7.24.1": - version: 7.24.1 - resolution: "@babel/plugin-transform-react-pure-annotations@npm:7.24.1" +"@babel/plugin-transform-react-pure-annotations@npm:^7.27.1": + version: 7.27.1 + resolution: "@babel/plugin-transform-react-pure-annotations@npm:7.27.1" dependencies: - "@babel/helper-annotate-as-pure": ^7.22.5 - "@babel/helper-plugin-utils": ^7.24.0 + "@babel/helper-annotate-as-pure": ^7.27.1 + "@babel/helper-plugin-utils": ^7.27.1 peerDependencies: "@babel/core": ^7.0.0-0 - checksum: 06a6bfe80f1f36408d07dd80c48cf9f61177c8e5d814e80ddbe88cfad81a8b86b3110e1fe9d1ac943db77e74497daa7f874b5490c788707106ad26ecfbe44813 + checksum: a6f591c5e85a1ab0685d4a25afe591fe8d11dc0b73c677cf9560ff8d540d036a1cce9efcb729fc9092def4d854dc304ffdc063a89a9247900b69c516bf971a4c languageName: node linkType: hard -"@babel/plugin-transform-regenerator@npm:^7.24.1": - version: 7.24.1 - resolution: "@babel/plugin-transform-regenerator@npm:7.24.1" +"@babel/plugin-transform-regenerator@npm:^7.27.1": + version: 7.27.1 + resolution: "@babel/plugin-transform-regenerator@npm:7.27.1" dependencies: - "@babel/helper-plugin-utils": ^7.24.0 - regenerator-transform: ^0.15.2 + "@babel/helper-plugin-utils": ^7.27.1 peerDependencies: "@babel/core": ^7.0.0-0 - checksum: a04319388a0a7931c3f8e15715d01444c32519692178b70deccc86d53304e74c0f589a4268f6c68578d86f75e934dd1fe6e6ed9071f54ee8379f356f88ef6e42 + checksum: e1e28e08abf1c8fcdeaa8af5ab44cfda83bebc0ba6ebc155afdae243c51a2e941dd8ff6c51affb0447deb07a6bc66424fbf04482b050c061e272bc75c15853bf languageName: node linkType: hard -"@babel/plugin-transform-reserved-words@npm:^7.24.1": - version: 7.24.1 - resolution: "@babel/plugin-transform-reserved-words@npm:7.24.1" +"@babel/plugin-transform-regexp-modifiers@npm:^7.27.1": + version: 7.27.1 + resolution: "@babel/plugin-transform-regexp-modifiers@npm:7.27.1" dependencies: - "@babel/helper-plugin-utils": ^7.24.0 + "@babel/helper-create-regexp-features-plugin": ^7.27.1 + "@babel/helper-plugin-utils": ^7.27.1 + peerDependencies: + "@babel/core": ^7.0.0 + checksum: f6cb385fe0e798bff7e9b20cf5912bf40e180895ff3610b1ccdce260f3c20daaebb3a99dc087c8168a99151cd3e16b94f4689fd5a4b01cf1834b45c133e620b2 + languageName: node + linkType: hard + +"@babel/plugin-transform-reserved-words@npm:^7.27.1": + version: 7.27.1 + resolution: "@babel/plugin-transform-reserved-words@npm:7.27.1" + dependencies: + "@babel/helper-plugin-utils": ^7.27.1 peerDependencies: "@babel/core": ^7.0.0-0 - checksum: 132c6040c65aabae2d98a39289efb5c51a8632546dc50d2ad032c8660aec307fbed74ef499856ea4f881fc8505905f49b48e0270585da2ea3d50b75e962afd89 + checksum: dea0b66742d2863b369c06c053e11e15ba785892ea19cccf7aef3c1bdaa38b6ab082e19984c5ea7810d275d9445c5400fcc385ad71ce707ed9256fadb102af3b languageName: node linkType: hard "@babel/plugin-transform-runtime@npm:^7.16.4": - version: 7.24.3 - resolution: "@babel/plugin-transform-runtime@npm:7.24.3" + version: 7.27.1 + resolution: "@babel/plugin-transform-runtime@npm:7.27.1" dependencies: - "@babel/helper-module-imports": ^7.24.3 - "@babel/helper-plugin-utils": ^7.24.0 + "@babel/helper-module-imports": ^7.27.1 + "@babel/helper-plugin-utils": ^7.27.1 babel-plugin-polyfill-corejs2: ^0.4.10 - babel-plugin-polyfill-corejs3: ^0.10.1 + babel-plugin-polyfill-corejs3: ^0.11.0 babel-plugin-polyfill-regenerator: ^0.6.1 semver: ^6.3.1 peerDependencies: "@babel/core": ^7.0.0-0 - checksum: 719112524e6fe3e665385ad4425530dadb2ddee839023381ed9d77edf5ce2748f32cc0e38dacda1990c56a7ae0af4de6cdca2413ffaf307e9f75f8d2200d09a2 + checksum: 9328060b54e430732883cac672cfd4c952c2bf2d9fb5268c675ae01f74ccb224ecdf105f5ad52b6277ad8b34b6df1e7cec6d1c02a0d17be54414265414e8ac88 languageName: node linkType: hard -"@babel/plugin-transform-shorthand-properties@npm:^7.24.1": - version: 7.24.1 - resolution: "@babel/plugin-transform-shorthand-properties@npm:7.24.1" +"@babel/plugin-transform-shorthand-properties@npm:^7.27.1": + version: 7.27.1 + resolution: "@babel/plugin-transform-shorthand-properties@npm:7.27.1" dependencies: - "@babel/helper-plugin-utils": ^7.24.0 + "@babel/helper-plugin-utils": ^7.27.1 peerDependencies: "@babel/core": ^7.0.0-0 - checksum: 006a2032d1c57dca76579ce6598c679c2f20525afef0a36e9d42affe3c8cf33c1427581ad696b519cc75dfee46c5e8ecdf0c6a29ffb14250caa3e16dd68cb424 + checksum: fbba6e2aef0b69681acb68202aa249c0598e470cc0853d7ff5bd0171fd6a7ec31d77cfabcce9df6360fc8349eded7e4a65218c32551bd3fc0caaa1ac899ac6d4 languageName: node linkType: hard -"@babel/plugin-transform-spread@npm:^7.24.1": - version: 7.24.1 - resolution: "@babel/plugin-transform-spread@npm:7.24.1" +"@babel/plugin-transform-spread@npm:^7.27.1": + version: 7.27.1 + resolution: "@babel/plugin-transform-spread@npm:7.27.1" dependencies: - "@babel/helper-plugin-utils": ^7.24.0 - "@babel/helper-skip-transparent-expression-wrappers": ^7.22.5 + "@babel/helper-plugin-utils": ^7.27.1 + "@babel/helper-skip-transparent-expression-wrappers": ^7.27.1 peerDependencies: "@babel/core": ^7.0.0-0 - checksum: 622ef507e2b5120a9010b25d3df5186c06102ecad8751724a38ec924df8d3527688198fa490c47064eabba14ef2f961b3069855bd22a8c0a1e51a23eed348d02 + checksum: 58b08085ee9c29955ac3b68d61c1a79728d44d19a69cb5eb669794aeaf54c57c6647af7b979c1297e81ede3d08b3ddcb1936ef39a533f28ff3e399a9be54dab1 languageName: node linkType: hard -"@babel/plugin-transform-sticky-regex@npm:^7.24.1": - version: 7.24.1 - resolution: "@babel/plugin-transform-sticky-regex@npm:7.24.1" +"@babel/plugin-transform-sticky-regex@npm:^7.27.1": + version: 7.27.1 + resolution: "@babel/plugin-transform-sticky-regex@npm:7.27.1" dependencies: - "@babel/helper-plugin-utils": ^7.24.0 + "@babel/helper-plugin-utils": ^7.27.1 peerDependencies: "@babel/core": ^7.0.0-0 - checksum: e326e96a9eeb6bb01dbc4d3362f989411490671b97f62edf378b8fb102c463a018b777f28da65344d41b22aa6efcdfa01ed43d2b11fdcf202046d3174be137c5 + checksum: e1414a502efba92c7974681767e365a8cda6c5e9e5f33472a9eaa0ce2e75cea0a9bef881ff8dda37c7810ad902f98d3c00ead92a3ac3b73a79d011df85b5a189 languageName: node linkType: hard -"@babel/plugin-transform-template-literals@npm:^7.24.1": - version: 7.24.1 - resolution: "@babel/plugin-transform-template-literals@npm:7.24.1" +"@babel/plugin-transform-template-literals@npm:^7.27.1": + version: 7.27.1 + resolution: "@babel/plugin-transform-template-literals@npm:7.27.1" dependencies: - "@babel/helper-plugin-utils": ^7.24.0 + "@babel/helper-plugin-utils": ^7.27.1 peerDependencies: "@babel/core": ^7.0.0-0 - checksum: 4c9009c72321caf20e3b6328bbe9d7057006c5ae57b794cf247a37ca34d87dfec5e27284169a16df5a6235a083bf0f3ab9e1bfcb005d1c8b75b04aed75652621 + checksum: 93aad782503b691faef7c0893372d5243df3219b07f1f22cfc32c104af6a2e7acd6102c128439eab15336d048f1b214ca134b87b0630d8cd568bf447f78b25ce languageName: node linkType: hard -"@babel/plugin-transform-typeof-symbol@npm:^7.24.1": - version: 7.24.1 - resolution: "@babel/plugin-transform-typeof-symbol@npm:7.24.1" +"@babel/plugin-transform-typeof-symbol@npm:^7.27.1": + version: 7.27.1 + resolution: "@babel/plugin-transform-typeof-symbol@npm:7.27.1" dependencies: - "@babel/helper-plugin-utils": ^7.24.0 + "@babel/helper-plugin-utils": ^7.27.1 peerDependencies: "@babel/core": ^7.0.0-0 - checksum: 90251c02986aebe50937522a6e404cb83db1b1feda17c0244e97d6429ded1634340c8411536487d14c54495607e1b7c9dc4db4aed969d519f1ff1e363f9c2229 + checksum: ed8048c8de72c60969a64cf2273cc6d9275d8fa8db9bd25a1268273a00fb9cbd79931140311411bda1443aa56cb3961fb911d1795abacde7f0482f1d8fdf0356 languageName: node linkType: hard -"@babel/plugin-transform-typescript@npm:^7.24.1": - version: 7.24.4 - resolution: "@babel/plugin-transform-typescript@npm:7.24.4" +"@babel/plugin-transform-typescript@npm:^7.27.1": + version: 7.27.1 + resolution: "@babel/plugin-transform-typescript@npm:7.27.1" dependencies: - "@babel/helper-annotate-as-pure": ^7.22.5 - "@babel/helper-create-class-features-plugin": ^7.24.4 - "@babel/helper-plugin-utils": ^7.24.0 - "@babel/plugin-syntax-typescript": ^7.24.1 + "@babel/helper-annotate-as-pure": ^7.27.1 + "@babel/helper-create-class-features-plugin": ^7.27.1 + "@babel/helper-plugin-utils": ^7.27.1 + "@babel/helper-skip-transparent-expression-wrappers": ^7.27.1 + "@babel/plugin-syntax-typescript": ^7.27.1 peerDependencies: "@babel/core": ^7.0.0-0 - checksum: 57a9a776b1910c706d28972e4b056ced3af8fc59c29b2a6205c2bb2a408141ddb59a8f2f6041f8467a7b260942818767f4ecabb9f63adf7fddf2afa25e774dfc + checksum: 0037db32fedaacf42b5b3df774263bb7176d455859f77322f57135f7e50e457e5c95151280fc83bb9942fc1839e785489b098d73c9539d0f3c7dc9d42b3a8e86 languageName: node linkType: hard -"@babel/plugin-transform-unicode-escapes@npm:^7.24.1": - version: 7.24.1 - resolution: "@babel/plugin-transform-unicode-escapes@npm:7.24.1" +"@babel/plugin-transform-unicode-escapes@npm:^7.27.1": + version: 7.27.1 + resolution: "@babel/plugin-transform-unicode-escapes@npm:7.27.1" dependencies: - "@babel/helper-plugin-utils": ^7.24.0 + "@babel/helper-plugin-utils": ^7.27.1 peerDependencies: "@babel/core": ^7.0.0-0 - checksum: d4d7cfea91af7be2768fb6bed902e00d6e3190bda738b5149c3a788d570e6cf48b974ec9548442850308ecd8fc9a67681f4ea8403129e7867bcb85adaf6ec238 + checksum: d817154bc10758ddd85b716e0bc1af1a1091e088400289ab6b78a1a4d609907ce3d2f1fd51a6fd0e0c8ecbb5f8e3aab4957e0747776d132d2379e85c3ef0520a languageName: node linkType: hard -"@babel/plugin-transform-unicode-property-regex@npm:^7.24.1": - version: 7.24.1 - resolution: "@babel/plugin-transform-unicode-property-regex@npm:7.24.1" +"@babel/plugin-transform-unicode-property-regex@npm:^7.27.1": + version: 7.27.1 + resolution: "@babel/plugin-transform-unicode-property-regex@npm:7.27.1" dependencies: - "@babel/helper-create-regexp-features-plugin": ^7.22.15 - "@babel/helper-plugin-utils": ^7.24.0 + "@babel/helper-create-regexp-features-plugin": ^7.27.1 + "@babel/helper-plugin-utils": ^7.27.1 peerDependencies: "@babel/core": ^7.0.0-0 - checksum: 276099b4483e707f80b054e2d29bc519158bfe52461ef5ff76f70727d592df17e30b1597ef4d8a0f04d810f6cb5a8dd887bdc1d0540af3744751710ef280090f + checksum: 5d99c89537d1ebaac3f526c04b162cf95a47d363d4829f78c6701a2c06ab78a48da66a94f853f85f44a3d72153410ba923e072bed4b7166fa097f503eb14131d languageName: node linkType: hard -"@babel/plugin-transform-unicode-regex@npm:^7.24.1": - version: 7.24.1 - resolution: "@babel/plugin-transform-unicode-regex@npm:7.24.1" +"@babel/plugin-transform-unicode-regex@npm:^7.27.1": + version: 7.27.1 + resolution: "@babel/plugin-transform-unicode-regex@npm:7.27.1" dependencies: - "@babel/helper-create-regexp-features-plugin": ^7.22.15 - "@babel/helper-plugin-utils": ^7.24.0 + "@babel/helper-create-regexp-features-plugin": ^7.27.1 + "@babel/helper-plugin-utils": ^7.27.1 peerDependencies: "@babel/core": ^7.0.0-0 - checksum: 400a0927bdb1425b4c0dc68a61b5b2d7d17c7d9f0e07317a1a6a373c080ef94be1dd65fdc4ac9a78fcdb58f89fd128450c7bc0d5b8ca0ae7eca3fbd98e50acba + checksum: a34d89a2b75fb78e66d97c3dc90d4877f7e31f43316b52176f95a5dee20e9bb56ecf158eafc42a001676ddf7b393d9e67650bad6b32f5405780f25fb83cd68e3 languageName: node linkType: hard -"@babel/plugin-transform-unicode-sets-regex@npm:^7.24.1": - version: 7.24.1 - resolution: "@babel/plugin-transform-unicode-sets-regex@npm:7.24.1" +"@babel/plugin-transform-unicode-sets-regex@npm:^7.27.1": + version: 7.27.1 + resolution: "@babel/plugin-transform-unicode-sets-regex@npm:7.27.1" dependencies: - "@babel/helper-create-regexp-features-plugin": ^7.22.15 - "@babel/helper-plugin-utils": ^7.24.0 + "@babel/helper-create-regexp-features-plugin": ^7.27.1 + "@babel/helper-plugin-utils": ^7.27.1 peerDependencies: "@babel/core": ^7.0.0 - checksum: 364342fb8e382dfaa23628b88e6484dc1097e53fb7199f4d338f1e2cd71d839bb0a35a9b1380074f6a10adb2e98b79d53ca3ec78c0b8c557ca895ffff42180df + checksum: 295126074c7388ab05c82ef3ed0907a1ee4666bbdd763477ead9aba6eb2c74bdf65669416861ac93d337a4a27640963bb214acadc2697275ce95aab14868d57f languageName: node linkType: hard "@babel/preset-env@npm:^7.16.4, @babel/preset-env@npm:^7.19.4, @babel/preset-env@npm:^7.20.2": - version: 7.24.4 - resolution: "@babel/preset-env@npm:7.24.4" - dependencies: - "@babel/compat-data": ^7.24.4 - "@babel/helper-compilation-targets": ^7.23.6 - "@babel/helper-plugin-utils": ^7.24.0 - "@babel/helper-validator-option": ^7.23.5 - "@babel/plugin-bugfix-firefox-class-in-computed-class-key": ^7.24.4 - "@babel/plugin-bugfix-safari-id-destructuring-collision-in-function-expression": ^7.24.1 - "@babel/plugin-bugfix-v8-spread-parameters-in-optional-chaining": ^7.24.1 - "@babel/plugin-bugfix-v8-static-class-fields-redefine-readonly": ^7.24.1 + version: 7.27.2 + resolution: "@babel/preset-env@npm:7.27.2" + dependencies: + "@babel/compat-data": ^7.27.2 + "@babel/helper-compilation-targets": ^7.27.2 + "@babel/helper-plugin-utils": ^7.27.1 + "@babel/helper-validator-option": ^7.27.1 + "@babel/plugin-bugfix-firefox-class-in-computed-class-key": ^7.27.1 + "@babel/plugin-bugfix-safari-class-field-initializer-scope": ^7.27.1 + "@babel/plugin-bugfix-safari-id-destructuring-collision-in-function-expression": ^7.27.1 + "@babel/plugin-bugfix-v8-spread-parameters-in-optional-chaining": ^7.27.1 + "@babel/plugin-bugfix-v8-static-class-fields-redefine-readonly": ^7.27.1 "@babel/plugin-proposal-private-property-in-object": 7.21.0-placeholder-for-preset-env.2 - "@babel/plugin-syntax-async-generators": ^7.8.4 - "@babel/plugin-syntax-class-properties": ^7.12.13 - "@babel/plugin-syntax-class-static-block": ^7.14.5 - "@babel/plugin-syntax-dynamic-import": ^7.8.3 - "@babel/plugin-syntax-export-namespace-from": ^7.8.3 - "@babel/plugin-syntax-import-assertions": ^7.24.1 - "@babel/plugin-syntax-import-attributes": ^7.24.1 - "@babel/plugin-syntax-import-meta": ^7.10.4 - "@babel/plugin-syntax-json-strings": ^7.8.3 - "@babel/plugin-syntax-logical-assignment-operators": ^7.10.4 - "@babel/plugin-syntax-nullish-coalescing-operator": ^7.8.3 - "@babel/plugin-syntax-numeric-separator": ^7.10.4 - "@babel/plugin-syntax-object-rest-spread": ^7.8.3 - "@babel/plugin-syntax-optional-catch-binding": ^7.8.3 - "@babel/plugin-syntax-optional-chaining": ^7.8.3 - "@babel/plugin-syntax-private-property-in-object": ^7.14.5 - "@babel/plugin-syntax-top-level-await": ^7.14.5 + "@babel/plugin-syntax-import-assertions": ^7.27.1 + "@babel/plugin-syntax-import-attributes": ^7.27.1 "@babel/plugin-syntax-unicode-sets-regex": ^7.18.6 - "@babel/plugin-transform-arrow-functions": ^7.24.1 - "@babel/plugin-transform-async-generator-functions": ^7.24.3 - "@babel/plugin-transform-async-to-generator": ^7.24.1 - "@babel/plugin-transform-block-scoped-functions": ^7.24.1 - "@babel/plugin-transform-block-scoping": ^7.24.4 - "@babel/plugin-transform-class-properties": ^7.24.1 - "@babel/plugin-transform-class-static-block": ^7.24.4 - "@babel/plugin-transform-classes": ^7.24.1 - "@babel/plugin-transform-computed-properties": ^7.24.1 - "@babel/plugin-transform-destructuring": ^7.24.1 - "@babel/plugin-transform-dotall-regex": ^7.24.1 - "@babel/plugin-transform-duplicate-keys": ^7.24.1 - "@babel/plugin-transform-dynamic-import": ^7.24.1 - "@babel/plugin-transform-exponentiation-operator": ^7.24.1 - "@babel/plugin-transform-export-namespace-from": ^7.24.1 - "@babel/plugin-transform-for-of": ^7.24.1 - "@babel/plugin-transform-function-name": ^7.24.1 - "@babel/plugin-transform-json-strings": ^7.24.1 - "@babel/plugin-transform-literals": ^7.24.1 - "@babel/plugin-transform-logical-assignment-operators": ^7.24.1 - "@babel/plugin-transform-member-expression-literals": ^7.24.1 - "@babel/plugin-transform-modules-amd": ^7.24.1 - "@babel/plugin-transform-modules-commonjs": ^7.24.1 - "@babel/plugin-transform-modules-systemjs": ^7.24.1 - "@babel/plugin-transform-modules-umd": ^7.24.1 - "@babel/plugin-transform-named-capturing-groups-regex": ^7.22.5 - "@babel/plugin-transform-new-target": ^7.24.1 - "@babel/plugin-transform-nullish-coalescing-operator": ^7.24.1 - "@babel/plugin-transform-numeric-separator": ^7.24.1 - "@babel/plugin-transform-object-rest-spread": ^7.24.1 - "@babel/plugin-transform-object-super": ^7.24.1 - "@babel/plugin-transform-optional-catch-binding": ^7.24.1 - "@babel/plugin-transform-optional-chaining": ^7.24.1 - "@babel/plugin-transform-parameters": ^7.24.1 - "@babel/plugin-transform-private-methods": ^7.24.1 - "@babel/plugin-transform-private-property-in-object": ^7.24.1 - "@babel/plugin-transform-property-literals": ^7.24.1 - "@babel/plugin-transform-regenerator": ^7.24.1 - "@babel/plugin-transform-reserved-words": ^7.24.1 - "@babel/plugin-transform-shorthand-properties": ^7.24.1 - "@babel/plugin-transform-spread": ^7.24.1 - "@babel/plugin-transform-sticky-regex": ^7.24.1 - "@babel/plugin-transform-template-literals": ^7.24.1 - "@babel/plugin-transform-typeof-symbol": ^7.24.1 - "@babel/plugin-transform-unicode-escapes": ^7.24.1 - "@babel/plugin-transform-unicode-property-regex": ^7.24.1 - "@babel/plugin-transform-unicode-regex": ^7.24.1 - "@babel/plugin-transform-unicode-sets-regex": ^7.24.1 + "@babel/plugin-transform-arrow-functions": ^7.27.1 + "@babel/plugin-transform-async-generator-functions": ^7.27.1 + "@babel/plugin-transform-async-to-generator": ^7.27.1 + "@babel/plugin-transform-block-scoped-functions": ^7.27.1 + "@babel/plugin-transform-block-scoping": ^7.27.1 + "@babel/plugin-transform-class-properties": ^7.27.1 + "@babel/plugin-transform-class-static-block": ^7.27.1 + "@babel/plugin-transform-classes": ^7.27.1 + "@babel/plugin-transform-computed-properties": ^7.27.1 + "@babel/plugin-transform-destructuring": ^7.27.1 + "@babel/plugin-transform-dotall-regex": ^7.27.1 + "@babel/plugin-transform-duplicate-keys": ^7.27.1 + "@babel/plugin-transform-duplicate-named-capturing-groups-regex": ^7.27.1 + "@babel/plugin-transform-dynamic-import": ^7.27.1 + "@babel/plugin-transform-exponentiation-operator": ^7.27.1 + "@babel/plugin-transform-export-namespace-from": ^7.27.1 + "@babel/plugin-transform-for-of": ^7.27.1 + "@babel/plugin-transform-function-name": ^7.27.1 + "@babel/plugin-transform-json-strings": ^7.27.1 + "@babel/plugin-transform-literals": ^7.27.1 + "@babel/plugin-transform-logical-assignment-operators": ^7.27.1 + "@babel/plugin-transform-member-expression-literals": ^7.27.1 + "@babel/plugin-transform-modules-amd": ^7.27.1 + "@babel/plugin-transform-modules-commonjs": ^7.27.1 + "@babel/plugin-transform-modules-systemjs": ^7.27.1 + "@babel/plugin-transform-modules-umd": ^7.27.1 + "@babel/plugin-transform-named-capturing-groups-regex": ^7.27.1 + "@babel/plugin-transform-new-target": ^7.27.1 + "@babel/plugin-transform-nullish-coalescing-operator": ^7.27.1 + "@babel/plugin-transform-numeric-separator": ^7.27.1 + "@babel/plugin-transform-object-rest-spread": ^7.27.2 + "@babel/plugin-transform-object-super": ^7.27.1 + "@babel/plugin-transform-optional-catch-binding": ^7.27.1 + "@babel/plugin-transform-optional-chaining": ^7.27.1 + "@babel/plugin-transform-parameters": ^7.27.1 + "@babel/plugin-transform-private-methods": ^7.27.1 + "@babel/plugin-transform-private-property-in-object": ^7.27.1 + "@babel/plugin-transform-property-literals": ^7.27.1 + "@babel/plugin-transform-regenerator": ^7.27.1 + "@babel/plugin-transform-regexp-modifiers": ^7.27.1 + "@babel/plugin-transform-reserved-words": ^7.27.1 + "@babel/plugin-transform-shorthand-properties": ^7.27.1 + "@babel/plugin-transform-spread": ^7.27.1 + "@babel/plugin-transform-sticky-regex": ^7.27.1 + "@babel/plugin-transform-template-literals": ^7.27.1 + "@babel/plugin-transform-typeof-symbol": ^7.27.1 + "@babel/plugin-transform-unicode-escapes": ^7.27.1 + "@babel/plugin-transform-unicode-property-regex": ^7.27.1 + "@babel/plugin-transform-unicode-regex": ^7.27.1 + "@babel/plugin-transform-unicode-sets-regex": ^7.27.1 "@babel/preset-modules": 0.1.6-no-external-plugins babel-plugin-polyfill-corejs2: ^0.4.10 - babel-plugin-polyfill-corejs3: ^0.10.4 + babel-plugin-polyfill-corejs3: ^0.11.0 babel-plugin-polyfill-regenerator: ^0.6.1 - core-js-compat: ^3.31.0 + core-js-compat: ^3.40.0 semver: ^6.3.1 peerDependencies: "@babel/core": ^7.0.0-0 - checksum: 5a057a6463f92b02bfe66257d3f2c76878815bc7847f2a716b0539d9f547eae2a9d1f0fc62a5c0eff6ab0504bb52e815829ef893e4586b641f8dd6a609d114f3 + checksum: 318b123c8783ac3833bde5a5ff315970967ccd4c1e5c97e0843c0199fe9eab48a8cb40b367b784ae19a33667bee63eb8533eb924dab05bfc92ff9ef436109001 languageName: node linkType: hard @@ -1696,107 +1609,76 @@ __metadata: linkType: hard "@babel/preset-react@npm:^7.16.0, @babel/preset-react@npm:^7.18.6": - version: 7.24.1 - resolution: "@babel/preset-react@npm:7.24.1" + version: 7.27.1 + resolution: "@babel/preset-react@npm:7.27.1" dependencies: - "@babel/helper-plugin-utils": ^7.24.0 - "@babel/helper-validator-option": ^7.23.5 - "@babel/plugin-transform-react-display-name": ^7.24.1 - "@babel/plugin-transform-react-jsx": ^7.23.4 - "@babel/plugin-transform-react-jsx-development": ^7.22.5 - "@babel/plugin-transform-react-pure-annotations": ^7.24.1 + "@babel/helper-plugin-utils": ^7.27.1 + "@babel/helper-validator-option": ^7.27.1 + "@babel/plugin-transform-react-display-name": ^7.27.1 + "@babel/plugin-transform-react-jsx": ^7.27.1 + "@babel/plugin-transform-react-jsx-development": ^7.27.1 + "@babel/plugin-transform-react-pure-annotations": ^7.27.1 peerDependencies: "@babel/core": ^7.0.0-0 - checksum: 70e146a6de480cb4b6c5eb197003960a2d148d513e1f5b5d04ee954f255d68c935c2800da13e550267f47b894bd0214b2548181467b52a4bdc0a85020061b68c + checksum: 00bc146f9c742eed804c598d3f31b7d889c1baf8c768989b7f84a93ca527dd1518d3b86781e89ca45cae6dbee136510d3a121658e01416c5578aecf751517bb5 languageName: node linkType: hard "@babel/preset-typescript@npm:^7.16.0, @babel/preset-typescript@npm:^7.18.6, @babel/preset-typescript@npm:^7.21.0": - version: 7.24.1 - resolution: "@babel/preset-typescript@npm:7.24.1" + version: 7.27.1 + resolution: "@babel/preset-typescript@npm:7.27.1" dependencies: - "@babel/helper-plugin-utils": ^7.24.0 - "@babel/helper-validator-option": ^7.23.5 - "@babel/plugin-syntax-jsx": ^7.24.1 - "@babel/plugin-transform-modules-commonjs": ^7.24.1 - "@babel/plugin-transform-typescript": ^7.24.1 + "@babel/helper-plugin-utils": ^7.27.1 + "@babel/helper-validator-option": ^7.27.1 + "@babel/plugin-syntax-jsx": ^7.27.1 + "@babel/plugin-transform-modules-commonjs": ^7.27.1 + "@babel/plugin-transform-typescript": ^7.27.1 peerDependencies: "@babel/core": ^7.0.0-0 - checksum: f3e0ff8c20dd5abc82614df2d7953f1549a98282b60809478f7dfb41c29be63720f2d1d7a51ef1f0d939b65e8666cb7d36e32bc4f8ac2b74c20664efd41e8bdd - languageName: node - linkType: hard - -"@babel/regjsgen@npm:^0.8.0": - version: 0.8.0 - resolution: "@babel/regjsgen@npm:0.8.0" - checksum: 89c338fee774770e5a487382170711014d49a68eb281e74f2b5eac88f38300a4ad545516a7786a8dd5702e9cf009c94c2f582d200f077ac5decd74c56b973730 + checksum: 38020f1b23e88ec4fbffd5737da455d8939244bddfb48a2516aef93fb5947bd9163fb807ce6eff3e43fa5ffe9113aa131305fef0fb5053998410bbfcfe6ce0ec languageName: node linkType: hard -"@babel/runtime@npm:^7.1.2, @babel/runtime@npm:^7.10.1, @babel/runtime@npm:^7.11.1, @babel/runtime@npm:^7.11.2, @babel/runtime@npm:^7.12.13, @babel/runtime@npm:^7.12.5, @babel/runtime@npm:^7.15.4, @babel/runtime@npm:^7.16.3, @babel/runtime@npm:^7.18.0, @babel/runtime@npm:^7.18.3, @babel/runtime@npm:^7.20.13, @babel/runtime@npm:^7.21.0, @babel/runtime@npm:^7.23.2, @babel/runtime@npm:^7.6.3, @babel/runtime@npm:^7.7.2, @babel/runtime@npm:^7.8.4, @babel/runtime@npm:^7.8.7, @babel/runtime@npm:^7.9.2": - version: 7.24.4 - resolution: "@babel/runtime@npm:7.24.4" - dependencies: - regenerator-runtime: ^0.14.0 - checksum: 2f27d4c0ffac7ae7999ac0385e1106f2a06992a8bdcbf3da06adcac7413863cd08c198c2e4e970041bbea849e17f02e1df18875539b6afba76c781b6b59a07c3 - languageName: node - linkType: hard - -"@babel/runtime@npm:^7.10.4, @babel/runtime@npm:^7.16.7, @babel/runtime@npm:^7.20.0, @babel/runtime@npm:^7.20.7, @babel/runtime@npm:^7.22.5, @babel/runtime@npm:^7.23.6, @babel/runtime@npm:^7.23.9, @babel/runtime@npm:^7.24.4, @babel/runtime@npm:^7.24.7, @babel/runtime@npm:^7.24.8, @babel/runtime@npm:^7.25.7, @babel/runtime@npm:^7.26.0": - version: 7.27.0 - resolution: "@babel/runtime@npm:7.27.0" - dependencies: - regenerator-runtime: ^0.14.0 - checksum: 3e73d9e65f76fad8f99802b5364c941f4a60c693b3eca66147bb0bfa54cf0fbe017232155e16e3fd83c0a049b51b8d7239efbd73626534abe8b54a6dd57dcb1b +"@babel/runtime@npm:^7.1.2, @babel/runtime@npm:^7.10.1, @babel/runtime@npm:^7.10.4, @babel/runtime@npm:^7.11.1, @babel/runtime@npm:^7.11.2, @babel/runtime@npm:^7.12.13, @babel/runtime@npm:^7.12.5, @babel/runtime@npm:^7.13.9, @babel/runtime@npm:^7.15.4, @babel/runtime@npm:^7.16.3, @babel/runtime@npm:^7.16.7, @babel/runtime@npm:^7.18.0, @babel/runtime@npm:^7.18.3, @babel/runtime@npm:^7.20.0, @babel/runtime@npm:^7.20.13, @babel/runtime@npm:^7.20.7, @babel/runtime@npm:^7.21.0, @babel/runtime@npm:^7.22.5, @babel/runtime@npm:^7.23.2, @babel/runtime@npm:^7.23.6, @babel/runtime@npm:^7.23.9, @babel/runtime@npm:^7.24.4, @babel/runtime@npm:^7.24.7, @babel/runtime@npm:^7.24.8, @babel/runtime@npm:^7.25.7, @babel/runtime@npm:^7.26.0, @babel/runtime@npm:^7.6.3, @babel/runtime@npm:^7.7.2, @babel/runtime@npm:^7.8.7, @babel/runtime@npm:^7.9.2": + version: 7.27.1 + resolution: "@babel/runtime@npm:7.27.1" + checksum: 11339838a54783e5b14e04d94d7a4d032e9965c5823f3f687e41556fa40344ae7aeb57c535720b7a74ab3e8217def7834a6f1a665ee55bbb3befede141419913 languageName: node linkType: hard -"@babel/runtime@npm:^7.13.9": - version: 7.26.9 - resolution: "@babel/runtime@npm:7.26.9" +"@babel/template@npm:^7.27.1, @babel/template@npm:^7.3.3": + version: 7.27.2 + resolution: "@babel/template@npm:7.27.2" dependencies: - regenerator-runtime: ^0.14.0 - checksum: 838492d8a925092f9ccfbd82ec183a54f430af3a4ce88fb1337a4570629202d5123bad3097a5b8df53822504d12ccb29f45c0f6842e86094f0164f17a51eec92 + "@babel/code-frame": ^7.27.1 + "@babel/parser": ^7.27.2 + "@babel/types": ^7.27.1 + checksum: ff5628bc066060624afd970616090e5bba91c6240c2e4b458d13267a523572cbfcbf549391eec8217b94b064cf96571c6273f0c04b28a8567b96edc675c28e27 languageName: node linkType: hard -"@babel/template@npm:^7.22.15, @babel/template@npm:^7.24.0, @babel/template@npm:^7.3.3": - version: 7.24.0 - resolution: "@babel/template@npm:7.24.0" +"@babel/traverse@npm:^7.27.1": + version: 7.27.1 + resolution: "@babel/traverse@npm:7.27.1" dependencies: - "@babel/code-frame": ^7.23.5 - "@babel/parser": ^7.24.0 - "@babel/types": ^7.24.0 - checksum: f257b003c071a0cecdbfceca74185f18fe62c055469ab5c1d481aab12abeebed328e67e0a19fd978a2a8de97b28953fa4bc3da6d038a7345fdf37923b9fcdec8 - languageName: node - linkType: hard - -"@babel/traverse@npm:^7.24.1": - version: 7.24.1 - resolution: "@babel/traverse@npm:7.24.1" - dependencies: - "@babel/code-frame": ^7.24.1 - "@babel/generator": ^7.24.1 - "@babel/helper-environment-visitor": ^7.22.20 - "@babel/helper-function-name": ^7.23.0 - "@babel/helper-hoist-variables": ^7.22.5 - "@babel/helper-split-export-declaration": ^7.22.6 - "@babel/parser": ^7.24.1 - "@babel/types": ^7.24.0 + "@babel/code-frame": ^7.27.1 + "@babel/generator": ^7.27.1 + "@babel/parser": ^7.27.1 + "@babel/template": ^7.27.1 + "@babel/types": ^7.27.1 debug: ^4.3.1 globals: ^11.1.0 - checksum: 92a5ca906abfba9df17666d2001ab23f18600035f706a687055a0e392a690ae48d6fec67c8bd4ef19ba18699a77a5b7f85727e36b83f7d110141608fe0c24fe9 + checksum: 7ea3ec36a65e734f2921f5dba6f417f5dd0c90eb44a60f6addbacbbedb44e8c82eba415a74feb7d6df58e351519b81b11b6ca3c0c7c41a3f73ebeaf6895a826c languageName: node linkType: hard -"@babel/types@npm:^7.0.0, @babel/types@npm:^7.20.0, @babel/types@npm:^7.20.7, @babel/types@npm:^7.21.3, @babel/types@npm:^7.22.15, @babel/types@npm:^7.22.19, @babel/types@npm:^7.22.5, @babel/types@npm:^7.23.0, @babel/types@npm:^7.23.4, @babel/types@npm:^7.24.0, @babel/types@npm:^7.3.3, @babel/types@npm:^7.4.4, @babel/types@npm:^7.8.3": - version: 7.24.0 - resolution: "@babel/types@npm:7.24.0" +"@babel/types@npm:^7.0.0, @babel/types@npm:^7.20.0, @babel/types@npm:^7.20.7, @babel/types@npm:^7.21.3, @babel/types@npm:^7.27.1, @babel/types@npm:^7.3.3, @babel/types@npm:^7.4.4": + version: 7.27.1 + resolution: "@babel/types@npm:7.27.1" dependencies: - "@babel/helper-string-parser": ^7.23.4 - "@babel/helper-validator-identifier": ^7.22.20 - to-fast-properties: ^2.0.0 - checksum: 4b574a37d490f621470ff36a5afaac6deca5546edcb9b5e316d39acbb20998e9c2be42f3fc0bf2b55906fc49ff2a5a6a097e8f5a726ee3f708a0b0ca93aed807 + "@babel/helper-string-parser": ^7.27.1 + "@babel/helper-validator-identifier": ^7.27.1 + checksum: 357c13f37aaa2f2e2cfcdb63f986d5f7abc9f38df20182b620ace34387d2460620415770fe5856eb54d70c9f0ba2f71230d29465e789188635a948476b830ae4 languageName: node linkType: hard @@ -1815,44 +1697,39 @@ __metadata: linkType: hard "@codemirror/autocomplete@npm:^6.0.0, @codemirror/autocomplete@npm:^6.11.1": - version: 6.16.0 - resolution: "@codemirror/autocomplete@npm:6.16.0" + version: 6.18.6 + resolution: "@codemirror/autocomplete@npm:6.18.6" dependencies: "@codemirror/language": ^6.0.0 "@codemirror/state": ^6.0.0 "@codemirror/view": ^6.17.0 "@lezer/common": ^1.0.0 - peerDependencies: - "@codemirror/language": ^6.0.0 - "@codemirror/state": ^6.0.0 - "@codemirror/view": ^6.0.0 - "@lezer/common": ^1.0.0 - checksum: e33d3d8c961c03dc4a70d1ac6f01aee5362d778da9d873a8335aed47f7de9430eab083589736e7922464b941d5da23c51ab6af05400413a8d1a07604ffcb99f7 + checksum: 1d3657d5fbd2bbf983edf7fb14568b1f813a15f03848bef3833835dd3a30985d881e093842f7b3def23789b542db4eb81ec07bfa313d1ee1d54cb1b273027dea languageName: node linkType: hard "@codemirror/commands@npm:^6.3.2": - version: 6.5.0 - resolution: "@codemirror/commands@npm:6.5.0" + version: 6.8.1 + resolution: "@codemirror/commands@npm:6.8.1" dependencies: "@codemirror/language": ^6.0.0 "@codemirror/state": ^6.4.0 - "@codemirror/view": ^6.0.0 + "@codemirror/view": ^6.27.0 "@lezer/common": ^1.1.0 - checksum: 27e49c5e0cb918b95d6a9f741bcc0e72cb76f963b0c829308edfb4491a37d8b12ae6fb96f9f1886b3189a22c82fec4434fbe65547dc3cd3e8dfb5222dfead2e7 + checksum: 838365af4f12e985c35f4bc59e38eb809e951fd3e35d5ad43548e61c26deda050276346dd031b9c6ed7fe13a777d59c37b9b1e46609d1d79e622d908340a468e languageName: node linkType: hard "@codemirror/lang-css@npm:^6.0.0, @codemirror/lang-css@npm:^6.2.1": - version: 6.2.1 - resolution: "@codemirror/lang-css@npm:6.2.1" + version: 6.3.1 + resolution: "@codemirror/lang-css@npm:6.3.1" dependencies: "@codemirror/autocomplete": ^6.0.0 "@codemirror/language": ^6.0.0 "@codemirror/state": ^6.0.0 "@lezer/common": ^1.0.2 - "@lezer/css": ^1.0.0 - checksum: 5a8457ee8a4310030a969f2d3128429f549c4dc9b7907ee8888b42119c80b65af99093801432efdf659b8ec36a147d2a947bc1ecbbf69a759395214e3f4834a8 + "@lezer/css": ^1.1.7 + checksum: ed175d75d75bc0a059d1e60b3dcd8464d570da14fc97388439943c9c43e1e9146e37b83fe2ccaad9cd387420b7b411ea1d24ede78ecd1f2045a38acbb4dd36bc languageName: node linkType: hard @@ -1874,8 +1751,8 @@ __metadata: linkType: hard "@codemirror/lang-javascript@npm:^6.0.0, @codemirror/lang-javascript@npm:^6.2.1": - version: 6.2.2 - resolution: "@codemirror/lang-javascript@npm:6.2.2" + version: 6.2.4 + resolution: "@codemirror/lang-javascript@npm:6.2.4" dependencies: "@codemirror/autocomplete": ^6.0.0 "@codemirror/language": ^6.6.0 @@ -1884,7 +1761,7 @@ __metadata: "@codemirror/view": ^6.17.0 "@lezer/common": ^1.0.0 "@lezer/javascript": ^1.0.0 - checksum: 66379942a8347dff2bd76d10ed7cf313bca83872f8336fdd3e14accfef23e7b690cd913c9d11a3854fba2b32299da07fc3275995327642c9ee43c2a8e538c19d + checksum: 0350e9ac2df155c4ecf75d556f40b677c284c1d320620dc7228e2aa458e258dd1145c86e5ebf3451347ed6ef528f72c2eb60f5d3f6bd10af8aabb2819109e21a languageName: node linkType: hard @@ -1899,8 +1776,8 @@ __metadata: linkType: hard "@codemirror/lang-sql@npm:^6.5.4": - version: 6.6.3 - resolution: "@codemirror/lang-sql@npm:6.6.3" + version: 6.8.0 + resolution: "@codemirror/lang-sql@npm:6.8.0" dependencies: "@codemirror/autocomplete": ^6.0.0 "@codemirror/language": ^6.0.0 @@ -1908,13 +1785,13 @@ __metadata: "@lezer/common": ^1.2.0 "@lezer/highlight": ^1.0.0 "@lezer/lr": ^1.0.0 - checksum: b8e554bda9107107283674a6397cdb4816ad8bb429afd739fdc5e0339ef60170f09bdd93e7dc3eaf7f24ffaec5c7477ee42af7c05cb471990657014fac2fea1e + checksum: 1b5a3c8129b09f24039d8c0906fc4cb8d0f706a424a1d56721057bd1e647797c2b1240bb53eed9bf2bac5806a4e0363e555a3963f04c478efa05829890c537f7 languageName: node linkType: hard "@codemirror/language@npm:^6.0.0, @codemirror/language@npm:^6.4.0, @codemirror/language@npm:^6.6.0": - version: 6.10.1 - resolution: "@codemirror/language@npm:6.10.1" + version: 6.11.0 + resolution: "@codemirror/language@npm:6.11.0" dependencies: "@codemirror/state": ^6.0.0 "@codemirror/view": ^6.23.0 @@ -1922,47 +1799,49 @@ __metadata: "@lezer/highlight": ^1.0.0 "@lezer/lr": ^1.0.0 style-mod: ^4.0.0 - checksum: 453bbe122a84795752f29261412b69a8dcfdd7e4369eb7e112bffba36b9e527ad21adff1d3845e0dc44c9ab44eb0c6f823eb6ba790ddd00cc749847574eda779 + checksum: 5556dc163d5bd1d771a4f64e2750d3d1dc1f39030bc6e4b9a4704e4de7501e8d3511002e0f8f96cd8deef782730e0b49b576e30f0ea820e1c632995bd75caddd languageName: node linkType: hard "@codemirror/lint@npm:^6.0.0": - version: 6.5.0 - resolution: "@codemirror/lint@npm:6.5.0" + version: 6.8.5 + resolution: "@codemirror/lint@npm:6.8.5" dependencies: "@codemirror/state": ^6.0.0 - "@codemirror/view": ^6.0.0 + "@codemirror/view": ^6.35.0 crelt: ^1.0.5 - checksum: b4f3899d0f73e5a2b5e9bc1df8e13ecb9324b94c7d384e7c8dde794109dee051461fc86658338f41652b44879b2ccc12cdd51a8ac0bb16a5b18aafa8e57a843c + checksum: 76fa457c6664f333216aacb0112bce8a0e2fd7011c180b7c855027dbb871dc112a31bf828f5affc0e53973111dee3aac4c9c3b80ade8534ac9748f296fb77abc languageName: node linkType: hard "@codemirror/search@npm:^6.5.5": - version: 6.5.6 - resolution: "@codemirror/search@npm:6.5.6" + version: 6.5.11 + resolution: "@codemirror/search@npm:6.5.11" dependencies: "@codemirror/state": ^6.0.0 "@codemirror/view": ^6.0.0 crelt: ^1.0.5 - checksum: 19dc88d09fc750563347001e83c6194bbb2a25c874bd919d2d81809e1f98d6330222ddbd284aa9758a09eeb41fd153ec7c2cf810b2ee51452c25963d7f5833d5 + checksum: 4d418f176bd93705bc51c82a2f1c0e41fecc0368dc43c415635c4dfdd763aa05ebdf7f000bc9ca0083c1887e6d305b89482ec1f4db8b8765c6f38de324187476 languageName: node linkType: hard -"@codemirror/state@npm:^6.0.0, @codemirror/state@npm:^6.4.0": - version: 6.4.1 - resolution: "@codemirror/state@npm:6.4.1" - checksum: b81b55574091349eed4d32fc0eadb0c9688f1f7c98b681318f59138ee0f527cb4c4a97831b70547c0640f02f3127647838ae6730782de4a3dd2cc58836125d01 +"@codemirror/state@npm:^6.0.0, @codemirror/state@npm:^6.4.0, @codemirror/state@npm:^6.5.0": + version: 6.5.2 + resolution: "@codemirror/state@npm:6.5.2" + dependencies: + "@marijn/find-cluster-break": ^1.0.0 + checksum: 4473a79475070d73f2e72f2eaaee5b69d2833b5020faa9714609d95dd03f0e5ad02cad8031a541dcd748436842a300332a2925317b39ffa09e3b4831145d98bc languageName: node linkType: hard -"@codemirror/view@npm:^6.0.0, @codemirror/view@npm:^6.17.0, @codemirror/view@npm:^6.23.0": - version: 6.26.3 - resolution: "@codemirror/view@npm:6.26.3" +"@codemirror/view@npm:^6.0.0, @codemirror/view@npm:^6.17.0, @codemirror/view@npm:^6.23.0, @codemirror/view@npm:^6.27.0, @codemirror/view@npm:^6.35.0": + version: 6.36.8 + resolution: "@codemirror/view@npm:6.36.8" dependencies: - "@codemirror/state": ^6.4.0 + "@codemirror/state": ^6.5.0 style-mod: ^4.1.0 w3c-keyname: ^2.2.4 - checksum: fdee35fb5e0bbba7b6f1a9b43a865880911bbfafd30360da5dda21b35f81ba2d080ff66b6c3d94dbe946b6b7ec98a76208786360b8f030ef10bcb054b816de05 + checksum: 6b5bbbd6f73bf2486170e3ee6b13660b8919ec544dc527dbe6357034a534dbd7deea3e660fbcd67c5e53ea808d6411ddd355eb9cf3dc4dded2a7c3f95a7fb0ac languageName: node linkType: hard @@ -1975,13 +1854,6 @@ __metadata: languageName: node linkType: hard -"@ctrl/tinycolor@npm:^3.6.1": - version: 3.6.1 - resolution: "@ctrl/tinycolor@npm:3.6.1" - checksum: cefec6fcaaa3eb8ddf193f981e097dccf63b97b93b1e861cb18c645654824c831a568f444996e15ee509f255658ed82fba11c5365494a6e25b9b12ac454099e0 - languageName: node - linkType: hard - "@cush/relative@npm:^1.0.0": version: 1.0.0 resolution: "@cush/relative@npm:1.0.0" @@ -1997,13 +1869,13 @@ __metadata: linkType: hard "@dnd-kit/accessibility@npm:^3.0.0": - version: 3.1.0 - resolution: "@dnd-kit/accessibility@npm:3.1.0" + version: 3.1.1 + resolution: "@dnd-kit/accessibility@npm:3.1.1" dependencies: tslib: ^2.0.0 peerDependencies: react: ">=16.8.0" - checksum: fcb88c961e2f4c226ab575bc4a13712419884bb0f60761befcaa23bcb6c9939dc2cac6633416f2a07baee9a8830350c6df444039332408cdaaf27cad17c6b64b + checksum: f71b98b29e005d15c1300922b201bea9189aceeb15662e6e86231034f72b53812566361f8c14b0521278ac104f9703ca069d43f2c73862ea10181a2211ca5b27 languageName: node linkType: hard @@ -2065,12 +1937,12 @@ __metadata: languageName: node linkType: hard -"@emotion/is-prop-valid@npm:1.2.1": - version: 1.2.1 - resolution: "@emotion/is-prop-valid@npm:1.2.1" +"@emotion/is-prop-valid@npm:1.2.2": + version: 1.2.2 + resolution: "@emotion/is-prop-valid@npm:1.2.2" dependencies: "@emotion/memoize": ^0.8.1 - checksum: 8f42dc573a3fad79b021479becb639b8fe3b60bdd1081a775d32388bca418ee53074c7602a4c845c5f75fa6831eb1cbdc4d208cc0299f57014ed3a02abcad16a + checksum: 61f6b128ea62b9f76b47955057d5d86fcbe2a6989d2cd1e583daac592901a950475a37d049b9f7a7c6aa8758a33b408735db759fdedfd1f629df0f85ab60ea25 languageName: node linkType: hard @@ -2081,10 +1953,10 @@ __metadata: languageName: node linkType: hard -"@emotion/unitless@npm:0.8.0": - version: 0.8.0 - resolution: "@emotion/unitless@npm:0.8.0" - checksum: 176141117ed23c0eb6e53a054a69c63e17ae532ec4210907a20b2208f91771821835f1c63dd2ec63e30e22fcc984026d7f933773ee6526dd038e0850919fae7a +"@emotion/unitless@npm:0.8.1": + version: 0.8.1 + resolution: "@emotion/unitless@npm:0.8.1" + checksum: 385e21d184d27853bb350999471f00e1429fa4e83182f46cd2c164985999d9b46d558dc8b9cc89975cb337831ce50c31ac2f33b15502e85c299892e67e7b4a88 languageName: node linkType: hard @@ -2250,20 +2122,20 @@ __metadata: linkType: hard "@eslint-community/eslint-utils@npm:^4.2.0": - version: 4.4.0 - resolution: "@eslint-community/eslint-utils@npm:4.4.0" + version: 4.7.0 + resolution: "@eslint-community/eslint-utils@npm:4.7.0" dependencies: - eslint-visitor-keys: ^3.3.0 + eslint-visitor-keys: ^3.4.3 peerDependencies: eslint: ^6.0.0 || ^7.0.0 || >=8.0.0 - checksum: cdfe3ae42b4f572cbfb46d20edafe6f36fc5fb52bf2d90875c58aefe226892b9677fef60820e2832caf864a326fe4fc225714c46e8389ccca04d5f9288aabd22 + checksum: b177e3b75c0b8d0e5d71f1c532edb7e40b31313db61f0c879f9bf19c3abb2783c6c372b5deb2396dab4432f2946b9972122ac682e77010376c029dfd0149c681 languageName: node linkType: hard "@eslint-community/regexpp@npm:^4.4.0, @eslint-community/regexpp@npm:^4.6.1": - version: 4.10.0 - resolution: "@eslint-community/regexpp@npm:4.10.0" - checksum: 2a6e345429ea8382aaaf3a61f865cae16ed44d31ca917910033c02dc00d505d939f10b81e079fa14d43b51499c640138e153b7e40743c4c094d9df97d4e56f7b + version: 4.12.1 + resolution: "@eslint-community/regexpp@npm:4.12.1" + checksum: 0d628680e204bc316d545b4993d3658427ca404ae646ce541fcc65306b8c712c340e5e573e30fb9f85f4855c0c5f6dca9868931f2fcced06417fbe1a0c6cd2d6 languageName: node linkType: hard @@ -2284,314 +2156,316 @@ __metadata: languageName: node linkType: hard -"@eslint/js@npm:8.57.0": - version: 8.57.0 - resolution: "@eslint/js@npm:8.57.0" - checksum: 315dc65b0e9893e2bff139bddace7ea601ad77ed47b4550e73da8c9c2d2766c7a575c3cddf17ef85b8fd6a36ff34f91729d0dcca56e73ca887c10df91a41b0bb +"@eslint/js@npm:8.57.1": + version: 8.57.1 + resolution: "@eslint/js@npm:8.57.1" + checksum: 2afb77454c06e8316793d2e8e79a0154854d35e6782a1217da274ca60b5044d2c69d6091155234ed0551a1e408f86f09dd4ece02752c59568fa403e60611e880 languageName: node linkType: hard -"@floating-ui/core@npm:^1.0.0": - version: 1.6.1 - resolution: "@floating-ui/core@npm:1.6.1" +"@floating-ui/core@npm:^1.7.0": + version: 1.7.0 + resolution: "@floating-ui/core@npm:1.7.0" dependencies: - "@floating-ui/utils": ^0.2.0 - checksum: 77ae1bc49127a694f37464e78d8eb7971c346a8691ea62a038beeddb22b80910d326fe544267c2b15fa49ff23ae403bc2763658f6413b67dbd759ab950c11939 + "@floating-ui/utils": ^0.2.9 + checksum: 428a90e49024cfc9ac2276f6f28501aa06be8946a5619eed83de30084d35ee10a08c70fb2bde06f21d18d90714b7d3813770b5416d0d13e2d201616c49a4f611 languageName: node linkType: hard "@floating-ui/dom@npm:^1.4.2": - version: 1.6.4 - resolution: "@floating-ui/dom@npm:1.6.4" + version: 1.7.0 + resolution: "@floating-ui/dom@npm:1.7.0" dependencies: - "@floating-ui/core": ^1.0.0 - "@floating-ui/utils": ^0.2.0 - checksum: 9cb061b19e3a4dca0e61caaa926eed34f74854df32d743e49f955b97679a097b5d60ee6bb74b7b0d17f4739e3089cf503f213bd3bc64c41328b7d34070ba4550 + "@floating-ui/core": ^1.7.0 + "@floating-ui/utils": ^0.2.9 + checksum: 86e35e0d9b849476c0a29623870146b5f0c94b6fb131d14e399b235ea01a8b6c2d2545682fa01364f2a7f81bbf8e58b4947241eb5cada164eeaca2df22dbc625 languageName: node linkType: hard -"@floating-ui/utils@npm:^0.2.0": - version: 0.2.2 - resolution: "@floating-ui/utils@npm:0.2.2" - checksum: 3d8d46fd1b071c98e10d374e2dcf54d1eb9de0aa75ed2b994c9132ebf6f783f896f979053be71450bdb6d60021120cfc24d25a5c84ebb3db0994080e13d9762f +"@floating-ui/utils@npm:^0.2.9": + version: 0.2.9 + resolution: "@floating-ui/utils@npm:0.2.9" + checksum: d518b80cec5a323e54a069a1dd99a20f8221a4853ed98ac16c75275a0cc22f75de4f8ac5b121b4f8990bd45da7ad1fb015b9a1e4bac27bb1cd62444af84e9784 languageName: node linkType: hard -"@formatjs/ecma402-abstract@npm:1.18.2": - version: 1.18.2 - resolution: "@formatjs/ecma402-abstract@npm:1.18.2" +"@formatjs/ecma402-abstract@npm:2.3.4": + version: 2.3.4 + resolution: "@formatjs/ecma402-abstract@npm:2.3.4" dependencies: - "@formatjs/intl-localematcher": 0.5.4 - tslib: ^2.4.0 - checksum: c664056ccab4e3407feabd5802276075eae2b614acb8c5979045ff5a70bfec4c04488188c30b311b6db0e0eb0b5c1ca328868d76472a14243c944bc0639e8a4d + "@formatjs/fast-memoize": 2.2.7 + "@formatjs/intl-localematcher": 0.6.1 + decimal.js: ^10.4.3 + tslib: ^2.8.0 + checksum: ee41278ab4d587e0c9e82d8ed9d46440297a547fac10eb4bee922c65c99a1cf00db154da02d7c80682bb010222e6fbe5a1cad72d64a94052544e76c9119a7513 languageName: node linkType: hard -"@formatjs/fast-memoize@npm:2.2.0": - version: 2.2.0 - resolution: "@formatjs/fast-memoize@npm:2.2.0" +"@formatjs/fast-memoize@npm:2.2.7": + version: 2.2.7 + resolution: "@formatjs/fast-memoize@npm:2.2.7" dependencies: - tslib: ^2.4.0 - checksum: 8697fe72a7ece252d600a7d08105f2a2f758e2dd96f54ac0a4c508b1205a559fc08835635e1f8e5ca9dcc3ee61ce1fca4a0e7047b402f29fc96051e293a280ff + tslib: ^2.8.0 + checksum: e7e6efc677d63a13d99a854305db471b69f64cbfebdcb6dbe507dab9aa7eaae482ca5de86f343c856ca0a2c8f251672bd1f37c572ce14af602c0287378097d43 languageName: node linkType: hard -"@formatjs/icu-messageformat-parser@npm:2.7.6": - version: 2.7.6 - resolution: "@formatjs/icu-messageformat-parser@npm:2.7.6" +"@formatjs/icu-messageformat-parser@npm:2.11.2": + version: 2.11.2 + resolution: "@formatjs/icu-messageformat-parser@npm:2.11.2" dependencies: - "@formatjs/ecma402-abstract": 1.18.2 - "@formatjs/icu-skeleton-parser": 1.8.0 - tslib: ^2.4.0 - checksum: d537253cbfe0515c0b72495b1133528a6643f23f978f6d9576defe5150dbb4b9b4e4b7028e2ff1bfaa4d104b05aa1119688d3fb7a4cf9b1b78ba8019a6adfeb1 + "@formatjs/ecma402-abstract": 2.3.4 + "@formatjs/icu-skeleton-parser": 1.8.14 + tslib: ^2.8.0 + checksum: ab33f052a03ee487809a91836d87536a48cd52845c55b55298cc0957ae98de306cc99ec235d0efb05e5a8b89e38f70cf7a2a83b4b2af80a6ba93944bb8943f7b languageName: node linkType: hard -"@formatjs/icu-skeleton-parser@npm:1.8.0": - version: 1.8.0 - resolution: "@formatjs/icu-skeleton-parser@npm:1.8.0" +"@formatjs/icu-skeleton-parser@npm:1.8.14": + version: 1.8.14 + resolution: "@formatjs/icu-skeleton-parser@npm:1.8.14" dependencies: - "@formatjs/ecma402-abstract": 1.18.2 - tslib: ^2.4.0 - checksum: 85ca45148a8535c61f2667d24d3e59ab97cd2b4accee8383594872a319e875effae7d54e070fd0d3926fc1407b04f5685f94336c1d0d587fcb1064bb498e5319 + "@formatjs/ecma402-abstract": 2.3.4 + tslib: ^2.8.0 + checksum: dcce6bdb7952201804bae17270d6a99a6baa780c4657d4bb02d15de08d1c3fd8c904e13bb1ef6ccd6fde68d5a56f22a7ba99be4e92903d4fe050f61bebaa0e8e languageName: node linkType: hard -"@formatjs/intl-localematcher@npm:0.5.4": - version: 0.5.4 - resolution: "@formatjs/intl-localematcher@npm:0.5.4" +"@formatjs/intl-localematcher@npm:0.6.1": + version: 0.6.1 + resolution: "@formatjs/intl-localematcher@npm:0.6.1" dependencies: - tslib: ^2.4.0 - checksum: a0af57874fcd163add5f7a0cb1c008e9b09feb1d24cbce1263379ae0393cddd6681197a7f2f512f351a97666fc8675ed52cc17d1834266ee8fc65e9edf3435f6 + tslib: ^2.8.0 + checksum: 1c7e67f079f18bfd25f42d7f32bcb829d79708dba58408807e2b81ce16da812f48d958e0ad51af37faa8080042bc927dcf5b2cef63954316882d4cc007f53077 languageName: node linkType: hard -"@fortawesome/fontawesome-common-types@npm:6.5.2": - version: 6.5.2 - resolution: "@fortawesome/fontawesome-common-types@npm:6.5.2" - checksum: 8164f3e16683db5125634a4fbf3db83a5a7366bb830111ffe8538e1b8f98f8fe6dc35609cf2c595a7d6840e27d3fb45b57faf7340e40e98f0d76207fe8f94e79 +"@fortawesome/fontawesome-common-types@npm:6.7.2": + version: 6.7.2 + resolution: "@fortawesome/fontawesome-common-types@npm:6.7.2" + checksum: 9c17f03032e56b8e8e996e5b2c15c8b47baf6f8d5c0703025b0b2711907245f94a7032b3da52d2714b5aeff1c14d3535e6869a82086136dcacae9ccd479dc6a2 languageName: node linkType: hard "@fortawesome/fontawesome-svg-core@npm:^6.5.1": - version: 6.5.2 - resolution: "@fortawesome/fontawesome-svg-core@npm:6.5.2" + version: 6.7.2 + resolution: "@fortawesome/fontawesome-svg-core@npm:6.7.2" dependencies: - "@fortawesome/fontawesome-common-types": 6.5.2 - checksum: f0c2a0800074c5bbc143631b9f3f818b94bd14b8590153058eecc9f548ae0ac78cfca61196880f9b3b79b5d5b5afdb140d05da75542da2087701614c9c043905 + "@fortawesome/fontawesome-common-types": 6.7.2 + checksum: b3c269545d99202111d8334955466a7f050c38cf80c6be5fdd36baae36822421e0806986db8d1670834fab6595ce527e06ea58248e053703722d03f19eccbb82 languageName: node linkType: hard "@fortawesome/free-brands-svg-icons@npm:^6.5.1": - version: 6.5.2 - resolution: "@fortawesome/free-brands-svg-icons@npm:6.5.2" + version: 6.7.2 + resolution: "@fortawesome/free-brands-svg-icons@npm:6.7.2" dependencies: - "@fortawesome/fontawesome-common-types": 6.5.2 - checksum: f037c15978da40942e7962f3ddbddf767bc1a5a126952422c786408e4942f7da4daaefe028ba039b56761636903a5916b845547755a8e04e079c6f92e724fd37 + "@fortawesome/fontawesome-common-types": 6.7.2 + checksum: 1583c684e3070952ae392dcb1a6f8a3af3637b8030f2aa2a7305f09150d957493ac2e22d29fd45c801d7166c28200a8d1fc92d67b6aa528e9a3f9715b24a8e95 languageName: node linkType: hard "@fortawesome/free-regular-svg-icons@npm:^6.5.1": - version: 6.5.2 - resolution: "@fortawesome/free-regular-svg-icons@npm:6.5.2" + version: 6.7.2 + resolution: "@fortawesome/free-regular-svg-icons@npm:6.7.2" dependencies: - "@fortawesome/fontawesome-common-types": 6.5.2 - checksum: e5a6cf019e0252adbfc64d150c47beeb78c90f3d6173df75891a7fd3af45ce187412e498cb21e7d1b0818047febe9ff5a9896d0ca8c279eb5217cb4af63cc71d + "@fortawesome/fontawesome-common-types": 6.7.2 + checksum: 1a2be177dbb2c0186b3f10157a70c494f9e3c12c022cc8fb926c37b78a61e256a98c2739774671106454cb1a7f2336c6f49443e6bef44f33e67dd4e186f126cc languageName: node linkType: hard "@fortawesome/free-solid-svg-icons@npm:^6.5.1": - version: 6.5.2 - resolution: "@fortawesome/free-solid-svg-icons@npm:6.5.2" + version: 6.7.2 + resolution: "@fortawesome/free-solid-svg-icons@npm:6.7.2" dependencies: - "@fortawesome/fontawesome-common-types": 6.5.2 - checksum: f23964434ccbab5114c05bcdabb79d8e801b5be534618db7947d40d4841a3e52177e6145ae5fe59c941d864f70ffcffd0f1e4f0983dfd0048a1f5f3430a00c8c + "@fortawesome/fontawesome-common-types": 6.7.2 + checksum: 457cc180399be57efd1a5908aaa76c8530dec5469fa676904179f73976c10bb030c6de9bf866e2a83e042cfd23856ba5fa1ca5acdb83f4e90c6b4aa9e5412d3c languageName: node linkType: hard "@fortawesome/react-fontawesome@npm:latest": - version: 0.2.0 - resolution: "@fortawesome/react-fontawesome@npm:0.2.0" + version: 0.2.2 + resolution: "@fortawesome/react-fontawesome@npm:0.2.2" dependencies: prop-types: ^15.8.1 peerDependencies: "@fortawesome/fontawesome-svg-core": ~1 || ~6 react: ">=16.3" - checksum: f652a0c2172e7b209e2d9e7e511f9b8c17abad85f55e0bd09bb1175ea1927693215da47eb6cd95b1f3a23bd124368553c677907fa76cb17c5093afc1fcffe338 + checksum: e4bed35bfb7fc88b5bcf2305d08ee1835b82fa7705945c4d310df33bb747b05ef07a33ac9db643c8870ca4f835228978290d84d82f2c6c6a70b9ab4c886731a6 languageName: node linkType: hard "@fullcalendar/adaptive@npm:^6.1.11": - version: 6.1.11 - resolution: "@fullcalendar/adaptive@npm:6.1.11" + version: 6.1.17 + resolution: "@fullcalendar/adaptive@npm:6.1.17" dependencies: - "@fullcalendar/premium-common": ~6.1.11 + "@fullcalendar/premium-common": ~6.1.17 peerDependencies: - "@fullcalendar/core": ~6.1.11 - checksum: abfead327433c7142eec5abae9cce7af217f86218c95aa156ab028ae87f90edfc4336090a55764050861aab221217cea5dc7a80658c26f795004eb9d3c290f92 + "@fullcalendar/core": ~6.1.17 + checksum: 60cb745fa73ee45763cbc18eeaac86c14eecbb0084bea1464f2f116272cf824517fb3357d83789c3288e87e166b0606338124397f551c0451ddb4ca0599a6a8b languageName: node linkType: hard "@fullcalendar/core@npm:^6.1.6": - version: 6.1.11 - resolution: "@fullcalendar/core@npm:6.1.11" + version: 6.1.17 + resolution: "@fullcalendar/core@npm:6.1.17" dependencies: preact: ~10.12.1 - checksum: 0078a6f96b06a637de08ba28a317bbcbf7768f53ce7891faa2a656ca2bed0e887e555d6f3203b77d6c271ccb128fa85d592411fcfd87746514a5cec68376ad87 + checksum: 76a398adf7cababcce1043de0b2fe2e7ed732eb24e8e13821e065572e12583fc864f38ed1e2d447ab18db641682eff10ed640593bd2078bd70cc3692f67944e1 languageName: node linkType: hard -"@fullcalendar/daygrid@npm:^6.1.6, @fullcalendar/daygrid@npm:~6.1.11": - version: 6.1.11 - resolution: "@fullcalendar/daygrid@npm:6.1.11" +"@fullcalendar/daygrid@npm:^6.1.6, @fullcalendar/daygrid@npm:~6.1.17": + version: 6.1.17 + resolution: "@fullcalendar/daygrid@npm:6.1.17" peerDependencies: - "@fullcalendar/core": ~6.1.11 - checksum: 6eb5606de58b7a8ec30d96618a6d15b2c0d7108c94593ff94e81a8d87ce8efb1f29f3849c6c3f2b8ae56198ffe6235e2ec0e4a1270993c022dc194016e595685 + "@fullcalendar/core": ~6.1.17 + checksum: 2391b67f121993ccc47d427fd770bf6e9f9ab7c0a39a60c90b878bad66fadc8845483b1c37b068f02178858f9eeea3ff1c23b90adcc6bb5c7186c446aca7acb2 languageName: node linkType: hard "@fullcalendar/interaction@npm:^6.1.6": - version: 6.1.11 - resolution: "@fullcalendar/interaction@npm:6.1.11" + version: 6.1.17 + resolution: "@fullcalendar/interaction@npm:6.1.17" peerDependencies: - "@fullcalendar/core": ~6.1.11 - checksum: c67d4cfa0b158b848fb482835c5f44c52650037a4b912e16e2ea1955bf476c847d0ec95aea79b37b78207b2da3a7c4d2b37bd5c8b15a89bdd5e3b7ae3b7af9ba + "@fullcalendar/core": ~6.1.17 + checksum: 1121d743d99a31af1e54eef0637871d8792e0da504cfee0b7ae71ae31541a972e2f3bdaa0dca8fa3c9ee7b8665ba22f733b6d2a939b4a88356d05cb9ea67bdd5 languageName: node linkType: hard "@fullcalendar/list@npm:^6.1.9": - version: 6.1.11 - resolution: "@fullcalendar/list@npm:6.1.11" + version: 6.1.17 + resolution: "@fullcalendar/list@npm:6.1.17" peerDependencies: - "@fullcalendar/core": ~6.1.11 - checksum: 84a8cd6e63407e8fb95b4b2810a49c8815d9491a298a4761b9399cc8384abebf6227cc5ec93b942783f6ea6c6bcb4e94844fd5a12d73700e535f4f15ee02b7d6 + "@fullcalendar/core": ~6.1.17 + checksum: 0b6227fbfa1cea277dc33a52b8fcd7f8d537dab2a79c0edcc4cf4ffd3a368af393d84a9ff24531f5690e8c2358e497f060fa23361638c9488b295ade5ae73b2d languageName: node linkType: hard "@fullcalendar/moment@npm:^6.1.6": - version: 6.1.11 - resolution: "@fullcalendar/moment@npm:6.1.11" + version: 6.1.17 + resolution: "@fullcalendar/moment@npm:6.1.17" peerDependencies: - "@fullcalendar/core": ~6.1.11 + "@fullcalendar/core": ~6.1.17 moment: ^2.29.1 - checksum: bc71b652a754977a0b780cb033d4f06e6d4fad0517b2e0487fff9eeb359e3a242f6291b2160bb6762485b6c3fec87381dccc1d9a1e50477f1119d2e9295d82b9 + checksum: 37f04b364fb4b3ba61ea0a050fb485b03dc2fc11e4546c7f692484c55961c8598aa92269d29ffe4e5255fb829d3749262ea4c5df8c5df2fe6d573178fb68db66 languageName: node linkType: hard "@fullcalendar/multimonth@npm:^6.1.6": - version: 6.1.11 - resolution: "@fullcalendar/multimonth@npm:6.1.11" + version: 6.1.17 + resolution: "@fullcalendar/multimonth@npm:6.1.17" dependencies: - "@fullcalendar/daygrid": ~6.1.11 + "@fullcalendar/daygrid": ~6.1.17 peerDependencies: - "@fullcalendar/core": ~6.1.11 - checksum: 213a9ac97e46319bbcfce3f02edaa1b808790f58669fee06e00a7fbb9f638dfabf37c6243234758670e75ee2c1e1cb247131c3a5bb469fec77b60db577b7326c + "@fullcalendar/core": ~6.1.17 + checksum: 59c391ce80b588d21197f07c78374af21cae83d3fa722c5de4ebdcaf301cdf837ed717f99520b2c5e21c557fec15c65fc89894207d877b41805b9347b18b76b4 languageName: node linkType: hard -"@fullcalendar/premium-common@npm:~6.1.11": - version: 6.1.11 - resolution: "@fullcalendar/premium-common@npm:6.1.11" +"@fullcalendar/premium-common@npm:~6.1.17": + version: 6.1.17 + resolution: "@fullcalendar/premium-common@npm:6.1.17" peerDependencies: - "@fullcalendar/core": ~6.1.11 - checksum: 54751d6a7245ecec3005450084e4492a2938d90d8538376840572c98ced36101b5a6ea0ce654d3bf98ad173d2e7d45c6fe5d6c530dca785c48e74dcb1eb3556f + "@fullcalendar/core": ~6.1.17 + checksum: 248e34a3a8588f787458f040b690c5e4a1498c2e5446023e6b030bf6bdc32404f0099d58feee436082d9638ce6016086ec5c6675d914864ee3faa277d1013822 languageName: node linkType: hard "@fullcalendar/react@npm:^6.1.6": - version: 6.1.11 - resolution: "@fullcalendar/react@npm:6.1.11" + version: 6.1.17 + resolution: "@fullcalendar/react@npm:6.1.17" peerDependencies: - "@fullcalendar/core": ~6.1.11 - react: ^16.7.0 || ^17 || ^18 - react-dom: ^16.7.0 || ^17 || ^18 - checksum: 407557f0c1f4a3a3066b4da9ed9a502cb75e2c16aff895887b102c4f307b1d171354f89fca913f1dcaf7870b3eff64dd6f39273e4d33a82c3b5a18d1b147ffd7 + "@fullcalendar/core": ~6.1.17 + react: ^16.7.0 || ^17 || ^18 || ^19 + react-dom: ^16.7.0 || ^17 || ^18 || ^19 + checksum: 11dcf2fa85c7d69e3d020c1d3163efcd4ea294d9f8ca3d59e15b2b047ae1df2d52db09b6bb43cbedeb6c352ac962d2a5f476a9707cca41126bc11176eaf78963 languageName: node linkType: hard -"@fullcalendar/resource-daygrid@npm:~6.1.11": - version: 6.1.11 - resolution: "@fullcalendar/resource-daygrid@npm:6.1.11" +"@fullcalendar/resource-daygrid@npm:~6.1.17": + version: 6.1.17 + resolution: "@fullcalendar/resource-daygrid@npm:6.1.17" dependencies: - "@fullcalendar/daygrid": ~6.1.11 - "@fullcalendar/premium-common": ~6.1.11 + "@fullcalendar/daygrid": ~6.1.17 + "@fullcalendar/premium-common": ~6.1.17 peerDependencies: - "@fullcalendar/core": ~6.1.11 - "@fullcalendar/resource": ~6.1.11 - checksum: afa8a9e240afd9678a5b22c243e64f89568ef3b4d4de62dece6d6d84915774a65f39ff7bc476add50c06a53716fc4011c5a23b19cd47f2723805bcc81f113cfa + "@fullcalendar/core": ~6.1.17 + "@fullcalendar/resource": ~6.1.17 + checksum: 26c7a4f8f1805c1f4cfa9373db5c51d0632aa9da43ed46ada1950a2b79f341735be5652770e9fab2cd7cbe2cf2864756ae185d3cbd16e4b25a7528db60b599a8 languageName: node linkType: hard "@fullcalendar/resource-timegrid@npm:^6.1.11": - version: 6.1.11 - resolution: "@fullcalendar/resource-timegrid@npm:6.1.11" + version: 6.1.17 + resolution: "@fullcalendar/resource-timegrid@npm:6.1.17" dependencies: - "@fullcalendar/premium-common": ~6.1.11 - "@fullcalendar/resource-daygrid": ~6.1.11 - "@fullcalendar/timegrid": ~6.1.11 + "@fullcalendar/premium-common": ~6.1.17 + "@fullcalendar/resource-daygrid": ~6.1.17 + "@fullcalendar/timegrid": ~6.1.17 peerDependencies: - "@fullcalendar/core": ~6.1.11 - "@fullcalendar/resource": ~6.1.11 - checksum: 5e85ef1338cc627598ca644e8f8bcca9f4dab049dd4df1edacf2f9a732663c82ee14fac03552e5b31f9d03804c853c02485d3452e062184e7cd0264ba8161719 + "@fullcalendar/core": ~6.1.17 + "@fullcalendar/resource": ~6.1.17 + checksum: 51d5af00ffcc9f65c091067758abd95b2d3fdab7a1cd887afd94034a067034e2332913f82ef24db93fbd788111f5ec4b61c641e7e3bbd7152d57cdda49cebe5f languageName: node linkType: hard "@fullcalendar/resource-timeline@npm:^6.1.11": - version: 6.1.11 - resolution: "@fullcalendar/resource-timeline@npm:6.1.11" + version: 6.1.17 + resolution: "@fullcalendar/resource-timeline@npm:6.1.17" dependencies: - "@fullcalendar/premium-common": ~6.1.11 - "@fullcalendar/scrollgrid": ~6.1.11 - "@fullcalendar/timeline": ~6.1.11 + "@fullcalendar/premium-common": ~6.1.17 + "@fullcalendar/scrollgrid": ~6.1.17 + "@fullcalendar/timeline": ~6.1.17 peerDependencies: - "@fullcalendar/core": ~6.1.11 - "@fullcalendar/resource": ~6.1.11 - checksum: ad9d27a642f097e6f50d1277dd1a09ea8789d7e936ac995e9287e86c8b346dd173c31018d0b29474ebae0fbd5b4a44720fc05db5b671394903767f4095695e2b + "@fullcalendar/core": ~6.1.17 + "@fullcalendar/resource": ~6.1.17 + checksum: 72ff45cfd518bf7adb9cfe2b50abdde7d502800590d2a9bf3f3abc2df1fe40631cf79de70e32e9c6f0890064cf9998d36471b249fed50decd3ff48dbbb1cfa50 languageName: node linkType: hard "@fullcalendar/resource@npm:^6.1.11": - version: 6.1.11 - resolution: "@fullcalendar/resource@npm:6.1.11" + version: 6.1.17 + resolution: "@fullcalendar/resource@npm:6.1.17" dependencies: - "@fullcalendar/premium-common": ~6.1.11 + "@fullcalendar/premium-common": ~6.1.17 peerDependencies: - "@fullcalendar/core": ~6.1.11 - checksum: 6b7266f2e3be6920d3e70fe31aaa42c8eb0f8962d76f79acfeb2e52b50f9f3fac1b98644d5f9b89b5b4109daeb961de6cbd32b58b5b215c426ca0a9534fa6b14 + "@fullcalendar/core": ~6.1.17 + checksum: 133173e935ab64e818d61843973373f6400e14dc094723a0f8399eef4814bb126682049560c521218e1c142c363c999b5232aa759470cb102aaa511c42985aab languageName: node linkType: hard -"@fullcalendar/scrollgrid@npm:~6.1.11": - version: 6.1.11 - resolution: "@fullcalendar/scrollgrid@npm:6.1.11" +"@fullcalendar/scrollgrid@npm:~6.1.17": + version: 6.1.17 + resolution: "@fullcalendar/scrollgrid@npm:6.1.17" dependencies: - "@fullcalendar/premium-common": ~6.1.11 + "@fullcalendar/premium-common": ~6.1.17 peerDependencies: - "@fullcalendar/core": ~6.1.11 - checksum: f7e54b33245170fd0a696898fdd4076644b3772132ba35996558f7d80836fb1161ccd180a4f064dd8aa5a4f728a1abee063ef909b28ac3a3be46e168f6976ede + "@fullcalendar/core": ~6.1.17 + checksum: 2069477519e92bc51bf590bb8ccb85ee5647bea1375854e2b6d997c2bf74a7e4fbba98e2cb3ab362a4052f2db727e8551ee5910438dd4ddfc8b12a95fdcfe53c languageName: node linkType: hard -"@fullcalendar/timegrid@npm:^6.1.6, @fullcalendar/timegrid@npm:~6.1.11": - version: 6.1.11 - resolution: "@fullcalendar/timegrid@npm:6.1.11" +"@fullcalendar/timegrid@npm:^6.1.6, @fullcalendar/timegrid@npm:~6.1.17": + version: 6.1.17 + resolution: "@fullcalendar/timegrid@npm:6.1.17" dependencies: - "@fullcalendar/daygrid": ~6.1.11 + "@fullcalendar/daygrid": ~6.1.17 peerDependencies: - "@fullcalendar/core": ~6.1.11 - checksum: 4a11e6dd908e7d7f660149e6d61eff847efa14d0dcf532f8793de6b035d1a573ef7423fea0df791b6dc5f3d9792df77b72c7e6a1150289d04eca3ff9959a80ec + "@fullcalendar/core": ~6.1.17 + checksum: 196325c0e37e9358cd19665460ab9d6b845a720db72fa608fb444d19e0c5fa49a8b9c903b149ef54b680bfdb7727d06b67893acad678c0835e3c91c2e69bccce languageName: node linkType: hard -"@fullcalendar/timeline@npm:^6.1.6, @fullcalendar/timeline@npm:~6.1.11": - version: 6.1.11 - resolution: "@fullcalendar/timeline@npm:6.1.11" +"@fullcalendar/timeline@npm:^6.1.6, @fullcalendar/timeline@npm:~6.1.17": + version: 6.1.17 + resolution: "@fullcalendar/timeline@npm:6.1.17" dependencies: - "@fullcalendar/premium-common": ~6.1.11 - "@fullcalendar/scrollgrid": ~6.1.11 + "@fullcalendar/premium-common": ~6.1.17 + "@fullcalendar/scrollgrid": ~6.1.17 peerDependencies: - "@fullcalendar/core": ~6.1.11 - checksum: 79341e274a69ae9a63ec67c39b6233ab937daf51177b3689cbe91baf216729805a3fffc12febccece768410b773ae7bb7c51a3eb72b4de64acafedef2b953eff + "@fullcalendar/core": ~6.1.17 + checksum: 9dbffafbeb9068b68f4e257d51c4ffa35ada841d49d8b8778afbd4aafb85b184e50284c429e9b44f2808cacf392b01c879aae245d64eddc922152202ffd14142 languageName: node linkType: hard @@ -2622,14 +2496,14 @@ __metadata: languageName: node linkType: hard -"@humanwhocodes/config-array@npm:^0.11.14": - version: 0.11.14 - resolution: "@humanwhocodes/config-array@npm:0.11.14" +"@humanwhocodes/config-array@npm:^0.13.0": + version: 0.13.0 + resolution: "@humanwhocodes/config-array@npm:0.13.0" dependencies: - "@humanwhocodes/object-schema": ^2.0.2 + "@humanwhocodes/object-schema": ^2.0.3 debug: ^4.3.1 minimatch: ^3.0.5 - checksum: 861ccce9eaea5de19546653bccf75bf09fe878bc39c3aab00aeee2d2a0e654516adad38dd1098aab5e3af0145bbcbf3f309bdf4d964f8dab9dcd5834ae4c02f2 + checksum: eae69ff9134025dd2924f0b430eb324981494be26f0fddd267a33c28711c4db643242cf9fddf7dadb9d16c96b54b2d2c073e60a56477df86e0173149313bd5d6 languageName: node linkType: hard @@ -2640,7 +2514,7 @@ __metadata: languageName: node linkType: hard -"@humanwhocodes/object-schema@npm:^2.0.2": +"@humanwhocodes/object-schema@npm:^2.0.3": version: 2.0.3 resolution: "@humanwhocodes/object-schema@npm:2.0.3" checksum: d3b78f6c5831888c6ecc899df0d03bcc25d46f3ad26a11d7ea52944dc36a35ef543fad965322174238d677a43d5c694434f6607532cff7077062513ad7022631 @@ -2661,6 +2535,15 @@ __metadata: languageName: node linkType: hard +"@isaacs/fs-minipass@npm:^4.0.0": + version: 4.0.1 + resolution: "@isaacs/fs-minipass@npm:4.0.1" + dependencies: + minipass: ^7.0.4 + checksum: 5d36d289960e886484362d9eb6a51d1ea28baed5f5d0140bbe62b99bac52eaf06cc01c2bc0d3575977962f84f6b2c4387b043ee632216643d4787b0999465bf2 + languageName: node + linkType: hard + "@istanbuljs/load-nyc-config@npm:^1.0.0": version: 1.1.0 resolution: "@istanbuljs/load-nyc-config@npm:1.1.0" @@ -2912,13 +2795,13 @@ __metadata: linkType: hard "@jridgewell/gen-mapping@npm:^0.3.2, @jridgewell/gen-mapping@npm:^0.3.5": - version: 0.3.5 - resolution: "@jridgewell/gen-mapping@npm:0.3.5" + version: 0.3.8 + resolution: "@jridgewell/gen-mapping@npm:0.3.8" dependencies: "@jridgewell/set-array": ^1.2.1 "@jridgewell/sourcemap-codec": ^1.4.10 "@jridgewell/trace-mapping": ^0.3.24 - checksum: ff7a1764ebd76a5e129c8890aa3e2f46045109dabde62b0b6c6a250152227647178ff2069ea234753a690d8f3c4ac8b5e7b267bbee272bffb7f3b0a370ab6e52 + checksum: c0687b5227461717aa537fe71a42e356bcd1c43293b3353796a148bf3b0d6f59109def46c22f05b60e29a46f19b2e4676d027959a7c53a6c92b9d5b0d87d0420 languageName: node linkType: hard @@ -2946,10 +2829,10 @@ __metadata: languageName: node linkType: hard -"@jridgewell/sourcemap-codec@npm:^1.4.10, @jridgewell/sourcemap-codec@npm:^1.4.13, @jridgewell/sourcemap-codec@npm:^1.4.14, @jridgewell/sourcemap-codec@npm:^1.4.15": - version: 1.4.15 - resolution: "@jridgewell/sourcemap-codec@npm:1.4.15" - checksum: b881c7e503db3fc7f3c1f35a1dd2655a188cc51a3612d76efc8a6eb74728bef5606e6758ee77423e564092b4a518aba569bbb21c9bac5ab7a35b0c6ae7e344c8 +"@jridgewell/sourcemap-codec@npm:^1.4.10, @jridgewell/sourcemap-codec@npm:^1.4.13, @jridgewell/sourcemap-codec@npm:^1.4.14, @jridgewell/sourcemap-codec@npm:^1.4.15, @jridgewell/sourcemap-codec@npm:^1.5.0": + version: 1.5.0 + resolution: "@jridgewell/sourcemap-codec@npm:1.5.0" + checksum: 05df4f2538b3b0f998ea4c1cd34574d0feba216fa5d4ccaef0187d12abf82eafe6021cec8b49f9bb4d90f2ba4582ccc581e72986a5fcf4176ae0cfeb04cf52ec languageName: node linkType: hard @@ -2963,7 +2846,7 @@ __metadata: languageName: node linkType: hard -"@jridgewell/trace-mapping@npm:^0.3.12, @jridgewell/trace-mapping@npm:^0.3.18, @jridgewell/trace-mapping@npm:^0.3.20, @jridgewell/trace-mapping@npm:^0.3.24, @jridgewell/trace-mapping@npm:^0.3.25": +"@jridgewell/trace-mapping@npm:^0.3.12, @jridgewell/trace-mapping@npm:^0.3.18, @jridgewell/trace-mapping@npm:^0.3.24, @jridgewell/trace-mapping@npm:^0.3.25": version: 0.3.25 resolution: "@jridgewell/trace-mapping@npm:0.3.25" dependencies: @@ -2974,36 +2857,34 @@ __metadata: linkType: hard "@jsonjoy.com/base64@npm:^1.1.1": - version: 1.1.1 - resolution: "@jsonjoy.com/base64@npm:1.1.1" + version: 1.1.2 + resolution: "@jsonjoy.com/base64@npm:1.1.2" peerDependencies: tslib: 2 - checksum: 1988f16927f110a0cd60c12dc94fd10a6e803c8918767b87c252ad5337a2671b745e23aa7b37519481735740b88c1b8ac44ef1330163d96567e379115cd9442c + checksum: 00dbf9cbc6ecb3af0e58288a305cc4ee3dfca9efa24443d98061756e8f6de4d6d2d3764bdfde07f2b03e6ce56db27c8a59b490bd134bf3d8122b4c6b394c7010 languageName: node linkType: hard -"@jsonjoy.com/json-pack@npm:^1.0.2": - version: 1.0.2 - resolution: "@jsonjoy.com/json-pack@npm:1.0.2" +"@jsonjoy.com/json-pack@npm:^1.0.3": + version: 1.2.0 + resolution: "@jsonjoy.com/json-pack@npm:1.2.0" dependencies: "@jsonjoy.com/base64": ^1.1.1 - "@jsonjoy.com/util": ^1.0.0 + "@jsonjoy.com/util": ^1.1.2 hyperdyperid: ^1.2.0 thingies: ^1.20.0 peerDependencies: tslib: 2 - checksum: 0a85ce6547e7b8bb1a35e1b76a500b464486fbebf02e3864d05d734c8aef844fc9e918b401ca8e35043c4e3d1a234fc891089b6964ffd482a277f4f0c618c553 + checksum: 9c698ad85e176b44aafb6dff0f15bbe2a2f147c1d9a3f68127e0a7bd59653ab29584fbbe2795b73926783f1299562784fc252e3b6296fb47fb5e4df5d3ea22b2 languageName: node linkType: hard -"@jsonjoy.com/util@npm:^1.0.0, @jsonjoy.com/util@npm:^1.1.0": - version: 1.1.0 - resolution: "@jsonjoy.com/util@npm:1.1.0" - dependencies: - hyperdyperid: ^1.2.0 +"@jsonjoy.com/util@npm:^1.1.2, @jsonjoy.com/util@npm:^1.3.0": + version: 1.6.0 + resolution: "@jsonjoy.com/util@npm:1.6.0" peerDependencies: tslib: 2 - checksum: b5c8ef3856c6c323ef1a3e842043c059edd0d0f4221f7ab545e47f594dc34139e5f9e80cd3f639da922a043d3f83cf2d25fa9daf58f6f1b6b0cb58555eb2846e + checksum: 7134c7d1a7500c78b8faba509bfd6eb3c96cba4c717b1d9153b0ff12bd1eaa32a44c2038cd271b17fb04f3be59813034e8cdad2eaacd6db72d5696bd269fe2c5 languageName: node linkType: hard @@ -3015,100 +2896,100 @@ __metadata: linkType: hard "@lezer/common@npm:^1.0.0, @lezer/common@npm:^1.0.2, @lezer/common@npm:^1.1.0, @lezer/common@npm:^1.2.0": - version: 1.2.1 - resolution: "@lezer/common@npm:1.2.1" - checksum: 0bd092e293a509ce334f4aaf9a4d4a25528f743cd9d7e7948c697e34ac703b805b288b62ad01563488fb206fc34ff05084f7fc5d864be775924b3d0d53ea5dd2 + version: 1.2.3 + resolution: "@lezer/common@npm:1.2.3" + checksum: 9b5f52d949adae69d077f56c0b1c2295923108c3dfb241dd9f17654ff708f3eab81ff9fa7f0d0e4a668eabdcb9d961c73e75caca87c966ca1436e30e49130fcb languageName: node linkType: hard -"@lezer/css@npm:^1.0.0, @lezer/css@npm:^1.1.0": - version: 1.1.8 - resolution: "@lezer/css@npm:1.1.8" +"@lezer/css@npm:^1.1.0, @lezer/css@npm:^1.1.7": + version: 1.2.1 + resolution: "@lezer/css@npm:1.2.1" dependencies: "@lezer/common": ^1.2.0 "@lezer/highlight": ^1.0.0 - "@lezer/lr": ^1.0.0 - checksum: 1f5968360dbac7ba27f0c2a194143769f7b01824715274dd8507dacf13cc790bb8c48ce95de355e9c58be93bb3e271bf98b9fc51213f79e4ce918e7c7ebbef04 + "@lezer/lr": ^1.3.0 + checksum: da94af5100868127eb3902f9cf1960ac37369ffa12e39df3bdf02e51f7186b2c0e4be42e5901c45822a8fc076a2fd8a750e0483ff0a347d59a52062d8231c9f6 languageName: node linkType: hard "@lezer/highlight@npm:^1.0.0, @lezer/highlight@npm:^1.1.3": - version: 1.2.0 - resolution: "@lezer/highlight@npm:1.2.0" + version: 1.2.1 + resolution: "@lezer/highlight@npm:1.2.1" dependencies: "@lezer/common": ^1.0.0 - checksum: 5b9dfe741f95db13f6124cb9556a43011cb8041ecf490be98d44a86b04d926a66e912bcd3a766f6a3d79e064410f1a2f60ab240b50b645a12c56987bf4870086 + checksum: a8822d7e37f79ff64669eb2df4a9f9d16580e88f2b276a646092e19a9bdccac304e92510e200e35869a8b1f6c27eba5972c508d347a277e9b722d582ab7a23d5 languageName: node linkType: hard "@lezer/html@npm:^1.3.0": - version: 1.3.9 - resolution: "@lezer/html@npm:1.3.9" + version: 1.3.10 + resolution: "@lezer/html@npm:1.3.10" dependencies: "@lezer/common": ^1.2.0 "@lezer/highlight": ^1.0.0 "@lezer/lr": ^1.0.0 - checksum: 40d89b0af4379768ce7d3e7162988e9ec73b42984e333e877c7451f7e2c10131e39e4b50150bc334093cbd84a3b34f9fc1a6ac62cbba51f503a495ad243e880b + checksum: cce391aab9259704ae3079b3209f74b2f248594dd8b851c28aaff26765e00ebb890a5ff1fe600f2d03aaf4ade0e36de8048d9632b12bfbccd47b3e649c3b0ecd languageName: node linkType: hard "@lezer/javascript@npm:^1.0.0": - version: 1.4.15 - resolution: "@lezer/javascript@npm:1.4.15" + version: 1.5.1 + resolution: "@lezer/javascript@npm:1.5.1" dependencies: "@lezer/common": ^1.2.0 "@lezer/highlight": ^1.1.3 "@lezer/lr": ^1.3.0 - checksum: e0322ec70231a1beb6652f0883d62371297f37783a774ad011a3c7d4acaf066f4bcd6c0b83b34cef0893766ae730ab29efee7a11d67d66e8c5f8d4dea3c46172 + checksum: 8de877c3f41a985211d0ef80c98966f1339f1a0ec1df0b199ce58d97cb4c0648cb3176d76ff426b9c5aa4a3bbb51bb6e673b5cc73763cb8dc4505f3853697fb5 languageName: node linkType: hard "@lezer/json@npm:^1.0.0": - version: 1.0.2 - resolution: "@lezer/json@npm:1.0.2" + version: 1.0.3 + resolution: "@lezer/json@npm:1.0.3" dependencies: "@lezer/common": ^1.2.0 "@lezer/highlight": ^1.0.0 "@lezer/lr": ^1.0.0 - checksum: f899d13765d95599c9199fc3404cb57969031dc40ce07de30f4e648979153966581f0bee02e2f8f70463b0a5322206a97c2fe8d5d14f218888c72a6dcedf90ef + checksum: 48e7b945fdfa2b5b6f862e27bc31f3991cba93f18df7fed0059b25f119b64dedd50bbc709d279e16e2b3eee10e7758d7d80c6d98d21bc15c284809d268837897 languageName: node linkType: hard "@lezer/lr@npm:^1.0.0, @lezer/lr@npm:^1.3.0": - version: 1.4.0 - resolution: "@lezer/lr@npm:1.4.0" + version: 1.4.2 + resolution: "@lezer/lr@npm:1.4.2" dependencies: "@lezer/common": ^1.0.0 - checksum: 4c8517017e9803415c6c5cb8230d8764107eafd7d0b847676cd1023abb863a4b268d0d01c7ce3cf1702c4749527c68f0a26b07c329cb7b68c36ed88362d7b193 + checksum: 94318ad046c7dfcc8d37e26cb85b99623c39aef60aa51ec2abb30928e7a649f38fa5520f34bd5b356f1db11b6991999589f039e87c8949b0f163be3764f029d8 languageName: node linkType: hard "@lottiefiles/dotlottie-react@npm:^0.13.0": - version: 0.13.0 - resolution: "@lottiefiles/dotlottie-react@npm:0.13.0" + version: 0.13.5 + resolution: "@lottiefiles/dotlottie-react@npm:0.13.5" dependencies: - "@lottiefiles/dotlottie-web": 0.40.1 + "@lottiefiles/dotlottie-web": 0.44.0 peerDependencies: react: ^17 || ^18 || ^19 - checksum: bafe6ded727aab991ff03f6ff5a2fd1a41b1f429b36175f34140017fc684e0a8ef7f7b713d189bd49948c4b728fe1d05c7d8c20a0bea0d8c1ae1ed87614fe843 + checksum: f1fc478ffc08f0070016edece041bbba57cdaaeab64d68bbee6abe44e17ca23abaec431757d402b6e42cc0b29b3a20bb412f91b2b9dc8d913c47a88c0092b8f0 languageName: node linkType: hard -"@lottiefiles/dotlottie-web@npm:0.40.1": - version: 0.40.1 - resolution: "@lottiefiles/dotlottie-web@npm:0.40.1" - checksum: a79e60c33845311cb055ea661abb2f4211063e149788aea724afbed05a09ae569d50b4c0e5825d13eb5fc62a33c3dc74f2f3900fdb1e99f8594feddc72d2cc27 +"@lottiefiles/dotlottie-web@npm:0.44.0": + version: 0.44.0 + resolution: "@lottiefiles/dotlottie-web@npm:0.44.0" + checksum: 28172f4d45a7cd41844df6fdb2a17610aa57a899cd0e2b52202b71c2ac4131e58ecdad80b1eaa98ce610e1b8eda820d762837aedec2a67895e1b930bff322222 languageName: node linkType: hard "@lottiefiles/react-lottie-player@npm:^3.5.3": - version: 3.5.3 - resolution: "@lottiefiles/react-lottie-player@npm:3.5.3" + version: 3.6.0 + resolution: "@lottiefiles/react-lottie-player@npm:3.6.0" dependencies: - lottie-web: ^5.10.2 + lottie-web: ^5.12.2 peerDependencies: - react: 16 - 18 - checksum: 083521730d8a75a70c82446df859d08d5e3614b937afa419249d047d9cbffb61fba24733e1a736593e734530d99aa715a38fcbbebbcca5a72ff4719145931da1 + react: 16 - 19 + checksum: e530bf802973872af14d0f1f9e70b38394e857417315ef7213fc12341db4bddbb0121e74ca9b168c759cc2ef860742bd215a5065de3ffbfb4914cdfe87dc36ba languageName: node linkType: hard @@ -3121,6 +3002,13 @@ __metadata: languageName: node linkType: hard +"@marijn/find-cluster-break@npm:^1.0.0": + version: 1.0.2 + resolution: "@marijn/find-cluster-break@npm:1.0.2" + checksum: 0d836de25e04d58325813401ef3c2d34caf040da985a5935fcbc9d84e7b47a21bdb15f57d70c2bf0960bd29ed3dbbb1afd00cdd0fc4fafbee7fd0ffe7d508ae1 + languageName: node + linkType: hard + "@nicolo-ribaudo/eslint-scope-5-internals@npm:5.1.1-v1": version: 5.1.1-v1 resolution: "@nicolo-ribaudo/eslint-scope-5-internals@npm:5.1.1-v1" @@ -3157,25 +3045,25 @@ __metadata: languageName: node linkType: hard -"@npmcli/agent@npm:^2.0.0": - version: 2.2.2 - resolution: "@npmcli/agent@npm:2.2.2" +"@npmcli/agent@npm:^3.0.0": + version: 3.0.0 + resolution: "@npmcli/agent@npm:3.0.0" dependencies: agent-base: ^7.1.0 http-proxy-agent: ^7.0.0 https-proxy-agent: ^7.0.1 lru-cache: ^10.0.1 socks-proxy-agent: ^8.0.3 - checksum: 67de7b88cc627a79743c88bab35e023e23daf13831a8aa4e15f998b92f5507b644d8ffc3788afc8e64423c612e0785a6a92b74782ce368f49a6746084b50d874 + checksum: e8fc25d536250ed3e669813b36e8c6d805628b472353c57afd8c4fde0fcfcf3dda4ffe22f7af8c9070812ec2e7a03fb41d7151547cef3508efe661a5a3add20f languageName: node linkType: hard -"@npmcli/fs@npm:^3.1.0": - version: 3.1.0 - resolution: "@npmcli/fs@npm:3.1.0" +"@npmcli/fs@npm:^4.0.0": + version: 4.0.0 + resolution: "@npmcli/fs@npm:4.0.0" dependencies: semver: ^7.3.5 - checksum: a50a6818de5fc557d0b0e6f50ec780a7a02ab8ad07e5ac8b16bf519e0ad60a144ac64f97d05c443c3367235d337182e1d012bbac0eb8dbae8dc7b40b193efd0e + checksum: 68951c589e9a4328698a35fd82fe71909a257d6f2ede0434d236fa55634f0fbcad9bb8755553ce5849bd25ee6f019f4d435921ac715c853582c4a7f5983c8d4a languageName: node linkType: hard @@ -3236,9 +3124,9 @@ __metadata: linkType: hard "@polka/url@npm:^1.0.0-next.24": - version: 1.0.0-next.25 - resolution: "@polka/url@npm:1.0.0-next.25" - checksum: 4ab1d7a37163139c0e7bfc9d1e3f6a2a0db91a78b9f0a21f571d6aec2cdaeaacced744d47886c117aa7579aa5694b303fe3e0bd1922bb9cb3ce6bf7c2dc09801 + version: 1.0.0-next.29 + resolution: "@polka/url@npm:1.0.0-next.29" + checksum: 69ca11ab15a4ffec7f0b07fcc4e1f01489b3d9683a7e1867758818386575c60c213401259ba3705b8a812228d17e2bfd18e6f021194d943fff4bca389c9d4f28 languageName: node linkType: hard @@ -3493,17 +3381,17 @@ __metadata: linkType: hard "@remixicon/react@npm:^4.1.1": - version: 4.2.0 - resolution: "@remixicon/react@npm:4.2.0" + version: 4.6.0 + resolution: "@remixicon/react@npm:4.6.0" peerDependencies: react: ">=18.2.0" - checksum: 17aa7e2a54a62fb5331e64b594424cd078f28b14707302988adb6da4ea7f61df305379b48d4354c66f5b10cacf2ffa979751a6907dd07e8cb00dcb419a4636f2 + checksum: 81127617eff78fb97aff01dc392ebbafb69fbfe835270b4db8ee68844d02d8c47a42d312d72104708f7266d8ad005405ea1245a536e35b66305d00d56f20b9eb languageName: node linkType: hard "@rjsf/antd@npm:^5.24.9": - version: 5.24.9 - resolution: "@rjsf/antd@npm:5.24.9" + version: 5.24.10 + resolution: "@rjsf/antd@npm:5.24.10" dependencies: classnames: ^2.5.1 lodash: ^4.17.21 @@ -3516,13 +3404,13 @@ __metadata: antd: ^4.24.0 || ^5.8.5 dayjs: ^1.8.0 react: ^16.14.0 || >=17 - checksum: bc158e1d668165ed373cc212f3682f1158793943cd0eb8e93886ed8e3998a86af637e89ec425b7242bd3e96e0c53b349e57387f985c72a631f11e3e24d7855cd + checksum: 332527792b291e5c123cc4d07636adb724d3756169f93eecae535c40577f42572985648623bebb6304b5efea19569252402ac431ee1c3ea6d3199964be1c6c7e languageName: node linkType: hard "@rjsf/core@npm:^5.24.9": - version: 5.24.9 - resolution: "@rjsf/core@npm:5.24.9" + version: 5.24.10 + resolution: "@rjsf/core@npm:5.24.10" dependencies: lodash: ^4.17.21 lodash-es: ^4.17.21 @@ -3532,13 +3420,13 @@ __metadata: peerDependencies: "@rjsf/utils": ^5.24.x react: ^16.14.0 || >=17 - checksum: 372f6bbe680d521f208fc10832482c09fb5ce0d68c4515f7fcdc6b20446057fd45ffad032cc395baf298f1b9b5cbd93093ba1656dbb24294a98683e195e5137f + checksum: 90316d9dd90ae58805fc4f6fa2bb14dfd9a361abebb75bd3b1b7ed55b554e9a7d5145fc09ee5906bc91d362fc8f8c24619d4d4c432bae782da5cebb0a5b9cddf languageName: node linkType: hard "@rjsf/utils@npm:^5.24.9": - version: 5.24.9 - resolution: "@rjsf/utils@npm:5.24.9" + version: 5.24.10 + resolution: "@rjsf/utils@npm:5.24.10" dependencies: json-schema-merge-allof: ^0.8.1 jsonpointer: ^5.0.1 @@ -3547,13 +3435,13 @@ __metadata: react-is: ^18.2.0 peerDependencies: react: ^16.14.0 || >=17 - checksum: d8057897c4d7357b17c50abb55bfbf4e76027d03c02201db5251726fd14393f96e371560d56cc4e08a3293f9a1722cddf10d6db8b20c48fbc9bcc2485c16ad2f + checksum: 64d9bcfea100c4b89128c20473982d316e960c01f9887fb3613bc0ecdaa9fdf8804f96ff99b0b415c2cbc7b4f7d5de941328a1a1a5d53148489d395a1f07a78e languageName: node linkType: hard "@rjsf/validator-ajv8@npm:^5.24.9": - version: 5.24.9 - resolution: "@rjsf/validator-ajv8@npm:5.24.9" + version: 5.24.10 + resolution: "@rjsf/validator-ajv8@npm:5.24.10" dependencies: ajv: ^8.12.0 ajv-formats: ^2.1.1 @@ -3561,7 +3449,7 @@ __metadata: lodash-es: ^4.17.21 peerDependencies: "@rjsf/utils": ^5.24.x - checksum: 6aa5d1ef0aad2b6f95405d8096f513ce326d4d39fe7d90d88f89fd8f95d8a4bbd3d4b39180455feb425d57f436cdedf84e98dfab565c27c26bab532dfddfc39d + checksum: 920d466c972683108a3b093f813a0b77c289068a24c3ae74b6933a5f7346c2a0d7f3d02d0304f419fbfd8376f7ee59972a5f202939c827ac778aedc35bd0ed1b languageName: node linkType: hard @@ -3661,13 +3549,12 @@ __metadata: linkType: hard "@rollup/plugin-node-resolve@npm:^15.0.0, @rollup/plugin-node-resolve@npm:^15.0.1": - version: 15.2.3 - resolution: "@rollup/plugin-node-resolve@npm:15.2.3" + version: 15.3.1 + resolution: "@rollup/plugin-node-resolve@npm:15.3.1" dependencies: "@rollup/pluginutils": ^5.0.1 "@types/resolve": 1.20.2 deepmerge: ^4.2.2 - is-builtin-module: ^3.2.1 is-module: ^1.0.0 resolve: ^1.22.1 peerDependencies: @@ -3675,13 +3562,13 @@ __metadata: peerDependenciesMeta: rollup: optional: true - checksum: 730f32c2f8fdddff07cf0fca86a5dac7c475605fb96930197a868c066e62eb6388c557545e4f7d99b7a283411754c9fbf98944ab086b6074e04fc1292e234aa8 + checksum: 2973db4da0e7ed97c35a8dd8878ed6b6781bcb03d72039f064d878f711b0290446348c5268aa1359d064787adc0d5cc35f662d35ea5a4fa9b0b3f9f17c678f41 languageName: node linkType: hard "@rollup/plugin-replace@npm:^5.0.1": - version: 5.0.5 - resolution: "@rollup/plugin-replace@npm:5.0.5" + version: 5.0.7 + resolution: "@rollup/plugin-replace@npm:5.0.7" dependencies: "@rollup/pluginutils": ^5.0.1 magic-string: ^0.30.3 @@ -3690,7 +3577,7 @@ __metadata: peerDependenciesMeta: rollup: optional: true - checksum: 5559b48fa098a842ddb3a25b23d9902d75496bed807d4cabac304bb7e75b06374ad4a44f7871ddcd1bfcf23e6015a0274d44564b42af54c722af0a514c247ec1 + checksum: 67985e3f4056b92a5f6847b9ddf5b8e9aaecefa0e20b96751dcd63c3ca1f907dadad2940f270867dab2e24bc27da6b0e82f0ce6bb20309aa3465869a9d2e3f13 languageName: node linkType: hard @@ -3711,8 +3598,8 @@ __metadata: linkType: hard "@rollup/plugin-typescript@npm:^12.1.0": - version: 12.1.0 - resolution: "@rollup/plugin-typescript@npm:12.1.0" + version: 12.1.2 + resolution: "@rollup/plugin-typescript@npm:12.1.2" dependencies: "@rollup/pluginutils": ^5.1.0 resolve: ^1.22.1 @@ -3725,7 +3612,7 @@ __metadata: optional: true tslib: optional: true - checksum: fb002f1cf93d780126ef873f907c7f490448bfe3f649c201e8dc944ab56bb2d0664940119ca40ee0051c6db361bae803513b00831a74e9e4459b4ad91f052ad5 + checksum: 242748e8257c7d04abe9925efdf1fabfd9cca78182b81590b09f7fba86a2c1950ab79fa40213ea42542b3db1482df925569de48a74e19b53a758820c29efa90a languageName: node linkType: hard @@ -3817,154 +3704,173 @@ __metadata: languageName: node linkType: hard -"@rollup/pluginutils@npm:^5.0.1, @rollup/pluginutils@npm:^5.0.2": - version: 5.1.0 - resolution: "@rollup/pluginutils@npm:5.1.0" - dependencies: - "@types/estree": ^1.0.0 - estree-walker: ^2.0.2 - picomatch: ^2.3.1 - peerDependencies: - rollup: ^1.20.0||^2.0.0||^3.0.0||^4.0.0 - peerDependenciesMeta: - rollup: - optional: true - checksum: 3cc5a6d91452a6eabbfd1ae79b4dd1f1e809d2eecda6e175deb784e75b0911f47e9ecce73f8dd315d6a8b3f362582c91d3c0f66908b6ced69345b3cbe28f8ce8 - languageName: node - linkType: hard - -"@rollup/pluginutils@npm:^5.1.0": - version: 5.1.2 - resolution: "@rollup/pluginutils@npm:5.1.2" +"@rollup/pluginutils@npm:^5.0.1, @rollup/pluginutils@npm:^5.0.2, @rollup/pluginutils@npm:^5.1.0": + version: 5.1.4 + resolution: "@rollup/pluginutils@npm:5.1.4" dependencies: "@types/estree": ^1.0.0 estree-walker: ^2.0.2 - picomatch: ^2.3.1 + picomatch: ^4.0.2 peerDependencies: rollup: ^1.20.0||^2.0.0||^3.0.0||^4.0.0 peerDependenciesMeta: rollup: optional: true - checksum: 16c8c154fef9a32c513b52bd79c92ac427edccd05a8dc3994f10c296063940c57bf809d05903b473d9d408aa5977d75b98c701f481dd1856d5ffc37187ac0060 + checksum: dc0294580effbf68965ed7939c9e469b8c8847b59842e4691fd10d0a8d0b178600bd912694c409ae33600c9059efce72e96f25917cff983afd57f092a7aeb8d2 languageName: node linkType: hard -"@rollup/rollup-android-arm-eabi@npm:4.22.5": - version: 4.22.5 - resolution: "@rollup/rollup-android-arm-eabi@npm:4.22.5" +"@rollup/rollup-android-arm-eabi@npm:4.41.1": + version: 4.41.1 + resolution: "@rollup/rollup-android-arm-eabi@npm:4.41.1" conditions: os=android & cpu=arm languageName: node linkType: hard -"@rollup/rollup-android-arm64@npm:4.22.5": - version: 4.22.5 - resolution: "@rollup/rollup-android-arm64@npm:4.22.5" +"@rollup/rollup-android-arm64@npm:4.41.1": + version: 4.41.1 + resolution: "@rollup/rollup-android-arm64@npm:4.41.1" conditions: os=android & cpu=arm64 languageName: node linkType: hard -"@rollup/rollup-darwin-arm64@npm:4.22.5": - version: 4.22.5 - resolution: "@rollup/rollup-darwin-arm64@npm:4.22.5" +"@rollup/rollup-darwin-arm64@npm:4.41.1": + version: 4.41.1 + resolution: "@rollup/rollup-darwin-arm64@npm:4.41.1" conditions: os=darwin & cpu=arm64 languageName: node linkType: hard -"@rollup/rollup-darwin-x64@npm:4.22.5": - version: 4.22.5 - resolution: "@rollup/rollup-darwin-x64@npm:4.22.5" +"@rollup/rollup-darwin-x64@npm:4.41.1": + version: 4.41.1 + resolution: "@rollup/rollup-darwin-x64@npm:4.41.1" conditions: os=darwin & cpu=x64 languageName: node linkType: hard -"@rollup/rollup-linux-arm-gnueabihf@npm:4.22.5": - version: 4.22.5 - resolution: "@rollup/rollup-linux-arm-gnueabihf@npm:4.22.5" +"@rollup/rollup-freebsd-arm64@npm:4.41.1": + version: 4.41.1 + resolution: "@rollup/rollup-freebsd-arm64@npm:4.41.1" + conditions: os=freebsd & cpu=arm64 + languageName: node + linkType: hard + +"@rollup/rollup-freebsd-x64@npm:4.41.1": + version: 4.41.1 + resolution: "@rollup/rollup-freebsd-x64@npm:4.41.1" + conditions: os=freebsd & cpu=x64 + languageName: node + linkType: hard + +"@rollup/rollup-linux-arm-gnueabihf@npm:4.41.1": + version: 4.41.1 + resolution: "@rollup/rollup-linux-arm-gnueabihf@npm:4.41.1" conditions: os=linux & cpu=arm & libc=glibc languageName: node linkType: hard -"@rollup/rollup-linux-arm-musleabihf@npm:4.22.5": - version: 4.22.5 - resolution: "@rollup/rollup-linux-arm-musleabihf@npm:4.22.5" +"@rollup/rollup-linux-arm-musleabihf@npm:4.41.1": + version: 4.41.1 + resolution: "@rollup/rollup-linux-arm-musleabihf@npm:4.41.1" conditions: os=linux & cpu=arm & libc=musl languageName: node linkType: hard -"@rollup/rollup-linux-arm64-gnu@npm:4.22.5": - version: 4.22.5 - resolution: "@rollup/rollup-linux-arm64-gnu@npm:4.22.5" +"@rollup/rollup-linux-arm64-gnu@npm:4.41.1": + version: 4.41.1 + resolution: "@rollup/rollup-linux-arm64-gnu@npm:4.41.1" conditions: os=linux & cpu=arm64 & libc=glibc languageName: node linkType: hard -"@rollup/rollup-linux-arm64-musl@npm:4.22.5": - version: 4.22.5 - resolution: "@rollup/rollup-linux-arm64-musl@npm:4.22.5" +"@rollup/rollup-linux-arm64-musl@npm:4.41.1": + version: 4.41.1 + resolution: "@rollup/rollup-linux-arm64-musl@npm:4.41.1" conditions: os=linux & cpu=arm64 & libc=musl languageName: node linkType: hard -"@rollup/rollup-linux-powerpc64le-gnu@npm:4.22.5": - version: 4.22.5 - resolution: "@rollup/rollup-linux-powerpc64le-gnu@npm:4.22.5" +"@rollup/rollup-linux-loongarch64-gnu@npm:4.41.1": + version: 4.41.1 + resolution: "@rollup/rollup-linux-loongarch64-gnu@npm:4.41.1" + conditions: os=linux & cpu=loong64 & libc=glibc + languageName: node + linkType: hard + +"@rollup/rollup-linux-powerpc64le-gnu@npm:4.41.1": + version: 4.41.1 + resolution: "@rollup/rollup-linux-powerpc64le-gnu@npm:4.41.1" conditions: os=linux & cpu=ppc64 & libc=glibc languageName: node linkType: hard -"@rollup/rollup-linux-riscv64-gnu@npm:4.22.5": - version: 4.22.5 - resolution: "@rollup/rollup-linux-riscv64-gnu@npm:4.22.5" +"@rollup/rollup-linux-riscv64-gnu@npm:4.41.1": + version: 4.41.1 + resolution: "@rollup/rollup-linux-riscv64-gnu@npm:4.41.1" conditions: os=linux & cpu=riscv64 & libc=glibc languageName: node linkType: hard -"@rollup/rollup-linux-s390x-gnu@npm:4.22.5": - version: 4.22.5 - resolution: "@rollup/rollup-linux-s390x-gnu@npm:4.22.5" +"@rollup/rollup-linux-riscv64-musl@npm:4.41.1": + version: 4.41.1 + resolution: "@rollup/rollup-linux-riscv64-musl@npm:4.41.1" + conditions: os=linux & cpu=riscv64 & libc=musl + languageName: node + linkType: hard + +"@rollup/rollup-linux-s390x-gnu@npm:4.41.1": + version: 4.41.1 + resolution: "@rollup/rollup-linux-s390x-gnu@npm:4.41.1" conditions: os=linux & cpu=s390x & libc=glibc languageName: node linkType: hard -"@rollup/rollup-linux-x64-gnu@npm:4.22.5": - version: 4.22.5 - resolution: "@rollup/rollup-linux-x64-gnu@npm:4.22.5" +"@rollup/rollup-linux-x64-gnu@npm:4.41.1": + version: 4.41.1 + resolution: "@rollup/rollup-linux-x64-gnu@npm:4.41.1" conditions: os=linux & cpu=x64 & libc=glibc languageName: node linkType: hard -"@rollup/rollup-linux-x64-musl@npm:4.22.5": - version: 4.22.5 - resolution: "@rollup/rollup-linux-x64-musl@npm:4.22.5" +"@rollup/rollup-linux-x64-musl@npm:4.41.1": + version: 4.41.1 + resolution: "@rollup/rollup-linux-x64-musl@npm:4.41.1" conditions: os=linux & cpu=x64 & libc=musl languageName: node linkType: hard -"@rollup/rollup-win32-arm64-msvc@npm:4.22.5": - version: 4.22.5 - resolution: "@rollup/rollup-win32-arm64-msvc@npm:4.22.5" +"@rollup/rollup-win32-arm64-msvc@npm:4.41.1": + version: 4.41.1 + resolution: "@rollup/rollup-win32-arm64-msvc@npm:4.41.1" conditions: os=win32 & cpu=arm64 languageName: node linkType: hard -"@rollup/rollup-win32-ia32-msvc@npm:4.22.5": - version: 4.22.5 - resolution: "@rollup/rollup-win32-ia32-msvc@npm:4.22.5" +"@rollup/rollup-win32-ia32-msvc@npm:4.41.1": + version: 4.41.1 + resolution: "@rollup/rollup-win32-ia32-msvc@npm:4.41.1" conditions: os=win32 & cpu=ia32 languageName: node linkType: hard -"@rollup/rollup-win32-x64-msvc@npm:4.22.5": - version: 4.22.5 - resolution: "@rollup/rollup-win32-x64-msvc@npm:4.22.5" +"@rollup/rollup-win32-x64-msvc@npm:4.41.1": + version: 4.41.1 + resolution: "@rollup/rollup-win32-x64-msvc@npm:4.41.1" conditions: os=win32 & cpu=x64 languageName: node linkType: hard +"@rtsao/scc@npm:^1.1.0": + version: 1.1.0 + resolution: "@rtsao/scc@npm:1.1.0" + checksum: 17d04adf404e04c1e61391ed97bca5117d4c2767a76ae3e879390d6dec7b317fcae68afbf9e98badee075d0b64fa60f287729c4942021b4d19cd01db77385c01 + languageName: node + linkType: hard + "@rushstack/eslint-patch@npm:^1.1.0": - version: 1.10.2 - resolution: "@rushstack/eslint-patch@npm:1.10.2" - checksum: 2bac46e0f662c6b9c1f1d2268e4165a779331b9229eaeeb360852feaecdc5cb4adf8e1a36ac510b3545a83f83de702811b984afe26ec7d4a79e1c0ea708e2bfe + version: 1.11.0 + resolution: "@rushstack/eslint-patch@npm:1.11.0" + checksum: d1d7e4d36c693b93c06b25022df094ef629b53805db2c7a7ecbb099c34ea525eb96c19f6e5ea5ad1f8b69aba6792cfd8cdd410655b6aa9da15c69c4593019bfc languageName: node linkType: hard @@ -4000,21 +3906,21 @@ __metadata: languageName: node linkType: hard -"@supabase/auth-js@npm:2.65.0": - version: 2.65.0 - resolution: "@supabase/auth-js@npm:2.65.0" +"@supabase/auth-js@npm:2.69.1": + version: 2.69.1 + resolution: "@supabase/auth-js@npm:2.69.1" dependencies: "@supabase/node-fetch": ^2.6.14 - checksum: c6396f6c384f4787352a09e40c192cbf990dd566773b6e55eb7921726052144bfe592e2550bd1bd743545af3a03b2602ef41a9e69f9f966f84923049d0128404 + checksum: fe5e6bc8d63f2b3754077aff87265aaa8de7620c1a6951affda1e75efee2a549fa1003394b4d950aa976e016e5a032517475e51cc0a0edfbb965fd4c5280e592 languageName: node linkType: hard -"@supabase/functions-js@npm:2.4.1": - version: 2.4.1 - resolution: "@supabase/functions-js@npm:2.4.1" +"@supabase/functions-js@npm:2.4.4": + version: 2.4.4 + resolution: "@supabase/functions-js@npm:2.4.4" dependencies: "@supabase/node-fetch": ^2.6.14 - checksum: 786a1499b26b928f39b9af68b44bfc0a016c525d85c6b8bd2f6cd712e53db3ab5099ed4e7b1038ae8527dcee16a3aa8f80618a7227d322052810d378746d7154 + checksum: cbddd6c0f03de1d3ff1c9b760c028f9101b0221a2dc032000debd1734c725fe0217d56c281437cf71ff30e23a094b47275511b598ef68a39a66b967664faf7cb languageName: node linkType: hard @@ -4027,47 +3933,47 @@ __metadata: languageName: node linkType: hard -"@supabase/postgrest-js@npm:1.16.1": - version: 1.16.1 - resolution: "@supabase/postgrest-js@npm:1.16.1" +"@supabase/postgrest-js@npm:1.19.4": + version: 1.19.4 + resolution: "@supabase/postgrest-js@npm:1.19.4" dependencies: "@supabase/node-fetch": ^2.6.14 - checksum: 695d41c935c8745a16ee3b597fe2d1b94ba69715f3b15da8f1e332ef4a556e41ba0591889fa37cadb53900e2c58f4298ece4dd13e35f6b25fbeb54c3e0aabc90 + checksum: 3265d5d563eb4b54ab78f2d7a87c68948b323f520913e8309f367cbb8a714b8d5a519e05d73e96510f8d216ea55b5c21e1822f200f6db0a52cc028ac396f62cf languageName: node linkType: hard -"@supabase/realtime-js@npm:2.10.2": - version: 2.10.2 - resolution: "@supabase/realtime-js@npm:2.10.2" +"@supabase/realtime-js@npm:2.11.2": + version: 2.11.2 + resolution: "@supabase/realtime-js@npm:2.11.2" dependencies: "@supabase/node-fetch": ^2.6.14 "@types/phoenix": ^1.5.4 "@types/ws": ^8.5.10 - ws: ^8.14.2 - checksum: a98342e6a8437c2c14a86728abd12f21d853f167fb22ede46ef680cc0ef990bf7c8a8403c448ab335d884cfe8c3b2f6c4e3363dcb777511ee3abb6270d65a954 + ws: ^8.18.0 + checksum: 0fdb63ca0f6e6993523fb1d95c2ed843cf74e49437a7e625702b551c70ce1861964cbffc2937811a54f51410b02a7e257307e4af561d36fcb95803a145b9fa6d languageName: node linkType: hard -"@supabase/storage-js@npm:2.7.0": - version: 2.7.0 - resolution: "@supabase/storage-js@npm:2.7.0" +"@supabase/storage-js@npm:2.7.1": + version: 2.7.1 + resolution: "@supabase/storage-js@npm:2.7.1" dependencies: "@supabase/node-fetch": ^2.6.14 - checksum: 1796214103d0afae0d9e960bd22cbd621f746a845c56e409a5a7fa88cbdfcec6a53ac0ffb6b5197ec88540c8c17a5cc888ec3edf5928b48b83bb7f315a17465c + checksum: ed8f3a3178856c331b36588f4fff5cbb7f2f89977fff9716ab20b1977d13816bda5a887a316638f2a05ac35fdef46e18eab8a543d6113de76d3a06b15bf9ae8e languageName: node linkType: hard "@supabase/supabase-js@npm:^2.45.4": - version: 2.45.4 - resolution: "@supabase/supabase-js@npm:2.45.4" + version: 2.49.8 + resolution: "@supabase/supabase-js@npm:2.49.8" dependencies: - "@supabase/auth-js": 2.65.0 - "@supabase/functions-js": 2.4.1 + "@supabase/auth-js": 2.69.1 + "@supabase/functions-js": 2.4.4 "@supabase/node-fetch": 2.6.15 - "@supabase/postgrest-js": 1.16.1 - "@supabase/realtime-js": 2.10.2 - "@supabase/storage-js": 2.7.0 - checksum: 5611e13a1ffd0e0773148eccdadcf746240b4d47dfe771220793c3f6ec2d8eedef638d27aa23a2b020bce3fb68efda511d4e9746792e7524349f7e17bd53eb99 + "@supabase/postgrest-js": 1.19.4 + "@supabase/realtime-js": 2.11.2 + "@supabase/storage-js": 2.7.1 + checksum: add77eb4be43675741bc5140288e5eeabc1736476ac72bdfc5d41d2afae1690801df6415a311f0a23788a8d675c11ac3b12fcce59739360d5820d75ff1b7edc3 languageName: node linkType: hard @@ -4414,11 +4320,11 @@ __metadata: linkType: hard "@testing-library/user-event@npm:^14.5.1": - version: 14.5.2 - resolution: "@testing-library/user-event@npm:14.5.2" + version: 14.6.1 + resolution: "@testing-library/user-event@npm:14.6.1" peerDependencies: "@testing-library/dom": ">=7.21.4" - checksum: d76937dffcf0082fbf3bb89eb2b81a31bf5448048dd61c33928c5f10e33a58e035321d39145cefd469bb5a499c68a5b4086b22f1a44e3e7c7e817dc5f6782867 + checksum: 4cb8a81fea1fea83a42619e9545137b51636bb7a3182c596bb468e5664f1e4699a275c2d0fb8b6dcc3fe2684f9d87b0637ab7cb4f566051539146872c9141fcb languageName: node linkType: hard @@ -4485,11 +4391,11 @@ __metadata: linkType: hard "@types/babel__generator@npm:*": - version: 7.6.8 - resolution: "@types/babel__generator@npm:7.6.8" + version: 7.27.0 + resolution: "@types/babel__generator@npm:7.27.0" dependencies: "@babel/types": ^7.0.0 - checksum: 5b332ea336a2efffbdeedb92b6781949b73498606ddd4205462f7d96dafd45ff3618770b41de04c4881e333dd84388bfb8afbdf6f2764cbd98be550d85c6bb48 + checksum: e6739cacfa276c1ad38e1d8a6b4b1f816c2c11564e27f558b68151728489aaf0f4366992107ee4ed7615dfa303f6976dedcdce93df2b247116d1bcd1607ee260 languageName: node linkType: hard @@ -4504,11 +4410,11 @@ __metadata: linkType: hard "@types/babel__traverse@npm:*, @types/babel__traverse@npm:^7.0.6": - version: 7.20.5 - resolution: "@types/babel__traverse@npm:7.20.5" + version: 7.20.7 + resolution: "@types/babel__traverse@npm:7.20.7" dependencies: "@babel/types": ^7.20.7 - checksum: 608e0ab4fc31cd47011d98942e6241b34d461608c0c0e153377c5fd822c436c475f1ded76a56bfa76a1adf8d9266b727bbf9bfac90c4cb152c97f30dadc5b7e8 + checksum: 2a2e5ad29c34a8b776162b0fe81c9ccb6459b2b46bf230f756ba0276a0258fcae1cbcfdccbb93a1e8b1df44f4939784ee8a1a269f95afe0c78b24b9cb6d50dd1 languageName: node linkType: hard @@ -4558,25 +4464,25 @@ __metadata: linkType: hard "@types/d3-scale-chromatic@npm:^3.0.0": - version: 3.0.3 - resolution: "@types/d3-scale-chromatic@npm:3.0.3" - checksum: a465d126a00a71d3824957283580b4b404fe6f6bb52eb2b7303047fffed2bec6e31aeb34bfb30313e72ee1d75243c50ec5a45824eaf547f9c0849a1379527662 + version: 3.1.0 + resolution: "@types/d3-scale-chromatic@npm:3.1.0" + checksum: cb7b86deac077c7c217a52a3f658cdfb812cff8708404fbfe54918c03ead545e1df87df377e9c4eab21c9d6c1aeee6471320e02a5b6b27e2e3f786a12a82ab02 languageName: node linkType: hard "@types/d3-scale@npm:^4.0.3": - version: 4.0.8 - resolution: "@types/d3-scale@npm:4.0.8" + version: 4.0.9 + resolution: "@types/d3-scale@npm:4.0.9" dependencies: "@types/d3-time": "*" - checksum: 3b1906da895564f73bb3d0415033d9a8aefe7c4f516f970176d5b2ff7a417bd27ae98486e9a9aa0472001dc9885a9204279a1973a985553bdb3ee9bbc1b94018 + checksum: c44265a38e538983686b1b8d159abfb4e81c09b33316f3a68f0f372d38400fa950ad531644d25230cc7b48ea5adb50270fc54823f088979ade62dcd0225f7aa3 languageName: node linkType: hard "@types/d3-time@npm:*": - version: 3.0.3 - resolution: "@types/d3-time@npm:3.0.3" - checksum: a071826c80efdb1999e6406fef2db516d45f3906da3a9a4da8517fa863bae53c4c1056ca5347a20921660607d21ec874fd2febe0e961adb7be6954255587d08f + version: 3.0.4 + resolution: "@types/d3-time@npm:3.0.4" + checksum: 0c296884571ce70c4bbd4ea9cd1c93c0c8aee602c6c806b056187dd4ee49daf70c2f41da94b25ba0d796edf8ca83cbb87fe6d1cdda7ca669ab800170ece1c12b languageName: node linkType: hard @@ -4589,7 +4495,7 @@ __metadata: languageName: node linkType: hard -"@types/eslint-scope@npm:^3.7.3": +"@types/eslint-scope@npm:^3.7.7": version: 3.7.7 resolution: "@types/eslint-scope@npm:3.7.7" dependencies: @@ -4600,12 +4506,12 @@ __metadata: linkType: hard "@types/eslint@npm:*": - version: 8.56.10 - resolution: "@types/eslint@npm:8.56.10" + version: 9.6.1 + resolution: "@types/eslint@npm:9.6.1" dependencies: "@types/estree": "*" "@types/json-schema": "*" - checksum: fb7137dd263ce1130b42d14452bdd0266ef81f52cb55ba1a5e9750e65da1f0596dc598c88bffc7e415458b6cb611a876dcc132bcf40ea48701c6d05b40c57be5 + checksum: c286e79707ab604b577cf8ce51d9bbb9780e3d6a68b38a83febe13fa05b8012c92de17c28532fac2b03d3c460123f5055d603a579685325246ca1c86828223e0 languageName: node linkType: hard @@ -4618,10 +4524,10 @@ __metadata: languageName: node linkType: hard -"@types/estree@npm:*, @types/estree@npm:^1.0.0, @types/estree@npm:^1.0.5": - version: 1.0.5 - resolution: "@types/estree@npm:1.0.5" - checksum: dd8b5bed28e6213b7acd0fb665a84e693554d850b0df423ac8076cc3ad5823a6bc26b0251d080bdc545af83179ede51dd3f6fa78cad2c46ed1f29624ddf3e41a +"@types/estree@npm:*, @types/estree@npm:1.0.7, @types/estree@npm:^1.0.0, @types/estree@npm:^1.0.6": + version: 1.0.7 + resolution: "@types/estree@npm:1.0.7" + checksum: d9312b7075bdd08f3c9e1bb477102f5458aaa42a8eec31a169481ce314ca99ac716645cff4fca81ea65a2294b0276a0de63159d1baca0f8e7b5050a92de950ad languageName: node linkType: hard @@ -4632,34 +4538,50 @@ __metadata: languageName: node linkType: hard -"@types/estree@npm:1.0.6": - version: 1.0.6 - resolution: "@types/estree@npm:1.0.6" - checksum: 8825d6e729e16445d9a1dd2fb1db2edc5ed400799064cd4d028150701031af012ba30d6d03fe9df40f4d7a437d0de6d2b256020152b7b09bde9f2e420afdffd9 +"@types/express-serve-static-core@npm:*, @types/express-serve-static-core@npm:^5.0.0": + version: 5.0.6 + resolution: "@types/express-serve-static-core@npm:5.0.6" + dependencies: + "@types/node": "*" + "@types/qs": "*" + "@types/range-parser": "*" + "@types/send": "*" + checksum: bc3ea44923da7d1ffaa29eff7cc41a2b05f7340e8879fe9ee40717859937d73bcd635fcc0f8232f66af942624cc48bff42971e9e2c4075db6afe478534245855 languageName: node linkType: hard -"@types/express-serve-static-core@npm:*, @types/express-serve-static-core@npm:^4.17.33": - version: 4.19.0 - resolution: "@types/express-serve-static-core@npm:4.19.0" +"@types/express-serve-static-core@npm:^4.17.21, @types/express-serve-static-core@npm:^4.17.33": + version: 4.19.6 + resolution: "@types/express-serve-static-core@npm:4.19.6" dependencies: "@types/node": "*" "@types/qs": "*" "@types/range-parser": "*" "@types/send": "*" - checksum: 39c09fcb3f61de96ed56d97273874cafe50e6675ac254af4d77014e569e4fdc29d1d0d1dd12e11f008cb9a52785b07c2801c6ba91397965392b20c75ee01fb4e + checksum: b0576eddc2d25ccdf10e68ba09598b87a4d7b2ad04a81dc847cb39fe56beb0b6a5cc017b1e00aa0060cb3b38e700384ce96d291a116a0f1e54895564a104aae9 languageName: node linkType: hard -"@types/express@npm:*, @types/express@npm:^4.17.21": - version: 4.17.21 - resolution: "@types/express@npm:4.17.21" +"@types/express@npm:*": + version: 5.0.2 + resolution: "@types/express@npm:5.0.2" + dependencies: + "@types/body-parser": "*" + "@types/express-serve-static-core": ^5.0.0 + "@types/serve-static": "*" + checksum: c6f73c75c2b62e293e5fadcfd7de61716e3d0c0eaecda082b1921c9c8e56ddc37c530c5d4d68404794b38c7e8f5b893719ffc04c6fba2efa2fb13223bfb0346b + languageName: node + linkType: hard + +"@types/express@npm:^4.17.21": + version: 4.17.22 + resolution: "@types/express@npm:4.17.22" dependencies: "@types/body-parser": "*" "@types/express-serve-static-core": ^4.17.33 "@types/qs": "*" "@types/serve-static": "*" - checksum: fb238298630370a7392c7abdc80f495ae6c716723e114705d7e3fb67e3850b3859bbfd29391463a3fb8c0b32051847935933d99e719c0478710f8098ee7091c5 + checksum: 977b1da93765983d823c32898c74c159f30b98341f4fd9400724f18196913fe0a07fa12eaa4efdad3cc8cf31e4036e06a16a88d43e9e1f78bbbb84365026aab0 languageName: node linkType: hard @@ -4670,6 +4592,13 @@ __metadata: languageName: node linkType: hard +"@types/geojson@npm:*": + version: 7946.0.16 + resolution: "@types/geojson@npm:7946.0.16" + checksum: d66e5e023f43b3e7121448117af1930af7d06410a32a585a8bc9c6bb5d97e0d656cd93d99e31fa432976c32e98d4b780f82bf1fd1acd20ccf952eb6b8e39edf2 + languageName: node + linkType: hard + "@types/glob@npm:~7.2.0": version: 7.2.0 resolution: "@types/glob@npm:7.2.0" @@ -4715,12 +4644,12 @@ __metadata: linkType: hard "@types/hoist-non-react-statics@npm:*, @types/hoist-non-react-statics@npm:^3.3.0": - version: 3.3.5 - resolution: "@types/hoist-non-react-statics@npm:3.3.5" + version: 3.3.6 + resolution: "@types/hoist-non-react-statics@npm:3.3.6" dependencies: "@types/react": "*" hoist-non-react-statics: ^3.3.0 - checksum: b645b062a20cce6ab1245ada8274051d8e2e0b2ee5c6bd58215281d0ec6dae2f26631af4e2e7c8abe238cdcee73fcaededc429eef569e70908f82d0cc0ea31d7 + checksum: f03e43bd081876c49584ffa0eb690d69991f258203efca44dcc30efdda49a50653ff06402917d1edc9cb7e2adebbe9e2d1d0e739bc99c1b5372103b1cc534e47 languageName: node linkType: hard @@ -4732,11 +4661,11 @@ __metadata: linkType: hard "@types/http-proxy@npm:^1.17.8": - version: 1.17.14 - resolution: "@types/http-proxy@npm:1.17.14" + version: 1.17.16 + resolution: "@types/http-proxy@npm:1.17.16" dependencies: "@types/node": "*" - checksum: 491320bce3565bbb6c7d39d25b54bce626237cfb6b09e60ee7f77b56ae7c6cbad76f08d47fe01eaa706781124ee3dfad9bb737049254491efd98ed1f014c4e83 + checksum: f5ab4afe7e3feba9d87bdddbf44e03d9a836bd2cdab679a794badbff7c4bfb6bebf46bfe22d9964eb1820e1349f2ff7807cccb20fd27cb17f03db849289e5892 languageName: node linkType: hard @@ -4773,12 +4702,12 @@ __metadata: linkType: hard "@types/jest@npm:*, @types/jest@npm:^29.2.2": - version: 29.5.12 - resolution: "@types/jest@npm:29.5.12" + version: 29.5.14 + resolution: "@types/jest@npm:29.5.14" dependencies: expect: ^29.0.0 pretty-format: ^29.0.0 - checksum: 19b1efdeed9d9a60a81edc8226cdeae5af7479e493eaed273e01243891c9651f7b8b4c08fc633a7d0d1d379b091c4179bbaa0807af62542325fd72f2dd17ce1c + checksum: 18dba4623f26661641d757c63da2db45e9524c9be96a29ef713c703a9a53792df9ecee9f7365a0858ddbd6440d98fe6b65ca67895ca5884b73cbc7ffc11f3838 languageName: node linkType: hard @@ -4800,7 +4729,7 @@ __metadata: languageName: node linkType: hard -"@types/json-schema@npm:*, @types/json-schema@npm:^7.0.8, @types/json-schema@npm:^7.0.9": +"@types/json-schema@npm:*, @types/json-schema@npm:^7.0.15, @types/json-schema@npm:^7.0.8, @types/json-schema@npm:^7.0.9": version: 7.0.15 resolution: "@types/json-schema@npm:7.0.15" checksum: 97ed0cb44d4070aecea772b7b2e2ed971e10c81ec87dd4ecc160322ffa55ff330dace1793489540e3e318d90942064bb697cc0f8989391797792d919737b3b98 @@ -4814,19 +4743,10 @@ __metadata: languageName: node linkType: hard -"@types/lodash-es@npm:^4.17.6": - version: 4.17.12 - resolution: "@types/lodash-es@npm:4.17.12" - dependencies: - "@types/lodash": "*" - checksum: 990a99e2243bebe9505cb5ad19fbc172beb4a8e00f9075c99fc06c46c2801ffdb40bc2867271cf580d5f48994fc9fb076ec92cd60a20e621603bf22114e5b077 - languageName: node - linkType: hard - -"@types/lodash@npm:*, @types/lodash@npm:^4.14.194": - version: 4.17.0 - resolution: "@types/lodash@npm:4.17.0" - checksum: 3f98c0b67a93994cbc3403d4fa9dbaf52b0b6bb7f07a764d73875c2dcd5ef91222621bd5bcf8eee7b417a74d175c2f7191b9f595f8603956fd06f0674c0cba93 +"@types/lodash@npm:^4.14.194": + version: 4.17.17 + resolution: "@types/lodash@npm:4.17.17" + checksum: cfa34a752f3c540a196e9f92dbaff93ae15fe4058da8cce1918dd9219076dc19eec33b043aae45865e2b3ef8234a845bb57366144ec8e52551e2bc3f119e04a1 languageName: node linkType: hard @@ -4870,9 +4790,9 @@ __metadata: linkType: hard "@types/ms@npm:*": - version: 0.7.34 - resolution: "@types/ms@npm:0.7.34" - checksum: f38d36e7b6edecd9badc9cf50474159e9da5fa6965a75186cceaf883278611b9df6669dc3a3cc122b7938d317b68a9e3d573d316fcb35d1be47ec9e468c6bd8a + version: 2.1.0 + resolution: "@types/ms@npm:2.1.0" + checksum: 532d2ebb91937ccc4a89389715e5b47d4c66e708d15942fe6cc25add6dc37b2be058230a327dd50f43f89b8b6d5d52b74685a9e8f70516edfc9bdd6be910eff4 languageName: node linkType: hard @@ -4886,27 +4806,27 @@ __metadata: linkType: hard "@types/node@npm:*": - version: 20.12.7 - resolution: "@types/node@npm:20.12.7" + version: 22.15.21 + resolution: "@types/node@npm:22.15.21" dependencies: - undici-types: ~5.26.4 - checksum: 7cc979f7e2ca9a339ec71318c3901b9978555257929ef3666987f3e447123bc6dc92afcc89f6347e09e07d602fde7d51bcddea626c23aa2bb74aeaacfd1e1686 + undici-types: ~6.21.0 + checksum: 989f1ce3a99916a7298ae885210385fbcb339b07f8ef420b015d69dd68863aca68aeae07833736b300720d9394b8e1875600ce74166c24957d9907d29de0b788 languageName: node linkType: hard "@types/node@npm:^16.7.13": - version: 16.18.96 - resolution: "@types/node@npm:16.18.96" - checksum: c5b4c20868e1ecb2e3b975b37aeeb5790b3a4f1472b496fae779ac4f14ba4fb4c0e9ed8e9b6eb389e5a074371056130c9d6506705b144b4f6985ffa844556242 + version: 16.18.126 + resolution: "@types/node@npm:16.18.126" + checksum: 86112e7499f8a4d1bb60696cab0bf464adf3c141fca4bc5451e8f3aba5736529b76d4b4396edb21e5d7c19592852f7d6cb81ee70074fd13bde2db2d0db720467 languageName: node linkType: hard "@types/papaparse@npm:^5.3.5": - version: 5.3.14 - resolution: "@types/papaparse@npm:5.3.14" + version: 5.3.16 + resolution: "@types/papaparse@npm:5.3.16" dependencies: "@types/node": "*" - checksum: fbf942ed92179eeb824d4e544cc701468157a4ce3f6f668f8b17692d9886fea92ccff5e56965615ff64f049efa01ff95ddb7d30c67e0186bc802a6cc8ef26e63 + checksum: 2e0ce0b8da264215eaba013645d4539292bb71e9cccc74004219d3e1b575bbbda9529264a7c1f1e6e19cba1fdbf4634021ed47f4126b11651f60c8573422d548 languageName: node linkType: hard @@ -4925,16 +4845,16 @@ __metadata: linkType: hard "@types/phoenix@npm:^1.5.4": - version: 1.6.5 - resolution: "@types/phoenix@npm:1.6.5" - checksum: b87416393159f0ba2812875fc2721914a3284cde8b1f263dfcd46f4149dae7f4efc2bfa062d558c8bbfb7ae2a9d802487b0dd4744ff08799386cbc49c19368f0 + version: 1.6.6 + resolution: "@types/phoenix@npm:1.6.6" + checksum: 9dc897cb9a4cd62f7a0de48855e6cafded5c676e7d78c4d3a9ade4f21ec82b95eb7195caada26a9a3a5d9aba14f0fd875bc3898e086234b20da63991a033f6e8 languageName: node linkType: hard "@types/prop-types@npm:*": - version: 15.7.12 - resolution: "@types/prop-types@npm:15.7.12" - checksum: ac16cc3d0a84431ffa5cfdf89579ad1e2269549f32ce0c769321fdd078f84db4fbe1b461ed5a1a496caf09e637c0e367d600c541435716a55b1d9713f5035dfe + version: 15.7.14 + resolution: "@types/prop-types@npm:15.7.14" + checksum: d0c5407b9ccc3dd5fae0ccf9b1007e7622ba5e6f1c18399b4f24dff33619d469da4b9fa918a374f19dc0d9fe6a013362aab0b844b606cfc10676efba3f5f736d languageName: node linkType: hard @@ -4948,9 +4868,9 @@ __metadata: linkType: hard "@types/qs@npm:*": - version: 6.9.15 - resolution: "@types/qs@npm:6.9.15" - checksum: 97d8208c2b82013b618e7a9fc14df6bd40a73e1385ac479b6896bafc7949a46201c15f42afd06e86a05e914f146f495f606b6fb65610cc60cf2e0ff743ec38a2 + version: 6.14.0 + resolution: "@types/qs@npm:6.14.0" + checksum: 1909205514d22b3cbc7c2314e2bd8056d5f05dfb21cf4377f0730ee5e338ea19957c41735d5e4806c746176563f50005bbab602d8358432e25d900bdf4970826 languageName: node linkType: hard @@ -4961,7 +4881,7 @@ __metadata: languageName: node linkType: hard -"@types/react-dom@npm:18": +"@types/react-dom@npm:18, @types/react-dom@npm:^18.0.0, @types/react-dom@npm:^18.2.18": version: 18.3.7 resolution: "@types/react-dom@npm:18.3.7" peerDependencies: @@ -4970,15 +4890,6 @@ __metadata: languageName: node linkType: hard -"@types/react-dom@npm:^18.0.0, @types/react-dom@npm:^18.2.18": - version: 18.3.0 - resolution: "@types/react-dom@npm:18.3.0" - dependencies: - "@types/react": "*" - checksum: a0cd9b1b815a6abd2a367a9eabdd8df8dd8f13f95897b2f9e1359ea3ac6619f957c1432ece004af7d95e2a7caddbba19faa045f831f32d6263483fc5404a7596 - languageName: node - linkType: hard - "@types/react-grid-layout@npm:^1.3.0": version: 1.3.5 resolution: "@types/react-grid-layout@npm:1.3.5" @@ -4998,23 +4909,23 @@ __metadata: linkType: hard "@types/react-redux@npm:^7.1.20": - version: 7.1.33 - resolution: "@types/react-redux@npm:7.1.33" + version: 7.1.34 + resolution: "@types/react-redux@npm:7.1.34" dependencies: "@types/hoist-non-react-statics": ^3.3.0 "@types/react": "*" hoist-non-react-statics: ^3.3.0 redux: ^4.0.0 - checksum: 063e98c0d8cdc7cc2da1663716260ffb8d504b2f8be2d92cabb630cae31eb05aa0e389175265caa9a160bb7c4b66646d4a4171d4aa2dc292722088dcf593cdc3 + checksum: ba0cc5f54b91bff162cc97cf5d82d0077944e2d744c276c3c8eb896a293aba00923b513f5cd6ad717a46bf0c128a099ad697c98672202acb25143602042c8e6c languageName: node linkType: hard "@types/react-resizable@npm:^3.0.5": - version: 3.0.7 - resolution: "@types/react-resizable@npm:3.0.7" + version: 3.0.8 + resolution: "@types/react-resizable@npm:3.0.8" dependencies: "@types/react": "*" - checksum: e66dfabcb614f1da1f561d0ecaf1dc384fc0e361d97fa7b219f04f8b85ad9dd2576437117af52ae6bf33644061db2d9452e0a4aadfe457588d93a36d2db8de0b + checksum: aabdef8056bbab3065559bce7ce93232e645fb4f915fd55f0903a2f4df5d2395762dfd75bb0242d5a73d39461e8c062d81eaab87b91213dddfd973ff908f79e4 languageName: node linkType: hard @@ -5040,48 +4951,48 @@ __metadata: linkType: hard "@types/react-signature-canvas@npm:^1.0.2": - version: 1.0.5 - resolution: "@types/react-signature-canvas@npm:1.0.5" + version: 1.0.7 + resolution: "@types/react-signature-canvas@npm:1.0.7" dependencies: "@types/react": "*" - "@types/signature_pad": "*" - checksum: 76177126ca247ccf7c505a9f45019ca2c71b0e8f2af19e10eeff798dde847e713cacb07bffb3c06e26e20b0e337ca6de6453aafff6202636ae9f755e0a44c5fa + "@types/signature_pad": <3 + checksum: ddf8f14c1b3caacdbf0f5bb788a6f8f91cf3d32ddae8cfa6989f057f2d3fa434f093194fa9383ad6106b731b84d8ad58faf1e6d8f5f3339f5422329c1bbdfb7e languageName: node linkType: hard "@types/react-test-renderer@npm:^18.0.0": - version: 18.3.0 - resolution: "@types/react-test-renderer@npm:18.3.0" + version: 18.3.1 + resolution: "@types/react-test-renderer@npm:18.3.1" dependencies: - "@types/react": "*" - checksum: c53683990bd194cb68e3987bda79c78eff41517f7a747e92f3e54217c2ce3addd031b8a45bf631982c909cc2caeeb905372f322758e05bb76c03754a3f24426e + "@types/react": ^18 + checksum: f8cc23cc8decdb6068cdc8f8c306e189eab8e569443ce97b216e757ee42eb20b18d2280ef41e2955668413f14be92765a3ba86cfcfeeae6b20c965acd9674786 languageName: node linkType: hard "@types/react-virtualized@npm:^9.21.21": - version: 9.21.30 - resolution: "@types/react-virtualized@npm:9.21.30" + version: 9.22.2 + resolution: "@types/react-virtualized@npm:9.22.2" dependencies: "@types/prop-types": "*" "@types/react": "*" - checksum: 3beb6bc5e0edc4831094a0911ca0a5bc6a53295a54aa530e376dc5af98fb7c51bb11e293c652d56cfbcd7049b6bee880569939960ac48ca4ac6d63983030818e + checksum: 893105cfa89043cc72ae6f918bd8ea30f33ffd7bbd23158d17c8703df980e51b2539e01a3417c9617e115941dab1130e33fcd047e369844f241b2d1bbeda4276 languageName: node linkType: hard "@types/react@npm:^18": - version: 18.3.1 - resolution: "@types/react@npm:18.3.1" + version: 18.3.22 + resolution: "@types/react@npm:18.3.22" dependencies: "@types/prop-types": "*" csstype: ^3.0.2 - checksum: 9224ef319a0c2b7f66e7e7f06012aa5eb638a6c76c9742843eab1a5d243f2bed5ff829ddbb41efd60d33a266420528adfcb84cb93f238b00e905f98c3a355768 + checksum: e69bdec2df18397e0ecc48e0e858ba331e56130b0b2cd1561098dcdddf04a8aa1ae0b51a294d60d0ade13bfabe5670131a3bd82bedca3b323d51de2b9cd0debd languageName: node linkType: hard "@types/regenerator-runtime@npm:^0.13.1": - version: 0.13.5 - resolution: "@types/regenerator-runtime@npm:0.13.5" - checksum: ff450fcdac0a4915101e5acee4c9909fe4182d930f7fac959a344e3fa3a7b4e946e6d47e609864957f1bb6e1b842445f10ba0aaf8b4dd81009677b2344b2c834 + version: 0.13.8 + resolution: "@types/regenerator-runtime@npm:0.13.8" + checksum: 130031ba8725696b99437254575bd747bc683190e2c1a776a74e8977891a95f35a2bee6d6dde48db1f7afb03202637e33c423a09dd303491dd079a6ecbd02618 languageName: node linkType: hard @@ -5109,9 +5020,9 @@ __metadata: linkType: hard "@types/semver@npm:^7.3.12": - version: 7.5.8 - resolution: "@types/semver@npm:7.5.8" - checksum: ea6f5276f5b84c55921785a3a27a3cd37afee0111dfe2bcb3e03c31819c197c782598f17f0b150a69d453c9584cd14c4c4d7b9a55d2c5e6cacd4d66fdb3b3663 + version: 7.7.0 + resolution: "@types/semver@npm:7.7.0" + checksum: d488eaeddb23879a0a8a759bed667e1a76cb0dd4d23e3255538e24c189db387357953ca9e7a3bda2bb7f95e84cac8fe0db4fbe6b3456e893043337732d1d23cc languageName: node linkType: hard @@ -5146,16 +5057,16 @@ __metadata: linkType: hard "@types/shelljs@npm:^0.8.11": - version: 0.8.15 - resolution: "@types/shelljs@npm:0.8.15" + version: 0.8.16 + resolution: "@types/shelljs@npm:0.8.16" dependencies: "@types/glob": ~7.2.0 "@types/node": "*" - checksum: 94939421c6c83d3075e1c56bf940eb3c34567c6b2ac0b553ec81de7f4c7e7cdfc729117d821c22418d64c45fcd4f96a6ec7ae21ed0d7a80e3e9a008672dde35f + checksum: 292611a3723d0262bbd774e0b6cadef04dd2ca476e3a6a8b29a2f5b253eaf4cc81e709ff981d95997892af1c370417c441c01a883c8a496c63bb7951784208cb languageName: node linkType: hard -"@types/signature_pad@npm:*": +"@types/signature_pad@npm:<3": version: 2.3.6 resolution: "@types/signature_pad@npm:2.3.6" checksum: dfb27dd2eea7895a8c0e971ec4f8f9b4ecf3cf2e9bca51d5bc3fe21617721a4cb755ad4ec743de56655159b8ade28ec3332ec784607f1911f7b36780afa41065 @@ -5198,17 +5109,26 @@ __metadata: languageName: node linkType: hard -"@types/stylis@npm:4.2.0": - version: 4.2.0 - resolution: "@types/stylis@npm:4.2.0" - checksum: 02a47584acd2fcb664f7d8270a69686c83752bdfb855f804015d33116a2b09c0b2ac535213a4a7b6d3a78b2915b22b4024cce067ae979beee0e4f8f5fdbc26a9 +"@types/stylis@npm:4.2.5": + version: 4.2.5 + resolution: "@types/stylis@npm:4.2.5" + checksum: 24f91719db5569979e9e2f197e050ef82e1fd72474e8dc45bca38d48ee56481eae0f0d4a7ac172540d7774b45a2a78d901a4c6d07bba77a33dbccff464ea3edf languageName: node linkType: hard "@types/stylis@npm:^4.0.2": - version: 4.2.5 - resolution: "@types/stylis@npm:4.2.5" - checksum: 24f91719db5569979e9e2f197e050ef82e1fd72474e8dc45bca38d48ee56481eae0f0d4a7ac172540d7774b45a2a78d901a4c6d07bba77a33dbccff464ea3edf + version: 4.2.7 + resolution: "@types/stylis@npm:4.2.7" + checksum: 5f2c8c07d4d5c3c8624d44d026b726295c5a68164087e3cd86f2694660c592ab36264ae49dec38126cf5580f0901266aa24f1c476a622bb83210eabdf7a464e8 + languageName: node + linkType: hard + +"@types/supercluster@npm:^7.1.3": + version: 7.1.3 + resolution: "@types/supercluster@npm:7.1.3" + dependencies: + "@types/geojson": "*" + checksum: 724188fb6ebdf0835821559da5480e5951c3e51afa86fcf83f5bf6984b89652f947081a3f6835cb082a6865fe5f1f8f667e92346f237d3518c2159121bb7c5cc languageName: node linkType: hard @@ -5252,9 +5172,9 @@ __metadata: linkType: hard "@types/unist@npm:^2, @types/unist@npm:^2.0.0": - version: 2.0.10 - resolution: "@types/unist@npm:2.0.10" - checksum: e2924e18dedf45f68a5c6ccd6015cd62f1643b1b43baac1854efa21ae9e70505db94290434a23da1137d9e31eb58e54ca175982005698ac37300a1c889f6c4aa + version: 2.0.11 + resolution: "@types/unist@npm:2.0.11" + checksum: 6d436e832bc35c6dde9f056ac515ebf2b3384a1d7f63679d12358766f9b313368077402e9c1126a14d827f10370a5485e628bf61aa91117cf4fc882423191a4e languageName: node linkType: hard @@ -5266,11 +5186,11 @@ __metadata: linkType: hard "@types/ws@npm:^8.5.10": - version: 8.5.10 - resolution: "@types/ws@npm:8.5.10" + version: 8.18.1 + resolution: "@types/ws@npm:8.18.1" dependencies: "@types/node": "*" - checksum: 3ec416ea2be24042ebd677932a462cf16d2080393d8d7d0b1b3f5d6eaa4a7387aaf0eefb99193c0bfd29444857cf2e0c3ac89899e130550dc6c14ada8a46d25e + checksum: 0331b14cde388e2805af66cad3e3f51857db8e68ed91e5b99750915e96fe7572e58296dc99999331bbcf08f0ff00a227a0bb214e991f53c2a5aca7b0e71173fa languageName: node linkType: hard @@ -5282,11 +5202,11 @@ __metadata: linkType: hard "@types/yargs@npm:^17.0.8": - version: 17.0.32 - resolution: "@types/yargs@npm:17.0.32" + version: 17.0.33 + resolution: "@types/yargs@npm:17.0.33" dependencies: "@types/yargs-parser": "*" - checksum: 4505bdebe8716ff383640c6e928f855b5d337cb3c68c81f7249fc6b983d0aa48de3eee26062b84f37e0d75a5797bc745e0c6e76f42f81771252a758c638f36ba + checksum: ee013f257472ab643cb0584cf3e1ff9b0c44bca1c9ba662395300a7f1a6c55fa9d41bd40ddff42d99f5d95febb3907c9ff600fbcb92dadbec22c6a76de7e1236 languageName: node linkType: hard @@ -5423,9 +5343,9 @@ __metadata: linkType: hard "@ungap/structured-clone@npm:^1.0.0, @ungap/structured-clone@npm:^1.2.0": - version: 1.2.0 - resolution: "@ungap/structured-clone@npm:1.2.0" - checksum: 4f656b7b4672f2ce6e272f2427d8b0824ed11546a601d8d5412b9d7704e83db38a8d9f402ecdf2b9063fc164af842ad0ec4a55819f621ed7e7ea4d1efcc74524 + version: 1.3.0 + resolution: "@ungap/structured-clone@npm:1.3.0" + checksum: 64ed518f49c2b31f5b50f8570a1e37bde3b62f2460042c50f132430b2d869c4a6586f13aa33a58a4722715b8158c68cae2827389d6752ac54da2893c83e480fc languageName: node linkType: hard @@ -5464,154 +5384,154 @@ __metadata: languageName: node linkType: hard -"@webassemblyjs/ast@npm:1.12.1, @webassemblyjs/ast@npm:^1.12.1": - version: 1.12.1 - resolution: "@webassemblyjs/ast@npm:1.12.1" +"@webassemblyjs/ast@npm:1.14.1, @webassemblyjs/ast@npm:^1.14.1": + version: 1.14.1 + resolution: "@webassemblyjs/ast@npm:1.14.1" dependencies: - "@webassemblyjs/helper-numbers": 1.11.6 - "@webassemblyjs/helper-wasm-bytecode": 1.11.6 - checksum: 31bcc64147236bd7b1b6d29d1f419c1f5845c785e1e42dc9e3f8ca2e05a029e9393a271b84f3a5bff2a32d35f51ff59e2181a6e5f953fe88576acd6750506202 + "@webassemblyjs/helper-numbers": 1.13.2 + "@webassemblyjs/helper-wasm-bytecode": 1.13.2 + checksum: f9154ad9ea14f6f2374ebe918c221fd69a4d4514126a1acc6fa4966e8d27ab28cb550a5e6880032cf620e19640578658a7e5a55bd2aad1e3db4e9d598b8f2099 languageName: node linkType: hard -"@webassemblyjs/floating-point-hex-parser@npm:1.11.6": - version: 1.11.6 - resolution: "@webassemblyjs/floating-point-hex-parser@npm:1.11.6" - checksum: 29b08758841fd8b299c7152eda36b9eb4921e9c584eb4594437b5cd90ed6b920523606eae7316175f89c20628da14326801090167cc7fbffc77af448ac84b7e2 +"@webassemblyjs/floating-point-hex-parser@npm:1.13.2": + version: 1.13.2 + resolution: "@webassemblyjs/floating-point-hex-parser@npm:1.13.2" + checksum: e866ec8433f4a70baa511df5e8f2ebcd6c24f4e2cc6274c7c5aabe2bcce3459ea4680e0f35d450e1f3602acf3913b6b8e4f15069c8cfd34ae8609fb9a7d01795 languageName: node linkType: hard -"@webassemblyjs/helper-api-error@npm:1.11.6": - version: 1.11.6 - resolution: "@webassemblyjs/helper-api-error@npm:1.11.6" - checksum: e8563df85161096343008f9161adb138a6e8f3c2cc338d6a36011aa55eabb32f2fd138ffe63bc278d009ada001cc41d263dadd1c0be01be6c2ed99076103689f +"@webassemblyjs/helper-api-error@npm:1.13.2": + version: 1.13.2 + resolution: "@webassemblyjs/helper-api-error@npm:1.13.2" + checksum: 48b5df7fd3095bb252f59a139fe2cbd999a62ac9b488123e9a0da3906ad8a2f2da7b2eb21d328c01a90da987380928706395c2897d1f3ed9e2125b6d75a920d0 languageName: node linkType: hard -"@webassemblyjs/helper-buffer@npm:1.12.1": - version: 1.12.1 - resolution: "@webassemblyjs/helper-buffer@npm:1.12.1" - checksum: c3ffb723024130308db608e86e2bdccd4868bbb62dffb0a9a1530606496f79c87f8565bd8e02805ce64912b71f1a70ee5fb00307258b0c082c3abf961d097eca +"@webassemblyjs/helper-buffer@npm:1.14.1": + version: 1.14.1 + resolution: "@webassemblyjs/helper-buffer@npm:1.14.1" + checksum: b611e981dfd6a797c3d8fc3a772de29a6e55033737c2c09c31bb66c613bdbb2d25f915df1dee62a602c6acc057ca71128432fa8c3e22a893e1219dc454f14ede languageName: node linkType: hard -"@webassemblyjs/helper-numbers@npm:1.11.6": - version: 1.11.6 - resolution: "@webassemblyjs/helper-numbers@npm:1.11.6" +"@webassemblyjs/helper-numbers@npm:1.13.2": + version: 1.13.2 + resolution: "@webassemblyjs/helper-numbers@npm:1.13.2" dependencies: - "@webassemblyjs/floating-point-hex-parser": 1.11.6 - "@webassemblyjs/helper-api-error": 1.11.6 + "@webassemblyjs/floating-point-hex-parser": 1.13.2 + "@webassemblyjs/helper-api-error": 1.13.2 "@xtuc/long": 4.2.2 - checksum: f4b562fa219f84368528339e0f8d273ad44e047a07641ffcaaec6f93e5b76fd86490a009aa91a294584e1436d74b0a01fa9fde45e333a4c657b58168b04da424 + checksum: 49e2c9bf9b66997e480f6b44d80f895b3cde4de52ac135921d28e144565edca6903a519f627f4089b5509de1d7f9e5023f0e1a94ff78a36c9e2eb30e7c18ffd2 languageName: node linkType: hard -"@webassemblyjs/helper-wasm-bytecode@npm:1.11.6": - version: 1.11.6 - resolution: "@webassemblyjs/helper-wasm-bytecode@npm:1.11.6" - checksum: 3535ef4f1fba38de3475e383b3980f4bbf3de72bbb631c2b6584c7df45be4eccd62c6ff48b5edd3f1bcff275cfd605a37679ec199fc91fd0a7705d7f1e3972dc +"@webassemblyjs/helper-wasm-bytecode@npm:1.13.2": + version: 1.13.2 + resolution: "@webassemblyjs/helper-wasm-bytecode@npm:1.13.2" + checksum: 8e059e1c1f0294f4fc3df8e4eaff3c5ef6e2e1358f34ebc118eaf5070ed59e56ed7fc92b28be734ebde17c8d662d5d27e06ade686c282445135da083ae11c128 languageName: node linkType: hard -"@webassemblyjs/helper-wasm-section@npm:1.12.1": - version: 1.12.1 - resolution: "@webassemblyjs/helper-wasm-section@npm:1.12.1" +"@webassemblyjs/helper-wasm-section@npm:1.14.1": + version: 1.14.1 + resolution: "@webassemblyjs/helper-wasm-section@npm:1.14.1" dependencies: - "@webassemblyjs/ast": 1.12.1 - "@webassemblyjs/helper-buffer": 1.12.1 - "@webassemblyjs/helper-wasm-bytecode": 1.11.6 - "@webassemblyjs/wasm-gen": 1.12.1 - checksum: c19810cdd2c90ff574139b6d8c0dda254d42d168a9e5b3d353d1bc085f1d7164ccd1b3c05592a45a939c47f7e403dc8d03572bb686642f06a3d02932f6f0bc8f + "@webassemblyjs/ast": 1.14.1 + "@webassemblyjs/helper-buffer": 1.14.1 + "@webassemblyjs/helper-wasm-bytecode": 1.13.2 + "@webassemblyjs/wasm-gen": 1.14.1 + checksum: 0a08d454a63192cd66abf91b6f060ac4b466cef341262246e9dcc828dd4c8536195dea9b46a1244b1eac65b59b8b502164a771a190052a92ff0a0a2ded0f8f53 languageName: node linkType: hard -"@webassemblyjs/ieee754@npm:1.11.6": - version: 1.11.6 - resolution: "@webassemblyjs/ieee754@npm:1.11.6" +"@webassemblyjs/ieee754@npm:1.13.2": + version: 1.13.2 + resolution: "@webassemblyjs/ieee754@npm:1.13.2" dependencies: "@xtuc/ieee754": ^1.2.0 - checksum: 13574b8e41f6ca39b700e292d7edf102577db5650fe8add7066a320aa4b7a7c09a5056feccac7a74eb68c10dea9546d4461412af351f13f6b24b5f32379b49de + checksum: d7e3520baa37a7309fa7db4d73d69fb869878853b1ebd4b168821bd03fcc4c0e1669c06231315b0039035d9a7a462e53de3ad982da4a426a4b0743b5888e8673 languageName: node linkType: hard -"@webassemblyjs/leb128@npm:1.11.6": - version: 1.11.6 - resolution: "@webassemblyjs/leb128@npm:1.11.6" +"@webassemblyjs/leb128@npm:1.13.2": + version: 1.13.2 + resolution: "@webassemblyjs/leb128@npm:1.13.2" dependencies: "@xtuc/long": 4.2.2 - checksum: 7ea942dc9777d4b18a5ebfa3a937b30ae9e1d2ce1fee637583ed7f376334dd1d4274f813d2e250056cca803e0952def4b954913f1a3c9068bcd4ab4ee5143bf0 + checksum: 64083507f7cff477a6d71a9e325d95665cea78ec8df99ca7c050e1cfbe300fbcf0842ca3dcf3b4fa55028350135588a4f879398d3dd2b6a8de9913ce7faf5333 languageName: node linkType: hard -"@webassemblyjs/utf8@npm:1.11.6": - version: 1.11.6 - resolution: "@webassemblyjs/utf8@npm:1.11.6" - checksum: 807fe5b5ce10c390cfdd93e0fb92abda8aebabb5199980681e7c3743ee3306a75729bcd1e56a3903980e96c885ee53ef901fcbaac8efdfa480f9c0dae1d08713 +"@webassemblyjs/utf8@npm:1.13.2": + version: 1.13.2 + resolution: "@webassemblyjs/utf8@npm:1.13.2" + checksum: 95ec6052f30eefa8d50c9b2a3394d08b17d53a4aa52821451d41d774c126fa8f39b988fbf5bff56da86852a87c16d676e576775a4071e5e5ccf020cc85a4b281 languageName: node linkType: hard -"@webassemblyjs/wasm-edit@npm:^1.12.1": - version: 1.12.1 - resolution: "@webassemblyjs/wasm-edit@npm:1.12.1" +"@webassemblyjs/wasm-edit@npm:^1.14.1": + version: 1.14.1 + resolution: "@webassemblyjs/wasm-edit@npm:1.14.1" dependencies: - "@webassemblyjs/ast": 1.12.1 - "@webassemblyjs/helper-buffer": 1.12.1 - "@webassemblyjs/helper-wasm-bytecode": 1.11.6 - "@webassemblyjs/helper-wasm-section": 1.12.1 - "@webassemblyjs/wasm-gen": 1.12.1 - "@webassemblyjs/wasm-opt": 1.12.1 - "@webassemblyjs/wasm-parser": 1.12.1 - "@webassemblyjs/wast-printer": 1.12.1 - checksum: ae23642303f030af888d30c4ef37b08dfec7eab6851a9575a616e65d1219f880d9223913a39056dd654e49049d76e97555b285d1f7e56935047abf578cce0692 + "@webassemblyjs/ast": 1.14.1 + "@webassemblyjs/helper-buffer": 1.14.1 + "@webassemblyjs/helper-wasm-bytecode": 1.13.2 + "@webassemblyjs/helper-wasm-section": 1.14.1 + "@webassemblyjs/wasm-gen": 1.14.1 + "@webassemblyjs/wasm-opt": 1.14.1 + "@webassemblyjs/wasm-parser": 1.14.1 + "@webassemblyjs/wast-printer": 1.14.1 + checksum: 9341c3146bb1b7863f03d6050c2a66990f20384ca137388047bbe1feffacb599e94fca7b7c18287d17e2449ffb4005fdc7f41f674a6975af9ad8522756f8ffff languageName: node linkType: hard -"@webassemblyjs/wasm-gen@npm:1.12.1": - version: 1.12.1 - resolution: "@webassemblyjs/wasm-gen@npm:1.12.1" +"@webassemblyjs/wasm-gen@npm:1.14.1": + version: 1.14.1 + resolution: "@webassemblyjs/wasm-gen@npm:1.14.1" dependencies: - "@webassemblyjs/ast": 1.12.1 - "@webassemblyjs/helper-wasm-bytecode": 1.11.6 - "@webassemblyjs/ieee754": 1.11.6 - "@webassemblyjs/leb128": 1.11.6 - "@webassemblyjs/utf8": 1.11.6 - checksum: 5787626bb7f0b033044471ddd00ce0c9fe1ee4584e8b73e232051e3a4c99ba1a102700d75337151c8b6055bae77eefa4548960c610a5e4a504e356bd872138ff + "@webassemblyjs/ast": 1.14.1 + "@webassemblyjs/helper-wasm-bytecode": 1.13.2 + "@webassemblyjs/ieee754": 1.13.2 + "@webassemblyjs/leb128": 1.13.2 + "@webassemblyjs/utf8": 1.13.2 + checksum: 401b12bec7431c4fc29d9414bbe40d3c6dc5be04d25a116657c42329f5481f0129f3b5834c293f26f0e42681ceac9157bf078ce9bdb6a7f78037c650373f98b2 languageName: node linkType: hard -"@webassemblyjs/wasm-opt@npm:1.12.1": - version: 1.12.1 - resolution: "@webassemblyjs/wasm-opt@npm:1.12.1" +"@webassemblyjs/wasm-opt@npm:1.14.1": + version: 1.14.1 + resolution: "@webassemblyjs/wasm-opt@npm:1.14.1" dependencies: - "@webassemblyjs/ast": 1.12.1 - "@webassemblyjs/helper-buffer": 1.12.1 - "@webassemblyjs/wasm-gen": 1.12.1 - "@webassemblyjs/wasm-parser": 1.12.1 - checksum: 0e8fa8a0645304a1e18ff40d3db5a2e9233ebaa169b19fcc651d6fc9fe2cac0ce092ddee927318015ae735d9cd9c5d97c0cafb6a51dcd2932ac73587b62df991 + "@webassemblyjs/ast": 1.14.1 + "@webassemblyjs/helper-buffer": 1.14.1 + "@webassemblyjs/wasm-gen": 1.14.1 + "@webassemblyjs/wasm-parser": 1.14.1 + checksum: 60c697a9e9129d8d23573856df0791ba33cea4a3bc2339044cae73128c0983802e5e50a42157b990eeafe1237eb8e7653db6de5f02b54a0ae7b81b02dcdf2ae9 languageName: node linkType: hard -"@webassemblyjs/wasm-parser@npm:1.12.1, @webassemblyjs/wasm-parser@npm:^1.12.1": - version: 1.12.1 - resolution: "@webassemblyjs/wasm-parser@npm:1.12.1" +"@webassemblyjs/wasm-parser@npm:1.14.1, @webassemblyjs/wasm-parser@npm:^1.14.1": + version: 1.14.1 + resolution: "@webassemblyjs/wasm-parser@npm:1.14.1" dependencies: - "@webassemblyjs/ast": 1.12.1 - "@webassemblyjs/helper-api-error": 1.11.6 - "@webassemblyjs/helper-wasm-bytecode": 1.11.6 - "@webassemblyjs/ieee754": 1.11.6 - "@webassemblyjs/leb128": 1.11.6 - "@webassemblyjs/utf8": 1.11.6 - checksum: 176015de3551ac068cd4505d837414f258d9ade7442bd71efb1232fa26c9f6d7d4e11a5c816caeed389943f409af7ebff6899289a992d7a70343cb47009d21a8 + "@webassemblyjs/ast": 1.14.1 + "@webassemblyjs/helper-api-error": 1.13.2 + "@webassemblyjs/helper-wasm-bytecode": 1.13.2 + "@webassemblyjs/ieee754": 1.13.2 + "@webassemblyjs/leb128": 1.13.2 + "@webassemblyjs/utf8": 1.13.2 + checksum: 93f1fe2676da465b4e824419d9812a3d7218de4c3addd4e916c04bc86055fa134416c1b67e4b7cbde8d728c0dce2721d06cc0bfe7a7db7c093a0898009937405 languageName: node linkType: hard -"@webassemblyjs/wast-printer@npm:1.12.1": - version: 1.12.1 - resolution: "@webassemblyjs/wast-printer@npm:1.12.1" +"@webassemblyjs/wast-printer@npm:1.14.1": + version: 1.14.1 + resolution: "@webassemblyjs/wast-printer@npm:1.14.1" dependencies: - "@webassemblyjs/ast": 1.12.1 + "@webassemblyjs/ast": 1.14.1 "@xtuc/long": 4.2.2 - checksum: 2974b5dda8d769145ba0efd886ea94a601e61fb37114c14f9a9a7606afc23456799af652ac3052f284909bd42edc3665a76bc9b50f95f0794c053a8a1757b713 + checksum: 517881a0554debe6945de719d100b2d8883a2d24ddf47552cdeda866341e2bb153cd824a864bc7e2a61190a4b66b18f9899907e0074e9e820d2912ac0789ea60 languageName: node linkType: hard @@ -5707,10 +5627,10 @@ __metadata: languageName: node linkType: hard -"abbrev@npm:^2.0.0": - version: 2.0.0 - resolution: "abbrev@npm:2.0.0" - checksum: 0e994ad2aa6575f94670d8a2149afe94465de9cedaaaac364e7fb43a40c3691c980ff74899f682f4ca58fa96b4cbd7421a015d3a6defe43a442117d7821a2f36 +"abbrev@npm:^3.0.0": + version: 3.0.1 + resolution: "abbrev@npm:3.0.1" + checksum: e70b209f5f408dd3a3bbd0eec4b10a2ffd64704a4a3821d0969d84928cc490a8eb60f85b78a95622c1841113edac10161c62e52f5e7d0027aa26786a8136e02e languageName: node linkType: hard @@ -5723,7 +5643,7 @@ __metadata: languageName: node linkType: hard -"accepts@npm:~1.3.4, accepts@npm:~1.3.5, accepts@npm:~1.3.8": +"accepts@npm:~1.3.4, accepts@npm:~1.3.8": version: 1.3.8 resolution: "accepts@npm:1.3.8" dependencies: @@ -5753,15 +5673,6 @@ __metadata: languageName: node linkType: hard -"acorn-import-assertions@npm:^1.9.0": - version: 1.9.0 - resolution: "acorn-import-assertions@npm:1.9.0" - peerDependencies: - acorn: ^8 - checksum: 944fb2659d0845c467066bdcda2e20c05abe3aaf11972116df457ce2627628a81764d800dd55031ba19de513ee0d43bb771bc679cc0eda66dc8b4fade143bc0c - languageName: node - linkType: hard - "acorn-jsx@npm:^5.3.2": version: 5.3.2 resolution: "acorn-jsx@npm:5.3.2" @@ -5788,9 +5699,11 @@ __metadata: linkType: hard "acorn-walk@npm:^8.0.0, acorn-walk@npm:^8.0.2, acorn-walk@npm:^8.1.1": - version: 8.3.2 - resolution: "acorn-walk@npm:8.3.2" - checksum: 3626b9d26a37b1b427796feaa5261faf712307a8920392c8dce9a5739fb31077667f4ad2ec71c7ac6aaf9f61f04a9d3d67ff56f459587206fc04aa31c27ef392 + version: 8.3.4 + resolution: "acorn-walk@npm:8.3.4" + dependencies: + acorn: ^8.11.0 + checksum: 4ff03f42323e7cf90f1683e08606b0f460e1e6ac263d2730e3df91c7665b6f64e696db6ea27ee4bed18c2599569be61f28a8399fa170c611161a348c402ca19c languageName: node linkType: hard @@ -5821,12 +5734,12 @@ __metadata: languageName: node linkType: hard -"acorn@npm:^8.0.4, acorn@npm:^8.1.0, acorn@npm:^8.4.1, acorn@npm:^8.7.1, acorn@npm:^8.8.1, acorn@npm:^8.8.2, acorn@npm:^8.9.0": - version: 8.11.3 - resolution: "acorn@npm:8.11.3" +"acorn@npm:^8.0.4, acorn@npm:^8.1.0, acorn@npm:^8.11.0, acorn@npm:^8.12.1, acorn@npm:^8.14.0, acorn@npm:^8.4.1, acorn@npm:^8.8.1, acorn@npm:^8.9.0": + version: 8.14.1 + resolution: "acorn@npm:8.14.1" bin: acorn: bin/acorn - checksum: 76d8e7d559512566b43ab4aadc374f11f563f0a9e21626dd59cb2888444e9445923ae9f3699972767f18af61df89cd89f5eaaf772d1327b055b45cb829b4a88c + checksum: 260d9bb6017a1b6e42d31364687f0258f78eb20210b36ef2baad38fd619d78d4e95ff7dde9b3dbe0d81f137f79a8d651a845363a26e6985997f7b71145dc5e94 languageName: node linkType: hard @@ -5853,38 +5766,27 @@ __metadata: languageName: node linkType: hard -"agent-base@npm:^7.0.2, agent-base@npm:^7.1.0, agent-base@npm:^7.1.1": - version: 7.1.1 - resolution: "agent-base@npm:7.1.1" - dependencies: - debug: ^4.3.4 - checksum: 51c158769c5c051482f9ca2e6e1ec085ac72b5a418a9b31b4e82fe6c0a6699adb94c1c42d246699a587b3335215037091c79e0de512c516f73b6ea844202f037 - languageName: node - linkType: hard - -"aggregate-error@npm:^3.0.0": - version: 3.1.0 - resolution: "aggregate-error@npm:3.1.0" - dependencies: - clean-stack: ^2.0.0 - indent-string: ^4.0.0 - checksum: 1101a33f21baa27a2fa8e04b698271e64616b886795fd43c31068c07533c7b3facfcaf4e9e0cab3624bd88f729a592f1c901a1a229c9e490eafce411a8644b79 +"agent-base@npm:^7.1.0, agent-base@npm:^7.1.2": + version: 7.1.3 + resolution: "agent-base@npm:7.1.3" + checksum: 87bb7ee54f5ecf0ccbfcba0b07473885c43ecd76cb29a8db17d6137a19d9f9cd443a2a7c5fd8a3f24d58ad8145f9eb49116344a66b107e1aeab82cf2383f4753 languageName: node linkType: hard "agora-rtc-sdk-ng@npm:^4.20.2": - version: 4.20.2 - resolution: "agora-rtc-sdk-ng@npm:4.20.2" + version: 4.23.3 + resolution: "agora-rtc-sdk-ng@npm:4.23.3" dependencies: - "@agora-js/media": 4.20.2 - "@agora-js/report": 4.20.2 - "@agora-js/shared": 4.20.2 + "@agora-js/media": 4.23.3 + "@agora-js/report": 4.23.3 + "@agora-js/shared": 4.23.3 agora-rte-extension: ^1.2.4 - axios: ^1.6.7 + axios: ^1.8.3 formdata-polyfill: ^4.0.7 + pako: ^2.1.0 ua-parser-js: ^0.7.34 webrtc-adapter: 8.2.0 - checksum: 86d48dab756831fdf2d4a745301eb91e0a700b63a8b5d4792aa6bd5bc7842cedc32a12409e122e0ab962c17023f78800e3628c285b4be0d37b7a78562d8e4706 + checksum: fefa8d2038a883b4242093db0938f7b95cfa742d4ef1ae77ce750e52f9120387ba9ab4d326da826082e75b56e2943040f7e2bd18d359860689dad0ea56004f52 languageName: node linkType: hard @@ -5903,21 +5805,21 @@ __metadata: linkType: hard "ahooks@npm:^3.7.6": - version: 3.7.11 - resolution: "ahooks@npm:3.7.11" + version: 3.8.5 + resolution: "ahooks@npm:3.8.5" dependencies: "@babel/runtime": ^7.21.0 dayjs: ^1.9.1 intersection-observer: ^0.12.0 - js-cookie: ^2.x.x + js-cookie: ^3.0.5 lodash: ^4.17.21 react-fast-compare: ^3.2.2 resize-observer-polyfill: ^1.5.1 screenfull: ^5.0.0 tslib: ^2.4.1 peerDependencies: - react: ^16.8.0 || ^17.0.0 || ^18.0.0 - checksum: 290f78a27a25720060e0e4a0b15a772e58f8e02534a000fa60e8fa2e09958c2ec410d382c51e5d510e511a8563f67fdbbee3ffe20680bb2a34573691ba3dbafc + react: ^16.8.0 || ^17.0.0 || ^18.0.0 || ^19.0.0 + checksum: fbda7e7981bcfe66dacd9bb4c496b350095f3380eb7a0f686df257a4401b0c9d865fce27e1caa1ee0706fb93ad32b9e3ad268d1ed777c8f4ffb4d576e488b95f languageName: node linkType: hard @@ -5967,19 +5869,7 @@ __metadata: languageName: node linkType: hard -"ajv@npm:^8.0.0, ajv@npm:^8.9.0": - version: 8.12.0 - resolution: "ajv@npm:8.12.0" - dependencies: - fast-deep-equal: ^3.1.1 - json-schema-traverse: ^1.0.0 - require-from-string: ^2.0.2 - uri-js: ^4.2.2 - checksum: 4dc13714e316e67537c8b31bc063f99a1d9d9a497eb4bbd55191ac0dcd5e4985bbb71570352ad6f1e76684fb6d790928f96ba3b2d4fd6e10024be9612fe3f001 - languageName: node - linkType: hard - -"ajv@npm:^8.12.0": +"ajv@npm:^8.0.0, ajv@npm:^8.12.0, ajv@npm:^8.9.0": version: 8.17.1 resolution: "ajv@npm:8.17.1" dependencies: @@ -6045,18 +5935,9 @@ __metadata: linkType: hard "ansi-regex@npm:^6.0.1": - version: 6.0.1 - resolution: "ansi-regex@npm:6.0.1" - checksum: 1ff8b7667cded1de4fa2c9ae283e979fc87036864317da86a2e546725f96406746411d0d85e87a2d12fa5abd715d90006de7fa4fa0477c92321ad3b4c7d4e169 - languageName: node - linkType: hard - -"ansi-styles@npm:^3.2.1": - version: 3.2.1 - resolution: "ansi-styles@npm:3.2.1" - dependencies: - color-convert: ^1.9.0 - checksum: d85ade01c10e5dd77b6c89f34ed7531da5830d2cb5882c645f330079975b716438cd7ebb81d0d6e6b4f9c577f19ae41ab55f07f19786b02f9dfd9e0377395665 + version: 6.1.0 + resolution: "ansi-regex@npm:6.1.0" + checksum: 495834a53b0856c02acd40446f7130cb0f8284f4a39afdab20d5dc42b2e198b1196119fe887beed8f9055c4ff2055e3b2f6d4641d0be018cdfb64fedf6fc1aac languageName: node linkType: hard @@ -6098,8 +5979,8 @@ __metadata: linkType: hard "antd-mobile@npm:^5.34.0": - version: 5.36.0 - resolution: "antd-mobile@npm:5.36.0" + version: 5.39.0 + resolution: "antd-mobile@npm:5.39.0" dependencies: "@floating-ui/dom": ^1.4.2 "@rc-component/mini-decimal": ^1.1.0 @@ -6112,7 +5993,8 @@ __metadata: dayjs: ^1.11.7 deepmerge: ^4.3.1 nano-memoize: ^3.0.16 - rc-field-form: ~1.27.4 + rc-field-form: ^1.34.2 + rc-segmented: ~2.4.1 rc-util: ^5.38.1 react-fast-compare: ^3.2.2 react-is: ^18.2.0 @@ -6122,7 +6004,8 @@ __metadata: use-sync-external-store: ^1.2.0 peerDependencies: react: ^16.8.0 || ^17.0.0 || ^18.0.0 - checksum: 80d441578a2debf0052c1ab24fdbcc44f893baac5061efe5dce28cb85a9c6bf607c27c6487bd079b940b89fbaad3a7f0572b13d2b96da9a07e8a2472ef62a023 + react-dom: ^16.8.0 || ^17.0.0 || ^18.0.0 + checksum: 50a2660c5f403b039e5d4fcb75540ab39d78c554c31b6529e4d9cea55935b5e485975ed56c21acaeb828ccf318ae4323da5d9e24fa9073c7ce9d499d67ebac27 languageName: node linkType: hard @@ -6235,22 +6118,20 @@ __metadata: languageName: node linkType: hard -"aria-query@npm:^5.0.0, aria-query@npm:^5.3.0": - version: 5.3.0 - resolution: "aria-query@npm:5.3.0" - dependencies: - dequal: ^2.0.3 - checksum: 305bd73c76756117b59aba121d08f413c7ff5e80fa1b98e217a3443fcddb9a232ee790e24e432b59ae7625aebcf4c47cb01c2cac872994f0b426f5bdfcd96ba9 +"aria-query@npm:^5.0.0, aria-query@npm:^5.3.2": + version: 5.3.2 + resolution: "aria-query@npm:5.3.2" + checksum: d971175c85c10df0f6d14adfe6f1292409196114ab3c62f238e208b53103686f46cc70695a4f775b73bc65f6a09b6a092fd963c4f3a5a7d690c8fc5094925717 languageName: node linkType: hard -"array-buffer-byte-length@npm:^1.0.0, array-buffer-byte-length@npm:^1.0.1": - version: 1.0.1 - resolution: "array-buffer-byte-length@npm:1.0.1" +"array-buffer-byte-length@npm:^1.0.0, array-buffer-byte-length@npm:^1.0.1, array-buffer-byte-length@npm:^1.0.2": + version: 1.0.2 + resolution: "array-buffer-byte-length@npm:1.0.2" dependencies: - call-bind: ^1.0.5 - is-array-buffer: ^3.0.4 - checksum: 53524e08f40867f6a9f35318fafe467c32e45e9c682ba67b11943e167344d2febc0f6977a17e699b05699e805c3e8f073d876f8bbf1b559ed494ad2cd0fae09e + call-bound: ^1.0.3 + is-array-buffer: ^3.0.5 + checksum: 0ae3786195c3211b423e5be8dd93357870e6fb66357d81da968c2c39ef43583ef6eece1f9cb1caccdae4806739c65dea832b44b8593414313cd76a89795fca63 languageName: node linkType: hard @@ -6268,7 +6149,7 @@ __metadata: languageName: node linkType: hard -"array-includes@npm:^3.1.6, array-includes@npm:^3.1.7": +"array-includes@npm:^3.1.6, array-includes@npm:^3.1.8": version: 3.1.8 resolution: "array-includes@npm:3.1.8" dependencies: @@ -6289,7 +6170,7 @@ __metadata: languageName: node linkType: hard -"array.prototype.findlast@npm:^1.2.4": +"array.prototype.findlast@npm:^1.2.5": version: 1.2.5 resolution: "array.prototype.findlast@npm:1.2.5" dependencies: @@ -6303,82 +6184,70 @@ __metadata: languageName: node linkType: hard -"array.prototype.findlastindex@npm:^1.2.3": - version: 1.2.5 - resolution: "array.prototype.findlastindex@npm:1.2.5" +"array.prototype.findlastindex@npm:^1.2.5": + version: 1.2.6 + resolution: "array.prototype.findlastindex@npm:1.2.6" dependencies: - call-bind: ^1.0.7 + call-bind: ^1.0.8 + call-bound: ^1.0.4 define-properties: ^1.2.1 - es-abstract: ^1.23.2 + es-abstract: ^1.23.9 es-errors: ^1.3.0 - es-object-atoms: ^1.0.0 - es-shim-unscopables: ^1.0.2 - checksum: 2c81cff2a75deb95bf1ed89b6f5f2bfbfb882211e3b7cc59c3d6b87df774cd9d6b36949a8ae39ac476e092c1d4a4905f5ee11a86a456abb10f35f8211ae4e710 + es-object-atoms: ^1.1.1 + es-shim-unscopables: ^1.1.0 + checksum: bd2665bd51f674d4e1588ce5d5848a8adb255f414070e8e652585598b801480516df2c6cef2c60b6ea1a9189140411c49157a3f112d52e9eabb4e9fc80936ea6 languageName: node linkType: hard "array.prototype.flat@npm:^1.3.1, array.prototype.flat@npm:^1.3.2": - version: 1.3.2 - resolution: "array.prototype.flat@npm:1.3.2" - dependencies: - call-bind: ^1.0.2 - define-properties: ^1.2.0 - es-abstract: ^1.22.1 - es-shim-unscopables: ^1.0.0 - checksum: 5d6b4bf102065fb3f43764bfff6feb3295d372ce89591e6005df3d0ce388527a9f03c909af6f2a973969a4d178ab232ffc9236654149173e0e187ec3a1a6b87b - languageName: node - linkType: hard - -"array.prototype.flatmap@npm:^1.3.2": - version: 1.3.2 - resolution: "array.prototype.flatmap@npm:1.3.2" + version: 1.3.3 + resolution: "array.prototype.flat@npm:1.3.3" dependencies: - call-bind: ^1.0.2 - define-properties: ^1.2.0 - es-abstract: ^1.22.1 - es-shim-unscopables: ^1.0.0 - checksum: ce09fe21dc0bcd4f30271f8144083aa8c13d4639074d6c8dc82054b847c7fc9a0c97f857491f4da19d4003e507172a78f4bcd12903098adac8b9cd374f734be3 + call-bind: ^1.0.8 + define-properties: ^1.2.1 + es-abstract: ^1.23.5 + es-shim-unscopables: ^1.0.2 + checksum: 5d5a7829ab2bb271a8d30a1c91e6271cef0ec534593c0fe6d2fb9ebf8bb62c1e5326e2fddcbbcbbe5872ca04f5e6b54a1ecf092e0af704fb538da9b2bfd95b40 languageName: node linkType: hard -"array.prototype.toreversed@npm:^1.1.2": - version: 1.1.2 - resolution: "array.prototype.toreversed@npm:1.1.2" +"array.prototype.flatmap@npm:^1.3.2, array.prototype.flatmap@npm:^1.3.3": + version: 1.3.3 + resolution: "array.prototype.flatmap@npm:1.3.3" dependencies: - call-bind: ^1.0.2 - define-properties: ^1.2.0 - es-abstract: ^1.22.1 - es-shim-unscopables: ^1.0.0 - checksum: 58598193426282155297bedf950dc8d464624a0d81659822fb73124286688644cb7e0e4927a07f3ab2daaeb6617b647736cc3a5e6ca7ade5bb8e573b284e6240 + call-bind: ^1.0.8 + define-properties: ^1.2.1 + es-abstract: ^1.23.5 + es-shim-unscopables: ^1.0.2 + checksum: 11b4de09b1cf008be6031bb507d997ad6f1892e57dc9153583de6ebca0f74ea403fffe0f203461d359de05048d609f3f480d9b46fed4099652d8b62cc972f284 languageName: node linkType: hard -"array.prototype.tosorted@npm:^1.1.3": - version: 1.1.3 - resolution: "array.prototype.tosorted@npm:1.1.3" +"array.prototype.tosorted@npm:^1.1.4": + version: 1.1.4 + resolution: "array.prototype.tosorted@npm:1.1.4" dependencies: - call-bind: ^1.0.5 + call-bind: ^1.0.7 define-properties: ^1.2.1 - es-abstract: ^1.22.3 - es-errors: ^1.1.0 + es-abstract: ^1.23.3 + es-errors: ^1.3.0 es-shim-unscopables: ^1.0.2 - checksum: 555e8808086bbde9e634c5dc5a8c0a2f1773075447b43b2fa76ab4f94f4e90f416d2a4f881024e1ce1a2931614caf76cd6b408af901c9d7cd13061d0d268f5af + checksum: e4142d6f556bcbb4f393c02e7dbaea9af8f620c040450c2be137c9cbbd1a17f216b9c688c5f2c08fbb038ab83f55993fa6efdd9a05881d84693c7bcb5422127a languageName: node linkType: hard -"arraybuffer.prototype.slice@npm:^1.0.3": - version: 1.0.3 - resolution: "arraybuffer.prototype.slice@npm:1.0.3" +"arraybuffer.prototype.slice@npm:^1.0.4": + version: 1.0.4 + resolution: "arraybuffer.prototype.slice@npm:1.0.4" dependencies: array-buffer-byte-length: ^1.0.1 - call-bind: ^1.0.5 + call-bind: ^1.0.8 define-properties: ^1.2.1 - es-abstract: ^1.22.3 - es-errors: ^1.2.1 - get-intrinsic: ^1.2.3 + es-abstract: ^1.23.5 + es-errors: ^1.3.0 + get-intrinsic: ^1.2.6 is-array-buffer: ^3.0.4 - is-shared-array-buffer: ^1.0.2 - checksum: 352259cba534dcdd969c92ab002efd2ba5025b2e3b9bead3973150edbdf0696c629d7f4b3f061c5931511e8207bdc2306da614703c820b45dabce39e3daf7e3e + checksum: b1d1fd20be4e972a3779b1569226f6740170dca10f07aa4421d42cefeec61391e79c557cda8e771f5baefe47d878178cd4438f60916ce831813c08132bced765 languageName: node linkType: hard @@ -6436,6 +6305,13 @@ __metadata: languageName: node linkType: hard +"async-function@npm:^1.0.0": + version: 1.0.0 + resolution: "async-function@npm:1.0.0" + checksum: 9102e246d1ed9b37ac36f57f0a6ca55226876553251a31fc80677e71471f463a54c872dc78d5d7f80740c8ba624395cccbe8b60f7b690c4418f487d8e9fd1106 + languageName: node + linkType: hard + "async-validator@npm:^4.1.0": version: 4.2.5 resolution: "async-validator@npm:4.2.5" @@ -6444,9 +6320,9 @@ __metadata: linkType: hard "async@npm:^3.2.3": - version: 3.2.5 - resolution: "async@npm:3.2.5" - checksum: 5ec77f1312301dee02d62140a6b1f7ee0edd2a0f983b6fd2b0849b969f245225b990b47b8243e7b9ad16451a53e7f68e753700385b706198ced888beedba3af4 + version: 3.2.6 + resolution: "async@npm:3.2.6" + checksum: ee6eb8cd8a0ab1b58bd2a3ed6c415e93e773573a91d31df9d5ef559baafa9dab37d3b096fa7993e84585cac3697b2af6ddb9086f45d3ac8cae821bb2aab65682 languageName: node linkType: hard @@ -6474,47 +6350,34 @@ __metadata: linkType: hard "aws4@npm:^1.8.0": - version: 1.12.0 - resolution: "aws4@npm:1.12.0" - checksum: 68f79708ac7c335992730bf638286a3ee0a645cf12575d557860100767c500c08b30e24726b9f03265d74116417f628af78509e1333575e9f8d52a80edfe8cbc + version: 1.13.2 + resolution: "aws4@npm:1.13.2" + checksum: 9ac924e4a91c088b4928ea86b68d8c4558b0e6289ccabaae0e3e96a611bd75277c2eab6e3965821028768700516f612b929a5ce822f33a8771f74ba2a8cedb9c languageName: node linkType: hard -"axe-core@npm:=4.7.0": - version: 4.7.0 - resolution: "axe-core@npm:4.7.0" - checksum: f086bcab42be1761ba2b0b127dec350087f4c3a853bba8dd58f69d898cefaac31a1561da23146f6f3c07954c76171d1f2ce460e555e052d2b02cd79af628fa4a - languageName: node - linkType: hard - -"axios@npm:^1.6.7": - version: 1.6.8 - resolution: "axios@npm:1.6.8" - dependencies: - follow-redirects: ^1.15.6 - form-data: ^4.0.0 - proxy-from-env: ^1.1.0 - checksum: bf007fa4b207d102459300698620b3b0873503c6d47bf5a8f6e43c0c64c90035a4f698b55027ca1958f61ab43723df2781c38a99711848d232cad7accbcdfcdd +"axe-core@npm:^4.10.0": + version: 4.10.3 + resolution: "axe-core@npm:4.10.3" + checksum: e89fa5bcad9216f2de29bbdf95d6211d8c5b1025cbdcf56b6695c18b2e9a1eebd0b997a0141334169f6f062fc68fd39a5b97f86348d9f5be05958eade5c1ec78 languageName: node linkType: hard -"axios@npm:^1.7.4, axios@npm:^1.7.7": - version: 1.7.7 - resolution: "axios@npm:1.7.7" +"axios@npm:^1.7.4, axios@npm:^1.7.7, axios@npm:^1.8.3": + version: 1.9.0 + resolution: "axios@npm:1.9.0" dependencies: follow-redirects: ^1.15.6 form-data: ^4.0.0 proxy-from-env: ^1.1.0 - checksum: 882d4fe0ec694a07c7f5c1f68205eb6dc5a62aecdb632cc7a4a3d0985188ce3030e0b277e1a8260ac3f194d314ae342117660a151fabffdc5081ca0b5a8b47fe + checksum: 631f02c9c279f2ae90637a4989cc9d75c1c27aefd16b6e8eb90f98a4d0bddaccfd1cb1387be12101d1ab0f9bbf0c47e2451b4de0cf2870462a7d9ed3de8da3f2 languageName: node linkType: hard -"axobject-query@npm:^3.2.1": - version: 3.2.1 - resolution: "axobject-query@npm:3.2.1" - dependencies: - dequal: ^2.0.3 - checksum: a94047e702b57c91680e6a952ec4a1aaa2cfd0d80ead76bc8c954202980d8c51968a6ea18b4d8010e8e2cf95676533d8022a8ebba9abc1dfe25686721df26fd2 +"axobject-query@npm:^4.1.0": + version: 4.1.0 + resolution: "axobject-query@npm:4.1.0" + checksum: 7d1e87bf0aa7ae7a76cd39ab627b7c48fda3dc40181303d9adce4ba1d5b5ce73b5e5403ee6626ec8e91090448c887294d6144e24b6741a976f5be9347e3ae1df languageName: node linkType: hard @@ -6536,15 +6399,15 @@ __metadata: linkType: hard "babel-loader@npm:^9.1.3": - version: 9.1.3 - resolution: "babel-loader@npm:9.1.3" + version: 9.2.1 + resolution: "babel-loader@npm:9.2.1" dependencies: find-cache-dir: ^4.0.0 schema-utils: ^4.0.0 peerDependencies: "@babel/core": ^7.12.0 webpack: ">=5" - checksum: b168dde5b8cf11206513371a79f86bb3faa7c714e6ec9fffd420876b61f3d7f5f4b976431095ef6a14bc4d324505126deb91045fd41e312ba49f4deaa166fe28 + checksum: e1858d7625ad7cc8cabe6bbb8657f957041ffb1308375f359e92aa1654f413bfbb86a281bbf7cd4f7fff374d571c637b117551deac0231d779a198d4e4e78331 languageName: node linkType: hard @@ -6594,38 +6457,38 @@ __metadata: linkType: hard "babel-plugin-polyfill-corejs2@npm:^0.4.10": - version: 0.4.11 - resolution: "babel-plugin-polyfill-corejs2@npm:0.4.11" + version: 0.4.13 + resolution: "babel-plugin-polyfill-corejs2@npm:0.4.13" dependencies: "@babel/compat-data": ^7.22.6 - "@babel/helper-define-polyfill-provider": ^0.6.2 + "@babel/helper-define-polyfill-provider": ^0.6.4 semver: ^6.3.1 peerDependencies: "@babel/core": ^7.4.0 || ^8.0.0-0 <8.0.0 - checksum: f098353ce7c7dde1a1d2710858e01b471e85689110c9e37813e009072347eb8c55d5f84d20d3bf1cab31755f20078ba90f8855fdc4686a9daa826a95ff280bd7 + checksum: 553b64eb11bad2cfc220e94f1fb2449755b5c7d54886dca6d8053b13b6e910f349a38bbc75aafd610f88217699db499548919bb5df653d635b9cdeb39d34a68d languageName: node linkType: hard -"babel-plugin-polyfill-corejs3@npm:^0.10.1, babel-plugin-polyfill-corejs3@npm:^0.10.4": - version: 0.10.4 - resolution: "babel-plugin-polyfill-corejs3@npm:0.10.4" +"babel-plugin-polyfill-corejs3@npm:^0.11.0": + version: 0.11.1 + resolution: "babel-plugin-polyfill-corejs3@npm:0.11.1" dependencies: - "@babel/helper-define-polyfill-provider": ^0.6.1 - core-js-compat: ^3.36.1 + "@babel/helper-define-polyfill-provider": ^0.6.3 + core-js-compat: ^3.40.0 peerDependencies: "@babel/core": ^7.4.0 || ^8.0.0-0 <8.0.0 - checksum: b96a54495f7cc8b3797251c8c15f5ed015edddc3110fc122f6b32c94bec33af1e8bc56fa99091808f500bde0cccaaa266889cdc5935d9e6e9cf09898214f02dd + checksum: ee39440475ef377a1570ccbc06b1a1d274cbfbbe2e7c3d4c60f38781a47f00a28bd10d8e23430828b965820c41beb2c93c84596baf72583a2c9c3fdfa4397994 languageName: node linkType: hard "babel-plugin-polyfill-regenerator@npm:^0.6.1": - version: 0.6.2 - resolution: "babel-plugin-polyfill-regenerator@npm:0.6.2" + version: 0.6.4 + resolution: "babel-plugin-polyfill-regenerator@npm:0.6.4" dependencies: - "@babel/helper-define-polyfill-provider": ^0.6.2 + "@babel/helper-define-polyfill-provider": ^0.6.4 peerDependencies: "@babel/core": ^7.4.0 || ^8.0.0-0 <8.0.0 - checksum: 150233571072b6b3dfe946242da39cba8587b7f908d1c006f7545fc88b0e3c3018d445739beb61e7a75835f0c2751dbe884a94ff9b245ec42369d9267e0e1b3f + checksum: f4d4a803834ffa72713579d696586d8cc654c0025cbd5ec775fc5d37faa00381dcb80e5b97d4b16059443352653585596d87848b5590b1d8670c235408e73fb3 languageName: node linkType: hard @@ -6683,24 +6546,27 @@ __metadata: linkType: hard "babel-preset-current-node-syntax@npm:^1.0.0": - version: 1.0.1 - resolution: "babel-preset-current-node-syntax@npm:1.0.1" + version: 1.1.0 + resolution: "babel-preset-current-node-syntax@npm:1.1.0" dependencies: "@babel/plugin-syntax-async-generators": ^7.8.4 "@babel/plugin-syntax-bigint": ^7.8.3 - "@babel/plugin-syntax-class-properties": ^7.8.3 - "@babel/plugin-syntax-import-meta": ^7.8.3 + "@babel/plugin-syntax-class-properties": ^7.12.13 + "@babel/plugin-syntax-class-static-block": ^7.14.5 + "@babel/plugin-syntax-import-attributes": ^7.24.7 + "@babel/plugin-syntax-import-meta": ^7.10.4 "@babel/plugin-syntax-json-strings": ^7.8.3 - "@babel/plugin-syntax-logical-assignment-operators": ^7.8.3 + "@babel/plugin-syntax-logical-assignment-operators": ^7.10.4 "@babel/plugin-syntax-nullish-coalescing-operator": ^7.8.3 - "@babel/plugin-syntax-numeric-separator": ^7.8.3 + "@babel/plugin-syntax-numeric-separator": ^7.10.4 "@babel/plugin-syntax-object-rest-spread": ^7.8.3 "@babel/plugin-syntax-optional-catch-binding": ^7.8.3 "@babel/plugin-syntax-optional-chaining": ^7.8.3 - "@babel/plugin-syntax-top-level-await": ^7.8.3 + "@babel/plugin-syntax-private-property-in-object": ^7.14.5 + "@babel/plugin-syntax-top-level-await": ^7.14.5 peerDependencies: "@babel/core": ^7.0.0 - checksum: d118c2742498c5492c095bc8541f4076b253e705b5f1ad9a2e7d302d81a84866f0070346662355c8e25fc02caa28dc2da8d69bcd67794a0d60c4d6fab6913cc8 + checksum: 9f93fac975eaba296c436feeca1031ca0539143c4066eaf5d1ba23525a31850f03b651a1049caea7287df837a409588c8252c15627ad3903f17864c8e25ed64b languageName: node linkType: hard @@ -6717,8 +6583,8 @@ __metadata: linkType: hard "babel-preset-react-app@npm:^10.0.1": - version: 10.0.1 - resolution: "babel-preset-react-app@npm:10.0.1" + version: 10.1.0 + resolution: "babel-preset-react-app@npm:10.1.0" dependencies: "@babel/core": ^7.16.0 "@babel/plugin-proposal-class-properties": ^7.16.0 @@ -6727,6 +6593,7 @@ __metadata: "@babel/plugin-proposal-numeric-separator": ^7.16.0 "@babel/plugin-proposal-optional-chaining": ^7.16.0 "@babel/plugin-proposal-private-methods": ^7.16.0 + "@babel/plugin-proposal-private-property-in-object": ^7.16.7 "@babel/plugin-transform-flow-strip-types": ^7.16.0 "@babel/plugin-transform-react-display-name": ^7.16.0 "@babel/plugin-transform-runtime": ^7.16.4 @@ -6736,7 +6603,7 @@ __metadata: "@babel/runtime": ^7.16.3 babel-plugin-macros: ^3.1.0 babel-plugin-transform-react-remove-prop-types: ^0.4.24 - checksum: ee66043484e67b8aef2541976388299691478ea00834f3bb14b6b3d5edcd316a5ac95351f6ec084b41ee555cad820d4194280ad38ce51884fedc7e8946a57b74 + checksum: e4ac6c85be4f56c7e45b52700e04aed01422221b5c988e7a192a80d3b5aa3abbd415c0b76e8b5d564a411477a0b03323a15108663a9f541bd9397fa32f28ed89 languageName: node linkType: hard @@ -6812,16 +6679,16 @@ __metadata: linkType: hard "big.js@npm:^6.2.1": - version: 6.2.1 - resolution: "big.js@npm:6.2.1" - checksum: 0b234a2fd56c52bed2798ed2020bcab6fef5e9523b99a05406ad071d1aed6ee97ada9fb8de9576092da74c68825c276e19015743b8d1baea269b60a5c666b0cd + version: 6.2.2 + resolution: "big.js@npm:6.2.2" + checksum: 3659092d155d01338f21a01a46a93aa343d25e83bce55700005a46eec27d90fe56abd3b3edde742f16fbc5fee31b4c572b6821a595c1c180392b60b469fcda54 languageName: node linkType: hard "bignumber.js@npm:^8 || ^9": - version: 9.1.2 - resolution: "bignumber.js@npm:9.1.2" - checksum: 582c03af77ec9cb0ebd682a373ee6c66475db94a4325f92299621d544aa4bd45cb45fd60001610e94aef8ae98a0905fa538241d9638d4422d57abbeeac6fadaf + version: 9.3.0 + resolution: "bignumber.js@npm:9.3.0" + checksum: 580d783d60246e758e527fa879ae0d282d8f250f555dd0fcee1227d680186ceba49ed7964c6d14e2e8d8eac7a2f4dd6ef1b7925dc52f5fc28a5a87639dd2dbd1 languageName: node linkType: hard @@ -6842,22 +6709,22 @@ __metadata: linkType: hard "bn.js@npm:^4.0.0, bn.js@npm:^4.1.0, bn.js@npm:^4.11.9": - version: 4.12.0 - resolution: "bn.js@npm:4.12.0" - checksum: 39afb4f15f4ea537b55eaf1446c896af28ac948fdcf47171961475724d1bb65118cca49fa6e3d67706e4790955ec0e74de584e45c8f1ef89f46c812bee5b5a12 + version: 4.12.2 + resolution: "bn.js@npm:4.12.2" + checksum: dd224afda6f5a7d15f2fe5154e1a1c245576a725584ea1852c8c42f9748dfe847bc63a48b2885360023389a24cfebb3653ca97f4c69742f3c22bc63da6565030 languageName: node linkType: hard -"bn.js@npm:^5.0.0, bn.js@npm:^5.2.1": - version: 5.2.1 - resolution: "bn.js@npm:5.2.1" - checksum: 3dd8c8d38055fedfa95c1d5fc3c99f8dd547b36287b37768db0abab3c239711f88ff58d18d155dd8ad902b0b0cee973747b7ae20ea12a09473272b0201c9edd3 +"bn.js@npm:^5.2.1": + version: 5.2.2 + resolution: "bn.js@npm:5.2.2" + checksum: 4384d35fef785c757eb050bc1f13d60dd8e37662ca72392ae6678b35cfa2a2ae8f0494291086294683a7d977609c7878ac3cff08ecca7f74c3ca73f3acbadbe8 languageName: node linkType: hard -"body-parser@npm:1.20.2": - version: 1.20.2 - resolution: "body-parser@npm:1.20.2" +"body-parser@npm:1.20.3": + version: 1.20.3 + resolution: "body-parser@npm:1.20.3" dependencies: bytes: 3.1.2 content-type: ~1.0.5 @@ -6867,21 +6734,21 @@ __metadata: http-errors: 2.0.0 iconv-lite: 0.4.24 on-finished: 2.4.1 - qs: 6.11.0 + qs: 6.13.0 raw-body: 2.5.2 type-is: ~1.6.18 unpipe: 1.0.0 - checksum: 14d37ec638ab5c93f6099ecaed7f28f890d222c650c69306872e00b9efa081ff6c596cd9afb9930656aae4d6c4e1c17537bea12bb73c87a217cb3cfea8896737 + checksum: 1a35c59a6be8d852b00946330141c4f142c6af0f970faa87f10ad74f1ee7118078056706a05ae3093c54dabca9cd3770fa62a170a85801da1a4324f04381167d languageName: node linkType: hard "bonjour-service@npm:^1.2.1": - version: 1.2.1 - resolution: "bonjour-service@npm:1.2.1" + version: 1.3.0 + resolution: "bonjour-service@npm:1.3.0" dependencies: fast-deep-equal: ^3.1.3 multicast-dns: ^7.2.5 - checksum: b65b3e6e3a07e97f2da5806afb76f3946d5a6426b72e849a0236dc3c9d3612fb8c5359ebade4be7eb63f74a37670c53a53be2ff17f4f709811fda77f600eb25b + checksum: 737bd40d0b609b18afdfcaf3c416a60d7dc94aedc4cb9d6e7af459a7f3bdffadc199370a48c46739d92689741cad4ec8a6987a3e4d869dd301b521227b92e082 languageName: node linkType: hard @@ -6911,12 +6778,12 @@ __metadata: languageName: node linkType: hard -"braces@npm:^3.0.2, braces@npm:~3.0.2": - version: 3.0.2 - resolution: "braces@npm:3.0.2" +"braces@npm:^3.0.2, braces@npm:^3.0.3, braces@npm:~3.0.2": + version: 3.0.3 + resolution: "braces@npm:3.0.3" dependencies: - fill-range: ^7.0.1 - checksum: e2a8e769a863f3d4ee887b5fe21f63193a891c68b612ddb4b68d82d1b5f3ff9073af066c343e9867a393fe4c2555dcb33e89b937195feb9c1613d259edfcd459 + fill-range: ^7.1.1 + checksum: b95aa0b3bd909f6cd1720ffcf031aeaf46154dd88b4da01f9a1d3f7ea866a79eba76a6d01cbc3c422b2ee5cdc39a4f02491058d5df0d7bf6e6a162a832df1f69 languageName: node linkType: hard @@ -6957,7 +6824,7 @@ __metadata: languageName: node linkType: hard -"browserify-cipher@npm:^1.0.0": +"browserify-cipher@npm:^1.0.1": version: 1.0.1 resolution: "browserify-cipher@npm:1.0.1" dependencies: @@ -6992,16 +6859,17 @@ __metadata: linkType: hard "browserify-rsa@npm:^4.0.0, browserify-rsa@npm:^4.1.0": - version: 4.1.0 - resolution: "browserify-rsa@npm:4.1.0" + version: 4.1.1 + resolution: "browserify-rsa@npm:4.1.1" dependencies: - bn.js: ^5.0.0 - randombytes: ^2.0.1 - checksum: 155f0c135873efc85620571a33d884aa8810e40176125ad424ec9d85016ff105a07f6231650914a760cca66f29af0494087947b7be34880dd4599a0cd3c38e54 + bn.js: ^5.2.1 + randombytes: ^2.1.0 + safe-buffer: ^5.2.1 + checksum: 2628508646331791c29312bbf274c076a237437a17178ea9bdc75c577fb4164a0da0b137deaadf6ade623701332377c5c2ceb0ff6f991c744a576e790ec95852 languageName: node linkType: hard -"browserify-sign@npm:^4.0.0": +"browserify-sign@npm:^4.2.3": version: 4.2.3 resolution: "browserify-sign@npm:4.2.3" dependencies: @@ -7028,17 +6896,17 @@ __metadata: languageName: node linkType: hard -"browserslist@npm:^4.21.10, browserslist@npm:^4.22.2, browserslist@npm:^4.23.0": - version: 4.23.0 - resolution: "browserslist@npm:4.23.0" +"browserslist@npm:^4.24.0, browserslist@npm:^4.24.4": + version: 4.24.5 + resolution: "browserslist@npm:4.24.5" dependencies: - caniuse-lite: ^1.0.30001587 - electron-to-chromium: ^1.4.668 - node-releases: ^2.0.14 - update-browserslist-db: ^1.0.13 + caniuse-lite: ^1.0.30001716 + electron-to-chromium: ^1.5.149 + node-releases: ^2.0.19 + update-browserslist-db: ^1.1.3 bin: browserslist: cli.js - checksum: 436f49e796782ca751ebab7edc010cfc9c29f68536f387666cd70ea22f7105563f04dd62c6ff89cb24cc3254d17cba385f979eeeb3484d43e012412ff7e75def + checksum: 69310ade58b0cb2b2871022fdaba8388902f9a2d17a6fa05f383d046d6da87fd9f83018a66fe1c6296648ca7d52e3208c3fc68c82f17a0fd4bf12a452c036247 languageName: node linkType: hard @@ -7115,13 +6983,6 @@ __metadata: languageName: node linkType: hard -"bytes@npm:3.0.0": - version: 3.0.0 - resolution: "bytes@npm:3.0.0" - checksum: a2b386dd8188849a5325f58eef69c3b73c51801c08ffc6963eddc9be244089ba32d19347caf6d145c86f315ae1b1fc7061a32b0c1aa6379e6a719090287ed101 - languageName: node - linkType: hard - "bytes@npm:3.1.2": version: 3.1.2 resolution: "bytes@npm:3.1.2" @@ -7129,11 +6990,11 @@ __metadata: languageName: node linkType: hard -"cacache@npm:^18.0.0": - version: 18.0.2 - resolution: "cacache@npm:18.0.2" +"cacache@npm:^19.0.1": + version: 19.0.1 + resolution: "cacache@npm:19.0.1" dependencies: - "@npmcli/fs": ^3.1.0 + "@npmcli/fs": ^4.0.0 fs-minipass: ^3.0.0 glob: ^10.2.2 lru-cache: ^10.0.1 @@ -7141,24 +7002,43 @@ __metadata: minipass-collect: ^2.0.1 minipass-flush: ^1.0.5 minipass-pipeline: ^1.2.4 - p-map: ^4.0.0 - ssri: ^10.0.0 - tar: ^6.1.11 - unique-filename: ^3.0.0 - checksum: 0250df80e1ad0c828c956744850c5f742c24244e9deb5b7dc81bca90f8c10e011e132ecc58b64497cc1cad9a98968676147fb6575f4f94722f7619757b17a11b + p-map: ^7.0.2 + ssri: ^12.0.0 + tar: ^7.4.3 + unique-filename: ^4.0.0 + checksum: e95684717de6881b4cdaa949fa7574e3171946421cd8291769dd3d2417dbf7abf4aa557d1f968cca83dcbc95bed2a281072b09abfc977c942413146ef7ed4525 languageName: node linkType: hard -"call-bind@npm:^1.0.0, call-bind@npm:^1.0.2, call-bind@npm:^1.0.5, call-bind@npm:^1.0.6, call-bind@npm:^1.0.7": - version: 1.0.7 - resolution: "call-bind@npm:1.0.7" +"call-bind-apply-helpers@npm:^1.0.0, call-bind-apply-helpers@npm:^1.0.1, call-bind-apply-helpers@npm:^1.0.2": + version: 1.0.2 + resolution: "call-bind-apply-helpers@npm:1.0.2" dependencies: - es-define-property: ^1.0.0 es-errors: ^1.3.0 function-bind: ^1.1.2 + checksum: b2863d74fcf2a6948221f65d95b91b4b2d90cfe8927650b506141e669f7d5de65cea191bf788838bc40d13846b7886c5bc5c84ab96c3adbcf88ad69a72fcdc6b + languageName: node + linkType: hard + +"call-bind@npm:^1.0.0, call-bind@npm:^1.0.2, call-bind@npm:^1.0.5, call-bind@npm:^1.0.7, call-bind@npm:^1.0.8": + version: 1.0.8 + resolution: "call-bind@npm:1.0.8" + dependencies: + call-bind-apply-helpers: ^1.0.0 + es-define-property: ^1.0.0 get-intrinsic: ^1.2.4 - set-function-length: ^1.2.1 - checksum: 295c0c62b90dd6522e6db3b0ab1ce26bdf9e7404215bda13cfee25b626b5ff1a7761324d58d38b1ef1607fc65aca2d06e44d2e18d0dfc6c14b465b00d8660029 + set-function-length: ^1.2.2 + checksum: aa2899bce917a5392fd73bd32e71799c37c0b7ab454e0ed13af7f6727549091182aade8bbb7b55f304a5bc436d543241c14090fb8a3137e9875e23f444f4f5a9 + languageName: node + linkType: hard + +"call-bound@npm:^1.0.2, call-bound@npm:^1.0.3, call-bound@npm:^1.0.4": + version: 1.0.4 + resolution: "call-bound@npm:1.0.4" + dependencies: + call-bind-apply-helpers: ^1.0.2 + get-intrinsic: ^1.3.0 + checksum: 2f6399488d1c272f56306ca60ff696575e2b7f31daf23bc11574798c84d9f2759dceb0cb1f471a85b77f28962a7ac6411f51d283ea2e45319009a19b6ccab3b2 languageName: node linkType: hard @@ -7200,17 +7080,10 @@ __metadata: languageName: node linkType: hard -"can-use-dom@npm:^0.1.0": - version: 0.1.0 - resolution: "can-use-dom@npm:0.1.0" - checksum: 488fc94c40f2fcce46ebd41abf17ef0449acf0d6b145116036cd592a8e977e5729918d4b3b7c642ce7b1f5b83d330ade39a172cf6b6ef91093785991a868b308 - languageName: node - linkType: hard - -"caniuse-lite@npm:^1.0.30001587": - version: 1.0.30001613 - resolution: "caniuse-lite@npm:1.0.30001613" - checksum: 909bae9083aecd4b7488d39b66f454448f52a64bceab4f512720775bcff16aa00124fc3439ee76b1e3bb5b795ea54a7cc9a5ece0affa31c07657447cf198a9e2 +"caniuse-lite@npm:^1.0.30001716": + version: 1.0.30001718 + resolution: "caniuse-lite@npm:1.0.30001718" + checksum: c6598b6eb2c4358fc9f8ead8982bf5f9efdc1f29bb74948b9481d314ced10675bd0beb99771094ac52d56c2cec121049d1f18e9405cab7d81807816d1836b38a languageName: node linkType: hard @@ -7262,17 +7135,6 @@ __metadata: languageName: node linkType: hard -"chalk@npm:^2.4.2": - version: 2.4.2 - resolution: "chalk@npm:2.4.2" - dependencies: - ansi-styles: ^3.2.1 - escape-string-regexp: ^1.0.5 - supports-color: ^5.3.0 - checksum: ec3661d38fe77f681200f878edbd9448821924e0f93a9cefc0e26a33b145f1027a2084bf19967160d11e1f03bfe4eaffcabf5493b89098b2782c3fe0b03d80c2 - languageName: node - linkType: hard - "chalk@npm:^3.0.0": version: 3.0.0 resolution: "chalk@npm:3.0.0" @@ -7337,17 +7199,17 @@ __metadata: languageName: node linkType: hard -"chownr@npm:^2.0.0": - version: 2.0.0 - resolution: "chownr@npm:2.0.0" - checksum: c57cf9dd0791e2f18a5ee9c1a299ae6e801ff58fee96dc8bfd0dcb4738a6ce58dd252a3605b1c93c6418fe4f9d5093b28ffbf4d66648cb2a9c67eaef9679be2f +"chownr@npm:^3.0.0": + version: 3.0.0 + resolution: "chownr@npm:3.0.0" + checksum: fd73a4bab48b79e66903fe1cafbdc208956f41ea4f856df883d0c7277b7ab29fd33ee65f93b2ec9192fc0169238f2f8307b7735d27c155821d886b84aa97aa8d languageName: node linkType: hard "chrome-trace-event@npm:^1.0.2": - version: 1.0.3 - resolution: "chrome-trace-event@npm:1.0.3" - checksum: cb8b1fc7e881aaef973bd0c4a43cd353c2ad8323fb471a041e64f7c2dd849cde4aad15f8b753331a32dda45c973f032c8a03b8177fc85d60eaa75e91e08bfb97 + version: 1.0.4 + resolution: "chrome-trace-event@npm:1.0.4" + checksum: fcbbd9dd0cd5b48444319007cc0c15870fd8612cc0df320908aa9d5e8a244084d48571eb28bf3c58c19327d2c5838f354c2d89fac3956d8e992273437401ac19 languageName: node linkType: hard @@ -7359,19 +7221,19 @@ __metadata: linkType: hard "cipher-base@npm:^1.0.0, cipher-base@npm:^1.0.1, cipher-base@npm:^1.0.3": - version: 1.0.4 - resolution: "cipher-base@npm:1.0.4" + version: 1.0.6 + resolution: "cipher-base@npm:1.0.6" dependencies: - inherits: ^2.0.1 - safe-buffer: ^5.0.1 - checksum: 47d3568dbc17431a339bad1fe7dff83ac0891be8206911ace3d3b818fc695f376df809bea406e759cdea07fff4b454fa25f1013e648851bec790c1d75763032e + inherits: ^2.0.4 + safe-buffer: ^5.2.1 + checksum: 64a1738a8583163cf096bc85321a69ef3075bb0873f34cf89dc705e62b9eee058dd6b2e5c672f774ede0b6bdbe56fe7b710e0d38c4f08a2f355d8ab828f05c6f languageName: node linkType: hard "cjs-module-lexer@npm:^1.0.0": - version: 1.3.1 - resolution: "cjs-module-lexer@npm:1.3.1" - checksum: 75f20ac264a397ea5c63f9c2343a51ab878043666468f275e94862f7180ec1d764a400ec0c09085dcf0db3193c74a8b571519abd2bf4be0d2be510d1377c8d4b + version: 1.4.3 + resolution: "cjs-module-lexer@npm:1.4.3" + checksum: 221a1661a9ff4944b472c85ac7cd5029b2f2dc7f6c5f4ecf887f261503611110b43a48acb6c07f8f04109c772d1637fdb20b31252bf27058f35aa97bf5ad8b12 languageName: node linkType: hard @@ -7398,13 +7260,6 @@ __metadata: languageName: node linkType: hard -"clean-stack@npm:^2.0.0": - version: 2.2.0 - resolution: "clean-stack@npm:2.2.0" - checksum: 2ac8cd2b2f5ec986a3c743935ec85b07bc174d5421a5efc8017e1f146a1cf5f781ae962618f416352103b32c9cd7e203276e8c28241bbe946160cab16149fb68 - languageName: node - linkType: hard - "cli-cursor@npm:^4.0.0": version: 4.0.0 resolution: "cli-cursor@npm:4.0.0" @@ -7515,15 +7370,6 @@ __metadata: languageName: node linkType: hard -"color-convert@npm:^1.9.0": - version: 1.9.3 - resolution: "color-convert@npm:1.9.3" - dependencies: - color-name: 1.1.3 - checksum: fd7a64a17cde98fb923b1dd05c5f2e6f7aefda1b60d67e8d449f9328b4e53b228a428fd38bfeaeb2db2ff6b6503a776a996150b80cdf224062af08a5c8a3a203 - languageName: node - linkType: hard - "color-convert@npm:^2.0.1": version: 2.0.1 resolution: "color-convert@npm:2.0.1" @@ -7533,13 +7379,6 @@ __metadata: languageName: node linkType: hard -"color-name@npm:1.1.3": - version: 1.1.3 - resolution: "color-name@npm:1.1.3" - checksum: 09c5d3e33d2105850153b14466501f2bfb30324a2f76568a408763a3b7433b0e50e5b4ab1947868e65cb101bb7cb75029553f2c333b6d4b8138a73fcc133d69d - languageName: node - linkType: hard - "color-name@npm:^1.1.4, color-name@npm:~1.1.4": version: 1.1.4 resolution: "color-name@npm:1.1.4" @@ -7640,7 +7479,7 @@ __metadata: languageName: node linkType: hard -"compressible@npm:~2.0.16": +"compressible@npm:~2.0.18": version: 2.0.18 resolution: "compressible@npm:2.0.18" dependencies: @@ -7650,17 +7489,17 @@ __metadata: linkType: hard "compression@npm:^1.7.4": - version: 1.7.4 - resolution: "compression@npm:1.7.4" + version: 1.8.0 + resolution: "compression@npm:1.8.0" dependencies: - accepts: ~1.3.5 - bytes: 3.0.0 - compressible: ~2.0.16 + bytes: 3.1.2 + compressible: ~2.0.18 debug: 2.6.9 + negotiator: ~0.6.4 on-headers: ~1.0.2 - safe-buffer: 5.1.2 + safe-buffer: 5.2.1 vary: ~1.1.2 - checksum: 35c0f2eb1f28418978615dc1bc02075b34b1568f7f56c62d60f4214d4b7cc00d0f6d282b5f8a954f59872396bd770b6b15ffd8aa94c67d4bce9b8887b906999b + checksum: 12ca3e326b4ccb6b6e51e1d14d96fafd058ddb3be08fe888487d367d42fb4f81f25d4bf77acc517ba724370e7d74469280688baf2da8cad61062bdf62eb9fd45 languageName: node linkType: hard @@ -7785,10 +7624,10 @@ __metadata: languageName: node linkType: hard -"cookie@npm:0.6.0": - version: 0.6.0 - resolution: "cookie@npm:0.6.0" - checksum: f56a7d32a07db5458e79c726b77e3c2eff655c36792f2b6c58d351fb5f61531e5b1ab7f46987150136e366c65213cbe31729e02a3eaed630c3bf7334635fb410 +"cookie@npm:0.7.1": + version: 0.7.1 + resolution: "cookie@npm:0.7.1" + checksum: cec5e425549b3650eb5c3498a9ba3cde0b9cd419e3b36e4b92739d30b4d89e0b678b98c1ddc209ce7cf958cd3215671fd6ac47aec21f10c2a0cc68abd399d8a7 languageName: node linkType: hard @@ -7836,19 +7675,19 @@ coolshapes-react@lowcoder-org/coolshapes-react: languageName: node linkType: hard -"core-js-compat@npm:^3.31.0, core-js-compat@npm:^3.36.1": - version: 3.37.0 - resolution: "core-js-compat@npm:3.37.0" +"core-js-compat@npm:^3.40.0": + version: 3.42.0 + resolution: "core-js-compat@npm:3.42.0" dependencies: - browserslist: ^4.23.0 - checksum: cab5078e98625f889fd9bbbb19e84cb408f31c87e68302d380db0d26ae8e35c1b38cde084358ff345d4aa461af5f3c60d8a913a5b30bff3a83b4b7859374db36 + browserslist: ^4.24.4 + checksum: 4f0a7db9ed9a95c4edae0749fe9a4d4d4f8f51a53c7c3e06049887500e98763732e8afef9628d2145f875b6e262567e951a77e4d06273f9eac273f5241259fd3 languageName: node linkType: hard "core-js@npm:^3.25.2": - version: 3.37.0 - resolution: "core-js@npm:3.37.0" - checksum: 212c3e9b3fc277dbb63739ef58a61c5709ccd0b36f09c3ce6946aa91fa180c60f57f976d4a5fdb9cda0c6cb55417379ba5a008fc3a1384ec94ec8ec61826469d + version: 3.42.0 + resolution: "core-js@npm:3.42.0" + checksum: 270b5532511e2e6cc8e6b10c1434306208dca377aba3850875941316ce605b008ddbdeca0b6dd6eb2a4b188899dab259c0aecd7dc265bc5e7df19563e4e284b7 languageName: node linkType: hard @@ -7906,9 +7745,9 @@ coolshapes-react@lowcoder-org/coolshapes-react: linkType: hard "countup.js@npm:^2.8.0": - version: 2.8.0 - resolution: "countup.js@npm:2.8.0" - checksum: bfded0c6051b79be5f07c097f97bc39f29e95b92b01077fc214ee118b0afbc53988b3a491e2319ea7a1896014a9cda52f150722ccce9afd677faea5ade1274dd + version: 2.8.2 + resolution: "countup.js@npm:2.8.2" + checksum: b526db0a8ccefe2fba051343266f142004065787b533a1408265adcd07d20fb7d1f7ab688df5f77b83b9c21772926300d87f2c940dc8047770b458276ae3f471 languageName: node linkType: hard @@ -7921,7 +7760,7 @@ coolshapes-react@lowcoder-org/coolshapes-react: languageName: node linkType: hard -"create-ecdh@npm:^4.0.0": +"create-ecdh@npm:^4.0.4": version: 4.0.4 resolution: "create-ecdh@npm:4.0.4" dependencies: @@ -7944,7 +7783,7 @@ coolshapes-react@lowcoder-org/coolshapes-react: languageName: node linkType: hard -"create-hmac@npm:^1.1.0, create-hmac@npm:^1.1.4, create-hmac@npm:^1.1.7": +"create-hmac@npm:^1.1.4, create-hmac@npm:^1.1.7": version: 1.1.7 resolution: "create-hmac@npm:1.1.7" dependencies: @@ -7999,41 +7838,42 @@ coolshapes-react@lowcoder-org/coolshapes-react: linkType: hard "cross-fetch@npm:^3.1.5": - version: 3.1.8 - resolution: "cross-fetch@npm:3.1.8" + version: 3.2.0 + resolution: "cross-fetch@npm:3.2.0" dependencies: - node-fetch: ^2.6.12 - checksum: 78f993fa099eaaa041122ab037fe9503ecbbcb9daef234d1d2e0b9230a983f64d645d088c464e21a247b825a08dc444a6e7064adfa93536d3a9454b4745b3632 + node-fetch: ^2.7.0 + checksum: 8ded5ea35f705e81e569e7db244a3f96e05e95996ff51877c89b0c1ec1163c76bb5dad77d0f8fba6bb35a0abacb36403d7271dc586d8b1f636110ee7a8d959fd languageName: node linkType: hard -"cross-spawn@npm:^7.0.0, cross-spawn@npm:^7.0.2, cross-spawn@npm:^7.0.3": - version: 7.0.3 - resolution: "cross-spawn@npm:7.0.3" +"cross-spawn@npm:^7.0.2, cross-spawn@npm:^7.0.3, cross-spawn@npm:^7.0.6": + version: 7.0.6 + resolution: "cross-spawn@npm:7.0.6" dependencies: path-key: ^3.1.0 shebang-command: ^2.0.0 which: ^2.0.1 - checksum: 671cc7c7288c3a8406f3c69a3ae2fc85555c04169e9d611def9a675635472614f1c0ed0ef80955d5b6d4e724f6ced67f0ad1bb006c2ea643488fcfef994d7f52 + checksum: 8d306efacaf6f3f60e0224c287664093fa9185680b2d195852ba9a863f85d02dcc737094c6e512175f8ee0161f9b87c73c6826034c2422e39de7d6569cf4503b languageName: node linkType: hard -"crypto-browserify@npm:^3.11.0": - version: 3.12.0 - resolution: "crypto-browserify@npm:3.12.0" +"crypto-browserify@npm:^3.11.0, crypto-browserify@npm:^3.12.1": + version: 3.12.1 + resolution: "crypto-browserify@npm:3.12.1" dependencies: - browserify-cipher: ^1.0.0 - browserify-sign: ^4.0.0 - create-ecdh: ^4.0.0 - create-hash: ^1.1.0 - create-hmac: ^1.1.0 - diffie-hellman: ^5.0.0 - inherits: ^2.0.1 - pbkdf2: ^3.0.3 - public-encrypt: ^4.0.0 - randombytes: ^2.0.0 - randomfill: ^1.0.3 - checksum: c1609af82605474262f3eaa07daa0b2140026bd264ab316d4bf1170272570dbe02f0c49e29407fe0d3634f96c507c27a19a6765fb856fed854a625f9d15618e2 + browserify-cipher: ^1.0.1 + browserify-sign: ^4.2.3 + create-ecdh: ^4.0.4 + create-hash: ^1.2.0 + create-hmac: ^1.1.7 + diffie-hellman: ^5.0.3 + hash-base: ~3.0.4 + inherits: ^2.0.4 + pbkdf2: ^3.1.2 + public-encrypt: ^4.0.3 + randombytes: ^2.1.0 + randomfill: ^1.0.4 + checksum: 4e643dd5acfff80fbe2cc567feb75a22d726cc4df34772c988f326976c3c1ee1f8a611a33498dab11568cff3e134f0bd44a0e1f4c216585e5877ab5327cdb6fc languageName: node linkType: hard @@ -8231,14 +8071,7 @@ coolshapes-react@lowcoder-org/coolshapes-react: languageName: node linkType: hard -"csstype@npm:3.1.2": - version: 3.1.2 - resolution: "csstype@npm:3.1.2" - checksum: e1a52e6c25c1314d6beef5168da704ab29c5186b877c07d822bd0806717d9a265e8493a2e35ca7e68d0f5d472d43fac1cdce70fd79fd0853dff81f3028d857b5 - languageName: node - linkType: hard - -"csstype@npm:^3.0.2, csstype@npm:^3.1.2, csstype@npm:^3.1.3": +"csstype@npm:3.1.3, csstype@npm:^3.0.2, csstype@npm:^3.1.2, csstype@npm:^3.1.3": version: 3.1.3 resolution: "csstype@npm:3.1.3" checksum: 8db785cc92d259102725b3c694ec0c823f5619a84741b5c7991b8ad135dfaa66093038a1cc63e03361a6cd28d122be48f2106ae72334e067dd619a51f49eddf7 @@ -8257,9 +8090,9 @@ coolshapes-react@lowcoder-org/coolshapes-react: linkType: hard "cytoscape@npm:^3.28.1": - version: 3.29.2 - resolution: "cytoscape@npm:3.29.2" - checksum: f42d9dc4e0791b1909d617c0f62fc9a982967362af8d585d4a42b9933887bea697be73d5d94d7bbaae5edccad2ac665dc46a2489271408d64b4fb2dc4ece3c15 + version: 3.32.0 + resolution: "cytoscape@npm:3.32.0" + checksum: 60da8ac39cdd6f1afaa527ee7c3d15dd65f61cd9e32cb4615c94933a045bea7cb38bd177a1df92a6882e08c85066b66123fb799091abf21dc4af52b63ad28ace languageName: node linkType: hard @@ -8692,36 +8525,36 @@ coolshapes-react@lowcoder-org/coolshapes-react: languageName: node linkType: hard -"data-view-buffer@npm:^1.0.1": - version: 1.0.1 - resolution: "data-view-buffer@npm:1.0.1" +"data-view-buffer@npm:^1.0.2": + version: 1.0.2 + resolution: "data-view-buffer@npm:1.0.2" dependencies: - call-bind: ^1.0.6 + call-bound: ^1.0.3 es-errors: ^1.3.0 - is-data-view: ^1.0.1 - checksum: ce24348f3c6231223b216da92e7e6a57a12b4af81a23f27eff8feabdf06acfb16c00639c8b705ca4d167f761cfc756e27e5f065d0a1f840c10b907fdaf8b988c + is-data-view: ^1.0.2 + checksum: 1e1cd509c3037ac0f8ba320da3d1f8bf1a9f09b0be09394b5e40781b8cc15ff9834967ba7c9f843a425b34f9fe14ce44cf055af6662c44263424c1eb8d65659b languageName: node linkType: hard -"data-view-byte-length@npm:^1.0.1": - version: 1.0.1 - resolution: "data-view-byte-length@npm:1.0.1" +"data-view-byte-length@npm:^1.0.2": + version: 1.0.2 + resolution: "data-view-byte-length@npm:1.0.2" dependencies: - call-bind: ^1.0.7 + call-bound: ^1.0.3 es-errors: ^1.3.0 - is-data-view: ^1.0.1 - checksum: dbb3200edcb7c1ef0d68979834f81d64fd8cab2f7691b3a4c6b97e67f22182f3ec2c8602efd7b76997b55af6ff8bce485829c1feda4fa2165a6b71fb7baa4269 + is-data-view: ^1.0.2 + checksum: 3600c91ced1cfa935f19ef2abae11029e01738de8d229354d3b2a172bf0d7e4ed08ff8f53294b715569fdf72dfeaa96aa7652f479c0f60570878d88e7e8bddf6 languageName: node linkType: hard -"data-view-byte-offset@npm:^1.0.0": - version: 1.0.0 - resolution: "data-view-byte-offset@npm:1.0.0" +"data-view-byte-offset@npm:^1.0.1": + version: 1.0.1 + resolution: "data-view-byte-offset@npm:1.0.1" dependencies: - call-bind: ^1.0.6 + call-bound: ^1.0.2 es-errors: ^1.3.0 is-data-view: ^1.0.1 - checksum: 7f0bf8720b7414ca719eedf1846aeec392f2054d7af707c5dc9a753cc77eb8625f067fa901e0b5127e831f9da9056138d894b9c2be79c27a21f6db5824f009c2 + checksum: 8dd492cd51d19970876626b5b5169fbb67ca31ec1d1d3238ee6a71820ca8b80cafb141c485999db1ee1ef02f2cc3b99424c5eda8d59e852d9ebb79ab290eb5ee languageName: node linkType: hard @@ -8734,20 +8567,13 @@ coolshapes-react@lowcoder-org/coolshapes-react: languageName: node linkType: hard -"dayjs@npm:1.x, dayjs@npm:^1.11.11": +"dayjs@npm:1.x, dayjs@npm:^1.11.11, dayjs@npm:^1.11.7, dayjs@npm:^1.9.1": version: 1.11.13 resolution: "dayjs@npm:1.11.13" checksum: f388db88a6aa93956c1f6121644e783391c7b738b73dbc54485578736565c8931bdfba4bb94e9b1535c6e509c97d5deb918bbe1ae6b34358d994de735055cca9 languageName: node linkType: hard -"dayjs@npm:^1.11.7, dayjs@npm:^1.9.1": - version: 1.11.10 - resolution: "dayjs@npm:1.11.10" - checksum: a6b5a3813b8884f5cd557e2e6b7fa569f4c5d0c97aca9558e38534af4f2d60daafd3ff8c2000fed3435cfcec9e805bcebd99f90130c6d1c5ef524084ced588c4 - languageName: node - linkType: hard - "debounce@npm:^1.2.1": version: 1.2.1 resolution: "debounce@npm:1.2.1" @@ -8764,7 +8590,19 @@ coolshapes-react@lowcoder-org/coolshapes-react: languageName: node linkType: hard -"debug@npm:4, debug@npm:4.3.4, debug@npm:^4.0.0, debug@npm:^4.1.0, debug@npm:^4.1.1, debug@npm:^4.3.1, debug@npm:^4.3.2, debug@npm:^4.3.4": +"debug@npm:4, debug@npm:^4.0.0, debug@npm:^4.1.0, debug@npm:^4.1.1, debug@npm:^4.3.1, debug@npm:^4.3.2, debug@npm:^4.3.4": + version: 4.4.1 + resolution: "debug@npm:4.4.1" + dependencies: + ms: ^2.1.3 + peerDependenciesMeta: + supports-color: + optional: true + checksum: a43826a01cda685ee4cec00fb2d3322eaa90ccadbef60d9287debc2a886be3e835d9199c80070ede75a409ee57828c4c6cd80e4b154f2843f0dc95a570dc0729 + languageName: node + linkType: hard + +"debug@npm:4.3.4": version: 4.3.4 resolution: "debug@npm:4.3.4" dependencies: @@ -8785,31 +8623,31 @@ coolshapes-react@lowcoder-org/coolshapes-react: languageName: node linkType: hard -"decimal.js@npm:^10.4.2": - version: 10.4.3 - resolution: "decimal.js@npm:10.4.3" - checksum: 796404dcfa9d1dbfdc48870229d57f788b48c21c603c3f6554a1c17c10195fc1024de338b0cf9e1efe0c7c167eeb18f04548979bcc5fdfabebb7cc0ae3287bae +"decimal.js@npm:^10.4.2, decimal.js@npm:^10.4.3": + version: 10.5.0 + resolution: "decimal.js@npm:10.5.0" + checksum: 91c6b53b5dd2f39a05535349ced6840f591d1f914e3c025c6dcec6ffada6e3cfc8dc3f560d304b716be9a9aece3567a7f80f6aff8f38d11ab6f78541c3a91a01 languageName: node linkType: hard "decode-named-character-reference@npm:^1.0.0": - version: 1.0.2 - resolution: "decode-named-character-reference@npm:1.0.2" + version: 1.1.0 + resolution: "decode-named-character-reference@npm:1.1.0" dependencies: character-entities: ^2.0.0 - checksum: f4c71d3b93105f20076052f9cb1523a22a9c796b8296cd35eef1ca54239c78d182c136a848b83ff8da2071e3ae2b1d300bf29d00650a6d6e675438cc31b11d78 + checksum: 102970fde2d011f307d3789776e68defd75ba4ade1a34951affd1fabb86cd32026fd809f2658c2b600d839a57b6b6a84e2b3a45166d38c8625d66ca11cd702b8 languageName: node linkType: hard "dedent@npm:^1.0.0": - version: 1.5.3 - resolution: "dedent@npm:1.5.3" + version: 1.6.0 + resolution: "dedent@npm:1.6.0" peerDependencies: babel-plugin-macros: ^3.1.0 peerDependenciesMeta: babel-plugin-macros: optional: true - checksum: 045b595557b2a8ea2eb9b0b4623d764e9a87326486fe2b61191b4342ed93dc01245644d8a09f3108a50c0ee7965f1eedd92e4a3a503ed89ea8e810566ea27f9a + checksum: ecaa83968b3db4ffeadf8f679c01280f8679ec79993d7e203c0281d7926e883bb79f42b263ba0df1f78e146e4b0be1b9a5b922b1fe040cb89b09977bc9c25b38 languageName: node linkType: hard @@ -8877,15 +8715,6 @@ coolshapes-react@lowcoder-org/coolshapes-react: languageName: node linkType: hard -"default-gateway@npm:^6.0.3": - version: 6.0.3 - resolution: "default-gateway@npm:6.0.3" - dependencies: - execa: ^5.0.0 - checksum: 126f8273ecac8ee9ff91ea778e8784f6cd732d77c3157e8c5bdd6ed03651b5291f71446d05bc02d04073b1e67583604db5394ea3cf992ede0088c70ea15b7378 - languageName: node - linkType: hard - "deferred-leveldown@npm:~0.2.0": version: 0.2.0 resolution: "deferred-leveldown@npm:0.2.0" @@ -8920,7 +8749,7 @@ coolshapes-react@lowcoder-org/coolshapes-react: languageName: node linkType: hard -"define-properties@npm:^1.1.3, define-properties@npm:^1.2.0, define-properties@npm:^1.2.1": +"define-properties@npm:^1.1.3, define-properties@npm:^1.2.1": version: 1.2.1 resolution: "define-properties@npm:1.2.1" dependencies: @@ -8961,7 +8790,7 @@ coolshapes-react@lowcoder-org/coolshapes-react: languageName: node linkType: hard -"dequal@npm:^2.0.0, dequal@npm:^2.0.3": +"dequal@npm:^2.0.0": version: 2.0.3 resolution: "dequal@npm:2.0.3" checksum: 8679b850e1a3d0ebbc46ee780d5df7b478c23f335887464023a631d1b9af051ad4a6595a44220f9ff8ff95a8ddccf019b5ad778a976fd7bbf77383d36f412f90 @@ -9029,7 +8858,7 @@ coolshapes-react@lowcoder-org/coolshapes-react: languageName: node linkType: hard -"diffie-hellman@npm:^5.0.0": +"diffie-hellman@npm:^5.0.3": version: 5.0.3 resolution: "diffie-hellman@npm:5.0.3" dependencies: @@ -9129,10 +8958,10 @@ coolshapes-react@lowcoder-org/coolshapes-react: languageName: node linkType: hard -"domain-browser@npm:^4.22.0": - version: 4.23.0 - resolution: "domain-browser@npm:4.23.0" - checksum: 95b772f5fa88300240694380e06e03868573acdf86ca392a58c78602d6536dca2097ad2469a1500bd23a1329b09992de846e0b66c364cbf5711a7fee3ee5dac9 +"domain-browser@npm:4.22.0": + version: 4.22.0 + resolution: "domain-browser@npm:4.22.0" + checksum: e7ce1c19073e17dec35cfde050a3ddaac437d3ba8b870adabf9d5682e665eab3084df05de432dedf25b34303f0a2c71ac30f1cdba61b1aea018047b10de3d988 languageName: node linkType: hard @@ -9179,10 +9008,10 @@ coolshapes-react@lowcoder-org/coolshapes-react: languageName: node linkType: hard -"dompurify@npm:^3.0.5": - version: 3.1.1 - resolution: "dompurify@npm:3.1.1" - checksum: a6077018b2f86c3dbb77326a978b32dbd169492d3835c6b990140f67805ffd23e223f30222c888cb7a8fa10db1154be6cfd213beb6c38e3270ecba5b2a97ab5c +"dompurify@npm:^3.0.5 <3.1.7": + version: 3.1.6 + resolution: "dompurify@npm:3.1.6" + checksum: cc4fc4ccd9261fbceb2a1627a985c70af231274a26ddd3f643fd0616a0a44099bd9e4480940ce3655612063be4a1fe9f5e9309967526f8c0a99f931602323866 languageName: node linkType: hard @@ -9198,13 +9027,13 @@ coolshapes-react@lowcoder-org/coolshapes-react: linkType: hard "domutils@npm:^3.0.1": - version: 3.1.0 - resolution: "domutils@npm:3.1.0" + version: 3.2.2 + resolution: "domutils@npm:3.2.2" dependencies: dom-serializer: ^2.0.0 domelementtype: ^2.3.0 domhandler: ^5.0.3 - checksum: e5757456ddd173caa411cfc02c2bb64133c65546d2c4081381a3bafc8a57411a41eed70494551aa58030be9e58574fcc489828bebd673863d39924fb4878f416 + checksum: ae941d56f03d857077d55dde9297e960a625229fc2b933187cc4123084d7c2d2517f58283a7336567127029f1e008449bac8ac8506d44341e29e3bb18e02f906 languageName: node linkType: hard @@ -9226,9 +9055,20 @@ coolshapes-react@lowcoder-org/coolshapes-react: linkType: hard "dotenv@npm:^16.0.0, dotenv@npm:^16.0.3": - version: 16.4.5 - resolution: "dotenv@npm:16.4.5" - checksum: 301a12c3d44fd49888b74eb9ccf9f07a1f5df43f489e7fcb89647a2edcd84c42d6bc349dc8df099cd18f07c35c7b04685c1a4f3e6a6a9e6b30f8d48c15b7f49c + version: 16.5.0 + resolution: "dotenv@npm:16.5.0" + checksum: 6543fe87b5ddf2d60dd42df6616eec99148a5fc150cb4530fef5bda655db5204a3afa0e6f25f7cd64b20657ace4d79c0ef974bec32fdb462cad18754191e7a90 + languageName: node + linkType: hard + +"dunder-proto@npm:^1.0.0, dunder-proto@npm:^1.0.1": + version: 1.0.1 + resolution: "dunder-proto@npm:1.0.1" + dependencies: + call-bind-apply-helpers: ^1.0.1 + es-errors: ^1.3.0 + gopd: ^1.2.0 + checksum: 149207e36f07bd4941921b0ca929e3a28f1da7bd6b6ff8ff7f4e2f2e460675af4576eeba359c635723dc189b64cdd4787e0255897d5b135ccc5d15cb8685fc90 languageName: node linkType: hard @@ -9257,9 +9097,22 @@ coolshapes-react@lowcoder-org/coolshapes-react: linkType: hard "echarts-extension-gmap@npm:^1.6.0": - version: 1.6.0 - resolution: "echarts-extension-gmap@npm:1.6.0" - checksum: 5bab07c7e739b81cf9c9c91b2d2db1101bab1f3b6bf649d6ebdf93fb4be0f9089058f934e4300a21a05dfb0cc0702214c48a5ec5fb34d7be19e419efbc317a61 + version: 1.7.0 + resolution: "echarts-extension-gmap@npm:1.7.0" + checksum: b7a88dcaf83da44c482ace744761543abd8e796c680f211e03085f037b0c7231bb62cd333d25893bd450ac700cfb8c7b7a509a672cccf79f112f570c9991b348 + languageName: node + linkType: hard + +"echarts-for-react@npm:^3.0.2": + version: 3.0.2 + resolution: "echarts-for-react@npm:3.0.2" + dependencies: + fast-deep-equal: ^3.1.3 + size-sensor: ^1.0.1 + peerDependencies: + echarts: ^3.0.0 || ^4.0.0 || ^5.0.0 + react: ^15.0.0 || >=16.0.0 + checksum: d3b16325befb1294d99f6f089462415be739c1654370945eef2172efd5868596f10e4cd021e0ff65b89a6f9de5e9c331ccf3765d9167ccb12d573f9632b5b7a6 languageName: node linkType: hard @@ -9285,12 +9138,12 @@ coolshapes-react@lowcoder-org/coolshapes-react: linkType: hard "echarts@npm:^5.4.3": - version: 5.5.0 - resolution: "echarts@npm:5.5.0" + version: 5.6.0 + resolution: "echarts@npm:5.6.0" dependencies: tslib: 2.3.0 - zrender: 5.5.0 - checksum: 181600d21bc4ad6a877bac419800501345c4103ae49ef05a4db495c8dde91f0a5f7ff02eb94581190c59518526f7931e8410ce3fe5da1e0f1e60cd1aeec04a52 + zrender: 5.6.1 + checksum: 4b545444155f9457daa89a4ea45f9e08177a9a59d9df7e5ea5206f66e290964fb0a1a273b0dfdeb24a4aa264f6afc925918aa2b76190917abf390bef092ba95c languageName: node linkType: hard @@ -9312,10 +9165,10 @@ coolshapes-react@lowcoder-org/coolshapes-react: languageName: node linkType: hard -"electron-to-chromium@npm:^1.4.668": - version: 1.4.750 - resolution: "electron-to-chromium@npm:1.4.750" - checksum: d1a5f1e9942c90dea8e1f60555ea9c0053676a8c945a82b8acd040fcae9173cdaa0127a1a2f563c96aa3d64de1b970d4b8a3245303c614ea7a564fc389c5d8c1 +"electron-to-chromium@npm:^1.5.149": + version: 1.5.157 + resolution: "electron-to-chromium@npm:1.5.157" + checksum: 479d1bb9458f0e19d0853a7f423b8a2468ca0f4a36772bfe115460183bc94662d63d4a4cde98c4aaf3c06e1840646e85dd48ef854ddf634fd169c6504540ea44 languageName: node linkType: hard @@ -9327,8 +9180,8 @@ coolshapes-react@lowcoder-org/coolshapes-react: linkType: hard "elliptic@npm:^6.5.3, elliptic@npm:^6.5.5": - version: 6.5.5 - resolution: "elliptic@npm:6.5.5" + version: 6.6.1 + resolution: "elliptic@npm:6.6.1" dependencies: bn.js: ^4.11.9 brorand: ^1.1.0 @@ -9337,7 +9190,7 @@ coolshapes-react@lowcoder-org/coolshapes-react: inherits: ^2.0.4 minimalistic-assert: ^1.0.1 minimalistic-crypto-utils: ^1.0.1 - checksum: ec9105e4469eb3b32b0ee2579756c888ddf3f99d259aa0d65fccb906ee877768aaf8880caae73e3e669c9a4adeb3eb1945703aa974ec5000d2d33a239f4567eb + checksum: 27b14a52f68bbbc0720da259f712cb73e953f6d2047958cd02fb0d0ade2e83849dc39fb4af630889c67df8817e24237428cf59c4f4c07700f755b401149a7375 languageName: node linkType: hard @@ -9376,6 +9229,13 @@ coolshapes-react@lowcoder-org/coolshapes-react: languageName: node linkType: hard +"encodeurl@npm:~2.0.0": + version: 2.0.0 + resolution: "encodeurl@npm:2.0.0" + checksum: abf5cd51b78082cf8af7be6785813c33b6df2068ce5191a40ca8b1afe6a86f9230af9a9ce694a5ce4665955e5c1120871826df9c128a642e09c58d592e2807fe + languageName: node + linkType: hard + "encoding@npm:^0.1.13": version: 0.1.13 resolution: "encoding@npm:0.1.13" @@ -9397,13 +9257,13 @@ coolshapes-react@lowcoder-org/coolshapes-react: languageName: node linkType: hard -"enhanced-resolve@npm:^5.0.0, enhanced-resolve@npm:^5.16.0, enhanced-resolve@npm:^5.7.0": - version: 5.16.0 - resolution: "enhanced-resolve@npm:5.16.0" +"enhanced-resolve@npm:^5.0.0, enhanced-resolve@npm:^5.17.1, enhanced-resolve@npm:^5.7.0": + version: 5.18.1 + resolution: "enhanced-resolve@npm:5.18.1" dependencies: graceful-fs: ^4.2.4 tapable: ^2.2.0 - checksum: ccfd01850ecf2aa51e8554d539973319ff7d8a539ef1e0ba3460a0ccad6223c4ef6e19165ee64161b459cd8a48df10f52af4434c60023c65fde6afa32d475f7e + checksum: de5bea7debe3576e78173bcc409c4aee7fcb56580c602d5c47c533b92952e55d7da3d9f53b864846ba62c8bd3efb0f9ecfe5f865e57de2f3e9b6e5cda03b4e7e languageName: node linkType: hard @@ -9421,6 +9281,13 @@ coolshapes-react@lowcoder-org/coolshapes-react: languageName: node linkType: hard +"entities@npm:^6.0.0": + version: 6.0.0 + resolution: "entities@npm:6.0.0" + checksum: 4e964b5549b0f1e7a88836527d38181aa7b2f87222ed2424e78309781b17212de684c84094435f53bea69a7e7e2505268fd96772af166adb686d086d64361435 + languageName: node + linkType: hard + "env-paths@npm:^2.2.0": version: 2.2.1 resolution: "env-paths@npm:2.2.1" @@ -9429,11 +9296,11 @@ coolshapes-react@lowcoder-org/coolshapes-react: linkType: hard "envinfo@npm:^7.7.3": - version: 7.12.0 - resolution: "envinfo@npm:7.12.0" + version: 7.14.0 + resolution: "envinfo@npm:7.14.0" bin: envinfo: dist/cli.js - checksum: 4c83a55768cf8b7e553155c29e7fa7bbdb0fb2c1156208efc373fc030045c6aca5e8e642e96027d3eb0c752156922ea3fca6183d9e13f38507f0e02ec82c23a1 + checksum: 137c1dd9a4d5781c4a6cdc6b695454ba3c4ba1829f73927198aa4122f11b35b59d7b2cb7e1ceea1364925a30278897548511d22f860c14253a33797d0bebd551 languageName: node linkType: hard @@ -9473,70 +9340,73 @@ coolshapes-react@lowcoder-org/coolshapes-react: languageName: node linkType: hard -"es-abstract@npm:^1.22.1, es-abstract@npm:^1.22.3, es-abstract@npm:^1.23.0, es-abstract@npm:^1.23.1, es-abstract@npm:^1.23.2, es-abstract@npm:^1.23.3": - version: 1.23.3 - resolution: "es-abstract@npm:1.23.3" +"es-abstract@npm:^1.17.5, es-abstract@npm:^1.23.2, es-abstract@npm:^1.23.3, es-abstract@npm:^1.23.5, es-abstract@npm:^1.23.6, es-abstract@npm:^1.23.9": + version: 1.23.10 + resolution: "es-abstract@npm:1.23.10" dependencies: - array-buffer-byte-length: ^1.0.1 - arraybuffer.prototype.slice: ^1.0.3 + array-buffer-byte-length: ^1.0.2 + arraybuffer.prototype.slice: ^1.0.4 available-typed-arrays: ^1.0.7 - call-bind: ^1.0.7 - data-view-buffer: ^1.0.1 - data-view-byte-length: ^1.0.1 - data-view-byte-offset: ^1.0.0 - es-define-property: ^1.0.0 + call-bind: ^1.0.8 + call-bound: ^1.0.4 + data-view-buffer: ^1.0.2 + data-view-byte-length: ^1.0.2 + data-view-byte-offset: ^1.0.1 + es-define-property: ^1.0.1 es-errors: ^1.3.0 - es-object-atoms: ^1.0.0 - es-set-tostringtag: ^2.0.3 - es-to-primitive: ^1.2.1 - function.prototype.name: ^1.1.6 - get-intrinsic: ^1.2.4 - get-symbol-description: ^1.0.2 - globalthis: ^1.0.3 - gopd: ^1.0.1 + es-object-atoms: ^1.1.1 + es-set-tostringtag: ^2.1.0 + es-to-primitive: ^1.3.0 + function.prototype.name: ^1.1.8 + get-intrinsic: ^1.3.0 + get-proto: ^1.0.1 + get-symbol-description: ^1.1.0 + globalthis: ^1.0.4 + gopd: ^1.2.0 has-property-descriptors: ^1.0.2 - has-proto: ^1.0.3 - has-symbols: ^1.0.3 + has-proto: ^1.2.0 + has-symbols: ^1.1.0 hasown: ^2.0.2 - internal-slot: ^1.0.7 - is-array-buffer: ^3.0.4 + internal-slot: ^1.1.0 + is-array-buffer: ^3.0.5 is-callable: ^1.2.7 - is-data-view: ^1.0.1 - is-negative-zero: ^2.0.3 - is-regex: ^1.1.4 - is-shared-array-buffer: ^1.0.3 - is-string: ^1.0.7 - is-typed-array: ^1.1.13 - is-weakref: ^1.0.2 - object-inspect: ^1.13.1 + is-data-view: ^1.0.2 + is-regex: ^1.2.1 + is-shared-array-buffer: ^1.0.4 + is-string: ^1.1.1 + is-typed-array: ^1.1.15 + is-weakref: ^1.1.1 + math-intrinsics: ^1.1.0 + object-inspect: ^1.13.4 object-keys: ^1.1.1 - object.assign: ^4.1.5 - regexp.prototype.flags: ^1.5.2 - safe-array-concat: ^1.1.2 - safe-regex-test: ^1.0.3 - string.prototype.trim: ^1.2.9 - string.prototype.trimend: ^1.0.8 + object.assign: ^4.1.7 + own-keys: ^1.0.1 + regexp.prototype.flags: ^1.5.4 + safe-array-concat: ^1.1.3 + safe-push-apply: ^1.0.0 + safe-regex-test: ^1.1.0 + set-proto: ^1.0.0 + string.prototype.trim: ^1.2.10 + string.prototype.trimend: ^1.0.9 string.prototype.trimstart: ^1.0.8 - typed-array-buffer: ^1.0.2 - typed-array-byte-length: ^1.0.1 - typed-array-byte-offset: ^1.0.2 - typed-array-length: ^1.0.6 - unbox-primitive: ^1.0.2 - which-typed-array: ^1.1.15 - checksum: f840cf161224252512f9527306b57117192696571e07920f777cb893454e32999206198b4f075516112af6459daca282826d1735c450528470356d09eff3a9ae + typed-array-buffer: ^1.0.3 + typed-array-byte-length: ^1.0.3 + typed-array-byte-offset: ^1.0.4 + typed-array-length: ^1.0.7 + unbox-primitive: ^1.1.0 + which-typed-array: ^1.1.19 + checksum: 0b1baf903096c4f19030ab3334062deb6df577441266223b44cb431d8733f21852e9ac8be1c73c28dddc8f0c214c668969195cee0a14d21967ca91628f5f4366 languageName: node linkType: hard -"es-define-property@npm:^1.0.0": - version: 1.0.0 - resolution: "es-define-property@npm:1.0.0" - dependencies: - get-intrinsic: ^1.2.4 - checksum: f66ece0a887b6dca71848fa71f70461357c0e4e7249696f81bad0a1f347eed7b31262af4a29f5d726dc026426f085483b6b90301855e647aa8e21936f07293c6 +"es-define-property@npm:^1.0.0, es-define-property@npm:^1.0.1": + version: 1.0.1 + resolution: "es-define-property@npm:1.0.1" + checksum: 0512f4e5d564021c9e3a644437b0155af2679d10d80f21adaf868e64d30efdfbd321631956f20f42d655fedb2e3a027da479fad3fa6048f768eb453a80a5f80a languageName: node linkType: hard -"es-errors@npm:^1.1.0, es-errors@npm:^1.2.1, es-errors@npm:^1.3.0": +"es-errors@npm:^1.3.0": version: 1.3.0 resolution: "es-errors@npm:1.3.0" checksum: ec1414527a0ccacd7f15f4a3bc66e215f04f595ba23ca75cdae0927af099b5ec865f9f4d33e9d7e86f512f252876ac77d4281a7871531a50678132429b1271b5 @@ -9560,72 +9430,75 @@ coolshapes-react@lowcoder-org/coolshapes-react: languageName: node linkType: hard -"es-iterator-helpers@npm:^1.0.15, es-iterator-helpers@npm:^1.0.17": - version: 1.0.19 - resolution: "es-iterator-helpers@npm:1.0.19" +"es-iterator-helpers@npm:^1.2.1": + version: 1.2.1 + resolution: "es-iterator-helpers@npm:1.2.1" dependencies: - call-bind: ^1.0.7 + call-bind: ^1.0.8 + call-bound: ^1.0.3 define-properties: ^1.2.1 - es-abstract: ^1.23.3 + es-abstract: ^1.23.6 es-errors: ^1.3.0 es-set-tostringtag: ^2.0.3 function-bind: ^1.1.2 - get-intrinsic: ^1.2.4 - globalthis: ^1.0.3 + get-intrinsic: ^1.2.6 + globalthis: ^1.0.4 + gopd: ^1.2.0 has-property-descriptors: ^1.0.2 - has-proto: ^1.0.3 - has-symbols: ^1.0.3 - internal-slot: ^1.0.7 - iterator.prototype: ^1.1.2 - safe-array-concat: ^1.1.2 - checksum: 7ae112b88359fbaf4b9d7d1d1358ae57c5138768c57ba3a8fb930393662653b0512bfd7917c15890d1471577fb012fee8b73b4465e59b331739e6ee94f961683 + has-proto: ^1.2.0 + has-symbols: ^1.1.0 + internal-slot: ^1.1.0 + iterator.prototype: ^1.1.4 + safe-array-concat: ^1.1.3 + checksum: 952808dd1df3643d67ec7adf20c30b36e5eecadfbf36354e6f39ed3266c8e0acf3446ce9bc465e38723d613cb1d915c1c07c140df65bdce85da012a6e7bda62b languageName: node linkType: hard -"es-module-lexer@npm:^1.2.1": - version: 1.5.2 - resolution: "es-module-lexer@npm:1.5.2" - checksum: 59c47109eca80b93dda2418337b4308c194c578704dc57d5aa54973b196e378d31e92f258e5525655b99b3de8a84dda2debb9646cddf6fe8830f1bfca95ee060 +"es-module-lexer@npm:^1.2.1, es-module-lexer@npm:^1.5.4": + version: 1.7.0 + resolution: "es-module-lexer@npm:1.7.0" + checksum: 7858bb76ae387fdbf8a6fccc951bf18919768309850587553eca34698b9193fbc65fab03d3d9f69163d860321fbf66adf89d5821e7f4148c7cb7d7b997259211 languageName: node linkType: hard -"es-object-atoms@npm:^1.0.0": - version: 1.0.0 - resolution: "es-object-atoms@npm:1.0.0" +"es-object-atoms@npm:^1.0.0, es-object-atoms@npm:^1.1.1": + version: 1.1.1 + resolution: "es-object-atoms@npm:1.1.1" dependencies: es-errors: ^1.3.0 - checksum: 26f0ff78ab93b63394e8403c353842b2272836968de4eafe97656adfb8a7c84b9099bf0fe96ed58f4a4cddc860f6e34c77f91649a58a5daa4a9c40b902744e3c + checksum: 214d3767287b12f36d3d7267ef342bbbe1e89f899cfd67040309fc65032372a8e60201410a99a1645f2f90c1912c8c49c8668066f6bdd954bcd614dda2e3da97 languageName: node linkType: hard -"es-set-tostringtag@npm:^2.0.3": - version: 2.0.3 - resolution: "es-set-tostringtag@npm:2.0.3" +"es-set-tostringtag@npm:^2.0.3, es-set-tostringtag@npm:^2.1.0": + version: 2.1.0 + resolution: "es-set-tostringtag@npm:2.1.0" dependencies: - get-intrinsic: ^1.2.4 + es-errors: ^1.3.0 + get-intrinsic: ^1.2.6 has-tostringtag: ^1.0.2 - hasown: ^2.0.1 - checksum: 7227fa48a41c0ce83e0377b11130d324ac797390688135b8da5c28994c0165be8b252e15cd1de41e1325e5a5412511586960213e88f9ab4a5e7d028895db5129 + hasown: ^2.0.2 + checksum: 789f35de4be3dc8d11fdcb91bc26af4ae3e6d602caa93299a8c45cf05d36cc5081454ae2a6d3afa09cceca214b76c046e4f8151e092e6fc7feeb5efb9e794fc6 languageName: node linkType: hard -"es-shim-unscopables@npm:^1.0.0, es-shim-unscopables@npm:^1.0.2": - version: 1.0.2 - resolution: "es-shim-unscopables@npm:1.0.2" +"es-shim-unscopables@npm:^1.0.2, es-shim-unscopables@npm:^1.1.0": + version: 1.1.0 + resolution: "es-shim-unscopables@npm:1.1.0" dependencies: - hasown: ^2.0.0 - checksum: 432bd527c62065da09ed1d37a3f8e623c423683285e6188108286f4a1e8e164a5bcbfbc0051557c7d14633cd2a41ce24c7048e6bbb66a985413fd32f1be72626 + hasown: ^2.0.2 + checksum: 33cfb1ebcb2f869f0bf528be1a8660b4fe8b6cec8fc641f330e508db2284b58ee2980fad6d0828882d22858c759c0806076427a3673b6daa60f753e3b558ee15 languageName: node linkType: hard -"es-to-primitive@npm:^1.2.1": - version: 1.2.1 - resolution: "es-to-primitive@npm:1.2.1" +"es-to-primitive@npm:^1.3.0": + version: 1.3.0 + resolution: "es-to-primitive@npm:1.3.0" dependencies: - is-callable: ^1.1.4 - is-date-object: ^1.0.1 - is-symbol: ^1.0.2 - checksum: 4ead6671a2c1402619bdd77f3503991232ca15e17e46222b0a41a5d81aebc8740a77822f5b3c965008e631153e9ef0580540007744521e72de8e33599fca2eed + is-callable: ^1.2.7 + is-date-object: ^1.0.5 + is-symbol: ^1.0.4 + checksum: 966965880356486cd4d1fe9a523deda2084c81b3702d951212c098f5f2ee93605d1b7c1840062efb48a07d892641c7ed1bc194db563645c0dd2b919cb6d65b93 languageName: node linkType: hard @@ -9706,10 +9579,10 @@ coolshapes-react@lowcoder-org/coolshapes-react: languageName: node linkType: hard -"escalade@npm:^3.1.1": - version: 3.1.2 - resolution: "escalade@npm:3.1.2" - checksum: 1ec0977aa2772075493002bdbd549d595ff6e9393b1cb0d7d6fcaf78c750da0c158f180938365486f75cb69fba20294351caddfce1b46552a7b6c3cde52eaa02 +"escalade@npm:^3.1.1, escalade@npm:^3.2.0": + version: 3.2.0 + resolution: "escalade@npm:3.2.0" + checksum: 47b029c83de01b0d17ad99ed766347b974b0d628e848de404018f3abee728e987da0d2d370ad4574aa3d5b5bfc368754fd085d69a30f8e75903486ec4b5b709e languageName: node linkType: hard @@ -9720,13 +9593,6 @@ coolshapes-react@lowcoder-org/coolshapes-react: languageName: node linkType: hard -"escape-string-regexp@npm:^1.0.5": - version: 1.0.5 - resolution: "escape-string-regexp@npm:1.0.5" - checksum: 6092fda75c63b110c706b6a9bfde8a612ad595b628f0bd2147eea1d3406723020810e591effc7db1da91d80a71a737a313567c5abb3813e8d9c71f4aa595b410 - languageName: node - linkType: hard - "escape-string-regexp@npm:^2.0.0": version: 2.0.0 resolution: "escape-string-regexp@npm:2.0.0" @@ -9820,15 +9686,15 @@ coolshapes-react@lowcoder-org/coolshapes-react: languageName: node linkType: hard -"eslint-module-utils@npm:^2.8.0": - version: 2.8.1 - resolution: "eslint-module-utils@npm:2.8.1" +"eslint-module-utils@npm:^2.12.0": + version: 2.12.0 + resolution: "eslint-module-utils@npm:2.12.0" dependencies: debug: ^3.2.7 peerDependenciesMeta: eslint: optional: true - checksum: 3cecd99b6baf45ffc269167da0f95dcb75e5aa67b93d73a3bab63e2a7eedd9cdd6f188eed048e2f57c1b77db82c9cbf2adac20b512fa70e597d863dd3720170d + checksum: be3ac52e0971c6f46daeb1a7e760e45c7c45f820c8cc211799f85f10f04ccbf7afc17039165d56cb2da7f7ca9cec2b3a777013cddf0b976784b37eb9efa24180 languageName: node linkType: hard @@ -9847,29 +9713,31 @@ coolshapes-react@lowcoder-org/coolshapes-react: linkType: hard "eslint-plugin-import@npm:^2.25.3": - version: 2.29.1 - resolution: "eslint-plugin-import@npm:2.29.1" + version: 2.31.0 + resolution: "eslint-plugin-import@npm:2.31.0" dependencies: - array-includes: ^3.1.7 - array.prototype.findlastindex: ^1.2.3 + "@rtsao/scc": ^1.1.0 + array-includes: ^3.1.8 + array.prototype.findlastindex: ^1.2.5 array.prototype.flat: ^1.3.2 array.prototype.flatmap: ^1.3.2 debug: ^3.2.7 doctrine: ^2.1.0 eslint-import-resolver-node: ^0.3.9 - eslint-module-utils: ^2.8.0 - hasown: ^2.0.0 - is-core-module: ^2.13.1 + eslint-module-utils: ^2.12.0 + hasown: ^2.0.2 + is-core-module: ^2.15.1 is-glob: ^4.0.3 minimatch: ^3.1.2 - object.fromentries: ^2.0.7 - object.groupby: ^1.0.1 - object.values: ^1.1.7 + object.fromentries: ^2.0.8 + object.groupby: ^1.0.3 + object.values: ^1.2.0 semver: ^6.3.1 + string.prototype.trimend: ^1.0.8 tsconfig-paths: ^3.15.0 peerDependencies: - eslint: ^2 || ^3 || ^4 || ^5 || ^6 || ^7.2.0 || ^8 - checksum: e65159aef808136d26d029b71c8c6e4cb5c628e65e5de77f1eb4c13a379315ae55c9c3afa847f43f4ff9df7e54515c77ffc6489c6a6f81f7dd7359267577468c + eslint: ^2 || ^3 || ^4 || ^5 || ^6 || ^7.2.0 || ^8 || ^9 + checksum: b1d2ac268b3582ff1af2a72a2c476eae4d250c100f2e335b6e102036e4a35efa530b80ec578dfc36761fabb34a635b9bf5ab071abe9d4404a4bb054fdf22d415 languageName: node linkType: hard @@ -9891,28 +9759,27 @@ coolshapes-react@lowcoder-org/coolshapes-react: linkType: hard "eslint-plugin-jsx-a11y@npm:^6.5.1": - version: 6.8.0 - resolution: "eslint-plugin-jsx-a11y@npm:6.8.0" + version: 6.10.2 + resolution: "eslint-plugin-jsx-a11y@npm:6.10.2" dependencies: - "@babel/runtime": ^7.23.2 - aria-query: ^5.3.0 - array-includes: ^3.1.7 + aria-query: ^5.3.2 + array-includes: ^3.1.8 array.prototype.flatmap: ^1.3.2 ast-types-flow: ^0.0.8 - axe-core: =4.7.0 - axobject-query: ^3.2.1 + axe-core: ^4.10.0 + axobject-query: ^4.1.0 damerau-levenshtein: ^1.0.8 emoji-regex: ^9.2.2 - es-iterator-helpers: ^1.0.15 - hasown: ^2.0.0 + hasown: ^2.0.2 jsx-ast-utils: ^3.3.5 language-tags: ^1.0.9 minimatch: ^3.1.2 - object.entries: ^1.1.7 - object.fromentries: ^2.0.7 + object.fromentries: ^2.0.8 + safe-regex-test: ^1.0.3 + string.prototype.includes: ^2.0.1 peerDependencies: - eslint: ^3 || ^4 || ^5 || ^6 || ^7 || ^8 - checksum: 3dec00e2a3089c4c61ac062e4196a70985fb7eda1fd67fe035363d92578debde92fdb8ed2e472321fc0d71e75f4a1e8888c6a3218c14dd93c8e8d19eb6f51554 + eslint: ^3 || ^4 || ^5 || ^6 || ^7 || ^8 || ^9 + checksum: 0cc861398fa26ada61ed5703eef5b335495fcb96253263dcd5e399488ff019a2636372021baacc040e3560d1a34bfcd5d5ad9f1754f44cd0509c956f7df94050 languageName: node linkType: hard @@ -9944,30 +9811,30 @@ coolshapes-react@lowcoder-org/coolshapes-react: linkType: hard "eslint-plugin-react@npm:^7.27.1": - version: 7.34.1 - resolution: "eslint-plugin-react@npm:7.34.1" + version: 7.37.5 + resolution: "eslint-plugin-react@npm:7.37.5" dependencies: - array-includes: ^3.1.7 - array.prototype.findlast: ^1.2.4 - array.prototype.flatmap: ^1.3.2 - array.prototype.toreversed: ^1.1.2 - array.prototype.tosorted: ^1.1.3 + array-includes: ^3.1.8 + array.prototype.findlast: ^1.2.5 + array.prototype.flatmap: ^1.3.3 + array.prototype.tosorted: ^1.1.4 doctrine: ^2.1.0 - es-iterator-helpers: ^1.0.17 + es-iterator-helpers: ^1.2.1 estraverse: ^5.3.0 + hasown: ^2.0.2 jsx-ast-utils: ^2.4.1 || ^3.0.0 minimatch: ^3.1.2 - object.entries: ^1.1.7 - object.fromentries: ^2.0.7 - object.hasown: ^1.1.3 - object.values: ^1.1.7 + object.entries: ^1.1.9 + object.fromentries: ^2.0.8 + object.values: ^1.2.1 prop-types: ^15.8.1 resolve: ^2.0.0-next.5 semver: ^6.3.1 - string.prototype.matchall: ^4.0.10 + string.prototype.matchall: ^4.0.12 + string.prototype.repeat: ^1.0.0 peerDependencies: - eslint: ^3 || ^4 || ^5 || ^6 || ^7 || ^8 - checksum: 82f391c5a093235c3bc2f664c54e009c49460778ee7d1b86c1536df9ac4d2a80d1dedc9241ac797df4a9dced936e955d9c89042fb3ac8d017b5359d1320d3c0f + eslint: ^3 || ^4 || ^5 || ^6 || ^7 || ^8 || ^9.7 + checksum: 8675e7558e646e3c2fcb04bb60cfe416000b831ef0b363f0117838f5bfc799156113cb06058ad4d4b39fc730903b7360b05038da11093064ca37caf76b7cf2ca languageName: node linkType: hard @@ -10024,14 +9891,14 @@ coolshapes-react@lowcoder-org/coolshapes-react: linkType: hard "eslint@npm:^8.0.0": - version: 8.57.0 - resolution: "eslint@npm:8.57.0" + version: 8.57.1 + resolution: "eslint@npm:8.57.1" dependencies: "@eslint-community/eslint-utils": ^4.2.0 "@eslint-community/regexpp": ^4.6.1 "@eslint/eslintrc": ^2.1.4 - "@eslint/js": 8.57.0 - "@humanwhocodes/config-array": ^0.11.14 + "@eslint/js": 8.57.1 + "@humanwhocodes/config-array": ^0.13.0 "@humanwhocodes/module-importer": ^1.0.1 "@nodelib/fs.walk": ^1.2.8 "@ungap/structured-clone": ^1.2.0 @@ -10067,7 +9934,7 @@ coolshapes-react@lowcoder-org/coolshapes-react: text-table: ^0.2.0 bin: eslint: bin/eslint.js - checksum: 3a48d7ff85ab420a8447e9810d8087aea5b1df9ef68c9151732b478de698389ee656fd895635b5f2871c89ee5a2652b3f343d11e9db6f8486880374ebc74a2d9 + checksum: e2489bb7f86dd2011967759a09164e65744ef7688c310bc990612fc26953f34cc391872807486b15c06833bdff737726a23e9b4cdba5de144c311377dc41d91b languageName: node linkType: hard @@ -10093,11 +9960,11 @@ coolshapes-react@lowcoder-org/coolshapes-react: linkType: hard "esquery@npm:^1.4.2": - version: 1.5.0 - resolution: "esquery@npm:1.5.0" + version: 1.6.0 + resolution: "esquery@npm:1.6.0" dependencies: estraverse: ^5.1.0 - checksum: aefb0d2596c230118656cd4ec7532d447333a410a48834d80ea648b1e7b5c9bc9ed8b5e33a89cb04e487b60d622f44cf5713bf4abed7c97343edefdc84a35900 + checksum: 08ec4fe446d9ab27186da274d979558557fbdbbd10968fa9758552482720c54152a5640e08b9009e5a30706b66aba510692054d4129d32d0e12e05bbc0b96fb2 languageName: node linkType: hard @@ -10269,48 +10136,48 @@ coolshapes-react@lowcoder-org/coolshapes-react: linkType: hard "exponential-backoff@npm:^3.1.1": - version: 3.1.1 - resolution: "exponential-backoff@npm:3.1.1" - checksum: 3d21519a4f8207c99f7457287291316306255a328770d320b401114ec8481986e4e467e854cb9914dd965e0a1ca810a23ccb559c642c88f4c7f55c55778a9b48 + version: 3.1.2 + resolution: "exponential-backoff@npm:3.1.2" + checksum: 7e191e3dd6edd8c56c88f2c8037c98fbb8034fe48778be53ed8cb30ccef371a061a4e999a469aab939b92f8f12698f3b426d52f4f76b7a20da5f9f98c3cbc862 languageName: node linkType: hard -"express@npm:^4.17.3": - version: 4.19.2 - resolution: "express@npm:4.19.2" +"express@npm:^4.21.2": + version: 4.21.2 + resolution: "express@npm:4.21.2" dependencies: accepts: ~1.3.8 array-flatten: 1.1.1 - body-parser: 1.20.2 + body-parser: 1.20.3 content-disposition: 0.5.4 content-type: ~1.0.4 - cookie: 0.6.0 + cookie: 0.7.1 cookie-signature: 1.0.6 debug: 2.6.9 depd: 2.0.0 - encodeurl: ~1.0.2 + encodeurl: ~2.0.0 escape-html: ~1.0.3 etag: ~1.8.1 - finalhandler: 1.2.0 + finalhandler: 1.3.1 fresh: 0.5.2 http-errors: 2.0.0 - merge-descriptors: 1.0.1 + merge-descriptors: 1.0.3 methods: ~1.1.2 on-finished: 2.4.1 parseurl: ~1.3.3 - path-to-regexp: 0.1.7 + path-to-regexp: 0.1.12 proxy-addr: ~2.0.7 - qs: 6.11.0 + qs: 6.13.0 range-parser: ~1.2.1 safe-buffer: 5.2.1 - send: 0.18.0 - serve-static: 1.15.0 + send: 0.19.0 + serve-static: 1.16.2 setprototypeof: 1.2.0 statuses: 2.0.1 type-is: ~1.6.18 utils-merge: 1.0.1 vary: ~1.1.2 - checksum: 212dbd6c2c222a96a61bc927639c95970a53b06257080bb9e2838adb3bffdb966856551fdad1ab5dd654a217c35db94f987d0aa88d48fb04d306340f5f34dca5 + checksum: 3aef1d355622732e20b8f3a7c112d4391d44e2131f4f449e1f273a309752a41abfad714e881f177645517cbe29b3ccdc10b35e7e25c13506114244a5b72f549d languageName: node linkType: hard @@ -10371,16 +10238,16 @@ coolshapes-react@lowcoder-org/coolshapes-react: languageName: node linkType: hard -"fast-glob@npm:^3.2.11, fast-glob@npm:^3.2.12, fast-glob@npm:^3.2.7, fast-glob@npm:^3.2.9, fast-glob@npm:^3.3.2": - version: 3.3.2 - resolution: "fast-glob@npm:3.3.2" +"fast-glob@npm:^3.2.11, fast-glob@npm:^3.2.7, fast-glob@npm:^3.2.9, fast-glob@npm:^3.3.2, fast-glob@npm:^3.3.3": + version: 3.3.3 + resolution: "fast-glob@npm:3.3.3" dependencies: "@nodelib/fs.stat": ^2.0.2 "@nodelib/fs.walk": ^1.2.3 glob-parent: ^5.1.2 merge2: ^1.3.0 - micromatch: ^4.0.4 - checksum: 900e4979f4dbc3313840078419245621259f349950411ca2fa445a2f9a1a6d98c3b5e7e0660c5ccd563aa61abe133a21765c6c0dec8e57da1ba71d8000b05ec1 + micromatch: ^4.0.8 + checksum: 0704d7b85c0305fd2cef37777337dfa26230fdd072dce9fb5c82a4b03156f3ffb8ed3e636033e65d45d2a5805a4e475825369a27404c0307f2db0c8eb3366fbd languageName: node linkType: hard @@ -10398,13 +10265,6 @@ coolshapes-react@lowcoder-org/coolshapes-react: languageName: node linkType: hard -"fast-loops@npm:^1.1.3": - version: 1.1.3 - resolution: "fast-loops@npm:1.1.3" - checksum: b674378ba2ed8364ca1a00768636e88b22201c8d010fa62a8588a4cace04f90bac46714c13cf638be82b03438d2fe813600da32291fb47297a1bd7fa6cef0cee - languageName: node - linkType: hard - "fast-shallow-equal@npm:^1.0.0": version: 1.0.0 resolution: "fast-shallow-equal@npm:1.0.0" @@ -10434,11 +10294,11 @@ coolshapes-react@lowcoder-org/coolshapes-react: linkType: hard "fastq@npm:^1.6.0": - version: 1.17.1 - resolution: "fastq@npm:1.17.1" + version: 1.19.1 + resolution: "fastq@npm:1.19.1" dependencies: reusify: ^1.0.4 - checksum: a8c5b26788d5a1763f88bae56a8ddeee579f935a831c5fe7a8268cea5b0a91fbfe705f612209e02d639b881d7b48e461a50da4a10cfaa40da5ca7cc9da098d88 + checksum: 7691d1794fb84ad0ec2a185f10e00f0e1713b894e2c9c4d42f0bc0ba5f8c00e6e655a202074ca0b91b9c3d977aab7c30c41a8dc069fb5368576ac0054870a0e6 languageName: node linkType: hard @@ -10491,6 +10351,18 @@ coolshapes-react@lowcoder-org/coolshapes-react: languageName: node linkType: hard +"fdir@npm:^6.4.4": + version: 6.4.4 + resolution: "fdir@npm:6.4.4" + peerDependencies: + picomatch: ^3 || ^4 + peerDependenciesMeta: + picomatch: + optional: true + checksum: 79043610236579ffbd0647c508b43bd030a2d034a17c43cf96813a00e8e92e51acdb115c6ddecef3b5812cc2692b976155b4f6413e51e3761f1e772fa019a321 + languageName: node + linkType: hard + "fetch-blob@npm:^3.1.2": version: 3.2.0 resolution: "fetch-blob@npm:3.2.0" @@ -10538,27 +10410,27 @@ coolshapes-react@lowcoder-org/coolshapes-react: languageName: node linkType: hard -"fill-range@npm:^7.0.1": - version: 7.0.1 - resolution: "fill-range@npm:7.0.1" +"fill-range@npm:^7.1.1": + version: 7.1.1 + resolution: "fill-range@npm:7.1.1" dependencies: to-regex-range: ^5.0.1 - checksum: cc283f4e65b504259e64fd969bcf4def4eb08d85565e906b7d36516e87819db52029a76b6363d0f02d0d532f0033c9603b9e2d943d56ee3b0d4f7ad3328ff917 + checksum: b4abfbca3839a3d55e4ae5ec62e131e2e356bf4859ce8480c64c4876100f4df292a63e5bb1618e1d7460282ca2b305653064f01654474aa35c68000980f17798 languageName: node linkType: hard -"finalhandler@npm:1.2.0": - version: 1.2.0 - resolution: "finalhandler@npm:1.2.0" +"finalhandler@npm:1.3.1": + version: 1.3.1 + resolution: "finalhandler@npm:1.3.1" dependencies: debug: 2.6.9 - encodeurl: ~1.0.2 + encodeurl: ~2.0.0 escape-html: ~1.0.3 on-finished: 2.4.1 parseurl: ~1.3.3 statuses: 2.0.1 unpipe: ~1.0.0 - checksum: 92effbfd32e22a7dff2994acedbd9bcc3aa646a3e919ea6a53238090e87097f8ef07cced90aa2cc421abdf993aefbdd5b00104d55c7c5479a8d00ed105b45716 + checksum: a8c58cd97c9cd47679a870f6833a7b417043f5a288cd6af6d0f49b476c874a506100303a128b6d3b654c3d74fa4ff2ffed68a48a27e8630cda5c918f2977dcf4 languageName: node linkType: hard @@ -10603,9 +10475,9 @@ coolshapes-react@lowcoder-org/coolshapes-react: linkType: hard "flag-icons@npm:^7.2.1": - version: 7.2.1 - resolution: "flag-icons@npm:7.2.1" - checksum: c24a71a1e830860625b60f4a0d16dff51dcc5e6849aeacb93e44bb0cd1553f5ba7d07fdfbb35ea3e297ddb300ca4bdb6a8499c396e25882c8ed38a942dc922cc + version: 7.3.2 + resolution: "flag-icons@npm:7.3.2" + checksum: b18745b5c3dd521380e6c7bbe175cb19e11121966ad87025f2b555f2b3eb911372d3e720ed9bcb1f9d6addaede4e3dd696a58dad1e344fe1a7269fe7cb46ab13 languageName: node linkType: hard @@ -10630,9 +10502,9 @@ coolshapes-react@lowcoder-org/coolshapes-react: linkType: hard "flatted@npm:^3.2.9": - version: 3.3.1 - resolution: "flatted@npm:3.3.1" - checksum: 85ae7181650bb728c221e7644cbc9f4bf28bc556f2fc89bb21266962bdf0ce1029cc7acc44bb646cd469d9baac7c317f64e841c4c4c00516afa97320cdac7f94 + version: 3.3.3 + resolution: "flatted@npm:3.3.3" + checksum: 8c96c02fbeadcf4e8ffd0fa24983241e27698b0781295622591fc13585e2f226609d95e422bcf2ef044146ffacb6b68b1f20871454eddf75ab3caa6ee5f4a1fe languageName: node linkType: hard @@ -10649,21 +10521,21 @@ coolshapes-react@lowcoder-org/coolshapes-react: linkType: hard "follow-redirects@npm:^1.0.0, follow-redirects@npm:^1.15.6": - version: 1.15.6 - resolution: "follow-redirects@npm:1.15.6" + version: 1.15.9 + resolution: "follow-redirects@npm:1.15.9" peerDependenciesMeta: debug: optional: true - checksum: a62c378dfc8c00f60b9c80cab158ba54e99ba0239a5dd7c81245e5a5b39d10f0c35e249c3379eae719ff0285fff88c365dd446fab19dee771f1d76252df1bbf5 + checksum: 859e2bacc7a54506f2bf9aacb10d165df78c8c1b0ceb8023f966621b233717dab56e8d08baadc3ad3b9db58af290413d585c999694b7c146aaf2616340c3d2a6 languageName: node linkType: hard -"for-each@npm:^0.3.3": - version: 0.3.3 - resolution: "for-each@npm:0.3.3" +"for-each@npm:^0.3.3, for-each@npm:^0.3.5": + version: 0.3.5 + resolution: "for-each@npm:0.3.5" dependencies: - is-callable: ^1.1.3 - checksum: 6c48ff2bc63362319c65e2edca4a8e1e3483a2fabc72fbe7feaf8c73db94fc7861bd53bc02c8a66a0c1dd709da6b04eec42e0abdd6b40ce47305ae92a25e5d28 + is-callable: ^1.2.7 + checksum: 3c986d7e11f4381237cc98baa0a2f87eabe74719eee65ed7bed275163082b940ede19268c61d04c6260e0215983b12f8d885e3c8f9aa8c2113bf07c37051745c languageName: node linkType: hard @@ -10675,12 +10547,12 @@ coolshapes-react@lowcoder-org/coolshapes-react: linkType: hard "foreground-child@npm:^3.1.0": - version: 3.1.1 - resolution: "foreground-child@npm:3.1.1" + version: 3.3.1 + resolution: "foreground-child@npm:3.3.1" dependencies: - cross-spawn: ^7.0.0 + cross-spawn: ^7.0.6 signal-exit: ^4.0.1 - checksum: 139d270bc82dc9e6f8bc045fe2aae4001dc2472157044fdfad376d0a3457f77857fa883c1c8b21b491c6caade9a926a4bed3d3d2e8d3c9202b151a4cbbd0bcd5 + checksum: b2c1a6fc0bf0233d645d9fefdfa999abf37db1b33e5dab172b3cbfb0662b88bfbd2c9e7ab853533d199050ec6b65c03fcf078fc212d26e4990220e98c6930eef languageName: node linkType: hard @@ -10692,13 +10564,14 @@ coolshapes-react@lowcoder-org/coolshapes-react: linkType: hard "form-data@npm:^4.0.0": - version: 4.0.0 - resolution: "form-data@npm:4.0.0" + version: 4.0.2 + resolution: "form-data@npm:4.0.2" dependencies: asynckit: ^0.4.0 combined-stream: ^1.0.8 + es-set-tostringtag: ^2.1.0 mime-types: ^2.1.12 - checksum: 01135bf8675f9d5c61ff18e2e2932f719ca4de964e3be90ef4c36aacfc7b9cb2fceb5eca0b7e0190e3383fe51c5b37f4cb80b62ca06a99aaabfcfd6ac7c9328c + checksum: e887298b22c13c7c9c5a8ba3716f295a479a13ca78bfd855ef11cbce1bcf22bc0ae2062e94808e21d46e5c667664a1a1a8a7f57d7040193c1fefbfb11af58aab languageName: node linkType: hard @@ -10755,22 +10628,13 @@ coolshapes-react@lowcoder-org/coolshapes-react: linkType: hard "fs-extra@npm:^11.1.0": - version: 11.2.0 - resolution: "fs-extra@npm:11.2.0" + version: 11.3.0 + resolution: "fs-extra@npm:11.3.0" dependencies: graceful-fs: ^4.2.0 jsonfile: ^6.0.1 universalify: ^2.0.0 - checksum: b12e42fa40ba47104202f57b8480dd098aa931c2724565e5e70779ab87605665594e76ee5fb00545f772ab9ace167fe06d2ab009c416dc8c842c5ae6df7aa7e8 - languageName: node - linkType: hard - -"fs-minipass@npm:^2.0.0": - version: 2.1.0 - resolution: "fs-minipass@npm:2.1.0" - dependencies: - minipass: ^3.0.0 - checksum: 1b8d128dae2ac6cc94230cc5ead341ba3e0efaef82dab46a33d171c044caaa6ca001364178d42069b2809c35a1c3c35079a32107c770e9ffab3901b59af8c8b1 + checksum: f983c706e0c22b0c0747a8e9c76aed6f391ba2d76734cf2757cd84da13417b402ed68fe25bace65228856c61d36d3b41da198f1ffbf33d0b34283a2f7a62c6e9 languageName: node linkType: hard @@ -10816,15 +10680,17 @@ coolshapes-react@lowcoder-org/coolshapes-react: languageName: node linkType: hard -"function.prototype.name@npm:^1.1.5, function.prototype.name@npm:^1.1.6": - version: 1.1.6 - resolution: "function.prototype.name@npm:1.1.6" +"function.prototype.name@npm:^1.1.6, function.prototype.name@npm:^1.1.8": + version: 1.1.8 + resolution: "function.prototype.name@npm:1.1.8" dependencies: - call-bind: ^1.0.2 - define-properties: ^1.2.0 - es-abstract: ^1.22.1 + call-bind: ^1.0.8 + call-bound: ^1.0.3 + define-properties: ^1.2.1 functions-have-names: ^1.2.3 - checksum: 7a3f9bd98adab09a07f6e1f03da03d3f7c26abbdeaeee15223f6c04a9fb5674792bdf5e689dac19b97ac71de6aad2027ba3048a9b883aa1b3173eed6ab07f479 + hasown: ^2.0.2 + is-callable: ^1.2.7 + checksum: 3a366535dc08b25f40a322efefa83b2da3cd0f6da41db7775f2339679120ef63b6c7e967266182609e655b8f0a8f65596ed21c7fd72ad8bd5621c2340edd4010 languageName: node linkType: hard @@ -10858,16 +10724,21 @@ coolshapes-react@lowcoder-org/coolshapes-react: languageName: node linkType: hard -"get-intrinsic@npm:^1.1.3, get-intrinsic@npm:^1.2.1, get-intrinsic@npm:^1.2.2, get-intrinsic@npm:^1.2.3, get-intrinsic@npm:^1.2.4": - version: 1.2.4 - resolution: "get-intrinsic@npm:1.2.4" +"get-intrinsic@npm:^1.1.3, get-intrinsic@npm:^1.2.2, get-intrinsic@npm:^1.2.4, get-intrinsic@npm:^1.2.5, get-intrinsic@npm:^1.2.6, get-intrinsic@npm:^1.2.7, get-intrinsic@npm:^1.3.0": + version: 1.3.0 + resolution: "get-intrinsic@npm:1.3.0" dependencies: + call-bind-apply-helpers: ^1.0.2 + es-define-property: ^1.0.1 es-errors: ^1.3.0 + es-object-atoms: ^1.1.1 function-bind: ^1.1.2 - has-proto: ^1.0.1 - has-symbols: ^1.0.3 - hasown: ^2.0.0 - checksum: 414e3cdf2c203d1b9d7d33111df746a4512a1aa622770b361dadddf8ed0b5aeb26c560f49ca077e24bfafb0acb55ca908d1f709216ccba33ffc548ec8a79a951 + get-proto: ^1.0.1 + gopd: ^1.2.0 + has-symbols: ^1.1.0 + hasown: ^2.0.2 + math-intrinsics: ^1.1.0 + checksum: 301008e4482bb9a9cb49e132b88fee093bff373b4e6def8ba219b1e96b60158a6084f273ef5cafe832e42cd93462f4accb46a618d35fe59a2b507f2388c5b79d languageName: node linkType: hard @@ -10878,6 +10749,16 @@ coolshapes-react@lowcoder-org/coolshapes-react: languageName: node linkType: hard +"get-proto@npm:^1.0.0, get-proto@npm:^1.0.1": + version: 1.0.1 + resolution: "get-proto@npm:1.0.1" + dependencies: + dunder-proto: ^1.0.1 + es-object-atoms: ^1.0.0 + checksum: 4fc96afdb58ced9a67558698b91433e6b037aaa6f1493af77498d7c85b141382cf223c0e5946f334fb328ee85dfe6edd06d218eaf09556f4bc4ec6005d7f5f7b + languageName: node + linkType: hard + "get-stream@npm:^6.0.0, get-stream@npm:^6.0.1": version: 6.0.1 resolution: "get-stream@npm:6.0.1" @@ -10885,14 +10766,14 @@ coolshapes-react@lowcoder-org/coolshapes-react: languageName: node linkType: hard -"get-symbol-description@npm:^1.0.2": - version: 1.0.2 - resolution: "get-symbol-description@npm:1.0.2" +"get-symbol-description@npm:^1.1.0": + version: 1.1.0 + resolution: "get-symbol-description@npm:1.1.0" dependencies: - call-bind: ^1.0.5 + call-bound: ^1.0.3 es-errors: ^1.3.0 - get-intrinsic: ^1.2.4 - checksum: e1cb53bc211f9dbe9691a4f97a46837a553c4e7caadd0488dc24ac694db8a390b93edd412b48dcdd0b4bbb4c595de1709effc75fc87c0839deedc6968f5bd973 + get-intrinsic: ^1.2.6 + checksum: 655ed04db48ee65ef2ddbe096540d4405e79ba0a7f54225775fef43a7e2afcb93a77d141c5f05fdef0afce2eb93bcbfb3597142189d562ac167ff183582683cd languageName: node linkType: hard @@ -10913,9 +10794,9 @@ coolshapes-react@lowcoder-org/coolshapes-react: linkType: hard "github-markdown-css@npm:^5.1.0": - version: 5.5.1 - resolution: "github-markdown-css@npm:5.5.1" - checksum: ed04423a85e83d75baa128cea2ddcd2e688bc73a92abf146f9b9cc20546db40c67c9fadf150c5289d4c89b8f76bf11fb3c312ee8161398642be8298eeaa5a4be + version: 5.8.1 + resolution: "github-markdown-css@npm:5.8.1" + checksum: 040c4cb99d3bb42ac1ae183e4d542417731b628127b0a22f7ce771f64c567ee2125e29352aeee8827f336ab9503c42b0769e66aa6eaabf762fc935b96e6a8ebf languageName: node linkType: hard @@ -10951,18 +10832,19 @@ coolshapes-react@lowcoder-org/coolshapes-react: languageName: node linkType: hard -"glob@npm:^10.2.2, glob@npm:^10.3.10, glob@npm:^10.3.7": - version: 10.3.12 - resolution: "glob@npm:10.3.12" +"glob@npm:^10.2.2, glob@npm:^10.3.10": + version: 10.4.5 + resolution: "glob@npm:10.4.5" dependencies: foreground-child: ^3.1.0 - jackspeak: ^2.3.6 - minimatch: ^9.0.1 - minipass: ^7.0.4 - path-scurry: ^1.10.2 + jackspeak: ^3.1.2 + minimatch: ^9.0.4 + minipass: ^7.1.2 + package-json-from-dist: ^1.0.0 + path-scurry: ^1.11.1 bin: glob: dist/esm/bin.mjs - checksum: 2b0949d6363021aaa561b108ac317bf5a97271b8a5d7a5fac1a176e40e8068ecdcccc992f8a7e958593d501103ac06d673de92adc1efcbdab45edefe35f8d7c6 + checksum: 0bc725de5e4862f9f387fd0f2b274baf16850dcd2714502ccf471ee401803997983e2c05590cb65f9675a3c6f2a58e7a53f9e365704108c6ad3cbf1d60934c4a languageName: node linkType: hard @@ -11009,12 +10891,13 @@ coolshapes-react@lowcoder-org/coolshapes-react: languageName: node linkType: hard -"globalthis@npm:^1.0.3": - version: 1.0.3 - resolution: "globalthis@npm:1.0.3" +"globalthis@npm:^1.0.4": + version: 1.0.4 + resolution: "globalthis@npm:1.0.4" dependencies: - define-properties: ^1.1.3 - checksum: fbd7d760dc464c886d0196166d92e5ffb4c84d0730846d6621a39fbbc068aeeb9c8d1421ad330e94b7bca4bb4ea092f5f21f3d36077812af5d098b4dc006c998 + define-properties: ^1.2.1 + gopd: ^1.0.1 + checksum: 39ad667ad9f01476474633a1834a70842041f70a55571e8dcef5fb957980a92da5022db5430fca8aecc5d47704ae30618c0bc877a579c70710c904e9ef06108a languageName: node linkType: hard @@ -11033,16 +10916,16 @@ coolshapes-react@lowcoder-org/coolshapes-react: linkType: hard "globby@npm:^14.0.0": - version: 14.0.1 - resolution: "globby@npm:14.0.1" + version: 14.1.0 + resolution: "globby@npm:14.1.0" dependencies: "@sindresorhus/merge-streams": ^2.1.0 - fast-glob: ^3.3.2 - ignore: ^5.2.4 - path-type: ^5.0.0 + fast-glob: ^3.3.3 + ignore: ^7.0.3 + path-type: ^6.0.0 slash: ^5.1.0 - unicorn-magic: ^0.1.0 - checksum: 33568444289afb1135ad62d52d5e8412900cec620e3b6ece533afa46d004066f14b97052b643833d7cf4ee03e7fac571430130cde44c333df91a45d313105170 + unicorn-magic: ^0.3.0 + checksum: b1f27dccc999c010ee7e0ce7c6581fd2326ac86cf0508474d526d699a029b66b35d6fa4361c8b4ad8e80809582af71d5e2080e671cf03c26e98ca67aba8834bd languageName: node linkType: hard @@ -11053,12 +10936,10 @@ coolshapes-react@lowcoder-org/coolshapes-react: languageName: node linkType: hard -"gopd@npm:^1.0.1": - version: 1.0.1 - resolution: "gopd@npm:1.0.1" - dependencies: - get-intrinsic: ^1.1.3 - checksum: a5ccfb8806e0917a94e0b3de2af2ea4979c1da920bc381667c260e00e7cafdbe844e2cb9c5bcfef4e5412e8bf73bab837285bc35c7ba73aaaf0134d4583393a6 +"gopd@npm:^1.0.1, gopd@npm:^1.2.0": + version: 1.2.0 + resolution: "gopd@npm:1.2.0" + checksum: cc6d8e655e360955bdccaca51a12a474268f95bb793fc3e1f2bdadb075f28bfd1fd988dab872daf77a61d78cbaf13744bc8727a17cfb1d150d76047d805375f3 languageName: node linkType: hard @@ -11109,17 +10990,10 @@ coolshapes-react@lowcoder-org/coolshapes-react: languageName: node linkType: hard -"has-bigints@npm:^1.0.1, has-bigints@npm:^1.0.2": - version: 1.0.2 - resolution: "has-bigints@npm:1.0.2" - checksum: 390e31e7be7e5c6fe68b81babb73dfc35d413604d7ee5f56da101417027a4b4ce6a27e46eff97ad040c835b5d228676eae99a9b5c3bc0e23c8e81a49241ff45b - languageName: node - linkType: hard - -"has-flag@npm:^3.0.0": - version: 3.0.0 - resolution: "has-flag@npm:3.0.0" - checksum: 4a15638b454bf086c8148979aae044dd6e39d63904cd452d970374fa6a87623423da485dfb814e7be882e05c096a7ccf1ebd48e7e7501d0208d8384ff4dea73b +"has-bigints@npm:^1.0.2": + version: 1.1.0 + resolution: "has-bigints@npm:1.1.0" + checksum: 79730518ae02c77e4af6a1d1a0b6a2c3e1509785532771f9baf0241e83e36329542c3d7a0e723df8cbc85f74eff4f177828a2265a01ba576adbdc2d40d86538b languageName: node linkType: hard @@ -11139,21 +11013,23 @@ coolshapes-react@lowcoder-org/coolshapes-react: languageName: node linkType: hard -"has-proto@npm:^1.0.1, has-proto@npm:^1.0.3": - version: 1.0.3 - resolution: "has-proto@npm:1.0.3" - checksum: fe7c3d50b33f50f3933a04413ed1f69441d21d2d2944f81036276d30635cad9279f6b43bc8f32036c31ebdfcf6e731150f46c1907ad90c669ffe9b066c3ba5c4 +"has-proto@npm:^1.2.0": + version: 1.2.0 + resolution: "has-proto@npm:1.2.0" + dependencies: + dunder-proto: ^1.0.0 + checksum: f55010cb94caa56308041d77967c72a02ffd71386b23f9afa8447e58bc92d49d15c19bf75173713468e92fe3fb1680b03b115da39c21c32c74886d1d50d3e7ff languageName: node linkType: hard -"has-symbols@npm:^1.0.2, has-symbols@npm:^1.0.3": - version: 1.0.3 - resolution: "has-symbols@npm:1.0.3" - checksum: a054c40c631c0d5741a8285010a0777ea0c068f99ed43e5d6eb12972da223f8af553a455132fdb0801bdcfa0e0f443c0c03a68d8555aa529b3144b446c3f2410 +"has-symbols@npm:^1.0.3, has-symbols@npm:^1.1.0": + version: 1.1.0 + resolution: "has-symbols@npm:1.1.0" + checksum: b2316c7302a0e8ba3aaba215f834e96c22c86f192e7310bdf689dd0e6999510c89b00fbc5742571507cebf25764d68c988b3a0da217369a73596191ac0ce694b languageName: node linkType: hard -"has-tostringtag@npm:^1.0.0, has-tostringtag@npm:^1.0.2": +"has-tostringtag@npm:^1.0.2": version: 1.0.2 resolution: "has-tostringtag@npm:1.0.2" dependencies: @@ -11173,13 +11049,13 @@ coolshapes-react@lowcoder-org/coolshapes-react: languageName: node linkType: hard -"hash-base@npm:~3.0": - version: 3.0.4 - resolution: "hash-base@npm:3.0.4" +"hash-base@npm:~3.0, hash-base@npm:~3.0.4": + version: 3.0.5 + resolution: "hash-base@npm:3.0.5" dependencies: - inherits: ^2.0.1 - safe-buffer: ^5.0.1 - checksum: 878465a0dfcc33cce195c2804135352c590d6d10980adc91a9005fd377e77f2011256c2b7cfce472e3f2e92d561d1bf3228d2da06348a9017ce9a258b3b49764 + inherits: ^2.0.4 + safe-buffer: ^5.2.1 + checksum: 6a82675a5de2ea9347501bbe655a2334950c7ec972fd9810ae9529e06aeab8f7e8ef68fc2112e5e6f0745561a7e05326efca42ad59bb5fd116537f5f8b0a216d languageName: node linkType: hard @@ -11193,7 +11069,7 @@ coolshapes-react@lowcoder-org/coolshapes-react: languageName: node linkType: hard -"hasown@npm:^2.0.0, hasown@npm:^2.0.1, hasown@npm:^2.0.2": +"hasown@npm:^2.0.2": version: 2.0.2 resolution: "hasown@npm:2.0.2" dependencies: @@ -11218,18 +11094,18 @@ coolshapes-react@lowcoder-org/coolshapes-react: linkType: hard "hast-util-from-parse5@npm:^8.0.0": - version: 8.0.1 - resolution: "hast-util-from-parse5@npm:8.0.1" + version: 8.0.3 + resolution: "hast-util-from-parse5@npm:8.0.3" dependencies: "@types/hast": ^3.0.0 "@types/unist": ^3.0.0 devlop: ^1.0.0 - hastscript: ^8.0.0 - property-information: ^6.0.0 + hastscript: ^9.0.0 + property-information: ^7.0.0 vfile: ^6.0.0 vfile-location: ^5.0.0 web-namespaces: ^2.0.0 - checksum: fdd1ab8b03af13778ecb94ef9a58b1e3528410cdfceb3d6bb7600508967d0d836b451bc7bc3baf66efb7c730d3d395eea4bb1b30352b0162823d9f0de976774b + checksum: 9ca68545a957a59f2bb18c834f1b7f72cdb1fc0d6b43233faa170e721c1f41da1bb0418b477b91332973c6bc2790a09bb07971fd8f0afe98b4cd111ea9fd7c8c languageName: node linkType: hard @@ -11312,8 +11188,8 @@ coolshapes-react@lowcoder-org/coolshapes-react: linkType: hard "hast-util-to-jsx-runtime@npm:^2.0.0": - version: 2.3.0 - resolution: "hast-util-to-jsx-runtime@npm:2.3.0" + version: 2.3.6 + resolution: "hast-util-to-jsx-runtime@npm:2.3.6" dependencies: "@types/estree": ^1.0.0 "@types/hast": ^3.0.0 @@ -11325,12 +11201,12 @@ coolshapes-react@lowcoder-org/coolshapes-react: mdast-util-mdx-expression: ^2.0.0 mdast-util-mdx-jsx: ^3.0.0 mdast-util-mdxjs-esm: ^2.0.0 - property-information: ^6.0.0 + property-information: ^7.0.0 space-separated-tokens: ^2.0.0 - style-to-object: ^1.0.0 + style-to-js: ^1.0.0 unist-util-position: ^5.0.0 vfile-message: ^4.0.0 - checksum: 599a97c6ec61c1430776813d7fb42e6f96032bf4a04dfcbb8eceef3bc8d1845ecf242387a4426b9d3f52320dbbfa26450643b81124b3d6a0b9bbb0fff4d0ba83 + checksum: 78c25465cf010f1004b22f0bbb3bd47793f458ead3561c779ea2b9204ceb1adc9c048592b0a15025df0c683a12ebe16a8bef008c06d9c0369f51116f64b35a2d languageName: node linkType: hard @@ -11385,16 +11261,16 @@ coolshapes-react@lowcoder-org/coolshapes-react: languageName: node linkType: hard -"hastscript@npm:^8.0.0": - version: 8.0.0 - resolution: "hastscript@npm:8.0.0" +"hastscript@npm:^9.0.0": + version: 9.0.1 + resolution: "hastscript@npm:9.0.1" dependencies: "@types/hast": ^3.0.0 comma-separated-tokens: ^2.0.0 hast-util-parse-selector: ^4.0.0 - property-information: ^6.0.0 + property-information: ^7.0.0 space-separated-tokens: ^2.0.0 - checksum: ae3c20223e7b847320c0f98b6fb3c763ebe1bf3913c5805fbc176cf84553a9db1117ca34cf842a5235890b4b9ae0e94501bfdc9a9b870a5dbf5fc52426db1097 + checksum: 2bbb9a3c2dc43c9dec7f6599ef45e5eefb1c2a5f75d33d005dc432e92bf9d7cfb6c0d927f15a7592bb48601d2b582ea2e4b1131a716ac3f7b618a07d88f9a5d7 languageName: node linkType: hard @@ -11442,9 +11318,9 @@ coolshapes-react@lowcoder-org/coolshapes-react: linkType: hard "hotkeys-js@npm:^3.8.7": - version: 3.13.7 - resolution: "hotkeys-js@npm:3.13.7" - checksum: 8c1da52704c1c2a97810d0d2c9d0917b87a7edd250aae79cd4b185b9374b2ddc7ba24eeec8491018ba51726b72faecf89042fede2b3a05d0599f334355bb968c + version: 3.13.10 + resolution: "hotkeys-js@npm:3.13.10" + checksum: 552a6f88479f7690023eaf94e7cbbffea33255d438bb343023ee64bdf7781f4e3b5abb87a2d626f01537f8222770c92a22327cb15cbb85537343bcd9079ee3c9 languageName: node linkType: hard @@ -11478,13 +11354,6 @@ coolshapes-react@lowcoder-org/coolshapes-react: languageName: node linkType: hard -"html-entities@npm:^2.4.0": - version: 2.5.2 - resolution: "html-entities@npm:2.5.2" - checksum: b23f4a07d33d49ade1994069af4e13d31650e3fb62621e92ae10ecdf01d1a98065c78fd20fdc92b4c7881612210b37c275f2c9fba9777650ab0d6f2ceb3b99b6 - languageName: node - linkType: hard - "html-escaper@npm:^2.0.0, html-escaper@npm:^2.0.2": version: 2.0.2 resolution: "html-escaper@npm:2.0.2" @@ -11510,9 +11379,9 @@ coolshapes-react@lowcoder-org/coolshapes-react: linkType: hard "html-url-attributes@npm:^3.0.0": - version: 3.0.0 - resolution: "html-url-attributes@npm:3.0.0" - checksum: 9f499d33e6ddff6c2d2766fd73d2f22f3c370b4e485a92b0b2938303665b306dc7f36b2724c9466764e8f702351c01f342f5ec933be41a31c1fa40b72087b91d + version: 3.0.1 + resolution: "html-url-attributes@npm:3.0.1" + checksum: 1ecbf9cae0c438d2802386710177b7bbf7e30cc61327e9f125eb32fca7302cd1e3ab45c441859cb1e7646109be322fc1163592ad4dfde9b14d09416d101a6573 languageName: node linkType: hard @@ -11541,9 +11410,9 @@ coolshapes-react@lowcoder-org/coolshapes-react: linkType: hard "http-cache-semantics@npm:^4.1.1": - version: 4.1.1 - resolution: "http-cache-semantics@npm:4.1.1" - checksum: 83ac0bc60b17a3a36f9953e7be55e5c8f41acc61b22583060e8dedc9dd5e3607c823a88d0926f9150e571f90946835c7fe150732801010845c72cd8bbff1a236 + version: 4.2.0 + resolution: "http-cache-semantics@npm:4.2.0" + checksum: 7a7246ddfce629f96832791176fd643589d954e6f3b49548dadb4290451961237fab8fcea41cd2008fe819d95b41c1e8b97f47d088afc0a1c81705287b4ddbcc languageName: node linkType: hard @@ -11580,9 +11449,9 @@ coolshapes-react@lowcoder-org/coolshapes-react: linkType: hard "http-parser-js@npm:>=0.5.1": - version: 0.5.8 - resolution: "http-parser-js@npm:0.5.8" - checksum: 6bbdf2429858e8cf13c62375b0bfb6dc3955ca0f32e58237488bc86cd2378f31d31785fd3ac4ce93f1c74e0189cf8823c91f5cb061696214fd368d2452dc871d + version: 0.5.10 + resolution: "http-parser-js@npm:0.5.10" + checksum: 1038177c5f114860345ce7c19223d2cdd9a103265bd897bab13343c9eff4deef60f7956a674485f1234ffc9b19fb4b97f0c20a5848cfc9ccbf5d3c438d89ae89 languageName: node linkType: hard @@ -11607,9 +11476,9 @@ coolshapes-react@lowcoder-org/coolshapes-react: languageName: node linkType: hard -"http-proxy-middleware@npm:^2.0.3, http-proxy-middleware@npm:^2.0.6": - version: 2.0.6 - resolution: "http-proxy-middleware@npm:2.0.6" +"http-proxy-middleware@npm:^2.0.6, http-proxy-middleware@npm:^2.0.7": + version: 2.0.9 + resolution: "http-proxy-middleware@npm:2.0.9" dependencies: "@types/http-proxy": ^1.17.8 http-proxy: ^1.18.1 @@ -11621,7 +11490,7 @@ coolshapes-react@lowcoder-org/coolshapes-react: peerDependenciesMeta: "@types/express": optional: true - checksum: 2ee85bc878afa6cbf34491e972ece0f5be0a3e5c98a60850cf40d2a9a5356e1fc57aab6cff33c1fc37691b0121c3a42602d2b1956c52577e87a5b77b62ae1c3a + checksum: 0ea88609b9c13fa03b89f8e6b85bd5c537027ec6990005dd81a7fbb3e73fcf8d6a6e3db2b57b1c6cddbcda80965704584dc6291d0e721b2700198c4e59ee0d0b languageName: node linkType: hard @@ -11665,12 +11534,12 @@ coolshapes-react@lowcoder-org/coolshapes-react: linkType: hard "https-proxy-agent@npm:^7.0.1": - version: 7.0.4 - resolution: "https-proxy-agent@npm:7.0.4" + version: 7.0.6 + resolution: "https-proxy-agent@npm:7.0.6" dependencies: - agent-base: ^7.0.2 + agent-base: ^7.1.2 debug: 4 - checksum: daaab857a967a2519ddc724f91edbbd388d766ff141b9025b629f92b9408fc83cee8a27e11a907aede392938e9c398e240d643e178408a59e4073539cde8cfe9 + checksum: b882377a120aa0544846172e5db021fa8afbf83fea2a897d397bd2ddd8095ab268c24bc462f40a15f2a8c600bf4aa05ce52927f70038d4014e68aefecfa94e8d languageName: node linkType: hard @@ -11705,9 +11574,9 @@ coolshapes-react@lowcoder-org/coolshapes-react: linkType: hard "hyphenate-style-name@npm:^1.0.3": - version: 1.0.4 - resolution: "hyphenate-style-name@npm:1.0.4" - checksum: 4f5bf4b055089754924babebaa23c17845937bcca6aee95d5d015f8fa1e6814279002bd6a9e541e3fac2cd02519fc76305396727066c57c8e21a7e73e7a12137 + version: 1.1.0 + resolution: "hyphenate-style-name@npm:1.1.0" + checksum: b9ed74e29181d96bd58a2d0e62fc4a19879db591dba268275829ff0ae595fcdf11faafaeaa63330a45c3004664d7db1f0fc7cdb372af8ee4615ed8260302c207 languageName: node linkType: hard @@ -11752,10 +11621,17 @@ coolshapes-react@lowcoder-org/coolshapes-react: languageName: node linkType: hard -"ignore@npm:^5.2.0, ignore@npm:^5.2.4": - version: 5.3.1 - resolution: "ignore@npm:5.3.1" - checksum: 71d7bb4c1dbe020f915fd881108cbe85a0db3d636a0ea3ba911393c53946711d13a9b1143c7e70db06d571a5822c0a324a6bcde5c9904e7ca5047f01f1bf8cd3 +"ignore@npm:^5.2.0": + version: 5.3.2 + resolution: "ignore@npm:5.3.2" + checksum: 2acfd32a573260ea522ea0bfeff880af426d68f6831f973129e2ba7363f422923cf53aab62f8369cbf4667c7b25b6f8a3761b34ecdb284ea18e87a5262a865be + languageName: node + linkType: hard + +"ignore@npm:^7.0.3": + version: 7.0.4 + resolution: "ignore@npm:7.0.4" + checksum: 09b4d69192355ac066f7d99c0fdb26f52035d2eaae423bfb5f7389091d75a93bf9c105e1fbf51f557098f6d446726f29a63cef3a7d26722dc696dd345224719b languageName: node linkType: hard @@ -11776,24 +11652,24 @@ coolshapes-react@lowcoder-org/coolshapes-react: linkType: hard "import-fresh@npm:^3.2.1, import-fresh@npm:^3.3.0": - version: 3.3.0 - resolution: "import-fresh@npm:3.3.0" + version: 3.3.1 + resolution: "import-fresh@npm:3.3.1" dependencies: parent-module: ^1.0.0 resolve-from: ^4.0.0 - checksum: 2cacfad06e652b1edc50be650f7ec3be08c5e5a6f6d12d035c440a42a8cc028e60a5b99ca08a77ab4d6b1346da7d971915828f33cdab730d3d42f08242d09baa + checksum: a06b19461b4879cc654d46f8a6244eb55eb053437afd4cbb6613cad6be203811849ed3e4ea038783092879487299fda24af932b86bdfff67c9055ba3612b8c87 languageName: node linkType: hard "import-local@npm:^3.0.2": - version: 3.1.0 - resolution: "import-local@npm:3.1.0" + version: 3.2.0 + resolution: "import-local@npm:3.2.0" dependencies: pkg-dir: ^4.2.0 resolve-cwd: ^3.0.0 bin: import-local-fixture: fixtures/cli.js - checksum: bfcdb63b5e3c0e245e347f3107564035b128a414c4da1172a20dc67db2504e05ede4ac2eee1252359f78b0bfd7b19ef180aec427c2fce6493ae782d73a04cddd + checksum: 0b0b0b412b2521739fbb85eeed834a3c34de9bc67e670b3d0b86248fc460d990a7b116ad056c084b87a693ef73d1f17268d6a5be626bb43c998a8b1c8a230004 languageName: node linkType: hard @@ -11849,24 +11725,23 @@ coolshapes-react@lowcoder-org/coolshapes-react: languageName: node linkType: hard -"inline-style-prefixer@npm:^7.0.0": - version: 7.0.0 - resolution: "inline-style-prefixer@npm:7.0.0" +"inline-style-prefixer@npm:^7.0.1": + version: 7.0.1 + resolution: "inline-style-prefixer@npm:7.0.1" dependencies: css-in-js-utils: ^3.1.0 - fast-loops: ^1.1.3 - checksum: 89fd73eb06e7392e24032ea33b8b33ae7f9a24298f2d9ebbf7b31a3a3934247270047f4f49a454a363aace14e25c3a20fd97465405b0399cc888e5a2bc04ec05 + checksum: 07a72573dfdac5e08fa18f5ce71d922861716955e230175ac415db227d9ed49443c764356cb407a92f4c85b30ebf39604165260b4dfbf3196b7736d7332c5c06 languageName: node linkType: hard -"internal-slot@npm:^1.0.4, internal-slot@npm:^1.0.7": - version: 1.0.7 - resolution: "internal-slot@npm:1.0.7" +"internal-slot@npm:^1.1.0": + version: 1.1.0 + resolution: "internal-slot@npm:1.1.0" dependencies: es-errors: ^1.3.0 - hasown: ^2.0.0 - side-channel: ^1.0.4 - checksum: cadc5eea5d7d9bc2342e93aae9f31f04c196afebb11bde97448327049f492cd7081e18623ae71388aac9cd237b692ca3a105be9c68ac39c1dec679d7409e33eb + hasown: ^2.0.2 + side-channel: ^1.1.0 + checksum: 8e0991c2d048cc08dab0a91f573c99f6a4215075887517ea4fa32203ce8aea60fa03f95b177977fa27eb502e5168366d0f3e02c762b799691411d49900611861 languageName: node linkType: hard @@ -11906,14 +11781,14 @@ coolshapes-react@lowcoder-org/coolshapes-react: linkType: hard "intl-messageformat@npm:^10.2.1": - version: 10.5.11 - resolution: "intl-messageformat@npm:10.5.11" + version: 10.7.16 + resolution: "intl-messageformat@npm:10.7.16" dependencies: - "@formatjs/ecma402-abstract": 1.18.2 - "@formatjs/fast-memoize": 2.2.0 - "@formatjs/icu-messageformat-parser": 2.7.6 - tslib: ^2.4.0 - checksum: b5574447a0d938170049042ec807344d57c72e9aabb2e72be0d5197baabeb763e05680b19b7607df93fadeec0e13c9bfcb450e9ba2fe7464b4f06600b612bf5e + "@formatjs/ecma402-abstract": 2.3.4 + "@formatjs/fast-memoize": 2.2.7 + "@formatjs/icu-messageformat-parser": 2.11.2 + tslib: ^2.8.0 + checksum: c7edee2001ca7e87fb1e66ba2d6c53c8f01e628eb7991c21562f6ac3ebc7c3d027bb73aae501a9f20c0dce3ee67dede4e970b0bdeb59d414b23e92e98d2dc3d5 languageName: node linkType: hard @@ -11966,22 +11841,23 @@ coolshapes-react@lowcoder-org/coolshapes-react: linkType: hard "is-arguments@npm:^1.0.4, is-arguments@npm:^1.1.1": - version: 1.1.1 - resolution: "is-arguments@npm:1.1.1" + version: 1.2.0 + resolution: "is-arguments@npm:1.2.0" dependencies: - call-bind: ^1.0.2 - has-tostringtag: ^1.0.0 - checksum: 7f02700ec2171b691ef3e4d0e3e6c0ba408e8434368504bb593d0d7c891c0dbfda6d19d30808b904a6cb1929bca648c061ba438c39f296c2a8ca083229c49f27 + call-bound: ^1.0.2 + has-tostringtag: ^1.0.2 + checksum: aae9307fedfe2e5be14aebd0f48a9eeedf6b8c8f5a0b66257b965146d1e94abdc3f08e3dce3b1d908e1fa23c70039a88810ee1d753905758b9b6eebbab0bafeb languageName: node linkType: hard -"is-array-buffer@npm:^3.0.2, is-array-buffer@npm:^3.0.4": - version: 3.0.4 - resolution: "is-array-buffer@npm:3.0.4" +"is-array-buffer@npm:^3.0.2, is-array-buffer@npm:^3.0.4, is-array-buffer@npm:^3.0.5": + version: 3.0.5 + resolution: "is-array-buffer@npm:3.0.5" dependencies: - call-bind: ^1.0.2 - get-intrinsic: ^1.2.1 - checksum: e4e3e6ef0ff2239e75371d221f74bc3c26a03564a22efb39f6bb02609b598917ddeecef4e8c877df2a25888f247a98198959842a5e73236bc7f22cabdf6351a7 + call-bind: ^1.0.8 + call-bound: ^1.0.3 + get-intrinsic: ^1.2.6 + checksum: f137a2a6e77af682cdbffef1e633c140cf596f72321baf8bba0f4ef22685eb4339dde23dfe9e9ca430b5f961dee4d46577dcf12b792b68518c8449b134fb9156 languageName: node linkType: hard @@ -11993,20 +11869,24 @@ coolshapes-react@lowcoder-org/coolshapes-react: linkType: hard "is-async-function@npm:^2.0.0": - version: 2.0.0 - resolution: "is-async-function@npm:2.0.0" + version: 2.1.1 + resolution: "is-async-function@npm:2.1.1" dependencies: - has-tostringtag: ^1.0.0 - checksum: e3471d95e6c014bf37cad8a93f2f4b6aac962178e0a5041e8903147166964fdc1c5c1d2ef87e86d77322c370ca18f2ea004fa7420581fa747bcaf7c223069dbd + async-function: ^1.0.0 + call-bound: ^1.0.3 + get-proto: ^1.0.1 + has-tostringtag: ^1.0.2 + safe-regex-test: ^1.1.0 + checksum: 9bece45133da26636488ca127d7686b85ad3ca18927e2850cff1937a650059e90be1c71a48623f8791646bb7a241b0cabf602a0b9252dcfa5ab273f2399000e6 languageName: node linkType: hard -"is-bigint@npm:^1.0.1": - version: 1.0.4 - resolution: "is-bigint@npm:1.0.4" +"is-bigint@npm:^1.1.0": + version: 1.1.0 + resolution: "is-bigint@npm:1.1.0" dependencies: - has-bigints: ^1.0.1 - checksum: c56edfe09b1154f8668e53ebe8252b6f185ee852a50f9b41e8d921cb2bed425652049fbe438723f6cb48a63ca1aa051e948e7e401e093477c99c84eba244f666 + has-bigints: ^1.0.2 + checksum: ee1544f0e664f253306786ed1dce494b8cf242ef415d6375d8545b4d8816b0f054bd9f948a8988ae2c6325d1c28260dd02978236b2f7b8fb70dfc4838a6c9fa7 languageName: node linkType: hard @@ -12019,13 +11899,13 @@ coolshapes-react@lowcoder-org/coolshapes-react: languageName: node linkType: hard -"is-boolean-object@npm:^1.1.0": - version: 1.1.2 - resolution: "is-boolean-object@npm:1.1.2" +"is-boolean-object@npm:^1.2.1": + version: 1.2.2 + resolution: "is-boolean-object@npm:1.2.2" dependencies: - call-bind: ^1.0.2 - has-tostringtag: ^1.0.0 - checksum: c03b23dbaacadc18940defb12c1c0e3aaece7553ef58b162a0f6bba0c2a7e1551b59f365b91e00d2dbac0522392d576ef322628cb1d036a0fe51eb466db67222 + call-bound: ^1.0.3 + has-tostringtag: ^1.0.2 + checksum: 0415b181e8f1bfd5d3f8a20f8108e64d372a72131674eea9c2923f39d065b6ad08d654765553bdbffbd92c3746f1007986c34087db1bd89a31f71be8359ccdaa languageName: node linkType: hard @@ -12036,7 +11916,7 @@ coolshapes-react@lowcoder-org/coolshapes-react: languageName: node linkType: hard -"is-builtin-module@npm:^3.1.0, is-builtin-module@npm:^3.2.1": +"is-builtin-module@npm:^3.1.0": version: 3.2.1 resolution: "is-builtin-module@npm:3.2.1" dependencies: @@ -12045,37 +11925,40 @@ coolshapes-react@lowcoder-org/coolshapes-react: languageName: node linkType: hard -"is-callable@npm:^1.1.3, is-callable@npm:^1.1.4, is-callable@npm:^1.2.7": +"is-callable@npm:^1.2.7": version: 1.2.7 resolution: "is-callable@npm:1.2.7" checksum: 61fd57d03b0d984e2ed3720fb1c7a897827ea174bd44402878e059542ea8c4aeedee0ea0985998aa5cc2736b2fa6e271c08587addb5b3959ac52cf665173d1ac languageName: node linkType: hard -"is-core-module@npm:^2.13.0, is-core-module@npm:^2.13.1": - version: 2.13.1 - resolution: "is-core-module@npm:2.13.1" +"is-core-module@npm:^2.13.0, is-core-module@npm:^2.15.1, is-core-module@npm:^2.16.0": + version: 2.16.1 + resolution: "is-core-module@npm:2.16.1" dependencies: - hasown: ^2.0.0 - checksum: 256559ee8a9488af90e4bad16f5583c6d59e92f0742e9e8bb4331e758521ee86b810b93bae44f390766ffbc518a0488b18d9dab7da9a5ff997d499efc9403f7c + hasown: ^2.0.2 + checksum: 6ec5b3c42d9cbf1ac23f164b16b8a140c3cec338bf8f884c076ca89950c7cc04c33e78f02b8cae7ff4751f3247e3174b2330f1fe4de194c7210deb8b1ea316a7 languageName: node linkType: hard -"is-data-view@npm:^1.0.1": - version: 1.0.1 - resolution: "is-data-view@npm:1.0.1" +"is-data-view@npm:^1.0.1, is-data-view@npm:^1.0.2": + version: 1.0.2 + resolution: "is-data-view@npm:1.0.2" dependencies: + call-bound: ^1.0.2 + get-intrinsic: ^1.2.6 is-typed-array: ^1.1.13 - checksum: 4ba4562ac2b2ec005fefe48269d6bd0152785458cd253c746154ffb8a8ab506a29d0cfb3b74af87513843776a88e4981ae25c89457bf640a33748eab1a7216b5 + checksum: 31600dd19932eae7fd304567e465709ffbfa17fa236427c9c864148e1b54eb2146357fcf3aed9b686dee13c217e1bb5a649cb3b9c479e1004c0648e9febde1b2 languageName: node linkType: hard -"is-date-object@npm:^1.0.1, is-date-object@npm:^1.0.5": - version: 1.0.5 - resolution: "is-date-object@npm:1.0.5" +"is-date-object@npm:^1.0.5, is-date-object@npm:^1.1.0": + version: 1.1.0 + resolution: "is-date-object@npm:1.1.0" dependencies: - has-tostringtag: ^1.0.0 - checksum: baa9077cdf15eb7b58c79398604ca57379b2fc4cf9aa7a9b9e295278648f628c9b201400c01c5e0f7afae56507d741185730307cbe7cad3b9f90a77e5ee342fc + call-bound: ^1.0.2 + has-tostringtag: ^1.0.2 + checksum: d6c36ab9d20971d65f3fc64cef940d57a4900a2ac85fb488a46d164c2072a33da1cb51eefcc039e3e5c208acbce343d3480b84ab5ff0983f617512da2742562a languageName: node linkType: hard @@ -12111,12 +11994,12 @@ coolshapes-react@lowcoder-org/coolshapes-react: languageName: node linkType: hard -"is-finalizationregistry@npm:^1.0.2": - version: 1.0.2 - resolution: "is-finalizationregistry@npm:1.0.2" +"is-finalizationregistry@npm:^1.1.0": + version: 1.1.1 + resolution: "is-finalizationregistry@npm:1.1.1" dependencies: - call-bind: ^1.0.2 - checksum: 4f243a8e06228cd45bdab8608d2cb7abfc20f6f0189c8ac21ea8d603f1f196eabd531ce0bb8e08cbab047e9845ef2c191a3761c9a17ad5cabf8b35499c4ad35d + call-bound: ^1.0.3 + checksum: 38c646c506e64ead41a36c182d91639833311970b6b6c6268634f109eef0a1a9d2f1f2e499ef4cb43c744a13443c4cdd2f0812d5afdcee5e9b65b72b28c48557 languageName: node linkType: hard @@ -12142,11 +12025,14 @@ coolshapes-react@lowcoder-org/coolshapes-react: linkType: hard "is-generator-function@npm:^1.0.10, is-generator-function@npm:^1.0.7": - version: 1.0.10 - resolution: "is-generator-function@npm:1.0.10" + version: 1.1.0 + resolution: "is-generator-function@npm:1.1.0" dependencies: - has-tostringtag: ^1.0.0 - checksum: d54644e7dbaccef15ceb1e5d91d680eb5068c9ee9f9eb0a9e04173eb5542c9b51b5ab52c5537f5703e48d5fddfd376817c1ca07a84a407b7115b769d4bdde72b + call-bound: ^1.0.3 + get-proto: ^1.0.0 + has-tostringtag: ^1.0.2 + safe-regex-test: ^1.1.0 + checksum: f7f7276131bdf7e28169b86ac55a5b080012a597f9d85a0cbef6fe202a7133fa450a3b453e394870e3cb3685c5a764c64a9f12f614684b46969b1e6f297bed6b languageName: node linkType: hard @@ -12177,13 +12063,6 @@ coolshapes-react@lowcoder-org/coolshapes-react: languageName: node linkType: hard -"is-lambda@npm:^1.0.1": - version: 1.0.1 - resolution: "is-lambda@npm:1.0.1" - checksum: 93a32f01940220532e5948538699ad610d5924ac86093fcee83022252b363eb0cc99ba53ab084a04e4fb62bf7b5731f55496257a4c38adf87af9c4d352c71c35 - languageName: node - linkType: hard - "is-lite@npm:^1.2.1": version: 1.2.1 resolution: "is-lite@npm:1.2.1" @@ -12215,13 +12094,6 @@ coolshapes-react@lowcoder-org/coolshapes-react: languageName: node linkType: hard -"is-negative-zero@npm:^2.0.3": - version: 2.0.3 - resolution: "is-negative-zero@npm:2.0.3" - checksum: c1e6b23d2070c0539d7b36022d5a94407132411d01aba39ec549af824231f3804b1aea90b5e4e58e807a65d23ceb538ed6e355ce76b267bdd86edb757ffcbdcd - languageName: node - linkType: hard - "is-network-error@npm:^1.0.0": version: 1.1.0 resolution: "is-network-error@npm:1.1.0" @@ -12229,12 +12101,13 @@ coolshapes-react@lowcoder-org/coolshapes-react: languageName: node linkType: hard -"is-number-object@npm:^1.0.4": - version: 1.0.7 - resolution: "is-number-object@npm:1.0.7" +"is-number-object@npm:^1.1.1": + version: 1.1.1 + resolution: "is-number-object@npm:1.1.1" dependencies: - has-tostringtag: ^1.0.0 - checksum: d1e8d01bb0a7134c74649c4e62da0c6118a0bfc6771ea3c560914d52a627873e6920dd0fd0ebc0e12ad2ff4687eac4c308f7e80320b973b2c8a2c8f97a7524f7 + call-bound: ^1.0.3 + has-tostringtag: ^1.0.2 + checksum: 6517f0a0e8c4b197a21afb45cd3053dc711e79d45d8878aa3565de38d0102b130ca8732485122c7b336e98c27dacd5236854e3e6526e0eb30cae64956535662f languageName: node linkType: hard @@ -12299,21 +12172,23 @@ coolshapes-react@lowcoder-org/coolshapes-react: linkType: hard "is-reference@npm:^3.0.0": - version: 3.0.2 - resolution: "is-reference@npm:3.0.2" + version: 3.0.3 + resolution: "is-reference@npm:3.0.3" dependencies: - "@types/estree": "*" - checksum: ac3bf5626fe9d0afbd7454760d73c47f16b9f471401b9749721ad3b66f0a39644390382acf88ca9d029c95782c1e2ec65662855e3ba91acf52d82231247a7fd3 + "@types/estree": ^1.0.6 + checksum: 11371fb2669a8144bffb2ae9bd11b0342b7dc384c3c0f8d5996566b071614282a3a0d306fd2fd1c6b4c9078d0e2703d191b47f4f78f9ce08f464c44a3a412412 languageName: node linkType: hard -"is-regex@npm:^1.1.4": - version: 1.1.4 - resolution: "is-regex@npm:1.1.4" +"is-regex@npm:^1.1.4, is-regex@npm:^1.2.1": + version: 1.2.1 + resolution: "is-regex@npm:1.2.1" dependencies: - call-bind: ^1.0.2 - has-tostringtag: ^1.0.0 - checksum: 362399b33535bc8f386d96c45c9feb04cf7f8b41c182f54174c1a45c9abbbe5e31290bbad09a458583ff6bf3b2048672cdb1881b13289569a7c548370856a652 + call-bound: ^1.0.2 + gopd: ^1.2.0 + has-tostringtag: ^1.0.2 + hasown: ^2.0.2 + checksum: 99ee0b6d30ef1bb61fa4b22fae7056c6c9b3c693803c0c284ff7a8570f83075a7d38cda53b06b7996d441215c27895ea5d1af62124562e13d91b3dbec41a5e13 languageName: node linkType: hard @@ -12324,12 +12199,12 @@ coolshapes-react@lowcoder-org/coolshapes-react: languageName: node linkType: hard -"is-shared-array-buffer@npm:^1.0.2, is-shared-array-buffer@npm:^1.0.3": - version: 1.0.3 - resolution: "is-shared-array-buffer@npm:1.0.3" +"is-shared-array-buffer@npm:^1.0.2, is-shared-array-buffer@npm:^1.0.4": + version: 1.0.4 + resolution: "is-shared-array-buffer@npm:1.0.4" dependencies: - call-bind: ^1.0.7 - checksum: a4fff602c309e64ccaa83b859255a43bb011145a42d3f56f67d9268b55bc7e6d98a5981a1d834186ad3105d6739d21547083fe7259c76c0468483fc538e716d8 + call-bound: ^1.0.3 + checksum: 1611fedc175796eebb88f4dfc393dd969a4a8e6c69cadaff424ee9d4464f9f026399a5f84a90f7c62d6d7ee04e3626a912149726de102b0bd6c1ee6a9868fa5a languageName: node linkType: hard @@ -12347,30 +12222,33 @@ coolshapes-react@lowcoder-org/coolshapes-react: languageName: node linkType: hard -"is-string@npm:^1.0.5, is-string@npm:^1.0.7": - version: 1.0.7 - resolution: "is-string@npm:1.0.7" +"is-string@npm:^1.0.7, is-string@npm:^1.1.1": + version: 1.1.1 + resolution: "is-string@npm:1.1.1" dependencies: - has-tostringtag: ^1.0.0 - checksum: 323b3d04622f78d45077cf89aab783b2f49d24dc641aa89b5ad1a72114cfeff2585efc8c12ef42466dff32bde93d839ad321b26884cf75e5a7892a938b089989 + call-bound: ^1.0.3 + has-tostringtag: ^1.0.2 + checksum: 2eeaaff605250f5e836ea3500d33d1a5d3aa98d008641d9d42fb941e929ffd25972326c2ef912987e54c95b6f10416281aaf1b35cdf81992cfb7524c5de8e193 languageName: node linkType: hard -"is-symbol@npm:^1.0.2, is-symbol@npm:^1.0.3": - version: 1.0.4 - resolution: "is-symbol@npm:1.0.4" +"is-symbol@npm:^1.0.4, is-symbol@npm:^1.1.1": + version: 1.1.1 + resolution: "is-symbol@npm:1.1.1" dependencies: - has-symbols: ^1.0.2 - checksum: 92805812ef590738d9de49d677cd17dfd486794773fb6fa0032d16452af46e9b91bb43ffe82c983570f015b37136f4b53b28b8523bfb10b0ece7a66c31a54510 + call-bound: ^1.0.2 + has-symbols: ^1.1.0 + safe-regex-test: ^1.1.0 + checksum: bfafacf037af6f3c9d68820b74be4ae8a736a658a3344072df9642a090016e281797ba8edbeb1c83425879aae55d1cb1f30b38bf132d703692b2570367358032 languageName: node linkType: hard -"is-typed-array@npm:^1.1.13, is-typed-array@npm:^1.1.3": - version: 1.1.13 - resolution: "is-typed-array@npm:1.1.13" +"is-typed-array@npm:^1.1.13, is-typed-array@npm:^1.1.14, is-typed-array@npm:^1.1.15, is-typed-array@npm:^1.1.3": + version: 1.1.15 + resolution: "is-typed-array@npm:1.1.15" dependencies: - which-typed-array: ^1.1.14 - checksum: 150f9ada183a61554c91e1c4290086d2c100b0dff45f60b028519be72a8db964da403c48760723bf5253979b8dffe7b544246e0e5351dcd05c5fdb1dcc1dc0f0 + which-typed-array: ^1.1.16 + checksum: ea7cfc46c282f805d19a9ab2084fd4542fed99219ee9dbfbc26284728bd713a51eac66daa74eca00ae0a43b61322920ba334793607dc39907465913e921e0892 languageName: node linkType: hard @@ -12388,22 +12266,22 @@ coolshapes-react@lowcoder-org/coolshapes-react: languageName: node linkType: hard -"is-weakref@npm:^1.0.2": - version: 1.0.2 - resolution: "is-weakref@npm:1.0.2" +"is-weakref@npm:^1.0.2, is-weakref@npm:^1.1.1": + version: 1.1.1 + resolution: "is-weakref@npm:1.1.1" dependencies: - call-bind: ^1.0.2 - checksum: 95bd9a57cdcb58c63b1c401c60a474b0f45b94719c30f548c891860f051bc2231575c290a6b420c6bc6e7ed99459d424c652bd5bf9a1d5259505dc35b4bf83de + call-bound: ^1.0.3 + checksum: 1769b9aed5d435a3a989ffc18fc4ad1947d2acdaf530eb2bd6af844861b545047ea51102f75901f89043bed0267ed61d914ee21e6e8b9aa734ec201cdfc0726f languageName: node linkType: hard "is-weakset@npm:^2.0.3": - version: 2.0.3 - resolution: "is-weakset@npm:2.0.3" + version: 2.0.4 + resolution: "is-weakset@npm:2.0.4" dependencies: - call-bind: ^1.0.7 - get-intrinsic: ^1.2.4 - checksum: 8b6a20ee9f844613ff8f10962cfee49d981d584525f2357fee0a04dfbcde9fd607ed60cb6dab626dbcc470018ae6392e1ff74c0c1aced2d487271411ad9d85ae + call-bound: ^1.0.3 + get-intrinsic: ^1.2.6 + checksum: 5c6c8415a06065d78bdd5e3a771483aa1cd928df19138aa73c4c51333226f203f22117b4325df55cc8b3085a6716870a320c2d757efee92d7a7091a039082041 languageName: node linkType: hard @@ -12530,15 +12408,15 @@ coolshapes-react@lowcoder-org/coolshapes-react: linkType: hard "istanbul-lib-instrument@npm:^6.0.0": - version: 6.0.2 - resolution: "istanbul-lib-instrument@npm:6.0.2" + version: 6.0.3 + resolution: "istanbul-lib-instrument@npm:6.0.3" dependencies: "@babel/core": ^7.23.9 "@babel/parser": ^7.23.9 "@istanbuljs/schema": ^0.1.3 istanbul-lib-coverage: ^3.2.0 semver: ^7.5.4 - checksum: c10aa1e93a022f9767d7f41e6c07d244cc0a5c090fbb5522d70a5f21fcb98c52b7038850276c6fd1a7a17d1868c14a9d4eb8a24efe58a0ebb9a06f3da68131fe + checksum: 74104c60c65c4fa0e97cc76f039226c356123893929f067bfad5f86fe839e08f5d680354a68fead3bc9c1e2f3fa6f3f53cded70778e821d911e851d349f3545a languageName: node linkType: hard @@ -12574,35 +12452,36 @@ coolshapes-react@lowcoder-org/coolshapes-react: languageName: node linkType: hard -"iterator.prototype@npm:^1.1.2": - version: 1.1.2 - resolution: "iterator.prototype@npm:1.1.2" +"iterator.prototype@npm:^1.1.4": + version: 1.1.5 + resolution: "iterator.prototype@npm:1.1.5" dependencies: - define-properties: ^1.2.1 - get-intrinsic: ^1.2.1 - has-symbols: ^1.0.3 - reflect.getprototypeof: ^1.0.4 - set-function-name: ^2.0.1 - checksum: d8a507e2ccdc2ce762e8a1d3f4438c5669160ac72b88b648e59a688eec6bc4e64b22338e74000518418d9e693faf2a092d2af21b9ec7dbf7763b037a54701168 + define-data-property: ^1.1.4 + es-object-atoms: ^1.0.0 + get-intrinsic: ^1.2.6 + get-proto: ^1.0.0 + has-symbols: ^1.1.0 + set-function-name: ^2.0.2 + checksum: 7db23c42629ba4790e6e15f78b555f41dbd08818c85af306988364bd19d86716a1187cb333444f3a0036bfc078a0e9cb7ec67fef3a61662736d16410d7f77869 languageName: node linkType: hard -"jackspeak@npm:^2.3.6": - version: 2.3.6 - resolution: "jackspeak@npm:2.3.6" +"jackspeak@npm:^3.1.2": + version: 3.4.3 + resolution: "jackspeak@npm:3.4.3" dependencies: "@isaacs/cliui": ^8.0.2 "@pkgjs/parseargs": ^0.11.0 dependenciesMeta: "@pkgjs/parseargs": optional: true - checksum: 57d43ad11eadc98cdfe7496612f6bbb5255ea69fe51ea431162db302c2a11011642f50cfad57288bd0aea78384a0612b16e131944ad8ecd09d619041c8531b54 + checksum: be31027fc72e7cc726206b9f560395604b82e0fddb46c4cbf9f97d049bcef607491a5afc0699612eaa4213ca5be8fd3e1e7cd187b3040988b65c9489838a7c00 languageName: node linkType: hard "jake@npm:^10.8.5": - version: 10.8.7 - resolution: "jake@npm:10.8.7" + version: 10.9.2 + resolution: "jake@npm:10.9.2" dependencies: async: ^3.2.3 chalk: ^4.0.2 @@ -12610,7 +12489,7 @@ coolshapes-react@lowcoder-org/coolshapes-react: minimatch: ^3.1.2 bin: jake: bin/cli.js - checksum: a23fd2273fb13f0d0d845502d02c791fd55ef5c6a2d207df72f72d8e1eac6d2b8ffa6caf660bc8006b3242e0daaa88a3ecc600194d72b5c6016ad56e9cd43553 + checksum: f2dc4a086b4f58446d02cb9be913c39710d9ea570218d7681bb861f7eeaecab7b458256c946aeaa7e548c5e0686cc293e6435501e4047174a3b6a504dcbfcaae languageName: node linkType: hard @@ -13125,13 +13004,20 @@ coolshapes-react@lowcoder-org/coolshapes-react: languageName: node linkType: hard -"js-cookie@npm:^2.2.1, js-cookie@npm:^2.x.x": +"js-cookie@npm:^2.2.1": version: 2.2.1 resolution: "js-cookie@npm:2.2.1" checksum: 9b1fb980a1c5e624fd4b28ea4867bb30c71e04c4484bb3a42766344c533faa684de9498e443425479ec68609e96e27b60614bfe354877c449c631529b6d932f2 languageName: node linkType: hard +"js-cookie@npm:^3.0.5": + version: 3.0.5 + resolution: "js-cookie@npm:3.0.5" + checksum: 2dbd2809c6180fbcf060c6957cb82dbb47edae0ead6bd71cbeedf448aa6b6923115003b995f7d3e3077bfe2cb76295ea6b584eb7196cca8ba0a09f389f64967a + languageName: node + linkType: hard + "js-tokens@npm:^3.0.0 || ^4.0.0, js-tokens@npm:^4.0.0": version: 4.0.0 resolution: "js-tokens@npm:4.0.0" @@ -13254,21 +13140,21 @@ coolshapes-react@lowcoder-org/coolshapes-react: languageName: node linkType: hard -"jsesc@npm:^2.5.1": - version: 2.5.2 - resolution: "jsesc@npm:2.5.2" +"jsesc@npm:^3.0.2": + version: 3.1.0 + resolution: "jsesc@npm:3.1.0" bin: jsesc: bin/jsesc - checksum: 4dc190771129e12023f729ce20e1e0bfceac84d73a85bc3119f7f938843fe25a4aeccb54b6494dce26fcf263d815f5f31acdefac7cc9329efb8422a4f4d9fa9d + checksum: 19c94095ea026725540c0d29da33ab03144f6bcf2d4159e4833d534976e99e0c09c38cefa9a575279a51fc36b31166f8d6d05c9fe2645d5f15851d690b41f17f languageName: node linkType: hard -"jsesc@npm:~0.5.0": - version: 0.5.0 - resolution: "jsesc@npm:0.5.0" +"jsesc@npm:~3.0.2": + version: 3.0.2 + resolution: "jsesc@npm:3.0.2" bin: jsesc: bin/jsesc - checksum: b8b44cbfc92f198ad972fba706ee6a1dfa7485321ee8c0b25f5cedd538dcb20cde3197de16a7265430fce8277a12db066219369e3d51055038946039f6e20e17 + checksum: a36d3ca40574a974d9c2063bf68c2b6141c20da8f2a36bd3279fc802563f35f0527a6c828801295bdfb2803952cf2cf387786c2c90ed564f88d5782475abfe3c languageName: node linkType: hard @@ -13415,13 +13301,20 @@ coolshapes-react@lowcoder-org/coolshapes-react: linkType: hard "katex@npm:^0.16.9": - version: 0.16.10 - resolution: "katex@npm:0.16.10" + version: 0.16.22 + resolution: "katex@npm:0.16.22" dependencies: commander: ^8.3.0 bin: katex: cli.js - checksum: 108e9d810e17840c43eef8d46171096f4cc97852bfd1e2dd1890d9b3435846816e3e98678a31d38bd064eb97eea83b18ff224cb65d5f9511b54ce7ff4359b591 + checksum: 66a609b6f3e1a3e8634a03228dcd31cb88b7f39d057cfe5271417bc8eb64b85f256accdbd68f453b5714e4e9546192bad554f75c8b9adb91d6b0a7a93505376b + languageName: node + linkType: hard + +"kdbush@npm:^4.0.2": + version: 4.0.2 + resolution: "kdbush@npm:4.0.2" + checksum: 6782ef2cdaec9322376b9955a16b0163beda0cefa2f87da76e8970ade2572d8b63bec915347aaeac609484b0c6e84d7b591f229ef353b68b460238095bacde2d languageName: node linkType: hard @@ -13463,9 +13356,9 @@ coolshapes-react@lowcoder-org/coolshapes-react: linkType: hard "language-subtag-registry@npm:^0.3.20": - version: 0.3.22 - resolution: "language-subtag-registry@npm:0.3.22" - checksum: 8ab70a7e0e055fe977ac16ea4c261faec7205ac43db5e806f72e5b59606939a3b972c4bd1e10e323b35d6ffa97c3e1c4c99f6553069dad2dfdd22020fa3eb56a + version: 0.3.23 + resolution: "language-subtag-registry@npm:0.3.23" + checksum: 0b64c1a6c5431c8df648a6d25594ff280613c886f4a1a542d9b864e5472fb93e5c7856b9c41595c38fac31370328fc79fcc521712e89ea6d6866cbb8e0995d81 languageName: node linkType: hard @@ -13479,12 +13372,12 @@ coolshapes-react@lowcoder-org/coolshapes-react: linkType: hard "launch-editor@npm:^2.6.1": - version: 2.6.1 - resolution: "launch-editor@npm:2.6.1" + version: 2.10.0 + resolution: "launch-editor@npm:2.10.0" dependencies: picocolors: ^1.0.0 shell-quote: ^1.8.1 - checksum: e06d193075ac09f7f8109f10cabe464a211bf7ed4cbe75f83348d6f67bf4d9f162f06e7a1ab3e1cd7fc250b5342c3b57080618aff2e646dc34248fe499227601 + checksum: 0cd219f98a8be1cedc73119c1a18ff232eb1386dcc0f4e710b21234e62bf55513342a3e0939cd67c3d920fc7d714457876bc782a5b17e03f59acbbafd23c5f50 languageName: node linkType: hard @@ -13496,8 +13389,8 @@ coolshapes-react@lowcoder-org/coolshapes-react: linkType: hard "less-loader@npm:^12.2.0": - version: 12.2.0 - resolution: "less-loader@npm:12.2.0" + version: 12.3.0 + resolution: "less-loader@npm:12.3.0" peerDependencies: "@rspack/core": 0.x || 1.x less: ^3.5.0 || ^4.0.0 @@ -13507,13 +13400,13 @@ coolshapes-react@lowcoder-org/coolshapes-react: optional: true webpack: optional: true - checksum: df08dba1d733d6b4202ce185e8fe4897c407a20aeba01dc214f514352ab5aadcd53fc76366b9e473f9ec920bb612d839b39c686303d2ce2155edf61a7be69b7b + checksum: 9a291f37a4514349ce4a187ddffd77bfd7d4f97077f71aa6dbfc81393a0cd3c00ab793c13f40a4d3acdbad423db9d2e75054ede4fb1900ba0e49882c9405a4f7 languageName: node linkType: hard "less@npm:^4.1.3": - version: 4.2.0 - resolution: "less@npm:4.2.0" + version: 4.3.0 + resolution: "less@npm:4.3.0" dependencies: copy-anything: ^2.0.1 errno: ^0.1.1 @@ -13542,7 +13435,7 @@ coolshapes-react@lowcoder-org/coolshapes-react: optional: true bin: lessc: bin/lessc - checksum: 2ec4fa41e35e5c0331c1ee64419aa5c2cbb9a17b9e9d1deb524ec45843f59d9c4612dffc164ca16126911fbe9913e4ff811a13f33805f71e546f6d022ece93b6 + checksum: a071ec82fd6b79bc57e9d529542d205824d71a4c1914553c80b237390785938d83df2e7be774aeb07e08157afd57837d67704f917db203de5bf8411255be5bdd languageName: node linkType: hard @@ -13879,9 +13772,9 @@ coolshapes-react@lowcoder-org/coolshapes-react: linkType: hard "loglevel@npm:^1.8.0": - version: 1.9.1 - resolution: "loglevel@npm:1.9.1" - checksum: e1c8586108c4d566122e91f8a79c8df728920e3a714875affa5120566761a24077ec8ec9e5fc388b022e39fc411ec6e090cde1b5775871241b045139771eeb06 + version: 1.9.2 + resolution: "loglevel@npm:1.9.2" + checksum: 896c67b90a507bfcfc1e9a4daa7bf789a441dd70d95cd13b998d6dd46233a3bfadfb8fadb07250432bbfb53bf61e95f2520f9b11f9d3175cc460e5c251eca0af languageName: node linkType: hard @@ -13903,10 +13796,10 @@ coolshapes-react@lowcoder-org/coolshapes-react: languageName: node linkType: hard -"lottie-web@npm:^5.10.2": - version: 5.12.2 - resolution: "lottie-web@npm:5.12.2" - checksum: af5bc3bc405fd760de8b17a36158d5a8c3e8c586c711d0c63681ddf056b65bc6b54ea36b1fcad782fb02dbe12e696a40e0ba72daf41b8f10ab5b5d1113793636 +"lottie-web@npm:^5.12.2": + version: 5.13.0 + resolution: "lottie-web@npm:5.13.0" + checksum: f634eddbfc49a243af598c8c3b5b2bc347c6980cb85ef3e17a394aa52e2d4d1d04ef565d9cf1581727eec598717932abf5e0e0aba111b4d64f2a9dadaeaa98e2 languageName: node linkType: hard @@ -14224,6 +14117,7 @@ coolshapes-react@lowcoder-org/coolshapes-react: "@types/react-test-renderer": ^18.0.0 "@types/react-virtualized": ^9.21.21 "@types/regenerator-runtime": ^0.13.1 + "@types/supercluster": ^7.1.3 "@types/uuid": ^8.3.4 "@vitejs/plugin-react": ^2.2.0 alasql: ^4.6.6 @@ -14238,6 +14132,7 @@ coolshapes-react@lowcoder-org/coolshapes-react: core-js: ^3.25.2 dotenv: ^16.0.3 echarts: ^5.4.3 + echarts-for-react: ^3.0.2 echarts-wordcloud: ^2.1.0 eslint: ^8.0.0 eslint-config-react-app: ^7.0.1 @@ -14257,6 +14152,7 @@ coolshapes-react@lowcoder-org/coolshapes-react: moment: ^2.29.4 numbro: ^2.3.6 papaparse: ^5.3.2 + pigeon-maps: ^0.22.1 qrcode.react: ^3.1.0 rc-trigger: ^5.3.1 react: 18.3.0 @@ -14297,6 +14193,7 @@ coolshapes-react@lowcoder-org/coolshapes-react: sql-formatter: ^8.2.0 styled-components: ^6.1.8 stylis: ^4.1.1 + supercluster: ^8.0.1 tern: ^0.24.3 typescript: ^4.8.4 typescript-collections: ^1.3.3 @@ -14324,9 +14221,9 @@ coolshapes-react@lowcoder-org/coolshapes-react: linkType: hard "lru-cache@npm:^10.0.1, lru-cache@npm:^10.2.0": - version: 10.2.1 - resolution: "lru-cache@npm:10.2.1" - checksum: ae81586eaeb92389fc9a05790d7efd424a29334daa4e513196d6e138a069d0afad1738cfa67773f05b9cb8666fb076f8af88a1b5cc4c7e569202f18a0c032a35 + version: 10.4.3 + resolution: "lru-cache@npm:10.4.3" + checksum: 6476138d2125387a6d20f100608c2583d415a4f64a0fecf30c9e2dda976614f09cad4baa0842447bd37dd459a7bd27f57d9d8f8ce558805abd487c583f3d774a languageName: node linkType: hard @@ -14339,15 +14236,6 @@ coolshapes-react@lowcoder-org/coolshapes-react: languageName: node linkType: hard -"lru-cache@npm:^6.0.0": - version: 6.0.0 - resolution: "lru-cache@npm:6.0.0" - dependencies: - yallist: ^4.0.0 - checksum: f97f499f898f23e4585742138a22f22526254fdba6d75d41a1c2526b3b6cc5747ef59c5612ba7375f42aca4f8461950e925ba08c991ead0651b4918b7c978297 - languageName: node - linkType: hard - "lru-cache@npm:^7.14.1": version: 7.18.3 resolution: "lru-cache@npm:7.18.3" @@ -14407,12 +14295,12 @@ coolshapes-react@lowcoder-org/coolshapes-react: languageName: node linkType: hard -"magic-string@npm:^0.30.1, magic-string@npm:^0.30.2, magic-string@npm:^0.30.3": - version: 0.30.10 - resolution: "magic-string@npm:0.30.10" +"magic-string@npm:^0.30.11, magic-string@npm:^0.30.2, magic-string@npm:^0.30.3": + version: 0.30.17 + resolution: "magic-string@npm:0.30.17" dependencies: - "@jridgewell/sourcemap-codec": ^1.4.15 - checksum: 456fd47c39b296c47dff967e1965121ace35417eab7f45a99e681e725b8661b48e1573c366ee67a27715025b3740773c46b088f115421c7365ea4ea6fa10d399 + "@jridgewell/sourcemap-codec": ^1.5.0 + checksum: f4b4ed17c5ada64f77fc98491847302ebad64894a905c417c943840c0384662118c9b37f9f68bb86add159fa4749ff6f118c4627d69a470121b46731f8debc6d languageName: node linkType: hard @@ -14451,22 +14339,22 @@ coolshapes-react@lowcoder-org/coolshapes-react: languageName: node linkType: hard -"make-fetch-happen@npm:^13.0.0": - version: 13.0.0 - resolution: "make-fetch-happen@npm:13.0.0" +"make-fetch-happen@npm:^14.0.3": + version: 14.0.3 + resolution: "make-fetch-happen@npm:14.0.3" dependencies: - "@npmcli/agent": ^2.0.0 - cacache: ^18.0.0 + "@npmcli/agent": ^3.0.0 + cacache: ^19.0.1 http-cache-semantics: ^4.1.1 - is-lambda: ^1.0.1 minipass: ^7.0.2 - minipass-fetch: ^3.0.0 + minipass-fetch: ^4.0.0 minipass-flush: ^1.0.5 minipass-pipeline: ^1.2.4 - negotiator: ^0.6.3 + negotiator: ^1.0.0 + proc-log: ^5.0.0 promise-retry: ^2.0.1 - ssri: ^10.0.0 - checksum: 7c7a6d381ce919dd83af398b66459a10e2fe8f4504f340d1d090d3fa3d1b0c93750220e1d898114c64467223504bd258612ba83efbc16f31b075cd56de24b4af + ssri: ^12.0.0 + checksum: 6fb2fee6da3d98f1953b03d315826b5c5a4ea1f908481afc113782d8027e19f080c85ae998454de4e5f27a681d3ec58d57278f0868d4e0b736f51d396b661691 languageName: node linkType: hard @@ -14480,9 +14368,9 @@ coolshapes-react@lowcoder-org/coolshapes-react: linkType: hard "markdown-table@npm:^3.0.0": - version: 3.0.3 - resolution: "markdown-table@npm:3.0.3" - checksum: 8fcd3d9018311120fbb97115987f8b1665a603f3134c93fbecc5d1463380c8036f789e2a62c19432058829e594fff8db9ff81c88f83690b2f8ed6c074f8d9e10 + version: 3.0.4 + resolution: "markdown-table@npm:3.0.4" + checksum: bc24b177cbb3ef170cb38c9f191476aa63f7236ebc8980317c5e91b5bf98c8fb471cf46d8920478c5e770d7f4337326f6b5b3efbf0687c2044fd332d7a64dfcb languageName: node linkType: hard @@ -14495,6 +14383,13 @@ coolshapes-react@lowcoder-org/coolshapes-react: languageName: node linkType: hard +"math-intrinsics@npm:^1.1.0": + version: 1.1.0 + resolution: "math-intrinsics@npm:1.1.0" + checksum: 0e513b29d120f478c85a70f49da0b8b19bc638975eca466f2eeae0071f3ad00454c621bf66e16dd435896c208e719fc91ad79bbfba4e400fe0b372e7c1c9c9a2 + languageName: node + linkType: hard + "md5.js@npm:^1.3.4": version: 1.3.5 resolution: "md5.js@npm:1.3.5" @@ -14507,14 +14402,14 @@ coolshapes-react@lowcoder-org/coolshapes-react: linkType: hard "mdast-util-find-and-replace@npm:^3.0.0": - version: 3.0.1 - resolution: "mdast-util-find-and-replace@npm:3.0.1" + version: 3.0.2 + resolution: "mdast-util-find-and-replace@npm:3.0.2" dependencies: "@types/mdast": ^4.0.0 escape-string-regexp: ^5.0.0 unist-util-is: ^6.0.0 unist-util-visit-parents: ^6.0.0 - checksum: 05d5c4ff02e31db2f8a685a13bcb6c3f44e040bd9dfa54c19a232af8de5268334c8755d79cb456ed4cced1300c4fb83e88444c7ae8ee9ff16869a580f29d08cd + checksum: 00dde8aaf87d065034b911bdae20d17c107f5103c6ba5a3d117598c847ce005c6b03114b5603e0d07cc61fefcbb05bdb9f66100efeaa0278dbd80eda1087595f languageName: node linkType: hard @@ -14539,8 +14434,8 @@ coolshapes-react@lowcoder-org/coolshapes-react: linkType: hard "mdast-util-from-markdown@npm:^2.0.0": - version: 2.0.1 - resolution: "mdast-util-from-markdown@npm:2.0.1" + version: 2.0.2 + resolution: "mdast-util-from-markdown@npm:2.0.2" dependencies: "@types/mdast": ^4.0.0 "@types/unist": ^3.0.0 @@ -14554,7 +14449,7 @@ coolshapes-react@lowcoder-org/coolshapes-react: micromark-util-symbol: ^2.0.0 micromark-util-types: ^2.0.0 unist-util-stringify-position: ^4.0.0 - checksum: 2e50be71272a1503558c599cd5766cf2743935a021f82e32bc2ae5da44f6c7dcabb9da3a6eee76ede0ec8ad2b122d1192f4fe89890aac90c76463f049f8a835d + checksum: 1ad19f48b30ac6e0cb756070c210c78ad93c26876edfb3f75127783bc6df8b9402016d8f3e9964f3d1d5430503138ec65c145e869438727e1aa7f3cebf228fba languageName: node linkType: hard @@ -14572,15 +14467,15 @@ coolshapes-react@lowcoder-org/coolshapes-react: linkType: hard "mdast-util-gfm-footnote@npm:^2.0.0": - version: 2.0.0 - resolution: "mdast-util-gfm-footnote@npm:2.0.0" + version: 2.1.0 + resolution: "mdast-util-gfm-footnote@npm:2.1.0" dependencies: "@types/mdast": ^4.0.0 devlop: ^1.1.0 mdast-util-from-markdown: ^2.0.0 mdast-util-to-markdown: ^2.0.0 micromark-util-normalize-identifier: ^2.0.0 - checksum: 45d26b40e7a093712e023105791129d76e164e2168d5268e113298a22de30c018162683fb7893cdc04ab246dac0087eed708b2a136d1d18ed2b32b3e0cae4a79 + checksum: a23c5531d63b254b46cbcb063b5731f56ccc9d1f038a17fa66d3994255868604a2b963f24e0f5b16dd3374743622afafcfe0c98cf90548d485bdc426ba77c618 languageName: node linkType: hard @@ -14621,8 +14516,8 @@ coolshapes-react@lowcoder-org/coolshapes-react: linkType: hard "mdast-util-gfm@npm:^3.0.0": - version: 3.0.0 - resolution: "mdast-util-gfm@npm:3.0.0" + version: 3.1.0 + resolution: "mdast-util-gfm@npm:3.1.0" dependencies: mdast-util-from-markdown: ^2.0.0 mdast-util-gfm-autolink-literal: ^2.0.0 @@ -14631,7 +14526,7 @@ coolshapes-react@lowcoder-org/coolshapes-react: mdast-util-gfm-table: ^2.0.0 mdast-util-gfm-task-list-item: ^2.0.0 mdast-util-to-markdown: ^2.0.0 - checksum: 62039d2f682ae3821ea1c999454863d31faf94d67eb9b746589c7e136076d7fb35fabc67e02f025c7c26fd7919331a0ee1aabfae24f565d9a6a9ebab3371c626 + checksum: ecdadc0b46608d03eea53366cfee8c9441ddacc49fe4e12934eff8fea06f9377d2679d9d9e43177295c09c8d7def5f48d739f99b0f6144a0e228a77f5a1c76bc languageName: node linkType: hard @@ -14650,8 +14545,8 @@ coolshapes-react@lowcoder-org/coolshapes-react: linkType: hard "mdast-util-mdx-jsx@npm:^3.0.0": - version: 3.1.3 - resolution: "mdast-util-mdx-jsx@npm:3.1.3" + version: 3.2.0 + resolution: "mdast-util-mdx-jsx@npm:3.2.0" dependencies: "@types/estree-jsx": ^1.0.0 "@types/hast": ^3.0.0 @@ -14665,7 +14560,7 @@ coolshapes-react@lowcoder-org/coolshapes-react: stringify-entities: ^4.0.0 unist-util-stringify-position: ^4.0.0 vfile-message: ^4.0.0 - checksum: 638644420090163fc08d01150e10550a21e914b85dd3a37178d3b949173c5aee2d7fee536f864ac25800e0cebde8357a5808427ffb7e9975a669e4382ae479ab + checksum: 224f5f6ad247f0f2622ee36c82ac7a4c6a60c31850de4056bf95f531bd2f7ec8943ef34dfe8a8375851f65c07e4913c4f33045d703df4ff4d11b2de5a088f7f9 languageName: node linkType: hard @@ -14711,18 +14606,19 @@ coolshapes-react@lowcoder-org/coolshapes-react: linkType: hard "mdast-util-to-markdown@npm:^2.0.0": - version: 2.1.0 - resolution: "mdast-util-to-markdown@npm:2.1.0" + version: 2.1.2 + resolution: "mdast-util-to-markdown@npm:2.1.2" dependencies: "@types/mdast": ^4.0.0 "@types/unist": ^3.0.0 longest-streak: ^3.0.0 mdast-util-phrasing: ^4.0.0 mdast-util-to-string: ^4.0.0 + micromark-util-classify-character: ^2.0.0 micromark-util-decode-string: ^2.0.0 unist-util-visit: ^5.0.0 zwitch: ^2.0.0 - checksum: 3a2cf3957e23b34e2e092e6e76ae72ee0b8745955bd811baba6814cf3a3d916c3fd52264b4b58f3bb3d512a428f84a1e998b6fc7e28434e388a9ae8fb6a9c173 + checksum: 288d152bd50c00632e6e01c610bb904a220d1e226c8086c40627877959746f83ab0b872f4150cb7d910198953b1bf756e384ac3fee3e7b0ddb4517f9084c5803 languageName: node linkType: hard @@ -14773,14 +14669,14 @@ coolshapes-react@lowcoder-org/coolshapes-react: linkType: hard "memfs@npm:^4.6.0": - version: 4.9.1 - resolution: "memfs@npm:4.9.1" + version: 4.17.2 + resolution: "memfs@npm:4.17.2" dependencies: - "@jsonjoy.com/json-pack": ^1.0.2 - "@jsonjoy.com/util": ^1.1.0 - sonic-forest: ^1.0.0 + "@jsonjoy.com/json-pack": ^1.0.3 + "@jsonjoy.com/util": ^1.3.0 + tree-dump: ^1.0.1 tslib: ^2.0.0 - checksum: 94946f40f62611fd15a268f46f317e4f556d9507d38062e6fdca9b4147964e5e1e7cc471936f8aaca1c3bee6368f1c4e2492c88ac08df099e634df5eaef0e8c1 + checksum: d27b02a24baaa95f469c76fb83a5dab2cc0d2cc00f60fe9173a1281d09da73a43c6d62f9e9fbef4c627d10f578806f26097e827b461305a20c01fc34aceac64b languageName: node linkType: hard @@ -14801,10 +14697,10 @@ coolshapes-react@lowcoder-org/coolshapes-react: languageName: node linkType: hard -"merge-descriptors@npm:1.0.1": - version: 1.0.1 - resolution: "merge-descriptors@npm:1.0.1" - checksum: 5abc259d2ae25bb06d19ce2b94a21632583c74e2a9109ee1ba7fd147aa7362b380d971e0251069f8b3eb7d48c21ac839e21fa177b335e82c76ec172e30c31a26 +"merge-descriptors@npm:1.0.3": + version: 1.0.3 + resolution: "merge-descriptors@npm:1.0.3" + checksum: 52117adbe0313d5defa771c9993fe081e2d2df9b840597e966aadafde04ae8d0e3da46bac7ca4efc37d4d2b839436582659cd49c6a43eacb3fe3050896a105d1 languageName: node linkType: hard @@ -14823,8 +14719,8 @@ coolshapes-react@lowcoder-org/coolshapes-react: linkType: hard "mermaid@npm:^10.6.1": - version: 10.9.0 - resolution: "mermaid@npm:10.9.0" + version: 10.9.3 + resolution: "mermaid@npm:10.9.3" dependencies: "@braintree/sanitize-url": ^6.0.1 "@types/d3-scale": ^4.0.3 @@ -14835,7 +14731,7 @@ coolshapes-react@lowcoder-org/coolshapes-react: d3-sankey: ^0.12.3 dagre-d3-es: 7.0.10 dayjs: ^1.11.7 - dompurify: ^3.0.5 + dompurify: ^3.0.5 <3.1.7 elkjs: ^0.9.0 katex: ^0.16.9 khroma: ^2.0.0 @@ -14846,7 +14742,7 @@ coolshapes-react@lowcoder-org/coolshapes-react: ts-dedent: ^2.2.0 uuid: ^9.0.0 web-worker: ^1.2.0 - checksum: 73ee57b365fbfba8ad72b2ce611a2703753dc155884db3bec4a47951326b9061b31926f84fc0ad67ca203067b62db636f1543fa6f633a6afa24cd4c754b96cf0 + checksum: 65468f6c7628d8c5ad640b3657e70d3408464d4b49e83c159ddc478ae733cb8f4ca545e16939cc8604e5f8902fb1d8bc1be0e00fa98a8bdf221d222e58d3342a languageName: node linkType: hard @@ -14882,8 +14778,8 @@ coolshapes-react@lowcoder-org/coolshapes-react: linkType: hard "micromark-core-commonmark@npm:^2.0.0": - version: 2.0.1 - resolution: "micromark-core-commonmark@npm:2.0.1" + version: 2.0.3 + resolution: "micromark-core-commonmark@npm:2.0.3" dependencies: decode-named-character-reference: ^1.0.0 devlop: ^1.0.0 @@ -14901,7 +14797,7 @@ coolshapes-react@lowcoder-org/coolshapes-react: micromark-util-subtokenize: ^2.0.0 micromark-util-symbol: ^2.0.0 micromark-util-types: ^2.0.0 - checksum: 6a9891cc883a531e090dc8dab6669945f3df9448e84216a8f2a91f9258281e6abea5ae3940fde2bd77a57dc3e0d67f2add6762aed63a378f37b09eaf7e7426c4 + checksum: cfb0fd9c895f86a4e9344f7f0344fe6bd1018945798222835248146a42430b8c7bc0b2857af574cf4e1b4ce4e5c1a35a1479942421492e37baddde8de85814dc languageName: node linkType: hard @@ -14948,15 +14844,15 @@ coolshapes-react@lowcoder-org/coolshapes-react: linkType: hard "micromark-extension-gfm-table@npm:^2.0.0": - version: 2.1.0 - resolution: "micromark-extension-gfm-table@npm:2.1.0" + version: 2.1.1 + resolution: "micromark-extension-gfm-table@npm:2.1.1" dependencies: devlop: ^1.0.0 micromark-factory-space: ^2.0.0 micromark-util-character: ^2.0.0 micromark-util-symbol: ^2.0.0 micromark-util-types: ^2.0.0 - checksum: 249d695f5f8bd222a0d8a774ec78ea2a2d624cb50a4d008092a54aa87dad1f9d540e151d29696cf849eb1cee380113c4df722aebb3b425a214832a2de5dea1d7 + checksum: 16a59c8c2381c8418d9cf36c605abb0b66cfebaad07e09c4c9b113298d13e0c517b652885529fcb74d149afec3f6e8ab065fd27a900073d5ec0a1d8f0c51b593 languageName: node linkType: hard @@ -15010,13 +14906,13 @@ coolshapes-react@lowcoder-org/coolshapes-react: linkType: hard "micromark-factory-destination@npm:^2.0.0": - version: 2.0.0 - resolution: "micromark-factory-destination@npm:2.0.0" + version: 2.0.1 + resolution: "micromark-factory-destination@npm:2.0.1" dependencies: micromark-util-character: ^2.0.0 micromark-util-symbol: ^2.0.0 micromark-util-types: ^2.0.0 - checksum: d36e65ed1c072ff4148b016783148ba7c68a078991154625723e24bda3945160268fb91079fb28618e1613c2b6e70390a8ddc544c45410288aa27b413593071a + checksum: 9c4baa9ca2ed43c061bbf40ddd3d85154c2a0f1f485de9dea41d7dd2ad994ebb02034a003b2c1dbe228ba83a0576d591f0e90e0bf978713f84ee7d7f3aa98320 languageName: node linkType: hard @@ -15033,14 +14929,14 @@ coolshapes-react@lowcoder-org/coolshapes-react: linkType: hard "micromark-factory-label@npm:^2.0.0": - version: 2.0.0 - resolution: "micromark-factory-label@npm:2.0.0" + version: 2.0.1 + resolution: "micromark-factory-label@npm:2.0.1" dependencies: devlop: ^1.0.0 micromark-util-character: ^2.0.0 micromark-util-symbol: ^2.0.0 micromark-util-types: ^2.0.0 - checksum: c021dbd0ed367610d35f2bae21209bc804d1a6d1286ffce458fd6a717f4d7fe581a7cba7d5c2d7a63757c44eb927c80d6a571d6ea7969fae1b48ab6461d109c4 + checksum: bd03f5a75f27cdbf03b894ddc5c4480fc0763061fecf9eb927d6429233c930394f223969a99472df142d570c831236134de3dc23245d23d9f046f9d0b623b5c2 languageName: node linkType: hard @@ -15055,12 +14951,12 @@ coolshapes-react@lowcoder-org/coolshapes-react: linkType: hard "micromark-factory-space@npm:^2.0.0": - version: 2.0.0 - resolution: "micromark-factory-space@npm:2.0.0" + version: 2.0.1 + resolution: "micromark-factory-space@npm:2.0.1" dependencies: micromark-util-character: ^2.0.0 micromark-util-types: ^2.0.0 - checksum: 4ffdcdc2f759887bbb356500cb460b3915ecddcb5d85c3618d7df68ad05d13ed02b1153ee1845677b7d8126df8f388288b84fcf0d943bd9c92bcc71cd7222e37 + checksum: 1bd68a017c1a66f4787506660c1e1c5019169aac3b1cb075d49ac5e360e0b2065e984d4e1d6e9e52a9d44000f2fa1c98e66a743d7aae78b4b05616bf3242ed71 languageName: node linkType: hard @@ -15077,14 +14973,14 @@ coolshapes-react@lowcoder-org/coolshapes-react: linkType: hard "micromark-factory-title@npm:^2.0.0": - version: 2.0.0 - resolution: "micromark-factory-title@npm:2.0.0" + version: 2.0.1 + resolution: "micromark-factory-title@npm:2.0.1" dependencies: micromark-factory-space: ^2.0.0 micromark-util-character: ^2.0.0 micromark-util-symbol: ^2.0.0 micromark-util-types: ^2.0.0 - checksum: 39e1ac23af3554e6e652e56065579bc7faf21ade7b8704b29c175871b4152b7109b790bb3cae0f7e088381139c6bac9553b8400772c3d322e4fa635f813a3578 + checksum: b4d2e4850a8ba0dff25ce54e55a3eb0d43dda88a16293f53953153288f9d84bcdfa8ca4606b2cfbb4f132ea79587bbb478a73092a349f893f5264fbcdbce2ee1 languageName: node linkType: hard @@ -15101,14 +14997,14 @@ coolshapes-react@lowcoder-org/coolshapes-react: linkType: hard "micromark-factory-whitespace@npm:^2.0.0": - version: 2.0.0 - resolution: "micromark-factory-whitespace@npm:2.0.0" + version: 2.0.1 + resolution: "micromark-factory-whitespace@npm:2.0.1" dependencies: micromark-factory-space: ^2.0.0 micromark-util-character: ^2.0.0 micromark-util-symbol: ^2.0.0 micromark-util-types: ^2.0.0 - checksum: 9587c2546d1a58b4d5472b42adf05463f6212d0449455285662d63cd8eaed89c6b159ac82713fcee5f9dd88628c24307d9533cccd8971a2f3f4d48702f8f850a + checksum: 67b3944d012a42fee9e10e99178254a04d48af762b54c10a50fcab988688799993efb038daf9f5dbc04001a97b9c1b673fc6f00e6a56997877ab25449f0c8650 languageName: node linkType: hard @@ -15123,12 +15019,12 @@ coolshapes-react@lowcoder-org/coolshapes-react: linkType: hard "micromark-util-character@npm:^2.0.0": - version: 2.1.0 - resolution: "micromark-util-character@npm:2.1.0" + version: 2.1.1 + resolution: "micromark-util-character@npm:2.1.1" dependencies: micromark-util-symbol: ^2.0.0 micromark-util-types: ^2.0.0 - checksum: 36ee910f84077cf16626fa618cfe46ac25956b3242e3166b8e8e98c5a8c524af7e5bf3d70822264b1fd2d297a36104a7eb7e3462c19c28353eaca7b0d8717594 + checksum: e9e409efe4f2596acd44587e8591b722bfc041c1577e8fe0d9c007a4776fb800f9b3637a22862ad2ba9489f4bdf72bb547fce5767dbbfe0a5e6760e2a21c6495 languageName: node linkType: hard @@ -15142,11 +15038,11 @@ coolshapes-react@lowcoder-org/coolshapes-react: linkType: hard "micromark-util-chunked@npm:^2.0.0": - version: 2.0.0 - resolution: "micromark-util-chunked@npm:2.0.0" + version: 2.0.1 + resolution: "micromark-util-chunked@npm:2.0.1" dependencies: micromark-util-symbol: ^2.0.0 - checksum: 324f95cccdae061332a8241936eaba6ef0782a1e355bac5c607ad2564fd3744929be7dc81651315a2921535747a33243e6a5606bcb64b7a56d49b6d74ea1a3d4 + checksum: f8cb2a67bcefe4bd2846d838c97b777101f0043b9f1de4f69baf3e26bb1f9885948444e3c3aec66db7595cad8173bd4567a000eb933576c233d54631f6323fe4 languageName: node linkType: hard @@ -15162,13 +15058,13 @@ coolshapes-react@lowcoder-org/coolshapes-react: linkType: hard "micromark-util-classify-character@npm:^2.0.0": - version: 2.0.0 - resolution: "micromark-util-classify-character@npm:2.0.0" + version: 2.0.1 + resolution: "micromark-util-classify-character@npm:2.0.1" dependencies: micromark-util-character: ^2.0.0 micromark-util-symbol: ^2.0.0 micromark-util-types: ^2.0.0 - checksum: 086e52904deffebb793fb1c08c94aabb8901f76958142dfc3a6282890ebaa983b285e69bd602b9d507f1b758ed38e75a994d2ad9fbbefa7de2584f67a16af405 + checksum: 4d8bbe3a6dbf69ac0fc43516866b5bab019fe3f4568edc525d4feaaaf78423fa54e6b6732b5bccbeed924455279a3758ffc9556954aafb903982598a95a02704 languageName: node linkType: hard @@ -15183,12 +15079,12 @@ coolshapes-react@lowcoder-org/coolshapes-react: linkType: hard "micromark-util-combine-extensions@npm:^2.0.0": - version: 2.0.0 - resolution: "micromark-util-combine-extensions@npm:2.0.0" + version: 2.0.1 + resolution: "micromark-util-combine-extensions@npm:2.0.1" dependencies: micromark-util-chunked: ^2.0.0 micromark-util-types: ^2.0.0 - checksum: 107c47700343f365b4ed81551e18bc3458b573c500e56ac052b2490bd548adc475216e41d2271633a8867fac66fc22ba3e0a2d74a31ed79b9870ca947eb4e3ba + checksum: 5d22fb9ee37e8143adfe128a72b50fa09568c2cc553b3c76160486c96dbbb298c5802a177a10a215144a604b381796071b5d35be1f2c2b2ee17995eda92f0c8e languageName: node linkType: hard @@ -15202,11 +15098,11 @@ coolshapes-react@lowcoder-org/coolshapes-react: linkType: hard "micromark-util-decode-numeric-character-reference@npm:^2.0.0": - version: 2.0.1 - resolution: "micromark-util-decode-numeric-character-reference@npm:2.0.1" + version: 2.0.2 + resolution: "micromark-util-decode-numeric-character-reference@npm:2.0.2" dependencies: micromark-util-symbol: ^2.0.0 - checksum: 9512507722efd2033a9f08715eeef787fbfe27e23edf55db21423d46d82ab46f76c89b4f960be3f5e50a2d388d89658afc0647989cf256d051e9ea01277a1adb + checksum: ee11c8bde51e250e302050474c4a2adca094bca05c69f6cdd241af12df285c48c88d19ee6e022b9728281c280be16328904adca994605680c43af56019f4b0b6 languageName: node linkType: hard @@ -15223,14 +15119,14 @@ coolshapes-react@lowcoder-org/coolshapes-react: linkType: hard "micromark-util-decode-string@npm:^2.0.0": - version: 2.0.0 - resolution: "micromark-util-decode-string@npm:2.0.0" + version: 2.0.1 + resolution: "micromark-util-decode-string@npm:2.0.1" dependencies: decode-named-character-reference: ^1.0.0 micromark-util-character: ^2.0.0 micromark-util-decode-numeric-character-reference: ^2.0.0 micromark-util-symbol: ^2.0.0 - checksum: a75daf32a4a6b549e9f19b4d833ebfeb09a32a9a1f9ce50f35dec6b6a3e4f9f121f49024ba7f9c91c55ebe792f7c7a332fc9604795181b6a612637df0df5b959 + checksum: e9546ae53f9b5a4f9aa6aaf3e750087100d3429485ca80dbacec99ff2bb15a406fa7d93784a0fc2fe05ad7296b9295e75160ef71faec9e90110b7be2ae66241a languageName: node linkType: hard @@ -15242,9 +15138,9 @@ coolshapes-react@lowcoder-org/coolshapes-react: linkType: hard "micromark-util-encode@npm:^2.0.0": - version: 2.0.0 - resolution: "micromark-util-encode@npm:2.0.0" - checksum: 853a3f33fce72aaf4ffa60b7f2b6fcfca40b270b3466e1b96561b02185d2bd8c01dd7948bc31a24ac014f4cc854e545ca9a8e9cf7ea46262f9d24c9e88551c66 + version: 2.0.1 + resolution: "micromark-util-encode@npm:2.0.1" + checksum: be890b98e78dd0cdd953a313f4148c4692cc2fb05533e56fef5f421287d3c08feee38ca679f318e740530791fc251bfe8c80efa926fcceb4419b269c9343d226 languageName: node linkType: hard @@ -15256,9 +15152,9 @@ coolshapes-react@lowcoder-org/coolshapes-react: linkType: hard "micromark-util-html-tag-name@npm:^2.0.0": - version: 2.0.0 - resolution: "micromark-util-html-tag-name@npm:2.0.0" - checksum: d786d4486f93eb0ac5b628779809ca97c5dc60f3c9fc03eb565809831db181cf8cb7f05f9ac76852f3eb35461af0f89fa407b46f3a03f4f97a96754d8dc540d8 + version: 2.0.1 + resolution: "micromark-util-html-tag-name@npm:2.0.1" + checksum: dea365f5ad28ad74ff29fcb581f7b74fc1f80271c5141b3b2bc91c454cbb6dfca753f28ae03730d657874fcbd89d0494d0e3965dfdca06d9855f467c576afa9d languageName: node linkType: hard @@ -15272,11 +15168,11 @@ coolshapes-react@lowcoder-org/coolshapes-react: linkType: hard "micromark-util-normalize-identifier@npm:^2.0.0": - version: 2.0.0 - resolution: "micromark-util-normalize-identifier@npm:2.0.0" + version: 2.0.1 + resolution: "micromark-util-normalize-identifier@npm:2.0.1" dependencies: micromark-util-symbol: ^2.0.0 - checksum: b36da2d3fd102053dadd953ce5c558328df12a63a8ac0e5aad13d4dda8e43b6a5d4a661baafe0a1cd8a260bead4b4a8e6e0e74193dd651e8484225bd4f4e68aa + checksum: 1eb9a289d7da067323df9fdc78bfa90ca3207ad8fd893ca02f3133e973adcb3743b233393d23d95c84ccaf5d220ae7f5a28402a644f135dcd4b8cfa60a7b5f84 languageName: node linkType: hard @@ -15290,11 +15186,11 @@ coolshapes-react@lowcoder-org/coolshapes-react: linkType: hard "micromark-util-resolve-all@npm:^2.0.0": - version: 2.0.0 - resolution: "micromark-util-resolve-all@npm:2.0.0" + version: 2.0.1 + resolution: "micromark-util-resolve-all@npm:2.0.1" dependencies: micromark-util-types: ^2.0.0 - checksum: 31fe703b85572cb3f598ebe32750e59516925c7ff1f66cfe6afaebe0771a395a9eaa770787f2523d3c46082ea80e6c14f83643303740b3d650af7c96ebd30ccc + checksum: 9275f3ddb6c26f254dd2158e66215d050454b279707a7d9ce5a3cd0eba23201021cedcb78ae1a746c1b23227dcc418ee40dd074ade195359506797a5493550cc languageName: node linkType: hard @@ -15310,13 +15206,13 @@ coolshapes-react@lowcoder-org/coolshapes-react: linkType: hard "micromark-util-sanitize-uri@npm:^2.0.0": - version: 2.0.0 - resolution: "micromark-util-sanitize-uri@npm:2.0.0" + version: 2.0.1 + resolution: "micromark-util-sanitize-uri@npm:2.0.1" dependencies: micromark-util-character: ^2.0.0 micromark-util-encode: ^2.0.0 micromark-util-symbol: ^2.0.0 - checksum: ea4c28bbffcf2430e9aff2d18554296789a8b0a1f54ac24020d1dde76624a7f93e8f2a83e88cd5a846b6d2c4287b71b1142d1b89fa7f1b0363a9b33711a141fe + checksum: d01517840c17de67aaa0b0f03bfe05fac8a41d99723cd8ce16c62f6810e99cd3695364a34c335485018e5e2c00e69031744630a1b85c6868aa2f2ca1b36daa2f languageName: node linkType: hard @@ -15333,14 +15229,14 @@ coolshapes-react@lowcoder-org/coolshapes-react: linkType: hard "micromark-util-subtokenize@npm:^2.0.0": - version: 2.0.1 - resolution: "micromark-util-subtokenize@npm:2.0.1" + version: 2.1.0 + resolution: "micromark-util-subtokenize@npm:2.1.0" dependencies: devlop: ^1.0.0 micromark-util-chunked: ^2.0.0 micromark-util-symbol: ^2.0.0 micromark-util-types: ^2.0.0 - checksum: 5d338883ad8889c63f9b262b9cae0c02a42088201981d820ae7af7aa6d38fab6585b89fd4cf2206a46a7c4002e41ee6c70e1a3e0ceb3ad8b7adcffaf166b1511 + checksum: 2e194bc8a5279d256582020500e5072a95c1094571be49043704343032e1fffbe09c862ef9c131cf5c762e296ddb54ff8bc767b3786a798524a68d1db6942934 languageName: node linkType: hard @@ -15352,9 +15248,9 @@ coolshapes-react@lowcoder-org/coolshapes-react: linkType: hard "micromark-util-symbol@npm:^2.0.0": - version: 2.0.0 - resolution: "micromark-util-symbol@npm:2.0.0" - checksum: fa4a05bff575d9fbf0ad96a1013003e3bb6087ed6b34b609a141b6c0d2137b57df594aca409a95f4c5fda199f227b56a7d8b1f82cea0768df161d8a3a3660764 + version: 2.0.1 + resolution: "micromark-util-symbol@npm:2.0.1" + checksum: fb7346950550bc85a55793dda94a8b3cb3abc068dbd7570d1162db7aee803411d06c0a5de4ae59cd945f46143bdeadd4bba02a02248fa0d18cc577babaa00044 languageName: node linkType: hard @@ -15366,9 +15262,9 @@ coolshapes-react@lowcoder-org/coolshapes-react: linkType: hard "micromark-util-types@npm:^2.0.0": - version: 2.0.0 - resolution: "micromark-util-types@npm:2.0.0" - checksum: 819fef3ab5770c37893d2a60381fb2694396c8d22803b6e103c830c3a1bc1490363c2b0470bb2acaaddad776dfbc2fc1fcfde39cb63c4f54d95121611672e3d0 + version: 2.0.2 + resolution: "micromark-util-types@npm:2.0.2" + checksum: 884f7974839e4bc6d2bd662e57c973a9164fd5c0d8fe16cddf07472b86a7e6726747c00674952c0321d17685d700cd3295e9f58a842a53acdf6c6d55ab051aab languageName: node linkType: hard @@ -15398,8 +15294,8 @@ coolshapes-react@lowcoder-org/coolshapes-react: linkType: hard "micromark@npm:^4.0.0": - version: 4.0.0 - resolution: "micromark@npm:4.0.0" + version: 4.0.2 + resolution: "micromark@npm:4.0.2" dependencies: "@types/debug": ^4.0.0 debug: ^4.0.0 @@ -15418,11 +15314,11 @@ coolshapes-react@lowcoder-org/coolshapes-react: micromark-util-subtokenize: ^2.0.0 micromark-util-symbol: ^2.0.0 micromark-util-types: ^2.0.0 - checksum: b84ab5ab1a0b28c063c52e9c2c9d7d44b954507235c10c9492d66e0b38f7de24bf298f914a1fbdf109f2a57a88cf0412de217c84cfac5fd60e3e42a74dbac085 + checksum: 5306c15dd12f543755bc627fc361d4255dfc430e7af6069a07ac0eacc338fbd761fe8e93f02a8bfab6097bab12ee903192fe31389222459d5029242a5aaba3b8 languageName: node linkType: hard -"micromatch@npm:4.0.5, micromatch@npm:^4.0.0, micromatch@npm:^4.0.2, micromatch@npm:^4.0.4": +"micromatch@npm:4.0.5": version: 4.0.5 resolution: "micromatch@npm:4.0.5" dependencies: @@ -15432,6 +15328,16 @@ coolshapes-react@lowcoder-org/coolshapes-react: languageName: node linkType: hard +"micromatch@npm:^4.0.0, micromatch@npm:^4.0.2, micromatch@npm:^4.0.4, micromatch@npm:^4.0.8": + version: 4.0.8 + resolution: "micromatch@npm:4.0.8" + dependencies: + braces: ^3.0.3 + picomatch: ^2.3.1 + checksum: 79920eb634e6f400b464a954fcfa589c4e7c7143209488e44baf627f9affc8b1e306f41f4f0deedde97e69cb725920879462d3e750ab3bd3c1aed675bb3a8966 + languageName: node + linkType: hard + "miller-rabin@npm:^4.0.0": version: 4.0.1 resolution: "miller-rabin@npm:4.0.1" @@ -15444,13 +15350,20 @@ coolshapes-react@lowcoder-org/coolshapes-react: languageName: node linkType: hard -"mime-db@npm:1.52.0, mime-db@npm:>= 1.43.0 < 2": +"mime-db@npm:1.52.0": version: 1.52.0 resolution: "mime-db@npm:1.52.0" checksum: 0d99a03585f8b39d68182803b12ac601d9c01abfa28ec56204fa330bc9f3d1c5e14beb049bafadb3dbdf646dfb94b87e24d4ec7b31b7279ef906a8ea9b6a513f languageName: node linkType: hard +"mime-db@npm:>= 1.43.0 < 2": + version: 1.54.0 + resolution: "mime-db@npm:1.54.0" + checksum: e99aaf2f23f5bd607deb08c83faba5dd25cf2fec90a7cc5b92d8260867ee08dab65312e1a589e60093dc7796d41e5fae013268418482f1db4c7d52d0a0960ac9 + languageName: node + linkType: hard + "mime-types@npm:^2.1.12, mime-types@npm:^2.1.27, mime-types@npm:^2.1.31, mime-types@npm:~2.1.17, mime-types@npm:~2.1.19, mime-types@npm:~2.1.24, mime-types@npm:~2.1.34": version: 2.1.35 resolution: "mime-types@npm:2.1.35" @@ -15540,12 +15453,12 @@ coolshapes-react@lowcoder-org/coolshapes-react: languageName: node linkType: hard -"minimatch@npm:^9.0.1": - version: 9.0.4 - resolution: "minimatch@npm:9.0.4" +"minimatch@npm:^9.0.4": + version: 9.0.5 + resolution: "minimatch@npm:9.0.5" dependencies: brace-expansion: ^2.0.1 - checksum: cf717f597ec3eed7dabc33153482a2e8d49f4fd3c26e58fd9c71a94c5029a0838728841b93f46bf1263b65a8010e2ee800d0dc9b004ab8ba8b6d1ec07cc115b5 + checksum: 2c035575eda1e50623c731ec6c14f65a85296268f749b9337005210bb2b34e2705f8ef1a358b188f69892286ab99dc42c8fb98a57bde55c8d81b3023c19cea28 languageName: node linkType: hard @@ -15565,18 +15478,18 @@ coolshapes-react@lowcoder-org/coolshapes-react: languageName: node linkType: hard -"minipass-fetch@npm:^3.0.0": - version: 3.0.4 - resolution: "minipass-fetch@npm:3.0.4" +"minipass-fetch@npm:^4.0.0": + version: 4.0.1 + resolution: "minipass-fetch@npm:4.0.1" dependencies: encoding: ^0.1.13 minipass: ^7.0.3 minipass-sized: ^1.0.3 - minizlib: ^2.1.2 + minizlib: ^3.0.1 dependenciesMeta: encoding: optional: true - checksum: af7aad15d5c128ab1ebe52e043bdf7d62c3c6f0cecb9285b40d7b395e1375b45dcdfd40e63e93d26a0e8249c9efd5c325c65575aceee192883970ff8cb11364a + checksum: 3dfca705ce887ca9ff14d73e8d8593996dea1a1ecd8101fdbb9c10549d1f9670bc8fb66ad0192769ead4c2dc01b4f9ca1cf567ded365adff17827a303b948140 languageName: node linkType: hard @@ -15616,36 +15529,28 @@ coolshapes-react@lowcoder-org/coolshapes-react: languageName: node linkType: hard -"minipass@npm:^5.0.0": - version: 5.0.0 - resolution: "minipass@npm:5.0.0" - checksum: 425dab288738853fded43da3314a0b5c035844d6f3097a8e3b5b29b328da8f3c1af6fc70618b32c29ff906284cf6406b6841376f21caaadd0793c1d5a6a620ea - languageName: node - linkType: hard - -"minipass@npm:^5.0.0 || ^6.0.2 || ^7.0.0, minipass@npm:^7.0.2, minipass@npm:^7.0.3, minipass@npm:^7.0.4": - version: 7.0.4 - resolution: "minipass@npm:7.0.4" - checksum: 87585e258b9488caf2e7acea242fd7856bbe9a2c84a7807643513a338d66f368c7d518200ad7b70a508664d408aa000517647b2930c259a8b1f9f0984f344a21 +"minipass@npm:^5.0.0 || ^6.0.2 || ^7.0.0, minipass@npm:^7.0.2, minipass@npm:^7.0.3, minipass@npm:^7.0.4, minipass@npm:^7.1.2": + version: 7.1.2 + resolution: "minipass@npm:7.1.2" + checksum: 2bfd325b95c555f2b4d2814d49325691c7bee937d753814861b0b49d5edcda55cbbf22b6b6a60bb91eddac8668771f03c5ff647dcd9d0f798e9548b9cdc46ee3 languageName: node linkType: hard -"minizlib@npm:^2.1.1, minizlib@npm:^2.1.2": - version: 2.1.2 - resolution: "minizlib@npm:2.1.2" +"minizlib@npm:^3.0.1": + version: 3.0.2 + resolution: "minizlib@npm:3.0.2" dependencies: - minipass: ^3.0.0 - yallist: ^4.0.0 - checksum: f1fdeac0b07cf8f30fcf12f4b586795b97be856edea22b5e9072707be51fc95d41487faec3f265b42973a304fe3a64acd91a44a3826a963e37b37bafde0212c3 + minipass: ^7.1.2 + checksum: 493bed14dcb6118da7f8af356a8947cf1473289c09658e5aabd69a737800a8c3b1736fb7d7931b722268a9c9bc038a6d53c049b6a6af24b34a121823bb709996 languageName: node linkType: hard -"mkdirp@npm:^1.0.3": - version: 1.0.4 - resolution: "mkdirp@npm:1.0.4" +"mkdirp@npm:^3.0.1": + version: 3.0.1 + resolution: "mkdirp@npm:3.0.1" bin: - mkdirp: bin/cmd.js - checksum: a96865108c6c3b1b8e1d5e9f11843de1e077e57737602de1b82030815f311be11f96f09cce59bd5b903d0b29834733e5313f9301e3ed6d6f6fba2eae0df4298f + mkdirp: dist/cjs/src/bin.js + checksum: 972deb188e8fb55547f1e58d66bd6b4a3623bf0c7137802582602d73e6480c1c2268dcbafbfb1be466e00cc7e56ac514d7fd9334b7cf33e3e2ab547c16f83a8d languageName: node linkType: hard @@ -15680,9 +15585,9 @@ coolshapes-react@lowcoder-org/coolshapes-react: linkType: hard "mrmime@npm:^2.0.0": - version: 2.0.0 - resolution: "mrmime@npm:2.0.0" - checksum: f6fe11ec667c3d96f1ce5fd41184ed491d5f0a5f4045e82446a471ccda5f84c7f7610dff61d378b73d964f73a320bd7f89788f9e6b9403e32cc4be28ba99f569 + version: 2.0.1 + resolution: "mrmime@npm:2.0.1" + checksum: 455a555009edb2ed6e587e0fcb5e41fcbf8f1dcca28242a57d054f02204ab198bed93ba9de75db06bd3447e8603bc74e10a22440ba99431fc4a751435fba35bf languageName: node linkType: hard @@ -15700,7 +15605,7 @@ coolshapes-react@lowcoder-org/coolshapes-react: languageName: node linkType: hard -"ms@npm:2.1.3, ms@npm:^2.1.1": +"ms@npm:2.1.3, ms@npm:^2.1.1, ms@npm:^2.1.3": version: 2.1.3 resolution: "ms@npm:2.1.3" checksum: aa92de608021b242401676e35cfa5aa42dd70cbdc082b916da7fb925c542173e36bce97ea3e804923fe92c0ad991434e4a38327e15a1b5b5f945d66df615ae6d @@ -15730,22 +15635,22 @@ coolshapes-react@lowcoder-org/coolshapes-react: languageName: node linkType: hard -"nano-css@npm:^5.6.1": - version: 5.6.1 - resolution: "nano-css@npm:5.6.1" +"nano-css@npm:^5.6.2": + version: 5.6.2 + resolution: "nano-css@npm:5.6.2" dependencies: "@jridgewell/sourcemap-codec": ^1.4.15 css-tree: ^1.1.2 csstype: ^3.1.2 fastest-stable-stringify: ^2.0.2 - inline-style-prefixer: ^7.0.0 + inline-style-prefixer: ^7.0.1 rtl-css-js: ^1.16.1 stacktrace-js: ^2.0.2 stylis: ^4.3.0 peerDependencies: react: "*" react-dom: "*" - checksum: 735f02c030a9416bb6060503d24f18f2b2c9f43e4893c2d8714508d00f9d114b8a134df3623e94e376b0b1d794b0cacac6a48f8e5fb2b7fa8996071bcad590b8 + checksum: 85d5e730798387bee3090e9943801489ec4269bd376a848b75515cf0f44dc7ce53d4a9fec575081a7dff53a8a5d4b00eebdc1bbf217d75fae7195819f917aba1 languageName: node linkType: hard @@ -15756,12 +15661,12 @@ coolshapes-react@lowcoder-org/coolshapes-react: languageName: node linkType: hard -"nanoid@npm:^3.3.6, nanoid@npm:^3.3.7": - version: 3.3.7 - resolution: "nanoid@npm:3.3.7" +"nanoid@npm:^3.3.7, nanoid@npm:^3.3.8": + version: 3.3.11 + resolution: "nanoid@npm:3.3.11" bin: nanoid: bin/nanoid.cjs - checksum: d36c427e530713e4ac6567d488b489a36582ef89da1d6d4e3b87eded11eb10d7042a877958c6f104929809b2ab0bafa17652b076cdf84324aa75b30b722204f2 + checksum: 3be20d8866a57a6b6d218e82549711c8352ed969f9ab3c45379da28f405363ad4c9aeb0b39e9abc101a529ca65a72ff9502b00bf74a912c4b64a9d62dfd26c29 languageName: node linkType: hard @@ -15791,13 +15696,27 @@ coolshapes-react@lowcoder-org/coolshapes-react: languageName: node linkType: hard -"negotiator@npm:0.6.3, negotiator@npm:^0.6.3": +"negotiator@npm:0.6.3": version: 0.6.3 resolution: "negotiator@npm:0.6.3" checksum: b8ffeb1e262eff7968fc90a2b6767b04cfd9842582a9d0ece0af7049537266e7b2506dfb1d107a32f06dd849ab2aea834d5830f7f4d0e5cb7d36e1ae55d021d9 languageName: node linkType: hard +"negotiator@npm:^1.0.0": + version: 1.0.0 + resolution: "negotiator@npm:1.0.0" + checksum: 20ebfe79b2d2e7cf9cbc8239a72662b584f71164096e6e8896c8325055497c96f6b80cd22c258e8a2f2aa382a787795ec3ee8b37b422a302c7d4381b0d5ecfbb + languageName: node + linkType: hard + +"negotiator@npm:~0.6.4": + version: 0.6.4 + resolution: "negotiator@npm:0.6.4" + checksum: 7ded10aa02a0707d1d12a9973fdb5954f98547ca7beb60e31cb3a403cc6e8f11138db7a3b0128425cf836fc85d145ec4ce983b2bdf83dca436af879c2d683510 + languageName: node + linkType: hard + "neo-async@npm:^2.6.2": version: 2.6.2 resolution: "neo-async@npm:2.6.2" @@ -15822,7 +15741,7 @@ coolshapes-react@lowcoder-org/coolshapes-react: languageName: node linkType: hard -"node-fetch@npm:^2.6.12, node-fetch@npm:^2.7.0": +"node-fetch@npm:^2.7.0": version: 2.7.0 resolution: "node-fetch@npm:2.7.0" dependencies: @@ -15844,22 +15763,22 @@ coolshapes-react@lowcoder-org/coolshapes-react: linkType: hard "node-gyp@npm:latest": - version: 10.1.0 - resolution: "node-gyp@npm:10.1.0" + version: 11.2.0 + resolution: "node-gyp@npm:11.2.0" dependencies: env-paths: ^2.2.0 exponential-backoff: ^3.1.1 - glob: ^10.3.10 graceful-fs: ^4.2.6 - make-fetch-happen: ^13.0.0 - nopt: ^7.0.0 - proc-log: ^3.0.0 + make-fetch-happen: ^14.0.3 + nopt: ^8.0.0 + proc-log: ^5.0.0 semver: ^7.3.5 - tar: ^6.1.2 - which: ^4.0.0 + tar: ^7.4.3 + tinyglobby: ^0.2.12 + which: ^5.0.0 bin: node-gyp: bin/node-gyp.js - checksum: 72e2ab4b23fc32007a763da94018f58069fc0694bf36115d49a2b195c8831e12cf5dd1e7a3718fa85c06969aedf8fc126722d3b672ec1cb27e06ed33caee3c60 + checksum: 2536282ba81f8a94b29482d3622b6ab298611440619e46de4512a6f32396a68b5530357c474b859787069d84a4c537d99e0c71078cce5b9f808bf84eeb78e8fb languageName: node linkType: hard @@ -15880,16 +15799,16 @@ coolshapes-react@lowcoder-org/coolshapes-react: languageName: node linkType: hard -"node-releases@npm:^2.0.14": - version: 2.0.14 - resolution: "node-releases@npm:2.0.14" - checksum: 59443a2f77acac854c42d321bf1b43dea0aef55cd544c6a686e9816a697300458d4e82239e2d794ea05f7bbbc8a94500332e2d3ac3f11f52e4b16cbe638b3c41 +"node-releases@npm:^2.0.19": + version: 2.0.19 + resolution: "node-releases@npm:2.0.19" + checksum: 917dbced519f48c6289a44830a0ca6dc944c3ee9243c468ebd8515a41c97c8b2c256edb7f3f750416bc37952cc9608684e6483c7b6c6f39f6bd8d86c52cfe658 languageName: node linkType: hard "node-stdlib-browser@npm:^1.2.0": - version: 1.2.0 - resolution: "node-stdlib-browser@npm:1.2.0" + version: 1.3.1 + resolution: "node-stdlib-browser@npm:1.3.1" dependencies: assert: ^2.0.0 browser-resolve: ^2.0.0 @@ -15898,8 +15817,8 @@ coolshapes-react@lowcoder-org/coolshapes-react: console-browserify: ^1.1.0 constants-browserify: ^1.0.0 create-require: ^1.1.1 - crypto-browserify: ^3.11.0 - domain-browser: ^4.22.0 + crypto-browserify: ^3.12.1 + domain-browser: 4.22.0 events: ^3.0.0 https-browserify: ^1.0.0 isomorphic-timers-promises: ^1.0.1 @@ -15915,10 +15834,10 @@ coolshapes-react@lowcoder-org/coolshapes-react: string_decoder: ^1.0.0 timers-browserify: ^2.0.4 tty-browserify: 0.0.1 - url: ^0.11.0 + url: ^0.11.4 util: ^0.12.4 vm-browserify: ^1.0.1 - checksum: fe491f0839319fd9bb95964c6f7da81fc7fde4c3ac9062aa367f19bc5a6060d0d9e423d3de4196cb51f8259d6aaf6cf380048c48a86eb3721c6223dd0dcc5bfd + checksum: 2012dbd84de654c60414c7d88817c1c8214324fa4e77f09395aa2a9d3722f49fafc0abf1643dc5998a96ebcee2409ee0d957ec4c4fd50d3ff5b40e031d1feb90 languageName: node linkType: hard @@ -15929,14 +15848,14 @@ coolshapes-react@lowcoder-org/coolshapes-react: languageName: node linkType: hard -"nopt@npm:^7.0.0": - version: 7.2.0 - resolution: "nopt@npm:7.2.0" +"nopt@npm:^8.0.0": + version: 8.1.0 + resolution: "nopt@npm:8.1.0" dependencies: - abbrev: ^2.0.0 + abbrev: ^3.0.0 bin: nopt: bin/nopt.js - checksum: a9c0f57fb8cb9cc82ae47192ca2b7ef00e199b9480eed202482c962d61b59a7fbe7541920b2a5839a97b42ee39e288c0aed770e38057a608d7f579389dfde410 + checksum: 49cfd3eb6f565e292bf61f2ff1373a457238804d5a5a63a8d786c923007498cba89f3648e3b952bc10203e3e7285752abf5b14eaf012edb821e84f24e881a92a languageName: node linkType: hard @@ -15991,9 +15910,9 @@ coolshapes-react@lowcoder-org/coolshapes-react: linkType: hard "nwsapi@npm:^2.2.0, nwsapi@npm:^2.2.2": - version: 2.2.9 - resolution: "nwsapi@npm:2.2.9" - checksum: 3ab2bc47d5507a76e2fdee5aae7ea2875c6def912d0401126cad3e39825a7decb7a02622810c855a7902bd31e917e606b37882dca12b0ae54b4d3b70275de927 + version: 2.2.20 + resolution: "nwsapi@npm:2.2.20" + checksum: 37100d6023b278d85fc6893fb9f8c13172ced31f6cfd1de8d67d15229526ab51991dfd6b863163a9df684d339a359abe9d34b953676c68c062e2f12dcd39ac47 languageName: node linkType: hard @@ -16011,10 +15930,10 @@ coolshapes-react@lowcoder-org/coolshapes-react: languageName: node linkType: hard -"object-inspect@npm:^1.13.1": - version: 1.13.1 - resolution: "object-inspect@npm:1.13.1" - checksum: 7d9fa9221de3311dcb5c7c307ee5dc011cdd31dc43624b7c184b3840514e118e05ef0002be5388304c416c0eb592feb46e983db12577fc47e47d5752fbbfb61f +"object-inspect@npm:^1.13.3, object-inspect@npm:^1.13.4": + version: 1.13.4 + resolution: "object-inspect@npm:1.13.4" + checksum: 582810c6a8d2ef988ea0a39e69e115a138dad8f42dd445383b394877e5816eb4268489f316a6f74ee9c4e0a984b3eab1028e3e79d62b1ed67c726661d55c7a8b languageName: node linkType: hard @@ -16053,30 +15972,33 @@ coolshapes-react@lowcoder-org/coolshapes-react: languageName: node linkType: hard -"object.assign@npm:^4.1.4, object.assign@npm:^4.1.5": - version: 4.1.5 - resolution: "object.assign@npm:4.1.5" +"object.assign@npm:^4.1.4, object.assign@npm:^4.1.7": + version: 4.1.7 + resolution: "object.assign@npm:4.1.7" dependencies: - call-bind: ^1.0.5 + call-bind: ^1.0.8 + call-bound: ^1.0.3 define-properties: ^1.2.1 - has-symbols: ^1.0.3 + es-object-atoms: ^1.0.0 + has-symbols: ^1.1.0 object-keys: ^1.1.1 - checksum: f9aeac0541661370a1fc86e6a8065eb1668d3e771f7dbb33ee54578201336c057b21ee61207a186dd42db0c62201d91aac703d20d12a79fc79c353eed44d4e25 + checksum: 60e07d2651cf4f5528c485f1aa4dbded9b384c47d80e8187cefd11320abb1aebebf78df5483451dfa549059f8281c21f7b4bf7d19e9e5e97d8d617df0df298de languageName: node linkType: hard -"object.entries@npm:^1.1.7": - version: 1.1.8 - resolution: "object.entries@npm:1.1.8" +"object.entries@npm:^1.1.9": + version: 1.1.9 + resolution: "object.entries@npm:1.1.9" dependencies: - call-bind: ^1.0.7 + call-bind: ^1.0.8 + call-bound: ^1.0.4 define-properties: ^1.2.1 - es-object-atoms: ^1.0.0 - checksum: 5314877cb637ef3437a30bba61d9bacdb3ce74bf73ac101518be0633c37840c8cc67407edb341f766e8093b3d7516d5c3358f25adfee4a2c697c0ec4c8491907 + es-object-atoms: ^1.1.1 + checksum: 0ab2ef331c4d6a53ff600a5d69182948d453107c3a1f7fd91bc29d387538c2aba21d04949a74f57c21907208b1f6fb175567fd1f39f1a7a4046ba1bca762fb41 languageName: node linkType: hard -"object.fromentries@npm:^2.0.7": +"object.fromentries@npm:^2.0.8": version: 2.0.8 resolution: "object.fromentries@npm:2.0.8" dependencies: @@ -16088,7 +16010,7 @@ coolshapes-react@lowcoder-org/coolshapes-react: languageName: node linkType: hard -"object.groupby@npm:^1.0.1": +"object.groupby@npm:^1.0.3": version: 1.0.3 resolution: "object.groupby@npm:1.0.3" dependencies: @@ -16099,25 +16021,15 @@ coolshapes-react@lowcoder-org/coolshapes-react: languageName: node linkType: hard -"object.hasown@npm:^1.1.3": - version: 1.1.4 - resolution: "object.hasown@npm:1.1.4" - dependencies: - define-properties: ^1.2.1 - es-abstract: ^1.23.2 - es-object-atoms: ^1.0.0 - checksum: bc46eb5ca22106fcd07aab1411508c2c68b7565fe8fb272f166fb9bf203972e8b5c86a5a4b2c86204beead0626a7a4119d32cefbaf7c5dd57b400bf9e6363cb6 - languageName: node - linkType: hard - -"object.values@npm:^1.1.6, object.values@npm:^1.1.7": - version: 1.2.0 - resolution: "object.values@npm:1.2.0" +"object.values@npm:^1.1.6, object.values@npm:^1.2.0, object.values@npm:^1.2.1": + version: 1.2.1 + resolution: "object.values@npm:1.2.1" dependencies: - call-bind: ^1.0.7 + call-bind: ^1.0.8 + call-bound: ^1.0.3 define-properties: ^1.2.1 es-object-atoms: ^1.0.0 - checksum: 51fef456c2a544275cb1766897f34ded968b22adfc13ba13b5e4815fdaf4304a90d42a3aee114b1f1ede048a4890381d47a5594d84296f2767c6a0364b9da8fa + checksum: f9b9a2a125ccf8ded29414d7c056ae0d187b833ee74919821fc60d7e216626db220d9cb3cf33f965c84aaaa96133626ca13b80f3c158b673976dc8cfcfcd26bb languageName: node linkType: hard @@ -16179,14 +16091,14 @@ coolshapes-react@lowcoder-org/coolshapes-react: linkType: hard "open@npm:^10.0.3": - version: 10.1.0 - resolution: "open@npm:10.1.0" + version: 10.1.2 + resolution: "open@npm:10.1.2" dependencies: default-browser: ^5.2.1 define-lazy-prop: ^3.0.0 is-inside-container: ^1.0.0 is-wsl: ^3.1.0 - checksum: 079b0771616bac13b08129b0300032dc9328d72f345e460dd0416b8a8196a5bdf5e0251fefec8aa2a6a97c736734ac65dd8f1d29ab3fc9a13e85624aa5bc4470 + checksum: cb40d9786e8c679a1c647c62ad3642bbf1a8cc986c3ec970e99ed13d279c93328ea46bf756db64ea465d2d707815d4e792e7ba906830c3439cc8577cdefb8610 languageName: node linkType: hard @@ -16245,6 +16157,17 @@ coolshapes-react@lowcoder-org/coolshapes-react: languageName: node linkType: hard +"own-keys@npm:^1.0.1": + version: 1.0.1 + resolution: "own-keys@npm:1.0.1" + dependencies: + get-intrinsic: ^1.2.6 + object-keys: ^1.1.1 + safe-push-apply: ^1.0.0 + checksum: cc9dd7d85c4ccfbe8109fce307d581ac7ede7b26de892b537873fbce2dc6a206d89aea0630dbb98e47ce0873517cefeaa7be15fcf94aaf4764a3b34b474a5b61 + languageName: node + linkType: hard + "p-limit@npm:^2.2.0": version: 2.3.0 resolution: "p-limit@npm:2.3.0" @@ -16299,23 +16222,21 @@ coolshapes-react@lowcoder-org/coolshapes-react: languageName: node linkType: hard -"p-map@npm:^4.0.0": - version: 4.0.0 - resolution: "p-map@npm:4.0.0" - dependencies: - aggregate-error: ^3.0.0 - checksum: cb0ab21ec0f32ddffd31dfc250e3afa61e103ef43d957cc45497afe37513634589316de4eb88abdfd969fe6410c22c0b93ab24328833b8eb1ccc087fc0442a1c +"p-map@npm:^7.0.2": + version: 7.0.3 + resolution: "p-map@npm:7.0.3" + checksum: 8c92d533acf82f0d12f7e196edccff773f384098bbb048acdd55a08778ce4fc8889d8f1bde72969487bd96f9c63212698d79744c20bedfce36c5b00b46d369f8 languageName: node linkType: hard "p-retry@npm:^6.2.0": - version: 6.2.0 - resolution: "p-retry@npm:6.2.0" + version: 6.2.1 + resolution: "p-retry@npm:6.2.1" dependencies: "@types/retry": 0.12.2 is-network-error: ^1.0.0 retry: ^0.13.1 - checksum: 6003573c559ee812329c9c3ede7ba12a783fdc8dd70602116646e850c920b4597dc502fe001c3f9526fca4e93275045db7a27341c458e51db179c1374a01ac44 + checksum: 73acd269544b1359b7f2aa5f907f6f8cd4947c596bc43cc25fecce2678e2f190095179407eb874f0e09fc5956ae7952c39ebb08c3d9334f59d41ae0b2d73ee6b languageName: node linkType: hard @@ -16326,6 +16247,13 @@ coolshapes-react@lowcoder-org/coolshapes-react: languageName: node linkType: hard +"package-json-from-dist@npm:^1.0.0": + version: 1.0.1 + resolution: "package-json-from-dist@npm:1.0.1" + checksum: 58ee9538f2f762988433da00e26acc788036914d57c71c246bf0be1b60cdbd77dd60b6a3e1a30465f0b248aeb80079e0b34cb6050b1dfa18c06953bb1cbc7602 + languageName: node + linkType: hard + "pako@npm:^2.1.0": version: 2.1.0 resolution: "pako@npm:2.1.0" @@ -16341,9 +16269,9 @@ coolshapes-react@lowcoder-org/coolshapes-react: linkType: hard "papaparse@npm:^5.3.2": - version: 5.4.1 - resolution: "papaparse@npm:5.4.1" - checksum: fc9e52f7158dca3517c229e3309065b1ab5da6c7194572fba4f31ff138bc43e3c91182cc40365cc828f97fe10d0aca416068fd731661058bea0f69ddb84a411a + version: 5.5.3 + resolution: "papaparse@npm:5.5.3" + checksum: 369d68a16340e5fad95d411a0efca34bedbf93550744e6374fa9b60aaf6bc655e29a6d1a39a56afea0cf7dbc4454fd190f50a9ad76db80987b43d6c6c319f018 languageName: node linkType: hard @@ -16388,18 +16316,17 @@ coolshapes-react@lowcoder-org/coolshapes-react: linkType: hard "parse-entities@npm:^4.0.0": - version: 4.0.1 - resolution: "parse-entities@npm:4.0.1" + version: 4.0.2 + resolution: "parse-entities@npm:4.0.2" dependencies: "@types/unist": ^2.0.0 - character-entities: ^2.0.0 character-entities-legacy: ^3.0.0 character-reference-invalid: ^2.0.0 decode-named-character-reference: ^1.0.0 is-alphanumerical: ^2.0.0 is-decimal: ^2.0.0 is-hexadecimal: ^2.0.0 - checksum: 32a6ff5b9acb9d2c4d71537308521fd265e685b9215691df73feedd9edfe041bb6da9f89bd0c35c4a2bc7d58e3e76e399bb6078c2fd7d2a343ff1dd46edbf1bd + checksum: db22b46da1a62af00409c929ac49fbd306b5ebf0dbacf4646d2ae2b58616ef90a40eedc282568a3cf740fac2a7928bc97146973a628f6977ca274dedc2ad6edc languageName: node linkType: hard @@ -16437,11 +16364,11 @@ coolshapes-react@lowcoder-org/coolshapes-react: linkType: hard "parse5@npm:^7.0.0, parse5@npm:^7.1.1": - version: 7.1.2 - resolution: "parse5@npm:7.1.2" + version: 7.3.0 + resolution: "parse5@npm:7.3.0" dependencies: - entities: ^4.4.0 - checksum: 59465dd05eb4c5ec87b76173d1c596e152a10e290b7abcda1aecf0f33be49646ea74840c69af975d7887543ea45564801736356c568d6b5e71792fd0f4055713 + entities: ^6.0.0 + checksum: ffd040c4695d93f0bc370e3d6d75c1b352178514af41be7afa212475ea5cead1d6e377cd9d4cec6a5e2bcf497ca50daf9e0088eadaa37dbc271f60def08fdfcd languageName: node linkType: hard @@ -16511,29 +16438,29 @@ coolshapes-react@lowcoder-org/coolshapes-react: languageName: node linkType: hard -"path-scurry@npm:^1.10.2": - version: 1.10.2 - resolution: "path-scurry@npm:1.10.2" +"path-scurry@npm:^1.11.1": + version: 1.11.1 + resolution: "path-scurry@npm:1.11.1" dependencies: lru-cache: ^10.2.0 minipass: ^5.0.0 || ^6.0.2 || ^7.0.0 - checksum: 6739b4290f7d1a949c61c758b481c07ac7d1a841964c68cf5e1fa153d7e18cbde4872b37aadf9c5173c800d627f219c47945859159de36c977dd82419997b9b8 + checksum: 890d5abcd593a7912dcce7cf7c6bf7a0b5648e3dee6caf0712c126ca0a65c7f3d7b9d769072a4d1baf370f61ce493ab5b038d59988688e0c5f3f646ee3c69023 languageName: node linkType: hard -"path-to-regexp@npm:0.1.7": - version: 0.1.7 - resolution: "path-to-regexp@npm:0.1.7" - checksum: 69a14ea24db543e8b0f4353305c5eac6907917031340e5a8b37df688e52accd09e3cebfe1660b70d76b6bd89152f52183f28c74813dbf454ba1a01c82a38abce +"path-to-regexp@npm:0.1.12": + version: 0.1.12 + resolution: "path-to-regexp@npm:0.1.12" + checksum: ab237858bee7b25ecd885189f175ab5b5161e7b712b360d44f5c4516b8d271da3e4bf7bf0a7b9153ecb04c7d90ce8ff5158614e1208819cf62bac2b08452722e languageName: node linkType: hard "path-to-regexp@npm:^1.7.0": - version: 1.8.0 - resolution: "path-to-regexp@npm:1.8.0" + version: 1.9.0 + resolution: "path-to-regexp@npm:1.9.0" dependencies: isarray: 0.0.1 - checksum: 709f6f083c0552514ef4780cb2e7e4cf49b0cc89a97439f2b7cc69a608982b7690fb5d1720a7473a59806508fc2dae0be751ba49f495ecf89fd8fbc62abccbcd + checksum: 5b2ac9cab2a9f82effd30a35164b20998b18d99d96608281dd2cab6e66c0e4536187970369b185ab21d3815da1ecb7dcb2d5f97a4bf0ee6e31a9612299fca147 languageName: node linkType: hard @@ -16544,10 +16471,10 @@ coolshapes-react@lowcoder-org/coolshapes-react: languageName: node linkType: hard -"path-type@npm:^5.0.0": - version: 5.0.0 - resolution: "path-type@npm:5.0.0" - checksum: 15ec24050e8932c2c98d085b72cfa0d6b4eeb4cbde151a0a05726d8afae85784fc5544f733d8dfc68536587d5143d29c0bd793623fad03d7e61cc00067291cd5 +"path-type@npm:^6.0.0": + version: 6.0.0 + resolution: "path-type@npm:6.0.0" + checksum: b9f6eaf7795c48d5c9bc4c6bc3ac61315b8d36975a73497ab2e02b764c0836b71fb267ea541863153f633a069a1c2ed3c247cb781633842fc571c655ac57c00e languageName: node linkType: hard @@ -16558,7 +16485,7 @@ coolshapes-react@lowcoder-org/coolshapes-react: languageName: node linkType: hard -"pbkdf2@npm:^3.0.3, pbkdf2@npm:^3.1.2": +"pbkdf2@npm:^3.1.2": version: 3.1.2 resolution: "pbkdf2@npm:3.1.2" dependencies: @@ -16578,10 +16505,10 @@ coolshapes-react@lowcoder-org/coolshapes-react: languageName: node linkType: hard -"picocolors@npm:^1.0.0": - version: 1.0.0 - resolution: "picocolors@npm:1.0.0" - checksum: a2e8092dd86c8396bdba9f2b5481032848525b3dc295ce9b57896f931e63fc16f79805144321f72976383fc249584672a75cc18d6777c6b757603f372f745981 +"picocolors@npm:^1.0.0, picocolors@npm:^1.1.1": + version: 1.1.1 + resolution: "picocolors@npm:1.1.1" + checksum: e1cf46bf84886c79055fdfa9dcb3e4711ad259949e3565154b004b260cd356c5d54b31a1437ce9782624bf766272fe6b0154f5f0c744fb7af5d454d2b60db045 languageName: node linkType: hard @@ -16592,6 +16519,13 @@ coolshapes-react@lowcoder-org/coolshapes-react: languageName: node linkType: hard +"picomatch@npm:^4.0.2": + version: 4.0.2 + resolution: "picomatch@npm:4.0.2" + checksum: a7a5188c954f82c6585720e9143297ccd0e35ad8072231608086ca950bee672d51b0ef676254af0788205e59bd4e4deb4e7708769226bed725bf13370a7d1464 + languageName: node + linkType: hard + "pidtree@npm:0.6.0": version: 0.6.0 resolution: "pidtree@npm:0.6.0" @@ -16608,10 +16542,19 @@ coolshapes-react@lowcoder-org/coolshapes-react: languageName: node linkType: hard +"pigeon-maps@npm:^0.22.1": + version: 0.22.1 + resolution: "pigeon-maps@npm:0.22.1" + peerDependencies: + react: "*" + checksum: 82233ee7ca3314195578b32e8cc6b5ee77520bbfff50c6d7dfbd9ab3b9738e4a7e0144b2c3d122dcfc6db67a0a41f259afa2e76c378769b6dfdbb7a9a5de0782 + languageName: node + linkType: hard + "pirates@npm:^4.0.1, pirates@npm:^4.0.4": - version: 4.0.6 - resolution: "pirates@npm:4.0.6" - checksum: 46a65fefaf19c6f57460388a5af9ab81e3d7fd0e7bc44ca59d753cb5c4d0df97c6c6e583674869762101836d68675f027d60f841c105d72734df9dfca97cbcc6 + version: 4.0.7 + resolution: "pirates@npm:4.0.7" + checksum: 3dcbaff13c8b5bc158416feb6dc9e49e3c6be5fddc1ea078a05a73ef6b85d79324bbb1ef59b954cdeff000dbf000c1d39f32dc69310c7b78fbada5171b583e40 languageName: node linkType: hard @@ -16650,9 +16593,9 @@ coolshapes-react@lowcoder-org/coolshapes-react: linkType: hard "possible-typed-array-names@npm:^1.0.0": - version: 1.0.0 - resolution: "possible-typed-array-names@npm:1.0.0" - checksum: b32d403ece71e042385cc7856385cecf1cd8e144fa74d2f1de40d1e16035dba097bc189715925e79b67bdd1472796ff168d3a90d296356c9c94d272d5b95f3ae + version: 1.1.0 + resolution: "possible-typed-array-names@npm:1.1.0" + checksum: cfcd4f05264eee8fd184cd4897a17890561d1d473434b43ab66ad3673d9c9128981ec01e0cb1d65a52cd6b1eebfb2eae1e53e39b2e0eca86afc823ede7a4f41b languageName: node linkType: hard @@ -16666,26 +16609,26 @@ coolshapes-react@lowcoder-org/coolshapes-react: linkType: hard "postcss-modules-local-by-default@npm:^4.0.5": - version: 4.0.5 - resolution: "postcss-modules-local-by-default@npm:4.0.5" + version: 4.2.0 + resolution: "postcss-modules-local-by-default@npm:4.2.0" dependencies: icss-utils: ^5.0.0 - postcss-selector-parser: ^6.0.2 + postcss-selector-parser: ^7.0.0 postcss-value-parser: ^4.1.0 peerDependencies: postcss: ^8.1.0 - checksum: ca9b01f4a0a3dfb33e016299e2dfb7e85c3123292f7aec2efc0c6771b9955648598bfb4c1561f7ee9732fb27fb073681233661b32eef98baab43743f96735452 + checksum: 720d145453f82ad5f1c1d0ff7386d64722f0812808e4132e573c1a49909745e109fcce3792a0b0cb18770dbeb3d9741867e81c698dc8353a18bc664b7d6d9533 languageName: node linkType: hard "postcss-modules-scope@npm:^3.2.0": - version: 3.2.0 - resolution: "postcss-modules-scope@npm:3.2.0" + version: 3.2.1 + resolution: "postcss-modules-scope@npm:3.2.1" dependencies: - postcss-selector-parser: ^6.0.4 + postcss-selector-parser: ^7.0.0 peerDependencies: postcss: ^8.1.0 - checksum: 2ffe7e98c1fa993192a39c8dd8ade93fc4f59fbd1336ce34fcedaee0ee3bafb29e2e23fb49189256895b30e4f21af661c6a6a16ef7b17ae2c859301e4a4459ae + checksum: 085f65863bb7d8bf08209a979ceb22b2b07bb466574e0e698d34aaad832d614957bb05f2418348a14e4035f65e23b2be2951369d26ea429dd5762c6a020f0f7c languageName: node linkType: hard @@ -16700,13 +16643,13 @@ coolshapes-react@lowcoder-org/coolshapes-react: languageName: node linkType: hard -"postcss-selector-parser@npm:^6.0.2, postcss-selector-parser@npm:^6.0.4": - version: 6.0.16 - resolution: "postcss-selector-parser@npm:6.0.16" +"postcss-selector-parser@npm:^7.0.0": + version: 7.1.0 + resolution: "postcss-selector-parser@npm:7.1.0" dependencies: cssesc: ^3.0.0 util-deprecate: ^1.0.2 - checksum: e1cd68e33a39e3dc1e1e5bd8717be5bbe3cc23a4cecb466c3acb2f3a77daad7a47df4d6137a76f8db74cf160d2fb16b2cfdb4ccbebdfda844690f8d545fe281d + checksum: 1300e7871dd60a5132ee5462cc6e94edd4f3df28462b2495ca9ff025bd83768a908e892a18fde62cae63ff63524641baa6d58c64120f04fe6884b916663ce737 languageName: node linkType: hard @@ -16717,25 +16660,25 @@ coolshapes-react@lowcoder-org/coolshapes-react: languageName: node linkType: hard -"postcss@npm:8.4.31": - version: 8.4.31 - resolution: "postcss@npm:8.4.31" +"postcss@npm:8.4.49": + version: 8.4.49 + resolution: "postcss@npm:8.4.49" dependencies: - nanoid: ^3.3.6 - picocolors: ^1.0.0 - source-map-js: ^1.0.2 - checksum: 1d8611341b073143ad90486fcdfeab49edd243377b1f51834dc4f6d028e82ce5190e4f11bb2633276864503654fb7cab28e67abdc0fbf9d1f88cad4a0ff0beea + nanoid: ^3.3.7 + picocolors: ^1.1.1 + source-map-js: ^1.2.1 + checksum: eb5d6cbdca24f50399aafa5d2bea489e4caee4c563ea1edd5a2485bc5f84e9ceef3febf170272bc83a99c31d23a316ad179213e853f34c2a7a8ffa534559d63a languageName: node linkType: hard "postcss@npm:^8.4.27, postcss@npm:^8.4.33": - version: 8.4.38 - resolution: "postcss@npm:8.4.38" + version: 8.5.3 + resolution: "postcss@npm:8.5.3" dependencies: - nanoid: ^3.3.7 - picocolors: ^1.0.0 - source-map-js: ^1.2.0 - checksum: 649f9e60a763ca4b5a7bbec446a069edf07f057f6d780a5a0070576b841538d1ecf7dd888f2fbfd1f76200e26c969e405aeeae66332e6927dbdc8bdcb90b9451 + nanoid: ^3.3.8 + picocolors: ^1.1.1 + source-map-js: ^1.2.1 + checksum: da574620eb84ff60e65e1d8fc6bd5ad87a19101a23d0aba113c653434161543918229a0f673d89efb3b6d4906287eb04b957310dbcf4cbebacad9d1312711461 languageName: node linkType: hard @@ -16761,11 +16704,11 @@ coolshapes-react@lowcoder-org/coolshapes-react: linkType: hard "prettier@npm:^3.1.0, prettier@npm:^3.1.1": - version: 3.2.5 - resolution: "prettier@npm:3.2.5" + version: 3.5.3 + resolution: "prettier@npm:3.5.3" bin: prettier: bin/prettier.cjs - checksum: 2ee4e1417572372afb7a13bb446b34f20f1bf1747db77cf6ccaf57a9be005f2f15c40f903d41a6b79eec3f57fff14d32a20fb6dee1f126da48908926fe43c311 + checksum: 61e97bb8e71a95d8f9c71f1fd5229c9aaa9d1e184dedb12399f76aa802fb6fdc8954ecac9df25a7f82ee7311cf8ddbd06baf5507388fc98e5b44036cc6a88a1b languageName: node linkType: hard @@ -16791,10 +16734,10 @@ coolshapes-react@lowcoder-org/coolshapes-react: languageName: node linkType: hard -"proc-log@npm:^3.0.0": - version: 3.0.0 - resolution: "proc-log@npm:3.0.0" - checksum: 02b64e1b3919e63df06f836b98d3af002b5cd92655cab18b5746e37374bfb73e03b84fe305454614b34c25b485cc687a9eebdccf0242cda8fda2475dd2c97e02 +"proc-log@npm:^5.0.0": + version: 5.0.0 + resolution: "proc-log@npm:5.0.0" + checksum: c78b26ecef6d5cce4a7489a1e9923d7b4b1679028c8654aef0463b27f4a90b0946cd598f55799da602895c52feb085ec76381d007ab8dcceebd40b89c2f9dfe0 languageName: node linkType: hard @@ -16866,6 +16809,13 @@ coolshapes-react@lowcoder-org/coolshapes-react: languageName: node linkType: hard +"property-information@npm:^7.0.0": + version: 7.1.0 + resolution: "property-information@npm:7.1.0" + checksum: 3875161d204bac89d75181f6d3ebc3ecaeb2699b4e2ecfcf5452201d7cdd275168c6742d7ff8cec5ab0c342fae72369ac705e1f8e9680a9acd911692e80dfb88 + languageName: node + linkType: hard + "proxy-addr@npm:~2.0.7": version: 2.0.7 resolution: "proxy-addr@npm:2.0.7" @@ -16898,13 +16848,15 @@ coolshapes-react@lowcoder-org/coolshapes-react: linkType: hard "psl@npm:^1.1.28, psl@npm:^1.1.33": - version: 1.9.0 - resolution: "psl@npm:1.9.0" - checksum: 20c4277f640c93d393130673f392618e9a8044c6c7bf61c53917a0fddb4952790f5f362c6c730a9c32b124813e173733f9895add8d26f566ed0ea0654b2e711d + version: 1.15.0 + resolution: "psl@npm:1.15.0" + dependencies: + punycode: ^2.3.1 + checksum: 6f777d82eecfe1c2406dadbc15e77467b186fec13202ec887a45d0209a2c6fca530af94a462a477c3c4a767ad892ec9ede7c482d98f61f653dd838b50e89dc15 languageName: node linkType: hard -"public-encrypt@npm:^4.0.0": +"public-encrypt@npm:^4.0.3": version: 4.0.3 resolution: "public-encrypt@npm:4.0.3" dependencies: @@ -16925,7 +16877,7 @@ coolshapes-react@lowcoder-org/coolshapes-react: languageName: node linkType: hard -"punycode@npm:^2.1.0, punycode@npm:^2.1.1": +"punycode@npm:^2.1.0, punycode@npm:^2.1.1, punycode@npm:^2.3.1": version: 2.3.1 resolution: "punycode@npm:2.3.1" checksum: bb0a0ceedca4c3c57a9b981b90601579058903c62be23c5e8e843d2c2d4148a3ecf029d5133486fb0e1822b098ba8bba09e89d6b21742d02fa26bda6441a6fb2 @@ -16947,29 +16899,29 @@ coolshapes-react@lowcoder-org/coolshapes-react: linkType: hard "qrcode.react@npm:^3.1.0": - version: 3.1.0 - resolution: "qrcode.react@npm:3.1.0" + version: 3.2.0 + resolution: "qrcode.react@npm:3.2.0" peerDependencies: react: ^16.8.0 || ^17.0.0 || ^18.0.0 - checksum: 94a2942ecf83f461d869adb20305ae663c6d1abe93ef2c72442b07d756ce70cf6deb6fd588dc5b382b48c6991cfde1dfd5ac9b814c1461e71d5edb2d945e67fc + checksum: 55d020ca482d57e8d73ee9e2e18f152184fd3d7d2d0742ae54ec58c5a3bab08b242a648585178d7fc91877fc75d6fbad7a35fb51bc4bddd4374e1de450ca78e7 languageName: node linkType: hard -"qs@npm:6.11.0": - version: 6.11.0 - resolution: "qs@npm:6.11.0" +"qs@npm:6.13.0": + version: 6.13.0 + resolution: "qs@npm:6.13.0" dependencies: - side-channel: ^1.0.4 - checksum: 6e1f29dd5385f7488ec74ac7b6c92f4d09a90408882d0c208414a34dd33badc1a621019d4c799a3df15ab9b1d0292f97c1dd71dc7c045e69f81a8064e5af7297 + side-channel: ^1.0.6 + checksum: e9404dc0fc2849245107108ce9ec2766cde3be1b271de0bf1021d049dc5b98d1a2901e67b431ac5509f865420a7ed80b7acb3980099fe1c118a1c5d2e1432ad8 languageName: node linkType: hard -"qs@npm:^6.11.2": - version: 6.12.1 - resolution: "qs@npm:6.12.1" +"qs@npm:^6.12.3": + version: 6.14.0 + resolution: "qs@npm:6.14.0" dependencies: - side-channel: ^1.0.6 - checksum: aa761d99e65b6936ba2dd2187f2d9976afbcda38deb3ff1b3fe331d09b0c578ed79ca2abdde1271164b5be619c521ec7db9b34c23f49a074e5921372d16242d5 + side-channel: ^1.1.0 + checksum: 189b52ad4e9a0da1a16aff4c58b2a554a8dad9bd7e287c7da7446059b49ca2e33a49e570480e8be406b87fccebf134f51c373cbce36c8c83859efa0c9b71d635 languageName: node linkType: hard @@ -17033,7 +16985,7 @@ coolshapes-react@lowcoder-org/coolshapes-react: languageName: node linkType: hard -"randomfill@npm:^1.0.3": +"randomfill@npm:^1.0.4": version: 1.0.4 resolution: "randomfill@npm:1.0.4" dependencies: @@ -17182,17 +17134,17 @@ coolshapes-react@lowcoder-org/coolshapes-react: languageName: node linkType: hard -"rc-field-form@npm:~1.27.4": - version: 1.27.4 - resolution: "rc-field-form@npm:1.27.4" +"rc-field-form@npm:^1.34.2": + version: 1.44.0 + resolution: "rc-field-form@npm:1.44.0" dependencies: "@babel/runtime": ^7.18.0 async-validator: ^4.1.0 - rc-util: ^5.8.0 + rc-util: ^5.32.2 peerDependencies: react: ">=16.9.0" react-dom: ">=16.9.0" - checksum: 51873f9ffa94d4b10d04d191adfd35bc3b2f9b8abf70ff07ae648a9965fb97b70e501c05500ebae770d1ba443d5a2c46f4da041ce988d337ff0cabda2656e35e + checksum: d7a2c858527ab318e09efdc3c06ad7d46990351c9d170b243c3883e87d01f7904bdedce0a01f38cd9b274d13863de493497cfeaa60d7a5734a44ac699befdc37 languageName: node linkType: hard @@ -17292,21 +17244,7 @@ coolshapes-react@lowcoder-org/coolshapes-react: languageName: node linkType: hard -"rc-motion@npm:^2.0.0": - version: 2.9.0 - resolution: "rc-motion@npm:2.9.0" - dependencies: - "@babel/runtime": ^7.11.1 - classnames: ^2.2.1 - rc-util: ^5.21.0 - peerDependencies: - react: ">=16.9.0" - react-dom: ">=16.9.0" - checksum: 6c7c211a62896a2c443c43f27d13ec84c832884ec1860a40025f6270321e4e8c8a7abaf99d60a09d6e5cadc112e3d9787e0c58970eb69b0bb798eaa6be81dcf5 - languageName: node - linkType: hard - -"rc-motion@npm:^2.0.1, rc-motion@npm:^2.3.0, rc-motion@npm:^2.3.4, rc-motion@npm:^2.4.3, rc-motion@npm:^2.4.4, rc-motion@npm:^2.6.1, rc-motion@npm:^2.6.2, rc-motion@npm:^2.9.0, rc-motion@npm:^2.9.5": +"rc-motion@npm:^2.0.0, rc-motion@npm:^2.0.1, rc-motion@npm:^2.3.0, rc-motion@npm:^2.3.4, rc-motion@npm:^2.4.3, rc-motion@npm:^2.4.4, rc-motion@npm:^2.6.1, rc-motion@npm:^2.6.2, rc-motion@npm:^2.9.0, rc-motion@npm:^2.9.5": version: 2.9.5 resolution: "rc-motion@npm:2.9.5" dependencies: @@ -17456,9 +17394,9 @@ coolshapes-react@lowcoder-org/coolshapes-react: languageName: node linkType: hard -"rc-segmented@npm:~2.7.0": - version: 2.7.0 - resolution: "rc-segmented@npm:2.7.0" +"rc-segmented@npm:~2.4.1": + version: 2.4.1 + resolution: "rc-segmented@npm:2.4.1" dependencies: "@babel/runtime": ^7.11.1 classnames: ^2.2.1 @@ -17467,29 +17405,26 @@ coolshapes-react@lowcoder-org/coolshapes-react: peerDependencies: react: ">=16.0.0" react-dom: ">=16.0.0" - checksum: 8872a6675656afe8937745b401df7abb5d129ec3eae39744e225f155347153928d9df438c355475731eb721905680925bb34a1fb4e99ed6f9f4e5d87bd16c53e + checksum: f1b731f70af488ae802f14a6d49522a8b16483a8b6c46a7bb604d8daaaf0975872d7c8650d9ae6e0dc4f92bb4826e28c807555e4cc1e463c5e3e4fb26ac65fdd languageName: node linkType: hard -"rc-select@npm:~14.16.2": - version: 14.16.6 - resolution: "rc-select@npm:14.16.6" +"rc-segmented@npm:~2.7.0": + version: 2.7.0 + resolution: "rc-segmented@npm:2.7.0" dependencies: - "@babel/runtime": ^7.10.1 - "@rc-component/trigger": ^2.1.1 - classnames: 2.x - rc-motion: ^2.0.1 - rc-overflow: ^1.3.1 - rc-util: ^5.16.1 - rc-virtual-list: ^3.5.2 + "@babel/runtime": ^7.11.1 + classnames: ^2.2.1 + rc-motion: ^2.4.4 + rc-util: ^5.17.0 peerDependencies: - react: "*" - react-dom: "*" - checksum: 4e4fa99c2727bb23dc37dee2235ec9e70284554bb62f7d356ae77c40362da7971ee7b75a18c360cb0c26155057339120b8450035a1e23ad6e97fd1435244c803 + react: ">=16.0.0" + react-dom: ">=16.0.0" + checksum: 8872a6675656afe8937745b401df7abb5d129ec3eae39744e225f155347153928d9df438c355475731eb721905680925bb34a1fb4e99ed6f9f4e5d87bd16c53e languageName: node linkType: hard -"rc-select@npm:~14.16.8": +"rc-select@npm:~14.16.2, rc-select@npm:~14.16.8": version: 14.16.8 resolution: "rc-select@npm:14.16.8" dependencies: @@ -17677,7 +17612,7 @@ coolshapes-react@lowcoder-org/coolshapes-react: languageName: node linkType: hard -"rc-util@npm:^5.0.1, rc-util@npm:^5.16.1, rc-util@npm:^5.17.0, rc-util@npm:^5.18.1, rc-util@npm:^5.2.0, rc-util@npm:^5.20.1, rc-util@npm:^5.24.4, rc-util@npm:^5.25.2, rc-util@npm:^5.27.0, rc-util@npm:^5.30.0, rc-util@npm:^5.32.2, rc-util@npm:^5.34.1, rc-util@npm:^5.35.0, rc-util@npm:^5.36.0, rc-util@npm:^5.37.0, rc-util@npm:^5.38.0, rc-util@npm:^5.40.1, rc-util@npm:^5.43.0, rc-util@npm:^5.44.0, rc-util@npm:^5.44.1, rc-util@npm:^5.44.3, rc-util@npm:^5.44.4": +"rc-util@npm:^5.0.1, rc-util@npm:^5.16.1, rc-util@npm:^5.17.0, rc-util@npm:^5.18.1, rc-util@npm:^5.19.2, rc-util@npm:^5.2.0, rc-util@npm:^5.20.1, rc-util@npm:^5.21.0, rc-util@npm:^5.24.4, rc-util@npm:^5.25.2, rc-util@npm:^5.26.0, rc-util@npm:^5.27.0, rc-util@npm:^5.30.0, rc-util@npm:^5.31.1, rc-util@npm:^5.32.2, rc-util@npm:^5.34.1, rc-util@npm:^5.35.0, rc-util@npm:^5.36.0, rc-util@npm:^5.37.0, rc-util@npm:^5.38.0, rc-util@npm:^5.38.1, rc-util@npm:^5.40.1, rc-util@npm:^5.43.0, rc-util@npm:^5.44.0, rc-util@npm:^5.44.1, rc-util@npm:^5.44.3, rc-util@npm:^5.44.4": version: 5.44.4 resolution: "rc-util@npm:5.44.4" dependencies: @@ -17690,22 +17625,9 @@ coolshapes-react@lowcoder-org/coolshapes-react: languageName: node linkType: hard -"rc-util@npm:^5.19.2, rc-util@npm:^5.21.0, rc-util@npm:^5.26.0, rc-util@npm:^5.31.1, rc-util@npm:^5.38.1, rc-util@npm:^5.8.0": - version: 5.39.1 - resolution: "rc-util@npm:5.39.1" - dependencies: - "@babel/runtime": ^7.18.3 - react-is: ^18.2.0 - peerDependencies: - react: ">=16.9.0" - react-dom: ">=16.9.0" - checksum: 67c53eea11fcdbca2b4a31853f1cedf6923ec7014eca90254ead5f4ef3317eb9b9df3434a5469c3cab3c45c3e5f4f2209cb3e9f4e8aa0413f4681475b7be6151 - languageName: node - linkType: hard - "rc-virtual-list@npm:^3.14.2, rc-virtual-list@npm:^3.5.1, rc-virtual-list@npm:^3.5.2": - version: 3.18.5 - resolution: "rc-virtual-list@npm:3.18.5" + version: 3.18.6 + resolution: "rc-virtual-list@npm:3.18.6" dependencies: "@babel/runtime": ^7.20.0 classnames: ^2.2.6 @@ -17714,7 +17636,7 @@ coolshapes-react@lowcoder-org/coolshapes-react: peerDependencies: react: ">=16.9.0" react-dom: ">=16.9.0" - checksum: 0ade9ba40986914e23ab2d75fb2a424de836ba491b5c2f013cefedc23c8bfef6c88df7a475947959d2fbe7f11834ed50cf95aaef38b7a27d393f7fd501a26878 + checksum: 4f95486a0791b98e121b246303f62bbf0a4e05d549af9aae32a193275d8f958d37f1376323cdceffe7a92ea0270d6a9f974cd435cd2cbfb40f1c8bcc8eefcf5f languageName: node linkType: hard @@ -17731,8 +17653,8 @@ coolshapes-react@lowcoder-org/coolshapes-react: linkType: hard "react-best-gradient-color-picker@npm:^3.0.10": - version: 3.0.10 - resolution: "react-best-gradient-color-picker@npm:3.0.10" + version: 3.0.14 + resolution: "react-best-gradient-color-picker@npm:3.0.14" dependencies: html2canvas: ^1.4.1 lodash.throttle: ^4.1.1 @@ -17744,7 +17666,7 @@ coolshapes-react@lowcoder-org/coolshapes-react: peerDependenciesMeta: "@types/react": optional: true - checksum: 3f821beb164e7eed0c3247af99e492dc08bfa64b47f8d7f71d1543e5afbe1d9f01cde4a2917c9d794012dd1efbfe848ee58621b4f37801ea5655df8be806ea55 + checksum: fc0af498ed5ebb2fc82430460d514fc0c9f6612b61a0896d612c3551bcfcda24e9c39727c3dacb10900e0bb7a8fb4ab09873a7ae7530345fbb1a55f901685ed4 languageName: node linkType: hard @@ -17828,13 +17750,13 @@ coolshapes-react@lowcoder-org/coolshapes-react: linkType: hard "react-error-boundary@npm:^4.0.13": - version: 4.0.13 - resolution: "react-error-boundary@npm:4.0.13" + version: 4.1.2 + resolution: "react-error-boundary@npm:4.1.2" dependencies: "@babel/runtime": ^7.12.5 peerDependencies: react: ">=16.13.1" - checksum: 50398d080015d51d22c6f94c56f4ea336d10232d72345b36ee6f15b6b643666d20b072829b02f091a80e5af68fe67f68a62ef0d2b649dbd759ead929304449af + checksum: afe692f1bbbfb5998b49e1001d7682a3cbfdc623dca1318b408e738606f3450d925c28fbbfa5dc84d2cf285d17c2e7f079d59386a27da354dea9c902a935149b languageName: node linkType: hard @@ -17883,8 +17805,8 @@ coolshapes-react@lowcoder-org/coolshapes-react: linkType: hard "react-grid-layout@npm:^1.3.0": - version: 1.4.4 - resolution: "react-grid-layout@npm:1.4.4" + version: 1.5.1 + resolution: "react-grid-layout@npm:1.5.1" dependencies: clsx: ^2.0.0 fast-equals: ^4.0.3 @@ -17895,7 +17817,7 @@ coolshapes-react@lowcoder-org/coolshapes-react: peerDependencies: react: ">= 16.3.0" react-dom: ">= 16.3.0" - checksum: 0d1d27d6ca58d5b7e9bf778f5d74e5a6353737980f86652b6a799a83b8683735d333f2a0d9b48e3186879da3eefd7f53a7db05a5149dfba27d9d124e5cd3f138 + checksum: b0bf00ea99b25b815b421fc79e451b3929101b0d94cf12e902b9bbbdfe8adc2cfe4a4bd45a075e6bf9f4d7c58e32792ef94837d5ca80c96e1eb633f6897a4b83 languageName: node linkType: hard @@ -17988,10 +17910,11 @@ coolshapes-react@lowcoder-org/coolshapes-react: linkType: hard "react-markdown@npm:^9.0.1": - version: 9.0.1 - resolution: "react-markdown@npm:9.0.1" + version: 9.1.0 + resolution: "react-markdown@npm:9.1.0" dependencies: "@types/hast": ^3.0.0 + "@types/mdast": ^4.0.0 devlop: ^1.0.0 hast-util-to-jsx-runtime: ^2.0.0 html-url-attributes: ^3.0.0 @@ -18004,7 +17927,7 @@ coolshapes-react@lowcoder-org/coolshapes-react: peerDependencies: "@types/react": ">=18" react: ">=18" - checksum: ca1daa650d48b84a5a9771683cdb3f3d2d418247ce0faf73ede3207c65f2a21cdebb9df37afda67f6fc8f0f0a7b9ce00eb239781954a4d6c7ad88ea4df068add + checksum: d78ca3b6bea23a3383d067ad8eb0aec3a22a4500663f32773be45ad38572b5f1b823184fafc85c1a35ff6290bddea42b003dc7bdfc02cf20a9e0163ecd3ea605 languageName: node linkType: hard @@ -18172,16 +18095,16 @@ coolshapes-react@lowcoder-org/coolshapes-react: linkType: hard "react-signature-canvas@npm:^1.0.6": - version: 1.0.6 - resolution: "react-signature-canvas@npm:1.0.6" + version: 1.0.7 + resolution: "react-signature-canvas@npm:1.0.7" dependencies: signature_pad: ^2.3.2 trim-canvas: ^0.1.0 peerDependencies: prop-types: ^15.5.8 - react: 0.14 - 18 - react-dom: 0.14 - 18 - checksum: 4fe5f0c41162f7c26dd5e8dc8305583016f75eb95a3f6c1207b6234d20b7e3348033e20d26f9f8d0d59c57a63a1679e27e4e5d285f2537ea25f8cc73f3626c71 + react: 0.14 - 19 + react-dom: 0.14 - 19 + checksum: 4693892f13c93e26e47eed07c0ee280e9555657fbc22e879fe680a13e813d97ddb6fc4a94f186651231cb15a11efc932b7e2a7f6589cabf4f5e3404302a36b94 languageName: node linkType: hard @@ -18199,15 +18122,15 @@ coolshapes-react@lowcoder-org/coolshapes-react: linkType: hard "react-textarea-autosize@npm:^8.3.2": - version: 8.5.3 - resolution: "react-textarea-autosize@npm:8.5.3" + version: 8.5.9 + resolution: "react-textarea-autosize@npm:8.5.9" dependencies: "@babel/runtime": ^7.20.13 use-composed-ref: ^1.3.0 use-latest: ^1.2.1 peerDependencies: - react: ^16.8.0 || ^17.0.0 || ^18.0.0 - checksum: b317c3763f37a89621bbafd0e6e2d068e7876790a5ae77f497adfd6ba9334ceea138c8a0b7d907bae0f79c765cb24e8b2ca2b8033b4144c0bce28571a3658921 + react: ^16.8.0 || ^17.0.0 || ^18.0.0 || ^19.0.0 + checksum: d87a563251f74c8fe779a4a28a25ac4487ec16fe13b54d39e0341578e119a1c781d99e059ed8cba4965e0c3ae94e73614430cc9b5d50c538ad1573897239cb14 languageName: node linkType: hard @@ -18222,8 +18145,8 @@ coolshapes-react@lowcoder-org/coolshapes-react: linkType: hard "react-use@npm:^17.3.2": - version: 17.5.0 - resolution: "react-use@npm:17.5.0" + version: 17.6.0 + resolution: "react-use@npm:17.6.0" dependencies: "@types/js-cookie": ^2.2.6 "@xobotyi/scrollbar-width": ^1.9.5 @@ -18231,7 +18154,7 @@ coolshapes-react@lowcoder-org/coolshapes-react: fast-deep-equal: ^3.1.3 fast-shallow-equal: ^1.0.0 js-cookie: ^2.2.1 - nano-css: ^5.6.1 + nano-css: ^5.6.2 react-universal-interface: ^0.6.2 resize-observer-polyfill: ^1.5.1 screenfull: ^5.1.0 @@ -18242,7 +18165,7 @@ coolshapes-react@lowcoder-org/coolshapes-react: peerDependencies: react: "*" react-dom: "*" - checksum: d3164db313f27aa701dcf87177861db6e19624ea7dd8bc81805352af7f6bf04072010b9776da4ac458d6bd318759ee69b12763d96098d83c75b7d66ffc689e3a + checksum: c76de18b56b554bfbb28199e4ad4098f4e4ab15f0d3cefef661a7a5e6a4c167ae85390fc7bc648c34b80c17498abf1e8223d7078f3e51c09e4da70e11a41a54e languageName: node linkType: hard @@ -18452,27 +18375,28 @@ coolshapes-react@lowcoder-org/coolshapes-react: languageName: node linkType: hard -"reflect.getprototypeof@npm:^1.0.4": - version: 1.0.6 - resolution: "reflect.getprototypeof@npm:1.0.6" +"reflect.getprototypeof@npm:^1.0.6, reflect.getprototypeof@npm:^1.0.9": + version: 1.0.10 + resolution: "reflect.getprototypeof@npm:1.0.10" dependencies: - call-bind: ^1.0.7 + call-bind: ^1.0.8 define-properties: ^1.2.1 - es-abstract: ^1.23.1 + es-abstract: ^1.23.9 es-errors: ^1.3.0 - get-intrinsic: ^1.2.4 - globalthis: ^1.0.3 - which-builtin-type: ^1.1.3 - checksum: 88e9e65a7eaa0bf8e9a8bbf8ac07571363bc333ba8b6769ed5e013e0042ed7c385e97fae9049510b3b5fe4b42472d8f32de9ce8ce84902bc4297d4bbe3777dba + es-object-atoms: ^1.0.0 + get-intrinsic: ^1.2.7 + get-proto: ^1.0.1 + which-builtin-type: ^1.2.1 + checksum: ccc5debeb66125e276ae73909cecb27e47c35d9bb79d9cc8d8d055f008c58010ab8cb401299786e505e4aab733a64cba9daf5f312a58e96a43df66adad221870 languageName: node linkType: hard -"regenerate-unicode-properties@npm:^10.1.0": - version: 10.1.1 - resolution: "regenerate-unicode-properties@npm:10.1.1" +"regenerate-unicode-properties@npm:^10.2.0": + version: 10.2.0 + resolution: "regenerate-unicode-properties@npm:10.2.0" dependencies: regenerate: ^1.4.2 - checksum: b80958ef40f125275824c2c47d5081dfaefebd80bff26c76761e9236767c748a4a95a69c053fe29d2df881177f2ca85df4a71fe70a82360388b31159ef19adcf + checksum: d5c5fc13f8b8d7e16e791637a4bfef741f8d70e267d51845ee7d5404a32fa14c75b181c4efba33e4bff8b0000a2f13e9773593713dfe5b66597df4259275ce63 languageName: node linkType: hard @@ -18490,56 +18414,49 @@ coolshapes-react@lowcoder-org/coolshapes-react: languageName: node linkType: hard -"regenerator-runtime@npm:^0.14.0": - version: 0.14.1 - resolution: "regenerator-runtime@npm:0.14.1" - checksum: 9f57c93277b5585d3c83b0cf76be47b473ae8c6d9142a46ce8b0291a04bb2cf902059f0f8445dcabb3fb7378e5fe4bb4ea1e008876343d42e46d3b484534ce38 - languageName: node - linkType: hard - -"regenerator-transform@npm:^0.15.2": - version: 0.15.2 - resolution: "regenerator-transform@npm:0.15.2" - dependencies: - "@babel/runtime": ^7.8.4 - checksum: 20b6f9377d65954980fe044cfdd160de98df415b4bff38fbade67b3337efaf078308c4fed943067cd759827cc8cfeca9cb28ccda1f08333b85d6a2acbd022c27 - languageName: node - linkType: hard - -"regexp.prototype.flags@npm:^1.5.1, regexp.prototype.flags@npm:^1.5.2": - version: 1.5.2 - resolution: "regexp.prototype.flags@npm:1.5.2" +"regexp.prototype.flags@npm:^1.5.1, regexp.prototype.flags@npm:^1.5.3, regexp.prototype.flags@npm:^1.5.4": + version: 1.5.4 + resolution: "regexp.prototype.flags@npm:1.5.4" dependencies: - call-bind: ^1.0.6 + call-bind: ^1.0.8 define-properties: ^1.2.1 es-errors: ^1.3.0 - set-function-name: ^2.0.1 - checksum: d7f333667d5c564e2d7a97c56c3075d64c722c9bb51b2b4df6822b2e8096d623a5e63088fb4c83df919b6951ef8113841de8b47de7224872fa6838bc5d8a7d64 + get-proto: ^1.0.1 + gopd: ^1.2.0 + set-function-name: ^2.0.2 + checksum: 18cb667e56cb328d2dda569d7f04e3ea78f2683135b866d606538cf7b1d4271f7f749f09608c877527799e6cf350e531368f3c7a20ccd1bb41048a48926bdeeb languageName: node linkType: hard -"regexpu-core@npm:^5.3.1": - version: 5.3.2 - resolution: "regexpu-core@npm:5.3.2" +"regexpu-core@npm:^6.2.0": + version: 6.2.0 + resolution: "regexpu-core@npm:6.2.0" dependencies: - "@babel/regjsgen": ^0.8.0 regenerate: ^1.4.2 - regenerate-unicode-properties: ^10.1.0 - regjsparser: ^0.9.1 + regenerate-unicode-properties: ^10.2.0 + regjsgen: ^0.8.0 + regjsparser: ^0.12.0 unicode-match-property-ecmascript: ^2.0.0 unicode-match-property-value-ecmascript: ^2.1.0 - checksum: 95bb97088419f5396e07769b7de96f995f58137ad75fac5811fb5fe53737766dfff35d66a0ee66babb1eb55386ef981feaef392f9df6d671f3c124812ba24da2 + checksum: 67d3c4a3f6c99bc80b5d690074a27e6f675be1c1739f8a9acf028fbc36f1a468472574ea65e331e217995198ba4404d7878f3cb3739a73552dd3c70d3fb7f8e6 + languageName: node + linkType: hard + +"regjsgen@npm:^0.8.0": + version: 0.8.0 + resolution: "regjsgen@npm:0.8.0" + checksum: a1d925ff14a4b2be774e45775ee6b33b256f89c42d480e6d85152d2133f18bd3d6af662161b226fa57466f7efec367eaf7ccd2a58c0ec2a1306667ba2ad07b0d languageName: node linkType: hard -"regjsparser@npm:^0.9.1": - version: 0.9.1 - resolution: "regjsparser@npm:0.9.1" +"regjsparser@npm:^0.12.0": + version: 0.12.0 + resolution: "regjsparser@npm:0.12.0" dependencies: - jsesc: ~0.5.0 + jsesc: ~3.0.2 bin: regjsparser: bin/parser - checksum: 5e1b76afe8f1d03c3beaf9e0d935dd467589c3625f6d65fb8ffa14f224d783a0fed4bf49c2c1b8211043ef92b6117313419edf055a098ed8342e340586741afc + checksum: 094b55b0ab3e1fd58f8ce5132a1d44dab08d91f7b0eea4132b0157b303ebb8ded20a9cbd893d25402d2aeddb23fac1f428ab4947b295d6fa51dd1c334a9e76f0 languageName: node linkType: hard @@ -18594,8 +18511,8 @@ coolshapes-react@lowcoder-org/coolshapes-react: linkType: hard "remark-gfm@npm:^4.0.0": - version: 4.0.0 - resolution: "remark-gfm@npm:4.0.0" + version: 4.0.1 + resolution: "remark-gfm@npm:4.0.1" dependencies: "@types/mdast": ^4.0.0 mdast-util-gfm: ^3.0.0 @@ -18603,7 +18520,7 @@ coolshapes-react@lowcoder-org/coolshapes-react: remark-parse: ^11.0.0 remark-stringify: ^11.0.0 unified: ^11.0.0 - checksum: 84bea84e388061fbbb697b4b666089f5c328aa04d19dc544c229b607446bc10902e46b67b9594415a1017bbbd7c811c1f0c30d36682c6d1a6718b66a1558261b + checksum: b278f51c4496f15ad868b72bf2eb2066c23a0892b5885544d3a4c233c964d44e51a0efe22d3fb33db4fbac92aefd51bb33453b8e73077b041a12b8269a02c17d languageName: node linkType: hard @@ -18620,15 +18537,15 @@ coolshapes-react@lowcoder-org/coolshapes-react: linkType: hard "remark-rehype@npm:^11.0.0": - version: 11.1.0 - resolution: "remark-rehype@npm:11.1.0" + version: 11.1.2 + resolution: "remark-rehype@npm:11.1.2" dependencies: "@types/hast": ^3.0.0 "@types/mdast": ^4.0.0 mdast-util-to-hast: ^13.0.0 unified: ^11.0.0 vfile: ^6.0.0 - checksum: f0c731f0ab92a122e7f9c9bcbd10d6a31fdb99f0ea3595d232ddd9f9d11a308c4ec0aff4d56e1d0d256042dfad7df23b9941e50b5038da29786959a5926814e1 + checksum: 6eab55cb3464ec01d8e002cc9fe02ae57f48162899693fd53b5ba553ac8699dae7b55fce9df7131a5981313b19b495d6fbfa98a9d6bd243e7485591364d9b5b3 languageName: node linkType: hard @@ -18768,22 +18685,22 @@ coolshapes-react@lowcoder-org/coolshapes-react: linkType: hard "resolve.exports@npm:^2.0.0": - version: 2.0.2 - resolution: "resolve.exports@npm:2.0.2" - checksum: 1c7778ca1b86a94f8ab4055d196c7d87d1874b96df4d7c3e67bbf793140f0717fd506dcafd62785b079cd6086b9264424ad634fb904409764c3509c3df1653f2 + version: 2.0.3 + resolution: "resolve.exports@npm:2.0.3" + checksum: abfb9f98278dcd0c19b8a49bb486abfafa23df4636d49128ea270dc982053c3ef230a530aecda1fae1322873fdfa6c97674fc539651ddfdb375ac58e0b8ef6df languageName: node linkType: hard "resolve@npm:^1.1.6, resolve@npm:^1.10.0, resolve@npm:^1.14.2, resolve@npm:^1.17.0, resolve@npm:^1.19.0, resolve@npm:^1.20.0, resolve@npm:^1.22.1, resolve@npm:^1.22.4": - version: 1.22.8 - resolution: "resolve@npm:1.22.8" + version: 1.22.10 + resolution: "resolve@npm:1.22.10" dependencies: - is-core-module: ^2.13.0 + is-core-module: ^2.16.0 path-parse: ^1.0.7 supports-preserve-symlinks-flag: ^1.0.0 bin: resolve: bin/resolve - checksum: f8a26958aa572c9b064562750b52131a37c29d072478ea32e129063e2da7f83e31f7f11e7087a18225a8561cfe8d2f0df9dbea7c9d331a897571c0a2527dbb4c + checksum: ab7a32ff4046fcd7c6fdd525b24a7527847d03c3650c733b909b01b757f92eb23510afa9cc3e9bf3f26a3e073b48c88c706dfd4c1d2fb4a16a96b73b6328ddcf languageName: node linkType: hard @@ -18801,15 +18718,15 @@ coolshapes-react@lowcoder-org/coolshapes-react: linkType: hard "resolve@patch:resolve@^1.1.6#~builtin<compat/resolve>, resolve@patch:resolve@^1.10.0#~builtin<compat/resolve>, resolve@patch:resolve@^1.14.2#~builtin<compat/resolve>, resolve@patch:resolve@^1.17.0#~builtin<compat/resolve>, resolve@patch:resolve@^1.19.0#~builtin<compat/resolve>, resolve@patch:resolve@^1.20.0#~builtin<compat/resolve>, resolve@patch:resolve@^1.22.1#~builtin<compat/resolve>, resolve@patch:resolve@^1.22.4#~builtin<compat/resolve>": - version: 1.22.8 - resolution: "resolve@patch:resolve@npm%3A1.22.8#~builtin<compat/resolve>::version=1.22.8&hash=c3c19d" + version: 1.22.10 + resolution: "resolve@patch:resolve@npm%3A1.22.10#~builtin<compat/resolve>::version=1.22.10&hash=c3c19d" dependencies: - is-core-module: ^2.13.0 + is-core-module: ^2.16.0 path-parse: ^1.0.7 supports-preserve-symlinks-flag: ^1.0.0 bin: resolve: bin/resolve - checksum: 5479b7d431cacd5185f8db64bfcb7286ae5e31eb299f4c4f404ad8aa6098b77599563ac4257cb2c37a42f59dfc06a1bec2bcf283bb448f319e37f0feb9a09847 + checksum: 8aac1e4e4628bd00bf4b94b23de137dd3fe44097a8d528fd66db74484be929936e20c696e1a3edf4488f37e14180b73df6f600992baea3e089e8674291f16c9d languageName: node linkType: hard @@ -18851,16 +18768,16 @@ coolshapes-react@lowcoder-org/coolshapes-react: linkType: hard "reusify@npm:^1.0.4": - version: 1.0.4 - resolution: "reusify@npm:1.0.4" - checksum: c3076ebcc22a6bc252cb0b9c77561795256c22b757f40c0d8110b1300723f15ec0fc8685e8d4ea6d7666f36c79ccc793b1939c748bf36f18f542744a4e379fcc + version: 1.1.0 + resolution: "reusify@npm:1.1.0" + checksum: 64cb3142ac5e9ad689aca289585cb41d22521f4571f73e9488af39f6b1bd62f0cbb3d65e2ecc768ec6494052523f473f1eb4b55c3e9014b3590c17fc6a03e22a languageName: node linkType: hard "rfdc@npm:^1.3.0": - version: 1.3.1 - resolution: "rfdc@npm:1.3.1" - checksum: d5d1e930aeac7e0e0a485f97db1356e388bdbeff34906d206fe524dd5ada76e95f186944d2e68307183fdc39a54928d4426bbb6734851692cfe9195efba58b79 + version: 1.4.1 + resolution: "rfdc@npm:1.4.1" + checksum: 3b05bd55062c1d78aaabfcea43840cdf7e12099968f368e9a4c3936beb744adb41cbdb315eac6d4d8c6623005d6f87fdf16d8a10e1ff3722e84afea7281c8d13 languageName: node linkType: hard @@ -18886,17 +18803,6 @@ coolshapes-react@lowcoder-org/coolshapes-react: languageName: node linkType: hard -"rimraf@npm:^5.0.5": - version: 5.0.5 - resolution: "rimraf@npm:5.0.5" - dependencies: - glob: ^10.3.7 - bin: - rimraf: dist/esm/bin.mjs - checksum: d66eef829b2e23b16445f34e73d75c7b7cf4cbc8834b04720def1c8f298eb0753c3d76df77325fad79d0a2c60470525d95f89c2475283ad985fd7441c32732d1 - languageName: node - linkType: hard - "ripemd160@npm:^2.0.0, ripemd160@npm:^2.0.1": version: 2.0.2 resolution: "ripemd160@npm:2.0.2" @@ -19031,21 +18937,24 @@ coolshapes-react@lowcoder-org/coolshapes-react: linkType: hard "rollup-plugin-visualizer@npm:^5.9.2": - version: 5.12.0 - resolution: "rollup-plugin-visualizer@npm:5.12.0" + version: 5.14.0 + resolution: "rollup-plugin-visualizer@npm:5.14.0" dependencies: open: ^8.4.0 - picomatch: ^2.3.1 + picomatch: ^4.0.2 source-map: ^0.7.4 yargs: ^17.5.1 peerDependencies: + rolldown: 1.x rollup: 2.x || 3.x || 4.x peerDependenciesMeta: + rolldown: + optional: true rollup: optional: true bin: rollup-plugin-visualizer: dist/bin/cli.js - checksum: 17dc10a93d4bd457c8bb7796a57c284487fb00f4b9703a33a1a954f5d40c66a89b24aca98564569922456f4fa8f72281c3ef96a95502195e6930b3fac62fce8e + checksum: 8ef5b05c91bd74bc1bb536609dd0ef2f1995066ec623393d192d638c209620fd2318c902d185ae648873d0a2788131cbaec11595c91322f0c2661ef6a1cc7e42 languageName: node linkType: hard @@ -19059,8 +18968,8 @@ coolshapes-react@lowcoder-org/coolshapes-react: linkType: hard "rollup@npm:^2": - version: 2.79.1 - resolution: "rollup@npm:2.79.1" + version: 2.79.2 + resolution: "rollup@npm:2.79.2" dependencies: fsevents: ~2.3.2 dependenciesMeta: @@ -19068,13 +18977,13 @@ coolshapes-react@lowcoder-org/coolshapes-react: optional: true bin: rollup: dist/bin/rollup - checksum: 6a2bf167b3587d4df709b37d149ad0300692cc5deb510f89ac7bdc77c8738c9546ae3de9322b0968e1ed2b0e984571f5f55aae28fa7de4cfcb1bc5402a4e2be6 + checksum: df7aa4c8b95245dede157b06ab71e1921de6080757d30e9bf31f8fb142064d12dda865e2bafbab4349588f43425b2965a290c9a5da1c048246a70fc21734ebd7 languageName: node linkType: hard "rollup@npm:^3.27.1": - version: 3.29.4 - resolution: "rollup@npm:3.29.4" + version: 3.29.5 + resolution: "rollup@npm:3.29.5" dependencies: fsevents: ~2.3.2 dependenciesMeta: @@ -19082,31 +18991,35 @@ coolshapes-react@lowcoder-org/coolshapes-react: optional: true bin: rollup: dist/bin/rollup - checksum: 8bb20a39c8d91130825159c3823eccf4dc2295c9a0a5c4ed851a5bf2167dbf24d9a29f23461a54c955e5506395e6cc188eafc8ab0e20399d7489fb33793b184e + checksum: 6f8304e58ac8170a715e61e46c4aa674b2ae2587ed2a712dab58f72e5e54803ae40b485fbe6b3e6a694f4c8f7a59ab936ccf9f6b686c7cfd1f1970fa9ecadf1a languageName: node linkType: hard "rollup@npm:^4.22.5": - version: 4.22.5 - resolution: "rollup@npm:4.22.5" - dependencies: - "@rollup/rollup-android-arm-eabi": 4.22.5 - "@rollup/rollup-android-arm64": 4.22.5 - "@rollup/rollup-darwin-arm64": 4.22.5 - "@rollup/rollup-darwin-x64": 4.22.5 - "@rollup/rollup-linux-arm-gnueabihf": 4.22.5 - "@rollup/rollup-linux-arm-musleabihf": 4.22.5 - "@rollup/rollup-linux-arm64-gnu": 4.22.5 - "@rollup/rollup-linux-arm64-musl": 4.22.5 - "@rollup/rollup-linux-powerpc64le-gnu": 4.22.5 - "@rollup/rollup-linux-riscv64-gnu": 4.22.5 - "@rollup/rollup-linux-s390x-gnu": 4.22.5 - "@rollup/rollup-linux-x64-gnu": 4.22.5 - "@rollup/rollup-linux-x64-musl": 4.22.5 - "@rollup/rollup-win32-arm64-msvc": 4.22.5 - "@rollup/rollup-win32-ia32-msvc": 4.22.5 - "@rollup/rollup-win32-x64-msvc": 4.22.5 - "@types/estree": 1.0.6 + version: 4.41.1 + resolution: "rollup@npm:4.41.1" + dependencies: + "@rollup/rollup-android-arm-eabi": 4.41.1 + "@rollup/rollup-android-arm64": 4.41.1 + "@rollup/rollup-darwin-arm64": 4.41.1 + "@rollup/rollup-darwin-x64": 4.41.1 + "@rollup/rollup-freebsd-arm64": 4.41.1 + "@rollup/rollup-freebsd-x64": 4.41.1 + "@rollup/rollup-linux-arm-gnueabihf": 4.41.1 + "@rollup/rollup-linux-arm-musleabihf": 4.41.1 + "@rollup/rollup-linux-arm64-gnu": 4.41.1 + "@rollup/rollup-linux-arm64-musl": 4.41.1 + "@rollup/rollup-linux-loongarch64-gnu": 4.41.1 + "@rollup/rollup-linux-powerpc64le-gnu": 4.41.1 + "@rollup/rollup-linux-riscv64-gnu": 4.41.1 + "@rollup/rollup-linux-riscv64-musl": 4.41.1 + "@rollup/rollup-linux-s390x-gnu": 4.41.1 + "@rollup/rollup-linux-x64-gnu": 4.41.1 + "@rollup/rollup-linux-x64-musl": 4.41.1 + "@rollup/rollup-win32-arm64-msvc": 4.41.1 + "@rollup/rollup-win32-ia32-msvc": 4.41.1 + "@rollup/rollup-win32-x64-msvc": 4.41.1 + "@types/estree": 1.0.7 fsevents: ~2.3.2 dependenciesMeta: "@rollup/rollup-android-arm-eabi": @@ -19117,6 +19030,10 @@ coolshapes-react@lowcoder-org/coolshapes-react: optional: true "@rollup/rollup-darwin-x64": optional: true + "@rollup/rollup-freebsd-arm64": + optional: true + "@rollup/rollup-freebsd-x64": + optional: true "@rollup/rollup-linux-arm-gnueabihf": optional: true "@rollup/rollup-linux-arm-musleabihf": @@ -19125,10 +19042,14 @@ coolshapes-react@lowcoder-org/coolshapes-react: optional: true "@rollup/rollup-linux-arm64-musl": optional: true + "@rollup/rollup-linux-loongarch64-gnu": + optional: true "@rollup/rollup-linux-powerpc64le-gnu": optional: true "@rollup/rollup-linux-riscv64-gnu": optional: true + "@rollup/rollup-linux-riscv64-musl": + optional: true "@rollup/rollup-linux-s390x-gnu": optional: true "@rollup/rollup-linux-x64-gnu": @@ -19145,7 +19066,7 @@ coolshapes-react@lowcoder-org/coolshapes-react: optional: true bin: rollup: dist/bin/rollup - checksum: 894b3d428b5a7f1db2245f50622ce65a3ad8f754265dd1da7dce133e39b315516dbcbac51e4fe100b44d59b168bac3f36ebaeb836fc9f7057d4972f44497d046 + checksum: 881b6ff4104b1a03c93f0292cb817a7baa420e40f6f74b64fe81b89606b5fee6b9b96a4d437fbeed61736e7bf8611894aa7f0e0942307ef0ff2882eb4d7e23ce languageName: node linkType: hard @@ -19197,40 +19118,51 @@ coolshapes-react@lowcoder-org/coolshapes-react: languageName: node linkType: hard -"safe-array-concat@npm:^1.1.2": - version: 1.1.2 - resolution: "safe-array-concat@npm:1.1.2" - dependencies: - call-bind: ^1.0.7 - get-intrinsic: ^1.2.4 - has-symbols: ^1.0.3 - isarray: ^2.0.5 - checksum: a3b259694754ddfb73ae0663829e396977b99ff21cbe8607f35a469655656da8e271753497e59da8a7575baa94d2e684bea3e10ddd74ba046c0c9b4418ffa0c4 +"safe-array-concat@npm:^1.1.3": + version: 1.1.3 + resolution: "safe-array-concat@npm:1.1.3" + dependencies: + call-bind: ^1.0.8 + call-bound: ^1.0.2 + get-intrinsic: ^1.2.6 + has-symbols: ^1.1.0 + isarray: ^2.0.5 + checksum: 00f6a68140e67e813f3ad5e73e6dedcf3e42a9fa01f04d44b0d3f7b1f4b257af876832a9bfc82ac76f307e8a6cc652e3cf95876048a26cbec451847cf6ae3707 + languageName: node + linkType: hard + +"safe-buffer@npm:5.2.1, safe-buffer@npm:>=5.1.0, safe-buffer@npm:^5.0.1, safe-buffer@npm:^5.1.0, safe-buffer@npm:^5.1.1, safe-buffer@npm:^5.1.2, safe-buffer@npm:^5.2.0, safe-buffer@npm:^5.2.1, safe-buffer@npm:~5.2.0": + version: 5.2.1 + resolution: "safe-buffer@npm:5.2.1" + checksum: b99c4b41fdd67a6aaf280fcd05e9ffb0813654894223afb78a31f14a19ad220bba8aba1cb14eddce1fcfb037155fe6de4e861784eb434f7d11ed58d1e70dd491 languageName: node linkType: hard -"safe-buffer@npm:5.1.2, safe-buffer@npm:~5.1.0, safe-buffer@npm:~5.1.1": +"safe-buffer@npm:~5.1.0, safe-buffer@npm:~5.1.1": version: 5.1.2 resolution: "safe-buffer@npm:5.1.2" checksum: f2f1f7943ca44a594893a852894055cf619c1fbcb611237fc39e461ae751187e7baf4dc391a72125e0ac4fb2d8c5c0b3c71529622e6a58f46b960211e704903c languageName: node linkType: hard -"safe-buffer@npm:5.2.1, safe-buffer@npm:>=5.1.0, safe-buffer@npm:^5.0.1, safe-buffer@npm:^5.1.0, safe-buffer@npm:^5.1.1, safe-buffer@npm:^5.1.2, safe-buffer@npm:^5.2.0, safe-buffer@npm:^5.2.1, safe-buffer@npm:~5.2.0": - version: 5.2.1 - resolution: "safe-buffer@npm:5.2.1" - checksum: b99c4b41fdd67a6aaf280fcd05e9ffb0813654894223afb78a31f14a19ad220bba8aba1cb14eddce1fcfb037155fe6de4e861784eb434f7d11ed58d1e70dd491 +"safe-push-apply@npm:^1.0.0": + version: 1.0.0 + resolution: "safe-push-apply@npm:1.0.0" + dependencies: + es-errors: ^1.3.0 + isarray: ^2.0.5 + checksum: 8c11cbee6dc8ff5cc0f3d95eef7052e43494591384015902e4292aef4ae9e539908288520ed97179cee17d6ffb450fe5f05a46ce7a1749685f7524fd568ab5db languageName: node linkType: hard -"safe-regex-test@npm:^1.0.3": - version: 1.0.3 - resolution: "safe-regex-test@npm:1.0.3" +"safe-regex-test@npm:^1.0.3, safe-regex-test@npm:^1.1.0": + version: 1.1.0 + resolution: "safe-regex-test@npm:1.1.0" dependencies: - call-bind: ^1.0.6 + call-bound: ^1.0.2 es-errors: ^1.3.0 - is-regex: ^1.1.4 - checksum: 6c7d392ff1ae7a3ae85273450ed02d1d131f1d2c76e177d6b03eb88e6df8fa062639070e7d311802c1615f351f18dc58f9454501c58e28d5ffd9b8f502ba6489 + is-regex: ^1.2.1 + checksum: 3c809abeb81977c9ed6c869c83aca6873ea0f3ab0f806b8edbba5582d51713f8a6e9757d24d2b4b088f563801475ea946c8e77e7713e8c65cdd02305b6caedab languageName: node linkType: hard @@ -19242,9 +19174,9 @@ coolshapes-react@lowcoder-org/coolshapes-react: linkType: hard "sax@npm:^1.2.4": - version: 1.3.0 - resolution: "sax@npm:1.3.0" - checksum: 238ab3a9ba8c8f8aaf1c5ea9120386391f6ee0af52f1a6a40bbb6df78241dd05d782f2359d614ac6aae08c4c4125208b456548a6cf68625aa4fe178486e63ecd + version: 1.4.1 + resolution: "sax@npm:1.4.1" + checksum: 3ad64df16b743f0f2eb7c38ced9692a6d924f1cd07bbe45c39576c2cf50de8290d9d04e7b2228f924c7d05fecc4ec5cf651423278e0c7b63d260c387ef3af84a languageName: node linkType: hard @@ -19275,7 +19207,7 @@ coolshapes-react@lowcoder-org/coolshapes-react: languageName: node linkType: hard -"schema-utils@npm:^3.0.0, schema-utils@npm:^3.1.1, schema-utils@npm:^3.2.0": +"schema-utils@npm:^3.0.0": version: 3.3.0 resolution: "schema-utils@npm:3.3.0" dependencies: @@ -19286,15 +19218,15 @@ coolshapes-react@lowcoder-org/coolshapes-react: languageName: node linkType: hard -"schema-utils@npm:^4.0.0, schema-utils@npm:^4.2.0": - version: 4.2.0 - resolution: "schema-utils@npm:4.2.0" +"schema-utils@npm:^4.0.0, schema-utils@npm:^4.2.0, schema-utils@npm:^4.3.0, schema-utils@npm:^4.3.2": + version: 4.3.2 + resolution: "schema-utils@npm:4.3.2" dependencies: "@types/json-schema": ^7.0.9 ajv: ^8.9.0 ajv-formats: ^2.1.1 ajv-keywords: ^5.1.0 - checksum: 26a0463d47683258106e6652e9aeb0823bf0b85843039e068b57da1892f7ae6b6b1094d48e9ed5ba5cbe9f7166469d880858b9d91abe8bd249421eb813850cde + checksum: d798b341ffa1371f8471629e8861af3aa99e8e15b89da2c0db28c5a80a02ee8c6ffc7daefbe28a2b8c1bc8e3f3e02d028775145d7ab3d9d1a413a9651a835466 languageName: node linkType: hard @@ -19371,13 +19303,11 @@ coolshapes-react@lowcoder-org/coolshapes-react: linkType: hard "semver@npm:^7.3.4, semver@npm:^7.3.5, semver@npm:^7.3.7, semver@npm:^7.5.3, semver@npm:^7.5.4": - version: 7.6.0 - resolution: "semver@npm:7.6.0" - dependencies: - lru-cache: ^6.0.0 + version: 7.7.2 + resolution: "semver@npm:7.7.2" bin: semver: bin/semver.js - checksum: 7427f05b70786c696640edc29fdd4bc33b2acf3bbe1740b955029044f80575fc664e1a512e4113c3af21e767154a94b4aa214bf6cd6e42a1f6dba5914e0b208c + checksum: dd94ba8f1cbc903d8eeb4dd8bf19f46b3deb14262b6717d0de3c804b594058ae785ef2e4b46c5c3b58733c99c83339068203002f9e37cfe44f7e2cc5e3d2f621 languageName: node linkType: hard @@ -19390,9 +19320,9 @@ coolshapes-react@lowcoder-org/coolshapes-react: languageName: node linkType: hard -"send@npm:0.18.0": - version: 0.18.0 - resolution: "send@npm:0.18.0" +"send@npm:0.19.0": + version: 0.19.0 + resolution: "send@npm:0.19.0" dependencies: debug: 2.6.9 depd: 2.0.0 @@ -19407,7 +19337,7 @@ coolshapes-react@lowcoder-org/coolshapes-react: on-finished: 2.4.1 range-parser: ~1.2.1 statuses: 2.0.1 - checksum: 74fc07ebb58566b87b078ec63e5a3e41ecd987e4272ba67b7467e86c6ad51bc6b0b0154133b6d8b08a2ddda360464f71382f7ef864700f34844a76c8027817a8 + checksum: 5ae11bd900c1c2575525e2aa622e856804e2f96a09281ec1e39610d089f53aa69e13fd8db84b52f001d0318cf4bb0b3b904ad532fc4c0014eb90d32db0cff55f languageName: node linkType: hard @@ -19420,7 +19350,7 @@ coolshapes-react@lowcoder-org/coolshapes-react: languageName: node linkType: hard -"serialize-javascript@npm:^6.0.1, serialize-javascript@npm:^6.0.2": +"serialize-javascript@npm:^6.0.2": version: 6.0.2 resolution: "serialize-javascript@npm:6.0.2" dependencies: @@ -19444,19 +19374,19 @@ coolshapes-react@lowcoder-org/coolshapes-react: languageName: node linkType: hard -"serve-static@npm:1.15.0": - version: 1.15.0 - resolution: "serve-static@npm:1.15.0" +"serve-static@npm:1.16.2": + version: 1.16.2 + resolution: "serve-static@npm:1.16.2" dependencies: - encodeurl: ~1.0.2 + encodeurl: ~2.0.0 escape-html: ~1.0.3 parseurl: ~1.3.3 - send: 0.18.0 - checksum: af57fc13be40d90a12562e98c0b7855cf6e8bd4c107fe9a45c212bf023058d54a1871b1c89511c3958f70626fff47faeb795f5d83f8cf88514dbaeb2b724464d + send: 0.19.0 + checksum: dffc52feb4cc5c68e66d0c7f3c1824d4e989f71050aefc9bd5f822a42c54c9b814f595fc5f2b717f4c7cc05396145f3e90422af31186a93f76cf15f707019759 languageName: node linkType: hard -"set-function-length@npm:^1.2.1": +"set-function-length@npm:^1.2.2": version: 1.2.2 resolution: "set-function-length@npm:1.2.2" dependencies: @@ -19470,7 +19400,7 @@ coolshapes-react@lowcoder-org/coolshapes-react: languageName: node linkType: hard -"set-function-name@npm:^2.0.1, set-function-name@npm:^2.0.2": +"set-function-name@npm:^2.0.2": version: 2.0.2 resolution: "set-function-name@npm:2.0.2" dependencies: @@ -19489,6 +19419,17 @@ coolshapes-react@lowcoder-org/coolshapes-react: languageName: node linkType: hard +"set-proto@npm:^1.0.0": + version: 1.0.0 + resolution: "set-proto@npm:1.0.0" + dependencies: + dunder-proto: ^1.0.1 + es-errors: ^1.3.0 + es-object-atoms: ^1.0.0 + checksum: ec27cbbe334598547e99024403e96da32aca3e530583e4dba7f5db1c43cbc4affa9adfbd77c7b2c210b9b8b2e7b2e600bad2a6c44fd62e804d8233f96bbb62f4 + languageName: node + linkType: hard + "setimmediate@npm:^1.0.4, setimmediate@npm:^1.0.5": version: 1.0.5 resolution: "setimmediate@npm:1.0.5" @@ -19555,9 +19496,9 @@ coolshapes-react@lowcoder-org/coolshapes-react: linkType: hard "shell-quote@npm:^1.8.1": - version: 1.8.1 - resolution: "shell-quote@npm:1.8.1" - checksum: 5f01201f4ef504d4c6a9d0d283fa17075f6770bfbe4c5850b074974c68062f37929ca61700d95ad2ac8822e14e8c4b990ca0e6e9272e64befd74ce5e19f0736b + version: 1.8.2 + resolution: "shell-quote@npm:1.8.2" + checksum: 1e97b62ced1c4c5135015978ebf273bed1f425a68cf84163e83fbb0f34b3ff9471e656720dab2b7cbb4ae0f58998e686d17d166c28dfb3662acd009e8bd7faed languageName: node linkType: hard @@ -19574,15 +19515,51 @@ coolshapes-react@lowcoder-org/coolshapes-react: languageName: node linkType: hard -"side-channel@npm:^1.0.4, side-channel@npm:^1.0.6": - version: 1.0.6 - resolution: "side-channel@npm:1.0.6" +"side-channel-list@npm:^1.0.0": + version: 1.0.0 + resolution: "side-channel-list@npm:1.0.0" dependencies: - call-bind: ^1.0.7 es-errors: ^1.3.0 - get-intrinsic: ^1.2.4 - object-inspect: ^1.13.1 - checksum: bfc1afc1827d712271453e91b7cd3878ac0efd767495fd4e594c4c2afaa7963b7b510e249572bfd54b0527e66e4a12b61b80c061389e129755f34c493aad9b97 + object-inspect: ^1.13.3 + checksum: 603b928997abd21c5a5f02ae6b9cc36b72e3176ad6827fab0417ead74580cc4fb4d5c7d0a8a2ff4ead34d0f9e35701ed7a41853dac8a6d1a664fcce1a044f86f + languageName: node + linkType: hard + +"side-channel-map@npm:^1.0.1": + version: 1.0.1 + resolution: "side-channel-map@npm:1.0.1" + dependencies: + call-bound: ^1.0.2 + es-errors: ^1.3.0 + get-intrinsic: ^1.2.5 + object-inspect: ^1.13.3 + checksum: 42501371cdf71f4ccbbc9c9e2eb00aaaab80a4c1c429d5e8da713fd4d39ef3b8d4a4b37ed4f275798a65260a551a7131fd87fe67e922dba4ac18586d6aab8b06 + languageName: node + linkType: hard + +"side-channel-weakmap@npm:^1.0.2": + version: 1.0.2 + resolution: "side-channel-weakmap@npm:1.0.2" + dependencies: + call-bound: ^1.0.2 + es-errors: ^1.3.0 + get-intrinsic: ^1.2.5 + object-inspect: ^1.13.3 + side-channel-map: ^1.0.1 + checksum: a815c89bc78c5723c714ea1a77c938377ea710af20d4fb886d362b0d1f8ac73a17816a5f6640f354017d7e292a43da9c5e876c22145bac00b76cfb3468001736 + languageName: node + linkType: hard + +"side-channel@npm:^1.0.4, side-channel@npm:^1.0.6, side-channel@npm:^1.1.0": + version: 1.1.0 + resolution: "side-channel@npm:1.1.0" + dependencies: + es-errors: ^1.3.0 + object-inspect: ^1.13.3 + side-channel-list: ^1.0.0 + side-channel-map: ^1.0.1 + side-channel-weakmap: ^1.0.2 + checksum: bf73d6d6682034603eb8e99c63b50155017ed78a522d27c2acec0388a792c3ede3238b878b953a08157093b85d05797217d270b7666ba1f111345fbe933380ff languageName: node linkType: hard @@ -19607,36 +19584,33 @@ coolshapes-react@lowcoder-org/coolshapes-react: languageName: node linkType: hard -"simplebar-core@npm:^1.2.4": - version: 1.2.4 - resolution: "simplebar-core@npm:1.2.4" +"simplebar-core@npm:^1.3.1": + version: 1.3.1 + resolution: "simplebar-core@npm:1.3.1" dependencies: - "@types/lodash-es": ^4.17.6 - can-use-dom: ^0.1.0 lodash: ^4.17.21 lodash-es: ^4.17.21 - checksum: 9bef0a29cc2ddba488776bc05eac6cbf3daa6e72fbcb54ff288cbbb2e64cadf22cc378ac3627f86c32c29ddf9f63d7accf8772e4013318aaba353625869ae866 + checksum: 0b31edc1e44b554b61dca48bd072cad6ffa28ba9d893098cfe0292369f583eff6fc0c016d612609aeddff093eb04b7c29250ec57cf3067a1e4fdc3cfe18c6ceb languageName: node linkType: hard "simplebar-react@npm:^3.2.4": - version: 3.2.4 - resolution: "simplebar-react@npm:3.2.4" + version: 3.3.1 + resolution: "simplebar-react@npm:3.3.1" dependencies: - simplebar-core: ^1.2.4 + simplebar-core: ^1.3.1 peerDependencies: react: ">=16.8.0" - checksum: 0355a7ccb99114de99c84c7e548058f299c716d3fb2ac769bdb83138da19e75936f84698b9f4134d17be84322845a4290093f37b2f3c3ee2299e3bd8863c6196 + checksum: bbde967dba2591ef2734beb43c5781714bb08bab331ef808b7204360f915d1f18fcd49f23ff28d8509888e7d435d2d2dbce6631f0d09becd51a45c9296bee493 languageName: node linkType: hard "simplebar@npm:*, simplebar@npm:^6.2.5": - version: 6.2.5 - resolution: "simplebar@npm:6.2.5" + version: 6.3.1 + resolution: "simplebar@npm:6.3.1" dependencies: - can-use-dom: ^0.1.0 - simplebar-core: ^1.2.4 - checksum: 351b3757af18d4d49928fbd44793307ca7384e363c73a740a0e542307f6af75f4803ddbb9e0e595126a487a4ba6b5d98cd397880d7217c6b1b442eb5a6c509c5 + simplebar-core: ^1.3.1 + checksum: 911349310655927fb707ec1ce5cc9237a256297cfd46be80f794daff675f64d7d54ac4a26018a639b12ec42ee40e95870adb6aa6f48549a4695507dbcb92166a languageName: node linkType: hard @@ -19658,6 +19632,13 @@ coolshapes-react@lowcoder-org/coolshapes-react: languageName: node linkType: hard +"size-sensor@npm:^1.0.1": + version: 1.0.2 + resolution: "size-sensor@npm:1.0.2" + checksum: de7050178ae9afee3388eb9191af0902b30ef83c26e8c9d9c203e1b560e270b947d978e4f56d211802112d09ef296931fa612f69155a483900f3b4717a0750d7 + languageName: node + linkType: hard + "slash@npm:^3.0.0": version: 3.0.0 resolution: "slash@npm:3.0.0" @@ -19711,39 +19692,30 @@ coolshapes-react@lowcoder-org/coolshapes-react: linkType: hard "socks-proxy-agent@npm:^8.0.3": - version: 8.0.3 - resolution: "socks-proxy-agent@npm:8.0.3" + version: 8.0.5 + resolution: "socks-proxy-agent@npm:8.0.5" dependencies: - agent-base: ^7.1.1 + agent-base: ^7.1.2 debug: ^4.3.4 - socks: ^2.7.1 - checksum: 8fab38821c327c190c28f1658087bc520eb065d55bc07b4a0fdf8d1e0e7ad5d115abbb22a95f94f944723ea969dd771ad6416b1e3cde9060c4c71f705c8b85c5 + socks: ^2.8.3 + checksum: b4fbcdb7ad2d6eec445926e255a1fb95c975db0020543fbac8dfa6c47aecc6b3b619b7fb9c60a3f82c9b2969912a5e7e174a056ae4d98cb5322f3524d6036e1d languageName: node linkType: hard -"socks@npm:^2.7.1": - version: 2.8.3 - resolution: "socks@npm:2.8.3" +"socks@npm:^2.8.3": + version: 2.8.4 + resolution: "socks@npm:2.8.4" dependencies: ip-address: ^9.0.5 smart-buffer: ^4.2.0 - checksum: 7a6b7f6eedf7482b9e4597d9a20e09505824208006ea8f2c49b71657427f3c137ca2ae662089baa73e1971c62322d535d9d0cf1c9235cf6f55e315c18203eadd - languageName: node - linkType: hard - -"sonic-forest@npm:^1.0.0": - version: 1.0.0 - resolution: "sonic-forest@npm:1.0.0" - peerDependencies: - tslib: 2 - checksum: 4d027f7fdf7c09ee2065cd3ace74f57696545e97f9b518bc0f721728622c3949d45468b3c0a8f736af657fa69bee60a82534eb1079e97832fd50205783fa36b4 + checksum: cd1edc924475d5dfde534adf66038df7e62c7343e6b8c0113e52dc9bb6a0a10e25b2f136197f379d695f18e8f0f2b7f6e42977bf720ddbee912a851201c396ad languageName: node linkType: hard -"source-map-js@npm:^1.0.1, source-map-js@npm:^1.0.2, source-map-js@npm:^1.2.0": - version: 1.2.0 - resolution: "source-map-js@npm:1.2.0" - checksum: 791a43306d9223792e84293b00458bf102a8946e7188f3db0e4e22d8d530b5f80a4ce468eb5ec0bf585443ad55ebbd630bf379c98db0b1f317fd902500217f97 +"source-map-js@npm:^1.0.1, source-map-js@npm:^1.2.1": + version: 1.2.1 + resolution: "source-map-js@npm:1.2.1" + checksum: 4eb0cd997cdf228bc253bcaff9340afeb706176e64868ecd20efbe6efea931465f43955612346d6b7318789e5265bdc419bc7669c1cebe3db0eb255f57efa76b languageName: node linkType: hard @@ -19884,12 +19856,12 @@ coolshapes-react@lowcoder-org/coolshapes-react: languageName: node linkType: hard -"ssri@npm:^10.0.0": - version: 10.0.5 - resolution: "ssri@npm:10.0.5" +"ssri@npm:^12.0.0": + version: 12.0.0 + resolution: "ssri@npm:12.0.0" dependencies: minipass: ^7.0.3 - checksum: 0a31b65f21872dea1ed3f7c200d7bc1c1b91c15e419deca14f282508ba917cbb342c08a6814c7f68ca4ca4116dd1a85da2bbf39227480e50125a1ceffeecb750 + checksum: ef4b6b0ae47b4a69896f5f1c4375f953b9435388c053c36d27998bc3d73e046969ccde61ab659e679142971a0b08e50478a1228f62edb994105b280f17900c98 languageName: node linkType: hard @@ -19977,11 +19949,12 @@ coolshapes-react@lowcoder-org/coolshapes-react: linkType: hard "stop-iteration-iterator@npm:^1.0.0": - version: 1.0.0 - resolution: "stop-iteration-iterator@npm:1.0.0" + version: 1.1.0 + resolution: "stop-iteration-iterator@npm:1.1.0" dependencies: - internal-slot: ^1.0.4 - checksum: d04173690b2efa40e24ab70e5e51a3ff31d56d699550cfad084104ab3381390daccb36652b25755e420245f3b0737de66c1879eaa2a8d4fc0a78f9bf892fcb42 + es-errors: ^1.3.0 + internal-slot: ^1.1.0 + checksum: be944489d8829fb3bdec1a1cc4a2142c6b6eb317305eeace1ece978d286d6997778afa1ae8cb3bd70e2b274b9aa8c69f93febb1e15b94b1359b11058f9d3c3a1 languageName: node linkType: hard @@ -20067,46 +20040,72 @@ coolshapes-react@lowcoder-org/coolshapes-react: languageName: node linkType: hard -"string.prototype.matchall@npm:^4.0.10": - version: 4.0.11 - resolution: "string.prototype.matchall@npm:4.0.11" +"string.prototype.includes@npm:^2.0.1": + version: 2.0.1 + resolution: "string.prototype.includes@npm:2.0.1" dependencies: call-bind: ^1.0.7 define-properties: ^1.2.1 - es-abstract: ^1.23.2 + es-abstract: ^1.23.3 + checksum: ed4b7058b092f30d41c4df1e3e805eeea92479d2c7a886aa30f42ae32fde8924a10cc99cccc99c29b8e18c48216608a0fe6bf887f8b4aadf9559096a758f313a + languageName: node + linkType: hard + +"string.prototype.matchall@npm:^4.0.12": + version: 4.0.12 + resolution: "string.prototype.matchall@npm:4.0.12" + dependencies: + call-bind: ^1.0.8 + call-bound: ^1.0.3 + define-properties: ^1.2.1 + es-abstract: ^1.23.6 es-errors: ^1.3.0 es-object-atoms: ^1.0.0 - get-intrinsic: ^1.2.4 - gopd: ^1.0.1 - has-symbols: ^1.0.3 - internal-slot: ^1.0.7 - regexp.prototype.flags: ^1.5.2 + get-intrinsic: ^1.2.6 + gopd: ^1.2.0 + has-symbols: ^1.1.0 + internal-slot: ^1.1.0 + regexp.prototype.flags: ^1.5.3 set-function-name: ^2.0.2 - side-channel: ^1.0.6 - checksum: 6ac6566ed065c0c8489c91156078ca077db8ff64d683fda97ae652d00c52dfa5f39aaab0a710d8243031a857fd2c7c511e38b45524796764d25472d10d7075ae + side-channel: ^1.1.0 + checksum: 98a09d6af91bfc6ee25556f3d7cd6646d02f5f08bda55d45528ed273d266d55a71af7291fe3fc76854deffb9168cc1a917d0b07a7d5a178c7e9537c99e6d2b57 languageName: node linkType: hard -"string.prototype.trim@npm:^1.2.9": - version: 1.2.9 - resolution: "string.prototype.trim@npm:1.2.9" +"string.prototype.repeat@npm:^1.0.0": + version: 1.0.0 + resolution: "string.prototype.repeat@npm:1.0.0" dependencies: - call-bind: ^1.0.7 + define-properties: ^1.1.3 + es-abstract: ^1.17.5 + checksum: 95dfc514ed7f328d80a066dabbfbbb1615c3e51490351085409db2eb7cbfed7ea29fdadaf277647fbf9f4a1e10e6dd9e95e78c0fd2c4e6bb6723ea6e59401004 + languageName: node + linkType: hard + +"string.prototype.trim@npm:^1.2.10": + version: 1.2.10 + resolution: "string.prototype.trim@npm:1.2.10" + dependencies: + call-bind: ^1.0.8 + call-bound: ^1.0.2 + define-data-property: ^1.1.4 define-properties: ^1.2.1 - es-abstract: ^1.23.0 + es-abstract: ^1.23.5 es-object-atoms: ^1.0.0 - checksum: ea2df6ec1e914c9d4e2dc856fa08228e8b1be59b59e50b17578c94a66a176888f417264bb763d4aac638ad3b3dad56e7a03d9317086a178078d131aa293ba193 + has-property-descriptors: ^1.0.2 + checksum: 87659cd8561237b6c69f5376328fda934693aedde17bb7a2c57008e9d9ff992d0c253a391c7d8d50114e0e49ff7daf86a362f7961cf92f7564cd01342ca2e385 languageName: node linkType: hard -"string.prototype.trimend@npm:^1.0.8": - version: 1.0.8 - resolution: "string.prototype.trimend@npm:1.0.8" +"string.prototype.trimend@npm:^1.0.8, string.prototype.trimend@npm:^1.0.9": + version: 1.0.9 + resolution: "string.prototype.trimend@npm:1.0.9" dependencies: - call-bind: ^1.0.7 + call-bind: ^1.0.8 + call-bound: ^1.0.2 define-properties: ^1.2.1 es-object-atoms: ^1.0.0 - checksum: cc3bd2de08d8968a28787deba9a3cb3f17ca5f9f770c91e7e8fa3e7d47f079bad70fadce16f05dda9f261788be2c6e84a942f618c3bed31e42abc5c1084f8dfd + checksum: cb86f639f41d791a43627784be2175daa9ca3259c7cb83e7a207a729909b74f2ea0ec5d85de5761e6835e5f443e9420c6ff3f63a845378e4a61dd793177bc287 languageName: node linkType: hard @@ -20234,7 +20233,16 @@ coolshapes-react@lowcoder-org/coolshapes-react: languageName: node linkType: hard -"style-to-object@npm:^1.0.0": +"style-to-js@npm:^1.0.0": + version: 1.1.16 + resolution: "style-to-js@npm:1.1.16" + dependencies: + style-to-object: 1.0.8 + checksum: 1f424ca17d923090821197f27e077e88bcf92b15274157f20330a18405f52a66395232546dc694c776d1a8f1868dabe15738532e18ce59a0683b046610bb4964 + languageName: node + linkType: hard + +"style-to-object@npm:1.0.8": version: 1.0.8 resolution: "style-to-object@npm:1.0.8" dependencies: @@ -20244,40 +20252,33 @@ coolshapes-react@lowcoder-org/coolshapes-react: linkType: hard "styled-components@npm:^6.1.8": - version: 6.1.8 - resolution: "styled-components@npm:6.1.8" + version: 6.1.18 + resolution: "styled-components@npm:6.1.18" dependencies: - "@emotion/is-prop-valid": 1.2.1 - "@emotion/unitless": 0.8.0 - "@types/stylis": 4.2.0 + "@emotion/is-prop-valid": 1.2.2 + "@emotion/unitless": 0.8.1 + "@types/stylis": 4.2.5 css-to-react-native: 3.2.0 - csstype: 3.1.2 - postcss: 8.4.31 + csstype: 3.1.3 + postcss: 8.4.49 shallowequal: 1.1.0 - stylis: 4.3.1 - tslib: 2.5.0 + stylis: 4.3.2 + tslib: 2.6.2 peerDependencies: react: ">= 16.8.0" react-dom: ">= 16.8.0" - checksum: 367858097ca57911cc310ddf95d16fed162fbb1d2f187366b33ce5e6e22c324f9bcc7206686624a3edd15e3e9605875c8c041ac5ffb430bbee98f1ad0be71604 - languageName: node - linkType: hard - -"stylis@npm:4.3.1": - version: 4.3.1 - resolution: "stylis@npm:4.3.1" - checksum: d365f1b008677b2147e8391e9cf20094a4202a5f9789562e7d9d0a3bd6f0b3067d39e8fd17cce5323903a56f6c45388e3d839e9c0bb5a738c91726992b14966d + checksum: f6dfc215634c7974210fc235c7e543bbc45b316a23ce3c3ee4e5aa6d27952167d6a2bf8ace222122920707daa0241a0bf5e4d27a857d129c59f993c80333cc1f languageName: node linkType: hard -"stylis@npm:^4.1.1, stylis@npm:^4.1.3, stylis@npm:^4.3.0": +"stylis@npm:4.3.2": version: 4.3.2 resolution: "stylis@npm:4.3.2" checksum: 0faa8a97ff38369f47354376cd9f0def9bf12846da54c28c5987f64aaf67dcb6f00dce88a8632013bfb823b2c4d1d62a44f4ac20363a3505a7ab4e21b70179fc languageName: node linkType: hard -"stylis@npm:^4.3.4": +"stylis@npm:^4.1.1, stylis@npm:^4.1.3, stylis@npm:^4.3.0, stylis@npm:^4.3.4": version: 4.3.6 resolution: "stylis@npm:4.3.6" checksum: 4f56a087caace85b34c3a163cf9d662f58f42dc865b2447af5c3ee3588eebaffe90875fe294578cce26f172ff527cad2b01433f6e1ae156400ec38c37c79fd61 @@ -20302,12 +20303,12 @@ coolshapes-react@lowcoder-org/coolshapes-react: languageName: node linkType: hard -"supports-color@npm:^5.3.0": - version: 5.5.0 - resolution: "supports-color@npm:5.5.0" +"supercluster@npm:^8.0.1": + version: 8.0.1 + resolution: "supercluster@npm:8.0.1" dependencies: - has-flag: ^3.0.0 - checksum: 95f6f4ba5afdf92f495b5a912d4abee8dcba766ae719b975c56c084f5004845f6f5a5f7769f52d53f40e21952a6d87411bafe34af4a01e65f9926002e38e1dac + kdbush: ^4.0.2 + checksum: 39d141f768a511efa53260252f9dab9a2ce0228b334e55482c8d3019e151932f05e1a9a0252d681737651b13c741c665542a6ddb40ec27de96159ea7ad41f7f4 languageName: node linkType: hard @@ -20361,8 +20362,8 @@ coolshapes-react@lowcoder-org/coolshapes-react: linkType: hard "svgo@npm:^3.0.0, svgo@npm:^3.0.2": - version: 3.2.0 - resolution: "svgo@npm:3.2.0" + version: 3.3.2 + resolution: "svgo@npm:3.3.2" dependencies: "@trysound/sax": 0.2.0 commander: ^7.2.0 @@ -20373,7 +20374,7 @@ coolshapes-react@lowcoder-org/coolshapes-react: picocolors: ^1.0.0 bin: svgo: ./bin/svgo - checksum: 42168748a5586d85d447bec2867bc19814a4897f973ff023e6aad4ff19ba7408be37cf3736e982bb78e3f1e52df8785da5dca77a8ebc64c0ebd6fcf9915d2895 + checksum: a3f8aad597dec13ab24e679c4c218147048dc1414fe04e99447c5f42a6e077b33d712d306df84674b5253b98c9b84dfbfb41fdd08552443b04946e43d03e054e languageName: node linkType: hard @@ -20391,24 +20392,24 @@ coolshapes-react@lowcoder-org/coolshapes-react: languageName: node linkType: hard -"tapable@npm:^2.1.1, tapable@npm:^2.2.0": - version: 2.2.1 - resolution: "tapable@npm:2.2.1" - checksum: 3b7a1b4d86fa940aad46d9e73d1e8739335efd4c48322cb37d073eb6f80f5281889bf0320c6d8ffcfa1a0dd5bfdbd0f9d037e252ef972aca595330538aac4d51 +"tapable@npm:^2.1.1, tapable@npm:^2.2.0, tapable@npm:^2.2.1": + version: 2.2.2 + resolution: "tapable@npm:2.2.2" + checksum: 781b3666f4454eb506fd2bcd985c1994f2b93884ea88a7a2a5be956cad8337b31128a7591e771f7aab8e247993b2a0887d360a2d4f54382902ed89994c102740 languageName: node linkType: hard -"tar@npm:^6.1.11, tar@npm:^6.1.2": - version: 6.2.1 - resolution: "tar@npm:6.2.1" +"tar@npm:^7.4.3": + version: 7.4.3 + resolution: "tar@npm:7.4.3" dependencies: - chownr: ^2.0.0 - fs-minipass: ^2.0.0 - minipass: ^5.0.0 - minizlib: ^2.1.1 - mkdirp: ^1.0.3 - yallist: ^4.0.0 - checksum: f1322768c9741a25356c11373bce918483f40fa9a25c69c59410c8a1247632487edef5fe76c5f12ac51a6356d2f1829e96d2bc34098668a2fc34d76050ac2b6c + "@isaacs/fs-minipass": ^4.0.0 + chownr: ^3.0.0 + minipass: ^7.1.2 + minizlib: ^3.0.1 + mkdirp: ^3.0.1 + yallist: ^5.0.0 + checksum: 8485350c0688331c94493031f417df069b778aadb25598abdad51862e007c39d1dd5310702c7be4a6784731a174799d8885d2fde0484269aea205b724d7b2ffa languageName: node linkType: hard @@ -20429,15 +20430,15 @@ coolshapes-react@lowcoder-org/coolshapes-react: languageName: node linkType: hard -"terser-webpack-plugin@npm:^5.3.10": - version: 5.3.10 - resolution: "terser-webpack-plugin@npm:5.3.10" +"terser-webpack-plugin@npm:^5.3.11": + version: 5.3.14 + resolution: "terser-webpack-plugin@npm:5.3.14" dependencies: - "@jridgewell/trace-mapping": ^0.3.20 + "@jridgewell/trace-mapping": ^0.3.25 jest-worker: ^27.4.5 - schema-utils: ^3.1.1 - serialize-javascript: ^6.0.1 - terser: ^5.26.0 + schema-utils: ^4.3.0 + serialize-javascript: ^6.0.2 + terser: ^5.31.1 peerDependencies: webpack: ^5.1.0 peerDependenciesMeta: @@ -20447,21 +20448,21 @@ coolshapes-react@lowcoder-org/coolshapes-react: optional: true uglify-js: optional: true - checksum: bd6e7596cf815f3353e2a53e79cbdec959a1b0276f5e5d4e63e9d7c3c5bb5306df567729da287d1c7b39d79093e56863c569c42c6c24cc34c76aa313bd2cbcea + checksum: 13a1e67f1675a473b18d25cb0ce65c3f0a19b5e9a93213a99ea61dc4ca996ea93aa17a221965b526f5788d242836a8249ad00538fbb322e25cb69076eb55feab languageName: node linkType: hard -"terser@npm:^5.0.0, terser@npm:^5.10.0, terser@npm:^5.26.0": - version: 5.30.4 - resolution: "terser@npm:5.30.4" +"terser@npm:^5.0.0, terser@npm:^5.10.0, terser@npm:^5.31.1": + version: 5.39.2 + resolution: "terser@npm:5.39.2" dependencies: "@jridgewell/source-map": ^0.3.3 - acorn: ^8.8.2 + acorn: ^8.14.0 commander: ^2.20.0 source-map-support: ~0.5.20 bin: terser: bin/terser - checksum: 4e33a98d451a1175c83f668cb1dd34e1b4573890ba3081e0389e71e6552ca501ebfda5b15cddeab33585f7b4c13f2e7ad9ba9613655b9e36bc919fde48ba2dcd + checksum: 986a47896503c5bc6475c751d9445d4326de2e6f8b0be2c943b7726426ad0fe2385aacb9dce1dbc3aee13171595a0234411479bc855e6c730a51f23175132c84 languageName: node linkType: hard @@ -20570,6 +20571,16 @@ coolshapes-react@lowcoder-org/coolshapes-react: languageName: node linkType: hard +"tinyglobby@npm:^0.2.12": + version: 0.2.14 + resolution: "tinyglobby@npm:0.2.14" + dependencies: + fdir: ^6.4.4 + picomatch: ^4.0.2 + checksum: 261e986e3f2062dec3a582303bad2ce31b4634b9348648b46828c000d464b012cf474e38f503312367d4117c3f2f18611992738fca684040758bba44c24de522 + languageName: node + linkType: hard + "tmpl@npm:1.0.5": version: 1.0.5 resolution: "tmpl@npm:1.0.5" @@ -20577,13 +20588,6 @@ coolshapes-react@lowcoder-org/coolshapes-react: languageName: node linkType: hard -"to-fast-properties@npm:^2.0.0": - version: 2.0.0 - resolution: "to-fast-properties@npm:2.0.0" - checksum: be2de62fe58ead94e3e592680052683b1ec986c72d589e7b21e5697f8744cdbf48c266fa72f6c15932894c10187b5f54573a3bcf7da0bfd964d5caf23d436168 - languageName: node - linkType: hard - "to-regex-range@npm:^5.0.1": version: 5.0.1 resolution: "to-regex-range@npm:5.0.1" @@ -20636,14 +20640,14 @@ coolshapes-react@lowcoder-org/coolshapes-react: linkType: hard "tough-cookie@npm:^4.1.2": - version: 4.1.3 - resolution: "tough-cookie@npm:4.1.3" + version: 4.1.4 + resolution: "tough-cookie@npm:4.1.4" dependencies: psl: ^1.1.33 punycode: ^2.1.1 universalify: ^0.2.0 url-parse: ^1.5.3 - checksum: c9226afff36492a52118432611af083d1d8493a53ff41ec4ea48e5b583aec744b989e4280bcf476c910ec1525a89a4a0f1cae81c08b18fb2ec3a9b3a72b91dcc + checksum: 5815059f014c31179a303c673f753f7899a6fce94ac93712c88ea5f3c26e0c042b5f0c7a599a00f8e0feeca4615dba75c3dffc54f3c1a489978aa8205e09307c languageName: node linkType: hard @@ -20694,6 +20698,15 @@ coolshapes-react@lowcoder-org/coolshapes-react: languageName: node linkType: hard +"tree-dump@npm:^1.0.1": + version: 1.0.3 + resolution: "tree-dump@npm:1.0.3" + peerDependencies: + tslib: 2 + checksum: 0b545728ff6589c4026b618aa24b2af9b52ae59d5da71a4ea5a727e1b5585a9a1c7620caba6616c2540a6089fdc5d1e6e060efa4e288c6e78c899b462dbb2c90 + languageName: node + linkType: hard + "trim-canvas@npm:^0.1.0": version: 0.1.2 resolution: "trim-canvas@npm:0.1.2" @@ -20744,8 +20757,8 @@ coolshapes-react@lowcoder-org/coolshapes-react: linkType: hard "ts-loader@npm:^9.5.1": - version: 9.5.1 - resolution: "ts-loader@npm:9.5.1" + version: 9.5.2 + resolution: "ts-loader@npm:9.5.2" dependencies: chalk: ^4.1.0 enhanced-resolve: ^5.0.0 @@ -20755,7 +20768,7 @@ coolshapes-react@lowcoder-org/coolshapes-react: peerDependencies: typescript: "*" webpack: ^5.0.0 - checksum: 7cf396e656d905388ea2a9b5e82f16d3c955fda8d3df2fbf219f4bee16ff50a3c995c44ae3e584634e9443f056cec70bb3151add3917ffb4588ecd7394bac0ec + checksum: f4c117042e25434e733c4b70873adaa9a79b14c2b3d8e5db53bbfd42060289f8a3eb97cfff64c83123b735d954f0eaa0f60f093afb0682cd2d1d7fa17f81e223 languageName: node linkType: hard @@ -20798,13 +20811,14 @@ coolshapes-react@lowcoder-org/coolshapes-react: linkType: hard "tsconfig-paths-webpack-plugin@npm:^4.1.0": - version: 4.1.0 - resolution: "tsconfig-paths-webpack-plugin@npm:4.1.0" + version: 4.2.0 + resolution: "tsconfig-paths-webpack-plugin@npm:4.2.0" dependencies: chalk: ^4.1.0 enhanced-resolve: ^5.7.0 + tapable: ^2.2.1 tsconfig-paths: ^4.1.2 - checksum: f6e9a8a407e1a405b0f2531184296d9f033cb4fe5837282b757ab4a2f4cd82a3117e62c4b86d56c7d47749c7f1345aa438ec6417dbf64a0ec74a292fe9eae44d + checksum: b35e4da5fb4ee438267125f369220102a061824c1dd568cd84e9db2368b72581ec7b88db1a5fda180bba65ff7b7597b18561a24f1db9c9a85fdc803bea122aa6 languageName: node linkType: hard @@ -20838,10 +20852,10 @@ coolshapes-react@lowcoder-org/coolshapes-react: languageName: node linkType: hard -"tslib@npm:2.5.0": - version: 2.5.0 - resolution: "tslib@npm:2.5.0" - checksum: ae3ed5f9ce29932d049908ebfdf21b3a003a85653a9a140d614da6b767a93ef94f460e52c3d787f0e4f383546981713f165037dc2274df212ea9f8a4541004e1 +"tslib@npm:2.6.2": + version: 2.6.2 + resolution: "tslib@npm:2.6.2" + checksum: 329ea56123005922f39642318e3d1f0f8265d1e7fcb92c633e0809521da75eeaca28d2cf96d7248229deb40e5c19adf408259f4b9640afd20d13aecc1430f3ad languageName: node linkType: hard @@ -20852,10 +20866,10 @@ coolshapes-react@lowcoder-org/coolshapes-react: languageName: node linkType: hard -"tslib@npm:^2.0.0, tslib@npm:^2.0.3, tslib@npm:^2.1.0, tslib@npm:^2.3.0, tslib@npm:^2.4.0, tslib@npm:^2.4.1, tslib@npm:^2.5.0": - version: 2.6.2 - resolution: "tslib@npm:2.6.2" - checksum: 329ea56123005922f39642318e3d1f0f8265d1e7fcb92c633e0809521da75eeaca28d2cf96d7248229deb40e5c19adf408259f4b9640afd20d13aecc1430f3ad +"tslib@npm:^2.0.0, tslib@npm:^2.0.3, tslib@npm:^2.1.0, tslib@npm:^2.3.0, tslib@npm:^2.4.1, tslib@npm:^2.5.0, tslib@npm:^2.8.0": + version: 2.8.1 + resolution: "tslib@npm:2.8.1" + checksum: e4aba30e632b8c8902b47587fd13345e2827fa639e7c3121074d5ee0880723282411a8838f830b55100cbe4517672f84a2472667d355b81e8af165a55dc6203a languageName: node linkType: hard @@ -20965,9 +20979,9 @@ coolshapes-react@lowcoder-org/coolshapes-react: linkType: hard "type-fest@npm:^4.1.0": - version: 4.40.0 - resolution: "type-fest@npm:4.40.0" - checksum: af2863a707dea6bf7ed85262c90b2a54afc856149a591d1ce69df48093bfdc38c3dc66385511b3568f6ad3beb930aa852e5ba1919d445d58b803a4626442fabc + version: 4.41.0 + resolution: "type-fest@npm:4.41.0" + checksum: 7055c0e3eb188425d07403f1d5dc175ca4c4f093556f26871fe22041bc93d137d54bef5851afa320638ca1379106c594f5aa153caa654ac1a7f22c71588a4e80 languageName: node linkType: hard @@ -20981,55 +20995,56 @@ coolshapes-react@lowcoder-org/coolshapes-react: languageName: node linkType: hard -"typed-array-buffer@npm:^1.0.2": - version: 1.0.2 - resolution: "typed-array-buffer@npm:1.0.2" +"typed-array-buffer@npm:^1.0.3": + version: 1.0.3 + resolution: "typed-array-buffer@npm:1.0.3" dependencies: - call-bind: ^1.0.7 + call-bound: ^1.0.3 es-errors: ^1.3.0 - is-typed-array: ^1.1.13 - checksum: 02ffc185d29c6df07968272b15d5319a1610817916ec8d4cd670ded5d1efe72901541ff2202fcc622730d8a549c76e198a2f74e312eabbfb712ed907d45cbb0b + is-typed-array: ^1.1.14 + checksum: 3fb91f0735fb413b2bbaaca9fabe7b8fc14a3fa5a5a7546bab8a57e755be0e3788d893195ad9c2b842620592de0e68d4c077d4c2c41f04ec25b8b5bb82fa9a80 languageName: node linkType: hard -"typed-array-byte-length@npm:^1.0.1": - version: 1.0.1 - resolution: "typed-array-byte-length@npm:1.0.1" +"typed-array-byte-length@npm:^1.0.3": + version: 1.0.3 + resolution: "typed-array-byte-length@npm:1.0.3" dependencies: - call-bind: ^1.0.7 + call-bind: ^1.0.8 for-each: ^0.3.3 - gopd: ^1.0.1 - has-proto: ^1.0.3 - is-typed-array: ^1.1.13 - checksum: f65e5ecd1cf76b1a2d0d6f631f3ea3cdb5e08da106c6703ffe687d583e49954d570cc80434816d3746e18be889ffe53c58bf3e538081ea4077c26a41055b216d + gopd: ^1.2.0 + has-proto: ^1.2.0 + is-typed-array: ^1.1.14 + checksum: cda9352178ebeab073ad6499b03e938ebc30c4efaea63a26839d89c4b1da9d2640b0d937fc2bd1f049eb0a38def6fbe8a061b601292ae62fe079a410ce56e3a6 languageName: node linkType: hard -"typed-array-byte-offset@npm:^1.0.2": - version: 1.0.2 - resolution: "typed-array-byte-offset@npm:1.0.2" +"typed-array-byte-offset@npm:^1.0.4": + version: 1.0.4 + resolution: "typed-array-byte-offset@npm:1.0.4" dependencies: available-typed-arrays: ^1.0.7 - call-bind: ^1.0.7 + call-bind: ^1.0.8 for-each: ^0.3.3 - gopd: ^1.0.1 - has-proto: ^1.0.3 - is-typed-array: ^1.1.13 - checksum: c8645c8794a621a0adcc142e0e2c57b1823bbfa4d590ad2c76b266aa3823895cf7afb9a893bf6685e18454ab1b0241e1a8d885a2d1340948efa4b56add4b5f67 + gopd: ^1.2.0 + has-proto: ^1.2.0 + is-typed-array: ^1.1.15 + reflect.getprototypeof: ^1.0.9 + checksum: 670b7e6bb1d3c2cf6160f27f9f529e60c3f6f9611c67e47ca70ca5cfa24ad95415694c49d1dbfeda016d3372cab7dfc9e38c7b3e1bb8d692cae13a63d3c144d7 languageName: node linkType: hard -"typed-array-length@npm:^1.0.6": - version: 1.0.6 - resolution: "typed-array-length@npm:1.0.6" +"typed-array-length@npm:^1.0.7": + version: 1.0.7 + resolution: "typed-array-length@npm:1.0.7" dependencies: call-bind: ^1.0.7 for-each: ^0.3.3 gopd: ^1.0.1 - has-proto: ^1.0.3 is-typed-array: ^1.1.13 possible-typed-array-names: ^1.0.0 - checksum: f0315e5b8f0168c29d390ff410ad13e4d511c78e6006df4a104576844812ee447fcc32daab1f3a76c9ef4f64eff808e134528b5b2439de335586b392e9750e5c + reflect.getprototypeof: ^1.0.6 + checksum: deb1a4ffdb27cd930b02c7030cb3e8e0993084c643208e52696e18ea6dd3953dfc37b939df06ff78170423d353dc8b10d5bae5796f3711c1b3abe52872b3774c languageName: node linkType: hard @@ -21140,42 +21155,46 @@ coolshapes-react@lowcoder-org/coolshapes-react: linkType: hard "ua-parser-js@npm:^0.7.34": - version: 0.7.37 - resolution: "ua-parser-js@npm:0.7.37" - checksum: 9e91a66171aa16c74680cfac84af6ed7ecdeb508ff7c90a55222f56c63172da2d98d2478763e9469c940415fe29c45a56ae51fec1c19a498e7a3b293f7b3b874 + version: 0.7.40 + resolution: "ua-parser-js@npm:0.7.40" + bin: + ua-parser-js: script/cli.js + checksum: c8f69573c336cbf0f4341e7fe93a8d7082acf39dba4e135b704f06ad240f585d4b38fb44fd3cad92c97a015128e9fe2e653b39c3b6c0919f8a8af3be02d79cc2 languageName: node linkType: hard "ua-parser-js@npm:^1.0.33, ua-parser-js@npm:^1.0.35": - version: 1.0.37 - resolution: "ua-parser-js@npm:1.0.37" - checksum: 4d481c720d523366d7762dc8a46a1b58967d979aacf786f9ceceb1cd767de069f64a4bdffb63956294f1c0696eb465ddb950f28ba90571709e33521b4bd75e07 + version: 1.0.40 + resolution: "ua-parser-js@npm:1.0.40" + bin: + ua-parser-js: script/cli.js + checksum: ae555a33dc9395dd877e295d6adbf5634e047aad7c3358328830218f3ca3a6233e35848cd355465a7612f269860e8029984389282940c7a27c9af4dfcdbba8c3 languageName: node linkType: hard -"unbox-primitive@npm:^1.0.2": - version: 1.0.2 - resolution: "unbox-primitive@npm:1.0.2" +"unbox-primitive@npm:^1.1.0": + version: 1.1.0 + resolution: "unbox-primitive@npm:1.1.0" dependencies: - call-bind: ^1.0.2 + call-bound: ^1.0.3 has-bigints: ^1.0.2 - has-symbols: ^1.0.3 - which-boxed-primitive: ^1.0.2 - checksum: b7a1cf5862b5e4b5deb091672ffa579aa274f648410009c81cca63fed3b62b610c4f3b773f912ce545bb4e31edc3138975b5bc777fc6e4817dca51affb6380e9 + has-symbols: ^1.1.0 + which-boxed-primitive: ^1.1.1 + checksum: 729f13b84a5bfa3fead1d8139cee5c38514e63a8d6a437819a473e241ba87eeb593646568621c7fc7f133db300ef18d65d1a5a60dc9c7beb9000364d93c581df languageName: node linkType: hard -"undici-types@npm:~5.26.4": - version: 5.26.5 - resolution: "undici-types@npm:5.26.5" - checksum: 3192ef6f3fd5df652f2dc1cd782b49d6ff14dc98e5dced492aa8a8c65425227da5da6aafe22523c67f035a272c599bb89cfe803c1db6311e44bed3042fc25487 +"undici-types@npm:~6.21.0": + version: 6.21.0 + resolution: "undici-types@npm:6.21.0" + checksum: 46331c7d6016bf85b3e8f20c159d62f5ae471aba1eb3dc52fff35a0259d58dcc7d592d4cc4f00c5f9243fa738a11cfa48bd20203040d4a9e6bc25e807fab7ab3 languageName: node linkType: hard "unicode-canonical-property-names-ecmascript@npm:^2.0.0": - version: 2.0.0 - resolution: "unicode-canonical-property-names-ecmascript@npm:2.0.0" - checksum: 39be078afd014c14dcd957a7a46a60061bc37c4508ba146517f85f60361acf4c7539552645ece25de840e17e293baa5556268d091ca6762747fdd0c705001a45 + version: 2.0.1 + resolution: "unicode-canonical-property-names-ecmascript@npm:2.0.1" + checksum: 3c3dabdb1d22aef4904399f9e810d0b71c0b12b3815169d96fac97e56d5642840c6071cf709adcace2252bc6bb80242396c2ec74b37224eb015c5f7aca40bad7 languageName: node linkType: hard @@ -21190,9 +21209,9 @@ coolshapes-react@lowcoder-org/coolshapes-react: linkType: hard "unicode-match-property-value-ecmascript@npm:^2.1.0": - version: 2.1.0 - resolution: "unicode-match-property-value-ecmascript@npm:2.1.0" - checksum: 8d6f5f586b9ce1ed0e84a37df6b42fdba1317a05b5df0c249962bd5da89528771e2d149837cad11aa26bcb84c35355cb9f58a10c3d41fa3b899181ece6c85220 + version: 2.2.0 + resolution: "unicode-match-property-value-ecmascript@npm:2.2.0" + checksum: 9e3151e1d0bc6be35c4cef105e317c04090364173e8462005b5cde08a1e7c858b6586486cfebac39dc2c6c8c9ee24afb245de6d527604866edfa454fe2a35fae languageName: node linkType: hard @@ -21203,10 +21222,10 @@ coolshapes-react@lowcoder-org/coolshapes-react: languageName: node linkType: hard -"unicorn-magic@npm:^0.1.0": - version: 0.1.0 - resolution: "unicorn-magic@npm:0.1.0" - checksum: 48c5882ca3378f380318c0b4eb1d73b7e3c5b728859b060276e0a490051d4180966beeb48962d850fd0c6816543bcdfc28629dcd030bb62a286a2ae2acb5acb6 +"unicorn-magic@npm:^0.3.0": + version: 0.3.0 + resolution: "unicorn-magic@npm:0.3.0" + checksum: bdd7d7c522f9456f32a0b77af23f8854f9a7db846088c3868ec213f9550683ab6a2bdf3803577eacbafddb4e06900974385841ccb75338d17346ccef45f9cb01 languageName: node linkType: hard @@ -21240,21 +21259,21 @@ coolshapes-react@lowcoder-org/coolshapes-react: languageName: node linkType: hard -"unique-filename@npm:^3.0.0": - version: 3.0.0 - resolution: "unique-filename@npm:3.0.0" +"unique-filename@npm:^4.0.0": + version: 4.0.0 + resolution: "unique-filename@npm:4.0.0" dependencies: - unique-slug: ^4.0.0 - checksum: 8e2f59b356cb2e54aab14ff98a51ac6c45781d15ceaab6d4f1c2228b780193dc70fae4463ce9e1df4479cb9d3304d7c2043a3fb905bdeca71cc7e8ce27e063df + unique-slug: ^5.0.0 + checksum: 6a62094fcac286b9ec39edbd1f8f64ff92383baa430af303dfed1ffda5e47a08a6b316408554abfddd9730c78b6106bef4ca4d02c1231a735ddd56ced77573df languageName: node linkType: hard -"unique-slug@npm:^4.0.0": - version: 4.0.0 - resolution: "unique-slug@npm:4.0.0" +"unique-slug@npm:^5.0.0": + version: 5.0.0 + resolution: "unique-slug@npm:5.0.0" dependencies: imurmurhash: ^0.1.4 - checksum: 0884b58365af59f89739e6f71e3feacb5b1b41f2df2d842d0757933620e6de08eff347d27e9d499b43c40476cbaf7988638d3acb2ffbcb9d35fd035591adfd15 + checksum: 222d0322bc7bbf6e45c08967863212398313ef73423f4125e075f893a02405a5ffdbaaf150f7dd1e99f8861348a486dd079186d27c5f2c60e465b7dcbb1d3e5b languageName: node linkType: hard @@ -21375,17 +21394,17 @@ coolshapes-react@lowcoder-org/coolshapes-react: languageName: node linkType: hard -"update-browserslist-db@npm:^1.0.13": - version: 1.0.13 - resolution: "update-browserslist-db@npm:1.0.13" +"update-browserslist-db@npm:^1.1.3": + version: 1.1.3 + resolution: "update-browserslist-db@npm:1.1.3" dependencies: - escalade: ^3.1.1 - picocolors: ^1.0.0 + escalade: ^3.2.0 + picocolors: ^1.1.1 peerDependencies: browserslist: ">= 4.21.0" bin: update-browserslist-db: cli.js - checksum: 1e47d80182ab6e4ad35396ad8b61008ae2a1330221175d0abd37689658bdb61af9b705bfc41057fd16682474d79944fb2d86767c5ed5ae34b6276b9bed353322 + checksum: 7b6d8d08c34af25ee435bccac542bedcb9e57c710f3c42421615631a80aa6dd28b0a81c9d2afbef53799d482fb41453f714b8a7a0a8003e3b4ec8fb1abb819af languageName: node linkType: hard @@ -21425,57 +21444,60 @@ coolshapes-react@lowcoder-org/coolshapes-react: languageName: node linkType: hard -"url@npm:^0.11.0": - version: 0.11.3 - resolution: "url@npm:0.11.3" +"url@npm:^0.11.4": + version: 0.11.4 + resolution: "url@npm:0.11.4" dependencies: punycode: ^1.4.1 - qs: ^6.11.2 - checksum: f9e7886f46a16f96d2e42fbcc5d682c231c55ef5442c1ff66150c0f6556f6e3a97d094a84f51be15ec2432711d212eb60426659ce418f5fcadeaa3f601532c4e + qs: ^6.12.3 + checksum: c25e587723d343d5d4248892393bfa5039ded9c2c07095a9d005bc64b7cb8956d623c0d8da8d1a28f71986a7a8d80fc2e9f9cf84235e48fa435a5cb4451062c6 languageName: node linkType: hard "use-composed-ref@npm:^1.3.0": - version: 1.3.0 - resolution: "use-composed-ref@npm:1.3.0" + version: 1.4.0 + resolution: "use-composed-ref@npm:1.4.0" peerDependencies: - react: ^16.8.0 || ^17.0.0 || ^18.0.0 - checksum: f771cbadfdc91e03b7ab9eb32d0fc0cc647755711801bf507e891ad38c4bbc5f02b2509acadf9c965ec9c5f2f642fd33bdfdfb17b0873c4ad0a9b1f5e5e724bf + react: ^16.8.0 || ^17.0.0 || ^18.0.0 || ^19.0.0 + peerDependenciesMeta: + "@types/react": + optional: true + checksum: 6968fe85e7a1721e977e7bff8d98ac0975522a380aa23190fe855767bd4d91a73138225a984ddeb90448c00451fb53fa54197b922d21753cd2e2765bd47143a9 languageName: node linkType: hard "use-isomorphic-layout-effect@npm:^1.1.1": - version: 1.1.2 - resolution: "use-isomorphic-layout-effect@npm:1.1.2" + version: 1.2.1 + resolution: "use-isomorphic-layout-effect@npm:1.2.1" peerDependencies: - react: ^16.8.0 || ^17.0.0 || ^18.0.0 + react: ^16.8.0 || ^17.0.0 || ^18.0.0 || ^19.0.0 peerDependenciesMeta: "@types/react": optional: true - checksum: a6532f7fc9ae222c3725ff0308aaf1f1ddbd3c00d685ef9eee6714fd0684de5cb9741b432fbf51e61a784e2955424864f7ea9f99734a02f237b17ad3e18ea5cb + checksum: a52155ffa7d67a5107ef2033ae2c63f5290c3e3b198de30d4d4f78cd7921e1ab1ea31eeec387defb67ef61adb672d3b8d25b54b7dcc089bacc4f885abde96e9d languageName: node linkType: hard "use-latest@npm:^1.2.1": - version: 1.2.1 - resolution: "use-latest@npm:1.2.1" + version: 1.3.0 + resolution: "use-latest@npm:1.3.0" dependencies: use-isomorphic-layout-effect: ^1.1.1 peerDependencies: - react: ^16.8.0 || ^17.0.0 || ^18.0.0 + react: ^16.8.0 || ^17.0.0 || ^18.0.0 || ^19.0.0 peerDependenciesMeta: "@types/react": optional: true - checksum: ed3f2ddddf6f21825e2ede4c2e0f0db8dcce5129802b69d1f0575fc1b42380436e8c76a6cd885d4e9aa8e292e60fb8b959c955f33c6a9123b83814a1a1875367 + checksum: e1681ffcac542a7536adda84c022652417463eb85eac95243860cba3ae9198aa36a8b8b11eb5d85217979648ecb00fd0e2727789dd023ac00b0cc94e4f76a511 languageName: node linkType: hard "use-sync-external-store@npm:^1.2.0": - version: 1.2.2 - resolution: "use-sync-external-store@npm:1.2.2" + version: 1.5.0 + resolution: "use-sync-external-store@npm:1.5.0" peerDependencies: - react: ^16.8.0 || ^17.0.0 || ^18.0.0 - checksum: fe07c071c4da3645f112c38c0e57beb479a8838616ff4e92598256ecce527f2888c08febc7f9b2f0ce2f0e18540ba3cde41eb2035e4fafcb4f52955037098a81 + react: ^16.8.0 || ^17.0.0 || ^18.0.0 || ^19.0.0 + checksum: 5e639c9273200adb6985b512c96a3a02c458bc8ca1a72e91da9cdc6426144fc6538dca434b0f99b28fb1baabc82e1c383ba7900b25ccdcb43758fb058dc66c34 languageName: node linkType: hard @@ -21564,13 +21586,13 @@ coolshapes-react@lowcoder-org/coolshapes-react: linkType: hard "v8-to-istanbul@npm:^9.0.1": - version: 9.2.0 - resolution: "v8-to-istanbul@npm:9.2.0" + version: 9.3.0 + resolution: "v8-to-istanbul@npm:9.3.0" dependencies: "@jridgewell/trace-mapping": ^0.3.12 "@types/istanbul-lib-coverage": ^2.0.1 convert-source-map: ^2.0.0 - checksum: 31ef98c6a31b1dab6be024cf914f235408cd4c0dc56a5c744a5eea1a9e019ba279e1b6f90d695b78c3186feed391ed492380ccf095009e2eb91f3d058f0b4491 + checksum: ded42cd535d92b7fd09a71c4c67fb067487ef5551cc227bfbf2a1f159a842e4e4acddaef20b955789b8d3b455b9779d036853f4a27ce15007f6364a4d30317ae languageName: node linkType: hard @@ -21762,14 +21784,14 @@ coolshapes-react@lowcoder-org/coolshapes-react: linkType: hard "vite-plugin-dynamic-import@npm:^1.5.0": - version: 1.5.0 - resolution: "vite-plugin-dynamic-import@npm:1.5.0" + version: 1.6.0 + resolution: "vite-plugin-dynamic-import@npm:1.6.0" dependencies: - acorn: ^8.8.2 - es-module-lexer: ^1.2.1 - fast-glob: ^3.2.12 - magic-string: ^0.30.1 - checksum: 68efd897daa0c72a9f9d3481095dd3f7ec9a822be5a15eef60413734a4c894c5bbd1c1762f02daeef5df59cef212c9f1e7e056315e2a7780816ccafe5c74da6e + acorn: ^8.12.1 + es-module-lexer: ^1.5.4 + fast-glob: ^3.3.2 + magic-string: ^0.30.11 + checksum: 46b009c80db82a8ed935c6ec7c08a8d3d7e5d3118fbfb1b4e18f13e4e9c34db6b3f28fa697d7f78d3f36edae69479a0ba2dfae1b76d2b2ca8e3e06dcf1e9870c languageName: node linkType: hard @@ -21834,8 +21856,8 @@ coolshapes-react@lowcoder-org/coolshapes-react: linkType: hard "vite@npm:^4.5.5": - version: 4.5.5 - resolution: "vite@npm:4.5.5" + version: 4.5.14 + resolution: "vite@npm:4.5.14" dependencies: esbuild: ^0.18.10 fsevents: ~2.3.2 @@ -21869,7 +21891,7 @@ coolshapes-react@lowcoder-org/coolshapes-react: optional: true bin: vite: bin/vite.js - checksum: 300c5f39c83b22413dfdc84f72e9ba979bf4004e4d939409eea1470b116626294495b09e2bd73fae387a254b79988c8d54ceb281f9515120a0eda179c33b216e + checksum: ed61e2bc284968c5f514eae1f0b040ad6aa1b6591575c102d4967da5e34f8e52cd1a7048800bc3154ece0c11b4f11e1be1d0ef382c92993fd2dc6f7feca110ba languageName: node linkType: hard @@ -21916,9 +21938,9 @@ coolshapes-react@lowcoder-org/coolshapes-react: linkType: hard "vscode-languageserver-textdocument@npm:^1.0.1": - version: 1.0.11 - resolution: "vscode-languageserver-textdocument@npm:1.0.11" - checksum: ea7cdc9d4ffaae5952071fa11d17d714215a76444e6936c9359f94b9ba3222a52a55edb5bd5928bd3e9712b900a9f175bb3565ec1c8923234fe3bd327584bafb + version: 1.0.12 + resolution: "vscode-languageserver-textdocument@npm:1.0.12" + checksum: 49415c8f065860693fdd6cb0f7b8a24470130dc941e887a396b6e6bbae93be132323a644aa1edd7d0eec38a730e05a2d013aebff6bddd30c5af374ef3f4cd9ab languageName: node linkType: hard @@ -21941,9 +21963,9 @@ coolshapes-react@lowcoder-org/coolshapes-react: linkType: hard "vscode-uri@npm:^3.0.2": - version: 3.0.8 - resolution: "vscode-uri@npm:3.0.8" - checksum: 514249126850c0a41a7d8c3c2836cab35983b9dc1938b903cfa253b9e33974c1416d62a00111385adcfa2b98df456437ab704f709a2ecca76a90134ef5eb4832 + version: 3.1.0 + resolution: "vscode-uri@npm:3.1.0" + checksum: d0f76a22f3d205dd2754d1c2820f55c1c9941c59b3baf1f4ed330fcdc006f2fc8b3c1338dafd6b30448f153173892651afe738a94b2c218ca4072d0e604c8d5e languageName: node linkType: hard @@ -21993,12 +22015,12 @@ coolshapes-react@lowcoder-org/coolshapes-react: linkType: hard "watchpack@npm:^2.4.1": - version: 2.4.1 - resolution: "watchpack@npm:2.4.1" + version: 2.4.4 + resolution: "watchpack@npm:2.4.4" dependencies: glob-to-regexp: ^0.4.1 graceful-fs: ^4.1.2 - checksum: 5b0179348655dcdf19cac7cb4ff923fdc024d630650c0bf6bec8899cf47c60e19d4f810a88dba692ed0e7f684cf0fcffea86efdbf6c35d81f031e328043b7fab + checksum: 469514a04bcdd7ea77d4b3c62d1f087eafbce64cbc728c89355d5710ee01311533456122da7c585d3654d5bfcf09e6085db1a6eb274c4762a18e370526d17561 languageName: node linkType: hard @@ -22033,9 +22055,9 @@ coolshapes-react@lowcoder-org/coolshapes-react: linkType: hard "web-worker@npm:^1.2.0": - version: 1.3.0 - resolution: "web-worker@npm:1.3.0" - checksum: ed1f869aefd1d81a43d0fbfe7b315a65beb6d7d2486b378c436a7047eed4216be34b2e6afca738b6fa95d016326b765f5f816355db33267dbf43b2b8a1837c0c + version: 1.5.0 + resolution: "web-worker@npm:1.5.0" + checksum: e092c9a739c19574796b0d8c313080786d6fa4b72cae0a30bdf7d64e16616957793cbe65c2f2608c70bbf638dba3463a2de335977d55d6e74d0a7c89d0283f99 languageName: node linkType: hard @@ -22114,9 +22136,9 @@ coolshapes-react@lowcoder-org/coolshapes-react: languageName: node linkType: hard -"webpack-dev-middleware@npm:^7.1.0": - version: 7.2.1 - resolution: "webpack-dev-middleware@npm:7.2.1" +"webpack-dev-middleware@npm:^7.4.2": + version: 7.4.2 + resolution: "webpack-dev-middleware@npm:7.4.2" dependencies: colorette: ^2.0.10 memfs: ^4.6.0 @@ -22129,17 +22151,18 @@ coolshapes-react@lowcoder-org/coolshapes-react: peerDependenciesMeta: webpack: optional: true - checksum: bb8c75f7ceabc13ee2c3bc9648190e05a0a8c6d40b940ef72b09ea858a63d16bcb434b49995f1025125a1c3a1c8d40274beb5d26ef2fb1458b19e7f6fe3a91fe + checksum: 39314ec5e4468d177dd61fb51af87ec097e920fe0f0dc101e1bf71796740a7e49fd4f7f939cf91e130232714d6d2fffd948d72dc65dec10f87ac30339929f018 languageName: node linkType: hard "webpack-dev-server@npm:^5.0.4": - version: 5.0.4 - resolution: "webpack-dev-server@npm:5.0.4" + version: 5.2.1 + resolution: "webpack-dev-server@npm:5.2.1" dependencies: "@types/bonjour": ^3.5.13 "@types/connect-history-api-fallback": ^1.5.4 "@types/express": ^4.17.21 + "@types/express-serve-static-core": ^4.17.21 "@types/serve-index": ^1.9.4 "@types/serve-static": ^1.15.5 "@types/sockjs": ^0.3.36 @@ -22150,23 +22173,20 @@ coolshapes-react@lowcoder-org/coolshapes-react: colorette: ^2.0.10 compression: ^1.7.4 connect-history-api-fallback: ^2.0.0 - default-gateway: ^6.0.3 - express: ^4.17.3 + express: ^4.21.2 graceful-fs: ^4.2.6 - html-entities: ^2.4.0 - http-proxy-middleware: ^2.0.3 + http-proxy-middleware: ^2.0.7 ipaddr.js: ^2.1.0 launch-editor: ^2.6.1 open: ^10.0.3 p-retry: ^6.2.0 - rimraf: ^5.0.5 schema-utils: ^4.2.0 selfsigned: ^2.4.1 serve-index: ^1.9.1 sockjs: ^0.3.24 spdy: ^4.0.2 - webpack-dev-middleware: ^7.1.0 - ws: ^8.16.0 + webpack-dev-middleware: ^7.4.2 + ws: ^8.18.0 peerDependencies: webpack: ^5.0.0 peerDependenciesMeta: @@ -22176,7 +22196,7 @@ coolshapes-react@lowcoder-org/coolshapes-react: optional: true bin: webpack-dev-server: bin/webpack-dev-server.js - checksum: b3535d01e8d895f4ce6d74b5f76e29398b712476216cd6d459365e5cc2f2fb1e49240aef6c23b2b943b04dbf768d7d18301af3eb064038bde4e11d03c241202d + checksum: cb96b182970dad1ea67ccca7b1c7a207ee0815c3b65218b08a8fad07df6a1854a2fed3588b17b06a99f28c999f4f391d551a42058cf02425ff7d0d21bfd2d27f languageName: node linkType: hard @@ -22192,26 +22212,26 @@ coolshapes-react@lowcoder-org/coolshapes-react: linkType: hard "webpack-sources@npm:^3.2.3": - version: 3.2.3 - resolution: "webpack-sources@npm:3.2.3" - checksum: 989e401b9fe3536529e2a99dac8c1bdc50e3a0a2c8669cbafad31271eadd994bc9405f88a3039cd2e29db5e6d9d0926ceb7a1a4e7409ece021fe79c37d9c4607 + version: 3.3.0 + resolution: "webpack-sources@npm:3.3.0" + checksum: 3098025872b445f39ab873241303c111a11e832b88ef124d9988593af47f245db4e9a485c449cd63ec14ab2562139b009d15c255599eb9837b67d182519031ff languageName: node linkType: hard "webpack@npm:^5.90.3": - version: 5.91.0 - resolution: "webpack@npm:5.91.0" - dependencies: - "@types/eslint-scope": ^3.7.3 - "@types/estree": ^1.0.5 - "@webassemblyjs/ast": ^1.12.1 - "@webassemblyjs/wasm-edit": ^1.12.1 - "@webassemblyjs/wasm-parser": ^1.12.1 - acorn: ^8.7.1 - acorn-import-assertions: ^1.9.0 - browserslist: ^4.21.10 + version: 5.99.9 + resolution: "webpack@npm:5.99.9" + dependencies: + "@types/eslint-scope": ^3.7.7 + "@types/estree": ^1.0.6 + "@types/json-schema": ^7.0.15 + "@webassemblyjs/ast": ^1.14.1 + "@webassemblyjs/wasm-edit": ^1.14.1 + "@webassemblyjs/wasm-parser": ^1.14.1 + acorn: ^8.14.0 + browserslist: ^4.24.0 chrome-trace-event: ^1.0.2 - enhanced-resolve: ^5.16.0 + enhanced-resolve: ^5.17.1 es-module-lexer: ^1.2.1 eslint-scope: 5.1.1 events: ^3.2.0 @@ -22221,9 +22241,9 @@ coolshapes-react@lowcoder-org/coolshapes-react: loader-runner: ^4.2.0 mime-types: ^2.1.27 neo-async: ^2.6.2 - schema-utils: ^3.2.0 + schema-utils: ^4.3.2 tapable: ^2.1.1 - terser-webpack-plugin: ^5.3.10 + terser-webpack-plugin: ^5.3.11 watchpack: ^2.4.1 webpack-sources: ^3.2.3 peerDependenciesMeta: @@ -22231,7 +22251,7 @@ coolshapes-react@lowcoder-org/coolshapes-react: optional: true bin: webpack: bin/webpack.js - checksum: f1073715dbb1ed5c070affef293d800a867708bcbc5aba4d8baee87660e0cf53c55966a6f36fab078d1d6c9567cdcd0a9086bdfb607cab87ea68c6449791b9a3 + checksum: 5fd25e64b8d5a31919087834af3678eaee62dbf8990024fb4c71584d4beb2c3e75ecbabbcc654fa2536e0aa7900172512c674c6650acd7088e534716faa8449d languageName: node linkType: hard @@ -22332,40 +22352,41 @@ coolshapes-react@lowcoder-org/coolshapes-react: languageName: node linkType: hard -"which-boxed-primitive@npm:^1.0.2": - version: 1.0.2 - resolution: "which-boxed-primitive@npm:1.0.2" +"which-boxed-primitive@npm:^1.0.2, which-boxed-primitive@npm:^1.1.0, which-boxed-primitive@npm:^1.1.1": + version: 1.1.1 + resolution: "which-boxed-primitive@npm:1.1.1" dependencies: - is-bigint: ^1.0.1 - is-boolean-object: ^1.1.0 - is-number-object: ^1.0.4 - is-string: ^1.0.5 - is-symbol: ^1.0.3 - checksum: 53ce774c7379071729533922adcca47220228405e1895f26673bbd71bdf7fb09bee38c1d6399395927c6289476b5ae0629863427fd151491b71c4b6cb04f3a5e + is-bigint: ^1.1.0 + is-boolean-object: ^1.2.1 + is-number-object: ^1.1.1 + is-string: ^1.1.1 + is-symbol: ^1.1.1 + checksum: ee41d0260e4fd39551ad77700c7047d3d281ec03d356f5e5c8393fe160ba0db53ef446ff547d05f76ffabfd8ad9df7c9a827e12d4cccdbc8fccf9239ff8ac21e languageName: node linkType: hard -"which-builtin-type@npm:^1.1.3": - version: 1.1.3 - resolution: "which-builtin-type@npm:1.1.3" +"which-builtin-type@npm:^1.2.1": + version: 1.2.1 + resolution: "which-builtin-type@npm:1.2.1" dependencies: - function.prototype.name: ^1.1.5 - has-tostringtag: ^1.0.0 + call-bound: ^1.0.2 + function.prototype.name: ^1.1.6 + has-tostringtag: ^1.0.2 is-async-function: ^2.0.0 - is-date-object: ^1.0.5 - is-finalizationregistry: ^1.0.2 + is-date-object: ^1.1.0 + is-finalizationregistry: ^1.1.0 is-generator-function: ^1.0.10 - is-regex: ^1.1.4 + is-regex: ^1.2.1 is-weakref: ^1.0.2 isarray: ^2.0.5 - which-boxed-primitive: ^1.0.2 - which-collection: ^1.0.1 - which-typed-array: ^1.1.9 - checksum: 43730f7d8660ff9e33d1d3f9f9451c4784265ee7bf222babc35e61674a11a08e1c2925019d6c03154fcaaca4541df43abe35d2720843b9b4cbcebdcc31408f36 + which-boxed-primitive: ^1.1.0 + which-collection: ^1.0.2 + which-typed-array: ^1.1.16 + checksum: 7a3617ba0e7cafb795f74db418df889867d12bce39a477f3ee29c6092aa64d396955bf2a64eae3726d8578440e26777695544057b373c45a8bcf5fbe920bf633 languageName: node linkType: hard -"which-collection@npm:^1.0.1": +"which-collection@npm:^1.0.1, which-collection@npm:^1.0.2": version: 1.0.2 resolution: "which-collection@npm:1.0.2" dependencies: @@ -22377,16 +22398,18 @@ coolshapes-react@lowcoder-org/coolshapes-react: languageName: node linkType: hard -"which-typed-array@npm:^1.1.13, which-typed-array@npm:^1.1.14, which-typed-array@npm:^1.1.15, which-typed-array@npm:^1.1.2, which-typed-array@npm:^1.1.9": - version: 1.1.15 - resolution: "which-typed-array@npm:1.1.15" +"which-typed-array@npm:^1.1.13, which-typed-array@npm:^1.1.16, which-typed-array@npm:^1.1.19, which-typed-array@npm:^1.1.2": + version: 1.1.19 + resolution: "which-typed-array@npm:1.1.19" dependencies: available-typed-arrays: ^1.0.7 - call-bind: ^1.0.7 - for-each: ^0.3.3 - gopd: ^1.0.1 + call-bind: ^1.0.8 + call-bound: ^1.0.4 + for-each: ^0.3.5 + get-proto: ^1.0.1 + gopd: ^1.2.0 has-tostringtag: ^1.0.2 - checksum: 65227dcbfadf5677aacc43ec84356d17b5500cb8b8753059bb4397de5cd0c2de681d24e1a7bd575633f976a95f88233abfd6549c2105ef4ebd58af8aa1807c75 + checksum: 162d2a07f68ea323f88ed9419861487ce5d02cb876f2cf9dd1e428d04a63133f93a54f89308f337b27cabd312ee3d027cae4a79002b2f0a85b79b9ef4c190670 languageName: node linkType: hard @@ -22401,14 +22424,14 @@ coolshapes-react@lowcoder-org/coolshapes-react: languageName: node linkType: hard -"which@npm:^4.0.0": - version: 4.0.0 - resolution: "which@npm:4.0.0" +"which@npm:^5.0.0": + version: 5.0.0 + resolution: "which@npm:5.0.0" dependencies: isexe: ^3.1.1 bin: node-which: bin/which.js - checksum: f17e84c042592c21e23c8195108cff18c64050b9efb8459589116999ea9da6dd1509e6a1bac3aeebefd137be00fabbb61b5c2bc0aa0f8526f32b58ee2f545651 + checksum: 6ec99e89ba32c7e748b8a3144e64bfc74aa63e2b2eacbb61a0060ad0b961eb1a632b08fb1de067ed59b002cec3e21de18299216ebf2325ef0f78e0f121e14e90 languageName: node linkType: hard @@ -22480,8 +22503,8 @@ coolshapes-react@lowcoder-org/coolshapes-react: linkType: hard "ws@npm:^7.0.0, ws@npm:^7.3.1": - version: 7.5.9 - resolution: "ws@npm:7.5.9" + version: 7.5.10 + resolution: "ws@npm:7.5.10" peerDependencies: bufferutil: ^4.0.1 utf-8-validate: ^5.0.2 @@ -22490,28 +22513,13 @@ coolshapes-react@lowcoder-org/coolshapes-react: optional: true utf-8-validate: optional: true - checksum: c3c100a181b731f40b7f2fddf004aa023f79d64f489706a28bc23ff88e87f6a64b3c6651fbec3a84a53960b75159574d7a7385709847a62ddb7ad6af76f49138 - languageName: node - linkType: hard - -"ws@npm:^8.11.0, ws@npm:^8.16.0": - version: 8.17.0 - resolution: "ws@npm:8.17.0" - peerDependencies: - bufferutil: ^4.0.1 - utf-8-validate: ">=5.0.2" - peerDependenciesMeta: - bufferutil: - optional: true - utf-8-validate: - optional: true - checksum: 147ef9eab0251364e1d2c55338ad0efb15e6913923ccbfdf20f7a8a6cb8f88432bcd7f4d8f66977135bfad35575644f9983201c1a361019594a4e53977bf6d4e + checksum: f9bb062abf54cc8f02d94ca86dcd349c3945d63851f5d07a3a61c2fcb755b15a88e943a63cf580cbdb5b74436d67ef6b67f745b8f7c0814e411379138e1863cb languageName: node linkType: hard -"ws@npm:^8.14.2": - version: 8.18.0 - resolution: "ws@npm:8.18.0" +"ws@npm:^8.11.0, ws@npm:^8.18.0": + version: 8.18.2 + resolution: "ws@npm:8.18.2" peerDependencies: bufferutil: ^4.0.1 utf-8-validate: ">=5.0.2" @@ -22520,7 +22528,7 @@ coolshapes-react@lowcoder-org/coolshapes-react: optional: true utf-8-validate: optional: true - checksum: 91d4d35bc99ff6df483bdf029b9ea4bfd7af1f16fc91231a96777a63d263e1eabf486e13a2353970efc534f9faa43bdbf9ee76525af22f4752cbc5ebda333975 + checksum: e38beae19ba4d68577ec24eb34fbfab376333fedd10f99b07511a8e842e22dbc102de39adac333a18e4c58868d0703cd5f239b04b345e22402d0ed8c34ea0aa0 languageName: node linkType: hard @@ -22623,6 +22631,13 @@ coolshapes-react@lowcoder-org/coolshapes-react: languageName: node linkType: hard +"yallist@npm:^5.0.0": + version: 5.0.0 + resolution: "yallist@npm:5.0.0" + checksum: eba51182400b9f35b017daa7f419f434424410691bbc5de4f4240cc830fdef906b504424992700dc047f16b4d99100a6f8b8b11175c193f38008e9c96322b6a5 + languageName: node + linkType: hard + "yaml@npm:2.3.1": version: 2.3.1 resolution: "yaml@npm:2.3.1" @@ -22696,22 +22711,13 @@ coolshapes-react@lowcoder-org/coolshapes-react: linkType: hard "yocto-queue@npm:^1.0.0": - version: 1.0.0 - resolution: "yocto-queue@npm:1.0.0" - checksum: 2cac84540f65c64ccc1683c267edce396b26b1e931aa429660aefac8fbe0188167b7aee815a3c22fa59a28a58d898d1a2b1825048f834d8d629f4c2a5d443801 - languageName: node - linkType: hard - -"zrender@npm:5.5.0": - version: 5.5.0 - resolution: "zrender@npm:5.5.0" - dependencies: - tslib: 2.3.0 - checksum: 89e4f9e95b586af66ebf5c0504d5f8da73678e18c5b888124943ca81ecea7cff12f23009d64048df91e4dc670e9c51fa66c357834d9347e367f3b5cc02a24d35 + version: 1.2.1 + resolution: "yocto-queue@npm:1.2.1" + checksum: 0843d6c2c0558e5c06e98edf9c17942f25c769e21b519303a5c2adefd5b738c9b2054204dc856ac0cd9d134b1bc27d928ce84fd23c9e2423b7e013d5a6f50577 languageName: node linkType: hard -"zrender@npm:^5.1.1": +"zrender@npm:5.6.1, zrender@npm:^5.1.1": version: 5.6.1 resolution: "zrender@npm:5.6.1" dependencies: diff --git a/server/api-service/lowcoder-domain/pom.xml b/server/api-service/lowcoder-domain/pom.xml index 7b9b3cc6d8..52845ece00 100644 --- a/server/api-service/lowcoder-domain/pom.xml +++ b/server/api-service/lowcoder-domain/pom.xml @@ -123,6 +123,22 @@ <scope>test</scope> </dependency> + <dependency> + <groupId>commons-codec</groupId> + <artifactId>commons-codec</artifactId> + </dependency> + + <dependency> + <groupId>org.apache.commons</groupId> + <artifactId>commons-lang3</artifactId> + </dependency> + + <dependency> + <groupId>org.junit.jupiter</groupId> + <artifactId>junit-jupiter</artifactId> + <scope>test</scope> + </dependency> + <dependency> <groupId>com.querydsl</groupId> <artifactId>querydsl-mongodb</artifactId> diff --git a/server/api-service/lowcoder-infra/src/main/java/org/lowcoder/infra/event/AbstractEvent.java b/server/api-service/lowcoder-infra/src/main/java/org/lowcoder/infra/event/AbstractEvent.java index 131da031c5..54fc858991 100644 --- a/server/api-service/lowcoder-infra/src/main/java/org/lowcoder/infra/event/AbstractEvent.java +++ b/server/api-service/lowcoder-infra/src/main/java/org/lowcoder/infra/event/AbstractEvent.java @@ -1,5 +1,6 @@ package org.lowcoder.infra.event; +import com.fasterxml.jackson.annotation.JsonInclude; import lombok.Getter; import lombok.Setter; import lombok.experimental.SuperBuilder; @@ -57,7 +58,16 @@ public void populateDetails(ContextView contextView) { try { f.setAccessible(Boolean.TRUE); value = f.get(this); - details.put(f.getName(), value); + JsonInclude jsonInclude = f.getAnnotation(JsonInclude.class); + if (jsonInclude != null && jsonInclude.value() == JsonInclude.Include.NON_NULL) { + // Include only if value is not null + if (value != null) { + details.put(f.getName(), value); + } + } else { + // Include regardless of value + details.put(f.getName(), value); + } } catch (Exception e) { } diff --git a/server/api-service/lowcoder-infra/src/main/java/org/lowcoder/infra/event/ApplicationCommonEvent.java b/server/api-service/lowcoder-infra/src/main/java/org/lowcoder/infra/event/ApplicationCommonEvent.java index fcc874b3cf..b4d5505da4 100644 --- a/server/api-service/lowcoder-infra/src/main/java/org/lowcoder/infra/event/ApplicationCommonEvent.java +++ b/server/api-service/lowcoder-infra/src/main/java/org/lowcoder/infra/event/ApplicationCommonEvent.java @@ -1,6 +1,7 @@ package org.lowcoder.infra.event; +import com.fasterxml.jackson.annotation.JsonInclude; import jakarta.annotation.Nullable; import lombok.Getter; import lombok.experimental.SuperBuilder; @@ -23,20 +24,33 @@ public class ApplicationCommonEvent extends AbstractEvent { private final String oldApplicationTitle; private final EventType type; @Nullable + @JsonInclude(JsonInclude.Include.NON_NULL) private final String folderId; @Nullable + @JsonInclude(JsonInclude.Include.NON_NULL) private final String folderName; @Nullable + @JsonInclude(JsonInclude.Include.NON_NULL) private final String oldFolderId; @Nullable + @JsonInclude(JsonInclude.Include.NON_NULL) private final String oldFolderName; + @JsonInclude(JsonInclude.Include.NON_NULL) private final String permissionId; + @JsonInclude(JsonInclude.Include.NON_NULL) private final String role; + @JsonInclude(JsonInclude.Include.NON_NULL) private final Set<String> userIds; + @JsonInclude(JsonInclude.Include.NON_NULL) private final Set<String> groupIds; + @JsonInclude(JsonInclude.Include.NON_NULL) private final String shareType; + @JsonInclude(JsonInclude.Include.NON_NULL) private final String tag; + @JsonInclude(JsonInclude.Include.NON_NULL) private final String commitMessage; + @JsonInclude(JsonInclude.Include.NON_NULL) + private final Object sharingDetails; @Override public EventType getEventType() { diff --git a/server/api-service/lowcoder-infra/src/main/java/org/lowcoder/infra/event/BundleCommonEvent.java b/server/api-service/lowcoder-infra/src/main/java/org/lowcoder/infra/event/BundleCommonEvent.java new file mode 100644 index 0000000000..312f9cc544 --- /dev/null +++ b/server/api-service/lowcoder-infra/src/main/java/org/lowcoder/infra/event/BundleCommonEvent.java @@ -0,0 +1,31 @@ +package org.lowcoder.infra.event; + + +import jakarta.annotation.Nullable; +import lombok.Getter; +import lombok.experimental.SuperBuilder; + +@Getter +@SuperBuilder +public class BundleCommonEvent extends AbstractEvent { + + private final String bundleId; + private final String bundleGid; + private final String bundleName; + private final String bundleCategory; + private final String bundleDescription; + private final EventType type; + @Nullable + private final String folderId; + @Nullable + private final String folderName; + @Nullable + private final String oldFolderId; + @Nullable + private final String oldFolderName; + + @Override + public EventType getEventType() { + return type; + } +} diff --git a/server/api-service/lowcoder-sdk/src/main/java/org/lowcoder/sdk/constants/GlobalContext.java b/server/api-service/lowcoder-sdk/src/main/java/org/lowcoder/sdk/constants/GlobalContext.java index 6bded8efb0..7d4765660e 100644 --- a/server/api-service/lowcoder-sdk/src/main/java/org/lowcoder/sdk/constants/GlobalContext.java +++ b/server/api-service/lowcoder-sdk/src/main/java/org/lowcoder/sdk/constants/GlobalContext.java @@ -17,4 +17,5 @@ public class GlobalContext { public static final String CURRENT_ORG_MEMBER = "currentOrgMember"; public static final String DOMAIN = "domain"; public static final String HEADERS = "headers"; + } \ No newline at end of file diff --git a/server/api-service/lowcoder-server/src/main/java/org/lowcoder/api/application/ApplicationController.java b/server/api-service/lowcoder-server/src/main/java/org/lowcoder/api/application/ApplicationController.java index b1dd5c556b..42ec869ec3 100644 --- a/server/api-service/lowcoder-server/src/main/java/org/lowcoder/api/application/ApplicationController.java +++ b/server/api-service/lowcoder-server/src/main/java/org/lowcoder/api/application/ApplicationController.java @@ -275,7 +275,8 @@ public Mono<ResponseView<Boolean>> setApplicationPublicToAll(@PathVariable Strin @RequestBody ApplicationPublicToAllRequest request) { return gidService.convertApplicationIdToObjectId(applicationId).flatMap(appId -> applicationApiService.setApplicationPublicToAll(appId, request.publicToAll()) - .delayUntil(__ -> businessEventPublisher.publishApplicationSharingEvent(applicationId, "PublicToAll")) + .delayUntil(__ -> applicationApiService.getApplicationPermissions(appId) + .flatMap(applicationPermissionView -> businessEventPublisher.publishApplicationSharingEvent(applicationId, "PublicToAll", applicationPermissionView))) .map(ResponseView::success)); } @@ -284,7 +285,8 @@ public Mono<ResponseView<Boolean>> setApplicationPublicToMarketplace(@PathVariab @RequestBody ApplicationPublicToMarketplaceRequest request) { return gidService.convertApplicationIdToObjectId(applicationId).flatMap(appId -> applicationApiService.setApplicationPublicToMarketplace(appId, request) - .delayUntil(__ -> businessEventPublisher.publishApplicationSharingEvent(applicationId, "PublicToMarketplace")) + .delayUntil(__ -> applicationApiService.getApplicationPermissions(appId) + .flatMap(applicationPermissionView -> businessEventPublisher.publishApplicationSharingEvent(applicationId, "PublicToMarketplace", applicationPermissionView))) .map(ResponseView::success)); } diff --git a/server/api-service/lowcoder-server/src/main/java/org/lowcoder/api/bundle/BundleController.java b/server/api-service/lowcoder-server/src/main/java/org/lowcoder/api/bundle/BundleController.java index bc156b4d33..5e6d3ff685 100644 --- a/server/api-service/lowcoder-server/src/main/java/org/lowcoder/api/bundle/BundleController.java +++ b/server/api-service/lowcoder-server/src/main/java/org/lowcoder/api/bundle/BundleController.java @@ -1,7 +1,6 @@ package org.lowcoder.api.bundle; import lombok.RequiredArgsConstructor; -import org.jetbrains.annotations.NotNull; import org.lowcoder.api.bundle.view.BundleInfoView; import org.lowcoder.api.bundle.view.BundlePermissionView; import org.lowcoder.api.bundle.view.MarketplaceBundleInfoView; @@ -20,12 +19,12 @@ import org.springframework.web.bind.annotation.RequestBody; import org.springframework.web.bind.annotation.RequestParam; import org.springframework.web.bind.annotation.RestController; -import reactor.core.publisher.Flux; import reactor.core.publisher.Mono; import java.util.List; import static org.lowcoder.api.util.Pagination.fluxToPageResponseView; +import static org.lowcoder.plugin.api.event.LowcoderEvent.EventType.*; import static org.lowcoder.sdk.exception.BizError.INVALID_PARAMETER; import static org.lowcoder.sdk.util.ExceptionUtils.ofError; @@ -43,8 +42,7 @@ public class BundleController implements BundleEndpoints @Override public Mono<ResponseView<BundleInfoView>> create(@RequestBody CreateBundleRequest bundle) { return bundleApiService.create(bundle) - //TODO [thomasr]: add new method to BusinessEventPublisher(jar file) -// .delayUntil(f -> businessEventPublisher.publishBundleCommonEvent(f.getBundleId(), f.getName(), EventType.BUNDLE_CREATE)) + .delayUntil(f -> businessEventPublisher.publishBundleCommonEvent(f, BUNDLE_CREATE)) .map(ResponseView::success); } @@ -52,7 +50,23 @@ public Mono<ResponseView<BundleInfoView>> create(@RequestBody CreateBundleReques public Mono<ResponseView<Void>> delete(@PathVariable("id") String bundleId) { return gidService.convertBundleIdToObjectId(bundleId).flatMap(objectId -> bundleApiService.delete(objectId) -// .delayUntil(f -> businessEventPublisher.publishBundleCommonEvent(f.getId(), f.getName(), EventType.BUNDLE_DELETE)) + .delayUntil(f -> businessEventPublisher.publishBundleCommonEvent( + BundleInfoView.builder() + .bundleGid(f.getGid()) + .editingBundleDSL(f.getEditingBundleDSL()) + .image(f.getImage()) + .title(f.getTitle()) + .description(f.getDescription()) + .name(f.getName()) + .publicToMarketplace(f.isPublicToMarketplace()) + .publicToAll(f.isPublicToAll()) + .agencyProfile(f.agencyProfile()) + .createTime(f.getCreatedAt()) + .createBy(f.getCreatedBy()) + .createAt(f.getCreatedAt().toEpochMilli()) + .publishedBundleDSL(f.getPublishedBundleDSL()) + .category(f.getCategory()) + .build(), BUNDLE_DELETE)) .then(Mono.fromSupplier(() -> ResponseView.success(null)))); } @@ -63,11 +77,10 @@ public Mono<ResponseView<Void>> delete(@PathVariable("id") String bundleId) { public Mono<ResponseView<BundleInfoView>> update(@RequestBody Bundle bundle) { return bundleService.findById(bundle.getId()) .zipWhen(__ -> bundleApiService.update(bundle)) -// .delayUntil(tuple2 -> { -// Bundle old = tuple2.getT1(); -// return businessEventPublisher.publishBundleCommonEvent(bundle.getId(), old.getName() + " => " + bundle.getName(), -// EventType.BUNDLE_UPDATE); -// }) + .delayUntil(tuple2 -> { + Bundle old = tuple2.getT1(); + return businessEventPublisher.publishBundleCommonEvent(tuple2.getT2(), BUNDLE_UPDATE); + }) .map(tuple2 -> ResponseView.success(tuple2.getT2())); } @@ -81,7 +94,7 @@ public Mono<ResponseView<BundleInfoView>> publish(@PathVariable String bundleId) public Mono<ResponseView<Boolean>> recycle(@PathVariable String bundleId) { return gidService.convertBundleIdToObjectId(bundleId).flatMap(objectId -> bundleApiService.recycle(objectId) -// .delayUntil(__ -> businessEventPublisher.publishBundleCommonEvent(bundleId, null, BUNDLE_RECYCLED)) + .delayUntil(__ -> businessEventPublisher.publishBundleCommonEvent(bundleId, null, null, BUNDLE_RECYCLED)) .map(ResponseView::success)); } @@ -89,7 +102,7 @@ public Mono<ResponseView<Boolean>> recycle(@PathVariable String bundleId) { public Mono<ResponseView<Boolean>> restore(@PathVariable String bundleId) { return gidService.convertBundleIdToObjectId(bundleId).flatMap(objectId -> bundleApiService.restore(objectId) -// .delayUntil(__ -> businessEventPublisher.publishBundleCommonEvent(bundleId, null, BUNDLE_RESTORE)) + .delayUntil(__ -> businessEventPublisher.publishBundleCommonEvent(bundleId, null, null, BUNDLE_RESTORE)) .map(ResponseView::success)); } @@ -120,8 +133,7 @@ public Mono<ResponseView<Void>> moveApp(@PathVariable("id") String applicationId gidService.convertBundleIdToObjectId(toBundleId).flatMap(objectIdTo -> gidService.convertApplicationIdToObjectId(applicationId).flatMap(appId -> bundleApiService.moveApp(appId, objectIdFrom, objectIdTo) - //TODO: Event Type not defined yet - // .then(businessEventPublisher.publishBundleCommonEvent(applicationLikeId, targetBundleId, BUNDLE_MOVE)) + .then(businessEventPublisher.publishBundleCommonEvent(applicationId, fromBundleId, toBundleId, APPLICATION_MOVE)) .then(Mono.fromSupplier(() -> ResponseView.success(null)))))); } @@ -188,7 +200,7 @@ public Mono<ResponseView<BundlePermissionView>> getBundlePermissions(@PathVariab public Mono<ResponseView<BundleInfoView>> getPublishedBundle(@PathVariable String bundleId) { return gidService.convertBundleIdToObjectId(bundleId).flatMap(objectId -> bundleApiService.getPublishedBundle(objectId, BundleRequestType.PUBLIC_TO_ALL) -// .delayUntil(bundleView -> businessEventPublisher.publishBundleCommonEvent(bundleView, BUNDLE_VIEW)) + .delayUntil(bundleView -> businessEventPublisher.publishBundleCommonEvent(bundleView, BUNDLE_VIEW)) .map(ResponseView::success)); } @@ -196,7 +208,7 @@ public Mono<ResponseView<BundleInfoView>> getPublishedBundle(@PathVariable Strin public Mono<ResponseView<BundleInfoView>> getPublishedMarketPlaceBundle(@PathVariable String bundleId) { return gidService.convertBundleIdToObjectId(bundleId).flatMap(objectId -> bundleApiService.getPublishedBundle(objectId, BundleRequestType.PUBLIC_TO_MARKETPLACE) -// .delayUntil(bundleView -> businessEventPublisher.publishBundleCommonEvent(bundleView, BUNDLE_VIEW)) + .delayUntil(bundleView -> businessEventPublisher.publishBundleCommonEvent(bundleView, BUNDLE_VIEW)) .map(ResponseView::success)); } @@ -204,7 +216,7 @@ public Mono<ResponseView<BundleInfoView>> getPublishedMarketPlaceBundle(@PathVar public Mono<ResponseView<BundleInfoView>> getAgencyProfileBundle(@PathVariable String bundleId) { return gidService.convertBundleIdToObjectId(bundleId).flatMap(objectId -> bundleApiService.getPublishedBundle(objectId, BundleRequestType.AGENCY_PROFILE) -// .delayUntil(bundleView -> businessEventPublisher.publishBundleCommonEvent(bundleView, BUNDLE_VIEW)) + .delayUntil(bundleView -> businessEventPublisher.publishBundleCommonEvent(bundleView, BUNDLE_VIEW)) .map(ResponseView::success)); } diff --git a/server/api-service/lowcoder-server/src/main/java/org/lowcoder/api/bundle/view/BundleInfoView.java b/server/api-service/lowcoder-server/src/main/java/org/lowcoder/api/bundle/view/BundleInfoView.java index 343c2e7f11..68d2c09760 100644 --- a/server/api-service/lowcoder-server/src/main/java/org/lowcoder/api/bundle/view/BundleInfoView.java +++ b/server/api-service/lowcoder-server/src/main/java/org/lowcoder/api/bundle/view/BundleInfoView.java @@ -27,6 +27,7 @@ public class BundleInfoView { private final Long createAt; private final String createBy; private final String folderId; + private final String folderIdFrom; private final Boolean publicToAll; private final Boolean publicToMarketplace; private final Boolean agencyProfile; diff --git a/server/api-service/lowcoder-server/src/main/java/org/lowcoder/api/util/BusinessEventPublisher.java b/server/api-service/lowcoder-server/src/main/java/org/lowcoder/api/util/BusinessEventPublisher.java index ee878ffe9a..9e0476253b 100644 --- a/server/api-service/lowcoder-server/src/main/java/org/lowcoder/api/util/BusinessEventPublisher.java +++ b/server/api-service/lowcoder-server/src/main/java/org/lowcoder/api/util/BusinessEventPublisher.java @@ -7,8 +7,10 @@ import org.apache.commons.lang3.StringUtils; import org.apache.commons.lang3.tuple.Pair; import org.lowcoder.api.application.view.ApplicationInfoView; +import org.lowcoder.api.application.view.ApplicationPermissionView; import org.lowcoder.api.application.view.ApplicationPublishRequest; import org.lowcoder.api.application.view.ApplicationView; +import org.lowcoder.api.bundle.view.BundleInfoView; import org.lowcoder.api.home.SessionUserService; import org.lowcoder.api.permission.view.CommonPermissionView; import org.lowcoder.api.usermanagement.view.AddMemberRequest; @@ -253,7 +255,7 @@ public Mono<Void> publishApplicationPermissionEvent(String applicationId, Set<St } - public Mono<Void> publishApplicationSharingEvent(String applicationId, String shareType) { + public Mono<Void> publishApplicationSharingEvent(String applicationId, String shareType, ApplicationPermissionView applicationPermissionView) { return sessionUserService.isAnonymousUser() .flatMap(anonymous -> { if (anonymous) { @@ -280,6 +282,7 @@ public Mono<Void> publishApplicationSharingEvent(String applicationId, String sh .applicationCategory(category) .applicationDescription(description) .type(EventType.APPLICATION_SHARING_CHANGE) + .sharingDetails(applicationPermissionView) .shareType(shareType) .isAnonymous(anonymous) .sessionHash(Hashing.sha512().hashString(token, StandardCharsets.UTF_8).toString()) @@ -392,6 +395,76 @@ public Mono<Void> publishApplicationVersionChangeEvent(String applicationId, Str } + public Mono<Void> publishBundleCommonEvent(BundleInfoView bundleInfoView, EventType eventType) { + return sessionUserService.isAnonymousUser() + .flatMap(anonymous -> { + if (anonymous) { + return Mono.empty(); + } + return sessionUserService.getVisitorOrgMemberCache() + .zipWith(Mono.defer(() -> { + String folderId = bundleInfoView.getFolderId(); + if (StringUtils.isBlank(folderId)) { + return Mono.just(Optional.<Folder> empty()); + } + return folderService.findById(folderId) + .map(Optional::of) + .onErrorReturn(Optional.empty()); + })) + .zipWith(Mono.defer(() -> { + String folderId = bundleInfoView.getFolderIdFrom(); + if (StringUtils.isBlank(folderId)) { + return Mono.just(Optional.<Folder> empty()); + } + return folderService.findById(folderId) + .map(Optional::of) + .onErrorReturn(Optional.empty()); + }), TupleUtils::merge) + .zipWith(sessionUserService.getVisitorToken()) + .flatMap(tuple -> { + OrgMember orgMember = tuple.getT1().getT1(); + Optional<Folder> optional = tuple.getT1().getT2(); + Optional<Folder> optionalFrom = tuple.getT1().getT3(); + String token = tuple.getT2(); + ApplicationCommonEvent event = ApplicationCommonEvent.builder() + .orgId(orgMember.getOrgId()) + .userId(orgMember.getUserId()) + .applicationId(bundleInfoView.getBundleId()) + .applicationGid(bundleInfoView.getBundleGid()) + .applicationName(bundleInfoView.getName()) + .type(eventType) + .folderId(optional.map(Folder::getId).orElse(null)) + .folderName(optional.map(Folder::getName).orElse(null)) + .oldFolderId(optionalFrom.map(Folder::getId).orElse(null)) + .oldFolderName(optionalFrom.map(Folder::getName).orElse(null)) + .isAnonymous(anonymous) + .sessionHash(Hashing.sha512().hashString(token, StandardCharsets.UTF_8).toString()) + .build(); + return Mono.deferContextual(contextView -> { + event.populateDetails(contextView); + applicationEventPublisher.publishEvent(event); + return Mono.empty(); + }).then(); + }) + .then() + .onErrorResume(throwable -> { + log.error("publishBundleCommonEvent error. {}, {}", bundleInfoView, eventType, throwable); + return Mono.empty(); + }); + }); + } + + public Mono<Void> publishBundleCommonEvent(String bundleId, @Nullable String folderIdFrom, @Nullable String folderIdTo, EventType eventType) { + return applicationService.findByIdWithoutDsl(bundleId) + .map(application -> BundleInfoView.builder() + .bundleId(bundleId) + .name(application.getName()) + .folderId(folderIdTo) + .folderIdFrom(folderIdFrom) + .build()) + .flatMap(bundleInfoView -> publishBundleCommonEvent(bundleInfoView, eventType)); + } + public Mono<Void> publishUserLoginEvent(String source) { return sessionUserService.getVisitorOrgMember().zipWith(sessionUserService.getVisitorToken()) .delayUntil(tuple -> { diff --git a/server/node-service/src/plugins/n8n/index.ts b/server/node-service/src/plugins/n8n/index.ts index e71a9371da..5722edaddc 100644 --- a/server/node-service/src/plugins/n8n/index.ts +++ b/server/node-service/src/plugins/n8n/index.ts @@ -1,12 +1,17 @@ import { badRequest } from "common/error"; +import path from "path"; import { OpenAPIV3, OpenAPI } from "openapi-types"; import { ConfigToType, DataSourcePlugin } from "lowcoder-sdk/dataSource"; import { runOpenApi } from "../openApi"; import { defaultParseOpenApiOptions, parseOpenApi, ParseOpenApiOptions } from "../openApi/parse"; -import spec from "./spec.json"; -import { specsToOptions, version2spec } from "../../common/util"; +import { readYaml, specsToOptions, version2spec } from "../../common/util"; + +const spec_1_1_0 = readYaml(path.join(__dirname, "./openapi_1_1_0.yml")); +const spec_1_1_1 = readYaml(path.join(__dirname, "./openapi_1_1_1.yml")); + const specs = { - "v1.0": spec, + "v1.1.0": spec_1_1_0, + "v1.1.1": spec_1_1_1 } export function prepareServerUrl(url: string) { diff --git a/server/node-service/src/plugins/n8n/openapi_1_1_0.yml b/server/node-service/src/plugins/n8n/openapi_1_1_0.yml new file mode 100644 index 0000000000..d476667e4d --- /dev/null +++ b/server/node-service/src/plugins/n8n/openapi_1_1_0.yml @@ -0,0 +1,846 @@ +openapi: 3.0.0 +info: + title: n8n Public API + description: n8n Public API + termsOfService: https://n8n.io/legal/terms + contact: + email: hello@n8n.io + license: + name: Sustainable Use License + url: https://github.com/n8n-io/n8n/blob/master/packages/cli/LICENSE.md + version: 1.1.0 +externalDocs: + description: n8n API documentation + url: https://docs.n8n.io/api/ +servers: + - url: https://docs.n8n.io/api/v1 +tags: + - name: Audit + description: Operations about security audit + - name: Execution + description: Operations about executions + - name: Workflow + description: Operations about workflows + - name: Credential + description: Operations about credentials +paths: + /audit: + post: + x-eov-operation-id: generateAudit + x-eov-operation-handler: v1/handlers/audit/audit.handler + tags: + - Audit + summary: Generate an audit + description: Generate a security audit for your n8n instance. + requestBody: + required: false + content: + application/json: + schema: + type: object + properties: + additionalOptions: + type: object + properties: + daysAbandonedWorkflow: + type: integer + description: Days for a workflow to be considered abandoned if not executed + categories: + type: array + items: + type: string + enum: + - credentials + - database + - nodes + - filesystem + - instance + responses: + '200': + description: Operation successful. + content: + application/json: + schema: + $ref: '#/components/schemas/Audit' + '401': + $ref: '#/components/responses/Unauthorized' + '500': + description: Internal server error. + /credentials: + post: + x-eov-operation-id: createCredential + x-eov-operation-handler: v1/handlers/credentials/credentials.handler + tags: + - Credential + summary: Create a credential + description: Creates a credential that can be used by nodes of the specified type. + requestBody: + description: Credential to be created. + required: true + content: + application/json: + schema: + $ref: '#/components/schemas/Credential' + responses: + '200': + description: Operation successful. + content: + application/json: + schema: + $ref: '#/components/schemas/Credential' + '401': + $ref: '#/components/responses/Unauthorized' + '415': + description: Unsupported media type. + /credentials/{id}: + delete: + x-eov-operation-id: deleteCredential + x-eov-operation-handler: v1/handlers/credentials/credentials.handler + tags: + - Credential + summary: Delete credential by ID + description: Deletes a credential from your instance. You must be the owner of the credentials + operationId: deleteCredential + parameters: + - name: id + in: path + description: The credential ID that needs to be deleted + required: true + schema: + type: string + responses: + '200': + description: Operation successful. + content: + application/json: + schema: + $ref: '#/components/schemas/Credential' + '401': + $ref: '#/components/responses/Unauthorized' + '404': + $ref: '#/components/responses/NotFound' + /credentials/schema/{credentialTypeName}: + get: + x-eov-operation-id: getCredentialType + x-eov-operation-handler: v1/handlers/credentials/credentials.handler + tags: + - Credential + summary: Show credential data schema + parameters: + - name: credentialTypeName + in: path + description: The credential type name that you want to get the schema for + required: true + schema: + type: string + responses: + '200': + description: Operation successful. + content: + application/json: + schema: + type: object + examples: + freshdeskApi: + value: + additionalProperties: false + type: object + properties: + apiKey: + type: string + domain: + type: string + required: + - apiKey + - domain + slackOAuth2Api: + value: + additionalProperties: false + type: object + properties: + clientId: + type: string + clientSecret: + type: string + required: + - clientId + - clientSecret + '401': + $ref: '#/components/responses/Unauthorized' + '404': + $ref: '#/components/responses/NotFound' + /executions: + get: + x-eov-operation-id: getExecutions + x-eov-operation-handler: v1/handlers/executions/executions.handler + tags: + - Execution + summary: Retrieve all executions + description: Retrieve all executions from your instance. + parameters: + - $ref: '#/components/parameters/IncludeData' + - name: status + in: query + description: Status to filter the executions by. + required: false + schema: + type: string + enum: + - error + - success + - waiting + - name: workflowId + in: query + description: Workflow to filter the executions by. + required: false + schema: + type: string + example: '1000' + - $ref: '#/components/parameters/Limit' + - $ref: '#/components/parameters/Cursor' + responses: + '200': + description: Operation successful. + content: + application/json: + schema: + $ref: '#/components/schemas/ExecutionList' + '401': + $ref: '#/components/responses/Unauthorized' + '404': + $ref: '#/components/responses/NotFound' + /executions/{id}: + get: + x-eov-operation-id: getExecution + x-eov-operation-handler: v1/handlers/executions/executions.handler + tags: + - Execution + summary: Retrieve an execution + description: Retrieve an execution from you instance. + parameters: + - $ref: '#/components/parameters/ExecutionId' + - $ref: '#/components/parameters/IncludeData' + responses: + '200': + description: Operation successful. + content: + application/json: + schema: + $ref: '#/components/schemas/Execution' + '401': + $ref: '#/components/responses/Unauthorized' + '404': + $ref: '#/components/responses/NotFound' + delete: + x-eov-operation-id: deleteExecution + x-eov-operation-handler: v1/handlers/executions/executions.handler + tags: + - Execution + summary: Delete an execution + description: Deletes an execution from your instance. + parameters: + - $ref: '#/components/parameters/ExecutionId' + responses: + '200': + description: Operation successful. + content: + application/json: + schema: + $ref: '#/components/schemas/Execution' + '401': + $ref: '#/components/responses/Unauthorized' + '404': + $ref: '#/components/responses/NotFound' + /workflows: + post: + x-eov-operation-id: createWorkflow + x-eov-operation-handler: v1/handlers/workflows/workflows.handler + tags: + - Workflow + summary: Create a workflow + description: Create a workflow in your instance. + requestBody: + description: Created workflow object. + content: + application/json: + schema: + $ref: '#/components/schemas/Workflow' + required: true + responses: + '200': + description: A workflow object + content: + application/json: + schema: + $ref: '#/components/schemas/Workflow' + '400': + $ref: '#/components/responses/BadRequest' + '401': + $ref: '#/components/responses/Unauthorized' + get: + x-eov-operation-id: getWorkflows + x-eov-operation-handler: v1/handlers/workflows/workflows.handler + tags: + - Workflow + summary: Retrieve all workflows + description: Retrieve all workflows from your instance. + parameters: + - name: active + in: query + schema: + type: boolean + example: true + - name: tags + in: query + required: false + explode: false + allowReserved: true + schema: + type: string + example: test,production + - $ref: '#/components/parameters/Limit' + - $ref: '#/components/parameters/Cursor' + responses: + '200': + description: Operation successful. + content: + application/json: + schema: + $ref: '#/components/schemas/WorkflowList' + '401': + $ref: '#/components/responses/Unauthorized' + /workflows/{id}: + get: + x-eov-operation-id: getWorkflow + x-eov-operation-handler: v1/handlers/workflows/workflows.handler + tags: + - Workflow + summary: Retrieves a workflow + description: Retrieves a workflow. + parameters: + - $ref: '#/components/parameters/WorkflowId' + responses: + '200': + description: Operation successful. + content: + application/json: + schema: + $ref: '#/components/schemas/Workflow' + '401': + $ref: '#/components/responses/Unauthorized' + '404': + $ref: '#/components/responses/NotFound' + delete: + x-eov-operation-id: deleteWorkflow + x-eov-operation-handler: v1/handlers/workflows/workflows.handler + tags: + - Workflow + summary: Delete a workflow + description: Deletes a workflow. + parameters: + - $ref: '#/components/parameters/WorkflowId' + responses: + '200': + description: Operation successful. + content: + application/json: + schema: + $ref: '#/components/schemas/Workflow' + '401': + $ref: '#/components/responses/Unauthorized' + '404': + $ref: '#/components/responses/NotFound' + put: + x-eov-operation-id: updateWorkflow + x-eov-operation-handler: v1/handlers/workflows/workflows.handler + tags: + - Workflow + summary: Update a workflow + description: Update a workflow. + parameters: + - $ref: '#/components/parameters/WorkflowId' + requestBody: + description: Updated workflow object. + content: + application/json: + schema: + $ref: '#/components/schemas/Workflow' + required: true + responses: + '200': + description: Workflow object + content: + application/json: + schema: + $ref: '#/components/schemas/Workflow' + '400': + $ref: '#/components/responses/BadRequest' + '401': + $ref: '#/components/responses/Unauthorized' + '404': + $ref: '#/components/responses/NotFound' + /workflows/{id}/activate: + post: + x-eov-operation-id: activateWorkflow + x-eov-operation-handler: v1/handlers/workflows/workflows.handler + tags: + - Workflow + summary: Activate a workflow + description: Active a workflow. + parameters: + - $ref: '#/components/parameters/WorkflowId' + responses: + '200': + description: Workflow object + content: + application/json: + schema: + $ref: '#/components/schemas/Workflow' + '401': + $ref: '#/components/responses/Unauthorized' + '404': + $ref: '#/components/responses/NotFound' + /workflows/{id}/deactivate: + post: + x-eov-operation-id: deactivateWorkflow + x-eov-operation-handler: v1/handlers/workflows/workflows.handler + tags: + - Workflow + summary: Deactivate a workflow + description: Deactivate a workflow. + parameters: + - $ref: '#/components/parameters/WorkflowId' + responses: + '200': + description: Workflow object + content: + application/json: + schema: + $ref: '#/components/schemas/Workflow' + '401': + $ref: '#/components/responses/Unauthorized' + '404': + $ref: '#/components/responses/NotFound' +components: + schemas: + Error: + required: + - message + type: object + properties: + code: + type: string + message: + type: string + description: + type: string + Execution: + type: object + properties: + id: + type: string + example: '1000' + data: + type: object + finished: + type: boolean + example: true + mode: + type: string + enum: + - cli + - error + - integrated + - internal + - manual + - retry + - trigger + - webhook + retryOf: + type: string + nullable: true + retrySuccessId: + type: string + nullable: true + example: '2' + startedAt: + type: string + format: date-time + stoppedAt: + type: string + format: date-time + workflowId: + type: string + example: '1000' + waitTill: + type: string + nullable: true + format: date-time + Node: + type: object + additionalProperties: false + properties: + id: + type: string + example: 0f5532f9-36ba-4bef-86c7-30d607400b15 + name: + type: string + example: Jira + webhookId: + type: string + disabled: + type: boolean + notesInFlow: + type: boolean + notes: + type: string + type: + type: string + example: n8n-nodes-base.Jira + typeVersion: + type: number + example: 1 + executeOnce: + type: boolean + example: false + alwaysOutputData: + type: boolean + example: false + retryOnFail: + type: boolean + example: false + maxTries: + type: number + waitBetweenTries: + type: number + continueOnFail: + type: boolean + example: false + position: + type: array + items: + type: number + example: + - -100 + - 80 + parameters: + type: object + example: + additionalProperties: {} + credentials: + type: object + example: + jiraSoftwareCloudApi: + id: '35' + name: jiraApi + createdAt: + type: string + format: date-time + readOnly: true + updatedAt: + type: string + format: date-time + readOnly: true + Tag: + type: object + properties: + id: + type: string + example: '12' + name: + type: string + example: Production + createdAt: + type: string + format: date-time + readOnly: true + updatedAt: + type: string + format: date-time + readOnly: true + Workflow: + type: object + additionalProperties: false + required: + - name + - nodes + - connections + - settings + properties: + id: + type: string + readOnly: true + example: '1' + name: + type: string + example: Workflow 1 + active: + type: boolean + readOnly: true + createdAt: + type: string + format: date-time + readOnly: true + updatedAt: + type: string + format: date-time + readOnly: true + nodes: + type: array + items: + $ref: '#/components/schemas/Node' + connections: + type: object + example: + main: + - node: Jira + type: main + index: 0 + settings: + $ref: '#/components/schemas/WorkflowSettings' + staticData: + example: + lastId: 1 + nullable: true + anyOf: + - type: string + format: jsonString + nullable: true + - type: object + nullable: true + tags: + type: array + items: + $ref: '#/components/schemas/Tag' + readOnly: true + WorkflowSettings: + type: object + additionalProperties: false + properties: + saveExecutionProgress: + type: boolean + saveManualExecutions: + type: boolean + saveDataErrorExecution: + type: string + enum: + - all + - none + saveDataSuccessExecution: + type: string + enum: + - all + - none + executionTimeout: + type: number + example: 3600 + maxLength: 3600 + errorWorkflow: + type: string + example: '10' + description: The ID of the workflow that contains the error trigger node. + timezone: + type: string + example: America/New_York + ExecutionList: + type: object + properties: + data: + type: array + items: + $ref: '#/components/schemas/Execution' + nextCursor: + type: string + description: Paginate through executions by setting the cursor parameter to a nextCursor attribute returned by a previous request. Default value fetches the first "page" of the collection. + nullable: true + example: MTIzZTQ1NjctZTg5Yi0xMmQzLWE0NTYtNDI2NjE0MTc0MDA + WorkflowList: + type: object + properties: + data: + type: array + items: + $ref: '#/components/schemas/Workflow' + nextCursor: + type: string + description: Paginate through workflows by setting the cursor parameter to a nextCursor attribute returned by a previous request. Default value fetches the first "page" of the collection. + nullable: true + example: MTIzZTQ1NjctZTg5Yi0xMmQzLWE0NTYtNDI2NjE0MTc0MDA + Credential: + required: + - name + - type + - data + type: object + properties: + id: + type: string + readOnly: true + example: '42' + name: + type: string + example: Joe's Github Credentials + type: + type: string + example: github + data: + type: object + writeOnly: true + example: + token: ada612vad6fa5df4adf5a5dsf4389adsf76da7s + createdAt: + type: string + format: date-time + readOnly: true + example: '2022-04-29T11:02:29.842Z' + updatedAt: + type: string + format: date-time + readOnly: true + example: '2022-04-29T11:02:29.842Z' + CredentialType: + type: object + properties: + displayName: + type: string + readOnly: true + example: Email + name: + type: string + readOnly: true + example: email + type: + type: string + readOnly: true + example: string + default: + type: string + readOnly: true + example: string + Audit: + type: object + properties: + Credentials Risk Report: + type: object + example: + risk: credentials + sections: + - title: Credentials not used in any workflow + description: These credentials are not used in any workflow. Keeping unused credentials in your instance is an unneeded security risk. + recommendation: Consider deleting these credentials if you no longer need them. + location: + - kind: credential + id: '1' + name: My Test Account + Database Risk Report: + type: object + example: + risk: database + sections: + - title: Expressions in "Execute Query" fields in SQL nodes + description: This SQL node has an expression in the "Query" field of an "Execute Query" operation. Building a SQL query with an expression may lead to a SQL injection attack. + recommendation: Consider using the "Query Parameters" field to pass parameters to the query + or validating the input of the expression in the "Query" field.: null + location: + - kind: node + workflowId: '1' + workflowName: My Workflow + nodeId: 51eb5852-ce0b-4806-b4ff-e41322a4041a + nodeName: MySQL + nodeType: n8n-nodes-base.mySql + Filesystem Risk Report: + type: object + example: + risk: filesystem + sections: + - title: Nodes that interact with the filesystem + description: This node reads from and writes to any accessible file in the host filesystem. Sensitive file content may be manipulated through a node operation. + recommendation: Consider protecting any sensitive files in the host filesystem + or refactoring the workflow so that it does not require host filesystem interaction.: null + location: + - kind: node + workflowId: '1' + workflowName: My Workflow + nodeId: 51eb5852-ce0b-4806-b4ff-e41322a4041a + nodeName: Ready Binary file + nodeType: n8n-nodes-base.readBinaryFile + Nodes Risk Report: + type: object + example: + risk: nodes + sections: + - title: Community nodes + description: This node is sourced from the community. Community nodes are not vetted by the n8n team and have full access to the host system. + recommendation: Consider reviewing the source code in any community nodes installed in this n8n instance + and uninstalling any community nodes no longer used.: null + location: + - kind: community + nodeType: n8n-nodes-test.test + packageUrl: https://www.npmjs.com/package/n8n-nodes-test + Instance Risk Report: + type: object + example: + risk: execution + sections: + - title: Unprotected webhooks in instance + description: These webhook nodes have the "Authentication" field set to "None" and are not directly connected to a node to validate the payload. Every unprotected webhook allows your workflow to be called by any third party who knows the webhook URL. + recommendation: Consider setting the "Authentication" field to an option other than "None" + or validating the payload with one of the following nodes.: null + location: + - kind: community + nodeType: n8n-nodes-test.test + packageUrl: https://www.npmjs.com/package/n8n-nodes-test + responses: + NotFound: + description: The specified resource was not found. + Unauthorized: + description: Unauthorized + BadRequest: + description: The request is invalid or provides malformed data. + parameters: + Cursor: + name: cursor + in: query + description: Paginate through users by setting the cursor parameter to a nextCursor attribute returned by a previous request's response. Default value fetches the first "page" of the collection. See pagination for more detail. + required: false + style: form + schema: + type: string + Limit: + name: limit + in: query + description: The maximum number of items to return. + required: false + schema: + type: number + example: 100 + default: 100 + maximum: 250 + ExecutionId: + name: id + in: path + description: The ID of the execution. + required: true + schema: + type: string + WorkflowId: + name: id + in: path + description: The ID of the workflow. + required: true + schema: + type: string + IncludeData: + name: includeData + in: query + description: Whether or not to include the execution's detailed data. + required: false + schema: + type: boolean + securitySchemes: + ApiKeyAuth: + type: apiKey + in: header + name: X-N8N-API-KEY +security: + - ApiKeyAuth: [] diff --git a/server/node-service/src/plugins/n8n/openapi_1_1_1.yml b/server/node-service/src/plugins/n8n/openapi_1_1_1.yml new file mode 100644 index 0000000000..d3c3e10e25 --- /dev/null +++ b/server/node-service/src/plugins/n8n/openapi_1_1_1.yml @@ -0,0 +1,1861 @@ +openapi: 3.0.0 +info: + title: n8n Public API + description: n8n Public API + termsOfService: https://n8n.io/legal/terms + contact: + email: hello@n8n.io + license: + name: Sustainable Use License + url: https://github.com/n8n-io/n8n/blob/master/LICENSE.md + version: 1.1.1 +servers: + - url: /api/v1 +security: + - ApiKeyAuth: [] +tags: + - name: User + description: Operations about users + - name: Audit + description: Operations about security audit + - name: Execution + description: Operations about executions + - name: Workflow + description: Operations about workflows + - name: Credential + description: Operations about credentials + - name: Tags + description: Operations about tags + - name: SourceControl + description: Operations about source control + - name: Variables + description: Operations about variables + - name: Projects + description: Operations about projects +externalDocs: + description: n8n API documentation + url: https://docs.n8n.io/api/ +paths: + /audit: + post: + x-eov-operation-id: generateAudit + x-eov-operation-handler: v1/handlers/audit/audit.handler + tags: + - Audit + summary: Generate an audit + description: Generate a security audit for your n8n instance. + requestBody: + required: false + content: + application/json: + schema: + type: object + properties: + additionalOptions: + type: object + properties: + daysAbandonedWorkflow: + type: integer + description: Days for a workflow to be considered abandoned if not executed + categories: + type: array + items: + type: string + enum: + - credentials + - database + - nodes + - filesystem + - instance + responses: + '200': + description: Operation successful. + content: + application/json: + schema: + $ref: '#/components/schemas/audit' + '401': + $ref: '#/components/responses/unauthorized' + '500': + description: Internal server error. + /credentials: + post: + x-eov-operation-id: createCredential + x-eov-operation-handler: v1/handlers/credentials/credentials.handler + tags: + - Credential + summary: Create a credential + description: Creates a credential that can be used by nodes of the specified type. + requestBody: + description: Credential to be created. + required: true + content: + application/json: + schema: + $ref: '#/components/schemas/credential' + responses: + '200': + description: Operation successful. + content: + application/json: + schema: + $ref: '#/components/schemas/create-credential-response' + '401': + $ref: '#/components/responses/unauthorized' + '415': + description: Unsupported media type. + /credentials/{id}: + delete: + x-eov-operation-id: deleteCredential + x-eov-operation-handler: v1/handlers/credentials/credentials.handler + tags: + - Credential + summary: Delete credential by ID + description: Deletes a credential from your instance. You must be the owner of the credentials + operationId: deleteCredential + parameters: + - name: id + in: path + description: The credential ID that needs to be deleted + required: true + schema: + type: string + responses: + '200': + description: Operation successful. + content: + application/json: + schema: + $ref: '#/components/schemas/credential' + '401': + $ref: '#/components/responses/unauthorized' + '404': + $ref: '#/components/responses/notFound' + /credentials/schema/{credentialTypeName}: + get: + x-eov-operation-id: getCredentialType + x-eov-operation-handler: v1/handlers/credentials/credentials.handler + tags: + - Credential + summary: Show credential data schema + parameters: + - name: credentialTypeName + in: path + description: The credential type name that you want to get the schema for + required: true + schema: + type: string + responses: + '200': + description: Operation successful. + content: + application/json: + schema: + type: object + examples: + freshdeskApi: + value: + additionalProperties: false + type: object + properties: + apiKey: + type: string + domain: + type: string + required: + - apiKey + - domain + slackOAuth2Api: + value: + additionalProperties: false + type: object + properties: + clientId: + type: string + clientSecret: + type: string + required: + - clientId + - clientSecret + '401': + $ref: '#/components/responses/unauthorized' + '404': + $ref: '#/components/responses/notFound' + /executions: + get: + x-eov-operation-id: getExecutions + x-eov-operation-handler: v1/handlers/executions/executions.handler + tags: + - Execution + summary: Retrieve all executions + description: Retrieve all executions from your instance. + parameters: + - $ref: '#/components/parameters/includeData' + - name: status + in: query + description: Status to filter the executions by. + required: false + schema: + type: string + enum: + - error + - success + - waiting + - name: workflowId + in: query + description: Workflow to filter the executions by. + required: false + schema: + type: string + example: '1000' + - name: projectId + in: query + required: false + explode: false + allowReserved: true + schema: + type: string + example: VmwOO9HeTEj20kxM + - $ref: '#/components/parameters/limit' + - $ref: '#/components/parameters/cursor' + responses: + '200': + description: Operation successful. + content: + application/json: + schema: + $ref: '#/components/schemas/executionList' + '401': + $ref: '#/components/responses/unauthorized' + '404': + $ref: '#/components/responses/notFound' + /executions/{id}: + get: + x-eov-operation-id: getExecution + x-eov-operation-handler: v1/handlers/executions/executions.handler + tags: + - Execution + summary: Retrieve an execution + description: Retrieve an execution from your instance. + parameters: + - $ref: '#/components/parameters/executionId' + - $ref: '#/components/parameters/includeData' + responses: + '200': + description: Operation successful. + content: + application/json: + schema: + $ref: '#/components/schemas/execution' + '401': + $ref: '#/components/responses/unauthorized' + '404': + $ref: '#/components/responses/notFound' + delete: + x-eov-operation-id: deleteExecution + x-eov-operation-handler: v1/handlers/executions/executions.handler + tags: + - Execution + summary: Delete an execution + description: Deletes an execution from your instance. + parameters: + - $ref: '#/components/parameters/executionId' + responses: + '200': + description: Operation successful. + content: + application/json: + schema: + $ref: '#/components/schemas/execution' + '401': + $ref: '#/components/responses/unauthorized' + '404': + $ref: '#/components/responses/notFound' + /tags: + post: + x-eov-operation-id: createTag + x-eov-operation-handler: v1/handlers/tags/tags.handler + tags: + - Tags + summary: Create a tag + description: Create a tag in your instance. + requestBody: + description: Created tag object. + content: + application/json: + schema: + $ref: '#/components/schemas/tag' + required: true + responses: + '201': + description: A tag object + content: + application/json: + schema: + $ref: '#/components/schemas/tag' + '400': + $ref: '#/components/responses/badRequest' + '401': + $ref: '#/components/responses/unauthorized' + '409': + $ref: '#/components/responses/conflict' + get: + x-eov-operation-id: getTags + x-eov-operation-handler: v1/handlers/tags/tags.handler + tags: + - Tags + summary: Retrieve all tags + description: Retrieve all tags from your instance. + parameters: + - $ref: '#/components/parameters/limit' + - $ref: '#/components/parameters/cursor' + responses: + '200': + description: Operation successful. + content: + application/json: + schema: + $ref: '#/components/schemas/tagList' + '401': + $ref: '#/components/responses/unauthorized' + /tags/{id}: + get: + x-eov-operation-id: getTag + x-eov-operation-handler: v1/handlers/tags/tags.handler + tags: + - Tags + summary: Retrieves a tag + description: Retrieves a tag. + parameters: + - $ref: '#/components/parameters/tagId' + responses: + '200': + description: Operation successful. + content: + application/json: + schema: + $ref: '#/components/schemas/tag' + '401': + $ref: '#/components/responses/unauthorized' + '404': + $ref: '#/components/responses/notFound' + delete: + x-eov-operation-id: deleteTag + x-eov-operation-handler: v1/handlers/tags/tags.handler + tags: + - Tags + summary: Delete a tag + description: Deletes a tag. + parameters: + - $ref: '#/components/parameters/tagId' + responses: + '200': + description: Operation successful. + content: + application/json: + schema: + $ref: '#/components/schemas/tag' + '401': + $ref: '#/components/responses/unauthorized' + '403': + $ref: '#/components/responses/forbidden' + '404': + $ref: '#/components/responses/notFound' + put: + x-eov-operation-id: updateTag + x-eov-operation-handler: v1/handlers/tags/tags.handler + tags: + - Tags + summary: Update a tag + description: Update a tag. + parameters: + - $ref: '#/components/parameters/tagId' + requestBody: + description: Updated tag object. + content: + application/json: + schema: + $ref: '#/components/schemas/tag' + required: true + responses: + '200': + description: Tag object + content: + application/json: + schema: + $ref: '#/components/schemas/tag' + '400': + $ref: '#/components/responses/badRequest' + '401': + $ref: '#/components/responses/unauthorized' + '404': + $ref: '#/components/responses/notFound' + '409': + $ref: '#/components/responses/conflict' + /workflows: + post: + x-eov-operation-id: createWorkflow + x-eov-operation-handler: v1/handlers/workflows/workflows.handler + tags: + - Workflow + summary: Create a workflow + description: Create a workflow in your instance. + requestBody: + description: Created workflow object. + content: + application/json: + schema: + $ref: '#/components/schemas/workflow' + required: true + responses: + '200': + description: A workflow object + content: + application/json: + schema: + $ref: '#/components/schemas/workflow' + '400': + $ref: '#/components/responses/badRequest' + '401': + $ref: '#/components/responses/unauthorized' + get: + x-eov-operation-id: getWorkflows + x-eov-operation-handler: v1/handlers/workflows/workflows.handler + tags: + - Workflow + summary: Retrieve all workflows + description: Retrieve all workflows from your instance. + parameters: + - name: active + in: query + schema: + type: boolean + example: true + - name: tags + in: query + required: false + explode: false + allowReserved: true + schema: + type: string + example: test,production + - name: name + in: query + required: false + explode: false + allowReserved: true + schema: + type: string + example: My Workflow + - name: projectId + in: query + required: false + explode: false + allowReserved: true + schema: + type: string + example: VmwOO9HeTEj20kxM + - name: excludePinnedData + in: query + required: false + description: Set this to avoid retrieving pinned data + schema: + type: boolean + example: true + - $ref: '#/components/parameters/limit' + - $ref: '#/components/parameters/cursor' + responses: + '200': + description: Operation successful. + content: + application/json: + schema: + $ref: '#/components/schemas/workflowList' + '401': + $ref: '#/components/responses/unauthorized' + /workflows/{id}: + get: + x-eov-operation-id: getWorkflow + x-eov-operation-handler: v1/handlers/workflows/workflows.handler + tags: + - Workflow + summary: Retrieves a workflow + description: Retrieves a workflow. + parameters: + - name: excludePinnedData + in: query + required: false + description: Set this to avoid retrieving pinned data + schema: + type: boolean + example: true + - $ref: '#/components/parameters/workflowId' + responses: + '200': + description: Operation successful. + content: + application/json: + schema: + $ref: '#/components/schemas/workflow' + '401': + $ref: '#/components/responses/unauthorized' + '404': + $ref: '#/components/responses/notFound' + delete: + x-eov-operation-id: deleteWorkflow + x-eov-operation-handler: v1/handlers/workflows/workflows.handler + tags: + - Workflow + summary: Delete a workflow + description: Deletes a workflow. + parameters: + - $ref: '#/components/parameters/workflowId' + responses: + '200': + description: Operation successful. + content: + application/json: + schema: + $ref: '#/components/schemas/workflow' + '401': + $ref: '#/components/responses/unauthorized' + '404': + $ref: '#/components/responses/notFound' + put: + x-eov-operation-id: updateWorkflow + x-eov-operation-handler: v1/handlers/workflows/workflows.handler + tags: + - Workflow + summary: Update a workflow + description: Update a workflow. + parameters: + - $ref: '#/components/parameters/workflowId' + requestBody: + description: Updated workflow object. + content: + application/json: + schema: + $ref: '#/components/schemas/workflow' + required: true + responses: + '200': + description: Workflow object + content: + application/json: + schema: + $ref: '#/components/schemas/workflow' + '400': + $ref: '#/components/responses/badRequest' + '401': + $ref: '#/components/responses/unauthorized' + '404': + $ref: '#/components/responses/notFound' + /workflows/{id}/activate: + post: + x-eov-operation-id: activateWorkflow + x-eov-operation-handler: v1/handlers/workflows/workflows.handler + tags: + - Workflow + summary: Activate a workflow + description: Active a workflow. + parameters: + - $ref: '#/components/parameters/workflowId' + responses: + '200': + description: Workflow object + content: + application/json: + schema: + $ref: '#/components/schemas/workflow' + '401': + $ref: '#/components/responses/unauthorized' + '404': + $ref: '#/components/responses/notFound' + /workflows/{id}/deactivate: + post: + x-eov-operation-id: deactivateWorkflow + x-eov-operation-handler: v1/handlers/workflows/workflows.handler + tags: + - Workflow + summary: Deactivate a workflow + description: Deactivate a workflow. + parameters: + - $ref: '#/components/parameters/workflowId' + responses: + '200': + description: Workflow object + content: + application/json: + schema: + $ref: '#/components/schemas/workflow' + '401': + $ref: '#/components/responses/unauthorized' + '404': + $ref: '#/components/responses/notFound' + /workflows/{id}/transfer: + put: + x-eov-operation-id: transferWorkflow + x-eov-operation-handler: v1/handlers/workflows/workflows.handler + tags: + - Workflow + summary: Transfer a workflow to another project. + description: Transfer a workflow to another project. + parameters: + - $ref: '#/components/parameters/workflowId' + requestBody: + description: Destination project information for the workflow transfer. + content: + application/json: + schema: + type: object + properties: + destinationProjectId: + type: string + description: The ID of the project to transfer the workflow to. + required: + - destinationProjectId + required: true + responses: + '200': + description: Operation successful. + '400': + $ref: '#/components/responses/badRequest' + '401': + $ref: '#/components/responses/unauthorized' + '404': + $ref: '#/components/responses/notFound' + /credentials/{id}/transfer: + put: + x-eov-operation-id: transferCredential + x-eov-operation-handler: v1/handlers/credentials/credentials.handler + tags: + - Workflow + summary: Transfer a credential to another project. + description: Transfer a credential to another project. + parameters: + - $ref: '#/components/parameters/credentialId' + requestBody: + description: Destination project for the credential transfer. + content: + application/json: + schema: + type: object + properties: + destinationProjectId: + type: string + description: The ID of the project to transfer the credential to. + required: + - destinationProjectId + required: true + responses: + '200': + description: Operation successful. + '400': + $ref: '#/components/responses/badRequest' + '401': + $ref: '#/components/responses/unauthorized' + '404': + $ref: '#/components/responses/notFound' + /workflows/{id}/tags: + get: + x-eov-operation-id: getWorkflowTags + x-eov-operation-handler: v1/handlers/workflows/workflows.handler + tags: + - Workflow + summary: Get workflow tags + description: Get workflow tags. + parameters: + - $ref: '#/components/parameters/workflowId' + responses: + '200': + description: List of tags + content: + application/json: + schema: + $ref: '#/components/schemas/workflowTags' + '400': + $ref: '#/components/responses/badRequest' + '401': + $ref: '#/components/responses/unauthorized' + '404': + $ref: '#/components/responses/notFound' + put: + x-eov-operation-id: updateWorkflowTags + x-eov-operation-handler: v1/handlers/workflows/workflows.handler + tags: + - Workflow + summary: Update tags of a workflow + description: Update tags of a workflow. + parameters: + - $ref: '#/components/parameters/workflowId' + requestBody: + description: List of tags + content: + application/json: + schema: + $ref: '#/components/schemas/tagIds' + required: true + responses: + '200': + description: List of tags after add the tag + content: + application/json: + schema: + $ref: '#/components/schemas/workflowTags' + '400': + $ref: '#/components/responses/badRequest' + '401': + $ref: '#/components/responses/unauthorized' + '404': + $ref: '#/components/responses/notFound' + /users: + get: + x-eov-operation-id: getUsers + x-eov-operation-handler: v1/handlers/users/users.handler.ee + tags: + - User + summary: Retrieve all users + description: Retrieve all users from your instance. Only available for the instance owner. + parameters: + - $ref: '#/components/parameters/limit' + - $ref: '#/components/parameters/cursor' + - $ref: '#/components/parameters/includeRole' + - name: projectId + in: query + required: false + explode: false + allowReserved: true + schema: + type: string + example: VmwOO9HeTEj20kxM + responses: + '200': + description: Operation successful. + content: + application/json: + schema: + $ref: '#/components/schemas/userList' + '401': + $ref: '#/components/responses/unauthorized' + post: + x-eov-operation-id: createUser + x-eov-operation-handler: v1/handlers/users/users.handler.ee + tags: + - User + summary: Create multiple users + description: Create one or more users. + requestBody: + description: Array of users to be created. + required: true + content: + application/json: + schema: + type: array + items: + type: object + properties: + email: + type: string + format: email + role: + type: string + enum: + - global:admin + - global:member + required: + - email + responses: + '200': + description: Operation successful. + content: + application/json: + schema: + type: object + properties: + user: + type: object + properties: + id: + type: string + email: + type: string + inviteAcceptUrl: + type: string + emailSent: + type: boolean + error: + type: string + '401': + $ref: '#/components/responses/unauthorized' + '403': + $ref: '#/components/responses/forbidden' + /users/{id}: + get: + x-eov-operation-id: getUser + x-eov-operation-handler: v1/handlers/users/users.handler.ee + tags: + - User + summary: Get user by ID/Email + description: Retrieve a user from your instance. Only available for the instance owner. + parameters: + - $ref: '#/components/parameters/userIdentifier' + - $ref: '#/components/parameters/includeRole' + responses: + '200': + description: Operation successful. + content: + application/json: + schema: + $ref: '#/components/schemas/user' + '401': + $ref: '#/components/responses/unauthorized' + delete: + x-eov-operation-id: deleteUser + x-eov-operation-handler: v1/handlers/users/users.handler.ee + tags: + - User + summary: Delete a user + description: Delete a user from your instance. + parameters: + - $ref: '#/components/parameters/userIdentifier' + responses: + '204': + description: Operation successful. + '401': + $ref: '#/components/responses/unauthorized' + '403': + $ref: '#/components/responses/forbidden' + '404': + $ref: '#/components/responses/notFound' + /users/{id}/role: + patch: + x-eov-operation-id: changeRole + x-eov-operation-handler: v1/handlers/users/users.handler.ee + tags: + - User + summary: Change a user's global role + description: Change a user's global role + parameters: + - $ref: '#/components/parameters/userIdentifier' + requestBody: + description: New role for the user + required: true + content: + application/json: + schema: + type: object + properties: + newRoleName: + type: string + enum: + - global:admin + - global:member + required: + - newRoleName + responses: + '200': + description: Operation successful. + '401': + $ref: '#/components/responses/unauthorized' + '403': + $ref: '#/components/responses/forbidden' + '404': + $ref: '#/components/responses/notFound' + /source-control/pull: + post: + x-eov-operation-id: pull + x-eov-operation-handler: v1/handlers/source-control/source-control.handler + tags: + - SourceControl + summary: Pull changes from the remote repository + description: Requires the Source Control feature to be licensed and connected to a repository. + requestBody: + description: Pull options + required: true + content: + application/json: + schema: + $ref: '#/components/schemas/pull' + responses: + '200': + description: Import result + content: + application/json: + schema: + $ref: '#/components/schemas/importResult' + '400': + $ref: '#/components/responses/badRequest' + '409': + $ref: '#/components/responses/conflict' + /variables: + post: + x-eov-operation-id: createVariable + x-eov-operation-handler: v1/handlers/variables/variables.handler + tags: + - Variables + summary: Create a variable + description: Create a variable in your instance. + requestBody: + description: Payload for variable to create. + content: + application/json: + schema: + $ref: '#/components/schemas/variable' + required: true + responses: + '201': + description: Operation successful. + '400': + $ref: '#/components/responses/badRequest' + '401': + $ref: '#/components/responses/unauthorized' + get: + x-eov-operation-id: getVariables + x-eov-operation-handler: v1/handlers/variables/variables.handler + tags: + - Variables + summary: Retrieve variables + description: Retrieve variables from your instance. + parameters: + - $ref: '#/components/parameters/limit' + - $ref: '#/components/parameters/cursor' + responses: + '200': + description: Operation successful. + content: + application/json: + schema: + $ref: '#/components/schemas/variableList' + '401': + $ref: '#/components/responses/unauthorized' + /variables/{id}: + delete: + x-eov-operation-id: deleteVariable + x-eov-operation-handler: v1/handlers/variables/variables.handler + tags: + - Variables + summary: Delete a variable + description: Delete a variable from your instance. + parameters: + - $ref: '#/components/parameters/variableId' + responses: + '204': + description: Operation successful. + '401': + $ref: '#/components/responses/unauthorized' + '404': + $ref: '#/components/responses/notFound' + put: + x-eov-operation-id: updateVariable + x-eov-operation-handler: v1/handlers/variables/variables.handler + tags: + - Variables + summary: Update a variable + description: Update a variable from your instance. + parameters: + - $ref: '#/components/parameters/variableId' + requestBody: + description: Updated variable object. + content: + application/json: + schema: + $ref: '#/components/schemas/variable' + required: true + responses: + '204': + description: Operation successful. + '400': + $ref: '#/components/responses/badRequest' + '401': + $ref: '#/components/responses/unauthorized' + '403': + $ref: '#/components/responses/forbidden' + '404': + $ref: '#/components/responses/notFound' + /projects: + post: + x-eov-operation-id: createProject + x-eov-operation-handler: v1/handlers/projects/projects.handler + tags: + - Projects + summary: Create a project + description: Create a project in your instance. + requestBody: + description: Payload for project to create. + content: + application/json: + schema: + $ref: '#/components/schemas/project' + required: true + responses: + '201': + description: Operation successful. + '400': + $ref: '#/components/responses/badRequest' + '401': + $ref: '#/components/responses/unauthorized' + get: + x-eov-operation-id: getProjects + x-eov-operation-handler: v1/handlers/projects/projects.handler + tags: + - Projects + summary: Retrieve projects + description: Retrieve projects from your instance. + parameters: + - $ref: '#/components/parameters/limit' + - $ref: '#/components/parameters/cursor' + responses: + '200': + description: Operation successful. + content: + application/json: + schema: + $ref: '#/components/schemas/projectList' + '401': + $ref: '#/components/responses/unauthorized' + /projects/{projectId}: + delete: + x-eov-operation-id: deleteProject + x-eov-operation-handler: v1/handlers/projects/projects.handler + tags: + - Projects + summary: Delete a project + description: Delete a project from your instance. + parameters: + - $ref: '#/components/parameters/projectId' + responses: + '204': + description: Operation successful. + '401': + $ref: '#/components/responses/unauthorized' + '403': + $ref: '#/components/responses/forbidden' + '404': + $ref: '#/components/responses/notFound' + put: + x-eov-operation-id: updateProject + x-eov-operation-handler: v1/handlers/projects/projects.handler + tags: + - Project + summary: Update a project + description: Update a project. + parameters: + - $ref: '#/components/parameters/projectId' + requestBody: + description: Updated project object. + content: + application/json: + schema: + $ref: '#/components/schemas/project' + required: true + responses: + '204': + description: Operation successful. + '400': + $ref: '#/components/responses/badRequest' + '401': + $ref: '#/components/responses/unauthorized' + '403': + $ref: '#/components/responses/forbidden' + '404': + $ref: '#/components/responses/notFound' +components: + schemas: + audit: + type: object + properties: + Credentials Risk Report: + type: object + example: + risk: credentials + sections: + - title: Credentials not used in any workflow + description: These credentials are not used in any workflow. Keeping unused credentials in your instance is an unneeded security risk. + recommendation: Consider deleting these credentials if you no longer need them. + location: + - kind: credential + id: '1' + name: My Test Account + Database Risk Report: + type: object + example: + risk: database + sections: + - title: Expressions in "Execute Query" fields in SQL nodes + description: This SQL node has an expression in the "Query" field of an "Execute Query" operation. Building a SQL query with an expression may lead to a SQL injection attack. + recommendation: Consider using the "Query Parameters" field to pass parameters to the query + or validating the input of the expression in the "Query" field.: null + location: + - kind: node + workflowId: '1' + workflowName: My Workflow + nodeId: 51eb5852-ce0b-4806-b4ff-e41322a4041a + nodeName: MySQL + nodeType: n8n-nodes-base.mySql + Filesystem Risk Report: + type: object + example: + risk: filesystem + sections: + - title: Nodes that interact with the filesystem + description: This node reads from and writes to any accessible file in the host filesystem. Sensitive file content may be manipulated through a node operation. + recommendation: Consider protecting any sensitive files in the host filesystem + or refactoring the workflow so that it does not require host filesystem interaction.: null + location: + - kind: node + workflowId: '1' + workflowName: My Workflow + nodeId: 51eb5852-ce0b-4806-b4ff-e41322a4041a + nodeName: Ready Binary file + nodeType: n8n-nodes-base.readBinaryFile + Nodes Risk Report: + type: object + example: + risk: nodes + sections: + - title: Community nodes + description: This node is sourced from the community. Community nodes are not vetted by the n8n team and have full access to the host system. + recommendation: Consider reviewing the source code in any community nodes installed in this n8n instance + and uninstalling any community nodes no longer used.: null + location: + - kind: community + nodeType: n8n-nodes-test.test + packageUrl: https://www.npmjs.com/package/n8n-nodes-test + Instance Risk Report: + type: object + example: + risk: execution + sections: + - title: Unprotected webhooks in instance + description: These webhook nodes have the "Authentication" field set to "None" and are not directly connected to a node to validate the payload. Every unprotected webhook allows your workflow to be called by any third party who knows the webhook URL. + recommendation: Consider setting the "Authentication" field to an option other than "None" + or validating the payload with one of the following nodes.: null + location: + - kind: community + nodeType: n8n-nodes-test.test + packageUrl: https://www.npmjs.com/package/n8n-nodes-test + credential: + required: + - name + - type + - data + type: object + properties: + id: + type: string + readOnly: true + example: R2DjclaysHbqn778 + name: + type: string + example: Joe's Github Credentials + type: + type: string + example: github + data: + type: object + writeOnly: true + example: + token: ada612vad6fa5df4adf5a5dsf4389adsf76da7s + createdAt: + type: string + format: date-time + readOnly: true + example: '2022-04-29T11:02:29.842Z' + updatedAt: + type: string + format: date-time + readOnly: true + example: '2022-04-29T11:02:29.842Z' + create-credential-response: + required: + - id + - name + - type + - createdAt + - updatedAt + type: object + properties: + id: + type: string + readOnly: true + example: vHxaz5UaCghVYl9C + name: + type: string + example: John's Github account + type: + type: string + example: github + createdAt: + type: string + format: date-time + readOnly: true + example: '2022-04-29T11:02:29.842Z' + updatedAt: + type: string + format: date-time + readOnly: true + example: '2022-04-29T11:02:29.842Z' + execution: + type: object + properties: + id: + type: number + example: 1000 + data: + type: object + finished: + type: boolean + example: true + mode: + type: string + enum: + - cli + - error + - integrated + - internal + - manual + - retry + - trigger + - webhook + retryOf: + type: number + nullable: true + retrySuccessId: + type: number + nullable: true + example: '2' + startedAt: + type: string + format: date-time + stoppedAt: + type: string + format: date-time + workflowId: + type: number + example: '1000' + waitTill: + type: string + nullable: true + format: date-time + customData: + type: object + executionList: + type: object + properties: + data: + type: array + items: + $ref: '#/components/schemas/execution' + nextCursor: + type: string + description: Paginate through executions by setting the cursor parameter to a nextCursor attribute returned by a previous request. Default value fetches the first "page" of the collection. + nullable: true + example: MTIzZTQ1NjctZTg5Yi0xMmQzLWE0NTYtNDI2NjE0MTc0MDA + tag: + type: object + additionalProperties: false + required: + - name + properties: + id: + type: string + readOnly: true + example: 2tUt1wbLX592XDdX + name: + type: string + example: Production + createdAt: + type: string + format: date-time + readOnly: true + updatedAt: + type: string + format: date-time + readOnly: true + tagList: + type: object + properties: + data: + type: array + items: + $ref: '#/components/schemas/tag' + nextCursor: + type: string + description: Paginate through tags by setting the cursor parameter to a nextCursor attribute returned by a previous request. Default value fetches the first "page" of the collection. + nullable: true + example: MTIzZTQ1NjctZTg5Yi0xMmQzLWE0NTYtNDI2NjE0MTc0MDA + node: + type: object + additionalProperties: false + properties: + id: + type: string + example: 0f5532f9-36ba-4bef-86c7-30d607400b15 + name: + type: string + example: Jira + webhookId: + type: string + disabled: + type: boolean + notesInFlow: + type: boolean + notes: + type: string + type: + type: string + example: n8n-nodes-base.Jira + typeVersion: + type: number + example: 1 + executeOnce: + type: boolean + example: false + alwaysOutputData: + type: boolean + example: false + retryOnFail: + type: boolean + example: false + maxTries: + type: number + waitBetweenTries: + type: number + continueOnFail: + type: boolean + example: false + description: use onError instead + deprecated: true + onError: + type: string + example: stopWorkflow + position: + type: array + items: + type: number + example: + - -100 + - 80 + parameters: + type: object + example: + additionalProperties: {} + credentials: + type: object + example: + jiraSoftwareCloudApi: + id: '35' + name: jiraApi + createdAt: + type: string + format: date-time + readOnly: true + updatedAt: + type: string + format: date-time + readOnly: true + workflowSettings: + type: object + additionalProperties: false + properties: + saveExecutionProgress: + type: boolean + saveManualExecutions: + type: boolean + saveDataErrorExecution: + type: string + enum: + - all + - none + saveDataSuccessExecution: + type: string + enum: + - all + - none + executionTimeout: + type: number + example: 3600 + maxLength: 3600 + errorWorkflow: + type: string + example: VzqKEW0ShTXA5vPj + description: The ID of the workflow that contains the error trigger node. + timezone: + type: string + example: America/New_York + executionOrder: + type: string + example: v1 + workflow: + type: object + additionalProperties: false + required: + - name + - nodes + - connections + - settings + properties: + id: + type: string + readOnly: true + example: 2tUt1wbLX592XDdX + name: + type: string + example: Workflow 1 + active: + type: boolean + readOnly: true + createdAt: + type: string + format: date-time + readOnly: true + updatedAt: + type: string + format: date-time + readOnly: true + nodes: + type: array + items: + $ref: '#/components/schemas/node' + connections: + type: object + example: + main: + - node: Jira + type: main + index: 0 + settings: + $ref: '#/components/schemas/workflowSettings' + staticData: + example: + lastId: 1 + anyOf: + - type: string + format: jsonString + nullable: true + - type: object + nullable: true + tags: + type: array + items: + $ref: '#/components/schemas/tag' + readOnly: true + workflowList: + type: object + properties: + data: + type: array + items: + $ref: '#/components/schemas/workflow' + nextCursor: + type: string + description: Paginate through workflows by setting the cursor parameter to a nextCursor attribute returned by a previous request. Default value fetches the first "page" of the collection. + nullable: true + example: MTIzZTQ1NjctZTg5Yi0xMmQzLWE0NTYtNDI2NjE0MTc0MDA + workflowTags: + type: array + items: + $ref: '#/components/schemas/tag' + tagIds: + type: array + items: + type: object + additionalProperties: false + required: + - id + properties: + id: + type: string + example: 2tUt1wbLX592XDdX + user: + required: + - email + type: object + properties: + id: + type: string + readOnly: true + example: 123e4567-e89b-12d3-a456-426614174000 + email: + type: string + format: email + example: john.doe@company.com + firstName: + maxLength: 32 + type: string + description: User's first name + readOnly: true + example: john + lastName: + maxLength: 32 + type: string + description: User's last name + readOnly: true + example: Doe + isPending: + type: boolean + description: Whether the user finished setting up their account in response to the invitation (true) or not (false). + readOnly: true + createdAt: + type: string + description: Time the user was created. + format: date-time + readOnly: true + updatedAt: + type: string + description: Last time the user was updated. + format: date-time + readOnly: true + role: + type: string + example: owner + readOnly: true + userList: + type: object + properties: + data: + type: array + items: + $ref: '#/components/schemas/user' + nextCursor: + type: string + description: Paginate through users by setting the cursor parameter to a nextCursor attribute returned by a previous request. Default value fetches the first "page" of the collection. + nullable: true + example: MTIzZTQ1NjctZTg5Yi0xMmQzLWE0NTYtNDI2NjE0MTc0MDA + pull: + type: object + properties: + force: + type: boolean + example: true + variables: + type: object + example: + foo: bar + importResult: + type: object + additionalProperties: true + properties: + variables: + type: object + properties: + added: + type: array + items: + type: string + changed: + type: array + items: + type: string + credentials: + type: array + items: + type: object + properties: + id: + type: string + name: + type: string + type: + type: string + workflows: + type: array + items: + type: object + properties: + id: + type: string + name: + type: string + tags: + type: object + properties: + tags: + type: array + items: + type: object + properties: + id: + type: string + name: + type: string + mappings: + type: array + items: + type: object + properties: + workflowId: + type: string + tagId: + type: string + variable: + type: object + additionalProperties: false + required: + - key + - value + properties: + id: + type: string + readOnly: true + key: + type: string + value: + type: string + example: test + type: + type: string + readOnly: true + variableList: + type: object + properties: + data: + type: array + items: + $ref: '#/components/schemas/variable' + nextCursor: + type: string + description: Paginate through variables by setting the cursor parameter to a nextCursor attribute returned by a previous request. Default value fetches the first "page" of the collection. + nullable: true + example: MTIzZTQ1NjctZTg5Yi0xMmQzLWE0NTYtNDI2NjE0MTc0MDA + project: + type: object + additionalProperties: false + required: + - name + properties: + id: + type: string + readOnly: true + name: + type: string + type: + type: string + readOnly: true + projectList: + type: object + properties: + data: + type: array + items: + $ref: '#/components/schemas/project' + nextCursor: + type: string + description: Paginate through projects by setting the cursor parameter to a nextCursor attribute returned by a previous request. Default value fetches the first "page" of the collection. + nullable: true + example: MTIzZTQ1NjctZTg5Yi0xMmQzLWE0NTYtNDI2NjE0MTc0MDA + error: + required: + - message + type: object + properties: + code: + type: string + message: + type: string + description: + type: string + role: + readOnly: true + type: object + properties: + id: + type: number + readOnly: true + example: 1 + name: + type: string + example: owner + readOnly: true + scope: + type: string + readOnly: true + example: global + createdAt: + type: string + description: Time the role was created. + format: date-time + readOnly: true + updatedAt: + type: string + description: Last time the role was updated. + format: date-time + readOnly: true + credentialType: + type: object + properties: + displayName: + type: string + readOnly: true + example: Email + name: + type: string + readOnly: true + example: email + type: + type: string + readOnly: true + example: string + default: + type: string + readOnly: true + example: string + Error: + $ref: '#/components/schemas/error' + Role: + $ref: '#/components/schemas/role' + Execution: + $ref: '#/components/schemas/execution' + Node: + $ref: '#/components/schemas/node' + Tag: + $ref: '#/components/schemas/tag' + Workflow: + $ref: '#/components/schemas/workflow' + WorkflowSettings: + $ref: '#/components/schemas/workflowSettings' + ExecutionList: + $ref: '#/components/schemas/executionList' + WorkflowList: + $ref: '#/components/schemas/workflowList' + Credential: + $ref: '#/components/schemas/credential' + CredentialType: + $ref: '#/components/schemas/credentialType' + Audit: + $ref: '#/components/schemas/audit' + Pull: + $ref: '#/components/schemas/pull' + ImportResult: + $ref: '#/components/schemas/importResult' + UserList: + $ref: '#/components/schemas/userList' + User: + $ref: '#/components/schemas/user' + responses: + unauthorized: + description: Unauthorized + notFound: + description: The specified resource was not found. + badRequest: + description: The request is invalid or provides malformed data. + conflict: + description: Conflict + forbidden: + description: Forbidden + NotFound: + $ref: '#/components/responses/notFound' + Unauthorized: + $ref: '#/components/responses/unauthorized' + BadRequest: + $ref: '#/components/responses/badRequest' + Conflict: + $ref: '#/components/responses/conflict' + Forbidden: + $ref: '#/components/responses/forbidden' + parameters: + includeData: + name: includeData + in: query + description: Whether or not to include the execution's detailed data. + required: false + schema: + type: boolean + limit: + name: limit + in: query + description: The maximum number of items to return. + required: false + schema: + type: number + example: 100 + default: 100 + maximum: 250 + cursor: + name: cursor + in: query + description: Paginate by setting the cursor parameter to the nextCursor attribute returned by the previous request's response. Default value fetches the first "page" of the collection. See pagination for more detail. + required: false + style: form + schema: + type: string + executionId: + name: id + in: path + description: The ID of the execution. + required: true + schema: + type: number + tagId: + name: id + in: path + description: The ID of the tag. + required: true + schema: + type: string + workflowId: + name: id + in: path + description: The ID of the workflow. + required: true + schema: + type: string + credentialId: + name: id + in: path + description: The ID of the credential. + required: true + schema: + type: string + includeRole: + name: includeRole + in: query + description: Whether to include the user's role or not. + required: false + schema: + type: boolean + example: true + default: false + userIdentifier: + name: id + in: path + description: The ID or email of the user. + required: true + schema: + type: string + format: identifier + variableId: + name: id + in: path + description: The ID of the variable. + required: true + schema: + type: string + projectId: + name: projectId + in: path + description: The ID of the project. + required: true + schema: + type: string + Cursor: + $ref: '#/components/parameters/cursor' + Limit: + $ref: '#/components/parameters/limit' + ExecutionId: + $ref: '#/components/parameters/executionId' + WorkflowId: + $ref: '#/components/parameters/workflowId' + TagId: + $ref: '#/components/parameters/tagId' + IncludeData: + $ref: '#/components/parameters/includeData' + UserIdentifier: + $ref: '#/components/parameters/userIdentifier' + IncludeRole: + $ref: '#/components/parameters/includeRole' + securitySchemes: + ApiKeyAuth: + type: apiKey + in: header + name: X-N8N-API-KEY diff --git a/server/node-service/yarn.lock b/server/node-service/yarn.lock index 3abb97be00..82e615b01e 100644 --- a/server/node-service/yarn.lock +++ b/server/node-service/yarn.lock @@ -6530,14 +6530,14 @@ __metadata: linkType: hard "fdir@npm:^6.4.4": - version: 6.4.4 - resolution: "fdir@npm:6.4.4" + version: 6.4.5 + resolution: "fdir@npm:6.4.5" peerDependencies: picomatch: ^3 || ^4 peerDependenciesMeta: picomatch: optional: true - checksum: 79043610236579ffbd0647c508b43bd030a2d034a17c43cf96813a00e8e92e51acdb115c6ddecef3b5812cc2692b976155b4f6413e51e3761f1e772fa019a321 + checksum: 14efd2d6617a6f9fb314916ccff64e00bdb96216f26542ec9dfa532ed60a7ebb45463f7009aa215c14071566bf43caeb8ba268ccb52a11e6b51e4aaa8cb58d81 languageName: node linkType: hard @@ -10570,12 +10570,12 @@ __metadata: linkType: hard "tinyglobby@npm:^0.2.12": - version: 0.2.13 - resolution: "tinyglobby@npm:0.2.13" + version: 0.2.14 + resolution: "tinyglobby@npm:0.2.14" dependencies: fdir: ^6.4.4 picomatch: ^4.0.2 - checksum: 3a2e87a2518cb3616057b0aa58be4f17771ae78c6890556516ae1e631f8ce4cfee1ba1dcb62fcc54a64e2bdd6c3104f4f3d021e1a3e3f8fb0875bca380b913e5 + checksum: 261e986e3f2062dec3a582303bad2ce31b4634b9348648b46828c000d464b012cf474e38f503312367d4117c3f2f18611992738fca684040758bba44c24de522 languageName: node linkType: hard