@forgedevstack/bear 1.0.1 → 1.0.3
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/components/ActiveBar/ActiveBar.cjs +8 -0
- package/dist/components/ActiveBar/ActiveBar.d.ts +2 -0
- package/dist/components/ActiveBar/ActiveBar.js +90 -0
- package/dist/components/ActiveBar/ActiveBar.types.d.ts +16 -0
- package/dist/components/ActiveBar/index.d.ts +2 -0
- package/dist/components/Alert/Alert.cjs +1 -1
- package/dist/components/Alert/Alert.js +38 -38
- package/dist/components/AppBar/AppBar.cjs +1 -1
- package/dist/components/AppBar/AppBar.js +15 -15
- package/dist/components/Badge/Badge.cjs +1 -1
- package/dist/components/Badge/Badge.constants.cjs +1 -0
- package/dist/components/Badge/Badge.constants.d.ts +6 -0
- package/dist/components/Badge/Badge.constants.js +34 -0
- package/dist/components/Badge/Badge.js +27 -52
- package/dist/components/Box/Box.cjs +1 -0
- package/dist/components/Box/Box.d.ts +2 -0
- package/dist/components/Box/Box.js +64 -0
- package/dist/components/Box/Box.types.d.ts +24 -0
- package/dist/components/Box/Box.utils.cjs +1 -0
- package/dist/components/Box/Box.utils.d.ts +3 -0
- package/dist/components/Box/Box.utils.js +21 -0
- package/dist/components/Box/index.d.ts +2 -0
- package/dist/components/Button/Button.cjs +1 -57
- package/dist/components/Button/Button.constants.cjs +57 -0
- package/dist/components/Button/Button.constants.d.ts +3 -0
- package/dist/components/Button/Button.constants.js +77 -0
- package/dist/components/Button/Button.js +55 -119
- package/dist/components/Button/Button.types.d.ts +6 -1
- package/dist/components/ButtonGroup/ButtonGroup.cjs +1 -1
- package/dist/components/ButtonGroup/ButtonGroup.js +17 -17
- package/dist/components/Calendar/Calendar.cjs +1 -0
- package/dist/components/Calendar/Calendar.const.cjs +1 -0
- package/dist/components/Calendar/Calendar.const.d.ts +18 -0
- package/dist/components/Calendar/Calendar.const.js +27 -0
- package/dist/components/Calendar/Calendar.d.ts +3 -0
- package/dist/components/Calendar/Calendar.js +189 -0
- package/dist/components/Calendar/Calendar.types.d.ts +128 -0
- package/dist/components/Calendar/Calendar.utils.cjs +1 -0
- package/dist/components/Calendar/Calendar.utils.d.ts +41 -0
- package/dist/components/Calendar/Calendar.utils.js +33 -0
- package/dist/components/Calendar/index.d.ts +4 -0
- package/dist/components/Card/Card.cjs +1 -1
- package/dist/components/Card/Card.js +65 -65
- package/dist/components/Checkbox/Checkbox.cjs +1 -1
- package/dist/components/Checkbox/Checkbox.js +48 -48
- package/dist/components/CodeBlock/CodeBlock.cjs +2 -0
- package/dist/components/CodeBlock/CodeBlock.d.ts +2 -0
- package/dist/components/CodeBlock/CodeBlock.js +55 -0
- package/dist/components/CodeBlock/CodeBlock.types.d.ts +10 -0
- package/dist/components/CodeBlock/index.d.ts +2 -0
- package/dist/components/Columns/Columns.cjs +1 -0
- package/dist/components/Columns/Columns.d.ts +5 -0
- package/dist/components/Columns/Columns.js +54 -0
- package/dist/components/Columns/Columns.types.d.ts +17 -0
- package/dist/components/Columns/index.d.ts +2 -0
- package/dist/components/Container/Container.cjs +1 -1
- package/dist/components/Container/Container.js +15 -15
- package/dist/components/DatePicker/DatePicker.cjs +1 -1
- package/dist/components/DatePicker/DatePicker.js +77 -85
- package/dist/components/DatePicker/DatePicker.types.d.ts +9 -0
- package/dist/components/DatePicker/DatePicker.utils.cjs +1 -0
- package/dist/components/DatePicker/DatePicker.utils.d.ts +1 -0
- package/dist/components/DatePicker/DatePicker.utils.js +9 -0
- package/dist/components/DateTimePicker/DateTimePicker.cjs +1 -0
- package/dist/components/DateTimePicker/DateTimePicker.d.ts +3 -0
- package/dist/components/DateTimePicker/DateTimePicker.js +178 -0
- package/dist/components/DateTimePicker/DateTimePicker.types.d.ts +26 -0
- package/dist/components/DateTimePicker/DateTimePicker.utils.cjs +1 -0
- package/dist/components/DateTimePicker/DateTimePicker.utils.d.ts +2 -0
- package/dist/components/DateTimePicker/DateTimePicker.utils.js +16 -0
- package/dist/components/DateTimePicker/index.d.ts +2 -0
- package/dist/components/Divider/Divider.cjs +1 -1
- package/dist/components/Divider/Divider.js +29 -29
- package/dist/components/Dropdown/Dropdown.cjs +1 -1
- package/dist/components/Dropdown/Dropdown.js +70 -70
- package/dist/components/Editable/Editable.cjs +1 -0
- package/dist/components/Editable/Editable.d.ts +10 -0
- package/dist/components/Editable/Editable.js +194 -0
- package/dist/components/Editable/Editable.types.d.ts +39 -0
- package/dist/components/Editable/index.d.ts +2 -0
- package/dist/components/Em/Em.cjs +1 -0
- package/dist/components/Em/Em.d.ts +2 -0
- package/dist/components/Em/Em.js +24 -0
- package/dist/components/Em/Em.types.d.ts +5 -0
- package/dist/components/Em/index.d.ts +2 -0
- package/dist/components/Fab/Fab.cjs +1 -1
- package/dist/components/Fab/Fab.js +43 -43
- package/dist/components/FileUpload/FileUpload.cjs +1 -1
- package/dist/components/FileUpload/FileUpload.js +46 -49
- package/dist/components/FileUpload/FileUpload.utils.cjs +1 -0
- package/dist/components/FileUpload/FileUpload.utils.d.ts +1 -0
- package/dist/components/FileUpload/FileUpload.utils.js +9 -0
- package/dist/components/Flex/Flex.cjs +1 -1
- package/dist/components/Flex/Flex.js +58 -58
- package/dist/components/Grid/Grid.cjs +1 -1
- package/dist/components/Grid/Grid.js +60 -60
- package/dist/components/Highlight/Highlight.cjs +1 -0
- package/dist/components/Highlight/Highlight.d.ts +2 -0
- package/dist/components/Highlight/Highlight.js +28 -0
- package/dist/components/Highlight/Highlight.types.d.ts +6 -0
- package/dist/components/Highlight/index.d.ts +2 -0
- package/dist/components/HoverCard/HoverCard.cjs +6 -0
- package/dist/components/HoverCard/HoverCard.d.ts +2 -0
- package/dist/components/HoverCard/HoverCard.js +68 -0
- package/dist/components/HoverCard/HoverCard.types.d.ts +13 -0
- package/dist/components/HoverCard/HoverCard.utils.cjs +1 -0
- package/dist/components/HoverCard/HoverCard.utils.d.ts +2 -0
- package/dist/components/HoverCard/HoverCard.utils.js +23 -0
- package/dist/components/HoverCard/index.d.ts +2 -0
- package/dist/components/Icon/icons/status.js +1 -1
- package/dist/components/Icon/index.cjs +1 -1
- package/dist/components/Icon/index.d.ts +5 -0
- package/dist/components/Icon/index.js +28 -21
- package/dist/components/Link/Link.cjs +1 -1
- package/dist/components/Link/Link.js +47 -47
- package/dist/components/List/List.cjs +1 -1
- package/dist/components/List/List.js +117 -117
- package/dist/components/Mark/Mark.cjs +1 -0
- package/dist/components/Mark/Mark.d.ts +2 -0
- package/dist/components/Mark/Mark.js +26 -0
- package/dist/components/Mark/Mark.types.d.ts +5 -0
- package/dist/components/Mark/index.d.ts +2 -0
- package/dist/components/Menu/Menu.cjs +1 -1
- package/dist/components/Menu/Menu.js +58 -58
- package/dist/components/Paper/Paper.cjs +1 -1
- package/dist/components/Paper/Paper.js +36 -36
- package/dist/components/Radio/Radio.cjs +1 -1
- package/dist/components/Radio/Radio.js +79 -79
- package/dist/components/Rating/Rating.cjs +1 -1
- package/dist/components/Rating/Rating.js +37 -37
- package/dist/components/RichEditor/RichEditor.cjs +10 -0
- package/dist/components/RichEditor/RichEditor.d.ts +4 -0
- package/dist/components/RichEditor/RichEditor.icons.cjs +1 -0
- package/dist/components/RichEditor/RichEditor.icons.d.ts +16 -0
- package/dist/components/RichEditor/RichEditor.icons.js +62 -0
- package/dist/components/RichEditor/RichEditor.js +151 -0
- package/dist/components/RichEditor/RichEditor.types.d.ts +20 -0
- package/dist/components/RichEditor/RichEditor.utils.cjs +1 -0
- package/dist/components/RichEditor/RichEditor.utils.d.ts +3 -0
- package/dist/components/RichEditor/RichEditor.utils.js +22 -0
- package/dist/components/RichEditor/index.d.ts +2 -0
- package/dist/components/Sidebar/Sidebar.cjs +1 -0
- package/dist/components/Sidebar/Sidebar.d.ts +5 -0
- package/dist/components/Sidebar/Sidebar.js +158 -0
- package/dist/components/Sidebar/Sidebar.types.d.ts +40 -0
- package/dist/components/Sidebar/index.d.ts +2 -0
- package/dist/components/Slider/Slider.cjs +1 -1
- package/dist/components/Slider/Slider.js +8 -8
- package/dist/components/SpeedDial/SpeedDial.cjs +1 -1
- package/dist/components/SpeedDial/SpeedDial.js +40 -40
- package/dist/components/Spinner/Spinner.cjs +1 -1
- package/dist/components/Spinner/Spinner.js +24 -24
- package/dist/components/TimePicker/TimePicker.cjs +1 -1
- package/dist/components/TimePicker/TimePicker.constants.cjs +1 -0
- package/dist/components/TimePicker/TimePicker.constants.d.ts +5 -0
- package/dist/components/TimePicker/TimePicker.constants.js +16 -0
- package/dist/components/TimePicker/TimePicker.js +91 -70
- package/dist/components/TimePicker/TimePicker.types.d.ts +5 -2
- package/dist/components/TimePicker/TimePicker.utils.cjs +1 -0
- package/dist/components/TimePicker/TimePicker.utils.d.ts +1 -0
- package/dist/components/TimePicker/TimePicker.utils.js +7 -0
- package/dist/components/TransferList/TransferList.cjs +1 -1
- package/dist/components/TransferList/TransferList.js +74 -74
- package/dist/components/Typography/Typography.cjs +1 -1
- package/dist/components/Typography/Typography.js +52 -52
- package/dist/components/index.cjs +1 -1
- package/dist/components/index.d.ts +26 -0
- package/dist/components/index.js +119 -91
- package/dist/context/BearProvider.cjs +1 -1
- package/dist/context/BearProvider.d.ts +6 -1
- package/dist/context/BearProvider.js +42 -38
- package/dist/context/index.cjs +1 -1
- package/dist/context/index.d.ts +1 -1
- package/dist/context/index.js +6 -5
- package/dist/hooks/bearStyled.cjs +1 -0
- package/dist/hooks/bearStyled.d.ts +17 -0
- package/dist/hooks/bearStyled.js +17 -0
- package/dist/hooks/index.cjs +1 -1
- package/dist/hooks/index.d.ts +2 -0
- package/dist/hooks/index.js +14 -10
- package/dist/hooks/useBearStyles.cjs +1 -0
- package/dist/hooks/useBearStyles.d.ts +11 -0
- package/dist/hooks/useBearStyles.js +14 -0
- package/dist/index.cjs +1 -1
- package/dist/index.js +146 -113
- package/dist/styles.css +1 -1
- package/dist/types/bis.types.d.ts +9 -0
- package/dist/types/component.types.d.ts +3 -0
- package/dist/types/index.d.ts +1 -0
- package/package.json +2 -2
|
@@ -1,24 +1,24 @@
|
|
|
1
1
|
import { jsxs as L, jsx as n } from "react/jsx-runtime";
|
|
2
|
-
import { useState as S, useRef as y, useCallback as
|
|
2
|
+
import { useState as S, useRef as y, useCallback as u, useEffect as h, isValidElement as Z, cloneElement as q } from "react";
|
|
3
3
|
import { cn as k } from "../../utils/cn.js";
|
|
4
4
|
const G = {
|
|
5
|
-
xs: "
|
|
6
|
-
sm: "
|
|
7
|
-
md: "
|
|
8
|
-
lg: "
|
|
9
|
-
xl: "
|
|
5
|
+
xs: "bear-text-xs bear-py-1 bear-px-2",
|
|
6
|
+
sm: "bear-text-sm bear-py-1.5 bear-px-3",
|
|
7
|
+
md: "bear-text-sm bear-py-2 bear-px-3",
|
|
8
|
+
lg: "bear-text-base bear-py-2.5 bear-px-4",
|
|
9
|
+
xl: "bear-text-lg bear-py-3 bear-px-5"
|
|
10
10
|
}, H = {
|
|
11
|
-
"bottom-start": "
|
|
12
|
-
"bottom-end": "
|
|
13
|
-
bottom: "
|
|
14
|
-
"top-start": "
|
|
15
|
-
"top-end": "
|
|
16
|
-
top: "
|
|
17
|
-
left: "
|
|
18
|
-
right: "
|
|
11
|
+
"bottom-start": "bear-top-full bear-left-0 bear-mt-1",
|
|
12
|
+
"bottom-end": "bear-top-full bear-right-0 bear-mt-1",
|
|
13
|
+
bottom: "bear-top-full bear-left-1/2 -bear-translate-x-1/2 bear-mt-1",
|
|
14
|
+
"top-start": "bear-bottom-full bear-left-0 bear-mb-1",
|
|
15
|
+
"top-end": "bear-bottom-full bear-right-0 bear-mb-1",
|
|
16
|
+
top: "bear-bottom-full bear-left-1/2 -bear-translate-x-1/2 bear-mb-1",
|
|
17
|
+
left: "bear-right-full bear-top-0 bear-mr-1",
|
|
18
|
+
right: "bear-left-full bear-top-0 bear-ml-1"
|
|
19
19
|
}, $ = ({
|
|
20
|
-
trigger:
|
|
21
|
-
items:
|
|
20
|
+
trigger: p,
|
|
21
|
+
items: c,
|
|
22
22
|
open: v,
|
|
23
23
|
defaultOpen: A = !1,
|
|
24
24
|
placement: C = "bottom-start",
|
|
@@ -30,63 +30,63 @@ const G = {
|
|
|
30
30
|
closeOnSelect: w = !0,
|
|
31
31
|
closeOnClickOutside: E = !0,
|
|
32
32
|
disabled: N = !1,
|
|
33
|
-
onOpenChange:
|
|
33
|
+
onOpenChange: i,
|
|
34
34
|
className: F,
|
|
35
35
|
testId: M,
|
|
36
36
|
..._
|
|
37
37
|
}) => {
|
|
38
38
|
var D;
|
|
39
|
-
const [B, K] = S(A), [s, l] = S(-1),
|
|
40
|
-
|
|
41
|
-
}, [
|
|
42
|
-
N ||
|
|
43
|
-
}, [N,
|
|
44
|
-
|
|
45
|
-
}, [
|
|
46
|
-
var
|
|
47
|
-
e.disabled || e.divider || e.header || ((
|
|
39
|
+
const [B, K] = S(A), [s, l] = S(-1), x = y(null), P = y(null), I = y(null), g = v !== void 0, t = g ? v : B, f = u((e) => {
|
|
40
|
+
g || K(e), i == null || i(e);
|
|
41
|
+
}, [g, i]), T = u(() => {
|
|
42
|
+
N || f(!t);
|
|
43
|
+
}, [N, t, f]), o = u(() => {
|
|
44
|
+
f(!1), l(-1);
|
|
45
|
+
}, [f]), m = u((e) => {
|
|
46
|
+
var a;
|
|
47
|
+
e.disabled || e.divider || e.header || ((a = e.onClick) == null || a.call(e), w && !e.items && o());
|
|
48
48
|
}, [w, o]);
|
|
49
49
|
h(() => {
|
|
50
|
-
if (!E || !
|
|
51
|
-
const e = (
|
|
52
|
-
|
|
50
|
+
if (!E || !t) return;
|
|
51
|
+
const e = (a) => {
|
|
52
|
+
x.current && !x.current.contains(a.target) && o();
|
|
53
53
|
};
|
|
54
54
|
return document.addEventListener("mousedown", e), () => document.removeEventListener("mousedown", e);
|
|
55
|
-
}, [
|
|
56
|
-
if (!
|
|
57
|
-
const e =
|
|
55
|
+
}, [t, E, o]), h(() => {
|
|
56
|
+
if (!t) return;
|
|
57
|
+
const e = c.filter((r) => !r.disabled && !r.divider && !r.header), a = (r) => {
|
|
58
58
|
switch (r.key) {
|
|
59
59
|
case "Escape":
|
|
60
60
|
r.preventDefault(), o();
|
|
61
61
|
break;
|
|
62
62
|
case "ArrowDown":
|
|
63
|
-
r.preventDefault(), l((
|
|
64
|
-
const
|
|
65
|
-
return
|
|
63
|
+
r.preventDefault(), l((d) => {
|
|
64
|
+
const b = d + 1;
|
|
65
|
+
return b >= e.length ? 0 : b;
|
|
66
66
|
});
|
|
67
67
|
break;
|
|
68
68
|
case "ArrowUp":
|
|
69
|
-
r.preventDefault(), l((
|
|
70
|
-
const
|
|
71
|
-
return
|
|
69
|
+
r.preventDefault(), l((d) => {
|
|
70
|
+
const b = d - 1;
|
|
71
|
+
return b < 0 ? e.length - 1 : b;
|
|
72
72
|
});
|
|
73
73
|
break;
|
|
74
74
|
case "Enter":
|
|
75
75
|
case " ":
|
|
76
|
-
r.preventDefault(), s >= 0 && s < e.length &&
|
|
76
|
+
r.preventDefault(), s >= 0 && s < e.length && m(e[s]);
|
|
77
77
|
break;
|
|
78
78
|
}
|
|
79
79
|
};
|
|
80
|
-
return document.addEventListener("keydown",
|
|
81
|
-
}, [
|
|
82
|
-
|
|
83
|
-
}, [
|
|
84
|
-
const U = (e,
|
|
80
|
+
return document.addEventListener("keydown", a), () => document.removeEventListener("keydown", a);
|
|
81
|
+
}, [t, c, s, o, m]), h(() => {
|
|
82
|
+
t || l(-1);
|
|
83
|
+
}, [t]);
|
|
84
|
+
const U = (e, a) => {
|
|
85
85
|
if (e.divider)
|
|
86
86
|
return /* @__PURE__ */ n(
|
|
87
87
|
"div",
|
|
88
88
|
{
|
|
89
|
-
className: "
|
|
89
|
+
className: "bear-my-1 bear-mx-2 bear-h-px bear-bg-gray-200 dark:bear-bg-gray-700",
|
|
90
90
|
role: "separator"
|
|
91
91
|
},
|
|
92
92
|
e.key
|
|
@@ -95,71 +95,71 @@ const G = {
|
|
|
95
95
|
return /* @__PURE__ */ n(
|
|
96
96
|
"div",
|
|
97
97
|
{
|
|
98
|
-
className: "
|
|
98
|
+
className: "bear-px-3 bear-py-1.5 bear-text-xs bear-font-semibold bear-uppercase bear-tracking-wider bear-text-gray-500 dark:bear-text-gray-400",
|
|
99
99
|
children: e.label
|
|
100
100
|
},
|
|
101
101
|
e.key
|
|
102
102
|
);
|
|
103
|
-
const r =
|
|
103
|
+
const r = c.slice(0, a).filter((b) => !b.disabled && !b.divider && !b.header).length, d = s === r;
|
|
104
104
|
return /* @__PURE__ */ L(
|
|
105
105
|
"button",
|
|
106
106
|
{
|
|
107
107
|
type: "button",
|
|
108
108
|
role: "menuitem",
|
|
109
109
|
disabled: e.disabled,
|
|
110
|
-
onClick: () =>
|
|
110
|
+
onClick: () => m(e),
|
|
111
111
|
onMouseEnter: () => l(r),
|
|
112
112
|
className: k(
|
|
113
|
-
"
|
|
113
|
+
"bear-w-full bear-flex bear-items-center bear-gap-2 bear-text-left bear-border-none bear-bg-transparent",
|
|
114
114
|
G[z],
|
|
115
|
-
"
|
|
116
|
-
|
|
117
|
-
e.danger ? "
|
|
118
|
-
e.disabled && "
|
|
115
|
+
"bear-transition-colors bear-cursor-pointer",
|
|
116
|
+
d && "bear-bg-gray-100 dark:bear-bg-gray-800",
|
|
117
|
+
e.danger ? "bear-text-red-600 dark:bear-text-red-400 hover:bear-bg-red-50 dark:hover:bear-bg-red-900/20" : "bear-text-gray-700 dark:bear-text-gray-200 hover:bear-bg-gray-100 dark:hover:bear-bg-gray-800",
|
|
118
|
+
e.disabled && "bear-opacity-50 bear-cursor-not-allowed bear-pointer-events-none"
|
|
119
119
|
),
|
|
120
120
|
children: [
|
|
121
|
-
e.icon && /* @__PURE__ */ n("span", { className: "
|
|
122
|
-
/* @__PURE__ */ n("span", { className: "
|
|
123
|
-
e.trailing && /* @__PURE__ */ n("span", { className: "
|
|
124
|
-
e.items && /* @__PURE__ */ n("svg", { className: "
|
|
121
|
+
e.icon && /* @__PURE__ */ n("span", { className: "bear-flex-shrink-0 bear-w-5 bear-h-5 bear-flex bear-items-center bear-justify-center", children: e.icon }),
|
|
122
|
+
/* @__PURE__ */ n("span", { className: "bear-flex-1", children: e.label }),
|
|
123
|
+
e.trailing && /* @__PURE__ */ n("span", { className: "bear-flex-shrink-0 bear-text-gray-400", children: e.trailing }),
|
|
124
|
+
e.items && /* @__PURE__ */ n("svg", { className: "bear-w-4 bear-h-4 bear-text-gray-400", viewBox: "0 0 24 24", fill: "none", stroke: "currentColor", strokeWidth: "2", children: /* @__PURE__ */ n("polyline", { points: "9 18 15 12 9 6" }) })
|
|
125
125
|
]
|
|
126
126
|
},
|
|
127
127
|
e.key
|
|
128
128
|
);
|
|
129
|
-
}, V = Z(
|
|
129
|
+
}, V = Z(p) ? q(p, {
|
|
130
130
|
onClick: T,
|
|
131
131
|
ref: I,
|
|
132
|
-
"aria-expanded":
|
|
132
|
+
"aria-expanded": t,
|
|
133
133
|
"aria-haspopup": !0
|
|
134
|
-
}) :
|
|
134
|
+
}) : p;
|
|
135
135
|
return /* @__PURE__ */ L(
|
|
136
136
|
"div",
|
|
137
137
|
{
|
|
138
|
-
ref:
|
|
139
|
-
className: k("
|
|
138
|
+
ref: x,
|
|
139
|
+
className: k("bear-relative bear-inline-block", F),
|
|
140
140
|
"data-testid": M,
|
|
141
141
|
..._,
|
|
142
142
|
children: [
|
|
143
143
|
V,
|
|
144
|
-
|
|
144
|
+
t && /* @__PURE__ */ n(
|
|
145
145
|
"div",
|
|
146
146
|
{
|
|
147
147
|
ref: P,
|
|
148
148
|
role: "menu",
|
|
149
149
|
className: k(
|
|
150
|
-
"
|
|
151
|
-
"
|
|
152
|
-
"
|
|
153
|
-
"
|
|
154
|
-
"
|
|
155
|
-
"
|
|
150
|
+
"bear-absolute bear-z-50",
|
|
151
|
+
"bear-bg-white dark:bear-bg-gray-900",
|
|
152
|
+
"bear-border bear-border-gray-200 dark:bear-border-gray-700",
|
|
153
|
+
"bear-rounded-lg bear-shadow-lg",
|
|
154
|
+
"bear-py-1 bear-overflow-y-auto",
|
|
155
|
+
"bear-animate-in bear-fade-in-0 bear-zoom-in-95 bear-duration-100",
|
|
156
156
|
H[C]
|
|
157
157
|
),
|
|
158
158
|
style: {
|
|
159
159
|
minWidth: R ? (D = I.current) == null ? void 0 : D.offsetWidth : j,
|
|
160
160
|
maxHeight: W
|
|
161
161
|
},
|
|
162
|
-
children:
|
|
162
|
+
children: c.map((e, a) => U(e, a))
|
|
163
163
|
}
|
|
164
164
|
)
|
|
165
165
|
]
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
"use strict";Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});const n=require("react/jsx-runtime"),e=require("react"),v=require("../Button/Button.cjs"),k=require("../Icon/index.cjs"),w=e.createContext(null),d=()=>{const r=e.useContext(w);if(!r)throw new Error("Editable components must be used within Editable.Root");return r},j=e.forwardRef(({children:r,defaultValue:s="",value:a,onChange:i,onEditSubmit:t,onCancel:o,placeholder:b="Click to edit...",isDisabled:c=!1,startWithEditView:x=!1,className:u="",...f},m)=>{const[l,p]=e.useState(x),[B,T]=e.useState(s),[E,P]=e.useState(s),g=a!==void 0?a:B,y=e.useCallback(h=>{a===void 0&&T(h),i==null||i(h)},[a,i]),q=e.useCallback(()=>{c||(P(g),p(!0))},[c,g]),D=e.useCallback(()=>{p(!1)},[]),K=e.useCallback(()=>{t==null||t(g),p(!1)},[g,t]),S=e.useCallback(()=>{y(E),o==null||o(),p(!1)},[E,y,o]);return n.jsx(w.Provider,{value:{isEditing:l,value:g,startEditing:q,stopEditing:D,setValue:y,submit:K,cancel:S},children:n.jsx("div",{ref:m,className:`bear-editable inline-block ${u}`.trim(),...f,children:r})})});j.displayName="Editable.Root";const N=e.forwardRef(({children:r,className:s="",...a},i)=>{const{isEditing:t,value:o,startEditing:b}=d();return t?null:n.jsx("span",{ref:i,className:`bear-editable-preview cursor-pointer hover:bg-gray-100 dark:hover:bg-gray-800 px-2 py-1 rounded transition-colors ${s}`.trim(),onClick:b,...a,children:r||o||n.jsx("span",{className:"text-gray-400 italic",children:"Click to edit..."})})});N.displayName="Editable.Preview";const C=e.forwardRef(({asTextarea:r=!1,className:s="",...a},i)=>{const{isEditing:t,value:o,setValue:b,submit:c,cancel:x}=d(),u=e.useRef(null);e.useEffect(()=>{t&&u.current&&(u.current.focus(),u.current.select())},[t]);const f=l=>{l.key==="Enter"&&!r&&(l.preventDefault(),c()),l.key==="Escape"&&x()};if(!t)return null;const m="bear-editable-input w-full px-2 py-1 border border-gray-300 dark:border-gray-600 rounded bg-white dark:bg-gray-800 text-gray-900 dark:text-white focus:outline-none focus:ring-2 focus:ring-pink-500";return r?n.jsx("textarea",{ref:i,value:o,onChange:l=>b(l.target.value),onKeyDown:f,onBlur:c,className:`${m} min-h-[80px] resize-y ${s}`.trim(),...a}):n.jsx("input",{ref:u,type:"text",value:o,onChange:l=>b(l.target.value),onKeyDown:f,onBlur:c,className:`${m} ${s}`.trim(),...a})});C.displayName="Editable.Input";const R=e.forwardRef(({children:r,className:s="",...a},i)=>{const{isEditing:t}=d();return t?n.jsx("div",{ref:i,className:`bear-editable-control flex items-center gap-1 mt-1 ${s}`.trim(),...a,children:r}):null});R.displayName="Editable.Control";const $=e.forwardRef(({children:r,className:s="",...a},i)=>{const{submit:t}=d();return n.jsx(v.Button,{ref:i,type:"button",onClick:t,variant:"ghost",size:"sm",className:`bear-editable-submit bear-text-green-600 dark:bear-text-green-400 hover:bear-bg-green-100 dark:hover:bear-bg-green-900/30 bear-p-1 bear-min-w-0 ${s}`.trim(),...a,children:r||n.jsx(k.CheckIcon,{size:16})})});$.displayName="Editable.SubmitTrigger";const z=e.forwardRef(({children:r,className:s="",...a},i)=>{const{cancel:t}=d();return n.jsx(v.Button,{ref:i,type:"button",onClick:t,variant:"ghost",size:"sm",className:`bear-editable-cancel bear-text-red-600 dark:bear-text-red-400 hover:bear-bg-red-100 dark:hover:bear-bg-red-900/30 bear-p-1 bear-min-w-0 ${s}`.trim(),...a,children:r||n.jsx(k.CloseIcon,{size:16})})});z.displayName="Editable.CancelTrigger";const I=e.forwardRef(({children:r,className:s="",...a},i)=>{const{isEditing:t,startEditing:o}=d();return t?null:n.jsx(v.Button,{ref:i,type:"button",onClick:o,variant:"ghost",size:"sm",className:`bear-editable-edit bear-text-gray-600 dark:bear-text-gray-400 hover:bear-bg-gray-100 dark:hover:bear-bg-gray-800 bear-p-1 bear-min-w-0 ${s}`.trim(),...a,children:r||n.jsx(k.EditIcon,{size:16})})});I.displayName="Editable.EditTrigger";const M={Root:j,Preview:N,Input:C,Control:R,SubmitTrigger:$,CancelTrigger:z,EditTrigger:I};exports.Editable=M;
|
|
@@ -0,0 +1,10 @@
|
|
|
1
|
+
import { EditableRootProps, EditablePreviewProps, EditableInputProps, EditableControlProps, EditableSubmitTriggerProps, EditableCancelTriggerProps, EditableEditTriggerProps } from './Editable.types';
|
|
2
|
+
export declare const Editable: {
|
|
3
|
+
Root: import('react').ForwardRefExoticComponent<EditableRootProps & import('react').RefAttributes<HTMLDivElement>>;
|
|
4
|
+
Preview: import('react').ForwardRefExoticComponent<EditablePreviewProps & import('react').RefAttributes<HTMLSpanElement>>;
|
|
5
|
+
Input: import('react').ForwardRefExoticComponent<EditableInputProps & import('react').RefAttributes<HTMLInputElement>>;
|
|
6
|
+
Control: import('react').ForwardRefExoticComponent<EditableControlProps & import('react').RefAttributes<HTMLDivElement>>;
|
|
7
|
+
SubmitTrigger: import('react').ForwardRefExoticComponent<EditableSubmitTriggerProps & import('react').RefAttributes<HTMLButtonElement>>;
|
|
8
|
+
CancelTrigger: import('react').ForwardRefExoticComponent<EditableCancelTriggerProps & import('react').RefAttributes<HTMLButtonElement>>;
|
|
9
|
+
EditTrigger: import('react').ForwardRefExoticComponent<EditableEditTriggerProps & import('react').RefAttributes<HTMLButtonElement>>;
|
|
10
|
+
};
|
|
@@ -0,0 +1,194 @@
|
|
|
1
|
+
import { jsx as n } from "react/jsx-runtime";
|
|
2
|
+
import { createContext as F, forwardRef as l, useState as h, useCallback as m, useRef as G, useEffect as H, useContext as J } from "react";
|
|
3
|
+
import { Button as k } from "../Button/Button.js";
|
|
4
|
+
import { CheckIcon as L, CloseIcon as M, EditIcon as O } from "../Icon/index.js";
|
|
5
|
+
const N = F(null), b = () => {
|
|
6
|
+
const t = J(N);
|
|
7
|
+
if (!t)
|
|
8
|
+
throw new Error("Editable components must be used within Editable.Root");
|
|
9
|
+
return t;
|
|
10
|
+
}, C = l(({
|
|
11
|
+
children: t,
|
|
12
|
+
defaultValue: a = "",
|
|
13
|
+
value: r,
|
|
14
|
+
onChange: i,
|
|
15
|
+
onEditSubmit: e,
|
|
16
|
+
onCancel: s,
|
|
17
|
+
placeholder: u = "Click to edit...",
|
|
18
|
+
isDisabled: c = !1,
|
|
19
|
+
startWithEditView: v = !1,
|
|
20
|
+
className: d = "",
|
|
21
|
+
...p
|
|
22
|
+
}, f) => {
|
|
23
|
+
const [o, y] = h(v), [B, D] = h(a), [x, K] = h(a), g = r !== void 0 ? r : B, E = m((w) => {
|
|
24
|
+
r === void 0 && D(w), i == null || i(w);
|
|
25
|
+
}, [r, i]), j = m(() => {
|
|
26
|
+
c || (K(g), y(!0));
|
|
27
|
+
}, [c, g]), V = m(() => {
|
|
28
|
+
y(!1);
|
|
29
|
+
}, []), q = m(() => {
|
|
30
|
+
e == null || e(g), y(!1);
|
|
31
|
+
}, [g, e]), A = m(() => {
|
|
32
|
+
E(x), s == null || s(), y(!1);
|
|
33
|
+
}, [x, E, s]);
|
|
34
|
+
return /* @__PURE__ */ n(N.Provider, { value: { isEditing: o, value: g, startEditing: j, stopEditing: V, setValue: E, submit: q, cancel: A }, children: /* @__PURE__ */ n(
|
|
35
|
+
"div",
|
|
36
|
+
{
|
|
37
|
+
ref: f,
|
|
38
|
+
className: `bear-editable inline-block ${d}`.trim(),
|
|
39
|
+
...p,
|
|
40
|
+
children: t
|
|
41
|
+
}
|
|
42
|
+
) });
|
|
43
|
+
});
|
|
44
|
+
C.displayName = "Editable.Root";
|
|
45
|
+
const $ = l(({
|
|
46
|
+
children: t,
|
|
47
|
+
className: a = "",
|
|
48
|
+
...r
|
|
49
|
+
}, i) => {
|
|
50
|
+
const { isEditing: e, value: s, startEditing: u } = b();
|
|
51
|
+
return e ? null : /* @__PURE__ */ n(
|
|
52
|
+
"span",
|
|
53
|
+
{
|
|
54
|
+
ref: i,
|
|
55
|
+
className: `bear-editable-preview cursor-pointer hover:bg-gray-100 dark:hover:bg-gray-800 px-2 py-1 rounded transition-colors ${a}`.trim(),
|
|
56
|
+
onClick: u,
|
|
57
|
+
...r,
|
|
58
|
+
children: t || s || /* @__PURE__ */ n("span", { className: "text-gray-400 italic", children: "Click to edit..." })
|
|
59
|
+
}
|
|
60
|
+
);
|
|
61
|
+
});
|
|
62
|
+
$.displayName = "Editable.Preview";
|
|
63
|
+
const z = l(({
|
|
64
|
+
asTextarea: t = !1,
|
|
65
|
+
className: a = "",
|
|
66
|
+
...r
|
|
67
|
+
}, i) => {
|
|
68
|
+
const { isEditing: e, value: s, setValue: u, submit: c, cancel: v } = b(), d = G(null);
|
|
69
|
+
H(() => {
|
|
70
|
+
e && d.current && (d.current.focus(), d.current.select());
|
|
71
|
+
}, [e]);
|
|
72
|
+
const p = (o) => {
|
|
73
|
+
o.key === "Enter" && !t && (o.preventDefault(), c()), o.key === "Escape" && v();
|
|
74
|
+
};
|
|
75
|
+
if (!e) return null;
|
|
76
|
+
const f = "bear-editable-input w-full px-2 py-1 border border-gray-300 dark:border-gray-600 rounded bg-white dark:bg-gray-800 text-gray-900 dark:text-white focus:outline-none focus:ring-2 focus:ring-pink-500";
|
|
77
|
+
return t ? /* @__PURE__ */ n(
|
|
78
|
+
"textarea",
|
|
79
|
+
{
|
|
80
|
+
ref: i,
|
|
81
|
+
value: s,
|
|
82
|
+
onChange: (o) => u(o.target.value),
|
|
83
|
+
onKeyDown: p,
|
|
84
|
+
onBlur: c,
|
|
85
|
+
className: `${f} min-h-[80px] resize-y ${a}`.trim(),
|
|
86
|
+
...r
|
|
87
|
+
}
|
|
88
|
+
) : /* @__PURE__ */ n(
|
|
89
|
+
"input",
|
|
90
|
+
{
|
|
91
|
+
ref: d,
|
|
92
|
+
type: "text",
|
|
93
|
+
value: s,
|
|
94
|
+
onChange: (o) => u(o.target.value),
|
|
95
|
+
onKeyDown: p,
|
|
96
|
+
onBlur: c,
|
|
97
|
+
className: `${f} ${a}`.trim(),
|
|
98
|
+
...r
|
|
99
|
+
}
|
|
100
|
+
);
|
|
101
|
+
});
|
|
102
|
+
z.displayName = "Editable.Input";
|
|
103
|
+
const I = l(({
|
|
104
|
+
children: t,
|
|
105
|
+
className: a = "",
|
|
106
|
+
...r
|
|
107
|
+
}, i) => {
|
|
108
|
+
const { isEditing: e } = b();
|
|
109
|
+
return e ? /* @__PURE__ */ n(
|
|
110
|
+
"div",
|
|
111
|
+
{
|
|
112
|
+
ref: i,
|
|
113
|
+
className: `bear-editable-control flex items-center gap-1 mt-1 ${a}`.trim(),
|
|
114
|
+
...r,
|
|
115
|
+
children: t
|
|
116
|
+
}
|
|
117
|
+
) : null;
|
|
118
|
+
});
|
|
119
|
+
I.displayName = "Editable.Control";
|
|
120
|
+
const R = l(({
|
|
121
|
+
children: t,
|
|
122
|
+
className: a = "",
|
|
123
|
+
...r
|
|
124
|
+
}, i) => {
|
|
125
|
+
const { submit: e } = b();
|
|
126
|
+
return /* @__PURE__ */ n(
|
|
127
|
+
k,
|
|
128
|
+
{
|
|
129
|
+
ref: i,
|
|
130
|
+
type: "button",
|
|
131
|
+
onClick: e,
|
|
132
|
+
variant: "ghost",
|
|
133
|
+
size: "sm",
|
|
134
|
+
className: `bear-editable-submit bear-text-green-600 dark:bear-text-green-400 hover:bear-bg-green-100 dark:hover:bear-bg-green-900/30 bear-p-1 bear-min-w-0 ${a}`.trim(),
|
|
135
|
+
...r,
|
|
136
|
+
children: t || /* @__PURE__ */ n(L, { size: 16 })
|
|
137
|
+
}
|
|
138
|
+
);
|
|
139
|
+
});
|
|
140
|
+
R.displayName = "Editable.SubmitTrigger";
|
|
141
|
+
const T = l(({
|
|
142
|
+
children: t,
|
|
143
|
+
className: a = "",
|
|
144
|
+
...r
|
|
145
|
+
}, i) => {
|
|
146
|
+
const { cancel: e } = b();
|
|
147
|
+
return /* @__PURE__ */ n(
|
|
148
|
+
k,
|
|
149
|
+
{
|
|
150
|
+
ref: i,
|
|
151
|
+
type: "button",
|
|
152
|
+
onClick: e,
|
|
153
|
+
variant: "ghost",
|
|
154
|
+
size: "sm",
|
|
155
|
+
className: `bear-editable-cancel bear-text-red-600 dark:bear-text-red-400 hover:bear-bg-red-100 dark:hover:bear-bg-red-900/30 bear-p-1 bear-min-w-0 ${a}`.trim(),
|
|
156
|
+
...r,
|
|
157
|
+
children: t || /* @__PURE__ */ n(M, { size: 16 })
|
|
158
|
+
}
|
|
159
|
+
);
|
|
160
|
+
});
|
|
161
|
+
T.displayName = "Editable.CancelTrigger";
|
|
162
|
+
const P = l(({
|
|
163
|
+
children: t,
|
|
164
|
+
className: a = "",
|
|
165
|
+
...r
|
|
166
|
+
}, i) => {
|
|
167
|
+
const { isEditing: e, startEditing: s } = b();
|
|
168
|
+
return e ? null : /* @__PURE__ */ n(
|
|
169
|
+
k,
|
|
170
|
+
{
|
|
171
|
+
ref: i,
|
|
172
|
+
type: "button",
|
|
173
|
+
onClick: s,
|
|
174
|
+
variant: "ghost",
|
|
175
|
+
size: "sm",
|
|
176
|
+
className: `bear-editable-edit bear-text-gray-600 dark:bear-text-gray-400 hover:bear-bg-gray-100 dark:hover:bear-bg-gray-800 bear-p-1 bear-min-w-0 ${a}`.trim(),
|
|
177
|
+
...r,
|
|
178
|
+
children: t || /* @__PURE__ */ n(O, { size: 16 })
|
|
179
|
+
}
|
|
180
|
+
);
|
|
181
|
+
});
|
|
182
|
+
P.displayName = "Editable.EditTrigger";
|
|
183
|
+
const Y = {
|
|
184
|
+
Root: C,
|
|
185
|
+
Preview: $,
|
|
186
|
+
Input: z,
|
|
187
|
+
Control: I,
|
|
188
|
+
SubmitTrigger: R,
|
|
189
|
+
CancelTrigger: T,
|
|
190
|
+
EditTrigger: P
|
|
191
|
+
};
|
|
192
|
+
export {
|
|
193
|
+
Y as Editable
|
|
194
|
+
};
|
|
@@ -0,0 +1,39 @@
|
|
|
1
|
+
import { HTMLAttributes, ReactNode, InputHTMLAttributes } from 'react';
|
|
2
|
+
export interface EditableContextValue {
|
|
3
|
+
isEditing: boolean;
|
|
4
|
+
value: string;
|
|
5
|
+
startEditing: () => void;
|
|
6
|
+
stopEditing: () => void;
|
|
7
|
+
setValue: (value: string) => void;
|
|
8
|
+
submit: () => void;
|
|
9
|
+
cancel: () => void;
|
|
10
|
+
}
|
|
11
|
+
export interface EditableRootProps extends Omit<HTMLAttributes<HTMLDivElement>, 'onChange' | 'onSubmit'> {
|
|
12
|
+
children?: ReactNode;
|
|
13
|
+
defaultValue?: string;
|
|
14
|
+
value?: string;
|
|
15
|
+
onChange?: (value: string) => void;
|
|
16
|
+
onEditSubmit?: (value: string) => void;
|
|
17
|
+
onCancel?: () => void;
|
|
18
|
+
placeholder?: string;
|
|
19
|
+
isDisabled?: boolean;
|
|
20
|
+
startWithEditView?: boolean;
|
|
21
|
+
}
|
|
22
|
+
export interface EditablePreviewProps extends HTMLAttributes<HTMLSpanElement> {
|
|
23
|
+
children?: ReactNode;
|
|
24
|
+
}
|
|
25
|
+
export interface EditableInputProps extends Omit<InputHTMLAttributes<HTMLInputElement>, 'onChange' | 'value'> {
|
|
26
|
+
asTextarea?: boolean;
|
|
27
|
+
}
|
|
28
|
+
export interface EditableControlProps extends HTMLAttributes<HTMLDivElement> {
|
|
29
|
+
children?: ReactNode;
|
|
30
|
+
}
|
|
31
|
+
export interface EditableSubmitTriggerProps extends HTMLAttributes<HTMLButtonElement> {
|
|
32
|
+
children?: ReactNode;
|
|
33
|
+
}
|
|
34
|
+
export interface EditableCancelTriggerProps extends HTMLAttributes<HTMLButtonElement> {
|
|
35
|
+
children?: ReactNode;
|
|
36
|
+
}
|
|
37
|
+
export interface EditableEditTriggerProps extends HTMLAttributes<HTMLButtonElement> {
|
|
38
|
+
children?: ReactNode;
|
|
39
|
+
}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
"use strict";Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});const l=require("react/jsx-runtime"),n=require("react"),o={default:"italic text-inherit",strong:"italic font-semibold text-gray-900 dark:text-white",subtle:"italic text-gray-500 dark:text-gray-400"},t=n.forwardRef(({children:e,variant:a="default",className:r="",...i},s)=>l.jsx("em",{ref:s,className:`bear-em ${o[a]} ${r}`.trim(),...i,children:e}));t.displayName="Em";exports.Em=t;
|
|
@@ -0,0 +1,24 @@
|
|
|
1
|
+
import { jsx as m } from "react/jsx-runtime";
|
|
2
|
+
import { forwardRef as s } from "react";
|
|
3
|
+
const o = {
|
|
4
|
+
default: "italic text-inherit",
|
|
5
|
+
strong: "italic font-semibold text-gray-900 dark:text-white",
|
|
6
|
+
subtle: "italic text-gray-500 dark:text-gray-400"
|
|
7
|
+
}, l = s(({
|
|
8
|
+
children: t,
|
|
9
|
+
variant: e = "default",
|
|
10
|
+
className: a = "",
|
|
11
|
+
...r
|
|
12
|
+
}, i) => /* @__PURE__ */ m(
|
|
13
|
+
"em",
|
|
14
|
+
{
|
|
15
|
+
ref: i,
|
|
16
|
+
className: `bear-em ${o[e]} ${a}`.trim(),
|
|
17
|
+
...r,
|
|
18
|
+
children: t
|
|
19
|
+
}
|
|
20
|
+
));
|
|
21
|
+
l.displayName = "Em";
|
|
22
|
+
export {
|
|
23
|
+
l as Em
|
|
24
|
+
};
|
|
@@ -1 +1 @@
|
|
|
1
|
-
"use strict";Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});const
|
|
1
|
+
"use strict";Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});const f=require("react/jsx-runtime"),p=require("react"),x=require("../../utils/cn.cjs"),m={sm:"bear-w-10 bear-h-10",md:"bear-w-14 bear-h-14",lg:"bear-w-16 bear-h-16"},w={"bottom-right":"bear-fixed bear-bottom-6 bear-right-6","bottom-left":"bear-fixed bear-bottom-6 bear-left-6","top-right":"bear-fixed bear-top-6 bear-right-6","top-left":"bear-fixed bear-top-6 bear-left-6","bottom-center":"bear-fixed bear-bottom-6 bear-left-1/2 bear--translate-x-1/2",relative:""},v={primary:"bear-bg-pink-500 hover:bear-bg-pink-600 bear-text-white",secondary:"bear-bg-gray-600 hover:bear-bg-gray-700 bear-text-white",success:"bear-bg-green-500 hover:bear-bg-green-600 bear-text-white",danger:"bear-bg-red-500 hover:bear-bg-red-600 bear-text-white",warning:"bear-bg-amber-500 hover:bear-bg-amber-600 bear-text-white",info:"bear-bg-blue-500 hover:bear-bg-blue-600 bear-text-white",ghost:"bear-bg-gray-500 hover:bear-bg-gray-600 bear-text-white",outline:"bear-bg-white dark:bear-bg-gray-900 bear-border-2 bear-border-pink-500 hover:bear-bg-pink-50 dark:hover:bear-bg-pink-900/20 bear-text-pink-500",error:"bear-bg-red-500 hover:bear-bg-red-600 bear-text-white"},a=p.forwardRef(({children:b,size:t="md",variant:o="primary",color:e,extended:i=!1,position:n="relative",disabled:r=!1,shadow:g=!0,animated:s=!0,className:l,testId:h,style:c,...d},u)=>f.jsx("button",{ref:u,type:"button",disabled:r,className:x.cn("bear-inline-flex bear-items-center bear-justify-center bear-rounded-full","bear-border-none bear-cursor-pointer bear-transition-all bear-duration-200","focus:bear-outline-none focus:bear-ring-2 focus:bear-ring-offset-2 focus:bear-ring-pink-500",m[t],w[n],v[o],g&&"bear-shadow-lg hover:bear-shadow-xl",s&&"hover:bear-scale-110 active:bear-scale-95",i&&"bear-w-auto bear-px-6 bear-gap-2",r&&"bear-opacity-50 bear-cursor-not-allowed hover:bear-scale-100",l),style:{...c,...e&&{backgroundColor:e}},"data-testid":h,...d,children:b}));a.displayName="Fab";exports.Fab=a;
|