@kuzenbo/core 0.0.3 → 0.0.5
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/avatar-CXhwmJgG.js +65 -0
- package/dist/avatar-CXhwmJgG.js.map +1 -0
- package/dist/{avatar-image-Ce26D2fb.d.ts → avatar-DpiupAAM.d.ts} +35 -2
- package/dist/avatar-DpiupAAM.d.ts.map +1 -0
- package/dist/badge-BKRm6jL7.js +58 -0
- package/dist/badge-BKRm6jL7.js.map +1 -0
- package/dist/button-nAbTNrxA.d.ts +78 -0
- package/dist/button-nAbTNrxA.d.ts.map +1 -0
- package/dist/{dialog-trigger-BUF3elAP.js → dialog-CD5lfQA9.js} +33 -10
- package/dist/dialog-CD5lfQA9.js.map +1 -0
- package/dist/{dialog-viewport-Ce1huyAI.d.ts → dialog-DEkdr-9K.d.ts} +64 -2
- package/dist/dialog-DEkdr-9K.d.ts.map +1 -0
- package/dist/{dropdown-menu-trigger-COnFGfDa.js → dropdown-menu-BJi-V71O.js} +137 -101
- package/dist/dropdown-menu-BJi-V71O.js.map +1 -0
- package/dist/{dropdown-menu-trigger-BpgtLUvf.d.ts → dropdown-menu-Bpj576m0.d.ts} +259 -123
- package/dist/dropdown-menu-Bpj576m0.d.ts.map +1 -0
- package/dist/input-Ex9ZRqbo.js +38 -0
- package/dist/input-Ex9ZRqbo.js.map +1 -0
- package/dist/input-WWoBCgxe.d.ts +46 -0
- package/dist/input-WWoBCgxe.d.ts.map +1 -0
- package/dist/{input-group-textarea-B-rP98r5.js → input-group-CjcHP0L4.js} +50 -31
- package/dist/input-group-CjcHP0L4.js.map +1 -0
- package/dist/provider.js +4 -2
- package/dist/scroll-bar-C4qEUKlT.js.map +1 -1
- package/dist/separator-C8Qw2ADs.d.ts +13 -0
- package/dist/separator-C8Qw2ADs.d.ts.map +1 -0
- package/dist/{sheet-trigger-D7neoTF5.js → sheet-imSHXfFH.js} +29 -10
- package/dist/sheet-imSHXfFH.js.map +1 -0
- package/dist/{size-context-BjRwqlSg.js → size-context-CvLl3pMC.js} +3 -3
- package/dist/size-context-CvLl3pMC.js.map +1 -0
- package/dist/size-context-DXfCAlWF.d.ts.map +1 -1
- package/dist/size-provider-18EvJgDT.js.map +1 -1
- package/dist/size-provider-Bd2C6gKd.d.ts.map +1 -1
- package/dist/size-system-BTsMqZRQ.js +99 -0
- package/dist/size-system-BTsMqZRQ.js.map +1 -0
- package/dist/size-system-wzOLSuax.d.ts.map +1 -1
- package/dist/size.js +4 -2
- package/dist/{slider-root-presentation-ChJHPMIV.js → slider-root-presentation-B6OO_iCT.js} +19 -19
- package/dist/slider-root-presentation-B6OO_iCT.js.map +1 -0
- package/dist/{slider-value-Db8SCu0c.d.ts → slider-style-tokens-CZezJilZ.d.ts} +55 -55
- package/dist/slider-style-tokens-CZezJilZ.d.ts.map +1 -0
- package/dist/textarea-C8dsnn8D.d.ts +37 -0
- package/dist/textarea-C8dsnn8D.d.ts.map +1 -0
- package/dist/textarea-CkiM1N_I.js +39 -0
- package/dist/textarea-CkiM1N_I.js.map +1 -0
- package/dist/toggle-CxkIncmZ.d.ts +53 -0
- package/dist/toggle-CxkIncmZ.d.ts.map +1 -0
- package/dist/{tooltip-trigger-qXw-_nbh.js → tooltip-D0BEpCQx.js} +38 -13
- package/dist/tooltip-D0BEpCQx.js.map +1 -0
- package/dist/{tooltip-viewport-csA6luqI.d.ts → tooltip-DbJxt69l.d.ts} +61 -13
- package/dist/tooltip-DbJxt69l.d.ts.map +1 -0
- package/dist/ui/accordion.d.ts +4 -4
- package/dist/ui/accordion.d.ts.map +1 -1
- package/dist/ui/accordion.js +53 -52
- package/dist/ui/accordion.js.map +1 -1
- package/dist/ui/affix.d.ts +3 -2
- package/dist/ui/affix.d.ts.map +1 -1
- package/dist/ui/affix.js +8 -7
- package/dist/ui/affix.js.map +1 -1
- package/dist/ui/alert-dialog.d.ts +3 -1
- package/dist/ui/alert-dialog.d.ts.map +1 -1
- package/dist/ui/alert-dialog.js +12 -9
- package/dist/ui/alert-dialog.js.map +1 -1
- package/dist/ui/alert.d.ts +32 -32
- package/dist/ui/alert.d.ts.map +1 -1
- package/dist/ui/alert.js +88 -86
- package/dist/ui/alert.js.map +1 -1
- package/dist/ui/announcement.d.ts.map +1 -1
- package/dist/ui/announcement.js +5 -3
- package/dist/ui/announcement.js.map +1 -1
- package/dist/ui/aspect-ratio.d.ts.map +1 -1
- package/dist/ui/aspect-ratio.js.map +1 -1
- package/dist/ui/autocomplete.d.ts +74 -74
- package/dist/ui/autocomplete.d.ts.map +1 -1
- package/dist/ui/autocomplete.js +57 -53
- package/dist/ui/autocomplete.js.map +1 -1
- package/dist/ui/avatar.d.ts +2 -39
- package/dist/ui/avatar.js +2 -24
- package/dist/ui/badge.d.ts +28 -28
- package/dist/ui/badge.d.ts.map +1 -1
- package/dist/ui/badge.js +3 -53
- package/dist/ui/breadcrumb.d.ts +64 -64
- package/dist/ui/breadcrumb.d.ts.map +1 -1
- package/dist/ui/breadcrumb.js +49 -45
- package/dist/ui/breadcrumb.js.map +1 -1
- package/dist/ui/button-group.d.ts +34 -34
- package/dist/ui/button-group.d.ts.map +1 -1
- package/dist/ui/button-group.js +31 -28
- package/dist/ui/button-group.js.map +1 -1
- package/dist/ui/button.d.ts +2 -78
- package/dist/ui/button.js +42 -42
- package/dist/ui/button.js.map +1 -1
- package/dist/ui/card.d.ts.map +1 -1
- package/dist/ui/card.js +8 -6
- package/dist/ui/card.js.map +1 -1
- package/dist/ui/carousel.d.ts +1 -1
- package/dist/ui/carousel.d.ts.map +1 -1
- package/dist/ui/carousel.js +36 -17
- package/dist/ui/carousel.js.map +1 -1
- package/dist/ui/checkbox-group.d.ts.map +1 -1
- package/dist/ui/checkbox-group.js +2 -0
- package/dist/ui/checkbox-group.js.map +1 -1
- package/dist/ui/checkbox.d.ts +20 -20
- package/dist/ui/checkbox.d.ts.map +1 -1
- package/dist/ui/checkbox.js +15 -13
- package/dist/ui/checkbox.js.map +1 -1
- package/dist/ui/code.d.ts.map +1 -1
- package/dist/ui/code.js +5 -5
- package/dist/ui/code.js.map +1 -1
- package/dist/ui/collapsible.js +1 -1
- package/dist/ui/collapsible.js.map +1 -1
- package/dist/ui/combobox.d.ts +107 -107
- package/dist/ui/combobox.d.ts.map +1 -1
- package/dist/ui/combobox.js +88 -87
- package/dist/ui/combobox.js.map +1 -1
- package/dist/ui/command.d.ts +57 -58
- package/dist/ui/command.d.ts.map +1 -1
- package/dist/ui/command.js +54 -64
- package/dist/ui/command.js.map +1 -1
- package/dist/ui/container.d.ts.map +1 -1
- package/dist/ui/container.js.map +1 -1
- package/dist/ui/context-menu.d.ts +132 -132
- package/dist/ui/context-menu.d.ts.map +1 -1
- package/dist/ui/context-menu.js +102 -98
- package/dist/ui/context-menu.js.map +1 -1
- package/dist/ui/copy-button.d.ts +1 -3
- package/dist/ui/copy-button.d.ts.map +1 -1
- package/dist/ui/copy-button.js +12 -13
- package/dist/ui/copy-button.js.map +1 -1
- package/dist/ui/dialog.d.ts +2 -66
- package/dist/ui/dialog.js +2 -24
- package/dist/ui/drawer.d.ts +91 -91
- package/dist/ui/drawer.d.ts.map +1 -1
- package/dist/ui/drawer.js +68 -66
- package/dist/ui/drawer.js.map +1 -1
- package/dist/ui/dropdown-menu.d.ts +3 -144
- package/dist/ui/dropdown-menu.js +3 -38
- package/dist/ui/dropzone.d.ts +55 -55
- package/dist/ui/dropzone.d.ts.map +1 -1
- package/dist/ui/dropzone.js +77 -72
- package/dist/ui/dropzone.js.map +1 -1
- package/dist/ui/emoji-picker.d.ts +79 -79
- package/dist/ui/emoji-picker.d.ts.map +1 -1
- package/dist/ui/emoji-picker.js +92 -87
- package/dist/ui/emoji-picker.js.map +1 -1
- package/dist/ui/empty.d.ts +61 -59
- package/dist/ui/empty.d.ts.map +1 -1
- package/dist/ui/empty.js +49 -44
- package/dist/ui/empty.js.map +1 -1
- package/dist/ui/field.d.ts +11 -11
- package/dist/ui/field.d.ts.map +1 -1
- package/dist/ui/field.js +9 -7
- package/dist/ui/field.js.map +1 -1
- package/dist/ui/fieldset.d.ts.map +1 -1
- package/dist/ui/fieldset.js.map +1 -1
- package/dist/ui/form.d.ts +8 -8
- package/dist/ui/form.d.ts.map +1 -1
- package/dist/ui/form.js +2 -0
- package/dist/ui/form.js.map +1 -1
- package/dist/ui/input-group.d.ts +35 -35
- package/dist/ui/input-group.d.ts.map +1 -1
- package/dist/ui/input-group.js +2 -28
- package/dist/ui/input-otp.d.ts +36 -36
- package/dist/ui/input-otp.d.ts.map +1 -1
- package/dist/ui/input-otp.js +29 -28
- package/dist/ui/input-otp.js.map +1 -1
- package/dist/ui/input.d.ts +2 -46
- package/dist/ui/input.js +2 -34
- package/dist/ui/item.d.ts +20 -20
- package/dist/ui/item.d.ts.map +1 -1
- package/dist/ui/item.js +24 -22
- package/dist/ui/item.js.map +1 -1
- package/dist/ui/kbd.d.ts.map +1 -1
- package/dist/ui/kbd.js +10 -8
- package/dist/ui/kbd.js.map +1 -1
- package/dist/ui/label.d.ts.map +1 -1
- package/dist/ui/label.js.map +1 -1
- package/dist/ui/marquee.d.ts.map +1 -1
- package/dist/ui/marquee.js +1 -1
- package/dist/ui/marquee.js.map +1 -1
- package/dist/ui/menubar.d.ts +133 -134
- package/dist/ui/menubar.d.ts.map +1 -1
- package/dist/ui/menubar.js +84 -81
- package/dist/ui/menubar.js.map +1 -1
- package/dist/ui/meter.d.ts.map +1 -1
- package/dist/ui/meter.js +2 -0
- package/dist/ui/meter.js.map +1 -1
- package/dist/ui/navigation-list.d.ts +226 -226
- package/dist/ui/navigation-list.d.ts.map +1 -1
- package/dist/ui/navigation-list.js +242 -235
- package/dist/ui/navigation-list.js.map +1 -1
- package/dist/ui/navigation-menu.d.ts +82 -82
- package/dist/ui/navigation-menu.d.ts.map +1 -1
- package/dist/ui/navigation-menu.js +72 -67
- package/dist/ui/navigation-menu.js.map +1 -1
- package/dist/ui/number-field.d.ts +34 -34
- package/dist/ui/number-field.d.ts.map +1 -1
- package/dist/ui/number-field.js +26 -23
- package/dist/ui/number-field.js.map +1 -1
- package/dist/ui/pagination.d.ts +42 -42
- package/dist/ui/pagination.d.ts.map +1 -1
- package/dist/ui/pagination.js +45 -41
- package/dist/ui/pagination.js.map +1 -1
- package/dist/ui/pill.d.ts +2 -3
- package/dist/ui/pill.d.ts.map +1 -1
- package/dist/ui/pill.js +34 -23
- package/dist/ui/pill.js.map +1 -1
- package/dist/ui/popover.d.ts +13 -11
- package/dist/ui/popover.d.ts.map +1 -1
- package/dist/ui/popover.js +17 -14
- package/dist/ui/popover.js.map +1 -1
- package/dist/ui/portal.d.ts.map +1 -1
- package/dist/ui/portal.js +52 -11
- package/dist/ui/portal.js.map +1 -1
- package/dist/ui/preview-card.js +5 -5
- package/dist/ui/preview-card.js.map +1 -1
- package/dist/ui/progress.js.map +1 -1
- package/dist/ui/qr-code.d.ts.map +1 -1
- package/dist/ui/qr-code.js +7 -7
- package/dist/ui/qr-code.js.map +1 -1
- package/dist/ui/radio-group.d.ts +22 -22
- package/dist/ui/radio-group.d.ts.map +1 -1
- package/dist/ui/radio-group.js +17 -15
- package/dist/ui/radio-group.js.map +1 -1
- package/dist/ui/range-slider.d.ts +1 -1
- package/dist/ui/range-slider.d.ts.map +1 -1
- package/dist/ui/range-slider.js +4 -7
- package/dist/ui/range-slider.js.map +1 -1
- package/dist/ui/rating.d.ts +35 -35
- package/dist/ui/rating.d.ts.map +1 -1
- package/dist/ui/rating.js +55 -46
- package/dist/ui/rating.js.map +1 -1
- package/dist/ui/resizable.d.ts.map +1 -1
- package/dist/ui/resizable.js +2 -2
- package/dist/ui/resizable.js.map +1 -1
- package/dist/ui/scroll-area.d.ts.map +1 -1
- package/dist/ui/scroll-area.js +2 -0
- package/dist/ui/scroll-area.js.map +1 -1
- package/dist/ui/select.d.ts +87 -87
- package/dist/ui/select.d.ts.map +1 -1
- package/dist/ui/select.js +85 -84
- package/dist/ui/select.js.map +1 -1
- package/dist/ui/separator.d.ts +2 -13
- package/dist/ui/separator.js +2 -0
- package/dist/ui/separator.js.map +1 -1
- package/dist/ui/sheet.d.ts.map +1 -1
- package/dist/ui/sheet.js +2 -24
- package/dist/ui/sidebar.d.ts +73 -74
- package/dist/ui/sidebar.d.ts.map +1 -1
- package/dist/ui/sidebar.js +87 -84
- package/dist/ui/sidebar.js.map +1 -1
- package/dist/ui/skeleton.d.ts.map +1 -1
- package/dist/ui/skeleton.js +1 -1
- package/dist/ui/skeleton.js.map +1 -1
- package/dist/ui/slider.d.ts +1 -1
- package/dist/ui/slider.d.ts.map +1 -1
- package/dist/ui/slider.js +3 -1
- package/dist/ui/slider.js.map +1 -1
- package/dist/ui/spacer.d.ts.map +1 -1
- package/dist/ui/spacer.js +2 -2
- package/dist/ui/spacer.js.map +1 -1
- package/dist/ui/spinner.js +4 -2
- package/dist/ui/spinner.js.map +1 -1
- package/dist/ui/switch.d.ts +11 -11
- package/dist/ui/switch.js +7 -7
- package/dist/ui/switch.js.map +1 -1
- package/dist/ui/table.d.ts +60 -60
- package/dist/ui/table.d.ts.map +1 -1
- package/dist/ui/table.js +54 -46
- package/dist/ui/table.js.map +1 -1
- package/dist/ui/tabs.d.ts +25 -25
- package/dist/ui/tabs.d.ts.map +1 -1
- package/dist/ui/tabs.js +75 -68
- package/dist/ui/tabs.js.map +1 -1
- package/dist/ui/textarea.d.ts +2 -37
- package/dist/ui/textarea.js +3 -34
- package/dist/ui/theme-icon.d.ts +30 -30
- package/dist/ui/theme-icon.d.ts.map +1 -1
- package/dist/ui/theme-icon.js +22 -22
- package/dist/ui/theme-icon.js.map +1 -1
- package/dist/ui/timeline.d.ts +6 -6
- package/dist/ui/timeline.d.ts.map +1 -1
- package/dist/ui/timeline.js +165 -163
- package/dist/ui/timeline.js.map +1 -1
- package/dist/ui/toggle-group.d.ts +32 -32
- package/dist/ui/toggle-group.d.ts.map +1 -1
- package/dist/ui/toggle-group.js +22 -16
- package/dist/ui/toggle-group.js.map +1 -1
- package/dist/ui/toggle.d.ts +2 -53
- package/dist/ui/toggle.js +17 -15
- package/dist/ui/toggle.js.map +1 -1
- package/dist/ui/toolbar.d.ts +54 -54
- package/dist/ui/toolbar.d.ts.map +1 -1
- package/dist/ui/toolbar.js +45 -40
- package/dist/ui/toolbar.js.map +1 -1
- package/dist/ui/tooltip.d.ts +2 -54
- package/dist/ui/tooltip.js +2 -28
- package/dist/ui/typography.d.ts +50 -36
- package/dist/ui/typography.d.ts.map +1 -1
- package/dist/ui/typography.js +28 -17
- package/dist/ui/typography.js.map +1 -1
- package/package.json +15 -15
- package/dist/avatar-image-BQ_NEKH4.js +0 -47
- package/dist/avatar-image-BQ_NEKH4.js.map +0 -1
- package/dist/avatar-image-Ce26D2fb.d.ts.map +0 -1
- package/dist/dialog-trigger-BUF3elAP.js.map +0 -1
- package/dist/dialog-viewport-Ce1huyAI.d.ts.map +0 -1
- package/dist/dropdown-menu-trigger-BpgtLUvf.d.ts.map +0 -1
- package/dist/dropdown-menu-trigger-COnFGfDa.js.map +0 -1
- package/dist/input-group-textarea-B-rP98r5.js.map +0 -1
- package/dist/sheet-trigger-D7neoTF5.js.map +0 -1
- package/dist/size-context-BjRwqlSg.js.map +0 -1
- package/dist/size-system-DTXmtQXw.js +0 -47
- package/dist/size-system-DTXmtQXw.js.map +0 -1
- package/dist/slider-root-presentation-ChJHPMIV.js.map +0 -1
- package/dist/slider-value-Db8SCu0c.d.ts.map +0 -1
- package/dist/tooltip-trigger-qXw-_nbh.js.map +0 -1
- package/dist/tooltip-viewport-csA6luqI.d.ts.map +0 -1
- package/dist/ui/avatar.d.ts.map +0 -1
- package/dist/ui/avatar.js.map +0 -1
- package/dist/ui/badge.js.map +0 -1
- package/dist/ui/button.d.ts.map +0 -1
- package/dist/ui/dialog.d.ts.map +0 -1
- package/dist/ui/dialog.js.map +0 -1
- package/dist/ui/dropdown-menu.d.ts.map +0 -1
- package/dist/ui/dropdown-menu.js.map +0 -1
- package/dist/ui/input-group.js.map +0 -1
- package/dist/ui/input.d.ts.map +0 -1
- package/dist/ui/input.js.map +0 -1
- package/dist/ui/separator.d.ts.map +0 -1
- package/dist/ui/sheet.js.map +0 -1
- package/dist/ui/textarea.d.ts.map +0 -1
- package/dist/ui/textarea.js.map +0 -1
- package/dist/ui/toggle.d.ts.map +0 -1
- package/dist/ui/tooltip.d.ts.map +0 -1
- package/dist/ui/tooltip.js.map +0 -1
- package/dist/use-badge-default-props-8d9wPL0k.js +0 -8
- package/dist/use-badge-default-props-8d9wPL0k.js.map +0 -1
- package/dist/use-input-default-props-B6VgKXGM.js +0 -8
- package/dist/use-input-default-props-B6VgKXGM.js.map +0 -1
- package/dist/use-textarea-default-props-7MlOxkDO.js +0 -8
- package/dist/use-textarea-default-props-7MlOxkDO.js.map +0 -1
package/dist/ui/button.js
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
"use client";
|
|
2
2
|
|
|
3
3
|
import { o as useGlobalUISize, r as filterUndefinedProps, s as useKuzenboComponentDefaults } from "../size-provider-18EvJgDT.js";
|
|
4
|
-
import { a as
|
|
4
|
+
import { a as resolveFieldHeightClassBySize, i as resolveDefaultNestedIconClassBySize, o as resolveFieldTextClassBySize } from "../size-system-BTsMqZRQ.js";
|
|
5
5
|
import { t as mergeBaseUIClassName } from "../merge-base-ui-class-name-HKsgjcXj.js";
|
|
6
6
|
import { t as ButtonGroupSizeContext } from "../button-group-size-context-DW7Gn-3k.js";
|
|
7
7
|
import { Spinner } from "./spinner.js";
|
|
@@ -12,59 +12,59 @@ import { Button as Button$1 } from "@base-ui/react/button";
|
|
|
12
12
|
|
|
13
13
|
//#region src/ui/button/button.tsx
|
|
14
14
|
const buttonVariants = tv({
|
|
15
|
-
base: "group/button inline-flex shrink-0
|
|
15
|
+
base: "group/button cursor-clickable focus-visible:border-ring focus-visible:ring-ring/50 aria-invalid:border-danger aria-invalid:ring-danger/20 dark:aria-invalid:border-danger/50 dark:aria-invalid:ring-danger/40 inline-flex shrink-0 items-center justify-center rounded-md border border-transparent bg-clip-padding text-sm font-medium whitespace-nowrap transition-[transform,color,background-color,border-color,box-shadow] duration-100 ease-out outline-none select-none focus-visible:ring-[3px] active:scale-[0.98] disabled:pointer-events-none disabled:opacity-50 aria-invalid:ring-[3px] motion-reduce:active:scale-100 [&_svg]:pointer-events-none [&_svg]:shrink-0 [&_svg:not([class*='size-'])]:size-4",
|
|
16
|
+
defaultVariants: {
|
|
17
|
+
size: "md",
|
|
18
|
+
variant: "default"
|
|
19
|
+
},
|
|
16
20
|
variants: {
|
|
17
|
-
variant: {
|
|
18
|
-
default: "bg-primary text-primary-foreground hover:bg-primary/90 [a]:hover:bg-primary/80",
|
|
19
|
-
outline: "border-border bg-background hover:bg-muted hover:text-foreground aria-expanded:bg-muted aria-expanded:text-foreground dark:border-input dark:bg-card dark:hover:bg-muted",
|
|
20
|
-
secondary: "bg-secondary text-secondary-foreground hover:bg-secondary/80 aria-expanded:bg-secondary aria-expanded:text-secondary-foreground",
|
|
21
|
-
ghost: "hover:bg-muted hover:text-foreground aria-expanded:bg-muted aria-expanded:text-foreground dark:hover:bg-muted/50",
|
|
22
|
-
danger: "bg-danger text-danger-foreground hover:bg-danger/90 focus-visible:border-danger-foreground/40 focus-visible:ring-danger-foreground/30 dark:bg-danger dark:text-danger-foreground dark:hover:bg-danger/80 dark:focus-visible:ring-danger-foreground/40",
|
|
23
|
-
link: "text-primary underline-offset-4 hover:underline"
|
|
24
|
-
},
|
|
25
21
|
size: {
|
|
26
|
-
|
|
27
|
-
|
|
28
|
-
|
|
29
|
-
|
|
30
|
-
|
|
31
|
-
|
|
32
|
-
],
|
|
22
|
+
icon: "size-9",
|
|
23
|
+
"icon-lg": "size-10",
|
|
24
|
+
"icon-sm": "size-8 rounded-[min(var(--radius-md),10px)] in-data-[slot=button-group]:rounded-lg",
|
|
25
|
+
"icon-xl": ["size-11", resolveDefaultNestedIconClassBySize("xl")],
|
|
26
|
+
"icon-xs": ["size-6 rounded-[min(var(--radius-md),10px)] in-data-[slot=button-group]:rounded-lg", resolveDefaultNestedIconClassBySize("xs")],
|
|
27
|
+
lg: [resolveFieldHeightClassBySize("lg"), "gap-1.5 px-3 has-data-[icon=inline-end]:pr-3 has-data-[icon=inline-start]:pl-3"],
|
|
28
|
+
md: [resolveFieldHeightClassBySize("md"), "gap-1.5 px-2.5 has-data-[icon=inline-end]:pr-2 has-data-[icon=inline-start]:pl-2"],
|
|
33
29
|
sm: [
|
|
34
|
-
|
|
35
|
-
|
|
30
|
+
resolveFieldHeightClassBySize("sm"),
|
|
31
|
+
resolveDefaultNestedIconClassBySize("sm"),
|
|
36
32
|
"gap-1 rounded-[min(var(--radius-md),10px)] px-2.5 in-data-[slot=button-group]:rounded-lg has-data-[icon=inline-end]:pr-1.5 has-data-[icon=inline-start]:pl-1.5"
|
|
37
33
|
],
|
|
38
|
-
lg: `${FIELD_HEIGHT_CLASS_BY_SIZE.lg} gap-1.5 px-3 has-data-[icon=inline-end]:pr-3 has-data-[icon=inline-start]:pl-3`,
|
|
39
34
|
xl: [
|
|
40
|
-
|
|
41
|
-
|
|
42
|
-
|
|
35
|
+
resolveFieldHeightClassBySize("xl"),
|
|
36
|
+
resolveFieldTextClassBySize("xl"),
|
|
37
|
+
resolveDefaultNestedIconClassBySize("xl"),
|
|
43
38
|
"gap-2 px-4 has-data-[icon=inline-end]:pr-3.5 has-data-[icon=inline-start]:pl-3.5"
|
|
44
39
|
],
|
|
45
|
-
|
|
46
|
-
|
|
47
|
-
|
|
48
|
-
|
|
49
|
-
|
|
40
|
+
xs: [
|
|
41
|
+
resolveFieldHeightClassBySize("xs"),
|
|
42
|
+
resolveFieldTextClassBySize("xs"),
|
|
43
|
+
resolveDefaultNestedIconClassBySize("xs"),
|
|
44
|
+
"gap-1 rounded-[min(var(--radius-md),8px)] px-2 in-data-[slot=button-group]:rounded-lg has-data-[icon=inline-end]:pr-1.5 has-data-[icon=inline-start]:pl-1.5"
|
|
45
|
+
]
|
|
46
|
+
},
|
|
47
|
+
variant: {
|
|
48
|
+
danger: "bg-danger text-danger-foreground hover:bg-danger/90 focus-visible:border-danger-foreground/40 focus-visible:ring-danger-foreground/30 dark:bg-danger dark:text-danger-foreground dark:hover:bg-danger/80 dark:focus-visible:ring-danger-foreground/40",
|
|
49
|
+
default: "bg-primary text-primary-foreground hover:bg-primary/90 [a]:hover:bg-primary/80",
|
|
50
|
+
ghost: "hover:bg-muted hover:text-foreground aria-expanded:bg-muted aria-expanded:text-foreground dark:hover:bg-muted/50",
|
|
51
|
+
link: "text-primary underline-offset-4 hover:underline",
|
|
52
|
+
outline: "border-border bg-background hover:bg-muted hover:text-foreground aria-expanded:bg-muted aria-expanded:text-foreground dark:border-input dark:bg-card dark:hover:bg-muted",
|
|
53
|
+
secondary: "bg-secondary text-secondary-foreground hover:bg-secondary/80 aria-expanded:bg-secondary aria-expanded:text-secondary-foreground"
|
|
50
54
|
}
|
|
51
|
-
},
|
|
52
|
-
defaultVariants: {
|
|
53
|
-
variant: "default",
|
|
54
|
-
size: "md"
|
|
55
55
|
}
|
|
56
56
|
});
|
|
57
57
|
const BUTTON_SPINNER_SIZE_BY_BUTTON_SIZE = {
|
|
58
|
-
xs: "xs",
|
|
59
|
-
sm: "sm",
|
|
60
|
-
md: "md",
|
|
61
|
-
lg: "lg",
|
|
62
|
-
xl: "xl",
|
|
63
58
|
icon: "md",
|
|
64
|
-
"icon-xs": "xs",
|
|
65
|
-
"icon-sm": "sm",
|
|
66
59
|
"icon-lg": "lg",
|
|
67
|
-
"icon-
|
|
60
|
+
"icon-sm": "sm",
|
|
61
|
+
"icon-xl": "xl",
|
|
62
|
+
"icon-xs": "xs",
|
|
63
|
+
lg: "lg",
|
|
64
|
+
md: "md",
|
|
65
|
+
sm: "sm",
|
|
66
|
+
xl: "xl",
|
|
67
|
+
xs: "xs"
|
|
68
68
|
};
|
|
69
69
|
const isButtonSize = (value) => typeof value === "string" && value in BUTTON_SPINNER_SIZE_BY_BUTTON_SIZE;
|
|
70
70
|
const ButtonContent = ({ children, isLoading, size }) => /* @__PURE__ */ jsxs("span", {
|
|
@@ -88,8 +88,8 @@ const Button = (incomingProps) => {
|
|
|
88
88
|
const resolvedSize = isButtonSize(size) ? size : buttonGroupSize ?? (isButtonSize(componentDefaultSize) ? componentDefaultSize : globalSize ?? "md");
|
|
89
89
|
return /* @__PURE__ */ jsx(Button$1, {
|
|
90
90
|
className: mergeBaseUIClassName(cn(buttonVariants({
|
|
91
|
-
|
|
92
|
-
|
|
91
|
+
size: resolvedSize,
|
|
92
|
+
variant
|
|
93
93
|
})), className),
|
|
94
94
|
focusableWhenDisabled: Boolean(isLoading),
|
|
95
95
|
"data-loading": isLoading,
|
package/dist/ui/button.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"button.js","names":["ButtonPrimitive"],"sources":["../../src/ui/button/button.tsx"],"sourcesContent":["\"use client\";\n\nimport
|
|
1
|
+
{"version":3,"file":"button.js","names":["ButtonPrimitive"],"sources":["../../src/ui/button/button.tsx"],"sourcesContent":["\"use client\";\n\nimport { Button as ButtonPrimitive } from \"@base-ui/react/button\";\nimport type { ComponentProps, ReactNode } from \"react\";\nimport { useContext } from \"react\";\nimport { cn, tv } from \"tailwind-variants\";\nimport type { VariantProps } from \"tailwind-variants\";\n\nimport { mergeBaseUIClassName } from \"../../utils/merge-base-ui-class-name\";\nimport { ButtonGroupSizeContext } from \"../button-group/button-group-size-context\";\nimport {\n filterUndefinedProps,\n useGlobalUISize,\n useKuzenboComponentDefaults,\n} from \"../shared/size/size-provider\";\nimport type { UISize } from \"../shared/size/size-system\";\nimport {\n resolveDefaultNestedIconClassBySize,\n resolveFieldHeightClassBySize,\n resolveFieldTextClassBySize,\n} from \"../shared/size/size-system\";\nimport { Spinner } from \"../spinner/spinner\";\n\nconst buttonVariants = tv({\n base: \"group/button cursor-clickable focus-visible:border-ring focus-visible:ring-ring/50 aria-invalid:border-danger aria-invalid:ring-danger/20 dark:aria-invalid:border-danger/50 dark:aria-invalid:ring-danger/40 inline-flex shrink-0 items-center justify-center rounded-md border border-transparent bg-clip-padding text-sm font-medium whitespace-nowrap transition-[transform,color,background-color,border-color,box-shadow] duration-100 ease-out outline-none select-none focus-visible:ring-[3px] active:scale-[0.98] disabled:pointer-events-none disabled:opacity-50 aria-invalid:ring-[3px] motion-reduce:active:scale-100 [&_svg]:pointer-events-none [&_svg]:shrink-0 [&_svg:not([class*='size-'])]:size-4\",\n defaultVariants: {\n size: \"md\",\n variant: \"default\",\n },\n variants: {\n size: {\n icon: \"size-9\",\n \"icon-lg\": \"size-10\",\n \"icon-sm\":\n \"size-8 rounded-[min(var(--radius-md),10px)] in-data-[slot=button-group]:rounded-lg\",\n \"icon-xl\": [\"size-11\", resolveDefaultNestedIconClassBySize(\"xl\")],\n \"icon-xs\": [\n \"size-6 rounded-[min(var(--radius-md),10px)] in-data-[slot=button-group]:rounded-lg\",\n resolveDefaultNestedIconClassBySize(\"xs\"),\n ],\n lg: [\n resolveFieldHeightClassBySize(\"lg\"),\n \"gap-1.5 px-3 has-data-[icon=inline-end]:pr-3 has-data-[icon=inline-start]:pl-3\",\n ],\n md: [\n resolveFieldHeightClassBySize(\"md\"),\n \"gap-1.5 px-2.5 has-data-[icon=inline-end]:pr-2 has-data-[icon=inline-start]:pl-2\",\n ],\n sm: [\n resolveFieldHeightClassBySize(\"sm\"),\n resolveDefaultNestedIconClassBySize(\"sm\"),\n \"gap-1 rounded-[min(var(--radius-md),10px)] px-2.5 in-data-[slot=button-group]:rounded-lg has-data-[icon=inline-end]:pr-1.5 has-data-[icon=inline-start]:pl-1.5\",\n ],\n xl: [\n resolveFieldHeightClassBySize(\"xl\"),\n resolveFieldTextClassBySize(\"xl\"),\n resolveDefaultNestedIconClassBySize(\"xl\"),\n \"gap-2 px-4 has-data-[icon=inline-end]:pr-3.5 has-data-[icon=inline-start]:pl-3.5\",\n ],\n xs: [\n resolveFieldHeightClassBySize(\"xs\"),\n resolveFieldTextClassBySize(\"xs\"),\n resolveDefaultNestedIconClassBySize(\"xs\"),\n \"gap-1 rounded-[min(var(--radius-md),8px)] px-2 in-data-[slot=button-group]:rounded-lg has-data-[icon=inline-end]:pr-1.5 has-data-[icon=inline-start]:pl-1.5\",\n ],\n },\n variant: {\n danger:\n \"bg-danger text-danger-foreground hover:bg-danger/90 focus-visible:border-danger-foreground/40 focus-visible:ring-danger-foreground/30 dark:bg-danger dark:text-danger-foreground dark:hover:bg-danger/80 dark:focus-visible:ring-danger-foreground/40\",\n default:\n \"bg-primary text-primary-foreground hover:bg-primary/90 [a]:hover:bg-primary/80\",\n ghost:\n \"hover:bg-muted hover:text-foreground aria-expanded:bg-muted aria-expanded:text-foreground dark:hover:bg-muted/50\",\n link: \"text-primary underline-offset-4 hover:underline\",\n outline:\n \"border-border bg-background hover:bg-muted hover:text-foreground aria-expanded:bg-muted aria-expanded:text-foreground dark:border-input dark:bg-card dark:hover:bg-muted\",\n secondary:\n \"bg-secondary text-secondary-foreground hover:bg-secondary/80 aria-expanded:bg-secondary aria-expanded:text-secondary-foreground\",\n },\n },\n});\n\nexport type ButtonProps = ComponentProps<typeof ButtonPrimitive> &\n VariantProps<typeof buttonVariants> & {\n isLoading?: boolean;\n };\n\ntype ButtonSize = NonNullable<VariantProps<typeof buttonVariants>[\"size\"]>;\n\nconst BUTTON_SPINNER_SIZE_BY_BUTTON_SIZE: Record<ButtonSize, UISize> = {\n icon: \"md\",\n \"icon-lg\": \"lg\",\n \"icon-sm\": \"sm\",\n \"icon-xl\": \"xl\",\n \"icon-xs\": \"xs\",\n lg: \"lg\",\n md: \"md\",\n sm: \"sm\",\n xl: \"xl\",\n xs: \"xs\",\n};\n\nconst isButtonSize = (value: unknown): value is ButtonSize =>\n typeof value === \"string\" && value in BUTTON_SPINNER_SIZE_BY_BUTTON_SIZE;\n\nconst ButtonContent = ({\n children,\n isLoading,\n size,\n}: {\n children: ReactNode;\n isLoading?: boolean;\n size: ButtonSize;\n}) => (\n <span className=\"relative inline-flex items-center justify-center\">\n <span\n className={cn(\n \"inline-flex items-center justify-center gap-2 transition-all duration-200\",\n isLoading\n ? \"pointer-events-none -translate-y-full opacity-0\"\n : \"translate-y-0 opacity-100\"\n )}\n >\n {children}\n </span>\n <span\n className={cn(\n \"absolute inset-0 inline-flex items-center justify-center transition-all duration-200\",\n isLoading\n ? \"translate-y-0 opacity-100\"\n : \"pointer-events-none -translate-y-full opacity-0\"\n )}\n >\n <Spinner size={BUTTON_SPINNER_SIZE_BY_BUTTON_SIZE[size]} />\n </span>\n </span>\n);\n\nconst Button = (incomingProps: ButtonProps) => {\n const componentDefaults = useKuzenboComponentDefaults<ButtonProps>(\"Button\");\n const { size: componentDefaultSize, ...componentDefaultsWithoutSize } =\n componentDefaults;\n const {\n className,\n variant = \"default\",\n size,\n isLoading,\n children,\n disabled,\n ...props\n } = {\n ...filterUndefinedProps(componentDefaultsWithoutSize),\n ...filterUndefinedProps(incomingProps),\n } as ButtonProps;\n\n const { size: buttonGroupSize } = useContext(ButtonGroupSizeContext);\n const globalSize = useGlobalUISize();\n\n const resolvedSize: ButtonSize = isButtonSize(size)\n ? size\n : (buttonGroupSize ??\n (isButtonSize(componentDefaultSize)\n ? componentDefaultSize\n : (globalSize ?? \"md\")));\n\n return (\n <ButtonPrimitive\n className={mergeBaseUIClassName<ButtonPrimitive.State>(\n cn(buttonVariants({ size: resolvedSize, variant })),\n className\n )}\n focusableWhenDisabled={Boolean(isLoading)}\n data-loading={isLoading}\n data-size={resolvedSize}\n data-slot=\"button\"\n disabled={disabled || isLoading}\n {...props}\n >\n <ButtonContent isLoading={isLoading} size={resolvedSize}>\n {children}\n </ButtonContent>\n </ButtonPrimitive>\n );\n};\n\nexport { Button, buttonVariants };\n"],"mappings":";;;;;;;;;;;;;AAuBA,MAAM,iBAAiB,GAAG;CACxB,MAAM;CACN,iBAAiB;EACf,MAAM;EACN,SAAS;EACV;CACD,UAAU;EACR,MAAM;GACJ,MAAM;GACN,WAAW;GACX,WACE;GACF,WAAW,CAAC,WAAW,oCAAoC,KAAK,CAAC;GACjE,WAAW,CACT,sFACA,oCAAoC,KAAK,CAC1C;GACD,IAAI,CACF,8BAA8B,KAAK,EACnC,iFACD;GACD,IAAI,CACF,8BAA8B,KAAK,EACnC,mFACD;GACD,IAAI;IACF,8BAA8B,KAAK;IACnC,oCAAoC,KAAK;IACzC;IACD;GACD,IAAI;IACF,8BAA8B,KAAK;IACnC,4BAA4B,KAAK;IACjC,oCAAoC,KAAK;IACzC;IACD;GACD,IAAI;IACF,8BAA8B,KAAK;IACnC,4BAA4B,KAAK;IACjC,oCAAoC,KAAK;IACzC;IACD;GACF;EACD,SAAS;GACP,QACE;GACF,SACE;GACF,OACE;GACF,MAAM;GACN,SACE;GACF,WACE;GACH;EACF;CACF,CAAC;AASF,MAAM,qCAAiE;CACrE,MAAM;CACN,WAAW;CACX,WAAW;CACX,WAAW;CACX,WAAW;CACX,IAAI;CACJ,IAAI;CACJ,IAAI;CACJ,IAAI;CACJ,IAAI;CACL;AAED,MAAM,gBAAgB,UACpB,OAAO,UAAU,YAAY,SAAS;AAExC,MAAM,iBAAiB,EACrB,UACA,WACA,WAMA,qBAAC,QAAD;CAAM,WAAU;WAAhB,CACE,oBAAC,QAAD;EACE,WAAW,GACT,6EACA,YACI,oDACA,4BACL;EAEA;EACI,GACP,oBAAC,QAAD;EACE,WAAW,GACT,wFACA,YACI,8BACA,kDACL;YAED,oBAAC,SAAD,EAAS,MAAM,mCAAmC,OAAS;EACtD,EACF;;AAGT,MAAM,UAAU,kBAA+B;CAE7C,MAAM,EAAE,MAAM,sBAAsB,GAAG,iCADb,4BAAyC,SAAS;CAG5E,MAAM,EACJ,WACA,UAAU,WACV,MACA,WACA,UACA,UACA,GAAG,UACD;EACF,GAAG,qBAAqB,6BAA6B;EACrD,GAAG,qBAAqB,cAAc;EACvC;CAED,MAAM,EAAE,MAAM,oBAAoB,WAAW,uBAAuB;CACpE,MAAM,aAAa,iBAAiB;CAEpC,MAAM,eAA2B,aAAa,KAAK,GAC/C,OACC,oBACA,aAAa,qBAAqB,GAC/B,uBACC,cAAc;AAEvB,QACE,oBAACA,UAAD;EACE,WAAW,qBACT,GAAG,eAAe;GAAE,MAAM;GAAc;GAAS,CAAC,CAAC,EACnD,UACD;EACD,uBAAuB,QAAQ,UAAU;EACzC,gBAAc;EACd,aAAW;EACX,aAAU;EACV,UAAU,YAAY;EACtB,GAAI;YAEJ,oBAAC,eAAD;GAA0B;GAAW,MAAM;GACxC;GACa;EACA"}
|
package/dist/ui/card.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"card.d.ts","names":[],"sources":["../../src/ui/card/card-action.tsx","../../src/ui/card/card-content.tsx","../../src/ui/card/card-description.tsx","../../src/ui/card/card-footer.tsx","../../src/ui/card/card-header.tsx","../../src/ui/card/card-title.tsx","../../src/ui/card/card.tsx"],"mappings":";;;;;
|
|
1
|
+
{"version":3,"file":"card.d.ts","names":[],"sources":["../../src/ui/card/card-action.tsx","../../src/ui/card/card-content.tsx","../../src/ui/card/card-description.tsx","../../src/ui/card/card-footer.tsx","../../src/ui/card/card-header.tsx","../../src/ui/card/card-title.tsx","../../src/ui/card/card.tsx"],"mappings":";;;;;KAEY,eAAA,GAAkB,cAAA;AAAA,cAExB,UAAA;EAAc,SAAA;EAAA,GAAA;AAAA,GAAyB,eAAA,KAAe,kBAAA,CAAA,GAAA,CAAA,OAAA;;;KCFhD,gBAAA,GAAmB,cAAA;AAAA,cAEzB,WAAA;EAAe,SAAA;EAAA,GAAA;AAAA,GAAyB,gBAAA,KAAgB,kBAAA,CAAA,GAAA,CAAA,OAAA;;;KCFlD,oBAAA,GAAuB,cAAA;AAAA,cAE7B,eAAA;EAAmB,SAAA;EAAA,GAAA;AAAA,GAAyB,oBAAA,KAAoB,kBAAA,CAAA,GAAA,CAAA,OAAA;;;KCF1D,eAAA,GAAkB,cAAA;AAAA,cAExB,UAAA;EAAc,SAAA;EAAA,GAAA;AAAA,GAAyB,eAAA,KAAe,kBAAA,CAAA,GAAA,CAAA,OAAA;;;KCFhD,eAAA,GAAkB,cAAA;AAAA,cAExB,UAAA;EAAc,SAAA;EAAA,GAAA;AAAA,GAAyB,eAAA,KAAe,kBAAA,CAAA,GAAA,CAAA,OAAA;;;KCFhD,cAAA,GAAiB,cAAA;AAAA,cAEvB,SAAA;EAAa,SAAA;EAAA,GAAA;AAAA,GAAyB,cAAA,KAAc,kBAAA,CAAA,GAAA,CAAA,OAAA;;;KCU9C,SAAA,GAAY,cAAA;EAA0B,IAAA,GAAO,MAAA;AAAA;AAAA,cAEnD,IAAA;EAAA,gBAAuB,SAAA,GAAS,kBAAA,CAAA,GAAA,CAAA,OAAA"}
|
package/dist/ui/card.js
CHANGED
|
@@ -1,3 +1,5 @@
|
|
|
1
|
+
"use client";
|
|
2
|
+
|
|
1
3
|
import { a as useComponentSize, i as useComponentDefaultProps } from "../size-provider-18EvJgDT.js";
|
|
2
4
|
import { jsx } from "react/jsx-runtime";
|
|
3
5
|
import { cn } from "tailwind-variants";
|
|
@@ -12,7 +14,7 @@ const CardAction = ({ className, ...props }) => /* @__PURE__ */ jsx("div", {
|
|
|
12
14
|
//#endregion
|
|
13
15
|
//#region src/ui/card/card-content.tsx
|
|
14
16
|
const CardContent = ({ className, ...props }) => /* @__PURE__ */ jsx("div", {
|
|
15
|
-
className: cn("group-data-[size=
|
|
17
|
+
className: cn("group-data-[size=lg]/card:px-6 group-data-[size=md]/card:px-5 group-data-[size=sm]/card:px-3 group-data-[size=xl]/card:px-7 group-data-[size=xs]/card:px-2.5", className),
|
|
16
18
|
"data-slot": "card-content",
|
|
17
19
|
...props
|
|
18
20
|
});
|
|
@@ -20,7 +22,7 @@ const CardContent = ({ className, ...props }) => /* @__PURE__ */ jsx("div", {
|
|
|
20
22
|
//#endregion
|
|
21
23
|
//#region src/ui/card/card-description.tsx
|
|
22
24
|
const CardDescription = ({ className, ...props }) => /* @__PURE__ */ jsx("div", {
|
|
23
|
-
className: cn("text-muted-foreground group-data-[size=
|
|
25
|
+
className: cn("text-muted-foreground group-data-[size=lg]/card:text-sm group-data-[size=md]/card:text-sm group-data-[size=sm]/card:text-sm group-data-[size=xl]/card:text-base group-data-[size=xs]/card:text-xs", className),
|
|
24
26
|
"data-slot": "card-description",
|
|
25
27
|
...props
|
|
26
28
|
});
|
|
@@ -28,7 +30,7 @@ const CardDescription = ({ className, ...props }) => /* @__PURE__ */ jsx("div",
|
|
|
28
30
|
//#endregion
|
|
29
31
|
//#region src/ui/card/card-footer.tsx
|
|
30
32
|
const CardFooter = ({ className, ...props }) => /* @__PURE__ */ jsx("div", {
|
|
31
|
-
className: cn("flex items-center rounded-b-xl group-data-[size=
|
|
33
|
+
className: cn("flex items-center rounded-b-xl group-data-[size=lg]/card:px-6 group-data-[size=lg]/card:pb-6 group-data-[size=md]/card:px-5 group-data-[size=md]/card:pb-5 group-data-[size=sm]/card:px-3 group-data-[size=sm]/card:pb-3 group-data-[size=xl]/card:px-7 group-data-[size=xl]/card:pb-7 group-data-[size=xs]/card:px-2.5 group-data-[size=xs]/card:pb-2.5 group-data-[size=lg]/card:[.border-t]:pt-6 group-data-[size=md]/card:[.border-t]:pt-5 group-data-[size=sm]/card:[.border-t]:pt-3 group-data-[size=xl]/card:[.border-t]:pt-7 group-data-[size=xs]/card:[.border-t]:pt-2.5", className),
|
|
32
34
|
"data-slot": "card-footer",
|
|
33
35
|
...props
|
|
34
36
|
});
|
|
@@ -36,7 +38,7 @@ const CardFooter = ({ className, ...props }) => /* @__PURE__ */ jsx("div", {
|
|
|
36
38
|
//#endregion
|
|
37
39
|
//#region src/ui/card/card-header.tsx
|
|
38
40
|
const CardHeader = ({ className, ...props }) => /* @__PURE__ */ jsx("div", {
|
|
39
|
-
className: cn("group/card-header @container/card-header grid auto-rows-min items-start gap-1 rounded-t-xl group-data-[size=
|
|
41
|
+
className: cn("group/card-header @container/card-header grid auto-rows-min items-start gap-1 rounded-t-xl group-data-[size=lg]/card:px-6 group-data-[size=md]/card:px-5 group-data-[size=sm]/card:px-3 group-data-[size=xl]/card:px-7 group-data-[size=xs]/card:px-2.5 has-data-[slot=card-action]:grid-cols-[1fr_auto] has-data-[slot=card-description]:grid-rows-[auto_auto] group-data-[size=lg]/card:[.border-b]:pb-6 group-data-[size=md]/card:[.border-b]:pb-5 group-data-[size=sm]/card:[.border-b]:pb-3 group-data-[size=xl]/card:[.border-b]:pb-7 group-data-[size=xs]/card:[.border-b]:pb-2.5", className),
|
|
40
42
|
"data-slot": "card-header",
|
|
41
43
|
...props
|
|
42
44
|
});
|
|
@@ -44,7 +46,7 @@ const CardHeader = ({ className, ...props }) => /* @__PURE__ */ jsx("div", {
|
|
|
44
46
|
//#endregion
|
|
45
47
|
//#region src/ui/card/card-title.tsx
|
|
46
48
|
const CardTitle = ({ className, ...props }) => /* @__PURE__ */ jsx("div", {
|
|
47
|
-
className: cn("leading-snug font-medium group-data-[size=
|
|
49
|
+
className: cn("leading-snug font-medium group-data-[size=lg]/card:text-base group-data-[size=md]/card:text-base group-data-[size=sm]/card:text-sm group-data-[size=xl]/card:text-lg group-data-[size=xs]/card:text-sm", className),
|
|
48
50
|
"data-slot": "card-title",
|
|
49
51
|
...props
|
|
50
52
|
});
|
|
@@ -59,7 +61,7 @@ const Card = (incomingProps) => {
|
|
|
59
61
|
const { className, size: providedSize, ...props } = useCardDefaultProps(incomingProps);
|
|
60
62
|
const size = useComponentSize(providedSize);
|
|
61
63
|
return /* @__PURE__ */ jsx("div", {
|
|
62
|
-
className: cn("group/card flex flex-col overflow-hidden rounded-xl border
|
|
64
|
+
className: cn("group/card border-border bg-card text-card-foreground flex flex-col overflow-hidden rounded-xl border shadow-xs has-data-[slot=card-footer]:pb-0 has-[>img:first-child]:pt-0 data-[size=lg]:gap-6 data-[size=lg]:py-6 data-[size=lg]:text-sm data-[size=md]:gap-5 data-[size=md]:py-5 data-[size=md]:text-sm data-[size=sm]:gap-3 data-[size=sm]:py-3 data-[size=sm]:text-sm data-[size=xl]:gap-7 data-[size=xl]:py-6 data-[size=xl]:text-base data-[size=xs]:gap-2.5 data-[size=xs]:py-2.5 data-[size=xs]:text-xs *:[img:first-child]:rounded-t-xl *:[img:last-child]:rounded-b-xl", className),
|
|
63
65
|
"data-size": size,
|
|
64
66
|
"data-slot": "card",
|
|
65
67
|
...props
|
package/dist/ui/card.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"card.js","names":[],"sources":["../../src/ui/card/card-action.tsx","../../src/ui/card/card-content.tsx","../../src/ui/card/card-description.tsx","../../src/ui/card/card-footer.tsx","../../src/ui/card/card-header.tsx","../../src/ui/card/card-title.tsx","../../src/ui/card/use-card-default-props.ts","../../src/ui/card/card.tsx"],"sourcesContent":["import type { ComponentProps } from \"react\";\
|
|
1
|
+
{"version":3,"file":"card.js","names":[],"sources":["../../src/ui/card/card-action.tsx","../../src/ui/card/card-content.tsx","../../src/ui/card/card-description.tsx","../../src/ui/card/card-footer.tsx","../../src/ui/card/card-header.tsx","../../src/ui/card/card-title.tsx","../../src/ui/card/use-card-default-props.ts","../../src/ui/card/card.tsx"],"sourcesContent":["import type { ComponentProps } from \"react\";\nimport { cn } from \"tailwind-variants\";\nexport type CardActionProps = ComponentProps<\"div\">;\n\nconst CardAction = ({ className, ...props }: CardActionProps) => (\n <div\n className={cn(\n \"col-start-2 row-span-2 row-start-1 self-start justify-self-end\",\n className\n )}\n data-slot=\"card-action\"\n {...props}\n />\n);\n\nexport { CardAction };\n","import type { ComponentProps } from \"react\";\nimport { cn } from \"tailwind-variants\";\nexport type CardContentProps = ComponentProps<\"div\">;\n\nconst CardContent = ({ className, ...props }: CardContentProps) => (\n <div\n className={cn(\n \"group-data-[size=lg]/card:px-6 group-data-[size=md]/card:px-5 group-data-[size=sm]/card:px-3 group-data-[size=xl]/card:px-7 group-data-[size=xs]/card:px-2.5\",\n className\n )}\n data-slot=\"card-content\"\n {...props}\n />\n);\n\nexport { CardContent };\n","import type { ComponentProps } from \"react\";\nimport { cn } from \"tailwind-variants\";\nexport type CardDescriptionProps = ComponentProps<\"div\">;\n\nconst CardDescription = ({ className, ...props }: CardDescriptionProps) => (\n <div\n className={cn(\n \"text-muted-foreground group-data-[size=lg]/card:text-sm group-data-[size=md]/card:text-sm group-data-[size=sm]/card:text-sm group-data-[size=xl]/card:text-base group-data-[size=xs]/card:text-xs\",\n className\n )}\n data-slot=\"card-description\"\n {...props}\n />\n);\n\nexport { CardDescription };\n","import type { ComponentProps } from \"react\";\nimport { cn } from \"tailwind-variants\";\nexport type CardFooterProps = ComponentProps<\"div\">;\n\nconst CardFooter = ({ className, ...props }: CardFooterProps) => (\n <div\n className={cn(\n \"flex items-center rounded-b-xl group-data-[size=lg]/card:px-6 group-data-[size=lg]/card:pb-6 group-data-[size=md]/card:px-5 group-data-[size=md]/card:pb-5 group-data-[size=sm]/card:px-3 group-data-[size=sm]/card:pb-3 group-data-[size=xl]/card:px-7 group-data-[size=xl]/card:pb-7 group-data-[size=xs]/card:px-2.5 group-data-[size=xs]/card:pb-2.5 group-data-[size=lg]/card:[.border-t]:pt-6 group-data-[size=md]/card:[.border-t]:pt-5 group-data-[size=sm]/card:[.border-t]:pt-3 group-data-[size=xl]/card:[.border-t]:pt-7 group-data-[size=xs]/card:[.border-t]:pt-2.5\",\n className\n )}\n data-slot=\"card-footer\"\n {...props}\n />\n);\n\nexport { CardFooter };\n","import type { ComponentProps } from \"react\";\nimport { cn } from \"tailwind-variants\";\nexport type CardHeaderProps = ComponentProps<\"div\">;\n\nconst CardHeader = ({ className, ...props }: CardHeaderProps) => (\n <div\n className={cn(\n \"group/card-header @container/card-header grid auto-rows-min items-start gap-1 rounded-t-xl group-data-[size=lg]/card:px-6 group-data-[size=md]/card:px-5 group-data-[size=sm]/card:px-3 group-data-[size=xl]/card:px-7 group-data-[size=xs]/card:px-2.5 has-data-[slot=card-action]:grid-cols-[1fr_auto] has-data-[slot=card-description]:grid-rows-[auto_auto] group-data-[size=lg]/card:[.border-b]:pb-6 group-data-[size=md]/card:[.border-b]:pb-5 group-data-[size=sm]/card:[.border-b]:pb-3 group-data-[size=xl]/card:[.border-b]:pb-7 group-data-[size=xs]/card:[.border-b]:pb-2.5\",\n className\n )}\n data-slot=\"card-header\"\n {...props}\n />\n);\n\nexport { CardHeader };\n","import type { ComponentProps } from \"react\";\nimport { cn } from \"tailwind-variants\";\nexport type CardTitleProps = ComponentProps<\"div\">;\n\nconst CardTitle = ({ className, ...props }: CardTitleProps) => (\n <div\n className={cn(\n \"leading-snug font-medium group-data-[size=lg]/card:text-base group-data-[size=md]/card:text-base group-data-[size=sm]/card:text-sm group-data-[size=xl]/card:text-lg group-data-[size=xs]/card:text-sm\",\n className\n )}\n data-slot=\"card-title\"\n {...props}\n />\n);\n\nexport { CardTitle };\n","import { useComponentDefaultProps } from \"../shared/size/size-provider\";\nimport type { CardProps } from \"./card\";\n\nexport const useCardDefaultProps = (incomingProps: CardProps): CardProps =>\n useComponentDefaultProps<CardProps>(\"Card\", {}, incomingProps);\n","\"use client\";\n\nimport type { ComponentProps } from \"react\";\nimport { cn } from \"tailwind-variants\";\n\nimport { useComponentSize } from \"../shared/size/size-provider\";\nimport type { UISize } from \"../shared/size/size-system\";\nimport { CardAction } from \"./card-action\";\nimport { CardContent } from \"./card-content\";\nimport { CardDescription } from \"./card-description\";\nimport { CardFooter } from \"./card-footer\";\nimport { CardHeader } from \"./card-header\";\nimport { CardTitle } from \"./card-title\";\nimport { useCardDefaultProps } from \"./use-card-default-props\";\nexport type CardProps = ComponentProps<\"div\"> & { size?: UISize };\n\nconst Card = (incomingProps: CardProps) => {\n const {\n className,\n size: providedSize,\n ...props\n } = useCardDefaultProps(incomingProps);\n const size = useComponentSize(providedSize);\n\n return (\n <div\n className={cn(\n \"group/card border-border bg-card text-card-foreground flex flex-col overflow-hidden rounded-xl border shadow-xs has-data-[slot=card-footer]:pb-0 has-[>img:first-child]:pt-0 data-[size=lg]:gap-6 data-[size=lg]:py-6 data-[size=lg]:text-sm data-[size=md]:gap-5 data-[size=md]:py-5 data-[size=md]:text-sm data-[size=sm]:gap-3 data-[size=sm]:py-3 data-[size=sm]:text-sm data-[size=xl]:gap-7 data-[size=xl]:py-6 data-[size=xl]:text-base data-[size=xs]:gap-2.5 data-[size=xs]:py-2.5 data-[size=xs]:text-xs *:[img:first-child]:rounded-t-xl *:[img:last-child]:rounded-b-xl\",\n className\n )}\n data-size={size}\n data-slot=\"card\"\n {...props}\n />\n );\n};\n\nCard.Action = CardAction;\nCard.Content = CardContent;\nCard.Description = CardDescription;\nCard.Footer = CardFooter;\nCard.Header = CardHeader;\nCard.Title = CardTitle;\n\nexport {\n Card,\n CardAction,\n CardContent,\n CardDescription,\n CardFooter,\n CardHeader,\n CardTitle,\n};\n\nexport type { CardActionProps } from \"./card-action\";\nexport type { CardContentProps } from \"./card-content\";\nexport type { CardDescriptionProps } from \"./card-description\";\nexport type { CardFooterProps } from \"./card-footer\";\nexport type { CardHeaderProps } from \"./card-header\";\nexport type { CardTitleProps } from \"./card-title\";\n"],"mappings":";;;;;;;AAIA,MAAM,cAAc,EAAE,WAAW,GAAG,YAClC,oBAAC,OAAD;CACE,WAAW,GACT,kEACA,UACD;CACD,aAAU;CACV,GAAI;CACJ;;;;ACRJ,MAAM,eAAe,EAAE,WAAW,GAAG,YACnC,oBAAC,OAAD;CACE,WAAW,GACT,gKACA,UACD;CACD,aAAU;CACV,GAAI;CACJ;;;;ACRJ,MAAM,mBAAmB,EAAE,WAAW,GAAG,YACvC,oBAAC,OAAD;CACE,WAAW,GACT,qMACA,UACD;CACD,aAAU;CACV,GAAI;CACJ;;;;ACRJ,MAAM,cAAc,EAAE,WAAW,GAAG,YAClC,oBAAC,OAAD;CACE,WAAW,GACT,qjBACA,UACD;CACD,aAAU;CACV,GAAI;CACJ;;;;ACRJ,MAAM,cAAc,EAAE,WAAW,GAAG,YAClC,oBAAC,OAAD;CACE,WAAW,GACT,4jBACA,UACD;CACD,aAAU;CACV,GAAI;CACJ;;;;ACRJ,MAAM,aAAa,EAAE,WAAW,GAAG,YACjC,oBAAC,OAAD;CACE,WAAW,GACT,0MACA,UACD;CACD,aAAU;CACV,GAAI;CACJ;;;;ACTJ,MAAa,uBAAuB,kBAClC,yBAAoC,QAAQ,EAAE,EAAE,cAAc;;;;ACYhE,MAAM,QAAQ,kBAA6B;CACzC,MAAM,EACJ,WACA,MAAM,cACN,GAAG,UACD,oBAAoB,cAAc;CACtC,MAAM,OAAO,iBAAiB,aAAa;AAE3C,QACE,oBAAC,OAAD;EACE,WAAW,GACT,ujBACA,UACD;EACD,aAAW;EACX,aAAU;EACV,GAAI;EACJ;;AAIN,KAAK,SAAS;AACd,KAAK,UAAU;AACf,KAAK,cAAc;AACnB,KAAK,SAAS;AACd,KAAK,SAAS;AACd,KAAK,QAAQ"}
|
package/dist/ui/carousel.d.ts
CHANGED
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import { Button } from "
|
|
1
|
+
import { t as Button } from "../button-nAbTNrxA.js";
|
|
2
2
|
import { ComponentProps } from "react";
|
|
3
3
|
import * as react_jsx_runtime0 from "react/jsx-runtime";
|
|
4
4
|
import useEmblaCarousel, { UseEmblaCarouselType } from "embla-carousel-react";
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"carousel.d.ts","names":[],"sources":["../../src/ui/carousel/carousel-content.tsx","../../src/ui/carousel/carousel-item.tsx","../../src/ui/carousel/carousel-next.tsx","../../src/ui/carousel/carousel-previous.tsx","../../src/ui/carousel/use-carousel.tsx","../../src/ui/carousel/carousel.tsx"],"mappings":";;;;;;
|
|
1
|
+
{"version":3,"file":"carousel.d.ts","names":[],"sources":["../../src/ui/carousel/carousel-content.tsx","../../src/ui/carousel/carousel-item.tsx","../../src/ui/carousel/carousel-next.tsx","../../src/ui/carousel/carousel-previous.tsx","../../src/ui/carousel/use-carousel.tsx","../../src/ui/carousel/carousel.tsx"],"mappings":";;;;;;KAIY,oBAAA,GAAuB,cAAA;AAAA,cAE7B,eAAA;EAAmB,SAAA;EAAA,GAAA;AAAA,GAAyB,oBAAA,KAAoB,kBAAA,CAAA,GAAA,CAAA,OAAA;;;KCF1D,iBAAA,GAAoB,cAAA;AAAA,cAE1B,YAAA;EAAgB,SAAA;EAAA,GAAA;AAAA,GAAyB,iBAAA,KAAiB,kBAAA,CAAA,GAAA,CAAA,OAAA;;;KCCpD,iBAAA,GAAoB,cAAA,QAAsB,MAAA;AAAA,cAEhD,YAAA;EAAgB,SAAA;EAAA,OAAA;EAAA,IAAA;EAAA,GAAA;AAAA,GAKnB,iBAAA,KAAiB,kBAAA,CAAA,GAAA,CAAA,OAAA;;;KCPR,qBAAA,GAAwB,cAAA,QAAsB,MAAA;AAAA,cAEpD,gBAAA;EAAoB,SAAA;EAAA,OAAA;EAAA,IAAA;EAAA,GAAA;AAAA,GAKvB,qBAAA,KAAqB,kBAAA,CAAA,GAAA,CAAA,OAAA;;;KCRnB,WAAA,GAAc,oBAAA;AAAA,KACd,qBAAA,GAAwB,UAAA,QAAkB,gBAAA;AAAA,KAC1C,eAAA,GAAkB,qBAAA;AAAA,KAClB,cAAA,GAAiB,qBAAA;AAAA,UAEZ,aAAA;EACR,IAAA,GAAO,eAAA;EACP,OAAA,GAAU,cAAA;EACV,WAAA;EACA,MAAA,IAAU,GAAA,EAAK,WAAA;AAAA;AAAA,KAGZ,oBAAA;EACH,WAAA,EAAa,UAAA,QAAkB,gBAAA;EAC/B,GAAA,EAAK,UAAA,QAAkB,gBAAA;EACvB,UAAA;EACA,UAAA;EACA,aAAA;EACA,aAAA;AAAA,IACE,aAAA;AAAA,cAIE,WAAA,QAAW,oBAAA;;;cCfX,QAAA;EAAA;;;;;;;;KAQH,cAAA,UAAwB,aAAA,GAAa,kBAAA,CAAA,GAAA,CAAA,OAAA"}
|
package/dist/ui/carousel.js
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
"use client";
|
|
2
2
|
|
|
3
3
|
import { Button } from "./button.js";
|
|
4
|
-
import { createContext, useCallback, useContext, useEffect, useState } from "react";
|
|
4
|
+
import { createContext, useCallback, useContext, useEffect, useMemo, useState } from "react";
|
|
5
5
|
import { jsx, jsxs } from "react/jsx-runtime";
|
|
6
6
|
import { cn } from "tailwind-variants";
|
|
7
7
|
import { ArrowLeft01Icon, ArrowRight01Icon } from "@hugeicons/core-free-icons";
|
|
@@ -49,7 +49,7 @@ const CarouselItem = ({ className, ...props }) => {
|
|
|
49
49
|
const CarouselNext = ({ className, variant = "outline", size = "icon-sm", ...props }) => {
|
|
50
50
|
const { orientation, scrollNext, canScrollNext } = useCarousel();
|
|
51
51
|
return /* @__PURE__ */ jsxs(Button, {
|
|
52
|
-
className: cn("absolute touch-manipulation rounded-full", orientation === "horizontal" ? "top-1/2 -right-12 -translate-y-1/2" : "-bottom-12 left-1/2 -translate-x-1/2 rotate-90", className),
|
|
52
|
+
className: cn("cursor-clickable absolute touch-manipulation rounded-full", orientation === "horizontal" ? "top-1/2 -right-12 -translate-y-1/2" : "-bottom-12 left-1/2 -translate-x-1/2 rotate-90", className),
|
|
53
53
|
"data-slot": "carousel-next",
|
|
54
54
|
disabled: !canScrollNext,
|
|
55
55
|
onClick: scrollNext,
|
|
@@ -71,7 +71,7 @@ const CarouselNext = ({ className, variant = "outline", size = "icon-sm", ...pro
|
|
|
71
71
|
const CarouselPrevious = ({ className, variant = "outline", size = "icon-sm", ...props }) => {
|
|
72
72
|
const { orientation, scrollPrev, canScrollPrev } = useCarousel();
|
|
73
73
|
return /* @__PURE__ */ jsxs(Button, {
|
|
74
|
-
className: cn("absolute touch-manipulation rounded-full", orientation === "horizontal" ? "top-1/2 -left-12 -translate-y-1/2" : "-top-12 left-1/2 -translate-x-1/2 rotate-90", className),
|
|
74
|
+
className: cn("cursor-clickable absolute touch-manipulation rounded-full", orientation === "horizontal" ? "top-1/2 -left-12 -translate-y-1/2" : "-top-12 left-1/2 -translate-x-1/2 rotate-90", className),
|
|
75
75
|
"data-slot": "carousel-previous",
|
|
76
76
|
disabled: !canScrollPrev,
|
|
77
77
|
onClick: scrollPrev,
|
|
@@ -109,14 +109,21 @@ const Carousel = ({ orientation = "horizontal", opts, setApi, plugins, className
|
|
|
109
109
|
api?.scrollNext();
|
|
110
110
|
}, [api]);
|
|
111
111
|
const handleKeyDown = useCallback((event) => {
|
|
112
|
-
if (event.
|
|
112
|
+
if (event.target !== event.currentTarget) return;
|
|
113
|
+
const previousKey = orientation === "horizontal" ? "ArrowLeft" : "ArrowUp";
|
|
114
|
+
const nextKey = orientation === "horizontal" ? "ArrowRight" : "ArrowDown";
|
|
115
|
+
if (event.key === previousKey) {
|
|
113
116
|
event.preventDefault();
|
|
114
117
|
scrollPrev();
|
|
115
|
-
} else if (event.key ===
|
|
118
|
+
} else if (event.key === nextKey) {
|
|
116
119
|
event.preventDefault();
|
|
117
120
|
scrollNext();
|
|
118
121
|
}
|
|
119
|
-
}, [
|
|
122
|
+
}, [
|
|
123
|
+
orientation,
|
|
124
|
+
scrollPrev,
|
|
125
|
+
scrollNext
|
|
126
|
+
]);
|
|
120
127
|
useEffect(() => {
|
|
121
128
|
if (!(api && setApi)) return;
|
|
122
129
|
setApi(api);
|
|
@@ -130,23 +137,35 @@ const Carousel = ({ orientation = "horizontal", opts, setApi, plugins, className
|
|
|
130
137
|
api?.off("select", onSelect);
|
|
131
138
|
};
|
|
132
139
|
}, [api, onSelect]);
|
|
140
|
+
const resolvedOrientation = orientation || (opts?.axis === "y" ? "vertical" : "horizontal");
|
|
141
|
+
const contextValue = useMemo(() => ({
|
|
142
|
+
api,
|
|
143
|
+
canScrollNext,
|
|
144
|
+
canScrollPrev,
|
|
145
|
+
carouselRef,
|
|
146
|
+
opts,
|
|
147
|
+
orientation: resolvedOrientation,
|
|
148
|
+
scrollNext,
|
|
149
|
+
scrollPrev
|
|
150
|
+
}), [
|
|
151
|
+
carouselRef,
|
|
152
|
+
api,
|
|
153
|
+
opts,
|
|
154
|
+
resolvedOrientation,
|
|
155
|
+
scrollPrev,
|
|
156
|
+
scrollNext,
|
|
157
|
+
canScrollPrev,
|
|
158
|
+
canScrollNext
|
|
159
|
+
]);
|
|
133
160
|
return /* @__PURE__ */ jsx(CarouselContext.Provider, {
|
|
134
|
-
value:
|
|
135
|
-
carouselRef,
|
|
136
|
-
api,
|
|
137
|
-
opts,
|
|
138
|
-
orientation: orientation || (opts?.axis === "y" ? "vertical" : "horizontal"),
|
|
139
|
-
scrollPrev,
|
|
140
|
-
scrollNext,
|
|
141
|
-
canScrollPrev,
|
|
142
|
-
canScrollNext
|
|
143
|
-
},
|
|
161
|
+
value: contextValue,
|
|
144
162
|
children: /* @__PURE__ */ jsx("div", {
|
|
145
163
|
"aria-roledescription": "carousel",
|
|
146
164
|
className: cn("relative", className),
|
|
147
165
|
"data-slot": "carousel",
|
|
148
|
-
|
|
166
|
+
onKeyDown: handleKeyDown,
|
|
149
167
|
role: "region",
|
|
168
|
+
tabIndex: 0,
|
|
150
169
|
...props,
|
|
151
170
|
children
|
|
152
171
|
})
|
package/dist/ui/carousel.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"carousel.js","names":[],"sources":["../../src/ui/carousel/use-carousel.tsx","../../src/ui/carousel/carousel-content.tsx","../../src/ui/carousel/carousel-item.tsx","../../src/ui/carousel/carousel-next.tsx","../../src/ui/carousel/carousel-previous.tsx","../../src/ui/carousel/carousel.tsx"],"sourcesContent":["\"use client\";\n\nimport type useEmblaCarousel from \"embla-carousel-react\";\nimport type { UseEmblaCarouselType } from \"embla-carousel-react\";\n\nimport { createContext, useContext } from \"react\";\n\ntype CarouselApi = UseEmblaCarouselType[1];\ntype UseCarouselParameters = Parameters<typeof useEmblaCarousel>;\ntype CarouselOptions = UseCarouselParameters[0];\ntype CarouselPlugin = UseCarouselParameters[1];\n\ninterface CarouselProps {\n opts?: CarouselOptions;\n plugins?: CarouselPlugin;\n orientation?: \"horizontal\" | \"vertical\";\n setApi?: (api: CarouselApi) => void;\n}\n\ntype CarouselContextProps = {\n carouselRef: ReturnType<typeof useEmblaCarousel>[0];\n api: ReturnType<typeof useEmblaCarousel>[1];\n scrollPrev: () => void;\n scrollNext: () => void;\n canScrollPrev: boolean;\n canScrollNext: boolean;\n} & CarouselProps;\n\nconst CarouselContext = createContext<CarouselContextProps | null>(null);\n\nconst useCarousel = () => {\n const context = useContext(CarouselContext);\n\n if (!context) {\n throw new Error(\"useCarousel must be used within a <Carousel />\");\n }\n\n return context;\n};\n\nexport {\n type CarouselApi,\n type CarouselContextProps,\n type CarouselProps,\n CarouselContext,\n useCarousel,\n};\n","import type { ComponentProps } from \"react\";\n\nimport { cn } from \"tailwind-variants\";\n\nimport { useCarousel } from \"./use-carousel\";\nexport type CarouselContentProps = ComponentProps<\"div\">;\n\nconst CarouselContent = ({ className, ...props }: CarouselContentProps) => {\n const { carouselRef, orientation } = useCarousel();\n\n return (\n <div\n className=\"overflow-hidden\"\n data-slot=\"carousel-content\"\n ref={carouselRef}\n >\n <div\n className={cn(\n \"flex\",\n orientation === \"horizontal\" ? \"-ml-4\" : \"-mt-4 flex-col\",\n className\n )}\n {...props}\n />\n </div>\n );\n};\n\nexport { CarouselContent };\n","import type { ComponentProps } from \"react\";\n\nimport { cn } from \"tailwind-variants\";\n\nimport { useCarousel } from \"./use-carousel\";\nexport type CarouselItemProps = ComponentProps<\"div\">;\n\nconst CarouselItem = ({ className, ...props }: CarouselItemProps) => {\n const { orientation } = useCarousel();\n\n return (\n <div\n aria-roledescription=\"slide\"\n className={cn(\n \"min-w-0 shrink-0 grow-0 basis-full\",\n orientation === \"horizontal\" ? \"pl-4\" : \"pt-4\",\n className\n )}\n data-slot=\"carousel-item\"\n role=\"group\"\n {...props}\n />\n );\n};\n\nexport { CarouselItem };\n","import type { ComponentProps } from \"react\";\n\nimport { ArrowRight01Icon } from \"@hugeicons/core-free-icons\";\nimport { HugeiconsIcon } from \"@hugeicons/react\";\nimport { cn } from \"tailwind-variants\";\n\nimport { Button } from \"../button/button\";\nimport { useCarousel } from \"./use-carousel\";\nexport type CarouselNextProps = ComponentProps<typeof Button>;\n\nconst CarouselNext = ({\n className,\n variant = \"outline\",\n size = \"icon-sm\",\n ...props\n}: CarouselNextProps) => {\n const { orientation, scrollNext, canScrollNext } = useCarousel();\n\n return (\n <Button\n className={cn(\n \"absolute touch-manipulation rounded-full\",\n orientation === \"horizontal\"\n ? \"top-1/2 -right-12 -translate-y-1/2\"\n : \"-bottom-12 left-1/2 -translate-x-1/2 rotate-90\",\n className\n )}\n data-slot=\"carousel-next\"\n disabled={!canScrollNext}\n onClick={scrollNext}\n size={size}\n variant={variant}\n {...props}\n >\n <HugeiconsIcon icon={ArrowRight01Icon} strokeWidth={2} />\n <span className=\"sr-only\">Next slide</span>\n </Button>\n );\n};\n\nexport { CarouselNext };\n","import type { ComponentProps } from \"react\";\n\nimport { ArrowLeft01Icon } from \"@hugeicons/core-free-icons\";\nimport { HugeiconsIcon } from \"@hugeicons/react\";\nimport { cn } from \"tailwind-variants\";\n\nimport { Button } from \"../button/button\";\nimport { useCarousel } from \"./use-carousel\";\nexport type CarouselPreviousProps = ComponentProps<typeof Button>;\n\nconst CarouselPrevious = ({\n className,\n variant = \"outline\",\n size = \"icon-sm\",\n ...props\n}: CarouselPreviousProps) => {\n const { orientation, scrollPrev, canScrollPrev } = useCarousel();\n\n return (\n <Button\n className={cn(\n \"absolute touch-manipulation rounded-full\",\n orientation === \"horizontal\"\n ? \"top-1/2 -left-12 -translate-y-1/2\"\n : \"-top-12 left-1/2 -translate-x-1/2 rotate-90\",\n className\n )}\n data-slot=\"carousel-previous\"\n disabled={!canScrollPrev}\n onClick={scrollPrev}\n size={size}\n variant={variant}\n {...props}\n >\n <HugeiconsIcon icon={ArrowLeft01Icon} strokeWidth={2} />\n <span className=\"sr-only\">Previous slide</span>\n </Button>\n );\n};\n\nexport { CarouselPrevious };\n","\"use client\";\n\nimport useEmblaCarousel from \"embla-carousel-react\";\nimport {\n type ComponentProps,\n type KeyboardEvent,\n useCallback,\n useEffect,\n useState,\n} from \"react\";\nimport { cn } from \"tailwind-variants\";\n\nimport { CarouselContent } from \"./carousel-content\";\nimport { CarouselItem } from \"./carousel-item\";\nimport { CarouselNext } from \"./carousel-next\";\nimport { CarouselPrevious } from \"./carousel-previous\";\nimport {\n type CarouselApi,\n CarouselContext,\n type CarouselProps,\n useCarousel,\n} from \"./use-carousel\";\n\nconst Carousel = ({\n orientation = \"horizontal\",\n opts,\n setApi,\n plugins,\n className,\n children,\n ...props\n}: ComponentProps<\"div\"> & CarouselProps) => {\n const [carouselRef, api] = useEmblaCarousel(\n {\n ...opts,\n axis: orientation === \"horizontal\" ? \"x\" : \"y\",\n },\n plugins\n );\n const [canScrollPrev, setCanScrollPrev] = useState(false);\n const [canScrollNext, setCanScrollNext] = useState(false);\n\n const onSelect = useCallback((emblaApi: CarouselApi) => {\n if (!emblaApi) {\n return;\n }\n setCanScrollPrev(emblaApi.canScrollPrev());\n setCanScrollNext(emblaApi.canScrollNext());\n }, []);\n\n const scrollPrev = useCallback(() => {\n api?.scrollPrev();\n }, [api]);\n\n const scrollNext = useCallback(() => {\n api?.scrollNext();\n }, [api]);\n\n const handleKeyDown = useCallback(\n (event: KeyboardEvent<HTMLDivElement>) => {\n if (event.key === \"ArrowLeft\") {\n event.preventDefault();\n scrollPrev();\n } else if (event.key === \"ArrowRight\") {\n event.preventDefault();\n scrollNext();\n }\n },\n [scrollPrev, scrollNext]\n );\n\n useEffect(() => {\n if (!(api && setApi)) {\n return;\n }\n setApi(api);\n }, [api, setApi]);\n\n useEffect(() => {\n if (!api) {\n return;\n }\n onSelect(api);\n api.on(\"reInit\", onSelect);\n api.on(\"select\", onSelect);\n\n return () => {\n api?.off(\"select\", onSelect);\n };\n }, [api, onSelect]);\n\n return (\n <CarouselContext.Provider\n value={{\n carouselRef,\n api,\n opts,\n orientation:\n orientation || (opts?.axis === \"y\" ? \"vertical\" : \"horizontal\"),\n scrollPrev,\n scrollNext,\n canScrollPrev,\n canScrollNext,\n }}\n >\n {/** biome-ignore lint/a11y/useSemanticElements: region is not semantically appropriate for carousel */}\n <div\n aria-roledescription=\"carousel\"\n className={cn(\"relative\", className)}\n data-slot=\"carousel\"\n onKeyDownCapture={handleKeyDown}\n role=\"region\"\n {...props}\n >\n {children}\n </div>\n </CarouselContext.Provider>\n );\n};\n\nCarousel.Content = CarouselContent;\nCarousel.Item = CarouselItem;\nCarousel.Next = CarouselNext;\nCarousel.Previous = CarouselPrevious;\n\nexport type { CarouselApi } from \"./use-carousel\";\n\nexport {\n Carousel,\n CarouselContent,\n CarouselItem,\n CarouselNext,\n CarouselPrevious,\n useCarousel,\n};\n\nexport type { CarouselProps } from \"./use-carousel\";\n\nexport type { CarouselContentProps } from \"./carousel-content\";\nexport type { CarouselItemProps } from \"./carousel-item\";\nexport type { CarouselNextProps } from \"./carousel-next\";\nexport type { CarouselPreviousProps } from \"./carousel-previous\";\n"],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"carousel.js","names":[],"sources":["../../src/ui/carousel/use-carousel.tsx","../../src/ui/carousel/carousel-content.tsx","../../src/ui/carousel/carousel-item.tsx","../../src/ui/carousel/carousel-next.tsx","../../src/ui/carousel/carousel-previous.tsx","../../src/ui/carousel/carousel.tsx"],"sourcesContent":["\"use client\";\n\nimport type useEmblaCarousel from \"embla-carousel-react\";\nimport type { UseEmblaCarouselType } from \"embla-carousel-react\";\nimport { createContext, useContext } from \"react\";\n\ntype CarouselApi = UseEmblaCarouselType[1];\ntype UseCarouselParameters = Parameters<typeof useEmblaCarousel>;\ntype CarouselOptions = UseCarouselParameters[0];\ntype CarouselPlugin = UseCarouselParameters[1];\n\ninterface CarouselProps {\n opts?: CarouselOptions;\n plugins?: CarouselPlugin;\n orientation?: \"horizontal\" | \"vertical\";\n setApi?: (api: CarouselApi) => void;\n}\n\ntype CarouselContextProps = {\n carouselRef: ReturnType<typeof useEmblaCarousel>[0];\n api: ReturnType<typeof useEmblaCarousel>[1];\n scrollPrev: () => void;\n scrollNext: () => void;\n canScrollPrev: boolean;\n canScrollNext: boolean;\n} & CarouselProps;\n\nconst CarouselContext = createContext<CarouselContextProps | null>(null);\n\nconst useCarousel = () => {\n const context = useContext(CarouselContext);\n\n if (!context) {\n throw new Error(\"useCarousel must be used within a <Carousel />\");\n }\n\n return context;\n};\n\nexport {\n type CarouselApi,\n type CarouselContextProps,\n type CarouselProps,\n CarouselContext,\n useCarousel,\n};\n","import type { ComponentProps } from \"react\";\nimport { cn } from \"tailwind-variants\";\n\nimport { useCarousel } from \"./use-carousel\";\nexport type CarouselContentProps = ComponentProps<\"div\">;\n\nconst CarouselContent = ({ className, ...props }: CarouselContentProps) => {\n const { carouselRef, orientation } = useCarousel();\n\n return (\n <div\n className=\"overflow-hidden\"\n data-slot=\"carousel-content\"\n ref={carouselRef}\n >\n <div\n className={cn(\n \"flex\",\n orientation === \"horizontal\" ? \"-ml-4\" : \"-mt-4 flex-col\",\n className\n )}\n {...props}\n />\n </div>\n );\n};\n\nexport { CarouselContent };\n","import type { ComponentProps } from \"react\";\nimport { cn } from \"tailwind-variants\";\n\nimport { useCarousel } from \"./use-carousel\";\nexport type CarouselItemProps = ComponentProps<\"div\">;\n\nconst CarouselItem = ({ className, ...props }: CarouselItemProps) => {\n const { orientation } = useCarousel();\n\n return (\n <div\n aria-roledescription=\"slide\"\n className={cn(\n \"min-w-0 shrink-0 grow-0 basis-full\",\n orientation === \"horizontal\" ? \"pl-4\" : \"pt-4\",\n className\n )}\n data-slot=\"carousel-item\"\n role=\"group\"\n {...props}\n />\n );\n};\n\nexport { CarouselItem };\n","import { ArrowRight01Icon } from \"@hugeicons/core-free-icons\";\nimport { HugeiconsIcon } from \"@hugeicons/react\";\nimport type { ComponentProps } from \"react\";\nimport { cn } from \"tailwind-variants\";\n\nimport { Button } from \"../button/button\";\nimport { useCarousel } from \"./use-carousel\";\nexport type CarouselNextProps = ComponentProps<typeof Button>;\n\nconst CarouselNext = ({\n className,\n variant = \"outline\",\n size = \"icon-sm\",\n ...props\n}: CarouselNextProps) => {\n const { orientation, scrollNext, canScrollNext } = useCarousel();\n\n return (\n <Button\n className={cn(\n \"cursor-clickable absolute touch-manipulation rounded-full\",\n orientation === \"horizontal\"\n ? \"top-1/2 -right-12 -translate-y-1/2\"\n : \"-bottom-12 left-1/2 -translate-x-1/2 rotate-90\",\n className\n )}\n data-slot=\"carousel-next\"\n disabled={!canScrollNext}\n onClick={scrollNext}\n size={size}\n variant={variant}\n {...props}\n >\n <HugeiconsIcon icon={ArrowRight01Icon} strokeWidth={2} />\n <span className=\"sr-only\">Next slide</span>\n </Button>\n );\n};\n\nexport { CarouselNext };\n","import { ArrowLeft01Icon } from \"@hugeicons/core-free-icons\";\nimport { HugeiconsIcon } from \"@hugeicons/react\";\nimport type { ComponentProps } from \"react\";\nimport { cn } from \"tailwind-variants\";\n\nimport { Button } from \"../button/button\";\nimport { useCarousel } from \"./use-carousel\";\nexport type CarouselPreviousProps = ComponentProps<typeof Button>;\n\nconst CarouselPrevious = ({\n className,\n variant = \"outline\",\n size = \"icon-sm\",\n ...props\n}: CarouselPreviousProps) => {\n const { orientation, scrollPrev, canScrollPrev } = useCarousel();\n\n return (\n <Button\n className={cn(\n \"cursor-clickable absolute touch-manipulation rounded-full\",\n orientation === \"horizontal\"\n ? \"top-1/2 -left-12 -translate-y-1/2\"\n : \"-top-12 left-1/2 -translate-x-1/2 rotate-90\",\n className\n )}\n data-slot=\"carousel-previous\"\n disabled={!canScrollPrev}\n onClick={scrollPrev}\n size={size}\n variant={variant}\n {...props}\n >\n <HugeiconsIcon icon={ArrowLeft01Icon} strokeWidth={2} />\n <span className=\"sr-only\">Previous slide</span>\n </Button>\n );\n};\n\nexport { CarouselPrevious };\n","\"use client\";\n\nimport useEmblaCarousel from \"embla-carousel-react\";\nimport { useCallback, useEffect, useMemo, useState } from \"react\";\nimport type { ComponentProps, KeyboardEvent } from \"react\";\nimport { cn } from \"tailwind-variants\";\n\nimport { CarouselContent } from \"./carousel-content\";\nimport { CarouselItem } from \"./carousel-item\";\nimport { CarouselNext } from \"./carousel-next\";\nimport { CarouselPrevious } from \"./carousel-previous\";\nimport { CarouselContext, useCarousel } from \"./use-carousel\";\nimport type { CarouselApi, CarouselProps } from \"./use-carousel\";\n\nconst Carousel = ({\n orientation = \"horizontal\",\n opts,\n setApi,\n plugins,\n className,\n children,\n ...props\n}: ComponentProps<\"div\"> & CarouselProps) => {\n const [carouselRef, api] = useEmblaCarousel(\n {\n ...opts,\n axis: orientation === \"horizontal\" ? \"x\" : \"y\",\n },\n plugins\n );\n const [canScrollPrev, setCanScrollPrev] = useState(false);\n const [canScrollNext, setCanScrollNext] = useState(false);\n\n const onSelect = useCallback((emblaApi: CarouselApi) => {\n if (!emblaApi) {\n return;\n }\n setCanScrollPrev(emblaApi.canScrollPrev());\n setCanScrollNext(emblaApi.canScrollNext());\n }, []);\n\n const scrollPrev = useCallback(() => {\n api?.scrollPrev();\n }, [api]);\n\n const scrollNext = useCallback(() => {\n api?.scrollNext();\n }, [api]);\n\n const handleKeyDown = useCallback(\n (event: KeyboardEvent<HTMLDivElement>) => {\n if (event.target !== event.currentTarget) {\n return;\n }\n\n const previousKey =\n orientation === \"horizontal\" ? \"ArrowLeft\" : \"ArrowUp\";\n const nextKey = orientation === \"horizontal\" ? \"ArrowRight\" : \"ArrowDown\";\n\n if (event.key === previousKey) {\n event.preventDefault();\n scrollPrev();\n } else if (event.key === nextKey) {\n event.preventDefault();\n scrollNext();\n }\n },\n [orientation, scrollPrev, scrollNext]\n );\n\n useEffect(() => {\n if (!(api && setApi)) {\n return;\n }\n setApi(api);\n }, [api, setApi]);\n\n useEffect(() => {\n if (!api) {\n return;\n }\n onSelect(api);\n api.on(\"reInit\", onSelect);\n api.on(\"select\", onSelect);\n\n return () => {\n api?.off(\"select\", onSelect);\n };\n }, [api, onSelect]);\n const resolvedOrientation =\n orientation || (opts?.axis === \"y\" ? \"vertical\" : \"horizontal\");\n const contextValue = useMemo(\n () => ({\n api,\n canScrollNext,\n canScrollPrev,\n carouselRef,\n opts,\n orientation: resolvedOrientation,\n scrollNext,\n scrollPrev,\n }),\n [\n carouselRef,\n api,\n opts,\n resolvedOrientation,\n scrollPrev,\n scrollNext,\n canScrollPrev,\n canScrollNext,\n ]\n );\n\n return (\n <CarouselContext.Provider value={contextValue}>\n {/** biome-ignore lint/a11y/useSemanticElements: region is not semantically appropriate for carousel */}\n <div\n aria-roledescription=\"carousel\"\n className={cn(\"relative\", className)}\n data-slot=\"carousel\"\n onKeyDown={handleKeyDown}\n role=\"region\"\n tabIndex={0}\n {...props}\n >\n {children}\n </div>\n </CarouselContext.Provider>\n );\n};\n\nCarousel.Content = CarouselContent;\nCarousel.Item = CarouselItem;\nCarousel.Next = CarouselNext;\nCarousel.Previous = CarouselPrevious;\n\nexport type { CarouselApi } from \"./use-carousel\";\n\nexport {\n Carousel,\n CarouselContent,\n CarouselItem,\n CarouselNext,\n CarouselPrevious,\n useCarousel,\n};\n\nexport type { CarouselProps } from \"./use-carousel\";\n\nexport type { CarouselContentProps } from \"./carousel-content\";\nexport type { CarouselItemProps } from \"./carousel-item\";\nexport type { CarouselNextProps } from \"./carousel-next\";\nexport type { CarouselPreviousProps } from \"./carousel-previous\";\n"],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"checkbox-group.d.ts","names":[],"sources":["../../src/ui/checkbox-group/checkbox-group.tsx"],"mappings":";;;;;
|
|
1
|
+
{"version":3,"file":"checkbox-group.d.ts","names":[],"sources":["../../src/ui/checkbox-group/checkbox-group.tsx"],"mappings":";;;;;KAOY,kBAAA,GAAqB,cAAA,QAAsB,eAAA;AAAA,cAE1C,aAAA;EAAiB,SAAA;EAAA,GAAA;AAAA,GAAyB,kBAAA,KAAkB,kBAAA,CAAA,GAAA,CAAA,OAAA"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"checkbox-group.js","names":["BaseCheckboxGroup"],"sources":["../../src/ui/checkbox-group/checkbox-group.tsx"],"sourcesContent":["
|
|
1
|
+
{"version":3,"file":"checkbox-group.js","names":["BaseCheckboxGroup"],"sources":["../../src/ui/checkbox-group/checkbox-group.tsx"],"sourcesContent":["\"use client\";\n\nimport { CheckboxGroup as BaseCheckboxGroup } from \"@base-ui/react/checkbox-group\";\nimport type { ComponentProps } from \"react\";\n\nimport { mergeBaseUIClassName } from \"../../utils/merge-base-ui-class-name\";\n\nexport type CheckboxGroupProps = ComponentProps<typeof BaseCheckboxGroup>;\n\nexport const CheckboxGroup = ({ className, ...props }: CheckboxGroupProps) => (\n <BaseCheckboxGroup\n className={mergeBaseUIClassName<BaseCheckboxGroup.State>(\n \"flex flex-col items-start gap-1\",\n className\n )}\n data-slot=\"checkbox-group\"\n {...props}\n />\n);\n"],"mappings":";;;;;;;AASA,MAAa,iBAAiB,EAAE,WAAW,GAAG,YAC5C,oBAACA,iBAAD;CACE,WAAW,qBACT,mCACA,UACD;CACD,aAAU;CACV,GAAI;CACJ"}
|
package/dist/ui/checkbox.d.ts
CHANGED
|
@@ -7,27 +7,27 @@ import { Checkbox as Checkbox$1 } from "@base-ui/react/checkbox";
|
|
|
7
7
|
//#region src/ui/checkbox/checkbox-indicator.d.ts
|
|
8
8
|
declare const checkboxIndicatorVariants: tailwind_variants0.TVReturnType<{
|
|
9
9
|
size: {
|
|
10
|
-
xs: string;
|
|
11
|
-
sm: string;
|
|
12
|
-
md: string;
|
|
13
10
|
lg: string;
|
|
11
|
+
md: string;
|
|
12
|
+
sm: string;
|
|
14
13
|
xl: string;
|
|
14
|
+
xs: string;
|
|
15
15
|
};
|
|
16
16
|
}, undefined, "grid place-content-center text-current transition-none", {
|
|
17
17
|
size: {
|
|
18
|
-
xs: string;
|
|
19
|
-
sm: string;
|
|
20
|
-
md: string;
|
|
21
18
|
lg: string;
|
|
19
|
+
md: string;
|
|
20
|
+
sm: string;
|
|
22
21
|
xl: string;
|
|
22
|
+
xs: string;
|
|
23
23
|
};
|
|
24
24
|
}, undefined, tailwind_variants0.TVReturnType<{
|
|
25
25
|
size: {
|
|
26
|
-
xs: string;
|
|
27
|
-
sm: string;
|
|
28
|
-
md: string;
|
|
29
26
|
lg: string;
|
|
27
|
+
md: string;
|
|
28
|
+
sm: string;
|
|
30
29
|
xl: string;
|
|
30
|
+
xs: string;
|
|
31
31
|
};
|
|
32
32
|
}, undefined, "grid place-content-center text-current transition-none", unknown, unknown, undefined>>;
|
|
33
33
|
type CheckboxIndicatorVariantProps = Omit<VariantProps<typeof checkboxIndicatorVariants>, "size"> & {
|
|
@@ -43,29 +43,29 @@ declare const CheckboxIndicator: ({
|
|
|
43
43
|
//#region src/ui/checkbox/checkbox.d.ts
|
|
44
44
|
declare const checkboxVariants: tailwind_variants0.TVReturnType<{
|
|
45
45
|
size: {
|
|
46
|
-
xs: string;
|
|
47
|
-
sm: string;
|
|
48
|
-
md: string;
|
|
49
46
|
lg: string;
|
|
47
|
+
md: string;
|
|
48
|
+
sm: string;
|
|
50
49
|
xl: string;
|
|
50
|
+
xs: string;
|
|
51
51
|
};
|
|
52
|
-
}, undefined, "peer
|
|
52
|
+
}, undefined, "peer cursor-clickable border-input text-primary-foreground focus-visible:border-ring focus-visible:ring-ring/50 aria-invalid:border-danger aria-invalid:ring-danger/20 aria-invalid:aria-checked:border-primary data-checked:border-primary data-checked:bg-primary data-checked:text-primary-foreground data-indeterminate:border-primary data-indeterminate:bg-primary data-indeterminate:text-primary-foreground dark:bg-input/30 dark:aria-invalid:border-danger/50 dark:aria-invalid:ring-danger/40 dark:data-checked:bg-primary dark:data-indeterminate:bg-primary relative flex shrink-0 items-center justify-center border shadow-xs transition-colors outline-none group-has-disabled/field:opacity-50 focus-visible:ring-[3px] disabled:cursor-not-allowed disabled:opacity-50 aria-invalid:ring-[3px]", {
|
|
53
53
|
size: {
|
|
54
|
-
xs: string;
|
|
55
|
-
sm: string;
|
|
56
|
-
md: string;
|
|
57
54
|
lg: string;
|
|
55
|
+
md: string;
|
|
56
|
+
sm: string;
|
|
58
57
|
xl: string;
|
|
58
|
+
xs: string;
|
|
59
59
|
};
|
|
60
60
|
}, undefined, tailwind_variants0.TVReturnType<{
|
|
61
61
|
size: {
|
|
62
|
-
xs: string;
|
|
63
|
-
sm: string;
|
|
64
|
-
md: string;
|
|
65
62
|
lg: string;
|
|
63
|
+
md: string;
|
|
64
|
+
sm: string;
|
|
66
65
|
xl: string;
|
|
66
|
+
xs: string;
|
|
67
67
|
};
|
|
68
|
-
}, undefined, "peer
|
|
68
|
+
}, undefined, "peer cursor-clickable border-input text-primary-foreground focus-visible:border-ring focus-visible:ring-ring/50 aria-invalid:border-danger aria-invalid:ring-danger/20 aria-invalid:aria-checked:border-primary data-checked:border-primary data-checked:bg-primary data-checked:text-primary-foreground data-indeterminate:border-primary data-indeterminate:bg-primary data-indeterminate:text-primary-foreground dark:bg-input/30 dark:aria-invalid:border-danger/50 dark:aria-invalid:ring-danger/40 dark:data-checked:bg-primary dark:data-indeterminate:bg-primary relative flex shrink-0 items-center justify-center border shadow-xs transition-colors outline-none group-has-disabled/field:opacity-50 focus-visible:ring-[3px] disabled:cursor-not-allowed disabled:opacity-50 aria-invalid:ring-[3px]", unknown, unknown, undefined>>;
|
|
69
69
|
type CheckboxVariantProps = Omit<VariantProps<typeof checkboxVariants>, "size"> & {
|
|
70
70
|
size?: UISize;
|
|
71
71
|
};
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"checkbox.d.ts","names":[],"sources":["../../src/ui/checkbox/checkbox-indicator.tsx","../../src/ui/checkbox/checkbox.tsx"],"mappings":";;;;;;;cAQM,yBAAA,EAcJ,kBAAA,CAd6B,YAAA;;;;;;;;;;;;;;;;cAc7B,kBAAA,CAAA,YAAA;;;;;;;;;KAEG,6BAAA,GAAgC,IAAA,CACnC,YAAA,QAAoB,yBAAA;EAGpB,IAAA,GAAO,MAAA;AAAA;AAAA,KAGG,sBAAA,GAAyB,UAAA,CAAkB,SAAA,CAAU,KAAA,GAC/D,6BAAA;AAAA,cAEI,iBAAA;EAAqB,SAAA;EAAA,IAAA,EAAA,YAAA;EAAA,GAAA;AAAA,GAIxB,sBAAA,KAAsB,kBAAA,CAAA,GAAA,CAAA,OAAA;;;
|
|
1
|
+
{"version":3,"file":"checkbox.d.ts","names":[],"sources":["../../src/ui/checkbox/checkbox-indicator.tsx","../../src/ui/checkbox/checkbox.tsx"],"mappings":";;;;;;;cAQM,yBAAA,EAcJ,kBAAA,CAd6B,YAAA;;;;;;;;;;;;;;;;cAc7B,kBAAA,CAAA,YAAA;;;;;;;;;KAEG,6BAAA,GAAgC,IAAA,CACnC,YAAA,QAAoB,yBAAA;EAGpB,IAAA,GAAO,MAAA;AAAA;AAAA,KAGG,sBAAA,GAAyB,UAAA,CAAkB,SAAA,CAAU,KAAA,GAC/D,6BAAA;AAAA,cAEI,iBAAA;EAAqB,SAAA;EAAA,IAAA,EAAA,YAAA;EAAA,GAAA;AAAA,GAIxB,sBAAA,KAAsB,kBAAA,CAAA,GAAA,CAAA,OAAA;;;cCzBnB,gBAAA,EAcJ,kBAAA,CAdoB,YAAA;;;;;;;;;;;;;;;;cAcpB,kBAAA,CAAA,YAAA;;;;;;;;;KAEG,oBAAA,GAAuB,IAAA,CAC1B,YAAA,QAAoB,gBAAA;EAGpB,IAAA,GAAO,MAAA;AAAA;AAAA,KAGG,aAAA,GAAgB,UAAA,CAAkB,IAAA,CAAK,KAAA,GAAQ,oBAAA;AAAA,cAErD,QAAA;EAAA;;;;;;KAMH,aAAA,GAAa,kBAAA,CAAA,GAAA,CAAA,OAAA"}
|