@olundot/ui 0.7.0 → 0.8.1

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/CHANGELOG.md CHANGED
@@ -1,5 +1,17 @@
1
1
  # @olundot/ui
2
2
 
3
+ ## 0.8.1
4
+
5
+ ### Patch Changes
6
+
7
+ - 83aa187: Fix floating overlay edges to use `--border` for visible elevated borders, and align Sheet/SheetDrawer mobile behavior to the OLUN 900px breakpoint so bottom sheets stay full-width below 900px.
8
+
9
+ ## 0.8.0
10
+
11
+ ### Minor Changes
12
+
13
+ - f49ba62: SheetDrawer: add `caption` slot; fix DropdownMenu/Select z-index so floating menus layer above the sheet/drawer (`--z-popover`).
14
+
3
15
  ## 0.7.0
4
16
 
5
17
  ### Minor Changes
package/dist/index.d.ts CHANGED
@@ -32,8 +32,8 @@ declare function useOlunTheme(): UseOlunThemeValue;
32
32
  type SurfaceLevel = "surface" | "canvas" | "raised";
33
33
 
34
34
  declare const buttonVariants: (props?: ({
35
- variant?: "primary" | "secondary" | "destructive" | "default" | "outline" | "ghost" | "danger" | "emergency" | "subtle" | "link" | null | undefined;
36
- size?: "xs" | "sm" | "md" | "lg" | "xl" | "default" | "icon" | "icon-xs" | null | undefined;
35
+ variant?: "default" | "primary" | "outline" | "ghost" | "danger" | "emergency" | "subtle" | "destructive" | "secondary" | "link" | null | undefined;
36
+ size?: "default" | "xs" | "sm" | "md" | "lg" | "xl" | "icon" | "icon-xs" | null | undefined;
37
37
  } & class_variance_authority_types.ClassProp) | undefined) => string;
38
38
  type ButtonVariant = NonNullable<VariantProps<typeof buttonVariants>['variant']>;
39
39
  type ButtonSize = NonNullable<VariantProps<typeof buttonVariants>['size']>;
@@ -54,7 +54,7 @@ type CopyButtonProps = Omit<ButtonProps, 'children' | 'leadingIcon' | 'loading'
54
54
  variant?: ButtonVariant;
55
55
  duration?: number;
56
56
  };
57
- declare const CopyButton: React.ForwardRefExoticComponent<Omit<ButtonProps, "variant" | "size" | "leadingIcon" | "trailingIcon" | "loading" | "children"> & {
57
+ declare const CopyButton: React.ForwardRefExoticComponent<Omit<ButtonProps, "size" | "variant" | "leadingIcon" | "trailingIcon" | "loading" | "children"> & {
58
58
  value: string;
59
59
  label?: React.ReactNode;
60
60
  copiedLabel?: React.ReactNode;
@@ -70,7 +70,7 @@ declare const inputVariants: (props?: ({
70
70
  surface?: SurfaceLevel | null | undefined;
71
71
  } & class_variance_authority_types.ClassProp) | undefined) => string;
72
72
  declare const inputMessageVariants: (props?: ({
73
- state?: "error" | "success" | "default" | null | undefined;
73
+ state?: "default" | "error" | "success" | null | undefined;
74
74
  size?: "sm" | "md" | "lg" | null | undefined;
75
75
  } & class_variance_authority_types.ClassProp) | undefined) => string;
76
76
  type InputState = NonNullable<VariantProps<typeof inputMessageVariants>["state"]>;
@@ -119,11 +119,11 @@ interface InputProps extends Omit<React.InputHTMLAttributes<HTMLInputElement>, "
119
119
  declare const Input: React.ForwardRefExoticComponent<InputProps & React.RefAttributes<HTMLInputElement>>;
120
120
 
121
121
  declare const fileUploadZoneVariants: (props?: ({
122
- size?: "compact" | "default" | null | undefined;
122
+ size?: "default" | "compact" | null | undefined;
123
123
  surface?: SurfaceLevel | null | undefined;
124
124
  } & class_variance_authority_types.ClassProp) | undefined) => string;
125
125
  declare const fileUploadIconVariants: (props?: ({
126
- size?: "compact" | "default" | null | undefined;
126
+ size?: "default" | "compact" | null | undefined;
127
127
  } & class_variance_authority_types.ClassProp) | undefined) => string;
128
128
  interface FileUploadZoneProps extends Omit<React.LabelHTMLAttributes<HTMLLabelElement>, "onChange">, VariantProps<typeof fileUploadZoneVariants> {
129
129
  accept?: string;
@@ -142,10 +142,10 @@ interface FileUploadZoneProps extends Omit<React.LabelHTMLAttributes<HTMLLabelEl
142
142
  declare const FileUploadZone: React.ForwardRefExoticComponent<FileUploadZoneProps & React.RefAttributes<HTMLLabelElement>>;
143
143
 
144
144
  declare const alertVariants: (props?: ({
145
- variant?: "error" | "warning" | "info" | "success" | null | undefined;
145
+ variant?: "error" | "success" | "info" | "warning" | null | undefined;
146
146
  } & class_variance_authority_types.ClassProp) | undefined) => string;
147
147
  declare const inlineAlertVariants: (props?: ({
148
- variant?: "error" | "warning" | "info" | "success" | null | undefined;
148
+ variant?: "error" | "success" | "info" | "warning" | null | undefined;
149
149
  surface?: "filled" | "plain" | null | undefined;
150
150
  } & class_variance_authority_types.ClassProp) | undefined) => string;
151
151
  type AlertVariant = NonNullable<VariantProps<typeof alertVariants>['variant']>;
@@ -175,7 +175,7 @@ declare const textareaVariants: (props?: ({
175
175
  surface?: SurfaceLevel | null | undefined;
176
176
  } & class_variance_authority_types.ClassProp) | undefined) => string;
177
177
  declare const textareaMessageVariants: (props?: ({
178
- state?: "error" | "success" | "default" | null | undefined;
178
+ state?: "default" | "error" | "success" | null | undefined;
179
179
  } & class_variance_authority_types.ClassProp) | undefined) => string;
180
180
  type TextareaState = NonNullable<VariantProps<typeof textareaMessageVariants>["state"]>;
181
181
  /** Canonical size type (0.2.0+). Use `size` prop with these values. */
@@ -230,7 +230,7 @@ declare const selectVariants: (props?: ({
230
230
  surface?: SurfaceLevel | null | undefined;
231
231
  } & class_variance_authority_types.ClassProp) | undefined) => string;
232
232
  declare const selectMessageVariants: (props?: ({
233
- state?: "error" | "success" | "default" | null | undefined;
233
+ state?: "default" | "error" | "success" | null | undefined;
234
234
  size?: "sm" | "md" | "lg" | null | undefined;
235
235
  } & class_variance_authority_types.ClassProp) | undefined) => string;
236
236
  type SelectState = NonNullable<VariantProps<typeof selectMessageVariants>["state"]>;
@@ -793,6 +793,11 @@ declare function SheetDescription({ className, ...props }: React.ComponentProps<
793
793
  interface SheetDrawerProps {
794
794
  open: boolean;
795
795
  onOpenChange: (open: boolean) => void;
796
+ /**
797
+ * Optional eyebrow content rendered ABOVE the title — e.g. a breadcrumb path or status badges.
798
+ * Distinct from `description`, which renders below the title.
799
+ */
800
+ caption?: React.ReactNode;
796
801
  title: string;
797
802
  description?: string;
798
803
  children: React.ReactNode;
@@ -807,7 +812,7 @@ interface SheetDrawerProps {
807
812
  motion?: SheetMotionConfig | false;
808
813
  closeLabel?: string;
809
814
  }
810
- declare function SheetDrawer({ open, onOpenChange, title, description, children, expandHref, onExpand, expandLabel, expanded, onExpandedChange, collapseLabel, footer, width, motion, closeLabel, }: SheetDrawerProps): react_jsx_runtime.JSX.Element;
815
+ declare function SheetDrawer({ open, onOpenChange, caption, title, description, children, expandHref, onExpand, expandLabel, expanded, onExpandedChange, collapseLabel, footer, width, motion, closeLabel, }: SheetDrawerProps): react_jsx_runtime.JSX.Element;
811
816
 
812
817
  declare function TooltipProvider({ delayDuration, ...props }: React.ComponentProps<typeof Tooltip$1.Provider>): react_jsx_runtime.JSX.Element;
813
818
  interface TooltipProps extends React.ComponentProps<typeof Tooltip$1.Root> {
@@ -854,8 +859,8 @@ declare const PopoverContent: React.ForwardRefExoticComponent<PopoverContentProp
854
859
  declare const PopoverArrow: React.ForwardRefExoticComponent<Omit<Popover$1.PopoverArrowProps & React.RefAttributes<SVGSVGElement>, "ref"> & React.RefAttributes<SVGSVGElement>>;
855
860
 
856
861
  declare const badgeVariants: (props?: ({
857
- variant?: "brand" | "neutral" | "status" | "semantic" | "pill" | "vibrant" | null | undefined;
858
- tone?: "accent" | "warning" | "info" | "success" | "neutral" | "danger" | null | undefined;
862
+ variant?: "status" | "semantic" | "neutral" | "brand" | "pill" | "vibrant" | null | undefined;
863
+ tone?: "accent" | "danger" | "success" | "info" | "warning" | "neutral" | null | undefined;
859
864
  size?: "xs" | "sm" | "md" | null | undefined;
860
865
  } & class_variance_authority_types.ClassProp) | undefined) => string;
861
866
  declare const badgeDotVariants: (props?: class_variance_authority_types.ClassProp | undefined) => string;
@@ -873,7 +878,7 @@ declare const twoTierBadgeVariants: (props?: ({
873
878
  } & class_variance_authority_types.ClassProp) | undefined) => string;
874
879
  declare const twoTierBadgeLineVariants: (props?: ({
875
880
  tier?: "primary" | "secondary" | null | undefined;
876
- intent?: "brand" | "muted" | "warning" | "success" | "neutral" | "danger" | null | undefined;
881
+ intent?: "danger" | "success" | "warning" | "neutral" | "brand" | "muted" | null | undefined;
877
882
  } & class_variance_authority_types.ClassProp) | undefined) => string;
878
883
  type TwoTierBadgeIntent = NonNullable<VariantProps<typeof twoTierBadgeLineVariants>["intent"]>;
879
884
  interface TwoTierBadgeProps extends React.HTMLAttributes<HTMLDivElement>, VariantProps<typeof twoTierBadgeVariants> {
@@ -887,7 +892,7 @@ interface TwoTierBadgeProps extends React.HTMLAttributes<HTMLDivElement>, Varian
887
892
  declare const TwoTierBadge: React.ForwardRefExoticComponent<TwoTierBadgeProps & React.RefAttributes<HTMLDivElement>>;
888
893
 
889
894
  declare const statusBadgeVariants: (props?: ({
890
- status?: "error" | "warning" | "info" | "success" | "active" | "pending" | "archived" | null | undefined;
895
+ status?: "error" | "success" | "info" | "warning" | "active" | "pending" | "archived" | null | undefined;
891
896
  size?: "xs" | "sm" | "md" | null | undefined;
892
897
  } & class_variance_authority_types.ClassProp) | undefined) => string;
893
898
  declare const statusBadgeDotVariants: (props?: class_variance_authority_types.ClassProp | undefined) => string;
@@ -917,12 +922,12 @@ declare const NotificationBadge: React.ForwardRefExoticComponent<NotificationBad
917
922
 
918
923
  declare const chipVariants: (props?: ({
919
924
  variant?: "filter" | "choice" | "removable" | "status-filter" | null | undefined;
920
- tone?: "muted" | "accent" | "warning" | "success" | "neutral" | "danger" | null | undefined;
925
+ tone?: "accent" | "danger" | "success" | "warning" | "neutral" | "muted" | null | undefined;
921
926
  size?: "sm" | "md" | "lg" | null | undefined;
922
927
  pressed?: boolean | null | undefined;
923
928
  } & class_variance_authority_types.ClassProp) | undefined) => string;
924
929
  declare const chipCountVariants: (props?: ({
925
- tone?: "muted" | "accent" | "warning" | "success" | "neutral" | "danger" | null | undefined;
930
+ tone?: "accent" | "danger" | "success" | "warning" | "neutral" | "muted" | null | undefined;
926
931
  size?: "sm" | "md" | "lg" | null | undefined;
927
932
  } & class_variance_authority_types.ClassProp) | undefined) => string;
928
933
  type ChipVariant = NonNullable<VariantProps<typeof chipVariants>["variant"]>;
@@ -1116,7 +1121,7 @@ interface ActionFooterProps extends Omit<React.HTMLAttributes<HTMLDivElement>, '
1116
1121
  declare const ActionFooter: React.ForwardRefExoticComponent<ActionFooterProps & React.RefAttributes<HTMLDivElement>>;
1117
1122
 
1118
1123
  declare const toastVariants: (props?: ({
1119
- variant?: "error" | "warning" | "info" | "success" | "default" | null | undefined;
1124
+ variant?: "default" | "error" | "success" | "info" | "warning" | null | undefined;
1120
1125
  } & class_variance_authority_types.ClassProp) | undefined) => string;
1121
1126
  declare const toastViewportVariants: (props?: class_variance_authority_types.ClassProp | undefined) => string;
1122
1127
  type ToastVariant = NonNullable<VariantProps<typeof toastVariants>['variant']>;
@@ -1157,17 +1162,17 @@ interface ToastProviderProps extends React.HTMLAttributes<HTMLDivElement> {
1157
1162
  declare function ToastProvider({ children, maxToasts, className, ...props }: ToastProviderProps): react_jsx_runtime.JSX.Element;
1158
1163
 
1159
1164
  declare const otpFieldVariants: (props?: ({
1160
- size?: "compact" | "default" | null | undefined;
1165
+ size?: "default" | "compact" | null | undefined;
1161
1166
  } & class_variance_authority_types.ClassProp) | undefined) => string;
1162
1167
  declare const otpFieldGroupVariants: (props?: ({
1163
- size?: "compact" | "default" | null | undefined;
1168
+ size?: "default" | "compact" | null | undefined;
1164
1169
  } & class_variance_authority_types.ClassProp) | undefined) => string;
1165
1170
  declare const otpCellVariants: (props?: ({
1166
- size?: "compact" | "default" | null | undefined;
1171
+ size?: "default" | "compact" | null | undefined;
1167
1172
  surface?: SurfaceLevel | null | undefined;
1168
1173
  } & class_variance_authority_types.ClassProp) | undefined) => string;
1169
1174
  declare const otpFieldMessageVariants: (props?: ({
1170
- state?: "error" | "default" | null | undefined;
1175
+ state?: "default" | "error" | null | undefined;
1171
1176
  } & class_variance_authority_types.ClassProp) | undefined) => string;
1172
1177
  type OTPFieldSize = NonNullable<VariantProps<typeof otpCellVariants>["size"]>;
1173
1178
  interface OTPFieldProps extends Omit<React.FieldsetHTMLAttributes<HTMLFieldSetElement>, "onChange" | "children" | "defaultValue" | "value">, VariantProps<typeof otpFieldVariants> {
@@ -1223,11 +1228,11 @@ declare const checkboxBoxVariants: (props?: ({
1223
1228
  size?: "sm" | "md" | null | undefined;
1224
1229
  } & class_variance_authority_types.ClassProp) | undefined) => string;
1225
1230
  declare const checkboxGroupItemVariants: (props?: ({
1226
- appearance?: "card" | "plain" | null | undefined;
1231
+ appearance?: "plain" | "card" | null | undefined;
1227
1232
  density?: "compact" | "comfortable" | null | undefined;
1228
1233
  } & class_variance_authority_types.ClassProp) | undefined) => string;
1229
1234
  declare const checkboxGroupBoxVariants: (props?: ({
1230
- appearance?: "card" | "plain" | null | undefined;
1235
+ appearance?: "plain" | "card" | null | undefined;
1231
1236
  } & class_variance_authority_types.ClassProp) | undefined) => string;
1232
1237
  type CheckboxSize = NonNullable<VariantProps<typeof checkboxBoxVariants>["size"]>;
1233
1238
  type CheckboxCheckedState = React.ComponentProps<typeof Checkbox$1.Root>["checked"];
@@ -1252,7 +1257,7 @@ interface CheckboxProps extends Omit<React.ComponentPropsWithoutRef<typeof Check
1252
1257
  declare const Checkbox: React.ForwardRefExoticComponent<CheckboxProps & React.RefAttributes<HTMLButtonElement>>;
1253
1258
 
1254
1259
  declare const checkboxGroupVariants: (props?: ({
1255
- appearance?: "card" | "plain" | null | undefined;
1260
+ appearance?: "plain" | "card" | null | undefined;
1256
1261
  orientation?: "horizontal" | "vertical" | null | undefined;
1257
1262
  columns?: "one" | "two" | "three" | null | undefined;
1258
1263
  } & class_variance_authority_types.ClassProp) | undefined) => string;
@@ -1273,16 +1278,16 @@ interface CheckboxGroupProps extends Omit<React.HTMLAttributes<HTMLDivElement>,
1273
1278
  declare const CheckboxGroup: React.ForwardRefExoticComponent<CheckboxGroupProps & React.RefAttributes<HTMLDivElement>>;
1274
1279
 
1275
1280
  declare const radioGroupVariants: (props?: ({
1276
- appearance?: "card" | "plain" | null | undefined;
1281
+ appearance?: "plain" | "card" | null | undefined;
1277
1282
  orientation?: "horizontal" | "vertical" | null | undefined;
1278
1283
  columns?: "one" | "two" | "three" | null | undefined;
1279
1284
  } & class_variance_authority_types.ClassProp) | undefined) => string;
1280
1285
  declare const radioVariants: (props?: ({
1281
- appearance?: "card" | "plain" | null | undefined;
1286
+ appearance?: "plain" | "card" | null | undefined;
1282
1287
  density?: "compact" | "comfortable" | null | undefined;
1283
1288
  } & class_variance_authority_types.ClassProp) | undefined) => string;
1284
1289
  declare const radioControlVariants: (props?: ({
1285
- appearance?: "card" | "plain" | null | undefined;
1290
+ appearance?: "plain" | "card" | null | undefined;
1286
1291
  } & class_variance_authority_types.ClassProp) | undefined) => string;
1287
1292
  type RadioGroupAppearance = NonNullable<VariantProps<typeof radioGroupVariants>["appearance"]>;
1288
1293
  type RadioGroupColumns = NonNullable<VariantProps<typeof radioGroupVariants>["columns"]>;
package/dist/index.js CHANGED
@@ -1497,13 +1497,13 @@ var Select = React7.forwardRef(
1497
1497
  "data-slot": "select-content",
1498
1498
  position: "popper",
1499
1499
  sideOffset: 4,
1500
- className: "z-50 max-h-[var(--radix-select-content-available-height)] min-w-[var(--radix-select-trigger-width)] overflow-hidden rounded-[var(--radius-md)] border border-[var(--border-subtle)] bg-[var(--bg-raised)] text-foreground shadow-md",
1500
+ className: "z-[var(--z-popover)] max-h-[var(--radix-select-content-available-height)] min-w-[var(--radix-select-trigger-width)] overflow-hidden rounded-[var(--radius-md)] border border-[var(--border)] bg-[var(--bg-raised)] text-foreground shadow-md",
1501
1501
  children: [
1502
1502
  /* @__PURE__ */ jsx7(
1503
1503
  SelectPrimitive.ScrollUpButton,
1504
1504
  {
1505
1505
  "data-slot": "select-scroll-up",
1506
- className: "flex items-center justify-center border-b border-[var(--border-subtle)] bg-[var(--bg-raised)] py-[var(--space-0-5)] text-text-tertiary",
1506
+ className: "flex items-center justify-center border-b border-[var(--border)] bg-[var(--bg-raised)] py-[var(--space-0-5)] text-text-tertiary",
1507
1507
  children: /* @__PURE__ */ jsx7(ChevronUp, { "aria-hidden": "true", className: "size-[16px]" })
1508
1508
  }
1509
1509
  ),
@@ -1527,7 +1527,7 @@ var Select = React7.forwardRef(
1527
1527
  SelectPrimitive.ScrollDownButton,
1528
1528
  {
1529
1529
  "data-slot": "select-scroll-down",
1530
- className: "flex items-center justify-center border-t border-[var(--border-subtle)] bg-[var(--bg-raised)] py-[var(--space-0-5)] text-text-tertiary",
1530
+ className: "flex items-center justify-center border-t border-[var(--border)] bg-[var(--bg-raised)] py-[var(--space-0-5)] text-text-tertiary",
1531
1531
  children: /* @__PURE__ */ jsx7(ChevronDown, { "aria-hidden": "true", className: "size-[16px]" })
1532
1532
  }
1533
1533
  )
@@ -4714,9 +4714,9 @@ function DropdownMenuContent({
4714
4714
  "data-slot": "dropdown-menu-content",
4715
4715
  sideOffset,
4716
4716
  className: cn(
4717
- "z-50 max-h-(--radix-dropdown-menu-content-available-height) min-w-[8rem]",
4717
+ "z-[var(--z-popover)] max-h-(--radix-dropdown-menu-content-available-height) min-w-[8rem]",
4718
4718
  "origin-(--radix-dropdown-menu-content-transform-origin) overflow-x-hidden overflow-y-auto",
4719
- "rounded-sm border border-subtle bg-canvas p-[var(--space-0-5)] text-text-primary shadow-elevation-2",
4719
+ "rounded-sm border border-[var(--border)] bg-canvas p-[var(--space-0-5)] text-text-primary shadow-elevation-2",
4720
4720
  "data-[side=bottom]:slide-in-from-top-2 data-[side=left]:slide-in-from-right-2",
4721
4721
  "data-[side=right]:slide-in-from-left-2 data-[side=top]:slide-in-from-bottom-2",
4722
4722
  "data-[state=closed]:animate-out data-[state=closed]:fade-out-0 data-[state=closed]:zoom-out-95",
@@ -4914,8 +4914,8 @@ function DropdownMenuSubContent({
4914
4914
  {
4915
4915
  "data-slot": "dropdown-menu-sub-content",
4916
4916
  className: cn(
4917
- "z-50 min-w-[8rem] origin-(--radix-dropdown-menu-content-transform-origin) overflow-hidden",
4918
- "rounded-sm border border-subtle bg-canvas p-[var(--space-0-5)] text-text-primary shadow-elevation-2",
4917
+ "z-[var(--z-popover)] min-w-[8rem] origin-(--radix-dropdown-menu-content-transform-origin) overflow-hidden",
4918
+ "rounded-sm border border-[var(--border)] bg-canvas p-[var(--space-0-5)] text-text-primary shadow-elevation-2",
4919
4919
  "data-[side=bottom]:slide-in-from-top-2 data-[side=left]:slide-in-from-right-2",
4920
4920
  "data-[side=right]:slide-in-from-left-2 data-[side=top]:slide-in-from-bottom-2",
4921
4921
  "data-[state=closed]:animate-out data-[state=closed]:fade-out-0 data-[state=closed]:zoom-out-95",
@@ -5027,7 +5027,7 @@ function SheetContent({
5027
5027
  {
5028
5028
  "data-slot": "sheet-content",
5029
5029
  className: cn(
5030
- "fixed z-[var(--z-modal)] flex flex-col gap-4 bg-background shadow-lg",
5030
+ "fixed z-[var(--z-modal)] flex flex-col gap-4 border-[var(--border)] bg-background shadow-lg",
5031
5031
  motionConfig && cn(
5032
5032
  "motion-reduce:animate-none",
5033
5033
  motionConfig.type === "fade" && "data-[state=open]:animate-[olun-sheet-fade-in_var(--sheet-motion-duration)_var(--sheet-motion-easing)_both] data-[state=closed]:animate-[olun-sheet-fade-out_var(--sheet-motion-duration)_var(--sheet-motion-easing)_both]"
@@ -5049,20 +5049,20 @@ function SheetContent({
5049
5049
  hasSlideMotion && "data-[state=open]:animate-[olun-sheet-in-from-bottom_var(--sheet-motion-duration)_var(--sheet-motion-easing)_both] data-[state=closed]:animate-[olun-sheet-out-to-bottom_var(--sheet-motion-duration)_var(--sheet-motion-easing)_both]"
5050
5050
  ),
5051
5051
  mobileSide === "right" && cn(
5052
- "max-md:inset-y-0 max-md:right-0 max-md:left-auto max-md:h-full max-md:w-3/4 max-md:border-l max-md:border-t-0 max-md:rounded-none",
5053
- hasSlideMotion && "max-md:data-[state=open]:animate-[olun-sheet-in-from-right_var(--sheet-motion-duration)_var(--sheet-motion-easing)_both] max-md:data-[state=closed]:animate-[olun-sheet-out-to-right_var(--sheet-motion-duration)_var(--sheet-motion-easing)_both]"
5052
+ "max-[899px]:inset-y-0 max-[899px]:right-0 max-[899px]:left-auto max-[899px]:h-full max-[899px]:w-3/4 max-[899px]:border-l max-[899px]:border-t-0 max-[899px]:rounded-none",
5053
+ hasSlideMotion && "max-[899px]:data-[state=open]:animate-[olun-sheet-in-from-right_var(--sheet-motion-duration)_var(--sheet-motion-easing)_both] max-[899px]:data-[state=closed]:animate-[olun-sheet-out-to-right_var(--sheet-motion-duration)_var(--sheet-motion-easing)_both]"
5054
5054
  ),
5055
5055
  mobileSide === "left" && cn(
5056
- "max-md:inset-y-0 max-md:left-0 max-md:right-auto max-md:h-full max-md:w-3/4 max-md:border-r max-md:border-t-0 max-md:rounded-none",
5057
- hasSlideMotion && "max-md:data-[state=open]:animate-[olun-sheet-in-from-left_var(--sheet-motion-duration)_var(--sheet-motion-easing)_both] max-md:data-[state=closed]:animate-[olun-sheet-out-to-left_var(--sheet-motion-duration)_var(--sheet-motion-easing)_both]"
5056
+ "max-[899px]:inset-y-0 max-[899px]:left-0 max-[899px]:right-auto max-[899px]:h-full max-[899px]:w-3/4 max-[899px]:border-r max-[899px]:border-t-0 max-[899px]:rounded-none",
5057
+ hasSlideMotion && "max-[899px]:data-[state=open]:animate-[olun-sheet-in-from-left_var(--sheet-motion-duration)_var(--sheet-motion-easing)_both] max-[899px]:data-[state=closed]:animate-[olun-sheet-out-to-left_var(--sheet-motion-duration)_var(--sheet-motion-easing)_both]"
5058
5058
  ),
5059
5059
  mobileSide === "top" && cn(
5060
- "max-md:inset-x-0 max-md:top-0 max-md:bottom-auto max-md:h-auto max-md:w-full max-md:border-b max-md:border-l-0 max-md:rounded-none",
5061
- hasSlideMotion && "max-md:data-[state=open]:animate-[olun-sheet-in-from-top_var(--sheet-motion-duration)_var(--sheet-motion-easing)_both] max-md:data-[state=closed]:animate-[olun-sheet-out-to-top_var(--sheet-motion-duration)_var(--sheet-motion-easing)_both]"
5060
+ "max-[899px]:inset-x-0 max-[899px]:top-0 max-[899px]:bottom-auto max-[899px]:h-auto max-[899px]:w-full max-[899px]:border-b max-[899px]:border-l-0 max-[899px]:rounded-none",
5061
+ hasSlideMotion && "max-[899px]:data-[state=open]:animate-[olun-sheet-in-from-top_var(--sheet-motion-duration)_var(--sheet-motion-easing)_both] max-[899px]:data-[state=closed]:animate-[olun-sheet-out-to-top_var(--sheet-motion-duration)_var(--sheet-motion-easing)_both]"
5062
5062
  ),
5063
5063
  mobileSide === "bottom" && cn(
5064
- "max-md:inset-x-0 max-md:bottom-0 max-md:top-auto max-md:h-auto max-md:w-full max-md:border-t max-md:border-l-0 max-md:rounded-none",
5065
- hasSlideMotion && "max-md:data-[state=open]:animate-[olun-sheet-in-from-bottom_var(--sheet-motion-duration)_var(--sheet-motion-easing)_both] max-md:data-[state=closed]:animate-[olun-sheet-out-to-bottom_var(--sheet-motion-duration)_var(--sheet-motion-easing)_both]"
5064
+ "max-[899px]:inset-x-0 max-[899px]:bottom-0 max-[899px]:top-auto max-[899px]:h-auto max-[899px]:w-full max-[899px]:border-t max-[899px]:border-l-0 max-[899px]:rounded-none",
5065
+ hasSlideMotion && "max-[899px]:data-[state=open]:animate-[olun-sheet-in-from-bottom_var(--sheet-motion-duration)_var(--sheet-motion-easing)_both] max-[899px]:data-[state=closed]:animate-[olun-sheet-out-to-bottom_var(--sheet-motion-duration)_var(--sheet-motion-easing)_both]"
5066
5066
  ),
5067
5067
  className
5068
5068
  ),
@@ -5132,21 +5132,22 @@ import { jsx as jsx30, jsxs as jsxs27 } from "react/jsx-runtime";
5132
5132
  var sheetDrawerContentClassName = cn(
5133
5133
  "gap-0 p-0",
5134
5134
  "bg-[var(--bg-surface)] text-foreground",
5135
- "border-[var(--border-subtle)] shadow-[var(--elevation-4)]",
5136
- "md:w-[480px] md:max-w-[480px]",
5137
- "max-md:h-[min(85dvh,720px)] max-md:max-h-[85dvh] max-md:w-full max-md:max-w-none",
5138
- "max-md:rounded-t-[var(--radius-lg)]"
5135
+ "border-[var(--border)] shadow-[var(--elevation-4)]",
5136
+ "min-[900px]:w-[480px] min-[900px]:max-w-[480px]",
5137
+ "max-[899px]:h-[min(85dvh,720px)] max-[899px]:max-h-[85dvh] max-[899px]:w-full max-[899px]:max-w-none",
5138
+ "max-[899px]:rounded-t-[var(--radius-lg)]"
5139
5139
  );
5140
- var sheetDrawerWideContentClassName = "md:w-[720px] md:max-w-[720px]";
5140
+ var sheetDrawerWideContentClassName = "min-[900px]:w-[720px] min-[900px]:max-w-[720px]";
5141
5141
  var sheetDrawerFullContentClassName = cn(
5142
- "md:w-[calc(100vw_-_var(--space-4))] md:max-w-[calc(100vw_-_var(--space-4))]",
5143
- "max-md:h-[100dvh] max-md:max-h-[100dvh] max-md:rounded-none"
5142
+ "min-[900px]:w-[calc(100vw_-_var(--space-4))] min-[900px]:max-w-[calc(100vw_-_var(--space-4))]",
5143
+ "max-[899px]:h-[100dvh] max-[899px]:max-h-[100dvh] max-[899px]:rounded-none"
5144
5144
  );
5145
5145
  var sheetDrawerHeaderClassName = cn(
5146
5146
  "flex items-start justify-between gap-[var(--space-2)]",
5147
- "border-b border-[var(--border-subtle)] px-[var(--space-3)] py-[var(--space-3)]"
5147
+ "border-b border-[var(--border)] px-[var(--space-3)] py-[var(--space-3)]"
5148
5148
  );
5149
5149
  var sheetDrawerHeaderTextClassName = "flex min-w-0 flex-1 flex-col gap-[var(--space-1)]";
5150
+ var sheetDrawerCaptionClassName = "flex flex-wrap items-center gap-[var(--space-1)]";
5150
5151
  var sheetDrawerTitleClassName = "text-[18px] font-bold leading-snug text-foreground";
5151
5152
  var sheetDrawerDescriptionClassName = "break-keep text-[14px] leading-normal text-text-secondary";
5152
5153
  var sheetDrawerCloseButtonClassName = cn(
@@ -5170,12 +5171,13 @@ var sheetDrawerBodyClassName = cn(
5170
5171
  "px-[var(--space-3)] py-[var(--space-3)]"
5171
5172
  );
5172
5173
  var sheetDrawerFooterClassName = cn(
5173
- "border-t border-[var(--border-subtle)] px-[var(--space-3)] py-[var(--space-2)]",
5174
+ "border-t border-[var(--border)] px-[var(--space-3)] py-[var(--space-2)]",
5174
5175
  "flex justify-end gap-[var(--space-1)]"
5175
5176
  );
5176
5177
  function SheetDrawer({
5177
5178
  open,
5178
5179
  onOpenChange,
5180
+ caption,
5179
5181
  title,
5180
5182
  description,
5181
5183
  children,
@@ -5211,6 +5213,7 @@ function SheetDrawer({
5211
5213
  children: [
5212
5214
  /* @__PURE__ */ jsxs27("div", { "data-slot": "sheet-drawer-header", className: sheetDrawerHeaderClassName, children: [
5213
5215
  /* @__PURE__ */ jsxs27("div", { className: sheetDrawerHeaderTextClassName, children: [
5216
+ caption ? /* @__PURE__ */ jsx30("div", { "data-slot": "sheet-drawer-caption", className: sheetDrawerCaptionClassName, children: caption }) : null,
5214
5217
  /* @__PURE__ */ jsx30(SheetTitle, { "data-slot": "sheet-drawer-title", className: sheetDrawerTitleClassName, children: title }),
5215
5218
  description ? /* @__PURE__ */ jsx30(
5216
5219
  SheetDescription,
@@ -5301,7 +5304,7 @@ var PopoverContent = React24.forwardRef(({ className, align = "center", sideOffs
5301
5304
  "data-slot": "popover-content",
5302
5305
  className: cn(
5303
5306
  "z-[var(--z-popover)] w-[260px] outline-none",
5304
- "rounded-[var(--radius-md)] border border-[var(--border-subtle)]",
5307
+ "rounded-[var(--radius-md)] border border-[var(--border)]",
5305
5308
  "bg-[var(--bg-raised)] p-[var(--space-2)] text-foreground",
5306
5309
  "shadow-[var(--elevation-4)]",
5307
5310
  "data-[state=open]:animate-in data-[state=closed]:animate-out",
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@olundot/ui",
3
- "version": "0.7.0",
3
+ "version": "0.8.1",
4
4
  "description": "OLUN. shared React UI components built on OLUN design tokens",
5
5
  "license": "MIT",
6
6
  "keywords": [