haze-ui 0.0.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (78) hide show
  1. package/README.md +44 -0
  2. package/dist/components/Accordion/Accordion.js +13 -0
  3. package/dist/components/Accordion/AccordionItem.js +20 -0
  4. package/dist/components/Alert/Alert.js +34 -0
  5. package/dist/components/Badge/Badge.js +27 -0
  6. package/dist/components/Button/Button.js +27 -0
  7. package/dist/components/Card/Card.js +21 -0
  8. package/dist/components/Checkbox/Checkbox.js +20 -0
  9. package/dist/components/Dialog/Dialog.js +26 -0
  10. package/dist/components/Input/Input.js +27 -0
  11. package/dist/components/Popover/Popover.js +29 -0
  12. package/dist/components/Radio/Radio.js +23 -0
  13. package/dist/components/Radio/RadioContext.js +8 -0
  14. package/dist/components/Radio/RadioGroup.js +24 -0
  15. package/dist/components/Select/Option.js +11 -0
  16. package/dist/components/Select/Select.js +28 -0
  17. package/dist/components/Slider/Slider.js +20 -0
  18. package/dist/components/Switch/Switch.js +43 -0
  19. package/dist/components/Tabs/Tab.js +24 -0
  20. package/dist/components/Tabs/TabList.js +14 -0
  21. package/dist/components/Tabs/TabPanel.js +21 -0
  22. package/dist/components/Tabs/Tabs.js +22 -0
  23. package/dist/components/Tabs/TabsContext.js +10 -0
  24. package/dist/components/Textarea/Textarea.js +27 -0
  25. package/dist/components/Tooltip/Tooltip.js +32 -0
  26. package/dist/haze-ui.css +2 -0
  27. package/dist/index.js +27 -0
  28. package/dist/tokens/colors.js +5 -0
  29. package/dist/tokens/spacing.js +5 -0
  30. package/dist/tokens/typography.js +5 -0
  31. package/dist/types/components/Accordion/Accordion.d.ts +8 -0
  32. package/dist/types/components/Accordion/AccordionItem.d.ts +8 -0
  33. package/dist/types/components/Accordion/index.d.ts +4 -0
  34. package/dist/types/components/Alert/Alert.d.ts +9 -0
  35. package/dist/types/components/Alert/index.d.ts +2 -0
  36. package/dist/types/components/Badge/Badge.d.ts +9 -0
  37. package/dist/types/components/Badge/index.d.ts +2 -0
  38. package/dist/types/components/Button/Button.d.ts +7 -0
  39. package/dist/types/components/Button/index.d.ts +2 -0
  40. package/dist/types/components/Card/Card.d.ts +8 -0
  41. package/dist/types/components/Card/index.d.ts +2 -0
  42. package/dist/types/components/Checkbox/Checkbox.d.ts +7 -0
  43. package/dist/types/components/Checkbox/index.d.ts +2 -0
  44. package/dist/types/components/Dialog/Dialog.d.ts +10 -0
  45. package/dist/types/components/Dialog/index.d.ts +2 -0
  46. package/dist/types/components/Input/Input.d.ts +8 -0
  47. package/dist/types/components/Input/index.d.ts +2 -0
  48. package/dist/types/components/Popover/Popover.d.ts +10 -0
  49. package/dist/types/components/Popover/index.d.ts +2 -0
  50. package/dist/types/components/Radio/Radio.d.ts +8 -0
  51. package/dist/types/components/Radio/RadioContext.d.ts +9 -0
  52. package/dist/types/components/Radio/RadioGroup.d.ts +10 -0
  53. package/dist/types/components/Radio/index.d.ts +4 -0
  54. package/dist/types/components/Select/Option.d.ts +7 -0
  55. package/dist/types/components/Select/Select.d.ts +9 -0
  56. package/dist/types/components/Select/index.d.ts +4 -0
  57. package/dist/types/components/Slider/Slider.d.ts +7 -0
  58. package/dist/types/components/Slider/index.d.ts +2 -0
  59. package/dist/types/components/Switch/Switch.d.ts +8 -0
  60. package/dist/types/components/Switch/index.d.ts +2 -0
  61. package/dist/types/components/Tabs/Tab.d.ts +8 -0
  62. package/dist/types/components/Tabs/TabList.d.ts +7 -0
  63. package/dist/types/components/Tabs/TabPanel.d.ts +8 -0
  64. package/dist/types/components/Tabs/Tabs.d.ts +9 -0
  65. package/dist/types/components/Tabs/TabsContext.d.ts +8 -0
  66. package/dist/types/components/Tabs/index.d.ts +8 -0
  67. package/dist/types/components/Textarea/Textarea.d.ts +8 -0
  68. package/dist/types/components/Textarea/index.d.ts +2 -0
  69. package/dist/types/components/Tooltip/Tooltip.d.ts +9 -0
  70. package/dist/types/components/Tooltip/index.d.ts +2 -0
  71. package/dist/types/hooks/index.d.ts +1 -0
  72. package/dist/types/index.d.ts +36 -0
  73. package/dist/types/tokens/colors.d.ts +2 -0
  74. package/dist/types/tokens/index.d.ts +3 -0
  75. package/dist/types/tokens/spacing.d.ts +1 -0
  76. package/dist/types/tokens/typography.d.ts +1 -0
  77. package/dist/types/utils/index.d.ts +1 -0
  78. package/package.json +93 -0
package/README.md ADDED
@@ -0,0 +1,44 @@
1
+ # Ripple UI
2
+
3
+ > The React UI Component Library with controllable states.
4
+
5
+ English | [简体中文](./README-zh_CN.md)
6
+
7
+ ## Features
8
+
9
+ - Integrated [react use control](https://github.com/wmzy/react-use-control) provides component internal states
10
+ - Keep strict, provide lightweight, composable, and easily extendable components
11
+ - Support themes customization
12
+ - Support Tree-shaking
13
+
14
+ ## Getting Started
15
+
16
+ ### Installation
17
+
18
+ ```sh
19
+ npm i ripple-ui
20
+ // or
21
+ pnpm add ripple-ui
22
+ ```
23
+
24
+ ### Usage
25
+
26
+ ```jsx
27
+ import { Button } from 'ripple-ui';
28
+
29
+ export default function MyComponent() {
30
+ return <Button>Start</Button>;
31
+ }
32
+ ```
33
+
34
+ ## Related Projects
35
+
36
+ - [react-use-control](https://github.com/wmzy/react-use-control)
37
+
38
+ ## How to Contribute
39
+
40
+ Anyone and everyone is welcome to contribute.
41
+
42
+ ## License
43
+
44
+ [MIT](https://choosealicense.com/licenses/mit/)
@@ -0,0 +1,13 @@
1
+ /* empty css */
2
+ import { classnames as e } from "babel-runtime-jsx-plus";
3
+ import { jsx as t } from "react/jsx-runtime";
4
+ //#region src/lib/components/Accordion/Accordion.tsx
5
+ var n = "b1oalqve";
6
+ function r({ className: r, children: i }) {
7
+ return /* @__PURE__ */ t("div", {
8
+ className: e([n, r]),
9
+ children: i
10
+ });
11
+ }
12
+ //#endregion
13
+ export { r as default };
@@ -0,0 +1,20 @@
1
+ /* empty css */
2
+ import { classnames as e } from "babel-runtime-jsx-plus";
3
+ import { jsx as t, jsxs as n } from "react/jsx-runtime";
4
+ //#region src/lib/components/Accordion/AccordionItem.tsx
5
+ var r = "i1sazm4o", i = "s15fkg36", a = "cvrhx3b";
6
+ function o({ title: o, className: s, children: c }) {
7
+ return /* @__PURE__ */ n("details", {
8
+ name: "accordion",
9
+ className: e([r, s]),
10
+ children: [/* @__PURE__ */ t("summary", {
11
+ className: i,
12
+ children: o
13
+ }), /* @__PURE__ */ t("div", {
14
+ className: a,
15
+ children: c
16
+ })]
17
+ });
18
+ }
19
+ //#endregion
20
+ export { o as default };
@@ -0,0 +1,34 @@
1
+ /* empty css */
2
+ import { classnames as e } from "babel-runtime-jsx-plus";
3
+ import { jsx as t, jsxs as n } from "react/jsx-runtime";
4
+ import { useState as r } from "react";
5
+ //#region src/lib/components/Alert/Alert.tsx
6
+ var i = "b1mir2ye", a = {
7
+ info: "iszr7j7",
8
+ success: "s1p0rp69",
9
+ warning: "w1dv8644",
10
+ danger: "d13e6k4w"
11
+ }, o = "c1rnnssd", s = "cf33uyw";
12
+ function c({ variant: c = "info", closable: l = !1, className: u, children: d }) {
13
+ let [f, p] = r(!0);
14
+ return f ? /* @__PURE__ */ n("div", {
15
+ role: "alert",
16
+ className: e([
17
+ i,
18
+ a[c],
19
+ u
20
+ ]),
21
+ children: [/* @__PURE__ */ t("div", {
22
+ className: o,
23
+ children: d
24
+ }), l && /* @__PURE__ */ t("button", {
25
+ type: "button",
26
+ className: s,
27
+ "aria-label": "Close",
28
+ onClick: () => p(!1),
29
+ children: "×"
30
+ })]
31
+ }) : null;
32
+ }
33
+ //#endregion
34
+ export { c as default };
@@ -0,0 +1,27 @@
1
+ /* empty css */
2
+ import { classnames as e } from "babel-runtime-jsx-plus";
3
+ import { jsx as t } from "react/jsx-runtime";
4
+ //#region src/lib/components/Badge/Badge.tsx
5
+ var n = "b48ijb1", r = {
6
+ default: "dnq0o02",
7
+ success: "syuh2ol",
8
+ warning: "w8jmk6n",
9
+ danger: "d6m6v51",
10
+ info: "i58ehqk"
11
+ }, i = {
12
+ sm: "s1m88y0u",
13
+ md: "miqan6"
14
+ };
15
+ function a({ variant: a = "default", size: o = "md", className: s, children: c }) {
16
+ return /* @__PURE__ */ t("span", {
17
+ className: e([
18
+ n,
19
+ r[a],
20
+ i[o],
21
+ s
22
+ ]),
23
+ children: c
24
+ });
25
+ }
26
+ //#endregion
27
+ export { a as default };
@@ -0,0 +1,27 @@
1
+ /* empty css */
2
+ import { classnames as e } from "babel-runtime-jsx-plus";
3
+ import { jsx as t } from "react/jsx-runtime";
4
+ //#region src/lib/components/Button/Button.tsx
5
+ var n = "btwn6q9", r = {
6
+ solid: "sfzq9n9",
7
+ outline: "o1dhij4n",
8
+ ghost: "ga83b1x"
9
+ }, i = {
10
+ sm: "svizdgc",
11
+ md: "m5okc3b",
12
+ lg: "lqx8j9d"
13
+ };
14
+ function a({ variant: a = "solid", size: o = "md", className: s, ...c }) {
15
+ return /* @__PURE__ */ t("button", {
16
+ type: "button",
17
+ ...c,
18
+ className: e([
19
+ n,
20
+ r[a],
21
+ i[o],
22
+ s
23
+ ])
24
+ });
25
+ }
26
+ //#endregion
27
+ export { a as default };
@@ -0,0 +1,21 @@
1
+ /* empty css */
2
+ import { classnames as e } from "babel-runtime-jsx-plus";
3
+ import { jsx as t } from "react/jsx-runtime";
4
+ //#region src/lib/components/Card/Card.tsx
5
+ var n = "b1r9ra2q", r = {
6
+ elevated: "eiercmf",
7
+ outlined: "omgotjy",
8
+ filled: "f10uuhch"
9
+ };
10
+ function i({ variant: i = "elevated", className: a, children: o }) {
11
+ return /* @__PURE__ */ t("div", {
12
+ className: e([
13
+ n,
14
+ r[i],
15
+ a
16
+ ]),
17
+ children: o
18
+ });
19
+ }
20
+ //#endregion
21
+ export { i as default };
@@ -0,0 +1,20 @@
1
+ /* empty css */
2
+ import { classnames as e } from "babel-runtime-jsx-plus";
3
+ import { jsx as t } from "react/jsx-runtime";
4
+ import { useControl as n } from "react-use-control";
5
+ //#region src/lib/components/Checkbox/Checkbox.tsx
6
+ var r = "b187lfi8";
7
+ function i({ checked: i, className: a, onChange: o, ...s }) {
8
+ let [c, l] = n(i, !1);
9
+ return /* @__PURE__ */ t("input", {
10
+ type: "checkbox",
11
+ checked: c,
12
+ onChange: (e) => {
13
+ l(e.target.checked), o?.(e);
14
+ },
15
+ ...s,
16
+ className: e([r, a])
17
+ });
18
+ }
19
+ //#endregion
20
+ export { i as default };
@@ -0,0 +1,26 @@
1
+ /* empty css */
2
+ import { classnames as e } from "babel-runtime-jsx-plus";
3
+ import { jsx as t } from "react/jsx-runtime";
4
+ import { useControl as n } from "react-use-control";
5
+ import { useEffect as r, useRef as i } from "react";
6
+ //#region src/lib/components/Dialog/Dialog.tsx
7
+ var a = "oxnde4s";
8
+ function o({ open: o, onClose: s, className: c, children: l }) {
9
+ let [u, d] = n(o, !1), f = i(null);
10
+ return r(() => {
11
+ let e = f.current;
12
+ e && (u && !e.open ? e.showModal() : !u && e.open && e.close());
13
+ }, [u]), /* @__PURE__ */ t("dialog", {
14
+ ref: f,
15
+ onClose: () => {
16
+ d(!1), s?.();
17
+ },
18
+ onClick: (e) => {
19
+ e.target === f.current && (d(!1), s?.());
20
+ },
21
+ className: e([a, c]),
22
+ children: l
23
+ });
24
+ }
25
+ //#endregion
26
+ export { o as default };
@@ -0,0 +1,27 @@
1
+ /* empty css */
2
+ import { classnames as e } from "babel-runtime-jsx-plus";
3
+ import { jsx as t } from "react/jsx-runtime";
4
+ import { useControl as n } from "react-use-control";
5
+ //#region src/lib/components/Input/Input.tsx
6
+ var r = "b18dr76j", i = {
7
+ sm: "s1lt2bv9",
8
+ md: "m1aucp4h",
9
+ lg: "lxj3cju"
10
+ };
11
+ function a({ value: a, size: o = "md", className: s, onChange: c, ...l }) {
12
+ let [u, d] = n(a, "");
13
+ return /* @__PURE__ */ t("input", {
14
+ value: u,
15
+ onChange: (e) => {
16
+ d(e.target.value), c?.(e);
17
+ },
18
+ ...l,
19
+ className: e([
20
+ r,
21
+ i[o],
22
+ s
23
+ ])
24
+ });
25
+ }
26
+ //#endregion
27
+ export { a as default };
@@ -0,0 +1,29 @@
1
+ /* empty css */
2
+ import { classnames as e } from "babel-runtime-jsx-plus";
3
+ import { jsx as t, jsxs as n } from "react/jsx-runtime";
4
+ import { useControl as r } from "react-use-control";
5
+ import { useId as i } from "react";
6
+ //#region src/lib/components/Popover/Popover.tsx
7
+ var a = "cpz20zo", o = "p1og1db", s = "h12vxtuf";
8
+ function c({ content: c, open: l, className: u, children: d }) {
9
+ let [f, p] = r(l, !1), m = i();
10
+ return /* @__PURE__ */ n("span", {
11
+ className: a,
12
+ children: [/* @__PURE__ */ t("span", {
13
+ "aria-expanded": f,
14
+ "aria-controls": m,
15
+ onClick: () => p((e) => !e),
16
+ children: d
17
+ }), /* @__PURE__ */ t("div", {
18
+ id: m,
19
+ className: e([
20
+ o,
21
+ !f && s,
22
+ u
23
+ ]),
24
+ children: c
25
+ })]
26
+ });
27
+ }
28
+ //#endregion
29
+ export { c as default };
@@ -0,0 +1,23 @@
1
+ import { useRadioContext as e } from "./RadioContext.js";
2
+ /* empty css */
3
+ import { classnames as t } from "babel-runtime-jsx-plus";
4
+ import { jsx as n, jsxs as r } from "react/jsx-runtime";
5
+ //#region src/lib/components/Radio/Radio.tsx
6
+ var i = "r1wb1f2i", a = "l1avex36";
7
+ function o({ value: o, className: s, children: c, ...l }) {
8
+ let u = e();
9
+ return /* @__PURE__ */ r("label", {
10
+ className: t([a, s]),
11
+ children: [/* @__PURE__ */ n("input", {
12
+ type: "radio",
13
+ className: i,
14
+ name: u?.name,
15
+ value: o,
16
+ checked: u ? u.value === o : void 0,
17
+ onChange: () => u?.setValue(o),
18
+ ...l
19
+ }), c]
20
+ });
21
+ }
22
+ //#endregion
23
+ export { o as default };
@@ -0,0 +1,8 @@
1
+ import { createContext as e, useContext as t } from "react";
2
+ //#region src/lib/components/Radio/RadioContext.ts
3
+ var n = e(void 0), r = n.Provider;
4
+ function i() {
5
+ return t(n);
6
+ }
7
+ //#endregion
8
+ export { r as RadioProvider, i as useRadioContext };
@@ -0,0 +1,24 @@
1
+ import { RadioProvider as e } from "./RadioContext.js";
2
+ /* empty css */
3
+ import { classnames as t } from "babel-runtime-jsx-plus";
4
+ import { jsx as n } from "react/jsx-runtime";
5
+ import { useControl as r } from "react-use-control";
6
+ import { useId as i } from "react";
7
+ //#region src/lib/components/Radio/RadioGroup.tsx
8
+ var a = "b1bmwkyg";
9
+ function o({ value: o, name: s, className: c, children: l }) {
10
+ let [u, d] = r(o, ""), f = i();
11
+ return /* @__PURE__ */ n("fieldset", {
12
+ className: t([a, c]),
13
+ children: /* @__PURE__ */ n(e, {
14
+ value: {
15
+ name: s ?? f,
16
+ value: u,
17
+ setValue: d
18
+ },
19
+ children: l
20
+ })
21
+ });
22
+ }
23
+ //#endregion
24
+ export { o as default };
@@ -0,0 +1,11 @@
1
+ import { jsx as e } from "react/jsx-runtime";
2
+ //#region src/lib/components/Select/Option.tsx
3
+ function t({ value: t, children: n, ...r }) {
4
+ return /* @__PURE__ */ e("option", {
5
+ value: t,
6
+ ...r,
7
+ children: n
8
+ });
9
+ }
10
+ //#endregion
11
+ export { t as default };
@@ -0,0 +1,28 @@
1
+ /* empty css */
2
+ import { classnames as e } from "babel-runtime-jsx-plus";
3
+ import { jsx as t } from "react/jsx-runtime";
4
+ import { useControl as n } from "react-use-control";
5
+ //#region src/lib/components/Select/Select.tsx
6
+ var r = "b1peearv", i = {
7
+ sm: "sjwza0y",
8
+ md: "mzar2ws",
9
+ lg: "lhyvvui"
10
+ };
11
+ function a({ value: a, size: o = "md", className: s, children: c, onChange: l, ...u }) {
12
+ let [d, f] = n(a, "");
13
+ return /* @__PURE__ */ t("select", {
14
+ value: d,
15
+ onChange: (e) => {
16
+ f(e.target.value), l?.(e);
17
+ },
18
+ ...u,
19
+ className: e([
20
+ r,
21
+ i[o],
22
+ s
23
+ ]),
24
+ children: c
25
+ });
26
+ }
27
+ //#endregion
28
+ export { a as default };
@@ -0,0 +1,20 @@
1
+ /* empty css */
2
+ import { classnames as e } from "babel-runtime-jsx-plus";
3
+ import { jsx as t } from "react/jsx-runtime";
4
+ import { useControl as n } from "react-use-control";
5
+ //#region src/lib/components/Slider/Slider.tsx
6
+ var r = "bfgou5l";
7
+ function i({ value: i, className: a, onChange: o, ...s }) {
8
+ let [c, l] = n(i, 50);
9
+ return /* @__PURE__ */ t("input", {
10
+ type: "range",
11
+ value: c,
12
+ onChange: (e) => {
13
+ l(Number(e.target.value)), o?.(e);
14
+ },
15
+ ...s,
16
+ className: e([r, a])
17
+ });
18
+ }
19
+ //#endregion
20
+ export { i as default };
@@ -0,0 +1,43 @@
1
+ /* empty css */
2
+ import { classnames as e } from "babel-runtime-jsx-plus";
3
+ import { jsx as t } from "react/jsx-runtime";
4
+ import { useControl as n } from "react-use-control";
5
+ //#region src/lib/components/Switch/Switch.tsx
6
+ var r = "t1js4uxc", i = "t1qb79fu", a = "t1ixneoj", o = {
7
+ sm: "so54z1g",
8
+ md: "m9yt5eh",
9
+ lg: "lh99aoz"
10
+ }, s = {
11
+ sm: "s3tnk0a",
12
+ md: "mf3ptdg",
13
+ lg: "l11o9w2z"
14
+ }, c = {
15
+ sm: "sew2awa",
16
+ md: "m1dvw2o9",
17
+ lg: "l19clm6f"
18
+ };
19
+ function l({ checked: l, size: u = "md", className: d, onClick: f, ...p }) {
20
+ let [m, h] = n(l, !1);
21
+ return /* @__PURE__ */ t("button", {
22
+ type: "button",
23
+ role: "switch",
24
+ "aria-checked": m,
25
+ onClick: (e) => {
26
+ h((e) => !e), f?.(e);
27
+ },
28
+ ...p,
29
+ className: e([
30
+ r,
31
+ o[u],
32
+ m && i,
33
+ d
34
+ ]),
35
+ children: /* @__PURE__ */ t("span", { className: e([
36
+ a,
37
+ s[u],
38
+ m && c[u]
39
+ ]) })
40
+ });
41
+ }
42
+ //#endregion
43
+ export { l as default };
@@ -0,0 +1,24 @@
1
+ import { useTabsContext as e } from "./TabsContext.js";
2
+ /* empty css */
3
+ import { classnames as t } from "babel-runtime-jsx-plus";
4
+ import { jsx as n } from "react/jsx-runtime";
5
+ //#region src/lib/components/Tabs/Tab.tsx
6
+ var r = "bgf9674", i = "a1prfgev";
7
+ function a({ value: a, className: o, children: s }) {
8
+ let { value: c, setValue: l } = e(), u = c === a;
9
+ return /* @__PURE__ */ n("button", {
10
+ type: "button",
11
+ role: "tab",
12
+ "aria-selected": u,
13
+ "aria-controls": `tabpanel-${a}`,
14
+ onClick: () => l(a),
15
+ className: t([
16
+ r,
17
+ u && i,
18
+ o
19
+ ]),
20
+ children: s
21
+ });
22
+ }
23
+ //#endregion
24
+ export { a as default };
@@ -0,0 +1,14 @@
1
+ /* empty css */
2
+ import { classnames as e } from "babel-runtime-jsx-plus";
3
+ import { jsx as t } from "react/jsx-runtime";
4
+ //#region src/lib/components/Tabs/TabList.tsx
5
+ var n = "b1dqiroo";
6
+ function r({ className: r, children: i }) {
7
+ return /* @__PURE__ */ t("div", {
8
+ role: "tablist",
9
+ className: e([n, r]),
10
+ children: i
11
+ });
12
+ }
13
+ //#endregion
14
+ export { r as default };
@@ -0,0 +1,21 @@
1
+ import { useTabsContext as e } from "./TabsContext.js";
2
+ /* empty css */
3
+ import { classnames as t } from "babel-runtime-jsx-plus";
4
+ import { jsx as n } from "react/jsx-runtime";
5
+ //#region src/lib/components/Tabs/TabPanel.tsx
6
+ var r = "bp1375a", i = "h1gs31v1";
7
+ function a({ value: a, className: o, children: s }) {
8
+ let { value: c } = e(), l = c === a;
9
+ return /* @__PURE__ */ n("div", {
10
+ role: "tabpanel",
11
+ id: `tabpanel-${a}`,
12
+ className: t([
13
+ r,
14
+ !l && i,
15
+ o
16
+ ]),
17
+ children: s
18
+ });
19
+ }
20
+ //#endregion
21
+ export { a as default };
@@ -0,0 +1,22 @@
1
+ import { TabsProvider as e } from "./TabsContext.js";
2
+ /* empty css */
3
+ import { classnames as t } from "babel-runtime-jsx-plus";
4
+ import { jsx as n } from "react/jsx-runtime";
5
+ import { useControl as r } from "react-use-control";
6
+ //#region src/lib/components/Tabs/Tabs.tsx
7
+ var i = "b1cu6oqd";
8
+ function a({ value: a, className: o, children: s }) {
9
+ let [c, l] = r(a, "");
10
+ return /* @__PURE__ */ n("div", {
11
+ className: t([i, o]),
12
+ children: /* @__PURE__ */ n(e, {
13
+ value: {
14
+ value: c,
15
+ setValue: l
16
+ },
17
+ children: s
18
+ })
19
+ });
20
+ }
21
+ //#endregion
22
+ export { a as default };
@@ -0,0 +1,10 @@
1
+ import { createContext as e, useContext as t } from "react";
2
+ //#region src/lib/components/Tabs/TabsContext.ts
3
+ var n = e(void 0), r = n.Provider;
4
+ function i() {
5
+ let e = t(n);
6
+ if (!e) throw Error("Tabs compound components must be used within <Tabs>");
7
+ return e;
8
+ }
9
+ //#endregion
10
+ export { r as TabsProvider, i as useTabsContext };
@@ -0,0 +1,27 @@
1
+ /* empty css */
2
+ import { classnames as e } from "babel-runtime-jsx-plus";
3
+ import { jsx as t } from "react/jsx-runtime";
4
+ import { useControl as n } from "react-use-control";
5
+ //#region src/lib/components/Textarea/Textarea.tsx
6
+ var r = "b1n6cdld", i = {
7
+ sm: "svhqg3y",
8
+ md: "m1lnui41",
9
+ lg: "l1ogff54"
10
+ };
11
+ function a({ value: a, size: o = "md", className: s, onChange: c, ...l }) {
12
+ let [u, d] = n(a, "");
13
+ return /* @__PURE__ */ t("textarea", {
14
+ value: u,
15
+ onChange: (e) => {
16
+ d(e.target.value), c?.(e);
17
+ },
18
+ ...l,
19
+ className: e([
20
+ r,
21
+ i[o],
22
+ s
23
+ ])
24
+ });
25
+ }
26
+ //#endregion
27
+ export { a as default };
@@ -0,0 +1,32 @@
1
+ /* empty css */
2
+ import { classnames as e } from "babel-runtime-jsx-plus";
3
+ import { jsx as t, jsxs as n } from "react/jsx-runtime";
4
+ import { useId as r } from "react";
5
+ //#region src/lib/components/Tooltip/Tooltip.tsx
6
+ var i = "wojk2bk", a = "b1pzhi26", o = {
7
+ top: "t17ctpvp",
8
+ bottom: "b1fci34k",
9
+ left: "ltkbbwq",
10
+ right: "r16ged4s"
11
+ }, s = "sic6ry8";
12
+ function c({ content: c, position: l = "top", className: u, children: d }) {
13
+ let f = r();
14
+ return /* @__PURE__ */ n("span", {
15
+ className: e([
16
+ i,
17
+ s,
18
+ u
19
+ ]),
20
+ children: [/* @__PURE__ */ t("span", {
21
+ "aria-describedby": f,
22
+ children: d
23
+ }), /* @__PURE__ */ t("span", {
24
+ id: f,
25
+ role: "tooltip",
26
+ className: e([a, o[l]]),
27
+ children: c
28
+ })]
29
+ });
30
+ }
31
+ //#endregion
32
+ export { c as default };
@@ -0,0 +1,2 @@
1
+ .b1oalqve{width:100%}.i1sazm4o{border-bottom:1px solid var(--pbl-color-border)}.i1sazm4o:first-of-type{border-top:1px solid var(--pbl-color-border)}.s15fkg36{-webkit-box-pack:justify;align-items:center;-ms-flex-pack:space-between;padding:var(--pbl-space-3) var(--pbl-space-4);font-family:var(--pbl-font-sans);font-size:var(--pbl-text-sm);font-weight:var(--pbl-weight-medium);color:var(--pbl-color-text);cursor:pointer;-webkit-user-select:none;user-select:none;justify-content:space-between;list-style:none;transition:background .15s;display:flex}.s15fkg36:hover{background:var(--pbl-color-bg-subtle)}.s15fkg36:focus-visible{box-shadow:inset 0 0 0 3px var(--pbl-color-focus-ring);outline:none}.s15fkg36::marker{display:none}.s15fkg36::-webkit-details-marker{display:none}.s15fkg36:after{content:"";border-right:2px solid var(--pbl-color-text-muted);border-bottom:2px solid var(--pbl-color-text-muted);-webkit-transition:-webkit-transform .2s;flex-shrink:0;width:8px;height:8px;transition:transform .2s;transform:rotate(-45deg)}details[open]>.s15fkg36:after{transform:rotate(45deg)}.cvrhx3b{padding:0 var(--pbl-space-4) var(--pbl-space-4);font-family:var(--pbl-font-sans);font-size:var(--pbl-text-sm);color:var(--pbl-color-text-secondary);line-height:var(--pbl-leading-normal)}.b1mir2ye{-webkit-align-items:flex-start;-webkit-box-align:flex-start;-ms-flex-align:flex-start;align-items:flex-start;gap:var(--pbl-space-3);padding:var(--pbl-space-3) var(--pbl-space-4);border-radius:var(--pbl-radius-md);font-family:var(--pbl-font-sans);font-size:var(--pbl-text-sm);line-height:var(--pbl-leading-normal);display:flex}.iszr7j7{background:color-mix(in srgb, var(--pbl-color-info) 10%, transparent);color:var(--pbl-color-info);border:1px solid color-mix(in srgb, var(--pbl-color-info) 25%, transparent)}.s1p0rp69{background:color-mix(in srgb, var(--pbl-color-success) 10%, transparent);color:var(--pbl-color-success);border:1px solid color-mix(in srgb, var(--pbl-color-success) 25%, transparent)}.w1dv8644{background:color-mix(in srgb, var(--pbl-color-warning) 10%, transparent);color:var(--pbl-color-warning);border:1px solid color-mix(in srgb, var(--pbl-color-warning) 25%, transparent)}.d13e6k4w{background:color-mix(in srgb, var(--pbl-color-danger) 10%, transparent);color:var(--pbl-color-danger);border:1px solid color-mix(in srgb, var(--pbl-color-danger) 25%, transparent)}.c1rnnssd{flex:1}.cf33uyw{appearance:none;color:inherit;cursor:pointer;font-size:var(--pbl-text-lg);opacity:.6;background:0 0;border:none;padding:0;line-height:1;transition:opacity .15s}.cf33uyw:hover{opacity:1}.cf33uyw:focus-visible{box-shadow:0 0 0 3px var(--pbl-color-focus-ring);border-radius:var(--pbl-radius-sm);outline:none}.b48ijb1{border-radius:var(--pbl-radius-full);font-family:var(--pbl-font-sans);font-weight:var(--pbl-weight-medium);line-height:var(--pbl-leading-tight);white-space:nowrap;align-items:center;display:inline-flex}.dnq0o02{background:var(--pbl-color-bg-muted);color:var(--pbl-color-text-secondary)}.syuh2ol{background:color-mix(in srgb, var(--pbl-color-success) 15%, transparent);color:var(--pbl-color-success)}.w8jmk6n{background:color-mix(in srgb, var(--pbl-color-warning) 15%, transparent);color:var(--pbl-color-warning)}.d6m6v51{background:color-mix(in srgb, var(--pbl-color-danger) 15%, transparent);color:var(--pbl-color-danger)}.i58ehqk{background:color-mix(in srgb, var(--pbl-color-info) 15%, transparent);color:var(--pbl-color-info)}.s1m88y0u{padding:var(--pbl-space-0) var(--pbl-space-2);font-size:var(--pbl-text-xs)}.miqan6{padding:var(--pbl-space-1) var(--pbl-space-3);font-size:var(--pbl-text-sm)}.btwn6q9{justify-content:center;align-items:center;gap:var(--pbl-space-2);border-radius:var(--pbl-radius-md);font-family:var(--pbl-font-sans);font-weight:var(--pbl-weight-medium);line-height:var(--pbl-leading-tight);cursor:pointer;-webkit-user-select:none;user-select:none;border:1px solid #0000;transition:background .15s,color .15s,border-color .15s,box-shadow .15s;display:inline-flex}.btwn6q9:focus-visible{box-shadow:0 0 0 3px var(--pbl-color-focus-ring);outline:none}.btwn6q9:disabled{opacity:.5;cursor:not-allowed;pointer-events:none}.sfzq9n9{background:var(--pbl-color-primary);color:var(--pbl-color-text-inverse)}.sfzq9n9:hover{background:var(--pbl-color-primary-hover)}.sfzq9n9:active{background:var(--pbl-color-primary-active)}.o1dhij4n{border-color:var(--pbl-color-border);color:var(--pbl-color-text);background:0 0}.o1dhij4n:hover{border-color:var(--pbl-color-border-hover);background:var(--pbl-color-bg-subtle)}.o1dhij4n:active{background:var(--pbl-color-bg-muted)}.ga83b1x{color:var(--pbl-color-text);background:0 0}.ga83b1x:hover{background:var(--pbl-color-bg-subtle)}.ga83b1x:active{background:var(--pbl-color-bg-muted)}.svizdgc{padding:var(--pbl-space-1) var(--pbl-space-3);font-size:var(--pbl-text-sm)}.m5okc3b{padding:var(--pbl-space-2) var(--pbl-space-4);font-size:var(--pbl-text-sm)}.lqx8j9d{padding:var(--pbl-space-3) var(--pbl-space-6);font-size:var(--pbl-text-base)}.b1r9ra2q{border-radius:var(--pbl-radius-lg);padding:var(--pbl-space-5);font-family:var(--pbl-font-sans);color:var(--pbl-color-text)}.eiercmf{background:var(--pbl-color-bg);box-shadow:var(--pbl-shadow-md)}.omgotjy{background:var(--pbl-color-bg);border:1px solid var(--pbl-color-border)}.f10uuhch{background:var(--pbl-color-bg-subtle)}.b187lfi8{appearance:none;border:1px solid var(--pbl-color-border);border-radius:var(--pbl-radius-sm);background:var(--pbl-color-bg);cursor:pointer;flex-shrink:0;width:18px;height:18px;transition:background .15s,border-color .15s,box-shadow .15s;position:relative}.b187lfi8:hover{border-color:var(--pbl-color-border-hover)}.b187lfi8:focus-visible{box-shadow:0 0 0 3px var(--pbl-color-focus-ring);outline:none}.b187lfi8:checked{background:var(--pbl-color-primary);border-color:var(--pbl-color-primary)}.b187lfi8:checked:after{content:"";border:solid var(--pbl-color-text-inverse);border-width:0 2px 2px 0;width:5px;height:9px;position:absolute;top:2px;left:5px;transform:rotate(45deg)}.b187lfi8:disabled{opacity:.5;cursor:not-allowed}.oxnde4s{border-radius:var(--pbl-radius-xl);padding:var(--pbl-space-6);background:var(--pbl-color-bg);color:var(--pbl-color-text);font-family:var(--pbl-font-sans);box-shadow:var(--pbl-shadow-xl);border:none;width:100%;max-width:480px}.oxnde4s::backdrop{background:#0006}.oxnde4s:focus-visible{box-shadow:var(--pbl-shadow-xl),0 0 0 3px var(--pbl-color-focus-ring);outline:none}.b18dr76j{border:1px solid var(--pbl-color-border);border-radius:var(--pbl-radius-md);background:var(--pbl-color-bg);width:100%;color:var(--pbl-color-text);font-family:var(--pbl-font-sans);line-height:var(--pbl-leading-normal);transition:border-color .15s,box-shadow .15s;display:block}.b18dr76j:hover{border-color:var(--pbl-color-border-hover)}.b18dr76j:focus{border-color:var(--pbl-color-primary);box-shadow:0 0 0 3px var(--pbl-color-focus-ring);outline:none}.b18dr76j:disabled{opacity:.5;cursor:not-allowed}.b18dr76j::-webkit-input-placeholder{color:var(--pbl-color-text-muted)}.b18dr76j::placeholder{color:var(--pbl-color-text-muted)}.b18dr76j:-ms-placeholder-shown{color:var(--pbl-color-text-muted)}.b18dr76j::placeholder{color:var(--pbl-color-text-muted)}.s1lt2bv9{padding:var(--pbl-space-1) var(--pbl-space-2);font-size:var(--pbl-text-sm)}.m1aucp4h{padding:var(--pbl-space-2) var(--pbl-space-3);font-size:var(--pbl-text-sm)}.lxj3cju{padding:var(--pbl-space-3) var(--pbl-space-4);font-size:var(--pbl-text-base)}.cpz20zo{display:inline-flex;position:relative}.p1og1db{z-index:1000;margin-top:var(--pbl-space-1);padding:var(--pbl-space-3);border:1px solid var(--pbl-color-border);border-radius:var(--pbl-radius-lg);background:var(--pbl-color-bg);color:var(--pbl-color-text);font-family:var(--pbl-font-sans);font-size:var(--pbl-text-sm);box-shadow:var(--pbl-shadow-lg);min-width:200px;position:absolute;top:100%;left:0}.h12vxtuf{display:none}.r1wb1f2i{appearance:none;border:1px solid var(--pbl-color-border);border-radius:var(--pbl-radius-full);background:var(--pbl-color-bg);cursor:pointer;flex-shrink:0;width:18px;height:18px;transition:background .15s,border-color .15s,box-shadow .15s;position:relative}.r1wb1f2i:hover{border-color:var(--pbl-color-border-hover)}.r1wb1f2i:focus-visible{box-shadow:0 0 0 3px var(--pbl-color-focus-ring);outline:none}.r1wb1f2i:checked{border-color:var(--pbl-color-primary)}.r1wb1f2i:checked:after{content:"";border-radius:var(--pbl-radius-full);background:var(--pbl-color-primary);width:10px;height:10px;position:absolute;top:3px;left:3px}.r1wb1f2i:disabled{opacity:.5;cursor:not-allowed}.l1avex36{align-items:center;gap:var(--pbl-space-2);font-family:var(--pbl-font-sans);font-size:var(--pbl-text-sm);color:var(--pbl-color-text);cursor:pointer;display:inline-flex}.b1bmwkyg{gap:var(--pbl-space-2);border:none;flex-direction:column;margin:0;padding:0;display:flex}.b1peearv{border:1px solid var(--pbl-color-border);border-radius:var(--pbl-radius-md);background:var(--pbl-color-bg);width:100%;color:var(--pbl-color-text);font-family:var(--pbl-font-sans);line-height:var(--pbl-leading-normal);appearance:none;-webkit-background-position:right var(--pbl-space-3) center;background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='12' height='12' viewBox='0 0 12 12'%3E%3Cpath fill='%236b7280' d='M2.22 4.47a.75.75 0 0 1 1.06 0L6 7.19l2.72-2.72a.75.75 0 1 1 1.06 1.06L6.53 8.78a.75.75 0 0 1-1.06 0L2.22 5.53a.75.75 0 0 1 0-1.06z'/%3E%3C/svg%3E");background-repeat:no-repeat;background-position:right var(--pbl-space-3) center;padding-right:var(--pbl-space-8);cursor:pointer;transition:border-color .15s,box-shadow .15s;display:block}.b1peearv:hover{border-color:var(--pbl-color-border-hover)}.b1peearv:focus{border-color:var(--pbl-color-primary);box-shadow:0 0 0 3px var(--pbl-color-focus-ring);outline:none}.b1peearv:disabled{opacity:.5;cursor:not-allowed}.sjwza0y{padding:var(--pbl-space-1) var(--pbl-space-2);font-size:var(--pbl-text-sm)}.mzar2ws{padding:var(--pbl-space-2) var(--pbl-space-3);font-size:var(--pbl-text-sm)}.lhyvvui{padding:var(--pbl-space-3) var(--pbl-space-4);font-size:var(--pbl-text-base)}.bfgou5l{appearance:none;border-radius:var(--pbl-radius-full);background:var(--pbl-color-bg-muted);cursor:pointer;outline:none;width:100%;height:6px;transition:background .15s}.bfgou5l::-webkit-slider-thumb{appearance:none;border-radius:var(--pbl-radius-full);background:var(--pbl-color-primary);border:2px solid var(--pbl-color-bg);width:18px;height:18px;box-shadow:var(--pbl-shadow-sm);cursor:pointer;transition:background .15s,box-shadow .15s}.bfgou5l::-moz-range-thumb{border-radius:var(--pbl-radius-full);background:var(--pbl-color-primary);border:2px solid var(--pbl-color-bg);width:18px;height:18px;box-shadow:var(--pbl-shadow-sm);cursor:pointer}.bfgou5l:focus-visible::-webkit-slider-thumb{box-shadow:0 0 0 3px var(--pbl-color-focus-ring)}.bfgou5l:focus-visible::-moz-range-thumb{box-shadow:0 0 0 3px var(--pbl-color-focus-ring)}.bfgou5l:disabled{opacity:.5;cursor:not-allowed}.t1js4uxc{border-radius:var(--pbl-radius-full);background:var(--pbl-color-bg-muted);cursor:pointer;border:none;align-items:center;padding:2px;transition:background .2s;display:inline-flex;position:relative}.t1js4uxc:focus-visible{box-shadow:0 0 0 3px var(--pbl-color-focus-ring);outline:none}.t1js4uxc:disabled{opacity:.5;cursor:not-allowed}.t1qb79fu{background:var(--pbl-color-primary)}.t1ixneoj{border-radius:var(--pbl-radius-full);-webkit-transition:-webkit-transform .2s;box-shadow:var(--pbl-shadow-sm);background:#fff;transition:transform .2s;display:block}.so54z1g{width:32px;height:18px}.m9yt5eh{width:40px;height:22px}.lh99aoz{width:48px;height:26px}.s3tnk0a{width:14px;height:14px}.mf3ptdg{width:18px;height:18px}.l11o9w2z{width:22px;height:22px}.sew2awa{transform:translate(14px)}.m1dvw2o9{transform:translate(18px)}.l19clm6f{transform:translate(22px)}.bgf9674{padding:var(--pbl-space-2) var(--pbl-space-4);color:var(--pbl-color-text-muted);font-family:var(--pbl-font-sans);font-size:var(--pbl-text-sm);font-weight:var(--pbl-weight-medium);cursor:pointer;background:0 0;border:none;border-bottom:2px solid #0000;margin-bottom:-1px;transition:color .15s,border-color .15s}.bgf9674:hover{color:var(--pbl-color-text)}.bgf9674:focus-visible{box-shadow:0 0 0 3px var(--pbl-color-focus-ring);outline:none}.a1prfgev{color:var(--pbl-color-primary);border-bottom-color:var(--pbl-color-primary)}.b1dqiroo{border-bottom:1px solid var(--pbl-color-border);gap:0;display:flex}.bp1375a{padding:var(--pbl-space-4) 0}.h1gs31v1{display:none}.b1cu6oqd{font-family:var(--pbl-font-sans);flex-direction:column;display:flex}.b1n6cdld{border:1px solid var(--pbl-color-border);border-radius:var(--pbl-radius-md);background:var(--pbl-color-bg);width:100%;color:var(--pbl-color-text);font-family:var(--pbl-font-sans);line-height:var(--pbl-leading-normal);resize:vertical;transition:border-color .15s,box-shadow .15s;display:block}.b1n6cdld:hover{border-color:var(--pbl-color-border-hover)}.b1n6cdld:focus{border-color:var(--pbl-color-primary);box-shadow:0 0 0 3px var(--pbl-color-focus-ring);outline:none}.b1n6cdld:disabled{opacity:.5;cursor:not-allowed}.b1n6cdld::-webkit-input-placeholder{color:var(--pbl-color-text-muted)}.b1n6cdld::placeholder{color:var(--pbl-color-text-muted)}.b1n6cdld:-ms-placeholder-shown{color:var(--pbl-color-text-muted)}.b1n6cdld::placeholder{color:var(--pbl-color-text-muted)}.svhqg3y{padding:var(--pbl-space-1) var(--pbl-space-2);font-size:var(--pbl-text-sm)}.m1lnui41{padding:var(--pbl-space-2) var(--pbl-space-3);font-size:var(--pbl-text-sm)}.l1ogff54{padding:var(--pbl-space-3) var(--pbl-space-4);font-size:var(--pbl-text-base)}.wojk2bk{display:inline-flex;position:relative}.b1pzhi26{z-index:1000;padding:var(--pbl-space-1) var(--pbl-space-2);border-radius:var(--pbl-radius-md);background:var(--pbl-color-text);color:var(--pbl-color-text-inverse);font-family:var(--pbl-font-sans);font-size:var(--pbl-text-xs);line-height:var(--pbl-leading-normal);white-space:nowrap;pointer-events:none;opacity:0;transition:opacity .15s;position:absolute}.t17ctpvp{margin-bottom:var(--pbl-space-1);bottom:100%;left:50%;transform:translate(-50%)}.b1fci34k{margin-top:var(--pbl-space-1);top:100%;left:50%;transform:translate(-50%)}.ltkbbwq{margin-right:var(--pbl-space-1);top:50%;right:100%;transform:translateY(-50%)}.r16ged4s{margin-left:var(--pbl-space-1);top:50%;left:100%;transform:translateY(-50%)}.sic6ry8:hover>[role=tooltip],.sic6ry8:focus-within>[role=tooltip]{opacity:1}.l677mhi{--pbl-color-primary:#06f;--pbl-color-primary-hover:#0052cc;--pbl-color-primary-active:#003d99;--pbl-color-primary-subtle:#e6f0ff;--pbl-color-bg:#fff;--pbl-color-bg-subtle:#f7f8fa;--pbl-color-bg-muted:#eef0f4;--pbl-color-text:#1a1a1a;--pbl-color-text-secondary:#4a4a4a;--pbl-color-text-muted:#8a8a8a;--pbl-color-text-inverse:#fff;--pbl-color-border:#e0e0e0;--pbl-color-border-hover:silver;--pbl-color-success:#16a34a;--pbl-color-warning:#f59e0b;--pbl-color-danger:#dc2626;--pbl-color-info:#2563eb;--pbl-color-focus-ring:#06f6}.dves5ff{--pbl-color-primary:#4d94ff;--pbl-color-primary-hover:#6aa6ff;--pbl-color-primary-active:#80b3ff;--pbl-color-primary-subtle:#1a2e4a;--pbl-color-bg:#121212;--pbl-color-bg-subtle:#1e1e1e;--pbl-color-bg-muted:#2a2a2a;--pbl-color-text:#e8e8e8;--pbl-color-text-secondary:#b0b0b0;--pbl-color-text-muted:#707070;--pbl-color-text-inverse:#1a1a1a;--pbl-color-border:#333;--pbl-color-border-hover:#4a4a4a;--pbl-color-success:#22c55e;--pbl-color-warning:#fbbf24;--pbl-color-danger:#ef4444;--pbl-color-info:#3b82f6;--pbl-color-focus-ring:#4d94ff66}.s413e2t{--pbl-space-0:0;--pbl-space-1:4px;--pbl-space-2:8px;--pbl-space-3:12px;--pbl-space-4:16px;--pbl-space-5:20px;--pbl-space-6:24px;--pbl-space-8:32px;--pbl-space-10:40px;--pbl-space-12:48px;--pbl-space-16:64px;--pbl-radius-none:0;--pbl-radius-sm:4px;--pbl-radius-md:6px;--pbl-radius-lg:8px;--pbl-radius-xl:12px;--pbl-radius-2xl:16px;--pbl-radius-full:9999px;--pbl-shadow-sm:0 1px 2px #0000000d;--pbl-shadow-md:0 4px 6px #00000012;--pbl-shadow-lg:0 10px 15px #0000001a;--pbl-shadow-xl:0 20px 25px #0000001a}.tjcr6l1{--pbl-font-sans:-apple-system,BlinkMacSystemFont,"Segoe UI",Roboto,"Helvetica Neue",Arial,sans-serif;--pbl-font-mono:"SF Mono",SFMono-Regular,ui-monospace,"DejaVu Sans Mono",Menlo,Consolas,monospace;--pbl-text-xs:12px;--pbl-text-sm:14px;--pbl-text-base:16px;--pbl-text-lg:18px;--pbl-text-xl:20px;--pbl-text-2xl:24px;--pbl-text-3xl:30px;--pbl-leading-tight:1.25;--pbl-leading-normal:1.5;--pbl-leading-relaxed:1.75;--pbl-weight-normal:400;--pbl-weight-medium:500;--pbl-weight-semibold:600;--pbl-weight-bold:700}
2
+ /*$vite$:1*/