@nextlyhq/ui 0.0.2-alpha.50 → 0.0.2-alpha.52

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/dist/index.mjs CHANGED
@@ -1004,10 +1004,12 @@ var DialogOverlay = forwardRef17(({ className, ...props }, ref) => /* @__PURE__
1004
1004
  ref,
1005
1005
  "data-slot": "dialog-overlay",
1006
1006
  className: cn(
1007
- // A modal scrim: a black wash is the point, so it stays a literal
1008
- // rather than a surface token. Painting it from `background` would
1009
- // make it a white veil in light mode and near-invisible in dark.
1010
- "fixed inset-0 z-50 bg-black/80 backdrop-blur-sm transition-opacity duration-150 data-[state=open]:animate-in data-[state=closed]:animate-out data-[state=closed]:fade-out-0 data-[state=open]:fade-in-0",
1007
+ // A modal scrim, from the `--nx-overlay` token rather than a surface
1008
+ // token. A black wash is the point — painting it from `background` would
1009
+ // make it a white veil in light mode but the alpha still has to differ
1010
+ // per mode, because what it composites over is white in one and mid-tone
1011
+ // in the other.
1012
+ "fixed inset-0 z-50 bg-overlay backdrop-blur-sm transition-opacity duration-150 data-[state=open]:animate-in data-[state=closed]:animate-out data-[state=closed]:fade-out-0 data-[state=open]:fade-in-0",
1011
1013
  className
1012
1014
  ),
1013
1015
  ...props
@@ -1126,10 +1128,12 @@ var AlertDialogOverlay = forwardRef18(({ className, ...props }, ref) => /* @__PU
1126
1128
  {
1127
1129
  ref,
1128
1130
  className: cn(
1129
- // A modal scrim: a black wash is the point, so it stays a literal
1130
- // rather than a surface token. Painting it from `background` would
1131
- // make it a white veil in light mode and near-invisible in dark.
1132
- "fixed inset-0 z-50 bg-black/80 backdrop-blur-sm transition-opacity duration-150 data-[state=open]:animate-in data-[state=closed]:animate-out data-[state=closed]:fade-out-0 data-[state=open]:fade-in-0",
1131
+ // A modal scrim, from the `--nx-overlay` token rather than a surface
1132
+ // token. A black wash is the point — painting it from `background` would
1133
+ // make it a white veil in light mode but the alpha still has to differ
1134
+ // per mode, because what it composites over is white in one and mid-tone
1135
+ // in the other.
1136
+ "fixed inset-0 z-50 bg-overlay backdrop-blur-sm transition-opacity duration-150 data-[state=open]:animate-in data-[state=closed]:animate-out data-[state=closed]:fade-out-0 data-[state=open]:fade-in-0",
1133
1137
  className
1134
1138
  ),
1135
1139
  ...props
@@ -1551,10 +1555,12 @@ var SheetOverlay = React7.forwardRef(({ className, ...props }, ref) => /* @__PUR
1551
1555
  DialogPrimitive2.Overlay,
1552
1556
  {
1553
1557
  className: cn(
1554
- // A modal scrim: a black wash is the point, so it stays a literal
1555
- // rather than a surface token. Painting it from `background` would
1556
- // make it a white veil in light mode and near-invisible in dark.
1557
- "fixed inset-0 z-50 bg-black/50 backdrop-blur-sm",
1558
+ // A modal scrim, from the `--nx-overlay` token rather than a surface
1559
+ // token. A black wash is the point — painting it from `background` would
1560
+ // make it a white veil in light mode but the alpha still has to differ
1561
+ // per mode, because what it composites over is white in one and mid-tone
1562
+ // in the other.
1563
+ "fixed inset-0 z-50 bg-overlay backdrop-blur-sm",
1558
1564
  "data-[state=open]:animate-in data-[state=closed]:animate-out",
1559
1565
  "data-[state=closed]:fade-out-0 data-[state=open]:fade-in-0",
1560
1566
  className
@@ -1669,10 +1675,12 @@ var CommandDialogOverlay = forwardRef22(({ className, ...props }, ref) => /* @__
1669
1675
  {
1670
1676
  ref,
1671
1677
  className: cn(
1672
- // A modal scrim: a black wash is the point, so it stays a literal
1673
- // rather than a surface token. Painting it from `background` would
1674
- // make it a white veil in light mode and near-invisible in dark.
1675
- "fixed inset-0 z-[99] bg-black/80 backdrop-blur-sm",
1678
+ // A modal scrim, from the `--nx-overlay` token rather than a surface
1679
+ // token. A black wash is the point — painting it from `background` would
1680
+ // make it a white veil in light mode but the alpha still has to differ
1681
+ // per mode, because what it composites over is white in one and mid-tone
1682
+ // in the other.
1683
+ "fixed inset-0 z-[99] bg-overlay backdrop-blur-sm",
1676
1684
  "data-[state=open]:animate-in data-[state=closed]:animate-out",
1677
1685
  "data-[state=closed]:fade-out-0 data-[state=open]:fade-in-0",
1678
1686
  "transition-opacity duration-200",
@@ -2123,6 +2131,192 @@ var TableSkeleton = ({
2123
2131
  return /* @__PURE__ */ jsx33("div", { className: "table-wrapper rounded-md border border-border bg-card overflow-hidden", children: content });
2124
2132
  };
2125
2133
  TableSkeleton.displayName = "TableSkeleton";
2134
+
2135
+ // src/components/context-menu.tsx
2136
+ import * as ContextMenuPrimitive from "@radix-ui/react-context-menu";
2137
+ import { Check as Check4, ChevronRight as ChevronRight2, Circle as Circle2 } from "lucide-react";
2138
+ import * as React9 from "react";
2139
+ import { jsx as jsx34, jsxs as jsxs13 } from "react/jsx-runtime";
2140
+ var menuItemBase2 = "cursor-pointer transition-colors data-[highlighted]:bg-muted data-[highlighted]:text-foreground data-[disabled]:pointer-events-none data-[disabled]:opacity-50";
2141
+ var menuSurface = "z-50 max-h-[var(--radix-context-menu-content-available-height)] min-w-[8rem] overflow-y-auto overflow-x-hidden rounded-lg border border-border bg-popover p-1 text-popover-foreground shadow-md data-[state=open]:animate-in data-[state=closed]:animate-out data-[state=closed]:fade-out-0 data-[state=open]:fade-in-0 data-[state=closed]:zoom-out-95 data-[state=open]:zoom-in-95 origin-[--radix-context-menu-content-transform-origin]";
2142
+ var ContextMenu = ContextMenuPrimitive.Root;
2143
+ var ContextMenuTrigger = ContextMenuPrimitive.Trigger;
2144
+ var ContextMenuGroup = ContextMenuPrimitive.Group;
2145
+ var ContextMenuSub = ContextMenuPrimitive.Sub;
2146
+ var ContextMenuRadioGroup = ContextMenuPrimitive.RadioGroup;
2147
+ var ContextMenuSubTrigger = React9.forwardRef(({ className, inset, children, ...props }, ref) => /* @__PURE__ */ jsxs13(
2148
+ ContextMenuPrimitive.SubTrigger,
2149
+ {
2150
+ ref,
2151
+ className: cn(
2152
+ "flex select-none items-center gap-2 rounded-sm px-2 py-1.5 text-sm outline-none data-[state=open]:bg-muted [&_svg]:pointer-events-none [&_svg]:size-4 [&_svg]:shrink-0",
2153
+ menuItemBase2,
2154
+ inset && "pl-8",
2155
+ className
2156
+ ),
2157
+ ...props,
2158
+ children: [
2159
+ children,
2160
+ /* @__PURE__ */ jsx34(ChevronRight2, { className: "ml-auto" })
2161
+ ]
2162
+ }
2163
+ ));
2164
+ ContextMenuSubTrigger.displayName = ContextMenuPrimitive.SubTrigger.displayName;
2165
+ var ContextMenuSubContent = React9.forwardRef(({ className, ...props }, ref) => {
2166
+ const portalContainer = usePortalContainer();
2167
+ return /* @__PURE__ */ jsx34(ContextMenuPrimitive.Portal, { container: portalContainer, children: /* @__PURE__ */ jsx34(
2168
+ ContextMenuPrimitive.SubContent,
2169
+ {
2170
+ ref,
2171
+ className: cn(menuSurface, className),
2172
+ ...props
2173
+ }
2174
+ ) });
2175
+ });
2176
+ ContextMenuSubContent.displayName = ContextMenuPrimitive.SubContent.displayName;
2177
+ var ContextMenuContent = React9.forwardRef(({ className, ...props }, ref) => {
2178
+ const portalContainer = usePortalContainer();
2179
+ return /* @__PURE__ */ jsx34(ContextMenuPrimitive.Portal, { container: portalContainer, children: /* @__PURE__ */ jsx34(
2180
+ ContextMenuPrimitive.Content,
2181
+ {
2182
+ ref,
2183
+ className: cn(menuSurface, className),
2184
+ ...props
2185
+ }
2186
+ ) });
2187
+ });
2188
+ ContextMenuContent.displayName = ContextMenuPrimitive.Content.displayName;
2189
+ var ContextMenuItem = React9.forwardRef(({ className, inset, ...props }, ref) => /* @__PURE__ */ jsx34(
2190
+ ContextMenuPrimitive.Item,
2191
+ {
2192
+ ref,
2193
+ className: cn(
2194
+ "relative flex select-none items-center gap-2 rounded-sm px-2 py-1.5 text-sm outline-none [&_svg]:pointer-events-none [&_svg]:size-4 [&_svg]:shrink-0",
2195
+ menuItemBase2,
2196
+ inset && "pl-8",
2197
+ className
2198
+ ),
2199
+ ...props
2200
+ }
2201
+ ));
2202
+ ContextMenuItem.displayName = ContextMenuPrimitive.Item.displayName;
2203
+ var ContextMenuCheckboxItem = React9.forwardRef(({ className, children, checked, ...props }, ref) => /* @__PURE__ */ jsxs13(
2204
+ ContextMenuPrimitive.CheckboxItem,
2205
+ {
2206
+ ref,
2207
+ className: cn(
2208
+ "relative flex select-none items-center rounded-sm py-1.5 pl-8 pr-2 text-sm outline-none",
2209
+ menuItemBase2,
2210
+ className
2211
+ ),
2212
+ checked,
2213
+ ...props,
2214
+ children: [
2215
+ /* @__PURE__ */ jsx34("span", { className: "absolute left-2 flex h-3.5 w-3.5 items-center justify-center", children: /* @__PURE__ */ jsx34(ContextMenuPrimitive.ItemIndicator, { children: /* @__PURE__ */ jsx34(Check4, { className: "h-4 w-4" }) }) }),
2216
+ children
2217
+ ]
2218
+ }
2219
+ ));
2220
+ ContextMenuCheckboxItem.displayName = ContextMenuPrimitive.CheckboxItem.displayName;
2221
+ var ContextMenuRadioItem = React9.forwardRef(({ className, children, ...props }, ref) => /* @__PURE__ */ jsxs13(
2222
+ ContextMenuPrimitive.RadioItem,
2223
+ {
2224
+ ref,
2225
+ className: cn(
2226
+ "relative flex select-none items-center rounded-sm py-1.5 pl-8 pr-2 text-sm outline-none",
2227
+ menuItemBase2,
2228
+ className
2229
+ ),
2230
+ ...props,
2231
+ children: [
2232
+ /* @__PURE__ */ jsx34("span", { className: "absolute left-2 flex h-3.5 w-3.5 items-center justify-center", children: /* @__PURE__ */ jsx34(ContextMenuPrimitive.ItemIndicator, { children: /* @__PURE__ */ jsx34(Circle2, { className: "h-2 w-2 fill-current" }) }) }),
2233
+ children
2234
+ ]
2235
+ }
2236
+ ));
2237
+ ContextMenuRadioItem.displayName = ContextMenuPrimitive.RadioItem.displayName;
2238
+ var ContextMenuLabel = React9.forwardRef(({ className, inset, ...props }, ref) => /* @__PURE__ */ jsx34(
2239
+ ContextMenuPrimitive.Label,
2240
+ {
2241
+ ref,
2242
+ className: cn(
2243
+ "px-2 py-1.5 text-sm font-semibold text-foreground",
2244
+ inset && "pl-8",
2245
+ className
2246
+ ),
2247
+ ...props
2248
+ }
2249
+ ));
2250
+ ContextMenuLabel.displayName = ContextMenuPrimitive.Label.displayName;
2251
+ var ContextMenuSeparator = React9.forwardRef(({ className, ...props }, ref) => /* @__PURE__ */ jsx34(
2252
+ ContextMenuPrimitive.Separator,
2253
+ {
2254
+ ref,
2255
+ className: cn("-mx-1 my-1 h-px bg-border", className),
2256
+ ...props
2257
+ }
2258
+ ));
2259
+ ContextMenuSeparator.displayName = ContextMenuPrimitive.Separator.displayName;
2260
+ var ContextMenuShortcut = ({
2261
+ className,
2262
+ ...props
2263
+ }) => /* @__PURE__ */ jsx34(
2264
+ "span",
2265
+ {
2266
+ className: cn(
2267
+ "ml-auto text-xs tracking-widest text-muted-foreground",
2268
+ className
2269
+ ),
2270
+ ...props
2271
+ }
2272
+ );
2273
+ ContextMenuShortcut.displayName = "ContextMenuShortcut";
2274
+
2275
+ // src/components/resizable.tsx
2276
+ import { GripVertical } from "lucide-react";
2277
+ import * as ResizablePrimitive from "react-resizable-panels";
2278
+ import { jsx as jsx35, jsxs as jsxs14 } from "react/jsx-runtime";
2279
+ var ResizablePanelGroup = ({
2280
+ className,
2281
+ ...props
2282
+ }) => /* @__PURE__ */ jsx35(
2283
+ ResizablePrimitive.Group,
2284
+ {
2285
+ className: cn("h-full w-full", className),
2286
+ ...props
2287
+ }
2288
+ );
2289
+ var ResizablePanel = ResizablePrimitive.Panel;
2290
+ var ResizableHandle = ({
2291
+ withGrip,
2292
+ className,
2293
+ children,
2294
+ ...props
2295
+ }) => /* @__PURE__ */ jsxs14(
2296
+ ResizablePrimitive.Separator,
2297
+ {
2298
+ className: cn(
2299
+ // The drawn line is 1px; the element around it is wider and transparent, so the pointer
2300
+ // target is comfortably larger than what it appears to grab (WCAG 2.5.8).
2301
+ "relative flex items-center justify-center bg-border",
2302
+ // Keyed off `aria-orientation`, which is what the separator actually carries, and read as
2303
+ // the ARIA spec defines it: the attribute describes the SEPARATOR, not the group. A
2304
+ // horizontal group puts its panels side by side, so its separator is a vertical line.
2305
+ "aria-[orientation=vertical]:w-px aria-[orientation=horizontal]:h-px",
2306
+ "focus-visible:outline-none focus-visible:ring-1 focus-visible:ring-ring focus-visible:ring-offset-1 focus-visible:ring-offset-background",
2307
+ // Reachable without precision pointing, without drawing a heavier divider: the hit area
2308
+ // grows across the line, so a vertical line widens and a horizontal one deepens.
2309
+ "after:absolute after:inset-0",
2310
+ "aria-[orientation=vertical]:after:-inset-x-1 aria-[orientation=horizontal]:after:-inset-y-1",
2311
+ className
2312
+ ),
2313
+ ...props,
2314
+ children: [
2315
+ withGrip ? /* @__PURE__ */ jsx35("div", { className: "z-10 flex h-4 w-3 items-center justify-center rounded-sm border border-border bg-border", children: /* @__PURE__ */ jsx35(GripVertical, { className: "h-2.5 w-2.5 text-muted-foreground" }) }) : null,
2316
+ children
2317
+ ]
2318
+ }
2319
+ );
2126
2320
  export {
2127
2321
  Accordion,
2128
2322
  AccordionContent,
@@ -2167,6 +2361,20 @@ export {
2167
2361
  CommandList,
2168
2362
  CommandSeparator,
2169
2363
  CommandShortcut,
2364
+ ContextMenu,
2365
+ ContextMenuCheckboxItem,
2366
+ ContextMenuContent,
2367
+ ContextMenuGroup,
2368
+ ContextMenuItem,
2369
+ ContextMenuLabel,
2370
+ ContextMenuRadioGroup,
2371
+ ContextMenuRadioItem,
2372
+ ContextMenuSeparator,
2373
+ ContextMenuShortcut,
2374
+ ContextMenuSub,
2375
+ ContextMenuSubContent,
2376
+ ContextMenuSubTrigger,
2377
+ ContextMenuTrigger,
2170
2378
  Dialog,
2171
2379
  DialogClose,
2172
2380
  DialogContent,
@@ -2204,6 +2412,9 @@ export {
2204
2412
  Progress,
2205
2413
  RadioGroup,
2206
2414
  RadioGroupItem,
2415
+ ResizableHandle,
2416
+ ResizablePanel,
2417
+ ResizablePanelGroup,
2207
2418
  Select,
2208
2419
  SelectContent,
2209
2420
  SelectGroup,