@yourbestsoft/studio-screen-ui-kit 0.0.6 → 0.0.8

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.
@@ -1,6 +1,6 @@
1
1
  import { jsx as n, jsxs as g, Fragment as B } from "react/jsx-runtime";
2
2
  import i from "classnames";
3
- import J, { forwardRef as f, createContext as E, useState as R, useRef as P, useEffect as W, useContext as w } from "react";
3
+ import J, { forwardRef as b, createContext as E, useState as R, useRef as P, useEffect as W, useContext as C } from "react";
4
4
  import { Eye as Q, EyeOff as U, X as Y, Search as Z } from "lucide-react";
5
5
  const tt = "_text_4m304_1", et = "_tertiary_4m304_1", ot = "_secondary_4m304_1", nt = "_primary_4m304_1", st = "_fullWidth_4m304_50", rt = "_buttonWithIcon_4m304_54", ct = "_content_4m304_61", at = "_shortcut_4m304_70", it = "_disabled_4m304_82", p = {
6
6
  text: tt,
@@ -46,14 +46,14 @@ const tt = "_text_4m304_1", et = "_tertiary_4m304_1", ot = "_secondary_4m304_1",
46
46
  ...d
47
47
  }
48
48
  );
49
- }, He = f(lt), dt = "_content_23x5h_1", _t = "_header_23x5h_1", ut = "_root_23x5h_7", ht = "_contentAfterHeader_23x5h_22", S = {
49
+ }, He = b(lt), dt = "_content_23x5h_1", _t = "_header_23x5h_1", ut = "_root_23x5h_7", ht = "_contentAfterHeader_23x5h_22", S = {
50
50
  content: dt,
51
51
  header: _t,
52
52
  root: ut,
53
53
  contentAfterHeader: ht
54
- }, H = f(
54
+ }, H = b(
55
55
  ({ className: t, ...e }, o) => /* @__PURE__ */ n("div", { className: i(S.root, t), ref: o, ...e })
56
- ), mt = f(
56
+ ), mt = b(
57
57
  ({ className: t, ignoreHeader: e, ...o }, s) => /* @__PURE__ */ n(
58
58
  "div",
59
59
  {
@@ -66,25 +66,25 @@ const tt = "_text_4m304_1", et = "_tertiary_4m304_1", ot = "_secondary_4m304_1",
66
66
  ...o
67
67
  }
68
68
  )
69
- ), gt = f(
69
+ ), gt = b(
70
70
  ({ className: t, ...e }, o) => /* @__PURE__ */ n("div", { className: i(S.header, t), ref: o, ...e })
71
71
  ), Fe = Object.assign(H, {
72
72
  Content: mt,
73
73
  Header: gt,
74
74
  Root: H
75
- }), ft = "_root_1xfv8_1", bt = "_dropdownContent_1xfv8_6", pt = "_left_1xfv8_17", vt = "_center_1xfv8_21", wt = "_right_1xfv8_26", Ct = "_top_1xfv8_30", Nt = "_bottom_1xfv8_34", xt = "_fixedPosition_1xfv8_38", y = {
76
- root: ft,
77
- dropdownContent: bt,
75
+ }), bt = "_root_1xfv8_1", ft = "_dropdownContent_1xfv8_6", pt = "_left_1xfv8_17", vt = "_center_1xfv8_21", Ct = "_right_1xfv8_26", wt = "_top_1xfv8_30", Nt = "_bottom_1xfv8_34", xt = "_fixedPosition_1xfv8_38", y = {
76
+ root: bt,
77
+ dropdownContent: ft,
78
78
  left: pt,
79
79
  center: vt,
80
- right: wt,
81
- top: Ct,
80
+ right: Ct,
81
+ top: wt,
82
82
  bottom: Nt,
83
83
  fixedPosition: xt
84
84
  }, M = E(
85
85
  void 0
86
86
  ), V = () => {
87
- const t = w(M);
87
+ const t = C(M);
88
88
  if (!t)
89
89
  throw new Error("useDropDownContext must be used within a DropDown.Root");
90
90
  return t;
@@ -143,7 +143,7 @@ const tt = "_text_4m304_1", et = "_tertiary_4m304_1", ot = "_secondary_4m304_1",
143
143
  children: t
144
144
  }
145
145
  ) : null;
146
- }, Ae = { Content: Tt, Root: kt, Trigger: yt }, Rt = "_dialogRoot_c30vs_1", St = "_dialogTrigger_c30vs_5", Dt = "_dialogContent_c30vs_13", $t = "_dialogClose_c30vs_25", Ot = "_dialogTitle_c30vs_33", It = "_dialogSeparator_c30vs_38", C = {
146
+ }, Ae = { Content: Tt, Root: kt, Trigger: yt }, Rt = "_dialogRoot_c30vs_1", St = "_dialogTrigger_c30vs_5", Dt = "_dialogContent_c30vs_13", $t = "_dialogClose_c30vs_25", Ot = "_dialogTitle_c30vs_33", It = "_dialogSeparator_c30vs_38", w = {
147
147
  dialogRoot: Rt,
148
148
  dialogTrigger: St,
149
149
  dialogContent: Dt,
@@ -158,13 +158,13 @@ const tt = "_text_4m304_1", et = "_tertiary_4m304_1", ot = "_secondary_4m304_1",
158
158
  const s = P(null), [c, r] = R(!1), a = e !== void 0 ? e : c, _ = (d) => {
159
159
  e === void 0 && r(d), o && o(d);
160
160
  };
161
- return /* @__PURE__ */ n(D.Provider, { value: { dialogRef: s, isOpen: a, setIsOpen: _ }, children: /* @__PURE__ */ n("div", { className: C.dialogRoot, children: t }) });
161
+ return /* @__PURE__ */ n(D.Provider, { value: { dialogRef: s, isOpen: a, setIsOpen: _ }, children: /* @__PURE__ */ n("div", { className: w.dialogRoot, children: t }) });
162
162
  }, Et = ({
163
163
  as: t,
164
164
  children: e,
165
165
  ...o
166
166
  }) => {
167
- const s = w(D);
167
+ const s = C(D);
168
168
  if (!s) throw new Error("Trigger must be used within a Dialog.Root");
169
169
  const { dialogRef: c, setIsOpen: r } = s;
170
170
  return /* @__PURE__ */ n(
@@ -174,14 +174,14 @@ const tt = "_text_4m304_1", et = "_tertiary_4m304_1", ot = "_secondary_4m304_1",
174
174
  c.current?.showModal(), r(!0);
175
175
  },
176
176
  ...o,
177
- className: C.dialogTrigger,
177
+ className: w.dialogTrigger,
178
178
  role: t && t !== "button" ? "button" : void 0,
179
179
  children: e
180
180
  }
181
181
  );
182
- }, Pt = f(
182
+ }, Pt = b(
183
183
  ({ children: t, className: e, closeOnBackdropClick: o = !0 }, s) => {
184
- const c = w(D);
184
+ const c = C(D);
185
185
  if (!c) throw new Error("Content must be used within a Dialog.Root");
186
186
  const { dialogRef: r, isOpen: a, setIsOpen: _ } = c, d = (l) => {
187
187
  o && l.target === r.current && (r.current?.close(), _(!1));
@@ -190,7 +190,7 @@ const tt = "_text_4m304_1", et = "_tertiary_4m304_1", ot = "_secondary_4m304_1",
190
190
  "dialog",
191
191
  {
192
192
  ref: r,
193
- className: i(C.dialogContent, e),
193
+ className: i(w.dialogContent, e),
194
194
  onClick: d,
195
195
  open: a,
196
196
  children: /* @__PURE__ */ n("div", { onClick: (l) => l.stopPropagation(), children: t })
@@ -202,7 +202,7 @@ const tt = "_text_4m304_1", et = "_tertiary_4m304_1", ot = "_secondary_4m304_1",
202
202
  children: e,
203
203
  ...o
204
204
  }) => {
205
- const s = w(D);
205
+ const s = C(D);
206
206
  if (!s) throw new Error("Close must be used within a Dialog.Root");
207
207
  const { dialogRef: c, setIsOpen: r } = s;
208
208
  return /* @__PURE__ */ n(
@@ -212,12 +212,12 @@ const tt = "_text_4m304_1", et = "_tertiary_4m304_1", ot = "_secondary_4m304_1",
212
212
  c.current?.close(), r(!1);
213
213
  },
214
214
  ...o,
215
- className: C.dialogClose,
215
+ className: w.dialogClose,
216
216
  role: t && t !== "button" ? "button" : void 0,
217
217
  children: e
218
218
  }
219
219
  );
220
- }, qt = ({ children: t, className: e }) => /* @__PURE__ */ n("h2", { className: i(C.dialogTitle, e), children: t }), Ht = ({}) => /* @__PURE__ */ n("div", { className: C.dialogSeparator }), Be = {
220
+ }, qt = ({ children: t, className: e }) => /* @__PURE__ */ n("h2", { className: i(w.dialogTitle, e), children: t }), Ht = ({}) => /* @__PURE__ */ n("div", { className: w.dialogSeparator }), Be = {
221
221
  Close: Lt,
222
222
  Content: Pt,
223
223
  Root: Wt,
@@ -236,7 +236,7 @@ const tt = "_text_4m304_1", et = "_tertiary_4m304_1", ot = "_secondary_4m304_1",
236
236
  }, j = E(
237
237
  void 0
238
238
  ), L = () => {
239
- const t = w(j);
239
+ const t = C(j);
240
240
  if (!t)
241
241
  throw new Error("useSidebarContext must be used within a SidebarProvider");
242
242
  return t;
@@ -299,7 +299,7 @@ const tt = "_text_4m304_1", et = "_tertiary_4m304_1", ot = "_secondary_4m304_1",
299
299
  switcher: Ut,
300
300
  buttons: Yt,
301
301
  separator: Zt
302
- }, Ve = f(
302
+ }, Ve = b(
303
303
  ({
304
304
  className: t,
305
305
  component: e,
@@ -330,7 +330,7 @@ const tt = "_text_4m304_1", et = "_tertiary_4m304_1", ot = "_secondary_4m304_1",
330
330
  ] })
331
331
  ] });
332
332
  }
333
- ), te = "_root_w2o37_13", ee = "_header_w2o37_19", oe = "_footer_w2o37_23", ne = "_row_w2o37_28", se = "_body_w2o37_40", re = "_head_w2o37_19", ce = "_cell_w2o37_47", ae = "_caption_w2o37_64", ie = "_storiesFooterCellOne_w2o37_69", le = "_storiesFooterCellTwo_w2o37_72", b = {
333
+ ), te = "_root_1b0i5_13", ee = "_header_1b0i5_19", oe = "_footer_1b0i5_23", ne = "_row_1b0i5_28", se = "_body_1b0i5_41", re = "_head_1b0i5_19", ce = "_cell_1b0i5_48", ae = "_caption_1b0i5_65", ie = "_storiesFooterCellOne_1b0i5_70", le = "_storiesFooterCellTwo_1b0i5_73", f = {
334
334
  root: te,
335
335
  header: ee,
336
336
  footer: oe,
@@ -341,26 +341,26 @@ const tt = "_text_4m304_1", et = "_tertiary_4m304_1", ot = "_secondary_4m304_1",
341
341
  caption: ae,
342
342
  storiesFooterCellOne: ie,
343
343
  storiesFooterCellTwo: le
344
- }, F = ({ children: t, className: e }) => /* @__PURE__ */ n("table", { className: i(b.root, e), children: t }), de = ({ children: t, className: e }) => /* @__PURE__ */ n("caption", { className: i(b.caption, e), children: t }), _e = ({ children: t, className: e }) => /* @__PURE__ */ n("thead", { className: i(b.header, e), children: t }), ue = ({ children: t, className: e, onClick: o }) => /* @__PURE__ */ n("tr", { className: i(b.row, e), onClick: o, children: t }), he = ({ children: t, className: e }) => /* @__PURE__ */ n("th", { className: i(b.head, e), children: t }), me = ({ children: t, className: e }) => /* @__PURE__ */ n("tbody", { className: i(b.body, e), children: t }), ge = ({ children: t, className: e }) => /* @__PURE__ */ n("td", { className: i(b.cell, e), children: t }), fe = ({ children: t, className: e }) => /* @__PURE__ */ n("tfoot", { className: i(b.footer, e), children: t }), je = Object.assign(F, {
344
+ }, F = ({ children: t, className: e }) => /* @__PURE__ */ n("table", { className: i(f.root, e), children: t }), de = ({ children: t, className: e }) => /* @__PURE__ */ n("caption", { className: i(f.caption, e), children: t }), _e = ({ children: t, className: e }) => /* @__PURE__ */ n("thead", { className: i(f.header, e), children: t }), ue = ({ children: t, className: e, onClick: o }) => /* @__PURE__ */ n("tr", { className: i(f.row, e), onClick: o, children: t }), he = ({ children: t, className: e }) => /* @__PURE__ */ n("th", { className: i(f.head, e), children: t }), me = ({ children: t, className: e }) => /* @__PURE__ */ n("tbody", { className: i(f.body, e), children: t }), ge = ({ children: t, className: e }) => /* @__PURE__ */ n("td", { className: i(f.cell, e), children: t }), be = ({ children: t, className: e }) => /* @__PURE__ */ n("tfoot", { className: i(f.footer, e), children: t }), je = Object.assign(F, {
345
345
  Body: me,
346
346
  Caption: de,
347
347
  Cell: ge,
348
- Footer: fe,
348
+ Footer: be,
349
349
  Head: he,
350
350
  Header: _e,
351
351
  Root: F,
352
352
  Row: ue
353
- }), be = "_inputContainer_iqbs3_1", pe = "_input_iqbs3_1", ve = "_inputSearch_iqbs3_40", we = "_error_iqbs3_43", Ce = "_button_iqbs3_58", Ne = "_buttonWithLabel_iqbs3_68", xe = "_resetSearchValue_iqbs3_73", ke = "_searchOutline_iqbs3_80", ye = "_errorMessage_iqbs3_87", u = {
354
- inputContainer: be,
353
+ }), fe = "_inputContainer_iqbs3_1", pe = "_input_iqbs3_1", ve = "_inputSearch_iqbs3_40", Ce = "_error_iqbs3_43", we = "_button_iqbs3_58", Ne = "_buttonWithLabel_iqbs3_68", xe = "_resetSearchValue_iqbs3_73", ke = "_searchOutline_iqbs3_80", ye = "_errorMessage_iqbs3_87", u = {
354
+ inputContainer: fe,
355
355
  input: pe,
356
356
  inputSearch: ve,
357
- error: we,
358
- button: Ce,
357
+ error: Ce,
358
+ button: we,
359
359
  buttonWithLabel: Ne,
360
360
  resetSearchValue: xe,
361
361
  searchOutline: ke,
362
362
  errorMessage: ye
363
- }, ze = f(({ className: t, error: e, label: o, onChange: s, required: c, ...r }, a) => {
363
+ }, ze = b(({ className: t, error: e, label: o, onChange: s, required: c, ...r }, a) => {
364
364
  const [_, d] = R(!1), l = (N) => s(N.currentTarget.value), m = i(u.input, e && u.error, t);
365
365
  let h;
366
366
  if (!r.as || r.as === "input") {
@@ -442,7 +442,7 @@ const tt = "_text_4m304_1", et = "_tertiary_4m304_1", ot = "_secondary_4m304_1",
442
442
  const e = K() || "system", [o, s] = R(e);
443
443
  return /* @__PURE__ */ n(z.Provider, { value: { setTheme: s, theme: o }, children: t });
444
444
  }, Xe = () => {
445
- const t = w(z);
445
+ const t = C(z);
446
446
  if (!t)
447
447
  throw new Error("useTheme must be used within a ThemeProvider");
448
448
  return Te(t.theme), t;
@@ -467,7 +467,7 @@ const tt = "_text_4m304_1", et = "_tertiary_4m304_1", ot = "_secondary_4m304_1",
467
467
  active: $e,
468
468
  disabled: Oe,
469
469
  keybinding: Ie
470
- }, Ge = f(
470
+ }, Ge = b(
471
471
  (t, e) => {
472
472
  const { classes: o, disabled: s, icon: c, isActive: r, keybinding: a, onClick: _, title: d } = t, l = We(o, r, s);
473
473
  return /* @__PURE__ */ g("label", { className: T.root, title: d, children: [
@@ -517,4 +517,4 @@ export {
517
517
  Ke as k,
518
518
  Xe as u
519
519
  };
520
- //# sourceMappingURL=ToolIconButton-uQjlHv_6.js.map
520
+ //# sourceMappingURL=ToolIconButton-C1LlNNL-.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"ToolIconButton-uQjlHv_6.js","sources":["../src/components/button/Button.tsx","../src/components/card/Card.tsx","../src/components/drop-down/DropDown.tsx","../src/components/dialog/Dialog.tsx","../src/components/sidebar/Sidebar.tsx","../src/components/switcher-buttons/SwitcherButtons.tsx","../src/components/table/Table.tsx","../src/components/text-field/text-field.tsx","../src/features/theme-provider/ThemeProvider.tsx","../src/components/toolbar/tool-icon-button/ToolIconButton.tsx"],"sourcesContent":["import classNames from 'classnames'\nimport {\n ComponentPropsWithoutRef,\n ElementRef,\n ElementType,\n ForwardedRef,\n ReactNode,\n forwardRef,\n} from 'react'\n\nimport { Replace } from '../../utils'\nimport s from './button.module.scss'\n\nexport type ButtonVariant = 'primary' | 'secondary' | 'tertiary' | 'text'\ntype OwnProps<T extends ElementType> = {\n children?: ReactNode\n className?: string\n component?: T\n disabled?: boolean\n fullWidth?: boolean\n variant?: ButtonVariant\n icon?: ReactNode\n shortcut?: string\n}\n\nexport type ButtonProps<T extends ElementType> = Replace<\n ComponentPropsWithoutRef<T>,\n OwnProps<T>\n>\n\ntype ButtonRenderType = {\n (\n props: ButtonProps<'button'>,\n ref?: ForwardedRef<ElementRef<'button'>>\n ): ReactNode\n (\n props: ButtonProps<ElementType>,\n ref?: ForwardedRef<ElementRef<ElementType>>\n ): ReactNode\n}\n\nexport type ButtonComponent = {\n <T extends ElementType = 'button'>(\n props: ButtonProps<T> & { ref?: ForwardedRef<ElementRef<T>> }\n ): ReactNode\n}\n\nexport const ButtonRender: ButtonRenderType = (\n {\n children,\n className,\n component: Component = 'button',\n disabled,\n fullWidth,\n icon,\n shortcut,\n variant = 'primary',\n ...props\n },\n ref\n) => {\n const content = (\n <div className={s.buttonWithIcon}>\n <div className={s.content}>\n {icon}\n {children}\n </div>\n <div className={s.shortcut}>{shortcut}</div>\n </div>\n )\n\n return (\n <Component\n className={classNames(\n s[variant],\n fullWidth && s.fullWidth,\n disabled && s.disabled,\n icon && s.icon,\n className\n )}\n children={icon ? content : children}\n disabled={disabled}\n ref={ref}\n {...props}\n />\n )\n}\n\nexport const Button: ButtonComponent = forwardRef(ButtonRender)\n","import classNames from 'classnames'\nimport { ComponentPropsWithoutRef, ElementRef, forwardRef } from 'react'\n\nimport s from './card.module.scss'\n\nexport type CardProps = ComponentPropsWithoutRef<'div'>\n\nexport const CardRoot = forwardRef<ElementRef<'div'>, CardProps>(\n ({ className, ...props }, ref) => (\n <div className={classNames(s.root, className)} ref={ref} {...props} />\n )\n)\n\nexport type CardContentProps = CardProps & { ignoreHeader?: boolean }\n\nexport const CardContent = forwardRef<ElementRef<'div'>, CardContentProps>(\n ({ className, ignoreHeader, ...props }, ref) => (\n <div\n className={classNames(\n s.content,\n !ignoreHeader && s.contentAfterHeader,\n className\n )}\n ref={ref}\n {...props}\n />\n )\n)\n\nexport const CardHeader = forwardRef<ElementRef<'div'>, CardProps>(\n ({ className, ...props }, ref) => (\n <div className={classNames(s.header, className)} ref={ref} {...props} />\n )\n)\n\nexport const Card = Object.assign(CardRoot, {\n Content: CardContent,\n Header: CardHeader,\n Root: CardRoot,\n})\n","import classNames from 'classnames'\nimport {\n createContext,\n ReactNode,\n useContext,\n useEffect,\n useRef,\n useState,\n} from 'react'\n\nimport styles from './drop-down.module.scss'\n\ninterface DropDownContextType {\n visible: boolean\n toggle: () => void\n close: () => void\n}\n\nconst DropDownContext = createContext<DropDownContextType | undefined>(\n undefined\n)\n\nconst useDropDownContext = () => {\n const context = useContext(DropDownContext)\n if (!context) {\n throw new Error('useDropDownContext must be used within a DropDown.Root')\n }\n return context\n}\n\ninterface RootProps {\n children: ReactNode\n defaultVisible?: boolean\n closeOnOutsideClick?: boolean\n closeOnEsc?: boolean\n}\n\nconst openDropDownStack: HTMLElement[] = []\n\nconst Root = ({\n children,\n closeOnEsc = true,\n closeOnOutsideClick = true,\n defaultVisible = false,\n}: RootProps) => {\n const [visible, setVisible] = useState(defaultVisible)\n const rootRef = useRef<HTMLDivElement>(null)\n\n const toggle = () => {\n if (!visible) {\n setVisible(true)\n if (rootRef.current) {\n openDropDownStack.push(rootRef.current)\n }\n } else {\n close()\n }\n }\n\n const close = () => {\n setVisible(false)\n if (rootRef.current) {\n const index = openDropDownStack.indexOf(rootRef.current)\n if (index !== -1) {\n openDropDownStack.splice(index, 1)\n }\n }\n }\n\n useEffect(() => {\n if (!closeOnOutsideClick) return\n\n const handleClickOutside = (event: MouseEvent) => {\n if (rootRef.current && !rootRef.current.contains(event.target as Node)) {\n close()\n }\n }\n\n document.addEventListener('mousedown', handleClickOutside)\n return () => {\n document.removeEventListener('mousedown', handleClickOutside)\n }\n }, [closeOnOutsideClick])\n\n useEffect(() => {\n if (!closeOnEsc) return\n\n const handleKeyDown = (event: KeyboardEvent) => {\n if (event.key === 'Escape' && visible) {\n const lastDropDown = openDropDownStack[openDropDownStack.length - 1]\n if (lastDropDown === rootRef.current) {\n close()\n }\n }\n }\n\n document.addEventListener('keydown', handleKeyDown)\n return () => {\n document.removeEventListener('keydown', handleKeyDown)\n }\n }, [closeOnEsc, visible])\n\n return (\n <DropDownContext.Provider value={{ close, toggle, visible }}>\n <div ref={rootRef} className={styles.root}>\n {children}\n </div>\n </DropDownContext.Provider>\n )\n}\n\ninterface TriggerProps {\n children: ReactNode\n}\n\nconst Trigger = ({ children }: TriggerProps) => {\n const { toggle } = useDropDownContext()\n return <div onClick={toggle}>{children}</div>\n}\n\ninterface ContentProps {\n children: ReactNode\n horizontal?: 'left' | 'center' | 'right'\n vertical?: 'top' | 'bottom'\n className?: string\n fixedPosition?: boolean\n}\n\nconst Content = ({\n children,\n className,\n fixedPosition = false,\n horizontal = 'left',\n vertical = 'bottom',\n}: ContentProps) => {\n const { visible } = useDropDownContext()\n\n if (!visible) return null\n\n return (\n <div\n className={classNames(\n styles.dropdownContent,\n styles[horizontal],\n styles[vertical],\n { [styles.fixedPosition]: fixedPosition },\n className\n )}\n >\n {children}\n </div>\n )\n}\n\nexport const DropDown = { Content, Root, Trigger }\n","import classNames from 'classnames'\nimport React, {\n useState,\n useRef,\n ReactNode,\n forwardRef,\n MouseEvent,\n ElementType,\n useContext,\n} from 'react'\n\nimport styles from './dialog.module.scss'\n\ninterface RootProps {\n children: React.ReactNode\n isOpen?: boolean\n onStateChange?: (isOpen: boolean) => void\n}\n\ninterface DialogContextProps {\n dialogRef: React.RefObject<HTMLDialogElement>\n isOpen: boolean\n setIsOpen: (state: boolean) => void\n}\nconst DialogContext = React.createContext<DialogContextProps | null>(null)\n\nconst Root = ({\n children,\n isOpen: externalIsOpen,\n onStateChange,\n}: RootProps) => {\n const dialogRef = useRef<HTMLDialogElement | null>(null)\n const [internalIsOpen, setInternalIsOpen] = useState(false)\n\n const isOpen = externalIsOpen !== undefined ? externalIsOpen : internalIsOpen\n const setIsOpen = (state: boolean) => {\n if (externalIsOpen === undefined) {\n setInternalIsOpen(state)\n }\n if (onStateChange) {\n onStateChange(state)\n }\n }\n\n return (\n <DialogContext.Provider value={{ dialogRef, isOpen, setIsOpen }}>\n <div className={styles.dialogRoot}>{children}</div>\n </DialogContext.Provider>\n )\n}\n\ninterface TriggerProps<T extends ElementType = 'button'> {\n as?: T\n children: ReactNode\n}\n\nconst Trigger = <T extends ElementType = 'button'>({\n as,\n children,\n ...props\n}: TriggerProps<T> & React.ComponentPropsWithoutRef<T>) => {\n const context = useContext(DialogContext)\n if (!context) throw new Error('Trigger must be used within a Dialog.Root')\n\n const { dialogRef, setIsOpen } = context\n const Component = as || 'button'\n\n const handleClick = () => {\n dialogRef.current?.showModal()\n setIsOpen(true)\n }\n\n return (\n <Component\n onClick={handleClick}\n {...props}\n className={styles.dialogTrigger}\n role={as && as !== 'button' ? 'button' : undefined}\n >\n {children}\n </Component>\n )\n}\n\ninterface ContentProps {\n children: ReactNode\n className?: string\n closeOnBackdropClick?: boolean\n}\n\nconst Content = forwardRef<HTMLDialogElement, ContentProps>(\n ({ children, className, closeOnBackdropClick = true }, _) => {\n const context = useContext(DialogContext)\n if (!context) throw new Error('Content must be used within a Dialog.Root')\n\n const { dialogRef, isOpen, setIsOpen } = context\n\n const handleBackdropClick = (event: MouseEvent<HTMLDialogElement>) => {\n if (closeOnBackdropClick && event.target === dialogRef.current) {\n dialogRef.current?.close()\n setIsOpen(false)\n }\n }\n\n return (\n <dialog\n ref={dialogRef}\n className={classNames(styles.dialogContent, className)}\n onClick={handleBackdropClick}\n open={isOpen}\n >\n <div onClick={(e) => e.stopPropagation()}>{children}</div>\n </dialog>\n )\n }\n)\n\ninterface CloseProps<T extends ElementType = 'button'> {\n as?: T\n children?: ReactNode\n}\n\nconst Close = <T extends ElementType = 'button'>({\n as,\n children,\n ...props\n}: CloseProps<T> & React.ComponentPropsWithoutRef<T>) => {\n const context = useContext(DialogContext)\n if (!context) throw new Error('Close must be used within a Dialog.Root')\n\n const { dialogRef, setIsOpen } = context\n const Component = as || 'button'\n\n const handleClick = () => {\n dialogRef.current?.close()\n setIsOpen(false)\n }\n\n return (\n <Component\n onClick={handleClick}\n {...props}\n className={styles.dialogClose}\n role={as && as !== 'button' ? 'button' : undefined}\n >\n {children}\n </Component>\n )\n}\n\ninterface TitleProps {\n children: ReactNode\n className?: string\n}\n\nconst Title = ({ children, className }: TitleProps) => {\n return (\n <h2 className={classNames(styles.dialogTitle, className)}>{children}</h2>\n )\n}\n\ninterface SeparatorProps {}\n\nconst Separator = ({}: SeparatorProps) => {\n return <div className={styles.dialogSeparator} />\n}\n\nexport const Dialog = {\n Close,\n Content,\n Root,\n Separator,\n Title,\n Trigger,\n}\n","import classNames from 'classnames'\nimport {\n createContext,\n MouseEvent,\n ReactNode,\n useContext,\n useEffect,\n useRef,\n} from 'react'\n\nimport styles from './sidebar.module.scss'\n\ntype SidebarContextProps = {\n isOpen: boolean\n setIsOpen: (isOpen: boolean) => void\n}\n\nexport const SidebarContext = createContext<SidebarContextProps | undefined>(\n undefined\n)\n\nexport const useSidebarContext = () => {\n const context = useContext(SidebarContext)\n if (!context) {\n throw new Error('useSidebarContext must be used within a SidebarProvider')\n }\n return context\n}\n\ntype SidebarRootProps = {\n isOpen: boolean\n setIsOpen: (isOpen: boolean) => void\n children: ReactNode\n}\n\nconst Root = ({ children, isOpen, setIsOpen }: SidebarRootProps) => {\n return (\n <SidebarContext.Provider\n value={{\n isOpen: isOpen,\n setIsOpen: () => setIsOpen(!isOpen),\n }}\n >\n {children}\n </SidebarContext.Provider>\n )\n}\n\ntype SidebarTriggerProps = {\n children: ReactNode\n}\n\nconst Trigger = ({ children }: SidebarTriggerProps) => {\n const { setIsOpen } = useSidebarContext()\n\n const onClickHandler = (event: MouseEvent<HTMLDivElement>) => {\n event.preventDefault()\n setIsOpen(true)\n }\n\n return (\n <div className={styles.trigger} onClick={onClickHandler}>\n {children}\n </div>\n )\n}\n\ntype SidebarContentProps = {\n position?: 'left' | 'right' | 'bottom' | 'top'\n children: ReactNode\n className?: string\n closeOnOutsideClick?: boolean\n}\n\nconst Content = ({\n children,\n className,\n closeOnOutsideClick = true,\n position = 'right',\n}: SidebarContentProps) => {\n const { isOpen, setIsOpen } = useSidebarContext()\n const contentRef = useRef<HTMLDivElement | null>(null)\n\n useEffect(() => {\n if (!closeOnOutsideClick) return\n\n const handleClickOutside = (event: Event) => {\n if (\n contentRef.current &&\n !contentRef.current.contains(event.target as Node)\n ) {\n setIsOpen(false)\n }\n }\n\n if (isOpen) {\n document.addEventListener('mousedown', handleClickOutside)\n }\n\n return () => {\n document.removeEventListener('mousedown', handleClickOutside)\n }\n }, [isOpen, setIsOpen, closeOnOutsideClick])\n\n return (\n <div\n ref={contentRef}\n className={classNames(\n styles[position],\n styles.content,\n {\n [styles.close]: !isOpen,\n [styles.open]: isOpen,\n },\n className\n )}\n >\n {children}\n </div>\n )\n}\n\ntype SidebarCloseProps = {\n children: ReactNode\n}\n\nconst Close = ({ children }: SidebarCloseProps) => {\n const { setIsOpen } = useSidebarContext()\n\n const onClickHandler = (event: MouseEvent<HTMLButtonElement>) => {\n event.preventDefault()\n setIsOpen(false)\n }\n\n return (\n <button className={styles.close} onClick={onClickHandler}>\n {children}\n </button>\n )\n}\n\nexport const Sidebar = {\n Close,\n Content,\n Root,\n Trigger,\n}\n","import classNames from 'classnames'\nimport React, { ElementType, forwardRef, ReactNode, useState } from 'react'\n\nimport style from './switcher-buttons.module.scss'\n\ninterface ComponentValues {\n value: string\n [key: string]: any\n}\n\ninterface SwitcherProps {\n componentValues: ComponentValues[]\n defaultValue?: string\n onChange?: (value: string) => void\n selectedValue?: string\n component: ElementType\n containerProps?: React.HTMLAttributes<HTMLDivElement>\n slot?: ReactNode\n className?: string\n}\n\nexport const SwitcherButtons = forwardRef<HTMLDivElement, SwitcherProps>(\n (\n {\n className,\n component: Component,\n componentValues,\n containerProps,\n onChange,\n selectedValue,\n slot,\n },\n ref\n ) => {\n const [activeValue, setActiveValue] = useState<string>(\n selectedValue || componentValues[0].value\n )\n\n const onChangeHandler = (value: string) => {\n setActiveValue(value)\n if (onChange) onChange(value)\n }\n\n return (\n <div ref={ref} className={style.switcher} {...containerProps}>\n <div className={classNames(style.buttons, className)}>\n {componentValues.map((button, index) => (\n <Component\n key={index}\n {...button}\n selected={activeValue === button.value}\n onClick={() => onChangeHandler(button.value)}\n />\n ))}\n </div>\n {slot && (\n <>\n <div className={style.separator} />\n {slot}\n </>\n )}\n </div>\n )\n }\n)\n","import classNames from 'classnames'\nimport { MouseEventHandler, ReactNode } from 'react'\n\nimport s from './table.module.scss'\n\ninterface Props {\n children: ReactNode\n className?: string\n}\n\ninterface RootProps extends Props {}\nconst Root = ({ children, className }: RootProps) => {\n return <table className={classNames(s.root, className)}>{children}</table>\n}\n\ninterface CaptionProps extends Props {}\nconst Caption = ({ children, className }: CaptionProps) => {\n return (\n <caption className={classNames(s.caption, className)}>{children}</caption>\n )\n}\n\ninterface HeaderProps extends Props {}\nconst Header = ({ children, className }: HeaderProps) => {\n return <thead className={classNames(s.header, className)}>{children}</thead>\n}\n\ninterface RowProps extends Props {\n onClick?: MouseEventHandler<HTMLTableRowElement> | undefined\n}\nconst Row = ({ children, className, onClick }: RowProps) => {\n return (\n <tr className={classNames(s.row, className)} onClick={onClick}>\n {children}\n </tr>\n )\n}\n\ninterface HeadProps extends Props {}\nconst Head = ({ children, className }: HeadProps) => {\n return <th className={classNames(s.head, className)}>{children}</th>\n}\n\ninterface BodyProps extends Props {}\nconst Body = ({ children, className }: BodyProps) => {\n return <tbody className={classNames(s.body, className)}>{children}</tbody>\n}\n\ninterface CellProps extends Props {}\nconst Cell = ({ children, className }: CellProps) => {\n return <td className={classNames(s.cell, className)}>{children}</td>\n}\n\ninterface FooterProps extends Props {}\nconst Footer = ({ children, className }: FooterProps) => {\n return <tfoot className={classNames(s.footer, className)}>{children}</tfoot>\n}\n\nexport const Table = Object.assign(Root, {\n Body,\n Caption,\n Cell,\n Footer,\n Head,\n Header,\n Root,\n Row,\n})\n","import {\n ChangeEvent,\n ForwardedRef,\n ReactNode,\n forwardRef,\n useState,\n} from 'react'\n\nimport classNames from 'classnames'\n\nimport s from './text-field.module.scss'\nimport { X, Eye, Search, EyeOff } from 'lucide-react'\n\ntype SharedProps = {\n className?: string\n disabled?: boolean\n error?: string\n label?: string\n onBlur?: () => void\n onChange: (value: string) => void\n onFocus?: () => void\n placeholder?: string\n required?: boolean\n value: string\n}\n\nexport type TextFieldProps =\n | (SharedProps & {\n as?: 'input'\n inputType?: 'password' | 'search' | 'text'\n })\n | (SharedProps & { as: 'textarea' })\n\nexport type TextFieldComponent = {\n (\n props: Extract<TextFieldProps, { as: 'textarea' }> & {\n ref?: ForwardedRef<HTMLTextAreaElement>\n }\n ): ReactNode\n (\n props: Extract<TextFieldProps, { as?: 'input' }> & {\n ref?: ForwardedRef<HTMLInputElement>\n }\n ): ReactNode\n}\n\nexport const TextField: TextFieldComponent = forwardRef<\n HTMLInputElement | HTMLTextAreaElement,\n TextFieldProps\n>(({ className, error, label, onChange, required, ...props }, ref) => {\n const [showPassword, setShowPassword] = useState(false)\n\n const handleChange = (\n e: ChangeEvent<HTMLInputElement | HTMLTextAreaElement>\n ) => onChange(e.currentTarget.value)\n\n const sharedClassName = classNames(s.input, error && s.error, className)\n let resolvedFragment: ReactNode\n\n if (!props.as || props.as === 'input') {\n const { as, inputType, ...restProps } = props\n const isSearch = inputType === 'search'\n const isPassword = inputType === 'password'\n const passwordFieldNextType = showPassword ? 'text' : 'password'\n\n resolvedFragment = (\n <>\n <input\n className={classNames(sharedClassName, isSearch && s.inputSearch)}\n onChange={handleChange}\n ref={ref as unknown as ForwardedRef<HTMLInputElement>}\n type={isPassword ? passwordFieldNextType : inputType}\n {...restProps}\n />\n {isPassword &&\n (showPassword ? (\n <Eye\n strokeWidth={2.5}\n width={20}\n className={classNames(s.button, label && s.buttonWithLabel)}\n onClick={() => setShowPassword((prev) => !prev)}\n />\n ) : (\n <EyeOff\n strokeWidth={2.5}\n width={20}\n className={classNames(s.button, label && s.buttonWithLabel)}\n onClick={() => setShowPassword((prev) => !prev)}\n />\n ))}\n {isSearch && props.value && (\n <X\n onClick={() => onChange('')}\n className={classNames(\n s.button,\n label && s.buttonWithLabel,\n s.resetSearchValue\n )}\n strokeWidth={2.5}\n size={24}\n />\n )}\n {isSearch && (\n <Search\n className={classNames(\n s.searchOutline,\n label && s.searchOutlineWithLabel\n )}\n size={20}\n />\n )}\n </>\n )\n }\n\n if (props.as === 'textarea') {\n const { as, ...restProps } = props\n\n resolvedFragment = (\n <textarea\n className={sharedClassName}\n onChange={handleChange}\n ref={ref as unknown as ForwardedRef<HTMLTextAreaElement>}\n {...restProps}\n />\n )\n }\n\n return (\n <div className={s.root}>\n <span className={s.title}>\n {label}\n {required && <span className={s.titleError}>*</span>}\n </span>\n <div className={s.inputContainer}>{resolvedFragment}</div>\n <div className={s.errorMessage}>{error}</div>\n </div>\n )\n})\n","import { createContext, useContext, useState, ReactNode } from 'react'\n\nexport type Theme = 'light' | 'dark'\nexport type ThemeValue = Theme | 'system'\n\ninterface ThemeContextType {\n theme: ThemeValue\n setTheme: (theme: ThemeValue) => void\n}\n\nconst ThemeContext = createContext<ThemeContextType | undefined>(undefined)\n\nexport const ThemeProvider = ({ children }: { children: ReactNode }) => {\n const defaultTheme = getTheme() || 'system'\n const [theme, setTheme] = useState<ThemeValue>(defaultTheme)\n\n return (\n <ThemeContext.Provider value={{ setTheme, theme }}>\n {children}\n </ThemeContext.Provider>\n )\n}\n\nexport const useTheme = () => {\n const context = useContext(ThemeContext)\n\n if (!context) {\n throw new Error('useTheme must be used within a ThemeProvider')\n }\n\n setDataThemeHandler(context.theme)\n\n return context\n}\n\nconst setDataThemeHandler = (value: ThemeValue) => {\n const savedTheme = getTheme()\n\n saveTheme(value || savedTheme)\n}\n\nconst saveTheme = (theme: ThemeValue) => {\n const prefersDarkScheme = window.matchMedia('(prefers-color-scheme: dark)')\n\n if (theme === 'system') {\n const defaultTheme = prefersDarkScheme.matches ? 'dark' : 'light'\n localStorage.setItem('theme', theme)\n setTheme(defaultTheme)\n } else {\n localStorage.setItem('theme', theme)\n setTheme(theme)\n }\n}\n\nconst setTheme = (theme: Theme) => {\n document.documentElement.setAttribute('data-theme', theme)\n}\n\nconst getTheme = () => {\n const theme = localStorage.getItem('theme')\n if (theme) return theme as ThemeValue\n}\n","import classNames from 'classnames'\nimport { ReactNode, forwardRef } from 'react'\n\nimport s from './tool-icon-button.module.scss'\n\nexport type ToolbarSlot = 'icon' | 'keybinding'\nexport type ToolbarClasses = { [P in ToolbarSlot]?: string }\n\ninterface Props {\n title?: string\n icon: ReactNode\n keybinding?: string\n aria_label?: string\n aria_keyshortcuts?: string\n classes?: ToolbarClasses\n name?: string\n id?: string\n isActive?: boolean\n disabled?: boolean\n onClick?: () => void\n}\n\nexport const ToolIconButton = forwardRef<HTMLDivElement, Props>(\n (props, ref) => {\n const { classes, disabled, icon, isActive, keybinding, onClick, title } =\n props\n\n const styles = getClasses(classes, isActive, disabled)\n\n return (\n <label className={s.root} title={title}>\n <div\n className={styles.icon}\n ref={ref}\n tabIndex={disabled ? -1 : 0}\n role=\"button\"\n aria-pressed={isActive}\n aria-disabled={disabled}\n onClick={!disabled ? onClick : undefined}\n >\n {icon}\n </div>\n {keybinding && <span className={styles.keybinding}>{keybinding}</span>}\n </label>\n )\n }\n)\n\nconst getClasses = (\n classes?: ToolbarClasses,\n isActive?: boolean,\n disabled?: boolean\n): Required<ToolbarClasses> => ({\n icon: classNames(\n s.icon,\n {\n [s.active]: isActive,\n [s.disabled]: disabled,\n },\n classes?.icon\n ),\n keybinding: classNames(s.keybinding, classes?.keybinding),\n})\n"],"names":["ButtonRender","children","className","Component","disabled","fullWidth","icon","shortcut","variant","props","ref","content","jsxs","s","jsx","classNames","Button","forwardRef","CardRoot","CardContent","ignoreHeader","CardHeader","Card","DropDownContext","createContext","useDropDownContext","context","useContext","openDropDownStack","Root","closeOnEsc","closeOnOutsideClick","defaultVisible","visible","setVisible","useState","rootRef","useRef","toggle","close","index","useEffect","handleClickOutside","event","handleKeyDown","styles","Trigger","Content","fixedPosition","horizontal","vertical","DropDown","DialogContext","React","externalIsOpen","onStateChange","dialogRef","internalIsOpen","setInternalIsOpen","isOpen","setIsOpen","state","as","closeOnBackdropClick","_","handleBackdropClick","e","Close","Title","Separator","Dialog","SidebarContext","useSidebarContext","onClickHandler","position","contentRef","Sidebar","SwitcherButtons","componentValues","containerProps","onChange","selectedValue","slot","activeValue","setActiveValue","onChangeHandler","value","style","button","Fragment","Caption","Header","Row","onClick","Head","Body","Cell","Footer","Table","TextField","error","label","required","showPassword","setShowPassword","handleChange","sharedClassName","resolvedFragment","inputType","restProps","isSearch","isPassword","passwordFieldNextType","Eye","prev","EyeOff","X","Search","ThemeContext","ThemeProvider","defaultTheme","getTheme","theme","setTheme","useTheme","setDataThemeHandler","savedTheme","saveTheme","prefersDarkScheme","ToolIconButton","classes","isActive","keybinding","title","getClasses"],"mappings":"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"}
1
+ {"version":3,"file":"ToolIconButton-C1LlNNL-.js","sources":["../src/components/button/Button.tsx","../src/components/card/Card.tsx","../src/components/drop-down/DropDown.tsx","../src/components/dialog/Dialog.tsx","../src/components/sidebar/Sidebar.tsx","../src/components/switcher-buttons/SwitcherButtons.tsx","../src/components/table/Table.tsx","../src/components/text-field/text-field.tsx","../src/features/theme-provider/ThemeProvider.tsx","../src/components/toolbar/tool-icon-button/ToolIconButton.tsx"],"sourcesContent":["import classNames from 'classnames'\nimport {\n ComponentPropsWithoutRef,\n ElementRef,\n ElementType,\n ForwardedRef,\n ReactNode,\n forwardRef,\n} from 'react'\n\nimport { Replace } from '../../utils'\nimport s from './button.module.scss'\n\nexport type ButtonVariant = 'primary' | 'secondary' | 'tertiary' | 'text'\ntype OwnProps<T extends ElementType> = {\n children?: ReactNode\n className?: string\n component?: T\n disabled?: boolean\n fullWidth?: boolean\n variant?: ButtonVariant\n icon?: ReactNode\n shortcut?: string\n}\n\nexport type ButtonProps<T extends ElementType> = Replace<\n ComponentPropsWithoutRef<T>,\n OwnProps<T>\n>\n\ntype ButtonRenderType = {\n (\n props: ButtonProps<'button'>,\n ref?: ForwardedRef<ElementRef<'button'>>\n ): ReactNode\n (\n props: ButtonProps<ElementType>,\n ref?: ForwardedRef<ElementRef<ElementType>>\n ): ReactNode\n}\n\nexport type ButtonComponent = {\n <T extends ElementType = 'button'>(\n props: ButtonProps<T> & { ref?: ForwardedRef<ElementRef<T>> }\n ): ReactNode\n}\n\nexport const ButtonRender: ButtonRenderType = (\n {\n children,\n className,\n component: Component = 'button',\n disabled,\n fullWidth,\n icon,\n shortcut,\n variant = 'primary',\n ...props\n },\n ref\n) => {\n const content = (\n <div className={s.buttonWithIcon}>\n <div className={s.content}>\n {icon}\n {children}\n </div>\n <div className={s.shortcut}>{shortcut}</div>\n </div>\n )\n\n return (\n <Component\n className={classNames(\n s[variant],\n fullWidth && s.fullWidth,\n disabled && s.disabled,\n icon && s.icon,\n className\n )}\n children={icon ? content : children}\n disabled={disabled}\n ref={ref}\n {...props}\n />\n )\n}\n\nexport const Button: ButtonComponent = forwardRef(ButtonRender)\n","import classNames from 'classnames'\nimport { ComponentPropsWithoutRef, ElementRef, forwardRef } from 'react'\n\nimport s from './card.module.scss'\n\nexport type CardProps = ComponentPropsWithoutRef<'div'>\n\nexport const CardRoot = forwardRef<ElementRef<'div'>, CardProps>(\n ({ className, ...props }, ref) => (\n <div className={classNames(s.root, className)} ref={ref} {...props} />\n )\n)\n\nexport type CardContentProps = CardProps & { ignoreHeader?: boolean }\n\nexport const CardContent = forwardRef<ElementRef<'div'>, CardContentProps>(\n ({ className, ignoreHeader, ...props }, ref) => (\n <div\n className={classNames(\n s.content,\n !ignoreHeader && s.contentAfterHeader,\n className\n )}\n ref={ref}\n {...props}\n />\n )\n)\n\nexport const CardHeader = forwardRef<ElementRef<'div'>, CardProps>(\n ({ className, ...props }, ref) => (\n <div className={classNames(s.header, className)} ref={ref} {...props} />\n )\n)\n\nexport const Card = Object.assign(CardRoot, {\n Content: CardContent,\n Header: CardHeader,\n Root: CardRoot,\n})\n","import classNames from 'classnames'\nimport {\n createContext,\n ReactNode,\n useContext,\n useEffect,\n useRef,\n useState,\n} from 'react'\n\nimport styles from './drop-down.module.scss'\n\ninterface DropDownContextType {\n visible: boolean\n toggle: () => void\n close: () => void\n}\n\nconst DropDownContext = createContext<DropDownContextType | undefined>(\n undefined\n)\n\nconst useDropDownContext = () => {\n const context = useContext(DropDownContext)\n if (!context) {\n throw new Error('useDropDownContext must be used within a DropDown.Root')\n }\n return context\n}\n\ninterface RootProps {\n children: ReactNode\n defaultVisible?: boolean\n closeOnOutsideClick?: boolean\n closeOnEsc?: boolean\n}\n\nconst openDropDownStack: HTMLElement[] = []\n\nconst Root = ({\n children,\n closeOnEsc = true,\n closeOnOutsideClick = true,\n defaultVisible = false,\n}: RootProps) => {\n const [visible, setVisible] = useState(defaultVisible)\n const rootRef = useRef<HTMLDivElement>(null)\n\n const toggle = () => {\n if (!visible) {\n setVisible(true)\n if (rootRef.current) {\n openDropDownStack.push(rootRef.current)\n }\n } else {\n close()\n }\n }\n\n const close = () => {\n setVisible(false)\n if (rootRef.current) {\n const index = openDropDownStack.indexOf(rootRef.current)\n if (index !== -1) {\n openDropDownStack.splice(index, 1)\n }\n }\n }\n\n useEffect(() => {\n if (!closeOnOutsideClick) return\n\n const handleClickOutside = (event: MouseEvent) => {\n if (rootRef.current && !rootRef.current.contains(event.target as Node)) {\n close()\n }\n }\n\n document.addEventListener('mousedown', handleClickOutside)\n return () => {\n document.removeEventListener('mousedown', handleClickOutside)\n }\n }, [closeOnOutsideClick])\n\n useEffect(() => {\n if (!closeOnEsc) return\n\n const handleKeyDown = (event: KeyboardEvent) => {\n if (event.key === 'Escape' && visible) {\n const lastDropDown = openDropDownStack[openDropDownStack.length - 1]\n if (lastDropDown === rootRef.current) {\n close()\n }\n }\n }\n\n document.addEventListener('keydown', handleKeyDown)\n return () => {\n document.removeEventListener('keydown', handleKeyDown)\n }\n }, [closeOnEsc, visible])\n\n return (\n <DropDownContext.Provider value={{ close, toggle, visible }}>\n <div ref={rootRef} className={styles.root}>\n {children}\n </div>\n </DropDownContext.Provider>\n )\n}\n\ninterface TriggerProps {\n children: ReactNode\n}\n\nconst Trigger = ({ children }: TriggerProps) => {\n const { toggle } = useDropDownContext()\n return <div onClick={toggle}>{children}</div>\n}\n\ninterface ContentProps {\n children: ReactNode\n horizontal?: 'left' | 'center' | 'right'\n vertical?: 'top' | 'bottom'\n className?: string\n fixedPosition?: boolean\n}\n\nconst Content = ({\n children,\n className,\n fixedPosition = false,\n horizontal = 'left',\n vertical = 'bottom',\n}: ContentProps) => {\n const { visible } = useDropDownContext()\n\n if (!visible) return null\n\n return (\n <div\n className={classNames(\n styles.dropdownContent,\n styles[horizontal],\n styles[vertical],\n { [styles.fixedPosition]: fixedPosition },\n className\n )}\n >\n {children}\n </div>\n )\n}\n\nexport const DropDown = { Content, Root, Trigger }\n","import classNames from 'classnames'\nimport React, {\n useState,\n useRef,\n ReactNode,\n forwardRef,\n MouseEvent,\n ElementType,\n useContext,\n} from 'react'\n\nimport styles from './dialog.module.scss'\n\ninterface RootProps {\n children: React.ReactNode\n isOpen?: boolean\n onStateChange?: (isOpen: boolean) => void\n}\n\ninterface DialogContextProps {\n dialogRef: React.RefObject<HTMLDialogElement>\n isOpen: boolean\n setIsOpen: (state: boolean) => void\n}\nconst DialogContext = React.createContext<DialogContextProps | null>(null)\n\nconst Root = ({\n children,\n isOpen: externalIsOpen,\n onStateChange,\n}: RootProps) => {\n const dialogRef = useRef<HTMLDialogElement | null>(null)\n const [internalIsOpen, setInternalIsOpen] = useState(false)\n\n const isOpen = externalIsOpen !== undefined ? externalIsOpen : internalIsOpen\n const setIsOpen = (state: boolean) => {\n if (externalIsOpen === undefined) {\n setInternalIsOpen(state)\n }\n if (onStateChange) {\n onStateChange(state)\n }\n }\n\n return (\n <DialogContext.Provider value={{ dialogRef, isOpen, setIsOpen }}>\n <div className={styles.dialogRoot}>{children}</div>\n </DialogContext.Provider>\n )\n}\n\ninterface TriggerProps<T extends ElementType = 'button'> {\n as?: T\n children: ReactNode\n}\n\nconst Trigger = <T extends ElementType = 'button'>({\n as,\n children,\n ...props\n}: TriggerProps<T> & React.ComponentPropsWithoutRef<T>) => {\n const context = useContext(DialogContext)\n if (!context) throw new Error('Trigger must be used within a Dialog.Root')\n\n const { dialogRef, setIsOpen } = context\n const Component = as || 'button'\n\n const handleClick = () => {\n dialogRef.current?.showModal()\n setIsOpen(true)\n }\n\n return (\n <Component\n onClick={handleClick}\n {...props}\n className={styles.dialogTrigger}\n role={as && as !== 'button' ? 'button' : undefined}\n >\n {children}\n </Component>\n )\n}\n\ninterface ContentProps {\n children: ReactNode\n className?: string\n closeOnBackdropClick?: boolean\n}\n\nconst Content = forwardRef<HTMLDialogElement, ContentProps>(\n ({ children, className, closeOnBackdropClick = true }, _) => {\n const context = useContext(DialogContext)\n if (!context) throw new Error('Content must be used within a Dialog.Root')\n\n const { dialogRef, isOpen, setIsOpen } = context\n\n const handleBackdropClick = (event: MouseEvent<HTMLDialogElement>) => {\n if (closeOnBackdropClick && event.target === dialogRef.current) {\n dialogRef.current?.close()\n setIsOpen(false)\n }\n }\n\n return (\n <dialog\n ref={dialogRef}\n className={classNames(styles.dialogContent, className)}\n onClick={handleBackdropClick}\n open={isOpen}\n >\n <div onClick={(e) => e.stopPropagation()}>{children}</div>\n </dialog>\n )\n }\n)\n\ninterface CloseProps<T extends ElementType = 'button'> {\n as?: T\n children?: ReactNode\n}\n\nconst Close = <T extends ElementType = 'button'>({\n as,\n children,\n ...props\n}: CloseProps<T> & React.ComponentPropsWithoutRef<T>) => {\n const context = useContext(DialogContext)\n if (!context) throw new Error('Close must be used within a Dialog.Root')\n\n const { dialogRef, setIsOpen } = context\n const Component = as || 'button'\n\n const handleClick = () => {\n dialogRef.current?.close()\n setIsOpen(false)\n }\n\n return (\n <Component\n onClick={handleClick}\n {...props}\n className={styles.dialogClose}\n role={as && as !== 'button' ? 'button' : undefined}\n >\n {children}\n </Component>\n )\n}\n\ninterface TitleProps {\n children: ReactNode\n className?: string\n}\n\nconst Title = ({ children, className }: TitleProps) => {\n return (\n <h2 className={classNames(styles.dialogTitle, className)}>{children}</h2>\n )\n}\n\ninterface SeparatorProps {}\n\nconst Separator = ({}: SeparatorProps) => {\n return <div className={styles.dialogSeparator} />\n}\n\nexport const Dialog = {\n Close,\n Content,\n Root,\n Separator,\n Title,\n Trigger,\n}\n","import classNames from 'classnames'\nimport {\n createContext,\n MouseEvent,\n ReactNode,\n useContext,\n useEffect,\n useRef,\n} from 'react'\n\nimport styles from './sidebar.module.scss'\n\ntype SidebarContextProps = {\n isOpen: boolean\n setIsOpen: (isOpen: boolean) => void\n}\n\nexport const SidebarContext = createContext<SidebarContextProps | undefined>(\n undefined\n)\n\nexport const useSidebarContext = () => {\n const context = useContext(SidebarContext)\n if (!context) {\n throw new Error('useSidebarContext must be used within a SidebarProvider')\n }\n return context\n}\n\ntype SidebarRootProps = {\n isOpen: boolean\n setIsOpen: (isOpen: boolean) => void\n children: ReactNode\n}\n\nconst Root = ({ children, isOpen, setIsOpen }: SidebarRootProps) => {\n return (\n <SidebarContext.Provider\n value={{\n isOpen: isOpen,\n setIsOpen: () => setIsOpen(!isOpen),\n }}\n >\n {children}\n </SidebarContext.Provider>\n )\n}\n\ntype SidebarTriggerProps = {\n children: ReactNode\n}\n\nconst Trigger = ({ children }: SidebarTriggerProps) => {\n const { setIsOpen } = useSidebarContext()\n\n const onClickHandler = (event: MouseEvent<HTMLDivElement>) => {\n event.preventDefault()\n setIsOpen(true)\n }\n\n return (\n <div className={styles.trigger} onClick={onClickHandler}>\n {children}\n </div>\n )\n}\n\ntype SidebarContentProps = {\n position?: 'left' | 'right' | 'bottom' | 'top'\n children: ReactNode\n className?: string\n closeOnOutsideClick?: boolean\n}\n\nconst Content = ({\n children,\n className,\n closeOnOutsideClick = true,\n position = 'right',\n}: SidebarContentProps) => {\n const { isOpen, setIsOpen } = useSidebarContext()\n const contentRef = useRef<HTMLDivElement | null>(null)\n\n useEffect(() => {\n if (!closeOnOutsideClick) return\n\n const handleClickOutside = (event: Event) => {\n if (\n contentRef.current &&\n !contentRef.current.contains(event.target as Node)\n ) {\n setIsOpen(false)\n }\n }\n\n if (isOpen) {\n document.addEventListener('mousedown', handleClickOutside)\n }\n\n return () => {\n document.removeEventListener('mousedown', handleClickOutside)\n }\n }, [isOpen, setIsOpen, closeOnOutsideClick])\n\n return (\n <div\n ref={contentRef}\n className={classNames(\n styles[position],\n styles.content,\n {\n [styles.close]: !isOpen,\n [styles.open]: isOpen,\n },\n className\n )}\n >\n {children}\n </div>\n )\n}\n\ntype SidebarCloseProps = {\n children: ReactNode\n}\n\nconst Close = ({ children }: SidebarCloseProps) => {\n const { setIsOpen } = useSidebarContext()\n\n const onClickHandler = (event: MouseEvent<HTMLButtonElement>) => {\n event.preventDefault()\n setIsOpen(false)\n }\n\n return (\n <button className={styles.close} onClick={onClickHandler}>\n {children}\n </button>\n )\n}\n\nexport const Sidebar = {\n Close,\n Content,\n Root,\n Trigger,\n}\n","import classNames from 'classnames'\nimport React, { ElementType, forwardRef, ReactNode, useState } from 'react'\n\nimport style from './switcher-buttons.module.scss'\n\ninterface ComponentValues {\n value: string\n [key: string]: any\n}\n\ninterface SwitcherProps {\n componentValues: ComponentValues[]\n defaultValue?: string\n onChange?: (value: string) => void\n selectedValue?: string\n component: ElementType\n containerProps?: React.HTMLAttributes<HTMLDivElement>\n slot?: ReactNode\n className?: string\n}\n\nexport const SwitcherButtons = forwardRef<HTMLDivElement, SwitcherProps>(\n (\n {\n className,\n component: Component,\n componentValues,\n containerProps,\n onChange,\n selectedValue,\n slot,\n },\n ref\n ) => {\n const [activeValue, setActiveValue] = useState<string>(\n selectedValue || componentValues[0].value\n )\n\n const onChangeHandler = (value: string) => {\n setActiveValue(value)\n if (onChange) onChange(value)\n }\n\n return (\n <div ref={ref} className={style.switcher} {...containerProps}>\n <div className={classNames(style.buttons, className)}>\n {componentValues.map((button, index) => (\n <Component\n key={index}\n {...button}\n selected={activeValue === button.value}\n onClick={() => onChangeHandler(button.value)}\n />\n ))}\n </div>\n {slot && (\n <>\n <div className={style.separator} />\n {slot}\n </>\n )}\n </div>\n )\n }\n)\n","import classNames from 'classnames'\nimport { MouseEventHandler, ReactNode } from 'react'\n\nimport s from './table.module.scss'\n\ninterface Props {\n children: ReactNode\n className?: string\n}\n\ninterface RootProps extends Props {}\nconst Root = ({ children, className }: RootProps) => {\n return <table className={classNames(s.root, className)}>{children}</table>\n}\n\ninterface CaptionProps extends Props {}\nconst Caption = ({ children, className }: CaptionProps) => {\n return (\n <caption className={classNames(s.caption, className)}>{children}</caption>\n )\n}\n\ninterface HeaderProps extends Props {}\nconst Header = ({ children, className }: HeaderProps) => {\n return <thead className={classNames(s.header, className)}>{children}</thead>\n}\n\ninterface RowProps extends Props {\n onClick?: MouseEventHandler<HTMLTableRowElement> | undefined\n}\nconst Row = ({ children, className, onClick }: RowProps) => {\n return (\n <tr className={classNames(s.row, className)} onClick={onClick}>\n {children}\n </tr>\n )\n}\n\ninterface HeadProps extends Props {}\nconst Head = ({ children, className }: HeadProps) => {\n return <th className={classNames(s.head, className)}>{children}</th>\n}\n\ninterface BodyProps extends Props {}\nconst Body = ({ children, className }: BodyProps) => {\n return <tbody className={classNames(s.body, className)}>{children}</tbody>\n}\n\ninterface CellProps extends Props {}\nconst Cell = ({ children, className }: CellProps) => {\n return <td className={classNames(s.cell, className)}>{children}</td>\n}\n\ninterface FooterProps extends Props {}\nconst Footer = ({ children, className }: FooterProps) => {\n return <tfoot className={classNames(s.footer, className)}>{children}</tfoot>\n}\n\nexport const Table = Object.assign(Root, {\n Body,\n Caption,\n Cell,\n Footer,\n Head,\n Header,\n Root,\n Row,\n})\n","import {\n ChangeEvent,\n ForwardedRef,\n ReactNode,\n forwardRef,\n useState,\n} from 'react'\n\nimport classNames from 'classnames'\n\nimport s from './text-field.module.scss'\nimport { X, Eye, Search, EyeOff } from 'lucide-react'\n\ntype SharedProps = {\n className?: string\n disabled?: boolean\n error?: string\n label?: string\n onBlur?: () => void\n onChange: (value: string) => void\n onFocus?: () => void\n placeholder?: string\n required?: boolean\n value: string\n}\n\nexport type TextFieldProps =\n | (SharedProps & {\n as?: 'input'\n inputType?: 'password' | 'search' | 'text'\n })\n | (SharedProps & { as: 'textarea' })\n\nexport type TextFieldComponent = {\n (\n props: Extract<TextFieldProps, { as: 'textarea' }> & {\n ref?: ForwardedRef<HTMLTextAreaElement>\n }\n ): ReactNode\n (\n props: Extract<TextFieldProps, { as?: 'input' }> & {\n ref?: ForwardedRef<HTMLInputElement>\n }\n ): ReactNode\n}\n\nexport const TextField: TextFieldComponent = forwardRef<\n HTMLInputElement | HTMLTextAreaElement,\n TextFieldProps\n>(({ className, error, label, onChange, required, ...props }, ref) => {\n const [showPassword, setShowPassword] = useState(false)\n\n const handleChange = (\n e: ChangeEvent<HTMLInputElement | HTMLTextAreaElement>\n ) => onChange(e.currentTarget.value)\n\n const sharedClassName = classNames(s.input, error && s.error, className)\n let resolvedFragment: ReactNode\n\n if (!props.as || props.as === 'input') {\n const { as, inputType, ...restProps } = props\n const isSearch = inputType === 'search'\n const isPassword = inputType === 'password'\n const passwordFieldNextType = showPassword ? 'text' : 'password'\n\n resolvedFragment = (\n <>\n <input\n className={classNames(sharedClassName, isSearch && s.inputSearch)}\n onChange={handleChange}\n ref={ref as unknown as ForwardedRef<HTMLInputElement>}\n type={isPassword ? passwordFieldNextType : inputType}\n {...restProps}\n />\n {isPassword &&\n (showPassword ? (\n <Eye\n strokeWidth={2.5}\n width={20}\n className={classNames(s.button, label && s.buttonWithLabel)}\n onClick={() => setShowPassword((prev) => !prev)}\n />\n ) : (\n <EyeOff\n strokeWidth={2.5}\n width={20}\n className={classNames(s.button, label && s.buttonWithLabel)}\n onClick={() => setShowPassword((prev) => !prev)}\n />\n ))}\n {isSearch && props.value && (\n <X\n onClick={() => onChange('')}\n className={classNames(\n s.button,\n label && s.buttonWithLabel,\n s.resetSearchValue\n )}\n strokeWidth={2.5}\n size={24}\n />\n )}\n {isSearch && (\n <Search\n className={classNames(\n s.searchOutline,\n label && s.searchOutlineWithLabel\n )}\n size={20}\n />\n )}\n </>\n )\n }\n\n if (props.as === 'textarea') {\n const { as, ...restProps } = props\n\n resolvedFragment = (\n <textarea\n className={sharedClassName}\n onChange={handleChange}\n ref={ref as unknown as ForwardedRef<HTMLTextAreaElement>}\n {...restProps}\n />\n )\n }\n\n return (\n <div className={s.root}>\n <span className={s.title}>\n {label}\n {required && <span className={s.titleError}>*</span>}\n </span>\n <div className={s.inputContainer}>{resolvedFragment}</div>\n <div className={s.errorMessage}>{error}</div>\n </div>\n )\n})\n","import { createContext, useContext, useState, ReactNode } from 'react'\n\nexport type Theme = 'light' | 'dark'\nexport type ThemeValue = Theme | 'system'\n\ninterface ThemeContextType {\n theme: ThemeValue\n setTheme: (theme: ThemeValue) => void\n}\n\nconst ThemeContext = createContext<ThemeContextType | undefined>(undefined)\n\nexport const ThemeProvider = ({ children }: { children: ReactNode }) => {\n const defaultTheme = getTheme() || 'system'\n const [theme, setTheme] = useState<ThemeValue>(defaultTheme)\n\n return (\n <ThemeContext.Provider value={{ setTheme, theme }}>\n {children}\n </ThemeContext.Provider>\n )\n}\n\nexport const useTheme = () => {\n const context = useContext(ThemeContext)\n\n if (!context) {\n throw new Error('useTheme must be used within a ThemeProvider')\n }\n\n setDataThemeHandler(context.theme)\n\n return context\n}\n\nconst setDataThemeHandler = (value: ThemeValue) => {\n const savedTheme = getTheme()\n\n saveTheme(value || savedTheme)\n}\n\nconst saveTheme = (theme: ThemeValue) => {\n const prefersDarkScheme = window.matchMedia('(prefers-color-scheme: dark)')\n\n if (theme === 'system') {\n const defaultTheme = prefersDarkScheme.matches ? 'dark' : 'light'\n localStorage.setItem('theme', theme)\n setTheme(defaultTheme)\n } else {\n localStorage.setItem('theme', theme)\n setTheme(theme)\n }\n}\n\nconst setTheme = (theme: Theme) => {\n document.documentElement.setAttribute('data-theme', theme)\n}\n\nconst getTheme = () => {\n const theme = localStorage.getItem('theme')\n if (theme) return theme as ThemeValue\n}\n","import classNames from 'classnames'\nimport { ReactNode, forwardRef } from 'react'\n\nimport s from './tool-icon-button.module.scss'\n\nexport type ToolbarSlot = 'icon' | 'keybinding'\nexport type ToolbarClasses = { [P in ToolbarSlot]?: string }\n\ninterface Props {\n title?: string\n icon: ReactNode\n keybinding?: string\n aria_label?: string\n aria_keyshortcuts?: string\n classes?: ToolbarClasses\n name?: string\n id?: string\n isActive?: boolean\n disabled?: boolean\n onClick?: () => void\n}\n\nexport const ToolIconButton = forwardRef<HTMLDivElement, Props>(\n (props, ref) => {\n const { classes, disabled, icon, isActive, keybinding, onClick, title } =\n props\n\n const styles = getClasses(classes, isActive, disabled)\n\n return (\n <label className={s.root} title={title}>\n <div\n className={styles.icon}\n ref={ref}\n tabIndex={disabled ? -1 : 0}\n role=\"button\"\n aria-pressed={isActive}\n aria-disabled={disabled}\n onClick={!disabled ? onClick : undefined}\n >\n {icon}\n </div>\n {keybinding && <span className={styles.keybinding}>{keybinding}</span>}\n </label>\n )\n }\n)\n\nconst getClasses = (\n classes?: ToolbarClasses,\n isActive?: boolean,\n disabled?: boolean\n): Required<ToolbarClasses> => ({\n icon: classNames(\n s.icon,\n {\n [s.active]: isActive,\n [s.disabled]: disabled,\n },\n classes?.icon\n ),\n keybinding: classNames(s.keybinding, classes?.keybinding),\n})\n"],"names":["ButtonRender","children","className","Component","disabled","fullWidth","icon","shortcut","variant","props","ref","content","jsxs","s","jsx","classNames","Button","forwardRef","CardRoot","CardContent","ignoreHeader","CardHeader","Card","DropDownContext","createContext","useDropDownContext","context","useContext","openDropDownStack","Root","closeOnEsc","closeOnOutsideClick","defaultVisible","visible","setVisible","useState","rootRef","useRef","toggle","close","index","useEffect","handleClickOutside","event","handleKeyDown","styles","Trigger","Content","fixedPosition","horizontal","vertical","DropDown","DialogContext","React","externalIsOpen","onStateChange","dialogRef","internalIsOpen","setInternalIsOpen","isOpen","setIsOpen","state","as","closeOnBackdropClick","_","handleBackdropClick","e","Close","Title","Separator","Dialog","SidebarContext","useSidebarContext","onClickHandler","position","contentRef","Sidebar","SwitcherButtons","componentValues","containerProps","onChange","selectedValue","slot","activeValue","setActiveValue","onChangeHandler","value","style","button","Fragment","Caption","Header","Row","onClick","Head","Body","Cell","Footer","Table","TextField","error","label","required","showPassword","setShowPassword","handleChange","sharedClassName","resolvedFragment","inputType","restProps","isSearch","isPassword","passwordFieldNextType","Eye","prev","EyeOff","X","Search","ThemeContext","ThemeProvider","defaultTheme","getTheme","theme","setTheme","useTheme","setDataThemeHandler","savedTheme","saveTheme","prefersDarkScheme","ToolIconButton","classes","isActive","keybinding","title","getClasses"],"mappings":"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"}
@@ -3,13 +3,17 @@ type Item = {
3
3
  image: {
4
4
  url: string;
5
5
  name: string;
6
+ id: string;
6
7
  };
7
8
  headerAction?: ReactNode;
8
9
  footerSection?: ReactNode;
9
10
  };
10
11
  type Props = {
11
12
  className?: string;
12
- items: Item[];
13
+ children: ReactNode;
13
14
  };
14
15
  export declare const CardCollection: (props: Props) => import("react/jsx-runtime").JSX.Element;
16
+ export declare const CardCollectionItem: ({ card }: {
17
+ card: Item;
18
+ }) => import("react/jsx-runtime").JSX.Element;
15
19
  export {};
package/dist/index.js CHANGED
@@ -1,5 +1,5 @@
1
- import { D as H, B as F, u as J } from "./ToolIconButton-uQjlHv_6.js";
2
- import { a as an, d as ln, b as rn, c as dn, C as hn, e as _n, g as un, S as mn, h as pn, T as gn, i as fn, j as yn, f as kn } from "./ToolIconButton-uQjlHv_6.js";
1
+ import { D as H, B as F, u as J } from "./ToolIconButton-C1LlNNL-.js";
2
+ import { a as an, d as ln, b as rn, c as dn, C as hn, e as _n, g as un, S as mn, h as pn, T as gn, i as fn, j as yn, f as kn } from "./ToolIconButton-C1LlNNL-.js";
3
3
  import { jsx as s, jsxs as g, Fragment as Q } from "react/jsx-runtime";
4
4
  import m from "classnames";
5
5
  import { useState as k, useEffect as K, useCallback as M, useRef as G } from "react";
package/dist/index2.js CHANGED
@@ -1,8 +1,8 @@
1
1
  import { jsx as e, jsxs as s } from "react/jsx-runtime";
2
2
  import m from "classnames";
3
3
  import { Image as h, Video as g, FileQuestion as p, HardDriveDownload as u, Share2 as y, PencilRuler as I } from "lucide-react";
4
- import { d as l, e as o, B as v } from "./ToolIconButton-uQjlHv_6.js";
5
- import { k as U, u as X } from "./ToolIconButton-uQjlHv_6.js";
4
+ import { d as l, e as o, B as v } from "./ToolIconButton-C1LlNNL-.js";
5
+ import { k as U, u as X } from "./ToolIconButton-C1LlNNL-.js";
6
6
  import "react";
7
7
  const f = [
8
8
  "png",
@@ -32,7 +32,7 @@ function C(t) {
32
32
  const r = t.split(".").pop()?.toLowerCase();
33
33
  return r ? f.includes(r) ? "image" : N.includes(r) ? "video" : "unknown" : "unknown";
34
34
  }
35
- const H = "_root_y0usf_1", b = "_cardList_y0usf_5", S = "_cardItemHeader_y0usf_16", T = "_cardItemHeaderIcon_y0usf_23", k = "_cardItemHeaderTitle_y0usf_28", x = "_cardItemHeaderAction_y0usf_34", q = "_cardItemContentImg_y0usf_38", a = {
35
+ const H = "_root_y0usf_1", b = "_cardList_y0usf_5", S = "_cardItemHeader_y0usf_16", T = "_cardItemHeaderIcon_y0usf_23", k = "_cardItemHeaderTitle_y0usf_28", x = "_cardItemHeaderAction_y0usf_34", q = "_cardItemContentImg_y0usf_38", i = {
36
36
  root: H,
37
37
  cardList: b,
38
38
  cardItemHeader: S,
@@ -40,37 +40,37 @@ const H = "_root_y0usf_1", b = "_cardList_y0usf_5", S = "_cardItemHeader_y0usf_1
40
40
  cardItemHeaderTitle: k,
41
41
  cardItemHeaderAction: x,
42
42
  cardItemContentImg: q
43
- }, $ = (t) => {
44
- const { className: r, items: n } = t;
45
- return /* @__PURE__ */ e("div", { className: m(a.cardList, r), children: n.map((i) => /* @__PURE__ */ e(w, { card: i })) });
46
- }, w = ({ card: t }) => {
43
+ }, W = (t) => {
44
+ const { children: r, className: n } = t;
45
+ return /* @__PURE__ */ e("div", { className: m(i.cardList, n), children: r });
46
+ }, $ = ({ card: t }) => {
47
47
  const r = C(t.image.name);
48
- return /* @__PURE__ */ e(l.Root, { style: { borderRadius: "0.5rem" }, children: /* @__PURE__ */ s(l.Content, { className: a.cardItem, children: [
49
- /* @__PURE__ */ s("div", { className: a.cardItemHeader, children: [
50
- /* @__PURE__ */ e("div", { className: a.cardItemHeaderIcon, children: r === "image" ? /* @__PURE__ */ e(h, { height: 20 }) : r === "video" ? /* @__PURE__ */ e(g, { height: 20 }) : /* @__PURE__ */ e(p, { height: 20 }) }),
51
- /* @__PURE__ */ e("h5", { className: a.cardItemHeaderTitle, children: t.image.name }),
52
- /* @__PURE__ */ e("div", { className: a.cardItemHeaderAction, children: t.headerAction })
48
+ return /* @__PURE__ */ e(l.Root, { style: { borderRadius: "0.5rem" }, children: /* @__PURE__ */ s(l.Content, { className: i.cardItem, children: [
49
+ /* @__PURE__ */ s("div", { className: i.cardItemHeader, children: [
50
+ /* @__PURE__ */ e("div", { className: i.cardItemHeaderIcon, children: r === "image" ? /* @__PURE__ */ e(h, { height: 20 }) : r === "video" ? /* @__PURE__ */ e(g, { height: 20 }) : /* @__PURE__ */ e(p, { height: 20 }) }),
51
+ /* @__PURE__ */ e("h5", { className: i.cardItemHeaderTitle, children: t.image.name }),
52
+ /* @__PURE__ */ e("div", { className: i.cardItemHeaderAction, children: t.headerAction })
53
53
  ] }),
54
- /* @__PURE__ */ e("div", { className: a.cardItemContent, children: /* @__PURE__ */ e(
54
+ /* @__PURE__ */ e("div", { className: i.cardItemContent, children: /* @__PURE__ */ e(
55
55
  "img",
56
56
  {
57
57
  src: t.image.url,
58
58
  alt: t.image.name,
59
- className: a.cardItemContentImg
59
+ className: i.cardItemContentImg
60
60
  }
61
61
  ) }),
62
- t.footerSection && /* @__PURE__ */ e("div", { className: a.cardItemFooter, children: t.footerSection })
62
+ t.footerSection && /* @__PURE__ */ e("div", { className: i.cardItemFooter, children: t.footerSection })
63
63
  ] }) });
64
- }, L = "_content_1iqyy_1", D = "_card_1iqyy_5", P = "_cardList_1iqyy_12", A = "_cardIcon_1iqyy_19", E = "_cardTitle_1iqyy_28", j = "_cardDescription_1iqyy_33", R = "_red_1iqyy_41", z = "_green_1iqyy_45", B = "_primary_1iqyy_49", c = {
65
- content: L,
66
- card: D,
67
- cardList: P,
68
- cardIcon: A,
69
- cardTitle: E,
70
- cardDescription: j,
71
- red: R,
72
- green: z,
73
- primary: B
64
+ }, w = "_content_1iqyy_1", L = "_card_1iqyy_5", D = "_cardList_1iqyy_12", P = "_cardIcon_1iqyy_19", A = "_cardTitle_1iqyy_28", E = "_cardDescription_1iqyy_33", j = "_red_1iqyy_41", R = "_green_1iqyy_45", z = "_primary_1iqyy_49", c = {
65
+ content: w,
66
+ card: L,
67
+ cardList: D,
68
+ cardIcon: P,
69
+ cardTitle: A,
70
+ cardDescription: E,
71
+ red: j,
72
+ green: R,
73
+ primary: z
74
74
  }, G = (t) => {
75
75
  const { trigger: r } = t, n = [
76
76
  {
@@ -109,31 +109,31 @@ const H = "_root_y0usf_1", b = "_cardList_y0usf_5", S = "_cardItemHeader_y0usf_1
109
109
  /* @__PURE__ */ s(o.Content, { className: c.content, children: [
110
110
  /* @__PURE__ */ e(o.Title, { children: "Save as..." }),
111
111
  /* @__PURE__ */ e(o.Separator, {}),
112
- /* @__PURE__ */ e("div", { className: c.cardList, children: n.map((i, d) => /* @__PURE__ */ e(
113
- F,
112
+ /* @__PURE__ */ e("div", { className: c.cardList, children: n.map((a, d) => /* @__PURE__ */ e(
113
+ B,
114
114
  {
115
- icon: i.icon,
116
- title: i.title,
117
- bgColor: i.bgColor,
118
- description: i.description,
119
- action: i.action,
120
- buttonName: i.buttonName
115
+ icon: a.icon,
116
+ title: a.title,
117
+ bgColor: a.bgColor,
118
+ description: a.description,
119
+ action: a.action,
120
+ buttonName: a.buttonName
121
121
  },
122
122
  d
123
123
  )) })
124
124
  ] })
125
125
  ] });
126
- }, F = ({
126
+ }, B = ({
127
127
  action: t,
128
128
  bgColor: r = "primary",
129
129
  buttonName: n,
130
- description: i,
130
+ description: a,
131
131
  icon: d,
132
132
  title: _
133
133
  }) => /* @__PURE__ */ s("div", { className: c.card, children: [
134
134
  /* @__PURE__ */ e("div", { className: m(c.cardIcon, c[r]), children: d }),
135
135
  /* @__PURE__ */ e("h3", { className: c.cardTitle, children: _ }),
136
- /* @__PURE__ */ e("p", { className: c.cardDescription, children: i }),
136
+ /* @__PURE__ */ e("p", { className: c.cardDescription, children: a }),
137
137
  /* @__PURE__ */ e(
138
138
  v,
139
139
  {
@@ -145,7 +145,8 @@ const H = "_root_y0usf_1", b = "_cardList_y0usf_5", S = "_cardItemHeader_y0usf_1
145
145
  )
146
146
  ] });
147
147
  export {
148
- $ as CardCollection,
148
+ W as CardCollection,
149
+ $ as CardCollectionItem,
149
150
  G as SaveModal,
150
151
  U as ThemeProvider,
151
152
  X as useTheme
@@ -1 +1 @@
1
- {"version":3,"file":"index2.js","sources":["../src/utils/fileUtils.ts","../src/features/card-collection/CardCollection.tsx","../src/features/save-modal/SaveModal.tsx"],"sourcesContent":["const imageMimeTypes = [\n 'image/png',\n 'image/jpeg',\n 'image/jpg',\n 'image/gif',\n 'image/bmp',\n 'image/webp',\n 'image/svg+xml',\n 'image/x-icon',\n 'image/tiff',\n 'image/heic',\n 'image/heif',\n]\n\nconst videoMimeTypes = [\n 'video/mp4',\n 'video/quicktime',\n 'video/x-msvideo',\n 'video/x-matroska',\n 'video/webm',\n 'video/x-flv',\n 'video/x-ms-wmv',\n 'video/mpeg',\n 'video/3gpp',\n 'video/ogg',\n]\n\nconst imageExtensions = [\n 'png',\n 'jpg',\n 'jpeg',\n 'gif',\n 'bmp',\n 'webp',\n 'svg',\n 'ico',\n 'tiff',\n 'heic',\n 'heif',\n]\n\nconst videoExtensions = [\n 'mp4',\n 'mov',\n 'avi',\n 'mkv',\n 'webm',\n 'flv',\n 'wmv',\n 'mpeg',\n '3gp',\n 'ogv',\n]\n\nexport type FileType = 'image' | 'video' | 'unknown'\n\nexport function checkFileType(file: File): FileType {\n const fileType = file.type\n if (imageMimeTypes.includes(fileType)) return 'image'\n if (videoMimeTypes.includes(fileType)) return 'video'\n return 'unknown'\n}\n\nexport function checkFileTypeByExtension(filename: string): FileType {\n const extension = filename.split('.').pop()?.toLowerCase()\n\n if (!extension) return 'unknown'\n\n if (imageExtensions.includes(extension)) return 'image'\n if (videoExtensions.includes(extension)) return 'video'\n return 'unknown'\n}\n","import classNames from 'classnames'\nimport { FileQuestion, Image, Video } from 'lucide-react'\nimport { ReactNode } from 'react'\n\nimport { Card } from '../../components'\nimport { checkFileTypeByExtension } from '../../utils'\nimport s from './card-collection.module.scss'\n\ntype Item = {\n image: {\n url: string\n name: string\n }\n headerAction?: ReactNode\n footerSection?: ReactNode\n}\n\ntype Props = {\n className?: string\n items: Item[]\n}\n\nexport const CardCollection = (props: Props) => {\n const { className, items } = props\n\n return (\n <div className={classNames(s.cardList, className)}>\n {items.map((item) => (\n <CardCollectionItem card={item} />\n ))}\n </div>\n )\n}\n\nconst CardCollectionItem = ({ card }: { card: Item }) => {\n const fileType = checkFileTypeByExtension(card.image.name)\n\n return (\n <Card.Root style={{ borderRadius: '0.5rem' }}>\n <Card.Content className={s.cardItem}>\n <div className={s.cardItemHeader}>\n <div className={s.cardItemHeaderIcon}>\n {fileType === 'image' ? (\n <Image height={20} />\n ) : fileType === 'video' ? (\n <Video height={20} />\n ) : (\n <FileQuestion height={20} />\n )}\n </div>\n <h5 className={s.cardItemHeaderTitle}>{card.image.name}</h5>\n <div className={s.cardItemHeaderAction}>{card.headerAction}</div>\n </div>\n <div className={s.cardItemContent}>\n <img\n src={card.image.url}\n alt={card.image.name}\n className={s.cardItemContentImg}\n />\n </div>\n {card.footerSection && (\n <div className={s.cardItemFooter}>{card.footerSection}</div>\n )}\n </Card.Content>\n </Card.Root>\n )\n}\n","import classNames from 'classnames'\nimport { HardDriveDownload, PencilRuler, Share2 } from 'lucide-react'\nimport { ReactNode } from 'react'\n\nimport { Dialog, Button } from '../../components'\nimport style from './save-modal.module.scss'\n\ninterface Props {\n trigger: ReactNode\n}\n\ninterface SaveOption {\n icon: ReactNode\n title: string\n description: string\n action: () => void\n buttonName: string\n bgColor?: 'red' | 'green' | 'primary'\n}\n\nexport const SaveModal = (props: Props) => {\n const { trigger } = props\n\n const saveOptions: SaveOption[] = [\n {\n action: () => {\n console.log('Save to disk action')\n },\n bgColor: 'green',\n buttonName: 'Save file',\n description: 'Export scene data to a file that can be imported later.',\n icon: <HardDriveDownload size={45} />,\n title: 'Save to disk',\n },\n {\n action: () => {\n console.log('Share link action')\n },\n bgColor: 'red',\n buttonName: 'Share link',\n description: 'Export a link to share your scene with others.',\n icon: <Share2 size={45} />,\n title: 'Share via link',\n },\n {\n action: () => {\n console.log('Save to Primer+ action')\n },\n bgColor: 'primary',\n buttonName: 'Primer+',\n description: 'Save the scene in your Primer+ workspace.',\n icon: <PencilRuler size={45} />,\n title: 'Primer+',\n },\n ]\n\n return (\n <Dialog.Root>\n <Dialog.Trigger>{trigger}</Dialog.Trigger>\n <Dialog.Content className={style.content}>\n <Dialog.Title>Save as...</Dialog.Title>\n <Dialog.Separator />\n <div className={style.cardList}>\n {saveOptions.map((option, index) => (\n <SaveCardOption\n key={index}\n icon={option.icon}\n title={option.title}\n bgColor={option.bgColor}\n description={option.description}\n action={option.action}\n buttonName={option.buttonName}\n />\n ))}\n </div>\n </Dialog.Content>\n </Dialog.Root>\n )\n}\n\nconst SaveCardOption = ({\n action,\n bgColor = 'primary',\n buttonName,\n description,\n icon,\n title,\n}: SaveOption) => {\n return (\n <div className={style.card}>\n <div className={classNames(style.cardIcon, style[bgColor])}>{icon}</div>\n <h3 className={style.cardTitle}>{title}</h3>\n <p className={style.cardDescription}>{description}</p>\n <Button\n onClick={action}\n fullWidth\n className={classNames(style.button, style[bgColor])}\n >\n {buttonName}\n </Button>\n </div>\n )\n}\n"],"names":["imageExtensions","videoExtensions","checkFileTypeByExtension","filename","extension","CardCollection","props","className","items","classNames","s","item","jsx","CardCollectionItem","card","fileType","Card","jsxs","Image","Video","FileQuestion","SaveModal","trigger","saveOptions","HardDriveDownload","Share2","PencilRuler","Dialog","style","option","index","SaveCardOption","action","bgColor","buttonName","description","icon","title","Button"],"mappings":"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"}
1
+ {"version":3,"file":"index2.js","sources":["../src/utils/fileUtils.ts","../src/features/card-collection/CardCollection.tsx","../src/features/save-modal/SaveModal.tsx"],"sourcesContent":["const imageMimeTypes = [\n 'image/png',\n 'image/jpeg',\n 'image/jpg',\n 'image/gif',\n 'image/bmp',\n 'image/webp',\n 'image/svg+xml',\n 'image/x-icon',\n 'image/tiff',\n 'image/heic',\n 'image/heif',\n]\n\nconst videoMimeTypes = [\n 'video/mp4',\n 'video/quicktime',\n 'video/x-msvideo',\n 'video/x-matroska',\n 'video/webm',\n 'video/x-flv',\n 'video/x-ms-wmv',\n 'video/mpeg',\n 'video/3gpp',\n 'video/ogg',\n]\n\nconst imageExtensions = [\n 'png',\n 'jpg',\n 'jpeg',\n 'gif',\n 'bmp',\n 'webp',\n 'svg',\n 'ico',\n 'tiff',\n 'heic',\n 'heif',\n]\n\nconst videoExtensions = [\n 'mp4',\n 'mov',\n 'avi',\n 'mkv',\n 'webm',\n 'flv',\n 'wmv',\n 'mpeg',\n '3gp',\n 'ogv',\n]\n\nexport type FileType = 'image' | 'video' | 'unknown'\n\nexport function checkFileType(file: File): FileType {\n const fileType = file.type\n if (imageMimeTypes.includes(fileType)) return 'image'\n if (videoMimeTypes.includes(fileType)) return 'video'\n return 'unknown'\n}\n\nexport function checkFileTypeByExtension(filename: string): FileType {\n const extension = filename.split('.').pop()?.toLowerCase()\n\n if (!extension) return 'unknown'\n\n if (imageExtensions.includes(extension)) return 'image'\n if (videoExtensions.includes(extension)) return 'video'\n return 'unknown'\n}\n","import classNames from 'classnames'\nimport { FileQuestion, Image, Video } from 'lucide-react'\nimport { ReactNode } from 'react'\n\nimport { Card } from '../../components'\nimport { checkFileTypeByExtension } from '../../utils'\nimport s from './card-collection.module.scss'\n\ntype Item = {\n image: {\n url: string\n name: string\n id: string\n }\n headerAction?: ReactNode\n footerSection?: ReactNode\n}\n\ntype Props = {\n className?: string\n children: ReactNode\n}\n\nexport const CardCollection = (props: Props) => {\n const { children, className } = props\n\n return <div className={classNames(s.cardList, className)}>{children}</div>\n}\n\nexport const CardCollectionItem = ({ card }: { card: Item }) => {\n const fileType = checkFileTypeByExtension(card.image.name)\n\n return (\n <Card.Root style={{ borderRadius: '0.5rem' }}>\n <Card.Content className={s.cardItem}>\n <div className={s.cardItemHeader}>\n <div className={s.cardItemHeaderIcon}>\n {fileType === 'image' ? (\n <Image height={20} />\n ) : fileType === 'video' ? (\n <Video height={20} />\n ) : (\n <FileQuestion height={20} />\n )}\n </div>\n <h5 className={s.cardItemHeaderTitle}>{card.image.name}</h5>\n <div className={s.cardItemHeaderAction}>{card.headerAction}</div>\n </div>\n <div className={s.cardItemContent}>\n <img\n src={card.image.url}\n alt={card.image.name}\n className={s.cardItemContentImg}\n />\n </div>\n {card.footerSection && (\n <div className={s.cardItemFooter}>{card.footerSection}</div>\n )}\n </Card.Content>\n </Card.Root>\n )\n}\n","import classNames from 'classnames'\nimport { HardDriveDownload, PencilRuler, Share2 } from 'lucide-react'\nimport { ReactNode } from 'react'\n\nimport { Dialog, Button } from '../../components'\nimport style from './save-modal.module.scss'\n\ninterface Props {\n trigger: ReactNode\n}\n\ninterface SaveOption {\n icon: ReactNode\n title: string\n description: string\n action: () => void\n buttonName: string\n bgColor?: 'red' | 'green' | 'primary'\n}\n\nexport const SaveModal = (props: Props) => {\n const { trigger } = props\n\n const saveOptions: SaveOption[] = [\n {\n action: () => {\n console.log('Save to disk action')\n },\n bgColor: 'green',\n buttonName: 'Save file',\n description: 'Export scene data to a file that can be imported later.',\n icon: <HardDriveDownload size={45} />,\n title: 'Save to disk',\n },\n {\n action: () => {\n console.log('Share link action')\n },\n bgColor: 'red',\n buttonName: 'Share link',\n description: 'Export a link to share your scene with others.',\n icon: <Share2 size={45} />,\n title: 'Share via link',\n },\n {\n action: () => {\n console.log('Save to Primer+ action')\n },\n bgColor: 'primary',\n buttonName: 'Primer+',\n description: 'Save the scene in your Primer+ workspace.',\n icon: <PencilRuler size={45} />,\n title: 'Primer+',\n },\n ]\n\n return (\n <Dialog.Root>\n <Dialog.Trigger>{trigger}</Dialog.Trigger>\n <Dialog.Content className={style.content}>\n <Dialog.Title>Save as...</Dialog.Title>\n <Dialog.Separator />\n <div className={style.cardList}>\n {saveOptions.map((option, index) => (\n <SaveCardOption\n key={index}\n icon={option.icon}\n title={option.title}\n bgColor={option.bgColor}\n description={option.description}\n action={option.action}\n buttonName={option.buttonName}\n />\n ))}\n </div>\n </Dialog.Content>\n </Dialog.Root>\n )\n}\n\nconst SaveCardOption = ({\n action,\n bgColor = 'primary',\n buttonName,\n description,\n icon,\n title,\n}: SaveOption) => {\n return (\n <div className={style.card}>\n <div className={classNames(style.cardIcon, style[bgColor])}>{icon}</div>\n <h3 className={style.cardTitle}>{title}</h3>\n <p className={style.cardDescription}>{description}</p>\n <Button\n onClick={action}\n fullWidth\n className={classNames(style.button, style[bgColor])}\n >\n {buttonName}\n </Button>\n </div>\n )\n}\n"],"names":["imageExtensions","videoExtensions","checkFileTypeByExtension","filename","extension","CardCollection","props","children","className","jsx","classNames","s","CardCollectionItem","card","fileType","Card","jsxs","Image","Video","FileQuestion","SaveModal","trigger","saveOptions","HardDriveDownload","Share2","PencilRuler","Dialog","style","option","index","SaveCardOption","action","bgColor","buttonName","description","icon","title","Button"],"mappings":"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"}
package/dist/style.css CHANGED
@@ -1 +1 @@
1
- @charset "UTF-8";@import"https://fonts.googleapis.com/css2?family=Assistant:wght@400..700&display=swap";@import"https://fonts.googleapis.com/css2?family=Inter:opsz,wght@14..32,100..900&display=swap";@import"https://fonts.googleapis.com/css2?family=Roboto:wght@400;500;700&display=swap";._text_4m304_1,._tertiary_4m304_1,._secondary_4m304_1,._primary_4m304_1{display:inline-flex;justify-content:center;cursor:pointer;user-select:none;width:fit-content;gap:.625em;min-height:2.25em;padding:.625em;font-weight:var(--font-weight-medium);text-align:center;border-radius:var(--border-radius-m)}._text_4m304_1:focus,._tertiary_4m304_1:focus,._secondary_4m304_1:focus,._primary_4m304_1:focus{outline:none}._text_4m304_1:focus-visible,._tertiary_4m304_1:focus-visible,._secondary_4m304_1:focus-visible,._primary_4m304_1:focus-visible{outline:2px solid var(--color-accent-700)}._primary_4m304_1{color:var(--color-light-100);background-color:var(--color-accent-500)}._primary_4m304_1:hover{background-color:var(--color-accent-300)}._primary_4m304_1:active{background-color:var(--color-accent-700)}._secondary_4m304_1{color:var(--color-light-100);background-color:var(--color-dark-300)}._secondary_4m304_1:focus-visible{outline:1px solid var(--color-accent-300)}._secondary_4m304_1:hover{background-color:var(--color-dark-100)}._secondary_4m304_1:active{background-color:var(--color-dark-400)}._tertiary_4m304_1{border:1px solid currentcolor}._fullWidth_4m304_50{width:100%}._buttonWithIcon_4m304_54{display:flex;justify-content:space-between;align-items:center;gap:.625em;width:100%}._buttonWithIcon_4m304_54 ._content_4m304_61{display:flex;align-items:center;gap:.625em}._buttonWithIcon_4m304_54 svg{width:var(--icon-size-lg);height:var(--icon-size-lg)}._buttonWithIcon_4m304_54 ._shortcut_4m304_70{opacity:.6}._text_4m304_1:hover,._tertiary_4m304_1:hover{background-color:var(--color-accent-100)}._text_4m304_1:active,._tertiary_4m304_1:active{background-color:var(--color-accent-300);outline:1px solid var(--color-accent-700)}._disabled_4m304_82{cursor:not-allowed;pointer-events:none;opacity:.65}._content_23x5h_1,._header_23x5h_1{display:flex;flex-direction:column;gap:.75rem}._root_23x5h_7{background-color:var(--bg-color);box-shadow:var(--box-shadow);border-radius:.125rem;padding:.75rem}._header_23x5h_1{display:flex;align-items:flex-start;gap:.75rem;font-size:1.25rem;border-bottom:1px solid var(--dialog-border-color);padding:0 0 .75rem}._header_23x5h_1+._contentAfterHeader_23x5h_22{padding-top:1.125rem}._root_1xfv8_1{display:inline-block;position:relative}._dropdownContent_1xfv8_6{position:absolute;background-color:var(--bg-modal-color);border-radius:var(--border-radius-lg);margin-top:.5rem;padding:.5rem;box-shadow:var(--box-shadow);z-index:1000;min-width:200px}._left_1xfv8_17{left:0}._center_1xfv8_21{left:50%;transform:translate(-50%)}._right_1xfv8_26{right:20%}._top_1xfv8_30{bottom:100%}._bottom_1xfv8_34{top:100%}._fixedPosition_1xfv8_38{position:fixed;left:5%}._dialogRoot_c30vs_1{position:relative}._dialogTrigger_c30vs_5{border:none;background:none;padding:0;cursor:pointer;font:inherit}._dialogContent_c30vs_13{padding:.5rem;background-color:var(--bg-modal-color);border-radius:8px;border:none;box-shadow:var(--box-shadow)}._dialogContent_c30vs_13::backdrop{background-color:#00000080}._dialogClose_c30vs_25{border:none;background:none;padding:0;cursor:pointer;font:inherit}._dialogTitle_c30vs_33{font-size:1.5rem;padding-block:.5rem}._dialogSeparator_c30vs_38{height:1px;background-color:var(--color-light-500);margin:10px 0}:root{--sidebar-width: 250px;--sidebar-height: 100vh;--sidebar-bg: var(--color-dark-300);--sidebar-color: var(--color-light-500);--animation-duration: .3s;--sidebar-zIndex-trigger: 10;--sidebar-zIndex-content: 100}._sidebar_dg2au_12{width:100%}._trigger_dg2au_16{position:relative;z-index:var(--sidebar-zIndex-trigger)}._content_dg2au_21{width:var(--sidebar-width);height:var(--sidebar-height);background:var(--sidebar-bg);color:var(--sidebar-color);padding:1rem;box-shadow:var(--box-shadow, 0 4px 6px rgba(0, 0, 0, .1));position:fixed;top:0;transition:transform var(--animation-duration) ease-in-out;z-index:var(--sidebar-zIndex-content)}._left_dg2au_34{left:0;transform:translate(-100%)}._left_dg2au_34._open_dg2au_38{transform:translate(0)}._right_dg2au_42{right:0;transform:translate(100%)}._right_dg2au_42._open_dg2au_38{transform:translate(0)}._bottom_dg2au_50{inset:auto 0 0;height:fit-content;width:100%;transform:translateY(100%)}._bottom_dg2au_50._open_dg2au_38{transform:translateY(0)}._top_dg2au_63{inset:0 0 auto;height:fit-content;width:100%;transform:translateY(-100%)}._top_dg2au_63._open_dg2au_38{transform:translateY(0)}._switcher_k6tdq_1{display:flex;gap:.5rem;align-items:center}._switcher_k6tdq_1 ._buttons_k6tdq_6{display:flex;gap:.5rem}._switcher_k6tdq_1 ._separator_k6tdq_10{width:1px;height:1.5rem;border-radius:var(--border-radius-lg);background-color:var(--color-light-700)}:root{--head-color: var(--color-light-900);--cell-color: var(--color-light-100);--caption-color: var(--color-light-700);--footer-background: var(--color-dark-100)}:root[data-theme=light]{--head-color: var(--color-dark-300);--cell-color: var(--color-dark-900);--footer-background: var(--color-light-900)}._root_w2o37_13{width:100%;border-spacing:0;caption-side:bottom}._header_w2o37_19{border-bottom:1px solid var(--color-dark-100)}._footer_w2o37_23{width:100%;background-color:var(--color-dark-100)}._row_w2o37_28{border-bottom:1px solid var(--color-dark-100);display:flex;flex-direction:row;justify-content:space-between;align-items:center;width:100%}._row_w2o37_28:hover{background-color:var(--color-dark-300)}._body_w2o37_40{display:flex;flex-direction:column;justify-content:center}._head_w2o37_19,._cell_w2o37_47{justify-items:flex-start;padding:.5rem;font-size:14px;width:100%}._cell_w2o37_47{color:var(--cell-color)}._head_w2o37_19{color:var(--head-color);font-weight:500;text-align:start}._caption_w2o37_64{margin-top:1rem;color:var(--caption-color)}._storiesFooterCellOne_w2o37_69{vertical-align:middle}._storiesFooterCellTwo_w2o37_72{text-align:end}._inputContainer_iqbs3_1{position:relative;width:100%;background-color:inherit}._inputContainer_iqbs3_1 input[type=search]::-webkit-search-cancel-button{-webkit-appearance:none;appearance:none}._input_iqbs3_1{display:flex;width:100%;padding-inline:16px;padding-block:12px;color:var(--color-dark-100);background-color:var(--color-light-500);border:1px solid transparent;border-radius:16px;font-size:var(--font-weight-bold);line-height:var(--line-height-m)}._input_iqbs3_1:disabled{color:var(--color-dark-300)}._input_iqbs3_1:focus{color:var(--color-dark-300);border-color:var(--color-accent-500)}._input_iqbs3_1:hover{color:var(--color-dark-100);border-color:var(--color-dark-100)}._input_iqbs3_1:active:enabled{border-color:var(--color-light-100)}._input_iqbs3_1:focus-visible{border-color:var(--color-dark-100)}._input_iqbs3_1._inputSearch_iqbs3_40{padding-inline:50px 34px}._input_iqbs3_1._inputSearch_iqbs3_40._error_iqbs3_43{color:var(--color-danger-300);border-color:var(--color-danger-300)}._input_iqbs3_1._inputSearch_iqbs3_40._error_iqbs3_43::placeholder{color:red}._input_iqbs3_1._error_iqbs3_43{color:var(--color-danger-300);border-color:var(--color-danger-300)}._input_iqbs3_1._error_iqbs3_43::placeholder{color:red}._button_iqbs3_58{position:absolute;top:16px;right:15px;width:20px;height:20px;padding:0;background-color:inherit;border:0}._button_iqbs3_58._buttonWithLabel_iqbs3_68{cursor:pointer;bottom:8px}._resetSearchValue_iqbs3_73{color:var(--color-dark-100)}._resetSearchValue_iqbs3_73:hover{color:var(--color-danger-300)}._searchOutline_iqbs3_80{position:absolute;top:14px;left:16px;color:var(--color-dark-100)}._errorMessage_iqbs3_87{position:absolute;font-size:var(--font-size-s);line-height:var(--line-height-m);color:var(--color-danger-300)}._root_17w6h_1{position:relative;display:inline-flex;align-items:center;cursor:pointer;-webkit-tap-highlight-color:transparent;-webkit-user-select:none;user-select:none}._icon_17w6h_11{display:flex;justify-content:center;align-items:center;border-radius:var(--border-radius-lg);width:var(--button-size-lg);height:var(--button-size-lg);transition:background-color .2s ease}._icon_17w6h_11:hover{background-color:var(--color-accent-100)}._icon_17w6h_11:active,._icon_17w6h_11._active_17w6h_27{background-color:var(--color-accent-300);border:1px solid var(--color-accent-300)}._icon_17w6h_11._disabled_17w6h_31{opacity:.6;cursor:not-allowed;background-color:var(--color-light-700)}._icon_17w6h_11._disabled_17w6h_31:hover{background-color:var(--color-light-700)}._icon_17w6h_11 svg{width:var(--icon-size-lg);height:var(--icon-size-lg)}._keybinding_17w6h_44{position:absolute;bottom:4px;right:2px;font-size:.625rem;color:var(--color-dark-300);-webkit-user-select:none;user-select:none}._buttonGroup_ejhd6_1{display:flex;gap:0;border-radius:var(--border-radius-lg);width:fit-content;overflow:hidden}._button_ejhd6_1{display:flex;align-items:center;padding:.5rem;border:none;background-color:var(--color-dark-100);color:#fff;transition:background-color .3s;cursor:pointer}._button_ejhd6_1:hover:not(:disabled){background-color:var(--color-dark-300)}._button_ejhd6_1:active:not(:disabled){background-color:var(--color-dark-500)}._button_ejhd6_1:disabled{background-color:#555;cursor:not-allowed}._button_ejhd6_1 button:focus-visible{outline:2px solid var(--color-dark-500);outline-offset:2px}._button_ejhd6_1 svg{height:var(--icon-size-lg);width:var(--icon-size-lg)}._button_ejhd6_1 ._label_ejhd6_37{height:var(--icon-size-lg);line-height:1rem}._single_ejhd6_42{border-radius:var(--border-radius-lg)}._first_ejhd6_46{border-radius:var(--border-radius-lg) 0 0 var(--border-radius-lg)}._last_ejhd6_50{border-radius:0 var(--border-radius-lg) var(--border-radius-lg) 0}._selected_ejhd6_54{background-color:var(--color-dark-500)}._colorButton_wldf2_1{filter:none;transition:background-color .2s ease;display:flex;justify-content:flex-end;align-items:end;padding-right:.25rem;border:.4px solid var(--color-light-700);font-size:var(--font-size-xs);background-color:var(--swatch-color)}._colorButton_wldf2_1:hover{box-shadow:0 0 0 1px var(--color-light-900)}._colorButton_wldf2_1:active{box-shadow:0 0 0 .5px var(--color-accent-700)}._colorButton_wldf2_1:disabled{opacity:.6;cursor:not-allowed}._colorButton_wldf2_1 ._hotkey_wldf2_22{user-select:none}._selected_wldf2_26,._selected_wldf2_26:hover{box-shadow:0 0 0 1px var(--color-accent-700)}._disabled_wldf2_33{opacity:.6;cursor:not-allowed}._disabled_wldf2_33:hover{border-color:transparent}._transparent_wldf2_41{background:url(data:image/png;base64,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) center center;background-size:cover}._small_wldf2_46{width:var(--button-size-xs);height:var(--button-size-xs);border-radius:var(--border-radius-m)}._medium_wldf2_52{width:var(--button-size-m);height:var(--button-size-m);border-radius:var(--border-radius-m)}._large_wldf2_58{width:var(--button-size-xl);height:var(--button-size-xl);border-radius:var(--border-radius-lg)}._content_1ybrq_1{top:-.5rem;left:3rem;max-width:210px;padding-inline:1rem;padding-block:.5rem 1rem;display:flex;flex-direction:column;gap:.5rem}._content_1ybrq_1 ._section_1ybrq_11{display:flex;flex-direction:column;gap:.25rem}._title_1ybrq_17{font-size:var(--font-size-small);font-weight:var(--font-weight-regular)}@media (max-width: 738px){._content_1ybrq_1{top:2rem;left:-5rem}}:root{--iconButton-border: 1px solid var(--color-accent-100);--iconButton-color: var(--color-dark-900)}:root[data-theme=light]{--iconButton-border: 1px solid var(--color-accent-100);--iconButton-color: var(--color-dark-900)}:root[data-theme=dark]{--iconButton-border: 1px solid var(--color-accent-100);--iconButton-color: var(--color-light-500)}._iconButton_yk1r1_14{color:var(--iconButton-color);display:flex;align-items:center;justify-content:center;width:var(--button-size-lg);height:var(--button-size-lg);border-radius:var(--border-radius-lg);transition:background-color .2s ease;border:var(--iconButton-border)}._iconButton_yk1r1_14:disabled{cursor:not-allowed;border:1px solid transparent}._iconButton_yk1r1_14 svg{width:var(--icon-size-lg);height:var(--icon-size-lg)}._primary_yk1r1_34{background-color:var(--color-light-500);border:1px solid var(--color-light-500)}._primary_yk1r1_34:hover{background-color:var(--color-accent-300)}._primary_yk1r1_34:active{background-color:var(--color-accent-300);border-color:var(--color-accent-500)}._secondary_yk1r1_46:hover{background-color:var(--color-accent-100)}._secondary_yk1r1_46:active{background-color:var(--color-accent-500);border-color:var(--color-accent-500)}._transparent_yk1r1_54{border-color:transparent}._transparent_yk1r1_54:hover{background-color:var(--color-accent-100)}._transparent_yk1r1_54:active{background-color:var(--color-accent-300);border-color:var(--color-accent-500)}._selected_yk1r1_65{background-color:var(--color-accent-300);border:1px solid var(--color-accent-300)}._selected_yk1r1_65 ._transparent_yk1r1_54{background-color:var(--color-accent-500);border-color:var(--color-accent-500)}._disabled_yk1r1_74{opacity:.6;cursor:not-allowed;background-color:var(--color-light-700)}._disabled_yk1r1_74:hover{background-color:var(--color-light-700)}._disabled_yk1r1_74:active{border-color:var(--color-light-700);background-color:var(--color-light-700)}._hexInput_x3rtz_1{position:relative;box-sizing:border-box;display:grid;grid-template-columns:auto 1fr;max-width:200px;gap:.25rem;align-items:center;overflow:hidden}._hexInput_x3rtz_1 ._inputContainer_x3rtz_11{position:relative;display:flex;align-items:center;max-width:100%;overflow:hidden}._hexInput_x3rtz_1 ._hash_x3rtz_18{position:absolute;left:.5rem;color:var(--color-light-900);pointer-events:none;font-size:var(--font-size-xl)}._hexInput_x3rtz_1 ._input_x3rtz_11{flex:1;padding-left:1.5rem;height:1.875rem;border-radius:var(--border-radius-m);border:1px solid var(--color-light-700);padding-block:.25rem;padding-right:.5rem;max-width:100%;font-size:var(--font-size-m)}._hexInput_x3rtz_1 ._input_x3rtz_11:focus-visible,._hexInput_x3rtz_1 ._input_x3rtz_11:focus{border:1px solid var(--color-accent-700)}._hexInput_x3rtz_1 ._input_x3rtz_11._error_x3rtz_39{border-color:var(--color-error)}._hexInput_x3rtz_1 ._copyButton_x3rtz_42{width:1.875rem;height:1.875rem;align-self:flex-start;border-radius:var(--border-radius-m)}._hexInput_x3rtz_1 ._slot_x3rtz_48{border-left:1px solid var(--color-light-700);position:absolute;right:.5rem;bottom:.22rem;padding-inline:.5rem}._hexInput_x3rtz_1 ._copiedMessage_x3rtz_55{height:1.875rem;position:absolute;display:flex;align-items:center;justify-content:center;top:0;left:2rem;background-color:var(--color-dark-300);color:#fff;padding:4px 8px;border-radius:var(--border-radius-m);font-size:var(--font-size-xs);animation:_fadeInOut_x3rtz_1 2s ease-out}@keyframes _fadeInOut_x3rtz_1{0%{opacity:0}20%{opacity:1}80%{opacity:1}to{opacity:0}}._colorsList_1brrj_1{display:grid;grid-template-columns:1fr 1fr 1fr 1fr 1fr;grid-auto-rows:auto;grid-column-gap:.25rem;grid-row-gap:.25rem}._shadowList_1srdv_1{display:grid;grid-template-columns:1fr 1fr 1fr 1fr 1fr}._shadowText_1srdv_6{display:flex;justify-content:center;align-items:center;font-size:var(--font-size-xs);height:var(--button-size-xl)}._pagination_3kmd4_1{width:100%;max-width:800px;margin:0 auto;padding:20px 15px;user-select:none;display:flex;justify-content:space-between;align-items:center;gap:2rem}._pages_3kmd4_13{display:flex;align-items:center;gap:.5rem}._selectContainer_1kdni_1{position:relative}._selectButton_1kdni_5{display:flex;justify-content:space-between}._selectIcon_1kdni_10{transition:transform 2ms ease-in-out}._selectIconOpen_1kdni_14{transform:rotate(180deg)}._selectMenu_1kdni_18{position:absolute;background-color:var(--bg-modal-color);max-width:max-content;max-height:13rem;overflow-y:auto;overflow-x:hidden;border-radius:var(--border-radius-m);box-shadow:var(--box-shadow);z-index:10}._selectMenu_1kdni_18::-webkit-scrollbar{width:var(--scrollbar-width)}._selectMenu_1kdni_18::-webkit-scrollbar-track{background:var(--scrollbar-track-bg);border-radius:var(--border-radius-m)}._selectMenu_1kdni_18::-webkit-scrollbar-thumb{background:var(--scrollbar-thumb-bg);border-radius:4px}._selectMenu_1kdni_18::-webkit-scrollbar-thumb:hover{background:var(--scrollbar-thumb-hover-bg)}._positionBottomRight_1kdni_44{top:100%;right:0;margin-top:.5rem}._positionBottomLeft_1kdni_50{top:100%;left:0;margin-top:.5rem}._positionTopRight_1kdni_56{bottom:100%;right:0;margin-bottom:.5rem}._positionTopLeft_1kdni_62{bottom:100%;left:0;margin-bottom:.5rem}._positionRight_1kdni_68{top:0;left:100%;margin-left:.5rem}._positionLeft_1kdni_74{top:0;right:100%;margin-right:.5rem}._positionBottom_1kdni_44{top:100%;left:0;margin-top:.5rem}._positionTop_1kdni_56{bottom:100%;left:0;margin-bottom:.5rem}._menuItem_1kdni_92{display:flex;width:200px;align-items:center;cursor:pointer;padding:.5rem 1rem;transition:background-color .2s;border-radius:var(--border-radius-m)}._menuItemSelected_1kdni_102{background-color:var(--color-light-900)}._menuItemHover_1kdni_106:hover{background-color:var(--color-light-700)}._menuItemHighlighted_1kdni_110{background-color:var(--color-light-700);outline:none}:root{--shourtcut-border: 1px solid var(--color-light-700);--shourtcut-title-color: var(--color-dark-900);--shourtcut-item-key-background: var(--color-accent-300);--shourtcut-item-key-color: var(--color-dark-900);--shourtcut-item-description-color: var(--color-dark-900)}:root[data-theme=light]{--shourtcut-border: 1px solid var(--color-light-700);--shourtcut-title-color: var(--color-dark-900);--shourtcut-item-key-background: var(--color-accent-300);--shourtcut-item-key-color: var(--color-dark-900);--shourtcut-item-description-color: var(--color-dark-900)}:root[data-theme=dark]{--shourtcut-border: 1px solid var(--color-light-900);--shourtcut-title-color: var(--color-light-100);--shourtcut-item-key-background: var(--color-accent-500);--shourtcut-item-key-color: var(--color-light-700);--shourtcut-item-description-color: var(--color-light-100)}._groupTitle_eelpn_23{font-size:var(--font-size-m);font-weight:var(--font-weight-bold);color:var(--shourtcut-title-color);margin-bottom:.625rem}._list_eelpn_30{border:var(--shourtcut-border);border-radius:var(--border-radius-m)}._item_eelpn_35{display:flex;justify-content:space-between;align-items:center;gap:2rem;padding:.375rem .75rem}._item_eelpn_35:not(:last-child){border-bottom:var(--shourtcut-border)}._itemKeysVariants_eelpn_45{display:flex;align-items:center;gap:.25rem}._itemKeysSeparator_eelpn_50{color:var(--shourtcut-item-key-color);font-size:var(--font-size-s)}._itemDescription_eelpn_54{font-size:var(--font-size-s);color:var(--shourtcut-item-description-color);white-space:nowrap}._itemKey_eelpn_45{font-size:var(--font-size-xs);line-height:var(--line-height-s);padding:.5rem;background:var(--shourtcut-item-key-background);color:var(--shourtcut-item-key-color);border-radius:var(--border-radius-lg)}._slider-container_1b9o2_1{max-width:300px;outline:none}._slider_1b9o2_1{width:100%;appearance:none;height:6px;border-radius:5px;outline:none;transition:background .3s}._slider_1b9o2_1::-webkit-slider-thumb{appearance:none;width:15px;height:15px;background:var(--color-accent-500);border-radius:50%;cursor:pointer;transition:background .3s}._slider_1b9o2_1::-webkit-slider-thumb:hover{background:var(--color-accent-700)}._slider_1b9o2_1::-webkit-slider-thumb:active{background:var(--color-accent-700)}._slider_1b9o2_1::-moz-range-thumb{width:15px;height:15px;background:var(--color-accent-700);border-radius:50%;cursor:pointer}._focused_1b9o2_37 ._slider_1b9o2_1::-webkit-slider-thumb{background:var(--color-accent-700)}:root{--themeSwitcher-background: var(--color-dark-100);--themeSwitcher-background-btn: var(--color-accent-300);--themeSwitcher-background-btn-selected: var(--color-accent-300);--themeSwitcher-border: var(--color-light-900);--themeSwitcher-selected-color: var(--color-dark-700);--themeSwitcher-color: var(--color-accent-300)}:root[data-theme=light]{--themeSwitcher-background: var(--color-light-100);--themeSwitcher-background-btn: var(--color-accent-500);--themeSwitcher-background-btn-selected: var(--color-accent-500);--themeSwitcher-color: var(--color-accent-500);--themeSwitcher-selected-color: var(--color-light-100);--themeSwitcher-border: var(--color-light-700)}._themeSwitcher_11ggx_18{display:flex;padding:.188rem;border-radius:var(--border-radius-lg);border:.5px solid var(--themeSwitcher-border);width:fit-content;background-color:var(--themeSwitcher-background);color:var(--themeSwitcher-color)}._themeSwitcher_11ggx_18 ._themeButton_11ggx_27{width:2rem;height:1.5rem}._themeSwitcher_11ggx_18 ._themeButton_11ggx_27 ._background_11ggx_31{background-color:var(--bg-color);width:100%;height:30vh;display:flex;align-items:center;justify-content:center}._themeSwitcher_11ggx_18 ._themeButton_11ggx_27:hover{background:none}._themeSwitcher_11ggx_18 ._selectedButton_11ggx_42{background:var(--themeSwitcher-background-btn-selected);color:var(--themeSwitcher-selected-color)}._themeSwitcher_11ggx_18 ._selectedButton_11ggx_42:hover{background:var(--themeSwitcher-background-btn-selected)}:root{--toggleSwitcher-background-color: var(--color-light-500);--toggleSwitcher-border-color: var(--color-light-500);--toggleSwitcher-selected-background: var(--color-accent-500);--toggleSwitcher-selected-color: var(--color-light-500)}:root[data-theme=dark]{--toggleSwitcher-background-color: var(--color-dark-500);--toggleSwitcher-border-color: var(--color-dark-100);--toggleSwitcher-selected-background: var(--color-accent-300);--toggleSwitcher-selected-color: var(--color-dark-500)}._toggleSwitch_1w0s9_14{display:flex;padding:.13rem;border:1px solid var(--toggleSwitcher-border-color);background-color:var(--toggleSwitcher-background-color);border-radius:var(--border-radius-lg);box-shadow:var(--box-shadow);width:fit-content}._button_1w0s9_24{height:var(--button-size-lg);display:flex;align-items:center;justify-content:center;border-radius:var(--border-radius-lg)}._button_1w0s9_24:hover{background-color:transparent}._button_1w0s9_24:active{border-color:transparent}._button_1w0s9_24 svg{width:var(--icon-size-lg)}._selected_1w0s9_41{background-color:var(--toggleSwitcher-selected-background);color:var(--toggleSwitcher-selected-color)}._selected_1w0s9_41:hover{background-color:var(--toggleSwitcher-selected-background)}._selected_1w0s9_41:focus{background-color:var(--toggleSwitcher-selected-background)}._toolbar_18q11_1{padding:4px;border-radius:var(--border-radius-lg);background-color:var(--bg-color);box-shadow:var(--box-shadow);grid-auto-rows:min-content;display:grid;width:min-content}._separator_18q11_11{background-color:var(--color-light-500);margin:0 .25rem}._vertical_18q11_16{grid-template-columns:auto;grid-auto-rows:min-content;grid-auto-flow:row;gap:.25rem}._vertical_18q11_16 ._separator_18q11_11{width:1.5rem;height:1px;justify-self:center}._horizontal_18q11_28{grid-template-rows:auto;grid-auto-columns:min-content;grid-auto-flow:column;gap:.25rem}._horizontal_18q11_28 ._separator_18q11_11{width:1px;height:1.5rem;align-self:center}._root_y0usf_1{border-radius:var(--border-radius-lg)}._cardList_y0usf_5{display:grid;gap:1rem;grid-template-columns:repeat(auto-fill,minmax(250px,1fr))}@media (max-width: 770px){._cardList_y0usf_5{grid-template-columns:repeat(auto-fill,minmax(150px,1fr))}}._cardItemHeader_y0usf_16{display:flex;flex-direction:row;flex-wrap:nowrap;align-items:center;gap:1rem}._cardItemHeaderIcon_y0usf_23{height:100%;display:flex;align-self:center}._cardItemHeaderTitle_y0usf_28{font-size:.95rem;font-weight:var(--font-weight-regular);text-wrap:nowrap;overflow-x:hidden}._cardItemHeaderAction_y0usf_34{margin-left:auto;display:flex}._cardItemContentImg_y0usf_38{width:100%;border-radius:var(--border-radius-lg)}._content_1iqyy_1{padding:2.5rem}._card_1iqyy_5{display:flex;align-items:center;flex-direction:column;gap:1.5rem;padding:1rem}._cardList_1iqyy_12{margin-top:1rem;display:grid;grid-template-columns:auto auto auto;gap:1rem;max-width:800px}._cardIcon_1iqyy_19{width:90px;height:90px;display:flex;align-items:center;justify-content:center;color:var(--color-light-100);border-radius:50%}._cardTitle_1iqyy_28{font-size:var(--font-size-xxl);text-align:center;font-weight:var(--font-weight-bold)}._cardDescription_1iqyy_33{margin-bottom:auto;text-align:center;font-size:var(--font-size-m);min-height:90px;padding:0 1rem}._red_1iqyy_41{background-color:var(--color-danger-300)}._green_1iqyy_45{background-color:var(--color-success-700)}._primary_1iqyy_49{background-color:var(--color-accent-500)}@media (max-width: 768px){._content_1iqyy_1{width:100vw;height:100vh}._cardList_1iqyy_12{grid-template-columns:1fr}}:root{--color-accent-100: #e3e2fe;--color-accent-300: #cecdff;--color-accent-500: #6965db;--color-accent-700: #363399;--color-accent-900: #292673;--color-success-100: #80ffbf;--color-success-300: #22e584;--color-success-500: #14cc70;--color-success-700: #0f9954;--color-success-900: #0a6638;--color-danger-100: #ff8099;--color-danger-300: #f23d61;--color-danger-500: #cc1439;--color-danger-700: #990f2b;--color-danger-900: #660a1d;--color-warning-100: #ffd073;--color-warning-300: #e5ac39;--color-warning-500: #d99000;--color-warning-700: #960;--color-warning-900: #640;--color-light-100: #fff;--color-light-300: #f7fbff;--color-light-500: #edf3fa;--color-light-700: #d5dae0;--color-light-900: #8d9094;--color-dark-100: #4c4c4c;--color-dark-300: #333;--color-dark-400: #212121;--color-dark-500: #171717;--color-dark-700: #0d0d0d;--color-dark-900: #000}:root{--font-family-primary: "Assistant", "Inter", "Roboto", -apple-system, sans-serif;--line-height-s: 1;--line-height-m: 1.5;--line-height-l: 2;--font-size-xs: .75rem;--font-size-s: .875rem;--font-size-m: 1rem;--font-size-l: 1.125rem;--font-size-xl: 1.25rem;--font-size-xxl: 1.625rem;--font-weight-regular: 400;--font-weight-medium: 500;--font-weight-bold: 700}html{font-size:100%;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;-webkit-tap-highlight-color:transparent}*,*:before,*:after{box-sizing:border-box}h1,h2,h3,h4,h5,h6,p,ul,li{padding:0;margin:0}input,button,select,textarea,optgroup,option{font-family:inherit;font-size:inherit;font-weight:inherit;font-style:inherit;color:inherit}button{padding:0;background-color:transparent;border:none}a{text-decoration:none}:where(a:visited){color:inherit}body{margin:0;padding:0;font-family:var(--font-family-primary),sans-serif;line-height:var(--line-height-m);background-color:var(--bg-color)}:root{--button-size-xs: 1.35rem;--button-size-m: 1.625rem;--button-size-xl: 1.85rem;--button-size-lg: 2.25rem;--icon-size-lg: 1rem;--border-radius-m: .25rem;--border-radius-lg: .5rem;--bg-color: var(--color-light-100);--bg-modal-color: var(--color-light-100);--font-color: var(--color-dark-900);--box-shadow: 0px 0px .9310142993927002px 0px rgba(0, 0, 0, .17), 0px 0px 3.1270833015441895px 0px rgba(0, 0, 0, .08), 0px 7px 14px 0px rgba(0, 0, 0, .05);--dialog-border-color: var(--color-light-500);--swatch-color: var(--color-light-100);--scrollbar-width: .5rem;--scrollbar-track-bg: var(--color-light-100);--scrollbar-thumb-bg: var(--color-light-900);--scrollbar-thumb-hover-bg: var(--color-dark-100);--scrollbar-border-radius: 4px}:root[data-theme=dark]{--bg-color: var(--color-dark-400);--bg-modal-color: var(--color-dark-400);--font-color: var(--color-light-100)}
1
+ @charset "UTF-8";@import"https://fonts.googleapis.com/css2?family=Assistant:wght@400..700&display=swap";@import"https://fonts.googleapis.com/css2?family=Inter:opsz,wght@14..32,100..900&display=swap";@import"https://fonts.googleapis.com/css2?family=Roboto:wght@400;500;700&display=swap";._text_4m304_1,._tertiary_4m304_1,._secondary_4m304_1,._primary_4m304_1{display:inline-flex;justify-content:center;cursor:pointer;user-select:none;width:fit-content;gap:.625em;min-height:2.25em;padding:.625em;font-weight:var(--font-weight-medium);text-align:center;border-radius:var(--border-radius-m)}._text_4m304_1:focus,._tertiary_4m304_1:focus,._secondary_4m304_1:focus,._primary_4m304_1:focus{outline:none}._text_4m304_1:focus-visible,._tertiary_4m304_1:focus-visible,._secondary_4m304_1:focus-visible,._primary_4m304_1:focus-visible{outline:2px solid var(--color-accent-700)}._primary_4m304_1{color:var(--color-light-100);background-color:var(--color-accent-500)}._primary_4m304_1:hover{background-color:var(--color-accent-300)}._primary_4m304_1:active{background-color:var(--color-accent-700)}._secondary_4m304_1{color:var(--color-light-100);background-color:var(--color-dark-300)}._secondary_4m304_1:focus-visible{outline:1px solid var(--color-accent-300)}._secondary_4m304_1:hover{background-color:var(--color-dark-100)}._secondary_4m304_1:active{background-color:var(--color-dark-400)}._tertiary_4m304_1{border:1px solid currentcolor}._fullWidth_4m304_50{width:100%}._buttonWithIcon_4m304_54{display:flex;justify-content:space-between;align-items:center;gap:.625em;width:100%}._buttonWithIcon_4m304_54 ._content_4m304_61{display:flex;align-items:center;gap:.625em}._buttonWithIcon_4m304_54 svg{width:var(--icon-size-lg);height:var(--icon-size-lg)}._buttonWithIcon_4m304_54 ._shortcut_4m304_70{opacity:.6}._text_4m304_1:hover,._tertiary_4m304_1:hover{background-color:var(--color-accent-100)}._text_4m304_1:active,._tertiary_4m304_1:active{background-color:var(--color-accent-300);outline:1px solid var(--color-accent-700)}._disabled_4m304_82{cursor:not-allowed;pointer-events:none;opacity:.65}._content_23x5h_1,._header_23x5h_1{display:flex;flex-direction:column;gap:.75rem}._root_23x5h_7{background-color:var(--bg-color);box-shadow:var(--box-shadow);border-radius:.125rem;padding:.75rem}._header_23x5h_1{display:flex;align-items:flex-start;gap:.75rem;font-size:1.25rem;border-bottom:1px solid var(--dialog-border-color);padding:0 0 .75rem}._header_23x5h_1+._contentAfterHeader_23x5h_22{padding-top:1.125rem}._root_1xfv8_1{display:inline-block;position:relative}._dropdownContent_1xfv8_6{position:absolute;background-color:var(--bg-modal-color);border-radius:var(--border-radius-lg);margin-top:.5rem;padding:.5rem;box-shadow:var(--box-shadow);z-index:1000;min-width:200px}._left_1xfv8_17{left:0}._center_1xfv8_21{left:50%;transform:translate(-50%)}._right_1xfv8_26{right:20%}._top_1xfv8_30{bottom:100%}._bottom_1xfv8_34{top:100%}._fixedPosition_1xfv8_38{position:fixed;left:5%}._dialogRoot_c30vs_1{position:relative}._dialogTrigger_c30vs_5{border:none;background:none;padding:0;cursor:pointer;font:inherit}._dialogContent_c30vs_13{padding:.5rem;background-color:var(--bg-modal-color);border-radius:8px;border:none;box-shadow:var(--box-shadow)}._dialogContent_c30vs_13::backdrop{background-color:#00000080}._dialogClose_c30vs_25{border:none;background:none;padding:0;cursor:pointer;font:inherit}._dialogTitle_c30vs_33{font-size:1.5rem;padding-block:.5rem}._dialogSeparator_c30vs_38{height:1px;background-color:var(--color-light-500);margin:10px 0}:root{--sidebar-width: 250px;--sidebar-height: 100vh;--sidebar-bg: var(--color-dark-300);--sidebar-color: var(--color-light-500);--animation-duration: .3s;--sidebar-zIndex-trigger: 10;--sidebar-zIndex-content: 100}._sidebar_dg2au_12{width:100%}._trigger_dg2au_16{position:relative;z-index:var(--sidebar-zIndex-trigger)}._content_dg2au_21{width:var(--sidebar-width);height:var(--sidebar-height);background:var(--sidebar-bg);color:var(--sidebar-color);padding:1rem;box-shadow:var(--box-shadow, 0 4px 6px rgba(0, 0, 0, .1));position:fixed;top:0;transition:transform var(--animation-duration) ease-in-out;z-index:var(--sidebar-zIndex-content)}._left_dg2au_34{left:0;transform:translate(-100%)}._left_dg2au_34._open_dg2au_38{transform:translate(0)}._right_dg2au_42{right:0;transform:translate(100%)}._right_dg2au_42._open_dg2au_38{transform:translate(0)}._bottom_dg2au_50{inset:auto 0 0;height:fit-content;width:100%;transform:translateY(100%)}._bottom_dg2au_50._open_dg2au_38{transform:translateY(0)}._top_dg2au_63{inset:0 0 auto;height:fit-content;width:100%;transform:translateY(-100%)}._top_dg2au_63._open_dg2au_38{transform:translateY(0)}._switcher_k6tdq_1{display:flex;gap:.5rem;align-items:center}._switcher_k6tdq_1 ._buttons_k6tdq_6{display:flex;gap:.5rem}._switcher_k6tdq_1 ._separator_k6tdq_10{width:1px;height:1.5rem;border-radius:var(--border-radius-lg);background-color:var(--color-light-700)}:root{--head-color: var(--color-dark-300);--cell-color: var(--color-dark-900);--footer-background: var(--color-light-900)}:root[data-theme=dark]{--head-color: var(--color-light-900);--cell-color: var(--color-light-100);--caption-color: var(--color-light-700);--footer-background: var(--color-dark-100)}._root_1b0i5_13{width:100%;border-spacing:0;caption-side:bottom}._header_1b0i5_19{border-bottom:1px solid var(--color-dark-100)}._footer_1b0i5_23{width:100%;background-color:var(--color-dark-100)}._row_1b0i5_28{border-bottom:1px solid var(--color-dark-100);display:flex;flex-direction:row;justify-content:space-between;align-items:center;width:100%}._row_1b0i5_28:hover{background-color:var(--color-dark-300);color:var(--color-light-100)}._body_1b0i5_41{display:flex;flex-direction:column;justify-content:center}._head_1b0i5_19,._cell_1b0i5_48{justify-items:flex-start;padding:.5rem;font-size:14px;width:100%}._cell_1b0i5_48{color:var(--cell-color)}._head_1b0i5_19{color:var(--head-color);font-weight:500;text-align:start}._caption_1b0i5_65{margin-top:1rem;color:var(--caption-color)}._storiesFooterCellOne_1b0i5_70{vertical-align:middle}._storiesFooterCellTwo_1b0i5_73{text-align:end}._inputContainer_iqbs3_1{position:relative;width:100%;background-color:inherit}._inputContainer_iqbs3_1 input[type=search]::-webkit-search-cancel-button{-webkit-appearance:none;appearance:none}._input_iqbs3_1{display:flex;width:100%;padding-inline:16px;padding-block:12px;color:var(--color-dark-100);background-color:var(--color-light-500);border:1px solid transparent;border-radius:16px;font-size:var(--font-weight-bold);line-height:var(--line-height-m)}._input_iqbs3_1:disabled{color:var(--color-dark-300)}._input_iqbs3_1:focus{color:var(--color-dark-300);border-color:var(--color-accent-500)}._input_iqbs3_1:hover{color:var(--color-dark-100);border-color:var(--color-dark-100)}._input_iqbs3_1:active:enabled{border-color:var(--color-light-100)}._input_iqbs3_1:focus-visible{border-color:var(--color-dark-100)}._input_iqbs3_1._inputSearch_iqbs3_40{padding-inline:50px 34px}._input_iqbs3_1._inputSearch_iqbs3_40._error_iqbs3_43{color:var(--color-danger-300);border-color:var(--color-danger-300)}._input_iqbs3_1._inputSearch_iqbs3_40._error_iqbs3_43::placeholder{color:red}._input_iqbs3_1._error_iqbs3_43{color:var(--color-danger-300);border-color:var(--color-danger-300)}._input_iqbs3_1._error_iqbs3_43::placeholder{color:red}._button_iqbs3_58{position:absolute;top:16px;right:15px;width:20px;height:20px;padding:0;background-color:inherit;border:0}._button_iqbs3_58._buttonWithLabel_iqbs3_68{cursor:pointer;bottom:8px}._resetSearchValue_iqbs3_73{color:var(--color-dark-100)}._resetSearchValue_iqbs3_73:hover{color:var(--color-danger-300)}._searchOutline_iqbs3_80{position:absolute;top:14px;left:16px;color:var(--color-dark-100)}._errorMessage_iqbs3_87{position:absolute;font-size:var(--font-size-s);line-height:var(--line-height-m);color:var(--color-danger-300)}._root_17w6h_1{position:relative;display:inline-flex;align-items:center;cursor:pointer;-webkit-tap-highlight-color:transparent;-webkit-user-select:none;user-select:none}._icon_17w6h_11{display:flex;justify-content:center;align-items:center;border-radius:var(--border-radius-lg);width:var(--button-size-lg);height:var(--button-size-lg);transition:background-color .2s ease}._icon_17w6h_11:hover{background-color:var(--color-accent-100)}._icon_17w6h_11:active,._icon_17w6h_11._active_17w6h_27{background-color:var(--color-accent-300);border:1px solid var(--color-accent-300)}._icon_17w6h_11._disabled_17w6h_31{opacity:.6;cursor:not-allowed;background-color:var(--color-light-700)}._icon_17w6h_11._disabled_17w6h_31:hover{background-color:var(--color-light-700)}._icon_17w6h_11 svg{width:var(--icon-size-lg);height:var(--icon-size-lg)}._keybinding_17w6h_44{position:absolute;bottom:4px;right:2px;font-size:.625rem;color:var(--color-dark-300);-webkit-user-select:none;user-select:none}._buttonGroup_ejhd6_1{display:flex;gap:0;border-radius:var(--border-radius-lg);width:fit-content;overflow:hidden}._button_ejhd6_1{display:flex;align-items:center;padding:.5rem;border:none;background-color:var(--color-dark-100);color:#fff;transition:background-color .3s;cursor:pointer}._button_ejhd6_1:hover:not(:disabled){background-color:var(--color-dark-300)}._button_ejhd6_1:active:not(:disabled){background-color:var(--color-dark-500)}._button_ejhd6_1:disabled{background-color:#555;cursor:not-allowed}._button_ejhd6_1 button:focus-visible{outline:2px solid var(--color-dark-500);outline-offset:2px}._button_ejhd6_1 svg{height:var(--icon-size-lg);width:var(--icon-size-lg)}._button_ejhd6_1 ._label_ejhd6_37{height:var(--icon-size-lg);line-height:1rem}._single_ejhd6_42{border-radius:var(--border-radius-lg)}._first_ejhd6_46{border-radius:var(--border-radius-lg) 0 0 var(--border-radius-lg)}._last_ejhd6_50{border-radius:0 var(--border-radius-lg) var(--border-radius-lg) 0}._selected_ejhd6_54{background-color:var(--color-dark-500)}._colorButton_wldf2_1{filter:none;transition:background-color .2s ease;display:flex;justify-content:flex-end;align-items:end;padding-right:.25rem;border:.4px solid var(--color-light-700);font-size:var(--font-size-xs);background-color:var(--swatch-color)}._colorButton_wldf2_1:hover{box-shadow:0 0 0 1px var(--color-light-900)}._colorButton_wldf2_1:active{box-shadow:0 0 0 .5px var(--color-accent-700)}._colorButton_wldf2_1:disabled{opacity:.6;cursor:not-allowed}._colorButton_wldf2_1 ._hotkey_wldf2_22{user-select:none}._selected_wldf2_26,._selected_wldf2_26:hover{box-shadow:0 0 0 1px var(--color-accent-700)}._disabled_wldf2_33{opacity:.6;cursor:not-allowed}._disabled_wldf2_33:hover{border-color:transparent}._transparent_wldf2_41{background:url(data:image/png;base64,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) center center;background-size:cover}._small_wldf2_46{width:var(--button-size-xs);height:var(--button-size-xs);border-radius:var(--border-radius-m)}._medium_wldf2_52{width:var(--button-size-m);height:var(--button-size-m);border-radius:var(--border-radius-m)}._large_wldf2_58{width:var(--button-size-xl);height:var(--button-size-xl);border-radius:var(--border-radius-lg)}._content_1ybrq_1{top:-.5rem;left:3rem;max-width:210px;padding-inline:1rem;padding-block:.5rem 1rem;display:flex;flex-direction:column;gap:.5rem}._content_1ybrq_1 ._section_1ybrq_11{display:flex;flex-direction:column;gap:.25rem}._title_1ybrq_17{font-size:var(--font-size-small);font-weight:var(--font-weight-regular)}@media (max-width: 738px){._content_1ybrq_1{top:2rem;left:-5rem}}:root{--iconButton-border: 1px solid var(--color-accent-100);--iconButton-color: var(--color-dark-900)}:root[data-theme=light]{--iconButton-border: 1px solid var(--color-accent-100);--iconButton-color: var(--color-dark-900)}:root[data-theme=dark]{--iconButton-border: 1px solid var(--color-accent-100);--iconButton-color: var(--color-light-500)}._iconButton_yk1r1_14{color:var(--iconButton-color);display:flex;align-items:center;justify-content:center;width:var(--button-size-lg);height:var(--button-size-lg);border-radius:var(--border-radius-lg);transition:background-color .2s ease;border:var(--iconButton-border)}._iconButton_yk1r1_14:disabled{cursor:not-allowed;border:1px solid transparent}._iconButton_yk1r1_14 svg{width:var(--icon-size-lg);height:var(--icon-size-lg)}._primary_yk1r1_34{background-color:var(--color-light-500);border:1px solid var(--color-light-500)}._primary_yk1r1_34:hover{background-color:var(--color-accent-300)}._primary_yk1r1_34:active{background-color:var(--color-accent-300);border-color:var(--color-accent-500)}._secondary_yk1r1_46:hover{background-color:var(--color-accent-100)}._secondary_yk1r1_46:active{background-color:var(--color-accent-500);border-color:var(--color-accent-500)}._transparent_yk1r1_54{border-color:transparent}._transparent_yk1r1_54:hover{background-color:var(--color-accent-100)}._transparent_yk1r1_54:active{background-color:var(--color-accent-300);border-color:var(--color-accent-500)}._selected_yk1r1_65{background-color:var(--color-accent-300);border:1px solid var(--color-accent-300)}._selected_yk1r1_65 ._transparent_yk1r1_54{background-color:var(--color-accent-500);border-color:var(--color-accent-500)}._disabled_yk1r1_74{opacity:.6;cursor:not-allowed;background-color:var(--color-light-700)}._disabled_yk1r1_74:hover{background-color:var(--color-light-700)}._disabled_yk1r1_74:active{border-color:var(--color-light-700);background-color:var(--color-light-700)}._hexInput_x3rtz_1{position:relative;box-sizing:border-box;display:grid;grid-template-columns:auto 1fr;max-width:200px;gap:.25rem;align-items:center;overflow:hidden}._hexInput_x3rtz_1 ._inputContainer_x3rtz_11{position:relative;display:flex;align-items:center;max-width:100%;overflow:hidden}._hexInput_x3rtz_1 ._hash_x3rtz_18{position:absolute;left:.5rem;color:var(--color-light-900);pointer-events:none;font-size:var(--font-size-xl)}._hexInput_x3rtz_1 ._input_x3rtz_11{flex:1;padding-left:1.5rem;height:1.875rem;border-radius:var(--border-radius-m);border:1px solid var(--color-light-700);padding-block:.25rem;padding-right:.5rem;max-width:100%;font-size:var(--font-size-m)}._hexInput_x3rtz_1 ._input_x3rtz_11:focus-visible,._hexInput_x3rtz_1 ._input_x3rtz_11:focus{border:1px solid var(--color-accent-700)}._hexInput_x3rtz_1 ._input_x3rtz_11._error_x3rtz_39{border-color:var(--color-error)}._hexInput_x3rtz_1 ._copyButton_x3rtz_42{width:1.875rem;height:1.875rem;align-self:flex-start;border-radius:var(--border-radius-m)}._hexInput_x3rtz_1 ._slot_x3rtz_48{border-left:1px solid var(--color-light-700);position:absolute;right:.5rem;bottom:.22rem;padding-inline:.5rem}._hexInput_x3rtz_1 ._copiedMessage_x3rtz_55{height:1.875rem;position:absolute;display:flex;align-items:center;justify-content:center;top:0;left:2rem;background-color:var(--color-dark-300);color:#fff;padding:4px 8px;border-radius:var(--border-radius-m);font-size:var(--font-size-xs);animation:_fadeInOut_x3rtz_1 2s ease-out}@keyframes _fadeInOut_x3rtz_1{0%{opacity:0}20%{opacity:1}80%{opacity:1}to{opacity:0}}._colorsList_1brrj_1{display:grid;grid-template-columns:1fr 1fr 1fr 1fr 1fr;grid-auto-rows:auto;grid-column-gap:.25rem;grid-row-gap:.25rem}._shadowList_1srdv_1{display:grid;grid-template-columns:1fr 1fr 1fr 1fr 1fr}._shadowText_1srdv_6{display:flex;justify-content:center;align-items:center;font-size:var(--font-size-xs);height:var(--button-size-xl)}._pagination_3kmd4_1{width:100%;max-width:800px;margin:0 auto;padding:20px 15px;user-select:none;display:flex;justify-content:space-between;align-items:center;gap:2rem}._pages_3kmd4_13{display:flex;align-items:center;gap:.5rem}._selectContainer_1kdni_1{position:relative}._selectButton_1kdni_5{display:flex;justify-content:space-between}._selectIcon_1kdni_10{transition:transform 2ms ease-in-out}._selectIconOpen_1kdni_14{transform:rotate(180deg)}._selectMenu_1kdni_18{position:absolute;background-color:var(--bg-modal-color);max-width:max-content;max-height:13rem;overflow-y:auto;overflow-x:hidden;border-radius:var(--border-radius-m);box-shadow:var(--box-shadow);z-index:10}._selectMenu_1kdni_18::-webkit-scrollbar{width:var(--scrollbar-width)}._selectMenu_1kdni_18::-webkit-scrollbar-track{background:var(--scrollbar-track-bg);border-radius:var(--border-radius-m)}._selectMenu_1kdni_18::-webkit-scrollbar-thumb{background:var(--scrollbar-thumb-bg);border-radius:4px}._selectMenu_1kdni_18::-webkit-scrollbar-thumb:hover{background:var(--scrollbar-thumb-hover-bg)}._positionBottomRight_1kdni_44{top:100%;right:0;margin-top:.5rem}._positionBottomLeft_1kdni_50{top:100%;left:0;margin-top:.5rem}._positionTopRight_1kdni_56{bottom:100%;right:0;margin-bottom:.5rem}._positionTopLeft_1kdni_62{bottom:100%;left:0;margin-bottom:.5rem}._positionRight_1kdni_68{top:0;left:100%;margin-left:.5rem}._positionLeft_1kdni_74{top:0;right:100%;margin-right:.5rem}._positionBottom_1kdni_44{top:100%;left:0;margin-top:.5rem}._positionTop_1kdni_56{bottom:100%;left:0;margin-bottom:.5rem}._menuItem_1kdni_92{display:flex;width:200px;align-items:center;cursor:pointer;padding:.5rem 1rem;transition:background-color .2s;border-radius:var(--border-radius-m)}._menuItemSelected_1kdni_102{background-color:var(--color-light-900)}._menuItemHover_1kdni_106:hover{background-color:var(--color-light-700)}._menuItemHighlighted_1kdni_110{background-color:var(--color-light-700);outline:none}:root{--shourtcut-border: 1px solid var(--color-light-700);--shourtcut-title-color: var(--color-dark-900);--shourtcut-item-key-background: var(--color-accent-300);--shourtcut-item-key-color: var(--color-dark-900);--shourtcut-item-description-color: var(--color-dark-900)}:root[data-theme=light]{--shourtcut-border: 1px solid var(--color-light-700);--shourtcut-title-color: var(--color-dark-900);--shourtcut-item-key-background: var(--color-accent-300);--shourtcut-item-key-color: var(--color-dark-900);--shourtcut-item-description-color: var(--color-dark-900)}:root[data-theme=dark]{--shourtcut-border: 1px solid var(--color-light-900);--shourtcut-title-color: var(--color-light-100);--shourtcut-item-key-background: var(--color-accent-500);--shourtcut-item-key-color: var(--color-light-700);--shourtcut-item-description-color: var(--color-light-100)}._groupTitle_eelpn_23{font-size:var(--font-size-m);font-weight:var(--font-weight-bold);color:var(--shourtcut-title-color);margin-bottom:.625rem}._list_eelpn_30{border:var(--shourtcut-border);border-radius:var(--border-radius-m)}._item_eelpn_35{display:flex;justify-content:space-between;align-items:center;gap:2rem;padding:.375rem .75rem}._item_eelpn_35:not(:last-child){border-bottom:var(--shourtcut-border)}._itemKeysVariants_eelpn_45{display:flex;align-items:center;gap:.25rem}._itemKeysSeparator_eelpn_50{color:var(--shourtcut-item-key-color);font-size:var(--font-size-s)}._itemDescription_eelpn_54{font-size:var(--font-size-s);color:var(--shourtcut-item-description-color);white-space:nowrap}._itemKey_eelpn_45{font-size:var(--font-size-xs);line-height:var(--line-height-s);padding:.5rem;background:var(--shourtcut-item-key-background);color:var(--shourtcut-item-key-color);border-radius:var(--border-radius-lg)}._slider-container_1b9o2_1{max-width:300px;outline:none}._slider_1b9o2_1{width:100%;appearance:none;height:6px;border-radius:5px;outline:none;transition:background .3s}._slider_1b9o2_1::-webkit-slider-thumb{appearance:none;width:15px;height:15px;background:var(--color-accent-500);border-radius:50%;cursor:pointer;transition:background .3s}._slider_1b9o2_1::-webkit-slider-thumb:hover{background:var(--color-accent-700)}._slider_1b9o2_1::-webkit-slider-thumb:active{background:var(--color-accent-700)}._slider_1b9o2_1::-moz-range-thumb{width:15px;height:15px;background:var(--color-accent-700);border-radius:50%;cursor:pointer}._focused_1b9o2_37 ._slider_1b9o2_1::-webkit-slider-thumb{background:var(--color-accent-700)}:root{--themeSwitcher-background: var(--color-dark-100);--themeSwitcher-background-btn: var(--color-accent-300);--themeSwitcher-background-btn-selected: var(--color-accent-300);--themeSwitcher-border: var(--color-light-900);--themeSwitcher-selected-color: var(--color-dark-700);--themeSwitcher-color: var(--color-accent-300)}:root[data-theme=light]{--themeSwitcher-background: var(--color-light-100);--themeSwitcher-background-btn: var(--color-accent-500);--themeSwitcher-background-btn-selected: var(--color-accent-500);--themeSwitcher-color: var(--color-accent-500);--themeSwitcher-selected-color: var(--color-light-100);--themeSwitcher-border: var(--color-light-700)}._themeSwitcher_11ggx_18{display:flex;padding:.188rem;border-radius:var(--border-radius-lg);border:.5px solid var(--themeSwitcher-border);width:fit-content;background-color:var(--themeSwitcher-background);color:var(--themeSwitcher-color)}._themeSwitcher_11ggx_18 ._themeButton_11ggx_27{width:2rem;height:1.5rem}._themeSwitcher_11ggx_18 ._themeButton_11ggx_27 ._background_11ggx_31{background-color:var(--bg-color);width:100%;height:30vh;display:flex;align-items:center;justify-content:center}._themeSwitcher_11ggx_18 ._themeButton_11ggx_27:hover{background:none}._themeSwitcher_11ggx_18 ._selectedButton_11ggx_42{background:var(--themeSwitcher-background-btn-selected);color:var(--themeSwitcher-selected-color)}._themeSwitcher_11ggx_18 ._selectedButton_11ggx_42:hover{background:var(--themeSwitcher-background-btn-selected)}:root{--toggleSwitcher-background-color: var(--color-light-500);--toggleSwitcher-border-color: var(--color-light-500);--toggleSwitcher-selected-background: var(--color-accent-500);--toggleSwitcher-selected-color: var(--color-light-500)}:root[data-theme=dark]{--toggleSwitcher-background-color: var(--color-dark-500);--toggleSwitcher-border-color: var(--color-dark-100);--toggleSwitcher-selected-background: var(--color-accent-300);--toggleSwitcher-selected-color: var(--color-dark-500)}._toggleSwitch_1w0s9_14{display:flex;padding:.13rem;border:1px solid var(--toggleSwitcher-border-color);background-color:var(--toggleSwitcher-background-color);border-radius:var(--border-radius-lg);box-shadow:var(--box-shadow);width:fit-content}._button_1w0s9_24{height:var(--button-size-lg);display:flex;align-items:center;justify-content:center;border-radius:var(--border-radius-lg)}._button_1w0s9_24:hover{background-color:transparent}._button_1w0s9_24:active{border-color:transparent}._button_1w0s9_24 svg{width:var(--icon-size-lg)}._selected_1w0s9_41{background-color:var(--toggleSwitcher-selected-background);color:var(--toggleSwitcher-selected-color)}._selected_1w0s9_41:hover{background-color:var(--toggleSwitcher-selected-background)}._selected_1w0s9_41:focus{background-color:var(--toggleSwitcher-selected-background)}._toolbar_18q11_1{padding:4px;border-radius:var(--border-radius-lg);background-color:var(--bg-color);box-shadow:var(--box-shadow);grid-auto-rows:min-content;display:grid;width:min-content}._separator_18q11_11{background-color:var(--color-light-500);margin:0 .25rem}._vertical_18q11_16{grid-template-columns:auto;grid-auto-rows:min-content;grid-auto-flow:row;gap:.25rem}._vertical_18q11_16 ._separator_18q11_11{width:1.5rem;height:1px;justify-self:center}._horizontal_18q11_28{grid-template-rows:auto;grid-auto-columns:min-content;grid-auto-flow:column;gap:.25rem}._horizontal_18q11_28 ._separator_18q11_11{width:1px;height:1.5rem;align-self:center}._root_y0usf_1{border-radius:var(--border-radius-lg)}._cardList_y0usf_5{display:grid;gap:1rem;grid-template-columns:repeat(auto-fill,minmax(250px,1fr))}@media (max-width: 770px){._cardList_y0usf_5{grid-template-columns:repeat(auto-fill,minmax(150px,1fr))}}._cardItemHeader_y0usf_16{display:flex;flex-direction:row;flex-wrap:nowrap;align-items:center;gap:1rem}._cardItemHeaderIcon_y0usf_23{height:100%;display:flex;align-self:center}._cardItemHeaderTitle_y0usf_28{font-size:.95rem;font-weight:var(--font-weight-regular);text-wrap:nowrap;overflow-x:hidden}._cardItemHeaderAction_y0usf_34{margin-left:auto;display:flex}._cardItemContentImg_y0usf_38{width:100%;border-radius:var(--border-radius-lg)}._content_1iqyy_1{padding:2.5rem}._card_1iqyy_5{display:flex;align-items:center;flex-direction:column;gap:1.5rem;padding:1rem}._cardList_1iqyy_12{margin-top:1rem;display:grid;grid-template-columns:auto auto auto;gap:1rem;max-width:800px}._cardIcon_1iqyy_19{width:90px;height:90px;display:flex;align-items:center;justify-content:center;color:var(--color-light-100);border-radius:50%}._cardTitle_1iqyy_28{font-size:var(--font-size-xxl);text-align:center;font-weight:var(--font-weight-bold)}._cardDescription_1iqyy_33{margin-bottom:auto;text-align:center;font-size:var(--font-size-m);min-height:90px;padding:0 1rem}._red_1iqyy_41{background-color:var(--color-danger-300)}._green_1iqyy_45{background-color:var(--color-success-700)}._primary_1iqyy_49{background-color:var(--color-accent-500)}@media (max-width: 768px){._content_1iqyy_1{width:100vw;height:100vh}._cardList_1iqyy_12{grid-template-columns:1fr}}:root{--color-accent-100: #e3e2fe;--color-accent-300: #cecdff;--color-accent-500: #6965db;--color-accent-700: #363399;--color-accent-900: #292673;--color-success-100: #80ffbf;--color-success-300: #22e584;--color-success-500: #14cc70;--color-success-700: #0f9954;--color-success-900: #0a6638;--color-danger-100: #ff8099;--color-danger-300: #f23d61;--color-danger-500: #cc1439;--color-danger-700: #990f2b;--color-danger-900: #660a1d;--color-warning-100: #ffd073;--color-warning-300: #e5ac39;--color-warning-500: #d99000;--color-warning-700: #960;--color-warning-900: #640;--color-light-100: #fff;--color-light-300: #f7fbff;--color-light-500: #edf3fa;--color-light-700: #d5dae0;--color-light-900: #8d9094;--color-dark-100: #4c4c4c;--color-dark-300: #333;--color-dark-400: #212121;--color-dark-500: #171717;--color-dark-700: #0d0d0d;--color-dark-900: #000}:root{--font-family-primary: "Assistant", "Inter", "Roboto", -apple-system, sans-serif;--line-height-s: 1;--line-height-m: 1.5;--line-height-l: 2;--font-size-xs: .75rem;--font-size-s: .875rem;--font-size-m: 1rem;--font-size-l: 1.125rem;--font-size-xl: 1.25rem;--font-size-xxl: 1.625rem;--font-weight-regular: 400;--font-weight-medium: 500;--font-weight-bold: 700}html{font-size:100%;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;-webkit-tap-highlight-color:transparent}*,*:before,*:after{box-sizing:border-box}h1,h2,h3,h4,h5,h6,p,ul,li{padding:0;margin:0}input,button,select,textarea,optgroup,option{font-family:inherit;font-size:inherit;font-weight:inherit;font-style:inherit;color:inherit}button{padding:0;background-color:transparent;border:none}a{text-decoration:none}:where(a:visited){color:inherit}body{margin:0;padding:0;font-family:var(--font-family-primary),sans-serif;line-height:var(--line-height-m);background-color:var(--bg-color)}:root{--button-size-xs: 1.35rem;--button-size-m: 1.625rem;--button-size-xl: 1.85rem;--button-size-lg: 2.25rem;--icon-size-lg: 1rem;--border-radius-m: .25rem;--border-radius-lg: .5rem;--bg-color: var(--color-light-100);--bg-modal-color: var(--color-light-100);--font-color: var(--color-dark-900);--box-shadow: 0px 0px .9310142993927002px 0px rgba(0, 0, 0, .17), 0px 0px 3.1270833015441895px 0px rgba(0, 0, 0, .08), 0px 7px 14px 0px rgba(0, 0, 0, .05);--dialog-border-color: var(--color-light-500);--swatch-color: var(--color-light-100);--scrollbar-width: .5rem;--scrollbar-track-bg: var(--color-light-100);--scrollbar-thumb-bg: var(--color-light-900);--scrollbar-thumb-hover-bg: var(--color-dark-100);--scrollbar-border-radius: 4px}:root[data-theme=dark]{--bg-color: var(--color-dark-400);--bg-modal-color: var(--color-dark-400);--font-color: var(--color-light-100)}
package/package.json CHANGED
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "name": "@yourbestsoft/studio-screen-ui-kit",
3
3
  "private": false,
4
- "version": "0.0.6",
4
+ "version": "0.0.8",
5
5
  "type": "module",
6
6
  "main": "dist/index.js",
7
7
  "module": "dist/index.js",