@kollegioai/ui 0.1.0 → 0.1.1
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/Button.d.mts +38 -0
- package/dist/Button.d.ts +38 -0
- package/dist/Button.js +18 -0
- package/dist/Button.js.map +1 -0
- package/dist/Button.mjs +3 -0
- package/dist/Button.mjs.map +1 -0
- package/dist/EllipsisMenu.d.mts +16 -0
- package/dist/EllipsisMenu.d.ts +16 -0
- package/dist/EllipsisMenu.js +22 -0
- package/dist/EllipsisMenu.js.map +1 -0
- package/dist/EllipsisMenu.mjs +3 -0
- package/dist/EllipsisMenu.mjs.map +1 -0
- package/dist/Tooltip.d.mts +48 -0
- package/dist/Tooltip.d.ts +48 -0
- package/dist/Tooltip.js +22 -0
- package/dist/Tooltip.js.map +1 -0
- package/dist/Tooltip.mjs +3 -0
- package/dist/Tooltip.mjs.map +1 -0
- package/dist/chunk-55KQFLN6.js +123 -0
- package/dist/chunk-55KQFLN6.js.map +1 -0
- package/dist/chunk-EBQK5NBX.js +213 -0
- package/dist/chunk-EBQK5NBX.js.map +1 -0
- package/dist/chunk-Q4T6BIJ6.js +184 -0
- package/dist/chunk-Q4T6BIJ6.js.map +1 -0
- package/dist/chunk-RFUSESWB.mjs +186 -0
- package/dist/chunk-RFUSESWB.mjs.map +1 -0
- package/dist/chunk-RYGUHPYX.mjs +181 -0
- package/dist/chunk-RYGUHPYX.mjs.map +1 -0
- package/dist/chunk-XVEIQDTK.mjs +119 -0
- package/dist/chunk-XVEIQDTK.mjs.map +1 -0
- package/dist/index.d.mts +6 -94
- package/dist/index.d.ts +6 -94
- package/dist/index.js +28 -516
- package/dist/index.js.map +1 -1
- package/dist/index.mjs +4 -486
- package/dist/index.mjs.map +1 -1
- package/package.json +19 -2
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"sources":["../src/Button.tsx"],"names":["Button","ChakraButton"],"mappings":"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","file":"chunk-RYGUHPYX.mjs","sourcesContent":["import { Button as ChakraButton, type ButtonProps } from '@chakra-ui/react';\nimport { forwardRef, useRef, type MouseEvent, type ReactNode } from 'react';\n\n/**\n * Variant set merged from both product apps:\n * - client-src: primary, primaryStrong, accent, outline, secondary, ghost, oauth, logOut\n * - counsellor: tertiary, light (its \"secondary\" mapped to `outline`)\n *\n * Components reference kollegio token NAMES (e.g. `backgroundPrimary`). The consuming\n * app's Chakra `createSystem` must include the @kollegioai/tokens colors.\n */\nexport type KollegioButtonVariant =\n | 'primary'\n | 'primaryStrong'\n | 'accent'\n | 'outline'\n | 'secondary'\n | 'tertiary'\n | 'light'\n | 'ghost'\n | 'oauth'\n | 'logOut';\n\nexport type KollegioButtonSize = 'sm' | 'md' | 'lg';\n\nconst VARIANT_STYLES: Record<KollegioButtonVariant, ButtonProps> = {\n primary: {\n bg: 'backgroundPrimary',\n color: 'white',\n border: '1px solid',\n borderColor: 'borderBrandOpacity30',\n _hover: { bg: 'backgroundPrimarySubtle' },\n },\n primaryStrong: {\n bg: 'contentPrimaryStrong',\n color: 'white',\n border: '1px solid',\n borderColor: 'borderBrandOpacity30',\n _hover: { bg: 'backgroundPrimarySubtle' },\n _active: { bg: 'backgroundPrimarySubtle' },\n },\n accent: {\n bg: 'backgroundAIAccent',\n color: 'white',\n border: '1px solid',\n borderColor: 'borderBrandOpacity30',\n _hover: { bg: 'backgroundAIAccent', opacity: 0.65 },\n },\n outline: {\n bg: 'white',\n border: '1px solid',\n borderColor: 'borderBrand',\n color: 'contentPrimaryStrong',\n _hover: { bg: 'white', borderColor: 'borderBrand' },\n },\n secondary: {\n bg: 'backgroundSuccessAccent',\n color: 'contentPrimaryStrong',\n border: '1px solid',\n borderColor: 'borderBrandOpacity30',\n _hover: { bg: 'backgroundBase3' },\n },\n tertiary: {\n display: 'flex',\n gap: '16px',\n alignItems: 'center',\n border: 'none',\n background: 'none',\n padding: 'unset',\n color: 'contentPrimarySubtle',\n fontSize: '14px',\n _hover: { border: 'none', background: 'none', textDecoration: 'underline' },\n },\n light: {\n color: 'contentPrimary',\n background: 'white',\n border: '1px solid',\n borderColor: 'borderSecondary',\n _hover: { background: 'gray.50', borderColor: 'borderSecondary' },\n },\n ghost: {\n bg: 'transparent',\n color: 'contentPrimaryStrong',\n border: 'none',\n boxShadow: 'none',\n _hover: { bg: 'transparent' },\n },\n oauth: {\n bg: 'white',\n color: 'primaryDark',\n border: '1px solid',\n borderColor: 'borderSecondary',\n borderRadius: '8px',\n _hover: { borderColor: 'borderBrand' },\n },\n logOut: {\n border: '1px solid',\n borderRadius: 'xl',\n borderColor: 'black',\n color: 'black',\n bg: 'backgroundBase2',\n _hover: { bg: '#FFE6E4' },\n },\n};\n\nconst SIZE_STYLES: Record<KollegioButtonSize, ButtonProps> = {\n sm: {\n h: '26px',\n minH: '26px',\n px: '10px',\n fontSize: '12px',\n lineHeight: '150%',\n borderRadius: '6px',\n },\n md: {\n h: 'auto',\n minH: 'unset',\n py: '8px',\n px: '12px',\n fontSize: '14px',\n lineHeight: '140%',\n borderRadius: '4px',\n },\n lg: {\n h: '40px',\n minH: '40px',\n py: '12px',\n px: '12px',\n fontSize: '14px',\n lineHeight: '140%',\n borderRadius: '8px',\n },\n};\n\nexport type KollegioButtonProps = Omit<ButtonProps, 'variant'> & {\n variant?: KollegioButtonVariant;\n /** Kollegio sizing preset — not Chakra's `size` prop. */\n buttonSize?: KollegioButtonSize;\n fullWidth?: boolean;\n isLoading?: boolean;\n leftIcon?: ReactNode;\n rightIcon?: ReactNode;\n /** iOS Safari: fire on touchend so fixed/mobile CTAs respond reliably. */\n enableTouchEndClickFix?: boolean;\n};\n\nexport const Button = forwardRef<HTMLButtonElement, KollegioButtonProps>(function Button(\n {\n variant = 'primary',\n buttonSize,\n fullWidth,\n isLoading,\n leftIcon,\n rightIcon,\n children,\n display,\n alignItems,\n gap,\n flexShrink,\n w,\n width,\n enableTouchEndClickFix = false,\n disabled,\n onClick,\n onTouchEnd,\n ...rest\n },\n ref,\n) {\n const hasIcons = Boolean(leftIcon || rightIcon);\n const didFireTouchRef = useRef(false);\n const resolvedButtonSize = buttonSize ?? (variant === 'oauth' ? undefined : 'md');\n\n const handleTouchEnd: ButtonProps['onTouchEnd'] = enableTouchEndClickFix\n ? (e) => {\n onTouchEnd?.(e);\n if (disabled) return;\n e.preventDefault();\n didFireTouchRef.current = true;\n onClick?.(e as unknown as MouseEvent<HTMLButtonElement>);\n }\n : onTouchEnd;\n\n const handleClick: ButtonProps['onClick'] = (e) => {\n if (enableTouchEndClickFix && didFireTouchRef.current) {\n didFireTouchRef.current = false;\n return;\n }\n onClick?.(e);\n };\n\n return (\n <ChakraButton\n ref={ref}\n type=\"button\"\n variant=\"solid\"\n loading={isLoading}\n disabled={disabled}\n onClick={handleClick}\n onTouchEnd={handleTouchEnd}\n display={display ?? (hasIcons ? 'inline-flex' : undefined)}\n alignItems={alignItems ?? (hasIcons ? 'center' : undefined)}\n gap={gap ?? (hasIcons ? '4px' : undefined)}\n flexShrink={flexShrink ?? 0}\n w={w ?? width ?? (fullWidth ? 'full' : undefined)}\n width={width ?? (fullWidth && w == null ? 'full' : undefined)}\n {...VARIANT_STYLES[variant]}\n {...(resolvedButtonSize ? SIZE_STYLES[resolvedButtonSize] : {})}\n {...rest}\n >\n {leftIcon}\n {children}\n {rightIcon}\n </ChakraButton>\n );\n});\n\nexport default Button;\n"]}
|
|
@@ -0,0 +1,119 @@
|
|
|
1
|
+
import { Box, VStack, Text, Spinner } from '@chakra-ui/react';
|
|
2
|
+
import { useState, useRef, useEffect, Children, isValidElement, cloneElement } from 'react';
|
|
3
|
+
import { jsxs, jsx } from 'react/jsx-runtime';
|
|
4
|
+
|
|
5
|
+
// src/EllipsisMenu.tsx
|
|
6
|
+
var DotsVerticalIcon = ({ size = 20 }) => /* @__PURE__ */ jsx("svg", { width: size, height: size, viewBox: "0 0 20 20", fill: "none", xmlns: "http://www.w3.org/2000/svg", children: /* @__PURE__ */ jsx(
|
|
7
|
+
"path",
|
|
8
|
+
{
|
|
9
|
+
d: "M10 10.833a.833.833 0 100-1.666.833.833 0 000 1.666zM10 5a.833.833 0 100-1.667A.833.833 0 0010 5zM10 16.667A.833.833 0 1010 15a.833.833 0 000 1.667z",
|
|
10
|
+
stroke: "currentColor",
|
|
11
|
+
strokeWidth: "1.667",
|
|
12
|
+
strokeLinecap: "round",
|
|
13
|
+
strokeLinejoin: "round"
|
|
14
|
+
}
|
|
15
|
+
) });
|
|
16
|
+
var EllipsisMenu = ({ children }) => {
|
|
17
|
+
const [showDropdown, setShowDropdown] = useState(false);
|
|
18
|
+
const menuRef = useRef(null);
|
|
19
|
+
useEffect(() => {
|
|
20
|
+
const handleClickOutside = (event) => {
|
|
21
|
+
if (menuRef.current && !menuRef.current.contains(event.target)) {
|
|
22
|
+
setShowDropdown(false);
|
|
23
|
+
}
|
|
24
|
+
};
|
|
25
|
+
if (showDropdown) {
|
|
26
|
+
document.addEventListener("mousedown", handleClickOutside);
|
|
27
|
+
} else {
|
|
28
|
+
document.removeEventListener("mousedown", handleClickOutside);
|
|
29
|
+
}
|
|
30
|
+
return () => {
|
|
31
|
+
document.removeEventListener("mousedown", handleClickOutside);
|
|
32
|
+
};
|
|
33
|
+
}, [showDropdown]);
|
|
34
|
+
return /* @__PURE__ */ jsxs(Box, { position: "relative", ref: menuRef, children: [
|
|
35
|
+
/* @__PURE__ */ jsx(
|
|
36
|
+
Box,
|
|
37
|
+
{
|
|
38
|
+
padding: "2px",
|
|
39
|
+
tabIndex: 0,
|
|
40
|
+
color: "contentPrimaryStrong",
|
|
41
|
+
onKeyDown: (e) => {
|
|
42
|
+
e.stopPropagation();
|
|
43
|
+
},
|
|
44
|
+
onClick: (event) => {
|
|
45
|
+
event.stopPropagation();
|
|
46
|
+
setShowDropdown(true);
|
|
47
|
+
},
|
|
48
|
+
children: /* @__PURE__ */ jsx(DotsVerticalIcon, {})
|
|
49
|
+
}
|
|
50
|
+
),
|
|
51
|
+
showDropdown && /* @__PURE__ */ jsx(
|
|
52
|
+
VStack,
|
|
53
|
+
{
|
|
54
|
+
position: "absolute",
|
|
55
|
+
right: "10px",
|
|
56
|
+
top: "5px",
|
|
57
|
+
bg: "white",
|
|
58
|
+
rounded: "8px",
|
|
59
|
+
border: "1px solid",
|
|
60
|
+
borderColor: "borderSecondary",
|
|
61
|
+
zIndex: "10",
|
|
62
|
+
boxShadow: "0px 4px 4px rgba(0, 0, 0, 0.05)",
|
|
63
|
+
width: "216px",
|
|
64
|
+
gap: 0,
|
|
65
|
+
overflow: "scroll",
|
|
66
|
+
css: {
|
|
67
|
+
"&::-webkit-scrollbar": { display: "none" },
|
|
68
|
+
scrollbarWidth: "none",
|
|
69
|
+
msOverflowStyle: "none"
|
|
70
|
+
},
|
|
71
|
+
children: Children.map(children, (child) => {
|
|
72
|
+
if (!isValidElement(child)) {
|
|
73
|
+
return child;
|
|
74
|
+
}
|
|
75
|
+
const originalOnClick = child.props.onClick;
|
|
76
|
+
const handleClick = () => {
|
|
77
|
+
setShowDropdown(false);
|
|
78
|
+
if (typeof originalOnClick === "function") {
|
|
79
|
+
originalOnClick();
|
|
80
|
+
}
|
|
81
|
+
};
|
|
82
|
+
return cloneElement(child, {
|
|
83
|
+
onClick: handleClick
|
|
84
|
+
});
|
|
85
|
+
})
|
|
86
|
+
}
|
|
87
|
+
)
|
|
88
|
+
] });
|
|
89
|
+
};
|
|
90
|
+
var EllipsisMenuOption = ({
|
|
91
|
+
text,
|
|
92
|
+
onClick,
|
|
93
|
+
color = "contentPrimaryStrong",
|
|
94
|
+
loading = false
|
|
95
|
+
}) => {
|
|
96
|
+
return /* @__PURE__ */ jsxs(Box, { display: "flex", justifyContent: "space-between", width: "100%", _hover: { background: "backgroundBase1" }, children: [
|
|
97
|
+
/* @__PURE__ */ jsx(
|
|
98
|
+
Text,
|
|
99
|
+
{
|
|
100
|
+
tabIndex: 0,
|
|
101
|
+
fontSize: "14px",
|
|
102
|
+
color: loading ? "contentPrimarySubtle" : color,
|
|
103
|
+
cursor: loading ? "not-allowed" : "pointer",
|
|
104
|
+
width: "full",
|
|
105
|
+
onClick,
|
|
106
|
+
textAlign: "start",
|
|
107
|
+
px: 2,
|
|
108
|
+
py: 1.5,
|
|
109
|
+
children: text
|
|
110
|
+
}
|
|
111
|
+
),
|
|
112
|
+
loading && /* @__PURE__ */ jsx(Spinner, { size: "sm", color: "contentPrimarySubtle", alignSelf: "center", mr: 2 })
|
|
113
|
+
] });
|
|
114
|
+
};
|
|
115
|
+
var EllipsisMenu_default = EllipsisMenu;
|
|
116
|
+
|
|
117
|
+
export { EllipsisMenu, EllipsisMenuOption, EllipsisMenu_default };
|
|
118
|
+
//# sourceMappingURL=chunk-XVEIQDTK.mjs.map
|
|
119
|
+
//# sourceMappingURL=chunk-XVEIQDTK.mjs.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"sources":["../src/EllipsisMenu.tsx"],"names":[],"mappings":"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","file":"chunk-XVEIQDTK.mjs","sourcesContent":["import { Box, Spinner, Text, VStack } from '@chakra-ui/react';\nimport {\n Children,\n cloneElement,\n isValidElement,\n useEffect,\n useRef,\n useState,\n type ReactElement,\n type ReactNode,\n} from 'react';\n\nconst DotsVerticalIcon = ({ size = 20 }: { size?: number }) => (\n <svg width={size} height={size} viewBox=\"0 0 20 20\" fill=\"none\" xmlns=\"http://www.w3.org/2000/svg\">\n <path\n d=\"M10 10.833a.833.833 0 100-1.666.833.833 0 000 1.666zM10 5a.833.833 0 100-1.667A.833.833 0 0010 5zM10 16.667A.833.833 0 1010 15a.833.833 0 000 1.667z\"\n stroke=\"currentColor\"\n strokeWidth=\"1.667\"\n strokeLinecap=\"round\"\n strokeLinejoin=\"round\"\n />\n </svg>\n);\n\ninterface EllipsisMenuProps {\n children: ReactNode;\n}\n\ninterface EllipsisMenuOptionProps {\n text: string;\n onClick: () => void;\n color?: string;\n loading?: boolean;\n}\n\nexport const EllipsisMenu = ({ children }: EllipsisMenuProps) => {\n const [showDropdown, setShowDropdown] = useState(false);\n const menuRef = useRef<HTMLDivElement>(null);\n\n useEffect(() => {\n const handleClickOutside = (event: MouseEvent) => {\n if (menuRef.current && !menuRef.current.contains(event.target as Node)) {\n setShowDropdown(false);\n }\n };\n\n if (showDropdown) {\n document.addEventListener('mousedown', handleClickOutside);\n } else {\n document.removeEventListener('mousedown', handleClickOutside);\n }\n\n return () => {\n document.removeEventListener('mousedown', handleClickOutside);\n };\n }, [showDropdown]);\n\n return (\n <Box position={'relative'} ref={menuRef}>\n <Box\n padding={'2px'}\n tabIndex={0}\n color=\"contentPrimaryStrong\"\n onKeyDown={(e) => {\n e.stopPropagation();\n }}\n onClick={(event) => {\n event.stopPropagation(); // Prevents parent click event\n setShowDropdown(true);\n }}\n >\n <DotsVerticalIcon />\n </Box>\n {showDropdown && (\n <VStack\n position=\"absolute\"\n right=\"10px\"\n top=\"5px\"\n bg=\"white\"\n rounded=\"8px\"\n border=\"1px solid\"\n borderColor={'borderSecondary'}\n zIndex=\"10\"\n boxShadow=\"0px 4px 4px rgba(0, 0, 0, 0.05)\"\n width={'216px'}\n gap={0}\n overflow={'scroll'}\n css={{\n '&::-webkit-scrollbar': { display: 'none' },\n scrollbarWidth: 'none',\n msOverflowStyle: 'none',\n }}\n >\n {Children.map(children, (child) => {\n if (!isValidElement(child)) {\n return child;\n }\n\n const originalOnClick = (child.props as { onClick?: () => void }).onClick;\n\n const handleClick = () => {\n setShowDropdown(false);\n if (typeof originalOnClick === 'function') {\n originalOnClick();\n }\n };\n\n return cloneElement(child as ReactElement<{ onClick?: () => void }>, {\n onClick: handleClick,\n });\n })}\n </VStack>\n )}\n </Box>\n );\n};\n\nexport const EllipsisMenuOption = ({\n text,\n onClick,\n color = 'contentPrimaryStrong',\n loading = false,\n}: EllipsisMenuOptionProps) => {\n return (\n <Box display={'flex'} justifyContent={'space-between'} width={'100%'} _hover={{ background: 'backgroundBase1' }}>\n <Text\n tabIndex={0}\n fontSize=\"14px\"\n color={loading ? 'contentPrimarySubtle' : color}\n cursor={loading ? 'not-allowed' : 'pointer'}\n width={'full'}\n onClick={onClick}\n textAlign={'start'}\n px={2}\n py={1.5}\n >\n {text}\n </Text>\n {loading && <Spinner size=\"sm\" color=\"contentPrimarySubtle\" alignSelf=\"center\" mr={2} />}\n </Box>\n );\n};\n\nexport default EllipsisMenu;\n"]}
|
package/dist/index.d.mts
CHANGED
|
@@ -1,94 +1,6 @@
|
|
|
1
|
-
|
|
2
|
-
|
|
3
|
-
|
|
4
|
-
import
|
|
5
|
-
|
|
6
|
-
|
|
7
|
-
* Variant set merged from both product apps:
|
|
8
|
-
* - client-src: primary, primaryStrong, accent, outline, secondary, ghost, oauth, logOut
|
|
9
|
-
* - counsellor: tertiary, light (its "secondary" mapped to `outline`)
|
|
10
|
-
*
|
|
11
|
-
* Components reference kollegio token NAMES (e.g. `backgroundPrimary`). The consuming
|
|
12
|
-
* app's Chakra `createSystem` must include the @kollegioai/tokens colors.
|
|
13
|
-
*/
|
|
14
|
-
type KollegioButtonVariant = 'primary' | 'primaryStrong' | 'accent' | 'outline' | 'secondary' | 'tertiary' | 'light' | 'ghost' | 'oauth' | 'logOut';
|
|
15
|
-
type KollegioButtonSize = 'sm' | 'md' | 'lg';
|
|
16
|
-
type KollegioButtonProps = Omit<ButtonProps, 'variant'> & {
|
|
17
|
-
variant?: KollegioButtonVariant;
|
|
18
|
-
/** Kollegio sizing preset — not Chakra's `size` prop. */
|
|
19
|
-
buttonSize?: KollegioButtonSize;
|
|
20
|
-
fullWidth?: boolean;
|
|
21
|
-
isLoading?: boolean;
|
|
22
|
-
leftIcon?: ReactNode;
|
|
23
|
-
rightIcon?: ReactNode;
|
|
24
|
-
/** iOS Safari: fire on touchend so fixed/mobile CTAs respond reliably. */
|
|
25
|
-
enableTouchEndClickFix?: boolean;
|
|
26
|
-
};
|
|
27
|
-
declare const Button: React.ForwardRefExoticComponent<Omit<ButtonProps, "variant"> & {
|
|
28
|
-
variant?: KollegioButtonVariant;
|
|
29
|
-
/** Kollegio sizing preset — not Chakra's `size` prop. */
|
|
30
|
-
buttonSize?: KollegioButtonSize;
|
|
31
|
-
fullWidth?: boolean;
|
|
32
|
-
isLoading?: boolean;
|
|
33
|
-
leftIcon?: ReactNode;
|
|
34
|
-
rightIcon?: ReactNode;
|
|
35
|
-
/** iOS Safari: fire on touchend so fixed/mobile CTAs respond reliably. */
|
|
36
|
-
enableTouchEndClickFix?: boolean;
|
|
37
|
-
} & React.RefAttributes<HTMLButtonElement>>;
|
|
38
|
-
|
|
39
|
-
type TooltipPositioning = NonNullable<Tooltip$1.RootProps['positioning']>;
|
|
40
|
-
type TooltipPlacement = TooltipPositioning['placement'];
|
|
41
|
-
type TooltipOffset = TooltipPositioning['offset'];
|
|
42
|
-
interface TooltipProps extends Omit<Tooltip$1.RootProps, 'children' | 'open'> {
|
|
43
|
-
children: React.ReactNode;
|
|
44
|
-
showArrow?: boolean;
|
|
45
|
-
hasArrow?: boolean;
|
|
46
|
-
portalled?: boolean;
|
|
47
|
-
portalRef?: React.RefObject<HTMLElement | null>;
|
|
48
|
-
content?: React.ReactNode;
|
|
49
|
-
label?: React.ReactNode;
|
|
50
|
-
contentProps?: Tooltip$1.ContentProps;
|
|
51
|
-
disabled?: boolean;
|
|
52
|
-
isDisabled?: boolean;
|
|
53
|
-
open?: boolean;
|
|
54
|
-
isOpen?: boolean;
|
|
55
|
-
placement?: TooltipPlacement;
|
|
56
|
-
offset?: TooltipOffset;
|
|
57
|
-
closeOnClick?: boolean;
|
|
58
|
-
fontSize?: Tooltip$1.ContentProps['fontSize'];
|
|
59
|
-
width?: Tooltip$1.ContentProps['width'];
|
|
60
|
-
w?: Tooltip$1.ContentProps['w'];
|
|
61
|
-
bg?: Tooltip$1.ContentProps['bg'];
|
|
62
|
-
color?: Tooltip$1.ContentProps['color'];
|
|
63
|
-
px?: Tooltip$1.ContentProps['px'];
|
|
64
|
-
py?: Tooltip$1.ContentProps['py'];
|
|
65
|
-
borderRadius?: Tooltip$1.ContentProps['borderRadius'];
|
|
66
|
-
boxShadow?: Tooltip$1.ContentProps['boxShadow'];
|
|
67
|
-
zIndex?: Tooltip$1.ContentProps['zIndex'];
|
|
68
|
-
alignSelf?: Tooltip$1.ContentProps['alignSelf'];
|
|
69
|
-
openOnClick?: boolean;
|
|
70
|
-
clickOpenDurationMs?: number;
|
|
71
|
-
fullWidthTrigger?: boolean;
|
|
72
|
-
}
|
|
73
|
-
/** Low-level Chakra v3 tooltip primitive. Prefer `Tooltip` (the markdown wrapper) for app usage. */
|
|
74
|
-
declare const TooltipPrimitive: React.ForwardRefExoticComponent<TooltipProps & React.RefAttributes<HTMLDivElement>>;
|
|
75
|
-
interface KollegioTooltipProps extends Omit<TooltipProps, 'content' | 'children'> {
|
|
76
|
-
label?: string;
|
|
77
|
-
children: React.ReactNode;
|
|
78
|
-
}
|
|
79
|
-
/** Brand tooltip: renders markdown `label`, tap-to-open on touch devices. */
|
|
80
|
-
declare const Tooltip: ({ label, children, ...props }: KollegioTooltipProps) => react_jsx_runtime.JSX.Element;
|
|
81
|
-
|
|
82
|
-
interface EllipsisMenuProps {
|
|
83
|
-
children: ReactNode;
|
|
84
|
-
}
|
|
85
|
-
interface EllipsisMenuOptionProps {
|
|
86
|
-
text: string;
|
|
87
|
-
onClick: () => void;
|
|
88
|
-
color?: string;
|
|
89
|
-
loading?: boolean;
|
|
90
|
-
}
|
|
91
|
-
declare const EllipsisMenu: ({ children }: EllipsisMenuProps) => react_jsx_runtime.JSX.Element;
|
|
92
|
-
declare const EllipsisMenuOption: ({ text, onClick, color, loading, }: EllipsisMenuOptionProps) => react_jsx_runtime.JSX.Element;
|
|
93
|
-
|
|
94
|
-
export { Button, EllipsisMenu, EllipsisMenuOption, Button as KollegioButton, type KollegioButtonProps, type KollegioButtonSize, type KollegioButtonVariant, Tooltip, TooltipPrimitive, type TooltipProps };
|
|
1
|
+
export { default as Button, default as KollegioButton, KollegioButtonProps, KollegioButtonSize, KollegioButtonVariant } from './Button.mjs';
|
|
2
|
+
export { default as Tooltip, TooltipPrimitive, TooltipProps } from './Tooltip.mjs';
|
|
3
|
+
export { default as EllipsisMenu, EllipsisMenuOption } from './EllipsisMenu.mjs';
|
|
4
|
+
import 'react';
|
|
5
|
+
import '@chakra-ui/react';
|
|
6
|
+
import 'react/jsx-runtime';
|
package/dist/index.d.ts
CHANGED
|
@@ -1,94 +1,6 @@
|
|
|
1
|
-
|
|
2
|
-
|
|
3
|
-
|
|
4
|
-
import
|
|
5
|
-
|
|
6
|
-
|
|
7
|
-
* Variant set merged from both product apps:
|
|
8
|
-
* - client-src: primary, primaryStrong, accent, outline, secondary, ghost, oauth, logOut
|
|
9
|
-
* - counsellor: tertiary, light (its "secondary" mapped to `outline`)
|
|
10
|
-
*
|
|
11
|
-
* Components reference kollegio token NAMES (e.g. `backgroundPrimary`). The consuming
|
|
12
|
-
* app's Chakra `createSystem` must include the @kollegioai/tokens colors.
|
|
13
|
-
*/
|
|
14
|
-
type KollegioButtonVariant = 'primary' | 'primaryStrong' | 'accent' | 'outline' | 'secondary' | 'tertiary' | 'light' | 'ghost' | 'oauth' | 'logOut';
|
|
15
|
-
type KollegioButtonSize = 'sm' | 'md' | 'lg';
|
|
16
|
-
type KollegioButtonProps = Omit<ButtonProps, 'variant'> & {
|
|
17
|
-
variant?: KollegioButtonVariant;
|
|
18
|
-
/** Kollegio sizing preset — not Chakra's `size` prop. */
|
|
19
|
-
buttonSize?: KollegioButtonSize;
|
|
20
|
-
fullWidth?: boolean;
|
|
21
|
-
isLoading?: boolean;
|
|
22
|
-
leftIcon?: ReactNode;
|
|
23
|
-
rightIcon?: ReactNode;
|
|
24
|
-
/** iOS Safari: fire on touchend so fixed/mobile CTAs respond reliably. */
|
|
25
|
-
enableTouchEndClickFix?: boolean;
|
|
26
|
-
};
|
|
27
|
-
declare const Button: React.ForwardRefExoticComponent<Omit<ButtonProps, "variant"> & {
|
|
28
|
-
variant?: KollegioButtonVariant;
|
|
29
|
-
/** Kollegio sizing preset — not Chakra's `size` prop. */
|
|
30
|
-
buttonSize?: KollegioButtonSize;
|
|
31
|
-
fullWidth?: boolean;
|
|
32
|
-
isLoading?: boolean;
|
|
33
|
-
leftIcon?: ReactNode;
|
|
34
|
-
rightIcon?: ReactNode;
|
|
35
|
-
/** iOS Safari: fire on touchend so fixed/mobile CTAs respond reliably. */
|
|
36
|
-
enableTouchEndClickFix?: boolean;
|
|
37
|
-
} & React.RefAttributes<HTMLButtonElement>>;
|
|
38
|
-
|
|
39
|
-
type TooltipPositioning = NonNullable<Tooltip$1.RootProps['positioning']>;
|
|
40
|
-
type TooltipPlacement = TooltipPositioning['placement'];
|
|
41
|
-
type TooltipOffset = TooltipPositioning['offset'];
|
|
42
|
-
interface TooltipProps extends Omit<Tooltip$1.RootProps, 'children' | 'open'> {
|
|
43
|
-
children: React.ReactNode;
|
|
44
|
-
showArrow?: boolean;
|
|
45
|
-
hasArrow?: boolean;
|
|
46
|
-
portalled?: boolean;
|
|
47
|
-
portalRef?: React.RefObject<HTMLElement | null>;
|
|
48
|
-
content?: React.ReactNode;
|
|
49
|
-
label?: React.ReactNode;
|
|
50
|
-
contentProps?: Tooltip$1.ContentProps;
|
|
51
|
-
disabled?: boolean;
|
|
52
|
-
isDisabled?: boolean;
|
|
53
|
-
open?: boolean;
|
|
54
|
-
isOpen?: boolean;
|
|
55
|
-
placement?: TooltipPlacement;
|
|
56
|
-
offset?: TooltipOffset;
|
|
57
|
-
closeOnClick?: boolean;
|
|
58
|
-
fontSize?: Tooltip$1.ContentProps['fontSize'];
|
|
59
|
-
width?: Tooltip$1.ContentProps['width'];
|
|
60
|
-
w?: Tooltip$1.ContentProps['w'];
|
|
61
|
-
bg?: Tooltip$1.ContentProps['bg'];
|
|
62
|
-
color?: Tooltip$1.ContentProps['color'];
|
|
63
|
-
px?: Tooltip$1.ContentProps['px'];
|
|
64
|
-
py?: Tooltip$1.ContentProps['py'];
|
|
65
|
-
borderRadius?: Tooltip$1.ContentProps['borderRadius'];
|
|
66
|
-
boxShadow?: Tooltip$1.ContentProps['boxShadow'];
|
|
67
|
-
zIndex?: Tooltip$1.ContentProps['zIndex'];
|
|
68
|
-
alignSelf?: Tooltip$1.ContentProps['alignSelf'];
|
|
69
|
-
openOnClick?: boolean;
|
|
70
|
-
clickOpenDurationMs?: number;
|
|
71
|
-
fullWidthTrigger?: boolean;
|
|
72
|
-
}
|
|
73
|
-
/** Low-level Chakra v3 tooltip primitive. Prefer `Tooltip` (the markdown wrapper) for app usage. */
|
|
74
|
-
declare const TooltipPrimitive: React.ForwardRefExoticComponent<TooltipProps & React.RefAttributes<HTMLDivElement>>;
|
|
75
|
-
interface KollegioTooltipProps extends Omit<TooltipProps, 'content' | 'children'> {
|
|
76
|
-
label?: string;
|
|
77
|
-
children: React.ReactNode;
|
|
78
|
-
}
|
|
79
|
-
/** Brand tooltip: renders markdown `label`, tap-to-open on touch devices. */
|
|
80
|
-
declare const Tooltip: ({ label, children, ...props }: KollegioTooltipProps) => react_jsx_runtime.JSX.Element;
|
|
81
|
-
|
|
82
|
-
interface EllipsisMenuProps {
|
|
83
|
-
children: ReactNode;
|
|
84
|
-
}
|
|
85
|
-
interface EllipsisMenuOptionProps {
|
|
86
|
-
text: string;
|
|
87
|
-
onClick: () => void;
|
|
88
|
-
color?: string;
|
|
89
|
-
loading?: boolean;
|
|
90
|
-
}
|
|
91
|
-
declare const EllipsisMenu: ({ children }: EllipsisMenuProps) => react_jsx_runtime.JSX.Element;
|
|
92
|
-
declare const EllipsisMenuOption: ({ text, onClick, color, loading, }: EllipsisMenuOptionProps) => react_jsx_runtime.JSX.Element;
|
|
93
|
-
|
|
94
|
-
export { Button, EllipsisMenu, EllipsisMenuOption, Button as KollegioButton, type KollegioButtonProps, type KollegioButtonSize, type KollegioButtonVariant, Tooltip, TooltipPrimitive, type TooltipProps };
|
|
1
|
+
export { default as Button, default as KollegioButton, KollegioButtonProps, KollegioButtonSize, KollegioButtonVariant } from './Button.js';
|
|
2
|
+
export { default as Tooltip, TooltipPrimitive, TooltipProps } from './Tooltip.js';
|
|
3
|
+
export { default as EllipsisMenu, EllipsisMenuOption } from './EllipsisMenu.js';
|
|
4
|
+
import 'react';
|
|
5
|
+
import '@chakra-ui/react';
|
|
6
|
+
import 'react/jsx-runtime';
|