@howells/stacksheet
Advanced tools
+29
-8
@@ -1602,2 +1602,16 @@ import { Portal } from "@radix-ui/react-portal"; | ||
| //#region src/parts.tsx | ||
| /** | ||
| * Compose className strings without injecting defaults the caller didn't ask | ||
| * for. When `asChild` is set, the parts in this file render via Radix Slot | ||
| * onto a consumer-supplied element — so any default visual classes the | ||
| * library applies would clash with the consumer's own styling (e.g. our | ||
| * `rounded-md` would override their `rounded-full`). We solve this by | ||
| * dropping decorative defaults entirely on `asChild`, while keeping | ||
| * structural classes (e.g. `shrink-0`, `min-h-0 flex-1`) that the | ||
| * panel layout depends on. | ||
| */ | ||
| function joinClasses(...parts) { | ||
| const out = parts.filter(Boolean).join(" ").trim(); | ||
| return out.length > 0 ? out : void 0; | ||
| } | ||
| function SheetHandle({ asChild, className, style, children }) { | ||
@@ -1608,3 +1622,3 @@ const { close, back, isNested } = useSheetPanel(); | ||
| "aria-label": "Dismiss", | ||
| className: `flex shrink-0 cursor-grab touch-none items-center justify-center pt-4 pb-1 ${className ?? ""}`, | ||
| className: joinClasses(asChild ? void 0 : "flex shrink-0 cursor-grab touch-none items-center justify-center pt-4 pb-1", className), | ||
| "data-stacksheet-handle": "", | ||
@@ -1629,3 +1643,3 @@ onClick: dismiss, | ||
| return /* @__PURE__ */ jsx(asChild ? Slot : "header", { | ||
| className: `flex h-14 shrink-0 items-center justify-between border-b px-6 ${className ?? ""}`, | ||
| className: joinClasses(asChild ? "shrink-0" : "flex h-14 shrink-0 items-center justify-between border-b px-6", className), | ||
| style, | ||
@@ -1638,3 +1652,3 @@ children | ||
| return /* @__PURE__ */ jsx(asChild ? Slot : "h2", { | ||
| className: `font-semibold text-sm ${className ?? ""}`, | ||
| className: joinClasses(asChild ? void 0 : "font-semibold text-sm", className), | ||
| id: `${panelId}-title`, | ||
@@ -1657,3 +1671,3 @@ style, | ||
| if (asChild) return /* @__PURE__ */ jsx(Slot, { | ||
| className: `relative min-h-0 flex-1 ${className ?? ""}`, | ||
| className: joinClasses("relative min-h-0 flex-1", className), | ||
| "data-stacksheet-no-drag": "", | ||
@@ -1664,3 +1678,3 @@ style, | ||
| return /* @__PURE__ */ jsxs(Root, { | ||
| className: `relative flex min-h-0 flex-1 flex-col overflow-hidden ${className ?? ""}`, | ||
| className: joinClasses("relative flex min-h-0 flex-1 flex-col overflow-hidden", className), | ||
| "data-stacksheet-no-drag": "", | ||
@@ -1680,3 +1694,3 @@ style, | ||
| return /* @__PURE__ */ jsx(asChild ? Slot : "footer", { | ||
| className: `flex shrink-0 items-center gap-2 border-t px-6 py-3 ${className ?? ""}`, | ||
| className: joinClasses(asChild ? "shrink-0" : "flex shrink-0 items-center gap-2 border-t px-6 py-3", className), | ||
| style, | ||
@@ -1690,3 +1704,3 @@ children | ||
| "aria-label": children ? void 0 : "Close", | ||
| className: `flex h-8 w-8 shrink-0 cursor-pointer items-center justify-center rounded-md border-none bg-transparent p-0 text-inherit opacity-60 transition-opacity duration-150 hover:opacity-100 ${className ?? ""}`, | ||
| className: joinClasses(asChild ? void 0 : "flex h-8 w-8 shrink-0 cursor-pointer items-center justify-center rounded-md border-none bg-transparent p-0 text-inherit opacity-60 transition-opacity duration-150 hover:opacity-100", className), | ||
| onClick: close, | ||
@@ -1703,3 +1717,3 @@ style, | ||
| "aria-label": children ? void 0 : "Back", | ||
| className: `flex h-8 w-8 shrink-0 cursor-pointer items-center justify-center rounded-md border-none bg-transparent p-0 text-inherit opacity-60 transition-opacity duration-150 hover:opacity-100 ${className ?? ""}`, | ||
| className: joinClasses(asChild ? void 0 : "flex h-8 w-8 shrink-0 cursor-pointer items-center justify-center rounded-md border-none bg-transparent p-0 text-inherit opacity-60 transition-opacity duration-150 hover:opacity-100", className), | ||
| onClick: back, | ||
@@ -1720,2 +1734,9 @@ style, | ||
| * `aria-labelledby` and `aria-describedby` via matching IDs. | ||
| * | ||
| * **`asChild` contract:** when `asChild` is set, the library passes through | ||
| * onClick handlers, aria attributes, IDs and data-attrs only — decorative | ||
| * defaults like `rounded-md`, `h-8 w-8`, `font-semibold`, opacity, etc. | ||
| * are dropped so the consumer's element fully controls its own visuals. | ||
| * Structural classes required for the panel layout to function (e.g. | ||
| * `shrink-0` on Header/Footer, `min-h-0 flex-1` on Body) are kept. | ||
| */ | ||
@@ -1722,0 +1743,0 @@ const Sheet = { |
+7
-0
@@ -72,2 +72,9 @@ import { type CSSProperties, type ReactNode } from "react"; | ||
| * `aria-labelledby` and `aria-describedby` via matching IDs. | ||
| * | ||
| * **`asChild` contract:** when `asChild` is set, the library passes through | ||
| * onClick handlers, aria attributes, IDs and data-attrs only — decorative | ||
| * defaults like `rounded-md`, `h-8 w-8`, `font-semibold`, opacity, etc. | ||
| * are dropped so the consumer's element fully controls its own visuals. | ||
| * Structural classes required for the panel layout to function (e.g. | ||
| * `shrink-0` on Header/Footer, `min-h-0 flex-1` on Body) are kept. | ||
| */ | ||
@@ -74,0 +81,0 @@ export declare const Sheet: { |
@@ -1,1 +0,1 @@ | ||
| {"version":3,"file":"parts.d.ts","sourceRoot":"","sources":["../src/parts.tsx"],"names":[],"mappings":"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"} | ||
| {"version":3,"file":"parts.d.ts","sourceRoot":"","sources":["../src/parts.tsx"],"names":[],"mappings":"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"} |
+1
-1
| { | ||
| "name": "@howells/stacksheet", | ||
| "version": "1.2.3", | ||
| "version": "1.3.0", | ||
| "private": false, | ||
@@ -5,0 +5,0 @@ "description": "Typed, animated sheet stack system. Zustand store + Motion animations with Apple-style depth stacking.", |
Sorry, the diff of this file is too big to display
Major refactor
Supply chain riskPackage has recently undergone a major refactor. It may be unstable or indicate significant internal changes. Use caution when updating to versions that include significant changes.
Found 1 instance in 1 package
New author
Supply chain riskA new npm collaborator published a version of the package for the first time. New collaborators are usually benign additions to a project, but do indicate a change to the security surface area of a package.
Found 1 instance in 1 package
239735
1.68%2335
1.21%0
-100%