@vritti/quantum-ui 0.1.10 → 0.1.12

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (60) hide show
  1. package/dist/AuthProvider.d.ts +25 -2
  2. package/dist/Button.js +3 -43
  3. package/dist/Button.js.map +1 -1
  4. package/dist/Checkbox.d.ts +10 -1
  5. package/dist/Checkbox.js +35 -7
  6. package/dist/Checkbox.js.map +1 -1
  7. package/dist/Form.d.ts +21 -0
  8. package/dist/Form.js +662 -0
  9. package/dist/Form.js.map +1 -0
  10. package/dist/OTPField.d.ts +3 -3
  11. package/dist/OTPField.js +135 -0
  12. package/dist/OTPField.js.map +1 -0
  13. package/dist/OnboardingProvider.js +91 -0
  14. package/dist/OnboardingProvider.js.map +1 -0
  15. package/dist/PasswordField.d.ts +3 -3
  16. package/dist/PasswordField.js +63 -57
  17. package/dist/PasswordField.js.map +1 -1
  18. package/dist/PhoneField.d.ts +3 -3
  19. package/dist/PhoneField.js +55 -58
  20. package/dist/PhoneField.js.map +1 -1
  21. package/dist/TextArea.d.ts +11 -0
  22. package/dist/TextArea.js +54 -0
  23. package/dist/TextArea.js.map +1 -0
  24. package/dist/TextField.d.ts +3 -3
  25. package/dist/TextField.js +26 -39
  26. package/dist/TextField.js.map +1 -1
  27. package/dist/assets/quantum-ui.css +126 -1
  28. package/dist/components/Form.d.ts +2 -0
  29. package/dist/components/Form.js +2 -0
  30. package/dist/components/Form.js.map +1 -0
  31. package/dist/components/OTPField.js +1 -134
  32. package/dist/components/OTPField.js.map +1 -1
  33. package/dist/components/Progress.js +2 -2
  34. package/dist/components/TextArea.d.ts +2 -0
  35. package/dist/components/TextArea.js +2 -0
  36. package/dist/components/TextArea.js.map +1 -0
  37. package/dist/context/AuthProvider.d.ts +2 -7
  38. package/dist/context/AuthProvider.js +1 -1
  39. package/dist/field.js +431 -0
  40. package/dist/field.js.map +1 -0
  41. package/dist/index.d.ts +320 -27
  42. package/dist/index.js +5 -1
  43. package/dist/index.js.map +1 -1
  44. package/dist/index2.js +116 -54
  45. package/dist/index2.js.map +1 -1
  46. package/dist/index3.js +42 -38
  47. package/dist/index3.js.map +1 -1
  48. package/dist/index4.js +54 -116
  49. package/dist/index4.js.map +1 -1
  50. package/dist/index5.js +41 -0
  51. package/dist/index5.js.map +1 -0
  52. package/dist/shadcn/shadcnField.d.ts +1 -0
  53. package/dist/shadcn/shadcnField.js +2 -0
  54. package/dist/shadcn/shadcnField.js.map +1 -0
  55. package/dist/shadcnField.d.ts +1 -0
  56. package/package.json +21 -4
  57. package/dist/AuthProvider.js +0 -137
  58. package/dist/AuthProvider.js.map +0 -1
  59. package/dist/Label.js +0 -40
  60. package/dist/Label.js.map +0 -1
package/dist/index.d.ts CHANGED
@@ -1,31 +1,18 @@
1
1
  import * as CheckboxPrimitive from '@radix-ui/react-checkbox';
2
2
  import { ClassValue } from 'clsx';
3
3
  import { Context } from 'react';
4
+ import { Controller } from 'react-hook-form';
4
5
  import { Country } from 'react-phone-number-input';
5
6
  import { default as default_2 } from 'react';
7
+ import { FieldValues } from 'react-hook-form';
6
8
  import { isValidPhoneNumber } from 'react-phone-number-input';
9
+ import { JSX } from 'react/jsx-runtime';
10
+ import * as LabelPrimitive from '@radix-ui/react-label';
7
11
  import { Value as PhoneValue } from 'react-phone-number-input';
8
12
  import * as React_2 from 'react';
13
+ import { UseFormReturn } from 'react-hook-form';
9
14
  import { VariantProps } from 'class-variance-authority';
10
15
 
11
- export declare const AuthContext: Context<AuthContextType | undefined>;
12
-
13
- export declare interface AuthContextType {
14
- accessToken: string | null;
15
- isAuthenticated: boolean;
16
- isLoading: boolean;
17
- error: string | null;
18
- refreshToken: () => Promise<void>;
19
- logout: () => void;
20
- setToken: (token: string) => void;
21
- }
22
-
23
- export declare const AuthProvider: default_2.FC<AuthProviderProps>;
24
-
25
- declare interface AuthProviderProps {
26
- children: default_2.ReactNode;
27
- }
28
-
29
16
  export declare function Button({
30
17
  className,
31
18
  variant,
@@ -110,7 +97,9 @@ export declare function CardTitle({ className, ...props }: React_2.ComponentProp
110
97
  return <div data-slot='card-title' className={cn('leading-none font-semibold', className)} {...props} />;
111
98
  }
112
99
 
113
- export declare function Checkbox({
100
+ export declare const Checkbox: default_2.ForwardRefExoticComponent<CheckboxProps & default_2.RefAttributes<HTMLButtonElement>>;
101
+
102
+ declare function Checkbox_2({
114
103
  className,
115
104
  ...props
116
105
  }: React_2.ComponentProps<typeof CheckboxPrimitive.Root>) {
@@ -133,13 +122,309 @@ export declare function Checkbox({
133
122
  )
134
123
  }
135
124
 
125
+ declare interface CheckboxProps extends default_2.ComponentPropsWithoutRef<typeof Checkbox_2> {
126
+ label?: default_2.ReactNode;
127
+ description?: default_2.ReactNode;
128
+ error?: string;
129
+ }
130
+
136
131
  export declare function cn(...inputs: ClassValue[]) {
137
132
  return twMerge(clsx(inputs));
138
133
  }
139
134
 
135
+ export { Controller }
136
+
137
+ export declare function Field({
138
+ className,
139
+ orientation = "vertical",
140
+ ...props
141
+ }: React.ComponentProps<"div"> & VariantProps<typeof fieldVariants>) {
142
+ return (
143
+ <div
144
+ role="group"
145
+ data-slot="field"
146
+ data-orientation={orientation}
147
+ className={cn(fieldVariants({ orientation }), className)}
148
+ {...props}
149
+ />
150
+ )
151
+ }
152
+
153
+ export declare function FieldContent({ className, ...props }: React.ComponentProps<"div">) {
154
+ return (
155
+ <div
156
+ data-slot="field-content"
157
+ className={cn(
158
+ "group/field-content flex flex-1 flex-col gap-1.5 leading-snug",
159
+ className
160
+ )}
161
+ {...props}
162
+ />
163
+ )
164
+ }
165
+
166
+ export declare function FieldDescription({ className, ...props }: React.ComponentProps<"p">) {
167
+ return (
168
+ <p
169
+ data-slot="field-description"
170
+ className={cn(
171
+ "text-muted-foreground text-sm leading-normal font-normal group-has-[[data-orientation=horizontal]]/field:text-balance",
172
+ "last:mt-0 nth-last-2:-mt-1 [[data-variant=legend]+&]:-mt-1.5",
173
+ "[&>a:hover]:text-primary [&>a]:underline [&>a]:underline-offset-4",
174
+ className
175
+ )}
176
+ {...props}
177
+ />
178
+ )
179
+ }
180
+
181
+ export declare function FieldError({
182
+ className,
183
+ children,
184
+ errors,
185
+ ...props
186
+ }: React.ComponentProps<"div"> & {
187
+ errors?: Array<{ message?: string } | undefined>
188
+ }) {
189
+ const content = useMemo(() => {
190
+ if (children) {
191
+ return children
192
+ }
193
+
194
+ if (!errors?.length) {
195
+ return null
196
+ }
197
+
198
+ if (errors?.length == 1) {
199
+ return errors[0]?.message
200
+ }
201
+
202
+ return (
203
+ <ul className="ml-4 flex list-disc flex-col gap-1">
204
+ {errors.map(
205
+ (error, index) =>
206
+ error?.message && <li key={index}>{error.message}</li>
207
+ )}
208
+ </ul>
209
+ )
210
+ }, [children, errors])
211
+
212
+ if (!content) {
213
+ return null
214
+ }
215
+
216
+ return (
217
+ <div
218
+ role="alert"
219
+ data-slot="field-error"
220
+ className={cn("text-destructive text-sm font-normal", className)}
221
+ {...props}
222
+ >
223
+ {content}
224
+ </div>
225
+ )
226
+ }
227
+
228
+ export declare function FieldGroup({ className, ...props }: React.ComponentProps<"div">) {
229
+ return (
230
+ <div
231
+ data-slot="field-group"
232
+ className={cn(
233
+ "group/field-group @container/field-group flex w-full flex-col gap-7 data-[slot=checkbox-group]:gap-3 [&>[data-slot=field-group]]:gap-4",
234
+ className
235
+ )}
236
+ {...props}
237
+ />
238
+ )
239
+ }
240
+
241
+ export declare function FieldLabel({
242
+ className,
243
+ ...props
244
+ }: React.ComponentProps<typeof Label>) {
245
+ return (
246
+ <Label
247
+ data-slot="field-label"
248
+ className={cn(
249
+ "group/field-label peer/field-label flex w-fit gap-2 leading-snug group-data-[disabled=true]/field:opacity-50",
250
+ "has-[>[data-slot=field]]:w-full has-[>[data-slot=field]]:flex-col has-[>[data-slot=field]]:rounded-md has-[>[data-slot=field]]:border [&>*]:data-[slot=field]:p-4",
251
+ "has-data-[state=checked]:bg-primary/5 has-data-[state=checked]:border-primary dark:has-data-[state=checked]:bg-primary/10",
252
+ className
253
+ )}
254
+ {...props}
255
+ />
256
+ )
257
+ }
258
+
259
+ export declare function FieldLegend({
260
+ className,
261
+ variant = "legend",
262
+ ...props
263
+ }: React.ComponentProps<"legend"> & { variant?: "legend" | "label" }) {
264
+ return (
265
+ <legend
266
+ data-slot="field-legend"
267
+ data-variant={variant}
268
+ className={cn(
269
+ "mb-3 font-medium",
270
+ "data-[variant=legend]:text-base",
271
+ "data-[variant=label]:text-sm",
272
+ className
273
+ )}
274
+ {...props}
275
+ />
276
+ )
277
+ }
278
+
279
+ export declare function FieldSeparator({
280
+ children,
281
+ className,
282
+ ...props
283
+ }: React.ComponentProps<"div"> & {
284
+ children?: React.ReactNode
285
+ }) {
286
+ return (
287
+ <div
288
+ data-slot="field-separator"
289
+ data-content={!!children}
290
+ className={cn(
291
+ "relative -my-2 h-5 text-sm group-data-[variant=outline]/field-group:-mb-2",
292
+ className
293
+ )}
294
+ {...props}
295
+ >
296
+ <Separator className="absolute inset-0 top-1/2" />
297
+ {children && (
298
+ <span
299
+ className="bg-background text-muted-foreground relative mx-auto block w-fit px-2"
300
+ data-slot="field-separator-content"
301
+ >
302
+ {children}
303
+ </span>
304
+ )}
305
+ </div>
306
+ )
307
+ }
308
+
309
+ export declare function FieldSet({ className, ...props }: React.ComponentProps<"fieldset">) {
310
+ return (
311
+ <fieldset
312
+ data-slot="field-set"
313
+ className={cn(
314
+ "flex flex-col gap-6",
315
+ "has-[>[data-slot=checkbox-group]]:gap-3 has-[>[data-slot=radio-group]]:gap-3",
316
+ className
317
+ )}
318
+ {...props}
319
+ />
320
+ )
321
+ }
322
+
323
+ export declare function FieldTitle({ className, ...props }: React.ComponentProps<"div">) {
324
+ return (
325
+ <div
326
+ data-slot="field-label"
327
+ className={cn(
328
+ "flex w-fit items-center gap-2 text-sm leading-snug font-medium group-data-[disabled=true]/field:opacity-50",
329
+ className
330
+ )}
331
+ {...props}
332
+ />
333
+ )
334
+ }
335
+
336
+ declare const fieldVariants = cva(
337
+ "group/field flex w-full gap-3 data-[invalid=true]:text-destructive",
338
+ {
339
+ variants: {
340
+ orientation: {
341
+ vertical: ["flex-col [&>*]:w-full [&>.sr-only]:w-auto"],
342
+ horizontal: [
343
+ "flex-row items-center",
344
+ "[&>[data-slot=field-label]]:flex-auto",
345
+ "has-[>[data-slot=field-content]]:items-start has-[>[data-slot=field-content]]:[&>[role=checkbox],[role=radio]]:mt-px",
346
+ ],
347
+ responsive: [
348
+ "flex-col [&>*]:w-full [&>.sr-only]:w-auto @md/field-group:flex-row @md/field-group:items-center @md/field-group:[&>*]:w-auto",
349
+ "@md/field-group:[&>[data-slot=field-label]]:flex-auto",
350
+ "@md/field-group:has-[>[data-slot=field-content]]:items-start @md/field-group:has-[>[data-slot=field-content]]:[&>[role=checkbox],[role=radio]]:mt-px",
351
+ ],
352
+ },
353
+ },
354
+ defaultVariants: {
355
+ orientation: "vertical",
356
+ },
357
+ }
358
+ );
359
+
360
+ export declare function Form<TFieldValues extends FieldValues = FieldValues>({ form, onSubmit, children, ...props }: FormProps<TFieldValues>): JSX.Element;
361
+
362
+ export declare namespace Form {
363
+ var displayName: string;
364
+ }
365
+
366
+ export declare interface FormProps<TFieldValues extends FieldValues = FieldValues> extends Omit<default_2.FormHTMLAttributes<HTMLFormElement>, 'onSubmit'> {
367
+ form: UseFormReturn<TFieldValues>;
368
+ onSubmit: (data: TFieldValues) => void | Promise<void>;
369
+ children: default_2.ReactNode;
370
+ }
371
+
140
372
  export { isValidPhoneNumber }
141
373
 
142
- export declare const PasswordField: default_2.FC<PasswordFieldProps>;
374
+ declare function Label({ className, ...props }: React_2.ComponentProps<typeof LabelPrimitive.Root>) {
375
+ return (
376
+ <LabelPrimitive.Root
377
+ data-slot='label'
378
+ className={cn(
379
+ 'flex items-center gap-2 text-sm leading-none font-medium select-none group-data-[disabled=true]:pointer-events-none group-data-[disabled=true]:opacity-50 peer-disabled:cursor-not-allowed peer-disabled:opacity-50',
380
+ className
381
+ )}
382
+ {...props}
383
+ />
384
+ );
385
+ }
386
+
387
+ export declare const OnboardingContext: Context<OnboardingContextType | undefined>;
388
+
389
+ export declare interface OnboardingContextType extends OnboardingData {
390
+ onboardingToken: string | null;
391
+ isLoading: boolean;
392
+ error: string | null;
393
+ }
394
+
395
+ export declare interface OnboardingData {
396
+ userId: string;
397
+ email: string;
398
+ firstName: string;
399
+ lastName: string;
400
+ currentStep: string;
401
+ onboardingComplete: boolean;
402
+ accountStatus: string;
403
+ emailVerified: boolean;
404
+ phoneVerified: boolean;
405
+ }
406
+
407
+ export declare const OnboardingProvider: default_2.FC<OnboardingProviderProps>;
408
+
409
+ declare interface OnboardingProviderProps {
410
+ children: default_2.ReactNode;
411
+ }
412
+
413
+ export declare const OTPField: default_2.ForwardRefExoticComponent<OTPFieldProps & default_2.RefAttributes<HTMLInputElement>>;
414
+
415
+ export declare interface OTPFieldProps {
416
+ value: string;
417
+ onChange: (value: string) => void;
418
+ length?: number;
419
+ label?: string;
420
+ description?: default_2.ReactNode;
421
+ error?: string;
422
+ disabled?: boolean;
423
+ required?: boolean;
424
+ className?: string;
425
+ }
426
+
427
+ export declare const PasswordField: default_2.ForwardRefExoticComponent<Omit<PasswordFieldProps, "ref"> & default_2.RefAttributes<HTMLInputElement>>;
143
428
 
144
429
  declare interface PasswordFieldProps extends Omit<TextFieldProps, 'type' | 'endAdornment'> {
145
430
  showStrengthIndicator?: boolean;
@@ -148,15 +433,15 @@ declare interface PasswordFieldProps extends Omit<TextFieldProps, 'type' | 'endA
148
433
  toggleAriaLabel?: string;
149
434
  }
150
435
 
151
- export declare const PhoneField: default_2.FC<PhoneFieldProps>;
436
+ export declare const PhoneField: default_2.ForwardRefExoticComponent<PhoneFieldProps & default_2.RefAttributes<HTMLInputElement>>;
152
437
 
153
438
  export declare interface PhoneFieldProps {
154
439
  value?: PhoneValue;
155
440
  onChange: (value: PhoneValue | undefined) => void;
156
441
  defaultCountry?: Country;
157
442
  label?: string;
158
- message?: string;
159
- error?: boolean;
443
+ description?: default_2.ReactNode;
444
+ error?: string;
160
445
  disabled?: boolean;
161
446
  className?: string;
162
447
  placeholder?: string;
@@ -164,12 +449,20 @@ export declare interface PhoneFieldProps {
164
449
 
165
450
  export { PhoneValue }
166
451
 
167
- export declare const TextField: default_2.FC<TextFieldProps>;
452
+ export declare const TextArea: default_2.ForwardRefExoticComponent<Omit<TextAreaProps, "ref"> & default_2.RefAttributes<HTMLTextAreaElement>>;
453
+
454
+ export declare interface TextAreaProps extends default_2.ComponentProps<'textarea'> {
455
+ label?: string;
456
+ description?: default_2.ReactNode;
457
+ error?: string;
458
+ }
459
+
460
+ export declare const TextField: default_2.ForwardRefExoticComponent<Omit<TextFieldProps, "ref"> & default_2.RefAttributes<HTMLInputElement>>;
168
461
 
169
462
  declare interface TextFieldProps extends default_2.ComponentProps<'input'> {
170
463
  label?: string;
171
- message?: default_2.ReactNode;
172
- error?: boolean;
464
+ description?: default_2.ReactNode;
465
+ error?: string;
173
466
  startAdornment?: default_2.ReactNode;
174
467
  endAdornment?: default_2.ReactNode;
175
468
  }
@@ -191,6 +484,6 @@ declare interface TypographyProps {
191
484
  className?: string;
192
485
  }
193
486
 
194
- export declare const useAuth: () => AuthContextType;
487
+ export declare const useOnboarding: () => OnboardingContextType;
195
488
 
196
489
  export { }
package/dist/index.js CHANGED
@@ -1,4 +1,4 @@
1
- export { A as AuthContext, a as AuthProvider, u as useAuth } from './AuthProvider.js';
1
+ export { O as OnboardingContext, a as OnboardingProvider, u as useOnboarding } from './OnboardingProvider.js';
2
2
  export { c as cn } from './utils.js';
3
3
  export { B as Button, b as buttonVariants } from './Button.js';
4
4
  export { C as Card, a as CardContent, b as CardDescription, c as CardFooter, d as CardHeader, e as CardTitle } from './Card.js';
@@ -6,6 +6,10 @@ export { C as Checkbox } from './Checkbox.js';
6
6
  export { T as TextField } from './TextField.js';
7
7
  export { P as PasswordField } from './PasswordField.js';
8
8
  export { P as PhoneField, i as isValidPhoneNumber } from './PhoneField.js';
9
+ export { O as OTPField } from './OTPField.js';
10
+ export { T as TextArea } from './TextArea.js';
9
11
  export { T as ThemeToggle } from './ThemeToggle.js';
10
12
  export { T as Typography } from './Typography.js';
13
+ export { C as Controller, F as Form } from './Form.js';
14
+ export { F as Field, h as FieldContent, b as FieldDescription, c as FieldError, d as FieldGroup, a as FieldLabel, e as FieldLegend, f as FieldSeparator, g as FieldSet, i as FieldTitle } from './field.js';
11
15
  //# sourceMappingURL=index.js.map
package/dist/index.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sources":[],"sourcesContent":[],"names":[],"mappings":";;;;;;;;;"}
1
+ {"version":3,"file":"index.js","sources":[],"sourcesContent":[],"names":[],"mappings":";;;;;;;;;;;;;"}
package/dist/index2.js CHANGED
@@ -1,64 +1,126 @@
1
1
  import * as React from 'react';
2
2
  import { jsx } from 'react/jsx-runtime';
3
3
 
4
- // packages/react/context/src/create-context.tsx
5
- function createContextScope(scopeName, createContextScopeDeps = []) {
6
- let defaultContexts = [];
7
- function createContext3(rootComponentName, defaultContext) {
8
- const BaseContext = React.createContext(defaultContext);
9
- const index = defaultContexts.length;
10
- defaultContexts = [...defaultContexts, defaultContext];
11
- const Provider = (props) => {
12
- const { scope, children, ...context } = props;
13
- const Context = scope?.[scopeName]?.[index] || BaseContext;
14
- const value = React.useMemo(() => context, Object.values(context));
15
- return /* @__PURE__ */ jsx(Context.Provider, { value, children });
16
- };
17
- Provider.displayName = rootComponentName + "Provider";
18
- function useContext2(consumerName, scope) {
19
- const Context = scope?.[scopeName]?.[index] || BaseContext;
20
- const context = React.useContext(Context);
21
- if (context) return context;
22
- if (defaultContext !== void 0) return defaultContext;
23
- throw new Error(`\`${consumerName}\` must be used within \`${rootComponentName}\``);
24
- }
25
- return [Provider, useContext2];
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;
26
10
  }
27
- const createScope = () => {
28
- const scopeContexts = defaultContexts.map((defaultContext) => {
29
- return React.createContext(defaultContext);
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;
30
21
  });
31
- return function useScope(scope) {
32
- const contexts = scope?.[scopeName] || scopeContexts;
33
- return React.useMemo(
34
- () => ({ [`__scope${scopeName}`]: { ...scope, [scopeName]: contexts } }),
35
- [scope, contexts]
36
- );
37
- };
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
+ }
38
34
  };
39
- createScope.scopeName = scopeName;
40
- return [createContext3, composeContextScopes(createScope, ...createContextScopeDeps)];
41
35
  }
42
- function composeContextScopes(...scopes) {
43
- const baseScope = scopes[0];
44
- if (scopes.length === 1) return baseScope;
45
- const createScope = () => {
46
- const scopeHooks = scopes.map((createScope2) => ({
47
- useScope: createScope2(),
48
- scopeName: createScope2.scopeName
49
- }));
50
- return function useComposedScopes(overrideScopes) {
51
- const nextScopes = scopeHooks.reduce((nextScopes2, { useScope, scopeName }) => {
52
- const scopeProps = useScope(overrideScopes);
53
- const currentScope = scopeProps[`__scope${scopeName}`];
54
- return { ...nextScopes2, ...currentScope };
55
- }, {});
56
- return React.useMemo(() => ({ [`__scope${baseScope.scopeName}`]: nextScopes }), [nextScopes]);
57
- };
58
- };
59
- createScope.scopeName = baseScope.scopeName;
60
- return createScope;
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;
61
123
  }
62
124
 
63
- export { createContextScope as c };
125
+ export { Slot as S, composeRefs as a, createSlot as c, useComposedRefs as u };
64
126
  //# sourceMappingURL=index2.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"index2.js","sources":["../node_modules/@radix-ui/react-context/dist/index.mjs"],"sourcesContent":["// packages/react/context/src/create-context.tsx\nimport * as React from \"react\";\nimport { jsx } from \"react/jsx-runtime\";\nfunction createContext2(rootComponentName, defaultContext) {\n const Context = React.createContext(defaultContext);\n const Provider = (props) => {\n const { children, ...context } = props;\n const value = React.useMemo(() => context, Object.values(context));\n return /* @__PURE__ */ jsx(Context.Provider, { value, children });\n };\n Provider.displayName = rootComponentName + \"Provider\";\n function useContext2(consumerName) {\n const context = React.useContext(Context);\n if (context) return context;\n if (defaultContext !== void 0) return defaultContext;\n throw new Error(`\\`${consumerName}\\` must be used within \\`${rootComponentName}\\``);\n }\n return [Provider, useContext2];\n}\nfunction createContextScope(scopeName, createContextScopeDeps = []) {\n let defaultContexts = [];\n function createContext3(rootComponentName, defaultContext) {\n const BaseContext = React.createContext(defaultContext);\n const index = defaultContexts.length;\n defaultContexts = [...defaultContexts, defaultContext];\n const Provider = (props) => {\n const { scope, children, ...context } = props;\n const Context = scope?.[scopeName]?.[index] || BaseContext;\n const value = React.useMemo(() => context, Object.values(context));\n return /* @__PURE__ */ jsx(Context.Provider, { value, children });\n };\n Provider.displayName = rootComponentName + \"Provider\";\n function useContext2(consumerName, scope) {\n const Context = scope?.[scopeName]?.[index] || BaseContext;\n const context = React.useContext(Context);\n if (context) return context;\n if (defaultContext !== void 0) return defaultContext;\n throw new Error(`\\`${consumerName}\\` must be used within \\`${rootComponentName}\\``);\n }\n return [Provider, useContext2];\n }\n const createScope = () => {\n const scopeContexts = defaultContexts.map((defaultContext) => {\n return React.createContext(defaultContext);\n });\n return function useScope(scope) {\n const contexts = scope?.[scopeName] || scopeContexts;\n return React.useMemo(\n () => ({ [`__scope${scopeName}`]: { ...scope, [scopeName]: contexts } }),\n [scope, contexts]\n );\n };\n };\n createScope.scopeName = scopeName;\n return [createContext3, composeContextScopes(createScope, ...createContextScopeDeps)];\n}\nfunction composeContextScopes(...scopes) {\n const baseScope = scopes[0];\n if (scopes.length === 1) return baseScope;\n const createScope = () => {\n const scopeHooks = scopes.map((createScope2) => ({\n useScope: createScope2(),\n scopeName: createScope2.scopeName\n }));\n return function useComposedScopes(overrideScopes) {\n const nextScopes = scopeHooks.reduce((nextScopes2, { useScope, scopeName }) => {\n const scopeProps = useScope(overrideScopes);\n const currentScope = scopeProps[`__scope${scopeName}`];\n return { ...nextScopes2, ...currentScope };\n }, {});\n return React.useMemo(() => ({ [`__scope${baseScope.scopeName}`]: nextScopes }), [nextScopes]);\n };\n };\n createScope.scopeName = baseScope.scopeName;\n return createScope;\n}\nexport {\n createContext2 as createContext,\n createContextScope\n};\n//# sourceMappingURL=index.mjs.map\n"],"names":[],"mappings":"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","x_google_ignoreList":[0]}
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]}