@zuzjs/ui 0.5.3 → 0.5.4

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/dist/bin.js CHANGED
@@ -85,9 +85,9 @@ const rebuildAll = () => {
85
85
  if (files.length > 0) {
86
86
  const as = [];
87
87
  if (options.file) {
88
- const r = rebuild(files.filter(f => f.endsWith(options.file))[0]);
88
+ const r = rebuild(files.filter(f => f.endsWith(options.file.replace(path.resolve(`./`), ``)))[0]);
89
89
  if (r && r.length > 0) {
90
- as.push(cssBuilder.Build([r], true).sheet);
90
+ as.push(cssBuilder.Build([r], true, options.file).sheet);
91
91
  }
92
92
  }
93
93
  else {
@@ -95,7 +95,7 @@ const rebuildAll = () => {
95
95
  files.map(f => {
96
96
  const r = rebuild(f);
97
97
  if (r && r.length > 0) {
98
- const _built = cssBuilder.Build([r], true);
98
+ const _built = cssBuilder.Build([r], true, f.replace(path.resolve(`./`), ``));
99
99
  as.push(_built.sheet);
100
100
  Object.keys(_built.mediaQuery).map(mq => {
101
101
  if (!mediaQueries[mq])
@@ -0,0 +1,15 @@
1
+ import { BaseProps } from "../types/interfaces";
2
+ import { ALERT } from "../types/enums";
3
+ export interface AlertProps {
4
+ type?: ALERT;
5
+ icon?: string;
6
+ iconSize?: number;
7
+ message?: string;
8
+ title: string;
9
+ }
10
+ export interface AlertHandler {
11
+ open: () => void;
12
+ close: () => void;
13
+ }
14
+ declare const Alert: import("react").ForwardRefExoticComponent<AlertProps & BaseProps & import("react").RefAttributes<AlertHandler>>;
15
+ export default Alert;
@@ -0,0 +1,15 @@
1
+ import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
2
+ import { forwardRef } from "react";
3
+ import { ALERT } from "../types/enums";
4
+ import With from "./base";
5
+ const Icons = {
6
+ [ALERT.Info]: _jsx("svg", { xmlns: "http://www.w3.org/2000/svg", viewBox: "0 0 24 24", fill: "none", children: _jsx("path", { fill: "#292D32", d: "M21.56 10.738l-1.35-1.58c-.25-.3-.46-.86-.46-1.26v-1.7c0-1.06-.87-1.93-1.93-1.93h-1.7c-.4 0-.97-.21-1.27-.46l-1.58-1.35c-.69-.59-1.82-.59-2.51 0l-1.6 1.35c-.3.25-.86.46-1.26.46H6.17c-1.06 0-1.93.87-1.93 1.93v1.7c0 .39-.2.95-.45 1.25l-1.35 1.59c-.58.7-.58 1.82 0 2.5l1.35 1.59c.25.29.45.86.45 1.25v1.71c0 1.06.87 1.93 1.93 1.93h1.74c.39 0 .96.21 1.26.46l1.58 1.35c.69.59 1.82.59 2.51 0l1.58-1.35c.3-.25.86-.46 1.26-.46h1.7c1.06 0 1.93-.87 1.93-1.93v-1.7c0-.4.21-.96.46-1.26l1.35-1.58c.61-.68.61-1.81.02-2.51zm-10.31-2.61c0-.41.34-.75.75-.75s.75.34.75.75v4.83c0 .41-.34.75-.75.75s-.75-.34-.75-.75v-4.83zm.75 8.74c-.55 0-1-.45-1-1s.44-1 1-1c.55 0 1 .45 1 1s-.44 1-1 1z" }) }),
7
+ [ALERT.Warning]: _jsx("svg", { xmlns: "http://www.w3.org/2000/svg", viewBox: "0 0 24 24", fill: "none", children: _jsx("path", { fill: "#292D32", d: "M19.51 5.85l-5.94-3.43c-.97-.56-2.17-.56-3.15 0L4.49 5.85a3.15 3.15 0 00-1.57 2.73v6.84c0 1.12.6 2.16 1.57 2.73l5.94 3.43c.97.56 2.17.56 3.15 0l5.94-3.43a3.15 3.15 0 001.57-2.73V8.58a3.192 3.192 0 00-1.58-2.73zm-8.26 1.9c0-.41.34-.75.75-.75s.75.34.75.75V13c0 .41-.34.75-.75.75s-.75-.34-.75-.75V7.75zm1.67 8.88c-.05.12-.12.23-.21.33a.99.99 0 01-1.09.21c-.13-.05-.23-.12-.33-.21-.09-.1-.16-.21-.22-.33a.986.986 0 01-.07-.38c0-.26.1-.52.29-.71.1-.09.2-.16.33-.21.37-.16.81-.07 1.09.21.09.1.16.2.21.33.05.12.08.25.08.38s-.03.26-.08.38z" }) }),
8
+ [ALERT.Error]: _jsx("svg", { xmlns: "http://www.w3.org/2000/svg", viewBox: "0 0 24 24", fill: "none", children: _jsx("path", { d: "M1 21h22L12 2 1 21zm12-3h-2v-2h2v2zm0-4h-2v-4h2v4z" }) }),
9
+ [ALERT.Success]: _jsx("svg", { xmlns: "http://www.w3.org/2000/svg", viewBox: "0 0 24 24", fill: "none", children: _jsx("path", { d: "M12 2C6.48 2 2 6.48 2 12s4.48 10 10 10 10-4.48 10-10S17.52 2 12 2zm-2 15l-5-5 1.41-1.41L10 14.17l7.59-7.59L19 8l-9 9z" }) })
10
+ };
11
+ const Alert = forwardRef((props, ref) => {
12
+ const { type, icon, title, message, iconSize, ...rest } = props;
13
+ return _jsxs(With, { className: `--alert --${(type || ALERT.Info).toLowerCase()} flex aic`, ...rest, children: [_jsx(With, { className: `--icon icon-${icon || `auto-matic`}`, style: iconSize ? { width: iconSize, height: iconSize } : {}, children: !icon && Icons[type || ALERT.Info] }), _jsxs(With, { className: `--meta flex cols`, tag: `h1`, children: [_jsx(With, { className: `--title ${message ? `--tm` : ``}`, tag: `h1`, children: title || `Lorem ipsum dolor sit amet, consectetur adipiscing elit.` }), message && _jsx(With, { className: `--message`, tag: `h2`, children: message })] })] });
14
+ });
15
+ export default Alert;
@@ -0,0 +1,13 @@
1
+ import { BaseProps } from "../types/interfaces";
2
+ import { AVATAR } from "../types/enums";
3
+ export interface AvatarProps {
4
+ type?: AVATAR;
5
+ size?: number;
6
+ src: string;
7
+ crossOrigin?: 'anonymous' | 'use-credentials';
8
+ referrerPolicy?: 'no-referrer' | 'no-referrer-when-downgrade' | 'origin' | 'origin-when-cross-origin' | 'same-origin' | 'strict-origin' | 'strict-origin-when-cross-origin' | 'unsafe-url';
9
+ }
10
+ export interface AvatarHandler {
11
+ }
12
+ declare const Avatar: import("react").ForwardRefExoticComponent<AvatarProps & BaseProps & import("react").RefAttributes<AvatarHandler>>;
13
+ export default Avatar;
@@ -0,0 +1,11 @@
1
+ import { jsx as _jsx } from "react/jsx-runtime";
2
+ import { forwardRef } from "react";
3
+ import { AVATAR } from "../types/enums";
4
+ import With from "./base";
5
+ import { useImage } from "../hooks";
6
+ const Avatar = forwardRef((props, ref) => {
7
+ const { src, size, type, crossOrigin, referrerPolicy, ...rest } = props;
8
+ const [img, imgStatus, imgError] = useImage(src, crossOrigin, referrerPolicy);
9
+ return _jsx(With, { tag: `img`, src: img, style: size ? { width: size, height: size } : {}, crossOrigin: crossOrigin, referrerPolicy: referrerPolicy, className: `--avatar --${(type || AVATAR.Circle).toLowerCase()}`, ...rest });
10
+ });
11
+ export default Avatar;
@@ -1,7 +1,8 @@
1
1
  import { jsx as _jsx, jsxs as _jsxs, Fragment as _Fragment } from "react/jsx-runtime";
2
2
  import { forwardRef, useEffect, useImperativeHandle, useMemo, useRef, useState } from "react";
3
3
  import With from "./base";
4
- import { DRAWER_SIDE, TRANSITION_CURVES, TRANSITIONS } from "../types/enums";
4
+ import { DRAWER_SIDE, KeyCode, TRANSITION_CURVES, TRANSITIONS } from "../types/enums";
5
+ import { bindKey } from "../funs";
5
6
  const Drawer = forwardRef((props, ref) => {
6
7
  const { as, from, speed, children, prerender, ...rest } = props;
7
8
  const [render, setRender] = useState(undefined == prerender ? true : prerender);
@@ -11,6 +12,9 @@ const Drawer = forwardRef((props, ref) => {
11
12
  useEffect(() => {
12
13
  setContent(children);
13
14
  }, [children]);
15
+ useEffect(() => {
16
+ bindKey(KeyCode.Escape, () => visible && setVisible(false));
17
+ }, []);
14
18
  const style = useMemo(() => {
15
19
  switch (from) {
16
20
  case DRAWER_SIDE.Left:
@@ -24,6 +24,7 @@ declare class CSS {
24
24
  _cli: boolean;
25
25
  DIRECT_VALUES: string[];
26
26
  PROPS_VALUES: string[];
27
+ _currentFile: string;
27
28
  constructor(options?: dynamicObject | undefined);
28
29
  buildMediaQueries(queries: dynamicObject): string;
29
30
  styleSheet(cache: dynamicObject, pseudo?: string): string;
@@ -31,12 +32,13 @@ declare class CSS {
31
32
  cleanKey(key: string): string;
32
33
  deepClean(cache: dynamicObject, level?: number): dynamicObject;
33
34
  makeUnit(k: string, v: any): any;
35
+ makeColor(v: string): string;
34
36
  makeValue(k: string, v: any): string;
35
37
  calcIndexes(str: string): string;
36
38
  makeID(k: string, v: string, _out: string): string;
37
39
  lexer(line: string): dynamicObject;
38
40
  processLine(line: string): void;
39
- Build(css: string | string[][], cli?: boolean): {
41
+ Build(css: string | string[][], cli?: boolean, ff?: string): {
40
42
  cx: string[];
41
43
  sheet: string;
42
44
  mediaQuery: dynamicObject;
package/dist/funs/css.js CHANGED
@@ -1,8 +1,9 @@
1
1
  import { __SALT, FIELNAME_KEY, isColor, isHexColor, isNumber, LINE_KEY, setDeep } from "./index.js";
2
- import { cssAnimationCurves, cssDirect, cssProps, cssTransformKeys, cssWithKeys } from "./stylesheet.js";
2
+ import { cssAnimationCurves, cssDirect, cssProps, cssPropsWithColor, cssTransformKeys, cssWithKeys } from "./stylesheet.js";
3
3
  import Hashids from "hashids";
4
4
  import { TRANSITION_CURVES, TRANSITIONS } from "../types/enums.js";
5
5
  import md5 from "md5";
6
+ import pc from "picocolors";
6
7
  class CSS {
7
8
  cx;
8
9
  cache;
@@ -26,6 +27,7 @@ class CSS {
26
27
  _cli;
27
28
  DIRECT_VALUES;
28
29
  PROPS_VALUES;
30
+ _currentFile;
29
31
  constructor(options) {
30
32
  const opts = options || {};
31
33
  this._cli = false;
@@ -46,6 +48,7 @@ class CSS {
46
48
  };
47
49
  this.cx = [];
48
50
  this.cache = {};
51
+ this._currentFile = `?`;
49
52
  this.unit = opts.unit || `px`;
50
53
  this.seperator = `__@@__`;
51
54
  this.hashids = new Hashids(__SALT, 5);
@@ -151,7 +154,9 @@ class CSS {
151
154
  }
152
155
  }
153
156
  }
154
- return scss.join(`\n`);
157
+ return scss
158
+ .filter(x => x.trim() != `.{}`)
159
+ .join(`\n`);
155
160
  }
156
161
  _styleSheet(cache) {
157
162
  const self = this;
@@ -264,7 +269,25 @@ class CSS {
264
269
  return ``;
265
270
  return this.unit;
266
271
  }
272
+ makeColor(v) {
273
+ if (v.charAt(0) == `#`) {
274
+ v = v.substring(1);
275
+ }
276
+ if (v.charAt(0) == `$`) {
277
+ return `var(--${v.replace(`$`, ``)})`;
278
+ }
279
+ if (/^#[0-9A-F]{6}[0-9a-f]{0,2}$/i.test(`#${v}`) ||
280
+ /^#([0-9A-F]{3}){1,2}$/i.test(`#${v}`)) {
281
+ return `#${v}`;
282
+ }
283
+ else if (v.includes(`rgb`) || v.includes(`rgba`)) {
284
+ return v.replace(`[`, `(`).replace(`]`, `)`);
285
+ }
286
+ else
287
+ return v.trim();
288
+ }
267
289
  makeValue(k, v) {
290
+ const self = this;
268
291
  if (k in this.PROPS) {
269
292
  const key = this.PROPS[k];
270
293
  let value;
@@ -272,7 +295,28 @@ class CSS {
272
295
  let hasImportant = v.charAt(v.length - 1) == `!`;
273
296
  v = hasImportant ? v.slice(0, -1) : v;
274
297
  let important = hasImportant ? ` !important` : ``;
275
- if (v.charAt(0) == `$`) {
298
+ if (v.startsWith(`gradient`) || v.startsWith(`linear-gradient`) || v.startsWith(`radial-gradient`)) {
299
+ if (v.startsWith(`gradient`)) {
300
+ v = `linear-${v}`;
301
+ }
302
+ const [_gtype, _xyz, _gto, _gdeg, ..._colors] = v.split(`-`);
303
+ const _gdegree = /^[+-]?\d+(\.\d+)?$/.test(_gdeg) ? `${_gdeg}deg` : `to ${_gdeg}`;
304
+ const _gcolors = _colors.reduce((arr, val) => {
305
+ arr.push(self.makeColor(val));
306
+ return arr;
307
+ }, []).join(`, `);
308
+ switch (_gtype) {
309
+ case `linear`:
310
+ value = `linear-gradient(${_gdegree}, ${_gcolors})`;
311
+ break;
312
+ case `radial`:
313
+ break;
314
+ default:
315
+ value = v;
316
+ break;
317
+ }
318
+ }
319
+ else if (v.charAt(0) == `$`) {
276
320
  value = `var(--${v.replace(`$`, ``)})`;
277
321
  }
278
322
  else if (v.trim() == `transparent`) {
@@ -341,7 +385,7 @@ class CSS {
341
385
  if (_.startsWith(`$`)) {
342
386
  __v.push(`var(--${_.substring(1)})`);
343
387
  }
344
- else if (isColor(`#${_}`)) {
388
+ else if (cssPropsWithColor.includes(_) && isColor(`#${_}`)) {
345
389
  if (_.includes(`rgb`) || _.includes(`rgba`)) {
346
390
  __v.push(_.replace(`[`, `(`).replace(`]`, `)`));
347
391
  }
@@ -400,7 +444,8 @@ class CSS {
400
444
  const ok = _ok.trim();
401
445
  const ov = _ov ? _ov.trim() : v;
402
446
  if (ov == ``) {
403
- throw new TypeError(`${ok} value is empty.`);
447
+ console.log(pc.yellow(`[${self._currentFile}]`), pc.cyan(k), pc.red(`value is empty.`));
448
+ return ``;
404
449
  }
405
450
  let _cp = ok.charAt(0);
406
451
  if (self.PROPS[ok]?.indexOf("-") > -1) {
@@ -424,6 +469,9 @@ class CSS {
424
469
  word = word.replace(/\s+/g, ``);
425
470
  if (word == ``)
426
471
  return;
472
+ if (word[word.length - 1] == `:`) {
473
+ word = word.slice(0, -1);
474
+ }
427
475
  const _kw = word in self.propCounter ? ++self.propCounter[word] : self.propCounter[word] = 1;
428
476
  if (isLevel) {
429
477
  levels.push(`${word}${self.seperator}${_kw}`);
@@ -592,12 +640,13 @@ class CSS {
592
640
  self.cache = { ...self.cache, ..._built };
593
641
  }
594
642
  }
595
- Build(css, cli = false) {
643
+ Build(css, cli = false, ff = ``) {
596
644
  let self = this;
597
645
  self._cli = cli;
598
646
  self.cx = [];
599
647
  self.cache = {};
600
648
  self._mediaQueries = {};
649
+ self._currentFile = ff;
601
650
  if (undefined == css)
602
651
  return {
603
652
  cx: self.cx,
@@ -654,6 +703,15 @@ export const getAnimationCurve = (curve) => {
654
703
  if (!curve)
655
704
  return `linear`;
656
705
  switch (curve.toUpperCase()) {
706
+ case TRANSITION_CURVES.Bounce:
707
+ return `linear( 0, 0.0039, 0.0157, 0.0352, 0.0625 9.09%,
708
+ 0.1407, 0.25, 0.3908, 0.5625, 0.7654,
709
+ 1, 0.8907, 0.8125 45.45%, 0.7852, 0.7657,
710
+ 0.7539, 0.75, 0.7539, 0.7657, 0.7852,
711
+ 0.8125 63.64%, 0.8905, 1 72.73%, 0.9727, 0.9532,
712
+ 0.9414, 0.9375, 0.9414, 0.9531, 0.9726,
713
+ 1, 0.9883, 0.9844, 0.9883, 1 )`;
714
+ break;
657
715
  case TRANSITION_CURVES.Spring:
658
716
  return `cubic-bezier(0.2, -0.36, 0, 1.46)`;
659
717
  break;
@@ -1,6 +1,7 @@
1
1
  import CSS from './css.js';
2
2
  import { dynamicObject, sortOptions } from "../types/index.js";
3
3
  import { FormatNumberParams } from "../types/interfaces.js";
4
+ import { KeyCode } from "../types/enums.js";
4
5
  export declare const __SALT: string;
5
6
  export declare const FIELNAME_KEY = "__FILENAME__";
6
7
  export declare const LINE_KEY = "__LINE__";
@@ -42,3 +43,4 @@ export declare const formatNumber: ({ number, locale, style, decimal, currency }
42
43
  export declare const formatSize: (bytes: number | string) => string;
43
44
  export declare const copyToClipboard: (text: string) => Promise<unknown>;
44
45
  export declare const natsort: (options?: sortOptions) => (a: string | number, b: string | number) => number;
46
+ export declare const bindKey: (key: KeyCode, fun: () => void, element?: HTMLElement) => void;
@@ -323,3 +323,11 @@ export const natsort = (options = {
323
323
  return 0;
324
324
  };
325
325
  };
326
+ export const bindKey = (key, fun, element) => {
327
+ const handleKeydown = (event) => {
328
+ if (key === event.keyCode) {
329
+ fun();
330
+ }
331
+ };
332
+ (element || document.documentElement).addEventListener('keydown', handleKeydown);
333
+ };
@@ -1,6 +1,7 @@
1
1
  import { dynamicObject } from "../types";
2
2
  export declare const cssProps: dynamicObject;
3
3
  export declare const cssDirect: dynamicObject;
4
+ export declare const cssPropsWithColor: string[];
4
5
  export declare const cssAnimationCurves: dynamicObject;
5
6
  export declare const cssAnimationFunctions: dynamicObject;
6
7
  export declare const cssTransformKeys: string[];
@@ -23,6 +23,7 @@ export const cssProps = {
23
23
  "backgroundAttachment": "background-attachment",
24
24
  "backgroundBlendMode": "background-blend-mode",
25
25
  "backgroundClip": "background-clip",
26
+ "bg-clip": "background-clip",
26
27
  "border": "border",
27
28
  "borderBottom": "border-bottom",
28
29
  "borderBottomColor": "border-bottom-color",
@@ -302,6 +303,56 @@ export const cssDirect = {
302
303
  "space-pre": "white-space: pre;",
303
304
  "text-wrap": "width: 98%;white-space: nowrap;overflow: hidden;text-overflow: ellipsis;",
304
305
  };
306
+ export const cssPropsWithColor = [
307
+ "color",
308
+ "background",
309
+ "border",
310
+ "border-color",
311
+ "border-top-color",
312
+ "border-right-color",
313
+ "border-bottom-color",
314
+ "border-left-color",
315
+ "outline-color",
316
+ "text-decoration-color",
317
+ "text-shadow",
318
+ "box-shadow",
319
+ "fill",
320
+ "stroke",
321
+ "stop-color",
322
+ "caret-color",
323
+ "column-rule-color",
324
+ "text-emphasis-color",
325
+ "accent-color",
326
+ "border-block-color",
327
+ "border-inline-color",
328
+ "column-fill",
329
+ "marker",
330
+ "scrollbar-color",
331
+ "outline-offset-color",
332
+ "backgroundColor",
333
+ "borderColor",
334
+ "borderTopColor",
335
+ "borderRightColor",
336
+ "borderBottomColor",
337
+ "borderLeftColor",
338
+ "outlineColor",
339
+ "textDecorationColor",
340
+ "textShadow",
341
+ "boxShadow",
342
+ "fill",
343
+ "stroke",
344
+ "stopColor",
345
+ "caretColor",
346
+ "columnRuleColor",
347
+ "textEmphasisColor",
348
+ "accentColor",
349
+ "borderBlockColor",
350
+ "borderInlineColor",
351
+ "columnFill",
352
+ "marker",
353
+ "scrollbarColor",
354
+ "outlineOffsetColor",
355
+ ];
305
356
  export const cssAnimationCurves = {
306
357
  ease: 'ease',
307
358
  in: 'ease-in',
@@ -1,5 +1,6 @@
1
1
  export { default as useDevice } from './useDevice';
2
2
  export { default as useDimensions } from './useDimensions';
3
+ export { default as useImage } from './useImage';
3
4
  export { default as useMounted } from './useMounted';
4
5
  export { default as useWindowFocus } from './useWindowFocus';
5
6
  export { default as useResizeObserver } from './useResizeObserver';
@@ -1,5 +1,6 @@
1
1
  export { default as useDevice } from './useDevice';
2
2
  export { default as useDimensions } from './useDimensions';
3
+ export { default as useImage } from './useImage';
3
4
  export { default as useMounted } from './useMounted';
4
5
  export { default as useWindowFocus } from './useWindowFocus';
5
6
  export { default as useResizeObserver } from './useResizeObserver';
@@ -0,0 +1,2 @@
1
+ declare const useImage: (url: string, crossOrigin?: "anonymous" | "use-credentials", referrerPolicy?: "no-referrer" | "no-referrer-when-downgrade" | "origin" | "origin-when-cross-origin" | "same-origin" | "strict-origin" | "strict-origin-when-cross-origin" | "unsafe-url") => any[];
2
+ export default useImage;
@@ -0,0 +1,22 @@
1
+ import { useEffect, useRef, useState } from "react";
2
+ const useImage = (url, crossOrigin, referrerPolicy) => {
3
+ const img = useRef(null);
4
+ const [state, setState] = useState({ loaded: false, error: null });
5
+ useEffect(() => {
6
+ if (url) {
7
+ var _img = new Image();
8
+ crossOrigin && (_img.crossOrigin = crossOrigin);
9
+ referrerPolicy && (_img.referrerPolicy = referrerPolicy);
10
+ _img.onload = () => {
11
+ img.current = _img;
12
+ setState({ loaded: true, error: null });
13
+ };
14
+ _img.onerror = () => {
15
+ setState({ loaded: false, error: `Failed to load image at ${url}` });
16
+ };
17
+ _img.src = url;
18
+ }
19
+ }, []);
20
+ return [img.current ? img.current.src : ``, state.loaded, state.error];
21
+ };
22
+ export default useImage;
@@ -0,0 +1,3 @@
1
+ import { KeyCode } from "../types/enums";
2
+ declare const useKeyBind: (key: KeyCode, fun: () => void) => void;
3
+ export default useKeyBind;
@@ -0,0 +1,3 @@
1
+ const useKeyBind = (key, fun) => {
2
+ };
3
+ export default useKeyBind;
package/dist/index.d.ts CHANGED
@@ -3,6 +3,8 @@ export * from "./funs";
3
3
  export * from "./hooks";
4
4
  export * from "./types/enums";
5
5
  export { default as PubSub } from "./funs/events";
6
+ export { default as Alert } from "./comps/alert";
7
+ export { default as Avatar } from "./comps/avatar";
6
8
  export { default as Box } from "./comps/box";
7
9
  export { default as Button } from "./comps/button";
8
10
  export { default as CheckBox } from "./comps/checkbox";
package/dist/index.js CHANGED
@@ -3,6 +3,8 @@ export * from "./funs";
3
3
  export * from "./hooks";
4
4
  export * from "./types/enums";
5
5
  export { default as PubSub } from "./funs/events";
6
+ export { default as Alert } from "./comps/alert";
7
+ export { default as Avatar } from "./comps/avatar";
6
8
  export { default as Box } from "./comps/box";
7
9
  export { default as Button } from "./comps/button";
8
10
  export { default as CheckBox } from "./comps/checkbox";
package/dist/styles.css CHANGED
@@ -1 +1 @@
1
- *,*::before,*::after{box-sizing:border-box;-webkit-tap-highlight-color:rgba(0,0,0,0)}button{user-select:none;cursor:pointer}input{user-select:none}input:-webkit-autofill{background-color:rgba(0,0,0,0) !important;-webkit-box-shadow:0 0 0px 1000px rgba(0,0,0,0) inset;box-shadow:0 0 0px 1000px rgba(0,0,0,0) inset}[aria-hidden=true]{user-select:none;pointer-events:none;cursor:auto}[popover]{margin:0;padding:0;border:0}:root{--basic: ease;--back: linear( 0, -0.0077 5.2%, -0.0452 16.98%, -0.0493 22.35%, -0.0418 25.57%, -0.0258 28.57%, -0.0007 31.42%, 0.0335 34.15%, 0.1242 39.03%, 0.2505 43.65%, 0.3844 47.35%, 0.656 53.68%, 0.81 58.37%, 0.9282 63.52%, 0.9719 66.23%, 1.0055 69.04%, 1.0255 71.4%, 1.0396 73.87%, 1.0477 76.48%, 1.05 79.27%, 1.0419 84.36%, 1.0059 95.49%, 1 );--expo: linear( 0, 0.0053 17.18%, 0.0195 26.59%, 0.0326 30.31%, 0.0506 33.48%, 0.0744 36.25%, 0.1046 38.71%, 0.1798 42.62%, 0.2846 45.93%, 0.3991 48.37%, 0.6358 52.29%, 0.765 55.45%, 0.8622 59.3%, 0.8986 61.51%, 0.9279 63.97%, 0.9481 66.34%, 0.9641 69.01%, 0.9856 75.57%, 0.9957 84.37%, 1 );--sine: linear( 0, 0.007 5.35%, 0.0282 10.75%, 0.0638 16.26%, 0.1144 21.96%, 0.1833 28.16%, 0.2717 34.9%, 0.6868 62.19%, 0.775 68.54%, 0.8457 74.3%, 0.9141 81.07%, 0.9621 87.52%, 0.9905 93.8%, 1 );--power: linear( 0, 0.0012 14.95%, 0.0089 22.36%, 0.0297 28.43%, 0.0668 33.43%, 0.0979 36.08%, 0.1363 38.55%, 0.2373 43.07%, 0.3675 47.01%, 0.5984 52.15%, 0.7121 55.23%, 0.8192 59.21%, 0.898 63.62%, 0.9297 66.23%, 0.9546 69.06%, 0.9733 72.17%, 0.9864 75.67%, 0.9982 83.73%, 1 );--circ: linear( -0, 0.0033 5.75%, 0.0132 11.43%, 0.0296 16.95%, 0.0522 22.25%, 0.0808 27.25%, 0.1149 31.89%, 0.1542 36.11%, 0.1981 39.85%, 0.2779 44.79%, 0.3654 48.15%, 0.4422 49.66%, 0.5807 50.66%, 0.6769 53.24%, 0.7253 55.37%, 0.7714 58.01%, 0.8142 61.11%, 0.8536 64.65%, 0.9158 72.23%, 0.9619 80.87%, 0.9904 90.25%, 1 );--bounce: linear( 0, 0.0039, 0.0157, 0.0352, 0.0625 9.09%, 0.1407, 0.25, 0.3908, 0.5625, 0.7654, 1, 0.8907, 0.8125 45.45%, 0.7852, 0.7657, 0.7539, 0.75, 0.7539, 0.7657, 0.7852, 0.8125 63.64%, 0.8905, 1 72.73%, 0.9727, 0.9532, 0.9414, 0.9375, 0.9414, 0.9531, 0.9726, 1, 0.9883, 0.9844, 0.9883, 1 );--elastic: linear( 0, 0.0009 8.51%, -0.0047 19.22%, 0.0016 22.39%, 0.023 27.81%, 0.0237 30.08%, 0.0144 31.81%, -0.0051 33.48%, -0.1116 39.25%, -0.1181 40.59%, -0.1058 41.79%, -0.0455, 0.0701 45.34%, 0.9702 55.19%, 1.0696 56.97%, 1.0987 57.88%, 1.1146 58.82%, 1.1181 59.83%, 1.1092 60.95%, 1.0057 66.48%, 0.986 68.14%, 0.9765 69.84%, 0.9769 72.16%, 0.9984 77.61%, 1.0047 80.79%, 0.9991 91.48%, 1 );--ease: var(--back);--max-z-index: 2147483647;--text-wheel-speed: 2;--text-wheel-transition: translate calc(var(--text-wheel-speed) * 1s) var(--ease);--checkbox-height: 24px;--checkbox-width: 42px;--checkbox-knob-size: 20px;--checkbox-knob-left: 2px;--checkbox-knob-top: 2px;--checkbox-knob-left-on: 18px;--checkbox-check-color: #fff;--checkbox-check-size: 13px;--checkbox-size: 17px;--checkbox-radius: 6px;--checkbox-checked: rgb(46, 161, 42);--checkbox-unchecked: rgb(203, 203, 203);--checkbox-thumb: #fff;--checkbox-thumb-shadow: #000;--checkbox-thumb-shadow-size: 2px;--select-width: auto;--select: #eee;--select-font-size: 16px;--select-hover: #e6e6e6;--select-options: #eee;--select-options-top: 0.1rem;--select-options-padding: 4px;--select-option-color: #111;--select-option-hover: #ddd;--select-selected: #ccc;--select-padding: 6px 8px;--select-radius: 5px;--cover-bg: rgba(255,255,255,0.8);--cover-label: #111;--zuz-overlay: rgba(0, 0, 0, 0.7);--zuz-overlay-blur: 0;--drawer-color: #fff;--drawer-handle-color: #ccc;--drawer-radius-v: 0px;--drawer-radius-h: 0px;--tab-head: #fff;--tab-head-padding: 3px 3px 0px 3px;--tab-head-radius: 6px 6px 0px 0px;--tab: #eee;--tab-active: #ccc;--tab-active-color: #111;--tab-hover: #ddd;--tab-color: #111;--tab-radius: 5px 5px 0px 0px;--tab-padding: 5px 20px;--tab-body: #fff;--tab-body-radius: 0px 5px 5px 5px;--tab-body-padding: 0px;--tab-border: 1px #ddd solid;--sheet-bg: #fff;--sheet-body: #fff;--sheet-radius: 10px;--sheet-padding: 6px 12px;--sheet-head-padding: 10px;--sheet-body-padding: 10px;--sheet-footer: #ddd;--sheet-footer-padding: 10px;--sheet-action: #222;--sheet-action-color: #fff;--sheet-action-hover: #333;--sheet-action-radius: 7px;--sheet-action-padding: 7px 20px;--sheet-action-font-size: 16px;--sheet-action-font-weight: bold;--sheet-closer-color: #111;--sheet-closer-hover: rgba(255,255,255,0.2);--sheet-closer-opacity: 0.75;--sheet-closer-hover-opacity: 1;--sheet-font-size: 15px;--sheet-title-opacity: 0.75;--sheet-title-font-size: 16px;--sheet-closer-font-size: 36px;--sheet-error: #ff4747;--sheet-warn: #ffba00;--sheet-success: #23ac28;--context-z-index: 99;--context: #fff;--context-border: 0px;--context-radius: 10px;--context-padding: 10px;--context-shadow: 0px 0px 0px 1px #ddd, 0px 0px 0px 3px #eee;--context-seperator: #eee;--context-seperator-height: 1px;--context-seperator-margin: 3px 6px;--context-item-width: 220px;--context-item-padding: 6px 10px;--context-item-gap: 10px;--context-item-font-size: 15px;--context-item-radius: 5px;--context-item-icon-size: 18px;--context-item-hover: #eee;--treeview-gap: 6px;--treenode-gap: 2px;--treenode-arrow-btn-size: 20px;--treenode-arrow-icon-size: 12px;--treenode-arrow-icon-color: #111;--treenode-label-padding: 3px 6px;--treenode-label-radius: 3px 6px;--treenode-label-hover: #f1f1f1;--treenode-label-bg: transparent;--treenode-label-selected-bg: #eee;--treenode-label-selected-color: #111;--treenode-label-icon-color: #111;--treenode-label-icon-size: 15px;--treenode-label-color: #111;--treenode-label-size: 15px;--treenode-label-gap: 6px;--treenode-sub-margin: 20px;--progress-width: 100%;--progress-height: 6px;--progress-radius: 6px;--progress-track: #eee;--progress-bar: #111;--skeleton: #eee;--skeleton-radius: 7px;--shimmer: #ccc;--shimmer-width: 10%;--shimmer-angle: 120deg;--shimmer-speed: 2s;--shimmer-blur: 50px}.flex{display:flex}.flex.cols{flex-direction:column}.flex.aic{align-items:center}.flex.aie{align-items:flex-end}.flex.jcc{justify-content:center}.flex.jce{justify-content:flex-end}.flex.jcs{justify-content:flex-start}.abs{position:absolute}.fixed{position:fixed}.fill{top:0px;left:0px;bottom:0px;right:0px}.fillx{top:-10px;left:-10px;bottom:-10px;right:-10px}.grid{display:grid}.nope{pointer-events:none}.nous{user-select:none}.rel{position:relative}.text-wrap,.ellipsis{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.input-with-error{box-shadow:inset 0px 0px 0px 1px #ff8b8b}button.ico-btn{gap:5px}button .b-label{flex:1}.checkbox{height:var(--checkbox-size);width:var(--checkbox-size);cursor:pointer;border:1px var(--checkbox-unchecked) solid;border-radius:var(--checkbox-radius);overflow:hidden}.checkbox input[type=checkbox]{z-index:0;opacity:0}.checkbox:before{font-size:var(--checkbox-check-size);color:var(--checkbox-check-color);opacity:0}.checkbox.is-checked{background-color:var(--checkbox-checked);border:1px var(--checkbox-checked) solid}.checkbox.is-checked:before{opacity:1}.zuz-checkbox{height:var(--checkbox-height);width:var(--checkbox-width);cursor:pointer}.zuz-checkbox input[type=checkbox]{z-index:0;left:10px;top:10px;opacity:0}.zuz-checkbox:before{content:"";position:absolute;height:var(--checkbox-height);width:var(--checkbox-width);background:var(--checkbox-unchecked);border-radius:50px;z-index:1;transition:all .3s linear 0s}.zuz-checkbox:after{content:"";position:absolute;width:var(--checkbox-knob-size);height:var(--checkbox-knob-size);background:var(--checkbox-thumb);border-radius:50px;z-index:2;top:var(--checkbox-knob-top);left:var(--checkbox-knob-left);box-shadow:0px 0px --checkbox-thumb-shadow-size --checkbox-thumb-shadow;transition:all .75s var(--bounce) 0s}.zuz-checkbox.is-checked:before{box-shadow:inset 0px 0px 0px 15px var(--checkbox-checked)}.zuz-checkbox.is-checked:after{transform:translateX(var(--checkbox-knob-left-on))}@keyframes shimmering{0%{transform:translateX(-100%) rotate(var(--shimmer-angle))}20%{transform:translateX(100%) rotate(var(--shimmer-angle))}100%{transform:translateX(100%) rotate(var(--shimmer-angle))}}.--skeleton{overflow:hidden;border-radius:var(--skeleton-radius);height:1lh;background:var(--skeleton);position:relative}.--skeleton:after{content:"";position:absolute;top:0;left:0;right:0;height:100%;background-repeat:no-repeat;background-image:linear-gradient(90deg, var(--skeleton) 0%, var(--shimmer) 50%, var(--skeleton) 100%);transform:translateX(-100%) rotate(var(--shimmer-angle));animation-name:shimmering;animation-direction:var(--shimmer-direction);animation-duration:var(--shimmer-speed);animation-timing-function:ease-in-out;animation-iteration-count:infinite;filter:blur(var(--shimmer-blur))}.zuz-spinner{animation:spin infinite}@keyframes spin{from{transform:rotate(0deg)}to{transform:rotate(360deg)}}.zuz-cover{backdrop-filter:blur(4px);z-index:99999;gap:15px}.zuz-cover .label{font-size:14px;animation:breath 1s linear infinite}@keyframes breath{0%{opacity:.5}50%{opacity:1}100%{opacity:.5}}.zuz-toast,.zuz-sheet.toast-warn,.zuz-sheet.toast-success,.zuz-sheet.toast-error,.zuz-sheet.toast-default{border-radius:var(--sheet-radius);padding:var(--sheet-padding);font-size:var(--sheet-font-size);white-space:pre}.zuz-sheet{top:50%;left:50%;transform:translate(-50%, -50%);z-index:2147483645;transform-origin:top left;transition:all .5s cubic-bezier(0.2, -0.36, 0, 1.46) 0s}.zuz-sheet.wobble{transform-origin:inherit !important}.zuz-sheet.toast-default{background:#333;color:#fff;top:10px !important}.zuz-sheet.toast-error{background:var(--sheet-error);color:#fff;top:10px}.zuz-sheet.toast-success{background:var(--sheet-success);color:#fff;top:10px}.zuz-sheet.toast-warn{background:var(--sheet-warn);color:#111;top:10px}.zuz-sheet.toast-form{position:absolute !important}.zuz-sheet.toast-dialog{background:var(--sheet-bg);border-radius:var(--sheet-radius)}.zuz-sheet .sheet-head{padding:var(--sheet-head-padding)}.zuz-sheet .sheet-head .sheet-title{flex:1;font-size:var(--sheet-title-font-size);opacity:var(--sheet-title-opacity);text-align:center;padding:0px 45px;display:flex;align-items:center;justify-content:center}.zuz-sheet .sheet-head .sheet-dot{flex:1}.zuz-sheet .sheet-head .sheet-closer{width:32px;height:32px;cursor:pointer;font-size:var(--sheet-closer-font-size);color:var(--sheet-closer-color);background:rgba(0,0,0,0);border:0px;line-height:0;padding:0px;font-weight:normal;border-radius:20px;opacity:var(--sheet-closer-opacity);top:15px;right:5px;transform:translateY(-50%);font-size:var(--sheet-closer-font-size)}.zuz-sheet .sheet-head .sheet-closer:hover{background:var(--sheet-closer-hover);opacity:var(--sheet-closer-hover-opacity)}.zuz-sheet .sheet-body{background:var(--sheet-body);padding:var(--sheet-body-padding)}.zuz-sheet .sheet-body.--no-action{border-radius:0px 0px var(--sheet-radius) var(--sheet-radius)}.zuz-sheet .sheet-footer{padding:var(--sheet-footer-padding);background:var(--sheet-footer);border-radius:0px 0px var(--sheet-radius) var(--sheet-radius)}.zuz-sheet .sheet-footer .sheet-action-btn{background:var(--sheet-action);color:var(--sheet-action-color);border-radius:var(--sheet-action-radius);padding:var(--sheet-action-padding);font-size:var(--sheet-action-font-size);font-weight:var(--sheet-action-font-weight);border:0px}.zuz-sheet .sheet-footer .sheet-action-btn:hover{background:var(--sheet-action-hover)}.zuz-sheet-overlay{background:rgba(0,0,0,.7);z-index:111;backdrop-filter:blur(10px)}.context-menu{z-index:var(--context-z-index);background:var(--context);border-radius:var(--context-radius);padding:var(--context-padding);box-shadow:var(--context-shadow)}.context-menu .context-line{height:var(--context-seperator-height);background:var(--context-seperator);margin:var(--context-seperator-margin)}.context-menu .context-menu-item{width:var(--context-item-width);padding:var(--context-item-padding);gap:var(--context-item-gap);cursor:pointer;font-size:var(--context-item-font-size);border-radius:var(--context-item-radius)}.context-menu .context-menu-item .ico{font-size:var(--context-item-icon-size)}.context-menu .context-menu-item:hover{background:var(--context-item-hover)}.zuz-select-wrap{width:var(--select-width);z-index:1}.zuz-select-wrap .zuz-select{width:100%;gap:5px;background:var(--select);border-radius:var(--select-radius);border:0px;padding:12px 15px;font-size:var(--select-font-size)}.zuz-select-wrap .zuz-select:hover{background:var(--select-hover)}.zuz-select-wrap .zuz-select .zuz-selected{flex:1;text-align:left}.zuz-select-wrap .zuz-select-options{backdrop-filter:blur(10px) saturate(0);left:0;top:calc(100% + var(--select-options-top));width:100%;max-height:400px;overflow-x:hidden;gap:2px;background:var(--select-options);border-radius:var(--select-radius);padding:var(--select-options-padding)}.zuz-select-wrap .zuz-select-options button{background:rgba(0,0,0,0);border:0px;text-align:left;color:var(--select-option-color);padding:var(--select-padding);border-radius:var(--select-radius);font-size:var(--select-font-size);white-space:pre}.zuz-select-wrap .zuz-select-options button:hover{background:var(--select-option-hover)}.zuz-select-wrap .zuz-select-options button.selected{background:var(--select-selected)}.zuz-overlay{background:var(--zuz-overlay);z-index:2147483645;backdrop-filter:blur(var(--zuz-overlay-blur))}.drawer-h,.zuz-drawer.drawer-right,.zuz-drawer.drawer-left{min-width:320px;max-width:90vw;top:0px;bottom:0px;border-radius:var(--drawer-radius-h)}.drawer-v,.zuz-drawer.drawer-bottom,.zuz-drawer.drawer-top{min-height:10vh;max-height:90vh;left:0px;right:0px;border-radius:var(--drawer-radius-v)}.zuz-drawer{background:var(--drawer-color);z-index:2147483646;overflow-x:hidden;overflow-y:auto}.zuz-drawer.drawer-left{left:0px}.zuz-drawer.drawer-right{right:0px}.zuz-drawer.drawer-top{top:0px}.zuz-drawer.drawer-bottom{bottom:0px}.zuz-drawer .drawer-handle{width:100px;height:6px;border-radius:10px;background:var(--drawer-handle-color);margin:12px auto 0px auto}.text-wheel{transform-style:flat}.text-wheel .wheel-char{font-variant:tabular-nums;overflow:hidden;height:1lh}.text-wheel .wheel-char .wheel-char-track{transition:var(--text-wheel-transition)}.text-wheel .wheel-char .wheel-char-track.wheel-track-down{translate:0 calc((10 - var(--v))*-1lh)}.text-wheel .wheel-char .wheel-char-track.wheel-track-up{translate:0 calc((var(--v) + 1)*-1lh)}.text-wheel .wheel-char .wheel-char-track span{height:1lh;transition:opacity .5s}.tabview .tab-head{gap:1px;background:var(--tab-head);padding:var(--tab-head-padding);border-radius:var(--tab-head-radius)}.tabview .tab-head .tab-label{flex:1;border:0px;background:var(--tab);border-radius:var(--tab-radius);padding:var(--tab-padding);color:var(--tab-color)}.tabview .tab-head .tab-label.active{color:var(--tab-active-color);background:var(--tab-active);transform:translateY(1px)}.tabview .tab-head .tab-label.active:hover{background:var(--tab-active)}.tabview .tab-head .tab-label:hover{background:var(--tab-hover)}.tabview .tab-content{border:var(--tab-border);overflow:hidden;border-radius:var(--tab-body-radius)}.tabview .tab-content .tabs-track{transform-style:flat}.tabview .tab-content .tab-body{width:100%;background:var(--tab-body);padding:var(--tab-body-padding);align-self:baseline}.treeview{gap:var(--treeview-gap)}.treeview .--node{gap:var(--treenode-gap);cursor:pointer}.treeview .--node .--node-aro-btn{width:var(--treenode-arrow-btn-size);height:var(--treenode-arrow-btn-size);border:0px;background:rgba(0,0,0,0);opacity:.6;transition:all .4s linear 0s}.treeview .--node .--node-aro-btn:hover{opacity:1}.treeview .--node .--node-aro-btn .--node-aro-icon{font-size:var(--treenode-arrow-icon-size);color:var(--treenode-arrow-icon-color)}.treeview .--node .--node-meta{background:rgba(0,0,0,0);gap:var(--treenode-label-gap);border:0px}.treeview .--node .--node-meta .--node-icon{font-size:var(--treenode-label-icon-size);color:var(--treenode-label-icon-color)}.treeview .--node .--node-meta .--node-label{background:var(--treenode-label-bg);color:var(--treenode-label-color);font-size:var(--treenode-label-size);padding:var(--treenode-label-padding);border-radius:var(--treenode-label-radius)}.treeview .--node .--node-meta:hover .--node-label{background:var(--treenode-label-hover)}.treeview .--node.--selected .--node-meta .--node-label{background:var(--treenode-label-selected-bg);color:var(--treenode-label-selected-color)}.treeview .--sub-node{margin-top:var(--treeview-gap);gap:var(--treeview-gap);padding-left:var(--treenode-sub-margin)}.--progress{background:var(--progress-track);width:var(--progress-width);height:var(--progress-height);border-radius:var(--progress-radius);overflow:hidden}.--progress .--bar{width:0%;height:var(--progress-heigt);border-radius:var(--progress-radius)}.comp-editor{top:10px;left:10px;border-radius:10px;z-index:var(--max-z-index)}.comp-editor .pencil{width:40px;height:40px;background:#fff;border-radius:50%;border:0px}.comp-editor .pencil img{width:50%}.comp-editor .pencil span{font-size:36px;color:#111;line-height:.8}.comp-editor .editor-props{background:#fff;border-radius:10px;left:60px;top:10px;width:350px;overflow:hidden;box-shadow:0px 0px 0px 1px #ccc,0px 0px 0px 5px #eaeaea}.comp-editor .editor-props .editor-head{background:#ddd;padding:4px 12px;font-size:14px}.comp-editor .editor-props .editor-head .head-label{flex:1}.comp-editor .editor-props .editor-head .head-action{display:flex;flex:1;gap:5px;align-items:flex-end;justify-content:flex-end}.comp-editor .editor-props .editor-head .head-action button{background:#333;border:0px;font-size:12px;color:#fff;font-weight:bold;padding:2px 10px;border-radius:10px}.comp-editor .editor-props .editor-head .head-action button:hover{background:#222}.comp-editor .editor-props .editor-body{padding:12px;max-height:70vh;overflow-x:hidden;overflow-y:auto;gap:5px}.comp-editor .editor-props .editor-body textarea{flex:1 1;width:100%;border:0px;background:#ebebeb;padding:15px;min-height:290px;color:#111;border-radius:10px;resize:none}.comp-editor .editor-props .editor-body .copy{top:20px;right:20px;z-index:2;border-radius:10px;border:0px;padding:3px 10px;background:var(--primary)}.comp-editor .editor-props .editor-body .group{margin-top:10px}.comp-editor .editor-props .editor-body .group .gprops{gap:5px}.comp-editor .editor-props .editor-body .group .glabel{background:#333;align-self:flex-start;font-weight:bold;font-size:12px;border-radius:5px 5px 0px 0px;padding:2px 5px;transform:translateX(5px);color:#f1f1f1}.comp-editor .editor-props .editor-body .gprop,.comp-editor .editor-props .editor-body .prop{flex:1;padding:6px 0px;font-size:13px;background:#f7f7f7;padding:5px 10px;border-radius:5px}.comp-editor .editor-props .editor-body .gprop .pop,.comp-editor .editor-props .editor-body .prop .pop{flex:1;white-space:pre}.comp-editor .editor-props .editor-body .gprop .pop:nth-child(2),.comp-editor .editor-props .editor-body .prop .pop:nth-child(2){align-items:flex-end;justify-content:flex-end}.comp-editor .editor-props .editor-body .gprop .pop input,.comp-editor .editor-props .editor-body .prop .pop input{flex:1;width:70px;max-width:70px;min-width:70px;border:0px;background:#777;padding:4px;border-radius:4px;margin-left:5px}.comp-editor .editor-props .editor-body .gprop .pop input[type=color],.comp-editor .editor-props .editor-body .prop .pop input[type=color]{background:rgba(0,0,0,0);border-radius:5px;padding:0px;appearance:none}.comp-editor .editor-props .editor-body .gprop .pop .l-k,.comp-editor .editor-props .editor-body .prop .pop .l-k{font-size:10px;color:#777}
1
+ *,*::before,*::after{box-sizing:border-box;-webkit-tap-highlight-color:rgba(0,0,0,0)}button{user-select:none;cursor:pointer}input{user-select:none}input:-webkit-autofill{background-color:rgba(0,0,0,0) !important;-webkit-box-shadow:0 0 0px 1000px rgba(0,0,0,0) inset;box-shadow:0 0 0px 1000px rgba(0,0,0,0) inset}[aria-hidden=true]{user-select:none;pointer-events:none;cursor:auto}[popover]{margin:0;padding:0;border:0}:root{--basic: ease;--back: linear( 0, -0.0077 5.2%, -0.0452 16.98%, -0.0493 22.35%, -0.0418 25.57%, -0.0258 28.57%, -0.0007 31.42%, 0.0335 34.15%, 0.1242 39.03%, 0.2505 43.65%, 0.3844 47.35%, 0.656 53.68%, 0.81 58.37%, 0.9282 63.52%, 0.9719 66.23%, 1.0055 69.04%, 1.0255 71.4%, 1.0396 73.87%, 1.0477 76.48%, 1.05 79.27%, 1.0419 84.36%, 1.0059 95.49%, 1 );--expo: linear( 0, 0.0053 17.18%, 0.0195 26.59%, 0.0326 30.31%, 0.0506 33.48%, 0.0744 36.25%, 0.1046 38.71%, 0.1798 42.62%, 0.2846 45.93%, 0.3991 48.37%, 0.6358 52.29%, 0.765 55.45%, 0.8622 59.3%, 0.8986 61.51%, 0.9279 63.97%, 0.9481 66.34%, 0.9641 69.01%, 0.9856 75.57%, 0.9957 84.37%, 1 );--sine: linear( 0, 0.007 5.35%, 0.0282 10.75%, 0.0638 16.26%, 0.1144 21.96%, 0.1833 28.16%, 0.2717 34.9%, 0.6868 62.19%, 0.775 68.54%, 0.8457 74.3%, 0.9141 81.07%, 0.9621 87.52%, 0.9905 93.8%, 1 );--power: linear( 0, 0.0012 14.95%, 0.0089 22.36%, 0.0297 28.43%, 0.0668 33.43%, 0.0979 36.08%, 0.1363 38.55%, 0.2373 43.07%, 0.3675 47.01%, 0.5984 52.15%, 0.7121 55.23%, 0.8192 59.21%, 0.898 63.62%, 0.9297 66.23%, 0.9546 69.06%, 0.9733 72.17%, 0.9864 75.67%, 0.9982 83.73%, 1 );--circ: linear( -0, 0.0033 5.75%, 0.0132 11.43%, 0.0296 16.95%, 0.0522 22.25%, 0.0808 27.25%, 0.1149 31.89%, 0.1542 36.11%, 0.1981 39.85%, 0.2779 44.79%, 0.3654 48.15%, 0.4422 49.66%, 0.5807 50.66%, 0.6769 53.24%, 0.7253 55.37%, 0.7714 58.01%, 0.8142 61.11%, 0.8536 64.65%, 0.9158 72.23%, 0.9619 80.87%, 0.9904 90.25%, 1 );--bounce: linear( 0, 0.0039, 0.0157, 0.0352, 0.0625 9.09%, 0.1407, 0.25, 0.3908, 0.5625, 0.7654, 1, 0.8907, 0.8125 45.45%, 0.7852, 0.7657, 0.7539, 0.75, 0.7539, 0.7657, 0.7852, 0.8125 63.64%, 0.8905, 1 72.73%, 0.9727, 0.9532, 0.9414, 0.9375, 0.9414, 0.9531, 0.9726, 1, 0.9883, 0.9844, 0.9883, 1 );--elastic: linear( 0, 0.0009 8.51%, -0.0047 19.22%, 0.0016 22.39%, 0.023 27.81%, 0.0237 30.08%, 0.0144 31.81%, -0.0051 33.48%, -0.1116 39.25%, -0.1181 40.59%, -0.1058 41.79%, -0.0455, 0.0701 45.34%, 0.9702 55.19%, 1.0696 56.97%, 1.0987 57.88%, 1.1146 58.82%, 1.1181 59.83%, 1.1092 60.95%, 1.0057 66.48%, 0.986 68.14%, 0.9765 69.84%, 0.9769 72.16%, 0.9984 77.61%, 1.0047 80.79%, 0.9991 91.48%, 1 );--ease: var(--back);--max-z-index: 2147483647;--zuz-shadow: 0px 0px 0px 1px #d4d4d4, 0px 0px 6px #ccc;--text-wheel-speed: 2;--text-wheel-transition: translate calc(var(--text-wheel-speed) * 1s) var(--ease);--checkbox-height: 24px;--checkbox-width: 42px;--checkbox-knob-size: 20px;--checkbox-knob-left: 2px;--checkbox-knob-top: 2px;--checkbox-knob-left-on: 18px;--checkbox-check-color: #fff;--checkbox-check-size: 13px;--checkbox-size: 17px;--checkbox-radius: 6px;--checkbox-checked: rgb(46, 161, 42);--checkbox-unchecked: rgb(203, 203, 203);--checkbox-thumb: #fff;--checkbox-thumb-shadow: #000;--checkbox-thumb-shadow-size: 2px;--select-width: auto;--select: #eee;--select-font-size: 16px;--select-hover: #e6e6e6;--select-options: #eee;--select-options-top: 0.1rem;--select-options-padding: 4px;--select-option-color: #111;--select-option-hover: #ddd;--select-selected: #ccc;--select-padding: 6px 8px;--select-radius: 5px;--cover-bg: rgba(255,255,255,0.8);--cover-label: #111;--zuz-overlay: rgba(0, 0, 0, 0.7);--zuz-overlay-blur: 0;--drawer-color: #fff;--drawer-handle-color: #ccc;--drawer-radius-v: 0px;--drawer-radius-h: 0px;--drawer-shadow: var(--zuz-shadow);--tab-head: #fff;--tab-head-padding: 3px 3px 0px 3px;--tab-head-radius: 6px 6px 0px 0px;--tab: #eee;--tab-active: #ccc;--tab-active-color: #111;--tab-hover: #ddd;--tab-color: #111;--tab-radius: 5px 5px 0px 0px;--tab-padding: 5px 20px;--tab-body: #fff;--tab-body-radius: 0px 5px 5px 5px;--tab-body-padding: 0px;--tab-border: 1px #ddd solid;--sheet-bg: #fff;--sheet-shadow: var(--zuz-shadow);--sheet-body: #fff;--sheet-radius: 10px;--sheet-padding: 6px 12px;--sheet-head-padding: 10px;--sheet-body-padding: 10px;--sheet-footer: #ddd;--sheet-footer-padding: 10px;--sheet-action: #222;--sheet-action-color: #fff;--sheet-action-hover: #333;--sheet-action-radius: 7px;--sheet-action-padding: 7px 20px;--sheet-action-font-size: 16px;--sheet-action-font-weight: bold;--sheet-closer-color: #111;--sheet-closer-hover: rgba(255,255,255,0.2);--sheet-closer-opacity: 0.75;--sheet-closer-hover-opacity: 1;--sheet-font-size: 15px;--sheet-title-opacity: 0.75;--sheet-title-font-size: 16px;--sheet-closer-font-size: 36px;--sheet-error: #ff4747;--sheet-warn: #ffba00;--sheet-success: #23ac28;--context-z-index: 99;--context: #fff;--context-border: 0px;--context-radius: 10px;--context-padding: 10px;--context-shadow: var(--zuz-shadow);--context-seperator: #eee;--context-seperator-height: 1px;--context-seperator-margin: 3px 6px;--context-item-width: 220px;--context-item-padding: 6px 10px;--context-item-gap: 10px;--context-item-font-size: 15px;--context-item-radius: 5px;--context-item-icon-size: 18px;--context-item-hover: #eee;--treeview-gap: 6px;--treenode-gap: 2px;--treenode-arrow-btn-size: 20px;--treenode-arrow-icon-size: 12px;--treenode-arrow-icon-color: #111;--treenode-label-padding: 3px 6px;--treenode-label-radius: 3px 6px;--treenode-label-hover: #f1f1f1;--treenode-label-bg: transparent;--treenode-label-selected-bg: #eee;--treenode-label-selected-color: #111;--treenode-label-icon-color: #111;--treenode-label-icon-size: 15px;--treenode-label-color: #111;--treenode-label-size: 15px;--treenode-label-gap: 6px;--treenode-sub-margin: 20px;--progress-width: 100%;--progress-height: 6px;--progress-radius: 6px;--progress-track: #eee;--progress-bar: #111;--skeleton: #eee;--skeleton-radius: 7px;--shimmer: #ccc;--shimmer-width: 10%;--shimmer-angle: 120deg;--shimmer-speed: 2s;--shimmer-blur: 50px;--alert-error: #ffd4d4;--alert-error-color: #ae1313;--alert-info: #bee3f8;--alert-info-color: #2b6cb0;--alert-warning: #feebc8;--alert-warning-color: #c05621;--alert-success: #c6f6d5;--alert-success-color: #2f855a;--alert-padding: 12px;--alert-radius: 10px;--alert-gap: 10px;--avatar-bg: #fff}.flex{display:flex}.flex.cols{flex-direction:column}.flex.aic{align-items:center}.flex.aie{align-items:flex-end}.flex.jcc{justify-content:center}.flex.jce{justify-content:flex-end}.flex.jcs{justify-content:flex-start}.abs{position:absolute}.fixed{position:fixed}.fill{top:0px;left:0px;bottom:0px;right:0px}.fillx{top:-10px;left:-10px;bottom:-10px;right:-10px}.grid{display:grid}.nope{pointer-events:none}.nous{user-select:none}.rel{position:relative}.text-wrap,.ellipsis{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.input-with-error{box-shadow:inset 0px 0px 0px 1px #ff8b8b}button.ico-btn{gap:5px}button .b-label{flex:1}button .b-label:empty{display:none}.checkbox{height:var(--checkbox-size);width:var(--checkbox-size);cursor:pointer;border:1px var(--checkbox-unchecked) solid;border-radius:var(--checkbox-radius);overflow:hidden}.checkbox input[type=checkbox]{z-index:0;opacity:0}.checkbox:before{font-size:var(--checkbox-check-size);color:var(--checkbox-check-color);opacity:0}.checkbox.is-checked{background-color:var(--checkbox-checked);border:1px var(--checkbox-checked) solid}.checkbox.is-checked:before{opacity:1}.zuz-checkbox{height:var(--checkbox-height);width:var(--checkbox-width);cursor:pointer}.zuz-checkbox input[type=checkbox]{z-index:0;left:10px;top:10px;opacity:0}.zuz-checkbox:before{content:"";position:absolute;height:var(--checkbox-height);width:var(--checkbox-width);background:var(--checkbox-unchecked);border-radius:50px;z-index:1;transition:all .3s linear 0s}.zuz-checkbox:after{content:"";position:absolute;width:var(--checkbox-knob-size);height:var(--checkbox-knob-size);background:var(--checkbox-thumb);border-radius:50px;z-index:2;top:var(--checkbox-knob-top);left:var(--checkbox-knob-left);box-shadow:0px 0px --checkbox-thumb-shadow-size --checkbox-thumb-shadow;transition:all .75s var(--bounce) 0s}.zuz-checkbox.is-checked:before{box-shadow:inset 0px 0px 0px 15px var(--checkbox-checked)}.zuz-checkbox.is-checked:after{transform:translateX(var(--checkbox-knob-left-on))}@keyframes shimmering{0%{transform:translateX(-100%) rotate(var(--shimmer-angle))}20%{transform:translateX(100%) rotate(var(--shimmer-angle))}100%{transform:translateX(100%) rotate(var(--shimmer-angle))}}.--skeleton{overflow:hidden;border-radius:var(--skeleton-radius);height:1lh;background:var(--skeleton);position:relative}.--skeleton:after{content:"";position:absolute;top:0;left:0;right:0;height:100%;background-repeat:no-repeat;background-image:linear-gradient(90deg, var(--skeleton) 0%, var(--shimmer) 50%, var(--skeleton) 100%);transform:translateX(-100%) rotate(var(--shimmer-angle));animation-name:shimmering;animation-direction:var(--shimmer-direction);animation-duration:var(--shimmer-speed);animation-timing-function:ease-in-out;animation-iteration-count:infinite;filter:blur(var(--shimmer-blur))}.zuz-spinner{animation:spin infinite}@keyframes spin{from{transform:rotate(0deg)}to{transform:rotate(360deg)}}.zuz-cover{backdrop-filter:blur(4px);z-index:99999;gap:15px}.zuz-cover .label{font-size:14px;animation:breath 1s linear infinite}@keyframes breath{0%{opacity:.5}50%{opacity:1}100%{opacity:.5}}.zuz-toast,.zuz-sheet.toast-warn,.zuz-sheet.toast-success,.zuz-sheet.toast-error,.zuz-sheet.toast-default{border-radius:var(--sheet-radius);padding:var(--sheet-padding);font-size:var(--sheet-font-size);white-space:pre}.zuz-sheet{top:50%;left:50%;transform:translate(-50%, -50%);z-index:2147483645;transform-origin:top left;transition:all .5s cubic-bezier(0.2, -0.36, 0, 1.46) 0s}.zuz-sheet.wobble{transform-origin:inherit !important}.zuz-sheet.toast-default{background:#333;color:#fff;top:10px !important}.zuz-sheet.toast-error{background:var(--sheet-error);color:#fff;top:10px}.zuz-sheet.toast-success{background:var(--sheet-success);color:#fff;top:10px}.zuz-sheet.toast-warn{background:var(--sheet-warn);color:#111;top:10px}.zuz-sheet.toast-form{position:absolute !important}.zuz-sheet.toast-dialog{background:var(--sheet-bg);border-radius:var(--sheet-radius);box-shadow:var(--sheet-shadow)}.zuz-sheet .sheet-head{padding:var(--sheet-head-padding)}.zuz-sheet .sheet-head .sheet-title{flex:1;font-size:var(--sheet-title-font-size);opacity:var(--sheet-title-opacity);text-align:center;padding:0px 45px;display:flex;align-items:center;justify-content:center}.zuz-sheet .sheet-head .sheet-dot{flex:1}.zuz-sheet .sheet-head .sheet-closer{width:32px;height:32px;cursor:pointer;font-size:var(--sheet-closer-font-size);color:var(--sheet-closer-color);background:rgba(0,0,0,0);border:0px;line-height:0;padding:0px;font-weight:normal;border-radius:20px;opacity:var(--sheet-closer-opacity);top:15px;right:5px;transform:translateY(-50%);font-size:var(--sheet-closer-font-size)}.zuz-sheet .sheet-head .sheet-closer:hover{background:var(--sheet-closer-hover);opacity:var(--sheet-closer-hover-opacity)}.zuz-sheet .sheet-body{background:var(--sheet-body);padding:var(--sheet-body-padding)}.zuz-sheet .sheet-body.--no-action{border-radius:0px 0px var(--sheet-radius) var(--sheet-radius)}.zuz-sheet .sheet-footer{padding:var(--sheet-footer-padding);background:var(--sheet-footer);border-radius:0px 0px var(--sheet-radius) var(--sheet-radius)}.zuz-sheet .sheet-footer .sheet-action-btn{background:var(--sheet-action);color:var(--sheet-action-color);border-radius:var(--sheet-action-radius);padding:var(--sheet-action-padding);font-size:var(--sheet-action-font-size);font-weight:var(--sheet-action-font-weight);border:0px}.zuz-sheet .sheet-footer .sheet-action-btn:hover{background:var(--sheet-action-hover)}.zuz-sheet-overlay{background:rgba(0,0,0,.7);z-index:111;backdrop-filter:blur(10px)}.context-menu{z-index:var(--context-z-index);background:var(--context);border-radius:var(--context-radius);padding:var(--context-padding);box-shadow:var(--context-shadow)}.context-menu .context-line{height:var(--context-seperator-height);background:var(--context-seperator);margin:var(--context-seperator-margin)}.context-menu .context-menu-item{width:var(--context-item-width);padding:var(--context-item-padding);gap:var(--context-item-gap);cursor:pointer;font-size:var(--context-item-font-size);border-radius:var(--context-item-radius)}.context-menu .context-menu-item .ico{font-size:var(--context-item-icon-size)}.context-menu .context-menu-item:hover{background:var(--context-item-hover)}.zuz-select-wrap{width:var(--select-width);z-index:1}.zuz-select-wrap .zuz-select{width:100%;gap:5px;background:var(--select);border-radius:var(--select-radius);border:0px;padding:12px 15px;font-size:var(--select-font-size);box-shadow:var(--select-shadow)}.zuz-select-wrap .zuz-select:hover{background:var(--select-hover)}.zuz-select-wrap .zuz-select .zuz-selected{flex:1;text-align:left}.zuz-select-wrap .zuz-select-options{backdrop-filter:blur(10px) saturate(0);left:0;top:calc(100% + var(--select-options-top));width:100%;max-height:400px;overflow-x:hidden;gap:2px;background:var(--select-options);border-radius:var(--select-radius);padding:var(--select-options-padding);box-shadow:var(--select-options-shadow)}.zuz-select-wrap .zuz-select-options button{background:rgba(0,0,0,0);border:0px;text-align:left;color:var(--select-option-color);padding:var(--select-padding);border-radius:var(--select-radius);font-size:var(--select-font-size);white-space:pre}.zuz-select-wrap .zuz-select-options button:hover{background:var(--select-option-hover)}.zuz-select-wrap .zuz-select-options button.selected{background:var(--select-selected)}.zuz-overlay{background:var(--zuz-overlay);z-index:2147483645;backdrop-filter:blur(var(--zuz-overlay-blur))}.drawer-h,.zuz-drawer.drawer-right,.zuz-drawer.drawer-left{min-width:320px;max-width:90vw;top:0px;bottom:0px;border-radius:var(--drawer-radius-h)}.drawer-v,.zuz-drawer.drawer-bottom,.zuz-drawer.drawer-top{min-height:10vh;max-height:90vh;left:0px;right:0px;border-radius:var(--drawer-radius-v)}.zuz-drawer{background:var(--drawer-color);border:var(--drawer-border);box-shadow:var(--drawer-shadow);z-index:2147483646;overflow-x:hidden;overflow-y:auto}.zuz-drawer.drawer-left{left:0px}.zuz-drawer.drawer-right{right:0px}.zuz-drawer.drawer-top{top:0px}.zuz-drawer.drawer-bottom{bottom:0px}.zuz-drawer .drawer-handle{width:100px;height:6px;border-radius:10px;background:var(--drawer-handle-color);margin:12px auto 0px auto}.text-wheel{transform-style:flat}.text-wheel .wheel-char{font-variant:tabular-nums;overflow:hidden;height:1lh}.text-wheel .wheel-char .wheel-char-track{transition:var(--text-wheel-transition)}.text-wheel .wheel-char .wheel-char-track.wheel-track-down{translate:0 calc((10 - var(--v))*-1lh)}.text-wheel .wheel-char .wheel-char-track.wheel-track-up{translate:0 calc((var(--v) + 1)*-1lh)}.text-wheel .wheel-char .wheel-char-track span{height:1lh;transition:opacity .5s}.tabview .tab-head{gap:1px;background:var(--tab-head);padding:var(--tab-head-padding);border-radius:var(--tab-head-radius)}.tabview .tab-head .tab-label{flex:1;border:0px;background:var(--tab);border-radius:var(--tab-radius);padding:var(--tab-padding);color:var(--tab-color)}.tabview .tab-head .tab-label.active{color:var(--tab-active-color);background:var(--tab-active);transform:translateY(1px)}.tabview .tab-head .tab-label.active:hover{background:var(--tab-active)}.tabview .tab-head .tab-label:hover{background:var(--tab-hover)}.tabview .tab-content{border:var(--tab-border);overflow:hidden;border-radius:var(--tab-body-radius)}.tabview .tab-content .tabs-track{transform-style:flat}.tabview .tab-content .tab-body{width:100%;background:var(--tab-body);padding:var(--tab-body-padding);align-self:baseline}.treeview{gap:var(--treeview-gap)}.treeview .--node{gap:var(--treenode-gap);cursor:pointer}.treeview .--node .--node-aro-btn{width:var(--treenode-arrow-btn-size);height:var(--treenode-arrow-btn-size);border:0px;background:rgba(0,0,0,0);opacity:.6;transition:all .4s linear 0s}.treeview .--node .--node-aro-btn:hover{opacity:1}.treeview .--node .--node-aro-btn .--node-aro-icon{font-size:var(--treenode-arrow-icon-size);color:var(--treenode-arrow-icon-color)}.treeview .--node .--node-meta{background:rgba(0,0,0,0);gap:var(--treenode-label-gap);border:0px}.treeview .--node .--node-meta .--node-icon{font-size:var(--treenode-label-icon-size);color:var(--treenode-label-icon-color)}.treeview .--node .--node-meta .--node-label{background:var(--treenode-label-bg);color:var(--treenode-label-color);font-size:var(--treenode-label-size);padding:var(--treenode-label-padding);border-radius:var(--treenode-label-radius)}.treeview .--node .--node-meta:hover .--node-label{background:var(--treenode-label-hover)}.treeview .--node.--selected .--node-meta .--node-label{background:var(--treenode-label-selected-bg);color:var(--treenode-label-selected-color)}.treeview .--sub-node{margin-top:var(--treeview-gap);gap:var(--treeview-gap);padding-left:var(--treenode-sub-margin)}.--progress{background:var(--progress-track);width:var(--progress-width);height:var(--progress-height);border-radius:var(--progress-radius);overflow:hidden}.--progress .--bar{width:0%;height:var(--progress-heigt);border-radius:var(--progress-radius)}.comp-editor{top:10px;left:10px;border-radius:10px;z-index:var(--max-z-index)}.comp-editor .pencil{width:40px;height:40px;background:#fff;border-radius:50%;border:0px}.comp-editor .pencil img{width:50%}.comp-editor .pencil span{font-size:36px;color:#111;line-height:.8}.comp-editor .editor-props{background:#fff;border-radius:10px;left:60px;top:10px;width:350px;overflow:hidden;box-shadow:0px 0px 0px 1px #ccc,0px 0px 0px 5px #eaeaea}.comp-editor .editor-props .editor-head{background:#ddd;padding:4px 12px;font-size:14px}.comp-editor .editor-props .editor-head .head-label{flex:1}.comp-editor .editor-props .editor-head .head-action{display:flex;flex:1;gap:5px;align-items:flex-end;justify-content:flex-end}.comp-editor .editor-props .editor-head .head-action button{background:#333;border:0px;font-size:12px;color:#fff;font-weight:bold;padding:2px 10px;border-radius:10px}.comp-editor .editor-props .editor-head .head-action button:hover{background:#222}.comp-editor .editor-props .editor-body{padding:12px;max-height:70vh;overflow-x:hidden;overflow-y:auto;gap:5px}.comp-editor .editor-props .editor-body textarea{flex:1 1;width:100%;border:0px;background:#ebebeb;padding:15px;min-height:290px;color:#111;border-radius:10px;resize:none}.comp-editor .editor-props .editor-body .copy{top:20px;right:20px;z-index:2;border-radius:10px;border:0px;padding:3px 10px;background:var(--primary)}.comp-editor .editor-props .editor-body .group{margin-top:10px}.comp-editor .editor-props .editor-body .group .gprops{gap:5px}.comp-editor .editor-props .editor-body .group .glabel{background:#333;align-self:flex-start;font-weight:bold;font-size:12px;border-radius:5px 5px 0px 0px;padding:2px 5px;transform:translateX(5px);color:#f1f1f1}.comp-editor .editor-props .editor-body .gprop,.comp-editor .editor-props .editor-body .prop{flex:1;padding:6px 0px;font-size:13px;background:#f7f7f7;padding:5px 10px;border-radius:5px}.comp-editor .editor-props .editor-body .gprop .pop,.comp-editor .editor-props .editor-body .prop .pop{flex:1;white-space:pre}.comp-editor .editor-props .editor-body .gprop .pop:nth-child(2),.comp-editor .editor-props .editor-body .prop .pop:nth-child(2){align-items:flex-end;justify-content:flex-end}.comp-editor .editor-props .editor-body .gprop .pop input,.comp-editor .editor-props .editor-body .prop .pop input{flex:1;width:70px;max-width:70px;min-width:70px;border:0px;background:#777;padding:4px;border-radius:4px;margin-left:5px}.comp-editor .editor-props .editor-body .gprop .pop input[type=color],.comp-editor .editor-props .editor-body .prop .pop input[type=color]{background:rgba(0,0,0,0);border-radius:5px;padding:0px;appearance:none}.comp-editor .editor-props .editor-body .gprop .pop .l-k,.comp-editor .editor-props .editor-body .prop .pop .l-k{font-size:10px;color:#777}.--alert{padding:var(--alert-padding);border-radius:var(--alert-radius);gap:var(--alert-gap)}.--alert .--icon{width:20px;height:20px}.--alert .--meta{gap:2px}.--alert .--meta .--title.--tm{font-weight:bold}.--alert.--info{background:var(--alert-info);color:var(--alert-info-color)}.--alert.--info path{fill:var(--alert-info-color)}.--alert.--warning{background:var(--alert-warning);color:var(--alert-warning-color)}.--alert.--warning path{fill:var(--alert-warning-color)}.--alert.--error{background:var(--alert-error);color:var(--alert-error-color)}.--alert.--error path{fill:var(--alert-error-color)}.--alert.--success{background:var(--alert-success);color:var(--alert-success-color)}.--alert.--success path{fill:var(--alert-success-color)}.--avatar{background:var(--avatar-bg)}.--avatar.--circle{border-radius:50%}
@@ -25,7 +25,8 @@ export declare enum SHEET_ACTION_POSITION {
25
25
  }
26
26
  export declare enum TRANSITION_CURVES {
27
27
  Spring = "SPRING",
28
- EaseInOut = "EASEINOUT"
28
+ EaseInOut = "EASEINOUT",
29
+ Bounce = "BOUNCE"
29
30
  }
30
31
  export declare enum TRANSITIONS {
31
32
  FadeIn = "FADE_IN",
@@ -72,3 +73,111 @@ export declare enum SKELETON {
72
73
  Default = "DEFAULT",
73
74
  Circle = "CIRCLE"
74
75
  }
76
+ export declare enum ALERT {
77
+ Success = "SUCCESS",
78
+ Error = "ERROR",
79
+ Warning = "WARNING",
80
+ Info = "INFO"
81
+ }
82
+ export declare enum AVATAR {
83
+ Circle = "CIRCLE",
84
+ Square = "SQUARE"
85
+ }
86
+ export declare enum KeyCode {
87
+ Backspace = 8,
88
+ Tab = 9,
89
+ Enter = 13,
90
+ Shift = 16,
91
+ Ctrl = 17,
92
+ Alt = 18,
93
+ PauseBreak = 19,
94
+ CapsLock = 20,
95
+ Escape = 27,
96
+ Space = 32,
97
+ PageUp = 33,
98
+ PageDown = 34,
99
+ End = 35,
100
+ Home = 36,
101
+ ArrowLeft = 37,
102
+ ArrowUp = 38,
103
+ ArrowRight = 39,
104
+ ArrowDown = 40,
105
+ Insert = 45,
106
+ Delete = 46,
107
+ Digit0 = 48,
108
+ Digit1 = 49,
109
+ Digit2 = 50,
110
+ Digit3 = 51,
111
+ Digit4 = 52,
112
+ Digit5 = 53,
113
+ Digit6 = 54,
114
+ Digit7 = 55,
115
+ Digit8 = 56,
116
+ Digit9 = 57,
117
+ KeyA = 65,
118
+ KeyB = 66,
119
+ KeyC = 67,
120
+ KeyD = 68,
121
+ KeyE = 69,
122
+ KeyF = 70,
123
+ KeyG = 71,
124
+ KeyH = 72,
125
+ KeyI = 73,
126
+ KeyJ = 74,
127
+ KeyK = 75,
128
+ KeyL = 76,
129
+ KeyM = 77,
130
+ KeyN = 78,
131
+ KeyO = 79,
132
+ KeyP = 80,
133
+ KeyQ = 81,
134
+ KeyR = 82,
135
+ KeyS = 83,
136
+ KeyT = 84,
137
+ KeyU = 85,
138
+ KeyV = 86,
139
+ KeyW = 87,
140
+ KeyX = 88,
141
+ KeyY = 89,
142
+ KeyZ = 90,
143
+ Numpad0 = 96,
144
+ Numpad1 = 97,
145
+ Numpad2 = 98,
146
+ Numpad3 = 99,
147
+ Numpad4 = 100,
148
+ Numpad5 = 101,
149
+ Numpad6 = 102,
150
+ Numpad7 = 103,
151
+ Numpad8 = 104,
152
+ Numpad9 = 105,
153
+ NumpadMultiply = 106,
154
+ NumpadAdd = 107,
155
+ NumpadSubtract = 109,
156
+ NumpadDecimal = 110,
157
+ NumpadDivide = 111,
158
+ F1 = 112,
159
+ F2 = 113,
160
+ F3 = 114,
161
+ F4 = 115,
162
+ F5 = 116,
163
+ F6 = 117,
164
+ F7 = 118,
165
+ F8 = 119,
166
+ F9 = 120,
167
+ F10 = 121,
168
+ F11 = 122,
169
+ F12 = 123,
170
+ NumLock = 144,
171
+ ScrollLock = 145,
172
+ Semicolon = 186,
173
+ Equal = 187,
174
+ Comma = 188,
175
+ Minus = 189,
176
+ Period = 190,
177
+ Slash = 191,
178
+ Backquote = 192,
179
+ BracketLeft = 219,
180
+ Backslash = 220,
181
+ BracketRight = 221,
182
+ Quote = 222
183
+ }
@@ -32,6 +32,7 @@ export var TRANSITION_CURVES;
32
32
  (function (TRANSITION_CURVES) {
33
33
  TRANSITION_CURVES["Spring"] = "SPRING";
34
34
  TRANSITION_CURVES["EaseInOut"] = "EASEINOUT";
35
+ TRANSITION_CURVES["Bounce"] = "BOUNCE";
35
36
  })(TRANSITION_CURVES || (TRANSITION_CURVES = {}));
36
37
  export var TRANSITIONS;
37
38
  (function (TRANSITIONS) {
@@ -86,3 +87,114 @@ export var SKELETON;
86
87
  SKELETON["Default"] = "DEFAULT";
87
88
  SKELETON["Circle"] = "CIRCLE";
88
89
  })(SKELETON || (SKELETON = {}));
90
+ export var ALERT;
91
+ (function (ALERT) {
92
+ ALERT["Success"] = "SUCCESS";
93
+ ALERT["Error"] = "ERROR";
94
+ ALERT["Warning"] = "WARNING";
95
+ ALERT["Info"] = "INFO";
96
+ })(ALERT || (ALERT = {}));
97
+ export var AVATAR;
98
+ (function (AVATAR) {
99
+ AVATAR["Circle"] = "CIRCLE";
100
+ AVATAR["Square"] = "SQUARE";
101
+ })(AVATAR || (AVATAR = {}));
102
+ export var KeyCode;
103
+ (function (KeyCode) {
104
+ KeyCode[KeyCode["Backspace"] = 8] = "Backspace";
105
+ KeyCode[KeyCode["Tab"] = 9] = "Tab";
106
+ KeyCode[KeyCode["Enter"] = 13] = "Enter";
107
+ KeyCode[KeyCode["Shift"] = 16] = "Shift";
108
+ KeyCode[KeyCode["Ctrl"] = 17] = "Ctrl";
109
+ KeyCode[KeyCode["Alt"] = 18] = "Alt";
110
+ KeyCode[KeyCode["PauseBreak"] = 19] = "PauseBreak";
111
+ KeyCode[KeyCode["CapsLock"] = 20] = "CapsLock";
112
+ KeyCode[KeyCode["Escape"] = 27] = "Escape";
113
+ KeyCode[KeyCode["Space"] = 32] = "Space";
114
+ KeyCode[KeyCode["PageUp"] = 33] = "PageUp";
115
+ KeyCode[KeyCode["PageDown"] = 34] = "PageDown";
116
+ KeyCode[KeyCode["End"] = 35] = "End";
117
+ KeyCode[KeyCode["Home"] = 36] = "Home";
118
+ KeyCode[KeyCode["ArrowLeft"] = 37] = "ArrowLeft";
119
+ KeyCode[KeyCode["ArrowUp"] = 38] = "ArrowUp";
120
+ KeyCode[KeyCode["ArrowRight"] = 39] = "ArrowRight";
121
+ KeyCode[KeyCode["ArrowDown"] = 40] = "ArrowDown";
122
+ KeyCode[KeyCode["Insert"] = 45] = "Insert";
123
+ KeyCode[KeyCode["Delete"] = 46] = "Delete";
124
+ KeyCode[KeyCode["Digit0"] = 48] = "Digit0";
125
+ KeyCode[KeyCode["Digit1"] = 49] = "Digit1";
126
+ KeyCode[KeyCode["Digit2"] = 50] = "Digit2";
127
+ KeyCode[KeyCode["Digit3"] = 51] = "Digit3";
128
+ KeyCode[KeyCode["Digit4"] = 52] = "Digit4";
129
+ KeyCode[KeyCode["Digit5"] = 53] = "Digit5";
130
+ KeyCode[KeyCode["Digit6"] = 54] = "Digit6";
131
+ KeyCode[KeyCode["Digit7"] = 55] = "Digit7";
132
+ KeyCode[KeyCode["Digit8"] = 56] = "Digit8";
133
+ KeyCode[KeyCode["Digit9"] = 57] = "Digit9";
134
+ KeyCode[KeyCode["KeyA"] = 65] = "KeyA";
135
+ KeyCode[KeyCode["KeyB"] = 66] = "KeyB";
136
+ KeyCode[KeyCode["KeyC"] = 67] = "KeyC";
137
+ KeyCode[KeyCode["KeyD"] = 68] = "KeyD";
138
+ KeyCode[KeyCode["KeyE"] = 69] = "KeyE";
139
+ KeyCode[KeyCode["KeyF"] = 70] = "KeyF";
140
+ KeyCode[KeyCode["KeyG"] = 71] = "KeyG";
141
+ KeyCode[KeyCode["KeyH"] = 72] = "KeyH";
142
+ KeyCode[KeyCode["KeyI"] = 73] = "KeyI";
143
+ KeyCode[KeyCode["KeyJ"] = 74] = "KeyJ";
144
+ KeyCode[KeyCode["KeyK"] = 75] = "KeyK";
145
+ KeyCode[KeyCode["KeyL"] = 76] = "KeyL";
146
+ KeyCode[KeyCode["KeyM"] = 77] = "KeyM";
147
+ KeyCode[KeyCode["KeyN"] = 78] = "KeyN";
148
+ KeyCode[KeyCode["KeyO"] = 79] = "KeyO";
149
+ KeyCode[KeyCode["KeyP"] = 80] = "KeyP";
150
+ KeyCode[KeyCode["KeyQ"] = 81] = "KeyQ";
151
+ KeyCode[KeyCode["KeyR"] = 82] = "KeyR";
152
+ KeyCode[KeyCode["KeyS"] = 83] = "KeyS";
153
+ KeyCode[KeyCode["KeyT"] = 84] = "KeyT";
154
+ KeyCode[KeyCode["KeyU"] = 85] = "KeyU";
155
+ KeyCode[KeyCode["KeyV"] = 86] = "KeyV";
156
+ KeyCode[KeyCode["KeyW"] = 87] = "KeyW";
157
+ KeyCode[KeyCode["KeyX"] = 88] = "KeyX";
158
+ KeyCode[KeyCode["KeyY"] = 89] = "KeyY";
159
+ KeyCode[KeyCode["KeyZ"] = 90] = "KeyZ";
160
+ KeyCode[KeyCode["Numpad0"] = 96] = "Numpad0";
161
+ KeyCode[KeyCode["Numpad1"] = 97] = "Numpad1";
162
+ KeyCode[KeyCode["Numpad2"] = 98] = "Numpad2";
163
+ KeyCode[KeyCode["Numpad3"] = 99] = "Numpad3";
164
+ KeyCode[KeyCode["Numpad4"] = 100] = "Numpad4";
165
+ KeyCode[KeyCode["Numpad5"] = 101] = "Numpad5";
166
+ KeyCode[KeyCode["Numpad6"] = 102] = "Numpad6";
167
+ KeyCode[KeyCode["Numpad7"] = 103] = "Numpad7";
168
+ KeyCode[KeyCode["Numpad8"] = 104] = "Numpad8";
169
+ KeyCode[KeyCode["Numpad9"] = 105] = "Numpad9";
170
+ KeyCode[KeyCode["NumpadMultiply"] = 106] = "NumpadMultiply";
171
+ KeyCode[KeyCode["NumpadAdd"] = 107] = "NumpadAdd";
172
+ KeyCode[KeyCode["NumpadSubtract"] = 109] = "NumpadSubtract";
173
+ KeyCode[KeyCode["NumpadDecimal"] = 110] = "NumpadDecimal";
174
+ KeyCode[KeyCode["NumpadDivide"] = 111] = "NumpadDivide";
175
+ KeyCode[KeyCode["F1"] = 112] = "F1";
176
+ KeyCode[KeyCode["F2"] = 113] = "F2";
177
+ KeyCode[KeyCode["F3"] = 114] = "F3";
178
+ KeyCode[KeyCode["F4"] = 115] = "F4";
179
+ KeyCode[KeyCode["F5"] = 116] = "F5";
180
+ KeyCode[KeyCode["F6"] = 117] = "F6";
181
+ KeyCode[KeyCode["F7"] = 118] = "F7";
182
+ KeyCode[KeyCode["F8"] = 119] = "F8";
183
+ KeyCode[KeyCode["F9"] = 120] = "F9";
184
+ KeyCode[KeyCode["F10"] = 121] = "F10";
185
+ KeyCode[KeyCode["F11"] = 122] = "F11";
186
+ KeyCode[KeyCode["F12"] = 123] = "F12";
187
+ KeyCode[KeyCode["NumLock"] = 144] = "NumLock";
188
+ KeyCode[KeyCode["ScrollLock"] = 145] = "ScrollLock";
189
+ KeyCode[KeyCode["Semicolon"] = 186] = "Semicolon";
190
+ KeyCode[KeyCode["Equal"] = 187] = "Equal";
191
+ KeyCode[KeyCode["Comma"] = 188] = "Comma";
192
+ KeyCode[KeyCode["Minus"] = 189] = "Minus";
193
+ KeyCode[KeyCode["Period"] = 190] = "Period";
194
+ KeyCode[KeyCode["Slash"] = 191] = "Slash";
195
+ KeyCode[KeyCode["Backquote"] = 192] = "Backquote";
196
+ KeyCode[KeyCode["BracketLeft"] = 219] = "BracketLeft";
197
+ KeyCode[KeyCode["Backslash"] = 220] = "Backslash";
198
+ KeyCode[KeyCode["BracketRight"] = 221] = "BracketRight";
199
+ KeyCode[KeyCode["Quote"] = 222] = "Quote";
200
+ })(KeyCode || (KeyCode = {}));
@@ -28,3 +28,6 @@ export type sortOptions = {
28
28
  direction?: SORT;
29
29
  caseSensitive?: boolean;
30
30
  };
31
+ export type KeyBindings = {
32
+ [key: string]: () => void;
33
+ };
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@zuzjs/ui",
3
- "version": "0.5.3",
3
+ "version": "0.5.4",
4
4
  "keywords": [
5
5
  "react",
6
6
  "zuz",