@knkcs/anker 0.0.1 → 0.0.2
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/atoms/index.d.ts +48 -12
- package/dist/atoms/index.js +77 -49
- package/dist/atoms/index.js.map +1 -1
- package/dist/{chunk-FGKGX4UF.js → chunk-7UJ4QEUW.js} +4 -3
- package/dist/chunk-7UJ4QEUW.js.map +1 -0
- package/dist/chunk-C4JI3JNA.js +147 -0
- package/dist/chunk-C4JI3JNA.js.map +1 -0
- package/dist/chunk-GJTQLZ4O.js +73 -0
- package/dist/chunk-GJTQLZ4O.js.map +1 -0
- package/dist/chunk-NJFF6S77.js +108 -0
- package/dist/chunk-NJFF6S77.js.map +1 -0
- package/dist/chunk-QU3FF5WI.js +36 -0
- package/dist/chunk-QU3FF5WI.js.map +1 -0
- package/dist/{chunk-4D3EY2W2.js → chunk-YSFUGIQM.js} +388 -34
- package/dist/chunk-YSFUGIQM.js.map +1 -0
- package/dist/components/index.d.ts +124 -12
- package/dist/components/index.js +291 -50
- package/dist/components/index.js.map +1 -1
- package/dist/forms/index.d.ts +2 -13
- package/dist/forms/index.js +81 -119
- package/dist/forms/index.js.map +1 -1
- package/dist/primitives/index.d.ts +142 -90
- package/dist/primitives/index.js +38 -116
- package/dist/primitives/index.js.map +1 -1
- package/dist/theme/index.d.ts +80 -8
- package/dist/theme/index.js +1 -1
- package/package.json +5 -1
- package/dist/chunk-4D3EY2W2.js.map +0 -1
- package/dist/chunk-4T32UC26.js +0 -81
- package/dist/chunk-4T32UC26.js.map +0 -1
- package/dist/chunk-FGKGX4UF.js.map +0 -1
- package/dist/chunk-QSCNXHMU.js +0 -32
- package/dist/chunk-QSCNXHMU.js.map +0 -1
- package/dist/chunk-YXTW5OAJ.js +0 -303
- package/dist/chunk-YXTW5OAJ.js.map +0 -1
|
@@ -0,0 +1,73 @@
|
|
|
1
|
+
import { Button as Button$1, IconButton as IconButton$1, Badge } from '@chakra-ui/react';
|
|
2
|
+
import { jsx } from 'react/jsx-runtime';
|
|
3
|
+
import dayjs from 'dayjs';
|
|
4
|
+
import calendarPlugin from 'dayjs/plugin/calendar.js';
|
|
5
|
+
import relativeTime from 'dayjs/plugin/relativeTime.js';
|
|
6
|
+
import utcPlugin from 'dayjs/plugin/utc.js';
|
|
7
|
+
import { readableColor } from 'color2k';
|
|
8
|
+
import { useMemo } from 'react';
|
|
9
|
+
|
|
10
|
+
// src/atoms/button/button.tsx
|
|
11
|
+
var Button = ({
|
|
12
|
+
ref,
|
|
13
|
+
...props
|
|
14
|
+
}) => {
|
|
15
|
+
return /* @__PURE__ */ jsx(
|
|
16
|
+
Button$1,
|
|
17
|
+
{
|
|
18
|
+
size: "md",
|
|
19
|
+
variant: "secondary",
|
|
20
|
+
ref,
|
|
21
|
+
...props
|
|
22
|
+
}
|
|
23
|
+
);
|
|
24
|
+
};
|
|
25
|
+
Button.displayName = "Button";
|
|
26
|
+
var IconButton = ({
|
|
27
|
+
ref,
|
|
28
|
+
...props
|
|
29
|
+
}) => {
|
|
30
|
+
return /* @__PURE__ */ jsx(IconButton$1, { size: "md", variant: "ghost", ref, ...props });
|
|
31
|
+
};
|
|
32
|
+
IconButton.displayName = "IconButton";
|
|
33
|
+
dayjs.extend(utcPlugin);
|
|
34
|
+
dayjs.extend(relativeTime);
|
|
35
|
+
dayjs.extend(calendarPlugin);
|
|
36
|
+
function formatRelativeDateTime(date, baseDate = /* @__PURE__ */ new Date()) {
|
|
37
|
+
return dayjs(date).from(baseDate);
|
|
38
|
+
}
|
|
39
|
+
function formatRelativeToCurrentWeekDateTime(date, baseDate = /* @__PURE__ */ new Date()) {
|
|
40
|
+
const isToday = dayjs(date).isSame(baseDate, "day");
|
|
41
|
+
if (!isToday) {
|
|
42
|
+
return dayjs(date).calendar(baseDate, {
|
|
43
|
+
sameElse: "DD MMM YYYY"
|
|
44
|
+
});
|
|
45
|
+
}
|
|
46
|
+
return formatRelativeDateTime(date, baseDate);
|
|
47
|
+
}
|
|
48
|
+
var StatusBadge = (props) => {
|
|
49
|
+
const { label, color } = props;
|
|
50
|
+
const textColor = useMemo(() => {
|
|
51
|
+
try {
|
|
52
|
+
return readableColor(color);
|
|
53
|
+
} catch {
|
|
54
|
+
return "black";
|
|
55
|
+
}
|
|
56
|
+
}, [color]);
|
|
57
|
+
return /* @__PURE__ */ jsx(
|
|
58
|
+
Badge,
|
|
59
|
+
{
|
|
60
|
+
bg: color,
|
|
61
|
+
color: textColor,
|
|
62
|
+
rounded: "base",
|
|
63
|
+
px: 2,
|
|
64
|
+
marginInlineStart: 1,
|
|
65
|
+
children: label
|
|
66
|
+
}
|
|
67
|
+
);
|
|
68
|
+
};
|
|
69
|
+
StatusBadge.displayName = "StatusBadge";
|
|
70
|
+
|
|
71
|
+
export { Button, IconButton, StatusBadge, formatRelativeDateTime, formatRelativeToCurrentWeekDateTime };
|
|
72
|
+
//# sourceMappingURL=chunk-GJTQLZ4O.js.map
|
|
73
|
+
//# sourceMappingURL=chunk-GJTQLZ4O.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"sources":["../src/atoms/button/button.tsx","../src/atoms/button/icon-button.tsx","../src/atoms/datetime/utils/relative-date-time-utils.ts","../src/atoms/status-badge/status-badge.tsx"],"names":["ChakraButton","jsx","ChakraIconButton"],"mappings":";;;;;;;;;;AAIO,IAAM,SAAS,CAAC;AAAA,EACtB,GAAA;AAAA,EACA,GAAG;AACJ,CAAA,KAA4D;AAC3D,EAAA,uBACC,GAAA;AAAA,IAACA,QAAA;AAAA,IAAA;AAAA,MACA,IAAA,EAAK,IAAA;AAAA,MACL,OAAA,EAAS,WAAA;AAAA,MACT,GAAA;AAAA,MACC,GAAG;AAAA;AAAA,GACL;AAEF;AACA,MAAA,CAAO,WAAA,GAAc,QAAA;ACVd,IAAM,aAAa,CAAC;AAAA,EAC1B,GAAA;AAAA,EACA,GAAG;AACJ,CAAA,KAAgE;AAC/D,EAAA,uBAAOC,IAACC,YAAA,EAAA,EAAiB,IAAA,EAAK,MAAK,OAAA,EAAQ,OAAA,EAAQ,GAAA,EAAW,GAAG,KAAA,EAAO,CAAA;AACzE;AACA,UAAA,CAAW,WAAA,GAAc,YAAA;ACRzB,KAAA,CAAM,OAAO,SAAS,CAAA;AACtB,KAAA,CAAM,OAAO,YAAY,CAAA;AACzB,KAAA,CAAM,OAAO,cAAc,CAAA;AAmBpB,SAAS,sBAAA,CACf,IAAA,EACA,QAAA,mBAAqB,IAAI,MAAK,EAC7B;AACD,EAAA,OAAO,KAAA,CAAM,IAAI,CAAA,CAAE,IAAA,CAAK,QAAQ,CAAA;AACjC;AAmBO,SAAS,mCAAA,CACf,IAAA,EACA,QAAA,mBAAqB,IAAI,MAAK,EAC7B;AACD,EAAA,MAAM,UAAU,KAAA,CAAM,IAAI,CAAA,CAAE,MAAA,CAAO,UAAU,KAAK,CAAA;AAElD,EAAA,IAAI,CAAC,OAAA,EAAS;AAGb,IAAA,OAAO,KAAA,CAAM,IAAI,CAAA,CAAE,QAAA,CAAS,QAAA,EAAU;AAAA,MACrC,QAAA,EAAU;AAAA,KACV,CAAA;AAAA,EACF;AAGA,EAAA,OAAO,sBAAA,CAAuB,MAAM,QAAQ,CAAA;AAC7C;ACtDO,IAAM,WAAA,GAA0C,CAAC,KAAA,KAAU;AACjE,EAAA,MAAM,EAAE,KAAA,EAAO,KAAA,EAAM,GAAI,KAAA;AAEzB,EAAA,MAAM,SAAA,GAAY,QAAQ,MAAM;AAC/B,IAAA,IAAI;AACH,MAAA,OAAO,cAAc,KAAK,CAAA;AAAA,IAC3B,CAAA,CAAA,MAAQ;AACP,MAAA,OAAO,OAAA;AAAA,IACR;AAAA,EACD,CAAA,EAAG,CAAC,KAAK,CAAC,CAAA;AAEV,EAAA,uBACCD,GAAAA;AAAA,IAAC,KAAA;AAAA,IAAA;AAAA,MACA,EAAA,EAAI,KAAA;AAAA,MACJ,KAAA,EAAO,SAAA;AAAA,MACP,OAAA,EAAQ,MAAA;AAAA,MACR,EAAA,EAAI,CAAA;AAAA,MACJ,iBAAA,EAAmB,CAAA;AAAA,MAElB,QAAA,EAAA;AAAA;AAAA,GACF;AAEF;AAEA,WAAA,CAAY,WAAA,GAAc,aAAA","file":"chunk-GJTQLZ4O.js","sourcesContent":["import { type ButtonProps, Button as ChakraButton } from \"@chakra-ui/react\";\n\nexport type { ButtonProps };\n\nexport const Button = ({\n\tref,\n\t...props\n}: ButtonProps & { ref?: React.Ref<HTMLButtonElement> }) => {\n\treturn (\n\t\t<ChakraButton\n\t\t\tsize=\"md\"\n\t\t\tvariant={\"secondary\" as ButtonProps[\"variant\"]}\n\t\t\tref={ref}\n\t\t\t{...props}\n\t\t/>\n\t);\n};\nButton.displayName = \"Button\";\n","import {\n\tIconButton as ChakraIconButton,\n\ttype IconButtonProps,\n} from \"@chakra-ui/react\";\n\nexport type { IconButtonProps };\n\nexport const IconButton = ({\n\tref,\n\t...props\n}: IconButtonProps & { ref?: React.Ref<HTMLButtonElement> }) => {\n\treturn <ChakraIconButton size=\"md\" variant=\"ghost\" ref={ref} {...props} />;\n};\nIconButton.displayName = \"IconButton\";\n","import dayjs from \"dayjs\";\nimport calendarPlugin from \"dayjs/plugin/calendar.js\";\nimport relativeTime from \"dayjs/plugin/relativeTime.js\";\nimport utcPlugin from \"dayjs/plugin/utc.js\";\n\ndayjs.extend(utcPlugin);\ndayjs.extend(relativeTime);\ndayjs.extend(calendarPlugin);\n\nimport type { DateType } from \"../types\";\n\n/**\n * A function that will return a string with how far a given date is in the past or future,\n * using a baseDate as reference. If the baseDate is not passed, the function will use today as reference.\n *\n * @param date - the date to be formatted\n * @param baseDate - the date that should be used as a reference (default is \"today\")\n * @returns a relative date\n *\n * @example\n * // Considering today as 18.08.2021\n * formatRelativeDateTime('2021-08-17T15:45:00') // returns \"a day ago\"\n *\n * @example\n * formatRelativeDateTime('2021-08-17T15:45:00', '2021-08-16') // returns \"in a day\"\n */\nexport function formatRelativeDateTime(\n\tdate: DateType,\n\tbaseDate: DateType = new Date(),\n) {\n\treturn dayjs(date).from(baseDate);\n}\n\n/**\n * A function that formats a date relative to Today or to the `baseDate` if passed.\n * If the date is not today, it will return a string with \"Yesterday ...\", \"Tomorrow ...\", etc\n * If the date is not in the current week, it return a string with \"DD MMM YYYY\" format\n * If the date is today, it will return a string with \"... ago\" or \"in ...\"\n *\n * @param date - the date to be formatted\n * @param baseDate - the date that should be used as a reference (default is \"today\")\n * @returns a relative date\n *\n * @example\n * // Considering today as 18.08.2021\n * formatRelativeToCurrentWeekDateTime('2021-08-17T15:45:00') // returns \"Yesterday at 3:45 PM\"\n *\n * @example\n * formatRelativeToCurrentWeekDateTime('2021-08-17T15:45:00', '2021-08-16') // returns \"Tomorrow at 3:45 PM\"\n */\nexport function formatRelativeToCurrentWeekDateTime(\n\tdate: DateType,\n\tbaseDate: DateType = new Date(),\n) {\n\tconst isToday = dayjs(date).isSame(baseDate, \"day\");\n\n\tif (!isToday) {\n\t\t// if the date is not today, we display it with \"Yesterday\", \"Tomorrow\", etc.\n\t\t// and if the date is not in the current week then it will display \"17 Aug 2021\"\n\t\treturn dayjs(date).calendar(baseDate, {\n\t\t\tsameElse: \"DD MMM YYYY\",\n\t\t});\n\t}\n\n\t// returns \"... ago\"\n\treturn formatRelativeDateTime(date, baseDate);\n}\n","import { Badge } from \"@chakra-ui/react\";\nimport { readableColor } from \"color2k\";\nimport type React from \"react\";\nimport { useMemo } from \"react\";\n\nexport interface StatusBadgeProps {\n\t/** The display label for the badge */\n\tlabel: string;\n\t/** The background color for the badge (hex format, e.g. \"#ff0000\") */\n\tcolor: string;\n}\n\nexport const StatusBadge: React.FC<StatusBadgeProps> = (props) => {\n\tconst { label, color } = props;\n\n\tconst textColor = useMemo(() => {\n\t\ttry {\n\t\t\treturn readableColor(color);\n\t\t} catch {\n\t\t\treturn \"black\";\n\t\t}\n\t}, [color]);\n\n\treturn (\n\t\t<Badge\n\t\t\tbg={color}\n\t\t\tcolor={textColor}\n\t\t\trounded=\"base\"\n\t\t\tpx={2}\n\t\t\tmarginInlineStart={1}\n\t\t>\n\t\t\t{label}\n\t\t</Badge>\n\t);\n};\n\nStatusBadge.displayName = \"StatusBadge\";\n"]}
|
|
@@ -0,0 +1,108 @@
|
|
|
1
|
+
import { Menu, Portal, AbsoluteCenter, Tooltip as Tooltip$1 } from '@chakra-ui/react';
|
|
2
|
+
import { Check, ChevronRight } from 'lucide-react';
|
|
3
|
+
import { jsx, jsxs } from 'react/jsx-runtime';
|
|
4
|
+
|
|
5
|
+
// src/primitives/menu.tsx
|
|
6
|
+
var MenuContent = function MenuContent2({
|
|
7
|
+
ref,
|
|
8
|
+
...props
|
|
9
|
+
}) {
|
|
10
|
+
const { portalled = true, portalRef, ...rest } = props;
|
|
11
|
+
return /* @__PURE__ */ jsx(Portal, { disabled: !portalled, container: portalRef, children: /* @__PURE__ */ jsx(Menu.Positioner, { children: /* @__PURE__ */ jsx(Menu.Content, { ref, ...rest }) }) });
|
|
12
|
+
};
|
|
13
|
+
MenuContent.displayName = "MenuContent";
|
|
14
|
+
var MenuArrow = function MenuArrow2({
|
|
15
|
+
ref,
|
|
16
|
+
...props
|
|
17
|
+
}) {
|
|
18
|
+
return /* @__PURE__ */ jsx(Menu.Arrow, { ref, ...props, children: /* @__PURE__ */ jsx(Menu.ArrowTip, {}) });
|
|
19
|
+
};
|
|
20
|
+
MenuArrow.displayName = "MenuArrow";
|
|
21
|
+
var MenuCheckboxItem = function MenuCheckboxItem2({
|
|
22
|
+
ref,
|
|
23
|
+
...props
|
|
24
|
+
}) {
|
|
25
|
+
return /* @__PURE__ */ jsxs(Menu.CheckboxItem, { ps: "8", ref, ...props, children: [
|
|
26
|
+
/* @__PURE__ */ jsx(AbsoluteCenter, { axis: "horizontal", insetStart: "4", asChild: true, children: /* @__PURE__ */ jsx(Menu.ItemIndicator, { children: /* @__PURE__ */ jsx(Check, {}) }) }),
|
|
27
|
+
props.children
|
|
28
|
+
] });
|
|
29
|
+
};
|
|
30
|
+
MenuCheckboxItem.displayName = "MenuCheckboxItem";
|
|
31
|
+
var MenuRadioItem = function MenuRadioItem2({
|
|
32
|
+
ref,
|
|
33
|
+
...props
|
|
34
|
+
}) {
|
|
35
|
+
const { children, ...rest } = props;
|
|
36
|
+
return /* @__PURE__ */ jsxs(Menu.RadioItem, { ps: "8", ref, ...rest, children: [
|
|
37
|
+
/* @__PURE__ */ jsx(AbsoluteCenter, { axis: "horizontal", insetStart: "4", asChild: true, children: /* @__PURE__ */ jsx(Menu.ItemIndicator, { children: /* @__PURE__ */ jsx(Check, {}) }) }),
|
|
38
|
+
/* @__PURE__ */ jsx(Menu.ItemText, { children })
|
|
39
|
+
] });
|
|
40
|
+
};
|
|
41
|
+
MenuRadioItem.displayName = "MenuRadioItem";
|
|
42
|
+
var MenuItemGroup = function MenuItemGroup2({
|
|
43
|
+
ref,
|
|
44
|
+
...props
|
|
45
|
+
}) {
|
|
46
|
+
const { title, children, ...rest } = props;
|
|
47
|
+
return /* @__PURE__ */ jsxs(Menu.ItemGroup, { ref, ...rest, children: [
|
|
48
|
+
title && /* @__PURE__ */ jsx(Menu.ItemGroupLabel, { userSelect: "none", children: title }),
|
|
49
|
+
children
|
|
50
|
+
] });
|
|
51
|
+
};
|
|
52
|
+
MenuItemGroup.displayName = "MenuItemGroup";
|
|
53
|
+
var MenuTriggerItem = function MenuTriggerItem2({
|
|
54
|
+
ref,
|
|
55
|
+
...props
|
|
56
|
+
}) {
|
|
57
|
+
const { startIcon, children, ...rest } = props;
|
|
58
|
+
return /* @__PURE__ */ jsxs(Menu.TriggerItem, { ref, ...rest, children: [
|
|
59
|
+
startIcon,
|
|
60
|
+
children,
|
|
61
|
+
/* @__PURE__ */ jsx(ChevronRight, {})
|
|
62
|
+
] });
|
|
63
|
+
};
|
|
64
|
+
MenuTriggerItem.displayName = "MenuTriggerItem";
|
|
65
|
+
var MenuRadioItemGroup = Menu.RadioItemGroup;
|
|
66
|
+
MenuRadioItemGroup.displayName = "MenuRadioItemGroup";
|
|
67
|
+
var MenuContextTrigger = Menu.ContextTrigger;
|
|
68
|
+
MenuContextTrigger.displayName = "MenuContextTrigger";
|
|
69
|
+
var MenuRoot = Menu.Root;
|
|
70
|
+
MenuRoot.displayName = "MenuRoot";
|
|
71
|
+
var MenuSeparator = Menu.Separator;
|
|
72
|
+
MenuSeparator.displayName = "MenuSeparator";
|
|
73
|
+
var MenuItem = Menu.Item;
|
|
74
|
+
MenuItem.displayName = "MenuItem";
|
|
75
|
+
var MenuItemText = Menu.ItemText;
|
|
76
|
+
MenuItemText.displayName = "MenuItemText";
|
|
77
|
+
var MenuItemCommand = Menu.ItemCommand;
|
|
78
|
+
MenuItemCommand.displayName = "MenuItemCommand";
|
|
79
|
+
var MenuTrigger = Menu.Trigger;
|
|
80
|
+
MenuTrigger.displayName = "MenuTrigger";
|
|
81
|
+
var Tooltip = function Tooltip2({
|
|
82
|
+
ref,
|
|
83
|
+
...props
|
|
84
|
+
}) {
|
|
85
|
+
const {
|
|
86
|
+
showArrow,
|
|
87
|
+
children,
|
|
88
|
+
disabled,
|
|
89
|
+
portalled = true,
|
|
90
|
+
content,
|
|
91
|
+
contentProps,
|
|
92
|
+
portalRef,
|
|
93
|
+
...rest
|
|
94
|
+
} = props;
|
|
95
|
+
if (disabled) return children;
|
|
96
|
+
return /* @__PURE__ */ jsxs(Tooltip$1.Root, { ...rest, children: [
|
|
97
|
+
/* @__PURE__ */ jsx(Tooltip$1.Trigger, { asChild: true, children }),
|
|
98
|
+
/* @__PURE__ */ jsx(Portal, { disabled: !portalled, container: portalRef, children: /* @__PURE__ */ jsx(Tooltip$1.Positioner, { children: /* @__PURE__ */ jsxs(Tooltip$1.Content, { ref, ...contentProps, children: [
|
|
99
|
+
showArrow && /* @__PURE__ */ jsx(Tooltip$1.Arrow, { children: /* @__PURE__ */ jsx(Tooltip$1.ArrowTip, {}) }),
|
|
100
|
+
content
|
|
101
|
+
] }) }) })
|
|
102
|
+
] });
|
|
103
|
+
};
|
|
104
|
+
Tooltip.displayName = "Tooltip";
|
|
105
|
+
|
|
106
|
+
export { MenuArrow, MenuCheckboxItem, MenuContent, MenuContextTrigger, MenuItem, MenuItemCommand, MenuItemGroup, MenuItemText, MenuRadioItem, MenuRadioItemGroup, MenuRoot, MenuSeparator, MenuTrigger, MenuTriggerItem, Tooltip };
|
|
107
|
+
//# sourceMappingURL=chunk-NJFF6S77.js.map
|
|
108
|
+
//# sourceMappingURL=chunk-NJFF6S77.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"sources":["../src/primitives/menu.tsx","../src/primitives/tooltip.tsx"],"names":["MenuContent","ChakraMenu","MenuArrow","MenuCheckboxItem","MenuRadioItem","MenuItemGroup","MenuTriggerItem","Tooltip","jsxs","ChakraTooltip","jsx","Portal"],"mappings":"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","file":"chunk-NJFF6S77.js","sourcesContent":["\"use client\";\n\nimport { AbsoluteCenter, Menu as ChakraMenu, Portal } from \"@chakra-ui/react\";\nimport { Check, ChevronRight } from \"lucide-react\";\nimport type * as React from \"react\";\n\ninterface MenuContentProps extends ChakraMenu.ContentProps {\n\t/** Whether to render the menu content inside a portal. @default true */\n\tportalled?: boolean;\n\t/** Container ref for the portal. */\n\tportalRef?: React.RefObject<HTMLElement | null>;\n}\n\nexport const MenuContent = function MenuContent({\n\tref,\n\t...props\n}: MenuContentProps & { ref?: React.Ref<HTMLDivElement> }) {\n\tconst { portalled = true, portalRef, ...rest } = props;\n\treturn (\n\t\t<Portal disabled={!portalled} container={portalRef}>\n\t\t\t<ChakraMenu.Positioner>\n\t\t\t\t<ChakraMenu.Content ref={ref} {...rest} />\n\t\t\t</ChakraMenu.Positioner>\n\t\t</Portal>\n\t);\n};\nMenuContent.displayName = \"MenuContent\";\n\nexport const MenuArrow = function MenuArrow({\n\tref,\n\t...props\n}: ChakraMenu.ArrowProps & { ref?: React.Ref<HTMLDivElement> }) {\n\treturn (\n\t\t<ChakraMenu.Arrow ref={ref} {...props}>\n\t\t\t<ChakraMenu.ArrowTip />\n\t\t</ChakraMenu.Arrow>\n\t);\n};\nMenuArrow.displayName = \"MenuArrow\";\n\nexport const MenuCheckboxItem = function MenuCheckboxItem({\n\tref,\n\t...props\n}: ChakraMenu.CheckboxItemProps & { ref?: React.Ref<HTMLDivElement> }) {\n\treturn (\n\t\t<ChakraMenu.CheckboxItem ps=\"8\" ref={ref} {...props}>\n\t\t\t<AbsoluteCenter axis=\"horizontal\" insetStart=\"4\" asChild>\n\t\t\t\t<ChakraMenu.ItemIndicator>\n\t\t\t\t\t<Check />\n\t\t\t\t</ChakraMenu.ItemIndicator>\n\t\t\t</AbsoluteCenter>\n\t\t\t{props.children}\n\t\t</ChakraMenu.CheckboxItem>\n\t);\n};\nMenuCheckboxItem.displayName = \"MenuCheckboxItem\";\n\nexport const MenuRadioItem = function MenuRadioItem({\n\tref,\n\t...props\n}: ChakraMenu.RadioItemProps & { ref?: React.Ref<HTMLDivElement> }) {\n\tconst { children, ...rest } = props;\n\treturn (\n\t\t<ChakraMenu.RadioItem ps=\"8\" ref={ref} {...rest}>\n\t\t\t<AbsoluteCenter axis=\"horizontal\" insetStart=\"4\" asChild>\n\t\t\t\t<ChakraMenu.ItemIndicator>\n\t\t\t\t\t<Check />\n\t\t\t\t</ChakraMenu.ItemIndicator>\n\t\t\t</AbsoluteCenter>\n\t\t\t<ChakraMenu.ItemText>{children}</ChakraMenu.ItemText>\n\t\t</ChakraMenu.RadioItem>\n\t);\n};\nMenuRadioItem.displayName = \"MenuRadioItem\";\n\nexport const MenuItemGroup = function MenuItemGroup({\n\tref,\n\t...props\n}: ChakraMenu.ItemGroupProps & { ref?: React.Ref<HTMLDivElement> }) {\n\tconst { title, children, ...rest } = props;\n\treturn (\n\t\t<ChakraMenu.ItemGroup ref={ref} {...rest}>\n\t\t\t{title && (\n\t\t\t\t<ChakraMenu.ItemGroupLabel userSelect=\"none\">\n\t\t\t\t\t{title}\n\t\t\t\t</ChakraMenu.ItemGroupLabel>\n\t\t\t)}\n\t\t\t{children}\n\t\t</ChakraMenu.ItemGroup>\n\t);\n};\nMenuItemGroup.displayName = \"MenuItemGroup\";\n\nexport interface MenuTriggerItemProps extends ChakraMenu.ItemProps {\n\t/** Icon rendered before the trigger item label. */\n\tstartIcon?: React.ReactNode;\n}\n\nexport const MenuTriggerItem = function MenuTriggerItem({\n\tref,\n\t...props\n}: MenuTriggerItemProps & { ref?: React.Ref<HTMLDivElement> }) {\n\tconst { startIcon, children, ...rest } = props;\n\treturn (\n\t\t<ChakraMenu.TriggerItem ref={ref} {...rest}>\n\t\t\t{startIcon}\n\t\t\t{children}\n\t\t\t<ChevronRight />\n\t\t</ChakraMenu.TriggerItem>\n\t);\n};\nMenuTriggerItem.displayName = \"MenuTriggerItem\";\n\nexport const MenuRadioItemGroup = ChakraMenu.RadioItemGroup;\nMenuRadioItemGroup.displayName = \"MenuRadioItemGroup\";\nexport const MenuContextTrigger = ChakraMenu.ContextTrigger;\nMenuContextTrigger.displayName = \"MenuContextTrigger\";\nexport const MenuRoot = ChakraMenu.Root;\nMenuRoot.displayName = \"MenuRoot\";\nexport const MenuSeparator = ChakraMenu.Separator;\nMenuSeparator.displayName = \"MenuSeparator\";\n\nexport const MenuItem = ChakraMenu.Item;\nMenuItem.displayName = \"MenuItem\";\nexport const MenuItemText = ChakraMenu.ItemText;\nMenuItemText.displayName = \"MenuItemText\";\nexport const MenuItemCommand = ChakraMenu.ItemCommand;\nMenuItemCommand.displayName = \"MenuItemCommand\";\nexport const MenuTrigger = ChakraMenu.Trigger;\nMenuTrigger.displayName = \"MenuTrigger\";\n","import { Tooltip as ChakraTooltip, Portal } from \"@chakra-ui/react\";\nimport type * as React from \"react\";\n\nexport interface TooltipProps extends ChakraTooltip.RootProps {\n\tshowArrow?: boolean;\n\tportalled?: boolean;\n\tportalRef?: React.RefObject<HTMLElement | null>;\n\tcontent: React.ReactNode;\n\tcontentProps?: ChakraTooltip.ContentProps;\n\tdisabled?: boolean;\n}\n\nexport const Tooltip = function Tooltip({\n\tref,\n\t...props\n}: TooltipProps & { ref?: React.Ref<HTMLDivElement> }) {\n\tconst {\n\t\tshowArrow,\n\t\tchildren,\n\t\tdisabled,\n\t\tportalled = true,\n\t\tcontent,\n\t\tcontentProps,\n\t\tportalRef,\n\t\t...rest\n\t} = props;\n\n\tif (disabled) return children;\n\n\treturn (\n\t\t<ChakraTooltip.Root {...rest}>\n\t\t\t<ChakraTooltip.Trigger asChild>{children}</ChakraTooltip.Trigger>\n\t\t\t<Portal disabled={!portalled} container={portalRef}>\n\t\t\t\t<ChakraTooltip.Positioner>\n\t\t\t\t\t<ChakraTooltip.Content ref={ref} {...contentProps}>\n\t\t\t\t\t\t{showArrow && (\n\t\t\t\t\t\t\t<ChakraTooltip.Arrow>\n\t\t\t\t\t\t\t\t<ChakraTooltip.ArrowTip />\n\t\t\t\t\t\t\t</ChakraTooltip.Arrow>\n\t\t\t\t\t\t)}\n\t\t\t\t\t\t{content}\n\t\t\t\t\t</ChakraTooltip.Content>\n\t\t\t\t</ChakraTooltip.Positioner>\n\t\t\t</Portal>\n\t\t</ChakraTooltip.Root>\n\t);\n};\nTooltip.displayName = \"Tooltip\";\n"]}
|
|
@@ -0,0 +1,36 @@
|
|
|
1
|
+
import { AvatarGroup as AvatarGroup$1, Avatar as Avatar$1, useRecipe, chakra, Spinner as Spinner$1 } from '@chakra-ui/react';
|
|
2
|
+
import { jsxs, jsx } from 'react/jsx-runtime';
|
|
3
|
+
|
|
4
|
+
// src/primitives/avatar.tsx
|
|
5
|
+
var Avatar = function Avatar2({
|
|
6
|
+
ref,
|
|
7
|
+
...props
|
|
8
|
+
}) {
|
|
9
|
+
const { name, src, srcSet, loading, icon, fallback, children, ...rest } = props;
|
|
10
|
+
return /* @__PURE__ */ jsxs(Avatar$1.Root, { ref, ...rest, children: [
|
|
11
|
+
/* @__PURE__ */ jsx(Avatar$1.Fallback, { name, children: icon || fallback }),
|
|
12
|
+
/* @__PURE__ */ jsx(Avatar$1.Image, { src, srcSet, loading }),
|
|
13
|
+
children
|
|
14
|
+
] });
|
|
15
|
+
};
|
|
16
|
+
Avatar.displayName = "Avatar";
|
|
17
|
+
var AvatarGroup = AvatarGroup$1;
|
|
18
|
+
AvatarGroup.displayName = "AvatarGroup";
|
|
19
|
+
var Prose = ({
|
|
20
|
+
ref,
|
|
21
|
+
size,
|
|
22
|
+
...props
|
|
23
|
+
}) => {
|
|
24
|
+
const recipe = useRecipe({ key: "prose" });
|
|
25
|
+
const styles = recipe({ size });
|
|
26
|
+
return /* @__PURE__ */ jsx(chakra.div, { ref, css: styles, ...props });
|
|
27
|
+
};
|
|
28
|
+
Prose.displayName = "Prose";
|
|
29
|
+
var Spinner = (props) => {
|
|
30
|
+
return /* @__PURE__ */ jsx(Spinner$1, { ...props });
|
|
31
|
+
};
|
|
32
|
+
Spinner.displayName = "Spinner";
|
|
33
|
+
|
|
34
|
+
export { Avatar, AvatarGroup, Prose, Spinner };
|
|
35
|
+
//# sourceMappingURL=chunk-QU3FF5WI.js.map
|
|
36
|
+
//# sourceMappingURL=chunk-QU3FF5WI.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"sources":["../src/primitives/avatar.tsx","../src/primitives/prose.tsx","../src/primitives/spinner.tsx"],"names":["Avatar","ChakraAvatar","ChakraAvatarGroup","jsx","ChakraSpinner"],"mappings":";;;;AAuBO,IAAM,MAAA,GAAS,SAASA,OAAAA,CAAO;AAAA,EACrC,GAAA;AAAA,EACA,GAAG;AACJ,CAAA,EAAsD;AACrD,EAAA,MAAM,EAAE,IAAA,EAAM,GAAA,EAAK,MAAA,EAAQ,OAAA,EAAS,MAAM,QAAA,EAAU,QAAA,EAAU,GAAG,IAAA,EAAK,GACrE,KAAA;AACD,EAAA,4BACEC,QAAA,CAAa,IAAA,EAAb,EAAkB,GAAA,EAAW,GAAG,IAAA,EAChC,QAAA,EAAA;AAAA,oBAAA,GAAA,CAACA,QAAA,CAAa,QAAA,EAAb,EAAsB,IAAA,EACrB,kBAAQ,QAAA,EACV,CAAA;AAAA,wBACCA,QAAA,CAAa,KAAA,EAAb,EAAmB,GAAA,EAAU,QAAgB,OAAA,EAAkB,CAAA;AAAA,IAC/D;AAAA,GAAA,EACF,CAAA;AAEF;AACA,MAAA,CAAO,WAAA,GAAc,QAAA;AAEd,IAAM,WAAA,GAAcC;AAC3B,WAAA,CAAY,WAAA,GAAc,aAAA;ACnCnB,IAAM,QAAQ,CAAC;AAAA,EACrB,GAAA;AAAA,EACA,IAAA;AAAA,EACA,GAAG;AACJ,CAAA,KAAwD;AACvD,EAAA,MAAM,MAAA,GAAS,SAAA,CAAU,EAAE,GAAA,EAAK,SAAS,CAAA;AACzC,EAAA,MAAM,MAAA,GAAS,MAAA,CAAO,EAAE,IAAA,EAAM,CAAA;AAC9B,EAAA,uBAAOC,IAAC,MAAA,CAAO,GAAA,EAAP,EAAW,GAAA,EAAU,GAAA,EAAK,MAAA,EAAS,GAAG,KAAA,EAAO,CAAA;AACtD;AACA,KAAA,CAAM,WAAA,GAAc,OAAA;ACRb,IAAM,OAAA,GAAkC,CAAC,KAAA,KAAU;AACzD,EAAA,uBAAOA,GAAAA,CAACC,SAAA,EAAA,EAAe,GAAG,KAAA,EAAO,CAAA;AAClC;AACA,OAAA,CAAQ,WAAA,GAAc,SAAA","file":"chunk-QU3FF5WI.js","sourcesContent":["import {\n\tAvatar as ChakraAvatar,\n\tAvatarGroup as ChakraAvatarGroup,\n} from \"@chakra-ui/react\";\nimport type * as React from \"react\";\n\ntype ImageProps = React.ImgHTMLAttributes<HTMLImageElement>;\n\nexport interface AvatarProps extends ChakraAvatar.RootProps {\n\t/** Display name used to generate initials for the fallback. */\n\tname?: string;\n\t/** Image source URL. */\n\tsrc?: string;\n\t/** Image srcSet attribute for responsive images. */\n\tsrcSet?: string;\n\t/** Image loading strategy. */\n\tloading?: ImageProps[\"loading\"];\n\t/** Custom icon element shown as fallback. */\n\ticon?: React.ReactElement;\n\t/** Custom fallback content when no image or icon is provided. */\n\tfallback?: React.ReactNode;\n}\n\nexport const Avatar = function Avatar({\n\tref,\n\t...props\n}: AvatarProps & { ref?: React.Ref<HTMLDivElement> }) {\n\tconst { name, src, srcSet, loading, icon, fallback, children, ...rest } =\n\t\tprops;\n\treturn (\n\t\t<ChakraAvatar.Root ref={ref} {...rest}>\n\t\t\t<ChakraAvatar.Fallback name={name}>\n\t\t\t\t{icon || fallback}\n\t\t\t</ChakraAvatar.Fallback>\n\t\t\t<ChakraAvatar.Image src={src} srcSet={srcSet} loading={loading} />\n\t\t\t{children}\n\t\t</ChakraAvatar.Root>\n\t);\n};\nAvatar.displayName = \"Avatar\";\n\nexport const AvatarGroup = ChakraAvatarGroup;\nAvatarGroup.displayName = \"AvatarGroup\";\n","import { chakra, type HTMLChakraProps, useRecipe } from \"@chakra-ui/react\";\nimport type React from \"react\";\n\nexport interface ProseProps extends HTMLChakraProps<\"div\"> {\n\tsize?: \"md\" | \"lg\";\n}\n\nexport const Prose = ({\n\tref,\n\tsize,\n\t...props\n}: ProseProps & { ref?: React.Ref<HTMLDivElement> }) => {\n\tconst recipe = useRecipe({ key: \"prose\" });\n\tconst styles = recipe({ size });\n\treturn <chakra.div ref={ref} css={styles} {...props} />;\n};\nProse.displayName = \"Prose\";\n","import {\n\tSpinner as ChakraSpinner,\n\ttype SpinnerProps as ChakraSpinnerProps,\n} from \"@chakra-ui/react\";\nimport type React from \"react\";\n\nexport type SpinnerProps = ChakraSpinnerProps;\n\nexport const Spinner: React.FC<SpinnerProps> = (props) => {\n\treturn <ChakraSpinner {...props} />;\n};\nSpinner.displayName = \"Spinner\";\n"]}
|