@aristobyte-ui/dropdown 1.0.67 → 1.0.70

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/dist/index.js CHANGED
@@ -1,5 +1,4 @@
1
1
  "use client";
2
- import "./index.css";
3
2
  "use strict";
4
3
  var __create = Object.create;
5
4
  var __defProp = Object.defineProperty;
@@ -43,24 +42,6 @@ var import_framer_motion = require("framer-motion");
43
42
 
44
43
  // components/DropdownOption/index.tsx
45
44
  var React = __toESM(require("react"));
46
-
47
- // components/DropdownOption/DropdownOption.module.scss
48
- var DropdownOption_module_default = {
49
- "dropdown-option": "DropdownOption_module_dropdown-option",
50
- "dropdown-option-variant--default": "DropdownOption_module_dropdown-option-variant--default",
51
- "dropdown-option-variant--primary": "DropdownOption_module_dropdown-option-variant--primary",
52
- "dropdown-option-variant--secondary": "DropdownOption_module_dropdown-option-variant--secondary",
53
- "dropdown-option-variant--warning": "DropdownOption_module_dropdown-option-variant--warning",
54
- "dropdown-option-variant--error": "DropdownOption_module_dropdown-option-variant--error",
55
- "dropdown-option-variant--success": "DropdownOption_module_dropdown-option-variant--success",
56
- "dropdown-option--disabled": "DropdownOption_module_dropdown-option--disabled",
57
- "dropdown-option__title": "DropdownOption_module_dropdown-option__title",
58
- "dropdown-option__description": "DropdownOption_module_dropdown-option__description",
59
- "dropdown-option__tick": "DropdownOption_module_dropdown-option__tick",
60
- "dropdown-option__tick--active": "DropdownOption_module_dropdown-option__tick--active"
61
- };
62
-
63
- // components/DropdownOption/index.tsx
64
45
  var import_utils = require("@aristobyte-ui/utils");
65
46
  var import_jsx_runtime = require("react/jsx-runtime");
66
47
  var DropdownOption = ({
@@ -80,17 +61,17 @@ var DropdownOption = ({
80
61
  {
81
62
  style,
82
63
  disabled,
83
- className: `${DropdownOption_module_default["dropdown-option"]} ${DropdownOption_module_default[`dropdown-option-variant--${variant}`]} ${disabled ? DropdownOption_module_default["dropdown-option--disabled"] : ""}`,
64
+ className: `dropdown-option dropdown-option-variant--${variant} ${disabled ? "dropdown-option--disabled" : ""}`,
84
65
  onClick: onChange,
85
66
  children: [
86
- /* @__PURE__ */ (0, import_jsx_runtime.jsxs)("div", { className: DropdownOption_module_default["dropdown-option__content"], children: [
87
- /* @__PURE__ */ (0, import_jsx_runtime.jsx)("h3", { className: DropdownOption_module_default["dropdown-option__title"], children }),
88
- /* @__PURE__ */ (0, import_jsx_runtime.jsx)("p", { className: DropdownOption_module_default["dropdown-option__description"], children: description })
67
+ /* @__PURE__ */ (0, import_jsx_runtime.jsxs)("div", { className: "dropdown-option__content", children: [
68
+ /* @__PURE__ */ (0, import_jsx_runtime.jsx)("h3", { className: "dropdown-option__title", children }),
69
+ /* @__PURE__ */ (0, import_jsx_runtime.jsx)("p", { className: "dropdown-option__description", children: description })
89
70
  ] }),
90
71
  /* @__PURE__ */ (0, import_jsx_runtime.jsx)(
91
72
  "div",
92
73
  {
93
- className: `${DropdownOption_module_default["dropdown-option__tick"]} ${(selectedValues == null ? void 0 : selectedValues.includes(value)) ? DropdownOption_module_default["dropdown-option__tick--active"] : ""}`,
74
+ className: `dropdown-option__tick ${(selectedValues == null ? void 0 : selectedValues.includes(value)) ? "dropdown-option__tick--active" : ""}`,
94
75
  children: /* @__PURE__ */ (0, import_jsx_runtime.jsx)(import_utils.Icons.Success, { size: 18 })
95
76
  }
96
77
  )
@@ -103,22 +84,6 @@ var DropdownOption = ({
103
84
  // components/Dropdown/index.tsx
104
85
  var import_button = require("@aristobyte-ui/button");
105
86
  var import_utils2 = require("@aristobyte-ui/utils");
106
-
107
- // components/Dropdown/Dropdown.module.scss
108
- var Dropdown_module_default = {
109
- dropdown: "Dropdown_module_dropdown",
110
- dropdown__button: "Dropdown_module_dropdown__button",
111
- "dropdown__box-variant--default": "Dropdown_module_dropdown__box-variant--default",
112
- "dropdown__box-options": "Dropdown_module_dropdown__box-options",
113
- "dropdown__box-variant--primary": "Dropdown_module_dropdown__box-variant--primary",
114
- "dropdown__box-variant--secondary": "Dropdown_module_dropdown__box-variant--secondary",
115
- "dropdown__box-variant--warning": "Dropdown_module_dropdown__box-variant--warning",
116
- "dropdown__box-variant--error": "Dropdown_module_dropdown__box-variant--error",
117
- "dropdown__box-variant--success": "Dropdown_module_dropdown__box-variant--success",
118
- "dropdown__box-overlay": "Dropdown_module_dropdown__box-overlay"
119
- };
120
-
121
- // components/Dropdown/index.tsx
122
87
  var import_jsx_runtime2 = require("react/jsx-runtime");
123
88
  var import_react = require("react");
124
89
  var Dropdown = ({
@@ -205,11 +170,11 @@ var Dropdown = ({
205
170
  );
206
171
  }
207
172
  return /* @__PURE__ */ (0, import_jsx_runtime2.jsxs)(import_jsx_runtime2.Fragment, { children: [
208
- /* @__PURE__ */ (0, import_jsx_runtime2.jsx)("div", { className: `${Dropdown_module_default["dropdown"]} ${className}`, children: /* @__PURE__ */ (0, import_jsx_runtime2.jsx)(
173
+ /* @__PURE__ */ (0, import_jsx_runtime2.jsx)("div", { className: `dropdown ${className}`, children: /* @__PURE__ */ (0, import_jsx_runtime2.jsx)(
209
174
  import_button.Button,
210
175
  {
211
176
  onClick: handleToggle,
212
- className: `${Dropdown_module_default["dropdown__button"]} ${(button == null ? void 0 : button.className) || ""}`,
177
+ className: `${"dropdown__button"} ${(button == null ? void 0 : button.className) || ""}`,
213
178
  appearance: (button == null ? void 0 : button.appearance) || appearance,
214
179
  variant: (button == null ? void 0 : button.variant) || variant,
215
180
  disabled: (button == null ? void 0 : button.disabled) || disabled,
@@ -220,13 +185,13 @@ var Dropdown = ({
220
185
  /* @__PURE__ */ (0, import_jsx_runtime2.jsx)(import_utils2.Portal, { children: /* @__PURE__ */ (0, import_jsx_runtime2.jsx)(import_framer_motion.AnimatePresence, { children: isOpened && /* @__PURE__ */ (0, import_jsx_runtime2.jsxs)(
221
186
  "div",
222
187
  {
223
- className: `${Dropdown_module_default["dropdown__box"]} ${Dropdown_module_default[`dropdown__box-variant--${variant}`]}`,
188
+ className: `dropdown__box dropdown__box-variant--${variant}`,
224
189
  style,
225
190
  children: [
226
191
  /* @__PURE__ */ (0, import_jsx_runtime2.jsx)(
227
192
  import_framer_motion.motion.div,
228
193
  {
229
- className: Dropdown_module_default["dropdown__box-overlay"],
194
+ className: "dropdown__box-overlay",
230
195
  initial: { opacity: 0 },
231
196
  animate: { opacity: 1 },
232
197
  exit: { opacity: 0 },
@@ -238,7 +203,7 @@ var Dropdown = ({
238
203
  import_framer_motion.motion.div,
239
204
  {
240
205
  ref: boxRef,
241
- className: Dropdown_module_default["dropdown__box-options"],
206
+ className: "dropdown__box-options",
242
207
  initial: { opacity: 0, y: 20, scale: 0.95 },
243
208
  animate: { opacity: 1, y: 0, scale: 1 },
244
209
  exit: { opacity: 0, y: 20, scale: 0.95 },
package/dist/index.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"sources":["../index.ts","../components/Dropdown/index.tsx","../components/DropdownOption/index.tsx","../components/DropdownOption/DropdownOption.module.scss","../components/Dropdown/Dropdown.module.scss"],"sourcesContent":["export * from \"./components\";\n","\"use client\";\n\nimport * as React from \"react\";\nimport { AnimatePresence, motion } from \"framer-motion\";\n\nimport { DropdownOption, type IDropdownOption } from \"../DropdownOption\";\nimport { Button, type IButton } from \"@aristobyte-ui/button\";\nimport { Portal } from \"@aristobyte-ui/utils\";\n\nimport styles from \"./Dropdown.module.scss\";\n\ntype PositionType = {\n top: 0;\n left: 0;\n width: 0;\n};\n\nexport interface IDropdown {\n children:\n | React.ReactElement<IDropdownOption>\n | React.ReactElement<IDropdownOption>[];\n value: string;\n button?: Omit<IButton, \"children\" | \"dangerouslySetInnerHTML\">;\n variant?:\n | \"default\"\n | \"primary\"\n | \"secondary\"\n | \"success\"\n | \"error\"\n | \"warning\";\n appearance?:\n | \"solid\"\n | \"outline\"\n | \"outline-dashed\"\n | \"no-outline\"\n | \"glowing\";\n onChange?: (newValue: string) => void;\n initiallyOpened?: boolean;\n choice?: \"multiple\" | \"single\";\n placeholder?: string;\n disabled?: boolean;\n className?: string;\n style?: React.CSSProperties;\n}\n\nexport const Dropdown: React.FC<IDropdown> = ({\n children,\n value,\n onChange,\n appearance = \"outline\",\n variant = \"default\",\n placeholder = \"Select\",\n choice = \"single\",\n className = \"\",\n initiallyOpened = false,\n disabled = false,\n button = {},\n style = {},\n}) => {\n const [isOpened, setIsOpened] = React.useState<boolean>(initiallyOpened);\n const [selected, setSelected] = React.useState<string[]>(\n value ? [value] : []\n );\n const [position, setPosition] = React.useState<PositionType>({\n top: 0,\n left: 0,\n width: 0,\n });\n const [dropdownHeight, setDropdownHeight] = React.useState(0);\n const [buttonHeight, setButtonHeight] = React.useState(0);\n const buttonRef = React.useRef<HTMLButtonElement>(null);\n const boxRef = React.useRef<HTMLDivElement>(null);\n const uniqueId = React.useId();\n\n React.useLayoutEffect(() => {\n if (!isOpened) {\n return;\n }\n\n if (boxRef.current) {\n setDropdownHeight(boxRef.current.getBoundingClientRect().height);\n }\n\n if (buttonRef.current) {\n setButtonHeight(buttonRef.current.getBoundingClientRect().height);\n }\n }, [isOpened]);\n\n const options = React.Children.toArray(children).filter(\n (child): child is React.ReactElement<IDropdownOption> =>\n React.isValidElement(child) && child.type === DropdownOption\n );\n\n const isValidValue = () => {\n return !!options.find(({ props }) => props.value === value);\n };\n\n const handleChange = (currentRadioValue: string) => {\n onChange?.(currentRadioValue);\n if (!choice) {\n setSelected([currentRadioValue]);\n setIsOpened(false);\n return;\n }\n\n if (choice === \"single\") {\n setSelected([currentRadioValue]);\n }\n\n if (choice === \"multiple\") {\n setSelected((prev) =>\n prev.includes(currentRadioValue)\n ? prev.filter((v) => v !== currentRadioValue)\n : [...prev, currentRadioValue]\n );\n }\n };\n\n const handleToggle = (\n e: React.MouseEvent<HTMLButtonElement | HTMLAnchorElement, MouseEvent>\n ) => {\n if (disabled) return;\n\n const rect = buttonRef.current?.getBoundingClientRect();\n if (!rect) return;\n\n const spaceBelow = window.innerHeight - rect.bottom;\n const spaceAbove = rect.top;\n\n const shouldOpenUpwards =\n dropdownHeight > 0 &&\n spaceBelow < dropdownHeight &&\n spaceAbove > dropdownHeight;\n\n const finalPosition = {\n top: shouldOpenUpwards\n ? rect.top + window.scrollY - dropdownHeight - buttonHeight / 2\n : rect.top + window.scrollY + buttonHeight + 6,\n left: rect.left + window.scrollX,\n width: rect.width,\n } as PositionType;\n\n setPosition(finalPosition);\n\n if (button?.onClick) button.onClick(e);\n\n setIsOpened((prev) => !prev);\n };\n\n if (!isValidValue()) {\n throw new Error(\n 'The \"value\" prop did not match with any of the DropdownOption \"value\" prop'\n );\n }\n\n return (\n <>\n <div className={`${styles[\"dropdown\"]} ${className}`}>\n <Button\n onClick={handleToggle}\n className={`${styles[\"dropdown__button\"]} ${button?.className || \"\"}`}\n appearance={button?.appearance || appearance}\n variant={button?.variant || variant}\n disabled={button?.disabled || disabled}\n {...{ ref: buttonRef }}\n >\n {placeholder}\n </Button>\n </div>\n\n <Portal>\n <AnimatePresence>\n {isOpened && (\n <div\n className={`${styles[\"dropdown__box\"]} ${styles[`dropdown__box-variant--${variant}`]}`}\n style={style}\n >\n <motion.div\n className={styles[\"dropdown__box-overlay\"]}\n initial={{ opacity: 0 }}\n animate={{ opacity: 1 }}\n exit={{ opacity: 0 }}\n transition={{ duration: 0.3, ease: \"easeIn\" }}\n onClick={() => setIsOpened(false)}\n />\n <motion.div\n ref={boxRef}\n className={styles[\"dropdown__box-options\"]}\n initial={{ opacity: 0, y: 20, scale: 0.95 }}\n animate={{ opacity: 1, y: 0, scale: 1 }}\n exit={{ opacity: 0, y: 20, scale: 0.95 }}\n transition={{ duration: 0.2, ease: \"easeIn\" }}\n style={{\n top: position.top,\n left: position.left,\n width: position.width,\n }}\n >\n {options.map(({ props }) => (\n <DropdownOption\n {...props}\n variant={variant}\n appearance={appearance}\n key={`${props.value}-${uniqueId}`}\n selectedValues={selected}\n onChange={() => handleChange(props.value)}\n />\n ))}\n </motion.div>\n </div>\n )}\n </AnimatePresence>\n </Portal>\n </>\n );\n};\n","import * as React from \"react\";\n\nimport styles from \"./DropdownOption.module.scss\";\nimport { Icons } from \"@aristobyte-ui/utils\";\n\nexport interface IDropdownOption {\n variant?:\n | \"default\"\n | \"primary\"\n | \"secondary\"\n | \"success\"\n | \"error\"\n | \"warning\";\n appearance?:\n | \"solid\"\n | \"outline\"\n | \"outline-dashed\"\n | \"no-outline\"\n | \"glowing\";\n children: string;\n value: string;\n onChange?: () => void;\n selectedValues?: string[];\n description?: string;\n icon?: string;\n disabled?: boolean;\n choice?: \"multiple\" | \"single\";\n style?: React.CSSProperties;\n}\n\nexport const DropdownOption: React.FC<IDropdownOption> = ({\n variant,\n children,\n value,\n selectedValues,\n onChange,\n // icon,\n description,\n disabled,\n style = {},\n}) => {\n const uniqueId = React.useId();\n return (\n <button\n style={style}\n key={uniqueId}\n disabled={disabled}\n className={`${styles[\"dropdown-option\"]} ${styles[`dropdown-option-variant--${variant}`]} ${disabled ? styles[\"dropdown-option--disabled\"] : \"\"}`}\n onClick={onChange}\n >\n <div className={styles[\"dropdown-option__content\"]}>\n <h3 className={styles[\"dropdown-option__title\"]}>{children}</h3>\n <p className={styles[\"dropdown-option__description\"]}>{description}</p>\n </div>\n <div\n className={`${styles[\"dropdown-option__tick\"]} ${selectedValues?.includes(value) ? styles[\"dropdown-option__tick--active\"] : \"\"}`}\n >\n <Icons.Success size={18} />\n </div>\n </button>\n );\n};\n",".dropdown-option {\n align-items: center;\n border-radius: 8px;\n color: #ffffff;\n display: flex;\n font-size: 14px;\n font-weight: 500;\n gap: 10px;\n padding: 10px 16px;\n text-align: left;\n transition: all 120ms ease-out;\n width: 100%;\n}\n.dropdown-option-variant--default:hover {\n background-color: #111827;\n}\n.dropdown-option-variant--primary:hover {\n background-color: #1d4ed8;\n}\n.dropdown-option-variant--secondary:hover {\n background-color: #4338ca;\n}\n.dropdown-option-variant--warning:hover {\n background-color: #b45309;\n}\n.dropdown-option-variant--error:hover {\n background-color: #b91c1c;\n}\n.dropdown-option-variant--success:hover {\n background-color: #15803d;\n}\n.dropdown-option--disabled, .dropdown-option--disabled:hover {\n background-color: rgba(31, 41, 55, 0.5);\n cursor: auto;\n opacity: 0.5;\n}\n.dropdown-option__title {\n color: #ffffff;\n}\n.dropdown-option__description {\n color: rgba(255, 255, 255, 0.6);\n}\n.dropdown-option__tick {\n color: rgba(255, 255, 255, 0.6);\n opacity: 0;\n transform: scale(0, 0.7) translate(0, 10px);\n transition: all 120ms ease-out;\n}\n.dropdown-option__tick--active {\n opacity: 1;\n transform: scale(1) translate(0);\n}\n/*# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VSb290IjoiL1VzZXJzL2RodW5hbnlhbi9hcmlzdG9ieXRlL2dpdGh1Yi9hcmlzdG9ieXRlLXVpL3BhY2thZ2VzL2Ryb3Bkb3duL2NvbXBvbmVudHMvRHJvcGRvd25PcHRpb24iLCJzb3VyY2VzIjpbIkRyb3Bkb3duT3B0aW9uLm1vZHVsZS5zY3NzIiwiLi4vLi4vLi4vLi4vbm9kZV9tb2R1bGVzL0BhcmlzdG9ieXRlLXVpL3V0aWxzL3N0eWxlcy9fc2V0dGluZ3Muc2NzcyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFFQTtFQUNFO0VBQ0E7RUFDQSxPQ2dCTTtFRGZOO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7O0FBR0U7RUFDRSxrQkMwQ0s7O0FEdkNQO0VBQ0Usa0JDZ0RLOztBRDdDUDtFQUNFLGtCQ3dETzs7QURyRFQ7RUFDRSxrQkNrRk07O0FEL0VSO0VBQ0Usa0JDMERJOztBRHZETjtFQUNFLGtCQ2dFTTs7QUQ1RFY7RUFFRSxrQkN5RXFCO0VEeEVyQjtFQUNBOztBQUdGO0VBQ0UsT0M1Qkk7O0FEK0JOO0VBQ0U7O0FBR0Y7RUFDRTtFQUNBO0VBQ0E7RUFDQTs7QUFFQTtFQUNFO0VBQ0EiLCJzb3VyY2VzQ29udGVudCI6WyJAdXNlIFwiQGFyaXN0b2J5dGUtdWkvdXRpbHMvc3R5bGVzL3NldHRpbmdzXCIgYXMgKjtcblxuLmRyb3Bkb3duLW9wdGlvbiB7XG4gIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gIGJvcmRlci1yYWRpdXM6IDhweDsgLy9UT0RPOiBjaGFuZ2UgdG8gZHluYW1pY1xuICBjb2xvcjogJHdoaXRlO1xuICBkaXNwbGF5OiBmbGV4O1xuICBmb250LXNpemU6IDE0cHg7XG4gIGZvbnQtd2VpZ2h0OiA1MDA7XG4gIGdhcDogMTBweDtcbiAgcGFkZGluZzogMTBweCAxNnB4O1xuICB0ZXh0LWFsaWduOiBsZWZ0O1xuICB0cmFuc2l0aW9uOiBhbGwgMTIwbXMgZWFzZS1vdXQ7XG4gIHdpZHRoOiAxMDAlO1xuXG4gICYtdmFyaWFudCB7XG4gICAgJi0tZGVmYXVsdDpob3ZlciB7XG4gICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkY29sb3ItZGVmYXVsdC1ob3ZlcjtcbiAgICB9XG5cbiAgICAmLS1wcmltYXJ5OmhvdmVyIHtcbiAgICAgIGJhY2tncm91bmQtY29sb3I6ICRjb2xvci1wcmltYXJ5LWhvdmVyO1xuICAgIH1cblxuICAgICYtLXNlY29uZGFyeTpob3ZlciB7XG4gICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkY29sb3Itc2Vjb25kYXJ5LWhvdmVyO1xuICAgIH1cblxuICAgICYtLXdhcm5pbmc6aG92ZXIge1xuICAgICAgYmFja2dyb3VuZC1jb2xvcjogJGNvbG9yLXdhcm5pbmctaG92ZXI7XG4gICAgfVxuXG4gICAgJi0tZXJyb3I6aG92ZXIge1xuICAgICAgYmFja2dyb3VuZC1jb2xvcjogJGNvbG9yLWVycm9yLWhvdmVyO1xuICAgIH1cblxuICAgICYtLXN1Y2Nlc3M6aG92ZXIge1xuICAgICAgYmFja2dyb3VuZC1jb2xvcjogJGNvbG9yLXN1Y2Nlc3MtaG92ZXI7XG4gICAgfVxuICB9XG5cbiAgJi0tZGlzYWJsZWQsXG4gICYtLWRpc2FibGVkOmhvdmVyIHtcbiAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkY29sb3ItZGVmYXVsdC1kaXNhYmxlZDtcbiAgICBjdXJzb3I6IGF1dG87XG4gICAgb3BhY2l0eTogMC41O1xuICB9XG5cbiAgJl9fdGl0bGUge1xuICAgIGNvbG9yOiAkd2hpdGU7XG4gIH1cblxuICAmX19kZXNjcmlwdGlvbiB7XG4gICAgY29sb3I6IHJnYmEoJHdoaXRlLCAwLjYpO1xuICB9XG5cbiAgJl9fdGljayB7XG4gICAgY29sb3I6IHJnYmEoJHdoaXRlLCAwLjYpO1xuICAgIG9wYWNpdHk6IDA7XG4gICAgdHJhbnNmb3JtOiBzY2FsZSgwLCAwLjcpIHRyYW5zbGF0ZSgwLCAxMHB4KTtcbiAgICB0cmFuc2l0aW9uOiBhbGwgMTIwbXMgZWFzZS1vdXQ7XG5cbiAgICAmLS1hY3RpdmUge1xuICAgICAgb3BhY2l0eTogMTtcbiAgICAgIHRyYW5zZm9ybTogc2NhbGUoMSkgdHJhbnNsYXRlKDApO1xuICAgIH1cbiAgfVxufVxuIiwiLy8gPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PSAvL1xuLy8gICAgICAgIEFyaXN0b0J5dGUgVUkgLSBTdHlsZSBTZXR0aW5ncyAgICAgICAvL1xuLy8gPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PSAvL1xuXG4vLyA9PT0gRGVzaWduIFRva2VucyDigJQgQ29sb3IgUGFsZXR0ZSA9PT0gLy9cbi8vIExvZ29cbiRsb2dvLWNvbG9yLTE6ICNmZmVlMjc7XG4kbG9nby1jb2xvci0yOiAjZmVjODAwO1xuJGxvZ28tY29sb3ItMzogI2YxOGUzNTtcbiRsb2dvLWNvbG9yLTQ6ICNlOTVmMzI7XG4kbG9nby1jb2xvci01OiAjZTIzMTJkO1xuJGxvZ28tZ3JhZGllbnQ6IGxpbmVhci1ncmFkaWVudChcbiAgOTBkZWcsXG4gICRsb2dvLWNvbG9yLTEsXG4gICRsb2dvLWNvbG9yLTIsXG4gICRsb2dvLWNvbG9yLTMsXG4gICRsb2dvLWNvbG9yLTQsXG4gICRsb2dvLWNvbG9yLTVcbik7XG5cbi8vIEJhc2VcbiR3aGl0ZTogI2ZmZmZmZjtcbiR3aGl0ZS1ob3ZlcjogI2RkZGRkZDtcbiRibGFjazogIzAwMDAwMDtcbiRibGFjay1ob3ZlcjogIzIyMjIyMjtcbiR0cmFuc3BhcmVudDogdHJhbnNwYXJlbnQ7XG5cbi8vID09PSBCbGFjayBUcmFuc3BhcmVudCBTY2FsZSA9PT0gLy9cbiRibGFjay10cmFuc3BhcmVudC0xMDA6IHJnYmEoMCwgMCwgMCwgMC4xKTtcbiRibGFjay10cmFuc3BhcmVudC0yMDA6IHJnYmEoMCwgMCwgMCwgMC4yKTtcbiRibGFjay10cmFuc3BhcmVudC0zMDA6IHJnYmEoMCwgMCwgMCwgMC4zKTtcbiRibGFjay10cmFuc3BhcmVudC00MDA6IHJnYmEoMCwgMCwgMCwgMC40KTtcbiRibGFjay10cmFuc3BhcmVudC01MDA6IHJnYmEoMCwgMCwgMCwgMC41KTtcbiRibGFjay10cmFuc3BhcmVudC02MDA6IHJnYmEoMCwgMCwgMCwgMC42KTtcbiRibGFjay10cmFuc3BhcmVudC03MDA6IHJnYmEoMCwgMCwgMCwgMC43KTtcbiRibGFjay10cmFuc3BhcmVudC04MDA6IHJnYmEoMCwgMCwgMCwgMC44KTtcbiRibGFjay10cmFuc3BhcmVudC05MDA6IHJnYmEoMCwgMCwgMCwgMC45KTtcblxuLy8gPT09IEJsYWNrIFRyYW5zcGFyZW50IFNjYWxlID09PSAvL1xuJHdoaXRlLXRyYW5zcGFyZW50LTEwMDogcmdiYSgyNTUsIDI1NSwgMjU1LCAwLjEpO1xuJHdoaXRlLXRyYW5zcGFyZW50LTIwMDogcmdiYSgyNTUsIDI1NSwgMjU1LCAwLjIpO1xuJHdoaXRlLXRyYW5zcGFyZW50LTMwMDogcmdiYSgyNTUsIDI1NSwgMjU1LCAwLjMpO1xuJHdoaXRlLXRyYW5zcGFyZW50LTQwMDogcmdiYSgyNTUsIDI1NSwgMjU1LCAwLjQpO1xuJHdoaXRlLXRyYW5zcGFyZW50LTUwMDogcmdiYSgyNTUsIDI1NSwgMjU1LCAwLjUpO1xuJHdoaXRlLXRyYW5zcGFyZW50LTYwMDogcmdiYSgyNTUsIDI1NSwgMjU1LCAwLjYpO1xuJHdoaXRlLXRyYW5zcGFyZW50LTcwMDogcmdiYSgyNTUsIDI1NSwgMjU1LCAwLjcpO1xuJHdoaXRlLXRyYW5zcGFyZW50LTgwMDogcmdiYSgyNTUsIDI1NSwgMjU1LCAwLjgpO1xuJHdoaXRlLXRyYW5zcGFyZW50LTkwMDogcmdiYSgyNTUsIDI1NSwgMjU1LCAwLjkpO1xuXG4vLyA9PT0gTmV1dHJhbCBTY2FsZSAoR3JleSkgPT09IC8vXG4kZ3JleS01MDogI2Y5ZmFmYjtcbiRncmV5LTEwMDogI2YzZjRmNjtcbiRncmV5LTIwMDogI2U1ZTdlYjtcbiRncmV5LTMwMDogI2QxZDVkYjtcbiRncmV5LTQwMDogIzljYTNhZjtcbiRncmV5LTUwMDogIzZiNzI4MDtcbiRncmV5LTYwMDogIzRiNTU2MztcbiRncmV5LTcwMDogIzM3NDE1MTtcbiRncmV5LTgwMDogIzFmMjkzNztcbiRncmV5LTkwMDogIzExMTgyNztcblxuLy8gPT09IFByaW1hcnkgU2NhbGUgKEJsdWUpID09PSAvL1xuJGJsdWUtNTA6ICNlZmY2ZmY7XG4kYmx1ZS0xMDA6ICNkYmVhZmU7XG4kYmx1ZS0yMDA6ICNiZmRiZmU7XG4kYmx1ZS0zMDA6ICM5M2M1ZmQ7XG4kYmx1ZS00MDA6ICM2MGE1ZmE7XG4kYmx1ZS01MDA6ICMzYjgyZjY7XG4kYmx1ZS02MDA6ICMyNTYzZWI7IC8vIE1haW5cbiRibHVlLTcwMDogIzFkNGVkODsgLy8gSG92ZXJcbiRibHVlLTgwMDogIzFlNDBhZjtcbiRibHVlLTkwMDogIzFlM2E4YTtcblxuLy8gPT09IFNlY29uZGFyeSBTY2FsZSAoSW5kaWdvKSA9PT0gLy9cbiRpbmRpZ28tNTA6ICNlZWYyZmY7XG4kaW5kaWdvLTEwMDogI2UwZTdmZjtcbiRpbmRpZ28tMjAwOiAjYzdkMmZlO1xuJGluZGlnby0zMDA6ICNhNWI0ZmM7XG4kaW5kaWdvLTQwMDogIzgxOGNmODtcbiRpbmRpZ28tNTAwOiAjNjM2NmYxO1xuJGluZGlnby02MDA6ICM0ZjQ2ZTU7IC8vIE1haW5cbiRpbmRpZ28tNzAwOiAjNDMzOGNhOyAvLyBIb3ZlclxuXG4vLyA9PT0gRXJyb3IgU2NhbGUgKFJlZCkgPT09IC8vXG4kcmVkLTUwOiAjZmVmMmYyO1xuJHJlZC0xMDA6ICNmZWUyZTI7XG4kcmVkLTIwMDogI2ZlY2FjYTtcbiRyZWQtMzAwOiAjZmNhNWE1O1xuJHJlZC00MDA6ICNmODcxNzE7XG4kcmVkLTUwMDogI2VmNDQ0NDtcbiRyZWQtNjAwOiAjZGMyNjI2OyAvLyBNYWluXG4kcmVkLTcwMDogI2I5MWMxYzsgLy8gSG92ZXJcblxuLy8gPT09IFN1Y2Nlc3MgU2NhbGUgKEdyZWVuKSA9PT0gLy9cbiRncmVlbi01MDogI2YwZmRmNDtcbiRncmVlbi0xMDA6ICNkY2ZjZTc7XG4kZ3JlZW4tMjAwOiAjYmJmN2QwO1xuJGdyZWVuLTMwMDogIzg2ZWZhYztcbiRncmVlbi00MDA6ICM0YWRlODA7XG4kZ3JlZW4tNTAwOiAjMjJjNTVlO1xuJGdyZWVuLTYwMDogIzE2YTM0YTsgLy8gTWFpblxuJGdyZWVuLTcwMDogIzE1ODAzZDsgLy8gSG92ZXJcblxuLy8gPT09IFdhcm5pbmcgU2NhbGUgKEFtYmVyKSA9PT0gLy9cbiRhbWJlci01MDogI2ZmZmJlYjtcbiRhbWJlci0xMDA6ICNmZWYzYzc7XG4kYW1iZXItMjAwOiAjZmRlNjhhO1xuJGFtYmVyLTMwMDogI2ZjZDM0ZDtcbiRhbWJlci00MDA6ICNmYmJmMjQ7XG4kYW1iZXItNTAwOiAjZjU5ZTBiO1xuJGFtYmVyLTYwMDogI2Q5NzcwNjsgLy8gTWFpblxuJGFtYmVyLTcwMDogI2I0NTMwOTsgLy8gSG92ZXJcblxuLy8gPT09IFNlbWFudGljIFRva2VucyA9PT0gLy9cbiRjb2xvci1kZWZhdWx0OiAkZ3JleS04MDA7XG4kY29sb3ItZGVmYXVsdC1ob3ZlcjogJGdyZXktOTAwO1xuJGNvbG9yLWRlZmF1bHQtZGlzYWJsZWQ6IHJnYmEoJGNvbG9yLWRlZmF1bHQsIDAuNSk7XG5cbiRjb2xvci1wcmltYXJ5OiAkYmx1ZS02MDA7XG4kY29sb3ItcHJpbWFyeS1ob3ZlcjogJGJsdWUtNzAwO1xuJGNvbG9yLXByaW1hcnktZGlzYWJsZWQ6IHJnYmEoJGNvbG9yLXByaW1hcnksIDAuNSk7XG5cbiRjb2xvci1zZWNvbmRhcnk6ICRpbmRpZ28tNjAwO1xuJGNvbG9yLXNlY29uZGFyeS1ob3ZlcjogJGluZGlnby03MDA7XG4kY29sb3Itc2Vjb25kYXJ5LWRpc2FibGVkOiByZ2JhKCRjb2xvci1zZWNvbmRhcnksIDAuNSk7XG5cbiRjb2xvci1lcnJvcjogJHJlZC02MDA7XG4kY29sb3ItZXJyb3ItaG92ZXI6ICRyZWQtNzAwO1xuJGNvbG9yLWVycm9yLWRpc2FibGVkOiByZ2JhKCRjb2xvci1lcnJvciwgMC41KTtcblxuJGNvbG9yLXN1Y2Nlc3M6ICRncmVlbi02MDA7XG4kY29sb3Itc3VjY2Vzcy1ob3ZlcjogJGdyZWVuLTcwMDtcbiRjb2xvci1zdWNjZXNzLWRpc2FibGVkOiByZ2JhKCRjb2xvci1zdWNjZXNzLCAwLjUpO1xuXG4kY29sb3Itd2FybmluZzogJGFtYmVyLTYwMDtcbiRjb2xvci13YXJuaW5nLWhvdmVyOiAkYW1iZXItNzAwO1xuJGNvbG9yLXdhcm5pbmctZGlzYWJsZWQ6IHJnYmEoJGNvbG9yLXdhcm5pbmcsIDAuNSk7XG5cbiR0ZXh0LWNvbG9yLXdoaXRlOiAkd2hpdGU7XG4kdGV4dC1jb2xvci1ibGFjazogJGJsYWNrO1xuJHRleHQtY29sb3Itd2hpdGUtZGlzYWJsZWQ6IHJnYmEoJHdoaXRlLCAwLjUpO1xuJHRleHQtY29sb3ItYmxhY2stZGlzYWJsZWQ6IHJnYmEoJGJsYWNrLCAwLjUpO1xuXG4kdGl0bGUtY29sb3ItZGFyazogJHdoaXRlO1xuJHN1YnRpdGxlLWNvbG9yLWRhcms6ICM5OWExYWY7XG4kZGVzY3JpcHRpb24tY29sb3ItZGFyazogI2QxZDVkYztcbiRpY29uLWNvbG9yLWRhcms6ICM5OWExYWY7XG5cbi8vID09PSBTaGFkb3dzID09PSAvL1xuLy9AVE9ETzogQFNIQURPV1xuJHNoYWRvdy1zbTogMCAxcHggMnB4IDAgcmdiYSgkYmxhY2ssIDAuMDUpO1xuJHNoYWRvdy1tZDpcbiAgMCA0cHggNnB4IC0xcHggcmdiYSgkYmxhY2ssIDAuMSksXG4gIDAgMnB4IDRweCAtMXB4IHJnYmEoJGJsYWNrLCAwLjA2KTtcbiRzaGFkb3ctbGc6XG4gIDAgMTBweCAxNXB4IC0zcHggcmdiYSgkYmxhY2ssIDAuMSksXG4gIDAgNHB4IDZweCAtMnB4IHJnYmEoJGJsYWNrLCAwLjA1KTtcblxuLy8gPT09IEZvbnQgZmFtaWxpZXMgPT09IC8vXG4kZm9udC1mYW1pbHktc2FuczogXCJJbnRlclwiLCBzYW5zLXNlcmlmO1xuJGZvbnQtZmFtaWx5LXNlcmlmOiBcIkdlb3JnaWFcIiwgc2VyaWY7XG4kZm9udC1mYW1pbHktbW9ubzogXCJGaXJhIENvZGVcIiwgbW9ub3NwYWNlO1xuXG4vLyA9PT0gRm9udCB3ZWlnaHRzID09PSAvL1xuJGZvbnQtd2VpZ2h0LXJlZ3VsYXI6IDQwMDtcbiRmb250LXdlaWdodC1tZWRpdW06IDUwMDtcbiRmb250LXdlaWdodC1zZW1pYm9sZDogNjAwO1xuJGZvbnQtd2VpZ2h0LWJvbGQ6IDcwMDtcblxuLy8gPT09IExpbmUgaGVpZ2h0cyA9PT0gLy9cbiRsaW5lLWhlaWdodC10aWdodDogMS4yO1xuJGxpbmUtaGVpZ2h0LXNudWc6IDEuMzc1O1xuJGxpbmUtaGVpZ2h0LW5vcm1hbDogMS41O1xuJGxpbmUtaGVpZ2h0LWxvb3NlOiAxLjYyNTtcblxuLy8gPT09IEZvbnQgU2l6ZXMg4oCUIFNlbWFudGljIFRva2VucyA9PT0gLy9cblxuLy8gPT09IFRpdGxlcyA9PT0gLy9cbiRmb250LXNpemUtaGVybzogM3JlbTsgLy8gNDhweFxuJGZvbnQtc2l6ZS10aXRsZS0xOiAyLjI1cmVtOyAvLyAzNnB4XG4kZm9udC1zaXplLXRpdGxlLTI6IDEuODc1cmVtOyAvLyAzMHB4XG4kZm9udC1zaXplLXRpdGxlLTM6IDEuNXJlbTsgLy8gMjRweFxuXG4vLyA9PT0gU3VidGl0bGVzID09PSAvL1xuJGZvbnQtc2l6ZS1zdWJ0aXRsZS0xOiAxLjI1cmVtOyAvLyAyMHB4XG4kZm9udC1zaXplLXN1YnRpdGxlLTI6IDEuMTI1cmVtOyAvLyAxOHB4XG5cbi8vID09PSBCb2R5IHRleHQgPT09IC8vXG4kZm9udC1zaXplLWJvZHktbGc6IDFyZW07IC8vIDE2cHhcbiRmb250LXNpemUtYm9keS1tZDogMC45Mzc1cmVtOyAvLyAxNXB4XG4kZm9udC1zaXplLWJvZHktc206IDAuODc1cmVtOyAvLyAxNHB4XG5cbi8vID09PSBDYXB0aW9ucyAvIERlc2NyaXB0aW9ucyA9PT0gLy9cbiRmb250LXNpemUtY2FwdGlvbjogMC43NXJlbTsgLy8gMTJweFxuJGZvbnQtc2l6ZS1mb290bm90ZTogMC42ODc1cmVtOyAvLyAxMXB4XG5cbi8vID09PSBCdXR0b25zID09PSAvL1xuJGZvbnQtc2l6ZS1idXR0b24tbGc6IDFyZW07IC8vIDE2cHhcbiRmb250LXNpemUtYnV0dG9uLW1kOiAwLjg3NXJlbTsgLy8gMTRweFxuJGZvbnQtc2l6ZS1idXR0b24tc206IDAuNzVyZW07IC8vIDEycHhcblxuLy8gPT09IEFuaW1hdGlvbnMgPT09IC8vXG5cbiRjdWJpYy1iZXppZXItcHJpbWFyeTogY3ViaWMtYmV6aWVyKDAuNTUsIC0wLjE5LCAwLjU5LCAwLjk1KTtcbiRjdWJpYy1iZXppZXItc2Vjb25kYXJ5OiBjdWJpYy1iZXppZXIoMC4xNzUsIDAuODg1LCAwLjMyLCAxLjI3NSk7XG4iXX0= */",".dropdown {\n width: max-content;\n}\n.dropdown__button {\n width: max-content;\n}\n.dropdown__box-variant--default .dropdown__box-options {\n background-color: #1f2937;\n}\n.dropdown__box-variant--primary .dropdown__box-options {\n background-color: #2563eb;\n}\n.dropdown__box-variant--secondary .dropdown__box-options {\n background-color: #4f46e5;\n}\n.dropdown__box-variant--warning .dropdown__box-options {\n background-color: #d97706;\n}\n.dropdown__box-variant--error .dropdown__box-options {\n background-color: #dc2626;\n}\n.dropdown__box-variant--success .dropdown__box-options {\n background-color: #16a34a;\n}\n.dropdown__box-overlay {\n backdrop-filter: blur(12px);\n height: 100%;\n left: 0;\n position: fixed;\n top: 0;\n width: 100%;\n z-index: 99999999999;\n}\n.dropdown__box-options {\n align-items: flex-start;\n border-radius: 8px;\n box-shadow: 0 4px 6px rgba(0, 0, 0, 0.04), 0 12px 24px rgba(0, 0, 0, 0.1);\n display: flex;\n flex-direction: column;\n opacity: 1;\n min-width: 300px;\n padding: 4px;\n position: absolute;\n transition: transform 200ms cubic-bezier(0.175, 0.885, 0.32, 1.275), opacity 150ms ease;\n width: 100%;\n z-index: 99999999999;\n}\n/*# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VSb290IjoiL1VzZXJzL2RodW5hbnlhbi9hcmlzdG9ieXRlL2dpdGh1Yi9hcmlzdG9ieXRlLXVpL3BhY2thZ2VzL2Ryb3Bkb3duL2NvbXBvbmVudHMvRHJvcGRvd24iLCJzb3VyY2VzIjpbIkRyb3Bkb3duLm1vZHVsZS5zY3NzIiwiLi4vLi4vLi4vLi4vbm9kZV9tb2R1bGVzL0BhcmlzdG9ieXRlLXVpL3V0aWxzL3N0eWxlcy9fc2V0dGluZ3Muc2NzcyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFFQTtFQUNFOztBQUVBO0VBQ0U7O0FBSUE7RUFDRSxrQkMrQ0s7O0FENUNQO0VBQ0Usa0JDcURLOztBRGxEUDtFQUNFLGtCQzZETzs7QUQxRFQ7RUFDRSxrQkN1Rk07O0FEcEZSO0VBQ0Usa0JDK0RJOztBRDVETjtFQUNFLGtCQ3FFTTs7QURsRVI7RUFDRTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTs7QUFHRjtFQUNFO0VBQ0E7RUFDQSxZQUNFO0VBRUY7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0EsWUFDRTtFQUVGO0VBQ0EiLCJzb3VyY2VzQ29udGVudCI6WyJAdXNlIFwiQGFyaXN0b2J5dGUtdWkvdXRpbHMvc3R5bGVzL3NldHRpbmdzXCIgYXMgKjtcblxuLmRyb3Bkb3duIHtcbiAgd2lkdGg6IG1heC1jb250ZW50O1xuXG4gICZfX2J1dHRvbiB7XG4gICAgd2lkdGg6IG1heC1jb250ZW50O1xuICB9XG5cbiAgJl9fYm94IHtcbiAgICAmLXZhcmlhbnQtLWRlZmF1bHQgJi1vcHRpb25zIHtcbiAgICAgIGJhY2tncm91bmQtY29sb3I6ICRjb2xvci1kZWZhdWx0O1xuICAgIH1cblxuICAgICYtdmFyaWFudC0tcHJpbWFyeSAmLW9wdGlvbnMge1xuICAgICAgYmFja2dyb3VuZC1jb2xvcjogJGNvbG9yLXByaW1hcnk7XG4gICAgfVxuXG4gICAgJi12YXJpYW50LS1zZWNvbmRhcnkgJi1vcHRpb25zIHtcbiAgICAgIGJhY2tncm91bmQtY29sb3I6ICRjb2xvci1zZWNvbmRhcnk7XG4gICAgfVxuXG4gICAgJi12YXJpYW50LS13YXJuaW5nICYtb3B0aW9ucyB7XG4gICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkY29sb3Itd2FybmluZztcbiAgICB9XG5cbiAgICAmLXZhcmlhbnQtLWVycm9yICYtb3B0aW9ucyB7XG4gICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkY29sb3ItZXJyb3I7XG4gICAgfVxuXG4gICAgJi12YXJpYW50LS1zdWNjZXNzICYtb3B0aW9ucyB7XG4gICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkY29sb3Itc3VjY2VzcztcbiAgICB9XG5cbiAgICAmLW92ZXJsYXkge1xuICAgICAgYmFja2Ryb3AtZmlsdGVyOiBibHVyKDEycHgpO1xuICAgICAgaGVpZ2h0OiAxMDAlO1xuICAgICAgbGVmdDogMDtcbiAgICAgIHBvc2l0aW9uOiBmaXhlZDtcbiAgICAgIHRvcDogMDtcbiAgICAgIHdpZHRoOiAxMDAlO1xuICAgICAgei1pbmRleDogOTk5OTk5OTk5OTk7XG4gICAgfVxuXG4gICAgJi1vcHRpb25zIHtcbiAgICAgIGFsaWduLWl0ZW1zOiBmbGV4LXN0YXJ0O1xuICAgICAgYm9yZGVyLXJhZGl1czogOHB4OyAvL1RPRE86IGNoYW5nZSB0byBkeW5hbWljXG4gICAgICBib3gtc2hhZG93OlxuICAgICAgICAwIDRweCA2cHggcmdiYSgwLCAwLCAwLCAwLjA0KSxcbiAgICAgICAgMCAxMnB4IDI0cHggcmdiYSgwLCAwLCAwLCAwLjEpO1xuICAgICAgZGlzcGxheTogZmxleDtcbiAgICAgIGZsZXgtZGlyZWN0aW9uOiBjb2x1bW47XG4gICAgICBvcGFjaXR5OiAxO1xuICAgICAgbWluLXdpZHRoOiAzMDBweDtcbiAgICAgIHBhZGRpbmc6IDRweDtcbiAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICAgIHRyYW5zaXRpb246XG4gICAgICAgIHRyYW5zZm9ybSAyMDBtcyAkY3ViaWMtYmV6aWVyLXNlY29uZGFyeSxcbiAgICAgICAgb3BhY2l0eSAxNTBtcyBlYXNlO1xuICAgICAgd2lkdGg6IDEwMCU7XG4gICAgICB6LWluZGV4OiA5OTk5OTk5OTk5OTtcbiAgICB9XG4gIH1cbn1cbiIsIi8vID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0gLy9cbi8vICAgICAgICBBcmlzdG9CeXRlIFVJIC0gU3R5bGUgU2V0dGluZ3MgICAgICAgLy9cbi8vID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0gLy9cblxuLy8gPT09IERlc2lnbiBUb2tlbnMg4oCUIENvbG9yIFBhbGV0dGUgPT09IC8vXG4vLyBMb2dvXG4kbG9nby1jb2xvci0xOiAjZmZlZTI3O1xuJGxvZ28tY29sb3ItMjogI2ZlYzgwMDtcbiRsb2dvLWNvbG9yLTM6ICNmMThlMzU7XG4kbG9nby1jb2xvci00OiAjZTk1ZjMyO1xuJGxvZ28tY29sb3ItNTogI2UyMzEyZDtcbiRsb2dvLWdyYWRpZW50OiBsaW5lYXItZ3JhZGllbnQoXG4gIDkwZGVnLFxuICAkbG9nby1jb2xvci0xLFxuICAkbG9nby1jb2xvci0yLFxuICAkbG9nby1jb2xvci0zLFxuICAkbG9nby1jb2xvci00LFxuICAkbG9nby1jb2xvci01XG4pO1xuXG4vLyBCYXNlXG4kd2hpdGU6ICNmZmZmZmY7XG4kd2hpdGUtaG92ZXI6ICNkZGRkZGQ7XG4kYmxhY2s6ICMwMDAwMDA7XG4kYmxhY2staG92ZXI6ICMyMjIyMjI7XG4kdHJhbnNwYXJlbnQ6IHRyYW5zcGFyZW50O1xuXG4vLyA9PT0gQmxhY2sgVHJhbnNwYXJlbnQgU2NhbGUgPT09IC8vXG4kYmxhY2stdHJhbnNwYXJlbnQtMTAwOiByZ2JhKDAsIDAsIDAsIDAuMSk7XG4kYmxhY2stdHJhbnNwYXJlbnQtMjAwOiByZ2JhKDAsIDAsIDAsIDAuMik7XG4kYmxhY2stdHJhbnNwYXJlbnQtMzAwOiByZ2JhKDAsIDAsIDAsIDAuMyk7XG4kYmxhY2stdHJhbnNwYXJlbnQtNDAwOiByZ2JhKDAsIDAsIDAsIDAuNCk7XG4kYmxhY2stdHJhbnNwYXJlbnQtNTAwOiByZ2JhKDAsIDAsIDAsIDAuNSk7XG4kYmxhY2stdHJhbnNwYXJlbnQtNjAwOiByZ2JhKDAsIDAsIDAsIDAuNik7XG4kYmxhY2stdHJhbnNwYXJlbnQtNzAwOiByZ2JhKDAsIDAsIDAsIDAuNyk7XG4kYmxhY2stdHJhbnNwYXJlbnQtODAwOiByZ2JhKDAsIDAsIDAsIDAuOCk7XG4kYmxhY2stdHJhbnNwYXJlbnQtOTAwOiByZ2JhKDAsIDAsIDAsIDAuOSk7XG5cbi8vID09PSBCbGFjayBUcmFuc3BhcmVudCBTY2FsZSA9PT0gLy9cbiR3aGl0ZS10cmFuc3BhcmVudC0xMDA6IHJnYmEoMjU1LCAyNTUsIDI1NSwgMC4xKTtcbiR3aGl0ZS10cmFuc3BhcmVudC0yMDA6IHJnYmEoMjU1LCAyNTUsIDI1NSwgMC4yKTtcbiR3aGl0ZS10cmFuc3BhcmVudC0zMDA6IHJnYmEoMjU1LCAyNTUsIDI1NSwgMC4zKTtcbiR3aGl0ZS10cmFuc3BhcmVudC00MDA6IHJnYmEoMjU1LCAyNTUsIDI1NSwgMC40KTtcbiR3aGl0ZS10cmFuc3BhcmVudC01MDA6IHJnYmEoMjU1LCAyNTUsIDI1NSwgMC41KTtcbiR3aGl0ZS10cmFuc3BhcmVudC02MDA6IHJnYmEoMjU1LCAyNTUsIDI1NSwgMC42KTtcbiR3aGl0ZS10cmFuc3BhcmVudC03MDA6IHJnYmEoMjU1LCAyNTUsIDI1NSwgMC43KTtcbiR3aGl0ZS10cmFuc3BhcmVudC04MDA6IHJnYmEoMjU1LCAyNTUsIDI1NSwgMC44KTtcbiR3aGl0ZS10cmFuc3BhcmVudC05MDA6IHJnYmEoMjU1LCAyNTUsIDI1NSwgMC45KTtcblxuLy8gPT09IE5ldXRyYWwgU2NhbGUgKEdyZXkpID09PSAvL1xuJGdyZXktNTA6ICNmOWZhZmI7XG4kZ3JleS0xMDA6ICNmM2Y0ZjY7XG4kZ3JleS0yMDA6ICNlNWU3ZWI7XG4kZ3JleS0zMDA6ICNkMWQ1ZGI7XG4kZ3JleS00MDA6ICM5Y2EzYWY7XG4kZ3JleS01MDA6ICM2YjcyODA7XG4kZ3JleS02MDA6ICM0YjU1NjM7XG4kZ3JleS03MDA6ICMzNzQxNTE7XG4kZ3JleS04MDA6ICMxZjI5Mzc7XG4kZ3JleS05MDA6ICMxMTE4Mjc7XG5cbi8vID09PSBQcmltYXJ5IFNjYWxlIChCbHVlKSA9PT0gLy9cbiRibHVlLTUwOiAjZWZmNmZmO1xuJGJsdWUtMTAwOiAjZGJlYWZlO1xuJGJsdWUtMjAwOiAjYmZkYmZlO1xuJGJsdWUtMzAwOiAjOTNjNWZkO1xuJGJsdWUtNDAwOiAjNjBhNWZhO1xuJGJsdWUtNTAwOiAjM2I4MmY2O1xuJGJsdWUtNjAwOiAjMjU2M2ViOyAvLyBNYWluXG4kYmx1ZS03MDA6ICMxZDRlZDg7IC8vIEhvdmVyXG4kYmx1ZS04MDA6ICMxZTQwYWY7XG4kYmx1ZS05MDA6ICMxZTNhOGE7XG5cbi8vID09PSBTZWNvbmRhcnkgU2NhbGUgKEluZGlnbykgPT09IC8vXG4kaW5kaWdvLTUwOiAjZWVmMmZmO1xuJGluZGlnby0xMDA6ICNlMGU3ZmY7XG4kaW5kaWdvLTIwMDogI2M3ZDJmZTtcbiRpbmRpZ28tMzAwOiAjYTViNGZjO1xuJGluZGlnby00MDA6ICM4MThjZjg7XG4kaW5kaWdvLTUwMDogIzYzNjZmMTtcbiRpbmRpZ28tNjAwOiAjNGY0NmU1OyAvLyBNYWluXG4kaW5kaWdvLTcwMDogIzQzMzhjYTsgLy8gSG92ZXJcblxuLy8gPT09IEVycm9yIFNjYWxlIChSZWQpID09PSAvL1xuJHJlZC01MDogI2ZlZjJmMjtcbiRyZWQtMTAwOiAjZmVlMmUyO1xuJHJlZC0yMDA6ICNmZWNhY2E7XG4kcmVkLTMwMDogI2ZjYTVhNTtcbiRyZWQtNDAwOiAjZjg3MTcxO1xuJHJlZC01MDA6ICNlZjQ0NDQ7XG4kcmVkLTYwMDogI2RjMjYyNjsgLy8gTWFpblxuJHJlZC03MDA6ICNiOTFjMWM7IC8vIEhvdmVyXG5cbi8vID09PSBTdWNjZXNzIFNjYWxlIChHcmVlbikgPT09IC8vXG4kZ3JlZW4tNTA6ICNmMGZkZjQ7XG4kZ3JlZW4tMTAwOiAjZGNmY2U3O1xuJGdyZWVuLTIwMDogI2JiZjdkMDtcbiRncmVlbi0zMDA6ICM4NmVmYWM7XG4kZ3JlZW4tNDAwOiAjNGFkZTgwO1xuJGdyZWVuLTUwMDogIzIyYzU1ZTtcbiRncmVlbi02MDA6ICMxNmEzNGE7IC8vIE1haW5cbiRncmVlbi03MDA6ICMxNTgwM2Q7IC8vIEhvdmVyXG5cbi8vID09PSBXYXJuaW5nIFNjYWxlIChBbWJlcikgPT09IC8vXG4kYW1iZXItNTA6ICNmZmZiZWI7XG4kYW1iZXItMTAwOiAjZmVmM2M3O1xuJGFtYmVyLTIwMDogI2ZkZTY4YTtcbiRhbWJlci0zMDA6ICNmY2QzNGQ7XG4kYW1iZXItNDAwOiAjZmJiZjI0O1xuJGFtYmVyLTUwMDogI2Y1OWUwYjtcbiRhbWJlci02MDA6ICNkOTc3MDY7IC8vIE1haW5cbiRhbWJlci03MDA6ICNiNDUzMDk7IC8vIEhvdmVyXG5cbi8vID09PSBTZW1hbnRpYyBUb2tlbnMgPT09IC8vXG4kY29sb3ItZGVmYXVsdDogJGdyZXktODAwO1xuJGNvbG9yLWRlZmF1bHQtaG92ZXI6ICRncmV5LTkwMDtcbiRjb2xvci1kZWZhdWx0LWRpc2FibGVkOiByZ2JhKCRjb2xvci1kZWZhdWx0LCAwLjUpO1xuXG4kY29sb3ItcHJpbWFyeTogJGJsdWUtNjAwO1xuJGNvbG9yLXByaW1hcnktaG92ZXI6ICRibHVlLTcwMDtcbiRjb2xvci1wcmltYXJ5LWRpc2FibGVkOiByZ2JhKCRjb2xvci1wcmltYXJ5LCAwLjUpO1xuXG4kY29sb3Itc2Vjb25kYXJ5OiAkaW5kaWdvLTYwMDtcbiRjb2xvci1zZWNvbmRhcnktaG92ZXI6ICRpbmRpZ28tNzAwO1xuJGNvbG9yLXNlY29uZGFyeS1kaXNhYmxlZDogcmdiYSgkY29sb3Itc2Vjb25kYXJ5LCAwLjUpO1xuXG4kY29sb3ItZXJyb3I6ICRyZWQtNjAwO1xuJGNvbG9yLWVycm9yLWhvdmVyOiAkcmVkLTcwMDtcbiRjb2xvci1lcnJvci1kaXNhYmxlZDogcmdiYSgkY29sb3ItZXJyb3IsIDAuNSk7XG5cbiRjb2xvci1zdWNjZXNzOiAkZ3JlZW4tNjAwO1xuJGNvbG9yLXN1Y2Nlc3MtaG92ZXI6ICRncmVlbi03MDA7XG4kY29sb3Itc3VjY2Vzcy1kaXNhYmxlZDogcmdiYSgkY29sb3Itc3VjY2VzcywgMC41KTtcblxuJGNvbG9yLXdhcm5pbmc6ICRhbWJlci02MDA7XG4kY29sb3Itd2FybmluZy1ob3ZlcjogJGFtYmVyLTcwMDtcbiRjb2xvci13YXJuaW5nLWRpc2FibGVkOiByZ2JhKCRjb2xvci13YXJuaW5nLCAwLjUpO1xuXG4kdGV4dC1jb2xvci13aGl0ZTogJHdoaXRlO1xuJHRleHQtY29sb3ItYmxhY2s6ICRibGFjaztcbiR0ZXh0LWNvbG9yLXdoaXRlLWRpc2FibGVkOiByZ2JhKCR3aGl0ZSwgMC41KTtcbiR0ZXh0LWNvbG9yLWJsYWNrLWRpc2FibGVkOiByZ2JhKCRibGFjaywgMC41KTtcblxuJHRpdGxlLWNvbG9yLWRhcms6ICR3aGl0ZTtcbiRzdWJ0aXRsZS1jb2xvci1kYXJrOiAjOTlhMWFmO1xuJGRlc2NyaXB0aW9uLWNvbG9yLWRhcms6ICNkMWQ1ZGM7XG4kaWNvbi1jb2xvci1kYXJrOiAjOTlhMWFmO1xuXG4vLyA9PT0gU2hhZG93cyA9PT0gLy9cbi8vQFRPRE86IEBTSEFET1dcbiRzaGFkb3ctc206IDAgMXB4IDJweCAwIHJnYmEoJGJsYWNrLCAwLjA1KTtcbiRzaGFkb3ctbWQ6XG4gIDAgNHB4IDZweCAtMXB4IHJnYmEoJGJsYWNrLCAwLjEpLFxuICAwIDJweCA0cHggLTFweCByZ2JhKCRibGFjaywgMC4wNik7XG4kc2hhZG93LWxnOlxuICAwIDEwcHggMTVweCAtM3B4IHJnYmEoJGJsYWNrLCAwLjEpLFxuICAwIDRweCA2cHggLTJweCByZ2JhKCRibGFjaywgMC4wNSk7XG5cbi8vID09PSBGb250IGZhbWlsaWVzID09PSAvL1xuJGZvbnQtZmFtaWx5LXNhbnM6IFwiSW50ZXJcIiwgc2Fucy1zZXJpZjtcbiRmb250LWZhbWlseS1zZXJpZjogXCJHZW9yZ2lhXCIsIHNlcmlmO1xuJGZvbnQtZmFtaWx5LW1vbm86IFwiRmlyYSBDb2RlXCIsIG1vbm9zcGFjZTtcblxuLy8gPT09IEZvbnQgd2VpZ2h0cyA9PT0gLy9cbiRmb250LXdlaWdodC1yZWd1bGFyOiA0MDA7XG4kZm9udC13ZWlnaHQtbWVkaXVtOiA1MDA7XG4kZm9udC13ZWlnaHQtc2VtaWJvbGQ6IDYwMDtcbiRmb250LXdlaWdodC1ib2xkOiA3MDA7XG5cbi8vID09PSBMaW5lIGhlaWdodHMgPT09IC8vXG4kbGluZS1oZWlnaHQtdGlnaHQ6IDEuMjtcbiRsaW5lLWhlaWdodC1zbnVnOiAxLjM3NTtcbiRsaW5lLWhlaWdodC1ub3JtYWw6IDEuNTtcbiRsaW5lLWhlaWdodC1sb29zZTogMS42MjU7XG5cbi8vID09PSBGb250IFNpemVzIOKAlCBTZW1hbnRpYyBUb2tlbnMgPT09IC8vXG5cbi8vID09PSBUaXRsZXMgPT09IC8vXG4kZm9udC1zaXplLWhlcm86IDNyZW07IC8vIDQ4cHhcbiRmb250LXNpemUtdGl0bGUtMTogMi4yNXJlbTsgLy8gMzZweFxuJGZvbnQtc2l6ZS10aXRsZS0yOiAxLjg3NXJlbTsgLy8gMzBweFxuJGZvbnQtc2l6ZS10aXRsZS0zOiAxLjVyZW07IC8vIDI0cHhcblxuLy8gPT09IFN1YnRpdGxlcyA9PT0gLy9cbiRmb250LXNpemUtc3VidGl0bGUtMTogMS4yNXJlbTsgLy8gMjBweFxuJGZvbnQtc2l6ZS1zdWJ0aXRsZS0yOiAxLjEyNXJlbTsgLy8gMThweFxuXG4vLyA9PT0gQm9keSB0ZXh0ID09PSAvL1xuJGZvbnQtc2l6ZS1ib2R5LWxnOiAxcmVtOyAvLyAxNnB4XG4kZm9udC1zaXplLWJvZHktbWQ6IDAuOTM3NXJlbTsgLy8gMTVweFxuJGZvbnQtc2l6ZS1ib2R5LXNtOiAwLjg3NXJlbTsgLy8gMTRweFxuXG4vLyA9PT0gQ2FwdGlvbnMgLyBEZXNjcmlwdGlvbnMgPT09IC8vXG4kZm9udC1zaXplLWNhcHRpb246IDAuNzVyZW07IC8vIDEycHhcbiRmb250LXNpemUtZm9vdG5vdGU6IDAuNjg3NXJlbTsgLy8gMTFweFxuXG4vLyA9PT0gQnV0dG9ucyA9PT0gLy9cbiRmb250LXNpemUtYnV0dG9uLWxnOiAxcmVtOyAvLyAxNnB4XG4kZm9udC1zaXplLWJ1dHRvbi1tZDogMC44NzVyZW07IC8vIDE0cHhcbiRmb250LXNpemUtYnV0dG9uLXNtOiAwLjc1cmVtOyAvLyAxMnB4XG5cbi8vID09PSBBbmltYXRpb25zID09PSAvL1xuXG4kY3ViaWMtYmV6aWVyLXByaW1hcnk6IGN1YmljLWJlemllcigwLjU1LCAtMC4xOSwgMC41OSwgMC45NSk7XG4kY3ViaWMtYmV6aWVyLXNlY29uZGFyeTogY3ViaWMtYmV6aWVyKDAuMTc1LCAwLjg4NSwgMC4zMiwgMS4yNzUpO1xuIl19 */"],"mappings":"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","names":["React","dropdown-option","dropdown-option-variant--default","dropdown-option-variant--primary","dropdown-option-variant--secondary","dropdown-option-variant--warning","dropdown-option-variant--error","dropdown-option-variant--success","dropdown-option--disabled","dropdown-option__title","dropdown-option__description","dropdown-option__tick","dropdown-option__tick--active","import_utils","dropdown","dropdown__button","dropdown__box-variant--default","dropdown__box-options","dropdown__box-variant--primary","dropdown__box-variant--secondary","dropdown__box-variant--warning","dropdown__box-variant--error","dropdown__box-variant--success","dropdown__box-overlay","import_jsx_runtime"]}
1
+ {"version":3,"sources":["../index.ts","../components/Dropdown/index.tsx","../components/DropdownOption/index.tsx"],"sourcesContent":["export * from \"./components\";\n","\"use client\";\n\nimport * as React from \"react\";\nimport { AnimatePresence, motion } from \"framer-motion\";\n\nimport { DropdownOption, type IDropdownOption } from \"../DropdownOption\";\nimport { Button, type IButton } from \"@aristobyte-ui/button\";\nimport { Portal } from \"@aristobyte-ui/utils\";\n\ntype PositionType = {\n top: 0;\n left: 0;\n width: 0;\n};\n\nexport interface IDropdown {\n children:\n | React.ReactElement<IDropdownOption>\n | React.ReactElement<IDropdownOption>[];\n value: string;\n button?: Omit<IButton, \"children\" | \"dangerouslySetInnerHTML\">;\n variant?:\n | \"default\"\n | \"primary\"\n | \"secondary\"\n | \"success\"\n | \"error\"\n | \"warning\";\n appearance?:\n | \"solid\"\n | \"outline\"\n | \"outline-dashed\"\n | \"no-outline\"\n | \"glowing\";\n onChange?: (newValue: string) => void;\n initiallyOpened?: boolean;\n choice?: \"multiple\" | \"single\";\n placeholder?: string;\n disabled?: boolean;\n className?: string;\n style?: React.CSSProperties;\n}\n\nexport const Dropdown: React.FC<IDropdown> = ({\n children,\n value,\n onChange,\n appearance = \"outline\",\n variant = \"default\",\n placeholder = \"Select\",\n choice = \"single\",\n className = \"\",\n initiallyOpened = false,\n disabled = false,\n button = {},\n style = {},\n}) => {\n const [isOpened, setIsOpened] = React.useState<boolean>(initiallyOpened);\n const [selected, setSelected] = React.useState<string[]>(\n value ? [value] : []\n );\n const [position, setPosition] = React.useState<PositionType>({\n top: 0,\n left: 0,\n width: 0,\n });\n const [dropdownHeight, setDropdownHeight] = React.useState(0);\n const [buttonHeight, setButtonHeight] = React.useState(0);\n const buttonRef = React.useRef<HTMLButtonElement>(null);\n const boxRef = React.useRef<HTMLDivElement>(null);\n const uniqueId = React.useId();\n\n React.useLayoutEffect(() => {\n if (!isOpened) {\n return;\n }\n\n if (boxRef.current) {\n setDropdownHeight(boxRef.current.getBoundingClientRect().height);\n }\n\n if (buttonRef.current) {\n setButtonHeight(buttonRef.current.getBoundingClientRect().height);\n }\n }, [isOpened]);\n\n const options = React.Children.toArray(children).filter(\n (child): child is React.ReactElement<IDropdownOption> =>\n React.isValidElement(child) && child.type === DropdownOption\n );\n\n const isValidValue = () => {\n return !!options.find(({ props }) => props.value === value);\n };\n\n const handleChange = (currentRadioValue: string) => {\n onChange?.(currentRadioValue);\n if (!choice) {\n setSelected([currentRadioValue]);\n setIsOpened(false);\n return;\n }\n\n if (choice === \"single\") {\n setSelected([currentRadioValue]);\n }\n\n if (choice === \"multiple\") {\n setSelected((prev) =>\n prev.includes(currentRadioValue)\n ? prev.filter((v) => v !== currentRadioValue)\n : [...prev, currentRadioValue]\n );\n }\n };\n\n const handleToggle = (\n e: React.MouseEvent<HTMLButtonElement | HTMLAnchorElement, MouseEvent>\n ) => {\n if (disabled) return;\n\n const rect = buttonRef.current?.getBoundingClientRect();\n if (!rect) return;\n\n const spaceBelow = window.innerHeight - rect.bottom;\n const spaceAbove = rect.top;\n\n const shouldOpenUpwards =\n dropdownHeight > 0 &&\n spaceBelow < dropdownHeight &&\n spaceAbove > dropdownHeight;\n\n const finalPosition = {\n top: shouldOpenUpwards\n ? rect.top + window.scrollY - dropdownHeight - buttonHeight / 2\n : rect.top + window.scrollY + buttonHeight + 6,\n left: rect.left + window.scrollX,\n width: rect.width,\n } as PositionType;\n\n setPosition(finalPosition);\n\n if (button?.onClick) button.onClick(e);\n\n setIsOpened((prev) => !prev);\n };\n\n if (!isValidValue()) {\n throw new Error(\n 'The \"value\" prop did not match with any of the DropdownOption \"value\" prop'\n );\n }\n\n return (\n <>\n <div className={`dropdown ${className}`}>\n <Button\n onClick={handleToggle}\n className={`${\"dropdown__button\"} ${button?.className || \"\"}`}\n appearance={button?.appearance || appearance}\n variant={button?.variant || variant}\n disabled={button?.disabled || disabled}\n {...{ ref: buttonRef }}\n >\n {placeholder}\n </Button>\n </div>\n\n <Portal>\n <AnimatePresence>\n {isOpened && (\n <div\n className={`dropdown__box dropdown__box-variant--${variant}`}\n style={style}\n >\n <motion.div\n className={\"dropdown__box-overlay\"}\n initial={{ opacity: 0 }}\n animate={{ opacity: 1 }}\n exit={{ opacity: 0 }}\n transition={{ duration: 0.3, ease: \"easeIn\" }}\n onClick={() => setIsOpened(false)}\n />\n <motion.div\n ref={boxRef}\n className={\"dropdown__box-options\"}\n initial={{ opacity: 0, y: 20, scale: 0.95 }}\n animate={{ opacity: 1, y: 0, scale: 1 }}\n exit={{ opacity: 0, y: 20, scale: 0.95 }}\n transition={{ duration: 0.2, ease: \"easeIn\" }}\n style={{\n top: position.top,\n left: position.left,\n width: position.width,\n }}\n >\n {options.map(({ props }) => (\n <DropdownOption\n {...props}\n variant={variant}\n appearance={appearance}\n key={`${props.value}-${uniqueId}`}\n selectedValues={selected}\n onChange={() => handleChange(props.value)}\n />\n ))}\n </motion.div>\n </div>\n )}\n </AnimatePresence>\n </Portal>\n </>\n );\n};\n","import * as React from \"react\";\n\nimport { Icons } from \"@aristobyte-ui/utils\";\n\nexport interface IDropdownOption {\n variant?:\n | \"default\"\n | \"primary\"\n | \"secondary\"\n | \"success\"\n | \"error\"\n | \"warning\";\n appearance?:\n | \"solid\"\n | \"outline\"\n | \"outline-dashed\"\n | \"no-outline\"\n | \"glowing\";\n children: string;\n value: string;\n onChange?: () => void;\n selectedValues?: string[];\n description?: string;\n icon?: string;\n disabled?: boolean;\n choice?: \"multiple\" | \"single\";\n style?: React.CSSProperties;\n}\n\nexport const DropdownOption: React.FC<IDropdownOption> = ({\n variant,\n children,\n value,\n selectedValues,\n onChange,\n // icon,\n description,\n disabled,\n style = {},\n}) => {\n const uniqueId = React.useId();\n return (\n <button\n style={style}\n key={uniqueId}\n disabled={disabled}\n className={`dropdown-option dropdown-option-variant--${variant} ${disabled ? \"dropdown-option--disabled\" : \"\"}`}\n onClick={onChange}\n >\n <div className={\"dropdown-option__content\"}>\n <h3 className={\"dropdown-option__title\"}>{children}</h3>\n <p className={\"dropdown-option__description\"}>{description}</p>\n </div>\n <div\n className={`dropdown-option__tick ${selectedValues?.includes(value) ? \"dropdown-option__tick--active\" : \"\"}`}\n >\n <Icons.Success size={18} />\n </div>\n </button>\n );\n};\n"],"mappings":"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","names":["React","import_utils","import_jsx_runtime"]}
package/dist/index.mjs CHANGED
@@ -1,5 +1,4 @@
1
1
  "use client";
2
- import "./index.css";
3
2
 
4
3
  // components/Dropdown/index.tsx
5
4
  import * as React2 from "react";
@@ -7,24 +6,6 @@ import { AnimatePresence, motion } from "framer-motion";
7
6
 
8
7
  // components/DropdownOption/index.tsx
9
8
  import * as React from "react";
10
-
11
- // components/DropdownOption/DropdownOption.module.scss
12
- var DropdownOption_module_default = {
13
- "dropdown-option": "DropdownOption_module_dropdown-option",
14
- "dropdown-option-variant--default": "DropdownOption_module_dropdown-option-variant--default",
15
- "dropdown-option-variant--primary": "DropdownOption_module_dropdown-option-variant--primary",
16
- "dropdown-option-variant--secondary": "DropdownOption_module_dropdown-option-variant--secondary",
17
- "dropdown-option-variant--warning": "DropdownOption_module_dropdown-option-variant--warning",
18
- "dropdown-option-variant--error": "DropdownOption_module_dropdown-option-variant--error",
19
- "dropdown-option-variant--success": "DropdownOption_module_dropdown-option-variant--success",
20
- "dropdown-option--disabled": "DropdownOption_module_dropdown-option--disabled",
21
- "dropdown-option__title": "DropdownOption_module_dropdown-option__title",
22
- "dropdown-option__description": "DropdownOption_module_dropdown-option__description",
23
- "dropdown-option__tick": "DropdownOption_module_dropdown-option__tick",
24
- "dropdown-option__tick--active": "DropdownOption_module_dropdown-option__tick--active"
25
- };
26
-
27
- // components/DropdownOption/index.tsx
28
9
  import { Icons } from "@aristobyte-ui/utils";
29
10
  import { jsx, jsxs } from "react/jsx-runtime";
30
11
  var DropdownOption = ({
@@ -44,17 +25,17 @@ var DropdownOption = ({
44
25
  {
45
26
  style,
46
27
  disabled,
47
- className: `${DropdownOption_module_default["dropdown-option"]} ${DropdownOption_module_default[`dropdown-option-variant--${variant}`]} ${disabled ? DropdownOption_module_default["dropdown-option--disabled"] : ""}`,
28
+ className: `dropdown-option dropdown-option-variant--${variant} ${disabled ? "dropdown-option--disabled" : ""}`,
48
29
  onClick: onChange,
49
30
  children: [
50
- /* @__PURE__ */ jsxs("div", { className: DropdownOption_module_default["dropdown-option__content"], children: [
51
- /* @__PURE__ */ jsx("h3", { className: DropdownOption_module_default["dropdown-option__title"], children }),
52
- /* @__PURE__ */ jsx("p", { className: DropdownOption_module_default["dropdown-option__description"], children: description })
31
+ /* @__PURE__ */ jsxs("div", { className: "dropdown-option__content", children: [
32
+ /* @__PURE__ */ jsx("h3", { className: "dropdown-option__title", children }),
33
+ /* @__PURE__ */ jsx("p", { className: "dropdown-option__description", children: description })
53
34
  ] }),
54
35
  /* @__PURE__ */ jsx(
55
36
  "div",
56
37
  {
57
- className: `${DropdownOption_module_default["dropdown-option__tick"]} ${(selectedValues == null ? void 0 : selectedValues.includes(value)) ? DropdownOption_module_default["dropdown-option__tick--active"] : ""}`,
38
+ className: `dropdown-option__tick ${(selectedValues == null ? void 0 : selectedValues.includes(value)) ? "dropdown-option__tick--active" : ""}`,
58
39
  children: /* @__PURE__ */ jsx(Icons.Success, { size: 18 })
59
40
  }
60
41
  )
@@ -67,22 +48,6 @@ var DropdownOption = ({
67
48
  // components/Dropdown/index.tsx
68
49
  import { Button } from "@aristobyte-ui/button";
69
50
  import { Portal } from "@aristobyte-ui/utils";
70
-
71
- // components/Dropdown/Dropdown.module.scss
72
- var Dropdown_module_default = {
73
- dropdown: "Dropdown_module_dropdown",
74
- dropdown__button: "Dropdown_module_dropdown__button",
75
- "dropdown__box-variant--default": "Dropdown_module_dropdown__box-variant--default",
76
- "dropdown__box-options": "Dropdown_module_dropdown__box-options",
77
- "dropdown__box-variant--primary": "Dropdown_module_dropdown__box-variant--primary",
78
- "dropdown__box-variant--secondary": "Dropdown_module_dropdown__box-variant--secondary",
79
- "dropdown__box-variant--warning": "Dropdown_module_dropdown__box-variant--warning",
80
- "dropdown__box-variant--error": "Dropdown_module_dropdown__box-variant--error",
81
- "dropdown__box-variant--success": "Dropdown_module_dropdown__box-variant--success",
82
- "dropdown__box-overlay": "Dropdown_module_dropdown__box-overlay"
83
- };
84
-
85
- // components/Dropdown/index.tsx
86
51
  import { Fragment, jsx as jsx2, jsxs as jsxs2 } from "react/jsx-runtime";
87
52
  import { createElement } from "react";
88
53
  var Dropdown = ({
@@ -169,11 +134,11 @@ var Dropdown = ({
169
134
  );
170
135
  }
171
136
  return /* @__PURE__ */ jsxs2(Fragment, { children: [
172
- /* @__PURE__ */ jsx2("div", { className: `${Dropdown_module_default["dropdown"]} ${className}`, children: /* @__PURE__ */ jsx2(
137
+ /* @__PURE__ */ jsx2("div", { className: `dropdown ${className}`, children: /* @__PURE__ */ jsx2(
173
138
  Button,
174
139
  {
175
140
  onClick: handleToggle,
176
- className: `${Dropdown_module_default["dropdown__button"]} ${(button == null ? void 0 : button.className) || ""}`,
141
+ className: `${"dropdown__button"} ${(button == null ? void 0 : button.className) || ""}`,
177
142
  appearance: (button == null ? void 0 : button.appearance) || appearance,
178
143
  variant: (button == null ? void 0 : button.variant) || variant,
179
144
  disabled: (button == null ? void 0 : button.disabled) || disabled,
@@ -184,13 +149,13 @@ var Dropdown = ({
184
149
  /* @__PURE__ */ jsx2(Portal, { children: /* @__PURE__ */ jsx2(AnimatePresence, { children: isOpened && /* @__PURE__ */ jsxs2(
185
150
  "div",
186
151
  {
187
- className: `${Dropdown_module_default["dropdown__box"]} ${Dropdown_module_default[`dropdown__box-variant--${variant}`]}`,
152
+ className: `dropdown__box dropdown__box-variant--${variant}`,
188
153
  style,
189
154
  children: [
190
155
  /* @__PURE__ */ jsx2(
191
156
  motion.div,
192
157
  {
193
- className: Dropdown_module_default["dropdown__box-overlay"],
158
+ className: "dropdown__box-overlay",
194
159
  initial: { opacity: 0 },
195
160
  animate: { opacity: 1 },
196
161
  exit: { opacity: 0 },
@@ -202,7 +167,7 @@ var Dropdown = ({
202
167
  motion.div,
203
168
  {
204
169
  ref: boxRef,
205
- className: Dropdown_module_default["dropdown__box-options"],
170
+ className: "dropdown__box-options",
206
171
  initial: { opacity: 0, y: 20, scale: 0.95 },
207
172
  animate: { opacity: 1, y: 0, scale: 1 },
208
173
  exit: { opacity: 0, y: 20, scale: 0.95 },
@@ -1 +1 @@
1
- {"version":3,"sources":["../components/Dropdown/index.tsx","../components/DropdownOption/index.tsx","../components/DropdownOption/DropdownOption.module.scss","../components/Dropdown/Dropdown.module.scss"],"sourcesContent":["\"use client\";\n\nimport * as React from \"react\";\nimport { AnimatePresence, motion } from \"framer-motion\";\n\nimport { DropdownOption, type IDropdownOption } from \"../DropdownOption\";\nimport { Button, type IButton } from \"@aristobyte-ui/button\";\nimport { Portal } from \"@aristobyte-ui/utils\";\n\nimport styles from \"./Dropdown.module.scss\";\n\ntype PositionType = {\n top: 0;\n left: 0;\n width: 0;\n};\n\nexport interface IDropdown {\n children:\n | React.ReactElement<IDropdownOption>\n | React.ReactElement<IDropdownOption>[];\n value: string;\n button?: Omit<IButton, \"children\" | \"dangerouslySetInnerHTML\">;\n variant?:\n | \"default\"\n | \"primary\"\n | \"secondary\"\n | \"success\"\n | \"error\"\n | \"warning\";\n appearance?:\n | \"solid\"\n | \"outline\"\n | \"outline-dashed\"\n | \"no-outline\"\n | \"glowing\";\n onChange?: (newValue: string) => void;\n initiallyOpened?: boolean;\n choice?: \"multiple\" | \"single\";\n placeholder?: string;\n disabled?: boolean;\n className?: string;\n style?: React.CSSProperties;\n}\n\nexport const Dropdown: React.FC<IDropdown> = ({\n children,\n value,\n onChange,\n appearance = \"outline\",\n variant = \"default\",\n placeholder = \"Select\",\n choice = \"single\",\n className = \"\",\n initiallyOpened = false,\n disabled = false,\n button = {},\n style = {},\n}) => {\n const [isOpened, setIsOpened] = React.useState<boolean>(initiallyOpened);\n const [selected, setSelected] = React.useState<string[]>(\n value ? [value] : []\n );\n const [position, setPosition] = React.useState<PositionType>({\n top: 0,\n left: 0,\n width: 0,\n });\n const [dropdownHeight, setDropdownHeight] = React.useState(0);\n const [buttonHeight, setButtonHeight] = React.useState(0);\n const buttonRef = React.useRef<HTMLButtonElement>(null);\n const boxRef = React.useRef<HTMLDivElement>(null);\n const uniqueId = React.useId();\n\n React.useLayoutEffect(() => {\n if (!isOpened) {\n return;\n }\n\n if (boxRef.current) {\n setDropdownHeight(boxRef.current.getBoundingClientRect().height);\n }\n\n if (buttonRef.current) {\n setButtonHeight(buttonRef.current.getBoundingClientRect().height);\n }\n }, [isOpened]);\n\n const options = React.Children.toArray(children).filter(\n (child): child is React.ReactElement<IDropdownOption> =>\n React.isValidElement(child) && child.type === DropdownOption\n );\n\n const isValidValue = () => {\n return !!options.find(({ props }) => props.value === value);\n };\n\n const handleChange = (currentRadioValue: string) => {\n onChange?.(currentRadioValue);\n if (!choice) {\n setSelected([currentRadioValue]);\n setIsOpened(false);\n return;\n }\n\n if (choice === \"single\") {\n setSelected([currentRadioValue]);\n }\n\n if (choice === \"multiple\") {\n setSelected((prev) =>\n prev.includes(currentRadioValue)\n ? prev.filter((v) => v !== currentRadioValue)\n : [...prev, currentRadioValue]\n );\n }\n };\n\n const handleToggle = (\n e: React.MouseEvent<HTMLButtonElement | HTMLAnchorElement, MouseEvent>\n ) => {\n if (disabled) return;\n\n const rect = buttonRef.current?.getBoundingClientRect();\n if (!rect) return;\n\n const spaceBelow = window.innerHeight - rect.bottom;\n const spaceAbove = rect.top;\n\n const shouldOpenUpwards =\n dropdownHeight > 0 &&\n spaceBelow < dropdownHeight &&\n spaceAbove > dropdownHeight;\n\n const finalPosition = {\n top: shouldOpenUpwards\n ? rect.top + window.scrollY - dropdownHeight - buttonHeight / 2\n : rect.top + window.scrollY + buttonHeight + 6,\n left: rect.left + window.scrollX,\n width: rect.width,\n } as PositionType;\n\n setPosition(finalPosition);\n\n if (button?.onClick) button.onClick(e);\n\n setIsOpened((prev) => !prev);\n };\n\n if (!isValidValue()) {\n throw new Error(\n 'The \"value\" prop did not match with any of the DropdownOption \"value\" prop'\n );\n }\n\n return (\n <>\n <div className={`${styles[\"dropdown\"]} ${className}`}>\n <Button\n onClick={handleToggle}\n className={`${styles[\"dropdown__button\"]} ${button?.className || \"\"}`}\n appearance={button?.appearance || appearance}\n variant={button?.variant || variant}\n disabled={button?.disabled || disabled}\n {...{ ref: buttonRef }}\n >\n {placeholder}\n </Button>\n </div>\n\n <Portal>\n <AnimatePresence>\n {isOpened && (\n <div\n className={`${styles[\"dropdown__box\"]} ${styles[`dropdown__box-variant--${variant}`]}`}\n style={style}\n >\n <motion.div\n className={styles[\"dropdown__box-overlay\"]}\n initial={{ opacity: 0 }}\n animate={{ opacity: 1 }}\n exit={{ opacity: 0 }}\n transition={{ duration: 0.3, ease: \"easeIn\" }}\n onClick={() => setIsOpened(false)}\n />\n <motion.div\n ref={boxRef}\n className={styles[\"dropdown__box-options\"]}\n initial={{ opacity: 0, y: 20, scale: 0.95 }}\n animate={{ opacity: 1, y: 0, scale: 1 }}\n exit={{ opacity: 0, y: 20, scale: 0.95 }}\n transition={{ duration: 0.2, ease: \"easeIn\" }}\n style={{\n top: position.top,\n left: position.left,\n width: position.width,\n }}\n >\n {options.map(({ props }) => (\n <DropdownOption\n {...props}\n variant={variant}\n appearance={appearance}\n key={`${props.value}-${uniqueId}`}\n selectedValues={selected}\n onChange={() => handleChange(props.value)}\n />\n ))}\n </motion.div>\n </div>\n )}\n </AnimatePresence>\n </Portal>\n </>\n );\n};\n","import * as React from \"react\";\n\nimport styles from \"./DropdownOption.module.scss\";\nimport { Icons } from \"@aristobyte-ui/utils\";\n\nexport interface IDropdownOption {\n variant?:\n | \"default\"\n | \"primary\"\n | \"secondary\"\n | \"success\"\n | \"error\"\n | \"warning\";\n appearance?:\n | \"solid\"\n | \"outline\"\n | \"outline-dashed\"\n | \"no-outline\"\n | \"glowing\";\n children: string;\n value: string;\n onChange?: () => void;\n selectedValues?: string[];\n description?: string;\n icon?: string;\n disabled?: boolean;\n choice?: \"multiple\" | \"single\";\n style?: React.CSSProperties;\n}\n\nexport const DropdownOption: React.FC<IDropdownOption> = ({\n variant,\n children,\n value,\n selectedValues,\n onChange,\n // icon,\n description,\n disabled,\n style = {},\n}) => {\n const uniqueId = React.useId();\n return (\n <button\n style={style}\n key={uniqueId}\n disabled={disabled}\n className={`${styles[\"dropdown-option\"]} ${styles[`dropdown-option-variant--${variant}`]} ${disabled ? styles[\"dropdown-option--disabled\"] : \"\"}`}\n onClick={onChange}\n >\n <div className={styles[\"dropdown-option__content\"]}>\n <h3 className={styles[\"dropdown-option__title\"]}>{children}</h3>\n <p className={styles[\"dropdown-option__description\"]}>{description}</p>\n </div>\n <div\n className={`${styles[\"dropdown-option__tick\"]} ${selectedValues?.includes(value) ? styles[\"dropdown-option__tick--active\"] : \"\"}`}\n >\n <Icons.Success size={18} />\n </div>\n </button>\n );\n};\n",".dropdown-option {\n align-items: center;\n border-radius: 8px;\n color: #ffffff;\n display: flex;\n font-size: 14px;\n font-weight: 500;\n gap: 10px;\n padding: 10px 16px;\n text-align: left;\n transition: all 120ms ease-out;\n width: 100%;\n}\n.dropdown-option-variant--default:hover {\n background-color: #111827;\n}\n.dropdown-option-variant--primary:hover {\n background-color: #1d4ed8;\n}\n.dropdown-option-variant--secondary:hover {\n background-color: #4338ca;\n}\n.dropdown-option-variant--warning:hover {\n background-color: #b45309;\n}\n.dropdown-option-variant--error:hover {\n background-color: #b91c1c;\n}\n.dropdown-option-variant--success:hover {\n background-color: #15803d;\n}\n.dropdown-option--disabled, .dropdown-option--disabled:hover {\n background-color: rgba(31, 41, 55, 0.5);\n cursor: auto;\n opacity: 0.5;\n}\n.dropdown-option__title {\n color: #ffffff;\n}\n.dropdown-option__description {\n color: rgba(255, 255, 255, 0.6);\n}\n.dropdown-option__tick {\n color: rgba(255, 255, 255, 0.6);\n opacity: 0;\n transform: scale(0, 0.7) translate(0, 10px);\n transition: all 120ms ease-out;\n}\n.dropdown-option__tick--active {\n opacity: 1;\n transform: scale(1) translate(0);\n}\n/*# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VSb290IjoiL1VzZXJzL2RodW5hbnlhbi9hcmlzdG9ieXRlL2dpdGh1Yi9hcmlzdG9ieXRlLXVpL3BhY2thZ2VzL2Ryb3Bkb3duL2NvbXBvbmVudHMvRHJvcGRvd25PcHRpb24iLCJzb3VyY2VzIjpbIkRyb3Bkb3duT3B0aW9uLm1vZHVsZS5zY3NzIiwiLi4vLi4vLi4vLi4vbm9kZV9tb2R1bGVzL0BhcmlzdG9ieXRlLXVpL3V0aWxzL3N0eWxlcy9fc2V0dGluZ3Muc2NzcyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFFQTtFQUNFO0VBQ0E7RUFDQSxPQ2dCTTtFRGZOO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7O0FBR0U7RUFDRSxrQkMwQ0s7O0FEdkNQO0VBQ0Usa0JDZ0RLOztBRDdDUDtFQUNFLGtCQ3dETzs7QURyRFQ7RUFDRSxrQkNrRk07O0FEL0VSO0VBQ0Usa0JDMERJOztBRHZETjtFQUNFLGtCQ2dFTTs7QUQ1RFY7RUFFRSxrQkN5RXFCO0VEeEVyQjtFQUNBOztBQUdGO0VBQ0UsT0M1Qkk7O0FEK0JOO0VBQ0U7O0FBR0Y7RUFDRTtFQUNBO0VBQ0E7RUFDQTs7QUFFQTtFQUNFO0VBQ0EiLCJzb3VyY2VzQ29udGVudCI6WyJAdXNlIFwiQGFyaXN0b2J5dGUtdWkvdXRpbHMvc3R5bGVzL3NldHRpbmdzXCIgYXMgKjtcblxuLmRyb3Bkb3duLW9wdGlvbiB7XG4gIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gIGJvcmRlci1yYWRpdXM6IDhweDsgLy9UT0RPOiBjaGFuZ2UgdG8gZHluYW1pY1xuICBjb2xvcjogJHdoaXRlO1xuICBkaXNwbGF5OiBmbGV4O1xuICBmb250LXNpemU6IDE0cHg7XG4gIGZvbnQtd2VpZ2h0OiA1MDA7XG4gIGdhcDogMTBweDtcbiAgcGFkZGluZzogMTBweCAxNnB4O1xuICB0ZXh0LWFsaWduOiBsZWZ0O1xuICB0cmFuc2l0aW9uOiBhbGwgMTIwbXMgZWFzZS1vdXQ7XG4gIHdpZHRoOiAxMDAlO1xuXG4gICYtdmFyaWFudCB7XG4gICAgJi0tZGVmYXVsdDpob3ZlciB7XG4gICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkY29sb3ItZGVmYXVsdC1ob3ZlcjtcbiAgICB9XG5cbiAgICAmLS1wcmltYXJ5OmhvdmVyIHtcbiAgICAgIGJhY2tncm91bmQtY29sb3I6ICRjb2xvci1wcmltYXJ5LWhvdmVyO1xuICAgIH1cblxuICAgICYtLXNlY29uZGFyeTpob3ZlciB7XG4gICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkY29sb3Itc2Vjb25kYXJ5LWhvdmVyO1xuICAgIH1cblxuICAgICYtLXdhcm5pbmc6aG92ZXIge1xuICAgICAgYmFja2dyb3VuZC1jb2xvcjogJGNvbG9yLXdhcm5pbmctaG92ZXI7XG4gICAgfVxuXG4gICAgJi0tZXJyb3I6aG92ZXIge1xuICAgICAgYmFja2dyb3VuZC1jb2xvcjogJGNvbG9yLWVycm9yLWhvdmVyO1xuICAgIH1cblxuICAgICYtLXN1Y2Nlc3M6aG92ZXIge1xuICAgICAgYmFja2dyb3VuZC1jb2xvcjogJGNvbG9yLXN1Y2Nlc3MtaG92ZXI7XG4gICAgfVxuICB9XG5cbiAgJi0tZGlzYWJsZWQsXG4gICYtLWRpc2FibGVkOmhvdmVyIHtcbiAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkY29sb3ItZGVmYXVsdC1kaXNhYmxlZDtcbiAgICBjdXJzb3I6IGF1dG87XG4gICAgb3BhY2l0eTogMC41O1xuICB9XG5cbiAgJl9fdGl0bGUge1xuICAgIGNvbG9yOiAkd2hpdGU7XG4gIH1cblxuICAmX19kZXNjcmlwdGlvbiB7XG4gICAgY29sb3I6IHJnYmEoJHdoaXRlLCAwLjYpO1xuICB9XG5cbiAgJl9fdGljayB7XG4gICAgY29sb3I6IHJnYmEoJHdoaXRlLCAwLjYpO1xuICAgIG9wYWNpdHk6IDA7XG4gICAgdHJhbnNmb3JtOiBzY2FsZSgwLCAwLjcpIHRyYW5zbGF0ZSgwLCAxMHB4KTtcbiAgICB0cmFuc2l0aW9uOiBhbGwgMTIwbXMgZWFzZS1vdXQ7XG5cbiAgICAmLS1hY3RpdmUge1xuICAgICAgb3BhY2l0eTogMTtcbiAgICAgIHRyYW5zZm9ybTogc2NhbGUoMSkgdHJhbnNsYXRlKDApO1xuICAgIH1cbiAgfVxufVxuIiwiLy8gPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PSAvL1xuLy8gICAgICAgIEFyaXN0b0J5dGUgVUkgLSBTdHlsZSBTZXR0aW5ncyAgICAgICAvL1xuLy8gPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PSAvL1xuXG4vLyA9PT0gRGVzaWduIFRva2VucyDigJQgQ29sb3IgUGFsZXR0ZSA9PT0gLy9cbi8vIExvZ29cbiRsb2dvLWNvbG9yLTE6ICNmZmVlMjc7XG4kbG9nby1jb2xvci0yOiAjZmVjODAwO1xuJGxvZ28tY29sb3ItMzogI2YxOGUzNTtcbiRsb2dvLWNvbG9yLTQ6ICNlOTVmMzI7XG4kbG9nby1jb2xvci01OiAjZTIzMTJkO1xuJGxvZ28tZ3JhZGllbnQ6IGxpbmVhci1ncmFkaWVudChcbiAgOTBkZWcsXG4gICRsb2dvLWNvbG9yLTEsXG4gICRsb2dvLWNvbG9yLTIsXG4gICRsb2dvLWNvbG9yLTMsXG4gICRsb2dvLWNvbG9yLTQsXG4gICRsb2dvLWNvbG9yLTVcbik7XG5cbi8vIEJhc2VcbiR3aGl0ZTogI2ZmZmZmZjtcbiR3aGl0ZS1ob3ZlcjogI2RkZGRkZDtcbiRibGFjazogIzAwMDAwMDtcbiRibGFjay1ob3ZlcjogIzIyMjIyMjtcbiR0cmFuc3BhcmVudDogdHJhbnNwYXJlbnQ7XG5cbi8vID09PSBCbGFjayBUcmFuc3BhcmVudCBTY2FsZSA9PT0gLy9cbiRibGFjay10cmFuc3BhcmVudC0xMDA6IHJnYmEoMCwgMCwgMCwgMC4xKTtcbiRibGFjay10cmFuc3BhcmVudC0yMDA6IHJnYmEoMCwgMCwgMCwgMC4yKTtcbiRibGFjay10cmFuc3BhcmVudC0zMDA6IHJnYmEoMCwgMCwgMCwgMC4zKTtcbiRibGFjay10cmFuc3BhcmVudC00MDA6IHJnYmEoMCwgMCwgMCwgMC40KTtcbiRibGFjay10cmFuc3BhcmVudC01MDA6IHJnYmEoMCwgMCwgMCwgMC41KTtcbiRibGFjay10cmFuc3BhcmVudC02MDA6IHJnYmEoMCwgMCwgMCwgMC42KTtcbiRibGFjay10cmFuc3BhcmVudC03MDA6IHJnYmEoMCwgMCwgMCwgMC43KTtcbiRibGFjay10cmFuc3BhcmVudC04MDA6IHJnYmEoMCwgMCwgMCwgMC44KTtcbiRibGFjay10cmFuc3BhcmVudC05MDA6IHJnYmEoMCwgMCwgMCwgMC45KTtcblxuLy8gPT09IEJsYWNrIFRyYW5zcGFyZW50IFNjYWxlID09PSAvL1xuJHdoaXRlLXRyYW5zcGFyZW50LTEwMDogcmdiYSgyNTUsIDI1NSwgMjU1LCAwLjEpO1xuJHdoaXRlLXRyYW5zcGFyZW50LTIwMDogcmdiYSgyNTUsIDI1NSwgMjU1LCAwLjIpO1xuJHdoaXRlLXRyYW5zcGFyZW50LTMwMDogcmdiYSgyNTUsIDI1NSwgMjU1LCAwLjMpO1xuJHdoaXRlLXRyYW5zcGFyZW50LTQwMDogcmdiYSgyNTUsIDI1NSwgMjU1LCAwLjQpO1xuJHdoaXRlLXRyYW5zcGFyZW50LTUwMDogcmdiYSgyNTUsIDI1NSwgMjU1LCAwLjUpO1xuJHdoaXRlLXRyYW5zcGFyZW50LTYwMDogcmdiYSgyNTUsIDI1NSwgMjU1LCAwLjYpO1xuJHdoaXRlLXRyYW5zcGFyZW50LTcwMDogcmdiYSgyNTUsIDI1NSwgMjU1LCAwLjcpO1xuJHdoaXRlLXRyYW5zcGFyZW50LTgwMDogcmdiYSgyNTUsIDI1NSwgMjU1LCAwLjgpO1xuJHdoaXRlLXRyYW5zcGFyZW50LTkwMDogcmdiYSgyNTUsIDI1NSwgMjU1LCAwLjkpO1xuXG4vLyA9PT0gTmV1dHJhbCBTY2FsZSAoR3JleSkgPT09IC8vXG4kZ3JleS01MDogI2Y5ZmFmYjtcbiRncmV5LTEwMDogI2YzZjRmNjtcbiRncmV5LTIwMDogI2U1ZTdlYjtcbiRncmV5LTMwMDogI2QxZDVkYjtcbiRncmV5LTQwMDogIzljYTNhZjtcbiRncmV5LTUwMDogIzZiNzI4MDtcbiRncmV5LTYwMDogIzRiNTU2MztcbiRncmV5LTcwMDogIzM3NDE1MTtcbiRncmV5LTgwMDogIzFmMjkzNztcbiRncmV5LTkwMDogIzExMTgyNztcblxuLy8gPT09IFByaW1hcnkgU2NhbGUgKEJsdWUpID09PSAvL1xuJGJsdWUtNTA6ICNlZmY2ZmY7XG4kYmx1ZS0xMDA6ICNkYmVhZmU7XG4kYmx1ZS0yMDA6ICNiZmRiZmU7XG4kYmx1ZS0zMDA6ICM5M2M1ZmQ7XG4kYmx1ZS00MDA6ICM2MGE1ZmE7XG4kYmx1ZS01MDA6ICMzYjgyZjY7XG4kYmx1ZS02MDA6ICMyNTYzZWI7IC8vIE1haW5cbiRibHVlLTcwMDogIzFkNGVkODsgLy8gSG92ZXJcbiRibHVlLTgwMDogIzFlNDBhZjtcbiRibHVlLTkwMDogIzFlM2E4YTtcblxuLy8gPT09IFNlY29uZGFyeSBTY2FsZSAoSW5kaWdvKSA9PT0gLy9cbiRpbmRpZ28tNTA6ICNlZWYyZmY7XG4kaW5kaWdvLTEwMDogI2UwZTdmZjtcbiRpbmRpZ28tMjAwOiAjYzdkMmZlO1xuJGluZGlnby0zMDA6ICNhNWI0ZmM7XG4kaW5kaWdvLTQwMDogIzgxOGNmODtcbiRpbmRpZ28tNTAwOiAjNjM2NmYxO1xuJGluZGlnby02MDA6ICM0ZjQ2ZTU7IC8vIE1haW5cbiRpbmRpZ28tNzAwOiAjNDMzOGNhOyAvLyBIb3ZlclxuXG4vLyA9PT0gRXJyb3IgU2NhbGUgKFJlZCkgPT09IC8vXG4kcmVkLTUwOiAjZmVmMmYyO1xuJHJlZC0xMDA6ICNmZWUyZTI7XG4kcmVkLTIwMDogI2ZlY2FjYTtcbiRyZWQtMzAwOiAjZmNhNWE1O1xuJHJlZC00MDA6ICNmODcxNzE7XG4kcmVkLTUwMDogI2VmNDQ0NDtcbiRyZWQtNjAwOiAjZGMyNjI2OyAvLyBNYWluXG4kcmVkLTcwMDogI2I5MWMxYzsgLy8gSG92ZXJcblxuLy8gPT09IFN1Y2Nlc3MgU2NhbGUgKEdyZWVuKSA9PT0gLy9cbiRncmVlbi01MDogI2YwZmRmNDtcbiRncmVlbi0xMDA6ICNkY2ZjZTc7XG4kZ3JlZW4tMjAwOiAjYmJmN2QwO1xuJGdyZWVuLTMwMDogIzg2ZWZhYztcbiRncmVlbi00MDA6ICM0YWRlODA7XG4kZ3JlZW4tNTAwOiAjMjJjNTVlO1xuJGdyZWVuLTYwMDogIzE2YTM0YTsgLy8gTWFpblxuJGdyZWVuLTcwMDogIzE1ODAzZDsgLy8gSG92ZXJcblxuLy8gPT09IFdhcm5pbmcgU2NhbGUgKEFtYmVyKSA9PT0gLy9cbiRhbWJlci01MDogI2ZmZmJlYjtcbiRhbWJlci0xMDA6ICNmZWYzYzc7XG4kYW1iZXItMjAwOiAjZmRlNjhhO1xuJGFtYmVyLTMwMDogI2ZjZDM0ZDtcbiRhbWJlci00MDA6ICNmYmJmMjQ7XG4kYW1iZXItNTAwOiAjZjU5ZTBiO1xuJGFtYmVyLTYwMDogI2Q5NzcwNjsgLy8gTWFpblxuJGFtYmVyLTcwMDogI2I0NTMwOTsgLy8gSG92ZXJcblxuLy8gPT09IFNlbWFudGljIFRva2VucyA9PT0gLy9cbiRjb2xvci1kZWZhdWx0OiAkZ3JleS04MDA7XG4kY29sb3ItZGVmYXVsdC1ob3ZlcjogJGdyZXktOTAwO1xuJGNvbG9yLWRlZmF1bHQtZGlzYWJsZWQ6IHJnYmEoJGNvbG9yLWRlZmF1bHQsIDAuNSk7XG5cbiRjb2xvci1wcmltYXJ5OiAkYmx1ZS02MDA7XG4kY29sb3ItcHJpbWFyeS1ob3ZlcjogJGJsdWUtNzAwO1xuJGNvbG9yLXByaW1hcnktZGlzYWJsZWQ6IHJnYmEoJGNvbG9yLXByaW1hcnksIDAuNSk7XG5cbiRjb2xvci1zZWNvbmRhcnk6ICRpbmRpZ28tNjAwO1xuJGNvbG9yLXNlY29uZGFyeS1ob3ZlcjogJGluZGlnby03MDA7XG4kY29sb3Itc2Vjb25kYXJ5LWRpc2FibGVkOiByZ2JhKCRjb2xvci1zZWNvbmRhcnksIDAuNSk7XG5cbiRjb2xvci1lcnJvcjogJHJlZC02MDA7XG4kY29sb3ItZXJyb3ItaG92ZXI6ICRyZWQtNzAwO1xuJGNvbG9yLWVycm9yLWRpc2FibGVkOiByZ2JhKCRjb2xvci1lcnJvciwgMC41KTtcblxuJGNvbG9yLXN1Y2Nlc3M6ICRncmVlbi02MDA7XG4kY29sb3Itc3VjY2Vzcy1ob3ZlcjogJGdyZWVuLTcwMDtcbiRjb2xvci1zdWNjZXNzLWRpc2FibGVkOiByZ2JhKCRjb2xvci1zdWNjZXNzLCAwLjUpO1xuXG4kY29sb3Itd2FybmluZzogJGFtYmVyLTYwMDtcbiRjb2xvci13YXJuaW5nLWhvdmVyOiAkYW1iZXItNzAwO1xuJGNvbG9yLXdhcm5pbmctZGlzYWJsZWQ6IHJnYmEoJGNvbG9yLXdhcm5pbmcsIDAuNSk7XG5cbiR0ZXh0LWNvbG9yLXdoaXRlOiAkd2hpdGU7XG4kdGV4dC1jb2xvci1ibGFjazogJGJsYWNrO1xuJHRleHQtY29sb3Itd2hpdGUtZGlzYWJsZWQ6IHJnYmEoJHdoaXRlLCAwLjUpO1xuJHRleHQtY29sb3ItYmxhY2stZGlzYWJsZWQ6IHJnYmEoJGJsYWNrLCAwLjUpO1xuXG4kdGl0bGUtY29sb3ItZGFyazogJHdoaXRlO1xuJHN1YnRpdGxlLWNvbG9yLWRhcms6ICM5OWExYWY7XG4kZGVzY3JpcHRpb24tY29sb3ItZGFyazogI2QxZDVkYztcbiRpY29uLWNvbG9yLWRhcms6ICM5OWExYWY7XG5cbi8vID09PSBTaGFkb3dzID09PSAvL1xuLy9AVE9ETzogQFNIQURPV1xuJHNoYWRvdy1zbTogMCAxcHggMnB4IDAgcmdiYSgkYmxhY2ssIDAuMDUpO1xuJHNoYWRvdy1tZDpcbiAgMCA0cHggNnB4IC0xcHggcmdiYSgkYmxhY2ssIDAuMSksXG4gIDAgMnB4IDRweCAtMXB4IHJnYmEoJGJsYWNrLCAwLjA2KTtcbiRzaGFkb3ctbGc6XG4gIDAgMTBweCAxNXB4IC0zcHggcmdiYSgkYmxhY2ssIDAuMSksXG4gIDAgNHB4IDZweCAtMnB4IHJnYmEoJGJsYWNrLCAwLjA1KTtcblxuLy8gPT09IEZvbnQgZmFtaWxpZXMgPT09IC8vXG4kZm9udC1mYW1pbHktc2FuczogXCJJbnRlclwiLCBzYW5zLXNlcmlmO1xuJGZvbnQtZmFtaWx5LXNlcmlmOiBcIkdlb3JnaWFcIiwgc2VyaWY7XG4kZm9udC1mYW1pbHktbW9ubzogXCJGaXJhIENvZGVcIiwgbW9ub3NwYWNlO1xuXG4vLyA9PT0gRm9udCB3ZWlnaHRzID09PSAvL1xuJGZvbnQtd2VpZ2h0LXJlZ3VsYXI6IDQwMDtcbiRmb250LXdlaWdodC1tZWRpdW06IDUwMDtcbiRmb250LXdlaWdodC1zZW1pYm9sZDogNjAwO1xuJGZvbnQtd2VpZ2h0LWJvbGQ6IDcwMDtcblxuLy8gPT09IExpbmUgaGVpZ2h0cyA9PT0gLy9cbiRsaW5lLWhlaWdodC10aWdodDogMS4yO1xuJGxpbmUtaGVpZ2h0LXNudWc6IDEuMzc1O1xuJGxpbmUtaGVpZ2h0LW5vcm1hbDogMS41O1xuJGxpbmUtaGVpZ2h0LWxvb3NlOiAxLjYyNTtcblxuLy8gPT09IEZvbnQgU2l6ZXMg4oCUIFNlbWFudGljIFRva2VucyA9PT0gLy9cblxuLy8gPT09IFRpdGxlcyA9PT0gLy9cbiRmb250LXNpemUtaGVybzogM3JlbTsgLy8gNDhweFxuJGZvbnQtc2l6ZS10aXRsZS0xOiAyLjI1cmVtOyAvLyAzNnB4XG4kZm9udC1zaXplLXRpdGxlLTI6IDEuODc1cmVtOyAvLyAzMHB4XG4kZm9udC1zaXplLXRpdGxlLTM6IDEuNXJlbTsgLy8gMjRweFxuXG4vLyA9PT0gU3VidGl0bGVzID09PSAvL1xuJGZvbnQtc2l6ZS1zdWJ0aXRsZS0xOiAxLjI1cmVtOyAvLyAyMHB4XG4kZm9udC1zaXplLXN1YnRpdGxlLTI6IDEuMTI1cmVtOyAvLyAxOHB4XG5cbi8vID09PSBCb2R5IHRleHQgPT09IC8vXG4kZm9udC1zaXplLWJvZHktbGc6IDFyZW07IC8vIDE2cHhcbiRmb250LXNpemUtYm9keS1tZDogMC45Mzc1cmVtOyAvLyAxNXB4XG4kZm9udC1zaXplLWJvZHktc206IDAuODc1cmVtOyAvLyAxNHB4XG5cbi8vID09PSBDYXB0aW9ucyAvIERlc2NyaXB0aW9ucyA9PT0gLy9cbiRmb250LXNpemUtY2FwdGlvbjogMC43NXJlbTsgLy8gMTJweFxuJGZvbnQtc2l6ZS1mb290bm90ZTogMC42ODc1cmVtOyAvLyAxMXB4XG5cbi8vID09PSBCdXR0b25zID09PSAvL1xuJGZvbnQtc2l6ZS1idXR0b24tbGc6IDFyZW07IC8vIDE2cHhcbiRmb250LXNpemUtYnV0dG9uLW1kOiAwLjg3NXJlbTsgLy8gMTRweFxuJGZvbnQtc2l6ZS1idXR0b24tc206IDAuNzVyZW07IC8vIDEycHhcblxuLy8gPT09IEFuaW1hdGlvbnMgPT09IC8vXG5cbiRjdWJpYy1iZXppZXItcHJpbWFyeTogY3ViaWMtYmV6aWVyKDAuNTUsIC0wLjE5LCAwLjU5LCAwLjk1KTtcbiRjdWJpYy1iZXppZXItc2Vjb25kYXJ5OiBjdWJpYy1iZXppZXIoMC4xNzUsIDAuODg1LCAwLjMyLCAxLjI3NSk7XG4iXX0= */",".dropdown {\n width: max-content;\n}\n.dropdown__button {\n width: max-content;\n}\n.dropdown__box-variant--default .dropdown__box-options {\n background-color: #1f2937;\n}\n.dropdown__box-variant--primary .dropdown__box-options {\n background-color: #2563eb;\n}\n.dropdown__box-variant--secondary .dropdown__box-options {\n background-color: #4f46e5;\n}\n.dropdown__box-variant--warning .dropdown__box-options {\n background-color: #d97706;\n}\n.dropdown__box-variant--error .dropdown__box-options {\n background-color: #dc2626;\n}\n.dropdown__box-variant--success .dropdown__box-options {\n background-color: #16a34a;\n}\n.dropdown__box-overlay {\n backdrop-filter: blur(12px);\n height: 100%;\n left: 0;\n position: fixed;\n top: 0;\n width: 100%;\n z-index: 99999999999;\n}\n.dropdown__box-options {\n align-items: flex-start;\n border-radius: 8px;\n box-shadow: 0 4px 6px rgba(0, 0, 0, 0.04), 0 12px 24px rgba(0, 0, 0, 0.1);\n display: flex;\n flex-direction: column;\n opacity: 1;\n min-width: 300px;\n padding: 4px;\n position: absolute;\n transition: transform 200ms cubic-bezier(0.175, 0.885, 0.32, 1.275), opacity 150ms ease;\n width: 100%;\n z-index: 99999999999;\n}\n/*# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VSb290IjoiL1VzZXJzL2RodW5hbnlhbi9hcmlzdG9ieXRlL2dpdGh1Yi9hcmlzdG9ieXRlLXVpL3BhY2thZ2VzL2Ryb3Bkb3duL2NvbXBvbmVudHMvRHJvcGRvd24iLCJzb3VyY2VzIjpbIkRyb3Bkb3duLm1vZHVsZS5zY3NzIiwiLi4vLi4vLi4vLi4vbm9kZV9tb2R1bGVzL0BhcmlzdG9ieXRlLXVpL3V0aWxzL3N0eWxlcy9fc2V0dGluZ3Muc2NzcyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFFQTtFQUNFOztBQUVBO0VBQ0U7O0FBSUE7RUFDRSxrQkMrQ0s7O0FENUNQO0VBQ0Usa0JDcURLOztBRGxEUDtFQUNFLGtCQzZETzs7QUQxRFQ7RUFDRSxrQkN1Rk07O0FEcEZSO0VBQ0Usa0JDK0RJOztBRDVETjtFQUNFLGtCQ3FFTTs7QURsRVI7RUFDRTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTs7QUFHRjtFQUNFO0VBQ0E7RUFDQSxZQUNFO0VBRUY7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0EsWUFDRTtFQUVGO0VBQ0EiLCJzb3VyY2VzQ29udGVudCI6WyJAdXNlIFwiQGFyaXN0b2J5dGUtdWkvdXRpbHMvc3R5bGVzL3NldHRpbmdzXCIgYXMgKjtcblxuLmRyb3Bkb3duIHtcbiAgd2lkdGg6IG1heC1jb250ZW50O1xuXG4gICZfX2J1dHRvbiB7XG4gICAgd2lkdGg6IG1heC1jb250ZW50O1xuICB9XG5cbiAgJl9fYm94IHtcbiAgICAmLXZhcmlhbnQtLWRlZmF1bHQgJi1vcHRpb25zIHtcbiAgICAgIGJhY2tncm91bmQtY29sb3I6ICRjb2xvci1kZWZhdWx0O1xuICAgIH1cblxuICAgICYtdmFyaWFudC0tcHJpbWFyeSAmLW9wdGlvbnMge1xuICAgICAgYmFja2dyb3VuZC1jb2xvcjogJGNvbG9yLXByaW1hcnk7XG4gICAgfVxuXG4gICAgJi12YXJpYW50LS1zZWNvbmRhcnkgJi1vcHRpb25zIHtcbiAgICAgIGJhY2tncm91bmQtY29sb3I6ICRjb2xvci1zZWNvbmRhcnk7XG4gICAgfVxuXG4gICAgJi12YXJpYW50LS13YXJuaW5nICYtb3B0aW9ucyB7XG4gICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkY29sb3Itd2FybmluZztcbiAgICB9XG5cbiAgICAmLXZhcmlhbnQtLWVycm9yICYtb3B0aW9ucyB7XG4gICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkY29sb3ItZXJyb3I7XG4gICAgfVxuXG4gICAgJi12YXJpYW50LS1zdWNjZXNzICYtb3B0aW9ucyB7XG4gICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkY29sb3Itc3VjY2VzcztcbiAgICB9XG5cbiAgICAmLW92ZXJsYXkge1xuICAgICAgYmFja2Ryb3AtZmlsdGVyOiBibHVyKDEycHgpO1xuICAgICAgaGVpZ2h0OiAxMDAlO1xuICAgICAgbGVmdDogMDtcbiAgICAgIHBvc2l0aW9uOiBmaXhlZDtcbiAgICAgIHRvcDogMDtcbiAgICAgIHdpZHRoOiAxMDAlO1xuICAgICAgei1pbmRleDogOTk5OTk5OTk5OTk7XG4gICAgfVxuXG4gICAgJi1vcHRpb25zIHtcbiAgICAgIGFsaWduLWl0ZW1zOiBmbGV4LXN0YXJ0O1xuICAgICAgYm9yZGVyLXJhZGl1czogOHB4OyAvL1RPRE86IGNoYW5nZSB0byBkeW5hbWljXG4gICAgICBib3gtc2hhZG93OlxuICAgICAgICAwIDRweCA2cHggcmdiYSgwLCAwLCAwLCAwLjA0KSxcbiAgICAgICAgMCAxMnB4IDI0cHggcmdiYSgwLCAwLCAwLCAwLjEpO1xuICAgICAgZGlzcGxheTogZmxleDtcbiAgICAgIGZsZXgtZGlyZWN0aW9uOiBjb2x1bW47XG4gICAgICBvcGFjaXR5OiAxO1xuICAgICAgbWluLXdpZHRoOiAzMDBweDtcbiAgICAgIHBhZGRpbmc6IDRweDtcbiAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICAgIHRyYW5zaXRpb246XG4gICAgICAgIHRyYW5zZm9ybSAyMDBtcyAkY3ViaWMtYmV6aWVyLXNlY29uZGFyeSxcbiAgICAgICAgb3BhY2l0eSAxNTBtcyBlYXNlO1xuICAgICAgd2lkdGg6IDEwMCU7XG4gICAgICB6LWluZGV4OiA5OTk5OTk5OTk5OTtcbiAgICB9XG4gIH1cbn1cbiIsIi8vID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0gLy9cbi8vICAgICAgICBBcmlzdG9CeXRlIFVJIC0gU3R5bGUgU2V0dGluZ3MgICAgICAgLy9cbi8vID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0gLy9cblxuLy8gPT09IERlc2lnbiBUb2tlbnMg4oCUIENvbG9yIFBhbGV0dGUgPT09IC8vXG4vLyBMb2dvXG4kbG9nby1jb2xvci0xOiAjZmZlZTI3O1xuJGxvZ28tY29sb3ItMjogI2ZlYzgwMDtcbiRsb2dvLWNvbG9yLTM6ICNmMThlMzU7XG4kbG9nby1jb2xvci00OiAjZTk1ZjMyO1xuJGxvZ28tY29sb3ItNTogI2UyMzEyZDtcbiRsb2dvLWdyYWRpZW50OiBsaW5lYXItZ3JhZGllbnQoXG4gIDkwZGVnLFxuICAkbG9nby1jb2xvci0xLFxuICAkbG9nby1jb2xvci0yLFxuICAkbG9nby1jb2xvci0zLFxuICAkbG9nby1jb2xvci00LFxuICAkbG9nby1jb2xvci01XG4pO1xuXG4vLyBCYXNlXG4kd2hpdGU6ICNmZmZmZmY7XG4kd2hpdGUtaG92ZXI6ICNkZGRkZGQ7XG4kYmxhY2s6ICMwMDAwMDA7XG4kYmxhY2staG92ZXI6ICMyMjIyMjI7XG4kdHJhbnNwYXJlbnQ6IHRyYW5zcGFyZW50O1xuXG4vLyA9PT0gQmxhY2sgVHJhbnNwYXJlbnQgU2NhbGUgPT09IC8vXG4kYmxhY2stdHJhbnNwYXJlbnQtMTAwOiByZ2JhKDAsIDAsIDAsIDAuMSk7XG4kYmxhY2stdHJhbnNwYXJlbnQtMjAwOiByZ2JhKDAsIDAsIDAsIDAuMik7XG4kYmxhY2stdHJhbnNwYXJlbnQtMzAwOiByZ2JhKDAsIDAsIDAsIDAuMyk7XG4kYmxhY2stdHJhbnNwYXJlbnQtNDAwOiByZ2JhKDAsIDAsIDAsIDAuNCk7XG4kYmxhY2stdHJhbnNwYXJlbnQtNTAwOiByZ2JhKDAsIDAsIDAsIDAuNSk7XG4kYmxhY2stdHJhbnNwYXJlbnQtNjAwOiByZ2JhKDAsIDAsIDAsIDAuNik7XG4kYmxhY2stdHJhbnNwYXJlbnQtNzAwOiByZ2JhKDAsIDAsIDAsIDAuNyk7XG4kYmxhY2stdHJhbnNwYXJlbnQtODAwOiByZ2JhKDAsIDAsIDAsIDAuOCk7XG4kYmxhY2stdHJhbnNwYXJlbnQtOTAwOiByZ2JhKDAsIDAsIDAsIDAuOSk7XG5cbi8vID09PSBCbGFjayBUcmFuc3BhcmVudCBTY2FsZSA9PT0gLy9cbiR3aGl0ZS10cmFuc3BhcmVudC0xMDA6IHJnYmEoMjU1LCAyNTUsIDI1NSwgMC4xKTtcbiR3aGl0ZS10cmFuc3BhcmVudC0yMDA6IHJnYmEoMjU1LCAyNTUsIDI1NSwgMC4yKTtcbiR3aGl0ZS10cmFuc3BhcmVudC0zMDA6IHJnYmEoMjU1LCAyNTUsIDI1NSwgMC4zKTtcbiR3aGl0ZS10cmFuc3BhcmVudC00MDA6IHJnYmEoMjU1LCAyNTUsIDI1NSwgMC40KTtcbiR3aGl0ZS10cmFuc3BhcmVudC01MDA6IHJnYmEoMjU1LCAyNTUsIDI1NSwgMC41KTtcbiR3aGl0ZS10cmFuc3BhcmVudC02MDA6IHJnYmEoMjU1LCAyNTUsIDI1NSwgMC42KTtcbiR3aGl0ZS10cmFuc3BhcmVudC03MDA6IHJnYmEoMjU1LCAyNTUsIDI1NSwgMC43KTtcbiR3aGl0ZS10cmFuc3BhcmVudC04MDA6IHJnYmEoMjU1LCAyNTUsIDI1NSwgMC44KTtcbiR3aGl0ZS10cmFuc3BhcmVudC05MDA6IHJnYmEoMjU1LCAyNTUsIDI1NSwgMC45KTtcblxuLy8gPT09IE5ldXRyYWwgU2NhbGUgKEdyZXkpID09PSAvL1xuJGdyZXktNTA6ICNmOWZhZmI7XG4kZ3JleS0xMDA6ICNmM2Y0ZjY7XG4kZ3JleS0yMDA6ICNlNWU3ZWI7XG4kZ3JleS0zMDA6ICNkMWQ1ZGI7XG4kZ3JleS00MDA6ICM5Y2EzYWY7XG4kZ3JleS01MDA6ICM2YjcyODA7XG4kZ3JleS02MDA6ICM0YjU1NjM7XG4kZ3JleS03MDA6ICMzNzQxNTE7XG4kZ3JleS04MDA6ICMxZjI5Mzc7XG4kZ3JleS05MDA6ICMxMTE4Mjc7XG5cbi8vID09PSBQcmltYXJ5IFNjYWxlIChCbHVlKSA9PT0gLy9cbiRibHVlLTUwOiAjZWZmNmZmO1xuJGJsdWUtMTAwOiAjZGJlYWZlO1xuJGJsdWUtMjAwOiAjYmZkYmZlO1xuJGJsdWUtMzAwOiAjOTNjNWZkO1xuJGJsdWUtNDAwOiAjNjBhNWZhO1xuJGJsdWUtNTAwOiAjM2I4MmY2O1xuJGJsdWUtNjAwOiAjMjU2M2ViOyAvLyBNYWluXG4kYmx1ZS03MDA6ICMxZDRlZDg7IC8vIEhvdmVyXG4kYmx1ZS04MDA6ICMxZTQwYWY7XG4kYmx1ZS05MDA6ICMxZTNhOGE7XG5cbi8vID09PSBTZWNvbmRhcnkgU2NhbGUgKEluZGlnbykgPT09IC8vXG4kaW5kaWdvLTUwOiAjZWVmMmZmO1xuJGluZGlnby0xMDA6ICNlMGU3ZmY7XG4kaW5kaWdvLTIwMDogI2M3ZDJmZTtcbiRpbmRpZ28tMzAwOiAjYTViNGZjO1xuJGluZGlnby00MDA6ICM4MThjZjg7XG4kaW5kaWdvLTUwMDogIzYzNjZmMTtcbiRpbmRpZ28tNjAwOiAjNGY0NmU1OyAvLyBNYWluXG4kaW5kaWdvLTcwMDogIzQzMzhjYTsgLy8gSG92ZXJcblxuLy8gPT09IEVycm9yIFNjYWxlIChSZWQpID09PSAvL1xuJHJlZC01MDogI2ZlZjJmMjtcbiRyZWQtMTAwOiAjZmVlMmUyO1xuJHJlZC0yMDA6ICNmZWNhY2E7XG4kcmVkLTMwMDogI2ZjYTVhNTtcbiRyZWQtNDAwOiAjZjg3MTcxO1xuJHJlZC01MDA6ICNlZjQ0NDQ7XG4kcmVkLTYwMDogI2RjMjYyNjsgLy8gTWFpblxuJHJlZC03MDA6ICNiOTFjMWM7IC8vIEhvdmVyXG5cbi8vID09PSBTdWNjZXNzIFNjYWxlIChHcmVlbikgPT09IC8vXG4kZ3JlZW4tNTA6ICNmMGZkZjQ7XG4kZ3JlZW4tMTAwOiAjZGNmY2U3O1xuJGdyZWVuLTIwMDogI2JiZjdkMDtcbiRncmVlbi0zMDA6ICM4NmVmYWM7XG4kZ3JlZW4tNDAwOiAjNGFkZTgwO1xuJGdyZWVuLTUwMDogIzIyYzU1ZTtcbiRncmVlbi02MDA6ICMxNmEzNGE7IC8vIE1haW5cbiRncmVlbi03MDA6ICMxNTgwM2Q7IC8vIEhvdmVyXG5cbi8vID09PSBXYXJuaW5nIFNjYWxlIChBbWJlcikgPT09IC8vXG4kYW1iZXItNTA6ICNmZmZiZWI7XG4kYW1iZXItMTAwOiAjZmVmM2M3O1xuJGFtYmVyLTIwMDogI2ZkZTY4YTtcbiRhbWJlci0zMDA6ICNmY2QzNGQ7XG4kYW1iZXItNDAwOiAjZmJiZjI0O1xuJGFtYmVyLTUwMDogI2Y1OWUwYjtcbiRhbWJlci02MDA6ICNkOTc3MDY7IC8vIE1haW5cbiRhbWJlci03MDA6ICNiNDUzMDk7IC8vIEhvdmVyXG5cbi8vID09PSBTZW1hbnRpYyBUb2tlbnMgPT09IC8vXG4kY29sb3ItZGVmYXVsdDogJGdyZXktODAwO1xuJGNvbG9yLWRlZmF1bHQtaG92ZXI6ICRncmV5LTkwMDtcbiRjb2xvci1kZWZhdWx0LWRpc2FibGVkOiByZ2JhKCRjb2xvci1kZWZhdWx0LCAwLjUpO1xuXG4kY29sb3ItcHJpbWFyeTogJGJsdWUtNjAwO1xuJGNvbG9yLXByaW1hcnktaG92ZXI6ICRibHVlLTcwMDtcbiRjb2xvci1wcmltYXJ5LWRpc2FibGVkOiByZ2JhKCRjb2xvci1wcmltYXJ5LCAwLjUpO1xuXG4kY29sb3Itc2Vjb25kYXJ5OiAkaW5kaWdvLTYwMDtcbiRjb2xvci1zZWNvbmRhcnktaG92ZXI6ICRpbmRpZ28tNzAwO1xuJGNvbG9yLXNlY29uZGFyeS1kaXNhYmxlZDogcmdiYSgkY29sb3Itc2Vjb25kYXJ5LCAwLjUpO1xuXG4kY29sb3ItZXJyb3I6ICRyZWQtNjAwO1xuJGNvbG9yLWVycm9yLWhvdmVyOiAkcmVkLTcwMDtcbiRjb2xvci1lcnJvci1kaXNhYmxlZDogcmdiYSgkY29sb3ItZXJyb3IsIDAuNSk7XG5cbiRjb2xvci1zdWNjZXNzOiAkZ3JlZW4tNjAwO1xuJGNvbG9yLXN1Y2Nlc3MtaG92ZXI6ICRncmVlbi03MDA7XG4kY29sb3Itc3VjY2Vzcy1kaXNhYmxlZDogcmdiYSgkY29sb3Itc3VjY2VzcywgMC41KTtcblxuJGNvbG9yLXdhcm5pbmc6ICRhbWJlci02MDA7XG4kY29sb3Itd2FybmluZy1ob3ZlcjogJGFtYmVyLTcwMDtcbiRjb2xvci13YXJuaW5nLWRpc2FibGVkOiByZ2JhKCRjb2xvci13YXJuaW5nLCAwLjUpO1xuXG4kdGV4dC1jb2xvci13aGl0ZTogJHdoaXRlO1xuJHRleHQtY29sb3ItYmxhY2s6ICRibGFjaztcbiR0ZXh0LWNvbG9yLXdoaXRlLWRpc2FibGVkOiByZ2JhKCR3aGl0ZSwgMC41KTtcbiR0ZXh0LWNvbG9yLWJsYWNrLWRpc2FibGVkOiByZ2JhKCRibGFjaywgMC41KTtcblxuJHRpdGxlLWNvbG9yLWRhcms6ICR3aGl0ZTtcbiRzdWJ0aXRsZS1jb2xvci1kYXJrOiAjOTlhMWFmO1xuJGRlc2NyaXB0aW9uLWNvbG9yLWRhcms6ICNkMWQ1ZGM7XG4kaWNvbi1jb2xvci1kYXJrOiAjOTlhMWFmO1xuXG4vLyA9PT0gU2hhZG93cyA9PT0gLy9cbi8vQFRPRE86IEBTSEFET1dcbiRzaGFkb3ctc206IDAgMXB4IDJweCAwIHJnYmEoJGJsYWNrLCAwLjA1KTtcbiRzaGFkb3ctbWQ6XG4gIDAgNHB4IDZweCAtMXB4IHJnYmEoJGJsYWNrLCAwLjEpLFxuICAwIDJweCA0cHggLTFweCByZ2JhKCRibGFjaywgMC4wNik7XG4kc2hhZG93LWxnOlxuICAwIDEwcHggMTVweCAtM3B4IHJnYmEoJGJsYWNrLCAwLjEpLFxuICAwIDRweCA2cHggLTJweCByZ2JhKCRibGFjaywgMC4wNSk7XG5cbi8vID09PSBGb250IGZhbWlsaWVzID09PSAvL1xuJGZvbnQtZmFtaWx5LXNhbnM6IFwiSW50ZXJcIiwgc2Fucy1zZXJpZjtcbiRmb250LWZhbWlseS1zZXJpZjogXCJHZW9yZ2lhXCIsIHNlcmlmO1xuJGZvbnQtZmFtaWx5LW1vbm86IFwiRmlyYSBDb2RlXCIsIG1vbm9zcGFjZTtcblxuLy8gPT09IEZvbnQgd2VpZ2h0cyA9PT0gLy9cbiRmb250LXdlaWdodC1yZWd1bGFyOiA0MDA7XG4kZm9udC13ZWlnaHQtbWVkaXVtOiA1MDA7XG4kZm9udC13ZWlnaHQtc2VtaWJvbGQ6IDYwMDtcbiRmb250LXdlaWdodC1ib2xkOiA3MDA7XG5cbi8vID09PSBMaW5lIGhlaWdodHMgPT09IC8vXG4kbGluZS1oZWlnaHQtdGlnaHQ6IDEuMjtcbiRsaW5lLWhlaWdodC1zbnVnOiAxLjM3NTtcbiRsaW5lLWhlaWdodC1ub3JtYWw6IDEuNTtcbiRsaW5lLWhlaWdodC1sb29zZTogMS42MjU7XG5cbi8vID09PSBGb250IFNpemVzIOKAlCBTZW1hbnRpYyBUb2tlbnMgPT09IC8vXG5cbi8vID09PSBUaXRsZXMgPT09IC8vXG4kZm9udC1zaXplLWhlcm86IDNyZW07IC8vIDQ4cHhcbiRmb250LXNpemUtdGl0bGUtMTogMi4yNXJlbTsgLy8gMzZweFxuJGZvbnQtc2l6ZS10aXRsZS0yOiAxLjg3NXJlbTsgLy8gMzBweFxuJGZvbnQtc2l6ZS10aXRsZS0zOiAxLjVyZW07IC8vIDI0cHhcblxuLy8gPT09IFN1YnRpdGxlcyA9PT0gLy9cbiRmb250LXNpemUtc3VidGl0bGUtMTogMS4yNXJlbTsgLy8gMjBweFxuJGZvbnQtc2l6ZS1zdWJ0aXRsZS0yOiAxLjEyNXJlbTsgLy8gMThweFxuXG4vLyA9PT0gQm9keSB0ZXh0ID09PSAvL1xuJGZvbnQtc2l6ZS1ib2R5LWxnOiAxcmVtOyAvLyAxNnB4XG4kZm9udC1zaXplLWJvZHktbWQ6IDAuOTM3NXJlbTsgLy8gMTVweFxuJGZvbnQtc2l6ZS1ib2R5LXNtOiAwLjg3NXJlbTsgLy8gMTRweFxuXG4vLyA9PT0gQ2FwdGlvbnMgLyBEZXNjcmlwdGlvbnMgPT09IC8vXG4kZm9udC1zaXplLWNhcHRpb246IDAuNzVyZW07IC8vIDEycHhcbiRmb250LXNpemUtZm9vdG5vdGU6IDAuNjg3NXJlbTsgLy8gMTFweFxuXG4vLyA9PT0gQnV0dG9ucyA9PT0gLy9cbiRmb250LXNpemUtYnV0dG9uLWxnOiAxcmVtOyAvLyAxNnB4XG4kZm9udC1zaXplLWJ1dHRvbi1tZDogMC44NzVyZW07IC8vIDE0cHhcbiRmb250LXNpemUtYnV0dG9uLXNtOiAwLjc1cmVtOyAvLyAxMnB4XG5cbi8vID09PSBBbmltYXRpb25zID09PSAvL1xuXG4kY3ViaWMtYmV6aWVyLXByaW1hcnk6IGN1YmljLWJlemllcigwLjU1LCAtMC4xOSwgMC41OSwgMC45NSk7XG4kY3ViaWMtYmV6aWVyLXNlY29uZGFyeTogY3ViaWMtYmV6aWVyKDAuMTc1LCAwLjg4NSwgMC4zMiwgMS4yNzUpO1xuIl19 */"],"mappings":"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","names":["React","dropdown-option","dropdown-option-variant--default","dropdown-option-variant--primary","dropdown-option-variant--secondary","dropdown-option-variant--warning","dropdown-option-variant--error","dropdown-option-variant--success","dropdown-option--disabled","dropdown-option__title","dropdown-option__description","dropdown-option__tick","dropdown-option__tick--active","dropdown","dropdown__button","dropdown__box-variant--default","dropdown__box-options","dropdown__box-variant--primary","dropdown__box-variant--secondary","dropdown__box-variant--warning","dropdown__box-variant--error","dropdown__box-variant--success","dropdown__box-overlay","jsx","jsxs"]}
1
+ {"version":3,"sources":["../components/Dropdown/index.tsx","../components/DropdownOption/index.tsx"],"sourcesContent":["\"use client\";\n\nimport * as React from \"react\";\nimport { AnimatePresence, motion } from \"framer-motion\";\n\nimport { DropdownOption, type IDropdownOption } from \"../DropdownOption\";\nimport { Button, type IButton } from \"@aristobyte-ui/button\";\nimport { Portal } from \"@aristobyte-ui/utils\";\n\ntype PositionType = {\n top: 0;\n left: 0;\n width: 0;\n};\n\nexport interface IDropdown {\n children:\n | React.ReactElement<IDropdownOption>\n | React.ReactElement<IDropdownOption>[];\n value: string;\n button?: Omit<IButton, \"children\" | \"dangerouslySetInnerHTML\">;\n variant?:\n | \"default\"\n | \"primary\"\n | \"secondary\"\n | \"success\"\n | \"error\"\n | \"warning\";\n appearance?:\n | \"solid\"\n | \"outline\"\n | \"outline-dashed\"\n | \"no-outline\"\n | \"glowing\";\n onChange?: (newValue: string) => void;\n initiallyOpened?: boolean;\n choice?: \"multiple\" | \"single\";\n placeholder?: string;\n disabled?: boolean;\n className?: string;\n style?: React.CSSProperties;\n}\n\nexport const Dropdown: React.FC<IDropdown> = ({\n children,\n value,\n onChange,\n appearance = \"outline\",\n variant = \"default\",\n placeholder = \"Select\",\n choice = \"single\",\n className = \"\",\n initiallyOpened = false,\n disabled = false,\n button = {},\n style = {},\n}) => {\n const [isOpened, setIsOpened] = React.useState<boolean>(initiallyOpened);\n const [selected, setSelected] = React.useState<string[]>(\n value ? [value] : []\n );\n const [position, setPosition] = React.useState<PositionType>({\n top: 0,\n left: 0,\n width: 0,\n });\n const [dropdownHeight, setDropdownHeight] = React.useState(0);\n const [buttonHeight, setButtonHeight] = React.useState(0);\n const buttonRef = React.useRef<HTMLButtonElement>(null);\n const boxRef = React.useRef<HTMLDivElement>(null);\n const uniqueId = React.useId();\n\n React.useLayoutEffect(() => {\n if (!isOpened) {\n return;\n }\n\n if (boxRef.current) {\n setDropdownHeight(boxRef.current.getBoundingClientRect().height);\n }\n\n if (buttonRef.current) {\n setButtonHeight(buttonRef.current.getBoundingClientRect().height);\n }\n }, [isOpened]);\n\n const options = React.Children.toArray(children).filter(\n (child): child is React.ReactElement<IDropdownOption> =>\n React.isValidElement(child) && child.type === DropdownOption\n );\n\n const isValidValue = () => {\n return !!options.find(({ props }) => props.value === value);\n };\n\n const handleChange = (currentRadioValue: string) => {\n onChange?.(currentRadioValue);\n if (!choice) {\n setSelected([currentRadioValue]);\n setIsOpened(false);\n return;\n }\n\n if (choice === \"single\") {\n setSelected([currentRadioValue]);\n }\n\n if (choice === \"multiple\") {\n setSelected((prev) =>\n prev.includes(currentRadioValue)\n ? prev.filter((v) => v !== currentRadioValue)\n : [...prev, currentRadioValue]\n );\n }\n };\n\n const handleToggle = (\n e: React.MouseEvent<HTMLButtonElement | HTMLAnchorElement, MouseEvent>\n ) => {\n if (disabled) return;\n\n const rect = buttonRef.current?.getBoundingClientRect();\n if (!rect) return;\n\n const spaceBelow = window.innerHeight - rect.bottom;\n const spaceAbove = rect.top;\n\n const shouldOpenUpwards =\n dropdownHeight > 0 &&\n spaceBelow < dropdownHeight &&\n spaceAbove > dropdownHeight;\n\n const finalPosition = {\n top: shouldOpenUpwards\n ? rect.top + window.scrollY - dropdownHeight - buttonHeight / 2\n : rect.top + window.scrollY + buttonHeight + 6,\n left: rect.left + window.scrollX,\n width: rect.width,\n } as PositionType;\n\n setPosition(finalPosition);\n\n if (button?.onClick) button.onClick(e);\n\n setIsOpened((prev) => !prev);\n };\n\n if (!isValidValue()) {\n throw new Error(\n 'The \"value\" prop did not match with any of the DropdownOption \"value\" prop'\n );\n }\n\n return (\n <>\n <div className={`dropdown ${className}`}>\n <Button\n onClick={handleToggle}\n className={`${\"dropdown__button\"} ${button?.className || \"\"}`}\n appearance={button?.appearance || appearance}\n variant={button?.variant || variant}\n disabled={button?.disabled || disabled}\n {...{ ref: buttonRef }}\n >\n {placeholder}\n </Button>\n </div>\n\n <Portal>\n <AnimatePresence>\n {isOpened && (\n <div\n className={`dropdown__box dropdown__box-variant--${variant}`}\n style={style}\n >\n <motion.div\n className={\"dropdown__box-overlay\"}\n initial={{ opacity: 0 }}\n animate={{ opacity: 1 }}\n exit={{ opacity: 0 }}\n transition={{ duration: 0.3, ease: \"easeIn\" }}\n onClick={() => setIsOpened(false)}\n />\n <motion.div\n ref={boxRef}\n className={\"dropdown__box-options\"}\n initial={{ opacity: 0, y: 20, scale: 0.95 }}\n animate={{ opacity: 1, y: 0, scale: 1 }}\n exit={{ opacity: 0, y: 20, scale: 0.95 }}\n transition={{ duration: 0.2, ease: \"easeIn\" }}\n style={{\n top: position.top,\n left: position.left,\n width: position.width,\n }}\n >\n {options.map(({ props }) => (\n <DropdownOption\n {...props}\n variant={variant}\n appearance={appearance}\n key={`${props.value}-${uniqueId}`}\n selectedValues={selected}\n onChange={() => handleChange(props.value)}\n />\n ))}\n </motion.div>\n </div>\n )}\n </AnimatePresence>\n </Portal>\n </>\n );\n};\n","import * as React from \"react\";\n\nimport { Icons } from \"@aristobyte-ui/utils\";\n\nexport interface IDropdownOption {\n variant?:\n | \"default\"\n | \"primary\"\n | \"secondary\"\n | \"success\"\n | \"error\"\n | \"warning\";\n appearance?:\n | \"solid\"\n | \"outline\"\n | \"outline-dashed\"\n | \"no-outline\"\n | \"glowing\";\n children: string;\n value: string;\n onChange?: () => void;\n selectedValues?: string[];\n description?: string;\n icon?: string;\n disabled?: boolean;\n choice?: \"multiple\" | \"single\";\n style?: React.CSSProperties;\n}\n\nexport const DropdownOption: React.FC<IDropdownOption> = ({\n variant,\n children,\n value,\n selectedValues,\n onChange,\n // icon,\n description,\n disabled,\n style = {},\n}) => {\n const uniqueId = React.useId();\n return (\n <button\n style={style}\n key={uniqueId}\n disabled={disabled}\n className={`dropdown-option dropdown-option-variant--${variant} ${disabled ? \"dropdown-option--disabled\" : \"\"}`}\n onClick={onChange}\n >\n <div className={\"dropdown-option__content\"}>\n <h3 className={\"dropdown-option__title\"}>{children}</h3>\n <p className={\"dropdown-option__description\"}>{description}</p>\n </div>\n <div\n className={`dropdown-option__tick ${selectedValues?.includes(value) ? \"dropdown-option__tick--active\" : \"\"}`}\n >\n <Icons.Success size={18} />\n </div>\n </button>\n );\n};\n"],"mappings":"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","names":["React","jsx","jsxs"]}
package/package.json CHANGED
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "name": "@aristobyte-ui/dropdown",
3
3
  "description": "react dropdown component with trigger button, dropdownoptions, placement variants, fully typed typescript support, and composable integration with aristobyte ui button",
4
- "version": "1.0.67",
4
+ "version": "1.0.70",
5
5
  "license": "MIT",
6
6
  "private": false,
7
7
  "author": "AristoByte <info@aristobyte.com>",
@@ -58,27 +58,20 @@
58
58
  "check-types": "tsc --noEmit"
59
59
  },
60
60
  "dependencies": {
61
- "@aristobyte-ui/button": "^1.0.67",
62
- "@aristobyte-ui/utils": "^1.0.67",
63
- "esbuild-sass-plugin": "^3.3.1",
64
- "framer-motion": "^12.23.9",
61
+ "@aristobyte-ui/button": "^1.0.70",
62
+ "@aristobyte-ui/utils": "^1.0.70",
63
+ "framer-motion": "^12.23.12",
65
64
  "react": "^19.1.0",
66
- "react-dom": "^19.1.0",
67
- "sass": "^1.89.0",
68
- "shiki": "^3.7.0",
69
- "tsup": "^8.5.0"
65
+ "react-dom": "^19.1.0"
70
66
  },
71
67
  "devDependencies": {
72
- "@aristobyte-ui/eslint-config": "^1.0.67",
73
- "@aristobyte-ui/typescript-config": "^1.0.67",
68
+ "@aristobyte-ui/eslint-config": "^1.0.70",
69
+ "@aristobyte-ui/typescript-config": "^1.0.70",
74
70
  "@turbo/gen": "^2.5.0",
75
71
  "@types/node": "^24.3.0",
76
72
  "@types/react": "19.1.0",
77
73
  "@types/react-dom": "19.1.1",
78
- "autoprefixer": "^10.4.21",
79
74
  "eslint": "^9.27.0",
80
- "postcss": "^8.5.3",
81
- "sass-embedded": "^1.91.0",
82
75
  "tsup": "^8.5.0",
83
76
  "typescript": "^5.8.3"
84
77
  }
package/dist/index.css DELETED
@@ -1,104 +0,0 @@
1
- /* components/DropdownOption/DropdownOption.module.scss */
2
- .DropdownOption_module_dropdown-option {
3
- align-items: center;
4
- border-radius: 8px;
5
- color: #ffffff;
6
- display: flex;
7
- font-size: 14px;
8
- font-weight: 500;
9
- gap: 10px;
10
- padding: 10px 16px;
11
- text-align: left;
12
- transition: all 120ms ease-out;
13
- width: 100%;
14
- }
15
- .DropdownOption_module_dropdown-option-variant--default:hover {
16
- background-color: #111827;
17
- }
18
- .DropdownOption_module_dropdown-option-variant--primary:hover {
19
- background-color: #1d4ed8;
20
- }
21
- .DropdownOption_module_dropdown-option-variant--secondary:hover {
22
- background-color: #4338ca;
23
- }
24
- .DropdownOption_module_dropdown-option-variant--warning:hover {
25
- background-color: #b45309;
26
- }
27
- .DropdownOption_module_dropdown-option-variant--error:hover {
28
- background-color: #b91c1c;
29
- }
30
- .DropdownOption_module_dropdown-option-variant--success:hover {
31
- background-color: #15803d;
32
- }
33
- .DropdownOption_module_dropdown-option--disabled,
34
- .DropdownOption_module_dropdown-option--disabled:hover {
35
- background-color: rgba(31, 41, 55, 0.5);
36
- cursor: auto;
37
- opacity: 0.5;
38
- }
39
- .DropdownOption_module_dropdown-option__title {
40
- color: #ffffff;
41
- }
42
- .DropdownOption_module_dropdown-option__description {
43
- color: rgba(255, 255, 255, 0.6);
44
- }
45
- .DropdownOption_module_dropdown-option__tick {
46
- color: rgba(255, 255, 255, 0.6);
47
- opacity: 0;
48
- transform: scale(0, 0.7) translate(0, 10px);
49
- transition: all 120ms ease-out;
50
- }
51
- .DropdownOption_module_dropdown-option__tick--active {
52
- opacity: 1;
53
- transform: scale(1) translate(0);
54
- }
55
-
56
- /* components/Dropdown/Dropdown.module.scss */
57
- .Dropdown_module_dropdown {
58
- width: max-content;
59
- }
60
- .Dropdown_module_dropdown__button {
61
- width: max-content;
62
- }
63
- .Dropdown_module_dropdown__box-variant--default .Dropdown_module_dropdown__box-options {
64
- background-color: #1f2937;
65
- }
66
- .Dropdown_module_dropdown__box-variant--primary .Dropdown_module_dropdown__box-options {
67
- background-color: #2563eb;
68
- }
69
- .Dropdown_module_dropdown__box-variant--secondary .Dropdown_module_dropdown__box-options {
70
- background-color: #4f46e5;
71
- }
72
- .Dropdown_module_dropdown__box-variant--warning .Dropdown_module_dropdown__box-options {
73
- background-color: #d97706;
74
- }
75
- .Dropdown_module_dropdown__box-variant--error .Dropdown_module_dropdown__box-options {
76
- background-color: #dc2626;
77
- }
78
- .Dropdown_module_dropdown__box-variant--success .Dropdown_module_dropdown__box-options {
79
- background-color: #16a34a;
80
- }
81
- .Dropdown_module_dropdown__box-overlay {
82
- backdrop-filter: blur(12px);
83
- height: 100%;
84
- left: 0;
85
- position: fixed;
86
- top: 0;
87
- width: 100%;
88
- z-index: 99999999999;
89
- }
90
- .Dropdown_module_dropdown__box-options {
91
- align-items: flex-start;
92
- border-radius: 8px;
93
- box-shadow: 0 4px 6px rgba(0, 0, 0, 0.04), 0 12px 24px rgba(0, 0, 0, 0.1);
94
- display: flex;
95
- flex-direction: column;
96
- opacity: 1;
97
- min-width: 300px;
98
- padding: 4px;
99
- position: absolute;
100
- transition: transform 200ms cubic-bezier(0.175, 0.885, 0.32, 1.275), opacity 150ms ease;
101
- width: 100%;
102
- z-index: 99999999999;
103
- }
104
- /*# sourceMappingURL=index.css.map */
@@ -1 +0,0 @@
1
- {"version":3,"sources":["../components/DropdownOption.module.scss","../../../../node_modules/@aristobyte-ui/utils/styles/_settings.scss","../components/Dropdown.module.scss","../../../../node_modules/@aristobyte-ui/utils/styles/_settings.scss"],"sourcesContent":["@use \"@aristobyte-ui/utils/styles/settings\" as *;\n\n.dropdown-option {\n align-items: center;\n border-radius: 8px; //TODO: change to dynamic\n color: $white;\n display: flex;\n font-size: 14px;\n font-weight: 500;\n gap: 10px;\n padding: 10px 16px;\n text-align: left;\n transition: all 120ms ease-out;\n width: 100%;\n\n &-variant {\n &--default:hover {\n background-color: $color-default-hover;\n }\n\n &--primary:hover {\n background-color: $color-primary-hover;\n }\n\n &--secondary:hover {\n background-color: $color-secondary-hover;\n }\n\n &--warning:hover {\n background-color: $color-warning-hover;\n }\n\n &--error:hover {\n background-color: $color-error-hover;\n }\n\n &--success:hover {\n background-color: $color-success-hover;\n }\n }\n\n &--disabled,\n &--disabled:hover {\n background-color: $color-default-disabled;\n cursor: auto;\n opacity: 0.5;\n }\n\n &__title {\n color: $white;\n }\n\n &__description {\n color: rgba($white, 0.6);\n }\n\n &__tick {\n color: rgba($white, 0.6);\n opacity: 0;\n transform: scale(0, 0.7) translate(0, 10px);\n transition: all 120ms ease-out;\n\n &--active {\n opacity: 1;\n transform: scale(1) translate(0);\n }\n }\n}\n","// =========================================== //\n// AristoByte UI - Style Settings //\n// =========================================== //\n\n// === Design Tokens — Color Palette === //\n// Logo\n$logo-color-1: #ffee27;\n$logo-color-2: #fec800;\n$logo-color-3: #f18e35;\n$logo-color-4: #e95f32;\n$logo-color-5: #e2312d;\n$logo-gradient: linear-gradient(\n 90deg,\n $logo-color-1,\n $logo-color-2,\n $logo-color-3,\n $logo-color-4,\n $logo-color-5\n);\n\n// Base\n$white: #ffffff;\n$white-hover: #dddddd;\n$black: #000000;\n$black-hover: #222222;\n$transparent: transparent;\n\n// === Black Transparent Scale === //\n$black-transparent-100: rgba(0, 0, 0, 0.1);\n$black-transparent-200: rgba(0, 0, 0, 0.2);\n$black-transparent-300: rgba(0, 0, 0, 0.3);\n$black-transparent-400: rgba(0, 0, 0, 0.4);\n$black-transparent-500: rgba(0, 0, 0, 0.5);\n$black-transparent-600: rgba(0, 0, 0, 0.6);\n$black-transparent-700: rgba(0, 0, 0, 0.7);\n$black-transparent-800: rgba(0, 0, 0, 0.8);\n$black-transparent-900: rgba(0, 0, 0, 0.9);\n\n// === Black Transparent Scale === //\n$white-transparent-100: rgba(255, 255, 255, 0.1);\n$white-transparent-200: rgba(255, 255, 255, 0.2);\n$white-transparent-300: rgba(255, 255, 255, 0.3);\n$white-transparent-400: rgba(255, 255, 255, 0.4);\n$white-transparent-500: rgba(255, 255, 255, 0.5);\n$white-transparent-600: rgba(255, 255, 255, 0.6);\n$white-transparent-700: rgba(255, 255, 255, 0.7);\n$white-transparent-800: rgba(255, 255, 255, 0.8);\n$white-transparent-900: rgba(255, 255, 255, 0.9);\n\n// === Neutral Scale (Grey) === //\n$grey-50: #f9fafb;\n$grey-100: #f3f4f6;\n$grey-200: #e5e7eb;\n$grey-300: #d1d5db;\n$grey-400: #9ca3af;\n$grey-500: #6b7280;\n$grey-600: #4b5563;\n$grey-700: #374151;\n$grey-800: #1f2937;\n$grey-900: #111827;\n\n// === Primary Scale (Blue) === //\n$blue-50: #eff6ff;\n$blue-100: #dbeafe;\n$blue-200: #bfdbfe;\n$blue-300: #93c5fd;\n$blue-400: #60a5fa;\n$blue-500: #3b82f6;\n$blue-600: #2563eb; // Main\n$blue-700: #1d4ed8; // Hover\n$blue-800: #1e40af;\n$blue-900: #1e3a8a;\n\n// === Secondary Scale (Indigo) === //\n$indigo-50: #eef2ff;\n$indigo-100: #e0e7ff;\n$indigo-200: #c7d2fe;\n$indigo-300: #a5b4fc;\n$indigo-400: #818cf8;\n$indigo-500: #6366f1;\n$indigo-600: #4f46e5; // Main\n$indigo-700: #4338ca; // Hover\n\n// === Error Scale (Red) === //\n$red-50: #fef2f2;\n$red-100: #fee2e2;\n$red-200: #fecaca;\n$red-300: #fca5a5;\n$red-400: #f87171;\n$red-500: #ef4444;\n$red-600: #dc2626; // Main\n$red-700: #b91c1c; // Hover\n\n// === Success Scale (Green) === //\n$green-50: #f0fdf4;\n$green-100: #dcfce7;\n$green-200: #bbf7d0;\n$green-300: #86efac;\n$green-400: #4ade80;\n$green-500: #22c55e;\n$green-600: #16a34a; // Main\n$green-700: #15803d; // Hover\n\n// === Warning Scale (Amber) === //\n$amber-50: #fffbeb;\n$amber-100: #fef3c7;\n$amber-200: #fde68a;\n$amber-300: #fcd34d;\n$amber-400: #fbbf24;\n$amber-500: #f59e0b;\n$amber-600: #d97706; // Main\n$amber-700: #b45309; // Hover\n\n// === Semantic Tokens === //\n$color-default: $grey-800;\n$color-default-hover: $grey-900;\n$color-default-disabled: rgba($color-default, 0.5);\n\n$color-primary: $blue-600;\n$color-primary-hover: $blue-700;\n$color-primary-disabled: rgba($color-primary, 0.5);\n\n$color-secondary: $indigo-600;\n$color-secondary-hover: $indigo-700;\n$color-secondary-disabled: rgba($color-secondary, 0.5);\n\n$color-error: $red-600;\n$color-error-hover: $red-700;\n$color-error-disabled: rgba($color-error, 0.5);\n\n$color-success: $green-600;\n$color-success-hover: $green-700;\n$color-success-disabled: rgba($color-success, 0.5);\n\n$color-warning: $amber-600;\n$color-warning-hover: $amber-700;\n$color-warning-disabled: rgba($color-warning, 0.5);\n\n$text-color-white: $white;\n$text-color-black: $black;\n$text-color-white-disabled: rgba($white, 0.5);\n$text-color-black-disabled: rgba($black, 0.5);\n\n$title-color-dark: $white;\n$subtitle-color-dark: #99a1af;\n$description-color-dark: #d1d5dc;\n$icon-color-dark: #99a1af;\n\n// === Shadows === //\n//@TODO: @SHADOW\n$shadow-sm: 0 1px 2px 0 rgba($black, 0.05);\n$shadow-md:\n 0 4px 6px -1px rgba($black, 0.1),\n 0 2px 4px -1px rgba($black, 0.06);\n$shadow-lg:\n 0 10px 15px -3px rgba($black, 0.1),\n 0 4px 6px -2px rgba($black, 0.05);\n\n// === Font families === //\n$font-family-sans: \"Inter\", sans-serif;\n$font-family-serif: \"Georgia\", serif;\n$font-family-mono: \"Fira Code\", monospace;\n\n// === Font weights === //\n$font-weight-regular: 400;\n$font-weight-medium: 500;\n$font-weight-semibold: 600;\n$font-weight-bold: 700;\n\n// === Line heights === //\n$line-height-tight: 1.2;\n$line-height-snug: 1.375;\n$line-height-normal: 1.5;\n$line-height-loose: 1.625;\n\n// === Font Sizes — Semantic Tokens === //\n\n// === Titles === //\n$font-size-hero: 3rem; // 48px\n$font-size-title-1: 2.25rem; // 36px\n$font-size-title-2: 1.875rem; // 30px\n$font-size-title-3: 1.5rem; // 24px\n\n// === Subtitles === //\n$font-size-subtitle-1: 1.25rem; // 20px\n$font-size-subtitle-2: 1.125rem; // 18px\n\n// === Body text === //\n$font-size-body-lg: 1rem; // 16px\n$font-size-body-md: 0.9375rem; // 15px\n$font-size-body-sm: 0.875rem; // 14px\n\n// === Captions / Descriptions === //\n$font-size-caption: 0.75rem; // 12px\n$font-size-footnote: 0.6875rem; // 11px\n\n// === Buttons === //\n$font-size-button-lg: 1rem; // 16px\n$font-size-button-md: 0.875rem; // 14px\n$font-size-button-sm: 0.75rem; // 12px\n\n// === Animations === //\n\n$cubic-bezier-primary: cubic-bezier(0.55, -0.19, 0.59, 0.95);\n$cubic-bezier-secondary: cubic-bezier(0.175, 0.885, 0.32, 1.275);\n","@use \"@aristobyte-ui/utils/styles/settings\" as *;\n\n.dropdown {\n width: max-content;\n\n &__button {\n width: max-content;\n }\n\n &__box {\n &-variant--default &-options {\n background-color: $color-default;\n }\n\n &-variant--primary &-options {\n background-color: $color-primary;\n }\n\n &-variant--secondary &-options {\n background-color: $color-secondary;\n }\n\n &-variant--warning &-options {\n background-color: $color-warning;\n }\n\n &-variant--error &-options {\n background-color: $color-error;\n }\n\n &-variant--success &-options {\n background-color: $color-success;\n }\n\n &-overlay {\n backdrop-filter: blur(12px);\n height: 100%;\n left: 0;\n position: fixed;\n top: 0;\n width: 100%;\n z-index: 99999999999;\n }\n\n &-options {\n align-items: flex-start;\n border-radius: 8px; //TODO: change to dynamic\n box-shadow:\n 0 4px 6px rgba(0, 0, 0, 0.04),\n 0 12px 24px rgba(0, 0, 0, 0.1);\n display: flex;\n flex-direction: column;\n opacity: 1;\n min-width: 300px;\n padding: 4px;\n position: absolute;\n transition:\n transform 200ms $cubic-bezier-secondary,\n opacity 150ms ease;\n width: 100%;\n z-index: 99999999999;\n }\n }\n}\n","// =========================================== //\n// AristoByte UI - Style Settings //\n// =========================================== //\n\n// === Design Tokens — Color Palette === //\n// Logo\n$logo-color-1: #ffee27;\n$logo-color-2: #fec800;\n$logo-color-3: #f18e35;\n$logo-color-4: #e95f32;\n$logo-color-5: #e2312d;\n$logo-gradient: linear-gradient(\n 90deg,\n $logo-color-1,\n $logo-color-2,\n $logo-color-3,\n $logo-color-4,\n $logo-color-5\n);\n\n// Base\n$white: #ffffff;\n$white-hover: #dddddd;\n$black: #000000;\n$black-hover: #222222;\n$transparent: transparent;\n\n// === Black Transparent Scale === //\n$black-transparent-100: rgba(0, 0, 0, 0.1);\n$black-transparent-200: rgba(0, 0, 0, 0.2);\n$black-transparent-300: rgba(0, 0, 0, 0.3);\n$black-transparent-400: rgba(0, 0, 0, 0.4);\n$black-transparent-500: rgba(0, 0, 0, 0.5);\n$black-transparent-600: rgba(0, 0, 0, 0.6);\n$black-transparent-700: rgba(0, 0, 0, 0.7);\n$black-transparent-800: rgba(0, 0, 0, 0.8);\n$black-transparent-900: rgba(0, 0, 0, 0.9);\n\n// === Black Transparent Scale === //\n$white-transparent-100: rgba(255, 255, 255, 0.1);\n$white-transparent-200: rgba(255, 255, 255, 0.2);\n$white-transparent-300: rgba(255, 255, 255, 0.3);\n$white-transparent-400: rgba(255, 255, 255, 0.4);\n$white-transparent-500: rgba(255, 255, 255, 0.5);\n$white-transparent-600: rgba(255, 255, 255, 0.6);\n$white-transparent-700: rgba(255, 255, 255, 0.7);\n$white-transparent-800: rgba(255, 255, 255, 0.8);\n$white-transparent-900: rgba(255, 255, 255, 0.9);\n\n// === Neutral Scale (Grey) === //\n$grey-50: #f9fafb;\n$grey-100: #f3f4f6;\n$grey-200: #e5e7eb;\n$grey-300: #d1d5db;\n$grey-400: #9ca3af;\n$grey-500: #6b7280;\n$grey-600: #4b5563;\n$grey-700: #374151;\n$grey-800: #1f2937;\n$grey-900: #111827;\n\n// === Primary Scale (Blue) === //\n$blue-50: #eff6ff;\n$blue-100: #dbeafe;\n$blue-200: #bfdbfe;\n$blue-300: #93c5fd;\n$blue-400: #60a5fa;\n$blue-500: #3b82f6;\n$blue-600: #2563eb; // Main\n$blue-700: #1d4ed8; // Hover\n$blue-800: #1e40af;\n$blue-900: #1e3a8a;\n\n// === Secondary Scale (Indigo) === //\n$indigo-50: #eef2ff;\n$indigo-100: #e0e7ff;\n$indigo-200: #c7d2fe;\n$indigo-300: #a5b4fc;\n$indigo-400: #818cf8;\n$indigo-500: #6366f1;\n$indigo-600: #4f46e5; // Main\n$indigo-700: #4338ca; // Hover\n\n// === Error Scale (Red) === //\n$red-50: #fef2f2;\n$red-100: #fee2e2;\n$red-200: #fecaca;\n$red-300: #fca5a5;\n$red-400: #f87171;\n$red-500: #ef4444;\n$red-600: #dc2626; // Main\n$red-700: #b91c1c; // Hover\n\n// === Success Scale (Green) === //\n$green-50: #f0fdf4;\n$green-100: #dcfce7;\n$green-200: #bbf7d0;\n$green-300: #86efac;\n$green-400: #4ade80;\n$green-500: #22c55e;\n$green-600: #16a34a; // Main\n$green-700: #15803d; // Hover\n\n// === Warning Scale (Amber) === //\n$amber-50: #fffbeb;\n$amber-100: #fef3c7;\n$amber-200: #fde68a;\n$amber-300: #fcd34d;\n$amber-400: #fbbf24;\n$amber-500: #f59e0b;\n$amber-600: #d97706; // Main\n$amber-700: #b45309; // Hover\n\n// === Semantic Tokens === //\n$color-default: $grey-800;\n$color-default-hover: $grey-900;\n$color-default-disabled: rgba($color-default, 0.5);\n\n$color-primary: $blue-600;\n$color-primary-hover: $blue-700;\n$color-primary-disabled: rgba($color-primary, 0.5);\n\n$color-secondary: $indigo-600;\n$color-secondary-hover: $indigo-700;\n$color-secondary-disabled: rgba($color-secondary, 0.5);\n\n$color-error: $red-600;\n$color-error-hover: $red-700;\n$color-error-disabled: rgba($color-error, 0.5);\n\n$color-success: $green-600;\n$color-success-hover: $green-700;\n$color-success-disabled: rgba($color-success, 0.5);\n\n$color-warning: $amber-600;\n$color-warning-hover: $amber-700;\n$color-warning-disabled: rgba($color-warning, 0.5);\n\n$text-color-white: $white;\n$text-color-black: $black;\n$text-color-white-disabled: rgba($white, 0.5);\n$text-color-black-disabled: rgba($black, 0.5);\n\n$title-color-dark: $white;\n$subtitle-color-dark: #99a1af;\n$description-color-dark: #d1d5dc;\n$icon-color-dark: #99a1af;\n\n// === Shadows === //\n//@TODO: @SHADOW\n$shadow-sm: 0 1px 2px 0 rgba($black, 0.05);\n$shadow-md:\n 0 4px 6px -1px rgba($black, 0.1),\n 0 2px 4px -1px rgba($black, 0.06);\n$shadow-lg:\n 0 10px 15px -3px rgba($black, 0.1),\n 0 4px 6px -2px rgba($black, 0.05);\n\n// === Font families === //\n$font-family-sans: \"Inter\", sans-serif;\n$font-family-serif: \"Georgia\", serif;\n$font-family-mono: \"Fira Code\", monospace;\n\n// === Font weights === //\n$font-weight-regular: 400;\n$font-weight-medium: 500;\n$font-weight-semibold: 600;\n$font-weight-bold: 700;\n\n// === Line heights === //\n$line-height-tight: 1.2;\n$line-height-snug: 1.375;\n$line-height-normal: 1.5;\n$line-height-loose: 1.625;\n\n// === Font Sizes — Semantic Tokens === //\n\n// === Titles === //\n$font-size-hero: 3rem; // 48px\n$font-size-title-1: 2.25rem; // 36px\n$font-size-title-2: 1.875rem; // 30px\n$font-size-title-3: 1.5rem; // 24px\n\n// === Subtitles === //\n$font-size-subtitle-1: 1.25rem; // 20px\n$font-size-subtitle-2: 1.125rem; // 18px\n\n// === Body text === //\n$font-size-body-lg: 1rem; // 16px\n$font-size-body-md: 0.9375rem; // 15px\n$font-size-body-sm: 0.875rem; // 14px\n\n// === Captions / Descriptions === //\n$font-size-caption: 0.75rem; // 12px\n$font-size-footnote: 0.6875rem; // 11px\n\n// === Buttons === //\n$font-size-button-lg: 1rem; // 16px\n$font-size-button-md: 0.875rem; // 14px\n$font-size-button-sm: 0.75rem; // 12px\n\n// === Animations === //\n\n$cubic-bezier-primary: cubic-bezier(0.55, -0.19, 0.59, 0.95);\n$cubic-bezier-secondary: cubic-bezier(0.175, 0.885, 0.32, 1.275);\n"],"mappings":";AAEA,CAAAA;AACE,eAAA;AACA,iBAAA;AACA,SCgBM;ADfN,WAAA;AACA,aAAA;AACA,eAAA;AACA,OAAA;AACA,WAAA,KAAA;AACA,cAAA;AACA,cAAA,IAAA,MAAA;AACA,SAAA;;AAGE,CAAAC,sDAAA;AACE,oBC0CK;;ADvCP,CAAAC,sDAAA;AACE,oBCgDK;;AD7CP,CAAAC,wDAAA;AACE,oBCwDO;;ADrDT,CAAAC,sDAAA;AACE,oBCkFM;;AD/ER,CAAAC,oDAAA;AACE,oBC0DI;;ADvDN,CAAAC,sDAAA;AACE,oBCgEM;;AD5DV,CAAAC;AAAA,CAAAA,+CAAA;AAEE,oBCyEqB,KAAA,EAAA,EAAA,EAAA,EAAA,EAAA,EAAA;ADxErB,UAAA;AACA,WAAA;;AAGF,CAAAC;AACE,SC5BI;;AD+BN,CAAAC;AACE,SAAA,KAAA,GAAA,EAAA,GAAA,EAAA,GAAA,EAAA;;AAGF,CAAAC;AACE,SAAA,KAAA,GAAA,EAAA,GAAA,EAAA,GAAA,EAAA;AACA,WAAA;AACA,aAAA,MAAA,CAAA,EAAA,KAAA,UAAA,CAAA,EAAA;AACA,cAAA,IAAA,MAAA;;AAEA,CAAAC;AACE,WAAA;AACA,aAAA,MAAA,GAAA,UAAA;;;;AE9DN,CAAAC;AACE,SAAA;;AAEA,CAAAC;AACE,SAAA;;AAIA,CAAAC,+CAAA,CAAAC;AACE,oBC+CK;;AD5CP,CAAAC,+CAAA,CAJAD;AAKE,oBCqDK;;ADlDP,CAAAE,iDAAA,CARAF;AASE,oBC6DO;;AD1DT,CAAAG,+CAAA,CAZAH;AAaE,oBCuFM;;ADpFR,CAAAI,6CAAA,CAhBAJ;AAiBE,oBC+DI;;AD5DN,CAAAK,+CAAA,CApBAL;AAqBE,oBCqEM;;ADlER,CAAAM;AACE,mBAAA,KAAA;AACA,UAAA;AACA,QAAA;AACA,YAAA;AACA,OAAA;AACA,SAAA;AACA,WAAA;;AAGF,CAlCAN;AAmCE,eAAA;AACA,iBAAA;AACA,cACE,EAAA,IAAA,IAAA,KAAA,CAAA,EAAA,CAAA,EAAA,CAAA,EAAA,KAAA,EAAA,EAAA,KAAA,KAAA,KAAA,CAAA,EAAA,CAAA,EAAA,CAAA,EAAA;AAEF,WAAA;AACA,kBAAA;AACA,WAAA;AACA,aAAA;AACA,WAAA;AACA,YAAA;AACA,cACE,UAAA,MAAA,aAAA,KAAA,EAAA,KAAA,EAAA,IAAA,EAAA,MAAA,EAAA,QAAA,MAAA;AAEF,SAAA;AACA,WAAA;;","names":["dropdown-option","dropdown-option-variant--default","dropdown-option-variant--primary","dropdown-option-variant--secondary","dropdown-option-variant--warning","dropdown-option-variant--error","dropdown-option-variant--success","dropdown-option--disabled","dropdown-option__title","dropdown-option__description","dropdown-option__tick","dropdown-option__tick--active","dropdown","dropdown__button","dropdown__box-variant--default","dropdown__box-options","dropdown__box-variant--primary","dropdown__box-variant--secondary","dropdown__box-variant--warning","dropdown__box-variant--error","dropdown__box-variant--success","dropdown__box-overlay"]}