@kuzenbo/core 0.0.4 → 0.0.6
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +2 -0
- package/dist/action-icon-UjYZjXrB.d.ts +59 -0
- package/dist/action-icon-UjYZjXrB.d.ts.map +1 -0
- package/dist/{avatar-image-Ce26D2fb.d.ts → avatar-4S7I72CH.d.ts} +35 -2
- package/dist/avatar-4S7I72CH.d.ts.map +1 -0
- package/dist/avatar-C3vF6E7s.js +65 -0
- package/dist/avatar-C3vF6E7s.js.map +1 -0
- package/dist/badge-DB40swlt.js +58 -0
- package/dist/badge-DB40swlt.js.map +1 -0
- package/dist/button-CPPkhcmB.d.ts +59 -0
- package/dist/button-CPPkhcmB.d.ts.map +1 -0
- package/dist/button-shared-variants-J4RVI3K7.js +19 -0
- package/dist/button-shared-variants-J4RVI3K7.js.map +1 -0
- package/dist/{dialog-viewport-Ce1huyAI.d.ts → dialog-D3dAMsO_.d.ts} +64 -2
- package/dist/dialog-D3dAMsO_.d.ts.map +1 -0
- package/dist/{dialog-trigger-BUF3elAP.js → dialog-Dzvma_bu.js} +36 -12
- package/dist/dialog-Dzvma_bu.js.map +1 -0
- package/dist/{dropdown-menu-trigger-BpgtLUvf.d.ts → dropdown-menu-BG03sLbC.d.ts} +259 -123
- package/dist/dropdown-menu-BG03sLbC.d.ts.map +1 -0
- package/dist/{dropdown-menu-trigger-COnFGfDa.js → dropdown-menu-DOVY76ue.js} +137 -101
- package/dist/dropdown-menu-DOVY76ue.js.map +1 -0
- package/dist/input-BeE717GK.d.ts +46 -0
- package/dist/input-BeE717GK.d.ts.map +1 -0
- package/dist/input-cICL6sH_.js +38 -0
- package/dist/input-cICL6sH_.js.map +1 -0
- package/dist/{input-group-textarea-B-rP98r5.js → input-group-7kPror1q.js} +62 -33
- package/dist/input-group-7kPror1q.js.map +1 -0
- package/dist/provider.d.ts +3 -3
- package/dist/provider.js +2 -2
- package/dist/{scroll-bar-C4qEUKlT.js → scroll-bar-BKRy5Me9.js} +1 -1
- package/dist/{scroll-bar-C4qEUKlT.js.map → scroll-bar-BKRy5Me9.js.map} +1 -1
- package/dist/separator-CgOz2m5i.d.ts +13 -0
- package/dist/separator-CgOz2m5i.d.ts.map +1 -0
- package/dist/{sheet-trigger-D7neoTF5.js → sheet-FVsgl5Wk.js} +32 -13
- package/dist/sheet-FVsgl5Wk.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 → size-context-DWvVJytl.d.ts} +2 -2
- package/dist/size-context-DWvVJytl.d.ts.map +1 -0
- package/dist/size-provider-18EvJgDT.js.map +1 -1
- package/dist/{size-provider-Bd2C6gKd.d.ts → size-provider-PHAZhU6k.d.ts} +2 -2
- package/dist/{size-provider-Bd2C6gKd.d.ts.map → size-provider-PHAZhU6k.d.ts.map} +1 -1
- package/dist/{size-system-wzOLSuax.d.ts → size-system-BAI1CnwU.d.ts} +1 -1
- package/dist/size-system-BAI1CnwU.d.ts.map +1 -0
- package/dist/size-system-BTsMqZRQ.js +99 -0
- package/dist/size-system-BTsMqZRQ.js.map +1 -0
- package/dist/size.d.ts +3 -3
- package/dist/size.js +2 -2
- package/dist/{slider-root-presentation-ChJHPMIV.js → slider-root-presentation-G0ByTcvd.js} +19 -19
- package/dist/slider-root-presentation-G0ByTcvd.js.map +1 -0
- package/dist/{slider-value-Db8SCu0c.d.ts → slider-style-tokens-DNzHvGii.d.ts} +55 -55
- package/dist/slider-style-tokens-DNzHvGii.d.ts.map +1 -0
- package/dist/textarea-rmoEkvdu.d.ts +37 -0
- package/dist/textarea-rmoEkvdu.d.ts.map +1 -0
- package/dist/textarea-vNt8edEA.js +39 -0
- package/dist/textarea-vNt8edEA.js.map +1 -0
- package/dist/toggle-D8kPPZH9.d.ts +53 -0
- package/dist/toggle-D8kPPZH9.d.ts.map +1 -0
- package/dist/{tooltip-trigger-qXw-_nbh.js → tooltip-BUo_HPnp.js} +38 -13
- package/dist/tooltip-BUo_HPnp.js.map +1 -0
- package/dist/{tooltip-viewport-csA6luqI.d.ts → tooltip-DatN3AoZ.d.ts} +62 -14
- package/dist/tooltip-DatN3AoZ.d.ts.map +1 -0
- package/dist/ui/accordion.d.ts +5 -5
- 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/action-icon.d.ts +2 -0
- package/dist/ui/action-icon.js +74 -0
- package/dist/ui/action-icon.js.map +1 -0
- 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 +4 -2
- package/dist/ui/alert-dialog.d.ts.map +1 -1
- package/dist/ui/alert-dialog.js +10 -9
- package/dist/ui/alert-dialog.js.map +1 -1
- package/dist/ui/alert.d.ts +33 -33
- package/dist/ui/alert.d.ts.map +1 -1
- package/dist/ui/alert.js +86 -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 +55 -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 +2 -54
- package/dist/ui/breadcrumb.d.ts +65 -65
- package/dist/ui/breadcrumb.d.ts.map +1 -1
- package/dist/ui/breadcrumb.js +47 -45
- package/dist/ui/breadcrumb.js.map +1 -1
- package/dist/ui/button-group.d.ts +35 -35
- package/dist/ui/button-group.d.ts.map +1 -1
- package/dist/ui/button-group.js +29 -28
- package/dist/ui/button-group.js.map +1 -1
- package/dist/ui/button.d.ts +2 -78
- package/dist/ui/button.js +33 -55
- package/dist/ui/button.js.map +1 -1
- package/dist/ui/card.d.ts +1 -1
- package/dist/ui/card.d.ts.map +1 -1
- package/dist/ui/card.js +6 -6
- package/dist/ui/card.js.map +1 -1
- package/dist/ui/carousel.d.ts +3 -3
- package/dist/ui/carousel.d.ts.map +1 -1
- package/dist/ui/carousel.js +41 -22
- package/dist/ui/carousel.js.map +1 -1
- package/dist/ui/checkbox-group.d.ts.map +1 -1
- package/dist/ui/checkbox-group.js.map +1 -1
- package/dist/ui/checkbox.d.ts +21 -21
- package/dist/ui/checkbox.js +13 -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 +94 -93
- 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 +100 -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 +40 -20
- 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 +93 -93
- 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 +2 -39
- 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 +81 -81
- 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 +62 -60
- package/dist/ui/empty.d.ts.map +1 -1
- package/dist/ui/empty.js +47 -44
- package/dist/ui/empty.js.map +1 -1
- package/dist/ui/field.d.ts +12 -12
- 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.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 +22 -22
- package/dist/ui/item.js.map +1 -1
- package/dist/ui/kbd.d.ts +1 -1
- package/dist/ui/kbd.d.ts.map +1 -1
- package/dist/ui/kbd.js +8 -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 +82 -81
- package/dist/ui/menubar.js.map +1 -1
- package/dist/ui/meter.d.ts.map +1 -1
- package/dist/ui/meter.js.map +1 -1
- package/dist/ui/navigation-list.d.ts +227 -227
- package/dist/ui/navigation-list.d.ts.map +1 -1
- package/dist/ui/navigation-list.js +240 -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 +70 -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 +24 -23
- package/dist/ui/number-field.js.map +1 -1
- package/dist/ui/pagination.d.ts +43 -43
- package/dist/ui/pagination.d.ts.map +1 -1
- package/dist/ui/pagination.js +57 -47
- package/dist/ui/pagination.js.map +1 -1
- package/dist/ui/pill.d.ts +3 -4
- package/dist/ui/pill.d.ts.map +1 -1
- package/dist/ui/pill.js +37 -26
- package/dist/ui/pill.js.map +1 -1
- package/dist/ui/popover.d.ts +15 -13
- 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 +23 -23
- package/dist/ui/radio-group.js +15 -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.js +1 -1
- 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.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 +75 -76
- package/dist/ui/sidebar.d.ts.map +1 -1
- package/dist/ui/sidebar.js +88 -87
- 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.d.ts +1 -1
- package/dist/ui/spinner.d.ts.map +1 -1
- package/dist/ui/spinner.js +2 -2
- package/dist/ui/spinner.js.map +1 -1
- package/dist/ui/switch.d.ts +12 -12
- package/dist/ui/switch.js +7 -7
- package/dist/ui/switch.js.map +1 -1
- package/dist/ui/table.d.ts +62 -62
- package/dist/ui/table.d.ts.map +1 -1
- package/dist/ui/table.js +53 -47
- 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 +2 -35
- 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 +163 -163
- package/dist/ui/timeline.js.map +1 -1
- package/dist/ui/toggle-group.d.ts +33 -33
- 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 +15 -15
- package/dist/ui/toggle.js.map +1 -1
- package/dist/ui/toolbar.d.ts +56 -56
- package/dist/ui/toolbar.d.ts.map +1 -1
- package/dist/ui/toolbar.js +43 -40
- package/dist/ui/toolbar.js.map +1 -1
- package/dist/ui/tooltip.d.ts +3 -55
- 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 +17 -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-context-DXfCAlWF.d.ts.map +0 -1
- package/dist/size-system-DTXmtQXw.js +0 -47
- package/dist/size-system-DTXmtQXw.js.map +0 -1
- package/dist/size-system-wzOLSuax.d.ts.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/rating.js
CHANGED
|
@@ -1,5 +1,6 @@
|
|
|
1
1
|
"use client";
|
|
2
2
|
|
|
3
|
+
import { a as useComponentSize, s as useKuzenboComponentDefaults } from "../size-provider-18EvJgDT.js";
|
|
3
4
|
import { useCallback } from "react";
|
|
4
5
|
import { jsx, jsxs } from "react/jsx-runtime";
|
|
5
6
|
import { cn, tv } from "tailwind-variants";
|
|
@@ -10,57 +11,58 @@ import { HugeiconsIcon } from "@hugeicons/react";
|
|
|
10
11
|
const ratingStarVariants = tv({
|
|
11
12
|
base: [
|
|
12
13
|
"relative inline-flex shrink-0",
|
|
13
|
-
"cursor-
|
|
14
|
+
"cursor-clickable",
|
|
14
15
|
"transition-colors duration-150"
|
|
15
16
|
],
|
|
17
|
+
defaultVariants: {
|
|
18
|
+
editable: false,
|
|
19
|
+
size: "md"
|
|
20
|
+
},
|
|
16
21
|
variants: {
|
|
22
|
+
editable: {
|
|
23
|
+
false: ["cursor-default"],
|
|
24
|
+
true: ["hover:scale-110"]
|
|
25
|
+
},
|
|
17
26
|
size: {
|
|
18
|
-
xs: ["size-3"],
|
|
19
|
-
sm: ["size-3.5"],
|
|
20
|
-
md: ["size-4"],
|
|
21
27
|
lg: ["size-5"],
|
|
22
|
-
|
|
23
|
-
|
|
24
|
-
|
|
25
|
-
|
|
26
|
-
false: ["cursor-default"]
|
|
28
|
+
md: ["size-4"],
|
|
29
|
+
sm: ["size-3.5"],
|
|
30
|
+
xl: ["size-6"],
|
|
31
|
+
xs: ["size-3"]
|
|
27
32
|
}
|
|
28
|
-
},
|
|
29
|
-
defaultVariants: {
|
|
30
|
-
size: "md",
|
|
31
|
-
editable: false
|
|
32
33
|
}
|
|
33
34
|
});
|
|
34
35
|
const ratingStarFilledVariants = tv({
|
|
35
36
|
base: ["absolute inset-0", "fill-warning-foreground text-warning-foreground"],
|
|
37
|
+
defaultVariants: { visible: true },
|
|
36
38
|
variants: { visible: {
|
|
37
|
-
|
|
38
|
-
|
|
39
|
-
} }
|
|
40
|
-
defaultVariants: { visible: true }
|
|
39
|
+
false: ["opacity-0"],
|
|
40
|
+
true: ["opacity-100"]
|
|
41
|
+
} }
|
|
41
42
|
});
|
|
42
43
|
const ratingStarHalfVariants = tv({
|
|
43
44
|
base: ["absolute inset-0 overflow-hidden", "fill-warning-foreground text-warning-foreground"],
|
|
45
|
+
defaultVariants: { visible: true },
|
|
44
46
|
variants: { visible: {
|
|
45
|
-
|
|
46
|
-
|
|
47
|
-
} }
|
|
48
|
-
defaultVariants: { visible: true }
|
|
47
|
+
false: ["opacity-0"],
|
|
48
|
+
true: ["opacity-100"]
|
|
49
|
+
} }
|
|
49
50
|
});
|
|
50
51
|
const ratingStarOutlineVariants = tv({
|
|
51
52
|
base: ["relative", "text-muted-foreground"],
|
|
53
|
+
defaultVariants: { active: false },
|
|
52
54
|
variants: { active: {
|
|
53
|
-
|
|
54
|
-
|
|
55
|
-
} }
|
|
56
|
-
defaultVariants: { active: false }
|
|
55
|
+
false: ["opacity-100"],
|
|
56
|
+
true: ["opacity-30"]
|
|
57
|
+
} }
|
|
57
58
|
});
|
|
58
59
|
const RatingStar = ({ className, size, filled = false, halfFilled = false, active = false, editable = false, starClassName, onClick, ...props }) => {
|
|
60
|
+
const resolvedSize = useComponentSize(size);
|
|
59
61
|
const getStarSize = () => {
|
|
60
|
-
if (
|
|
61
|
-
if (
|
|
62
|
-
if (
|
|
63
|
-
if (
|
|
62
|
+
if (resolvedSize === "xs") return 12;
|
|
63
|
+
if (resolvedSize === "sm") return 14;
|
|
64
|
+
if (resolvedSize === "lg") return 20;
|
|
65
|
+
if (resolvedSize === "xl") return 24;
|
|
64
66
|
return 16;
|
|
65
67
|
};
|
|
66
68
|
const getAriaLabel = () => {
|
|
@@ -72,9 +74,11 @@ const RatingStar = ({ className, size, filled = false, halfFilled = false, activ
|
|
|
72
74
|
return /* @__PURE__ */ jsxs("button", {
|
|
73
75
|
"aria-label": getAriaLabel(),
|
|
74
76
|
className: cn(ratingStarVariants({
|
|
75
|
-
|
|
76
|
-
|
|
77
|
+
editable,
|
|
78
|
+
size: resolvedSize
|
|
77
79
|
}), className),
|
|
80
|
+
"data-size": resolvedSize,
|
|
81
|
+
"data-slot": "rating-star",
|
|
78
82
|
disabled: !editable,
|
|
79
83
|
onClick,
|
|
80
84
|
type: "button",
|
|
@@ -117,33 +121,36 @@ const RatingStar = ({ className, size, filled = false, halfFilled = false, activ
|
|
|
117
121
|
//#region src/ui/rating/rating.tsx
|
|
118
122
|
const ratingVariants = tv({
|
|
119
123
|
base: ["inline-flex items-center gap-1"],
|
|
124
|
+
defaultVariants: { size: "md" },
|
|
120
125
|
variants: { size: {
|
|
121
|
-
xs: ["gap-0.5"],
|
|
122
|
-
sm: ["gap-0.5"],
|
|
123
|
-
md: ["gap-1"],
|
|
124
126
|
lg: ["gap-1.5"],
|
|
125
|
-
|
|
126
|
-
|
|
127
|
-
|
|
127
|
+
md: ["gap-1"],
|
|
128
|
+
sm: ["gap-0.5"],
|
|
129
|
+
xl: ["gap-2"],
|
|
130
|
+
xs: ["gap-0.5"]
|
|
131
|
+
} }
|
|
128
132
|
});
|
|
129
133
|
const ratingValueVariants = tv({
|
|
130
134
|
base: ["text-sm font-medium"],
|
|
135
|
+
defaultVariants: { size: "md" },
|
|
131
136
|
variants: { size: {
|
|
132
|
-
xs: ["text-xs"],
|
|
133
|
-
sm: ["text-xs"],
|
|
134
|
-
md: ["text-sm"],
|
|
135
137
|
lg: ["text-base"],
|
|
136
|
-
|
|
137
|
-
|
|
138
|
-
|
|
138
|
+
md: ["text-sm"],
|
|
139
|
+
sm: ["text-xs"],
|
|
140
|
+
xl: ["text-base"],
|
|
141
|
+
xs: ["text-xs"]
|
|
142
|
+
} }
|
|
139
143
|
});
|
|
140
144
|
const Rating = ({ className, size, rating, maxRating = 5, showValue = false, editable = false, onRatingChange, starClassName, ...props }) => {
|
|
145
|
+
const { size: componentDefaultSize } = useKuzenboComponentDefaults("Rating");
|
|
146
|
+
const resolvedSize = useComponentSize(size, componentDefaultSize);
|
|
141
147
|
const handleStarClick = useCallback((e) => {
|
|
142
148
|
const value = Number(e.currentTarget.dataset.value);
|
|
143
149
|
if (editable && onRatingChange) onRatingChange(value);
|
|
144
150
|
}, [editable, onRatingChange]);
|
|
145
151
|
return /* @__PURE__ */ jsxs("div", {
|
|
146
|
-
className: cn(ratingVariants({ size }), className),
|
|
152
|
+
className: cn(ratingVariants({ size: resolvedSize }), className),
|
|
153
|
+
"data-size": resolvedSize,
|
|
147
154
|
"data-slot": "rating",
|
|
148
155
|
...props,
|
|
149
156
|
children: [Array.from({ length: maxRating }, (_, index) => {
|
|
@@ -158,10 +165,12 @@ const Rating = ({ className, size, rating, maxRating = 5, showValue = false, edi
|
|
|
158
165
|
filled: isFilled,
|
|
159
166
|
halfFilled: isHalfFilled,
|
|
160
167
|
onClick: handleStarClick,
|
|
161
|
-
size
|
|
168
|
+
size: resolvedSize
|
|
162
169
|
}, starValue);
|
|
163
170
|
}), showValue && /* @__PURE__ */ jsx("span", {
|
|
164
|
-
className: cn(ratingValueVariants({ size }), "ml-1"),
|
|
171
|
+
className: cn(ratingValueVariants({ size: resolvedSize }), "ml-1"),
|
|
172
|
+
"data-size": resolvedSize,
|
|
173
|
+
"data-slot": "rating-value",
|
|
165
174
|
children: rating.toFixed(1)
|
|
166
175
|
})]
|
|
167
176
|
});
|
package/dist/ui/rating.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"rating.js","names":[],"sources":["../../src/ui/rating/rating-star.tsx","../../src/ui/rating/rating.tsx"],"sourcesContent":["\"use client\";\n\nimport type { ComponentProps } from \"react\";\n\nimport { StarIcon } from \"@hugeicons/core-free-icons\";\nimport { HugeiconsIcon } from \"@hugeicons/react\";\nimport { cn, tv, type VariantProps } from \"tailwind-variants\";\n\nexport const ratingStarVariants = tv({\n base: [\n // Layout: relative container for star\n \"relative inline-flex shrink-0\",\n // Cursor: clickable when editable\n \"cursor-pointer\",\n // Transitions: smooth color transitions\n \"transition-colors duration-150\",\n ],\n variants: {\n size: {\n xs: [\n // Extra small size: smallest star\n \"size-3\",\n ],\n sm: [\n // Small size: smaller star\n \"size-3.5\",\n ],\n md: [\n // Medium size: default star\n \"size-4\",\n ],\n lg: [\n // Large size: larger star\n \"size-5\",\n ],\n xl: [\n // Extra large size: largest star\n \"size-6\",\n ],\n },\n editable: {\n true: [\n // Hover: slight scale on hover when editable\n \"hover:scale-110\",\n ],\n false: [\n // Non-editable: no pointer cursor\n \"cursor-default\",\n ],\n },\n },\n defaultVariants: {\n size: \"md\",\n editable: false,\n },\n});\n\nexport const ratingStarFilledVariants = tv({\n base: [\n // Layout: absolute positioned filled star\n \"absolute inset-0\",\n // Fill: semantic warning token for filled stars\n \"fill-warning-foreground text-warning-foreground\",\n ],\n variants: {\n visible: {\n true: [\n // Visible: show filled star\n \"opacity-100\",\n ],\n false: [\n // Hidden: hide filled star\n \"opacity-0\",\n ],\n },\n },\n defaultVariants: {\n visible: true,\n },\n});\n\nexport const ratingStarHalfVariants = tv({\n base: [\n // Layout: absolute positioned half-filled star\n \"absolute inset-0 overflow-hidden\",\n // Fill: semantic warning token for half-filled stars\n \"fill-warning-foreground text-warning-foreground\",\n ],\n variants: {\n visible: {\n true: [\n // Visible: show half-filled star\n \"opacity-100\",\n ],\n false: [\n // Hidden: hide half-filled star\n \"opacity-0\",\n ],\n },\n },\n defaultVariants: {\n visible: true,\n },\n});\n\nexport const ratingStarOutlineVariants = tv({\n base: [\n // Layout: relative positioned outline star\n \"relative\",\n // Color: muted color for outline\n \"text-muted-foreground\",\n ],\n variants: {\n active: {\n true: [\n // Active: slightly visible outline\n \"opacity-30\",\n ],\n false: [\n // Inactive: more visible outline\n \"opacity-100\",\n ],\n },\n },\n defaultVariants: {\n active: false,\n },\n});\n\ntype RatingStarVariants = VariantProps<typeof ratingStarVariants>;\n\nexport type RatingStarProps = RatingStarVariants &\n ComponentProps<\"button\"> & {\n filled?: boolean;\n halfFilled?: boolean;\n active?: boolean;\n starClassName?: string;\n };\n\nexport const RatingStar = ({\n className,\n size,\n filled = false,\n halfFilled = false,\n active = false,\n editable = false,\n starClassName,\n onClick,\n ...props\n}: RatingStarProps) => {\n const getStarSize = () => {\n if (size === \"xs\") {\n return 12;\n }\n if (size === \"sm\") {\n return 14;\n }\n if (size === \"lg\") {\n return 20;\n }\n if (size === \"xl\") {\n return 24;\n }\n return 16;\n };\n\n const getAriaLabel = () => {\n if (filled) {\n return \"Filled star\";\n }\n if (halfFilled) {\n return \"Half-filled star\";\n }\n return \"Empty star\";\n };\n\n const starSize = getStarSize();\n\n return (\n <button\n aria-label={getAriaLabel()}\n className={cn(ratingStarVariants({ size, editable }), className)}\n disabled={!editable}\n onClick={onClick}\n type=\"button\"\n {...props}\n >\n {/* Filled star overlay */}\n <span\n className={cn(\n ratingStarFilledVariants({ visible: filled }),\n starClassName\n )}\n >\n <HugeiconsIcon\n className=\"fill-warning-foreground text-warning-foreground\"\n icon={StarIcon}\n size={starSize}\n strokeWidth={1.5}\n />\n </span>\n\n {/* Half-filled star overlay */}\n {halfFilled && (\n <span\n className={cn(\n ratingStarHalfVariants({ visible: true }),\n starClassName\n )}\n >\n <div className=\"w-1/2 overflow-hidden\">\n <HugeiconsIcon\n className=\"fill-warning-foreground text-warning-foreground\"\n icon={StarIcon}\n size={starSize}\n strokeWidth={1.5}\n />\n </div>\n </span>\n )}\n\n {/* Outline star */}\n <span\n className={cn(ratingStarOutlineVariants({ active }), starClassName)}\n >\n <HugeiconsIcon icon={StarIcon} size={starSize} strokeWidth={1.5} />\n </span>\n </button>\n );\n};\n","\"use client\";\n\nimport type { ComponentProps, MouseEvent } from \"react\";\n\nimport { useCallback } from \"react\";\nimport { cn, tv, type VariantProps } from \"tailwind-variants\";\n\nimport { RatingStar } from \"./rating-star\";\n\nexport const ratingVariants = tv({\n base: [\n // Layout: flex container with centered items\n \"inline-flex items-center gap-1\",\n ],\n variants: {\n size: {\n xs: [\n // Extra small size: compact gap\n \"gap-0.5\",\n ],\n sm: [\n // Small size: smaller gap and text\n \"gap-0.5\",\n ],\n md: [\n // Medium size: default gap\n \"gap-1\",\n ],\n lg: [\n // Large size: larger gap\n \"gap-1.5\",\n ],\n xl: [\n // Extra large size: largest spacing\n \"gap-2\",\n ],\n },\n },\n defaultVariants: {\n size: \"md\",\n },\n});\n\nexport const ratingValueVariants = tv({\n base: [\n // Typography: rating value text styling\n \"text-sm font-medium\",\n ],\n variants: {\n size: {\n xs: [\n // Extra small size: smallest text\n \"text-xs\",\n ],\n sm: [\n // Small size: smaller text\n \"text-xs\",\n ],\n md: [\n // Medium size: default text\n \"text-sm\",\n ],\n lg: [\n // Large size: larger text\n \"text-base\",\n ],\n xl: [\n // Extra large size: largest text\n \"text-base\",\n ],\n },\n },\n defaultVariants: {\n size: \"md\",\n },\n});\n\ntype RatingVariants = VariantProps<typeof ratingVariants>;\n\nexport type RatingProps = RatingVariants &\n Omit<ComponentProps<\"div\">, \"onClick\"> & {\n rating: number;\n maxRating?: number;\n showValue?: boolean;\n editable?: boolean;\n onRatingChange?: (rating: number) => void;\n starClassName?: string;\n };\n\nconst Rating = ({\n className,\n size,\n rating,\n maxRating = 5,\n showValue = false,\n editable = false,\n onRatingChange,\n starClassName,\n ...props\n}: RatingProps) => {\n const handleStarClick = useCallback(\n (e: MouseEvent<HTMLButtonElement>) => {\n const value = Number(e.currentTarget.dataset.value);\n if (editable && onRatingChange) {\n onRatingChange(value);\n }\n },\n [editable, onRatingChange]\n );\n\n return (\n <div\n className={cn(ratingVariants({ size }), className)}\n data-slot=\"rating\"\n {...props}\n >\n {Array.from({ length: maxRating }, (_, index) => {\n const starValue = index + 1;\n const isFilled = starValue <= Math.floor(rating);\n const isHalfFilled =\n !isFilled && starValue - 0.5 <= rating && rating < starValue;\n const isActive = starValue <= rating;\n\n return (\n <RatingStar\n active={isActive}\n className={starClassName}\n data-value={starValue}\n editable={editable}\n filled={isFilled}\n halfFilled={isHalfFilled}\n key={starValue}\n onClick={handleStarClick}\n size={size}\n />\n );\n })}\n {showValue && (\n <span className={cn(ratingValueVariants({ size }), \"ml-1\")}>\n {rating.toFixed(1)}\n </span>\n )}\n </div>\n );\n};\n\nRating.Star = RatingStar;\n\nexport { Rating, RatingStar };\n\nexport type { RatingStarProps } from \"./rating-star\";\n"],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"rating.js","names":[],"sources":["../../src/ui/rating/rating-star.tsx","../../src/ui/rating/rating.tsx"],"sourcesContent":["\"use client\";\n\nimport { StarIcon } from \"@hugeicons/core-free-icons\";\nimport { HugeiconsIcon } from \"@hugeicons/react\";\nimport type { ComponentProps } from \"react\";\nimport { cn, tv } from \"tailwind-variants\";\nimport type { VariantProps } from \"tailwind-variants\";\n\nimport { useComponentSize } from \"../shared/size/size-provider\";\n\nexport const ratingStarVariants = tv({\n base: [\n // Layout: relative container for star\n \"relative inline-flex shrink-0\",\n // Cursor: clickable when editable\n \"cursor-clickable\",\n // Transitions: smooth color transitions\n \"transition-colors duration-150\",\n ],\n defaultVariants: {\n editable: false,\n size: \"md\",\n },\n variants: {\n editable: {\n false: [\n // Non-editable: no pointer cursor\n \"cursor-default\",\n ],\n true: [\n // Hover: slight scale on hover when editable\n \"hover:scale-110\",\n ],\n },\n size: {\n lg: [\n // Large size: larger star\n \"size-5\",\n ],\n md: [\n // Medium size: default star\n \"size-4\",\n ],\n sm: [\n // Small size: smaller star\n \"size-3.5\",\n ],\n xl: [\n // Extra large size: largest star\n \"size-6\",\n ],\n xs: [\n // Extra small size: smallest star\n \"size-3\",\n ],\n },\n },\n});\n\nexport const ratingStarFilledVariants = tv({\n base: [\n // Layout: absolute positioned filled star\n \"absolute inset-0\",\n // Fill: semantic warning token for filled stars\n \"fill-warning-foreground text-warning-foreground\",\n ],\n defaultVariants: {\n visible: true,\n },\n variants: {\n visible: {\n false: [\n // Hidden: hide filled star\n \"opacity-0\",\n ],\n true: [\n // Visible: show filled star\n \"opacity-100\",\n ],\n },\n },\n});\n\nexport const ratingStarHalfVariants = tv({\n base: [\n // Layout: absolute positioned half-filled star\n \"absolute inset-0 overflow-hidden\",\n // Fill: semantic warning token for half-filled stars\n \"fill-warning-foreground text-warning-foreground\",\n ],\n defaultVariants: {\n visible: true,\n },\n variants: {\n visible: {\n false: [\n // Hidden: hide half-filled star\n \"opacity-0\",\n ],\n true: [\n // Visible: show half-filled star\n \"opacity-100\",\n ],\n },\n },\n});\n\nexport const ratingStarOutlineVariants = tv({\n base: [\n // Layout: relative positioned outline star\n \"relative\",\n // Color: muted color for outline\n \"text-muted-foreground\",\n ],\n defaultVariants: {\n active: false,\n },\n variants: {\n active: {\n false: [\n // Inactive: more visible outline\n \"opacity-100\",\n ],\n true: [\n // Active: slightly visible outline\n \"opacity-30\",\n ],\n },\n },\n});\n\ntype RatingStarVariants = VariantProps<typeof ratingStarVariants>;\n\nexport type RatingStarProps = RatingStarVariants &\n ComponentProps<\"button\"> & {\n filled?: boolean;\n halfFilled?: boolean;\n active?: boolean;\n starClassName?: string;\n };\n\nexport const RatingStar = ({\n className,\n size,\n filled = false,\n halfFilled = false,\n active = false,\n editable = false,\n starClassName,\n onClick,\n ...props\n}: RatingStarProps) => {\n const resolvedSize = useComponentSize(size);\n\n const getStarSize = () => {\n if (resolvedSize === \"xs\") {\n return 12;\n }\n if (resolvedSize === \"sm\") {\n return 14;\n }\n if (resolvedSize === \"lg\") {\n return 20;\n }\n if (resolvedSize === \"xl\") {\n return 24;\n }\n return 16;\n };\n\n const getAriaLabel = () => {\n if (filled) {\n return \"Filled star\";\n }\n if (halfFilled) {\n return \"Half-filled star\";\n }\n return \"Empty star\";\n };\n\n const starSize = getStarSize();\n\n return (\n <button\n aria-label={getAriaLabel()}\n className={cn(\n ratingStarVariants({ editable, size: resolvedSize }),\n className\n )}\n data-size={resolvedSize}\n data-slot=\"rating-star\"\n disabled={!editable}\n onClick={onClick}\n type=\"button\"\n {...props}\n >\n {/* Filled star overlay */}\n <span\n className={cn(\n ratingStarFilledVariants({ visible: filled }),\n starClassName\n )}\n >\n <HugeiconsIcon\n className=\"fill-warning-foreground text-warning-foreground\"\n icon={StarIcon}\n size={starSize}\n strokeWidth={1.5}\n />\n </span>\n\n {/* Half-filled star overlay */}\n {halfFilled && (\n <span\n className={cn(\n ratingStarHalfVariants({ visible: true }),\n starClassName\n )}\n >\n <div className=\"w-1/2 overflow-hidden\">\n <HugeiconsIcon\n className=\"fill-warning-foreground text-warning-foreground\"\n icon={StarIcon}\n size={starSize}\n strokeWidth={1.5}\n />\n </div>\n </span>\n )}\n\n {/* Outline star */}\n <span\n className={cn(ratingStarOutlineVariants({ active }), starClassName)}\n >\n <HugeiconsIcon icon={StarIcon} size={starSize} strokeWidth={1.5} />\n </span>\n </button>\n );\n};\n","\"use client\";\n\nimport type { ComponentProps, MouseEvent } from \"react\";\nimport { useCallback } from \"react\";\nimport { cn, tv } from \"tailwind-variants\";\nimport type { VariantProps } from \"tailwind-variants\";\n\nimport {\n useComponentSize,\n useKuzenboComponentDefaults,\n} from \"../shared/size/size-provider\";\nimport { RatingStar } from \"./rating-star\";\n\nexport const ratingVariants = tv({\n base: [\n // Layout: flex container with centered items\n \"inline-flex items-center gap-1\",\n ],\n defaultVariants: {\n size: \"md\",\n },\n variants: {\n size: {\n lg: [\n // Large size: larger gap\n \"gap-1.5\",\n ],\n md: [\n // Medium size: default gap\n \"gap-1\",\n ],\n sm: [\n // Small size: smaller gap and text\n \"gap-0.5\",\n ],\n xl: [\n // Extra large size: largest spacing\n \"gap-2\",\n ],\n xs: [\n // Extra small size: compact gap\n \"gap-0.5\",\n ],\n },\n },\n});\n\nexport const ratingValueVariants = tv({\n base: [\n // Typography: rating value text styling\n \"text-sm font-medium\",\n ],\n defaultVariants: {\n size: \"md\",\n },\n variants: {\n size: {\n lg: [\n // Large size: larger text\n \"text-base\",\n ],\n md: [\n // Medium size: default text\n \"text-sm\",\n ],\n sm: [\n // Small size: smaller text\n \"text-xs\",\n ],\n xl: [\n // Extra large size: largest text\n \"text-base\",\n ],\n xs: [\n // Extra small size: smallest text\n \"text-xs\",\n ],\n },\n },\n});\n\ntype RatingVariants = VariantProps<typeof ratingVariants>;\n\nexport type RatingProps = RatingVariants &\n Omit<ComponentProps<\"div\">, \"onClick\"> & {\n rating: number;\n maxRating?: number;\n showValue?: boolean;\n editable?: boolean;\n onRatingChange?: (rating: number) => void;\n starClassName?: string;\n };\n\nconst Rating = ({\n className,\n size,\n rating,\n maxRating = 5,\n showValue = false,\n editable = false,\n onRatingChange,\n starClassName,\n ...props\n}: RatingProps) => {\n const { size: componentDefaultSize } =\n useKuzenboComponentDefaults<RatingProps>(\"Rating\");\n const resolvedSize = useComponentSize(size, componentDefaultSize);\n\n const handleStarClick = useCallback(\n (e: MouseEvent<HTMLButtonElement>) => {\n const value = Number(e.currentTarget.dataset.value);\n if (editable && onRatingChange) {\n onRatingChange(value);\n }\n },\n [editable, onRatingChange]\n );\n\n return (\n <div\n className={cn(ratingVariants({ size: resolvedSize }), className)}\n data-size={resolvedSize}\n data-slot=\"rating\"\n {...props}\n >\n {Array.from({ length: maxRating }, (_, index) => {\n const starValue = index + 1;\n const isFilled = starValue <= Math.floor(rating);\n const isHalfFilled =\n !isFilled && starValue - 0.5 <= rating && rating < starValue;\n const isActive = starValue <= rating;\n\n return (\n <RatingStar\n active={isActive}\n className={starClassName}\n data-value={starValue}\n editable={editable}\n filled={isFilled}\n halfFilled={isHalfFilled}\n key={starValue}\n onClick={handleStarClick}\n size={resolvedSize}\n />\n );\n })}\n {showValue && (\n <span\n className={cn(ratingValueVariants({ size: resolvedSize }), \"ml-1\")}\n data-size={resolvedSize}\n data-slot=\"rating-value\"\n >\n {rating.toFixed(1)}\n </span>\n )}\n </div>\n );\n};\n\nRating.Star = RatingStar;\n\nexport { Rating, RatingStar };\n\nexport type { RatingStarProps } from \"./rating-star\";\n"],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"resizable.d.ts","names":[],"sources":["../../src/ui/resizable/resizable-handle.tsx","../../src/ui/resizable/resizable-panel.tsx","../../src/ui/resizable/resizable.tsx"],"mappings":";;;;;
|
|
1
|
+
{"version":3,"file":"resizable.d.ts","names":[],"sources":["../../src/ui/resizable/resizable-handle.tsx","../../src/ui/resizable/resizable-panel.tsx","../../src/ui/resizable/resizable.tsx"],"mappings":";;;;;KAKY,oBAAA,GAAuB,cAAA,QAAsB,SAAA;EACvD,UAAA;AAAA;AAAA,cAGI,eAAA;EAAmB,UAAA;EAAA,SAAA;EAAA,GAAA;AAAA,GAItB,oBAAA,KAAoB,kBAAA,CAAA,GAAA,CAAA,OAAA;;;KCTX,mBAAA,GAAsB,cAAA,QAAsB,KAAA;AAAA,cAElD,cAAA;EAAA,GAAkB;AAAA,GAAc,mBAAA,KAAmB,kBAAA,CAAA,GAAA,CAAA,OAAA;;;KCE7C,wBAAA,GAA2B,cAAA,QAAsB,KAAA;AAAA,cAEvD,mBAAA;EAAA;;;KAGH,wBAAA,GAAwB,kBAAA,CAAA,GAAA,CAAA,OAAA"}
|
package/dist/ui/resizable.js
CHANGED
|
@@ -6,10 +6,10 @@ import { Group, Panel, Separator } from "react-resizable-panels";
|
|
|
6
6
|
|
|
7
7
|
//#region src/ui/resizable/resizable-handle.tsx
|
|
8
8
|
const ResizableHandle = ({ withHandle, className, ...props }) => /* @__PURE__ */ jsx(Separator, {
|
|
9
|
-
className: cn("relative flex w-px items-center justify-center
|
|
9
|
+
className: cn("bg-border focus-visible:ring-ring relative flex w-px items-center justify-center after:absolute after:inset-y-0 after:left-1/2 after:w-1 after:-translate-x-1/2 focus-visible:ring-1 focus-visible:ring-offset-1 focus-visible:outline-hidden data-[panel-group-direction=vertical]:h-px data-[panel-group-direction=vertical]:w-full data-[panel-group-direction=vertical]:after:left-0 data-[panel-group-direction=vertical]:after:h-1 data-[panel-group-direction=vertical]:after:w-full data-[panel-group-direction=vertical]:after:translate-x-0 data-[panel-group-direction=vertical]:after:-translate-y-1/2 [&[data-panel-group-direction=vertical]>div]:rotate-90", className),
|
|
10
10
|
"data-slot": "resizable-handle",
|
|
11
11
|
...props,
|
|
12
|
-
children: withHandle && /* @__PURE__ */ jsx("div", { className: "z-
|
|
12
|
+
children: withHandle && /* @__PURE__ */ jsx("div", { className: "z-raised bg-border flex h-6 w-1 shrink-0 rounded-lg" })
|
|
13
13
|
});
|
|
14
14
|
|
|
15
15
|
//#endregion
|
package/dist/ui/resizable.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"resizable.js","names":[],"sources":["../../src/ui/resizable/resizable-handle.tsx","../../src/ui/resizable/resizable-panel.tsx","../../src/ui/resizable/resizable.tsx"],"sourcesContent":["\"use client\";\n\nimport type { ComponentProps } from \"react\";\
|
|
1
|
+
{"version":3,"file":"resizable.js","names":[],"sources":["../../src/ui/resizable/resizable-handle.tsx","../../src/ui/resizable/resizable-panel.tsx","../../src/ui/resizable/resizable.tsx"],"sourcesContent":["\"use client\";\n\nimport type { ComponentProps } from \"react\";\nimport { Separator } from \"react-resizable-panels\";\nimport { cn } from \"tailwind-variants\";\nexport type ResizableHandleProps = ComponentProps<typeof Separator> & {\n withHandle?: boolean;\n};\n\nconst ResizableHandle = ({\n withHandle,\n className,\n ...props\n}: ResizableHandleProps) => (\n <Separator\n className={cn(\n \"bg-border focus-visible:ring-ring relative flex w-px items-center justify-center after:absolute after:inset-y-0 after:left-1/2 after:w-1 after:-translate-x-1/2 focus-visible:ring-1 focus-visible:ring-offset-1 focus-visible:outline-hidden data-[panel-group-direction=vertical]:h-px data-[panel-group-direction=vertical]:w-full data-[panel-group-direction=vertical]:after:left-0 data-[panel-group-direction=vertical]:after:h-1 data-[panel-group-direction=vertical]:after:w-full data-[panel-group-direction=vertical]:after:translate-x-0 data-[panel-group-direction=vertical]:after:-translate-y-1/2 [&[data-panel-group-direction=vertical]>div]:rotate-90\",\n className\n )}\n data-slot=\"resizable-handle\"\n {...props}\n >\n {withHandle && (\n <div className=\"z-raised bg-border flex h-6 w-1 shrink-0 rounded-lg\" />\n )}\n </Separator>\n);\n\nexport { ResizableHandle };\n","\"use client\";\n\nimport type { ComponentProps } from \"react\";\nimport { Panel } from \"react-resizable-panels\";\nexport type ResizablePanelProps = ComponentProps<typeof Panel>;\n\nconst ResizablePanel = ({ ...props }: ResizablePanelProps) => (\n <Panel data-slot=\"resizable-panel\" {...props} />\n);\n\nexport { ResizablePanel };\n","\"use client\";\n\nimport type { ComponentProps } from \"react\";\nimport { Group } from \"react-resizable-panels\";\nimport { cn } from \"tailwind-variants\";\n\nimport { ResizableHandle } from \"./resizable-handle\";\nimport { ResizablePanel } from \"./resizable-panel\";\nexport type ResizablePanelGroupProps = ComponentProps<typeof Group>;\n\nconst ResizablePanelGroup = ({\n className,\n ...props\n}: ResizablePanelGroupProps) => (\n <Group\n className={cn(\n \"flex h-full w-full data-[panel-group-direction=vertical]:flex-col\",\n className\n )}\n data-slot=\"resizable-panel-group\"\n {...props}\n />\n);\n\nResizablePanelGroup.Handle = ResizableHandle;\nResizablePanelGroup.Panel = ResizablePanel;\n\nexport { ResizableHandle, ResizablePanel, ResizablePanelGroup };\n\nexport type { ResizableHandleProps } from \"./resizable-handle\";\nexport type { ResizablePanelProps } from \"./resizable-panel\";\n"],"mappings":";;;;;;;AASA,MAAM,mBAAmB,EACvB,YACA,WACA,GAAG,YAEH,oBAAC,WAAD;CACE,WAAW,GACT,6oBACA,UACD;CACD,aAAU;CACV,GAAI;WAEH,cACC,oBAAC,OAAD,EAAK,WAAU,uDAAwD;CAE/D;;;;ACnBd,MAAM,kBAAkB,EAAE,GAAG,YAC3B,oBAAC,OAAD;CAAO,aAAU;CAAkB,GAAI;CAAS;;;;ACGlD,MAAM,uBAAuB,EAC3B,WACA,GAAG,YAEH,oBAAC,OAAD;CACE,WAAW,GACT,qEACA,UACD;CACD,aAAU;CACV,GAAI;CACJ;AAGJ,oBAAoB,SAAS;AAC7B,oBAAoB,QAAQ"}
|
package/dist/ui/scroll-area.js
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
"use client";
|
|
2
2
|
|
|
3
3
|
import { t as mergeBaseUIClassName } from "../merge-base-ui-class-name-HKsgjcXj.js";
|
|
4
|
-
import { n as ScrollAreaThumb, t as ScrollBar } from "../scroll-bar-
|
|
4
|
+
import { n as ScrollAreaThumb, t as ScrollBar } from "../scroll-bar-BKRy5Me9.js";
|
|
5
5
|
import { Children, isValidElement } from "react";
|
|
6
6
|
import { Fragment, jsx, jsxs } from "react/jsx-runtime";
|
|
7
7
|
import { ScrollArea as ScrollArea$1 } from "@base-ui/react/scroll-area";
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"scroll-area.js","names":["ScrollAreaPrimitive","ScrollAreaPrimitive","ScrollAreaPrimitive","ScrollAreaPrimitive"],"sources":["../../src/ui/scroll-area/scroll-content.tsx","../../src/ui/scroll-area/scroll-corner.tsx","../../src/ui/scroll-area/scroll-viewport.tsx","../../src/ui/scroll-area/scroll-area.tsx"],"sourcesContent":["import { ScrollArea as ScrollAreaPrimitive } from \"@base-ui/react/scroll-area\";\n\nimport { mergeBaseUIClassName } from \"../../utils/merge-base-ui-class-name\";\nexport type ScrollAreaContentProps = ScrollAreaPrimitive.Content.Props;\n\nconst ScrollAreaContent = ({ className, ...props }: ScrollAreaContentProps) => (\n <ScrollAreaPrimitive.Content\n className={mergeBaseUIClassName<ScrollAreaPrimitive.Content.State>(\n undefined,\n className\n )}\n data-slot=\"scroll-area-content\"\n {...props}\n />\n);\n\nexport { ScrollAreaContent };\n","import { ScrollArea as ScrollAreaPrimitive } from \"@base-ui/react/scroll-area\";\n\nimport { mergeBaseUIClassName } from \"../../utils/merge-base-ui-class-name\";\nexport type ScrollAreaCornerProps = ScrollAreaPrimitive.Corner.Props;\n\nconst ScrollAreaCorner = ({ className, ...props }: ScrollAreaCornerProps) => (\n <ScrollAreaPrimitive.Corner\n className={mergeBaseUIClassName<ScrollAreaPrimitive.Corner.State>(\n undefined,\n className\n )}\n data-slot=\"scroll-area-corner\"\n {...props}\n />\n);\n\nexport { ScrollAreaCorner };\n","import { ScrollArea as ScrollAreaPrimitive } from \"@base-ui/react/scroll-area\";\n\nimport { mergeBaseUIClassName } from \"../../utils/merge-base-ui-class-name\";\nexport type ScrollAreaViewportProps = ScrollAreaPrimitive.Viewport.Props;\n\nconst ScrollAreaViewport = ({\n className,\n ...props\n}: ScrollAreaViewportProps) => (\n <ScrollAreaPrimitive.Viewport\n className={mergeBaseUIClassName<ScrollAreaPrimitive.Viewport.State>(\n \"size-full rounded-[inherit] transition-[color,box-shadow] outline-none focus-visible:ring-[3px] focus-visible:ring-ring/50 focus-visible:outline-1\",\n className\n )}\n data-slot=\"scroll-area-viewport\"\n {...props}\n />\n);\n\nexport { ScrollAreaViewport };\n","\"use client\";\n\nimport { ScrollArea as ScrollAreaPrimitive } from \"@base-ui/react/scroll-area\";\nimport { Children, isValidElement } from \"react\";\n\nimport { mergeBaseUIClassName } from \"../../utils/merge-base-ui-class-name\";\nimport { ScrollBar } from \"./scroll-bar\";\nimport { ScrollAreaContent } from \"./scroll-content\";\nimport { ScrollAreaCorner } from \"./scroll-corner\";\nimport { ScrollAreaThumb } from \"./scroll-thumb\";\nimport { ScrollAreaViewport } from \"./scroll-viewport\";\nexport type ScrollAreaProps = ScrollAreaPrimitive.Root.Props;\n\nconst ScrollArea = ({ className, children, ...props }: ScrollAreaProps) => (\n <ScrollAreaPrimitive.Root\n className={mergeBaseUIClassName<ScrollAreaPrimitive.Root.State>(\n \"relative\",\n className\n )}\n data-slot=\"scroll-area\"\n {...props}\n >\n {Children.toArray(children).some((child) => {\n if (!isValidElement(child)) {\n return false;\n }\n return (\n child.type === ScrollAreaPrimitive.Viewport ||\n child.type === ScrollAreaViewport\n );\n }) ? (\n children\n ) : (\n <>\n <ScrollAreaViewport>\n <ScrollAreaContent>{children}</ScrollAreaContent>\n </ScrollAreaViewport>\n <ScrollBar />\n <ScrollAreaCorner />\n </>\n )}\n </ScrollAreaPrimitive.Root>\n);\n\nScrollArea.Bar = ScrollBar;\nScrollArea.Content = ScrollAreaContent;\nScrollArea.Corner = ScrollAreaCorner;\nScrollArea.Scrollbar = ScrollBar;\nScrollArea.Thumb = ScrollAreaThumb;\nScrollArea.Viewport = ScrollAreaViewport;\n\nexport {\n ScrollArea,\n ScrollAreaContent,\n ScrollAreaCorner,\n ScrollAreaThumb,\n ScrollAreaViewport,\n ScrollBar,\n};\n\nexport type { ScrollBarProps } from \"./scroll-bar\";\nexport type { ScrollAreaContentProps } from \"./scroll-content\";\nexport type { ScrollAreaCornerProps } from \"./scroll-corner\";\nexport type { ScrollAreaThumbProps } from \"./scroll-thumb\";\nexport type { ScrollAreaViewportProps } from \"./scroll-viewport\";\n"],"mappings":";;;;;;;;;AAKA,MAAM,qBAAqB,EAAE,WAAW,GAAG,YACzC,oBAACA,aAAoB;
|
|
1
|
+
{"version":3,"file":"scroll-area.js","names":["ScrollAreaPrimitive","ScrollAreaPrimitive","ScrollAreaPrimitive","ScrollAreaPrimitive"],"sources":["../../src/ui/scroll-area/scroll-content.tsx","../../src/ui/scroll-area/scroll-corner.tsx","../../src/ui/scroll-area/scroll-viewport.tsx","../../src/ui/scroll-area/scroll-area.tsx"],"sourcesContent":["import { ScrollArea as ScrollAreaPrimitive } from \"@base-ui/react/scroll-area\";\n\nimport { mergeBaseUIClassName } from \"../../utils/merge-base-ui-class-name\";\nexport type ScrollAreaContentProps = ScrollAreaPrimitive.Content.Props;\n\nconst ScrollAreaContent = ({ className, ...props }: ScrollAreaContentProps) => (\n <ScrollAreaPrimitive.Content\n className={mergeBaseUIClassName<ScrollAreaPrimitive.Content.State>(\n undefined,\n className\n )}\n data-slot=\"scroll-area-content\"\n {...props}\n />\n);\n\nexport { ScrollAreaContent };\n","import { ScrollArea as ScrollAreaPrimitive } from \"@base-ui/react/scroll-area\";\n\nimport { mergeBaseUIClassName } from \"../../utils/merge-base-ui-class-name\";\nexport type ScrollAreaCornerProps = ScrollAreaPrimitive.Corner.Props;\n\nconst ScrollAreaCorner = ({ className, ...props }: ScrollAreaCornerProps) => (\n <ScrollAreaPrimitive.Corner\n className={mergeBaseUIClassName<ScrollAreaPrimitive.Corner.State>(\n undefined,\n className\n )}\n data-slot=\"scroll-area-corner\"\n {...props}\n />\n);\n\nexport { ScrollAreaCorner };\n","import { ScrollArea as ScrollAreaPrimitive } from \"@base-ui/react/scroll-area\";\n\nimport { mergeBaseUIClassName } from \"../../utils/merge-base-ui-class-name\";\nexport type ScrollAreaViewportProps = ScrollAreaPrimitive.Viewport.Props;\n\nconst ScrollAreaViewport = ({\n className,\n ...props\n}: ScrollAreaViewportProps) => (\n <ScrollAreaPrimitive.Viewport\n className={mergeBaseUIClassName<ScrollAreaPrimitive.Viewport.State>(\n \"size-full rounded-[inherit] transition-[color,box-shadow] outline-none focus-visible:ring-[3px] focus-visible:ring-ring/50 focus-visible:outline-1\",\n className\n )}\n data-slot=\"scroll-area-viewport\"\n {...props}\n />\n);\n\nexport { ScrollAreaViewport };\n","\"use client\";\n\nimport { ScrollArea as ScrollAreaPrimitive } from \"@base-ui/react/scroll-area\";\nimport { Children, isValidElement } from \"react\";\n\nimport { mergeBaseUIClassName } from \"../../utils/merge-base-ui-class-name\";\nimport { ScrollBar } from \"./scroll-bar\";\nimport { ScrollAreaContent } from \"./scroll-content\";\nimport { ScrollAreaCorner } from \"./scroll-corner\";\nimport { ScrollAreaThumb } from \"./scroll-thumb\";\nimport { ScrollAreaViewport } from \"./scroll-viewport\";\nexport type ScrollAreaProps = ScrollAreaPrimitive.Root.Props;\n\nconst ScrollArea = ({ className, children, ...props }: ScrollAreaProps) => (\n <ScrollAreaPrimitive.Root\n className={mergeBaseUIClassName<ScrollAreaPrimitive.Root.State>(\n \"relative\",\n className\n )}\n data-slot=\"scroll-area\"\n {...props}\n >\n {Children.toArray(children).some((child) => {\n if (!isValidElement(child)) {\n return false;\n }\n return (\n child.type === ScrollAreaPrimitive.Viewport ||\n child.type === ScrollAreaViewport\n );\n }) ? (\n children\n ) : (\n <>\n <ScrollAreaViewport>\n <ScrollAreaContent>{children}</ScrollAreaContent>\n </ScrollAreaViewport>\n <ScrollBar />\n <ScrollAreaCorner />\n </>\n )}\n </ScrollAreaPrimitive.Root>\n);\n\nScrollArea.Bar = ScrollBar;\nScrollArea.Content = ScrollAreaContent;\nScrollArea.Corner = ScrollAreaCorner;\nScrollArea.Scrollbar = ScrollBar;\nScrollArea.Thumb = ScrollAreaThumb;\nScrollArea.Viewport = ScrollAreaViewport;\n\nexport {\n ScrollArea,\n ScrollAreaContent,\n ScrollAreaCorner,\n ScrollAreaThumb,\n ScrollAreaViewport,\n ScrollBar,\n};\n\nexport type { ScrollBarProps } from \"./scroll-bar\";\nexport type { ScrollAreaContentProps } from \"./scroll-content\";\nexport type { ScrollAreaCornerProps } from \"./scroll-corner\";\nexport type { ScrollAreaThumbProps } from \"./scroll-thumb\";\nexport type { ScrollAreaViewportProps } from \"./scroll-viewport\";\n"],"mappings":";;;;;;;;;AAKA,MAAM,qBAAqB,EAAE,WAAW,GAAG,YACzC,oBAACA,aAAoB,SAArB;CACE,WAAW,qBACT,QACA,UACD;CACD,aAAU;CACV,GAAI;CACJ;;;;ACRJ,MAAM,oBAAoB,EAAE,WAAW,GAAG,YACxC,oBAACC,aAAoB,QAArB;CACE,WAAW,qBACT,QACA,UACD;CACD,aAAU;CACV,GAAI;CACJ;;;;ACRJ,MAAM,sBAAsB,EAC1B,WACA,GAAG,YAEH,oBAACC,aAAoB,UAArB;CACE,WAAW,qBACT,sJACA,UACD;CACD,aAAU;CACV,GAAI;CACJ;;;;ACHJ,MAAM,cAAc,EAAE,WAAW,UAAU,GAAG,YAC5C,oBAACC,aAAoB,MAArB;CACE,WAAW,qBACT,YACA,UACD;CACD,aAAU;CACV,GAAI;WAEH,SAAS,QAAQ,SAAS,CAAC,MAAM,UAAU;AAC1C,MAAI,CAAC,eAAe,MAAM,CACxB,QAAO;AAET,SACE,MAAM,SAASA,aAAoB,YACnC,MAAM,SAAS;GAEjB,GACA,WAEA;EACE,oBAAC,oBAAD,YACE,oBAAC,mBAAD,EAAoB,UAA6B,GAC9B;EACrB,oBAAC,WAAD,EAAa;EACb,oBAAC,kBAAD,EAAoB;EACnB;CAEoB;AAG7B,WAAW,MAAM;AACjB,WAAW,UAAU;AACrB,WAAW,SAAS;AACpB,WAAW,YAAY;AACvB,WAAW,QAAQ;AACnB,WAAW,WAAW"}
|