@geoinsight/react-components 1.1.3 → 1.1.5

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (121) hide show
  1. package/dist/cjs/components/button/index.d.ts +9 -0
  2. package/dist/cjs/components/button/index.stories.d.ts +19 -0
  3. package/dist/cjs/components/button/index.types.d.ts +50 -0
  4. package/dist/cjs/components/checkbox/index.d.ts +4 -0
  5. package/dist/cjs/components/checkbox/index.stories.d.ts +10 -0
  6. package/dist/cjs/components/checkbox/index.types.d.ts +48 -0
  7. package/dist/cjs/components/form/form-input.d.ts +4 -0
  8. package/dist/cjs/components/form/form-select.d.ts +4 -0
  9. package/dist/cjs/components/form/form-text-area.d.ts +4 -0
  10. package/dist/cjs/components/form/index.d.ts +4 -0
  11. package/dist/cjs/components/form/index.stories.d.ts +10 -0
  12. package/dist/cjs/components/form/index.types.d.ts +72 -0
  13. package/dist/cjs/components/input/index.d.ts +4 -0
  14. package/dist/cjs/components/input/index.stories.d.ts +13 -0
  15. package/dist/cjs/components/input/index.types.d.ts +56 -0
  16. package/dist/cjs/components/loading/index.d.ts +4 -0
  17. package/dist/cjs/components/loading/index.stories.d.ts +6 -0
  18. package/dist/cjs/components/loading/index.types.d.ts +11 -0
  19. package/dist/cjs/components/menu/index.d.ts +11 -0
  20. package/dist/cjs/components/menu/index.stories.d.ts +8 -0
  21. package/dist/cjs/components/menu/menu-button.d.ts +21 -0
  22. package/dist/cjs/components/menu/menu-content.d.ts +8 -0
  23. package/dist/cjs/components/menu/menu-item.d.ts +10 -0
  24. package/dist/cjs/components/menu/menu-root.d.ts +21 -0
  25. package/dist/cjs/components/menu/menu-utils.d.ts +1 -0
  26. package/dist/cjs/components/menu/menu-wrapper.d.ts +10 -0
  27. package/dist/cjs/components/modal/index.d.ts +4 -0
  28. package/dist/cjs/components/modal/index.stories.d.ts +11 -0
  29. package/dist/cjs/components/modal/index.types.d.ts +39 -0
  30. package/dist/cjs/components/range/hooks.d.ts +34 -0
  31. package/dist/cjs/components/range/index.d.ts +4 -0
  32. package/dist/cjs/components/range/index.stories.d.ts +10 -0
  33. package/dist/cjs/components/range/index.types.d.ts +22 -0
  34. package/dist/cjs/components/range/range-content.d.ts +16 -0
  35. package/dist/cjs/components/range/range-controls.d.ts +13 -0
  36. package/dist/cjs/components/range/range-thumb.d.ts +12 -0
  37. package/dist/cjs/components/range/values.d.ts +1 -0
  38. package/dist/cjs/components/select/index.d.ts +4 -0
  39. package/dist/cjs/components/select/index.stories.d.ts +10 -0
  40. package/dist/cjs/components/select/index.types.d.ts +53 -0
  41. package/dist/cjs/components/text-area/index.d.ts +5 -0
  42. package/dist/cjs/components/text-area/index.stories.d.ts +10 -0
  43. package/dist/cjs/components/text-area/index.types.d.ts +50 -0
  44. package/dist/cjs/context/loading/index.d.ts +24 -0
  45. package/dist/cjs/context/loading/index.stories.d.ts +8 -0
  46. package/dist/cjs/context/map/index.d.ts +20 -0
  47. package/dist/cjs/context/modal/index.d.ts +29 -0
  48. package/dist/cjs/context/modal/index.stories.d.ts +6 -0
  49. package/dist/cjs/context/theme/index.d.ts +18 -0
  50. package/dist/cjs/decorators/withColorScheme.d.ts +7 -0
  51. package/dist/cjs/decorators/withLoading.d.ts +2 -0
  52. package/dist/cjs/decorators/withMap.d.ts +2 -0
  53. package/dist/cjs/decorators/withModal.d.ts +2 -0
  54. package/dist/cjs/decorators/withWrapper.d.ts +2 -0
  55. package/dist/cjs/index.css +1138 -0
  56. package/dist/cjs/index.d.ts +17 -0
  57. package/dist/cjs/index.js +695 -0
  58. package/dist/cjs/index.js.map +1 -0
  59. package/dist/cjs/utils/html.d.ts +10 -0
  60. package/dist/cjs/utils/palette.d.ts +1 -0
  61. package/dist/esm/components/button/index.d.ts +9 -0
  62. package/dist/esm/components/button/index.stories.d.ts +19 -0
  63. package/dist/esm/components/button/index.types.d.ts +50 -0
  64. package/dist/esm/components/checkbox/index.d.ts +4 -0
  65. package/dist/esm/components/checkbox/index.stories.d.ts +10 -0
  66. package/dist/esm/components/checkbox/index.types.d.ts +48 -0
  67. package/dist/esm/components/form/form-input.d.ts +4 -0
  68. package/dist/esm/components/form/form-select.d.ts +4 -0
  69. package/dist/esm/components/form/form-text-area.d.ts +4 -0
  70. package/dist/esm/components/form/index.d.ts +4 -0
  71. package/dist/esm/components/form/index.stories.d.ts +10 -0
  72. package/dist/esm/components/form/index.types.d.ts +72 -0
  73. package/dist/esm/components/input/index.d.ts +4 -0
  74. package/dist/esm/components/input/index.stories.d.ts +13 -0
  75. package/dist/esm/components/input/index.types.d.ts +56 -0
  76. package/dist/esm/components/loading/index.d.ts +4 -0
  77. package/dist/esm/components/loading/index.stories.d.ts +6 -0
  78. package/dist/esm/components/loading/index.types.d.ts +11 -0
  79. package/dist/esm/components/menu/index.d.ts +11 -0
  80. package/dist/esm/components/menu/index.stories.d.ts +8 -0
  81. package/dist/esm/components/menu/menu-button.d.ts +21 -0
  82. package/dist/esm/components/menu/menu-content.d.ts +8 -0
  83. package/dist/esm/components/menu/menu-item.d.ts +10 -0
  84. package/dist/esm/components/menu/menu-root.d.ts +21 -0
  85. package/dist/esm/components/menu/menu-utils.d.ts +1 -0
  86. package/dist/esm/components/menu/menu-wrapper.d.ts +10 -0
  87. package/dist/esm/components/modal/index.d.ts +4 -0
  88. package/dist/esm/components/modal/index.stories.d.ts +11 -0
  89. package/dist/esm/components/modal/index.types.d.ts +39 -0
  90. package/dist/esm/components/range/hooks.d.ts +34 -0
  91. package/dist/esm/components/range/index.d.ts +4 -0
  92. package/dist/esm/components/range/index.stories.d.ts +10 -0
  93. package/dist/esm/components/range/index.types.d.ts +22 -0
  94. package/dist/esm/components/range/range-content.d.ts +16 -0
  95. package/dist/esm/components/range/range-controls.d.ts +13 -0
  96. package/dist/esm/components/range/range-thumb.d.ts +12 -0
  97. package/dist/esm/components/range/values.d.ts +1 -0
  98. package/dist/esm/components/select/index.d.ts +4 -0
  99. package/dist/esm/components/select/index.stories.d.ts +10 -0
  100. package/dist/esm/components/select/index.types.d.ts +53 -0
  101. package/dist/esm/components/text-area/index.d.ts +5 -0
  102. package/dist/esm/components/text-area/index.stories.d.ts +10 -0
  103. package/dist/esm/components/text-area/index.types.d.ts +50 -0
  104. package/dist/esm/context/loading/index.d.ts +24 -0
  105. package/dist/esm/context/loading/index.stories.d.ts +8 -0
  106. package/dist/esm/context/map/index.d.ts +20 -0
  107. package/dist/esm/context/modal/index.d.ts +29 -0
  108. package/dist/esm/context/modal/index.stories.d.ts +6 -0
  109. package/dist/esm/context/theme/index.d.ts +18 -0
  110. package/dist/esm/decorators/withColorScheme.d.ts +7 -0
  111. package/dist/esm/decorators/withLoading.d.ts +2 -0
  112. package/dist/esm/decorators/withMap.d.ts +2 -0
  113. package/dist/esm/decorators/withModal.d.ts +2 -0
  114. package/dist/esm/decorators/withWrapper.d.ts +2 -0
  115. package/dist/esm/index.css +1138 -0
  116. package/dist/esm/index.d.ts +17 -0
  117. package/dist/esm/index.js +672 -0
  118. package/dist/esm/index.js.map +1 -0
  119. package/dist/esm/utils/html.d.ts +10 -0
  120. package/dist/esm/utils/palette.d.ts +1 -0
  121. package/package.json +1 -1
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sources":["../../src/components/menu/menu-utils.ts","../../src/components/menu/menu-content.tsx","../../src/components/menu/menu-item.tsx","../../src/components/menu/menu-wrapper.tsx","../../src/components/menu/menu-root.tsx","../../src/components/button/index.tsx","../../src/components/menu/menu-button.tsx","../../src/components/menu/index.tsx","../../src/components/form/index.tsx","../../src/components/input/index.tsx","../../src/components/form/form-input.tsx","../../src/components/text-area/index.tsx","../../src/components/form/form-text-area.tsx","../../src/components/select/index.tsx","../../src/components/form/form-select.tsx","../../src/stories/assets/loading.gif","../../src/components/loading/index.tsx","../../src/components/modal/index.tsx","../../src/components/range/hooks.ts","../../src/context/theme/index.tsx","../../src/components/range/range-thumb.tsx","../../src/components/range/range-content.tsx","../../src/components/range/range-controls.tsx","../../src/components/range/index.tsx","../../src/components/checkbox/index.tsx","../../src/context/loading/index.tsx","../../src/context/modal/index.tsx"],"sourcesContent":["export const generateId = () => {\n return `id-${Math.random().toString(36).slice(2, 11)}`;\n};\n","/** React */\nimport React, { HTMLAttributes, useContext, useMemo } from \"react\";\n\n/** Hook */\nimport { useMenu } from \"./menu-root\";\n\n/** Props */\ntype Props = HTMLAttributes<HTMLDivElement> & {\n \"data-menu-id\"?: string | undefined;\n};\n\nexport function MenuContent({ children, ...props }: Props) {\n const { items } = useContext(useMenu());\n const menuId = useMemo(() => props[\"data-menu-id\"], [props]);\n const isExpanded = useMemo(() => {\n return items[menuId as string]?.isExpanded;\n }, [items, menuId]);\n\n if (!isExpanded) return;\n\n return <div {...props}>{children}</div>;\n}\n","/** React */\nimport React, {\n Children,\n ComponentType,\n HtmlHTMLAttributes,\n ReactElement,\n ReactNode,\n cloneElement,\n isValidElement,\n useContext,\n useEffect,\n useRef,\n} from \"react\";\n\n/** CSS */\nimport \"./index.css\";\n\n/** Hooks */\nimport { useMenu } from \"./menu-root\";\n\n/** Utils */\nimport { generateId } from \"./menu-utils\";\nimport { MenuButton } from \"./menu-button\";\nimport { MenuContent } from \"./menu-content\";\n\n/** Props */\ntype Props = HtmlHTMLAttributes<HTMLDivElement> & {\n children: ReactNode;\n};\n\nconst ALLOWED_CHILD_COMPONENT = [MenuButton.name, MenuContent.name];\n\nexport function MenuItem({ children, ...props }: Props) {\n const { addItem } = useContext(useMenu());\n const menuId = useRef<string>(\"\");\n\n useEffect(() => {\n menuId.current = generateId();\n\n addItem({\n id: menuId.current,\n isExpanded: true,\n });\n }, []);\n\n return (\n <div data-menu-id={menuId.current} {...props}>\n {Children.map(children, (child) => {\n if (!isValidElement(child)) return;\n\n const childComponent = child.type as ComponentType;\n\n if (!ALLOWED_CHILD_COMPONENT.includes(childComponent.name)) return;\n\n return cloneElement(child as ReactElement, {\n \"data-menu-id\": menuId.current,\n });\n })}\n </div>\n );\n}\n","/** React */\nimport React, {\n Children,\n ComponentType,\n ReactNode,\n cloneElement,\n isValidElement,\n useMemo,\n} from \"react\";\n\n/** CSS */\nimport \"./index.css\";\nimport { MenuItem } from \"./menu-item\";\n\n/** Props */\ntype MenuWrapperProps = {\n children: ReactNode;\n};\n\nconst ALLOWED_CHILD_COMPONENT = [MenuItem.name];\n\nexport function MenuWrapper({ children }: MenuWrapperProps) {\n const menuItemComponents = useMemo(() => {\n return Children.map(children, (child) => {\n if (!isValidElement(child)) return;\n\n const childComponent = child.type as ComponentType;\n\n if (!ALLOWED_CHILD_COMPONENT.includes(childComponent.name)) return;\n\n return cloneElement(child);\n });\n }, [children]);\n\n return <div className=\"menu\">{menuItemComponents}</div>;\n}\n","/** React */\nimport React, { ReactNode, createContext, useState } from \"react\";\n\n/** Wrapper */\nimport { MenuWrapper } from \"./menu-wrapper\";\n\n/** Types */\ntype Item = {\n id: string;\n isExpanded: boolean;\n};\n\n/** Context type */\ntype MenuContextType = {\n items: Record<string, Item>;\n addItem: (item: Item) => void;\n toggle: (id: string) => void;\n};\n\n/** Context */\nconst MenuContext = createContext({} as MenuContextType);\n\n/** Props */\ntype MenuRootProps = {\n children: ReactNode;\n isOpenByDefault?: true;\n};\n\nexport function MenuRoot({ children, isOpenByDefault }: MenuRootProps) {\n const [items, setItems] = useState<Record<string, Item>>({});\n\n const addItem = (item: Item) => {\n setItems((state) => ({\n ...state,\n [item.id]: {\n ...item,\n isExpanded: isOpenByDefault || false,\n },\n }));\n };\n\n const toggle = (id: string) => {\n setItems((state) => ({\n ...state,\n [id]: {\n ...items[id],\n isExpanded: !items[id].isExpanded || false,\n },\n }));\n };\n\n return (\n <MenuContext.Provider value={{ items, addItem, toggle }}>\n <MenuWrapper>{children}</MenuWrapper>\n </MenuContext.Provider>\n );\n}\n\nexport function useMenu() {\n if (MenuContext === undefined) {\n throw new Error(\"useMenu must be used within a MenuContext Provider\");\n }\n\n return MenuContext;\n}\n","import clsx from \"clsx\";\nimport { ButtonAsButton, ButtonAsLink } from \"./index.types\";\nimport \"./index.css\";\nimport { ReactElement, ReactNode } from \"react\";\n\nexport const Anchor = ({\n Custom,\n children,\n ...rest\n}: {\n Custom?: React.ComponentClass<any>;\n children?: ReactNode[];\n}) => {\n return Custom ? (\n <Custom {...rest}>{children}</Custom>\n ) : (\n <a {...rest}>{children}</a>\n );\n};\n\nexport function Button({\n children = \"Click me\",\n className = \"\",\n icon = undefined,\n isNewWindow = false,\n mode = \"primary\",\n size = \"medium\",\n as = \"button\",\n CustomAnchor,\n ...rest\n}: ButtonAsButton | ButtonAsLink): JSX.Element {\n return as === \"link\" ? (\n <Anchor\n Custom={CustomAnchor}\n {...(isNewWindow && { target: \"_blank\" })}\n className={clsx(\n `button ${className}`,\n `link__${mode}`,\n `button__${size}`\n )}\n {...(rest as React.AnchorHTMLAttributes<HTMLAnchorElement>)}\n >\n {children}\n {icon}\n </Anchor>\n ) : (\n <button\n className={clsx(\n \"button\",\n `button__${mode}`,\n `button__${size}`,\n className\n )}\n {...(rest as React.ButtonHTMLAttributes<HTMLButtonElement>)}\n >\n {children}\n {icon}\n </button>\n );\n}\n\nexport default Button;\n","/** React */\nimport React, {\n HtmlHTMLAttributes,\n ReactNode,\n useContext,\n useMemo,\n useState,\n} from \"react\";\n\n/** CSS */\nimport \"./index.css\";\nimport clsx from \"clsx\";\n\n/** Icons */\nimport { TfiAngleUp, TfiAngleDown } from \"react-icons/tfi\";\n\n/** Hook */\nimport { useMenu } from \"./menu-root\";\nimport { Anchor } from \"../button\";\n\n/** Props */\ntype Props = HtmlHTMLAttributes<HTMLDivElement> & {\n anchor?: React.AnchorHTMLAttributes<HTMLAnchorElement> & { Custom?: React.ComponentClass<any>;}\n children: ReactNode;\n buttonClassName?: string;\n nested?: boolean;\n subnested?: boolean;\n dropdown?: boolean;\n isLink?: boolean;\n isSelected?: boolean;\n handleCallbackClick?: () => void;\n \"data-menu-id\"?: string;\n};\n\nexport function MenuButton({\n anchor,\n children,\n buttonClassName,\n nested,\n subnested,\n dropdown,\n isLink,\n isSelected,\n handleCallbackClick,\n ...props\n}: Props) {\n const { toggle } = useContext(useMenu());\n const [isToggled, setIsToggled] = useState(false);\n const menuId = useMemo(() => props[\"data-menu-id\"], [props]);\n\n const handleClick = () => {\n toggle(menuId as string);\n setIsToggled(!isToggled);\n\n handleCallbackClick && handleCallbackClick();\n };\n\n return anchor ? (\n <Anchor\n className={clsx(\n \"menu-button\",\n {\n \"menu-button-dropdown\": dropdown,\n \"menu-button-nested\": nested,\n \"menu-button-subnested\": subnested,\n \"menu-button-is-link\": isLink,\n \"menu-button-is-selected\": isSelected,\n },\n buttonClassName\n )}\n {...(anchor as React.AnchorHTMLAttributes<HTMLAnchorElement>)}\n >\n {children}\n {dropdown ? (\n isToggled ? (\n <TfiAngleDown size=\"1rem\" />\n ) : (\n <TfiAngleUp size=\"1rem\" />\n )\n ) : null}\n </Anchor>\n ) : (\n <div\n role=\"button\"\n className={clsx(\n \"menu-button\",\n {\n \"menu-button-dropdown\": dropdown,\n \"menu-button-nested\": nested,\n \"menu-button-subnested\": subnested,\n \"menu-button-is-link\": isLink,\n \"menu-button-is-selected\": isSelected,\n },\n buttonClassName\n )}\n onClick={handleClick}\n {...props}\n >\n {children}\n {dropdown ? (\n isToggled ? (\n <TfiAngleDown size=\"1rem\" />\n ) : (\n <TfiAngleUp size=\"1rem\" />\n )\n ) : null}\n </div>\n );\n}\n","import { MenuButton } from \"./menu-button\";\nimport { MenuContent } from \"./menu-content\";\nimport { MenuItem } from \"./menu-item\";\nimport { MenuRoot } from \"./menu-root\";\n\nexport const Menu = {\n Root: MenuRoot,\n Item: MenuItem,\n Button: MenuButton,\n Content: MenuContent,\n};\n\nexport default Menu;\n","import { Form as FormProps } from \"./index.types\";\nimport \"./index.css\";\nimport Button from \"../button\";\nimport { BsCheckCircleFill, BsXCircleFill } from \"react-icons/bs\";\nimport { FormProvider, useForm } from \"react-hook-form\";\nimport { useState } from \"react\";\n\n// how do I solve reseting the form outside the form\nexport function Form({\n children,\n onSubmit,\n submitButton = {\n label: \"Submit\",\n },\n initialState,\n backgroundColor,\n ...rest\n}: FormProps) {\n const methods = useForm(initialState);\n\n const {\n formState: { isValid },\n } = methods;\n\n const [result, setResult] = useState<{\n message?: string;\n isSuccess: boolean;\n }>({\n message: \"\",\n isSuccess: false,\n });\n\n return (\n <FormProvider {...methods}>\n <form\n className=\"form\"\n style={{ backgroundColor: backgroundColor }}\n onSubmit={methods.handleSubmit((data) => {\n return onSubmit(data, methods, setResult);\n })}\n {...rest}\n >\n {children}\n {result.message && (\n <div className=\"form__message\">\n {result.isSuccess ? (\n <BsCheckCircleFill\n color=\"var(--color-success)\"\n size={48}\n ></BsCheckCircleFill>\n ) : (\n <BsXCircleFill\n color={\"var(--color-danger)\"}\n size={48}\n ></BsXCircleFill>\n )}\n {result.message}\n </div>\n )}\n <Button type=\"submit\" disabled={!isValid}>\n {submitButton.label}\n </Button>\n </form>\n </FormProvider>\n );\n}\n\nexport default Form;\n","import { Input as InputProps } from \"./index.types\";\nimport \"./index.css\";\nimport clsx from \"clsx\";\n\nexport function Input({\n inputClassName = \"\",\n classNameGroup = \"\",\n error = {\n is: false,\n message: \"\",\n },\n inputRef,\n styleGroup,\n placeholder = \"Insert value\",\n label,\n labelClassName,\n icon,\n isRequired,\n backgroundColor,\n ...rest\n}: InputProps) {\n return (\n <div\n className={clsx(\"input-group\", classNameGroup)}\n style={{ backgroundColor: backgroundColor, ...styleGroup }}\n >\n <div className=\"input__header\">\n {label && <label className={labelClassName}>{label}</label>}\n {error && error.is && (\n <span className=\"input__header--error\">\n {error.message as string}\n </span>\n )}\n </div>\n <div className=\"input-subgroup\">\n {icon?.element && icon.position === \"left\" && (\n <div\n className={clsx(\"input__icon\", \"input__icon--left\", icon.className)}\n >\n {icon.element}\n </div>\n )}\n <input\n ref={inputRef}\n required={isRequired}\n className={clsx(\n \"input\",\n error.is ? \"input--error\" : \"\",\n icon?.position === \"left\" && \"input--icon\",\n inputClassName\n )}\n placeholder={placeholder}\n {...rest}\n />\n {icon?.element && icon.position !== \"left\" && (\n <div\n className={clsx(\n \"input__icon\",\n \"input__icon--right\",\n // `input__icon--${icon.position || \"right\"}`,\n icon.className\n )}\n >\n {icon.element}\n </div>\n )}\n </div>\n </div>\n );\n}\n\nexport default Input;\n","import \"./index.css\";\nimport { Controller, useFormContext } from \"react-hook-form\";\nimport Input from \"../input\";\nimport { FormInputs } from \"./index.types\";\n\nexport function FormInput({ name, isRequired, error, defaultValue, ...rest }: FormInputs) {\n const { control } = useFormContext();\n return (\n <Controller\n name={name}\n control={control}\n rules={{\n ...(isRequired\n ? {\n required: (error?.message as any) || \"Field is required\",\n }\n : {}),\n }}\n render={({ field, fieldState: { error } }) => {\n return (\n <Input\n isRequired\n error={{\n is: !!error,\n message: error?.message,\n }}\n defaultValue={defaultValue}\n {...field}\n {...rest}\n />\n );\n }}\n />\n );\n}\n\nexport default FormInput;\n","import React, { MutableRefObject, useRef, useState } from \"react\";\nimport clsx from \"clsx\";\nimport { TbArrowsDiagonal2 } from \"react-icons/tb\";\nimport { TextArea as TextAreaProps } from \"./index.types\";\nimport \"./index.css\";\nimport Button from \"../button\";\n\nexport function TextArea({\n buttonDisabled = false,\n className = \"\",\n disabled = true,\n error = {\n is: false,\n message: \"\",\n },\n hasToggleButton = true,\n hideHeight = \"5rem\",\n label,\n labelClassName,\n isRequired,\n placeholder = \"Insert value\",\n showHeight = \"10rem\",\n backgroundColor,\n style = {},\n textareaClassName = \"\",\n ...rest\n}: TextAreaProps): JSX.Element {\n const ref = useRef() as MutableRefObject<HTMLTextAreaElement>;\n const [isShow, setIsShow] = useState<boolean>(false);\n\n const handleClickToggle = () => {\n if (ref && ref.current) {\n if (isShow) {\n ref.current.style.height = hideHeight;\n } else {\n ref.current.style.height = showHeight; //(48 + ref.current.scrollHeight) + 'px';\n }\n setIsShow((prev) => !prev);\n }\n };\n\n return (\n <div\n className={clsx(\"textarea\", className)}\n style={{ backgroundColor: backgroundColor, ...style }}\n >\n <div className=\"textarea__header\">\n {label && <label className={labelClassName}>{label}</label>}\n {error && error.is && (\n <span className=\"textarea__header--error\">\n {error.message as any}\n </span>\n )}\n </div>\n <textarea\n ref={ref}\n className={clsx(\n \"textarea__input\",\n error.is && \"textarea__input--error\",\n textareaClassName\n )}\n style={\n {\n height: hasToggleButton ? hideHeight : showHeight,\n } as React.CSSProperties\n }\n placeholder={placeholder}\n disabled={disabled}\n required={isRequired}\n {...rest}\n />\n {hasToggleButton && (\n <Button\n type=\"button\"\n className={clsx(\n \"textarea__button\",\n isShow && \"textarea__button--show\",\n error.is && \"textarea__button--error\"\n )}\n onClick={handleClickToggle}\n disabled={buttonDisabled}\n >\n <TbArrowsDiagonal2 size=\"1.5rem\" />\n </Button>\n )}\n </div>\n );\n}\n\nexport default TextArea;\n","import \"./index.css\";\nimport { Controller, useFormContext } from \"react-hook-form\";\nimport TextArea from \"../text-area\";\nimport { FormInputs } from \"./index.types\";\n\nexport function FormTextArea({ name, isRequired, error, ...rest }: FormInputs) {\n const { control } = useFormContext();\n return (\n <Controller\n name={name}\n control={control}\n rules={{\n ...(isRequired\n ? {\n required: (error?.message as any) || \"Field is required\",\n }\n : {}),\n }}\n render={({ field, fieldState: { error } }) => {\n return (\n <TextArea\n isRequired\n error={{\n is: !!error,\n message: error?.message,\n }}\n {...field}\n {...rest}\n />\n );\n }}\n />\n );\n}\n\nexport default FormTextArea;\n","import { useState } from \"react\";\nimport clsx from \"clsx\";\nimport { Select as SelectProps } from \"./index.types\";\nimport \"./index.css\";\nimport Button from \"../button\";\nimport { TfiAngleDown } from \"react-icons/tfi\";\nimport Input from \"../input\";\n\nexport function Select({\n inputClassName = \"\",\n classNameGroup = \"\",\n options,\n styleGroup,\n defaultValue,\n setFormSelected,\n clearError,\n resetForm,\n onFormBlur,\n handleSelect,\n label,\n labelClassName,\n error,\n backgroundColor,\n isRequired,\n ...rest\n}: SelectProps) {\n const [isOpen, setIsOpen] = useState(false);\n const [value, setValue] = useState(defaultValue || (options && options[0]));\n const [filteredOptions, setFilteredOptions] = useState(options);\n const { name } = rest;\n\n const handleOpen = () => {\n setIsOpen(true);\n };\n\n const handleClose = () => {\n setIsOpen(false);\n };\n\n const handleInputClose = () => {\n if (onFormBlur) {\n onFormBlur();\n }\n setIsOpen(false);\n };\n\n const handleToggle = () => {\n setIsOpen((prev) => !prev);\n };\n\n const handleValueChange = (e: { target: { value: string } }) => {\n const { value } = e.target;\n const filtered = options?.filter((v) => v.includes(value));\n setFilteredOptions(filtered);\n setValue(value);\n };\n\n const handleSelectChange = (e: { target: { name: string } }) => {\n const { name: value } = e.target;\n\n if (setFormSelected) {\n setFormSelected(name, value);\n if (clearError) {\n clearError(name);\n }\n\n if (resetForm) {\n resetForm();\n }\n } else {\n setValue(value);\n }\n\n if (handleSelect) {\n handleSelect(value);\n }\n\n handleClose();\n };\n\n return (\n <div\n className={clsx(\"select-group\", classNameGroup)}\n style={{ backgroundColor: backgroundColor, ...styleGroup }}\n >\n <Input\n inputClassName={clsx(\n \"select\",\n {\n \"select--focus\": isOpen,\n },\n inputClassName\n )}\n value={value}\n error={error}\n required={isRequired}\n placeholder=\"Select a value\"\n icon={{\n className: \"select__arrow\",\n element: (\n <Button\n type=\"button\"\n size=\"large\"\n mode=\"icon\"\n className={clsx(\"select__arrow-button\", {\n \"select__arrow-button--open\": isOpen,\n })}\n onClick={handleToggle}\n onBlur={handleClose}\n >\n <TfiAngleDown size={24} />\n </Button>\n ),\n }}\n onFocus={handleOpen}\n onBlur={handleInputClose}\n onChange={handleValueChange}\n autoComplete=\"off\"\n label={label}\n labelClassName={labelClassName}\n {...rest}\n />\n {isOpen && (\n <div className=\"select__box\">\n {(filteredOptions as string[]).map(\n (option: string, index: number) => (\n <Button\n key={`index-${index}`}\n type=\"button\"\n mode=\"secondary\"\n className=\"select__option\"\n name={option}\n title={option}\n onMouseDown={handleSelectChange as any}\n >\n {option}\n </Button>\n )\n )}\n </div>\n )}\n </div>\n );\n}\n\nexport default Select;\n","import \"./index.css\";\nimport { Controller, useFormContext } from \"react-hook-form\";\nimport Select from \"../select\";\nimport { FormSelect as FormSelectProps } from \"./index.types\";\n\nexport function FormSelect({\n name,\n isRequired,\n error,\n fieldsToReset,\n label,\n ...rest\n}: FormSelectProps) {\n const { control, setValue, clearErrors, unregister, resetField } =\n useFormContext();\n return (\n <Controller\n name={name}\n control={control}\n rules={{\n ...(isRequired\n ? {\n required: (error?.message as any) || \"Field is required\",\n }\n : {}),\n }}\n render={({ field: { onBlur, ...restField }, fieldState: { error } }) => {\n return (\n <Select\n isRequired\n label={label}\n error={{\n is: !!error,\n message: error?.message || \"\",\n }}\n setFormSelected={setValue}\n resetForm={() =>\n fieldsToReset &&\n fieldsToReset.map((field) => {\n setValue(field, undefined);\n unregister(field);\n })\n }\n clearError={clearErrors}\n onFormBlur={onBlur}\n {...restField}\n {...rest}\n />\n );\n }}\n />\n );\n}\n\nexport default FormSelect;\n","var img = \"data:image/gif;base64,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\";\n export default img;","import { Loading as LoadingProps } from \"./index.types\";\nimport gif from \"../../stories/assets/loading.gif\";\nimport \"./index.css\";\n\nexport function Loading({ img, children }: LoadingProps) {\n return (\n <div className=\"loading\">\n <img src={img ?? gif} />\n <div className=\"loading-message\">{children}</div>\n </div>\n );\n}\n\nexport default Loading;\n","import { IoClose } from \"react-icons/io5\";\nimport { Modal as ModalProps } from \"./index.types\";\nimport \"./index.css\";\nimport Button from \"../button\";\nimport clsx from \"clsx\";\n\nexport function Modal({\n className,\n modalref,\n children,\n title,\n subtitle,\n footer,\n hasOverlay = true,\n hasCloseButton = true,\n handleClose,\n ...rest\n}: ModalProps) {\n return (\n <>\n {hasOverlay && <div className=\"modal-overlay\" />}\n <div ref={modalref} className={clsx(\"modal\", className)} {...rest}>\n {hasCloseButton && (\n <Button\n mode=\"secondary\"\n className=\"modal__close\"\n size=\"small\"\n onClick={handleClose}\n >\n <IoClose />\n </Button>\n )}\n <div className=\"modal__content\">\n {title && (\n <div className=\"modal__header\">\n <h3>{title}</h3>\n <h6>{subtitle}</h6>\n </div>\n )}\n <div className=\"modal__children\">{children}</div>\n {footer && <div className=\"modal__footer\">{footer}</div>}\n </div>\n </div>\n </>\n );\n}\n\nexport default Modal;\n","import { MutableRefObject, useEffect, useRef, useState } from \"react\";\n\n/** Props */\ntype Props = {\n allPositions?: number[];\n handlePosition: (\n pixelPosition: number,\n thumbPosition: number,\n index: number,\n isHandleSelected: boolean\n ) => void;\n handleOverContent: (value: string | number | undefined) => void;\n\n values: string[] | number[];\n};\n\ntype TimerProps = Props & {\n indexPosition: number;\n};\ntype ThumbProps = Props & {\n panelRef: MutableRefObject<null>;\n};\n\nexport function usePositions(panelRef: MutableRefObject<null>, initial: number) {\n const [allPositions, setAllPositions] = useState<number[] | undefined>(\n undefined\n );\n const [pixelPosition, setPixelPosition] = useState<string | undefined>(\n undefined\n );\n const [thumbPosition, setThumbPosition] = useState<string | undefined>(\n undefined\n );\n\n // find positions of all values\n useEffect(() => {\n if (panelRef?.current) {\n const current = panelRef.current as HTMLDivElement | null;\n\n if (current) {\n const valuesRef = Array.from(\n current.getElementsByClassName(\"range__content\")\n );\n const parentBounds = current.getBoundingClientRect();\n\n setAllPositions(\n valuesRef.map((values) => {\n const childBounds = values.getBoundingClientRect();\n return childBounds.right - parentBounds.x;\n })\n );\n }\n }\n }, []);\n\n // initial position\n useEffect(() => {\n if (allPositions) {\n setPixelPosition(`${allPositions[initial]}px`);\n setThumbPosition(\n `${\n allPositions[initial] -\n (allPositions[0] / 2 + getThumbBounds().width / 2)\n }px`\n );\n }\n }, [allPositions]);\n\n return {\n panelRef,\n allPositions,\n setAllPositions,\n pixelPosition,\n setPixelPosition,\n thumbPosition,\n setThumbPosition,\n };\n}\n\nexport function getThumbBounds() {\n const thumb = document.getElementsByClassName(\"range__thumb\")[0];\n return thumb.getBoundingClientRect();\n}\n\nexport function useTimer({\n allPositions,\n indexPosition,\n handlePosition,\n handleOverContent,\n values,\n}: TimerProps) {\n const timeoutRef = useRef(null);\n\n const [isPlay, setIsPlay] = useState<boolean>(false);\n // timer\n useEffect(() => {\n resetTimeout();\n\n if (isPlay) {\n if (allPositions) {\n timeoutRef.current = setTimeout(() => {\n const newThumbPosition =\n allPositions[indexPosition] +\n allPositions[0] / 2 -\n getThumbBounds().width / 2;\n\n handlePosition(\n allPositions[indexPosition + 1],\n newThumbPosition,\n indexPosition + 1,\n true\n );\n\n handleOverContent(values[indexPosition + 1]);\n }, 500) as any;\n\n if (indexPosition === allPositions.length - 1) {\n setIsPlay(false);\n }\n }\n }\n\n return () => {\n resetTimeout();\n };\n }, [isPlay, indexPosition]);\n\n const resetTimeout = () => {\n if (timeoutRef.current) {\n clearTimeout(timeoutRef.current);\n }\n };\n const handlePlay = () => {\n setIsPlay(!isPlay);\n };\n\n const handleStop = () => {\n if (allPositions) {\n handlePosition(\n allPositions[0],\n allPositions[0] / 2 - getThumbBounds().width / 2,\n 0,\n false\n );\n\n setIsPlay(false);\n }\n };\n\n return { isPlay, setIsPlay, handlePlay, handleStop };\n}\n\nexport function useThumb({\n allPositions,\n panelRef,\n handlePosition,\n handleOverContent,\n values,\n}: ThumbProps) {\n // Add drag\n const startDragging = (event: globalThis.MouseEvent) => {\n if (allPositions && panelRef?.current) {\n const current = panelRef.current as HTMLDivElement | null;\n const panelBounds = current?.getBoundingClientRect() as DOMRect;\n const x = event.pageX - panelBounds.left;\n const absX = Math.abs(x);\n\n if (x >= 0 && x <= allPositions[allPositions.length - 1]) {\n const desiredPosition = allPositions.reduce((prev, curr) =>\n Math.abs(prev - absX) < Math.abs(curr - absX) ? prev : curr\n );\n const index = allPositions.indexOf(desiredPosition);\n\n const newThumbPosition =\n index === 0\n ? allPositions[index] -\n allPositions[0] / 2 -\n getThumbBounds().width / 2\n : allPositions[index - 1] +\n allPositions[0] / 2 -\n getThumbBounds().width / 2;\n\n handlePosition(desiredPosition, newThumbPosition, index, true);\n\n handleOverContent(values[index]);\n }\n }\n };\n\n const stopDragging = () => {\n window.removeEventListener(\"mousemove\", startDragging, false);\n window.removeEventListener(\"mouseup\", stopDragging, false);\n };\n\n const handleDownThumb = () => {\n window.addEventListener(\"mousemove\", startDragging, false);\n window.addEventListener(\"mouseup\", stopDragging, false);\n };\n return { handleDownThumb };\n}\n","import { DataPalette } from \"data-palette\";\nimport React, {\n createContext,\n useContext,\n useEffect,\n useState,\n} from \"react\";\n\ntype DataTheme = \"light\" | \"dark\";\n\ntype State = {\n dataTheme?: DataTheme;\n switchDataTheme: (mode: DataTheme) => void;\n dataPalette?: DataPalette;\n switchDataPalette: (mode: DataPalette) => void;\n};\ntype ThemeProviderProps = {\n children: React.ReactNode;\n dataTheme?: DataTheme;\n dataPalette?: DataPalette;\n};\n\nconst ThemeContext = createContext<State | undefined>(undefined);\n\nfunction ThemeProvider({\n children,\n dataTheme: dataThemeProp,\n dataPalette: dataPaletteProp = \"water\",\n}: ThemeProviderProps) {\n const [dataTheme, setDataTheme] = useState<DataTheme>();\n const [dataPalette, setDataPalette] = useState<DataPalette>();\n\n useEffect(() => {\n if (dataPaletteProp) {\n switchDataPalette(dataPaletteProp);\n }\n }, [dataPaletteProp]);\n\n useEffect(() => {\n if (dataThemeProp) {\n switchDataTheme(dataThemeProp);\n }\n }, [dataThemeProp]);\n\n useEffect(() => {\n if (window.matchMedia) {\n if (localStorage.getItem(\"data-theme\")) {\n document.documentElement.setAttribute(\n \"data-theme\",\n localStorage.getItem(\"data-theme\") as string\n );\n setDataTheme(localStorage.getItem(\"data-theme\") as DataTheme);\n } else if (window.matchMedia(\"(prefers-color-scheme: dark)\").matches) {\n document.documentElement.setAttribute(\"data-theme\", \"dark\");\n setDataTheme(\"dark\");\n }\n }\n }, []);\n\n const switchDataTheme = (mode: DataTheme) => {\n document.documentElement.setAttribute(\"data-theme\", mode);\n setDataTheme(mode);\n localStorage.setItem(\"data-theme\", mode);\n };\n\n const switchDataPalette = (mode: DataPalette) => {\n document.documentElement.setAttribute(\"data-palette\", mode);\n setDataPalette(mode);\n localStorage.setItem(\"palette-theme\", mode);\n };\n\n return (\n <ThemeContext.Provider\n value={{ dataTheme, switchDataTheme, dataPalette, switchDataPalette }}\n >\n {children}\n </ThemeContext.Provider>\n );\n}\n\nfunction useTheme() {\n const context = useContext(ThemeContext);\n\n if (context === undefined) {\n throw new Error(\"useTheme must be used within a ThemeProvider\");\n }\n\n return context;\n}\n\nexport { ThemeContext, ThemeProvider, useTheme };\n","/** React */\nimport {\n HtmlHTMLAttributes,\n} from \"react\";\n\n/** CSS */\nimport \"./index.css\";\n\nimport Button from \"../button\";\nimport { RiMapPinTimeFill, RiMapPinTimeLine } from \"react-icons/ri\";\nimport { useTheme } from \"../../context/theme\";\n\n/** Props */\ntype Props = HtmlHTMLAttributes<HTMLDivElement> & {\n thumbPosition?: string;\n handleOverContent: (value: string | number | undefined) => void;\n handleDownThumb: () => void;\n};\n\nexport function RangeThumb({\n thumbPosition,\n handleOverContent,\n handleDownThumb\n}: Props) {\n const { dataTheme } = useTheme();\n\n \n return (\n <Button\n mode=\"icon\"\n className=\"range__thumb\"\n size=\"small\"\n style={{\n left: `${thumbPosition}`,\n }}\n onMouseOver={() => handleOverContent(thumbPosition)}\n onMouseDown={handleDownThumb}\n >\n {dataTheme === \"dark\" ? (\n <RiMapPinTimeFill size=\"1.5rem\" />\n ) : (\n <RiMapPinTimeLine size=\"1.5rem\" />\n )}\n </Button>\n );\n}\n","/** React */\nimport { HtmlHTMLAttributes } from \"react\";\n\n/** CSS */\nimport \"./index.css\";\n\nimport { getThumbBounds } from \"./hooks\";\nimport clsx from \"clsx\";\n\n/** Props */\ntype Props = HtmlHTMLAttributes<HTMLDivElement> & {\n period?: number;\n values: string[] | number[];\n allPositions?: number[];\n handlePosition: (\n pixelPosition: number,\n thumbPosition: number,\n index: number,\n isHandleSelected?: boolean\n ) => void;\n handleOverContent: (value: string | number | undefined) => void;\n handleOutContent: () => void;\n over: string | number | undefined;\n};\n\nexport function RangeContent({\n period,\n values,\n allPositions,\n handlePosition,\n handleOverContent,\n handleOutContent,\n over,\n}: Props) {\n const handleClickRange = (index: number) => {\n if (allPositions) {\n const newThumbPosition =\n index === 0\n ? allPositions[index] -\n allPositions[0] / 2 -\n getThumbBounds().width / 2\n : allPositions[index - 1] +\n allPositions[0] / 2 -\n getThumbBounds().width / 2;\n handlePosition(allPositions[index], newThumbPosition, index, true);\n }\n };\n\n return period\n ? values.map((value: string | number | undefined, index: number) => (\n <div\n className=\"range__content range__content__period\"\n onClick={() => handleClickRange(index)}\n onMouseOver={() => handleOverContent(value)}\n onMouseOut={() => handleOutContent()}\n >\n {index % period === 0 ? (\n <>\n <div className=\"range__tick range__tick__large\"></div>\n <div\n className={clsx(\"range__value\", \"range__value__period\", {\n \"range__value--over\": value === over,\n })}\n >\n {value}\n </div>\n </>\n ) : (\n <>\n <div className=\"range__tick range__tick__small\"></div>\n {value === over && (\n <div\n className={clsx(\"range__value\", \"range__value__period\", {\n \"range__value--over\": value === over,\n })}\n >\n {value}\n </div>\n )}\n </>\n )}\n </div>\n ))\n : values.map((value: string | number | undefined, index: number) => (\n <div className=\"range__content\" onClick={() => handleClickRange(index)}>\n <div className=\"range__tick range__tick__large\"></div>\n <div className=\"range__value\">{value}</div>\n </div>\n ));\n}\n","/** React */\nimport { HtmlHTMLAttributes } from \"react\";\n\n/** CSS */\nimport \"./index.css\";\n\nimport Button from \"../button\";\nimport { IoPause, IoPlay, IoStop } from \"react-icons/io5\";\n\n/** Props */\ntype Props = HtmlHTMLAttributes<HTMLDivElement> & {\n indexPosition: number;\n isPlay: boolean;\n handlePlay: () => void;\n handleStop: () => void;\n};\n\nexport function RangeControls({\n indexPosition,\n isPlay,\n handlePlay,\n handleStop,\n}: Props) {\n return (\n <>\n <Button\n mode=\"icon\"\n size=\"small\"\n className=\"range__play\"\n onClick={handlePlay}\n >\n {isPlay ? (\n <IoPause color=\"var(--color-primary-base)\" size={\"2rem\"} />\n ) : (\n <IoPlay color=\"var(--color-primary-base)\" size={\"2rem\"} />\n )}\n </Button>\n\n <Button\n mode=\"icon\"\n size=\"small\"\n className=\"range__play\"\n disabled={!isPlay && indexPosition === 0}\n onClick={handleStop}\n >\n <IoStop color=\"var(--color-primary-base)\" size={\"2rem\"} />\n </Button>\n </>\n );\n}\n","import \"./index.css\";\nimport { useRef, useState } from \"react\";\nimport { Range as RangeProps } from \"./index.types\";\nimport { usePositions, useThumb, useTimer } from \"./hooks\";\nimport { RangeThumb } from \"./range-thumb\";\nimport { RangeContent } from \"./range-content\";\nimport { RangeControls } from \"./range-controls\";\n\nexport function Range({ initial = 0, period, values, handleSelected }: RangeProps) {\n const panelRef = useRef(null);\n const [indexPosition, setIndexPosition] = useState<number>(initial);\n const [over, setOver] = useState<string | number | undefined>(undefined);\n\n const {\n allPositions,\n pixelPosition,\n setPixelPosition,\n thumbPosition,\n setThumbPosition,\n } = usePositions(panelRef, initial);\n\n const handlePosition = (\n pixelPosition: number,\n thumbPosition: number,\n index: number,\n isHandleSelected: boolean = false\n ) => {\n setPixelPosition(`${pixelPosition}px`);\n setThumbPosition(`${thumbPosition}px`);\n setIndexPosition(index);\n\n if (isHandleSelected && handleSelected) {\n handleSelected({\n value: values[index],\n index,\n position: pixelPosition,\n });\n }\n };\n\n const handleOverContent = (value: string | number | undefined) => {\n setOver(value);\n };\n\n const handleOutContent = () => {\n setOver(undefined);\n };\n\n const { isPlay, handlePlay, handleStop } = useTimer({\n allPositions,\n indexPosition,\n handlePosition,\n handleOverContent,\n values,\n });\n\n const { handleDownThumb } = useThumb({\n allPositions,\n panelRef,\n handlePosition,\n handleOverContent,\n values,\n });\n\n return (\n <div className=\"range\">\n <div ref={panelRef} className=\"range__panel\">\n <RangeContent\n period={period}\n values={values}\n allPositions={allPositions}\n handlePosition={handlePosition}\n handleOverContent={handleOverContent}\n handleOutContent={handleOutContent}\n over={over}\n />\n\n <div\n className=\"range__track\"\n style={{\n width: `${pixelPosition}`,\n }}\n ></div>\n <RangeThumb\n thumbPosition={thumbPosition}\n handleOverContent={handleOverContent}\n handleDownThumb={handleDownThumb}\n />\n </div>\n <RangeControls\n indexPosition={indexPosition}\n isPlay={isPlay}\n handlePlay={handlePlay}\n handleStop={handleStop}\n />\n </div>\n );\n}\n\nexport default Range;\n","import { Checkbox as CheckboxProps } from \"./index.types\";\nimport \"./index.css\";\nimport clsx from \"clsx\";\n\nexport function Checkbox({\n backgroundColor,\n classNameCheckbox = \"\",\n classNameGroup = \"\",\n classNameLabel,\n error = {\n is: false,\n message: \"\",\n },\n // icon,\n inputRef,\n isRequired,\n label,\n placeholder = \"Insert value\",\n styleGroup,\n ...rest\n}: CheckboxProps) {\n return (\n <div\n className={clsx(\"input-group\", classNameGroup)}\n style={{ backgroundColor: backgroundColor, ...styleGroup }}\n >\n <div className=\"checkbox__header\">\n {label && <label className={classNameLabel}>{label}</label>}\n {error && error.is && (\n <span className=\"input__header--error\">\n {error.message as string}\n </span>\n )}\n </div>\n <div className=\"checkbox-subgroup\">\n <input\n ref={inputRef}\n type=\"checkbox\"\n required={isRequired}\n className={clsx(\n \"checkbox\",\n error.is ? \"checkbox--error\" : \"\",\n classNameCheckbox\n )}\n placeholder={placeholder}\n {...rest}\n />\n </div>\n </div>\n );\n}\n\nexport default Checkbox;\n","import React, {\n ReactNode,\n RefObject,\n createContext,\n useContext,\n useEffect,\n useReducer,\n} from \"react\";\nimport Loading from \"../../components/loading\";\n\ntype Action = {\n type: \"set_ref\" | \"start_loading\" | \"stop_loading\" | \"set_message\";\n ref?: RefObject<ReactNode>;\n message?: string;\n};\ntype State = {\n isLoading: boolean;\n message?: string | React.ReactNode;\n ref?: RefObject<ReactNode>;\n};\ntype Context = {\n state: State;\n setRef: (ref: RefObject<ReactNode>) => void;\n setMessage: (message: string) => void;\n startLoading: () => void;\n stopLoading: () => void;\n};\ntype LoadingProviderProps = { children: React.ReactNode };\ntype UseLoadingProps = {\n ref?: RefObject<ReactNode>;\n message?: string;\n};\n\nconst LoadingContext = createContext<Context | undefined>(undefined);\n\nfunction loadingReducer(state: State, action: Action) {\n switch (action.type) {\n case \"set_ref\": {\n return { ...state, ref: action.ref };\n }\n case \"start_loading\": {\n return { ...state, isLoading: true };\n }\n case \"stop_loading\": {\n return { ...state, isLoading: false };\n }\n case \"set_message\": {\n return { ...state, message: action.message };\n }\n default: {\n throw new Error(`Unhandled action type: ${action.type}`);\n }\n }\n}\n\nfunction LoadingProvider({ children }: LoadingProviderProps) {\n const [{ isLoading, message, ref }, dispatch] = useReducer(loadingReducer, {\n isLoading: false,\n message: \"Loading\",\n ref: undefined,\n });\n\n const setRef = (ref: RefObject<ReactNode>) => {\n dispatch({ type: \"set_ref\", ref });\n };\n\n const setMessage = (message: string) => {\n dispatch({ type: \"set_message\", message });\n };\n\n const startLoading = () => {\n dispatch({ type: \"start_loading\" });\n };\n\n const stopLoading = () => {\n dispatch({ type: \"stop_loading\" });\n };\n\n return (\n <LoadingContext.Provider\n value={{\n state: { ref, message, isLoading },\n setMessage,\n setRef,\n startLoading,\n stopLoading,\n }}\n >\n {!ref && <Loading>{message}</Loading>}\n {children}\n </LoadingContext.Provider>\n );\n}\n\nfunction useLoading({ ref, message }: UseLoadingProps = {}) {\n const context = useContext(LoadingContext);\n\n // only happens if there is an initial mode value.\n useEffect(() => {\n ref && context?.setRef(ref);\n message && context?.setMessage(message);\n }, []);\n\n if (context === undefined) {\n throw new Error(\"useLoading must be used within a LoadingProvider\");\n }\n\n return context;\n}\n\nexport { LoadingContext, LoadingProvider, useLoading };\n","import React, {\n ReactNode,\n RefObject,\n createContext,\n useCallback,\n useContext,\n useEffect,\n useReducer,\n useRef,\n} from \"react\";\nimport Modal from \"../../components/modal\";\n// import Modal from \"../../components/Modal\";\n\ntype Modal = {\n title?: React.ReactNode;\n subtitle?: React.ReactNode;\n content?: React.ReactNode;\n hasCloseButton?: boolean;\n hasOverlay?: boolean;\n hasWindowClose?: boolean;\n footer?: React.ReactNode;\n isCustom?: boolean;\n customRef?: any;\n};\n\ntype Action = {\n type: \"open_modal\" | \"close_modal\";\n modal?: Modal;\n};\n\ninterface State extends Modal {\n isModal: boolean;\n}\n\ntype Context = {\n state: State;\n openModal: (modal?: Modal) => void;\n closeModal: () => void;\n};\n\ntype ModalProviderProps = { children: React.ReactNode };\n\ntype UseModalProps = {};\n\ninterface HTMLEvent extends Event {\n target: HTMLElement;\n}\n\nconst ModalContext = createContext<Context | undefined>(undefined);\n\nfunction modalReducer(state: State, action: Action) {\n switch (action.type) {\n case \"open_modal\": {\n return { ...state, ...action.modal, isModal: true };\n }\n case \"close_modal\": {\n return { ...state, isModal: false };\n }\n default: {\n throw new Error(`Unhandled action type: ${action.type}`);\n }\n }\n}\n\nconst defaultState = {\n subtitle: undefined,\n title: undefined,\n content: undefined,\n hasCloseButton: true,\n hasOverlay: true,\n footer: undefined,\n isCustom: false,\n customRef: undefined,\n hasWindowClose: true\n};\n\nfunction ModalProvider({ children }: ModalProviderProps) {\n const ref = useRef<HTMLDivElement>(null);\n const [state, dispatch] = useReducer(modalReducer, {\n isModal: false,\n ...defaultState,\n });\n\n const openModal = (modal?: Modal) => {\n dispatch({ type: \"open_modal\", modal });\n };\n\n const closeModal = () => {\n dispatch({ type: \"close_modal\" });\n };\n\n useEffect(() => {\n if (state.isModal && state.hasWindowClose) {\n const listener = (e: MouseEvent) => {\n if (\n state.isModal &&\n ref.current &&\n !ref.current.contains(e.target as Node)\n ) {\n closeModal();\n }\n\n if (\n state.isModal &&\n state.customRef &&\n state.customRef.current &&\n !state.customRef.current.contains(e.target as Node)\n ) {\n closeModal();\n }\n };\n\n document.addEventListener(\"mousedown\", listener);\n return () => {\n document.removeEventListener(\"mousedown\", listener);\n };\n }\n }, [closeModal]);\n\n return (\n <ModalContext.Provider\n value={{\n state,\n openModal,\n closeModal,\n }}\n >\n {children}\n {state.isModal && !state.isCustom && (\n <Modal\n modalref={ref}\n title={state.title}\n footer={state.footer}\n handleClose={closeModal}\n subtitle={state.subtitle}\n hasCloseButton={state.hasCloseButton}\n hasOverlay={state.hasOverlay}\n >\n {state.content}\n </Modal>\n )}\n </ModalContext.Provider>\n );\n}\n\nfunction useModal({}: UseModalProps = {}) {\n const context = useContext(ModalContext);\n\n if (context === undefined) {\n throw new Error(\"useModal must be used within a ModalProvider\");\n }\n\n return context;\n}\n\nexport { ModalContext, ModalProvider, useModal };\n"],"names":["useContext","useMemo","_jsx","ALLOWED_CHILD_COMPONENT","useRef","useEffect","Children","isValidElement","cloneElement","createContext","useState","_jsxs","TfiAngleDown","TfiAngleUp","useForm","FormProvider","BsCheckCircleFill","BsXCircleFill","useFormContext","Controller","TbArrowsDiagonal2","img","gif","IoClose","RiMapPinTimeFill","RiMapPinTimeLine","_Fragment","IoPause","IoPlay","IoStop","useReducer"],"mappings":";;;;;;;;;;;;AAAO,MAAM,UAAU,GAAG,MAAK;AAC7B,IAAA,OAAO,MAAM,IAAI,CAAC,MAAM,EAAE,CAAC,QAAQ,CAAC,EAAE,CAAC,CAAC,KAAK,CAAC,CAAC,EAAE,EAAE,CAAC,EAAE,CAAC;AACzD,CAAC;;ACSK,SAAU,WAAW,CAAC,EAAE,QAAQ,EAAE,GAAG,KAAK,EAAS,EAAA;IACvD,MAAM,EAAE,KAAK,EAAE,GAAGA,gBAAU,CAAC,OAAO,EAAE,CAAC,CAAC;AACxC,IAAA,MAAM,MAAM,GAAGC,aAAO,CAAC,MAAM,KAAK,CAAC,cAAc,CAAC,EAAE,CAAC,KAAK,CAAC,CAAC,CAAC;AAC7D,IAAA,MAAM,UAAU,GAAGA,aAAO,CAAC,MAAK;AAC9B,QAAA,OAAO,KAAK,CAAC,MAAgB,CAAC,EAAE,UAAU,CAAC;AAC7C,KAAC,EAAE,CAAC,KAAK,EAAE,MAAM,CAAC,CAAC,CAAC;AAEpB,IAAA,IAAI,CAAC,UAAU;QAAE,OAAO;AAExB,IAAA,OAAOC,cAAS,CAAA,KAAA,EAAA,EAAA,GAAA,KAAK,EAAG,QAAA,EAAA,QAAQ,GAAO,CAAC;AAC1C;;ACSA,MAAMC,yBAAuB,GAAG,CAAC,UAAU,CAAC,IAAI,EAAE,WAAW,CAAC,IAAI,CAAC,CAAC;AAE9D,SAAU,QAAQ,CAAC,EAAE,QAAQ,EAAE,GAAG,KAAK,EAAS,EAAA;IACpD,MAAM,EAAE,OAAO,EAAE,GAAGH,gBAAU,CAAC,OAAO,EAAE,CAAC,CAAC;AAC1C,IAAA,MAAM,MAAM,GAAGI,YAAM,CAAS,EAAE,CAAC,CAAC;IAElCC,eAAS,CAAC,MAAK;AACb,QAAA,MAAM,CAAC,OAAO,GAAG,UAAU,EAAE,CAAC;AAE9B,QAAA,OAAO,CAAC;YACN,EAAE,EAAE,MAAM,CAAC,OAAO;AAClB,YAAA,UAAU,EAAE,IAAI;AACjB,SAAA,CAAC,CAAC;KACJ,EAAE,EAAE,CAAC,CAAC;AAEP,IAAA,QACEH,cAAmB,CAAA,KAAA,EAAA,EAAA,cAAA,EAAA,MAAM,CAAC,OAAO,KAAM,KAAK,EAAA,QAAA,EACzCI,cAAQ,CAAC,GAAG,CAAC,QAAQ,EAAE,CAAC,KAAK,KAAI;AAChC,YAAA,IAAI,CAACC,oBAAc,CAAC,KAAK,CAAC;gBAAE,OAAO;AAEnC,YAAA,MAAM,cAAc,GAAG,KAAK,CAAC,IAAqB,CAAC;YAEnD,IAAI,CAACJ,yBAAuB,CAAC,QAAQ,CAAC,cAAc,CAAC,IAAI,CAAC;gBAAE,OAAO;YAEnE,OAAOK,kBAAY,CAAC,KAAqB,EAAE;gBACzC,cAAc,EAAE,MAAM,CAAC,OAAO;AAC/B,aAAA,CAAC,CAAC;SACJ,CAAC,EACE,CAAA,EACN;AACJ;;ACzCA,MAAM,uBAAuB,GAAG,CAAC,QAAQ,CAAC,IAAI,CAAC,CAAC;AAEhC,SAAA,WAAW,CAAC,EAAE,QAAQ,EAAoB,EAAA;AACxD,IAAA,MAAM,kBAAkB,GAAGP,aAAO,CAAC,MAAK;QACtC,OAAOK,cAAQ,CAAC,GAAG,CAAC,QAAQ,EAAE,CAAC,KAAK,KAAI;AACtC,YAAA,IAAI,CAACC,oBAAc,CAAC,KAAK,CAAC;gBAAE,OAAO;AAEnC,YAAA,MAAM,cAAc,GAAG,KAAK,CAAC,IAAqB,CAAC;YAEnD,IAAI,CAAC,uBAAuB,CAAC,QAAQ,CAAC,cAAc,CAAC,IAAI,CAAC;gBAAE,OAAO;AAEnE,YAAA,OAAOC,kBAAY,CAAC,KAAK,CAAC,CAAC;AAC7B,SAAC,CAAC,CAAC;AACL,KAAC,EAAE,CAAC,QAAQ,CAAC,CAAC,CAAC;AAEf,IAAA,OAAON,wBAAK,SAAS,EAAC,MAAM,EAAE,QAAA,EAAA,kBAAkB,GAAO,CAAC;AAC1D;;AChBA;AACA,MAAM,WAAW,GAAGO,mBAAa,CAAC,EAAqB,CAAC,CAAC;SAQzC,QAAQ,CAAC,EAAE,QAAQ,EAAE,eAAe,EAAiB,EAAA;IACnE,MAAM,CAAC,KAAK,EAAE,QAAQ,CAAC,GAAGC,cAAQ,CAAuB,EAAE,CAAC,CAAC;AAE7D,IAAA,MAAM,OAAO,GAAG,CAAC,IAAU,KAAI;AAC7B,QAAA,QAAQ,CAAC,CAAC,KAAK,MAAM;AACnB,YAAA,GAAG,KAAK;AACR,YAAA,CAAC,IAAI,CAAC,EAAE,GAAG;AACT,gBAAA,GAAG,IAAI;gBACP,UAAU,EAAE,eAAe,IAAI,KAAK;AACrC,aAAA;AACF,SAAA,CAAC,CAAC,CAAC;AACN,KAAC,CAAC;AAEF,IAAA,MAAM,MAAM,GAAG,CAAC,EAAU,KAAI;AAC5B,QAAA,QAAQ,CAAC,CAAC,KAAK,MAAM;AACnB,YAAA,GAAG,KAAK;YACR,CAAC,EAAE,GAAG;gBACJ,GAAG,KAAK,CAAC,EAAE,CAAC;gBACZ,UAAU,EAAE,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,UAAU,IAAI,KAAK;AAC3C,aAAA;AACF,SAAA,CAAC,CAAC,CAAC;AACN,KAAC,CAAC;IAEF,QACER,eAAC,WAAW,CAAC,QAAQ,EAAC,EAAA,KAAK,EAAE,EAAE,KAAK,EAAE,OAAO,EAAE,MAAM,EAAE,EAAA,QAAA,EACrDA,cAAC,CAAA,WAAW,cAAE,QAAQ,EAAA,CAAe,EAChB,CAAA,EACvB;AACJ,CAAC;SAEe,OAAO,GAAA;IACrB,IAAI,WAAW,KAAK,SAAS,EAAE;AAC7B,QAAA,MAAM,IAAI,KAAK,CAAC,oDAAoD,CAAC,CAAC;AACvE,KAAA;AAED,IAAA,OAAO,WAAW,CAAC;AACrB;;AC3DO,MAAM,MAAM,GAAG,CAAC,EACrB,MAAM,EACN,QAAQ,EACR,GAAG,IAAI,EAIR,KAAI;IACH,OAAO,MAAM,IACXA,cAAC,CAAA,MAAM,EAAK,EAAA,GAAA,IAAI,EAAG,QAAA,EAAA,QAAQ,GAAU,KAErCA,cAAA,CAAA,GAAA,EAAA,EAAA,GAAO,IAAI,EAAG,QAAA,EAAA,QAAQ,EAAK,CAAA,CAC5B,CAAC;AACJ,CAAC,CAAC;SAEc,MAAM,CAAC,EACrB,QAAQ,GAAG,UAAU,EACrB,SAAS,GAAG,EAAE,EACd,IAAI,GAAG,SAAS,EAChB,WAAW,GAAG,KAAK,EACnB,IAAI,GAAG,SAAS,EAChB,IAAI,GAAG,QAAQ,EACf,EAAE,GAAG,QAAQ,EACb,YAAY,EACZ,GAAG,IAAI,EACuB,EAAA;AAC9B,IAAA,OAAO,EAAE,KAAK,MAAM,IAClBS,eAAA,CAAC,MAAM,EAAA,EACL,MAAM,EAAE,YAAY,EAChB,IAAC,WAAW,IAAI,EAAE,MAAM,EAAE,QAAQ,EAAE,CAAC,EACzC,SAAS,EAAE,IAAI,CACb,CAAU,OAAA,EAAA,SAAS,EAAE,EACrB,CAAA,MAAA,EAAS,IAAI,CAAA,CAAE,EACf,CAAW,QAAA,EAAA,IAAI,CAAE,CAAA,CAClB,KACI,IAAsD,EAAA,QAAA,EAAA,CAE1D,QAAQ,EACR,IAAI,CACE,EAAA,CAAA,KAETA,eAAA,CAAA,QAAA,EAAA,EACE,SAAS,EAAE,IAAI,CACb,QAAQ,EACR,CAAA,QAAA,EAAW,IAAI,CAAE,CAAA,EACjB,CAAW,QAAA,EAAA,IAAI,EAAE,EACjB,SAAS,CACV,EAAA,GACI,IAAsD,EAE1D,QAAA,EAAA,CAAA,QAAQ,EACR,IAAI,CAAA,EAAA,CACE,CACV,CAAC;AACJ;;ACzBM,SAAU,UAAU,CAAC,EACzB,MAAM,EACN,QAAQ,EACR,eAAe,EACf,MAAM,EACN,SAAS,EACT,QAAQ,EACR,MAAM,EACN,UAAU,EACV,mBAAmB,EACnB,GAAG,KAAK,EACF,EAAA;IACN,MAAM,EAAE,MAAM,EAAE,GAAGX,gBAAU,CAAC,OAAO,EAAE,CAAC,CAAC;IACzC,MAAM,CAAC,SAAS,EAAE,YAAY,CAAC,GAAGU,cAAQ,CAAC,KAAK,CAAC,CAAC;AAClD,IAAA,MAAM,MAAM,GAAGT,aAAO,CAAC,MAAM,KAAK,CAAC,cAAc,CAAC,EAAE,CAAC,KAAK,CAAC,CAAC,CAAC;IAE7D,MAAM,WAAW,GAAG,MAAK;QACvB,MAAM,CAAC,MAAgB,CAAC,CAAC;AACzB,QAAA,YAAY,CAAC,CAAC,SAAS,CAAC,CAAC;QAEzB,mBAAmB,IAAI,mBAAmB,EAAE,CAAC;AAC/C,KAAC,CAAC;AAEF,IAAA,OAAO,MAAM,IACXU,eAAA,CAAC,MAAM,EAAA,EACL,SAAS,EAAE,IAAI,CACb,aAAa,EACb;AACE,YAAA,sBAAsB,EAAE,QAAQ;AAChC,YAAA,oBAAoB,EAAE,MAAM;AAC5B,YAAA,uBAAuB,EAAE,SAAS;AAClC,YAAA,qBAAqB,EAAE,MAAM;AAC7B,YAAA,yBAAyB,EAAE,UAAU;SACtC,EACD,eAAe,CAChB,EAAA,GACI,MAAwD,EAAA,QAAA,EAAA,CAE5D,QAAQ,EACR,QAAQ,IACP,SAAS,IACPT,cAAC,CAAAU,gBAAY,EAAC,EAAA,IAAI,EAAC,MAAM,EAAG,CAAA,KAE5BV,eAACW,cAAU,EAAA,EAAC,IAAI,EAAC,MAAM,EAAA,CAAG,CAC3B,IACC,IAAI,CACD,EAAA,CAAA,KAETF,eACE,CAAA,KAAA,EAAA,EAAA,IAAI,EAAC,QAAQ,EACb,SAAS,EAAE,IAAI,CACb,aAAa,EACb;AACE,YAAA,sBAAsB,EAAE,QAAQ;AAChC,YAAA,oBAAoB,EAAE,MAAM;AAC5B,YAAA,uBAAuB,EAAE,SAAS;AAClC,YAAA,qBAAqB,EAAE,MAAM;AAC7B,YAAA,yBAAyB,EAAE,UAAU;SACtC,EACD,eAAe,CAChB,EACD,OAAO,EAAE,WAAW,EAAA,GAChB,KAAK,EAAA,QAAA,EAAA,CAER,QAAQ,EACR,QAAQ,IACP,SAAS,IACPT,cAAA,CAACU,gBAAY,EAAA,EAAC,IAAI,EAAC,MAAM,GAAG,KAE5BV,cAAC,CAAAW,cAAU,EAAC,EAAA,IAAI,EAAC,MAAM,EAAA,CAAG,CAC3B,IACC,IAAI,CACJ,EAAA,CAAA,CACP,CAAC;AACJ;;ACvGa,MAAA,IAAI,GAAG;AAClB,IAAA,IAAI,EAAE,QAAQ;AACd,IAAA,IAAI,EAAE,QAAQ;AACd,IAAA,MAAM,EAAE,UAAU;AAClB,IAAA,OAAO,EAAE,WAAW;;;ACFtB;AACM,SAAU,IAAI,CAAC,EACnB,QAAQ,EACR,QAAQ,EACR,YAAY,GAAG;AACb,IAAA,KAAK,EAAE,QAAQ;AAChB,CAAA,EACD,YAAY,EACZ,eAAe,EACf,GAAG,IAAI,EACG,EAAA;AACV,IAAA,MAAM,OAAO,GAAGC,qBAAO,CAAC,YAAY,CAAC,CAAC;IAEtC,MAAM,EACJ,SAAS,EAAE,EAAE,OAAO,EAAE,GACvB,GAAG,OAAO,CAAC;AAEZ,IAAA,MAAM,CAAC,MAAM,EAAE,SAAS,CAAC,GAAGJ,cAAQ,CAGjC;AACD,QAAA,OAAO,EAAE,EAAE;AACX,QAAA,SAAS,EAAE,KAAK;AACjB,KAAA,CAAC,CAAC;AAEH,IAAA,QACER,cAAA,CAACa,0BAAY,EAAA,EAAA,GAAK,OAAO,EAAA,QAAA,EACvBJ,eACE,CAAA,MAAA,EAAA,EAAA,SAAS,EAAC,MAAM,EAChB,KAAK,EAAE,EAAE,eAAe,EAAE,eAAe,EAAE,EAC3C,QAAQ,EAAE,OAAO,CAAC,YAAY,CAAC,CAAC,IAAI,KAAI;gBACtC,OAAO,QAAQ,CAAC,IAAI,EAAE,OAAO,EAAE,SAAS,CAAC,CAAC;AAC5C,aAAC,CAAC,EACE,GAAA,IAAI,EAEP,QAAA,EAAA,CAAA,QAAQ,EACR,MAAM,CAAC,OAAO,KACbA,eAAK,CAAA,KAAA,EAAA,EAAA,SAAS,EAAC,eAAe,aAC3B,MAAM,CAAC,SAAS,IACfT,cAAC,CAAAc,oBAAiB,IAChB,KAAK,EAAC,sBAAsB,EAC5B,IAAI,EAAE,EAAE,EACW,CAAA,KAErBd,cAAA,CAACe,gBAAa,EACZ,EAAA,KAAK,EAAE,qBAAqB,EAC5B,IAAI,EAAE,EAAE,EAAA,CACO,CAClB,EACA,MAAM,CAAC,OAAO,IACX,CACP,EACDf,cAAC,CAAA,MAAM,IAAC,IAAI,EAAC,QAAQ,EAAC,QAAQ,EAAE,CAAC,OAAO,EAAA,QAAA,EACrC,YAAY,CAAC,KAAK,GACZ,CACJ,EAAA,CAAA,EAAA,CACM,EACf;AACJ;;AC7DgB,SAAA,KAAK,CAAC,EACpB,cAAc,GAAG,EAAE,EACnB,cAAc,GAAG,EAAE,EACnB,KAAK,GAAG;AACN,IAAA,EAAE,EAAE,KAAK;AACT,IAAA,OAAO,EAAE,EAAE;CACZ,EACD,QAAQ,EACR,UAAU,EACV,WAAW,GAAG,cAAc,EAC5B,KAAK,EACL,cAAc,EACd,IAAI,EACJ,UAAU,EACV,eAAe,EACf,GAAG,IAAI,EACI,EAAA;AACX,IAAA,QACES,eAAA,CAAA,KAAA,EAAA,EACE,SAAS,EAAE,IAAI,CAAC,aAAa,EAAE,cAAc,CAAC,EAC9C,KAAK,EAAE,EAAE,eAAe,EAAE,eAAe,EAAE,GAAG,UAAU,EAAE,EAAA,QAAA,EAAA,CAE1DA,eAAK,CAAA,KAAA,EAAA,EAAA,SAAS,EAAC,eAAe,EAAA,QAAA,EAAA,CAC3B,KAAK,IAAIT,0BAAO,SAAS,EAAE,cAAc,EAAA,QAAA,EAAG,KAAK,EAAS,CAAA,EAC1D,KAAK,IAAI,KAAK,CAAC,EAAE,KAChBA,yBAAM,SAAS,EAAC,sBAAsB,EAAA,QAAA,EACnC,KAAK,CAAC,OAAiB,EACnB,CAAA,CACR,IACG,EACNS,eAAA,CAAA,KAAA,EAAA,EAAK,SAAS,EAAC,gBAAgB,EAC5B,QAAA,EAAA,CAAA,IAAI,EAAE,OAAO,IAAI,IAAI,CAAC,QAAQ,KAAK,MAAM,KACxCT,cACE,CAAA,KAAA,EAAA,EAAA,SAAS,EAAE,IAAI,CAAC,aAAa,EAAE,mBAAmB,EAAE,IAAI,CAAC,SAAS,CAAC,EAElE,QAAA,EAAA,IAAI,CAAC,OAAO,GACT,CACP,EACDA,cACE,CAAA,OAAA,EAAA,EAAA,GAAG,EAAE,QAAQ,EACb,QAAQ,EAAE,UAAU,EACpB,SAAS,EAAE,IAAI,CACb,OAAO,EACP,KAAK,CAAC,EAAE,GAAG,cAAc,GAAG,EAAE,EAC9B,IAAI,EAAE,QAAQ,KAAK,MAAM,IAAI,aAAa,EAC1C,cAAc,CACf,EACD,WAAW,EAAE,WAAW,EAAA,GACpB,IAAI,EACR,CAAA,EACD,IAAI,EAAE,OAAO,IAAI,IAAI,CAAC,QAAQ,KAAK,MAAM,KACxCA,cAAA,CAAA,KAAA,EAAA,EACE,SAAS,EAAE,IAAI,CACb,aAAa,EACb,oBAAoB;;AAEpB,wBAAA,IAAI,CAAC,SAAS,CACf,EAAA,QAAA,EAEA,IAAI,CAAC,OAAO,EAAA,CACT,CACP,CAAA,EAAA,CACG,CACF,EAAA,CAAA,EACN;AACJ;;AChEgB,SAAA,SAAS,CAAC,EAAE,IAAI,EAAE,UAAU,EAAE,KAAK,EAAE,YAAY,EAAE,GAAG,IAAI,EAAc,EAAA;AACtF,IAAA,MAAM,EAAE,OAAO,EAAE,GAAGgB,4BAAc,EAAE,CAAC;AACrC,IAAA,QACEhB,cAAA,CAACiB,wBAAU,EAAA,EACT,IAAI,EAAE,IAAI,EACV,OAAO,EAAE,OAAO,EAChB,KAAK,EAAE;AACL,YAAA,IAAI,UAAU;AACZ,kBAAE;AACE,oBAAA,QAAQ,EAAG,KAAK,EAAE,OAAe,IAAI,mBAAmB;AACzD,iBAAA;kBACD,EAAE,CAAC;AACR,SAAA,EACD,MAAM,EAAE,CAAC,EAAE,KAAK,EAAE,UAAU,EAAE,EAAE,KAAK,EAAE,EAAE,KAAI;AAC3C,YAAA,QACEjB,cAAC,CAAA,KAAK,IACJ,UAAU,EAAA,IAAA,EACV,KAAK,EAAE;oBACL,EAAE,EAAE,CAAC,CAAC,KAAK;oBACX,OAAO,EAAE,KAAK,EAAE,OAAO;iBACxB,EACD,YAAY,EAAE,YAAY,EAAA,GACtB,KAAK,EACL,GAAA,IAAI,EACR,CAAA,EACF;SACH,EAAA,CACD,EACF;AACJ;;SC3BgB,QAAQ,CAAC,EACvB,cAAc,GAAG,KAAK,EACtB,SAAS,GAAG,EAAE,EACd,QAAQ,GAAG,IAAI,EACf,KAAK,GAAG;AACN,IAAA,EAAE,EAAE,KAAK;AACT,IAAA,OAAO,EAAE,EAAE;AACZ,CAAA,EACD,eAAe,GAAG,IAAI,EACtB,UAAU,GAAG,MAAM,EACnB,KAAK,EACL,cAAc,EACd,UAAU,EACV,WAAW,GAAG,cAAc,EAC5B,UAAU,GAAG,OAAO,EACpB,eAAe,EACf,KAAK,GAAG,EAAE,EACV,iBAAiB,GAAG,EAAE,EACtB,GAAG,IAAI,EACO,EAAA;AACd,IAAA,MAAM,GAAG,GAAGE,YAAM,EAA2C,CAAC;IAC9D,MAAM,CAAC,MAAM,EAAE,SAAS,CAAC,GAAGM,cAAQ,CAAU,KAAK,CAAC,CAAC;IAErD,MAAM,iBAAiB,GAAG,MAAK;AAC7B,QAAA,IAAI,GAAG,IAAI,GAAG,CAAC,OAAO,EAAE;AACtB,YAAA,IAAI,MAAM,EAAE;gBACV,GAAG,CAAC,OAAO,CAAC,KAAK,CAAC,MAAM,GAAG,UAAU,CAAC;AACvC,aAAA;AAAM,iBAAA;gBACL,GAAG,CAAC,OAAO,CAAC,KAAK,CAAC,MAAM,GAAG,UAAU,CAAC;AACvC,aAAA;YACD,SAAS,CAAC,CAAC,IAAI,KAAK,CAAC,IAAI,CAAC,CAAC;AAC5B,SAAA;AACH,KAAC,CAAC;AAEF,IAAA,QACEC,eACE,CAAA,KAAA,EAAA,EAAA,SAAS,EAAE,IAAI,CAAC,UAAU,EAAE,SAAS,CAAC,EACtC,KAAK,EAAE,EAAE,eAAe,EAAE,eAAe,EAAE,GAAG,KAAK,EAAE,EAErD,QAAA,EAAA,CAAAA,eAAA,CAAA,KAAA,EAAA,EAAK,SAAS,EAAC,kBAAkB,EAC9B,QAAA,EAAA,CAAA,KAAK,IAAIT,cAAA,CAAA,OAAA,EAAA,EAAO,SAAS,EAAE,cAAc,EAAG,QAAA,EAAA,KAAK,GAAS,EAC1D,KAAK,IAAI,KAAK,CAAC,EAAE,KAChBA,cAAA,CAAA,MAAA,EAAA,EAAM,SAAS,EAAC,yBAAyB,EACtC,QAAA,EAAA,KAAK,CAAC,OAAc,EAAA,CAChB,CACR,CAAA,EAAA,CACG,EACNA,cACE,CAAA,UAAA,EAAA,EAAA,GAAG,EAAE,GAAG,EACR,SAAS,EAAE,IAAI,CACb,iBAAiB,EACjB,KAAK,CAAC,EAAE,IAAI,wBAAwB,EACpC,iBAAiB,CAClB,EACD,KAAK,EACH;oBACE,MAAM,EAAE,eAAe,GAAG,UAAU,GAAG,UAAU;AAC3B,iBAAA,EAE1B,WAAW,EAAE,WAAW,EACxB,QAAQ,EAAE,QAAQ,EAClB,QAAQ,EAAE,UAAU,EAAA,GAChB,IAAI,EAAA,CACR,EACD,eAAe,KACdA,cAAC,CAAA,MAAM,EACL,EAAA,IAAI,EAAC,QAAQ,EACb,SAAS,EAAE,IAAI,CACb,kBAAkB,EAClB,MAAM,IAAI,wBAAwB,EAClC,KAAK,CAAC,EAAE,IAAI,yBAAyB,CACtC,EACD,OAAO,EAAE,iBAAiB,EAC1B,QAAQ,EAAE,cAAc,EAAA,QAAA,EAExBA,cAAC,CAAAkB,oBAAiB,EAAC,EAAA,IAAI,EAAC,QAAQ,EAAG,CAAA,EAAA,CAC5B,CACV,CAAA,EAAA,CACG,EACN;AACJ;;AClFgB,SAAA,YAAY,CAAC,EAAE,IAAI,EAAE,UAAU,EAAE,KAAK,EAAE,GAAG,IAAI,EAAc,EAAA;AAC3E,IAAA,MAAM,EAAE,OAAO,EAAE,GAAGF,4BAAc,EAAE,CAAC;AACrC,IAAA,QACEhB,cAAA,CAACiB,wBAAU,EAAA,EACT,IAAI,EAAE,IAAI,EACV,OAAO,EAAE,OAAO,EAChB,KAAK,EAAE;AACL,YAAA,IAAI,UAAU;AACZ,kBAAE;AACE,oBAAA,QAAQ,EAAG,KAAK,EAAE,OAAe,IAAI,mBAAmB;AACzD,iBAAA;kBACD,EAAE,CAAC;AACR,SAAA,EACD,MAAM,EAAE,CAAC,EAAE,KAAK,EAAE,UAAU,EAAE,EAAE,KAAK,EAAE,EAAE,KAAI;AAC3C,YAAA,QACEjB,cAAC,CAAA,QAAQ,IACP,UAAU,EAAA,IAAA,EACV,KAAK,EAAE;oBACL,EAAE,EAAE,CAAC,CAAC,KAAK;oBACX,OAAO,EAAE,KAAK,EAAE,OAAO;AACxB,iBAAA,EAAA,GACG,KAAK,EAAA,GACL,IAAI,EAAA,CACR,EACF;SACH,EAAA,CACD,EACF;AACJ;;SCzBgB,MAAM,CAAC,EACrB,cAAc,GAAG,EAAE,EACnB,cAAc,GAAG,EAAE,EACnB,OAAO,EACP,UAAU,EACV,YAAY,EACZ,eAAe,EACf,UAAU,EACV,SAAS,EACT,UAAU,EACV,YAAY,EACZ,KAAK,EACL,cAAc,EACd,KAAK,EACL,eAAe,EACf,UAAU,EACV,GAAG,IAAI,EACK,EAAA;IACZ,MAAM,CAAC,MAAM,EAAE,SAAS,CAAC,GAAGQ,cAAQ,CAAC,KAAK,CAAC,CAAC;AAC5C,IAAA,MAAM,CAAC,KAAK,EAAE,QAAQ,CAAC,GAAGA,cAAQ,CAAC,YAAY,KAAK,OAAO,IAAI,OAAO,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;IAC5E,MAAM,CAAC,eAAe,EAAE,kBAAkB,CAAC,GAAGA,cAAQ,CAAC,OAAO,CAAC,CAAC;AAChE,IAAA,MAAM,EAAE,IAAI,EAAE,GAAG,IAAI,CAAC;IAEtB,MAAM,UAAU,GAAG,MAAK;QACtB,SAAS,CAAC,IAAI,CAAC,CAAC;AAClB,KAAC,CAAC;IAEF,MAAM,WAAW,GAAG,MAAK;QACvB,SAAS,CAAC,KAAK,CAAC,CAAC;AACnB,KAAC,CAAC;IAEF,MAAM,gBAAgB,GAAG,MAAK;AAC5B,QAAA,IAAI,UAAU,EAAE;AACd,YAAA,UAAU,EAAE,CAAC;AACd,SAAA;QACD,SAAS,CAAC,KAAK,CAAC,CAAC;AACnB,KAAC,CAAC;IAEF,MAAM,YAAY,GAAG,MAAK;QACxB,SAAS,CAAC,CAAC,IAAI,KAAK,CAAC,IAAI,CAAC,CAAC;AAC7B,KAAC,CAAC;AAEF,IAAA,MAAM,iBAAiB,GAAG,CAAC,CAAgC,KAAI;AAC7D,QAAA,MAAM,EAAE,KAAK,EAAE,GAAG,CAAC,CAAC,MAAM,CAAC;AAC3B,QAAA,MAAM,QAAQ,GAAG,OAAO,EAAE,MAAM,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,QAAQ,CAAC,KAAK,CAAC,CAAC,CAAC;QAC3D,kBAAkB,CAAC,QAAQ,CAAC,CAAC;QAC7B,QAAQ,CAAC,KAAK,CAAC,CAAC;AAClB,KAAC,CAAC;AAEF,IAAA,MAAM,kBAAkB,GAAG,CAAC,CAA+B,KAAI;QAC7D,MAAM,EAAE,IAAI,EAAE,KAAK,EAAE,GAAG,CAAC,CAAC,MAAM,CAAC;AAEjC,QAAA,IAAI,eAAe,EAAE;AACnB,YAAA,eAAe,CAAC,IAAI,EAAE,KAAK,CAAC,CAAC;AAC7B,YAAA,IAAI,UAAU,EAAE;gBACd,UAAU,CAAC,IAAI,CAAC,CAAC;AAClB,aAAA;AAED,YAAA,IAAI,SAAS,EAAE;AACb,gBAAA,SAAS,EAAE,CAAC;AACb,aAAA;AACF,SAAA;AAAM,aAAA;YACL,QAAQ,CAAC,KAAK,CAAC,CAAC;AACjB,SAAA;AAED,QAAA,IAAI,YAAY,EAAE;YAChB,YAAY,CAAC,KAAK,CAAC,CAAC;AACrB,SAAA;AAED,QAAA,WAAW,EAAE,CAAC;AAChB,KAAC,CAAC;AAEF,IAAA,QACEC,eAAA,CAAA,KAAA,EAAA,EACE,SAAS,EAAE,IAAI,CAAC,cAAc,EAAE,cAAc,CAAC,EAC/C,KAAK,EAAE,EAAE,eAAe,EAAE,eAAe,EAAE,GAAG,UAAU,EAAE,EAE1D,QAAA,EAAA,CAAAT,cAAA,CAAC,KAAK,EAAA,EACJ,cAAc,EAAE,IAAI,CAClB,QAAQ,EACR;AACE,oBAAA,eAAe,EAAE,MAAM;iBACxB,EACD,cAAc,CACf,EACD,KAAK,EAAE,KAAK,EACZ,KAAK,EAAE,KAAK,EACZ,QAAQ,EAAE,UAAU,EACpB,WAAW,EAAC,gBAAgB,EAC5B,IAAI,EAAE;AACJ,oBAAA,SAAS,EAAE,eAAe;oBAC1B,OAAO,GACLA,cAAC,CAAA,MAAM,IACL,IAAI,EAAC,QAAQ,EACb,IAAI,EAAC,OAAO,EACZ,IAAI,EAAC,MAAM,EACX,SAAS,EAAE,IAAI,CAAC,sBAAsB,EAAE;AACtC,4BAAA,4BAA4B,EAAE,MAAM;AACrC,yBAAA,CAAC,EACF,OAAO,EAAE,YAAY,EACrB,MAAM,EAAE,WAAW,EAEnB,QAAA,EAAAA,cAAA,CAACU,gBAAY,EAAC,EAAA,IAAI,EAAE,EAAE,EAAA,CAAI,GACnB,CACV;AACF,iBAAA,EACD,OAAO,EAAE,UAAU,EACnB,MAAM,EAAE,gBAAgB,EACxB,QAAQ,EAAE,iBAAiB,EAC3B,YAAY,EAAC,KAAK,EAClB,KAAK,EAAE,KAAK,EACZ,cAAc,EAAE,cAAc,EAC1B,GAAA,IAAI,GACR,EACD,MAAM,KACLV,cAAA,CAAA,KAAA,EAAA,EAAK,SAAS,EAAC,aAAa,YACxB,eAA4B,CAAC,GAAG,CAChC,CAAC,MAAc,EAAE,KAAa,MAC5BA,cAAA,CAAC,MAAM,EAEL,EAAA,IAAI,EAAC,QAAQ,EACb,IAAI,EAAC,WAAW,EAChB,SAAS,EAAC,gBAAgB,EAC1B,IAAI,EAAE,MAAM,EACZ,KAAK,EAAE,MAAM,EACb,WAAW,EAAE,kBAAyB,YAErC,MAAM,EAAA,EARF,SAAS,KAAK,CAAA,CAAE,CASd,CACV,CACF,GACG,CACP,CAAA,EAAA,CACG,EACN;AACJ;;SC1IgB,UAAU,CAAC,EACzB,IAAI,EACJ,UAAU,EACV,KAAK,EACL,aAAa,EACb,KAAK,EACL,GAAG,IAAI,EACS,EAAA;AAChB,IAAA,MAAM,EAAE,OAAO,EAAE,QAAQ,EAAE,WAAW,EAAE,UAAU,EAAE,UAAU,EAAE,GAC9DgB,4BAAc,EAAE,CAAC;AACnB,IAAA,QACEhB,cAAA,CAACiB,wBAAU,EAAA,EACT,IAAI,EAAE,IAAI,EACV,OAAO,EAAE,OAAO,EAChB,KAAK,EAAE;AACL,YAAA,IAAI,UAAU;AACZ,kBAAE;AACE,oBAAA,QAAQ,EAAG,KAAK,EAAE,OAAe,IAAI,mBAAmB;AACzD,iBAAA;kBACD,EAAE,CAAC;SACR,EACD,MAAM,EAAE,CAAC,EAAE,KAAK,EAAE,EAAE,MAAM,EAAE,GAAG,SAAS,EAAE,EAAE,UAAU,EAAE,EAAE,KAAK,EAAE,EAAE,KAAI;YACrE,QACEjB,cAAC,CAAA,MAAM,EACL,EAAA,UAAU,EACV,IAAA,EAAA,KAAK,EAAE,KAAK,EACZ,KAAK,EAAE;oBACL,EAAE,EAAE,CAAC,CAAC,KAAK;AACX,oBAAA,OAAO,EAAE,KAAK,EAAE,OAAO,IAAI,EAAE;iBAC9B,EACD,eAAe,EAAE,QAAQ,EACzB,SAAS,EAAE,MACT,aAAa;AACb,oBAAA,aAAa,CAAC,GAAG,CAAC,CAAC,KAAK,KAAI;AAC1B,wBAAA,QAAQ,CAAC,KAAK,EAAE,SAAS,CAAC,CAAC;wBAC3B,UAAU,CAAC,KAAK,CAAC,CAAC;AACpB,qBAAC,CAAC,EAEJ,UAAU,EAAE,WAAW,EACvB,UAAU,EAAE,MAAM,KACd,SAAS,EAAA,GACT,IAAI,EAAA,CACR,EACF;SACH,EAAA,CACD,EACF;AACJ;;ACpDA,IAAI,GAAG,GAAG,guKAAguK;;SCI1tK,OAAO,CAAC,OAAEmB,KAAG,EAAE,QAAQ,EAAgB,EAAA;IACrD,QACEV,yBAAK,SAAS,EAAC,SAAS,EACtB,QAAA,EAAA,CAAAT,cAAA,CAAA,KAAA,EAAA,EAAK,GAAG,EAAEmB,KAAG,IAAIC,GAAG,EAAI,CAAA,EACxBpB,cAAK,CAAA,KAAA,EAAA,EAAA,SAAS,EAAC,iBAAiB,YAAE,QAAQ,EAAA,CAAO,CAC7C,EAAA,CAAA,EACN;AACJ;;ACLgB,SAAA,KAAK,CAAC,EACpB,SAAS,EACT,QAAQ,EACR,QAAQ,EACR,KAAK,EACL,QAAQ,EACR,MAAM,EACN,UAAU,GAAG,IAAI,EACjB,cAAc,GAAG,IAAI,EACrB,WAAW,EACX,GAAG,IAAI,EACI,EAAA;IACX,QACES,kDACG,UAAU,IAAIT,wBAAK,SAAS,EAAC,eAAe,EAAG,CAAA,EAChDS,yBAAK,GAAG,EAAE,QAAQ,EAAE,SAAS,EAAE,IAAI,CAAC,OAAO,EAAE,SAAS,CAAC,KAAM,IAAI,EAAA,QAAA,EAAA,CAC9D,cAAc,KACbT,eAAC,MAAM,EAAA,EACL,IAAI,EAAC,WAAW,EAChB,SAAS,EAAC,cAAc,EACxB,IAAI,EAAC,OAAO,EACZ,OAAO,EAAE,WAAW,EAEpB,QAAA,EAAAA,cAAA,CAACqB,WAAO,EAAG,EAAA,CAAA,EAAA,CACJ,CACV,EACDZ,eAAA,CAAA,KAAA,EAAA,EAAK,SAAS,EAAC,gBAAgB,aAC5B,KAAK,KACJA,eAAK,CAAA,KAAA,EAAA,EAAA,SAAS,EAAC,eAAe,EAAA,QAAA,EAAA,CAC5BT,iCAAK,KAAK,EAAA,CAAM,EAChBA,cAAA,CAAA,IAAA,EAAA,EAAA,QAAA,EAAK,QAAQ,EAAA,CAAM,IACf,CACP,EACDA,wBAAK,SAAS,EAAC,iBAAiB,EAAE,QAAA,EAAA,QAAQ,EAAO,CAAA,EAChD,MAAM,IAAIA,wBAAK,SAAS,EAAC,eAAe,EAAE,QAAA,EAAA,MAAM,GAAO,CACpD,EAAA,CAAA,CAAA,EAAA,CACF,CACL,EAAA,CAAA,EACH;AACJ;;ACtBgB,SAAA,YAAY,CAAC,QAAgC,EAAE,OAAe,EAAA;IAC5E,MAAM,CAAC,YAAY,EAAE,eAAe,CAAC,GAAGQ,cAAQ,CAC9C,SAAS,CACV,CAAC;IACF,MAAM,CAAC,aAAa,EAAE,gBAAgB,CAAC,GAAGA,cAAQ,CAChD,SAAS,CACV,CAAC;IACF,MAAM,CAAC,aAAa,EAAE,gBAAgB,CAAC,GAAGA,cAAQ,CAChD,SAAS,CACV,CAAC;;IAGFL,eAAS,CAAC,MAAK;QACb,IAAI,QAAQ,EAAE,OAAO,EAAE;AACrB,YAAA,MAAM,OAAO,GAAG,QAAQ,CAAC,OAAgC,CAAC;AAE1D,YAAA,IAAI,OAAO,EAAE;AACX,gBAAA,MAAM,SAAS,GAAG,KAAK,CAAC,IAAI,CAC1B,OAAO,CAAC,sBAAsB,CAAC,gBAAgB,CAAC,CACjD,CAAC;AACF,gBAAA,MAAM,YAAY,GAAG,OAAO,CAAC,qBAAqB,EAAE,CAAC;gBAErD,eAAe,CACb,SAAS,CAAC,GAAG,CAAC,CAAC,MAAM,KAAI;AACvB,oBAAA,MAAM,WAAW,GAAG,MAAM,CAAC,qBAAqB,EAAE,CAAC;AACnD,oBAAA,OAAO,WAAW,CAAC,KAAK,GAAG,YAAY,CAAC,CAAC,CAAC;iBAC3C,CAAC,CACH,CAAC;AACH,aAAA;AACF,SAAA;KACF,EAAE,EAAE,CAAC,CAAC;;IAGPA,eAAS,CAAC,MAAK;AACb,QAAA,IAAI,YAAY,EAAE;YAChB,gBAAgB,CAAC,GAAG,YAAY,CAAC,OAAO,CAAC,CAAA,EAAA,CAAI,CAAC,CAAC;AAC/C,YAAA,gBAAgB,CACd,CAAA,EACE,YAAY,CAAC,OAAO,CAAC;AACrB,iBAAC,YAAY,CAAC,CAAC,CAAC,GAAG,CAAC,GAAG,cAAc,EAAE,CAAC,KAAK,GAAG,CAAC,CACnD,CAAA,EAAA,CAAI,CACL,CAAC;AACH,SAAA;AACH,KAAC,EAAE,CAAC,YAAY,CAAC,CAAC,CAAC;IAEnB,OAAO;QACL,QAAQ;QACR,YAAY;QACZ,eAAe;QACf,aAAa;QACb,gBAAgB;QAChB,aAAa;QACb,gBAAgB;KACjB,CAAC;AACJ,CAAC;SAEe,cAAc,GAAA;IAC5B,MAAM,KAAK,GAAG,QAAQ,CAAC,sBAAsB,CAAC,cAAc,CAAC,CAAC,CAAC,CAAC,CAAC;AACjE,IAAA,OAAO,KAAK,CAAC,qBAAqB,EAAE,CAAC;AACvC,CAAC;AAEe,SAAA,QAAQ,CAAC,EACvB,YAAY,EACZ,aAAa,EACb,cAAc,EACd,iBAAiB,EACjB,MAAM,GACK,EAAA;AACX,IAAA,MAAM,UAAU,GAAGD,YAAM,CAAC,IAAI,CAAC,CAAC;IAEhC,MAAM,CAAC,MAAM,EAAE,SAAS,CAAC,GAAGM,cAAQ,CAAU,KAAK,CAAC,CAAC;;IAErDL,eAAS,CAAC,MAAK;AACb,QAAA,YAAY,EAAE,CAAC;AAEf,QAAA,IAAI,MAAM,EAAE;AACV,YAAA,IAAI,YAAY,EAAE;AAChB,gBAAA,UAAU,CAAC,OAAO,GAAG,UAAU,CAAC,MAAK;AACnC,oBAAA,MAAM,gBAAgB,GACpB,YAAY,CAAC,aAAa,CAAC;AAC3B,wBAAA,YAAY,CAAC,CAAC,CAAC,GAAG,CAAC;AACnB,wBAAA,cAAc,EAAE,CAAC,KAAK,GAAG,CAAC,CAAC;AAE7B,oBAAA,cAAc,CACZ,YAAY,CAAC,aAAa,GAAG,CAAC,CAAC,EAC/B,gBAAgB,EAChB,aAAa,GAAG,CAAC,EACjB,IAAI,CACL,CAAC;oBAEF,iBAAiB,CAAC,MAAM,CAAC,aAAa,GAAG,CAAC,CAAC,CAAC,CAAC;iBAC9C,EAAE,GAAG,CAAQ,CAAC;AAEf,gBAAA,IAAI,aAAa,KAAK,YAAY,CAAC,MAAM,GAAG,CAAC,EAAE;oBAC7C,SAAS,CAAC,KAAK,CAAC,CAAC;AAClB,iBAAA;AACF,aAAA;AACF,SAAA;AAED,QAAA,OAAO,MAAK;AACV,YAAA,YAAY,EAAE,CAAC;AACjB,SAAC,CAAC;AACJ,KAAC,EAAE,CAAC,MAAM,EAAE,aAAa,CAAC,CAAC,CAAC;IAE5B,MAAM,YAAY,GAAG,MAAK;QACxB,IAAI,UAAU,CAAC,OAAO,EAAE;AACtB,YAAA,YAAY,CAAC,UAAU,CAAC,OAAO,CAAC,CAAC;AAClC,SAAA;AACH,KAAC,CAAC;IACF,MAAM,UAAU,GAAG,MAAK;AACtB,QAAA,SAAS,CAAC,CAAC,MAAM,CAAC,CAAC;AACrB,KAAC,CAAC;IAEF,MAAM,UAAU,GAAG,MAAK;AACtB,QAAA,IAAI,YAAY,EAAE;YAChB,cAAc,CACZ,YAAY,CAAC,CAAC,CAAC,EACf,YAAY,CAAC,CAAC,CAAC,GAAG,CAAC,GAAG,cAAc,EAAE,CAAC,KAAK,GAAG,CAAC,EAChD,CAAC,EACD,KAAK,CACN,CAAC;YAEF,SAAS,CAAC,KAAK,CAAC,CAAC;AAClB,SAAA;AACH,KAAC,CAAC;IAEF,OAAO,EAAE,MAAM,EAAE,SAAS,EAAE,UAAU,EAAE,UAAU,EAAE,CAAC;AACvD,CAAC;AAEe,SAAA,QAAQ,CAAC,EACvB,YAAY,EACZ,QAAQ,EACR,cAAc,EACd,iBAAiB,EACjB,MAAM,GACK,EAAA;;AAEX,IAAA,MAAM,aAAa,GAAG,CAAC,KAA4B,KAAI;AACrD,QAAA,IAAI,YAAY,IAAI,QAAQ,EAAE,OAAO,EAAE;AACrC,YAAA,MAAM,OAAO,GAAG,QAAQ,CAAC,OAAgC,CAAC;AAC1D,YAAA,MAAM,WAAW,GAAG,OAAO,EAAE,qBAAqB,EAAa,CAAC;YAChE,MAAM,CAAC,GAAG,KAAK,CAAC,KAAK,GAAG,WAAW,CAAC,IAAI,CAAC;YACzC,MAAM,IAAI,GAAG,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC;AAEzB,YAAA,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,IAAI,YAAY,CAAC,YAAY,CAAC,MAAM,GAAG,CAAC,CAAC,EAAE;AACxD,gBAAA,MAAM,eAAe,GAAG,YAAY,CAAC,MAAM,CAAC,CAAC,IAAI,EAAE,IAAI,KACrD,IAAI,CAAC,GAAG,CAAC,IAAI,GAAG,IAAI,CAAC,GAAG,IAAI,CAAC,GAAG,CAAC,IAAI,GAAG,IAAI,CAAC,GAAG,IAAI,GAAG,IAAI,CAC5D,CAAC;gBACF,MAAM,KAAK,GAAG,YAAY,CAAC,OAAO,CAAC,eAAe,CAAC,CAAC;AAEpD,gBAAA,MAAM,gBAAgB,GACpB,KAAK,KAAK,CAAC;AACT,sBAAE,YAAY,CAAC,KAAK,CAAC;AACnB,wBAAA,YAAY,CAAC,CAAC,CAAC,GAAG,CAAC;AACnB,wBAAA,cAAc,EAAE,CAAC,KAAK,GAAG,CAAC;AAC5B,sBAAE,YAAY,CAAC,KAAK,GAAG,CAAC,CAAC;AACvB,wBAAA,YAAY,CAAC,CAAC,CAAC,GAAG,CAAC;AACnB,wBAAA,cAAc,EAAE,CAAC,KAAK,GAAG,CAAC,CAAC;gBAEjC,cAAc,CAAC,eAAe,EAAE,gBAAgB,EAAE,KAAK,EAAE,IAAI,CAAC,CAAC;AAE/D,gBAAA,iBAAiB,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC,CAAC;AAClC,aAAA;AACF,SAAA;AACH,KAAC,CAAC;IAEF,MAAM,YAAY,GAAG,MAAK;QACxB,MAAM,CAAC,mBAAmB,CAAC,WAAW,EAAE,aAAa,EAAE,KAAK,CAAC,CAAC;QAC9D,MAAM,CAAC,mBAAmB,CAAC,SAAS,EAAE,YAAY,EAAE,KAAK,CAAC,CAAC;AAC7D,KAAC,CAAC;IAEF,MAAM,eAAe,GAAG,MAAK;QAC3B,MAAM,CAAC,gBAAgB,CAAC,WAAW,EAAE,aAAa,EAAE,KAAK,CAAC,CAAC;QAC3D,MAAM,CAAC,gBAAgB,CAAC,SAAS,EAAE,YAAY,EAAE,KAAK,CAAC,CAAC;AAC1D,KAAC,CAAC;IACF,OAAO,EAAE,eAAe,EAAE,CAAC;AAC7B;;ACjLA,MAAM,YAAY,GAAGI,mBAAa,CAAoB,SAAS,EAAE;AAEjE,SAAS,aAAa,CAAC,EACrB,QAAQ,EACR,SAAS,EAAE,aAAa,EACxB,WAAW,EAAE,eAAe,GAAG,OAAO,GACnB,EAAA;IACnB,MAAM,CAAC,SAAS,EAAE,YAAY,CAAC,GAAGC,cAAQ,EAAa,CAAC;IACxD,MAAM,CAAC,WAAW,EAAE,cAAc,CAAC,GAAGA,cAAQ,EAAe,CAAC;IAE9DL,eAAS,CAAC,MAAK;AACb,QAAA,IAAI,eAAe,EAAE;YACnB,iBAAiB,CAAC,eAAe,CAAC,CAAC;AACpC,SAAA;AACH,KAAC,EAAE,CAAC,eAAe,CAAC,CAAC,CAAC;IAEtBA,eAAS,CAAC,MAAK;AACb,QAAA,IAAI,aAAa,EAAE;YACjB,eAAe,CAAC,aAAa,CAAC,CAAC;AAChC,SAAA;AACH,KAAC,EAAE,CAAC,aAAa,CAAC,CAAC,CAAC;IAEpBA,eAAS,CAAC,MAAK;QACb,IAAI,MAAM,CAAC,UAAU,EAAE;AACrB,YAAA,IAAI,YAAY,CAAC,OAAO,CAAC,YAAY,CAAC,EAAE;AACtC,gBAAA,QAAQ,CAAC,eAAe,CAAC,YAAY,CACnC,YAAY,EACZ,YAAY,CAAC,OAAO,CAAC,YAAY,CAAW,CAC7C,CAAC;gBACF,YAAY,CAAC,YAAY,CAAC,OAAO,CAAC,YAAY,CAAc,CAAC,CAAC;AAC/D,aAAA;iBAAM,IAAI,MAAM,CAAC,UAAU,CAAC,8BAA8B,CAAC,CAAC,OAAO,EAAE;gBACpE,QAAQ,CAAC,eAAe,CAAC,YAAY,CAAC,YAAY,EAAE,MAAM,CAAC,CAAC;gBAC5D,YAAY,CAAC,MAAM,CAAC,CAAC;AACtB,aAAA;AACF,SAAA;KACF,EAAE,EAAE,CAAC,CAAC;AAEP,IAAA,MAAM,eAAe,GAAG,CAAC,IAAe,KAAI;QAC1C,QAAQ,CAAC,eAAe,CAAC,YAAY,CAAC,YAAY,EAAE,IAAI,CAAC,CAAC;QAC1D,YAAY,CAAC,IAAI,CAAC,CAAC;AACnB,QAAA,YAAY,CAAC,OAAO,CAAC,YAAY,EAAE,IAAI,CAAC,CAAC;AAC3C,KAAC,CAAC;AAEF,IAAA,MAAM,iBAAiB,GAAG,CAAC,IAAiB,KAAI;QAC9C,QAAQ,CAAC,eAAe,CAAC,YAAY,CAAC,cAAc,EAAE,IAAI,CAAC,CAAC;QAC5D,cAAc,CAAC,IAAI,CAAC,CAAC;AACrB,QAAA,YAAY,CAAC,OAAO,CAAC,eAAe,EAAE,IAAI,CAAC,CAAC;AAC9C,KAAC,CAAC;IAEF,QACEH,eAAC,YAAY,CAAC,QAAQ,EACpB,EAAA,KAAK,EAAE,EAAE,SAAS,EAAE,eAAe,EAAE,WAAW,EAAE,iBAAiB,EAAE,EAEpE,QAAA,EAAA,QAAQ,EACa,CAAA,EACxB;AACJ,CAAC;AAED,SAAS,QAAQ,GAAA;AACf,IAAA,MAAM,OAAO,GAAGF,gBAAU,CAAC,YAAY,CAAC,CAAC;IAEzC,IAAI,OAAO,KAAK,SAAS,EAAE;AACzB,QAAA,MAAM,IAAI,KAAK,CAAC,8CAA8C,CAAC,CAAC;AACjE,KAAA;AAED,IAAA,OAAO,OAAO,CAAC;AACjB;;ACrEM,SAAU,UAAU,CAAC,EACzB,aAAa,EACb,iBAAiB,EACjB,eAAe,EACT,EAAA;AACN,IAAA,MAAM,EAAE,SAAS,EAAE,GAAG,QAAQ,EAAE,CAAC;AAGjC,IAAA,QACEE,cAAC,CAAA,MAAM,EACL,EAAA,IAAI,EAAC,MAAM,EACX,SAAS,EAAC,cAAc,EACxB,IAAI,EAAC,OAAO,EACZ,KAAK,EAAE;YACL,IAAI,EAAE,CAAG,EAAA,aAAa,CAAE,CAAA;AACzB,SAAA,EACD,WAAW,EAAE,MAAM,iBAAiB,CAAC,aAAa,CAAC,EACnD,WAAW,EAAE,eAAe,EAE3B,QAAA,EAAA,SAAS,KAAK,MAAM,IACnBA,eAACsB,mBAAgB,EAAA,EAAC,IAAI,EAAC,QAAQ,GAAG,KAElCtB,eAACuB,mBAAgB,EAAA,EAAC,IAAI,EAAC,QAAQ,GAAG,CACnC,EAAA,CACM,EACT;AACJ;;SCpBgB,YAAY,CAAC,EAC3B,MAAM,EACN,MAAM,EACN,YAAY,EACZ,cAAc,EACd,iBAAiB,EACjB,gBAAgB,EAChB,IAAI,GACE,EAAA;AACN,IAAA,MAAM,gBAAgB,GAAG,CAAC,KAAa,KAAI;AACzC,QAAA,IAAI,YAAY,EAAE;AAChB,YAAA,MAAM,gBAAgB,GACpB,KAAK,KAAK,CAAC;AACT,kBAAE,YAAY,CAAC,KAAK,CAAC;AACnB,oBAAA,YAAY,CAAC,CAAC,CAAC,GAAG,CAAC;AACnB,oBAAA,cAAc,EAAE,CAAC,KAAK,GAAG,CAAC;AAC5B,kBAAE,YAAY,CAAC,KAAK,GAAG,CAAC,CAAC;AACvB,oBAAA,YAAY,CAAC,CAAC,CAAC,GAAG,CAAC;AACnB,oBAAA,cAAc,EAAE,CAAC,KAAK,GAAG,CAAC,CAAC;AACjC,YAAA,cAAc,CAAC,YAAY,CAAC,KAAK,CAAC,EAAE,gBAAgB,EAAE,KAAK,EAAE,IAAI,CAAC,CAAC;AACpE,SAAA;AACH,KAAC,CAAC;AAEF,IAAA,OAAO,MAAM;AACX,UAAE,MAAM,CAAC,GAAG,CAAC,CAAC,KAAkC,EAAE,KAAa,MAC3DvB,wBACE,SAAS,EAAC,uCAAuC,EACjD,OAAO,EAAE,MAAM,gBAAgB,CAAC,KAAK,CAAC,EACtC,WAAW,EAAE,MAAM,iBAAiB,CAAC,KAAK,CAAC,EAC3C,UAAU,EAAE,MAAM,gBAAgB,EAAE,EAAA,QAAA,EAEnC,KAAK,GAAG,MAAM,KAAK,CAAC,IACnBS,eACE,CAAAe,mBAAA,EAAA,EAAA,QAAA,EAAA,CAAAxB,cAAA,CAAA,KAAA,EAAA,EAAK,SAAS,EAAC,gCAAgC,EAAO,CAAA,EACtDA,cACE,CAAA,KAAA,EAAA,EAAA,SAAS,EAAE,IAAI,CAAC,cAAc,EAAE,sBAAsB,EAAE;4BACtD,oBAAoB,EAAE,KAAK,KAAK,IAAI;AACrC,yBAAA,CAAC,EAED,QAAA,EAAA,KAAK,EACF,CAAA,CAAA,EAAA,CACL,KAEHS,eAAA,CAAAe,mBAAA,EAAA,EAAA,QAAA,EAAA,CACExB,cAAK,CAAA,KAAA,EAAA,EAAA,SAAS,EAAC,gCAAgC,EAAO,CAAA,EACrD,KAAK,KAAK,IAAI,KACbA,cAAA,CAAA,KAAA,EAAA,EACE,SAAS,EAAE,IAAI,CAAC,cAAc,EAAE,sBAAsB,EAAE;4BACtD,oBAAoB,EAAE,KAAK,KAAK,IAAI;yBACrC,CAAC,EAAA,QAAA,EAED,KAAK,EACF,CAAA,CACP,IACA,CACJ,EAAA,CACG,CACP,CAAC;UACF,MAAM,CAAC,GAAG,CAAC,CAAC,KAAkC,EAAE,KAAa,MAC3DS,yBAAK,SAAS,EAAC,gBAAgB,EAAC,OAAO,EAAE,MAAM,gBAAgB,CAAC,KAAK,CAAC,EAAA,QAAA,EAAA,CACpET,wBAAK,SAAS,EAAC,gCAAgC,EAAO,CAAA,EACtDA,wBAAK,SAAS,EAAC,cAAc,EAAE,QAAA,EAAA,KAAK,GAAO,CACvC,EAAA,CAAA,CACP,CAAC,CAAC;AACT;;ACxEM,SAAU,aAAa,CAAC,EAC5B,aAAa,EACb,MAAM,EACN,UAAU,EACV,UAAU,GACJ,EAAA;IACN,QACES,kDACET,cAAC,CAAA,MAAM,IACL,IAAI,EAAC,MAAM,EACX,IAAI,EAAC,OAAO,EACZ,SAAS,EAAC,aAAa,EACvB,OAAO,EAAE,UAAU,EAAA,QAAA,EAElB,MAAM,IACLA,eAACyB,WAAO,EAAA,EAAC,KAAK,EAAC,2BAA2B,EAAC,IAAI,EAAE,MAAM,GAAI,KAE3DzB,eAAC0B,UAAM,EAAA,EAAC,KAAK,EAAC,2BAA2B,EAAC,IAAI,EAAE,MAAM,GAAI,CAC3D,EAAA,CACM,EAET1B,cAAC,CAAA,MAAM,IACL,IAAI,EAAC,MAAM,EACX,IAAI,EAAC,OAAO,EACZ,SAAS,EAAC,aAAa,EACvB,QAAQ,EAAE,CAAC,MAAM,IAAI,aAAa,KAAK,CAAC,EACxC,OAAO,EAAE,UAAU,EAEnB,QAAA,EAAAA,cAAA,CAAC2B,UAAM,EAAA,EAAC,KAAK,EAAC,2BAA2B,EAAC,IAAI,EAAE,MAAM,EAAI,CAAA,EAAA,CACnD,CACR,EAAA,CAAA,EACH;AACJ;;ACzCgB,SAAA,KAAK,CAAC,EAAE,OAAO,GAAG,CAAC,EAAE,MAAM,EAAE,MAAM,EAAE,cAAc,EAAc,EAAA;AAC/E,IAAA,MAAM,QAAQ,GAAGzB,YAAM,CAAC,IAAI,CAAC,CAAC;IAC9B,MAAM,CAAC,aAAa,EAAE,gBAAgB,CAAC,GAAGM,cAAQ,CAAS,OAAO,CAAC,CAAC;IACpE,MAAM,CAAC,IAAI,EAAE,OAAO,CAAC,GAAGA,cAAQ,CAA8B,SAAS,CAAC,CAAC;AAEzE,IAAA,MAAM,EACJ,YAAY,EACZ,aAAa,EACb,gBAAgB,EAChB,aAAa,EACb,gBAAgB,GACjB,GAAG,YAAY,CAAC,QAAQ,EAAE,OAAO,CAAC,CAAC;AAEpC,IAAA,MAAM,cAAc,GAAG,CACrB,aAAqB,EACrB,aAAqB,EACrB,KAAa,EACb,gBAAA,GAA4B,KAAK,KAC/B;AACF,QAAA,gBAAgB,CAAC,CAAA,EAAG,aAAa,CAAA,EAAA,CAAI,CAAC,CAAC;AACvC,QAAA,gBAAgB,CAAC,CAAA,EAAG,aAAa,CAAA,EAAA,CAAI,CAAC,CAAC;QACvC,gBAAgB,CAAC,KAAK,CAAC,CAAC;QAExB,IAAI,gBAAgB,IAAI,cAAc,EAAE;AACtC,YAAA,cAAc,CAAC;AACb,gBAAA,KAAK,EAAE,MAAM,CAAC,KAAK,CAAC;gBACpB,KAAK;AACL,gBAAA,QAAQ,EAAE,aAAa;AACxB,aAAA,CAAC,CAAC;AACJ,SAAA;AACH,KAAC,CAAC;AAEF,IAAA,MAAM,iBAAiB,GAAG,CAAC,KAAkC,KAAI;QAC/D,OAAO,CAAC,KAAK,CAAC,CAAC;AACjB,KAAC,CAAC;IAEF,MAAM,gBAAgB,GAAG,MAAK;QAC5B,OAAO,CAAC,SAAS,CAAC,CAAC;AACrB,KAAC,CAAC;IAEF,MAAM,EAAE,MAAM,EAAE,UAAU,EAAE,UAAU,EAAE,GAAG,QAAQ,CAAC;QAClD,YAAY;QACZ,aAAa;QACb,cAAc;QACd,iBAAiB;QACjB,MAAM;AACP,KAAA,CAAC,CAAC;AAEH,IAAA,MAAM,EAAE,eAAe,EAAE,GAAG,QAAQ,CAAC;QACnC,YAAY;QACZ,QAAQ;QACR,cAAc;QACd,iBAAiB;QACjB,MAAM;AACP,KAAA,CAAC,CAAC;IAEH,QACEC,eAAK,CAAA,KAAA,EAAA,EAAA,SAAS,EAAC,OAAO,aACpBA,eAAK,CAAA,KAAA,EAAA,EAAA,GAAG,EAAE,QAAQ,EAAE,SAAS,EAAC,cAAc,EAAA,QAAA,EAAA,CAC1CT,cAAC,CAAA,YAAY,EACX,EAAA,MAAM,EAAE,MAAM,EACd,MAAM,EAAE,MAAM,EACd,YAAY,EAAE,YAAY,EAC1B,cAAc,EAAE,cAAc,EAC9B,iBAAiB,EAAE,iBAAiB,EACpC,gBAAgB,EAAE,gBAAgB,EAClC,IAAI,EAAE,IAAI,EACV,CAAA,EAEFA,cACE,CAAA,KAAA,EAAA,EAAA,SAAS,EAAC,cAAc,EACxB,KAAK,EAAE;4BACL,KAAK,EAAE,CAAG,EAAA,aAAa,CAAE,CAAA;AAC1B,yBAAA,EAAA,CACI,EACPA,cAAC,CAAA,UAAU,EACT,EAAA,aAAa,EAAE,aAAa,EAC5B,iBAAiB,EAAE,iBAAiB,EACpC,eAAe,EAAE,eAAe,EAAA,CAChC,IACE,EACNA,cAAA,CAAC,aAAa,EAAA,EACZ,aAAa,EAAE,aAAa,EAC5B,MAAM,EAAE,MAAM,EACd,UAAU,EAAE,UAAU,EACtB,UAAU,EAAE,UAAU,EACtB,CAAA,CAAA,EAAA,CACE,EACN;AACJ;;SC7FgB,QAAQ,CAAC,EACvB,eAAe,EACf,iBAAiB,GAAG,EAAE,EACtB,cAAc,GAAG,EAAE,EACnB,cAAc,EACd,KAAK,GAAG;AACN,IAAA,EAAE,EAAE,KAAK;AACT,IAAA,OAAO,EAAE,EAAE;AACZ,CAAA;AACD;AACA,QAAQ,EACR,UAAU,EACV,KAAK,EACL,WAAW,GAAG,cAAc,EAC5B,UAAU,EACV,GAAG,IAAI,EACO,EAAA;IACd,QACES,yBACE,SAAS,EAAE,IAAI,CAAC,aAAa,EAAE,cAAc,CAAC,EAC9C,KAAK,EAAE,EAAE,eAAe,EAAE,eAAe,EAAE,GAAG,UAAU,EAAE,EAE1D,QAAA,EAAA,CAAAA,eAAA,CAAA,KAAA,EAAA,EAAK,SAAS,EAAC,kBAAkB,EAC9B,QAAA,EAAA,CAAA,KAAK,IAAIT,cAAO,CAAA,OAAA,EAAA,EAAA,SAAS,EAAE,cAAc,EAAA,QAAA,EAAG,KAAK,EAAA,CAAS,EAC1D,KAAK,IAAI,KAAK,CAAC,EAAE,KAChBA,cAAA,CAAA,MAAA,EAAA,EAAM,SAAS,EAAC,sBAAsB,EACnC,QAAA,EAAA,KAAK,CAAC,OAAiB,GACnB,CACR,CAAA,EAAA,CACG,EACNA,cAAK,CAAA,KAAA,EAAA,EAAA,SAAS,EAAC,mBAAmB,EAAA,QAAA,EAChCA,cACE,CAAA,OAAA,EAAA,EAAA,GAAG,EAAE,QAAQ,EACb,IAAI,EAAC,UAAU,EACf,QAAQ,EAAE,UAAU,EACpB,SAAS,EAAE,IAAI,CACb,UAAU,EACV,KAAK,CAAC,EAAE,GAAG,iBAAiB,GAAG,EAAE,EACjC,iBAAiB,CAClB,EACD,WAAW,EAAE,WAAW,EAAA,GACpB,IAAI,EACR,CAAA,EAAA,CACE,CACF,EAAA,CAAA,EACN;AACJ;;ACjBA,MAAM,cAAc,GAAGO,mBAAa,CAAsB,SAAS,EAAE;AAErE,SAAS,cAAc,CAAC,KAAY,EAAE,MAAc,EAAA;IAClD,QAAQ,MAAM,CAAC,IAAI;QACjB,KAAK,SAAS,EAAE;YACd,OAAO,EAAE,GAAG,KAAK,EAAE,GAAG,EAAE,MAAM,CAAC,GAAG,EAAE,CAAC;AACtC,SAAA;QACD,KAAK,eAAe,EAAE;YACpB,OAAO,EAAE,GAAG,KAAK,EAAE,SAAS,EAAE,IAAI,EAAE,CAAC;AACtC,SAAA;QACD,KAAK,cAAc,EAAE;YACnB,OAAO,EAAE,GAAG,KAAK,EAAE,SAAS,EAAE,KAAK,EAAE,CAAC;AACvC,SAAA;QACD,KAAK,aAAa,EAAE;YAClB,OAAO,EAAE,GAAG,KAAK,EAAE,OAAO,EAAE,MAAM,CAAC,OAAO,EAAE,CAAC;AAC9C,SAAA;AACD,QAAA,SAAS;YACP,MAAM,IAAI,KAAK,CAAC,CAAA,uBAAA,EAA0B,MAAM,CAAC,IAAI,CAAE,CAAA,CAAC,CAAC;AAC1D,SAAA;AACF,KAAA;AACH,CAAC;AAED,SAAS,eAAe,CAAC,EAAE,QAAQ,EAAwB,EAAA;AACzD,IAAA,MAAM,CAAC,EAAE,SAAS,EAAE,OAAO,EAAE,GAAG,EAAE,EAAE,QAAQ,CAAC,GAAGqB,gBAAU,CAAC,cAAc,EAAE;AACzE,QAAA,SAAS,EAAE,KAAK;AAChB,QAAA,OAAO,EAAE,SAAS;AAClB,QAAA,GAAG,EAAE,SAAS;AACf,KAAA,CAAC,CAAC;AAEH,IAAA,MAAM,MAAM,GAAG,CAAC,GAAyB,KAAI;QAC3C,QAAQ,CAAC,EAAE,IAAI,EAAE,SAAS,EAAE,GAAG,EAAE,CAAC,CAAC;AACrC,KAAC,CAAC;AAEF,IAAA,MAAM,UAAU,GAAG,CAAC,OAAe,KAAI;QACrC,QAAQ,CAAC,EAAE,IAAI,EAAE,aAAa,EAAE,OAAO,EAAE,CAAC,CAAC;AAC7C,KAAC,CAAC;IAEF,MAAM,YAAY,GAAG,MAAK;AACxB,QAAA,QAAQ,CAAC,EAAE,IAAI,EAAE,eAAe,EAAE,CAAC,CAAC;AACtC,KAAC,CAAC;IAEF,MAAM,WAAW,GAAG,MAAK;AACvB,QAAA,QAAQ,CAAC,EAAE,IAAI,EAAE,cAAc,EAAE,CAAC,CAAC;AACrC,KAAC,CAAC;AAEF,IAAA,QACEnB,eAAC,CAAA,cAAc,CAAC,QAAQ,EAAA,EACtB,KAAK,EAAE;AACL,YAAA,KAAK,EAAE,EAAE,GAAG,EAAE,OAAO,EAAE,SAAS,EAAE;YAClC,UAAU;YACV,MAAM;YACN,YAAY;YACZ,WAAW;AACZ,SAAA,EAAA,QAAA,EAAA,CAEA,CAAC,GAAG,IAAIT,cAAA,CAAC,OAAO,EAAA,EAAA,QAAA,EAAE,OAAO,EAAA,CAAW,EACpC,QAAQ,CACe,EAAA,CAAA,EAC1B;AACJ,CAAC;AAED,SAAS,UAAU,CAAC,EAAE,GAAG,EAAE,OAAO,KAAsB,EAAE,EAAA;AACxD,IAAA,MAAM,OAAO,GAAGF,gBAAU,CAAC,cAAc,CAAC,CAAC;;IAG3CK,eAAS,CAAC,MAAK;AACb,QAAA,GAAG,IAAI,OAAO,EAAE,MAAM,CAAC,GAAG,CAAC,CAAC;AAC5B,QAAA,OAAO,IAAI,OAAO,EAAE,UAAU,CAAC,OAAO,CAAC,CAAC;KACzC,EAAE,EAAE,CAAC,CAAC;IAEP,IAAI,OAAO,KAAK,SAAS,EAAE;AACzB,QAAA,MAAM,IAAI,KAAK,CAAC,kDAAkD,CAAC,CAAC;AACrE,KAAA;AAED,IAAA,OAAO,OAAO,CAAC;AACjB;;AC5DA,MAAM,YAAY,GAAGI,mBAAa,CAAsB,SAAS,EAAE;AAEnE,SAAS,YAAY,CAAC,KAAY,EAAE,MAAc,EAAA;IAChD,QAAQ,MAAM,CAAC,IAAI;QACjB,KAAK,YAAY,EAAE;AACjB,YAAA,OAAO,EAAE,GAAG,KAAK,EAAE,GAAG,MAAM,CAAC,KAAK,EAAE,OAAO,EAAE,IAAI,EAAE,CAAC;AACrD,SAAA;QACD,KAAK,aAAa,EAAE;YAClB,OAAO,EAAE,GAAG,KAAK,EAAE,OAAO,EAAE,KAAK,EAAE,CAAC;AACrC,SAAA;AACD,QAAA,SAAS;YACP,MAAM,IAAI,KAAK,CAAC,CAAA,uBAAA,EAA0B,MAAM,CAAC,IAAI,CAAE,CAAA,CAAC,CAAC;AAC1D,SAAA;AACF,KAAA;AACH,CAAC;AAED,MAAM,YAAY,GAAG;AACnB,IAAA,QAAQ,EAAE,SAAS;AACnB,IAAA,KAAK,EAAE,SAAS;AAChB,IAAA,OAAO,EAAE,SAAS;AAClB,IAAA,cAAc,EAAE,IAAI;AACpB,IAAA,UAAU,EAAE,IAAI;AAChB,IAAA,MAAM,EAAE,SAAS;AACjB,IAAA,QAAQ,EAAE,KAAK;AACf,IAAA,SAAS,EAAE,SAAS;AACpB,IAAA,cAAc,EAAE,IAAI;CACrB,CAAC;AAEF,SAAS,aAAa,CAAC,EAAE,QAAQ,EAAsB,EAAA;AACrD,IAAA,MAAM,GAAG,GAAGL,YAAM,CAAiB,IAAI,CAAC,CAAC;IACzC,MAAM,CAAC,KAAK,EAAE,QAAQ,CAAC,GAAG0B,gBAAU,CAAC,YAAY,EAAE;AACjD,QAAA,OAAO,EAAE,KAAK;AACd,QAAA,GAAG,YAAY;AAChB,KAAA,CAAC,CAAC;AAEH,IAAA,MAAM,SAAS,GAAG,CAAC,KAAa,KAAI;QAClC,QAAQ,CAAC,EAAE,IAAI,EAAE,YAAY,EAAE,KAAK,EAAE,CAAC,CAAC;AAC1C,KAAC,CAAC;IAEF,MAAM,UAAU,GAAG,MAAK;AACtB,QAAA,QAAQ,CAAC,EAAE,IAAI,EAAE,aAAa,EAAE,CAAC,CAAC;AACpC,KAAC,CAAC;IAEFzB,eAAS,CAAC,MAAK;AACb,QAAA,IAAI,KAAK,CAAC,OAAO,IAAI,KAAK,CAAC,cAAc,EAAE;AACzC,YAAA,MAAM,QAAQ,GAAG,CAAC,CAAa,KAAI;gBACjC,IACE,KAAK,CAAC,OAAO;AACb,oBAAA,GAAG,CAAC,OAAO;oBACX,CAAC,GAAG,CAAC,OAAO,CAAC,QAAQ,CAAC,CAAC,CAAC,MAAc,CAAC,EACvC;AACA,oBAAA,UAAU,EAAE,CAAC;AACd,iBAAA;gBAED,IACE,KAAK,CAAC,OAAO;AACb,oBAAA,KAAK,CAAC,SAAS;oBACf,KAAK,CAAC,SAAS,CAAC,OAAO;AACvB,oBAAA,CAAC,KAAK,CAAC,SAAS,CAAC,OAAO,CAAC,QAAQ,CAAC,CAAC,CAAC,MAAc,CAAC,EACnD;AACA,oBAAA,UAAU,EAAE,CAAC;AACd,iBAAA;AACH,aAAC,CAAC;AAEF,YAAA,QAAQ,CAAC,gBAAgB,CAAC,WAAW,EAAE,QAAQ,CAAC,CAAC;AACjD,YAAA,OAAO,MAAK;AACV,gBAAA,QAAQ,CAAC,mBAAmB,CAAC,WAAW,EAAE,QAAQ,CAAC,CAAC;AACtD,aAAC,CAAC;AACH,SAAA;AACH,KAAC,EAAE,CAAC,UAAU,CAAC,CAAC,CAAC;AAEjB,IAAA,QACEM,eAAC,CAAA,YAAY,CAAC,QAAQ,EAAA,EACpB,KAAK,EAAE;YACL,KAAK;YACL,SAAS;YACT,UAAU;AACX,SAAA,EAAA,QAAA,EAAA,CAEA,QAAQ,EACR,KAAK,CAAC,OAAO,IAAI,CAAC,KAAK,CAAC,QAAQ,KAC/BT,cAAC,CAAA,KAAK,EACJ,EAAA,QAAQ,EAAE,GAAG,EACb,KAAK,EAAE,KAAK,CAAC,KAAK,EAClB,MAAM,EAAE,KAAK,CAAC,MAAM,EACpB,WAAW,EAAE,UAAU,EACvB,QAAQ,EAAE,KAAK,CAAC,QAAQ,EACxB,cAAc,EAAE,KAAK,CAAC,cAAc,EACpC,UAAU,EAAE,KAAK,CAAC,UAAU,EAE3B,QAAA,EAAA,KAAK,CAAC,OAAO,EACR,CAAA,CACT,CACqB,EAAA,CAAA,EACxB;AACJ,CAAC;AAED,SAAS,QAAQ,CAAC,EAAA,GAAoB,EAAE,EAAA;AACtC,IAAA,MAAM,OAAO,GAAGF,gBAAU,CAAC,YAAY,CAAC,CAAC;IAEzC,IAAI,OAAO,KAAK,SAAS,EAAE;AACzB,QAAA,MAAM,IAAI,KAAK,CAAC,8CAA8C,CAAC,CAAC;AACjE,KAAA;AAED,IAAA,OAAO,OAAO,CAAC;AACjB;;;;;;;;;;;;;;;;;;;;;;;;;"}
@@ -0,0 +1,10 @@
1
+ declare const calcPerc: (value: number, total: number) => number;
2
+ declare const calcPos: (e: React.MouseEvent<HTMLDivElement>, pos: number[]) => {
3
+ pos: number;
4
+ index: number;
5
+ };
6
+ declare const calcRect: (e: React.MouseEvent<HTMLDivElement>, positions: number[]) => {
7
+ position: number;
8
+ index: number;
9
+ };
10
+ export { calcPerc, calcPos, calcRect };
@@ -0,0 +1 @@
1
+ export declare const palette: readonly ["forest", "water", "earth"];
@@ -0,0 +1,9 @@
1
+ import { ButtonAsButton, ButtonAsLink } from "./index.types";
2
+ import "./index.css";
3
+ import { ReactNode } from "react";
4
+ export declare const Anchor: ({ Custom, children, ...rest }: {
5
+ Custom?: import("react").ComponentClass<any, any> | undefined;
6
+ children?: ReactNode[] | undefined;
7
+ }) => import("react/jsx-runtime").JSX.Element;
8
+ export declare function Button({ children, className, icon, isNewWindow, mode, size, as, CustomAnchor, ...rest }: ButtonAsButton | ButtonAsLink): JSX.Element;
9
+ export default Button;
@@ -0,0 +1,19 @@
1
+ import { StoryObj, Meta } from "@storybook/react";
2
+ import { Button } from "./index";
3
+ declare const meta: Meta<typeof Button>;
4
+ export default meta;
5
+ type Story = StoryObj<typeof Button>;
6
+ export declare const ButtonPrimaryMedium: Story;
7
+ export declare const ButtonPrimaryLarge: Story;
8
+ export declare const ButtonPrimarySmall: Story;
9
+ export declare const ButtonPrimaryDisabled: Story;
10
+ export declare const ButtonPrimaryWithIcon: Story;
11
+ export declare const ButtonSecondary: Story;
12
+ export declare const ButtonSecondaryWithIcon: Story;
13
+ export declare const ButtonSecondaryDisabled: Story;
14
+ export declare const ButtonIcon: Story;
15
+ export declare const LinkPrimary: Story;
16
+ export declare const LinkSecondary: Story;
17
+ export declare const LinkIcon: Story;
18
+ export declare const LinkOutsideButton: Story;
19
+ export declare const LinkOutsideButtonAsPureLink: Story;
@@ -0,0 +1,50 @@
1
+ /// <reference types="react" />
2
+ type Mode = "primary" | "secondary" | "icon";
3
+ type Size = "small" | "medium" | "large";
4
+ export type ButtonAsButton = Base & Omit<React.ButtonHTMLAttributes<HTMLButtonElement>, keyof Base> & {
5
+ as?: "button";
6
+ };
7
+ export type ButtonAsLink = Base & Omit<React.AnchorHTMLAttributes<HTMLAnchorElement>, keyof Base> & {
8
+ as?: "link";
9
+ };
10
+ export interface Base {
11
+ /**
12
+ * What to put inside the button (string or html elements)
13
+ */
14
+ children?: JSX.Element | string;
15
+ /**
16
+ * Custom css class name
17
+ */
18
+ className?: string;
19
+ /**
20
+ * If you want to add an icon image next to the children. Needs to be an react html element.
21
+ */
22
+ icon?: JSX.Element;
23
+ /**
24
+ * If you want to open a new window on the browser when you click the button. Only applies to html anchor elements.
25
+ */
26
+ isNewWindow?: boolean;
27
+ /**
28
+ * Css mode used to style the button.
29
+ */
30
+ mode?: Mode;
31
+ /**
32
+ * Button size.
33
+ */
34
+ size?: Size;
35
+ /**
36
+ * Button type.
37
+ */
38
+ as?: "button" | "link";
39
+ /**
40
+ * Anchor for the button to follow.
41
+ */
42
+ CustomAnchor?: React.ComponentClass<any>;
43
+ /**
44
+ * Custom background color for storybook.
45
+ */
46
+ backgroundColor?: string;
47
+ /** Link to url */
48
+ link?: string;
49
+ }
50
+ export {};
@@ -0,0 +1,4 @@
1
+ import { Checkbox as CheckboxProps } from "./index.types";
2
+ import "./index.css";
3
+ export declare function Checkbox({ backgroundColor, classNameCheckbox, classNameGroup, classNameLabel, error, inputRef, isRequired, label, placeholder, styleGroup, ...rest }: CheckboxProps): import("react/jsx-runtime").JSX.Element;
4
+ export default Checkbox;
@@ -0,0 +1,10 @@
1
+ import { Meta, StoryObj } from "@storybook/react";
2
+ import { Checkbox } from "./index";
3
+ declare const meta: Meta<typeof Checkbox>;
4
+ export default meta;
5
+ type Story = StoryObj<typeof Checkbox>;
6
+ export declare const Primary: Story;
7
+ export declare const Error: Story;
8
+ export declare const WithLabel: Story;
9
+ export declare const WithLabelSpecialClass: Story;
10
+ export declare const WithCustomClassName: Story;
@@ -0,0 +1,48 @@
1
+ import { dataTheme } from "data-theme";
2
+ import { CSSProperties, Ref } from "react";
3
+ import { FieldError, FieldErrorsImpl, Merge } from "react-hook-form";
4
+ export interface Checkbox extends React.InputHTMLAttributes<HTMLInputElement> {
5
+ /** Add custom background color for the input */
6
+ backgroundColor?: string;
7
+ /**
8
+ * Custom css class name.
9
+ */
10
+ classNameCheckbox?: string;
11
+ /**
12
+ * Custom css class name for group wrapper.
13
+ */
14
+ classNameGroup?: string;
15
+ /**
16
+ * Custom css class name for label.
17
+ */
18
+ classNameLabel?: string;
19
+ /**
20
+ * Error message to show when input has an error.
21
+ */
22
+ error?: {
23
+ message?: string | false | FieldError | Merge<FieldError, FieldErrorsImpl<any>> | undefined;
24
+ is?: boolean;
25
+ };
26
+ /**
27
+ * Ref react element to use
28
+ */
29
+ inputRef?: Ref<HTMLInputElement>;
30
+ /**
31
+ * Sets if input is required or not
32
+ */
33
+ isRequired?: boolean;
34
+ /**
35
+ * Add a label to the input
36
+ */
37
+ label?: string;
38
+ /**
39
+ * Data theme for the html. `${themes}`
40
+ */
41
+ paletteTheme?: dataTheme;
42
+ /**Placeholder text for the input */
43
+ placeholder: string;
44
+ /**
45
+ * Style input group wrapper
46
+ */
47
+ styleGroup?: CSSProperties;
48
+ }
@@ -0,0 +1,4 @@
1
+ import "./index.css";
2
+ import { FormInputs } from "./index.types";
3
+ export declare function FormInput({ name, isRequired, error, defaultValue, ...rest }: FormInputs): import("react/jsx-runtime").JSX.Element;
4
+ export default FormInput;
@@ -0,0 +1,4 @@
1
+ import "./index.css";
2
+ import { FormSelect as FormSelectProps } from "./index.types";
3
+ export declare function FormSelect({ name, isRequired, error, fieldsToReset, label, ...rest }: FormSelectProps): import("react/jsx-runtime").JSX.Element;
4
+ export default FormSelect;
@@ -0,0 +1,4 @@
1
+ import "./index.css";
2
+ import { FormInputs } from "./index.types";
3
+ export declare function FormTextArea({ name, isRequired, error, ...rest }: FormInputs): import("react/jsx-runtime").JSX.Element;
4
+ export default FormTextArea;
@@ -0,0 +1,4 @@
1
+ import { Form as FormProps } from "./index.types";
2
+ import "./index.css";
3
+ export declare function Form({ children, onSubmit, submitButton, initialState, backgroundColor, ...rest }: FormProps): import("react/jsx-runtime").JSX.Element;
4
+ export default Form;
@@ -0,0 +1,10 @@
1
+ import { Meta, StoryObj } from "@storybook/react";
2
+ import { Form } from "./index";
3
+ declare const meta: Meta<typeof Form>;
4
+ export default meta;
5
+ type Story = StoryObj<typeof Form>;
6
+ export declare const InsertForm: Story;
7
+ export declare const UpdateFormWithFullInitialState: Story;
8
+ export declare const OnlyInput: Story;
9
+ export declare const OnlyTextArea: Story;
10
+ export declare const OnlySelectDifferentButton: Story;
@@ -0,0 +1,72 @@
1
+ import { Dispatch, JSXElementConstructor, ReactElement, ReactNode, SetStateAction } from "react";
2
+ import { FieldError, FieldErrorsImpl, FieldValues, Merge, UseFormReturn } from "react-hook-form";
3
+ import { Input } from "../input/index.types";
4
+ import { TextArea } from "../text-area/index.types";
5
+ export interface Form {
6
+ /**
7
+ * Custom css class name.
8
+ */
9
+ className?: string;
10
+ /**
11
+ * In case the form has children to pass.
12
+ */
13
+ children?: ReactNode | ReactNode[];
14
+ /**
15
+ * Function that submits the form
16
+ */
17
+ onSubmit: (data: FieldValues, methods: UseFormReturn, setResult: SetResult) => void;
18
+ /**
19
+ * Text that goes on the submit form button.
20
+ */
21
+ submitButton?: {
22
+ label: string;
23
+ };
24
+ /**
25
+ * Initial state of the form, values that are defaults. Ex: name: "Test", type: "Test Type", subject: "Test Subject", [type]: "Test Type II",
26
+ */
27
+ initialState?: {
28
+ defaultValues?: {
29
+ name?: string;
30
+ type?: string;
31
+ subject?: string;
32
+ customValues?: {
33
+ [key: string]: string;
34
+ };
35
+ };
36
+ };
37
+ /**
38
+ * Custom background color if needed.
39
+ */
40
+ backgroundColor?: string;
41
+ }
42
+ export interface ReactNodeControlled extends ReactElement<any, string | JSXElementConstructor<any>> {
43
+ props: ControlledInput;
44
+ }
45
+ export type ControlledInput = Input & TextArea & {
46
+ name: string;
47
+ error: string;
48
+ };
49
+ export type SetResult = Dispatch<SetStateAction<{
50
+ message?: string;
51
+ isSuccess: boolean;
52
+ }>>;
53
+ export interface FormInputs extends Input {
54
+ name: string;
55
+ isRequired?: boolean;
56
+ error?: {
57
+ message?: string | false | FieldError | Merge<FieldError, FieldErrorsImpl<any>> | undefined;
58
+ is?: boolean;
59
+ };
60
+ }
61
+ export interface FormSelect {
62
+ name: string;
63
+ isRequired?: boolean;
64
+ label: string;
65
+ options: string[];
66
+ error?: {
67
+ message?: string | false | FieldError | Merge<FieldError, FieldErrorsImpl<any>> | undefined;
68
+ is?: boolean;
69
+ };
70
+ fieldsToReset?: string[];
71
+ handleSelect: Function;
72
+ }
@@ -0,0 +1,4 @@
1
+ import { Input as InputProps } from "./index.types";
2
+ import "./index.css";
3
+ export declare function Input({ inputClassName, classNameGroup, error, inputRef, styleGroup, placeholder, label, labelClassName, icon, isRequired, backgroundColor, ...rest }: InputProps): import("react/jsx-runtime").JSX.Element;
4
+ export default Input;
@@ -0,0 +1,13 @@
1
+ import { Meta, StoryObj } from "@storybook/react";
2
+ import { Input } from "./index";
3
+ declare const meta: Meta<typeof Input>;
4
+ export default meta;
5
+ type Story = StoryObj<typeof Input>;
6
+ export declare const Primary: Story;
7
+ export declare const Error: Story;
8
+ export declare const Search: Story;
9
+ export declare const WithLabel: Story;
10
+ export declare const WithLabelSpecialClass: Story;
11
+ export declare const WithCustomClassName: Story;
12
+ export declare const CustomBackgroundColor: Story;
13
+ export declare const Checkbox: Story;
@@ -0,0 +1,56 @@
1
+ import { dataTheme } from "data-theme";
2
+ import { CSSProperties, ReactNode, Ref } from "react";
3
+ import { FieldError, FieldErrorsImpl, Merge } from "react-hook-form";
4
+ export interface Input extends React.InputHTMLAttributes<HTMLInputElement> {
5
+ /**Placeholder text for the input */
6
+ placeholder: string;
7
+ /**
8
+ * Custom css class name.
9
+ */
10
+ inputClassName?: string;
11
+ /**
12
+ * Custom css class name for group wrapper.
13
+ */
14
+ classNameGroup?: string;
15
+ /**
16
+ * Data theme for the html. `${themes}`
17
+ */
18
+ paletteTheme?: dataTheme;
19
+ /**
20
+ * Error message to show when input has an error.
21
+ */
22
+ error?: {
23
+ message?: string | false | FieldError | Merge<FieldError, FieldErrorsImpl<any>> | undefined;
24
+ is?: boolean;
25
+ };
26
+ /**
27
+ * Ref react element to use
28
+ */
29
+ inputRef?: Ref<HTMLInputElement>;
30
+ /**
31
+ * Style input group wrapper
32
+ */
33
+ styleGroup?: CSSProperties;
34
+ /**
35
+ * Sets if input is required or not
36
+ */
37
+ isRequired?: boolean;
38
+ /**
39
+ * Add a label to the input
40
+ */
41
+ label?: string;
42
+ /**
43
+ * Styles the label of the input
44
+ */
45
+ labelClassName?: string;
46
+ /**
47
+ * Add an icon to the right or the left of the input
48
+ */
49
+ icon?: {
50
+ className?: string;
51
+ element?: ReactNode;
52
+ position?: "right" | "left";
53
+ };
54
+ /** Add custom background color for the input */
55
+ backgroundColor?: string;
56
+ }
@@ -0,0 +1,4 @@
1
+ import { Loading as LoadingProps } from "./index.types";
2
+ import "./index.css";
3
+ export declare function Loading({ img, children }: LoadingProps): import("react/jsx-runtime").JSX.Element;
4
+ export default Loading;
@@ -0,0 +1,6 @@
1
+ import { Meta, StoryObj } from "@storybook/react";
2
+ import { Loading } from "./index";
3
+ declare const meta: Meta<typeof Loading>;
4
+ export default meta;
5
+ type Story = StoryObj<typeof Loading>;
6
+ export declare const Primary: Story;
@@ -0,0 +1,11 @@
1
+ import React from "react";
2
+ export interface Loading {
3
+ /**
4
+ * Either pass an image or gif or nothing at all. Passing an empty string will break the component.
5
+ */
6
+ img?: string;
7
+ /**
8
+ * Message that its sent: string or number
9
+ */
10
+ children?: React.ReactNode;
11
+ }
@@ -0,0 +1,11 @@
1
+ import { MenuButton } from "./menu-button";
2
+ import { MenuContent } from "./menu-content";
3
+ import { MenuItem } from "./menu-item";
4
+ import { MenuRoot } from "./menu-root";
5
+ export declare const Menu: {
6
+ Root: typeof MenuRoot;
7
+ Item: typeof MenuItem;
8
+ Button: typeof MenuButton;
9
+ Content: typeof MenuContent;
10
+ };
11
+ export default Menu;
@@ -0,0 +1,8 @@
1
+ import { Meta, StoryObj } from "@storybook/react";
2
+ import Menu from ".";
3
+ declare const meta: Meta<typeof Menu>;
4
+ type Story = StoryObj<typeof Menu>;
5
+ export declare const Simple: Story;
6
+ export declare const PrimaryOpenByDefault: Story;
7
+ export declare const SecondaryClosedByDefault: Story;
8
+ export default meta;
@@ -0,0 +1,21 @@
1
+ /** React */
2
+ import React, { HtmlHTMLAttributes, ReactNode } from "react";
3
+ /** CSS */
4
+ import "./index.css";
5
+ /** Props */
6
+ type Props = HtmlHTMLAttributes<HTMLDivElement> & {
7
+ anchor?: React.AnchorHTMLAttributes<HTMLAnchorElement> & {
8
+ Custom?: React.ComponentClass<any>;
9
+ };
10
+ children: ReactNode;
11
+ buttonClassName?: string;
12
+ nested?: boolean;
13
+ subnested?: boolean;
14
+ dropdown?: boolean;
15
+ isLink?: boolean;
16
+ isSelected?: boolean;
17
+ handleCallbackClick?: () => void;
18
+ "data-menu-id"?: string;
19
+ };
20
+ export declare function MenuButton({ anchor, children, buttonClassName, nested, subnested, dropdown, isLink, isSelected, handleCallbackClick, ...props }: Props): import("react/jsx-runtime").JSX.Element;
21
+ export {};