@pallasoft/ps-internal-components 1.4.0 → 1.5.0

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.
Files changed (57) hide show
  1. package/dist/components/ps-alert-dialog-content.js +1 -1
  2. package/dist/components/ps-alert-dialog-overlay.js +1 -1
  3. package/dist/components/ps-app-header.js +1 -1
  4. package/dist/components/ps-collapsible-content.d.ts +3 -0
  5. package/dist/components/ps-collapsible-content.js +43 -0
  6. package/dist/components/ps-collapsible-trigger.d.ts +2 -0
  7. package/dist/components/ps-collapsible-trigger.js +39 -0
  8. package/dist/components/ps-collapsible.d.ts +2 -0
  9. package/dist/components/ps-collapsible.js +39 -0
  10. package/dist/components/ps-date-time-picker.d.ts +2 -0
  11. package/dist/components/ps-date-time-picker.js +14 -0
  12. package/dist/components/ps-dialog-content.js +1 -1
  13. package/dist/components/ps-dialog-overlay.js +1 -1
  14. package/dist/components/ps-dropdown-menu-content.js +1 -1
  15. package/dist/components/ps-dropdown-menu-sub-content.js +1 -1
  16. package/dist/components/ps-popover-content.js +1 -1
  17. package/dist/components/ps-select-content.js +1 -1
  18. package/dist/components/ps-sheet-overlay.js +1 -1
  19. package/dist/components/ps-tooltip-content.js +1 -1
  20. package/dist/constants/ps-date-time-picker-config.d.ts +7 -0
  21. package/dist/constants/ps-date-time-picker-config.js +10 -0
  22. package/dist/constants/ps-sheet-variants.js +1 -1
  23. package/dist/esm/components/ps-alert-dialog-content.js +1 -1
  24. package/dist/esm/components/ps-alert-dialog-overlay.js +1 -1
  25. package/dist/esm/components/ps-app-header.js +1 -1
  26. package/dist/esm/components/ps-collapsible-content.js +7 -0
  27. package/dist/esm/components/ps-collapsible-trigger.js +3 -0
  28. package/dist/esm/components/ps-collapsible.js +3 -0
  29. package/dist/esm/components/ps-date-time-picker.js +10 -0
  30. package/dist/esm/components/ps-dialog-content.js +1 -1
  31. package/dist/esm/components/ps-dialog-overlay.js +1 -1
  32. package/dist/esm/components/ps-dropdown-menu-content.js +1 -1
  33. package/dist/esm/components/ps-dropdown-menu-sub-content.js +1 -1
  34. package/dist/esm/components/ps-popover-content.js +1 -1
  35. package/dist/esm/components/ps-select-content.js +1 -1
  36. package/dist/esm/components/ps-sheet-overlay.js +1 -1
  37. package/dist/esm/components/ps-tooltip-content.js +1 -1
  38. package/dist/esm/constants/ps-date-time-picker-config.js +7 -0
  39. package/dist/esm/constants/ps-sheet-variants.js +1 -1
  40. package/dist/esm/index.js +9 -0
  41. package/dist/esm/models/ps-collapsible-content-props.js +1 -0
  42. package/dist/esm/models/ps-date-time-parts-data.js +1 -0
  43. package/dist/esm/models/ps-date-time-picker-props.js +1 -0
  44. package/dist/esm/pallasoft-internal-tailwind-preset.js +3 -0
  45. package/dist/esm/services/ps-date-time-service.js +15 -0
  46. package/dist/index.d.ts +9 -0
  47. package/dist/index.js +9 -0
  48. package/dist/models/ps-collapsible-content-props.d.ts +4 -0
  49. package/dist/models/ps-collapsible-content-props.js +2 -0
  50. package/dist/models/ps-date-time-parts-data.d.ts +4 -0
  51. package/dist/models/ps-date-time-parts-data.js +2 -0
  52. package/dist/models/ps-date-time-picker-props.d.ts +11 -0
  53. package/dist/models/ps-date-time-picker-props.js +2 -0
  54. package/dist/pallasoft-internal-tailwind-preset.js +3 -0
  55. package/dist/services/ps-date-time-service.d.ts +5 -0
  56. package/dist/services/ps-date-time-service.js +19 -0
  57. package/package.json +6 -5
@@ -41,5 +41,5 @@ const AlertDialogPrimitive = __importStar(require("@radix-ui/react-alert-dialog"
41
41
  const ps_class_name_service_js_1 = require("../services/ps-class-name-service.js");
42
42
  const ps_alert_dialog_overlay_js_1 = require("./ps-alert-dialog-overlay.js");
43
43
  const ps_alert_dialog_portal_js_1 = require("./ps-alert-dialog-portal.js");
44
- exports.PsAlertDialogContent = React.forwardRef(({ className, ...props }, ref) => ((0, jsx_runtime_1.jsxs)(ps_alert_dialog_portal_js_1.PsAlertDialogPortal, { children: [(0, jsx_runtime_1.jsx)(ps_alert_dialog_overlay_js_1.PsAlertDialogOverlay, {}), (0, jsx_runtime_1.jsx)(AlertDialogPrimitive.Content, { ref: ref, className: ps_class_name_service_js_1.PsClassNameService.merge('fixed left-[50%] top-[50%] z-50 grid w-full max-w-lg translate-x-[-50%] translate-y-[-50%] gap-4 border bg-background p-6 shadow-lg duration-200 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 data-[state=closed]:slide-out-to-left-1/2 data-[state=closed]:slide-out-to-top-[48%] data-[state=open]:slide-in-from-left-1/2 data-[state=open]:slide-in-from-top-[48%] sm:rounded-lg', className), ...props })] })));
44
+ exports.PsAlertDialogContent = React.forwardRef(({ className, ...props }, ref) => ((0, jsx_runtime_1.jsxs)(ps_alert_dialog_portal_js_1.PsAlertDialogPortal, { children: [(0, jsx_runtime_1.jsx)(ps_alert_dialog_overlay_js_1.PsAlertDialogOverlay, {}), (0, jsx_runtime_1.jsx)(AlertDialogPrimitive.Content, { ref: ref, className: ps_class_name_service_js_1.PsClassNameService.merge('fixed left-[50%] top-[50%] z-modal grid w-full max-w-lg translate-x-[-50%] translate-y-[-50%] gap-4 border bg-background p-6 shadow-lg duration-200 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 data-[state=closed]:slide-out-to-left-1/2 data-[state=closed]:slide-out-to-top-[48%] data-[state=open]:slide-in-from-left-1/2 data-[state=open]:slide-in-from-top-[48%] sm:rounded-lg', className), ...props })] })));
45
45
  exports.PsAlertDialogContent.displayName = AlertDialogPrimitive.Content.displayName;
@@ -39,5 +39,5 @@ const jsx_runtime_1 = require("react/jsx-runtime");
39
39
  const React = __importStar(require("react"));
40
40
  const AlertDialogPrimitive = __importStar(require("@radix-ui/react-alert-dialog"));
41
41
  const ps_class_name_service_js_1 = require("../services/ps-class-name-service.js");
42
- exports.PsAlertDialogOverlay = React.forwardRef(({ className, ...props }, ref) => ((0, jsx_runtime_1.jsx)(AlertDialogPrimitive.Overlay, { className: ps_class_name_service_js_1.PsClassNameService.merge('fixed inset-0 z-50 bg-black/80 data-[state=open]:animate-in data-[state=closed]:animate-out data-[state=closed]:fade-out-0 data-[state=open]:fade-in-0', className), ...props, ref: ref })));
42
+ exports.PsAlertDialogOverlay = React.forwardRef(({ className, ...props }, ref) => ((0, jsx_runtime_1.jsx)(AlertDialogPrimitive.Overlay, { className: ps_class_name_service_js_1.PsClassNameService.merge('fixed inset-0 z-overlay bg-black/80 data-[state=open]:animate-in data-[state=closed]:animate-out data-[state=closed]:fade-out-0 data-[state=open]:fade-in-0', className), ...props, ref: ref })));
43
43
  exports.PsAlertDialogOverlay.displayName = AlertDialogPrimitive.Overlay.displayName;
@@ -52,7 +52,7 @@ const ps_dropdown_menu_js_1 = require("./ps-dropdown-menu.js");
52
52
  const ps_workspace_switcher_js_1 = require("./ps-workspace-switcher.js");
53
53
  const PsAppHeader = ({ appSwitcher, appTitle, logoAlt = 'Pallasoft logo', logoSrc, logoutHref, navItems = [], renderLink, user, workspaceSwitcher, }) => {
54
54
  const link = (href, className, children, active) => renderLink ? (renderLink({ href, className, children, active })) : ((0, jsx_runtime_1.jsx)("a", { href: href, className: className, "aria-current": active ? 'page' : undefined, children: children }));
55
- return ((0, jsx_runtime_1.jsx)("header", { className: 'sticky top-0 z-40 border-b bg-background/95 backdrop-blur supports-[backdrop-filter]:bg-background/80', children: (0, jsx_runtime_1.jsxs)("div", { className: 'mx-auto flex w-full max-w-screen-2xl flex-col gap-3 px-4 py-3 sm:px-6', children: [(0, jsx_runtime_1.jsxs)("div", { className: 'flex min-w-0 items-center justify-between gap-3', children: [(0, jsx_runtime_1.jsxs)("div", { className: 'flex min-w-0 flex-1 items-center gap-2.5', children: [(0, jsx_runtime_1.jsx)("div", { className: 'flex size-9 shrink-0 items-center justify-center rounded-lg border bg-muted', children: (0, jsx_runtime_1.jsx)("img", { alt: logoAlt, className: 'size-5 object-contain', src: logoSrc }) }), (0, jsx_runtime_1.jsx)("h1", { className: 'shrink-0 truncate text-sm font-semibold text-foreground', children: appTitle }), workspaceSwitcher ? ((0, jsx_runtime_1.jsxs)(jsx_runtime_1.Fragment, { children: [(0, jsx_runtime_1.jsx)("span", { "aria-hidden": 'true', className: 'text-muted-foreground/60', children: "/" }), (0, jsx_runtime_1.jsx)(ps_workspace_switcher_js_1.PsWorkspaceSwitcher, { switcher: workspaceSwitcher, renderLink: renderLink })] })) : null] }), (0, jsx_runtime_1.jsxs)("div", { className: 'flex shrink-0 items-center gap-1.5', children: [appSwitcher ? (0, jsx_runtime_1.jsx)(ps_app_switcher_js_1.PsAppSwitcher, { ...appSwitcher }) : null, user ? ((0, jsx_runtime_1.jsxs)(ps_dropdown_menu_js_1.PsDropdownMenu, { children: [(0, jsx_runtime_1.jsx)(ps_dropdown_menu_trigger_js_1.PsDropdownMenuTrigger, { asChild: true, children: (0, jsx_runtime_1.jsxs)(ps_button_js_1.PsButton, { variant: 'outline', className: 'h-9 max-w-[min(14rem,56vw)] gap-2 px-1.5 sm:pl-1.5 sm:pr-3', children: [(0, jsx_runtime_1.jsxs)(ps_avatar_js_1.PsAvatar, { className: 'size-6', children: [user.avatarUrl ? ((0, jsx_runtime_1.jsx)(ps_avatar_image_js_1.PsAvatarImage, { alt: user.displayName, src: user.avatarUrl })) : null, (0, jsx_runtime_1.jsx)(ps_avatar_fallback_js_1.PsAvatarFallback, { className: 'text-xs', children: user.displayName.slice(0, 1).toUpperCase() })] }), (0, jsx_runtime_1.jsx)("span", { className: 'hidden min-w-0 truncate sm:inline', children: user.displayName })] }) }), (0, jsx_runtime_1.jsxs)(ps_dropdown_menu_content_js_1.PsDropdownMenuContent, { align: 'end', className: 'w-56', children: [(0, jsx_runtime_1.jsxs)(ps_dropdown_menu_label_js_1.PsDropdownMenuLabel, { className: 'flex flex-col gap-0.5', children: [(0, jsx_runtime_1.jsx)("span", { children: "Account" }), (0, jsx_runtime_1.jsx)("span", { className: 'truncate text-xs font-normal text-muted-foreground', children: user.displayName })] }), (0, jsx_runtime_1.jsx)(ps_dropdown_menu_separator_js_1.PsDropdownMenuSeparator, {}), (0, jsx_runtime_1.jsx)("form", { action: logoutHref, method: 'post', children: (0, jsx_runtime_1.jsx)(ps_dropdown_menu_item_js_1.PsDropdownMenuItem, { asChild: true, children: (0, jsx_runtime_1.jsxs)("button", { className: 'flex w-full cursor-pointer items-center gap-2', type: 'submit', children: [(0, jsx_runtime_1.jsx)(lucide_react_1.LogOut, {}), "Sign out"] }) }) })] })] })) : null] })] }), navItems.length ? ((0, jsx_runtime_1.jsx)("nav", { "aria-label": 'Primary', className: '-mb-px flex max-w-full gap-1 overflow-x-auto', children: navItems.map((item) => ((0, jsx_runtime_1.jsx)(React.Fragment, { children: link(item.href, ps_class_name_service_js_1.PsClassNameService.merge('inline-flex h-9 shrink-0 items-center rounded-md px-3 text-sm font-medium transition-colors', item.active
55
+ return ((0, jsx_runtime_1.jsx)("header", { className: 'sticky top-0 z-header border-b bg-background/95 backdrop-blur supports-[backdrop-filter]:bg-background/80', children: (0, jsx_runtime_1.jsxs)("div", { className: 'mx-auto flex w-full max-w-screen-2xl flex-col gap-3 px-4 py-3 sm:px-6', children: [(0, jsx_runtime_1.jsxs)("div", { className: 'flex min-w-0 items-center justify-between gap-3', children: [(0, jsx_runtime_1.jsxs)("div", { className: 'flex min-w-0 flex-1 items-center gap-2.5', children: [(0, jsx_runtime_1.jsx)("div", { className: 'flex size-9 shrink-0 items-center justify-center rounded-lg border bg-muted', children: (0, jsx_runtime_1.jsx)("img", { alt: logoAlt, className: 'size-5 object-contain', src: logoSrc }) }), (0, jsx_runtime_1.jsx)("h1", { className: 'shrink-0 truncate text-sm font-semibold text-foreground', children: appTitle }), workspaceSwitcher ? ((0, jsx_runtime_1.jsxs)(jsx_runtime_1.Fragment, { children: [(0, jsx_runtime_1.jsx)("span", { "aria-hidden": 'true', className: 'text-muted-foreground/60', children: "/" }), (0, jsx_runtime_1.jsx)(ps_workspace_switcher_js_1.PsWorkspaceSwitcher, { switcher: workspaceSwitcher, renderLink: renderLink })] })) : null] }), (0, jsx_runtime_1.jsxs)("div", { className: 'flex shrink-0 items-center gap-1.5', children: [appSwitcher ? (0, jsx_runtime_1.jsx)(ps_app_switcher_js_1.PsAppSwitcher, { ...appSwitcher }) : null, user ? ((0, jsx_runtime_1.jsxs)(ps_dropdown_menu_js_1.PsDropdownMenu, { children: [(0, jsx_runtime_1.jsx)(ps_dropdown_menu_trigger_js_1.PsDropdownMenuTrigger, { asChild: true, children: (0, jsx_runtime_1.jsxs)(ps_button_js_1.PsButton, { variant: 'outline', className: 'h-9 max-w-[min(14rem,56vw)] gap-2 px-1.5 sm:pl-1.5 sm:pr-3', children: [(0, jsx_runtime_1.jsxs)(ps_avatar_js_1.PsAvatar, { className: 'size-6', children: [user.avatarUrl ? ((0, jsx_runtime_1.jsx)(ps_avatar_image_js_1.PsAvatarImage, { alt: user.displayName, src: user.avatarUrl })) : null, (0, jsx_runtime_1.jsx)(ps_avatar_fallback_js_1.PsAvatarFallback, { className: 'text-xs', children: user.displayName.slice(0, 1).toUpperCase() })] }), (0, jsx_runtime_1.jsx)("span", { className: 'hidden min-w-0 truncate sm:inline', children: user.displayName })] }) }), (0, jsx_runtime_1.jsxs)(ps_dropdown_menu_content_js_1.PsDropdownMenuContent, { align: 'end', className: 'w-56', children: [(0, jsx_runtime_1.jsxs)(ps_dropdown_menu_label_js_1.PsDropdownMenuLabel, { className: 'flex flex-col gap-0.5', children: [(0, jsx_runtime_1.jsx)("span", { children: "Account" }), (0, jsx_runtime_1.jsx)("span", { className: 'truncate text-xs font-normal text-muted-foreground', children: user.displayName })] }), (0, jsx_runtime_1.jsx)(ps_dropdown_menu_separator_js_1.PsDropdownMenuSeparator, {}), (0, jsx_runtime_1.jsx)("form", { action: logoutHref, method: 'post', children: (0, jsx_runtime_1.jsx)(ps_dropdown_menu_item_js_1.PsDropdownMenuItem, { asChild: true, children: (0, jsx_runtime_1.jsxs)("button", { className: 'flex w-full cursor-pointer items-center gap-2', type: 'submit', children: [(0, jsx_runtime_1.jsx)(lucide_react_1.LogOut, {}), "Sign out"] }) }) })] })] })) : null] })] }), navItems.length ? ((0, jsx_runtime_1.jsx)("nav", { "aria-label": 'Primary', className: '-mb-px flex max-w-full gap-1 overflow-x-auto', children: navItems.map((item) => ((0, jsx_runtime_1.jsx)(React.Fragment, { children: link(item.href, ps_class_name_service_js_1.PsClassNameService.merge('inline-flex h-9 shrink-0 items-center rounded-md px-3 text-sm font-medium transition-colors', item.active
56
56
  ? 'bg-secondary text-secondary-foreground'
57
57
  : 'text-muted-foreground hover:bg-accent hover:text-accent-foreground'), item.label, item.active) }, item.id))) })) : null] }) }));
58
58
  };
@@ -0,0 +1,3 @@
1
+ import * as React from 'react';
2
+ import type { PsCollapsibleContentProps } from '../models/ps-collapsible-content-props.js';
3
+ export declare const PsCollapsibleContent: React.ForwardRefExoticComponent<PsCollapsibleContentProps & React.RefAttributes<HTMLDivElement>>;
@@ -0,0 +1,43 @@
1
+ "use strict";
2
+ 'use client';
3
+ var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
4
+ if (k2 === undefined) k2 = k;
5
+ var desc = Object.getOwnPropertyDescriptor(m, k);
6
+ if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
7
+ desc = { enumerable: true, get: function() { return m[k]; } };
8
+ }
9
+ Object.defineProperty(o, k2, desc);
10
+ }) : (function(o, m, k, k2) {
11
+ if (k2 === undefined) k2 = k;
12
+ o[k2] = m[k];
13
+ }));
14
+ var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {
15
+ Object.defineProperty(o, "default", { enumerable: true, value: v });
16
+ }) : function(o, v) {
17
+ o["default"] = v;
18
+ });
19
+ var __importStar = (this && this.__importStar) || (function () {
20
+ var ownKeys = function(o) {
21
+ ownKeys = Object.getOwnPropertyNames || function (o) {
22
+ var ar = [];
23
+ for (var k in o) if (Object.prototype.hasOwnProperty.call(o, k)) ar[ar.length] = k;
24
+ return ar;
25
+ };
26
+ return ownKeys(o);
27
+ };
28
+ return function (mod) {
29
+ if (mod && mod.__esModule) return mod;
30
+ var result = {};
31
+ if (mod != null) for (var k = ownKeys(mod), i = 0; i < k.length; i++) if (k[i] !== "default") __createBinding(result, mod, k[i]);
32
+ __setModuleDefault(result, mod);
33
+ return result;
34
+ };
35
+ })();
36
+ Object.defineProperty(exports, "__esModule", { value: true });
37
+ exports.PsCollapsibleContent = void 0;
38
+ const jsx_runtime_1 = require("react/jsx-runtime");
39
+ const React = __importStar(require("react"));
40
+ const CollapsiblePrimitive = __importStar(require("@radix-ui/react-collapsible"));
41
+ const ps_class_name_service_js_1 = require("../services/ps-class-name-service.js");
42
+ exports.PsCollapsibleContent = React.forwardRef(({ className, ...props }, ref) => ((0, jsx_runtime_1.jsx)(CollapsiblePrimitive.Content, { ref: ref, className: ps_class_name_service_js_1.PsClassNameService.merge('overflow-hidden data-[state=closed]:animate-out data-[state=closed]:fade-out-0 data-[state=open]:animate-in data-[state=open]:fade-in-0', className), ...props })));
43
+ exports.PsCollapsibleContent.displayName = CollapsiblePrimitive.Content.displayName;
@@ -0,0 +1,2 @@
1
+ import * as CollapsiblePrimitive from '@radix-ui/react-collapsible';
2
+ export declare const PsCollapsibleTrigger: import("react").ForwardRefExoticComponent<CollapsiblePrimitive.CollapsibleTriggerProps & import("react").RefAttributes<HTMLButtonElement>>;
@@ -0,0 +1,39 @@
1
+ "use strict";
2
+ 'use client';
3
+ var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
4
+ if (k2 === undefined) k2 = k;
5
+ var desc = Object.getOwnPropertyDescriptor(m, k);
6
+ if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
7
+ desc = { enumerable: true, get: function() { return m[k]; } };
8
+ }
9
+ Object.defineProperty(o, k2, desc);
10
+ }) : (function(o, m, k, k2) {
11
+ if (k2 === undefined) k2 = k;
12
+ o[k2] = m[k];
13
+ }));
14
+ var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {
15
+ Object.defineProperty(o, "default", { enumerable: true, value: v });
16
+ }) : function(o, v) {
17
+ o["default"] = v;
18
+ });
19
+ var __importStar = (this && this.__importStar) || (function () {
20
+ var ownKeys = function(o) {
21
+ ownKeys = Object.getOwnPropertyNames || function (o) {
22
+ var ar = [];
23
+ for (var k in o) if (Object.prototype.hasOwnProperty.call(o, k)) ar[ar.length] = k;
24
+ return ar;
25
+ };
26
+ return ownKeys(o);
27
+ };
28
+ return function (mod) {
29
+ if (mod && mod.__esModule) return mod;
30
+ var result = {};
31
+ if (mod != null) for (var k = ownKeys(mod), i = 0; i < k.length; i++) if (k[i] !== "default") __createBinding(result, mod, k[i]);
32
+ __setModuleDefault(result, mod);
33
+ return result;
34
+ };
35
+ })();
36
+ Object.defineProperty(exports, "__esModule", { value: true });
37
+ exports.PsCollapsibleTrigger = void 0;
38
+ const CollapsiblePrimitive = __importStar(require("@radix-ui/react-collapsible"));
39
+ exports.PsCollapsibleTrigger = CollapsiblePrimitive.Trigger;
@@ -0,0 +1,2 @@
1
+ import * as CollapsiblePrimitive from '@radix-ui/react-collapsible';
2
+ export declare const PsCollapsible: import("react").ForwardRefExoticComponent<CollapsiblePrimitive.CollapsibleProps & import("react").RefAttributes<HTMLDivElement>>;
@@ -0,0 +1,39 @@
1
+ "use strict";
2
+ 'use client';
3
+ var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
4
+ if (k2 === undefined) k2 = k;
5
+ var desc = Object.getOwnPropertyDescriptor(m, k);
6
+ if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
7
+ desc = { enumerable: true, get: function() { return m[k]; } };
8
+ }
9
+ Object.defineProperty(o, k2, desc);
10
+ }) : (function(o, m, k, k2) {
11
+ if (k2 === undefined) k2 = k;
12
+ o[k2] = m[k];
13
+ }));
14
+ var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {
15
+ Object.defineProperty(o, "default", { enumerable: true, value: v });
16
+ }) : function(o, v) {
17
+ o["default"] = v;
18
+ });
19
+ var __importStar = (this && this.__importStar) || (function () {
20
+ var ownKeys = function(o) {
21
+ ownKeys = Object.getOwnPropertyNames || function (o) {
22
+ var ar = [];
23
+ for (var k in o) if (Object.prototype.hasOwnProperty.call(o, k)) ar[ar.length] = k;
24
+ return ar;
25
+ };
26
+ return ownKeys(o);
27
+ };
28
+ return function (mod) {
29
+ if (mod && mod.__esModule) return mod;
30
+ var result = {};
31
+ if (mod != null) for (var k = ownKeys(mod), i = 0; i < k.length; i++) if (k[i] !== "default") __createBinding(result, mod, k[i]);
32
+ __setModuleDefault(result, mod);
33
+ return result;
34
+ };
35
+ })();
36
+ Object.defineProperty(exports, "__esModule", { value: true });
37
+ exports.PsCollapsible = void 0;
38
+ const CollapsiblePrimitive = __importStar(require("@radix-ui/react-collapsible"));
39
+ exports.PsCollapsible = CollapsiblePrimitive.Root;
@@ -0,0 +1,2 @@
1
+ import type { PsDateTimePickerProps } from '../models/ps-date-time-picker-props.js';
2
+ export declare const PsDateTimePicker: ({ id, value, onValueChange, placeholder, disabled, invalid, clearable, fromDate, className, }: PsDateTimePickerProps) => import("react").JSX.Element;
@@ -0,0 +1,14 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.PsDateTimePicker = void 0;
4
+ const jsx_runtime_1 = require("react/jsx-runtime");
5
+ const ps_date_time_picker_config_js_1 = require("../constants/ps-date-time-picker-config.js");
6
+ const ps_class_name_service_js_1 = require("../services/ps-class-name-service.js");
7
+ const ps_date_time_service_js_1 = require("../services/ps-date-time-service.js");
8
+ const ps_date_picker_js_1 = require("./ps-date-picker.js");
9
+ const ps_input_js_1 = require("./ps-input.js");
10
+ const PsDateTimePicker = ({ id, value, onValueChange, placeholder, disabled = false, invalid = false, clearable = false, fromDate, className, }) => {
11
+ const { date, time } = ps_date_time_service_js_1.PsDateTimeService.split(value);
12
+ return ((0, jsx_runtime_1.jsxs)("div", { className: ps_class_name_service_js_1.PsClassNameService.merge('flex w-full gap-2', className), children: [(0, jsx_runtime_1.jsx)(ps_date_picker_js_1.PsDatePicker, { className: 'min-w-0 flex-1', clearable: clearable, disabled: disabled, fromDate: fromDate, id: id, invalid: invalid, onValueChange: (next) => onValueChange(ps_date_time_service_js_1.PsDateTimeService.join(next, time)), placeholder: placeholder, value: date }), (0, jsx_runtime_1.jsx)(ps_input_js_1.PsInput, { "aria-invalid": invalid, "aria-label": ps_date_time_picker_config_js_1.PsDateTimePickerConfig.timeLabel, className: 'h-10 w-32 shrink-0', disabled: disabled || date === '', onChange: (event) => onValueChange(ps_date_time_service_js_1.PsDateTimeService.join(date, event.target.value)), type: 'time', value: time })] }));
13
+ };
14
+ exports.PsDateTimePicker = PsDateTimePicker;
@@ -42,5 +42,5 @@ const lucide_react_1 = require("lucide-react");
42
42
  const ps_class_name_service_js_1 = require("../services/ps-class-name-service.js");
43
43
  const ps_dialog_overlay_js_1 = require("./ps-dialog-overlay.js");
44
44
  const ps_dialog_portal_js_1 = require("./ps-dialog-portal.js");
45
- exports.PsDialogContent = React.forwardRef(({ className, children, ...props }, ref) => ((0, jsx_runtime_1.jsxs)(ps_dialog_portal_js_1.PsDialogPortal, { children: [(0, jsx_runtime_1.jsx)(ps_dialog_overlay_js_1.PsDialogOverlay, {}), (0, jsx_runtime_1.jsxs)(DialogPrimitive.Content, { ref: ref, className: ps_class_name_service_js_1.PsClassNameService.merge('fixed left-[50%] top-[50%] z-50 grid w-full max-w-lg translate-x-[-50%] translate-y-[-50%] gap-4 border bg-background p-6 shadow-lg duration-200 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 data-[state=closed]:slide-out-to-left-1/2 data-[state=closed]:slide-out-to-top-[48%] data-[state=open]:slide-in-from-left-1/2 data-[state=open]:slide-in-from-top-[48%] sm:rounded-lg', className), ...props, children: [children, (0, jsx_runtime_1.jsxs)(DialogPrimitive.Close, { className: 'absolute right-4 top-4 rounded-sm opacity-70 ring-offset-background transition-opacity hover:opacity-100 focus:outline-none focus:ring-2 focus:ring-ring focus:ring-offset-2 disabled:pointer-events-none data-[state=open]:bg-accent data-[state=open]:text-muted-foreground', children: [(0, jsx_runtime_1.jsx)(lucide_react_1.X, { className: 'h-4 w-4' }), (0, jsx_runtime_1.jsx)("span", { className: 'sr-only', children: "Close" })] })] })] })));
45
+ exports.PsDialogContent = React.forwardRef(({ className, children, ...props }, ref) => ((0, jsx_runtime_1.jsxs)(ps_dialog_portal_js_1.PsDialogPortal, { children: [(0, jsx_runtime_1.jsx)(ps_dialog_overlay_js_1.PsDialogOverlay, {}), (0, jsx_runtime_1.jsxs)(DialogPrimitive.Content, { ref: ref, className: ps_class_name_service_js_1.PsClassNameService.merge('fixed left-[50%] top-[50%] z-modal grid w-full max-w-lg translate-x-[-50%] translate-y-[-50%] gap-4 border bg-background p-6 shadow-lg duration-200 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 data-[state=closed]:slide-out-to-left-1/2 data-[state=closed]:slide-out-to-top-[48%] data-[state=open]:slide-in-from-left-1/2 data-[state=open]:slide-in-from-top-[48%] sm:rounded-lg', className), ...props, children: [children, (0, jsx_runtime_1.jsxs)(DialogPrimitive.Close, { className: 'absolute right-4 top-4 rounded-sm opacity-70 ring-offset-background transition-opacity hover:opacity-100 focus:outline-none focus:ring-2 focus:ring-ring focus:ring-offset-2 disabled:pointer-events-none data-[state=open]:bg-accent data-[state=open]:text-muted-foreground', children: [(0, jsx_runtime_1.jsx)(lucide_react_1.X, { className: 'h-4 w-4' }), (0, jsx_runtime_1.jsx)("span", { className: 'sr-only', children: "Close" })] })] })] })));
46
46
  exports.PsDialogContent.displayName = DialogPrimitive.Content.displayName;
@@ -39,5 +39,5 @@ const jsx_runtime_1 = require("react/jsx-runtime");
39
39
  const React = __importStar(require("react"));
40
40
  const DialogPrimitive = __importStar(require("@radix-ui/react-dialog"));
41
41
  const ps_class_name_service_js_1 = require("../services/ps-class-name-service.js");
42
- exports.PsDialogOverlay = React.forwardRef(({ className, ...props }, ref) => ((0, jsx_runtime_1.jsx)(DialogPrimitive.Overlay, { ref: ref, className: ps_class_name_service_js_1.PsClassNameService.merge('fixed inset-0 z-50 bg-black/80 data-[state=open]:animate-in data-[state=closed]:animate-out data-[state=closed]:fade-out-0 data-[state=open]:fade-in-0', className), ...props })));
42
+ exports.PsDialogOverlay = React.forwardRef(({ className, ...props }, ref) => ((0, jsx_runtime_1.jsx)(DialogPrimitive.Overlay, { ref: ref, className: ps_class_name_service_js_1.PsClassNameService.merge('fixed inset-0 z-overlay bg-black/80 data-[state=open]:animate-in data-[state=closed]:animate-out data-[state=closed]:fade-out-0 data-[state=open]:fade-in-0', className), ...props })));
43
43
  exports.PsDialogOverlay.displayName = DialogPrimitive.Overlay.displayName;
@@ -38,5 +38,5 @@ const jsx_runtime_1 = require("react/jsx-runtime");
38
38
  const React = __importStar(require("react"));
39
39
  const DropdownMenuPrimitive = __importStar(require("@radix-ui/react-dropdown-menu"));
40
40
  const ps_class_name_service_js_1 = require("../services/ps-class-name-service.js");
41
- exports.PsDropdownMenuContent = React.forwardRef(({ className, sideOffset = 4, ...props }, ref) => ((0, jsx_runtime_1.jsx)(DropdownMenuPrimitive.Portal, { children: (0, jsx_runtime_1.jsx)(DropdownMenuPrimitive.Content, { ref: ref, sideOffset: sideOffset, className: ps_class_name_service_js_1.PsClassNameService.merge('z-50 max-h-[var(--radix-dropdown-menu-content-available-height)] min-w-[8rem] overflow-y-auto overflow-x-hidden rounded-md 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 data-[side=bottom]:slide-in-from-top-2 data-[side=left]:slide-in-from-right-2 data-[side=right]:slide-in-from-left-2 data-[side=top]:slide-in-from-bottom-2 origin-[--radix-dropdown-menu-content-transform-origin]', className), ...props }) })));
41
+ exports.PsDropdownMenuContent = React.forwardRef(({ className, sideOffset = 4, ...props }, ref) => ((0, jsx_runtime_1.jsx)(DropdownMenuPrimitive.Portal, { children: (0, jsx_runtime_1.jsx)(DropdownMenuPrimitive.Content, { ref: ref, sideOffset: sideOffset, className: ps_class_name_service_js_1.PsClassNameService.merge('z-top-layer max-h-[var(--radix-dropdown-menu-content-available-height)] min-w-[8rem] overflow-y-auto overflow-x-hidden rounded-md 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 data-[side=bottom]:slide-in-from-top-2 data-[side=left]:slide-in-from-right-2 data-[side=right]:slide-in-from-left-2 data-[side=top]:slide-in-from-bottom-2 origin-[--radix-dropdown-menu-content-transform-origin]', className), ...props }) })));
42
42
  exports.PsDropdownMenuContent.displayName = DropdownMenuPrimitive.Content.displayName;
@@ -38,5 +38,5 @@ const jsx_runtime_1 = require("react/jsx-runtime");
38
38
  const React = __importStar(require("react"));
39
39
  const DropdownMenuPrimitive = __importStar(require("@radix-ui/react-dropdown-menu"));
40
40
  const ps_class_name_service_js_1 = require("../services/ps-class-name-service.js");
41
- exports.PsDropdownMenuSubContent = React.forwardRef(({ className, ...props }, ref) => ((0, jsx_runtime_1.jsx)(DropdownMenuPrimitive.SubContent, { ref: ref, className: ps_class_name_service_js_1.PsClassNameService.merge('z-50 min-w-[8rem] overflow-hidden rounded-md border bg-popover p-1 text-popover-foreground shadow-lg 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 data-[side=bottom]:slide-in-from-top-2 data-[side=left]:slide-in-from-right-2 data-[side=right]:slide-in-from-left-2 data-[side=top]:slide-in-from-bottom-2 origin-[--radix-dropdown-menu-content-transform-origin]', className), ...props })));
41
+ exports.PsDropdownMenuSubContent = React.forwardRef(({ className, ...props }, ref) => ((0, jsx_runtime_1.jsx)(DropdownMenuPrimitive.SubContent, { ref: ref, className: ps_class_name_service_js_1.PsClassNameService.merge('z-top-layer min-w-[8rem] overflow-hidden rounded-md border bg-popover p-1 text-popover-foreground shadow-lg 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 data-[side=bottom]:slide-in-from-top-2 data-[side=left]:slide-in-from-right-2 data-[side=right]:slide-in-from-left-2 data-[side=top]:slide-in-from-bottom-2 origin-[--radix-dropdown-menu-content-transform-origin]', className), ...props })));
42
42
  exports.PsDropdownMenuSubContent.displayName = DropdownMenuPrimitive.SubContent.displayName;
@@ -39,5 +39,5 @@ const jsx_runtime_1 = require("react/jsx-runtime");
39
39
  const React = __importStar(require("react"));
40
40
  const PopoverPrimitive = __importStar(require("@radix-ui/react-popover"));
41
41
  const ps_class_name_service_js_1 = require("../services/ps-class-name-service.js");
42
- exports.PsPopoverContent = React.forwardRef(({ className, align = 'center', sideOffset = 4, ...props }, ref) => ((0, jsx_runtime_1.jsx)(PopoverPrimitive.Portal, { children: (0, jsx_runtime_1.jsx)(PopoverPrimitive.Content, { ref: ref, align: align, sideOffset: sideOffset, className: ps_class_name_service_js_1.PsClassNameService.merge('z-50 w-72 rounded-md border bg-popover p-4 text-popover-foreground shadow-md outline-none 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 data-[side=bottom]:slide-in-from-top-2 data-[side=left]:slide-in-from-right-2 data-[side=right]:slide-in-from-left-2 data-[side=top]:slide-in-from-bottom-2 origin-[--radix-popover-content-transform-origin]', className), ...props }) })));
42
+ exports.PsPopoverContent = React.forwardRef(({ className, align = 'center', sideOffset = 4, ...props }, ref) => ((0, jsx_runtime_1.jsx)(PopoverPrimitive.Portal, { children: (0, jsx_runtime_1.jsx)(PopoverPrimitive.Content, { ref: ref, align: align, sideOffset: sideOffset, className: ps_class_name_service_js_1.PsClassNameService.merge('z-top-layer w-72 rounded-md border bg-popover p-4 text-popover-foreground shadow-md outline-none 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 data-[side=bottom]:slide-in-from-top-2 data-[side=left]:slide-in-from-right-2 data-[side=right]:slide-in-from-left-2 data-[side=top]:slide-in-from-bottom-2 origin-[--radix-popover-content-transform-origin]', className), ...props }) })));
43
43
  exports.PsPopoverContent.displayName = PopoverPrimitive.Content.displayName;
@@ -40,7 +40,7 @@ const SelectPrimitive = __importStar(require("@radix-ui/react-select"));
40
40
  const ps_class_name_service_js_1 = require("../services/ps-class-name-service.js");
41
41
  const ps_select_scroll_down_button_js_1 = require("./ps-select-scroll-down-button.js");
42
42
  const ps_select_scroll_up_button_js_1 = require("./ps-select-scroll-up-button.js");
43
- exports.PsSelectContent = React.forwardRef(({ className, children, position = 'popper', ...props }, ref) => ((0, jsx_runtime_1.jsx)(SelectPrimitive.Portal, { children: (0, jsx_runtime_1.jsxs)(SelectPrimitive.Content, { ref: ref, className: ps_class_name_service_js_1.PsClassNameService.merge('relative z-50 max-h-[--radix-select-content-available-height] min-w-[8rem] overflow-y-auto overflow-x-hidden rounded-md border bg-popover 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 data-[side=bottom]:slide-in-from-top-2 data-[side=left]:slide-in-from-right-2 data-[side=right]:slide-in-from-left-2 data-[side=top]:slide-in-from-bottom-2 origin-[--radix-select-content-transform-origin]', position === 'popper' &&
43
+ exports.PsSelectContent = React.forwardRef(({ className, children, position = 'popper', ...props }, ref) => ((0, jsx_runtime_1.jsx)(SelectPrimitive.Portal, { children: (0, jsx_runtime_1.jsxs)(SelectPrimitive.Content, { ref: ref, className: ps_class_name_service_js_1.PsClassNameService.merge('relative z-top-layer max-h-[--radix-select-content-available-height] min-w-[8rem] overflow-y-auto overflow-x-hidden rounded-md border bg-popover 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 data-[side=bottom]:slide-in-from-top-2 data-[side=left]:slide-in-from-right-2 data-[side=right]:slide-in-from-left-2 data-[side=top]:slide-in-from-bottom-2 origin-[--radix-select-content-transform-origin]', position === 'popper' &&
44
44
  'data-[side=bottom]:translate-y-1 data-[side=left]:-translate-x-1 data-[side=right]:translate-x-1 data-[side=top]:-translate-y-1', className), position: position, ...props, children: [(0, jsx_runtime_1.jsx)(ps_select_scroll_up_button_js_1.PsSelectScrollUpButton, {}), (0, jsx_runtime_1.jsx)(SelectPrimitive.Viewport, { className: ps_class_name_service_js_1.PsClassNameService.merge('p-1', position === 'popper' &&
45
45
  'h-[var(--radix-select-trigger-height)] w-full min-w-[var(--radix-select-trigger-width)]'), children: children }), (0, jsx_runtime_1.jsx)(ps_select_scroll_down_button_js_1.PsSelectScrollDownButton, {})] }) })));
46
46
  exports.PsSelectContent.displayName = SelectPrimitive.Content.displayName;
@@ -38,5 +38,5 @@ const jsx_runtime_1 = require("react/jsx-runtime");
38
38
  const React = __importStar(require("react"));
39
39
  const SheetPrimitive = __importStar(require("@radix-ui/react-dialog"));
40
40
  const ps_class_name_service_js_1 = require("../services/ps-class-name-service.js");
41
- exports.PsSheetOverlay = React.forwardRef(({ className, ...props }, ref) => ((0, jsx_runtime_1.jsx)(SheetPrimitive.Overlay, { className: ps_class_name_service_js_1.PsClassNameService.merge('fixed inset-0 z-50 bg-black/80 data-[state=open]:animate-in data-[state=closed]:animate-out data-[state=closed]:fade-out-0 data-[state=open]:fade-in-0', className), ...props, ref: ref })));
41
+ exports.PsSheetOverlay = React.forwardRef(({ className, ...props }, ref) => ((0, jsx_runtime_1.jsx)(SheetPrimitive.Overlay, { className: ps_class_name_service_js_1.PsClassNameService.merge('fixed inset-0 z-overlay bg-black/80 data-[state=open]:animate-in data-[state=closed]:animate-out data-[state=closed]:fade-out-0 data-[state=open]:fade-in-0', className), ...props, ref: ref })));
42
42
  exports.PsSheetOverlay.displayName = SheetPrimitive.Overlay.displayName;
@@ -38,5 +38,5 @@ const jsx_runtime_1 = require("react/jsx-runtime");
38
38
  const React = __importStar(require("react"));
39
39
  const TooltipPrimitive = __importStar(require("@radix-ui/react-tooltip"));
40
40
  const ps_class_name_service_js_1 = require("../services/ps-class-name-service.js");
41
- exports.PsTooltipContent = React.forwardRef(({ className, sideOffset = 4, ...props }, ref) => ((0, jsx_runtime_1.jsx)(TooltipPrimitive.Portal, { children: (0, jsx_runtime_1.jsx)(TooltipPrimitive.Content, { ref: ref, sideOffset: sideOffset, className: ps_class_name_service_js_1.PsClassNameService.merge('z-50 overflow-hidden rounded-md bg-primary px-3 py-1.5 text-xs text-primary-foreground animate-in fade-in-0 zoom-in-95 data-[state=closed]:animate-out data-[state=closed]:fade-out-0 data-[state=closed]:zoom-out-95 data-[side=bottom]:slide-in-from-top-2 data-[side=left]:slide-in-from-right-2 data-[side=right]:slide-in-from-left-2 data-[side=top]:slide-in-from-bottom-2 origin-[--radix-tooltip-content-transform-origin]', className), ...props }) })));
41
+ exports.PsTooltipContent = React.forwardRef(({ className, sideOffset = 4, ...props }, ref) => ((0, jsx_runtime_1.jsx)(TooltipPrimitive.Portal, { children: (0, jsx_runtime_1.jsx)(TooltipPrimitive.Content, { ref: ref, sideOffset: sideOffset, className: ps_class_name_service_js_1.PsClassNameService.merge('z-top-layer overflow-hidden rounded-md bg-primary px-3 py-1.5 text-xs text-primary-foreground animate-in fade-in-0 zoom-in-95 data-[state=closed]:animate-out data-[state=closed]:fade-out-0 data-[state=closed]:zoom-out-95 data-[side=bottom]:slide-in-from-top-2 data-[side=left]:slide-in-from-right-2 data-[side=right]:slide-in-from-left-2 data-[side=top]:slide-in-from-bottom-2 origin-[--radix-tooltip-content-transform-origin]', className), ...props }) })));
42
42
  exports.PsTooltipContent.displayName = TooltipPrimitive.Content.displayName;
@@ -0,0 +1,7 @@
1
+ export declare const PsDateTimePickerConfig: {
2
+ readonly dateLength: 10;
3
+ readonly defaultTime: "09:00";
4
+ readonly separator: "T";
5
+ readonly timeLabel: "Time";
6
+ readonly timeLength: 5;
7
+ };
@@ -0,0 +1,10 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.PsDateTimePickerConfig = void 0;
4
+ exports.PsDateTimePickerConfig = {
5
+ dateLength: 10,
6
+ defaultTime: '09:00',
7
+ separator: 'T',
8
+ timeLabel: 'Time',
9
+ timeLength: 5,
10
+ };
@@ -2,7 +2,7 @@
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
3
  exports.PsSheetVariants = void 0;
4
4
  const class_variance_authority_1 = require("class-variance-authority");
5
- exports.PsSheetVariants = (0, class_variance_authority_1.cva)('fixed z-50 gap-4 bg-background p-6 shadow-lg transition ease-in-out data-[state=closed]:duration-300 data-[state=open]:duration-500 data-[state=open]:animate-in data-[state=closed]:animate-out', {
5
+ exports.PsSheetVariants = (0, class_variance_authority_1.cva)('fixed z-modal gap-4 bg-background p-6 shadow-lg transition ease-in-out data-[state=closed]:duration-300 data-[state=open]:duration-500 data-[state=open]:animate-in data-[state=closed]:animate-out', {
6
6
  variants: {
7
7
  side: {
8
8
  top: 'inset-x-0 top-0 border-b data-[state=closed]:slide-out-to-top data-[state=open]:slide-in-from-top',
@@ -5,5 +5,5 @@ import * as AlertDialogPrimitive from '@radix-ui/react-alert-dialog';
5
5
  import { PsClassNameService } from '../services/ps-class-name-service.js';
6
6
  import { PsAlertDialogOverlay } from './ps-alert-dialog-overlay.js';
7
7
  import { PsAlertDialogPortal } from './ps-alert-dialog-portal.js';
8
- export const PsAlertDialogContent = React.forwardRef(({ className, ...props }, ref) => (_jsxs(PsAlertDialogPortal, { children: [_jsx(PsAlertDialogOverlay, {}), _jsx(AlertDialogPrimitive.Content, { ref: ref, className: PsClassNameService.merge('fixed left-[50%] top-[50%] z-50 grid w-full max-w-lg translate-x-[-50%] translate-y-[-50%] gap-4 border bg-background p-6 shadow-lg duration-200 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 data-[state=closed]:slide-out-to-left-1/2 data-[state=closed]:slide-out-to-top-[48%] data-[state=open]:slide-in-from-left-1/2 data-[state=open]:slide-in-from-top-[48%] sm:rounded-lg', className), ...props })] })));
8
+ export const PsAlertDialogContent = React.forwardRef(({ className, ...props }, ref) => (_jsxs(PsAlertDialogPortal, { children: [_jsx(PsAlertDialogOverlay, {}), _jsx(AlertDialogPrimitive.Content, { ref: ref, className: PsClassNameService.merge('fixed left-[50%] top-[50%] z-modal grid w-full max-w-lg translate-x-[-50%] translate-y-[-50%] gap-4 border bg-background p-6 shadow-lg duration-200 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 data-[state=closed]:slide-out-to-left-1/2 data-[state=closed]:slide-out-to-top-[48%] data-[state=open]:slide-in-from-left-1/2 data-[state=open]:slide-in-from-top-[48%] sm:rounded-lg', className), ...props })] })));
9
9
  PsAlertDialogContent.displayName = AlertDialogPrimitive.Content.displayName;
@@ -3,5 +3,5 @@ import { jsx as _jsx } from "react/jsx-runtime";
3
3
  import * as React from 'react';
4
4
  import * as AlertDialogPrimitive from '@radix-ui/react-alert-dialog';
5
5
  import { PsClassNameService } from '../services/ps-class-name-service.js';
6
- export const PsAlertDialogOverlay = React.forwardRef(({ className, ...props }, ref) => (_jsx(AlertDialogPrimitive.Overlay, { className: PsClassNameService.merge('fixed inset-0 z-50 bg-black/80 data-[state=open]:animate-in data-[state=closed]:animate-out data-[state=closed]:fade-out-0 data-[state=open]:fade-in-0', className), ...props, ref: ref })));
6
+ export const PsAlertDialogOverlay = React.forwardRef(({ className, ...props }, ref) => (_jsx(AlertDialogPrimitive.Overlay, { className: PsClassNameService.merge('fixed inset-0 z-overlay bg-black/80 data-[state=open]:animate-in data-[state=closed]:animate-out data-[state=closed]:fade-out-0 data-[state=open]:fade-in-0', className), ...props, ref: ref })));
7
7
  PsAlertDialogOverlay.displayName = AlertDialogPrimitive.Overlay.displayName;
@@ -16,7 +16,7 @@ import { PsDropdownMenu } from './ps-dropdown-menu.js';
16
16
  import { PsWorkspaceSwitcher } from './ps-workspace-switcher.js';
17
17
  export const PsAppHeader = ({ appSwitcher, appTitle, logoAlt = 'Pallasoft logo', logoSrc, logoutHref, navItems = [], renderLink, user, workspaceSwitcher, }) => {
18
18
  const link = (href, className, children, active) => renderLink ? (renderLink({ href, className, children, active })) : (_jsx("a", { href: href, className: className, "aria-current": active ? 'page' : undefined, children: children }));
19
- return (_jsx("header", { className: 'sticky top-0 z-40 border-b bg-background/95 backdrop-blur supports-[backdrop-filter]:bg-background/80', children: _jsxs("div", { className: 'mx-auto flex w-full max-w-screen-2xl flex-col gap-3 px-4 py-3 sm:px-6', children: [_jsxs("div", { className: 'flex min-w-0 items-center justify-between gap-3', children: [_jsxs("div", { className: 'flex min-w-0 flex-1 items-center gap-2.5', children: [_jsx("div", { className: 'flex size-9 shrink-0 items-center justify-center rounded-lg border bg-muted', children: _jsx("img", { alt: logoAlt, className: 'size-5 object-contain', src: logoSrc }) }), _jsx("h1", { className: 'shrink-0 truncate text-sm font-semibold text-foreground', children: appTitle }), workspaceSwitcher ? (_jsxs(_Fragment, { children: [_jsx("span", { "aria-hidden": 'true', className: 'text-muted-foreground/60', children: "/" }), _jsx(PsWorkspaceSwitcher, { switcher: workspaceSwitcher, renderLink: renderLink })] })) : null] }), _jsxs("div", { className: 'flex shrink-0 items-center gap-1.5', children: [appSwitcher ? _jsx(PsAppSwitcher, { ...appSwitcher }) : null, user ? (_jsxs(PsDropdownMenu, { children: [_jsx(PsDropdownMenuTrigger, { asChild: true, children: _jsxs(PsButton, { variant: 'outline', className: 'h-9 max-w-[min(14rem,56vw)] gap-2 px-1.5 sm:pl-1.5 sm:pr-3', children: [_jsxs(PsAvatar, { className: 'size-6', children: [user.avatarUrl ? (_jsx(PsAvatarImage, { alt: user.displayName, src: user.avatarUrl })) : null, _jsx(PsAvatarFallback, { className: 'text-xs', children: user.displayName.slice(0, 1).toUpperCase() })] }), _jsx("span", { className: 'hidden min-w-0 truncate sm:inline', children: user.displayName })] }) }), _jsxs(PsDropdownMenuContent, { align: 'end', className: 'w-56', children: [_jsxs(PsDropdownMenuLabel, { className: 'flex flex-col gap-0.5', children: [_jsx("span", { children: "Account" }), _jsx("span", { className: 'truncate text-xs font-normal text-muted-foreground', children: user.displayName })] }), _jsx(PsDropdownMenuSeparator, {}), _jsx("form", { action: logoutHref, method: 'post', children: _jsx(PsDropdownMenuItem, { asChild: true, children: _jsxs("button", { className: 'flex w-full cursor-pointer items-center gap-2', type: 'submit', children: [_jsx(LogOut, {}), "Sign out"] }) }) })] })] })) : null] })] }), navItems.length ? (_jsx("nav", { "aria-label": 'Primary', className: '-mb-px flex max-w-full gap-1 overflow-x-auto', children: navItems.map((item) => (_jsx(React.Fragment, { children: link(item.href, PsClassNameService.merge('inline-flex h-9 shrink-0 items-center rounded-md px-3 text-sm font-medium transition-colors', item.active
19
+ return (_jsx("header", { className: 'sticky top-0 z-header border-b bg-background/95 backdrop-blur supports-[backdrop-filter]:bg-background/80', children: _jsxs("div", { className: 'mx-auto flex w-full max-w-screen-2xl flex-col gap-3 px-4 py-3 sm:px-6', children: [_jsxs("div", { className: 'flex min-w-0 items-center justify-between gap-3', children: [_jsxs("div", { className: 'flex min-w-0 flex-1 items-center gap-2.5', children: [_jsx("div", { className: 'flex size-9 shrink-0 items-center justify-center rounded-lg border bg-muted', children: _jsx("img", { alt: logoAlt, className: 'size-5 object-contain', src: logoSrc }) }), _jsx("h1", { className: 'shrink-0 truncate text-sm font-semibold text-foreground', children: appTitle }), workspaceSwitcher ? (_jsxs(_Fragment, { children: [_jsx("span", { "aria-hidden": 'true', className: 'text-muted-foreground/60', children: "/" }), _jsx(PsWorkspaceSwitcher, { switcher: workspaceSwitcher, renderLink: renderLink })] })) : null] }), _jsxs("div", { className: 'flex shrink-0 items-center gap-1.5', children: [appSwitcher ? _jsx(PsAppSwitcher, { ...appSwitcher }) : null, user ? (_jsxs(PsDropdownMenu, { children: [_jsx(PsDropdownMenuTrigger, { asChild: true, children: _jsxs(PsButton, { variant: 'outline', className: 'h-9 max-w-[min(14rem,56vw)] gap-2 px-1.5 sm:pl-1.5 sm:pr-3', children: [_jsxs(PsAvatar, { className: 'size-6', children: [user.avatarUrl ? (_jsx(PsAvatarImage, { alt: user.displayName, src: user.avatarUrl })) : null, _jsx(PsAvatarFallback, { className: 'text-xs', children: user.displayName.slice(0, 1).toUpperCase() })] }), _jsx("span", { className: 'hidden min-w-0 truncate sm:inline', children: user.displayName })] }) }), _jsxs(PsDropdownMenuContent, { align: 'end', className: 'w-56', children: [_jsxs(PsDropdownMenuLabel, { className: 'flex flex-col gap-0.5', children: [_jsx("span", { children: "Account" }), _jsx("span", { className: 'truncate text-xs font-normal text-muted-foreground', children: user.displayName })] }), _jsx(PsDropdownMenuSeparator, {}), _jsx("form", { action: logoutHref, method: 'post', children: _jsx(PsDropdownMenuItem, { asChild: true, children: _jsxs("button", { className: 'flex w-full cursor-pointer items-center gap-2', type: 'submit', children: [_jsx(LogOut, {}), "Sign out"] }) }) })] })] })) : null] })] }), navItems.length ? (_jsx("nav", { "aria-label": 'Primary', className: '-mb-px flex max-w-full gap-1 overflow-x-auto', children: navItems.map((item) => (_jsx(React.Fragment, { children: link(item.href, PsClassNameService.merge('inline-flex h-9 shrink-0 items-center rounded-md px-3 text-sm font-medium transition-colors', item.active
20
20
  ? 'bg-secondary text-secondary-foreground'
21
21
  : 'text-muted-foreground hover:bg-accent hover:text-accent-foreground'), item.label, item.active) }, item.id))) })) : null] }) }));
22
22
  };
@@ -0,0 +1,7 @@
1
+ 'use client';
2
+ import { jsx as _jsx } from "react/jsx-runtime";
3
+ import * as React from 'react';
4
+ import * as CollapsiblePrimitive from '@radix-ui/react-collapsible';
5
+ import { PsClassNameService } from '../services/ps-class-name-service.js';
6
+ export const PsCollapsibleContent = React.forwardRef(({ className, ...props }, ref) => (_jsx(CollapsiblePrimitive.Content, { ref: ref, className: PsClassNameService.merge('overflow-hidden data-[state=closed]:animate-out data-[state=closed]:fade-out-0 data-[state=open]:animate-in data-[state=open]:fade-in-0', className), ...props })));
7
+ PsCollapsibleContent.displayName = CollapsiblePrimitive.Content.displayName;
@@ -0,0 +1,3 @@
1
+ 'use client';
2
+ import * as CollapsiblePrimitive from '@radix-ui/react-collapsible';
3
+ export const PsCollapsibleTrigger = CollapsiblePrimitive.Trigger;
@@ -0,0 +1,3 @@
1
+ 'use client';
2
+ import * as CollapsiblePrimitive from '@radix-ui/react-collapsible';
3
+ export const PsCollapsible = CollapsiblePrimitive.Root;
@@ -0,0 +1,10 @@
1
+ import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
2
+ import { PsDateTimePickerConfig } from '../constants/ps-date-time-picker-config.js';
3
+ import { PsClassNameService } from '../services/ps-class-name-service.js';
4
+ import { PsDateTimeService } from '../services/ps-date-time-service.js';
5
+ import { PsDatePicker } from './ps-date-picker.js';
6
+ import { PsInput } from './ps-input.js';
7
+ export const PsDateTimePicker = ({ id, value, onValueChange, placeholder, disabled = false, invalid = false, clearable = false, fromDate, className, }) => {
8
+ const { date, time } = PsDateTimeService.split(value);
9
+ return (_jsxs("div", { className: PsClassNameService.merge('flex w-full gap-2', className), children: [_jsx(PsDatePicker, { className: 'min-w-0 flex-1', clearable: clearable, disabled: disabled, fromDate: fromDate, id: id, invalid: invalid, onValueChange: (next) => onValueChange(PsDateTimeService.join(next, time)), placeholder: placeholder, value: date }), _jsx(PsInput, { "aria-invalid": invalid, "aria-label": PsDateTimePickerConfig.timeLabel, className: 'h-10 w-32 shrink-0', disabled: disabled || date === '', onChange: (event) => onValueChange(PsDateTimeService.join(date, event.target.value)), type: 'time', value: time })] }));
10
+ };
@@ -6,5 +6,5 @@ import { X } from 'lucide-react';
6
6
  import { PsClassNameService } from '../services/ps-class-name-service.js';
7
7
  import { PsDialogOverlay } from './ps-dialog-overlay.js';
8
8
  import { PsDialogPortal } from './ps-dialog-portal.js';
9
- export const PsDialogContent = React.forwardRef(({ className, children, ...props }, ref) => (_jsxs(PsDialogPortal, { children: [_jsx(PsDialogOverlay, {}), _jsxs(DialogPrimitive.Content, { ref: ref, className: PsClassNameService.merge('fixed left-[50%] top-[50%] z-50 grid w-full max-w-lg translate-x-[-50%] translate-y-[-50%] gap-4 border bg-background p-6 shadow-lg duration-200 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 data-[state=closed]:slide-out-to-left-1/2 data-[state=closed]:slide-out-to-top-[48%] data-[state=open]:slide-in-from-left-1/2 data-[state=open]:slide-in-from-top-[48%] sm:rounded-lg', className), ...props, children: [children, _jsxs(DialogPrimitive.Close, { className: 'absolute right-4 top-4 rounded-sm opacity-70 ring-offset-background transition-opacity hover:opacity-100 focus:outline-none focus:ring-2 focus:ring-ring focus:ring-offset-2 disabled:pointer-events-none data-[state=open]:bg-accent data-[state=open]:text-muted-foreground', children: [_jsx(X, { className: 'h-4 w-4' }), _jsx("span", { className: 'sr-only', children: "Close" })] })] })] })));
9
+ export const PsDialogContent = React.forwardRef(({ className, children, ...props }, ref) => (_jsxs(PsDialogPortal, { children: [_jsx(PsDialogOverlay, {}), _jsxs(DialogPrimitive.Content, { ref: ref, className: PsClassNameService.merge('fixed left-[50%] top-[50%] z-modal grid w-full max-w-lg translate-x-[-50%] translate-y-[-50%] gap-4 border bg-background p-6 shadow-lg duration-200 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 data-[state=closed]:slide-out-to-left-1/2 data-[state=closed]:slide-out-to-top-[48%] data-[state=open]:slide-in-from-left-1/2 data-[state=open]:slide-in-from-top-[48%] sm:rounded-lg', className), ...props, children: [children, _jsxs(DialogPrimitive.Close, { className: 'absolute right-4 top-4 rounded-sm opacity-70 ring-offset-background transition-opacity hover:opacity-100 focus:outline-none focus:ring-2 focus:ring-ring focus:ring-offset-2 disabled:pointer-events-none data-[state=open]:bg-accent data-[state=open]:text-muted-foreground', children: [_jsx(X, { className: 'h-4 w-4' }), _jsx("span", { className: 'sr-only', children: "Close" })] })] })] })));
10
10
  PsDialogContent.displayName = DialogPrimitive.Content.displayName;
@@ -3,5 +3,5 @@ import { jsx as _jsx } from "react/jsx-runtime";
3
3
  import * as React from 'react';
4
4
  import * as DialogPrimitive from '@radix-ui/react-dialog';
5
5
  import { PsClassNameService } from '../services/ps-class-name-service.js';
6
- export const PsDialogOverlay = React.forwardRef(({ className, ...props }, ref) => (_jsx(DialogPrimitive.Overlay, { ref: ref, className: PsClassNameService.merge('fixed inset-0 z-50 bg-black/80 data-[state=open]:animate-in data-[state=closed]:animate-out data-[state=closed]:fade-out-0 data-[state=open]:fade-in-0', className), ...props })));
6
+ export const PsDialogOverlay = React.forwardRef(({ className, ...props }, ref) => (_jsx(DialogPrimitive.Overlay, { ref: ref, className: PsClassNameService.merge('fixed inset-0 z-overlay bg-black/80 data-[state=open]:animate-in data-[state=closed]:animate-out data-[state=closed]:fade-out-0 data-[state=open]:fade-in-0', className), ...props })));
7
7
  PsDialogOverlay.displayName = DialogPrimitive.Overlay.displayName;
@@ -2,5 +2,5 @@ import { jsx as _jsx } from "react/jsx-runtime";
2
2
  import * as React from 'react';
3
3
  import * as DropdownMenuPrimitive from '@radix-ui/react-dropdown-menu';
4
4
  import { PsClassNameService } from '../services/ps-class-name-service.js';
5
- export const PsDropdownMenuContent = React.forwardRef(({ className, sideOffset = 4, ...props }, ref) => (_jsx(DropdownMenuPrimitive.Portal, { children: _jsx(DropdownMenuPrimitive.Content, { ref: ref, sideOffset: sideOffset, className: PsClassNameService.merge('z-50 max-h-[var(--radix-dropdown-menu-content-available-height)] min-w-[8rem] overflow-y-auto overflow-x-hidden rounded-md 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 data-[side=bottom]:slide-in-from-top-2 data-[side=left]:slide-in-from-right-2 data-[side=right]:slide-in-from-left-2 data-[side=top]:slide-in-from-bottom-2 origin-[--radix-dropdown-menu-content-transform-origin]', className), ...props }) })));
5
+ export const PsDropdownMenuContent = React.forwardRef(({ className, sideOffset = 4, ...props }, ref) => (_jsx(DropdownMenuPrimitive.Portal, { children: _jsx(DropdownMenuPrimitive.Content, { ref: ref, sideOffset: sideOffset, className: PsClassNameService.merge('z-top-layer max-h-[var(--radix-dropdown-menu-content-available-height)] min-w-[8rem] overflow-y-auto overflow-x-hidden rounded-md 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 data-[side=bottom]:slide-in-from-top-2 data-[side=left]:slide-in-from-right-2 data-[side=right]:slide-in-from-left-2 data-[side=top]:slide-in-from-bottom-2 origin-[--radix-dropdown-menu-content-transform-origin]', className), ...props }) })));
6
6
  PsDropdownMenuContent.displayName = DropdownMenuPrimitive.Content.displayName;
@@ -2,5 +2,5 @@ import { jsx as _jsx } from "react/jsx-runtime";
2
2
  import * as React from 'react';
3
3
  import * as DropdownMenuPrimitive from '@radix-ui/react-dropdown-menu';
4
4
  import { PsClassNameService } from '../services/ps-class-name-service.js';
5
- export const PsDropdownMenuSubContent = React.forwardRef(({ className, ...props }, ref) => (_jsx(DropdownMenuPrimitive.SubContent, { ref: ref, className: PsClassNameService.merge('z-50 min-w-[8rem] overflow-hidden rounded-md border bg-popover p-1 text-popover-foreground shadow-lg 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 data-[side=bottom]:slide-in-from-top-2 data-[side=left]:slide-in-from-right-2 data-[side=right]:slide-in-from-left-2 data-[side=top]:slide-in-from-bottom-2 origin-[--radix-dropdown-menu-content-transform-origin]', className), ...props })));
5
+ export const PsDropdownMenuSubContent = React.forwardRef(({ className, ...props }, ref) => (_jsx(DropdownMenuPrimitive.SubContent, { ref: ref, className: PsClassNameService.merge('z-top-layer min-w-[8rem] overflow-hidden rounded-md border bg-popover p-1 text-popover-foreground shadow-lg 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 data-[side=bottom]:slide-in-from-top-2 data-[side=left]:slide-in-from-right-2 data-[side=right]:slide-in-from-left-2 data-[side=top]:slide-in-from-bottom-2 origin-[--radix-dropdown-menu-content-transform-origin]', className), ...props })));
6
6
  PsDropdownMenuSubContent.displayName = DropdownMenuPrimitive.SubContent.displayName;
@@ -3,5 +3,5 @@ import { jsx as _jsx } from "react/jsx-runtime";
3
3
  import * as React from 'react';
4
4
  import * as PopoverPrimitive from '@radix-ui/react-popover';
5
5
  import { PsClassNameService } from '../services/ps-class-name-service.js';
6
- export const PsPopoverContent = React.forwardRef(({ className, align = 'center', sideOffset = 4, ...props }, ref) => (_jsx(PopoverPrimitive.Portal, { children: _jsx(PopoverPrimitive.Content, { ref: ref, align: align, sideOffset: sideOffset, className: PsClassNameService.merge('z-50 w-72 rounded-md border bg-popover p-4 text-popover-foreground shadow-md outline-none 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 data-[side=bottom]:slide-in-from-top-2 data-[side=left]:slide-in-from-right-2 data-[side=right]:slide-in-from-left-2 data-[side=top]:slide-in-from-bottom-2 origin-[--radix-popover-content-transform-origin]', className), ...props }) })));
6
+ export const PsPopoverContent = React.forwardRef(({ className, align = 'center', sideOffset = 4, ...props }, ref) => (_jsx(PopoverPrimitive.Portal, { children: _jsx(PopoverPrimitive.Content, { ref: ref, align: align, sideOffset: sideOffset, className: PsClassNameService.merge('z-top-layer w-72 rounded-md border bg-popover p-4 text-popover-foreground shadow-md outline-none 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 data-[side=bottom]:slide-in-from-top-2 data-[side=left]:slide-in-from-right-2 data-[side=right]:slide-in-from-left-2 data-[side=top]:slide-in-from-bottom-2 origin-[--radix-popover-content-transform-origin]', className), ...props }) })));
7
7
  PsPopoverContent.displayName = PopoverPrimitive.Content.displayName;
@@ -4,7 +4,7 @@ import * as SelectPrimitive from '@radix-ui/react-select';
4
4
  import { PsClassNameService } from '../services/ps-class-name-service.js';
5
5
  import { PsSelectScrollDownButton } from './ps-select-scroll-down-button.js';
6
6
  import { PsSelectScrollUpButton } from './ps-select-scroll-up-button.js';
7
- export const PsSelectContent = React.forwardRef(({ className, children, position = 'popper', ...props }, ref) => (_jsx(SelectPrimitive.Portal, { children: _jsxs(SelectPrimitive.Content, { ref: ref, className: PsClassNameService.merge('relative z-50 max-h-[--radix-select-content-available-height] min-w-[8rem] overflow-y-auto overflow-x-hidden rounded-md border bg-popover 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 data-[side=bottom]:slide-in-from-top-2 data-[side=left]:slide-in-from-right-2 data-[side=right]:slide-in-from-left-2 data-[side=top]:slide-in-from-bottom-2 origin-[--radix-select-content-transform-origin]', position === 'popper' &&
7
+ export const PsSelectContent = React.forwardRef(({ className, children, position = 'popper', ...props }, ref) => (_jsx(SelectPrimitive.Portal, { children: _jsxs(SelectPrimitive.Content, { ref: ref, className: PsClassNameService.merge('relative z-top-layer max-h-[--radix-select-content-available-height] min-w-[8rem] overflow-y-auto overflow-x-hidden rounded-md border bg-popover 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 data-[side=bottom]:slide-in-from-top-2 data-[side=left]:slide-in-from-right-2 data-[side=right]:slide-in-from-left-2 data-[side=top]:slide-in-from-bottom-2 origin-[--radix-select-content-transform-origin]', position === 'popper' &&
8
8
  'data-[side=bottom]:translate-y-1 data-[side=left]:-translate-x-1 data-[side=right]:translate-x-1 data-[side=top]:-translate-y-1', className), position: position, ...props, children: [_jsx(PsSelectScrollUpButton, {}), _jsx(SelectPrimitive.Viewport, { className: PsClassNameService.merge('p-1', position === 'popper' &&
9
9
  'h-[var(--radix-select-trigger-height)] w-full min-w-[var(--radix-select-trigger-width)]'), children: children }), _jsx(PsSelectScrollDownButton, {})] }) })));
10
10
  PsSelectContent.displayName = SelectPrimitive.Content.displayName;
@@ -2,5 +2,5 @@ import { jsx as _jsx } from "react/jsx-runtime";
2
2
  import * as React from 'react';
3
3
  import * as SheetPrimitive from '@radix-ui/react-dialog';
4
4
  import { PsClassNameService } from '../services/ps-class-name-service.js';
5
- export const PsSheetOverlay = React.forwardRef(({ className, ...props }, ref) => (_jsx(SheetPrimitive.Overlay, { className: PsClassNameService.merge('fixed inset-0 z-50 bg-black/80 data-[state=open]:animate-in data-[state=closed]:animate-out data-[state=closed]:fade-out-0 data-[state=open]:fade-in-0', className), ...props, ref: ref })));
5
+ export const PsSheetOverlay = React.forwardRef(({ className, ...props }, ref) => (_jsx(SheetPrimitive.Overlay, { className: PsClassNameService.merge('fixed inset-0 z-overlay bg-black/80 data-[state=open]:animate-in data-[state=closed]:animate-out data-[state=closed]:fade-out-0 data-[state=open]:fade-in-0', className), ...props, ref: ref })));
6
6
  PsSheetOverlay.displayName = SheetPrimitive.Overlay.displayName;
@@ -2,5 +2,5 @@ import { jsx as _jsx } from "react/jsx-runtime";
2
2
  import * as React from 'react';
3
3
  import * as TooltipPrimitive from '@radix-ui/react-tooltip';
4
4
  import { PsClassNameService } from '../services/ps-class-name-service.js';
5
- export const PsTooltipContent = React.forwardRef(({ className, sideOffset = 4, ...props }, ref) => (_jsx(TooltipPrimitive.Portal, { children: _jsx(TooltipPrimitive.Content, { ref: ref, sideOffset: sideOffset, className: PsClassNameService.merge('z-50 overflow-hidden rounded-md bg-primary px-3 py-1.5 text-xs text-primary-foreground animate-in fade-in-0 zoom-in-95 data-[state=closed]:animate-out data-[state=closed]:fade-out-0 data-[state=closed]:zoom-out-95 data-[side=bottom]:slide-in-from-top-2 data-[side=left]:slide-in-from-right-2 data-[side=right]:slide-in-from-left-2 data-[side=top]:slide-in-from-bottom-2 origin-[--radix-tooltip-content-transform-origin]', className), ...props }) })));
5
+ export const PsTooltipContent = React.forwardRef(({ className, sideOffset = 4, ...props }, ref) => (_jsx(TooltipPrimitive.Portal, { children: _jsx(TooltipPrimitive.Content, { ref: ref, sideOffset: sideOffset, className: PsClassNameService.merge('z-top-layer overflow-hidden rounded-md bg-primary px-3 py-1.5 text-xs text-primary-foreground animate-in fade-in-0 zoom-in-95 data-[state=closed]:animate-out data-[state=closed]:fade-out-0 data-[state=closed]:zoom-out-95 data-[side=bottom]:slide-in-from-top-2 data-[side=left]:slide-in-from-right-2 data-[side=right]:slide-in-from-left-2 data-[side=top]:slide-in-from-bottom-2 origin-[--radix-tooltip-content-transform-origin]', className), ...props }) })));
6
6
  PsTooltipContent.displayName = TooltipPrimitive.Content.displayName;
@@ -0,0 +1,7 @@
1
+ export const PsDateTimePickerConfig = {
2
+ dateLength: 10,
3
+ defaultTime: '09:00',
4
+ separator: 'T',
5
+ timeLabel: 'Time',
6
+ timeLength: 5,
7
+ };
@@ -1,5 +1,5 @@
1
1
  import { cva } from 'class-variance-authority';
2
- export const PsSheetVariants = cva('fixed z-50 gap-4 bg-background p-6 shadow-lg transition ease-in-out data-[state=closed]:duration-300 data-[state=open]:duration-500 data-[state=open]:animate-in data-[state=closed]:animate-out', {
2
+ export const PsSheetVariants = cva('fixed z-modal gap-4 bg-background p-6 shadow-lg transition ease-in-out data-[state=closed]:duration-300 data-[state=open]:duration-500 data-[state=open]:animate-in data-[state=closed]:animate-out', {
3
3
  variants: {
4
4
  side: {
5
5
  top: 'inset-x-0 top-0 border-b data-[state=closed]:slide-out-to-top data-[state=open]:slide-in-from-top',
package/dist/esm/index.js CHANGED
@@ -43,6 +43,9 @@ export * from './components/ps-chart-style.js';
43
43
  export * from './components/ps-chart-tooltip-content.js';
44
44
  export * from './components/ps-chart-tooltip.js';
45
45
  export * from './components/ps-checkbox.js';
46
+ export * from './components/ps-collapsible-content.js';
47
+ export * from './components/ps-collapsible-trigger.js';
48
+ export * from './components/ps-collapsible.js';
46
49
  export * from './components/ps-combobox.js';
47
50
  export * from './components/ps-command-dialog.js';
48
51
  export * from './components/ps-command-empty.js';
@@ -54,6 +57,7 @@ export * from './components/ps-command-separator.js';
54
57
  export * from './components/ps-command-shortcut.js';
55
58
  export * from './components/ps-command.js';
56
59
  export * from './components/ps-date-picker.js';
60
+ export * from './components/ps-date-time-picker.js';
57
61
  export * from './components/ps-dialog-close.js';
58
62
  export * from './components/ps-dialog-content.js';
59
63
  export * from './components/ps-dialog-description.js';
@@ -182,6 +186,7 @@ export * from './constants/ps-button-variants.js';
182
186
  export * from './constants/ps-chart-defaults.js';
183
187
  export * from './constants/ps-chart-themes.js';
184
188
  export * from './constants/ps-date-picker-config.js';
189
+ export * from './constants/ps-date-time-picker-config.js';
185
190
  export * from './constants/ps-external-apps.js';
186
191
  export * from './constants/ps-field-input-config.js';
187
192
  export * from './constants/ps-field-orientation.js';
@@ -246,6 +251,7 @@ export * from './models/ps-chart-legend-content-props.js';
246
251
  export * from './models/ps-chart-style-props.js';
247
252
  export * from './models/ps-chart-tooltip-content-props.js';
248
253
  export * from './models/ps-checkbox-props.js';
254
+ export * from './models/ps-collapsible-content-props.js';
249
255
  export * from './models/ps-combobox-props.js';
250
256
  export * from './models/ps-command-dialog-props.js';
251
257
  export * from './models/ps-command-empty-props.js';
@@ -257,6 +263,8 @@ export * from './models/ps-command-props.js';
257
263
  export * from './models/ps-command-separator-props.js';
258
264
  export * from './models/ps-command-shortcut-props.js';
259
265
  export * from './models/ps-date-picker-props.js';
266
+ export * from './models/ps-date-time-parts-data.js';
267
+ export * from './models/ps-date-time-picker-props.js';
260
268
  export * from './models/ps-dialog-content-props.js';
261
269
  export * from './models/ps-dialog-description-props.js';
262
270
  export * from './models/ps-dialog-footer-props.js';
@@ -356,6 +364,7 @@ export * from './pallasoft-internal-tailwind-preset.js';
356
364
  export * from './services/ps-app-switcher-service.js';
357
365
  export * from './services/ps-chart-service.js';
358
366
  export * from './services/ps-class-name-service.js';
367
+ export * from './services/ps-date-time-service.js';
359
368
  export * from './services/ps-field-format-service.js';
360
369
  export * from './services/ps-file-size-service.js';
361
370
  export * from './components/ps-pagination.js';
@@ -0,0 +1 @@
1
+ export {};
@@ -0,0 +1 @@
1
+ export {};
@@ -0,0 +1 @@
1
+ export {};
@@ -1,3 +1,4 @@
1
+ import { PallasoftOpacityScale, PallasoftZIndexScale } from '@pallasoft/ps-design-system';
1
2
  import tailwindAnimate from 'tailwindcss-animate';
2
3
  import { PallasoftFontSize } from './constants/pallasoft-font-size.js';
3
4
  import { PallasoftMotion } from './constants/pallasoft-motion.js';
@@ -82,6 +83,8 @@ export const PallasoftInternalTailwindPreset = {
82
83
  sans: ['Geist Variable', 'ui-sans-serif', 'system-ui', 'sans-serif'],
83
84
  },
84
85
  ...PallasoftSharedScale,
86
+ opacity: PallasoftOpacityScale,
87
+ zIndex: PallasoftZIndexScale,
85
88
  fontSize: PallasoftFontSize,
86
89
  ...PallasoftMotion,
87
90
  },
@@ -0,0 +1,15 @@
1
+ import { PsDateTimePickerConfig } from '../constants/ps-date-time-picker-config.js';
2
+ export class PsDateTimeService {
3
+ static split(value) {
4
+ const [date, time] = value.split(PsDateTimePickerConfig.separator);
5
+ return {
6
+ date: date === undefined ? '' : date.slice(0, PsDateTimePickerConfig.dateLength),
7
+ time: time === undefined ? '' : time.slice(0, PsDateTimePickerConfig.timeLength),
8
+ };
9
+ }
10
+ static join(date, time) {
11
+ if (date === '')
12
+ return '';
13
+ return `${date}${PsDateTimePickerConfig.separator}${time === '' ? PsDateTimePickerConfig.defaultTime : time}`;
14
+ }
15
+ }
package/dist/index.d.ts CHANGED
@@ -43,6 +43,9 @@ export * from './components/ps-chart-style.js';
43
43
  export * from './components/ps-chart-tooltip-content.js';
44
44
  export * from './components/ps-chart-tooltip.js';
45
45
  export * from './components/ps-checkbox.js';
46
+ export * from './components/ps-collapsible-content.js';
47
+ export * from './components/ps-collapsible-trigger.js';
48
+ export * from './components/ps-collapsible.js';
46
49
  export * from './components/ps-combobox.js';
47
50
  export * from './components/ps-command-dialog.js';
48
51
  export * from './components/ps-command-empty.js';
@@ -54,6 +57,7 @@ export * from './components/ps-command-separator.js';
54
57
  export * from './components/ps-command-shortcut.js';
55
58
  export * from './components/ps-command.js';
56
59
  export * from './components/ps-date-picker.js';
60
+ export * from './components/ps-date-time-picker.js';
57
61
  export * from './components/ps-dialog-close.js';
58
62
  export * from './components/ps-dialog-content.js';
59
63
  export * from './components/ps-dialog-description.js';
@@ -182,6 +186,7 @@ export * from './constants/ps-button-variants.js';
182
186
  export * from './constants/ps-chart-defaults.js';
183
187
  export * from './constants/ps-chart-themes.js';
184
188
  export * from './constants/ps-date-picker-config.js';
189
+ export * from './constants/ps-date-time-picker-config.js';
185
190
  export * from './constants/ps-external-apps.js';
186
191
  export * from './constants/ps-field-input-config.js';
187
192
  export * from './constants/ps-field-orientation.js';
@@ -246,6 +251,7 @@ export * from './models/ps-chart-legend-content-props.js';
246
251
  export * from './models/ps-chart-style-props.js';
247
252
  export * from './models/ps-chart-tooltip-content-props.js';
248
253
  export * from './models/ps-checkbox-props.js';
254
+ export * from './models/ps-collapsible-content-props.js';
249
255
  export * from './models/ps-combobox-props.js';
250
256
  export * from './models/ps-command-dialog-props.js';
251
257
  export * from './models/ps-command-empty-props.js';
@@ -257,6 +263,8 @@ export * from './models/ps-command-props.js';
257
263
  export * from './models/ps-command-separator-props.js';
258
264
  export * from './models/ps-command-shortcut-props.js';
259
265
  export * from './models/ps-date-picker-props.js';
266
+ export * from './models/ps-date-time-parts-data.js';
267
+ export * from './models/ps-date-time-picker-props.js';
260
268
  export * from './models/ps-dialog-content-props.js';
261
269
  export * from './models/ps-dialog-description-props.js';
262
270
  export * from './models/ps-dialog-footer-props.js';
@@ -356,6 +364,7 @@ export * from './pallasoft-internal-tailwind-preset.js';
356
364
  export * from './services/ps-app-switcher-service.js';
357
365
  export * from './services/ps-chart-service.js';
358
366
  export * from './services/ps-class-name-service.js';
367
+ export * from './services/ps-date-time-service.js';
359
368
  export * from './services/ps-field-format-service.js';
360
369
  export * from './services/ps-file-size-service.js';
361
370
  export * from './components/ps-pagination.js';
package/dist/index.js CHANGED
@@ -59,6 +59,9 @@ __exportStar(require("./components/ps-chart-style.js"), exports);
59
59
  __exportStar(require("./components/ps-chart-tooltip-content.js"), exports);
60
60
  __exportStar(require("./components/ps-chart-tooltip.js"), exports);
61
61
  __exportStar(require("./components/ps-checkbox.js"), exports);
62
+ __exportStar(require("./components/ps-collapsible-content.js"), exports);
63
+ __exportStar(require("./components/ps-collapsible-trigger.js"), exports);
64
+ __exportStar(require("./components/ps-collapsible.js"), exports);
62
65
  __exportStar(require("./components/ps-combobox.js"), exports);
63
66
  __exportStar(require("./components/ps-command-dialog.js"), exports);
64
67
  __exportStar(require("./components/ps-command-empty.js"), exports);
@@ -70,6 +73,7 @@ __exportStar(require("./components/ps-command-separator.js"), exports);
70
73
  __exportStar(require("./components/ps-command-shortcut.js"), exports);
71
74
  __exportStar(require("./components/ps-command.js"), exports);
72
75
  __exportStar(require("./components/ps-date-picker.js"), exports);
76
+ __exportStar(require("./components/ps-date-time-picker.js"), exports);
73
77
  __exportStar(require("./components/ps-dialog-close.js"), exports);
74
78
  __exportStar(require("./components/ps-dialog-content.js"), exports);
75
79
  __exportStar(require("./components/ps-dialog-description.js"), exports);
@@ -198,6 +202,7 @@ __exportStar(require("./constants/ps-button-variants.js"), exports);
198
202
  __exportStar(require("./constants/ps-chart-defaults.js"), exports);
199
203
  __exportStar(require("./constants/ps-chart-themes.js"), exports);
200
204
  __exportStar(require("./constants/ps-date-picker-config.js"), exports);
205
+ __exportStar(require("./constants/ps-date-time-picker-config.js"), exports);
201
206
  __exportStar(require("./constants/ps-external-apps.js"), exports);
202
207
  __exportStar(require("./constants/ps-field-input-config.js"), exports);
203
208
  __exportStar(require("./constants/ps-field-orientation.js"), exports);
@@ -262,6 +267,7 @@ __exportStar(require("./models/ps-chart-legend-content-props.js"), exports);
262
267
  __exportStar(require("./models/ps-chart-style-props.js"), exports);
263
268
  __exportStar(require("./models/ps-chart-tooltip-content-props.js"), exports);
264
269
  __exportStar(require("./models/ps-checkbox-props.js"), exports);
270
+ __exportStar(require("./models/ps-collapsible-content-props.js"), exports);
265
271
  __exportStar(require("./models/ps-combobox-props.js"), exports);
266
272
  __exportStar(require("./models/ps-command-dialog-props.js"), exports);
267
273
  __exportStar(require("./models/ps-command-empty-props.js"), exports);
@@ -273,6 +279,8 @@ __exportStar(require("./models/ps-command-props.js"), exports);
273
279
  __exportStar(require("./models/ps-command-separator-props.js"), exports);
274
280
  __exportStar(require("./models/ps-command-shortcut-props.js"), exports);
275
281
  __exportStar(require("./models/ps-date-picker-props.js"), exports);
282
+ __exportStar(require("./models/ps-date-time-parts-data.js"), exports);
283
+ __exportStar(require("./models/ps-date-time-picker-props.js"), exports);
276
284
  __exportStar(require("./models/ps-dialog-content-props.js"), exports);
277
285
  __exportStar(require("./models/ps-dialog-description-props.js"), exports);
278
286
  __exportStar(require("./models/ps-dialog-footer-props.js"), exports);
@@ -372,6 +380,7 @@ __exportStar(require("./pallasoft-internal-tailwind-preset.js"), exports);
372
380
  __exportStar(require("./services/ps-app-switcher-service.js"), exports);
373
381
  __exportStar(require("./services/ps-chart-service.js"), exports);
374
382
  __exportStar(require("./services/ps-class-name-service.js"), exports);
383
+ __exportStar(require("./services/ps-date-time-service.js"), exports);
375
384
  __exportStar(require("./services/ps-field-format-service.js"), exports);
376
385
  __exportStar(require("./services/ps-file-size-service.js"), exports);
377
386
  __exportStar(require("./components/ps-pagination.js"), exports);
@@ -0,0 +1,4 @@
1
+ import type * as React from 'react';
2
+ import type * as CollapsiblePrimitive from '@radix-ui/react-collapsible';
3
+ export interface PsCollapsibleContentProps extends React.ComponentPropsWithoutRef<typeof CollapsiblePrimitive.Content> {
4
+ }
@@ -0,0 +1,2 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
@@ -0,0 +1,4 @@
1
+ export interface PsDateTimePartsData {
2
+ date: string;
3
+ time: string;
4
+ }
@@ -0,0 +1,2 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
@@ -0,0 +1,11 @@
1
+ export interface PsDateTimePickerProps {
2
+ id?: string;
3
+ value: string;
4
+ onValueChange: (value: string) => void;
5
+ placeholder?: string;
6
+ disabled?: boolean;
7
+ invalid?: boolean;
8
+ clearable?: boolean;
9
+ fromDate?: string;
10
+ className?: string;
11
+ }
@@ -0,0 +1,2 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
@@ -4,6 +4,7 @@ var __importDefault = (this && this.__importDefault) || function (mod) {
4
4
  };
5
5
  Object.defineProperty(exports, "__esModule", { value: true });
6
6
  exports.PallasoftInternalTailwindPreset = void 0;
7
+ const ps_design_system_1 = require("@pallasoft/ps-design-system");
7
8
  const tailwindcss_animate_1 = __importDefault(require("tailwindcss-animate"));
8
9
  const pallasoft_font_size_js_1 = require("./constants/pallasoft-font-size.js");
9
10
  const pallasoft_motion_js_1 = require("./constants/pallasoft-motion.js");
@@ -88,6 +89,8 @@ exports.PallasoftInternalTailwindPreset = {
88
89
  sans: ['Geist Variable', 'ui-sans-serif', 'system-ui', 'sans-serif'],
89
90
  },
90
91
  ...pallasoft_shared_scale_js_1.PallasoftSharedScale,
92
+ opacity: ps_design_system_1.PallasoftOpacityScale,
93
+ zIndex: ps_design_system_1.PallasoftZIndexScale,
91
94
  fontSize: pallasoft_font_size_js_1.PallasoftFontSize,
92
95
  ...pallasoft_motion_js_1.PallasoftMotion,
93
96
  },
@@ -0,0 +1,5 @@
1
+ import type { PsDateTimePartsData } from '../models/ps-date-time-parts-data.js';
2
+ export declare class PsDateTimeService {
3
+ static split(value: string): PsDateTimePartsData;
4
+ static join(date: string, time: string): string;
5
+ }
@@ -0,0 +1,19 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.PsDateTimeService = void 0;
4
+ const ps_date_time_picker_config_js_1 = require("../constants/ps-date-time-picker-config.js");
5
+ class PsDateTimeService {
6
+ static split(value) {
7
+ const [date, time] = value.split(ps_date_time_picker_config_js_1.PsDateTimePickerConfig.separator);
8
+ return {
9
+ date: date === undefined ? '' : date.slice(0, ps_date_time_picker_config_js_1.PsDateTimePickerConfig.dateLength),
10
+ time: time === undefined ? '' : time.slice(0, ps_date_time_picker_config_js_1.PsDateTimePickerConfig.timeLength),
11
+ };
12
+ }
13
+ static join(date, time) {
14
+ if (date === '')
15
+ return '';
16
+ return `${date}${ps_date_time_picker_config_js_1.PsDateTimePickerConfig.separator}${time === '' ? ps_date_time_picker_config_js_1.PsDateTimePickerConfig.defaultTime : time}`;
17
+ }
18
+ }
19
+ exports.PsDateTimeService = PsDateTimeService;
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@pallasoft/ps-internal-components",
3
- "version": "1.4.0",
3
+ "version": "1.5.0",
4
4
  "private": false,
5
5
  "description": "Shared Pallasoft internal UI: app header, app switcher and shadcn primitives for staff tools",
6
6
  "main": "./dist/index.js",
@@ -42,11 +42,11 @@
42
42
  "release": "semantic-release"
43
43
  },
44
44
  "dependencies": {
45
- "@pallasoft/ps-design-system": "^1.7.0",
46
- "@pallasoft/ps-utilities": "^2.10.1",
45
+ "@pallasoft/ps-utilities": "^2.13.0",
47
46
  "@radix-ui/react-alert-dialog": "^1.1.23",
48
47
  "@radix-ui/react-avatar": "^1.2.6",
49
48
  "@radix-ui/react-checkbox": "^1.3.11",
49
+ "@radix-ui/react-collapsible": "^1.1.20",
50
50
  "@radix-ui/react-dialog": "^1.1.23",
51
51
  "@radix-ui/react-dropdown-menu": "^2.1.24",
52
52
  "@radix-ui/react-label": "^2.1.15",
@@ -69,7 +69,8 @@
69
69
  "react-day-picker": "^9.14.0",
70
70
  "recharts": "^2.15.4",
71
71
  "tailwind-merge": "^2.6.1",
72
- "tailwindcss-animate": "^1.0.7"
72
+ "tailwindcss-animate": "^1.0.7",
73
+ "@pallasoft/ps-design-system": "^1.7.0"
73
74
  },
74
75
  "peerDependencies": {
75
76
  "@pallasoft/ps-design-system": "^1.7.0",
@@ -81,7 +82,7 @@
81
82
  "@commitlint/config-conventional": "^20.0.0",
82
83
  "@eslint/compat": "^2.0.0",
83
84
  "@ianvs/prettier-plugin-sort-imports": "^4.7.0",
84
- "@pallasoft/ps-design-system": "^1.7.0",
85
+ "@pallasoft/ps-design-system": "^1.10.0",
85
86
  "@semantic-release/changelog": "^6.0.3",
86
87
  "@semantic-release/commit-analyzer": "^13.0.0",
87
88
  "@semantic-release/git": "^10.0.1",