@nextlyhq/ui 0.0.2-alpha.42 → 0.0.2-alpha.44

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/index.d.cts CHANGED
@@ -67,7 +67,7 @@ declare const Button: react.ForwardRefExoticComponent<ButtonProps & react.RefAtt
67
67
  * Design Specs:
68
68
  * - Height: sm=32px, default=40px, lg=44px
69
69
  * - Padding: Horizontal varies by size (sm=10px, default=12px, lg=16px)
70
- * - Border radius: 0px (rounded-none)
70
+ * - Border radius: `rounded-md`, the control step of the `--radius` scale
71
71
  * - Border: 1px solid, changes on focus/error
72
72
  * - Transition: 150ms (consistent with design system)
73
73
  * - Font size: sm/default=14px (text-sm), lg=16px (text-base)
@@ -148,7 +148,7 @@ declare function Badge({ className, variant, ...props }: BadgeProps): react_jsx_
148
148
  * Cards provide a structured layout with header, content, and footer sections.
149
149
  *
150
150
  * Design Specs:
151
- * - Border radius: 0px (rounded-none)
151
+ * - Border radius: `rounded-lg`, the container step of the `--radius` scale
152
152
  * - Padding: 24px (p-6) for header/content, 16px 24px for footer
153
153
  * - Shadow: sm (default), md (hover/elevated)
154
154
  * - Border: 1px solid border border-border color
@@ -252,7 +252,7 @@ declare const Stat: react.ForwardRefExoticComponent<StatProps & react.RefAttribu
252
252
  *
253
253
  * Design Specs:
254
254
  * - Padding: 16px (p-4)
255
- * - Border radius: 0px (rounded-none) - intentionally smaller than Card (12px)
255
+ * - Border radius: `rounded-md`, one step tighter than Card's `rounded-lg`
256
256
  * for inline/flow content vs. larger container components
257
257
  * - Border: 1px solid matching variant color
258
258
  * - Shadow: sm (subtle elevation)
@@ -367,7 +367,7 @@ declare function Separator({ className, orientation, decorative, ...props }: rea
367
367
  * @design_specs
368
368
  * - Background: bg-accent (slate-100 in light mode, slate-800 in dark mode)
369
369
  * - Animation: animate-pulse with motion-reduce:animate-none (respects prefers-reduced-motion)
370
- * - Border-radius: 0px (rounded-none)
370
+ * - Border-radius: `rounded-md` by default; override per placeholder shape
371
371
  * - Contrast: 3:1 minimum for WCAG 1.4.11 (Non-text Contrast) compliance
372
372
  *
373
373
  * @accessibility
@@ -387,13 +387,13 @@ declare function Separator({ className, orientation, decorative, ...props }: rea
387
387
  *
388
388
  * **Avatar Skeleton:**
389
389
  * ```tsx
390
- * <Skeleton className="h-12 w-12 rounded-none" />
390
+ * <Skeleton className="h-12 w-12 rounded-md" />
391
391
  * ```
392
392
  *
393
393
  * **Card Skeleton:**
394
394
  * ```tsx
395
395
  * <div className="space-y-3">
396
- * <Skeleton className="h-[125px] w-[250px] rounded-none" />
396
+ * <Skeleton className="h-[125px] w-[250px] rounded-lg" />
397
397
  * <div className="space-y-2">
398
398
  * <Skeleton className="h-4 w-[250px]" />
399
399
  * <Skeleton className="h-4 w-[200px]" />
@@ -407,7 +407,7 @@ declare function Separator({ className, orientation, decorative, ...props }: rea
407
407
  * {isLoading ? (
408
408
  * <>
409
409
  * <span className="sr-only">Loading user profile...</span>
410
- * <Skeleton className="h-12 w-12 rounded-none" />
410
+ * <Skeleton className="h-12 w-12 rounded-md" />
411
411
  * <Skeleton className="h-4 w-[200px]" />
412
412
  * </>
413
413
  * ) : (
@@ -577,7 +577,10 @@ declare const Checkbox: react.ForwardRefExoticComponent<Omit<CheckboxPrimitive.C
577
577
  * Design Specs:
578
578
  * - Size: 16px (h-4 w-4) - Fixed size matching Checkbox
579
579
  * - Border: 1px solid, expands to 5px when checked (visual indicator)
580
- * - Border radius: Full (rounded-none)
580
+ * - Border radius: `rounded-full`. Round means "pick one" and square means
581
+ * "pick many"; a square radio would announce the wrong behaviour, so the
582
+ * shape is fixed and deliberately outside the `--radius` scale. Checkbox
583
+ * keeps the derived radius for the same reason.
581
584
  * - Transition: 150ms (consistent with design system)
582
585
  * - Focus ring: 2px ring with 2px offset
583
586
  *
@@ -590,6 +593,11 @@ declare const Checkbox: react.ForwardRefExoticComponent<Omit<CheckboxPrimitive.C
590
593
  declare const RadioGroup: react.ForwardRefExoticComponent<Omit<RadioGroupPrimitive.RadioGroupProps & react.RefAttributes<HTMLDivElement>, "ref"> & react.RefAttributes<HTMLDivElement>>;
591
594
  declare const RadioGroupItem: react.ForwardRefExoticComponent<Omit<RadioGroupPrimitive.RadioGroupItemProps & react.RefAttributes<HTMLButtonElement>, "ref"> & react.RefAttributes<HTMLButtonElement>>;
592
595
 
596
+ /**
597
+ * A pill track carrying a circular thumb is how a toggle is recognised, so both
598
+ * parts use `rounded-full` and stay outside the `--radius` scale: at any theme
599
+ * radius the switch must still read as a switch and not as a small checkbox.
600
+ */
593
601
  declare function Switch({ className, ...props }: ComponentProps<typeof Root$1>): react_jsx_runtime.JSX.Element;
594
602
 
595
603
  declare const Collapsible: react.ForwardRefExoticComponent<CollapsiblePrimitive.CollapsibleProps & react.RefAttributes<HTMLDivElement>>;
@@ -785,7 +793,9 @@ declare const AccordionContent: react.ForwardRefExoticComponent<Omit<AccordionPr
785
793
  * - 2xl: 80px (h-20 w-20) - For profile headers, large avatars
786
794
  *
787
795
  * **Design Specs**:
788
- * - Border radius: rounded-none (circular)
796
+ * - Border radius: `rounded-full`. A person's avatar is read as a circle, so it
797
+ * sits outside the `--radius` scale and stays circular at any theme radius.
798
+ * Non-identity content (media thumbnails) overrides back to a scale step.
789
799
  * - Background: bg-accent (slate-100 light, slate-800 dark)
790
800
  * - Text color: text-accent-foreground (slate-900 light, slate-100 dark)
791
801
  * - Fallback text scales with avatar size (text-xs to text-2xl)
@@ -958,8 +968,9 @@ type TabsContentProps = ComponentPropsWithoutRef<typeof Content$1>;
958
968
  * Built on Radix UI primitives with WAI-ARIA compliance.
959
969
  *
960
970
  * Design Specs:
961
- * - TabsList border-radius: 0px (rounded-none)
962
- * - TabsTrigger border-radius: 0px (rounded-none)
971
+ * - TabsList border-radius: square, independent of `--radius`
972
+ * - TabsTrigger border-radius: square, independent of `--radius`; the active
973
+ * state is a 2px bottom border that has to stay flush with the tab edges
963
974
  * - TabsList height: 40px (h-10)
964
975
  * - TabsTrigger padding: 12px 24px (px-3 py-1.5)
965
976
  * - Transition duration: 150ms (design system standard)
@@ -1113,7 +1124,7 @@ declare const PopoverContent: react.ForwardRefExoticComponent<Omit<PopoverPrimit
1113
1124
  * ```
1114
1125
  *
1115
1126
  * @design-spec
1116
- * - Border-radius: 0px (rounded-none) per design system spec
1127
+ * - Border-radius: `rounded-lg`, the container step of the `--radius` scale
1117
1128
  * - Max-width: 512px (default), responsive sizes available
1118
1129
  * - Backdrop: black/80 with blur effect
1119
1130
  * - Padding: 24px (p-6)
@@ -1258,7 +1269,7 @@ declare const AlertDialogCancel: react.ForwardRefExoticComponent<Omit<AlertDialo
1258
1269
  * Provides context menus, action menus, and navigation menus with full keyboard support.
1259
1270
  *
1260
1271
  * **Design Specifications**:
1261
- * - Border-radius: 0px (rounded-none) - consistent with Dialog, Select
1272
+ * - Border-radius: `rounded-lg` for the menu surface, `rounded-sm` for items
1262
1273
  * - Padding: 4px (p-1) - compact spacing for menu items
1263
1274
  * - Shadow: shadow-md - floating element elevation
1264
1275
  * - Z-index: z-50 - above most content, below modals
@@ -1437,7 +1448,7 @@ type DropdownMenuShortcutProps = react.HTMLAttributes<HTMLSpanElement>;
1437
1448
  * Design Specs:
1438
1449
  * - Height: sm=32px, default=40px, lg=44px (matches Input component)
1439
1450
  * - Padding: Horizontal 12px, vertical varies by size
1440
- * - Border radius: 0px (rounded-none)
1451
+ * - Border radius: `rounded-md` on the trigger, `rounded-lg` on the panel
1441
1452
  * - Border: 1px solid, changes on focus/error
1442
1453
  * - Transition: 150ms (consistent with design system)
1443
1454
  * - Font size: sm/default=14px (text-sm), lg=16px (text-base)
@@ -1686,7 +1697,7 @@ type SheetDescriptionRef = React.ElementRef<typeof DialogPrimitive.Description>;
1686
1697
  * @design-spec
1687
1698
  * - Input height: 48px (h-12) - larger for prominence
1688
1699
  * - Item height: 36px (h-9) desktop, 44px (h-11) mobile for touch
1689
- * - Border radius: 0px (rounded-none) for items
1700
+ * - Border radius: `rounded-lg` for the panel, `rounded-sm` for items
1690
1701
  * - Max list height: 400px (max-h-[400px])
1691
1702
  * - Transition: 150ms per design system
1692
1703
  *
package/dist/index.d.ts CHANGED
@@ -67,7 +67,7 @@ declare const Button: react.ForwardRefExoticComponent<ButtonProps & react.RefAtt
67
67
  * Design Specs:
68
68
  * - Height: sm=32px, default=40px, lg=44px
69
69
  * - Padding: Horizontal varies by size (sm=10px, default=12px, lg=16px)
70
- * - Border radius: 0px (rounded-none)
70
+ * - Border radius: `rounded-md`, the control step of the `--radius` scale
71
71
  * - Border: 1px solid, changes on focus/error
72
72
  * - Transition: 150ms (consistent with design system)
73
73
  * - Font size: sm/default=14px (text-sm), lg=16px (text-base)
@@ -148,7 +148,7 @@ declare function Badge({ className, variant, ...props }: BadgeProps): react_jsx_
148
148
  * Cards provide a structured layout with header, content, and footer sections.
149
149
  *
150
150
  * Design Specs:
151
- * - Border radius: 0px (rounded-none)
151
+ * - Border radius: `rounded-lg`, the container step of the `--radius` scale
152
152
  * - Padding: 24px (p-6) for header/content, 16px 24px for footer
153
153
  * - Shadow: sm (default), md (hover/elevated)
154
154
  * - Border: 1px solid border border-border color
@@ -252,7 +252,7 @@ declare const Stat: react.ForwardRefExoticComponent<StatProps & react.RefAttribu
252
252
  *
253
253
  * Design Specs:
254
254
  * - Padding: 16px (p-4)
255
- * - Border radius: 0px (rounded-none) - intentionally smaller than Card (12px)
255
+ * - Border radius: `rounded-md`, one step tighter than Card's `rounded-lg`
256
256
  * for inline/flow content vs. larger container components
257
257
  * - Border: 1px solid matching variant color
258
258
  * - Shadow: sm (subtle elevation)
@@ -367,7 +367,7 @@ declare function Separator({ className, orientation, decorative, ...props }: rea
367
367
  * @design_specs
368
368
  * - Background: bg-accent (slate-100 in light mode, slate-800 in dark mode)
369
369
  * - Animation: animate-pulse with motion-reduce:animate-none (respects prefers-reduced-motion)
370
- * - Border-radius: 0px (rounded-none)
370
+ * - Border-radius: `rounded-md` by default; override per placeholder shape
371
371
  * - Contrast: 3:1 minimum for WCAG 1.4.11 (Non-text Contrast) compliance
372
372
  *
373
373
  * @accessibility
@@ -387,13 +387,13 @@ declare function Separator({ className, orientation, decorative, ...props }: rea
387
387
  *
388
388
  * **Avatar Skeleton:**
389
389
  * ```tsx
390
- * <Skeleton className="h-12 w-12 rounded-none" />
390
+ * <Skeleton className="h-12 w-12 rounded-md" />
391
391
  * ```
392
392
  *
393
393
  * **Card Skeleton:**
394
394
  * ```tsx
395
395
  * <div className="space-y-3">
396
- * <Skeleton className="h-[125px] w-[250px] rounded-none" />
396
+ * <Skeleton className="h-[125px] w-[250px] rounded-lg" />
397
397
  * <div className="space-y-2">
398
398
  * <Skeleton className="h-4 w-[250px]" />
399
399
  * <Skeleton className="h-4 w-[200px]" />
@@ -407,7 +407,7 @@ declare function Separator({ className, orientation, decorative, ...props }: rea
407
407
  * {isLoading ? (
408
408
  * <>
409
409
  * <span className="sr-only">Loading user profile...</span>
410
- * <Skeleton className="h-12 w-12 rounded-none" />
410
+ * <Skeleton className="h-12 w-12 rounded-md" />
411
411
  * <Skeleton className="h-4 w-[200px]" />
412
412
  * </>
413
413
  * ) : (
@@ -577,7 +577,10 @@ declare const Checkbox: react.ForwardRefExoticComponent<Omit<CheckboxPrimitive.C
577
577
  * Design Specs:
578
578
  * - Size: 16px (h-4 w-4) - Fixed size matching Checkbox
579
579
  * - Border: 1px solid, expands to 5px when checked (visual indicator)
580
- * - Border radius: Full (rounded-none)
580
+ * - Border radius: `rounded-full`. Round means "pick one" and square means
581
+ * "pick many"; a square radio would announce the wrong behaviour, so the
582
+ * shape is fixed and deliberately outside the `--radius` scale. Checkbox
583
+ * keeps the derived radius for the same reason.
581
584
  * - Transition: 150ms (consistent with design system)
582
585
  * - Focus ring: 2px ring with 2px offset
583
586
  *
@@ -590,6 +593,11 @@ declare const Checkbox: react.ForwardRefExoticComponent<Omit<CheckboxPrimitive.C
590
593
  declare const RadioGroup: react.ForwardRefExoticComponent<Omit<RadioGroupPrimitive.RadioGroupProps & react.RefAttributes<HTMLDivElement>, "ref"> & react.RefAttributes<HTMLDivElement>>;
591
594
  declare const RadioGroupItem: react.ForwardRefExoticComponent<Omit<RadioGroupPrimitive.RadioGroupItemProps & react.RefAttributes<HTMLButtonElement>, "ref"> & react.RefAttributes<HTMLButtonElement>>;
592
595
 
596
+ /**
597
+ * A pill track carrying a circular thumb is how a toggle is recognised, so both
598
+ * parts use `rounded-full` and stay outside the `--radius` scale: at any theme
599
+ * radius the switch must still read as a switch and not as a small checkbox.
600
+ */
593
601
  declare function Switch({ className, ...props }: ComponentProps<typeof Root$1>): react_jsx_runtime.JSX.Element;
594
602
 
595
603
  declare const Collapsible: react.ForwardRefExoticComponent<CollapsiblePrimitive.CollapsibleProps & react.RefAttributes<HTMLDivElement>>;
@@ -785,7 +793,9 @@ declare const AccordionContent: react.ForwardRefExoticComponent<Omit<AccordionPr
785
793
  * - 2xl: 80px (h-20 w-20) - For profile headers, large avatars
786
794
  *
787
795
  * **Design Specs**:
788
- * - Border radius: rounded-none (circular)
796
+ * - Border radius: `rounded-full`. A person's avatar is read as a circle, so it
797
+ * sits outside the `--radius` scale and stays circular at any theme radius.
798
+ * Non-identity content (media thumbnails) overrides back to a scale step.
789
799
  * - Background: bg-accent (slate-100 light, slate-800 dark)
790
800
  * - Text color: text-accent-foreground (slate-900 light, slate-100 dark)
791
801
  * - Fallback text scales with avatar size (text-xs to text-2xl)
@@ -958,8 +968,9 @@ type TabsContentProps = ComponentPropsWithoutRef<typeof Content$1>;
958
968
  * Built on Radix UI primitives with WAI-ARIA compliance.
959
969
  *
960
970
  * Design Specs:
961
- * - TabsList border-radius: 0px (rounded-none)
962
- * - TabsTrigger border-radius: 0px (rounded-none)
971
+ * - TabsList border-radius: square, independent of `--radius`
972
+ * - TabsTrigger border-radius: square, independent of `--radius`; the active
973
+ * state is a 2px bottom border that has to stay flush with the tab edges
963
974
  * - TabsList height: 40px (h-10)
964
975
  * - TabsTrigger padding: 12px 24px (px-3 py-1.5)
965
976
  * - Transition duration: 150ms (design system standard)
@@ -1113,7 +1124,7 @@ declare const PopoverContent: react.ForwardRefExoticComponent<Omit<PopoverPrimit
1113
1124
  * ```
1114
1125
  *
1115
1126
  * @design-spec
1116
- * - Border-radius: 0px (rounded-none) per design system spec
1127
+ * - Border-radius: `rounded-lg`, the container step of the `--radius` scale
1117
1128
  * - Max-width: 512px (default), responsive sizes available
1118
1129
  * - Backdrop: black/80 with blur effect
1119
1130
  * - Padding: 24px (p-6)
@@ -1258,7 +1269,7 @@ declare const AlertDialogCancel: react.ForwardRefExoticComponent<Omit<AlertDialo
1258
1269
  * Provides context menus, action menus, and navigation menus with full keyboard support.
1259
1270
  *
1260
1271
  * **Design Specifications**:
1261
- * - Border-radius: 0px (rounded-none) - consistent with Dialog, Select
1272
+ * - Border-radius: `rounded-lg` for the menu surface, `rounded-sm` for items
1262
1273
  * - Padding: 4px (p-1) - compact spacing for menu items
1263
1274
  * - Shadow: shadow-md - floating element elevation
1264
1275
  * - Z-index: z-50 - above most content, below modals
@@ -1437,7 +1448,7 @@ type DropdownMenuShortcutProps = react.HTMLAttributes<HTMLSpanElement>;
1437
1448
  * Design Specs:
1438
1449
  * - Height: sm=32px, default=40px, lg=44px (matches Input component)
1439
1450
  * - Padding: Horizontal 12px, vertical varies by size
1440
- * - Border radius: 0px (rounded-none)
1451
+ * - Border radius: `rounded-md` on the trigger, `rounded-lg` on the panel
1441
1452
  * - Border: 1px solid, changes on focus/error
1442
1453
  * - Transition: 150ms (consistent with design system)
1443
1454
  * - Font size: sm/default=14px (text-sm), lg=16px (text-base)
@@ -1686,7 +1697,7 @@ type SheetDescriptionRef = React.ElementRef<typeof DialogPrimitive.Description>;
1686
1697
  * @design-spec
1687
1698
  * - Input height: 48px (h-12) - larger for prominence
1688
1699
  * - Item height: 36px (h-9) desktop, 44px (h-11) mobile for touch
1689
- * - Border radius: 0px (rounded-none) for items
1700
+ * - Border radius: `rounded-lg` for the panel, `rounded-sm` for items
1690
1701
  * - Max list height: 400px (max-h-[400px])
1691
1702
  * - Transition: 150ms per design system
1692
1703
  *