@pallasoft/ps-core-components 2.15.3 → 2.16.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 (130) hide show
  1. package/dist/components/ps-active-filter-chip.d.ts +7 -0
  2. package/dist/components/ps-active-filter-chip.js +8 -0
  3. package/dist/components/ps-back-link.d.ts +7 -0
  4. package/dist/components/ps-back-link.js +11 -0
  5. package/dist/components/ps-card-block-skeleton.d.ts +4 -0
  6. package/dist/components/ps-card-block-skeleton.js +8 -0
  7. package/dist/components/ps-data-boundary.d.ts +9 -0
  8. package/dist/components/ps-data-boundary.js +7 -0
  9. package/dist/components/ps-faq-answer.d.ts +5 -0
  10. package/dist/components/ps-faq-answer.js +7 -0
  11. package/dist/components/ps-feature-grid.d.ts +7 -0
  12. package/dist/components/ps-feature-grid.js +10 -0
  13. package/dist/components/ps-form-fields-skeleton.d.ts +5 -0
  14. package/dist/components/ps-form-fields-skeleton.js +10 -0
  15. package/dist/components/ps-form-page-skeleton.d.ts +5 -0
  16. package/dist/components/ps-form-page-skeleton.js +10 -0
  17. package/dist/components/ps-icon-button.d.ts +7 -0
  18. package/dist/components/ps-icon-button.js +9 -0
  19. package/dist/components/ps-icon-link.d.ts +10 -0
  20. package/dist/components/ps-icon-link.js +13 -0
  21. package/dist/components/ps-intro-skeleton.d.ts +1 -0
  22. package/dist/components/ps-intro-skeleton.js +7 -0
  23. package/dist/components/ps-link-tile-grid.d.ts +7 -0
  24. package/dist/components/ps-link-tile-grid.js +13 -0
  25. package/dist/components/ps-metric-grid-skeleton.d.ts +4 -0
  26. package/dist/components/ps-metric-grid-skeleton.js +7 -0
  27. package/dist/components/ps-metric-grid.d.ts +5 -0
  28. package/dist/components/ps-metric-grid.js +12 -0
  29. package/dist/components/ps-metric-row.d.ts +5 -0
  30. package/dist/components/ps-metric-row.js +9 -0
  31. package/dist/components/ps-page-header.d.ts +8 -0
  32. package/dist/components/ps-page-header.js +8 -0
  33. package/dist/components/ps-page-intro.d.ts +6 -0
  34. package/dist/components/ps-page-intro.js +7 -0
  35. package/dist/components/ps-page-layout.d.ts +7 -0
  36. package/dist/components/ps-page-layout.js +7 -0
  37. package/dist/components/ps-page-skeleton.d.ts +9 -0
  38. package/dist/components/ps-page-skeleton.js +12 -0
  39. package/dist/components/ps-page-stack.d.ts +6 -0
  40. package/dist/components/ps-page-stack.js +7 -0
  41. package/dist/components/ps-section-panel-skeleton.d.ts +6 -0
  42. package/dist/components/ps-section-panel-skeleton.js +7 -0
  43. package/dist/components/ps-section-panel.d.ts +8 -0
  44. package/dist/components/ps-section-panel.js +7 -0
  45. package/dist/components/ps-signed-amount.d.ts +6 -0
  46. package/dist/components/ps-signed-amount.js +12 -0
  47. package/dist/components/ps-tab-row-skeleton.d.ts +1 -0
  48. package/dist/components/ps-tab-row-skeleton.js +8 -0
  49. package/dist/components/ps-table-list-skeleton.d.ts +1 -0
  50. package/dist/components/ps-table-list-skeleton.js +8 -0
  51. package/dist/components/ps-table-page-skeleton.d.ts +6 -0
  52. package/dist/components/ps-table-page-skeleton.js +8 -0
  53. package/dist/components/ps-theme-controller.d.ts +1 -0
  54. package/dist/components/ps-theme-controller.js +13 -0
  55. package/dist/components/ps-theme-system-listener.d.ts +1 -0
  56. package/dist/components/ps-theme-system-listener.js +13 -0
  57. package/dist/components/ps-tool-card-grid.d.ts +7 -0
  58. package/dist/components/ps-tool-card-grid.js +14 -0
  59. package/dist/constants/ps-amount-direction-classes.d.ts +2 -0
  60. package/dist/constants/ps-amount-direction-classes.js +9 -0
  61. package/dist/constants/ps-faq-block-kind.d.ts +4 -0
  62. package/dist/constants/ps-faq-block-kind.js +8 -0
  63. package/dist/constants/ps-icon-action-config.d.ts +5 -0
  64. package/dist/constants/ps-icon-action-config.js +8 -0
  65. package/dist/constants/ps-metric-grid-config.d.ts +5 -0
  66. package/dist/constants/ps-metric-grid-config.js +14 -0
  67. package/dist/constants/ps-page-skeleton-config.d.ts +8 -0
  68. package/dist/constants/ps-page-skeleton-config.js +11 -0
  69. package/dist/constants/ps-website-section-config.d.ts +4 -0
  70. package/dist/constants/ps-website-section-config.js +7 -0
  71. package/dist/esm/components/ps-active-filter-chip.js +4 -0
  72. package/dist/esm/components/ps-back-link.js +7 -0
  73. package/dist/esm/components/ps-card-block-skeleton.js +4 -0
  74. package/dist/esm/components/ps-data-boundary.js +3 -0
  75. package/dist/esm/components/ps-faq-answer.js +3 -0
  76. package/dist/esm/components/ps-feature-grid.js +6 -0
  77. package/dist/esm/components/ps-form-fields-skeleton.js +6 -0
  78. package/dist/esm/components/ps-form-page-skeleton.js +6 -0
  79. package/dist/esm/components/ps-icon-button.js +5 -0
  80. package/dist/esm/components/ps-icon-link.js +9 -0
  81. package/dist/esm/components/ps-intro-skeleton.js +3 -0
  82. package/dist/esm/components/ps-link-tile-grid.js +9 -0
  83. package/dist/esm/components/ps-metric-grid-skeleton.js +3 -0
  84. package/dist/esm/components/ps-metric-grid.js +8 -0
  85. package/dist/esm/components/ps-metric-row.js +5 -0
  86. package/dist/esm/components/ps-page-header.js +4 -0
  87. package/dist/esm/components/ps-page-intro.js +3 -0
  88. package/dist/esm/components/ps-page-layout.js +3 -0
  89. package/dist/esm/components/ps-page-skeleton.js +8 -0
  90. package/dist/esm/components/ps-page-stack.js +3 -0
  91. package/dist/esm/components/ps-section-panel-skeleton.js +3 -0
  92. package/dist/esm/components/ps-section-panel.js +3 -0
  93. package/dist/esm/components/ps-signed-amount.js +8 -0
  94. package/dist/esm/components/ps-tab-row-skeleton.js +4 -0
  95. package/dist/esm/components/ps-table-list-skeleton.js +4 -0
  96. package/dist/esm/components/ps-table-page-skeleton.js +4 -0
  97. package/dist/esm/components/ps-theme-controller.js +9 -0
  98. package/dist/esm/components/ps-theme-system-listener.js +9 -0
  99. package/dist/esm/components/ps-tool-card-grid.js +10 -0
  100. package/dist/esm/constants/ps-amount-direction-classes.js +6 -0
  101. package/dist/esm/constants/ps-faq-block-kind.js +5 -0
  102. package/dist/esm/constants/ps-icon-action-config.js +5 -0
  103. package/dist/esm/constants/ps-metric-grid-config.js +11 -0
  104. package/dist/esm/constants/ps-page-skeleton-config.js +8 -0
  105. package/dist/esm/constants/ps-website-section-config.js +4 -0
  106. package/dist/esm/hooks/use-ps-theme-mode.js +17 -0
  107. package/dist/esm/index.js +42 -0
  108. package/dist/esm/models/ps-faq-block-data.js +1 -0
  109. package/dist/esm/models/ps-feature-card-data.js +1 -0
  110. package/dist/esm/models/ps-link-tile-data.js +1 -0
  111. package/dist/esm/models/ps-metric-item-data.js +1 -0
  112. package/dist/esm/models/ps-theme-mode-state.js +1 -0
  113. package/dist/esm/models/ps-tool-card-data.js +1 -0
  114. package/dist/hooks/use-ps-theme-mode.d.ts +2 -0
  115. package/dist/hooks/use-ps-theme-mode.js +21 -0
  116. package/dist/index.d.ts +42 -0
  117. package/dist/index.js +42 -0
  118. package/dist/models/ps-faq-block-data.d.ts +5 -0
  119. package/dist/models/ps-faq-block-data.js +2 -0
  120. package/dist/models/ps-feature-card-data.d.ts +6 -0
  121. package/dist/models/ps-feature-card-data.js +2 -0
  122. package/dist/models/ps-link-tile-data.d.ts +6 -0
  123. package/dist/models/ps-link-tile-data.js +2 -0
  124. package/dist/models/ps-metric-item-data.d.ts +5 -0
  125. package/dist/models/ps-metric-item-data.js +2 -0
  126. package/dist/models/ps-theme-mode-state.d.ts +7 -0
  127. package/dist/models/ps-theme-mode-state.js +2 -0
  128. package/dist/models/ps-tool-card-data.d.ts +8 -0
  129. package/dist/models/ps-tool-card-data.js +2 -0
  130. package/package.json +4 -4
@@ -0,0 +1,7 @@
1
+ export interface PsActiveFilterChipProps {
2
+ id?: string;
3
+ label: string;
4
+ onRemove: () => void;
5
+ removeLabel: string;
6
+ }
7
+ export declare const PsActiveFilterChip: ({ id, label, onRemove, removeLabel, }: PsActiveFilterChipProps) => import("react").JSX.Element;
@@ -0,0 +1,8 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.PsActiveFilterChip = void 0;
4
+ const jsx_runtime_1 = require("react/jsx-runtime");
5
+ const ps_icons_1 = require("@pallasoft/ps-icons");
6
+ const ps_pill_1 = require("./ps-pill");
7
+ const PsActiveFilterChip = ({ id, label, onRemove, removeLabel, }) => ((0, jsx_runtime_1.jsx)("button", { "aria-label": removeLabel, className: 'ps-focus-ring shrink-0 rounded-full', id: id, onClick: onRemove, type: 'button', children: (0, jsx_runtime_1.jsx)(ps_pill_1.PsPill, { className: 'pr-2', tone: 'primary', children: (0, jsx_runtime_1.jsxs)("span", { className: 'flex items-center gap-1.5', children: [label, (0, jsx_runtime_1.jsx)(ps_icons_1.PsIcon, { className: 'h-3 w-3', iconKey: ps_icons_1.PsIconKey.Close })] }) }) }));
8
+ exports.PsActiveFilterChip = PsActiveFilterChip;
@@ -0,0 +1,7 @@
1
+ import type { ElementType } from 'react';
2
+ export interface PsBackLinkProps {
3
+ href: string;
4
+ label: string;
5
+ LinkComponent?: ElementType;
6
+ }
7
+ export declare const PsBackLink: ({ href, label, LinkComponent }: PsBackLinkProps) => import("react").JSX.Element;
@@ -0,0 +1,11 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.PsBackLink = void 0;
4
+ const jsx_runtime_1 = require("react/jsx-runtime");
5
+ const ps_icons_1 = require("@pallasoft/ps-icons");
6
+ const backLinkClassName = 'ps-focus-ring inline-flex w-fit items-center gap-1.5 rounded-ps-control text-sm font-medium text-ink/60 transition hover:text-primary';
7
+ const PsBackLink = ({ href, label, LinkComponent }) => {
8
+ const content = ((0, jsx_runtime_1.jsxs)(jsx_runtime_1.Fragment, { children: [(0, jsx_runtime_1.jsx)(ps_icons_1.PsIcon, { iconKey: ps_icons_1.PsIconKey.ChevronRight, className: 'h-4 w-4 rotate-180' }), label] }));
9
+ return LinkComponent ? ((0, jsx_runtime_1.jsx)(LinkComponent, { className: backLinkClassName, prefetch: 'intent', to: href, children: content })) : ((0, jsx_runtime_1.jsx)("a", { className: backLinkClassName, href: href, children: content }));
10
+ };
11
+ exports.PsBackLink = PsBackLink;
@@ -0,0 +1,4 @@
1
+ export interface PsCardBlockSkeletonProps {
2
+ height: string;
3
+ }
4
+ export declare const PsCardBlockSkeleton: ({ height }: PsCardBlockSkeletonProps) => import("react").JSX.Element;
@@ -0,0 +1,8 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.PsCardBlockSkeleton = void 0;
4
+ const jsx_runtime_1 = require("react/jsx-runtime");
5
+ const ps_skeleton_shape_1 = require("../constants/ps-skeleton-shape");
6
+ const ps_skeleton_1 = require("./ps-skeleton");
7
+ const PsCardBlockSkeleton = ({ height }) => ((0, jsx_runtime_1.jsx)(ps_skeleton_1.PsSkeleton, { height: height, radius: '1.25rem', shape: ps_skeleton_shape_1.PsSkeletonShape.Block, width: '100%' }));
8
+ exports.PsCardBlockSkeleton = PsCardBlockSkeleton;
@@ -0,0 +1,9 @@
1
+ import { type ElementType, type ReactNode } from 'react';
2
+ export interface PsDataBoundaryProps<Data> {
3
+ AwaitComponent: ElementType;
4
+ children: (data: Data) => ReactNode;
5
+ errorElement: ReactNode;
6
+ fallback: ReactNode;
7
+ resolve: Promise<Data>;
8
+ }
9
+ export declare const PsDataBoundary: <Data>({ AwaitComponent, children, errorElement, fallback, resolve, }: PsDataBoundaryProps<Data>) => import("react").JSX.Element;
@@ -0,0 +1,7 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.PsDataBoundary = void 0;
4
+ const jsx_runtime_1 = require("react/jsx-runtime");
5
+ const react_1 = require("react");
6
+ const PsDataBoundary = ({ AwaitComponent, children, errorElement, fallback, resolve, }) => ((0, jsx_runtime_1.jsx)(react_1.Suspense, { fallback: fallback, children: (0, jsx_runtime_1.jsx)(AwaitComponent, { errorElement: errorElement, resolve: resolve, children: children }) }));
7
+ exports.PsDataBoundary = PsDataBoundary;
@@ -0,0 +1,5 @@
1
+ import type { PsFaqBlockData } from '../models/ps-faq-block-data';
2
+ export interface PsFaqAnswerProps {
3
+ blocks: PsFaqBlockData[];
4
+ }
5
+ export declare const PsFaqAnswer: ({ blocks }: PsFaqAnswerProps) => import("react").JSX.Element;
@@ -0,0 +1,7 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.PsFaqAnswer = void 0;
4
+ const jsx_runtime_1 = require("react/jsx-runtime");
5
+ const ps_faq_block_kind_1 = require("../constants/ps-faq-block-kind");
6
+ const PsFaqAnswer = ({ blocks }) => ((0, jsx_runtime_1.jsx)("div", { className: 'flex flex-col gap-3', children: blocks.map((block, index) => block.kind === ps_faq_block_kind_1.PsFaqBlockKind.List ? ((0, jsx_runtime_1.jsx)("ul", { className: 'list-disc pl-5', children: block.items.map((item) => ((0, jsx_runtime_1.jsx)("li", { children: item }, item))) }, index)) : ((0, jsx_runtime_1.jsx)("div", { className: 'flex flex-col gap-3', children: block.items.map((item) => ((0, jsx_runtime_1.jsx)("p", { children: item }, item))) }, index))) }));
7
+ exports.PsFaqAnswer = PsFaqAnswer;
@@ -0,0 +1,7 @@
1
+ import type { PsFeatureCardData } from '../models/ps-feature-card-data';
2
+ export interface PsFeatureGridProps {
3
+ eyebrow: string;
4
+ features: PsFeatureCardData[];
5
+ title: string;
6
+ }
7
+ export declare const PsFeatureGrid: ({ eyebrow, features, title }: PsFeatureGridProps) => import("react").JSX.Element;
@@ -0,0 +1,10 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.PsFeatureGrid = void 0;
4
+ const jsx_runtime_1 = require("react/jsx-runtime");
5
+ const ps_icons_1 = require("@pallasoft/ps-icons");
6
+ const ps_motion_components_1 = require("@pallasoft/ps-motion-components");
7
+ const ps_website_section_config_1 = require("../constants/ps-website-section-config");
8
+ const ps_card_1 = require("./ps-card");
9
+ const PsFeatureGrid = ({ eyebrow, features, title }) => ((0, jsx_runtime_1.jsxs)("div", { className: 'flex w-full flex-col items-center gap-8', children: [(0, jsx_runtime_1.jsxs)(ps_motion_components_1.PsScrollReveal, { className: 'text-center', children: [(0, jsx_runtime_1.jsx)("span", { className: 'ps-eyebrow mb-3 block', children: eyebrow }), (0, jsx_runtime_1.jsx)("h2", { className: 'text-header-2 text-ink', children: title })] }), (0, jsx_runtime_1.jsx)(ps_motion_components_1.PsStaggerContainer, { className: 'grid w-full grid-cols-1 gap-5 md:grid-cols-3', staggerDelay: ps_website_section_config_1.PsWebsiteSectionConfig.staggerDelay, children: features.map((feature) => ((0, jsx_runtime_1.jsx)(ps_motion_components_1.PsStaggerItem, { children: (0, jsx_runtime_1.jsxs)(ps_card_1.PsCard, { className: 'h-full text-center', density: 'spacious', children: [(0, jsx_runtime_1.jsx)("span", { className: 'ps-icon-surface mx-auto h-12 w-12', children: (0, jsx_runtime_1.jsx)(ps_icons_1.PsIcon, { className: 'h-6 w-6', iconKey: feature.iconKey }) }), (0, jsx_runtime_1.jsx)("h3", { className: 'text-header-4 mb-2 mt-4 text-ink', children: feature.title }), (0, jsx_runtime_1.jsx)("p", { className: 'text-body-2 text-ink/60', children: feature.description })] }) }, feature.title))) })] }));
10
+ exports.PsFeatureGrid = PsFeatureGrid;
@@ -0,0 +1,5 @@
1
+ export interface PsFormFieldsSkeletonProps {
2
+ columnsClassName?: string;
3
+ fields?: readonly number[];
4
+ }
5
+ export declare const PsFormFieldsSkeleton: ({ columnsClassName, fields, }: PsFormFieldsSkeletonProps) => import("react").JSX.Element;
@@ -0,0 +1,10 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.PsFormFieldsSkeleton = void 0;
4
+ const jsx_runtime_1 = require("react/jsx-runtime");
5
+ const ps_design_system_1 = require("@pallasoft/ps-design-system");
6
+ const ps_page_skeleton_config_1 = require("../constants/ps-page-skeleton-config");
7
+ const ps_skeleton_shape_1 = require("../constants/ps-skeleton-shape");
8
+ const ps_skeleton_1 = require("./ps-skeleton");
9
+ const PsFormFieldsSkeleton = ({ columnsClassName = ps_page_skeleton_config_1.PsPageSkeletonConfig.formColumnsClassName, fields = ps_page_skeleton_config_1.PsPageSkeletonConfig.formFields, }) => ((0, jsx_runtime_1.jsx)("div", { className: ps_design_system_1.PallasoftClassNameService.merge('grid gap-4', columnsClassName), children: fields.map((field) => ((0, jsx_runtime_1.jsxs)("div", { className: 'flex flex-col gap-2', children: [(0, jsx_runtime_1.jsx)(ps_skeleton_1.PsSkeleton, { className: ps_page_skeleton_config_1.PsPageSkeletonConfig.formLabelClassName }), (0, jsx_runtime_1.jsx)(ps_skeleton_1.PsSkeleton, { className: 'h-10 w-full', shape: ps_skeleton_shape_1.PsSkeletonShape.Block })] }, field))) }));
10
+ exports.PsFormFieldsSkeleton = PsFormFieldsSkeleton;
@@ -0,0 +1,5 @@
1
+ export interface PsFormPageSkeletonProps {
2
+ loadingLabel: string;
3
+ title?: string;
4
+ }
5
+ export declare const PsFormPageSkeleton: ({ loadingLabel, title }: PsFormPageSkeletonProps) => import("react").JSX.Element;
@@ -0,0 +1,10 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.PsFormPageSkeleton = void 0;
4
+ const jsx_runtime_1 = require("react/jsx-runtime");
5
+ const ps_page_skeleton_config_1 = require("../constants/ps-page-skeleton-config");
6
+ const ps_form_fields_skeleton_1 = require("./ps-form-fields-skeleton");
7
+ const ps_page_skeleton_1 = require("./ps-page-skeleton");
8
+ const ps_section_panel_skeleton_1 = require("./ps-section-panel-skeleton");
9
+ const PsFormPageSkeleton = ({ loadingLabel, title }) => ((0, jsx_runtime_1.jsx)(ps_page_skeleton_1.PsPageSkeleton, { hasActions: true, loadingLabel: loadingLabel, title: title, children: ps_page_skeleton_config_1.PsPageSkeletonConfig.formSections.map((section) => ((0, jsx_runtime_1.jsx)(ps_section_panel_skeleton_1.PsSectionPanelSkeleton, { children: (0, jsx_runtime_1.jsx)(ps_form_fields_skeleton_1.PsFormFieldsSkeleton, {}) }, section))) }));
10
+ exports.PsFormPageSkeleton = PsFormPageSkeleton;
@@ -0,0 +1,7 @@
1
+ import type { ButtonHTMLAttributes } from 'react';
2
+ import { type PsIconKey } from '@pallasoft/ps-icons';
3
+ export interface PsIconButtonProps extends Omit<ButtonHTMLAttributes<HTMLButtonElement>, 'children'> {
4
+ iconKey: PsIconKey;
5
+ label: string;
6
+ }
7
+ export declare const PsIconButton: ({ className, iconKey, label, type, ...props }: PsIconButtonProps) => import("react").JSX.Element;
@@ -0,0 +1,9 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.PsIconButton = void 0;
4
+ const jsx_runtime_1 = require("react/jsx-runtime");
5
+ const ps_design_system_1 = require("@pallasoft/ps-design-system");
6
+ const ps_icons_1 = require("@pallasoft/ps-icons");
7
+ const ps_icon_action_config_1 = require("../constants/ps-icon-action-config");
8
+ const PsIconButton = ({ className, iconKey, label, type, ...props }) => ((0, jsx_runtime_1.jsx)("button", { ...props, "aria-label": label, className: ps_design_system_1.PallasoftClassNameService.merge(ps_icon_action_config_1.PsIconActionConfig.className, ps_icon_action_config_1.PsIconActionConfig.disabledClassName, className), title: label, type: type === 'submit' || type === 'reset' ? type : 'button', children: (0, jsx_runtime_1.jsx)(ps_icons_1.PsIcon, { "aria-hidden": 'true', className: ps_icon_action_config_1.PsIconActionConfig.iconClassName, iconKey: iconKey }) }));
9
+ exports.PsIconButton = PsIconButton;
@@ -0,0 +1,10 @@
1
+ import type { ElementType } from 'react';
2
+ import { type PsIconKey } from '@pallasoft/ps-icons';
3
+ export interface PsIconLinkProps {
4
+ className?: string;
5
+ href: string;
6
+ iconKey: PsIconKey;
7
+ label: string;
8
+ LinkComponent?: ElementType;
9
+ }
10
+ export declare const PsIconLink: ({ className, href, iconKey, label, LinkComponent }: PsIconLinkProps) => import("react").JSX.Element;
@@ -0,0 +1,13 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.PsIconLink = void 0;
4
+ const jsx_runtime_1 = require("react/jsx-runtime");
5
+ const ps_design_system_1 = require("@pallasoft/ps-design-system");
6
+ const ps_icons_1 = require("@pallasoft/ps-icons");
7
+ const ps_icon_action_config_1 = require("../constants/ps-icon-action-config");
8
+ const PsIconLink = ({ className, href, iconKey, label, LinkComponent }) => {
9
+ const linkClassName = ps_design_system_1.PallasoftClassNameService.merge(ps_icon_action_config_1.PsIconActionConfig.className, className);
10
+ const icon = ((0, jsx_runtime_1.jsx)(ps_icons_1.PsIcon, { "aria-hidden": 'true', className: ps_icon_action_config_1.PsIconActionConfig.iconClassName, iconKey: iconKey }));
11
+ return LinkComponent ? ((0, jsx_runtime_1.jsx)(LinkComponent, { "aria-label": label, className: linkClassName, prefetch: 'intent', title: label, to: href, children: icon })) : ((0, jsx_runtime_1.jsx)("a", { "aria-label": label, className: linkClassName, href: href, title: label, children: icon }));
12
+ };
13
+ exports.PsIconLink = PsIconLink;
@@ -0,0 +1 @@
1
+ export declare const PsIntroSkeleton: () => import("react").JSX.Element;
@@ -0,0 +1,7 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.PsIntroSkeleton = void 0;
4
+ const jsx_runtime_1 = require("react/jsx-runtime");
5
+ const ps_skeleton_1 = require("./ps-skeleton");
6
+ const PsIntroSkeleton = () => ((0, jsx_runtime_1.jsxs)("div", { className: 'mx-auto flex w-full max-w-3xl flex-col items-center gap-4', children: [(0, jsx_runtime_1.jsx)(ps_skeleton_1.PsSkeleton, { height: '0.875rem', radius: '999px', width: '6rem' }), (0, jsx_runtime_1.jsx)(ps_skeleton_1.PsSkeleton, { height: '2.5rem', radius: '0.75rem', width: '70%' }), (0, jsx_runtime_1.jsx)(ps_skeleton_1.PsSkeleton, { height: '1.125rem', radius: '0.5rem', width: '85%' })] }));
7
+ exports.PsIntroSkeleton = PsIntroSkeleton;
@@ -0,0 +1,7 @@
1
+ import type { ElementType } from 'react';
2
+ import type { PsLinkTileData } from '../models/ps-link-tile-data';
3
+ export interface PsLinkTileGridProps {
4
+ LinkComponent?: ElementType;
5
+ tiles: PsLinkTileData[];
6
+ }
7
+ export declare const PsLinkTileGrid: ({ LinkComponent, tiles }: PsLinkTileGridProps) => import("react").JSX.Element;
@@ -0,0 +1,13 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.PsLinkTileGrid = void 0;
4
+ const jsx_runtime_1 = require("react/jsx-runtime");
5
+ const ps_icons_1 = require("@pallasoft/ps-icons");
6
+ const ps_motion_components_1 = require("@pallasoft/ps-motion-components");
7
+ const ps_website_section_config_1 = require("../constants/ps-website-section-config");
8
+ const tileClassName = 'ps-pressable ps-focus-ring group flex h-full items-center justify-between gap-3 rounded-ps-card border border-line bg-surface px-4 py-3 transition-colors hover:border-primary/50';
9
+ const PsLinkTileGrid = ({ LinkComponent, tiles }) => {
10
+ const renderTile = (tile, content) => LinkComponent ? ((0, jsx_runtime_1.jsx)(LinkComponent, { "aria-label": tile.ariaLabel, className: tileClassName, prefetch: 'intent', to: tile.href, children: content })) : ((0, jsx_runtime_1.jsx)("a", { "aria-label": tile.ariaLabel, className: tileClassName, href: tile.href, children: content }));
11
+ return ((0, jsx_runtime_1.jsx)(ps_motion_components_1.PsStaggerContainer, { className: 'grid w-full grid-cols-1 gap-3 sm:grid-cols-2 lg:grid-cols-3', staggerDelay: ps_website_section_config_1.PsWebsiteSectionConfig.tileStaggerDelay, children: tiles.map((tile) => ((0, jsx_runtime_1.jsx)(ps_motion_components_1.PsStaggerItem, { children: renderTile(tile, (0, jsx_runtime_1.jsxs)(jsx_runtime_1.Fragment, { children: [(0, jsx_runtime_1.jsxs)("span", { className: 'flex min-w-0 flex-col', children: [(0, jsx_runtime_1.jsx)("span", { className: 'text-body-2 font-semibold text-ink', children: tile.title }), (0, jsx_runtime_1.jsx)("span", { className: 'truncate text-body-3 text-ink/60', children: tile.description })] }), (0, jsx_runtime_1.jsx)(ps_icons_1.PsIcon, { className: 'h-4 w-4 shrink-0 text-ink/40 transition-colors group-hover:text-primary', iconKey: ps_icons_1.PsIconKey.ChevronRight })] })) }, tile.href))) }));
12
+ };
13
+ exports.PsLinkTileGrid = PsLinkTileGrid;
@@ -0,0 +1,4 @@
1
+ export interface PsMetricGridSkeletonProps {
2
+ count: number;
3
+ }
4
+ export declare const PsMetricGridSkeleton: ({ count }: PsMetricGridSkeletonProps) => import("react").JSX.Element;
@@ -0,0 +1,7 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.PsMetricGridSkeleton = void 0;
4
+ const jsx_runtime_1 = require("react/jsx-runtime");
5
+ const ps_metric_card_1 = require("./ps-metric-card");
6
+ const PsMetricGridSkeleton = ({ count }) => ((0, jsx_runtime_1.jsx)("div", { className: 'grid grid-cols-1 gap-3 sm:grid-cols-2 lg:grid-cols-4', children: Array.from({ length: count }, (_, index) => ((0, jsx_runtime_1.jsx)(ps_metric_card_1.PsMetricCard, { isLoading: true, label: '', value: '' }, index))) }));
7
+ exports.PsMetricGridSkeleton = PsMetricGridSkeleton;
@@ -0,0 +1,5 @@
1
+ import type { PsMetricItemData } from '../models/ps-metric-item-data';
2
+ export interface PsMetricGridProps {
3
+ items: PsMetricItemData[];
4
+ }
5
+ export declare const PsMetricGrid: ({ items }: PsMetricGridProps) => import("react").JSX.Element;
@@ -0,0 +1,12 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.PsMetricGrid = void 0;
4
+ const jsx_runtime_1 = require("react/jsx-runtime");
5
+ const ps_design_system_1 = require("@pallasoft/ps-design-system");
6
+ const ps_metric_grid_config_1 = require("../constants/ps-metric-grid-config");
7
+ const ps_metric_card_1 = require("./ps-metric-card");
8
+ const PsMetricGrid = ({ items }) => {
9
+ const columns = ps_metric_grid_config_1.PsMetricGridColumns[Math.min(items.length, ps_metric_grid_config_1.PsMetricGridConfig.maxColumns)];
10
+ return ((0, jsx_runtime_1.jsx)("div", { className: ps_design_system_1.PallasoftClassNameService.merge('grid grid-cols-1 gap-3', columns === undefined ? ps_metric_grid_config_1.PsMetricGridColumns[ps_metric_grid_config_1.PsMetricGridConfig.defaultColumns] : columns), children: items.map((item) => ((0, jsx_runtime_1.jsx)(ps_metric_card_1.PsMetricCard, { label: item.label, value: item.value }, item.label))) }));
11
+ };
12
+ exports.PsMetricGrid = PsMetricGrid;
@@ -0,0 +1,5 @@
1
+ import type { PsMetricItemData } from '../models/ps-metric-item-data';
2
+ export interface PsMetricRowProps {
3
+ metrics: PsMetricItemData[];
4
+ }
5
+ export declare const PsMetricRow: ({ metrics }: PsMetricRowProps) => import("react").JSX.Element;
@@ -0,0 +1,9 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.PsMetricRow = void 0;
4
+ const jsx_runtime_1 = require("react/jsx-runtime");
5
+ const ps_motion_components_1 = require("@pallasoft/ps-motion-components");
6
+ const ps_website_section_config_1 = require("../constants/ps-website-section-config");
7
+ const ps_metric_card_1 = require("./ps-metric-card");
8
+ const PsMetricRow = ({ metrics }) => ((0, jsx_runtime_1.jsx)(ps_motion_components_1.PsStaggerContainer, { className: 'grid w-full grid-cols-1 gap-5 md:grid-cols-3', staggerDelay: ps_website_section_config_1.PsWebsiteSectionConfig.staggerDelay, children: metrics.map((metric) => ((0, jsx_runtime_1.jsx)(ps_motion_components_1.PsStaggerItem, { children: (0, jsx_runtime_1.jsx)(ps_metric_card_1.PsMetricCard, { label: metric.label, value: metric.value }) }, metric.label))) }));
9
+ exports.PsMetricRow = PsMetricRow;
@@ -0,0 +1,8 @@
1
+ import type { ReactNode } from 'react';
2
+ import { type PsBackLinkProps } from './ps-back-link';
3
+ export interface PsPageHeaderProps {
4
+ actions?: ReactNode;
5
+ backLink?: PsBackLinkProps;
6
+ title: string;
7
+ }
8
+ export declare const PsPageHeader: ({ actions, backLink, title }: PsPageHeaderProps) => import("react").JSX.Element;
@@ -0,0 +1,8 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.PsPageHeader = void 0;
4
+ const jsx_runtime_1 = require("react/jsx-runtime");
5
+ const ps_back_link_1 = require("./ps-back-link");
6
+ const ps_section_header_1 = require("./ps-section-header");
7
+ const PsPageHeader = ({ actions, backLink, title }) => ((0, jsx_runtime_1.jsx)(ps_section_header_1.PsSectionHeader, { leading: backLink ? (0, jsx_runtime_1.jsx)(ps_back_link_1.PsBackLink, { ...backLink }) : undefined, title: title, trailing: actions ? ((0, jsx_runtime_1.jsx)("div", { className: 'flex flex-wrap items-center justify-end gap-2', children: actions })) : undefined }));
8
+ exports.PsPageHeader = PsPageHeader;
@@ -0,0 +1,6 @@
1
+ export interface PsPageIntroProps {
2
+ description?: string;
3
+ eyebrow: string;
4
+ title: string;
5
+ }
6
+ export declare const PsPageIntro: ({ description, eyebrow, title }: PsPageIntroProps) => import("react").JSX.Element;
@@ -0,0 +1,7 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.PsPageIntro = void 0;
4
+ const jsx_runtime_1 = require("react/jsx-runtime");
5
+ const ps_motion_components_1 = require("@pallasoft/ps-motion-components");
6
+ const PsPageIntro = ({ description, eyebrow, title }) => ((0, jsx_runtime_1.jsxs)(ps_motion_components_1.PsScrollReveal, { className: 'mx-auto flex w-full max-w-3xl flex-col items-center gap-4 text-center', children: [(0, jsx_runtime_1.jsx)("span", { className: 'ps-eyebrow', children: eyebrow }), (0, jsx_runtime_1.jsx)("h1", { className: 'text-header-1 text-ink', children: title }), description ? (0, jsx_runtime_1.jsx)("p", { className: 'text-body-1 text-ink/60', children: description }) : null] }));
7
+ exports.PsPageIntro = PsPageIntro;
@@ -0,0 +1,7 @@
1
+ import type { ReactNode } from 'react';
2
+ export interface PsPageLayoutProps {
3
+ children: ReactNode;
4
+ className?: string;
5
+ isNarrow?: boolean;
6
+ }
7
+ export declare const PsPageLayout: ({ children, className, isNarrow }: PsPageLayoutProps) => import("react").JSX.Element;
@@ -0,0 +1,7 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.PsPageLayout = void 0;
4
+ const jsx_runtime_1 = require("react/jsx-runtime");
5
+ const ps_design_system_1 = require("@pallasoft/ps-design-system");
6
+ const PsPageLayout = ({ children, className, isNarrow = false }) => ((0, jsx_runtime_1.jsx)("div", { className: ps_design_system_1.PallasoftClassNameService.merge('w-full px-4 py-5 md:px-6 md:py-6', className), children: (0, jsx_runtime_1.jsx)("div", { className: isNarrow ? 'mx-auto flex w-full min-w-0 max-w-7xl flex-col' : 'flex min-w-0 flex-col', children: children }) }));
7
+ exports.PsPageLayout = PsPageLayout;
@@ -0,0 +1,9 @@
1
+ import type { ReactNode } from 'react';
2
+ export interface PsPageSkeletonProps {
3
+ children: ReactNode;
4
+ hasActions?: boolean;
5
+ isNarrow?: boolean;
6
+ loadingLabel: string;
7
+ title?: string;
8
+ }
9
+ export declare const PsPageSkeleton: ({ children, hasActions, isNarrow, loadingLabel, title, }: PsPageSkeletonProps) => import("react").JSX.Element;
@@ -0,0 +1,12 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.PsPageSkeleton = void 0;
4
+ const jsx_runtime_1 = require("react/jsx-runtime");
5
+ const ps_skeleton_shape_1 = require("../constants/ps-skeleton-shape");
6
+ const ps_page_header_1 = require("./ps-page-header");
7
+ const ps_page_layout_1 = require("./ps-page-layout");
8
+ const ps_page_stack_1 = require("./ps-page-stack");
9
+ const ps_section_header_1 = require("./ps-section-header");
10
+ const ps_skeleton_1 = require("./ps-skeleton");
11
+ const PsPageSkeleton = ({ children, hasActions = false, isNarrow = false, loadingLabel, title, }) => ((0, jsx_runtime_1.jsx)(ps_page_layout_1.PsPageLayout, { isNarrow: isNarrow, children: (0, jsx_runtime_1.jsxs)(ps_page_stack_1.PsPageStack, { children: [title === undefined ? ((0, jsx_runtime_1.jsx)(ps_section_header_1.PsSectionHeader, { isLoading: true, title: loadingLabel, trailing: hasActions })) : ((0, jsx_runtime_1.jsx)(ps_page_header_1.PsPageHeader, { actions: hasActions ? ((0, jsx_runtime_1.jsx)(ps_skeleton_1.PsSkeleton, { height: '2.5rem', radius: '9999px', shape: ps_skeleton_shape_1.PsSkeletonShape.Block, width: '9rem' })) : undefined, title: title })), children] }) }));
12
+ exports.PsPageSkeleton = PsPageSkeleton;
@@ -0,0 +1,6 @@
1
+ import type { ReactNode } from 'react';
2
+ export interface PsPageStackProps {
3
+ children: ReactNode;
4
+ className?: string;
5
+ }
6
+ export declare const PsPageStack: ({ children, className }: PsPageStackProps) => import("react").JSX.Element;
@@ -0,0 +1,7 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.PsPageStack = void 0;
4
+ const jsx_runtime_1 = require("react/jsx-runtime");
5
+ const ps_design_system_1 = require("@pallasoft/ps-design-system");
6
+ const PsPageStack = ({ children, className }) => ((0, jsx_runtime_1.jsx)("div", { className: ps_design_system_1.PallasoftClassNameService.merge('ps-stack', className), children: children }));
7
+ exports.PsPageStack = PsPageStack;
@@ -0,0 +1,6 @@
1
+ import type { ReactNode } from 'react';
2
+ export interface PsSectionPanelSkeletonProps {
3
+ children: ReactNode;
4
+ title?: string;
5
+ }
6
+ export declare const PsSectionPanelSkeleton: ({ children, title }: PsSectionPanelSkeletonProps) => import("react").JSX.Element;
@@ -0,0 +1,7 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.PsSectionPanelSkeleton = void 0;
4
+ const jsx_runtime_1 = require("react/jsx-runtime");
5
+ const ps_skeleton_1 = require("./ps-skeleton");
6
+ const PsSectionPanelSkeleton = ({ children, title }) => ((0, jsx_runtime_1.jsxs)("section", { className: 'ps-section', children: [(0, jsx_runtime_1.jsx)("div", { className: 'flex min-h-10 items-center', children: title === undefined ? ((0, jsx_runtime_1.jsx)(ps_skeleton_1.PsSkeleton, { className: 'h-4 w-44' })) : ((0, jsx_runtime_1.jsx)("h2", { className: 'text-base font-semibold text-ink', children: title })) }), (0, jsx_runtime_1.jsx)("div", { className: 'flex min-w-0 flex-col gap-4', children: children })] }));
7
+ exports.PsSectionPanelSkeleton = PsSectionPanelSkeleton;
@@ -0,0 +1,8 @@
1
+ import type { ReactNode } from 'react';
2
+ export interface PsSectionPanelProps {
3
+ actions?: ReactNode;
4
+ children: ReactNode;
5
+ className?: string;
6
+ title?: string;
7
+ }
8
+ export declare const PsSectionPanel: ({ actions, children, className, title }: PsSectionPanelProps) => import("react").JSX.Element;
@@ -0,0 +1,7 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.PsSectionPanel = void 0;
4
+ const jsx_runtime_1 = require("react/jsx-runtime");
5
+ const ps_design_system_1 = require("@pallasoft/ps-design-system");
6
+ const PsSectionPanel = ({ actions, children, className, title }) => ((0, jsx_runtime_1.jsxs)("section", { className: ps_design_system_1.PallasoftClassNameService.merge('ps-section', className), children: [title || actions ? ((0, jsx_runtime_1.jsxs)("div", { className: 'flex min-h-10 flex-wrap items-center justify-between gap-3', children: [title ? (0, jsx_runtime_1.jsx)("h2", { className: 'text-base font-semibold text-ink', children: title }) : (0, jsx_runtime_1.jsx)("span", {}), actions ? (0, jsx_runtime_1.jsx)("div", { className: 'flex flex-wrap items-center gap-2', children: actions }) : null] })) : null, (0, jsx_runtime_1.jsx)("div", { className: 'flex min-w-0 flex-col gap-4', children: children })] }));
7
+ exports.PsSectionPanel = PsSectionPanel;
@@ -0,0 +1,6 @@
1
+ export interface PsSignedAmountProps {
2
+ amount: string;
3
+ className?: string;
4
+ formatted: string;
5
+ }
6
+ export declare const PsSignedAmount: ({ amount, className, formatted }: PsSignedAmountProps) => import("react").JSX.Element;
@@ -0,0 +1,12 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.PsSignedAmount = void 0;
4
+ const jsx_runtime_1 = require("react/jsx-runtime");
5
+ const ps_design_system_1 = require("@pallasoft/ps-design-system");
6
+ const ps_utilities_1 = require("@pallasoft/ps-utilities");
7
+ const ps_amount_direction_classes_1 = require("../constants/ps-amount-direction-classes");
8
+ const PsSignedAmount = ({ amount, className, formatted }) => {
9
+ const direction = ps_utilities_1.Common.AmountService.direction(amount);
10
+ return ((0, jsx_runtime_1.jsxs)("span", { className: ps_design_system_1.PallasoftClassNameService.merge('tabular-nums', ps_amount_direction_classes_1.PsAmountDirectionClasses[direction], className), children: [direction === ps_utilities_1.AmountDirection.In ? '+' : '', formatted] }));
11
+ };
12
+ exports.PsSignedAmount = PsSignedAmount;
@@ -0,0 +1 @@
1
+ export declare const PsTabRowSkeleton: () => import("react").JSX.Element;
@@ -0,0 +1,8 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.PsTabRowSkeleton = void 0;
4
+ const jsx_runtime_1 = require("react/jsx-runtime");
5
+ const ps_skeleton_shape_1 = require("../constants/ps-skeleton-shape");
6
+ const ps_skeleton_1 = require("./ps-skeleton");
7
+ const PsTabRowSkeleton = () => ((0, jsx_runtime_1.jsx)(ps_skeleton_1.PsSkeleton, { height: '2.75rem', radius: '9999px', shape: ps_skeleton_shape_1.PsSkeletonShape.Block, width: '100%' }));
8
+ exports.PsTabRowSkeleton = PsTabRowSkeleton;
@@ -0,0 +1 @@
1
+ export declare const PsTableListSkeleton: () => import("react").JSX.Element;
@@ -0,0 +1,8 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.PsTableListSkeleton = void 0;
4
+ const jsx_runtime_1 = require("react/jsx-runtime");
5
+ const ps_page_skeleton_config_1 = require("../constants/ps-page-skeleton-config");
6
+ const ps_skeleton_table_1 = require("./ps-skeleton-table");
7
+ const PsTableListSkeleton = () => ((0, jsx_runtime_1.jsx)(ps_skeleton_table_1.PsSkeletonTable, { columns: ps_page_skeleton_config_1.PsPageSkeletonConfig.tableColumns, hasToolbar: true, rows: ps_page_skeleton_config_1.PsPageSkeletonConfig.tableRows }));
8
+ exports.PsTableListSkeleton = PsTableListSkeleton;
@@ -0,0 +1,6 @@
1
+ export interface PsTablePageSkeletonProps {
2
+ isNarrow?: boolean;
3
+ loadingLabel: string;
4
+ title?: string;
5
+ }
6
+ export declare const PsTablePageSkeleton: ({ isNarrow, loadingLabel, title, }: PsTablePageSkeletonProps) => import("react").JSX.Element;
@@ -0,0 +1,8 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.PsTablePageSkeleton = void 0;
4
+ const jsx_runtime_1 = require("react/jsx-runtime");
5
+ const ps_page_skeleton_1 = require("./ps-page-skeleton");
6
+ const ps_table_list_skeleton_1 = require("./ps-table-list-skeleton");
7
+ const PsTablePageSkeleton = ({ isNarrow = false, loadingLabel, title, }) => ((0, jsx_runtime_1.jsx)(ps_page_skeleton_1.PsPageSkeleton, { hasActions: true, isNarrow: isNarrow, loadingLabel: loadingLabel, title: title, children: (0, jsx_runtime_1.jsx)(ps_table_list_skeleton_1.PsTableListSkeleton, {}) }));
8
+ exports.PsTablePageSkeleton = PsTablePageSkeleton;
@@ -0,0 +1 @@
1
+ export declare const PsThemeController: () => import("react").JSX.Element;
@@ -0,0 +1,13 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.PsThemeController = void 0;
4
+ const jsx_runtime_1 = require("react/jsx-runtime");
5
+ const use_ps_theme_mode_1 = require("../hooks/use-ps-theme-mode");
6
+ const ps_theme_toggle_1 = require("./ps-theme-toggle");
7
+ const PsThemeController = () => {
8
+ const { resolvedMode, toggle } = (0, use_ps_theme_mode_1.usePsThemeMode)();
9
+ if (resolvedMode === null)
10
+ return (0, jsx_runtime_1.jsx)("div", { className: 'h-11 w-11' });
11
+ return (0, jsx_runtime_1.jsx)(ps_theme_toggle_1.PsThemeToggle, { mode: resolvedMode, onClick: toggle });
12
+ };
13
+ exports.PsThemeController = PsThemeController;
@@ -0,0 +1 @@
1
+ export declare const PsThemeSystemListener: () => null;
@@ -0,0 +1,13 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.PsThemeSystemListener = void 0;
4
+ const react_1 = require("react");
5
+ const ps_design_system_1 = require("@pallasoft/ps-design-system");
6
+ const PsThemeSystemListener = () => {
7
+ (0, react_1.useEffect)(() => {
8
+ ps_design_system_1.PallasoftThemeBrowserService.applyStoredMode();
9
+ return ps_design_system_1.PallasoftThemeBrowserService.listenToSystemChanges(() => undefined);
10
+ }, []);
11
+ return null;
12
+ };
13
+ exports.PsThemeSystemListener = PsThemeSystemListener;
@@ -0,0 +1,7 @@
1
+ import type { ElementType } from 'react';
2
+ import type { PsToolCardData } from '../models/ps-tool-card-data';
3
+ export interface PsToolCardGridProps {
4
+ cards: PsToolCardData[];
5
+ LinkComponent?: ElementType;
6
+ }
7
+ export declare const PsToolCardGrid: ({ cards, LinkComponent }: PsToolCardGridProps) => import("react").JSX.Element;
@@ -0,0 +1,14 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.PsToolCardGrid = void 0;
4
+ const jsx_runtime_1 = require("react/jsx-runtime");
5
+ const ps_icons_1 = require("@pallasoft/ps-icons");
6
+ const ps_motion_components_1 = require("@pallasoft/ps-motion-components");
7
+ const ps_website_section_config_1 = require("../constants/ps-website-section-config");
8
+ const ps_card_1 = require("./ps-card");
9
+ const cardLinkClassName = 'ps-pressable ps-focus-ring block h-full rounded-ps-card';
10
+ const PsToolCardGrid = ({ cards, LinkComponent }) => {
11
+ const renderCard = (card, content) => LinkComponent ? ((0, jsx_runtime_1.jsx)(LinkComponent, { "aria-label": card.ariaLabel, className: cardLinkClassName, prefetch: 'intent', to: card.href, children: content })) : ((0, jsx_runtime_1.jsx)("a", { "aria-label": card.ariaLabel, className: cardLinkClassName, href: card.href, children: content }));
12
+ return ((0, jsx_runtime_1.jsx)(ps_motion_components_1.PsStaggerContainer, { className: 'grid w-full grid-cols-1 gap-5 sm:grid-cols-2 lg:grid-cols-3', staggerDelay: ps_website_section_config_1.PsWebsiteSectionConfig.staggerDelay, children: cards.map((card) => ((0, jsx_runtime_1.jsx)(ps_motion_components_1.PsStaggerItem, { children: renderCard(card, (0, jsx_runtime_1.jsxs)(ps_card_1.PsCard, { className: 'group flex h-full flex-col gap-5 transition-colors hover:border-primary/50', density: 'spacious', variant: 'elevated', children: [(0, jsx_runtime_1.jsxs)("div", { className: 'flex items-center justify-between gap-3', children: [(0, jsx_runtime_1.jsx)("span", { className: 'ps-icon-surface h-12 w-12', children: (0, jsx_runtime_1.jsx)(ps_icons_1.PsIcon, { className: 'h-6 w-6', iconKey: card.iconKey }) }), (0, jsx_runtime_1.jsx)(ps_icons_1.PsIcon, { className: 'h-5 w-5 text-ink/30 transition-colors group-hover:text-primary', iconKey: ps_icons_1.PsIconKey.ChevronRight })] }), (0, jsx_runtime_1.jsxs)("div", { className: 'flex flex-col gap-2', children: [(0, jsx_runtime_1.jsx)("h2", { className: 'text-header-3 text-ink', children: card.title }), (0, jsx_runtime_1.jsx)("p", { className: 'text-body-2 text-ink/60', children: card.description })] })] })) }, card.href))) }));
13
+ };
14
+ exports.PsToolCardGrid = PsToolCardGrid;
@@ -0,0 +1,2 @@
1
+ import { AmountDirection } from '@pallasoft/ps-utilities';
2
+ export declare const PsAmountDirectionClasses: Record<AmountDirection, string>;
@@ -0,0 +1,9 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.PsAmountDirectionClasses = void 0;
4
+ const ps_utilities_1 = require("@pallasoft/ps-utilities");
5
+ exports.PsAmountDirectionClasses = {
6
+ [ps_utilities_1.AmountDirection.In]: 'font-medium text-success',
7
+ [ps_utilities_1.AmountDirection.Neutral]: 'text-ink',
8
+ [ps_utilities_1.AmountDirection.Out]: 'font-medium text-danger',
9
+ };
@@ -0,0 +1,4 @@
1
+ export declare enum PsFaqBlockKind {
2
+ List = "list",
3
+ Paragraph = "paragraph"
4
+ }
@@ -0,0 +1,8 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.PsFaqBlockKind = void 0;
4
+ var PsFaqBlockKind;
5
+ (function (PsFaqBlockKind) {
6
+ PsFaqBlockKind["List"] = "list";
7
+ PsFaqBlockKind["Paragraph"] = "paragraph";
8
+ })(PsFaqBlockKind || (exports.PsFaqBlockKind = PsFaqBlockKind = {}));