Skip to content

Commit 9154b5a

Browse files
committed
fix something
1 parent 0118df5 commit 9154b5a

25 files changed

+108
-117
lines changed

bun.lockb

0 Bytes
Binary file not shown.

composer.json

+1-1
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
11
{
22
"name": "justd/laravel",
3-
"version": "1.4.6",
3+
"version": "1.4.7",
44
"type": "project",
55
"description": "The skeleton application for the Laravel framework.",
66
"keywords": [

resources/js/components/ui/avatar.tsx

+1-1
Original file line numberDiff line numberDiff line change
@@ -62,5 +62,5 @@ const Avatar = ({
6262
)
6363
}
6464

65-
export { Avatar }
6665
export type { AvatarProps }
66+
export { Avatar }

resources/js/components/ui/button.tsx

+12-12
Original file line numberDiff line numberDiff line change
@@ -11,46 +11,46 @@ const buttonStyles = tv({
1111
extend: focusButtonStyles,
1212
base: [
1313
"kbt32x relative inline-flex items-center justify-center gap-x-2 border font-medium",
14-
"forced-colors:[--btn-icon:ButtonText] forced-colors:data-hovered:[--btn-icon:ButtonText]",
15-
"*:data-[slot=icon]:-mx-0.5 data-hovered:*:data-[slot=icon]:text-current/90 data-pressed:*:data-[slot=icon]:text-current *:data-[slot=icon]:my-1 *:data-[slot=icon]:size-4 *:data-[slot=icon]:shrink-0 *:data-[slot=icon]:text-current/60 *:data-[slot=icon]:transition",
14+
"forced-colors:[--btn-icon:ButtonText] forced-colors:hover:[--btn-icon:ButtonText]",
15+
"*:data-[slot=icon]:-mx-0.5 *:data-[slot=icon]:my-1 *:data-[slot=icon]:size-4 *:data-[slot=icon]:shrink-0 *:data-[slot=icon]:text-current/60 pressed:*:data-[slot=icon]:text-current *:data-[slot=icon]:transition hover:*:data-[slot=icon]:text-current/90",
1616
"*:data-[slot=avatar]:-mx-0.5 *:data-[slot=avatar]:my-1 *:data-[slot=avatar]:*:size-4 *:data-[slot=avatar]:size-4 *:data-[slot=avatar]:shrink-0",
1717
"inset-ring-0 dark:inset-ring dark:border-0",
1818
"inset-ring-(--btn-border) inset-shadow-2xs border-(--btn-border) bg-(--btn-bg) text-(--btn-fg)",
19-
"data-hovered:bg-(--btn-bg-hovered) data-hovered:ring-(--btn-border-hovered)",
20-
"data-pressed:border-(--btn-border) data-pressed:bg-(--btn-bg)",
19+
"hover:bg-(--btn-bg-hovered) hover:ring-(--btn-border-hovered)",
20+
"pressed:border-(--btn-border) pressed:bg-(--btn-bg)",
2121
],
2222
variants: {
2323
intent: {
2424
primary: [
2525
"outline-primary [--btn-bg:theme(--color-primary/95%)] [--btn-border:var(--color-primary)] [--btn-fg:var(--color-primary-fg)] dark:[--btn-bg:theme(--color-primary/90%)]",
2626
"[--btn-bg-hovered:theme(--color-primary/87%)] [--btn-border-hovered:theme(--color-primary/87%)] dark:[--btn-bg-hovered:theme(--color-primary)] dark:[--btn-border-hovered:theme(--color-primary)]",
27-
"inset-shadow-primary-fg/20 data-hovered:inset-shadow-primary-fg/25 data-pressed:inset-shadow-primary-fg/20",
27+
"inset-shadow-primary-fg/20 pressed:inset-shadow-primary-fg/20 hover:inset-shadow-primary-fg/25",
2828
],
2929
secondary: [
3030
"[--btn-bg:theme(--color-secondary/95%)] [--btn-border:theme(--color-secondary-fg/10%)] [--btn-fg:var(--color-secondary-fg)] dark:[--btn-bg:theme(--color-secondary/85%)] dark:[--btn-border:theme(--color-secondary-fg/7%)]",
3131
"[--btn-bg-hovered:color-mix(in_oklab,var(--color-secondary)_60%,white_20%)] dark:[--btn-bg-hovered:color-mix(in_oklab,var(--color-secondary)_96%,white_4%)]",
32-
"inset-shadow-white/15 data-hovered:inset-shadow-white/20 data-pressed:inset-shadow-white/15",
32+
"inset-shadow-white/15 pressed:inset-shadow-white/15 hover:inset-shadow-white/20",
3333
],
3434
warning: [
3535
"[--btn-warning:theme(--color-warning/97%)]",
3636
"[--btn-warning-hovered:color-mix(in_oklab,var(--color-warning)_85%,white_15%)]",
3737
"dark:[--btn-warning-hovered:color-mix(in_oklab,var(--color-warning)_90%,white_10%)]",
3838
"outline-warning [--btn-bg:var(--btn-warning)] [--btn-border:var(--btn-warning)] [--btn-fg:var(--color-warning-fg)]",
3939
"[--btn-bg-hovered:var(--btn-warning-hovered)] [--btn-border-hovered:var(--btn-warning-hovered)]",
40-
"inset-shadow-white/25 data-hovered:inset-shadow-white/30 data-pressed:inset-shadow-white/25",
40+
"inset-shadow-white/25 pressed:inset-shadow-white/25 hover:inset-shadow-white/30",
4141
],
4242
danger: [
4343
"outline-danger [--btn-bg:theme(--color-danger/95%)] [--btn-border:var(--color-danger)] [--btn-fg:var(--color-danger-fg)] dark:[--btn-bg:var(--color-danger)]",
4444
"[--btn-danger-hovered:color-mix(in_oklab,var(--color-danger)_93%,white_7%)]",
4545
"dark:[--btn-danger-hovered:color-mix(in_oklab,var(--color-danger)_96%,white_4%)]",
4646
"[--btn-bg-hovered:var(--btn-danger-hovered)] [--btn-border-hovered:var(--btn-danger-hovered)]",
47-
"inset-shadow-danger-fg/30 data-hovered:inset-shadow-danger-fg/35 data-pressed:inset-shadow-danger-fg/30",
47+
"inset-shadow-danger-fg/30 pressed:inset-shadow-danger-fg/30 hover:inset-shadow-danger-fg/35",
4848
],
4949
outline: [
50-
"inset-ring-0 inset-shadow-none [--btn-border:var(--color-border)] data-hovered:bg-secondary data-pressed:bg-secondary",
50+
"inset-ring-0 inset-shadow-none pressed:bg-secondary [--btn-border:var(--color-border)] hover:bg-secondary",
5151
],
5252
plain:
53-
"inset-ring-0 inset-shadow-none [--btn-border:transparent] data-hovered:bg-secondary data-pressed:bg-secondary",
53+
"inset-ring-0 inset-shadow-none pressed:bg-secondary [--btn-border:transparent] hover:bg-secondary",
5454
},
5555
size: {
5656
"extra-small":
@@ -66,8 +66,8 @@ const buttonStyles = tv({
6666
circle: "rounded-full",
6767
},
6868
isDisabled: {
69-
false: "cursor-pointer forced-colors:data-disabled:text-[GrayText]",
70-
true: "inset-shadow-none cursor-default border-0 opacity-50 ring-0 dark:inset-ring-0 forced-colors:data-disabled:text-[GrayText]",
69+
false: "cursor-pointer forced-colors:disabled:text-[GrayText]",
70+
true: "inset-shadow-none cursor-default border-0 opacity-50 ring-0 dark:inset-ring-0 forced-colors:disabled:text-[GrayText]",
7171
},
7272
isPending: {
7373
true: "cursor-default opacity-50",

resources/js/components/ui/checkbox.tsx

+3-3
Original file line numberDiff line numberDiff line change
@@ -51,13 +51,13 @@ const boxStyles = tv({
5151
false: "bg-muted",
5252
true: [
5353
"border-primary bg-primary text-primary-fg",
54-
"group-data-invalid:border-danger/70 group-data-invalid:bg-danger group-data-invalid:text-danger-fg",
54+
"group-invalid:border-danger/70 group-invalid:bg-danger group-invalid:text-danger-fg",
5555
],
5656
},
5757
isFocused: {
5858
true: [
5959
"border-primary ring-4 ring-primary/20",
60-
"group-data-invalid:border-danger/70 group-data-invalid:text-danger-fg group-data-invalid:ring-danger/20",
60+
"group-invalid:border-danger/70 group-invalid:text-danger-fg group-invalid:ring-danger/20",
6161
],
6262
},
6363
isInvalid: {
@@ -108,5 +108,5 @@ const Checkbox = ({ className, ...props }: CheckboxProps) => {
108108
)
109109
}
110110

111-
export { Checkbox, CheckboxGroup }
112111
export type { CheckboxGroupProps, CheckboxProps }
112+
export { Checkbox, CheckboxGroup }

resources/js/components/ui/container.tsx

+1-1
Original file line numberDiff line numberDiff line change
@@ -22,5 +22,5 @@ const Container = ({ className, intent, ref, ...props }: ContainerProps) => (
2222
<div className={containerStyles({ intent, className })} {...props} ref={ref} />
2323
)
2424

25-
export { Container }
2625
export type { ContainerProps }
26+
export { Container }

resources/js/components/ui/dialog.tsx

+1-1
Original file line numberDiff line numberDiff line change
@@ -28,7 +28,7 @@ const dialogStyles = tv({
2828
footer:
2929
"isolate mt-auto flex flex-col-reverse justify-between gap-3 p-4 pt-3 sm:flex-row sm:p-6 sm:pt-5",
3030
closeIndicator:
31-
"close absolute top-1 right-1 z-50 grid size-8 place-content-center rounded-xl data-focused:bg-secondary data-hovered:bg-secondary data-focused:outline-hidden data-focus-visible:ring-1 data-focus-visible:ring-primary sm:top-2 sm:right-2 sm:size-7 sm:rounded-md",
31+
"close absolute top-1 right-1 z-50 grid size-8 place-content-center rounded-xl hover:bg-secondary data-focused:bg-secondary data-focused:outline-hidden data-focus-visible:ring-1 data-focus-visible:ring-primary sm:top-2 sm:right-2 sm:size-7 sm:rounded-md",
3232
},
3333
})
3434

resources/js/components/ui/dropdown.tsx

+14-14
Original file line numberDiff line numberDiff line change
@@ -1,16 +1,18 @@
11
import { cn } from "@/utils/classes"
22
import { IconCheck } from "justd-icons"
3+
import type {
4+
ListBoxItemProps,
5+
SectionProps,
6+
SeparatorProps,
7+
TextProps,
8+
} from "react-aria-components"
39
import {
410
Collection,
511
Header,
612
ListBoxItem as ListBoxItemPrimitive,
7-
type ListBoxItemProps,
813
ListBoxSection,
9-
type SectionProps,
1014
Separator,
11-
type SeparatorProps,
1215
Text,
13-
type TextProps,
1416
composeRenderProps,
1517
} from "react-aria-components"
1618
import { tv } from "tailwind-variants"
@@ -70,11 +72,9 @@ const DropdownSection = <T extends object>({ className, ...props }: DropdownSect
7072
type DropdownItemProps = ListBoxItemProps
7173

7274
const DropdownItem = ({ className, ...props }: DropdownItemProps) => {
73-
const textValue =
74-
props.textValue || (typeof props.children === "string" ? props.children : undefined)
7575
return (
7676
<ListBoxItemPrimitive
77-
textValue={textValue}
77+
textValue={typeof props.children === "string" ? props.children : props.textValue}
7878
className={composeRenderProps(className, (className, renderProps) =>
7979
dropdownItemStyles({ ...renderProps, className }),
8080
)}
@@ -136,11 +136,11 @@ const DropdownItemDetails = ({
136136
)
137137
}
138138

139-
interface MenuLabelProps extends TextProps {
139+
interface DropdownLabelProps extends TextProps {
140140
ref?: React.Ref<HTMLDivElement>
141141
}
142142

143-
const DropdownLabel = ({ className, ref, ...props }: MenuLabelProps) => (
143+
const DropdownLabel = ({ className, ref, ...props }: DropdownLabelProps) => (
144144
<Text slot="label" ref={ref} className={cn("col-start-2", className)} {...props} />
145145
)
146146

@@ -160,14 +160,14 @@ const DropdownKeyboard = ({ className, ...props }: React.ComponentProps<typeof K
160160
* Note: This is not exposed component, but it's used in other components to render dropdowns.
161161
* @internal
162162
*/
163+
export type { DropdownSectionProps, DropdownLabelProps, DropdownItemProps, DropdownItemDetailProps }
163164
export {
165+
DropdownSeparator,
164166
DropdownItem,
165-
DropdownItemDetails,
166-
DropdownKeyboard,
167167
DropdownLabel,
168-
DropdownSection,
169-
DropdownSeparator,
168+
DropdownKeyboard,
170169
dropdownItemStyles,
170+
DropdownItemDetails,
171+
DropdownSection,
171172
dropdownSectionStyles,
172173
}
173-
export type { DropdownItemDetailProps, DropdownItemProps, DropdownSectionProps }

resources/js/components/ui/field.tsx

+3-5
Original file line numberDiff line numberDiff line change
@@ -54,9 +54,7 @@ const Description = ({ ref, className, ...props }: DescriptionProps) => {
5454
ref={ref}
5555
{...props}
5656
slot="description"
57-
className={description({
58-
className: isWarning ? "text-warning" : className,
59-
})}
57+
className={description({ className: isWarning ? "text-warning" : className })}
6058
/>
6159
)
6260
}
@@ -77,7 +75,7 @@ const FieldError = ({ className, ref, ...props }: FieldErrorProps) => {
7775
const fieldGroupStyles = tv({
7876
base: [
7977
"group flex h-10 items-center overflow-hidden rounded-lg border border-input shadow-xs transition duration-200 ease-out",
80-
"relative focus-within:ring-4 group-data-invalid:focus-within:border-danger group-data-invalid:focus-within:ring-danger/20",
78+
"relative focus-within:ring-4 group-invalid:focus-within:border-danger group-invalid:focus-within:ring-danger/20",
8179
"[&>[role=progressbar]:first-child]:ml-2.5 [&>[role=progressbar]:last-child]:mr-2.5",
8280
"**:data-[slot=icon]:size-4 **:data-[slot=icon]:shrink-0 **:[button]:shrink-0",
8381
"[&>button:has([data-slot=icon]):first-child]:left-0 [&>button:has([data-slot=icon]):last-child]:right-0 [&>button:has([data-slot=icon])]:absolute",
@@ -129,5 +127,5 @@ const Input = ({ className, ref, ...props }: InputProps) => {
129127
)
130128
}
131129

130+
export type { FieldProps, InputProps, FieldErrorProps }
132131
export { Description, FieldError, FieldGroup, Input, Label }
133-
export type { FieldErrorProps, FieldProps, InputProps }

resources/js/components/ui/form.tsx

+1-1
Original file line numberDiff line numberDiff line change
@@ -8,5 +8,5 @@ const Form = ({ ref, ...props }: FormProps) => {
88
return <FormPrimitive ref={ref} {...props} />
99
}
1010

11-
export { Form }
1211
export type { FormProps }
12+
export { Form }

resources/js/components/ui/heading.tsx

+1-1
Original file line numberDiff line numberDiff line change
@@ -42,5 +42,5 @@ const Heading = ({ className, tracking = "normal", level = 1, ...props }: Headin
4242
)
4343
}
4444

45-
export { Heading }
4645
export type { HeadingProps }
46+
export { Heading }

resources/js/components/ui/keyboard.tsx

+3-5
Original file line numberDiff line numberDiff line change
@@ -3,7 +3,7 @@ import { tv } from "tailwind-variants"
33

44
const keyboardStyles = tv({
55
slots: {
6-
base: "hidden text-current/70 group-data-focused:text-fg group-data-hovered:text-fg group-data-disabled:opacity-50 group-data-focused:opacity-90 lg:inline-flex forced-colors:group-data-focused:text-[HighlightText]",
6+
base: "hidden text-current/70 group-hover:text-fg group-disabled:opacity-50 group-data-focused:text-fg group-data-focused:opacity-90 lg:inline-flex forced-colors:group-data-focused:text-[HighlightText]",
77
kbd: "inline-grid min-h-5 min-w-[2ch] place-content-center rounded text-center font-sans text-[.75rem] uppercase",
88
},
99
})
@@ -24,9 +24,7 @@ const Keyboard = ({ keys, classNames, className, ...props }: KeyboardProps) => {
2424
{(Array.isArray(keys) ? keys : keys.split("")).map((char, index) => (
2525
<kbd
2626
key={index}
27-
className={kbd({
28-
className: index > 0 && char.length > 1 ? "pl-1" : classNames?.kbd,
29-
})}
27+
className={kbd({ className: index > 0 && char.length > 1 ? "pl-1" : classNames?.kbd })}
3028
>
3129
{char}
3230
</kbd>
@@ -35,5 +33,5 @@ const Keyboard = ({ keys, classNames, className, ...props }: KeyboardProps) => {
3533
)
3634
}
3735

38-
export { Keyboard }
3936
export type { KeyboardProps }
37+
export { Keyboard }

resources/js/components/ui/link.tsx

+4-4
Original file line numberDiff line numberDiff line change
@@ -9,12 +9,12 @@ import { focusButtonStyles } from "./primitive"
99

1010
const linkStyles = tv({
1111
extend: focusButtonStyles,
12-
base: "transition-[color,_opacity] data-disabled:cursor-default data-disabled:opacity-60 forced-colors:data-disabled:text-[GrayText]",
12+
base: "transition-[color,_opacity] disabled:cursor-default disabled:opacity-60 forced-colors:disabled:text-[GrayText]",
1313
variants: {
1414
intent: {
1515
unstyled: "text-current",
16-
primary: "text-fg data-hovered:underline",
17-
secondary: "text-muted-fg data-hovered:text-secondary-fg",
16+
primary: "text-fg hover:underline",
17+
secondary: "text-muted-fg hover:text-secondary-fg",
1818
},
1919
},
2020
defaultVariants: {
@@ -43,5 +43,5 @@ const Link = ({ className, ref, ...props }: LinkProps) => {
4343
)
4444
}
4545

46-
export { Link, linkStyles }
4746
export type { LinkProps }
47+
export { Link, linkStyles }

resources/js/components/ui/list-box.tsx

+1-23
Original file line numberDiff line numberDiff line change
@@ -27,28 +27,6 @@ const ListBox = <T extends object>({ className, ...props }: ListBoxProps<T>) =>
2727
/>
2828
)
2929

30-
// const listBoxItemStyles = tv({
31-
// base: "lbi col-span-full relative cursor-pointer rounded-[calc(var(--radius-lg)-1px)] p-2 text-base outline-hidden sm:text-sm",
32-
// variants: {
33-
// isFocusVisible: {
34-
// true: "bg-secondary text-accent-fg",
35-
// },
36-
// isHovered: {
37-
// true: "bg-accent text-accent-fg [&:hover_[slot=description]]:text-accent-fg/70 [&:hover_[slot=label]]:text-accent-fg [&_.text-muted-fg]:text-accent-fg/80",
38-
// },
39-
// isFocused: {
40-
// true: "bg-accent text-accent-fg **:data-[slot=icon]:text-accent-fg **:data-[slot=label]:text-accent-fg [&_.text-muted-fg]:text-accent-fg/80",
41-
// },
42-
// isSelected: {
43-
// true: "bg-accent text-accent-fg **:data-[slot=icon]:text-accent-fg **:data-[slot=label]:text-accent-fg [&_.text-muted-fg]:text-accent-fg/80",
44-
// },
45-
// isDragging: { true: "cursor-grabbing bg-secondary text-secondary-fg" },
46-
// isDisabled: {
47-
// true: "cursor-default text-muted-fg opacity-70",
48-
// },
49-
// },
50-
// })
51-
5230
interface ListBoxItemProps<T extends object> extends ListBoxItemPrimitiveProps<T> {
5331
className?: string
5432
}
@@ -100,5 +78,5 @@ ListBox.Section = ListBoxSection
10078
ListBox.ItemDetails = ListBoxItemDetails
10179
ListBox.Item = ListBoxItem
10280

103-
export { ListBox }
10481
export type { ListBoxItemProps, ListBoxSectionProps }
82+
export { ListBox }

resources/js/components/ui/menu.tsx

+23-6
Original file line numberDiff line numberDiff line change
@@ -32,7 +32,7 @@ import {
3232
dropdownItemStyles,
3333
dropdownSectionStyles,
3434
} from "./dropdown"
35-
import { Popover } from "./popover"
35+
import { PopoverContent } from "./popover"
3636

3737
interface MenuContextProps {
3838
respectScreen: boolean
@@ -84,7 +84,17 @@ const MenuTrigger = ({ className, ref, ...props }: MenuTriggerProps) => (
8484
)
8585

8686
interface MenuContentProps<T>
87-
extends Omit<PopoverProps, "children" | "style">,
87+
extends Pick<
88+
PopoverProps,
89+
| "placement"
90+
| "offset"
91+
| "crossOffset"
92+
| "arrowBoundaryOffset"
93+
| "triggerRef"
94+
| "isOpen"
95+
| "onOpenChange"
96+
| "shouldFlip"
97+
>,
8898
MenuPrimitiveProps<T> {
8999
className?: string
90100
popoverClassName?: string
@@ -100,16 +110,23 @@ const MenuContent = <T extends object>({
100110
}: MenuContentProps<T>) => {
101111
const { respectScreen } = use(MenuContext)
102112
return (
103-
<Popover.Content
113+
<PopoverContent
114+
isOpen={props.isOpen}
115+
onOpenChange={props.onOpenChange}
116+
shouldFlip={props.shouldFlip}
104117
respectScreen={respectScreen}
105118
showArrow={showArrow}
119+
offset={props.offset}
120+
placement={props.placement}
121+
crossOffset={props.crossOffset}
122+
triggerRef={props.triggerRef}
123+
arrowBoundaryOffset={props.arrowBoundaryOffset}
106124
className={popover({
107125
className: popoverClassName,
108126
})}
109-
{...props}
110127
>
111128
<MenuPrimitive className={menu({ className })} {...props} />
112-
</Popover.Content>
129+
</PopoverContent>
113130
)
114131
}
115132

@@ -213,5 +230,5 @@ Menu.Label = MenuLabel
213230
Menu.Trigger = MenuTrigger
214231
Menu.Submenu = MenuSubMenu
215232

233+
export type { MenuProps, MenuContentProps, MenuTriggerProps, MenuItemProps, MenuSectionProps }
216234
export { Menu }
217-
export type { MenuContentProps, MenuItemProps, MenuProps, MenuSectionProps, MenuTriggerProps }

resources/js/components/ui/modal.tsx

+2-1
Original file line numberDiff line numberDiff line change
@@ -16,7 +16,7 @@ const Modal = (props: DialogTriggerProps) => {
1616
const modalOverlayStyles = tv({
1717
base: [
1818
"fixed top-0 left-0 isolate z-50 h-(--visual-viewport-height) w-full",
19-
"flex items-end justify-end bg-fg/15 text-center sm:items-center sm:justify-center dark:bg-bg/40",
19+
"flex items-end justify-end bg-fg/15 text-center sm:block dark:bg-bg/40",
2020
"[--visual-viewport-vertical-padding:16px] sm:[--visual-viewport-vertical-padding:32px]",
2121
],
2222
variants: {
@@ -35,6 +35,7 @@ const modalContentStyles = tv({
3535
base: [
3636
"max-h-full w-full rounded-t-2xl bg-overlay text-left align-middle text-overlay-fg shadow-lg ring-1 ring-fg/5",
3737
"overflow-hidden sm:rounded-2xl dark:ring-border",
38+
"sm:-translate-x-1/2 sm:-translate-y-1/2 sm:fixed sm:top-1/2 sm:left-[50vw]",
3839
],
3940
variants: {
4041
isEntering: {

0 commit comments

Comments
 (0)