@appcorp/shadcn 1.0.32 → 1.0.37

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.
@@ -0,0 +1,11 @@
1
+ import React from "react";
2
+ interface AudioControlProps {
3
+ audioUrl: string | null;
4
+ id: string;
5
+ label?: string;
6
+ onDelete: () => void;
7
+ onGenerate: () => void;
8
+ required?: boolean;
9
+ }
10
+ export declare const AudioControl: React.FC<AudioControlProps>;
11
+ export {};
@@ -0,0 +1,21 @@
1
+ "use client";
2
+ "use strict";
3
+ var __importDefault = (this && this.__importDefault) || function (mod) {
4
+ return (mod && mod.__esModule) ? mod : { "default": mod };
5
+ };
6
+ Object.defineProperty(exports, "__esModule", { value: true });
7
+ exports.AudioControl = void 0;
8
+ var react_1 = __importDefault(require("react"));
9
+ var button_1 = require("./button");
10
+ var label_1 = require("./label");
11
+ var AudioControl = function (_a) {
12
+ var audioUrl = _a.audioUrl, id = _a.id, label = _a.label, onDelete = _a.onDelete, onGenerate = _a.onGenerate, _b = _a.required, required = _b === void 0 ? false : _b;
13
+ return (react_1.default.createElement("div", { className: "space-y-2" },
14
+ label && (react_1.default.createElement(label_1.Label, { htmlFor: id, required: required }, label)),
15
+ !audioUrl && (react_1.default.createElement("div", { className: "flex gap-2" },
16
+ react_1.default.createElement(button_1.Button, { type: "button", onClick: onGenerate, variant: "outline", className: "flex-1" }, "Generate Audio"),
17
+ react_1.default.createElement(button_1.Button, { type: "button", onClick: onDelete, variant: "destructive", className: "flex-1" }, "Delete Audio"))),
18
+ audioUrl && (react_1.default.createElement("div", { className: "mt-2 rounded-md border border-gray-200 bg-gray-50 p-3" },
19
+ react_1.default.createElement("audio", { controls: true, className: "w-full", src: audioUrl }, "Your browser does not support the audio element.")))));
20
+ };
21
+ exports.AudioControl = AudioControl;
@@ -4,6 +4,7 @@ interface SwitchProps extends React.ComponentProps<typeof SwitchPrimitive.Root>
4
4
  error?: string;
5
5
  info?: string;
6
6
  label?: string;
7
+ description?: string;
7
8
  }
8
9
  declare const Switch: React.ForwardRefExoticComponent<Omit<SwitchProps, "ref"> & React.RefAttributes<HTMLButtonElement>>;
9
10
  export { Switch };
@@ -62,7 +62,7 @@ var SwitchPrimitive = __importStar(require("@radix-ui/react-switch"));
62
62
  var utils_1 = require("../lib/utils");
63
63
  var label_1 = require("./label");
64
64
  var Switch = React.forwardRef(function (_a, ref) {
65
- var className = _a.className, error = _a.error, info = _a.info, label = _a.label, required = _a.required, id = _a.id, props = __rest(_a, ["className", "error", "info", "label", "required", "id"]);
65
+ var className = _a.className, error = _a.error, info = _a.info, label = _a.label, required = _a.required, id = _a.id, description = _a.description, props = __rest(_a, ["className", "error", "info", "label", "required", "id", "description"]);
66
66
  // Determine if there's an error (for aria-invalid and styling)
67
67
  var hasError = Boolean(error);
68
68
  var switchElement = (React.createElement(SwitchPrimitive.Root, __assign({ ref: ref, id: id, "data-slot": "switch", "aria-invalid": hasError, required: required, className: (0, utils_1.cn)("peer data-[state=checked]:bg-primary data-[state=unchecked]:bg-input focus-visible:border-ring focus-visible:ring-ring/50 dark:data-[state=unchecked]:bg-input/80 inline-flex h-[1.15rem] w-8 shrink-0 items-center rounded-full border border-transparent shadow-xs transition-all outline-none focus-visible:ring-[3px] disabled:cursor-not-allowed disabled:opacity-50",
@@ -76,7 +76,9 @@ var Switch = React.forwardRef(function (_a, ref) {
76
76
  if (label) {
77
77
  return (React.createElement("div", { className: "w-full space-y-2" },
78
78
  React.createElement("div", { className: "flex items-center justify-between space-x-2" },
79
- React.createElement(label_1.Label, { htmlFor: id, required: required }, label),
79
+ React.createElement("div", null,
80
+ React.createElement(label_1.Label, { htmlFor: id, required: required }, label),
81
+ description && (React.createElement("p", { className: "text-sm text-gray-400" }, description))),
80
82
  switchElement),
81
83
  (error || info) && (React.createElement("div", null, error ? (React.createElement("p", { className: "text-xs text-destructive" }, error)) : info ? (React.createElement("p", { className: "text-xs text-blue-600 dark:text-blue-400" }, info)) : null))));
82
84
  }
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@appcorp/shadcn",
3
- "version": "1.0.32",
3
+ "version": "1.0.37",
4
4
  "scripts": {
5
5
  "build:next": "next build",
6
6
  "build:storybook": "storybook build -c .storybook -o .out",
@@ -48,9 +48,9 @@
48
48
  "@radix-ui/react-separator": "^1.1.7",
49
49
  "@radix-ui/react-slot": "^1.2.3",
50
50
  "@radix-ui/react-switch": "^1.2.6",
51
- "@storybook/addon-docs": "^10.0.2",
52
- "@storybook/addon-onboarding": "^10.0.2",
53
- "@storybook/nextjs": "^10.0.2",
51
+ "@storybook/addon-docs": "^10.0.6",
52
+ "@storybook/addon-onboarding": "^10.0.6",
53
+ "@storybook/nextjs": "^10.0.6",
54
54
  "@tailwindcss/postcss": "^4.1.14",
55
55
  "@tanstack/react-table": "^8.21.3",
56
56
  "@testing-library/dom": "^10.4.1",
@@ -74,7 +74,7 @@
74
74
  "eslint": "^9.37.0",
75
75
  "eslint-config-next": "^15.5.5",
76
76
  "eslint-config-prettier": "^10.1.8",
77
- "eslint-plugin-storybook": "10.0.2",
77
+ "eslint-plugin-storybook": "10.0.6",
78
78
  "husky": "^9.1.7",
79
79
  "jest": "^30.2.0",
80
80
  "jest-environment-jsdom": "^30.2.0",
@@ -94,7 +94,7 @@
94
94
  "react-hook-form": "^7.65.0",
95
95
  "rimraf": "^6.0.1",
96
96
  "sonner": "^2.0.7",
97
- "storybook": "^10.0.2",
97
+ "storybook": "^10.0.6",
98
98
  "tailwind-merge": "^3.3.1",
99
99
  "tailwindcss": "3",
100
100
  "ts-node": "^10.9.2",
@@ -0,0 +1,4 @@
1
+ export declare const transformBreadcrumbs: (string: string) => {
2
+ label: string;
3
+ href: string;
4
+ }[];
@@ -0,0 +1,11 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.transformBreadcrumbs = void 0;
4
+ var transformBreadcrumbs = function (string) {
5
+ var items = string.split("/").filter(Boolean);
6
+ return items.map(function (item) { return ({
7
+ label: item.charAt(0).toUpperCase() + item.slice(1).replace(/-/g, " "),
8
+ href: "#",
9
+ }); });
10
+ };
11
+ exports.transformBreadcrumbs = transformBreadcrumbs;
@@ -0,0 +1,7 @@
1
+ import { DashboardNavItem } from "../data/admin-dashboard";
2
+ /**
3
+ * Updates navItems to set isActive based on current pathname
4
+ * Checks both main nav URLs and subItem URLs for matches
5
+ * Also marks individual subItems as active when their URL matches
6
+ */
7
+ export declare const transformNavItems: (navItems: DashboardNavItem[], pathname: string) => DashboardNavItem[];
@@ -0,0 +1,33 @@
1
+ "use strict";
2
+ var __assign = (this && this.__assign) || function () {
3
+ __assign = Object.assign || function(t) {
4
+ for (var s, i = 1, n = arguments.length; i < n; i++) {
5
+ s = arguments[i];
6
+ for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p))
7
+ t[p] = s[p];
8
+ }
9
+ return t;
10
+ };
11
+ return __assign.apply(this, arguments);
12
+ };
13
+ Object.defineProperty(exports, "__esModule", { value: true });
14
+ exports.transformNavItems = void 0;
15
+ /**
16
+ * Updates navItems to set isActive based on current pathname
17
+ * Checks both main nav URLs and subItem URLs for matches
18
+ * Also marks individual subItems as active when their URL matches
19
+ */
20
+ var transformNavItems = function (navItems, pathname) {
21
+ return navItems.map(function (navItem) {
22
+ // Check if main nav item URL matches
23
+ var isMainActive = navItem.url !== "#" && pathname === navItem.url;
24
+ // Transform subItems to mark active ones
25
+ var updatedSubItems = navItem.subItems.map(function (subItem) {
26
+ return __assign(__assign({}, subItem), { isActive: subItem.url !== "#" && pathname === subItem.url });
27
+ });
28
+ // Check if any subItem is active
29
+ var hasActiveSubItem = updatedSubItems.some(function (subItem) { return subItem.isActive; });
30
+ return __assign(__assign({}, navItem), { isActive: isMainActive || hasActiveSubItem, subItems: updatedSubItems });
31
+ });
32
+ };
33
+ exports.transformNavItems = transformNavItems;