@vritti/quantum-ui 0.1.5 → 0.1.6

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.
@@ -0,0 +1,113 @@
1
+ import { forwardRef, createElement } from 'react';
2
+
3
+ /**
4
+ * @license lucide-react v0.544.0 - ISC
5
+ *
6
+ * This source code is licensed under the ISC license.
7
+ * See the LICENSE file in the root directory of this source tree.
8
+ */
9
+
10
+ const toKebabCase = (string) => string.replace(/([a-z0-9])([A-Z])/g, "$1-$2").toLowerCase();
11
+ const toCamelCase = (string) => string.replace(
12
+ /^([A-Z])|[\s-_]+(\w)/g,
13
+ (match, p1, p2) => p2 ? p2.toUpperCase() : p1.toLowerCase()
14
+ );
15
+ const toPascalCase = (string) => {
16
+ const camelCase = toCamelCase(string);
17
+ return camelCase.charAt(0).toUpperCase() + camelCase.slice(1);
18
+ };
19
+ const mergeClasses = (...classes) => classes.filter((className, index, array) => {
20
+ return Boolean(className) && className.trim() !== "" && array.indexOf(className) === index;
21
+ }).join(" ").trim();
22
+ const hasA11yProp = (props) => {
23
+ for (const prop in props) {
24
+ if (prop.startsWith("aria-") || prop === "role" || prop === "title") {
25
+ return true;
26
+ }
27
+ }
28
+ };
29
+
30
+ /**
31
+ * @license lucide-react v0.544.0 - ISC
32
+ *
33
+ * This source code is licensed under the ISC license.
34
+ * See the LICENSE file in the root directory of this source tree.
35
+ */
36
+
37
+ var defaultAttributes = {
38
+ xmlns: "http://www.w3.org/2000/svg",
39
+ width: 24,
40
+ height: 24,
41
+ viewBox: "0 0 24 24",
42
+ fill: "none",
43
+ stroke: "currentColor",
44
+ strokeWidth: 2,
45
+ strokeLinecap: "round",
46
+ strokeLinejoin: "round"
47
+ };
48
+
49
+ /**
50
+ * @license lucide-react v0.544.0 - ISC
51
+ *
52
+ * This source code is licensed under the ISC license.
53
+ * See the LICENSE file in the root directory of this source tree.
54
+ */
55
+
56
+
57
+ const Icon = forwardRef(
58
+ ({
59
+ color = "currentColor",
60
+ size = 24,
61
+ strokeWidth = 2,
62
+ absoluteStrokeWidth,
63
+ className = "",
64
+ children,
65
+ iconNode,
66
+ ...rest
67
+ }, ref) => createElement(
68
+ "svg",
69
+ {
70
+ ref,
71
+ ...defaultAttributes,
72
+ width: size,
73
+ height: size,
74
+ stroke: color,
75
+ strokeWidth: absoluteStrokeWidth ? Number(strokeWidth) * 24 / Number(size) : strokeWidth,
76
+ className: mergeClasses("lucide", className),
77
+ ...!children && !hasA11yProp(rest) && { "aria-hidden": "true" },
78
+ ...rest
79
+ },
80
+ [
81
+ ...iconNode.map(([tag, attrs]) => createElement(tag, attrs)),
82
+ ...Array.isArray(children) ? children : [children]
83
+ ]
84
+ )
85
+ );
86
+
87
+ /**
88
+ * @license lucide-react v0.544.0 - ISC
89
+ *
90
+ * This source code is licensed under the ISC license.
91
+ * See the LICENSE file in the root directory of this source tree.
92
+ */
93
+
94
+
95
+ const createLucideIcon = (iconName, iconNode) => {
96
+ const Component = forwardRef(
97
+ ({ className, ...props }, ref) => createElement(Icon, {
98
+ ref,
99
+ iconNode,
100
+ className: mergeClasses(
101
+ `lucide-${toKebabCase(toPascalCase(iconName))}`,
102
+ `lucide-${iconName}`,
103
+ className
104
+ ),
105
+ ...props
106
+ })
107
+ );
108
+ Component.displayName = toPascalCase(iconName);
109
+ return Component;
110
+ };
111
+
112
+ export { createLucideIcon as c };
113
+ //# sourceMappingURL=createLucideIcon.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"createLucideIcon.js","sources":["../node_modules/lucide-react/dist/esm/shared/src/utils.js","../node_modules/lucide-react/dist/esm/defaultAttributes.js","../node_modules/lucide-react/dist/esm/Icon.js","../node_modules/lucide-react/dist/esm/createLucideIcon.js"],"sourcesContent":["/**\n * @license lucide-react v0.544.0 - ISC\n *\n * This source code is licensed under the ISC license.\n * See the LICENSE file in the root directory of this source tree.\n */\n\nconst toKebabCase = (string) => string.replace(/([a-z0-9])([A-Z])/g, \"$1-$2\").toLowerCase();\nconst toCamelCase = (string) => string.replace(\n /^([A-Z])|[\\s-_]+(\\w)/g,\n (match, p1, p2) => p2 ? p2.toUpperCase() : p1.toLowerCase()\n);\nconst toPascalCase = (string) => {\n const camelCase = toCamelCase(string);\n return camelCase.charAt(0).toUpperCase() + camelCase.slice(1);\n};\nconst mergeClasses = (...classes) => classes.filter((className, index, array) => {\n return Boolean(className) && className.trim() !== \"\" && array.indexOf(className) === index;\n}).join(\" \").trim();\nconst hasA11yProp = (props) => {\n for (const prop in props) {\n if (prop.startsWith(\"aria-\") || prop === \"role\" || prop === \"title\") {\n return true;\n }\n }\n};\n\nexport { hasA11yProp, mergeClasses, toCamelCase, toKebabCase, toPascalCase };\n//# sourceMappingURL=utils.js.map\n","/**\n * @license lucide-react v0.544.0 - ISC\n *\n * This source code is licensed under the ISC license.\n * See the LICENSE file in the root directory of this source tree.\n */\n\nvar defaultAttributes = {\n xmlns: \"http://www.w3.org/2000/svg\",\n width: 24,\n height: 24,\n viewBox: \"0 0 24 24\",\n fill: \"none\",\n stroke: \"currentColor\",\n strokeWidth: 2,\n strokeLinecap: \"round\",\n strokeLinejoin: \"round\"\n};\n\nexport { defaultAttributes as default };\n//# sourceMappingURL=defaultAttributes.js.map\n","/**\n * @license lucide-react v0.544.0 - ISC\n *\n * This source code is licensed under the ISC license.\n * See the LICENSE file in the root directory of this source tree.\n */\n\nimport { forwardRef, createElement } from 'react';\nimport defaultAttributes from './defaultAttributes.js';\nimport { mergeClasses, hasA11yProp } from './shared/src/utils.js';\n\nconst Icon = forwardRef(\n ({\n color = \"currentColor\",\n size = 24,\n strokeWidth = 2,\n absoluteStrokeWidth,\n className = \"\",\n children,\n iconNode,\n ...rest\n }, ref) => createElement(\n \"svg\",\n {\n ref,\n ...defaultAttributes,\n width: size,\n height: size,\n stroke: color,\n strokeWidth: absoluteStrokeWidth ? Number(strokeWidth) * 24 / Number(size) : strokeWidth,\n className: mergeClasses(\"lucide\", className),\n ...!children && !hasA11yProp(rest) && { \"aria-hidden\": \"true\" },\n ...rest\n },\n [\n ...iconNode.map(([tag, attrs]) => createElement(tag, attrs)),\n ...Array.isArray(children) ? children : [children]\n ]\n )\n);\n\nexport { Icon as default };\n//# sourceMappingURL=Icon.js.map\n","/**\n * @license lucide-react v0.544.0 - ISC\n *\n * This source code is licensed under the ISC license.\n * See the LICENSE file in the root directory of this source tree.\n */\n\nimport { forwardRef, createElement } from 'react';\nimport { mergeClasses, toKebabCase, toPascalCase } from './shared/src/utils.js';\nimport Icon from './Icon.js';\n\nconst createLucideIcon = (iconName, iconNode) => {\n const Component = forwardRef(\n ({ className, ...props }, ref) => createElement(Icon, {\n ref,\n iconNode,\n className: mergeClasses(\n `lucide-${toKebabCase(toPascalCase(iconName))}`,\n `lucide-${iconName}`,\n className\n ),\n ...props\n })\n );\n Component.displayName = toPascalCase(iconName);\n return Component;\n};\n\nexport { createLucideIcon as default };\n//# sourceMappingURL=createLucideIcon.js.map\n"],"names":[],"mappings":"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","x_google_ignoreList":[0,1,2,3]}
package/dist/index.d.ts CHANGED
@@ -1,3 +1,4 @@
1
+ import * as CheckboxPrimitive from '@radix-ui/react-checkbox';
1
2
  import { ClassValue } from 'clsx';
2
3
  import { default as default_2 } from 'react';
3
4
  import * as React_2 from 'react';
@@ -87,13 +88,36 @@ export declare function CardTitle({ className, ...props }: React_2.ComponentProp
87
88
  return <div data-slot='card-title' className={cn('leading-none font-semibold', className)} {...props} />;
88
89
  }
89
90
 
91
+ export declare function Checkbox({
92
+ className,
93
+ ...props
94
+ }: React_2.ComponentProps<typeof CheckboxPrimitive.Root>) {
95
+ return (
96
+ <CheckboxPrimitive.Root
97
+ data-slot="checkbox"
98
+ className={cn(
99
+ "peer border-input dark:bg-input/30 data-[state=checked]:bg-primary data-[state=checked]:text-primary-foreground dark:data-[state=checked]:bg-primary data-[state=checked]:border-primary focus-visible:border-ring focus-visible:ring-ring/50 aria-invalid:ring-destructive/20 dark:aria-invalid:ring-destructive/40 aria-invalid:border-destructive size-4 shrink-0 rounded-[4px] border shadow-xs transition-shadow outline-none focus-visible:ring-[3px] disabled:cursor-not-allowed disabled:opacity-50",
100
+ className
101
+ )}
102
+ {...props}
103
+ >
104
+ <CheckboxPrimitive.Indicator
105
+ data-slot="checkbox-indicator"
106
+ className="grid place-content-center text-current transition-none"
107
+ >
108
+ <CheckIcon className="size-3.5" />
109
+ </CheckboxPrimitive.Indicator>
110
+ </CheckboxPrimitive.Root>
111
+ )
112
+ }
113
+
90
114
  export declare function cn(...inputs: ClassValue[]) {
91
115
  return twMerge(clsx(inputs));
92
116
  }
93
117
 
94
118
  export declare const PasswordField: default_2.FC<PasswordFieldProps>;
95
119
 
96
- export declare interface PasswordFieldProps extends Omit<TextFieldProps, 'type' | 'endAdornment'> {
120
+ declare interface PasswordFieldProps extends Omit<TextFieldProps, 'type' | 'endAdornment'> {
97
121
  showStrengthIndicator?: boolean;
98
122
  toggleAriaLabel?: string;
99
123
  }
@@ -103,8 +127,8 @@ export declare const TextField: default_2.FC<TextFieldProps>;
103
127
  declare interface TextFieldProps extends default_2.ComponentProps<'input'> {
104
128
  label?: string;
105
129
  message?: default_2.ReactNode;
106
- required?: boolean;
107
130
  error?: boolean;
131
+ startAdornment?: default_2.ReactNode;
108
132
  endAdornment?: default_2.ReactNode;
109
133
  }
110
134
 
package/dist/index.js CHANGED
@@ -1,109 +1,9 @@
1
- import { c as cn } from './utils.js';
1
+ export { c as cn } from './utils.js';
2
2
  export { B as Button, b as buttonVariants } from './Button.js';
3
3
  export { C as Card, a as CardContent, b as CardDescription, c as CardFooter, d as CardHeader, e as CardTitle } from './Card.js';
4
- import { T as TextField } from './TextField.js';
5
- import { jsxs, jsx } from 'react/jsx-runtime';
6
- import { useState } from 'react';
7
- import { c as createLucideIcon } from './ThemeToggle.js';
4
+ export { C as Checkbox } from './Checkbox.js';
5
+ export { T as TextField } from './TextField.js';
6
+ export { P as PasswordField } from './PasswordField.js';
8
7
  export { T as ThemeToggle } from './ThemeToggle.js';
9
8
  export { T as Typography } from './Typography.js';
10
-
11
- /**
12
- * @license lucide-react v0.544.0 - ISC
13
- *
14
- * This source code is licensed under the ISC license.
15
- * See the LICENSE file in the root directory of this source tree.
16
- */
17
-
18
-
19
- const __iconNode$1 = [
20
- [
21
- "path",
22
- {
23
- d: "M10.733 5.076a10.744 10.744 0 0 1 11.205 6.575 1 1 0 0 1 0 .696 10.747 10.747 0 0 1-1.444 2.49",
24
- key: "ct8e1f"
25
- }
26
- ],
27
- ["path", { d: "M14.084 14.158a3 3 0 0 1-4.242-4.242", key: "151rxh" }],
28
- [
29
- "path",
30
- {
31
- d: "M17.479 17.499a10.75 10.75 0 0 1-15.417-5.151 1 1 0 0 1 0-.696 10.75 10.75 0 0 1 4.446-5.143",
32
- key: "13bj9a"
33
- }
34
- ],
35
- ["path", { d: "m2 2 20 20", key: "1ooewy" }]
36
- ];
37
- const EyeOff = createLucideIcon("eye-off", __iconNode$1);
38
-
39
- /**
40
- * @license lucide-react v0.544.0 - ISC
41
- *
42
- * This source code is licensed under the ISC license.
43
- * See the LICENSE file in the root directory of this source tree.
44
- */
45
-
46
-
47
- const __iconNode = [
48
- [
49
- "path",
50
- {
51
- d: "M2.062 12.348a1 1 0 0 1 0-.696 10.75 10.75 0 0 1 19.876 0 1 1 0 0 1 0 .696 10.75 10.75 0 0 1-19.876 0",
52
- key: "1nclc0"
53
- }
54
- ],
55
- ["circle", { cx: "12", cy: "12", r: "3", key: "1v7zrd" }]
56
- ];
57
- const Eye = createLucideIcon("eye", __iconNode);
58
-
59
- const getPasswordStrength = (password) => {
60
- let strength = 0;
61
- if (password.length >= 8) strength += 1;
62
- if (/[A-Z]/.test(password)) strength += 1;
63
- if (/[a-z]/.test(password)) strength += 1;
64
- if (/[0-9]/.test(password)) strength += 1;
65
- if (/[^A-Za-z0-9]/.test(password)) strength += 1;
66
- if (strength < 2) return { label: "Weak", color: "text-red-500", bgColor: "bg-red-500", width: "20%" };
67
- if (strength < 4) return { label: "Fair", color: "text-yellow-500", bgColor: "bg-yellow-500", width: "60%" };
68
- return { label: "Strong", color: "text-green-500", bgColor: "bg-green-500", width: "100%" };
69
- };
70
- const PasswordField = ({
71
- showStrengthIndicator = false,
72
- toggleAriaLabel,
73
- value = "",
74
- message,
75
- error,
76
- ...props
77
- }) => {
78
- const [showPassword, setShowPassword] = useState(false);
79
- const passwordStrength = getPasswordStrength(String(value));
80
- const enhancedMessage = showStrengthIndicator && value && !error ? /* @__PURE__ */ jsxs("div", { className: "space-y-2", children: [
81
- /* @__PURE__ */ jsxs("div", { className: "flex justify-between items-center text-xs", children: [
82
- /* @__PURE__ */ jsx("span", { className: "text-muted-foreground", children: "Password strength:" }),
83
- /* @__PURE__ */ jsx("span", { className: passwordStrength.color, children: passwordStrength.label })
84
- ] }),
85
- /* @__PURE__ */ jsx("div", { className: "w-full bg-muted rounded-full h-1", children: /* @__PURE__ */ jsx(
86
- "div",
87
- {
88
- className: cn("h-1 rounded-full transition-all duration-300", passwordStrength.bgColor),
89
- style: { width: passwordStrength.width }
90
- }
91
- ) }),
92
- message && /* @__PURE__ */ jsx("div", { children: message })
93
- ] }) : message;
94
- const eyeIcon = showPassword ? /* @__PURE__ */ jsx(EyeOff, {}) : /* @__PURE__ */ jsx(Eye, {});
95
- return /* @__PURE__ */ jsx(
96
- TextField,
97
- {
98
- ...props,
99
- type: showPassword ? "text" : "password",
100
- value,
101
- message: enhancedMessage,
102
- error,
103
- endAdornment: eyeIcon
104
- }
105
- );
106
- };
107
-
108
- export { PasswordField, TextField, cn };
109
9
  //# sourceMappingURL=index.js.map
package/dist/index.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sources":["../node_modules/lucide-react/dist/esm/icons/eye-off.js","../node_modules/lucide-react/dist/esm/icons/eye.js","../lib/components/PasswordField/PasswordField.tsx"],"sourcesContent":["/**\n * @license lucide-react v0.544.0 - ISC\n *\n * This source code is licensed under the ISC license.\n * See the LICENSE file in the root directory of this source tree.\n */\n\nimport createLucideIcon from '../createLucideIcon.js';\n\nconst __iconNode = [\n [\n \"path\",\n {\n d: \"M10.733 5.076a10.744 10.744 0 0 1 11.205 6.575 1 1 0 0 1 0 .696 10.747 10.747 0 0 1-1.444 2.49\",\n key: \"ct8e1f\"\n }\n ],\n [\"path\", { d: \"M14.084 14.158a3 3 0 0 1-4.242-4.242\", key: \"151rxh\" }],\n [\n \"path\",\n {\n d: \"M17.479 17.499a10.75 10.75 0 0 1-15.417-5.151 1 1 0 0 1 0-.696 10.75 10.75 0 0 1 4.446-5.143\",\n key: \"13bj9a\"\n }\n ],\n [\"path\", { d: \"m2 2 20 20\", key: \"1ooewy\" }]\n];\nconst EyeOff = createLucideIcon(\"eye-off\", __iconNode);\n\nexport { __iconNode, EyeOff as default };\n//# sourceMappingURL=eye-off.js.map\n","/**\n * @license lucide-react v0.544.0 - ISC\n *\n * This source code is licensed under the ISC license.\n * See the LICENSE file in the root directory of this source tree.\n */\n\nimport createLucideIcon from '../createLucideIcon.js';\n\nconst __iconNode = [\n [\n \"path\",\n {\n d: \"M2.062 12.348a1 1 0 0 1 0-.696 10.75 10.75 0 0 1 19.876 0 1 1 0 0 1 0 .696 10.75 10.75 0 0 1-19.876 0\",\n key: \"1nclc0\"\n }\n ],\n [\"circle\", { cx: \"12\", cy: \"12\", r: \"3\", key: \"1v7zrd\" }]\n];\nconst Eye = createLucideIcon(\"eye\", __iconNode);\n\nexport { __iconNode, Eye as default };\n//# sourceMappingURL=eye.js.map\n","import { Eye, EyeOff } from 'lucide-react';\nimport React, { useState } from 'react';\nimport { cn } from '../../../shadcn/utils';\nimport { TextField, TextFieldProps } from '../TextField/TextField';\n\nexport interface PasswordFieldProps extends Omit<TextFieldProps, 'type' | 'endAdornment'> {\n /**\n * Whether to show password strength indicator\n */\n showStrengthIndicator?: boolean;\n\n /**\n * Custom aria-label for the visibility toggle button\n */\n toggleAriaLabel?: string;\n}\n\n// Helper function to calculate password strength\nconst getPasswordStrength = (password: string) => {\n let strength = 0;\n if (password.length >= 8) strength += 1;\n if (/[A-Z]/.test(password)) strength += 1;\n if (/[a-z]/.test(password)) strength += 1;\n if (/[0-9]/.test(password)) strength += 1;\n if (/[^A-Za-z0-9]/.test(password)) strength += 1;\n\n if (strength < 2) return { label: 'Weak', color: 'text-red-500', bgColor: 'bg-red-500', width: '20%' };\n if (strength < 4) return { label: 'Fair', color: 'text-yellow-500', bgColor: 'bg-yellow-500', width: '60%' };\n return { label: 'Strong', color: 'text-green-500', bgColor: 'bg-green-500', width: '100%' };\n};\n\n// PasswordField component - specialized TextField for password inputs\nexport const PasswordField: React.FC<PasswordFieldProps> = ({\n showStrengthIndicator = false,\n toggleAriaLabel,\n value = '',\n message,\n error,\n ...props\n}) => {\n const [showPassword, setShowPassword] = useState(false);\n\n const togglePasswordVisibility = () => {\n setShowPassword(!showPassword);\n };\n\n const passwordStrength = getPasswordStrength(String(value));\n\n // Combine strength indicator with existing message\n const enhancedMessage =\n showStrengthIndicator && value && !error ? (\n <div className='space-y-2'>\n <div className='flex justify-between items-center text-xs'>\n <span className='text-muted-foreground'>Password strength:</span>\n <span className={passwordStrength.color}>{passwordStrength.label}</span>\n </div>\n <div className='w-full bg-muted rounded-full h-1'>\n <div\n className={cn('h-1 rounded-full transition-all duration-300', passwordStrength.bgColor)}\n style={{ width: passwordStrength.width }}\n />\n </div>\n {message && <div>{message}</div>}\n </div>\n ) : (\n message\n );\n\n const eyeIcon = showPassword ? <EyeOff /> : <Eye />;\n\n return (\n <TextField\n {...props}\n type={showPassword ? 'text' : 'password'}\n value={value}\n message={enhancedMessage}\n error={error}\n endAdornment={eyeIcon}\n />\n );\n};\n"],"names":["__iconNode"],"mappings":";;;;;;;;;;AAAA;AACA;AACA;AACA;AACA;AACA;;;AAIA,MAAMA,YAAU,GAAG;AACnB,EAAE;AACF,IAAI,MAAM;AACV,IAAI;AACJ,MAAM,CAAC,EAAE,gGAAgG;AACzG,MAAM,GAAG,EAAE;AACX;AACA,GAAG;AACH,EAAE,CAAC,MAAM,EAAE,EAAE,CAAC,EAAE,sCAAsC,EAAE,GAAG,EAAE,QAAQ,EAAE,CAAC;AACxE,EAAE;AACF,IAAI,MAAM;AACV,IAAI;AACJ,MAAM,CAAC,EAAE,8FAA8F;AACvG,MAAM,GAAG,EAAE;AACX;AACA,GAAG;AACH,EAAE,CAAC,MAAM,EAAE,EAAE,CAAC,EAAE,YAAY,EAAE,GAAG,EAAE,QAAQ,EAAE;AAC7C,CAAC;AACD,MAAM,MAAM,GAAG,gBAAgB,CAAC,SAAS,EAAEA,YAAU,CAAC;;AC3BtD;AACA;AACA;AACA;AACA;AACA;;;AAIA,MAAM,UAAU,GAAG;AACnB,EAAE;AACF,IAAI,MAAM;AACV,IAAI;AACJ,MAAM,CAAC,EAAE,uGAAuG;AAChH,MAAM,GAAG,EAAE;AACX;AACA,GAAG;AACH,EAAE,CAAC,QAAQ,EAAE,EAAE,EAAE,EAAE,IAAI,EAAE,EAAE,EAAE,IAAI,EAAE,CAAC,EAAE,GAAG,EAAE,GAAG,EAAE,QAAQ,EAAE;AAC1D,CAAC;AACD,MAAM,GAAG,GAAG,gBAAgB,CAAC,KAAK,EAAE,UAAU,CAAC;;ACD/C,MAAM,mBAAA,GAAsB,CAAC,QAAA,KAAqB;AAChD,EAAA,IAAI,QAAA,GAAW,CAAA;AACf,EAAA,IAAI,QAAA,CAAS,MAAA,IAAU,CAAA,EAAG,QAAA,IAAY,CAAA;AACtC,EAAA,IAAI,OAAA,CAAQ,IAAA,CAAK,QAAQ,CAAA,EAAG,QAAA,IAAY,CAAA;AACxC,EAAA,IAAI,OAAA,CAAQ,IAAA,CAAK,QAAQ,CAAA,EAAG,QAAA,IAAY,CAAA;AACxC,EAAA,IAAI,OAAA,CAAQ,IAAA,CAAK,QAAQ,CAAA,EAAG,QAAA,IAAY,CAAA;AACxC,EAAA,IAAI,cAAA,CAAe,IAAA,CAAK,QAAQ,CAAA,EAAG,QAAA,IAAY,CAAA;AAE/C,EAAA,IAAI,QAAA,GAAW,CAAA,EAAG,OAAO,EAAE,KAAA,EAAO,MAAA,EAAQ,KAAA,EAAO,cAAA,EAAgB,OAAA,EAAS,YAAA,EAAc,KAAA,EAAO,KAAA,EAAM;AACrG,EAAA,IAAI,QAAA,GAAW,CAAA,EAAG,OAAO,EAAE,KAAA,EAAO,MAAA,EAAQ,KAAA,EAAO,iBAAA,EAAmB,OAAA,EAAS,eAAA,EAAiB,KAAA,EAAO,KAAA,EAAM;AAC3G,EAAA,OAAO,EAAE,OAAO,QAAA,EAAU,KAAA,EAAO,kBAAkB,OAAA,EAAS,cAAA,EAAgB,OAAO,MAAA,EAAO;AAC5F,CAAA;AAGO,MAAM,gBAA8C,CAAC;AAAA,EAC1D,qBAAA,GAAwB,KAAA;AAAA,EACxB,eAAA;AAAA,EACA,KAAA,GAAQ,EAAA;AAAA,EACR,OAAA;AAAA,EACA,KAAA;AAAA,EACA,GAAG;AACL,CAAA,KAAM;AACJ,EAAA,MAAM,CAAC,YAAA,EAAc,eAAe,CAAA,GAAI,SAAS,KAAK,CAAA;AAMtD,EAAA,MAAM,gBAAA,GAAmB,mBAAA,CAAoB,MAAA,CAAO,KAAK,CAAC,CAAA;AAG1D,EAAA,MAAM,eAAA,GACJ,yBAAyB,KAAA,IAAS,CAAC,wBACjC,IAAA,CAAC,KAAA,EAAA,EAAI,WAAU,WAAA,EACb,QAAA,EAAA;AAAA,oBAAA,IAAA,CAAC,KAAA,EAAA,EAAI,WAAU,2CAAA,EACb,QAAA,EAAA;AAAA,sBAAA,GAAA,CAAC,MAAA,EAAA,EAAK,SAAA,EAAU,uBAAA,EAAwB,QAAA,EAAA,oBAAA,EAAkB,CAAA;AAAA,0BACzD,MAAA,EAAA,EAAK,SAAA,EAAW,gBAAA,CAAiB,KAAA,EAAQ,2BAAiB,KAAA,EAAM;AAAA,KAAA,EACnE,CAAA;AAAA,oBACA,GAAA,CAAC,KAAA,EAAA,EAAI,SAAA,EAAU,kCAAA,EACb,QAAA,kBAAA,GAAA;AAAA,MAAC,KAAA;AAAA,MAAA;AAAA,QACC,SAAA,EAAW,EAAA,CAAG,8CAAA,EAAgD,gBAAA,CAAiB,OAAO,CAAA;AAAA,QACtF,KAAA,EAAO,EAAE,KAAA,EAAO,gBAAA,CAAiB,KAAA;AAAM;AAAA,KACzC,EACF,CAAA;AAAA,IACC,OAAA,oBAAW,GAAA,CAAC,KAAA,EAAA,EAAK,QAAA,EAAA,OAAA,EAAQ;AAAA,GAAA,EAC5B,CAAA,GAEA,OAAA;AAGJ,EAAA,MAAM,UAAU,YAAA,mBAAe,GAAA,CAAC,MAAA,EAAA,EAAO,CAAA,uBAAM,GAAA,EAAA,EAAI,CAAA;AAEjD,EAAA,uBACE,GAAA;AAAA,IAAC,SAAA;AAAA,IAAA;AAAA,MACE,GAAG,KAAA;AAAA,MACJ,IAAA,EAAM,eAAe,MAAA,GAAS,UAAA;AAAA,MAC9B,KAAA;AAAA,MACA,OAAA,EAAS,eAAA;AAAA,MACT,KAAA;AAAA,MACA,YAAA,EAAc;AAAA;AAAA,GAChB;AAEJ;;;;","x_google_ignoreList":[0,1]}
1
+ {"version":3,"file":"index.js","sources":[],"sourcesContent":[],"names":[],"mappings":";;;;;;;"}
package/dist/index2.js CHANGED
@@ -1,123 +1,41 @@
1
1
  import * as React from 'react';
2
+ import 'react-dom';
3
+ import { c as createSlot } from './index3.js';
2
4
  import { jsx } from 'react/jsx-runtime';
3
5
 
4
- // packages/react/compose-refs/src/compose-refs.tsx
5
- function setRef(ref, value) {
6
- if (typeof ref === "function") {
7
- return ref(value);
8
- } else if (ref !== null && ref !== void 0) {
9
- ref.current = value;
10
- }
11
- }
12
- function composeRefs(...refs) {
13
- return (node) => {
14
- let hasCleanup = false;
15
- const cleanups = refs.map((ref) => {
16
- const cleanup = setRef(ref, node);
17
- if (!hasCleanup && typeof cleanup == "function") {
18
- hasCleanup = true;
19
- }
20
- return cleanup;
21
- });
22
- if (hasCleanup) {
23
- return () => {
24
- for (let i = 0; i < cleanups.length; i++) {
25
- const cleanup = cleanups[i];
26
- if (typeof cleanup == "function") {
27
- cleanup();
28
- } else {
29
- setRef(refs[i], null);
30
- }
31
- }
32
- };
6
+ // src/primitive.tsx
7
+ var NODES = [
8
+ "a",
9
+ "button",
10
+ "div",
11
+ "form",
12
+ "h2",
13
+ "h3",
14
+ "img",
15
+ "input",
16
+ "label",
17
+ "li",
18
+ "nav",
19
+ "ol",
20
+ "p",
21
+ "select",
22
+ "span",
23
+ "svg",
24
+ "ul"
25
+ ];
26
+ var Primitive = NODES.reduce((primitive, node) => {
27
+ const Slot = createSlot(`Primitive.${node}`);
28
+ const Node = React.forwardRef((props, forwardedRef) => {
29
+ const { asChild, ...primitiveProps } = props;
30
+ const Comp = asChild ? Slot : node;
31
+ if (typeof window !== "undefined") {
32
+ window[Symbol.for("radix-ui")] = true;
33
33
  }
34
- };
35
- }
36
-
37
- // src/slot.tsx
38
- // @__NO_SIDE_EFFECTS__
39
- function createSlot(ownerName) {
40
- const SlotClone = /* @__PURE__ */ createSlotClone(ownerName);
41
- const Slot2 = React.forwardRef((props, forwardedRef) => {
42
- const { children, ...slotProps } = props;
43
- const childrenArray = React.Children.toArray(children);
44
- const slottable = childrenArray.find(isSlottable);
45
- if (slottable) {
46
- const newElement = slottable.props.children;
47
- const newChildren = childrenArray.map((child) => {
48
- if (child === slottable) {
49
- if (React.Children.count(newElement) > 1) return React.Children.only(null);
50
- return React.isValidElement(newElement) ? newElement.props.children : null;
51
- } else {
52
- return child;
53
- }
54
- });
55
- return /* @__PURE__ */ jsx(SlotClone, { ...slotProps, ref: forwardedRef, children: React.isValidElement(newElement) ? React.cloneElement(newElement, void 0, newChildren) : null });
56
- }
57
- return /* @__PURE__ */ jsx(SlotClone, { ...slotProps, ref: forwardedRef, children });
34
+ return /* @__PURE__ */ jsx(Comp, { ...primitiveProps, ref: forwardedRef });
58
35
  });
59
- Slot2.displayName = `${ownerName}.Slot`;
60
- return Slot2;
61
- }
62
- var Slot = /* @__PURE__ */ createSlot("Slot");
63
- // @__NO_SIDE_EFFECTS__
64
- function createSlotClone(ownerName) {
65
- const SlotClone = React.forwardRef((props, forwardedRef) => {
66
- const { children, ...slotProps } = props;
67
- if (React.isValidElement(children)) {
68
- const childrenRef = getElementRef(children);
69
- const props2 = mergeProps(slotProps, children.props);
70
- if (children.type !== React.Fragment) {
71
- props2.ref = forwardedRef ? composeRefs(forwardedRef, childrenRef) : childrenRef;
72
- }
73
- return React.cloneElement(children, props2);
74
- }
75
- return React.Children.count(children) > 1 ? React.Children.only(null) : null;
76
- });
77
- SlotClone.displayName = `${ownerName}.SlotClone`;
78
- return SlotClone;
79
- }
80
- var SLOTTABLE_IDENTIFIER = Symbol("radix.slottable");
81
- function isSlottable(child) {
82
- return React.isValidElement(child) && typeof child.type === "function" && "__radixId" in child.type && child.type.__radixId === SLOTTABLE_IDENTIFIER;
83
- }
84
- function mergeProps(slotProps, childProps) {
85
- const overrideProps = { ...childProps };
86
- for (const propName in childProps) {
87
- const slotPropValue = slotProps[propName];
88
- const childPropValue = childProps[propName];
89
- const isHandler = /^on[A-Z]/.test(propName);
90
- if (isHandler) {
91
- if (slotPropValue && childPropValue) {
92
- overrideProps[propName] = (...args) => {
93
- const result = childPropValue(...args);
94
- slotPropValue(...args);
95
- return result;
96
- };
97
- } else if (slotPropValue) {
98
- overrideProps[propName] = slotPropValue;
99
- }
100
- } else if (propName === "style") {
101
- overrideProps[propName] = { ...slotPropValue, ...childPropValue };
102
- } else if (propName === "className") {
103
- overrideProps[propName] = [slotPropValue, childPropValue].filter(Boolean).join(" ");
104
- }
105
- }
106
- return { ...slotProps, ...overrideProps };
107
- }
108
- function getElementRef(element) {
109
- let getter = Object.getOwnPropertyDescriptor(element.props, "ref")?.get;
110
- let mayWarn = getter && "isReactWarning" in getter && getter.isReactWarning;
111
- if (mayWarn) {
112
- return element.ref;
113
- }
114
- getter = Object.getOwnPropertyDescriptor(element, "ref")?.get;
115
- mayWarn = getter && "isReactWarning" in getter && getter.isReactWarning;
116
- if (mayWarn) {
117
- return element.props.ref;
118
- }
119
- return element.props.ref || element.ref;
120
- }
36
+ Node.displayName = `Primitive.${node}`;
37
+ return { ...primitive, [node]: Node };
38
+ }, {});
121
39
 
122
- export { Slot as S, createSlot as c };
40
+ export { Primitive as P };
123
41
  //# sourceMappingURL=index2.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"index2.js","sources":["../node_modules/@radix-ui/react-compose-refs/dist/index.mjs","../node_modules/@radix-ui/react-slot/dist/index.mjs"],"sourcesContent":["// packages/react/compose-refs/src/compose-refs.tsx\nimport * as React from \"react\";\nfunction setRef(ref, value) {\n if (typeof ref === \"function\") {\n return ref(value);\n } else if (ref !== null && ref !== void 0) {\n ref.current = value;\n }\n}\nfunction composeRefs(...refs) {\n return (node) => {\n let hasCleanup = false;\n const cleanups = refs.map((ref) => {\n const cleanup = setRef(ref, node);\n if (!hasCleanup && typeof cleanup == \"function\") {\n hasCleanup = true;\n }\n return cleanup;\n });\n if (hasCleanup) {\n return () => {\n for (let i = 0; i < cleanups.length; i++) {\n const cleanup = cleanups[i];\n if (typeof cleanup == \"function\") {\n cleanup();\n } else {\n setRef(refs[i], null);\n }\n }\n };\n }\n };\n}\nfunction useComposedRefs(...refs) {\n return React.useCallback(composeRefs(...refs), refs);\n}\nexport {\n composeRefs,\n useComposedRefs\n};\n//# sourceMappingURL=index.mjs.map\n","// src/slot.tsx\nimport * as React from \"react\";\nimport { composeRefs } from \"@radix-ui/react-compose-refs\";\nimport { Fragment as Fragment2, jsx } from \"react/jsx-runtime\";\n// @__NO_SIDE_EFFECTS__\nfunction createSlot(ownerName) {\n const SlotClone = /* @__PURE__ */ createSlotClone(ownerName);\n const Slot2 = React.forwardRef((props, forwardedRef) => {\n const { children, ...slotProps } = props;\n const childrenArray = React.Children.toArray(children);\n const slottable = childrenArray.find(isSlottable);\n if (slottable) {\n const newElement = slottable.props.children;\n const newChildren = childrenArray.map((child) => {\n if (child === slottable) {\n if (React.Children.count(newElement) > 1) return React.Children.only(null);\n return React.isValidElement(newElement) ? newElement.props.children : null;\n } else {\n return child;\n }\n });\n return /* @__PURE__ */ jsx(SlotClone, { ...slotProps, ref: forwardedRef, children: React.isValidElement(newElement) ? React.cloneElement(newElement, void 0, newChildren) : null });\n }\n return /* @__PURE__ */ jsx(SlotClone, { ...slotProps, ref: forwardedRef, children });\n });\n Slot2.displayName = `${ownerName}.Slot`;\n return Slot2;\n}\nvar Slot = /* @__PURE__ */ createSlot(\"Slot\");\n// @__NO_SIDE_EFFECTS__\nfunction createSlotClone(ownerName) {\n const SlotClone = React.forwardRef((props, forwardedRef) => {\n const { children, ...slotProps } = props;\n if (React.isValidElement(children)) {\n const childrenRef = getElementRef(children);\n const props2 = mergeProps(slotProps, children.props);\n if (children.type !== React.Fragment) {\n props2.ref = forwardedRef ? composeRefs(forwardedRef, childrenRef) : childrenRef;\n }\n return React.cloneElement(children, props2);\n }\n return React.Children.count(children) > 1 ? React.Children.only(null) : null;\n });\n SlotClone.displayName = `${ownerName}.SlotClone`;\n return SlotClone;\n}\nvar SLOTTABLE_IDENTIFIER = Symbol(\"radix.slottable\");\n// @__NO_SIDE_EFFECTS__\nfunction createSlottable(ownerName) {\n const Slottable2 = ({ children }) => {\n return /* @__PURE__ */ jsx(Fragment2, { children });\n };\n Slottable2.displayName = `${ownerName}.Slottable`;\n Slottable2.__radixId = SLOTTABLE_IDENTIFIER;\n return Slottable2;\n}\nvar Slottable = /* @__PURE__ */ createSlottable(\"Slottable\");\nfunction isSlottable(child) {\n return React.isValidElement(child) && typeof child.type === \"function\" && \"__radixId\" in child.type && child.type.__radixId === SLOTTABLE_IDENTIFIER;\n}\nfunction mergeProps(slotProps, childProps) {\n const overrideProps = { ...childProps };\n for (const propName in childProps) {\n const slotPropValue = slotProps[propName];\n const childPropValue = childProps[propName];\n const isHandler = /^on[A-Z]/.test(propName);\n if (isHandler) {\n if (slotPropValue && childPropValue) {\n overrideProps[propName] = (...args) => {\n const result = childPropValue(...args);\n slotPropValue(...args);\n return result;\n };\n } else if (slotPropValue) {\n overrideProps[propName] = slotPropValue;\n }\n } else if (propName === \"style\") {\n overrideProps[propName] = { ...slotPropValue, ...childPropValue };\n } else if (propName === \"className\") {\n overrideProps[propName] = [slotPropValue, childPropValue].filter(Boolean).join(\" \");\n }\n }\n return { ...slotProps, ...overrideProps };\n}\nfunction getElementRef(element) {\n let getter = Object.getOwnPropertyDescriptor(element.props, \"ref\")?.get;\n let mayWarn = getter && \"isReactWarning\" in getter && getter.isReactWarning;\n if (mayWarn) {\n return element.ref;\n }\n getter = Object.getOwnPropertyDescriptor(element, \"ref\")?.get;\n mayWarn = getter && \"isReactWarning\" in getter && getter.isReactWarning;\n if (mayWarn) {\n return element.props.ref;\n }\n return element.props.ref || element.ref;\n}\nexport {\n Slot as Root,\n Slot,\n Slottable,\n createSlot,\n createSlottable\n};\n//# sourceMappingURL=index.mjs.map\n"],"names":[],"mappings":"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","x_google_ignoreList":[0,1]}
1
+ {"version":3,"file":"index2.js","sources":["../node_modules/@radix-ui/react-primitive/dist/index.mjs"],"sourcesContent":["// src/primitive.tsx\nimport * as React from \"react\";\nimport * as ReactDOM from \"react-dom\";\nimport { createSlot } from \"@radix-ui/react-slot\";\nimport { jsx } from \"react/jsx-runtime\";\nvar NODES = [\n \"a\",\n \"button\",\n \"div\",\n \"form\",\n \"h2\",\n \"h3\",\n \"img\",\n \"input\",\n \"label\",\n \"li\",\n \"nav\",\n \"ol\",\n \"p\",\n \"select\",\n \"span\",\n \"svg\",\n \"ul\"\n];\nvar Primitive = NODES.reduce((primitive, node) => {\n const Slot = createSlot(`Primitive.${node}`);\n const Node = React.forwardRef((props, forwardedRef) => {\n const { asChild, ...primitiveProps } = props;\n const Comp = asChild ? Slot : node;\n if (typeof window !== \"undefined\") {\n window[Symbol.for(\"radix-ui\")] = true;\n }\n return /* @__PURE__ */ jsx(Comp, { ...primitiveProps, ref: forwardedRef });\n });\n Node.displayName = `Primitive.${node}`;\n return { ...primitive, [node]: Node };\n}, {});\nfunction dispatchDiscreteCustomEvent(target, event) {\n if (target) ReactDOM.flushSync(() => target.dispatchEvent(event));\n}\nvar Root = Primitive;\nexport {\n Primitive,\n Root,\n dispatchDiscreteCustomEvent\n};\n//# sourceMappingURL=index.mjs.map\n"],"names":[],"mappings":";;;;;AAAA;AAKA,IAAI,KAAK,GAAG;AACZ,EAAE,GAAG;AACL,EAAE,QAAQ;AACV,EAAE,KAAK;AACP,EAAE,MAAM;AACR,EAAE,IAAI;AACN,EAAE,IAAI;AACN,EAAE,KAAK;AACP,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,IAAI;AACN,EAAE,KAAK;AACP,EAAE,IAAI;AACN,EAAE,GAAG;AACL,EAAE,QAAQ;AACV,EAAE,MAAM;AACR,EAAE,KAAK;AACP,EAAE;AACF,CAAC;AACE,IAAC,SAAS,GAAG,KAAK,CAAC,MAAM,CAAC,CAAC,SAAS,EAAE,IAAI,KAAK;AAClD,EAAE,MAAM,IAAI,GAAG,UAAU,CAAC,CAAC,UAAU,EAAE,IAAI,CAAC,CAAC,CAAC;AAC9C,EAAE,MAAM,IAAI,GAAG,KAAK,CAAC,UAAU,CAAC,CAAC,KAAK,EAAE,YAAY,KAAK;AACzD,IAAI,MAAM,EAAE,OAAO,EAAE,GAAG,cAAc,EAAE,GAAG,KAAK;AAChD,IAAI,MAAM,IAAI,GAAG,OAAO,GAAG,IAAI,GAAG,IAAI;AACtC,IAAI,IAAI,OAAO,MAAM,KAAK,WAAW,EAAE;AACvC,MAAM,MAAM,CAAC,MAAM,CAAC,GAAG,CAAC,UAAU,CAAC,CAAC,GAAG,IAAI;AAC3C,IAAI;AACJ,IAAI,uBAAuB,GAAG,CAAC,IAAI,EAAE,EAAE,GAAG,cAAc,EAAE,GAAG,EAAE,YAAY,EAAE,CAAC;AAC9E,EAAE,CAAC,CAAC;AACJ,EAAE,IAAI,CAAC,WAAW,GAAG,CAAC,UAAU,EAAE,IAAI,CAAC,CAAC;AACxC,EAAE,OAAO,EAAE,GAAG,SAAS,EAAE,CAAC,IAAI,GAAG,IAAI,EAAE;AACvC,CAAC,EAAE,EAAE;;;;","x_google_ignoreList":[0]}
package/dist/index3.js ADDED
@@ -0,0 +1,126 @@
1
+ import * as React from 'react';
2
+ import { jsx } from 'react/jsx-runtime';
3
+
4
+ // packages/react/compose-refs/src/compose-refs.tsx
5
+ function setRef(ref, value) {
6
+ if (typeof ref === "function") {
7
+ return ref(value);
8
+ } else if (ref !== null && ref !== void 0) {
9
+ ref.current = value;
10
+ }
11
+ }
12
+ function composeRefs(...refs) {
13
+ return (node) => {
14
+ let hasCleanup = false;
15
+ const cleanups = refs.map((ref) => {
16
+ const cleanup = setRef(ref, node);
17
+ if (!hasCleanup && typeof cleanup == "function") {
18
+ hasCleanup = true;
19
+ }
20
+ return cleanup;
21
+ });
22
+ if (hasCleanup) {
23
+ return () => {
24
+ for (let i = 0; i < cleanups.length; i++) {
25
+ const cleanup = cleanups[i];
26
+ if (typeof cleanup == "function") {
27
+ cleanup();
28
+ } else {
29
+ setRef(refs[i], null);
30
+ }
31
+ }
32
+ };
33
+ }
34
+ };
35
+ }
36
+ function useComposedRefs(...refs) {
37
+ return React.useCallback(composeRefs(...refs), refs);
38
+ }
39
+
40
+ // src/slot.tsx
41
+ // @__NO_SIDE_EFFECTS__
42
+ function createSlot(ownerName) {
43
+ const SlotClone = /* @__PURE__ */ createSlotClone(ownerName);
44
+ const Slot2 = React.forwardRef((props, forwardedRef) => {
45
+ const { children, ...slotProps } = props;
46
+ const childrenArray = React.Children.toArray(children);
47
+ const slottable = childrenArray.find(isSlottable);
48
+ if (slottable) {
49
+ const newElement = slottable.props.children;
50
+ const newChildren = childrenArray.map((child) => {
51
+ if (child === slottable) {
52
+ if (React.Children.count(newElement) > 1) return React.Children.only(null);
53
+ return React.isValidElement(newElement) ? newElement.props.children : null;
54
+ } else {
55
+ return child;
56
+ }
57
+ });
58
+ return /* @__PURE__ */ jsx(SlotClone, { ...slotProps, ref: forwardedRef, children: React.isValidElement(newElement) ? React.cloneElement(newElement, void 0, newChildren) : null });
59
+ }
60
+ return /* @__PURE__ */ jsx(SlotClone, { ...slotProps, ref: forwardedRef, children });
61
+ });
62
+ Slot2.displayName = `${ownerName}.Slot`;
63
+ return Slot2;
64
+ }
65
+ var Slot = /* @__PURE__ */ createSlot("Slot");
66
+ // @__NO_SIDE_EFFECTS__
67
+ function createSlotClone(ownerName) {
68
+ const SlotClone = React.forwardRef((props, forwardedRef) => {
69
+ const { children, ...slotProps } = props;
70
+ if (React.isValidElement(children)) {
71
+ const childrenRef = getElementRef(children);
72
+ const props2 = mergeProps(slotProps, children.props);
73
+ if (children.type !== React.Fragment) {
74
+ props2.ref = forwardedRef ? composeRefs(forwardedRef, childrenRef) : childrenRef;
75
+ }
76
+ return React.cloneElement(children, props2);
77
+ }
78
+ return React.Children.count(children) > 1 ? React.Children.only(null) : null;
79
+ });
80
+ SlotClone.displayName = `${ownerName}.SlotClone`;
81
+ return SlotClone;
82
+ }
83
+ var SLOTTABLE_IDENTIFIER = Symbol("radix.slottable");
84
+ function isSlottable(child) {
85
+ return React.isValidElement(child) && typeof child.type === "function" && "__radixId" in child.type && child.type.__radixId === SLOTTABLE_IDENTIFIER;
86
+ }
87
+ function mergeProps(slotProps, childProps) {
88
+ const overrideProps = { ...childProps };
89
+ for (const propName in childProps) {
90
+ const slotPropValue = slotProps[propName];
91
+ const childPropValue = childProps[propName];
92
+ const isHandler = /^on[A-Z]/.test(propName);
93
+ if (isHandler) {
94
+ if (slotPropValue && childPropValue) {
95
+ overrideProps[propName] = (...args) => {
96
+ const result = childPropValue(...args);
97
+ slotPropValue(...args);
98
+ return result;
99
+ };
100
+ } else if (slotPropValue) {
101
+ overrideProps[propName] = slotPropValue;
102
+ }
103
+ } else if (propName === "style") {
104
+ overrideProps[propName] = { ...slotPropValue, ...childPropValue };
105
+ } else if (propName === "className") {
106
+ overrideProps[propName] = [slotPropValue, childPropValue].filter(Boolean).join(" ");
107
+ }
108
+ }
109
+ return { ...slotProps, ...overrideProps };
110
+ }
111
+ function getElementRef(element) {
112
+ let getter = Object.getOwnPropertyDescriptor(element.props, "ref")?.get;
113
+ let mayWarn = getter && "isReactWarning" in getter && getter.isReactWarning;
114
+ if (mayWarn) {
115
+ return element.ref;
116
+ }
117
+ getter = Object.getOwnPropertyDescriptor(element, "ref")?.get;
118
+ mayWarn = getter && "isReactWarning" in getter && getter.isReactWarning;
119
+ if (mayWarn) {
120
+ return element.props.ref;
121
+ }
122
+ return element.props.ref || element.ref;
123
+ }
124
+
125
+ export { Slot as S, createSlot as c, useComposedRefs as u };
126
+ //# sourceMappingURL=index3.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index3.js","sources":["../node_modules/@radix-ui/react-compose-refs/dist/index.mjs","../node_modules/@radix-ui/react-slot/dist/index.mjs"],"sourcesContent":["// packages/react/compose-refs/src/compose-refs.tsx\nimport * as React from \"react\";\nfunction setRef(ref, value) {\n if (typeof ref === \"function\") {\n return ref(value);\n } else if (ref !== null && ref !== void 0) {\n ref.current = value;\n }\n}\nfunction composeRefs(...refs) {\n return (node) => {\n let hasCleanup = false;\n const cleanups = refs.map((ref) => {\n const cleanup = setRef(ref, node);\n if (!hasCleanup && typeof cleanup == \"function\") {\n hasCleanup = true;\n }\n return cleanup;\n });\n if (hasCleanup) {\n return () => {\n for (let i = 0; i < cleanups.length; i++) {\n const cleanup = cleanups[i];\n if (typeof cleanup == \"function\") {\n cleanup();\n } else {\n setRef(refs[i], null);\n }\n }\n };\n }\n };\n}\nfunction useComposedRefs(...refs) {\n return React.useCallback(composeRefs(...refs), refs);\n}\nexport {\n composeRefs,\n useComposedRefs\n};\n//# sourceMappingURL=index.mjs.map\n","// src/slot.tsx\nimport * as React from \"react\";\nimport { composeRefs } from \"@radix-ui/react-compose-refs\";\nimport { Fragment as Fragment2, jsx } from \"react/jsx-runtime\";\n// @__NO_SIDE_EFFECTS__\nfunction createSlot(ownerName) {\n const SlotClone = /* @__PURE__ */ createSlotClone(ownerName);\n const Slot2 = React.forwardRef((props, forwardedRef) => {\n const { children, ...slotProps } = props;\n const childrenArray = React.Children.toArray(children);\n const slottable = childrenArray.find(isSlottable);\n if (slottable) {\n const newElement = slottable.props.children;\n const newChildren = childrenArray.map((child) => {\n if (child === slottable) {\n if (React.Children.count(newElement) > 1) return React.Children.only(null);\n return React.isValidElement(newElement) ? newElement.props.children : null;\n } else {\n return child;\n }\n });\n return /* @__PURE__ */ jsx(SlotClone, { ...slotProps, ref: forwardedRef, children: React.isValidElement(newElement) ? React.cloneElement(newElement, void 0, newChildren) : null });\n }\n return /* @__PURE__ */ jsx(SlotClone, { ...slotProps, ref: forwardedRef, children });\n });\n Slot2.displayName = `${ownerName}.Slot`;\n return Slot2;\n}\nvar Slot = /* @__PURE__ */ createSlot(\"Slot\");\n// @__NO_SIDE_EFFECTS__\nfunction createSlotClone(ownerName) {\n const SlotClone = React.forwardRef((props, forwardedRef) => {\n const { children, ...slotProps } = props;\n if (React.isValidElement(children)) {\n const childrenRef = getElementRef(children);\n const props2 = mergeProps(slotProps, children.props);\n if (children.type !== React.Fragment) {\n props2.ref = forwardedRef ? composeRefs(forwardedRef, childrenRef) : childrenRef;\n }\n return React.cloneElement(children, props2);\n }\n return React.Children.count(children) > 1 ? React.Children.only(null) : null;\n });\n SlotClone.displayName = `${ownerName}.SlotClone`;\n return SlotClone;\n}\nvar SLOTTABLE_IDENTIFIER = Symbol(\"radix.slottable\");\n// @__NO_SIDE_EFFECTS__\nfunction createSlottable(ownerName) {\n const Slottable2 = ({ children }) => {\n return /* @__PURE__ */ jsx(Fragment2, { children });\n };\n Slottable2.displayName = `${ownerName}.Slottable`;\n Slottable2.__radixId = SLOTTABLE_IDENTIFIER;\n return Slottable2;\n}\nvar Slottable = /* @__PURE__ */ createSlottable(\"Slottable\");\nfunction isSlottable(child) {\n return React.isValidElement(child) && typeof child.type === \"function\" && \"__radixId\" in child.type && child.type.__radixId === SLOTTABLE_IDENTIFIER;\n}\nfunction mergeProps(slotProps, childProps) {\n const overrideProps = { ...childProps };\n for (const propName in childProps) {\n const slotPropValue = slotProps[propName];\n const childPropValue = childProps[propName];\n const isHandler = /^on[A-Z]/.test(propName);\n if (isHandler) {\n if (slotPropValue && childPropValue) {\n overrideProps[propName] = (...args) => {\n const result = childPropValue(...args);\n slotPropValue(...args);\n return result;\n };\n } else if (slotPropValue) {\n overrideProps[propName] = slotPropValue;\n }\n } else if (propName === \"style\") {\n overrideProps[propName] = { ...slotPropValue, ...childPropValue };\n } else if (propName === \"className\") {\n overrideProps[propName] = [slotPropValue, childPropValue].filter(Boolean).join(\" \");\n }\n }\n return { ...slotProps, ...overrideProps };\n}\nfunction getElementRef(element) {\n let getter = Object.getOwnPropertyDescriptor(element.props, \"ref\")?.get;\n let mayWarn = getter && \"isReactWarning\" in getter && getter.isReactWarning;\n if (mayWarn) {\n return element.ref;\n }\n getter = Object.getOwnPropertyDescriptor(element, \"ref\")?.get;\n mayWarn = getter && \"isReactWarning\" in getter && getter.isReactWarning;\n if (mayWarn) {\n return element.props.ref;\n }\n return element.props.ref || element.ref;\n}\nexport {\n Slot as Root,\n Slot,\n Slottable,\n createSlot,\n createSlottable\n};\n//# sourceMappingURL=index.mjs.map\n"],"names":[],"mappings":";;;AAAA;AAEA,SAAS,MAAM,CAAC,GAAG,EAAE,KAAK,EAAE;AAC5B,EAAE,IAAI,OAAO,GAAG,KAAK,UAAU,EAAE;AACjC,IAAI,OAAO,GAAG,CAAC,KAAK,CAAC;AACrB,EAAE,CAAC,MAAM,IAAI,GAAG,KAAK,IAAI,IAAI,GAAG,KAAK,MAAM,EAAE;AAC7C,IAAI,GAAG,CAAC,OAAO,GAAG,KAAK;AACvB,EAAE;AACF;AACA,SAAS,WAAW,CAAC,GAAG,IAAI,EAAE;AAC9B,EAAE,OAAO,CAAC,IAAI,KAAK;AACnB,IAAI,IAAI,UAAU,GAAG,KAAK;AAC1B,IAAI,MAAM,QAAQ,GAAG,IAAI,CAAC,GAAG,CAAC,CAAC,GAAG,KAAK;AACvC,MAAM,MAAM,OAAO,GAAG,MAAM,CAAC,GAAG,EAAE,IAAI,CAAC;AACvC,MAAM,IAAI,CAAC,UAAU,IAAI,OAAO,OAAO,IAAI,UAAU,EAAE;AACvD,QAAQ,UAAU,GAAG,IAAI;AACzB,MAAM;AACN,MAAM,OAAO,OAAO;AACpB,IAAI,CAAC,CAAC;AACN,IAAI,IAAI,UAAU,EAAE;AACpB,MAAM,OAAO,MAAM;AACnB,QAAQ,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,QAAQ,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE;AAClD,UAAU,MAAM,OAAO,GAAG,QAAQ,CAAC,CAAC,CAAC;AACrC,UAAU,IAAI,OAAO,OAAO,IAAI,UAAU,EAAE;AAC5C,YAAY,OAAO,EAAE;AACrB,UAAU,CAAC,MAAM;AACjB,YAAY,MAAM,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,IAAI,CAAC;AACjC,UAAU;AACV,QAAQ;AACR,MAAM,CAAC;AACP,IAAI;AACJ,EAAE,CAAC;AACH;AACA,SAAS,eAAe,CAAC,GAAG,IAAI,EAAE;AAClC,EAAE,OAAO,KAAK,CAAC,WAAW,CAAC,WAAW,CAAC,GAAG,IAAI,CAAC,EAAE,IAAI,CAAC;AACtD;;ACnCA;AAIA;AACA,SAAS,UAAU,CAAC,SAAS,EAAE;AAC/B,EAAE,MAAM,SAAS,mBAAmB,eAAe,CAAC,SAAS,CAAC;AAC9D,EAAE,MAAM,KAAK,GAAG,KAAK,CAAC,UAAU,CAAC,CAAC,KAAK,EAAE,YAAY,KAAK;AAC1D,IAAI,MAAM,EAAE,QAAQ,EAAE,GAAG,SAAS,EAAE,GAAG,KAAK;AAC5C,IAAI,MAAM,aAAa,GAAG,KAAK,CAAC,QAAQ,CAAC,OAAO,CAAC,QAAQ,CAAC;AAC1D,IAAI,MAAM,SAAS,GAAG,aAAa,CAAC,IAAI,CAAC,WAAW,CAAC;AACrD,IAAI,IAAI,SAAS,EAAE;AACnB,MAAM,MAAM,UAAU,GAAG,SAAS,CAAC,KAAK,CAAC,QAAQ;AACjD,MAAM,MAAM,WAAW,GAAG,aAAa,CAAC,GAAG,CAAC,CAAC,KAAK,KAAK;AACvD,QAAQ,IAAI,KAAK,KAAK,SAAS,EAAE;AACjC,UAAU,IAAI,KAAK,CAAC,QAAQ,CAAC,KAAK,CAAC,UAAU,CAAC,GAAG,CAAC,EAAE,OAAO,KAAK,CAAC,QAAQ,CAAC,IAAI,CAAC,IAAI,CAAC;AACpF,UAAU,OAAO,KAAK,CAAC,cAAc,CAAC,UAAU,CAAC,GAAG,UAAU,CAAC,KAAK,CAAC,QAAQ,GAAG,IAAI;AACpF,QAAQ,CAAC,MAAM;AACf,UAAU,OAAO,KAAK;AACtB,QAAQ;AACR,MAAM,CAAC,CAAC;AACR,MAAM,uBAAuB,GAAG,CAAC,SAAS,EAAE,EAAE,GAAG,SAAS,EAAE,GAAG,EAAE,YAAY,EAAE,QAAQ,EAAE,KAAK,CAAC,cAAc,CAAC,UAAU,CAAC,GAAG,KAAK,CAAC,YAAY,CAAC,UAAU,EAAE,MAAM,EAAE,WAAW,CAAC,GAAG,IAAI,EAAE,CAAC;AACzL,IAAI;AACJ,IAAI,uBAAuB,GAAG,CAAC,SAAS,EAAE,EAAE,GAAG,SAAS,EAAE,GAAG,EAAE,YAAY,EAAE,QAAQ,EAAE,CAAC;AACxF,EAAE,CAAC,CAAC;AACJ,EAAE,KAAK,CAAC,WAAW,GAAG,CAAC,EAAE,SAAS,CAAC,KAAK,CAAC;AACzC,EAAE,OAAO,KAAK;AACd;AACG,IAAC,IAAI,mBAAmB,UAAU,CAAC,MAAM;AAC5C;AACA,SAAS,eAAe,CAAC,SAAS,EAAE;AACpC,EAAE,MAAM,SAAS,GAAG,KAAK,CAAC,UAAU,CAAC,CAAC,KAAK,EAAE,YAAY,KAAK;AAC9D,IAAI,MAAM,EAAE,QAAQ,EAAE,GAAG,SAAS,EAAE,GAAG,KAAK;AAC5C,IAAI,IAAI,KAAK,CAAC,cAAc,CAAC,QAAQ,CAAC,EAAE;AACxC,MAAM,MAAM,WAAW,GAAG,aAAa,CAAC,QAAQ,CAAC;AACjD,MAAM,MAAM,MAAM,GAAG,UAAU,CAAC,SAAS,EAAE,QAAQ,CAAC,KAAK,CAAC;AAC1D,MAAM,IAAI,QAAQ,CAAC,IAAI,KAAK,KAAK,CAAC,QAAQ,EAAE;AAC5C,QAAQ,MAAM,CAAC,GAAG,GAAG,YAAY,GAAG,WAAW,CAAC,YAAY,EAAE,WAAW,CAAC,GAAG,WAAW;AACxF,MAAM;AACN,MAAM,OAAO,KAAK,CAAC,YAAY,CAAC,QAAQ,EAAE,MAAM,CAAC;AACjD,IAAI;AACJ,IAAI,OAAO,KAAK,CAAC,QAAQ,CAAC,KAAK,CAAC,QAAQ,CAAC,GAAG,CAAC,GAAG,KAAK,CAAC,QAAQ,CAAC,IAAI,CAAC,IAAI,CAAC,GAAG,IAAI;AAChF,EAAE,CAAC,CAAC;AACJ,EAAE,SAAS,CAAC,WAAW,GAAG,CAAC,EAAE,SAAS,CAAC,UAAU,CAAC;AAClD,EAAE,OAAO,SAAS;AAClB;AACA,IAAI,oBAAoB,GAAG,MAAM,CAAC,iBAAiB,CAAC;AAWpD,SAAS,WAAW,CAAC,KAAK,EAAE;AAC5B,EAAE,OAAO,KAAK,CAAC,cAAc,CAAC,KAAK,CAAC,IAAI,OAAO,KAAK,CAAC,IAAI,KAAK,UAAU,IAAI,WAAW,IAAI,KAAK,CAAC,IAAI,IAAI,KAAK,CAAC,IAAI,CAAC,SAAS,KAAK,oBAAoB;AACtJ;AACA,SAAS,UAAU,CAAC,SAAS,EAAE,UAAU,EAAE;AAC3C,EAAE,MAAM,aAAa,GAAG,EAAE,GAAG,UAAU,EAAE;AACzC,EAAE,KAAK,MAAM,QAAQ,IAAI,UAAU,EAAE;AACrC,IAAI,MAAM,aAAa,GAAG,SAAS,CAAC,QAAQ,CAAC;AAC7C,IAAI,MAAM,cAAc,GAAG,UAAU,CAAC,QAAQ,CAAC;AAC/C,IAAI,MAAM,SAAS,GAAG,UAAU,CAAC,IAAI,CAAC,QAAQ,CAAC;AAC/C,IAAI,IAAI,SAAS,EAAE;AACnB,MAAM,IAAI,aAAa,IAAI,cAAc,EAAE;AAC3C,QAAQ,aAAa,CAAC,QAAQ,CAAC,GAAG,CAAC,GAAG,IAAI,KAAK;AAC/C,UAAU,MAAM,MAAM,GAAG,cAAc,CAAC,GAAG,IAAI,CAAC;AAChD,UAAU,aAAa,CAAC,GAAG,IAAI,CAAC;AAChC,UAAU,OAAO,MAAM;AACvB,QAAQ,CAAC;AACT,MAAM,CAAC,MAAM,IAAI,aAAa,EAAE;AAChC,QAAQ,aAAa,CAAC,QAAQ,CAAC,GAAG,aAAa;AAC/C,MAAM;AACN,IAAI,CAAC,MAAM,IAAI,QAAQ,KAAK,OAAO,EAAE;AACrC,MAAM,aAAa,CAAC,QAAQ,CAAC,GAAG,EAAE,GAAG,aAAa,EAAE,GAAG,cAAc,EAAE;AACvE,IAAI,CAAC,MAAM,IAAI,QAAQ,KAAK,WAAW,EAAE;AACzC,MAAM,aAAa,CAAC,QAAQ,CAAC,GAAG,CAAC,aAAa,EAAE,cAAc,CAAC,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC;AACzF,IAAI;AACJ,EAAE;AACF,EAAE,OAAO,EAAE,GAAG,SAAS,EAAE,GAAG,aAAa,EAAE;AAC3C;AACA,SAAS,aAAa,CAAC,OAAO,EAAE;AAChC,EAAE,IAAI,MAAM,GAAG,MAAM,CAAC,wBAAwB,CAAC,OAAO,CAAC,KAAK,EAAE,KAAK,CAAC,EAAE,GAAG;AACzE,EAAE,IAAI,OAAO,GAAG,MAAM,IAAI,gBAAgB,IAAI,MAAM,IAAI,MAAM,CAAC,cAAc;AAC7E,EAAE,IAAI,OAAO,EAAE;AACf,IAAI,OAAO,OAAO,CAAC,GAAG;AACtB,EAAE;AACF,EAAE,MAAM,GAAG,MAAM,CAAC,wBAAwB,CAAC,OAAO,EAAE,KAAK,CAAC,EAAE,GAAG;AAC/D,EAAE,OAAO,GAAG,MAAM,IAAI,gBAAgB,IAAI,MAAM,IAAI,MAAM,CAAC,cAAc;AACzE,EAAE,IAAI,OAAO,EAAE;AACf,IAAI,OAAO,OAAO,CAAC,KAAK,CAAC,GAAG;AAC5B,EAAE;AACF,EAAE,OAAO,OAAO,CAAC,KAAK,CAAC,GAAG,IAAI,OAAO,CAAC,GAAG;AACzC;;;;","x_google_ignoreList":[0,1]}