@pallasoft/ps-internal-components 1.3.2 → 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 (99) 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-confirm-action.d.ts +2 -0
  11. package/dist/components/ps-confirm-action.js +16 -0
  12. package/dist/components/ps-date-time-picker.d.ts +2 -0
  13. package/dist/components/ps-date-time-picker.js +14 -0
  14. package/dist/components/ps-dialog-content.js +1 -1
  15. package/dist/components/ps-dialog-overlay.js +1 -1
  16. package/dist/components/ps-dropdown-menu-content.js +1 -1
  17. package/dist/components/ps-dropdown-menu-sub-content.js +1 -1
  18. package/dist/components/ps-notice.d.ts +2 -0
  19. package/dist/components/ps-notice.js +15 -0
  20. package/dist/components/ps-page-header.d.ts +2 -0
  21. package/dist/components/ps-page-header.js +13 -0
  22. package/dist/components/ps-page-skeleton.d.ts +2 -0
  23. package/dist/components/ps-page-skeleton.js +7 -0
  24. package/dist/components/ps-popover-content.js +1 -1
  25. package/dist/components/ps-section-heading.d.ts +2 -0
  26. package/dist/components/ps-section-heading.js +6 -0
  27. package/dist/components/ps-select-content.js +1 -1
  28. package/dist/components/ps-sheet-overlay.js +1 -1
  29. package/dist/components/ps-stat-card.d.ts +2 -0
  30. package/dist/components/ps-stat-card.js +10 -0
  31. package/dist/components/ps-tooltip-content.js +1 -1
  32. package/dist/constants/ps-date-time-picker-config.d.ts +7 -0
  33. package/dist/constants/ps-date-time-picker-config.js +10 -0
  34. package/dist/constants/ps-notice-variant.d.ts +4 -0
  35. package/dist/constants/ps-notice-variant.js +8 -0
  36. package/dist/constants/ps-sheet-variants.js +1 -1
  37. package/dist/esm/components/ps-alert-dialog-content.js +1 -1
  38. package/dist/esm/components/ps-alert-dialog-overlay.js +1 -1
  39. package/dist/esm/components/ps-app-header.js +1 -1
  40. package/dist/esm/components/ps-collapsible-content.js +7 -0
  41. package/dist/esm/components/ps-collapsible-trigger.js +3 -0
  42. package/dist/esm/components/ps-collapsible.js +3 -0
  43. package/dist/esm/components/ps-confirm-action.js +12 -0
  44. package/dist/esm/components/ps-date-time-picker.js +10 -0
  45. package/dist/esm/components/ps-dialog-content.js +1 -1
  46. package/dist/esm/components/ps-dialog-overlay.js +1 -1
  47. package/dist/esm/components/ps-dropdown-menu-content.js +1 -1
  48. package/dist/esm/components/ps-dropdown-menu-sub-content.js +1 -1
  49. package/dist/esm/components/ps-notice.js +11 -0
  50. package/dist/esm/components/ps-page-header.js +9 -0
  51. package/dist/esm/components/ps-page-skeleton.js +3 -0
  52. package/dist/esm/components/ps-popover-content.js +1 -1
  53. package/dist/esm/components/ps-section-heading.js +2 -0
  54. package/dist/esm/components/ps-select-content.js +1 -1
  55. package/dist/esm/components/ps-sheet-overlay.js +1 -1
  56. package/dist/esm/components/ps-stat-card.js +6 -0
  57. package/dist/esm/components/ps-tooltip-content.js +1 -1
  58. package/dist/esm/constants/ps-date-time-picker-config.js +7 -0
  59. package/dist/esm/constants/ps-notice-variant.js +5 -0
  60. package/dist/esm/constants/ps-sheet-variants.js +1 -1
  61. package/dist/esm/index.js +23 -0
  62. package/dist/esm/models/ps-collapsible-content-props.js +1 -0
  63. package/dist/esm/models/ps-confirm-action-props.js +1 -0
  64. package/dist/esm/models/ps-date-time-parts-data.js +1 -0
  65. package/dist/esm/models/ps-date-time-picker-props.js +1 -0
  66. package/dist/esm/models/ps-notice-props.js +1 -0
  67. package/dist/esm/models/ps-page-crumb-data.js +1 -0
  68. package/dist/esm/models/ps-page-header-props.js +1 -0
  69. package/dist/esm/models/ps-page-skeleton-props.js +1 -0
  70. package/dist/esm/models/ps-section-heading-props.js +1 -0
  71. package/dist/esm/models/ps-stat-card-props.js +1 -0
  72. package/dist/esm/pallasoft-internal-tailwind-preset.js +3 -0
  73. package/dist/esm/services/ps-date-time-service.js +15 -0
  74. package/dist/index.d.ts +23 -0
  75. package/dist/index.js +23 -0
  76. package/dist/models/ps-collapsible-content-props.d.ts +4 -0
  77. package/dist/models/ps-collapsible-content-props.js +2 -0
  78. package/dist/models/ps-confirm-action-props.d.ts +10 -0
  79. package/dist/models/ps-confirm-action-props.js +2 -0
  80. package/dist/models/ps-date-time-parts-data.d.ts +4 -0
  81. package/dist/models/ps-date-time-parts-data.js +2 -0
  82. package/dist/models/ps-date-time-picker-props.d.ts +11 -0
  83. package/dist/models/ps-date-time-picker-props.js +2 -0
  84. package/dist/models/ps-notice-props.d.ts +6 -0
  85. package/dist/models/ps-notice-props.js +2 -0
  86. package/dist/models/ps-page-crumb-data.d.ts +4 -0
  87. package/dist/models/ps-page-crumb-data.js +2 -0
  88. package/dist/models/ps-page-header-props.d.ts +10 -0
  89. package/dist/models/ps-page-header-props.js +2 -0
  90. package/dist/models/ps-page-skeleton-props.d.ts +5 -0
  91. package/dist/models/ps-page-skeleton-props.js +2 -0
  92. package/dist/models/ps-section-heading-props.d.ts +6 -0
  93. package/dist/models/ps-section-heading-props.js +2 -0
  94. package/dist/models/ps-stat-card-props.d.ts +4 -0
  95. package/dist/models/ps-stat-card-props.js +2 -0
  96. package/dist/pallasoft-internal-tailwind-preset.js +3 -0
  97. package/dist/services/ps-date-time-service.d.ts +5 -0
  98. package/dist/services/ps-date-time-service.js +19 -0
  99. package/package.json +6 -5
@@ -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;
@@ -0,0 +1,11 @@
1
+ import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
2
+ import { CircleAlert, TriangleAlert } from 'lucide-react';
3
+ import { PsNoticeVariant } from '../constants/ps-notice-variant.js';
4
+ import { PsAlertDescription } from './ps-alert-description.js';
5
+ import { PsAlertTitle } from './ps-alert-title.js';
6
+ import { PsAlert } from './ps-alert.js';
7
+ export const PsNotice = ({ message, title, variant }) => {
8
+ if (message === null)
9
+ return null;
10
+ return (_jsxs(PsAlert, { variant: variant === PsNoticeVariant.Error ? 'destructive' : 'warning', children: [variant === PsNoticeVariant.Error ? _jsx(CircleAlert, {}) : _jsx(TriangleAlert, {}), _jsx(PsAlertTitle, { children: title }), _jsx(PsAlertDescription, { children: message })] }));
11
+ };
@@ -0,0 +1,9 @@
1
+ import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
2
+ import { Fragment } from 'react';
3
+ import { PsBreadcrumbItem } from './ps-breadcrumb-item.js';
4
+ import { PsBreadcrumbLink } from './ps-breadcrumb-link.js';
5
+ import { PsBreadcrumbList } from './ps-breadcrumb-list.js';
6
+ import { PsBreadcrumbPage } from './ps-breadcrumb-page.js';
7
+ import { PsBreadcrumbSeparator } from './ps-breadcrumb-separator.js';
8
+ import { PsBreadcrumb } from './ps-breadcrumb.js';
9
+ export const PsPageHeader = ({ actions, crumbs = [], description, meta, renderLink, title, }) => (_jsxs("div", { className: 'flex flex-col gap-3', children: [crumbs.length > 0 ? (_jsx(PsBreadcrumb, { children: _jsxs(PsBreadcrumbList, { children: [crumbs.map((crumb) => (_jsxs(Fragment, { children: [_jsx(PsBreadcrumbItem, { children: _jsx(PsBreadcrumbLink, { asChild: true, children: renderLink ? (renderLink(crumb.href, crumb.label)) : (_jsx("a", { href: crumb.href, children: crumb.label })) }) }), _jsx(PsBreadcrumbSeparator, {})] }, crumb.href))), _jsx(PsBreadcrumbItem, { children: _jsx(PsBreadcrumbPage, { children: title }) })] }) })) : null, _jsxs("div", { className: 'flex flex-col gap-4 lg:flex-row lg:items-end lg:justify-between', children: [_jsxs("div", { className: 'flex min-w-0 flex-col gap-2', children: [_jsx("h1", { className: 'break-words text-2xl font-semibold tracking-tight text-foreground', children: title }), description ? (_jsx("p", { className: 'max-w-2xl text-sm text-muted-foreground', children: description })) : null, meta ? _jsx("div", { className: 'flex flex-wrap items-center gap-2', children: meta }) : null] }), actions ? _jsx("div", { className: 'flex shrink-0 flex-wrap items-center gap-2', children: actions }) : null] })] }));
@@ -0,0 +1,3 @@
1
+ import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
2
+ import { PsSkeletonPageHeader } from './ps-skeleton-page-header.js';
3
+ export const PsPageSkeleton = ({ children, withActions = false }) => (_jsxs("section", { className: 'flex flex-col gap-6', children: [_jsx(PsSkeletonPageHeader, { withActions: withActions }), children] }));
@@ -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;
@@ -0,0 +1,2 @@
1
+ import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
2
+ export const PsSectionHeading = ({ actions, description, title }) => (_jsxs("div", { className: 'flex flex-col gap-3 sm:flex-row sm:items-end sm:justify-between', children: [_jsxs("div", { className: 'flex min-w-0 flex-col gap-1', children: [_jsx("h2", { className: 'text-base font-semibold text-foreground', children: title }), description ? _jsx("p", { className: 'text-sm text-muted-foreground', children: description }) : null] }), actions ? _jsx("div", { className: 'flex shrink-0 flex-wrap items-center gap-2', children: actions }) : null] }));
@@ -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;
@@ -0,0 +1,6 @@
1
+ import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
2
+ import { PsCardDescription } from './ps-card-description.js';
3
+ import { PsCardHeader } from './ps-card-header.js';
4
+ import { PsCardTitle } from './ps-card-title.js';
5
+ import { PsCard } from './ps-card.js';
6
+ export const PsStatCard = ({ label, value }) => (_jsx(PsCard, { children: _jsxs(PsCardHeader, { className: 'gap-1 p-4', children: [_jsx(PsCardDescription, { children: label }), _jsx(PsCardTitle, { className: 'text-2xl tabular-nums', children: value })] }) }));
@@ -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
+ };
@@ -0,0 +1,5 @@
1
+ export var PsNoticeVariant;
2
+ (function (PsNoticeVariant) {
3
+ PsNoticeVariant["Error"] = "error";
4
+ PsNoticeVariant["Warning"] = "warning";
5
+ })(PsNoticeVariant || (PsNoticeVariant = {}));
@@ -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';
@@ -375,3 +384,17 @@ export * from './models/ps-pagination-link-props.js';
375
384
  export * from './models/ps-pagination-props.js';
376
385
  export * from './constants/ps-pagination-config.js';
377
386
  export * from './services/ps-pagination-service.js';
387
+ export * from './components/ps-confirm-action.js';
388
+ export * from './components/ps-notice.js';
389
+ export * from './components/ps-page-header.js';
390
+ export * from './components/ps-page-skeleton.js';
391
+ export * from './components/ps-section-heading.js';
392
+ export * from './components/ps-stat-card.js';
393
+ export * from './constants/ps-notice-variant.js';
394
+ export * from './models/ps-confirm-action-props.js';
395
+ export * from './models/ps-notice-props.js';
396
+ export * from './models/ps-page-crumb-data.js';
397
+ export * from './models/ps-page-header-props.js';
398
+ export * from './models/ps-page-skeleton-props.js';
399
+ export * from './models/ps-section-heading-props.js';
400
+ export * from './models/ps-stat-card-props.js';
@@ -0,0 +1 @@
1
+ export {};
@@ -0,0 +1 @@
1
+ export {};
@@ -0,0 +1 @@
1
+ export {};
@@ -0,0 +1 @@
1
+ export {};
@@ -0,0 +1 @@
1
+ export {};
@@ -0,0 +1 @@
1
+ export {};
@@ -0,0 +1 @@
1
+ export {};
@@ -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';
@@ -375,3 +384,17 @@ export * from './models/ps-pagination-link-props.js';
375
384
  export * from './models/ps-pagination-props.js';
376
385
  export * from './constants/ps-pagination-config.js';
377
386
  export * from './services/ps-pagination-service.js';
387
+ export * from './components/ps-confirm-action.js';
388
+ export * from './components/ps-notice.js';
389
+ export * from './components/ps-page-header.js';
390
+ export * from './components/ps-page-skeleton.js';
391
+ export * from './components/ps-section-heading.js';
392
+ export * from './components/ps-stat-card.js';
393
+ export * from './constants/ps-notice-variant.js';
394
+ export * from './models/ps-confirm-action-props.js';
395
+ export * from './models/ps-notice-props.js';
396
+ export * from './models/ps-page-crumb-data.js';
397
+ export * from './models/ps-page-header-props.js';
398
+ export * from './models/ps-page-skeleton-props.js';
399
+ export * from './models/ps-section-heading-props.js';
400
+ export * from './models/ps-stat-card-props.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);
@@ -391,3 +400,17 @@ __exportStar(require("./models/ps-pagination-link-props.js"), exports);
391
400
  __exportStar(require("./models/ps-pagination-props.js"), exports);
392
401
  __exportStar(require("./constants/ps-pagination-config.js"), exports);
393
402
  __exportStar(require("./services/ps-pagination-service.js"), exports);
403
+ __exportStar(require("./components/ps-confirm-action.js"), exports);
404
+ __exportStar(require("./components/ps-notice.js"), exports);
405
+ __exportStar(require("./components/ps-page-header.js"), exports);
406
+ __exportStar(require("./components/ps-page-skeleton.js"), exports);
407
+ __exportStar(require("./components/ps-section-heading.js"), exports);
408
+ __exportStar(require("./components/ps-stat-card.js"), exports);
409
+ __exportStar(require("./constants/ps-notice-variant.js"), exports);
410
+ __exportStar(require("./models/ps-confirm-action-props.js"), exports);
411
+ __exportStar(require("./models/ps-notice-props.js"), exports);
412
+ __exportStar(require("./models/ps-page-crumb-data.js"), exports);
413
+ __exportStar(require("./models/ps-page-header-props.js"), exports);
414
+ __exportStar(require("./models/ps-page-skeleton-props.js"), exports);
415
+ __exportStar(require("./models/ps-section-heading-props.js"), exports);
416
+ __exportStar(require("./models/ps-stat-card-props.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,10 @@
1
+ import type { ReactNode } from 'react';
2
+ export interface PsConfirmActionProps {
3
+ cancelLabel: string;
4
+ confirmLabel: string;
5
+ description: string;
6
+ destructive?: boolean;
7
+ onConfirm: () => void;
8
+ title: string;
9
+ trigger: ReactNode;
10
+ }
@@ -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 });
@@ -0,0 +1,6 @@
1
+ import type { PsNoticeVariant } from '../constants/ps-notice-variant.js';
2
+ export interface PsNoticeProps {
3
+ message: string | null;
4
+ title: string;
5
+ variant: PsNoticeVariant;
6
+ }
@@ -0,0 +1,2 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
@@ -0,0 +1,4 @@
1
+ export interface PsPageCrumbData {
2
+ href: string;
3
+ label: string;
4
+ }
@@ -0,0 +1,2 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
@@ -0,0 +1,10 @@
1
+ import type { ReactNode } from 'react';
2
+ import type { PsPageCrumbData } from './ps-page-crumb-data.js';
3
+ export interface PsPageHeaderProps {
4
+ actions?: ReactNode;
5
+ crumbs?: PsPageCrumbData[];
6
+ description?: string;
7
+ meta?: ReactNode;
8
+ renderLink?: (href: string, children: ReactNode) => ReactNode;
9
+ title: string;
10
+ }
@@ -0,0 +1,2 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
@@ -0,0 +1,5 @@
1
+ import type { ReactNode } from 'react';
2
+ export interface PsPageSkeletonProps {
3
+ children: ReactNode;
4
+ withActions?: boolean;
5
+ }
@@ -0,0 +1,2 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
@@ -0,0 +1,6 @@
1
+ import type { ReactNode } from 'react';
2
+ export interface PsSectionHeadingProps {
3
+ actions?: ReactNode;
4
+ description?: string;
5
+ title: string;
6
+ }
@@ -0,0 +1,2 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
@@ -0,0 +1,4 @@
1
+ export interface PsStatCardProps {
2
+ label: string;
3
+ value: string | number;
4
+ }
@@ -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.3.2",
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",