@pega/cosmos-react-work 10.0.0-build.9.13 → 10.0.0-build.9.15
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.
- package/lib/components/GenAICoach/GenAICoach.d.ts.map +1 -1
- package/lib/components/GenAICoach/GenAICoach.js +2 -2
- package/lib/components/GenAICoach/GenAICoach.js.map +1 -1
- package/lib/components/GenAICoach/GenAICoach.types.d.ts +2 -0
- package/lib/components/GenAICoach/GenAICoach.types.d.ts.map +1 -1
- package/lib/components/GenAICoach/GenAICoach.types.js.map +1 -1
- package/lib/components/GenAICoach/GenAIMessageFeedback.d.ts.map +1 -1
- package/lib/components/GenAICoach/GenAIMessageFeedback.js +8 -1
- package/lib/components/GenAICoach/GenAIMessageFeedback.js.map +1 -1
- package/lib/components/HeroBanner/HeroBanner.d.ts +7 -0
- package/lib/components/HeroBanner/HeroBanner.d.ts.map +1 -0
- package/lib/components/HeroBanner/HeroBanner.js +63 -0
- package/lib/components/HeroBanner/HeroBanner.js.map +1 -0
- package/lib/components/HeroBanner/HeroBanner.styles.d.ts +35 -0
- package/lib/components/HeroBanner/HeroBanner.styles.d.ts.map +1 -0
- package/lib/components/HeroBanner/HeroBanner.styles.js +118 -0
- package/lib/components/HeroBanner/HeroBanner.styles.js.map +1 -0
- package/lib/components/HeroBanner/HeroBanner.test-ids.d.ts +2 -0
- package/lib/components/HeroBanner/HeroBanner.test-ids.d.ts.map +1 -0
- package/lib/components/HeroBanner/HeroBanner.test-ids.js +11 -0
- package/lib/components/HeroBanner/HeroBanner.test-ids.js.map +1 -0
- package/lib/components/HeroBanner/HeroBanner.types.d.ts +51 -0
- package/lib/components/HeroBanner/HeroBanner.types.d.ts.map +1 -0
- package/lib/components/HeroBanner/HeroBanner.types.js +2 -0
- package/lib/components/HeroBanner/HeroBanner.types.js.map +1 -0
- package/lib/components/HeroBanner/index.d.ts +3 -0
- package/lib/components/HeroBanner/index.d.ts.map +1 -0
- package/lib/components/HeroBanner/index.js +2 -0
- package/lib/components/HeroBanner/index.js.map +1 -0
- package/lib/components/HeroBanner/utils.d.ts +20 -0
- package/lib/components/HeroBanner/utils.d.ts.map +1 -0
- package/lib/components/HeroBanner/utils.js +125 -0
- package/lib/components/HeroBanner/utils.js.map +1 -0
- package/lib/index.d.ts +2 -0
- package/lib/index.d.ts.map +1 -1
- package/lib/index.js +2 -0
- package/lib/index.js.map +1 -1
- package/package.json +3 -3
|
@@ -262,6 +262,8 @@ export type GenAICoachProps = WithAttributes<'div', TestIdProp & {
|
|
|
262
262
|
onLayoutChange?: (inFullPage: boolean) => void;
|
|
263
263
|
/** Callback when attachment icon is clicked */
|
|
264
264
|
onAddAttachment?: (files: File[]) => void;
|
|
265
|
+
/** Allows selecting multiple files at once in the attachment picker. */
|
|
266
|
+
showMultipleAttachments?: boolean;
|
|
265
267
|
/** Attachments list */
|
|
266
268
|
attachments?: FileItemProps[];
|
|
267
269
|
/** Error in attachments */
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"GenAICoach.types.d.ts","sourceRoot":"","sources":["../../../src/components/GenAICoach/GenAICoach.types.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"GenAICoach.types.d.ts","sourceRoot":"","sources":["../../../src/components/GenAICoach/GenAICoach.types.ts"],"names":[],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"GenAICoach.types.js","sourceRoot":"","sources":["../../../src/components/GenAICoach/GenAICoach.types.ts"],"names":[],"mappings":"","sourcesContent":["import type { ReactNode, Ref, MouseEventHandler } from 'react';\n\nimport type {\n BaseProps,\n MenuItemProps,\n MenuProps,\n NoChildrenProp,\n OmitStrict,\n ProgressProps,\n RequireAtLeastOne,\n TestIdProp,\n WithAttributes,\n ActionsProps,\n FileItemProps,\n FileDisplayProps,\n LightboxProps\n} from '@pega/cosmos-react-core';\nimport type { MDMap } from '@pega/cosmos-react-rte';\n\nexport interface AgentModeProps {\n modes: MenuProps['items'];\n onAgentModeChange: (id: MenuItemProps['id']) => void;\n}\n\nexport interface ModelSelectorProps {\n options: MenuProps['items'];\n onModelChange: (id: MenuItemProps['id']) => void;\n}\n\nexport interface CaseWorkflowStepProps {\n id: string;\n name: string;\n completed?: boolean;\n}\n\nexport interface CaseWorkflowStageProps {\n name: string;\n id: string;\n current?: boolean;\n completed?: boolean;\n currentStepId?: string;\n steps?: CaseWorkflowStepProps[];\n}\n\nexport interface CaseWorkflowProps extends BaseProps, NoChildrenProp {\n heading: string;\n icon?: string | URL;\n stages: CaseWorkflowStageProps[];\n onHeadingClick: MouseEventHandler<HTMLButtonElement>;\n ref?: Ref<HTMLDivElement>;\n}\n\nexport interface ActiveCaseItem {\n id: string;\n heading: string;\n stages: CaseWorkflowStageProps[];\n onHeadingClick?: MouseEventHandler<HTMLButtonElement>;\n}\n\nexport interface ActiveCasesProps extends BaseProps, NoChildrenProp {\n activeCases: ActiveCaseItem[];\n ref?: Ref<HTMLButtonElement>;\n}\n\nexport interface OptionItem {\n key: string;\n label: string;\n displayLabel?: string;\n selected?: boolean;\n}\n\nexport interface FormAnswer {\n value: string[];\n questionText: string;\n}\n\nexport interface Question {\n field: string;\n type: 'single' | 'multi';\n questionText: string;\n defaultInput?: string[] | string;\n optionItems: OptionItem[];\n}\n\nexport interface QuestionnaireConfig {\n questions: Question[];\n inline?: boolean;\n}\n\nexport interface QuestionItemProps {\n question: Question;\n answer: FormAnswer;\n onChange: (field: string, key: string, selected: boolean) => void;\n}\n\nexport interface QuestionnaireProps {\n data: QuestionnaireConfig;\n onChange: (answers: Record<string, FormAnswer>) => void;\n onCancel: () => void;\n}\n\nexport type State = 'minimized' | 'maximized';\nexport type Reaction = 'liked' | 'disliked';\nexport type FeedbackPrompt = 'liked' | 'disliked' | 'both';\n\nexport type Variant =\n | {\n placement: 'utilities';\n state: State;\n onStateChange: (state: State) => void;\n }\n | { placement: 'fullpage' }\n | { placement: 'dialog'; onClose: () => void };\n\nexport interface MessageProps {\n id: string;\n message?: string;\n announceInteraction?: boolean;\n simplifiedAgent?: boolean;\n showSenderInfo?: boolean;\n attachments?: FileDisplayProps[];\n /**\n * Whether the message is a suggestion from the composer\n * @default false\n */\n fromComposer?: boolean;\n /** Ref forwarded to the wrapping element. */\n ref?: Ref<HTMLLIElement>;\n}\n\nexport type InitialSuggestedMessageProps = Pick<GenAICoachProps, 'onSend'> &\n BaseProps &\n TestIdProp &\n MessageProps;\n\nexport interface UserMessageProps extends BaseProps, TestIdProp, MessageProps {\n from: 'user';\n userName?: string;\n}\n\nexport type ToolParameters = {\n id: string;\n label: string;\n type: 'text' | 'number' | 'boolean';\n value: string;\n required: boolean;\n readOnly: boolean;\n};\n\nexport interface Tool {\n id: string;\n name: string;\n message: string;\n decision: 'accept' | 'modify' | 'reject';\n parameters: ToolParameters[];\n}\n\nexport interface ToolDetailsProps {\n toolMessage: string;\n isToolConfirmation: true;\n tools: Tool[];\n onSubmit?: (tools: Tool[]) => void;\n onCancel?: () => void;\n toolsConfirmed: boolean;\n}\n\nexport interface ToolCandidateDetailsProps {\n loading?: boolean;\n error?: string;\n renderCandidatesTable?: () => ReactNode;\n}\n\nexport type CoachMessageProps = RequireAtLeastOne<\n Partial<Pick<GenAICoachProps, 'onSend'>> &\n BaseProps &\n TestIdProp &\n Pick<\n MessageProps,\n 'id' | 'announceInteraction' | 'simplifiedAgent' | 'showSenderInfo' | 'ref'\n > &\n (\n | ToolDetailsProps\n | {\n toolMessage?: never;\n isToolConfirmation?: false;\n tools?: never;\n onSubmit?: never;\n onCancel?: never;\n toolsConfirmed?: never;\n }\n ) & {\n from: 'coach';\n coachName: string;\n /** Indicates a synthetic coach message */\n isCustom?: boolean;\n suggestions?: (Pick<MessageProps, 'id' | 'message'> & { selected?: boolean })[];\n loading?: boolean;\n progressSteps?: string[];\n progressStepsCompleted?: number;\n enableStreaming?: boolean;\n allChunksReceived?: boolean;\n error?: string;\n message?: ReactNode;\n messageActions?: ActionsProps;\n markdownMap?: MDMap;\n onStreamingUpdate?: (isStreamingDone: boolean) => void;\n feedback?: {\n reaction: Reaction | undefined;\n feedbackText?: string;\n onReaction: (id: MessageProps['id'], reaction: Reaction | undefined) => void;\n onFeedbackComplete: (id: MessageProps['id'], comment?: string) => void;\n promptFeedbackOn?: FeedbackPrompt;\n allowFeedbackResubmission?: boolean;\n };\n toolCandidates?: {\n toolState: ToolCandidateDetailsProps;\n onViewToolsConsidered: (id: MessageProps['id']) => void;\n };\n onAnimationCursorUpdate?: (animatedTillCursor: number) => void;\n animationInitialCursorPos?: number;\n },\n 'loading' | 'message' | 'error'\n>;\n\nexport interface CaseDetails {\n /** Unique case identifier */\n id: string;\n /** Case type identifier */\n type: string;\n /** Human-readable label */\n label?: string;\n}\n\nexport interface SystemMessageProps\n extends TestIdProp,\n Pick<MessageProps, 'id' | 'message' | 'ref' | 'announceInteraction' | 'simplifiedAgent'> {\n from: 'system';\n loading?: boolean;\n /** Present when this system message represents a case creation event. */\n caseInfo?: CaseDetails;\n /** When true, renders this system message as a \"Response stopped\" indicator. */\n stopped?: boolean;\n}\n\nexport type GenAIMessageProps = UserMessageProps | CoachMessageProps | SystemMessageProps;\n\nexport interface ConversationHistoryProps extends TestIdProp {\n /** List of History items. */\n data: {\n id: string;\n section: string;\n conversations: {\n id: string;\n title: string;\n }[];\n }[];\n /** Click event for items within the list. */\n onItemClick?: (conversationId: string) => void;\n /** List loading state. */\n loading?: boolean;\n /** Called at scroll trigger to load more items. */\n loadMore?: () => void;\n /** True if History view is rendered in Full page view. */\n inFullPage?: boolean;\n /** Callback triggered when closing the history view. */\n onDismiss: () => void;\n /** Id of the selected item. */\n selectedItemId?: string;\n /** Set if there is an error in retreiving the data. */\n error?: string;\n /** Ref forwarded to the wrapping element. */\n ref?: Ref<HTMLUListElement>;\n}\n\nexport type SendMessageProps = OmitStrict<MessageProps, 'attachments'> & {\n attachmentIds?: string[];\n tools?: Tool[];\n toolMessage?: string;\n formAnswers?: Record<string, FormAnswer>;\n};\n\nexport type GenAICoachProps = WithAttributes<\n 'div',\n TestIdProp & {\n /** Chat loading indicator */\n loading?: boolean | ProgressProps['message'];\n /** Set if there is an error in retreiving the data */\n error?: string;\n /** Coaches available in the chat header */\n coachOptions: MenuProps['items'];\n /** Handle the coach selections */\n onCoachChange: (id: MenuProps['id']) => void;\n /** Suggested messages to start the conversation */\n initialSuggestedMessages?: MessageProps[];\n /** Additional suggestions presented at the bottom of the chat window */\n suggestions?: MenuProps['items'];\n /** Send prompts */\n onSend: (message: SendMessageProps) => void;\n\n stopProcess?: () => void;\n /** Messages to be shown in the chatting window. */\n messages?: GenAIMessageProps[];\n /** Placement of the component */\n variant: Variant;\n /** From landing page utilities */\n isInLandingPageUtilities?: boolean;\n /** Callback when component is mounted. */\n onOpen?: () => void;\n /**\n * User would be guided with selective prompts to enable interaction with coach.\n * @default false\n */\n guidedMode?: boolean;\n /** Pass an array of Action objects to show Action button. */\n actions?: ActionsProps;\n /** Callback to start a new chat. */\n onNewChat?: () => void;\n /** Pass data to show history view. */\n conversationHistory?: ConversationHistoryProps;\n /** Opens conversation history from the composer. */\n onConversationHistoryOpen?: () => void;\n /** Callback triggered when the layout component changes. */\n onLayoutChange?: (inFullPage: boolean) => void;\n /** Callback when attachment icon is clicked */\n onAddAttachment?: (files: File[]) => void;\n /** Attachments list */\n attachments?: FileItemProps[];\n /** Error in attachments */\n attachmentsError?: string;\n /** Inline error shown on the composer textarea (e.g. when conversation creation fails) */\n conversationError?: string;\n /** Configuration for the Lightbox component that handles preview of media attachments and files */\n lightboxPreviewProps?: LightboxProps;\n /** Enable full screen */\n allowFullScreen?: boolean;\n /** Enable voice to text */\n voiceToTextProps?: {\n enableDictation: boolean;\n langCode: string;\n };\n /** Agent mode selector shown in the composer toolbar. Hidden when not provided. */\n agentModeProps?: AgentModeProps;\n /** Model selector shown in the composer toolbar. Hidden when not provided. */\n modelSelectorProps?: ModelSelectorProps;\n /** Show welcome state */\n showSalutation?: boolean;\n /** Salutation message */\n salutation?: string;\n /** Whether the agent is a portal agent */\n isPortalAgent?: boolean;\n /** Props for an optional case workflow banner rendered at the top of the chat area */\n caseWorkflow?: OmitStrict<CaseWorkflowProps, 'ref'>;\n /** Props for showing active cases in conversation */\n activeCases?: ActiveCasesProps['activeCases'];\n /** Page panel configuration */\n pagePanel?: {\n /** The page-content node rendered in the right panel. */\n content: ReactNode;\n /** Whether the right panel is currently visible. */\n visible: boolean;\n };\n /** Renders suggestion card */\n suggestionCardsView?: ReactNode;\n /** When set, pre-populates the textarea with the given text without sending. */\n draftMessage?: string;\n /** Callback triggered when the user clicks the stop button while a response is being generated. */\n onStop?: () => void;\n /** When true, indicates that a conversation is being created. */\n isCreatingConversation?: boolean;\n /** Identifies the conversation being shown. */\n conversationId?: string;\n /** Data for the questionnaireProvided questionnaire shown above the composer */\n questionnaireData?: QuestionnaireConfig;\n /** Called when the user dismisses the questionnaire without submitting. */\n onQuestionnaireDismiss?: () => void;\n /**\n * Renders a simplified agent view.\n * @default false\n */\n simplifiedAgent?: boolean;\n /** Supporting text shown below the heading */\n subHeading?: string;\n /** Display name of the operator/user */\n operatorName?: string;\n }\n>;\n\nexport interface MessageFeedbackProps {\n messageId: MessageProps['id'];\n feedback: CoachMessageProps['feedback'];\n}\n\nexport interface UtilitiesGenAICoachProps extends OmitStrict<GenAICoachProps, 'variant'> {\n onClose?: () => void;\n}\n\nexport interface GenAICoachScrollState {\n userAtBottom: boolean;\n isStreamingActive: boolean;\n smoothScrollOnEnd: boolean;\n initialBufferApplied: boolean;\n ignoreNextScrollEvent: boolean;\n lastScrollTop: number | null;\n bufferMinHeight: number | null;\n}\n\nexport interface PortalAgentSplitViewProps extends TestIdProp {\n /** The rendered agent chat panel (left side). */\n children: ReactNode;\n /** Content and visibility state for the right (page) panel. */\n pagePanel: {\n content: ReactNode;\n visible: boolean;\n };\n /** Whether the agent (left) panel itself is visible. */\n showAgentPanel: boolean;\n /** Whether the agent panel is expanded to full width. */\n agentExpanded?: boolean;\n /** Persisted width for the agent panel as a CSS length or percentage. */\n initialWidth?: string;\n /** Callback fired when the user finishes resizing the agent panel. */\n onResizeEnd?: (width: string) => void;\n}\n\nexport interface CoachLoadingContentProps {\n message?: string;\n markdownMap?: MDMap;\n progressSteps?: string[];\n progressStepsCompleted?: number;\n simplified?: boolean;\n}\n"]}
|
|
1
|
+
{"version":3,"file":"GenAICoach.types.js","sourceRoot":"","sources":["../../../src/components/GenAICoach/GenAICoach.types.ts"],"names":[],"mappings":"","sourcesContent":["import type { ReactNode, Ref, MouseEventHandler } from 'react';\n\nimport type {\n BaseProps,\n MenuItemProps,\n MenuProps,\n NoChildrenProp,\n OmitStrict,\n ProgressProps,\n RequireAtLeastOne,\n TestIdProp,\n WithAttributes,\n ActionsProps,\n FileItemProps,\n FileDisplayProps,\n LightboxProps\n} from '@pega/cosmos-react-core';\nimport type { MDMap } from '@pega/cosmos-react-rte';\n\nexport interface AgentModeProps {\n modes: MenuProps['items'];\n onAgentModeChange: (id: MenuItemProps['id']) => void;\n}\n\nexport interface ModelSelectorProps {\n options: MenuProps['items'];\n onModelChange: (id: MenuItemProps['id']) => void;\n}\n\nexport interface CaseWorkflowStepProps {\n id: string;\n name: string;\n completed?: boolean;\n}\n\nexport interface CaseWorkflowStageProps {\n name: string;\n id: string;\n current?: boolean;\n completed?: boolean;\n currentStepId?: string;\n steps?: CaseWorkflowStepProps[];\n}\n\nexport interface CaseWorkflowProps extends BaseProps, NoChildrenProp {\n heading: string;\n icon?: string | URL;\n stages: CaseWorkflowStageProps[];\n onHeadingClick: MouseEventHandler<HTMLButtonElement>;\n ref?: Ref<HTMLDivElement>;\n}\n\nexport interface ActiveCaseItem {\n id: string;\n heading: string;\n stages: CaseWorkflowStageProps[];\n onHeadingClick?: MouseEventHandler<HTMLButtonElement>;\n}\n\nexport interface ActiveCasesProps extends BaseProps, NoChildrenProp {\n activeCases: ActiveCaseItem[];\n ref?: Ref<HTMLButtonElement>;\n}\n\nexport interface OptionItem {\n key: string;\n label: string;\n displayLabel?: string;\n selected?: boolean;\n}\n\nexport interface FormAnswer {\n value: string[];\n questionText: string;\n}\n\nexport interface Question {\n field: string;\n type: 'single' | 'multi';\n questionText: string;\n defaultInput?: string[] | string;\n optionItems: OptionItem[];\n}\n\nexport interface QuestionnaireConfig {\n questions: Question[];\n inline?: boolean;\n}\n\nexport interface QuestionItemProps {\n question: Question;\n answer: FormAnswer;\n onChange: (field: string, key: string, selected: boolean) => void;\n}\n\nexport interface QuestionnaireProps {\n data: QuestionnaireConfig;\n onChange: (answers: Record<string, FormAnswer>) => void;\n onCancel: () => void;\n}\n\nexport type State = 'minimized' | 'maximized';\nexport type Reaction = 'liked' | 'disliked';\nexport type FeedbackPrompt = 'liked' | 'disliked' | 'both';\n\nexport type Variant =\n | {\n placement: 'utilities';\n state: State;\n onStateChange: (state: State) => void;\n }\n | { placement: 'fullpage' }\n | { placement: 'dialog'; onClose: () => void };\n\nexport interface MessageProps {\n id: string;\n message?: string;\n announceInteraction?: boolean;\n simplifiedAgent?: boolean;\n showSenderInfo?: boolean;\n attachments?: FileDisplayProps[];\n /**\n * Whether the message is a suggestion from the composer\n * @default false\n */\n fromComposer?: boolean;\n /** Ref forwarded to the wrapping element. */\n ref?: Ref<HTMLLIElement>;\n}\n\nexport type InitialSuggestedMessageProps = Pick<GenAICoachProps, 'onSend'> &\n BaseProps &\n TestIdProp &\n MessageProps;\n\nexport interface UserMessageProps extends BaseProps, TestIdProp, MessageProps {\n from: 'user';\n userName?: string;\n}\n\nexport type ToolParameters = {\n id: string;\n label: string;\n type: 'text' | 'number' | 'boolean';\n value: string;\n required: boolean;\n readOnly: boolean;\n};\n\nexport interface Tool {\n id: string;\n name: string;\n message: string;\n decision: 'accept' | 'modify' | 'reject';\n parameters: ToolParameters[];\n}\n\nexport interface ToolDetailsProps {\n toolMessage: string;\n isToolConfirmation: true;\n tools: Tool[];\n onSubmit?: (tools: Tool[]) => void;\n onCancel?: () => void;\n toolsConfirmed: boolean;\n}\n\nexport interface ToolCandidateDetailsProps {\n loading?: boolean;\n error?: string;\n renderCandidatesTable?: () => ReactNode;\n}\n\nexport type CoachMessageProps = RequireAtLeastOne<\n Partial<Pick<GenAICoachProps, 'onSend'>> &\n BaseProps &\n TestIdProp &\n Pick<\n MessageProps,\n 'id' | 'announceInteraction' | 'simplifiedAgent' | 'showSenderInfo' | 'ref'\n > &\n (\n | ToolDetailsProps\n | {\n toolMessage?: never;\n isToolConfirmation?: false;\n tools?: never;\n onSubmit?: never;\n onCancel?: never;\n toolsConfirmed?: never;\n }\n ) & {\n from: 'coach';\n coachName: string;\n /** Indicates a synthetic coach message */\n isCustom?: boolean;\n suggestions?: (Pick<MessageProps, 'id' | 'message'> & { selected?: boolean })[];\n loading?: boolean;\n progressSteps?: string[];\n progressStepsCompleted?: number;\n enableStreaming?: boolean;\n allChunksReceived?: boolean;\n error?: string;\n message?: ReactNode;\n messageActions?: ActionsProps;\n markdownMap?: MDMap;\n onStreamingUpdate?: (isStreamingDone: boolean) => void;\n feedback?: {\n reaction: Reaction | undefined;\n feedbackText?: string;\n onReaction: (id: MessageProps['id'], reaction: Reaction | undefined) => void;\n onFeedbackComplete: (id: MessageProps['id'], comment?: string) => void;\n promptFeedbackOn?: FeedbackPrompt;\n allowFeedbackResubmission?: boolean;\n };\n toolCandidates?: {\n toolState: ToolCandidateDetailsProps;\n onViewToolsConsidered: (id: MessageProps['id']) => void;\n };\n onAnimationCursorUpdate?: (animatedTillCursor: number) => void;\n animationInitialCursorPos?: number;\n },\n 'loading' | 'message' | 'error'\n>;\n\nexport interface CaseDetails {\n /** Unique case identifier */\n id: string;\n /** Case type identifier */\n type: string;\n /** Human-readable label */\n label?: string;\n}\n\nexport interface SystemMessageProps\n extends TestIdProp,\n Pick<MessageProps, 'id' | 'message' | 'ref' | 'announceInteraction' | 'simplifiedAgent'> {\n from: 'system';\n loading?: boolean;\n /** Present when this system message represents a case creation event. */\n caseInfo?: CaseDetails;\n /** When true, renders this system message as a \"Response stopped\" indicator. */\n stopped?: boolean;\n}\n\nexport type GenAIMessageProps = UserMessageProps | CoachMessageProps | SystemMessageProps;\n\nexport interface ConversationHistoryProps extends TestIdProp {\n /** List of History items. */\n data: {\n id: string;\n section: string;\n conversations: {\n id: string;\n title: string;\n }[];\n }[];\n /** Click event for items within the list. */\n onItemClick?: (conversationId: string) => void;\n /** List loading state. */\n loading?: boolean;\n /** Called at scroll trigger to load more items. */\n loadMore?: () => void;\n /** True if History view is rendered in Full page view. */\n inFullPage?: boolean;\n /** Callback triggered when closing the history view. */\n onDismiss: () => void;\n /** Id of the selected item. */\n selectedItemId?: string;\n /** Set if there is an error in retreiving the data. */\n error?: string;\n /** Ref forwarded to the wrapping element. */\n ref?: Ref<HTMLUListElement>;\n}\n\nexport type SendMessageProps = OmitStrict<MessageProps, 'attachments'> & {\n attachmentIds?: string[];\n tools?: Tool[];\n toolMessage?: string;\n formAnswers?: Record<string, FormAnswer>;\n};\n\nexport type GenAICoachProps = WithAttributes<\n 'div',\n TestIdProp & {\n /** Chat loading indicator */\n loading?: boolean | ProgressProps['message'];\n /** Set if there is an error in retreiving the data */\n error?: string;\n /** Coaches available in the chat header */\n coachOptions: MenuProps['items'];\n /** Handle the coach selections */\n onCoachChange: (id: MenuProps['id']) => void;\n /** Suggested messages to start the conversation */\n initialSuggestedMessages?: MessageProps[];\n /** Additional suggestions presented at the bottom of the chat window */\n suggestions?: MenuProps['items'];\n /** Send prompts */\n onSend: (message: SendMessageProps) => void;\n\n stopProcess?: () => void;\n /** Messages to be shown in the chatting window. */\n messages?: GenAIMessageProps[];\n /** Placement of the component */\n variant: Variant;\n /** From landing page utilities */\n isInLandingPageUtilities?: boolean;\n /** Callback when component is mounted. */\n onOpen?: () => void;\n /**\n * User would be guided with selective prompts to enable interaction with coach.\n * @default false\n */\n guidedMode?: boolean;\n /** Pass an array of Action objects to show Action button. */\n actions?: ActionsProps;\n /** Callback to start a new chat. */\n onNewChat?: () => void;\n /** Pass data to show history view. */\n conversationHistory?: ConversationHistoryProps;\n /** Opens conversation history from the composer. */\n onConversationHistoryOpen?: () => void;\n /** Callback triggered when the layout component changes. */\n onLayoutChange?: (inFullPage: boolean) => void;\n /** Callback when attachment icon is clicked */\n onAddAttachment?: (files: File[]) => void;\n /** Allows selecting multiple files at once in the attachment picker. */\n showMultipleAttachments?: boolean;\n /** Attachments list */\n attachments?: FileItemProps[];\n /** Error in attachments */\n attachmentsError?: string;\n /** Inline error shown on the composer textarea (e.g. when conversation creation fails) */\n conversationError?: string;\n /** Configuration for the Lightbox component that handles preview of media attachments and files */\n lightboxPreviewProps?: LightboxProps;\n /** Enable full screen */\n allowFullScreen?: boolean;\n /** Enable voice to text */\n voiceToTextProps?: {\n enableDictation: boolean;\n langCode: string;\n };\n /** Agent mode selector shown in the composer toolbar. Hidden when not provided. */\n agentModeProps?: AgentModeProps;\n /** Model selector shown in the composer toolbar. Hidden when not provided. */\n modelSelectorProps?: ModelSelectorProps;\n /** Show welcome state */\n showSalutation?: boolean;\n /** Salutation message */\n salutation?: string;\n /** Whether the agent is a portal agent */\n isPortalAgent?: boolean;\n /** Props for an optional case workflow banner rendered at the top of the chat area */\n caseWorkflow?: OmitStrict<CaseWorkflowProps, 'ref'>;\n /** Props for showing active cases in conversation */\n activeCases?: ActiveCasesProps['activeCases'];\n /** Page panel configuration */\n pagePanel?: {\n /** The page-content node rendered in the right panel. */\n content: ReactNode;\n /** Whether the right panel is currently visible. */\n visible: boolean;\n };\n /** Renders suggestion card */\n suggestionCardsView?: ReactNode;\n /** When set, pre-populates the textarea with the given text without sending. */\n draftMessage?: string;\n /** Callback triggered when the user clicks the stop button while a response is being generated. */\n onStop?: () => void;\n /** When true, indicates that a conversation is being created. */\n isCreatingConversation?: boolean;\n /** Identifies the conversation being shown. */\n conversationId?: string;\n /** Data for the questionnaireProvided questionnaire shown above the composer */\n questionnaireData?: QuestionnaireConfig;\n /** Called when the user dismisses the questionnaire without submitting. */\n onQuestionnaireDismiss?: () => void;\n /**\n * Renders a simplified agent view.\n * @default false\n */\n simplifiedAgent?: boolean;\n /** Supporting text shown below the heading */\n subHeading?: string;\n /** Display name of the operator/user */\n operatorName?: string;\n }\n>;\n\nexport interface MessageFeedbackProps {\n messageId: MessageProps['id'];\n feedback: CoachMessageProps['feedback'];\n}\n\nexport interface UtilitiesGenAICoachProps extends OmitStrict<GenAICoachProps, 'variant'> {\n onClose?: () => void;\n}\n\nexport interface GenAICoachScrollState {\n userAtBottom: boolean;\n isStreamingActive: boolean;\n smoothScrollOnEnd: boolean;\n initialBufferApplied: boolean;\n ignoreNextScrollEvent: boolean;\n lastScrollTop: number | null;\n bufferMinHeight: number | null;\n}\n\nexport interface PortalAgentSplitViewProps extends TestIdProp {\n /** The rendered agent chat panel (left side). */\n children: ReactNode;\n /** Content and visibility state for the right (page) panel. */\n pagePanel: {\n content: ReactNode;\n visible: boolean;\n };\n /** Whether the agent (left) panel itself is visible. */\n showAgentPanel: boolean;\n /** Whether the agent panel is expanded to full width. */\n agentExpanded?: boolean;\n /** Persisted width for the agent panel as a CSS length or percentage. */\n initialWidth?: string;\n /** Callback fired when the user finishes resizing the agent panel. */\n onResizeEnd?: (width: string) => void;\n}\n\nexport interface CoachLoadingContentProps {\n message?: string;\n markdownMap?: MDMap;\n progressSteps?: string[];\n progressStepsCompleted?: number;\n simplified?: boolean;\n}\n"]}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"GenAIMessageFeedback.d.ts","sourceRoot":"","sources":["../../../src/components/GenAICoach/GenAIMessageFeedback.tsx"],"names":[],"mappings":"AAmBA,OAAO,KAAK,EAAE,oBAAoB,EAAY,MAAM,oBAAoB,CAAC;AAIzE,QAAA,MAAM,2BAA2B,GAAI,yBAAyB,oBAAoB,
|
|
1
|
+
{"version":3,"file":"GenAIMessageFeedback.d.ts","sourceRoot":"","sources":["../../../src/components/GenAICoach/GenAIMessageFeedback.tsx"],"names":[],"mappings":"AAmBA,OAAO,KAAK,EAAE,oBAAoB,EAAY,MAAM,oBAAoB,CAAC;AAIzE,QAAA,MAAM,2BAA2B,GAAI,yBAAyB,oBAAoB,4CA8LjF,CAAC;AAEF,eAAe,2BAA2B,CAAC"}
|
|
@@ -14,6 +14,7 @@ const GenAIMessageFeedbackButtons = ({ messageId, feedback }) => {
|
|
|
14
14
|
const likeButtonRef = useRef(null);
|
|
15
15
|
const dislikeButtonRef = useRef(null);
|
|
16
16
|
const shouldOpenDialogRef = useRef(false);
|
|
17
|
+
const submittedFeedbackRef = useRef(undefined);
|
|
17
18
|
const [iconEl, seticonEl] = useElement();
|
|
18
19
|
const isLikeActive = reaction === 'liked';
|
|
19
20
|
const isDislikeActive = reaction === 'disliked';
|
|
@@ -79,7 +80,13 @@ const GenAIMessageFeedbackButtons = ({ messageId, feedback }) => {
|
|
|
79
80
|
}
|
|
80
81
|
}, [showDialog, reaction, allowFeedbackResubmission]);
|
|
81
82
|
const dialogTarget = getDialogTarget();
|
|
82
|
-
const feedbackDialog = showDialog && dialogTarget && (_jsx(FormDialog, { target: dialogTarget, heading: t('share_feedback'), onCancel: () =>
|
|
83
|
+
const feedbackDialog = showDialog && dialogTarget && (_jsx(FormDialog, { target: dialogTarget, heading: t('share_feedback'), onCancel: () => {
|
|
84
|
+
submittedFeedbackRef.current = undefined;
|
|
85
|
+
return true;
|
|
86
|
+
}, onSubmit: () => {
|
|
87
|
+
submittedFeedbackRef.current = feedbackVal;
|
|
88
|
+
return true;
|
|
89
|
+
}, onAfterClose: () => closeDialog(submittedFeedbackRef.current), onKeyDown: e => e.stopPropagation(), children: _jsx(TextArea, { value: feedbackVal, onChange: e => setFeedbackVal(e.target.value), onKeyDown: (e) => {
|
|
83
90
|
if (e.key === 'Enter' && !e.shiftKey) {
|
|
84
91
|
e.preventDefault();
|
|
85
92
|
closeDialog(feedbackVal);
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"GenAIMessageFeedback.js","sourceRoot":"","sources":["../../../src/components/GenAICoach/GenAIMessageFeedback.tsx"],"names":[],"mappings":"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","sourcesContent":["import { useCallback, useEffect, useRef, useState } from 'react';\nimport type { KeyboardEvent } from 'react';\n\nimport {\n Button,\n Flex,\n FormDialog,\n Icon,\n TextArea,\n Tooltip,\n registerIcon,\n useElement,\n useI18n\n} from '@pega/cosmos-react-core';\nimport * as thumbsUpSolidIcon from '@pega/cosmos-react-core/lib/components/Icon/icons/thumbs-up-solid.icon';\nimport * as thumbsUpIcon from '@pega/cosmos-react-core/lib/components/Icon/icons/thumbs-up.icon';\nimport * as thumbsDownSolidIcon from '@pega/cosmos-react-core/lib/components/Icon/icons/thumbs-down-solid.icon';\nimport * as thumbsDownIcon from '@pega/cosmos-react-core/lib/components/Icon/icons/thumbs-down.icon';\n\nimport type { MessageFeedbackProps, Reaction } from './GenAICoach.types';\n\nregisterIcon(thumbsUpSolidIcon, thumbsUpIcon, thumbsDownSolidIcon, thumbsDownIcon);\n\nconst GenAIMessageFeedbackButtons = ({ messageId, feedback }: MessageFeedbackProps) => {\n const {\n reaction,\n feedbackText = '',\n allowFeedbackResubmission = false,\n promptFeedbackOn = 'disliked',\n onReaction,\n onFeedbackComplete\n } = feedback ?? {};\n\n const t = useI18n();\n\n const [feedbackVal, setFeedbackVal] = useState(feedbackText);\n const [showDialog, setShowDialog] = useState(false);\n\n const likeButtonRef = useRef<HTMLButtonElement>(null);\n const dislikeButtonRef = useRef<HTMLButtonElement>(null);\n const shouldOpenDialogRef = useRef(false);\n const [iconEl, seticonEl] = useElement<HTMLDivElement>();\n\n const isLikeActive = reaction === 'liked';\n const isDislikeActive = reaction === 'disliked';\n\n const needsDialog = (reactionType: Reaction) => {\n switch (promptFeedbackOn) {\n case 'disliked':\n return reactionType === 'disliked';\n case 'liked':\n return reactionType === 'liked';\n case 'both':\n return true;\n default:\n return false;\n }\n };\n\n const handleReactionClick = useCallback(\n (reactionType: Reaction) => {\n if (reaction === reactionType) {\n if (allowFeedbackResubmission) {\n onReaction?.(messageId, undefined);\n }\n\n return;\n }\n\n onReaction?.(messageId, reactionType);\n\n if (needsDialog(reactionType)) {\n if (reaction !== reactionType) {\n setFeedbackVal('');\n } else {\n setFeedbackVal(feedbackText);\n }\n\n if (!allowFeedbackResubmission) {\n shouldOpenDialogRef.current = true;\n } else {\n setShowDialog(true);\n }\n }\n },\n [reaction, feedbackText, allowFeedbackResubmission, promptFeedbackOn, messageId, onReaction]\n );\n\n const closeDialog = useCallback(\n (comment?: string) => {\n setShowDialog(false);\n shouldOpenDialogRef.current = false;\n\n onFeedbackComplete?.(messageId, comment);\n\n if (!allowFeedbackResubmission && iconEl) {\n iconEl.focus();\n }\n },\n [allowFeedbackResubmission, onFeedbackComplete, messageId, iconEl]\n );\n\n const getDialogTarget = () => {\n if (!allowFeedbackResubmission && iconEl) {\n return iconEl;\n }\n\n return isLikeActive ? likeButtonRef.current : dislikeButtonRef.current;\n };\n\n useEffect(() => {\n if (iconEl && shouldOpenDialogRef.current && !allowFeedbackResubmission) {\n setShowDialog(true);\n shouldOpenDialogRef.current = false;\n }\n }, [iconEl, allowFeedbackResubmission]);\n\n useEffect(() => {\n if (!showDialog && reaction && allowFeedbackResubmission) {\n const reactionButton =\n reaction === 'liked' ? likeButtonRef.current : dislikeButtonRef.current;\n reactionButton?.focus();\n }\n }, [showDialog, reaction, allowFeedbackResubmission]);\n\n const dialogTarget = getDialogTarget();\n\n const feedbackDialog = showDialog && dialogTarget && (\n <FormDialog\n target={dialogTarget}\n heading={t('share_feedback')}\n onCancel={() => closeDialog()}\n onSubmit={() => closeDialog(feedbackVal)}\n onKeyDown={e => e.stopPropagation()}\n >\n <TextArea\n value={feedbackVal}\n onChange={e => setFeedbackVal(e.target.value)}\n onKeyDown={(e: KeyboardEvent<HTMLTextAreaElement>) => {\n if (e.key === 'Enter' && !e.shiftKey) {\n e.preventDefault();\n closeDialog(feedbackVal);\n }\n }}\n autoResize={false}\n />\n </FormDialog>\n );\n\n const shouldShowIcon = !allowFeedbackResubmission && reaction;\n\n if (shouldShowIcon) {\n return (\n <Flex\n container={{ pad: [0.5, undefined] }}\n ref={seticonEl}\n tabIndex={-1}\n aria-label={t('selected_noun', [isLikeActive ? t('good_response') : t('bad_response')])}\n role='status'\n >\n <Icon name={isLikeActive ? 'thumbs-up-solid' : 'thumbs-down-solid'} emphasized />\n\n <Tooltip target={iconEl} describeTarget={false}>\n {isLikeActive ? t('good_response') : t('bad_response')}\n </Tooltip>\n\n {feedbackDialog}\n </Flex>\n );\n }\n\n return (\n <>\n <Flex container={{ gap: 1 }}>\n <Button\n label={t('good_response')}\n variant='simple'\n icon\n compact\n ref={likeButtonRef}\n onClick={() => handleReactionClick('liked')}\n aria-pressed={isLikeActive}\n >\n <Icon name={isLikeActive ? 'thumbs-up-solid' : 'thumbs-up'} emphasized={isLikeActive} />\n </Button>\n\n <Button\n label={t('bad_response')}\n variant='simple'\n icon\n compact\n ref={dislikeButtonRef}\n onClick={() => handleReactionClick('disliked')}\n aria-pressed={isDislikeActive}\n >\n <Icon\n name={isDislikeActive ? 'thumbs-down-solid' : 'thumbs-down'}\n emphasized={isDislikeActive}\n />\n </Button>\n </Flex>\n\n {feedbackDialog}\n </>\n );\n};\n\nexport default GenAIMessageFeedbackButtons;\n"]}
|
|
1
|
+
{"version":3,"file":"GenAIMessageFeedback.js","sourceRoot":"","sources":["../../../src/components/GenAICoach/GenAIMessageFeedback.tsx"],"names":[],"mappings":"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","sourcesContent":["import { useCallback, useEffect, useRef, useState } from 'react';\nimport type { KeyboardEvent } from 'react';\n\nimport {\n Button,\n Flex,\n FormDialog,\n Icon,\n TextArea,\n Tooltip,\n registerIcon,\n useElement,\n useI18n\n} from '@pega/cosmos-react-core';\nimport * as thumbsUpSolidIcon from '@pega/cosmos-react-core/lib/components/Icon/icons/thumbs-up-solid.icon';\nimport * as thumbsUpIcon from '@pega/cosmos-react-core/lib/components/Icon/icons/thumbs-up.icon';\nimport * as thumbsDownSolidIcon from '@pega/cosmos-react-core/lib/components/Icon/icons/thumbs-down-solid.icon';\nimport * as thumbsDownIcon from '@pega/cosmos-react-core/lib/components/Icon/icons/thumbs-down.icon';\n\nimport type { MessageFeedbackProps, Reaction } from './GenAICoach.types';\n\nregisterIcon(thumbsUpSolidIcon, thumbsUpIcon, thumbsDownSolidIcon, thumbsDownIcon);\n\nconst GenAIMessageFeedbackButtons = ({ messageId, feedback }: MessageFeedbackProps) => {\n const {\n reaction,\n feedbackText = '',\n allowFeedbackResubmission = false,\n promptFeedbackOn = 'disliked',\n onReaction,\n onFeedbackComplete\n } = feedback ?? {};\n\n const t = useI18n();\n\n const [feedbackVal, setFeedbackVal] = useState(feedbackText);\n const [showDialog, setShowDialog] = useState(false);\n\n const likeButtonRef = useRef<HTMLButtonElement>(null);\n const dislikeButtonRef = useRef<HTMLButtonElement>(null);\n const shouldOpenDialogRef = useRef(false);\n const submittedFeedbackRef = useRef<string | undefined>(undefined);\n const [iconEl, seticonEl] = useElement<HTMLDivElement>();\n\n const isLikeActive = reaction === 'liked';\n const isDislikeActive = reaction === 'disliked';\n\n const needsDialog = (reactionType: Reaction) => {\n switch (promptFeedbackOn) {\n case 'disliked':\n return reactionType === 'disliked';\n case 'liked':\n return reactionType === 'liked';\n case 'both':\n return true;\n default:\n return false;\n }\n };\n\n const handleReactionClick = useCallback(\n (reactionType: Reaction) => {\n if (reaction === reactionType) {\n if (allowFeedbackResubmission) {\n onReaction?.(messageId, undefined);\n }\n\n return;\n }\n\n onReaction?.(messageId, reactionType);\n\n if (needsDialog(reactionType)) {\n if (reaction !== reactionType) {\n setFeedbackVal('');\n } else {\n setFeedbackVal(feedbackText);\n }\n\n if (!allowFeedbackResubmission) {\n shouldOpenDialogRef.current = true;\n } else {\n setShowDialog(true);\n }\n }\n },\n [reaction, feedbackText, allowFeedbackResubmission, promptFeedbackOn, messageId, onReaction]\n );\n\n const closeDialog = useCallback(\n (comment?: string) => {\n setShowDialog(false);\n shouldOpenDialogRef.current = false;\n\n onFeedbackComplete?.(messageId, comment);\n\n if (!allowFeedbackResubmission && iconEl) {\n iconEl.focus();\n }\n },\n [allowFeedbackResubmission, onFeedbackComplete, messageId, iconEl]\n );\n\n const getDialogTarget = () => {\n if (!allowFeedbackResubmission && iconEl) {\n return iconEl;\n }\n\n return isLikeActive ? likeButtonRef.current : dislikeButtonRef.current;\n };\n\n useEffect(() => {\n if (iconEl && shouldOpenDialogRef.current && !allowFeedbackResubmission) {\n setShowDialog(true);\n shouldOpenDialogRef.current = false;\n }\n }, [iconEl, allowFeedbackResubmission]);\n\n useEffect(() => {\n if (!showDialog && reaction && allowFeedbackResubmission) {\n const reactionButton =\n reaction === 'liked' ? likeButtonRef.current : dislikeButtonRef.current;\n reactionButton?.focus();\n }\n }, [showDialog, reaction, allowFeedbackResubmission]);\n\n const dialogTarget = getDialogTarget();\n\n const feedbackDialog = showDialog && dialogTarget && (\n <FormDialog\n target={dialogTarget}\n heading={t('share_feedback')}\n onCancel={() => {\n submittedFeedbackRef.current = undefined;\n return true;\n }}\n onSubmit={() => {\n submittedFeedbackRef.current = feedbackVal;\n return true;\n }}\n onAfterClose={() => closeDialog(submittedFeedbackRef.current)}\n onKeyDown={e => e.stopPropagation()}\n >\n <TextArea\n value={feedbackVal}\n onChange={e => setFeedbackVal(e.target.value)}\n onKeyDown={(e: KeyboardEvent<HTMLTextAreaElement>) => {\n if (e.key === 'Enter' && !e.shiftKey) {\n e.preventDefault();\n closeDialog(feedbackVal);\n }\n }}\n autoResize={false}\n />\n </FormDialog>\n );\n\n const shouldShowIcon = !allowFeedbackResubmission && reaction;\n\n if (shouldShowIcon) {\n return (\n <Flex\n container={{ pad: [0.5, undefined] }}\n ref={seticonEl}\n tabIndex={-1}\n aria-label={t('selected_noun', [isLikeActive ? t('good_response') : t('bad_response')])}\n role='status'\n >\n <Icon name={isLikeActive ? 'thumbs-up-solid' : 'thumbs-down-solid'} emphasized />\n\n <Tooltip target={iconEl} describeTarget={false}>\n {isLikeActive ? t('good_response') : t('bad_response')}\n </Tooltip>\n\n {feedbackDialog}\n </Flex>\n );\n }\n\n return (\n <>\n <Flex container={{ gap: 1 }}>\n <Button\n label={t('good_response')}\n variant='simple'\n icon\n compact\n ref={likeButtonRef}\n onClick={() => handleReactionClick('liked')}\n aria-pressed={isLikeActive}\n >\n <Icon name={isLikeActive ? 'thumbs-up-solid' : 'thumbs-up'} emphasized={isLikeActive} />\n </Button>\n\n <Button\n label={t('bad_response')}\n variant='simple'\n icon\n compact\n ref={dislikeButtonRef}\n onClick={() => handleReactionClick('disliked')}\n aria-pressed={isDislikeActive}\n >\n <Icon\n name={isDislikeActive ? 'thumbs-down-solid' : 'thumbs-down'}\n emphasized={isDislikeActive}\n />\n </Button>\n </Flex>\n\n {feedbackDialog}\n </>\n );\n};\n\nexport default GenAIMessageFeedbackButtons;\n"]}
|
|
@@ -0,0 +1,7 @@
|
|
|
1
|
+
import type { ForwardRefForwardPropsComponent } from '@pega/cosmos-react-core';
|
|
2
|
+
import type { HeroBannerProps } from './HeroBanner.types';
|
|
3
|
+
declare const _default: ForwardRefForwardPropsComponent<HeroBannerProps> & {
|
|
4
|
+
getTestIds: (testIdProp?: import("@pega/cosmos-react-core").TestIdProp["testId"]) => import("@pega/cosmos-react-core").TestIdsRecord<readonly ["content", "heading", "subheading", "body", "action", "media", "overlay"]>;
|
|
5
|
+
};
|
|
6
|
+
export default _default;
|
|
7
|
+
//# sourceMappingURL=HeroBanner.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"HeroBanner.d.ts","sourceRoot":"","sources":["../../../src/components/HeroBanner/HeroBanner.tsx"],"names":[],"mappings":"AAeA,OAAO,KAAK,EAAE,+BAA+B,EAAE,MAAM,yBAAyB,CAAC;AAE/E,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,oBAAoB,CAAC;;;;AAiM1D,wBAA6D"}
|
|
@@ -0,0 +1,63 @@
|
|
|
1
|
+
import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
|
|
2
|
+
import { forwardRef, useEffect, useState } from 'react';
|
|
3
|
+
import { calculateForegroundColor, createClassName, isSolidColor, useBreakpoint, useConsolidatedRef, useI18n, useTestIds, useTheme, useUID, withTestIds } from '@pega/cosmos-react-core';
|
|
4
|
+
import { getHeroBannerTestIds } from './HeroBanner.test-ids';
|
|
5
|
+
import { StyledHeroBanner, StyledHeroBannerAction, StyledHeroBannerContent, StyledHeroBannerCopy, StyledHeroBannerMedia, StyledHeroBannerOverlay, StyledHeroBannerText } from './HeroBanner.styles';
|
|
6
|
+
import { isSafeHref, isSafeImageSource, toBackgroundCss, toColorCss, toCssUrl, toOverlayCss } from './utils';
|
|
7
|
+
const text = (value) => value?.trim() || undefined;
|
|
8
|
+
const HeroBanner = forwardRef(function HeroBanner(props, ref) {
|
|
9
|
+
const { heading, subheading, body, action, media, colors, fitToParent = false, testId, className, ...restProps } = props;
|
|
10
|
+
const theme = useTheme();
|
|
11
|
+
const t = useI18n();
|
|
12
|
+
const rootRef = useConsolidatedRef(ref);
|
|
13
|
+
// Follows the width of the banner itself rather than the viewport.
|
|
14
|
+
const sideBySide = useBreakpoint('sm', { breakpointRef: rootRef });
|
|
15
|
+
const testIds = useTestIds(testId, getHeroBannerTestIds);
|
|
16
|
+
const headingId = useUID();
|
|
17
|
+
const [failedMediaSource, setFailedMediaSource] = useState();
|
|
18
|
+
const preloadSource = text(media?.src);
|
|
19
|
+
// A CSS background gives no load error, so the image is requested once to find out if it can be shown.
|
|
20
|
+
useEffect(() => {
|
|
21
|
+
if (!isSafeImageSource(preloadSource) || !preloadSource)
|
|
22
|
+
return undefined;
|
|
23
|
+
const probe = new Image();
|
|
24
|
+
probe.onerror = () => setFailedMediaSource(preloadSource);
|
|
25
|
+
probe.src = preloadSource;
|
|
26
|
+
return () => {
|
|
27
|
+
probe.onerror = null;
|
|
28
|
+
};
|
|
29
|
+
}, [preloadSource]);
|
|
30
|
+
const { base: { palette: { 'brand-primary': brandPrimary } }, components: { 'hero-banner': tokens } } = theme;
|
|
31
|
+
const headingText = text(heading);
|
|
32
|
+
const subheadingText = text(subheading);
|
|
33
|
+
const bodyText = text(body);
|
|
34
|
+
const requestedMediaSource = isSafeImageSource(media?.src) ? text(media?.src) : undefined;
|
|
35
|
+
const mediaSource = requestedMediaSource !== failedMediaSource ? requestedMediaSource : undefined;
|
|
36
|
+
const activeAction = action && text(action.label) && isSafeHref(action.href) ? action : undefined;
|
|
37
|
+
if (!headingText && !subheadingText && !bodyText && !activeAction && !mediaSource)
|
|
38
|
+
return null;
|
|
39
|
+
// Theme values are checked like the overrides, so a malformed theme can never put raw text into the CSS.
|
|
40
|
+
const themeBackground = toBackgroundCss(tokens.background) ?? toColorCss(brandPrimary) ?? 'transparent';
|
|
41
|
+
const themeColor = (token) => (token === 'auto' || toColorCss(token) ? token : 'auto');
|
|
42
|
+
const themeOverlay = toOverlayCss(tokens.overlay) ?? 'transparent';
|
|
43
|
+
const background = toBackgroundCss(colors?.background) ?? themeBackground;
|
|
44
|
+
// Keeps text readable while a background image loads, or when it cannot be loaded.
|
|
45
|
+
const fallbackColor = isSolidColor(themeBackground)
|
|
46
|
+
? themeBackground
|
|
47
|
+
: toColorCss(brandPrimary) ?? 'transparent';
|
|
48
|
+
const contrastBase = isSolidColor(background) ? background : fallbackColor;
|
|
49
|
+
// The color is the last layer of an image background, so it shows while the image loads or fails.
|
|
50
|
+
const backgroundCss = /^url\(/i.test(background) ? `${background}, ${fallbackColor}` : background;
|
|
51
|
+
const resolveColor = (override, token) => calculateForegroundColor(contrastBase, toColorCss(override) ?? themeColor(token), theme);
|
|
52
|
+
const buttonBackground = resolveColor(colors?.button, tokens['button-color']);
|
|
53
|
+
const overlay = toOverlayCss(colors?.overlay) ?? themeOverlay;
|
|
54
|
+
const showOverlay = overlay.trim().toLowerCase() !== 'transparent';
|
|
55
|
+
const mediaAlignment = mediaSource ? media?.alignment ?? 'left' : undefined;
|
|
56
|
+
const mediaPanel = mediaSource && (_jsx(StyledHeroBannerMedia, { "aria-hidden": 'true', "data-testid": testIds.media, className: createClassName('hero-banner-media'), "$source": toCssUrl(mediaSource), "$size": media?.size ?? 'auto', "$position": media?.position ?? 'center', "$repeat": media?.repeat ?? 'no-repeat' }));
|
|
57
|
+
return (_jsxs(StyledHeroBanner, { "data-testid": testIds.root, ...restProps, ref: rootRef, className: createClassName('hero-banner', className), "aria-labelledby": headingText ? headingId : undefined, "aria-label": headingText ? undefined : t('hero_banner'), "$background": backgroundCss, "$color": resolveColor(undefined, tokens['body-color']), "$fitToParent": fitToParent, children: [showOverlay && (_jsx(StyledHeroBannerOverlay, { "aria-hidden": 'true', "data-testid": testIds.overlay, "$overlay": overlay })), _jsxs(StyledHeroBannerContent, { "data-testid": testIds.content, className: createClassName('hero-banner-content'), "$mediaAlignment": mediaAlignment, "$sideBySide": sideBySide, children: [mediaAlignment === 'left' && mediaPanel, (headingText || subheadingText || bodyText || activeAction) && (_jsxs(StyledHeroBannerText, { className: createClassName('hero-banner-text'), children: [headingText && (_jsx(StyledHeroBannerCopy, { variant: 'h2', id: headingId, "data-testid": testIds.heading, "$color": resolveColor(colors?.heading, tokens['heading-color']), "$pageHeading": true, children: headingText })), subheadingText && (_jsx(StyledHeroBannerCopy, { as: 'p', variant: 'h3', "data-testid": testIds.subheading, "$color": resolveColor(colors?.subheading, tokens['subheading-color']), children: subheadingText })), bodyText && (_jsx(StyledHeroBannerCopy, { as: 'p', "data-testid": testIds.body, "$color": resolveColor(colors?.body, tokens['body-color']), children: bodyText })), activeAction && (_jsx(StyledHeroBannerAction, { variant: 'primary', href: activeAction.href.trim(), "data-testid": testIds.action, "$background": buttonBackground, "$color": calculateForegroundColor(buttonBackground, 'auto', theme), ...(activeAction.external && {
|
|
58
|
+
target: '_blank',
|
|
59
|
+
rel: 'noopener noreferrer'
|
|
60
|
+
}), children: activeAction.label.trim() }))] })), mediaAlignment === 'right' && mediaPanel] })] }));
|
|
61
|
+
});
|
|
62
|
+
export default withTestIds(HeroBanner, getHeroBannerTestIds);
|
|
63
|
+
//# sourceMappingURL=HeroBanner.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"HeroBanner.js","sourceRoot":"","sources":["../../../src/components/HeroBanner/HeroBanner.tsx"],"names":[],"mappings":"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","sourcesContent":["import { forwardRef, useEffect, useState } from 'react';\nimport type { PropsWithoutRef } from 'react';\n\nimport {\n calculateForegroundColor,\n createClassName,\n isSolidColor,\n useBreakpoint,\n useConsolidatedRef,\n useI18n,\n useTestIds,\n useTheme,\n useUID,\n withTestIds\n} from '@pega/cosmos-react-core';\nimport type { ForwardRefForwardPropsComponent } from '@pega/cosmos-react-core';\n\nimport type { HeroBannerProps } from './HeroBanner.types';\nimport { getHeroBannerTestIds } from './HeroBanner.test-ids';\nimport {\n StyledHeroBanner,\n StyledHeroBannerAction,\n StyledHeroBannerContent,\n StyledHeroBannerCopy,\n StyledHeroBannerMedia,\n StyledHeroBannerOverlay,\n StyledHeroBannerText\n} from './HeroBanner.styles';\nimport {\n isSafeHref,\n isSafeImageSource,\n toBackgroundCss,\n toColorCss,\n toCssUrl,\n toOverlayCss\n} from './utils';\n\nconst text = (value?: string) => value?.trim() || undefined;\n\nconst HeroBanner: ForwardRefForwardPropsComponent<HeroBannerProps> = forwardRef(function HeroBanner(\n props: PropsWithoutRef<HeroBannerProps>,\n ref: HeroBannerProps['ref']\n) {\n const {\n heading,\n subheading,\n body,\n action,\n media,\n colors,\n fitToParent = false,\n testId,\n className,\n ...restProps\n } = props;\n\n const theme = useTheme();\n const t = useI18n();\n const rootRef = useConsolidatedRef(ref);\n // Follows the width of the banner itself rather than the viewport.\n const sideBySide = useBreakpoint('sm', { breakpointRef: rootRef });\n const testIds = useTestIds(testId, getHeroBannerTestIds);\n const headingId = useUID();\n const [failedMediaSource, setFailedMediaSource] = useState<string>();\n\n const preloadSource = text(media?.src);\n // A CSS background gives no load error, so the image is requested once to find out if it can be shown.\n useEffect(() => {\n if (!isSafeImageSource(preloadSource) || !preloadSource) return undefined;\n\n const probe = new Image();\n probe.onerror = () => setFailedMediaSource(preloadSource);\n probe.src = preloadSource;\n\n return () => {\n probe.onerror = null;\n };\n }, [preloadSource]);\n\n const {\n base: {\n palette: { 'brand-primary': brandPrimary }\n },\n components: { 'hero-banner': tokens }\n } = theme;\n\n const headingText = text(heading);\n const subheadingText = text(subheading);\n const bodyText = text(body);\n const requestedMediaSource = isSafeImageSource(media?.src) ? text(media?.src) : undefined;\n const mediaSource = requestedMediaSource !== failedMediaSource ? requestedMediaSource : undefined;\n const activeAction = action && text(action.label) && isSafeHref(action.href) ? action : undefined;\n\n if (!headingText && !subheadingText && !bodyText && !activeAction && !mediaSource) return null;\n\n // Theme values are checked like the overrides, so a malformed theme can never put raw text into the CSS.\n const themeBackground =\n toBackgroundCss(tokens.background) ?? toColorCss(brandPrimary) ?? 'transparent';\n const themeColor = (token: string) => (token === 'auto' || toColorCss(token) ? token : 'auto');\n const themeOverlay = toOverlayCss(tokens.overlay) ?? 'transparent';\n\n const background = toBackgroundCss(colors?.background) ?? themeBackground;\n // Keeps text readable while a background image loads, or when it cannot be loaded.\n const fallbackColor = isSolidColor(themeBackground)\n ? themeBackground\n : toColorCss(brandPrimary) ?? 'transparent';\n const contrastBase = isSolidColor(background) ? background : fallbackColor;\n // The color is the last layer of an image background, so it shows while the image loads or fails.\n const backgroundCss = /^url\\(/i.test(background) ? `${background}, ${fallbackColor}` : background;\n const resolveColor = (override: string | undefined, token: string) =>\n calculateForegroundColor(contrastBase, toColorCss(override) ?? themeColor(token), theme);\n\n const buttonBackground = resolveColor(colors?.button, tokens['button-color']);\n const overlay = toOverlayCss(colors?.overlay) ?? themeOverlay;\n const showOverlay = overlay.trim().toLowerCase() !== 'transparent';\n\n const mediaAlignment = mediaSource ? media?.alignment ?? 'left' : undefined;\n const mediaPanel = mediaSource && (\n <StyledHeroBannerMedia\n aria-hidden='true'\n data-testid={testIds.media}\n className={createClassName('hero-banner-media')}\n $source={toCssUrl(mediaSource)}\n $size={media?.size ?? 'auto'}\n $position={media?.position ?? 'center'}\n $repeat={media?.repeat ?? 'no-repeat'}\n />\n );\n\n return (\n <StyledHeroBanner\n data-testid={testIds.root}\n {...restProps}\n ref={rootRef}\n className={createClassName('hero-banner', className)}\n aria-labelledby={headingText ? headingId : undefined}\n aria-label={headingText ? undefined : t('hero_banner')}\n $background={backgroundCss}\n $color={resolveColor(undefined, tokens['body-color'])}\n $fitToParent={fitToParent}\n >\n {showOverlay && (\n <StyledHeroBannerOverlay\n aria-hidden='true'\n data-testid={testIds.overlay}\n $overlay={overlay}\n />\n )}\n <StyledHeroBannerContent\n data-testid={testIds.content}\n className={createClassName('hero-banner-content')}\n $mediaAlignment={mediaAlignment}\n $sideBySide={sideBySide}\n >\n {mediaAlignment === 'left' && mediaPanel}\n {(headingText || subheadingText || bodyText || activeAction) && (\n <StyledHeroBannerText className={createClassName('hero-banner-text')}>\n {headingText && (\n <StyledHeroBannerCopy\n variant='h2'\n id={headingId}\n data-testid={testIds.heading}\n $color={resolveColor(colors?.heading, tokens['heading-color'])}\n $pageHeading\n >\n {headingText}\n </StyledHeroBannerCopy>\n )}\n {subheadingText && (\n <StyledHeroBannerCopy\n as='p'\n variant='h3'\n data-testid={testIds.subheading}\n $color={resolveColor(colors?.subheading, tokens['subheading-color'])}\n >\n {subheadingText}\n </StyledHeroBannerCopy>\n )}\n {bodyText && (\n <StyledHeroBannerCopy\n as='p'\n data-testid={testIds.body}\n $color={resolveColor(colors?.body, tokens['body-color'])}\n >\n {bodyText}\n </StyledHeroBannerCopy>\n )}\n {activeAction && (\n <StyledHeroBannerAction\n variant='primary'\n href={activeAction.href.trim()}\n data-testid={testIds.action}\n $background={buttonBackground}\n $color={calculateForegroundColor(buttonBackground, 'auto', theme)}\n {...(activeAction.external && {\n target: '_blank',\n rel: 'noopener noreferrer'\n })}\n >\n {activeAction.label.trim()}\n </StyledHeroBannerAction>\n )}\n </StyledHeroBannerText>\n )}\n {mediaAlignment === 'right' && mediaPanel}\n </StyledHeroBannerContent>\n </StyledHeroBanner>\n );\n});\n\nexport default withTestIds(HeroBanner, getHeroBannerTestIds);\n"]}
|
|
@@ -0,0 +1,35 @@
|
|
|
1
|
+
import type { HeroBannerMediaAlignment, HeroBannerMediaPosition, HeroBannerMediaRepeat, HeroBannerMediaSize } from './HeroBanner.types';
|
|
2
|
+
export declare const StyledHeroBanner: import("styled-components/dist/types").IStyledComponentBase<"web", import("styled-components/dist/types").Substitute<import("react").DetailedHTMLProps<import("react").HTMLAttributes<HTMLElement>, HTMLElement>, {
|
|
3
|
+
$background: string;
|
|
4
|
+
$color: string;
|
|
5
|
+
$fitToParent: boolean;
|
|
6
|
+
}>> & string;
|
|
7
|
+
export declare const StyledHeroBannerOverlay: import("styled-components/dist/types").IStyledComponentBase<"web", import("styled-components/dist/types").Substitute<import("react").DetailedHTMLProps<import("react").HTMLAttributes<HTMLDivElement>, HTMLDivElement>, {
|
|
8
|
+
$overlay: string;
|
|
9
|
+
}>> & string;
|
|
10
|
+
export declare const StyledHeroBannerContent: import("styled-components/dist/types").IStyledComponentBase<"web", import("styled-components/dist/types").Substitute<import("react").DetailedHTMLProps<import("react").HTMLAttributes<HTMLDivElement>, HTMLDivElement>, {
|
|
11
|
+
$mediaAlignment?: HeroBannerMediaAlignment;
|
|
12
|
+
$sideBySide: boolean;
|
|
13
|
+
}>> & string;
|
|
14
|
+
interface StyledHeroBannerMediaProps {
|
|
15
|
+
$source: string;
|
|
16
|
+
$size: HeroBannerMediaSize;
|
|
17
|
+
$position: HeroBannerMediaPosition;
|
|
18
|
+
$repeat: HeroBannerMediaRepeat;
|
|
19
|
+
}
|
|
20
|
+
export declare const StyledHeroBannerMedia: import("styled-components/dist/types").IStyledComponentBase<"web", import("styled-components/dist/types").Substitute<import("react").DetailedHTMLProps<import("react").HTMLAttributes<HTMLDivElement>, HTMLDivElement>, StyledHeroBannerMediaProps>> & string;
|
|
21
|
+
export declare const StyledHeroBannerText: import("styled-components/dist/types").IStyledComponentBase<"web", import("styled-components").FastOmit<import("react").DetailedHTMLProps<import("react").HTMLAttributes<HTMLDivElement>, HTMLDivElement>, never>> & string;
|
|
22
|
+
export declare const StyledHeroBannerCopy: import("styled-components/dist/types").IStyledComponentBase<"web", import("styled-components/dist/types").Substitute<Omit<Omit<import("@pega/cosmos-react-core").TextProps, "ref"> & import("react").RefAttributes<HTMLHeadingElement | HTMLSpanElement> & import("@pega/cosmos-react-core").ForwardProps, "ref"> & {
|
|
23
|
+
ref?: ((instance: HTMLHeadingElement | HTMLSpanElement | null) => void | import("react").DO_NOT_USE_OR_YOU_WILL_BE_FIRED_CALLBACK_REF_RETURN_VALUES[keyof import("react").DO_NOT_USE_OR_YOU_WILL_BE_FIRED_CALLBACK_REF_RETURN_VALUES]) | import("react").RefObject<HTMLHeadingElement | HTMLSpanElement> | null | undefined;
|
|
24
|
+
}, {
|
|
25
|
+
$color: string;
|
|
26
|
+
$pageHeading?: boolean;
|
|
27
|
+
}>> & string & Omit<import("@pega/cosmos-react-core").ForwardRefForwardPropsComponent<import("@pega/cosmos-react-core").TextProps>, keyof import("react").Component<any, {}, any>>;
|
|
28
|
+
export declare const StyledHeroBannerAction: import("styled-components/dist/types").IStyledComponentBase<"web", import("styled-components/dist/types").Substitute<Omit<Omit<import("@pega/cosmos-react-core").ButtonProps, "ref"> & import("react").RefAttributes<HTMLAnchorElement | HTMLButtonElement> & import("@pega/cosmos-react-core").ForwardProps, "ref"> & {
|
|
29
|
+
ref?: ((instance: HTMLAnchorElement | HTMLButtonElement | null) => void | import("react").DO_NOT_USE_OR_YOU_WILL_BE_FIRED_CALLBACK_REF_RETURN_VALUES[keyof import("react").DO_NOT_USE_OR_YOU_WILL_BE_FIRED_CALLBACK_REF_RETURN_VALUES]) | import("react").RefObject<HTMLAnchorElement | HTMLButtonElement> | null | undefined;
|
|
30
|
+
}, {
|
|
31
|
+
$background: string;
|
|
32
|
+
$color: string;
|
|
33
|
+
}>> & string & Omit<import("@pega/cosmos-react-core").ForwardRefForwardPropsComponent<import("@pega/cosmos-react-core").ButtonProps>, keyof import("react").Component<any, {}, any>>;
|
|
34
|
+
export {};
|
|
35
|
+
//# sourceMappingURL=HeroBanner.styles.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"HeroBanner.styles.d.ts","sourceRoot":"","sources":["../../../src/components/HeroBanner/HeroBanner.styles.ts"],"names":[],"mappings":"AAYA,OAAO,KAAK,EACV,wBAAwB,EACxB,uBAAuB,EACvB,qBAAqB,EACrB,mBAAmB,EACpB,MAAM,oBAAoB,CAAC;AAE5B,eAAO,MAAM,gBAAgB;iBACd,MAAM;YACX,MAAM;kBACA,OAAO;YA6BrB,CAAC;AAIH,eAAO,MAAM,uBAAuB;cAA0B,MAAM;YAWnE,CAAC;AAIF,eAAO,MAAM,uBAAuB;sBAChB,wBAAwB;iBAC7B,OAAO;YAgBrB,CAAC;AAIF,UAAU,0BAA0B;IAClC,OAAO,EAAE,MAAM,CAAC;IAChB,KAAK,EAAE,mBAAmB,CAAC;IAC3B,SAAS,EAAE,uBAAuB,CAAC;IACnC,OAAO,EAAE,qBAAqB,CAAC;CAChC;AAED,eAAO,MAAM,qBAAqB,+PAajC,CAAC;AAIF,eAAO,MAAM,oBAAoB,6NAWhC,CAAC;AAIF,eAAO,MAAM,oBAAoB;;;YAA0B,MAAM;mBAAiB,OAAO;kLAmBvF,CAAC;AAIH,eAAO,MAAM,sBAAsB;;;iBACpB,MAAM;YACX,MAAM;oLA4Bd,CAAC"}
|
|
@@ -0,0 +1,118 @@
|
|
|
1
|
+
import styled, { css } from 'styled-components';
|
|
2
|
+
import { darken } from 'polished';
|
|
3
|
+
import { Button, calculateFontSize, Text, defaultThemeProp, tryCatch } from '@pega/cosmos-react-core';
|
|
4
|
+
export const StyledHeroBanner = styled.section(({ theme, $background, $color, $fitToParent }) => {
|
|
5
|
+
const { components: { 'hero-banner': { 'border-radius': borderRadius, 'box-shadow': boxShadow } } } = theme;
|
|
6
|
+
return css `
|
|
7
|
+
position: relative;
|
|
8
|
+
display: flex;
|
|
9
|
+
flex-direction: column;
|
|
10
|
+
overflow: hidden;
|
|
11
|
+
border-radius: ${borderRadius};
|
|
12
|
+
box-shadow: ${boxShadow};
|
|
13
|
+
background: ${$background};
|
|
14
|
+
color: ${$color};
|
|
15
|
+
|
|
16
|
+
${$fitToParent &&
|
|
17
|
+
css `
|
|
18
|
+
min-block-size: 100%;
|
|
19
|
+
`}
|
|
20
|
+
|
|
21
|
+
@media (forced-colors: active) {
|
|
22
|
+
background: Canvas;
|
|
23
|
+
color: CanvasText;
|
|
24
|
+
border: 0.0625rem solid CanvasText;
|
|
25
|
+
}
|
|
26
|
+
`;
|
|
27
|
+
});
|
|
28
|
+
StyledHeroBanner.defaultProps = defaultThemeProp;
|
|
29
|
+
export const StyledHeroBannerOverlay = styled.div(({ $overlay }) => css `
|
|
30
|
+
position: absolute;
|
|
31
|
+
inset: 0;
|
|
32
|
+
background: ${$overlay};
|
|
33
|
+
pointer-events: none;
|
|
34
|
+
|
|
35
|
+
@media (forced-colors: active) {
|
|
36
|
+
display: none;
|
|
37
|
+
}
|
|
38
|
+
`);
|
|
39
|
+
StyledHeroBannerOverlay.defaultProps = defaultThemeProp;
|
|
40
|
+
export const StyledHeroBannerContent = styled.div(({ $mediaAlignment, $sideBySide }) => css `
|
|
41
|
+
position: relative;
|
|
42
|
+
display: grid;
|
|
43
|
+
flex: 1;
|
|
44
|
+
grid-template-columns: minmax(0, 1fr);
|
|
45
|
+
|
|
46
|
+
${$mediaAlignment &&
|
|
47
|
+
$sideBySide &&
|
|
48
|
+
css `
|
|
49
|
+
grid-template-columns: ${$mediaAlignment === 'left'
|
|
50
|
+
? 'minmax(0, 1fr) minmax(0, 2fr)'
|
|
51
|
+
: 'minmax(0, 2fr) minmax(0, 1fr)'};
|
|
52
|
+
`}
|
|
53
|
+
`);
|
|
54
|
+
StyledHeroBannerContent.defaultProps = defaultThemeProp;
|
|
55
|
+
export const StyledHeroBannerMedia = styled.div(({ theme: { base }, $source, $size, $position, $repeat }) => css `
|
|
56
|
+
min-block-size: calc(15 * ${base.spacing});
|
|
57
|
+
padding: ${$size === 'cover' ? '0' : `calc(2 * ${base.spacing})`};
|
|
58
|
+
background-image: ${$source};
|
|
59
|
+
|
|
60
|
+
/* An image smaller than the panel is always centered; the position only chooses what a cover image crops */
|
|
61
|
+
background-position: ${$size === 'cover' ? $position : 'center'};
|
|
62
|
+
background-size: ${$size};
|
|
63
|
+
background-repeat: ${$repeat};
|
|
64
|
+
background-origin: content-box;
|
|
65
|
+
background-clip: content-box;
|
|
66
|
+
`);
|
|
67
|
+
StyledHeroBannerMedia.defaultProps = defaultThemeProp;
|
|
68
|
+
export const StyledHeroBannerText = styled.div(({ theme: { base } }) => css `
|
|
69
|
+
display: flex;
|
|
70
|
+
flex-direction: column;
|
|
71
|
+
justify-content: center;
|
|
72
|
+
align-items: flex-start;
|
|
73
|
+
gap: ${base.spacing};
|
|
74
|
+
min-inline-size: 0;
|
|
75
|
+
padding: calc(3 * ${base.spacing});
|
|
76
|
+
overflow-wrap: anywhere;
|
|
77
|
+
`);
|
|
78
|
+
StyledHeroBannerText.defaultProps = defaultThemeProp;
|
|
79
|
+
export const StyledHeroBannerCopy = styled(Text)(({ theme: { base, components }, $color, $pageHeading }) => {
|
|
80
|
+
const headingSize = calculateFontSize(base['font-size'], base['font-scale'])[components.text.h2['font-size']];
|
|
81
|
+
return css `
|
|
82
|
+
margin: 0;
|
|
83
|
+
max-inline-size: 60ch;
|
|
84
|
+
color: ${$color};
|
|
85
|
+
|
|
86
|
+
${$pageHeading &&
|
|
87
|
+
css `
|
|
88
|
+
font-size: calc(1.5 * ${headingSize});
|
|
89
|
+
`}
|
|
90
|
+
`;
|
|
91
|
+
});
|
|
92
|
+
StyledHeroBannerCopy.defaultProps = defaultThemeProp;
|
|
93
|
+
export const StyledHeroBannerAction = styled(Button)(({ theme: { base }, $background, $color }) => {
|
|
94
|
+
const hover = tryCatch(() => darken(0.08, $background), () => $background);
|
|
95
|
+
return css `
|
|
96
|
+
margin-block-start: ${base.spacing};
|
|
97
|
+
|
|
98
|
+
&& {
|
|
99
|
+
background: ${$background};
|
|
100
|
+
border-color: ${$background};
|
|
101
|
+
color: ${$color};
|
|
102
|
+
white-space: normal;
|
|
103
|
+
}
|
|
104
|
+
|
|
105
|
+
&&:hover:not(:disabled) {
|
|
106
|
+
background: ${hover};
|
|
107
|
+
border-color: ${hover};
|
|
108
|
+
}
|
|
109
|
+
|
|
110
|
+
@media (forced-colors: active) {
|
|
111
|
+
&& {
|
|
112
|
+
border-color: ButtonText;
|
|
113
|
+
}
|
|
114
|
+
}
|
|
115
|
+
`;
|
|
116
|
+
});
|
|
117
|
+
StyledHeroBannerAction.defaultProps = defaultThemeProp;
|
|
118
|
+
//# sourceMappingURL=HeroBanner.styles.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"HeroBanner.styles.js","sourceRoot":"","sources":["../../../src/components/HeroBanner/HeroBanner.styles.ts"],"names":[],"mappings":"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","sourcesContent":["import styled, { css } from 'styled-components';\nimport { darken } from 'polished';\n\nimport {\n Button,\n calculateFontSize,\n Text,\n defaultThemeProp,\n tryCatch\n} from '@pega/cosmos-react-core';\nimport type { FontSize } from '@pega/cosmos-react-core';\n\nimport type {\n HeroBannerMediaAlignment,\n HeroBannerMediaPosition,\n HeroBannerMediaRepeat,\n HeroBannerMediaSize\n} from './HeroBanner.types';\n\nexport const StyledHeroBanner = styled.section<{\n $background: string;\n $color: string;\n $fitToParent: boolean;\n}>(({ theme, $background, $color, $fitToParent }) => {\n const {\n components: {\n 'hero-banner': { 'border-radius': borderRadius, 'box-shadow': boxShadow }\n }\n } = theme;\n\n return css`\n position: relative;\n display: flex;\n flex-direction: column;\n overflow: hidden;\n border-radius: ${borderRadius};\n box-shadow: ${boxShadow};\n background: ${$background};\n color: ${$color};\n\n ${$fitToParent &&\n css`\n min-block-size: 100%;\n `}\n\n @media (forced-colors: active) {\n background: Canvas;\n color: CanvasText;\n border: 0.0625rem solid CanvasText;\n }\n `;\n});\n\nStyledHeroBanner.defaultProps = defaultThemeProp;\n\nexport const StyledHeroBannerOverlay = styled.div<{ $overlay: string }>(\n ({ $overlay }) => css`\n position: absolute;\n inset: 0;\n background: ${$overlay};\n pointer-events: none;\n\n @media (forced-colors: active) {\n display: none;\n }\n `\n);\n\nStyledHeroBannerOverlay.defaultProps = defaultThemeProp;\n\nexport const StyledHeroBannerContent = styled.div<{\n $mediaAlignment?: HeroBannerMediaAlignment;\n $sideBySide: boolean;\n}>(\n ({ $mediaAlignment, $sideBySide }) => css`\n position: relative;\n display: grid;\n flex: 1;\n grid-template-columns: minmax(0, 1fr);\n\n ${$mediaAlignment &&\n $sideBySide &&\n css`\n grid-template-columns: ${$mediaAlignment === 'left'\n ? 'minmax(0, 1fr) minmax(0, 2fr)'\n : 'minmax(0, 2fr) minmax(0, 1fr)'};\n `}\n `\n);\n\nStyledHeroBannerContent.defaultProps = defaultThemeProp;\n\ninterface StyledHeroBannerMediaProps {\n $source: string;\n $size: HeroBannerMediaSize;\n $position: HeroBannerMediaPosition;\n $repeat: HeroBannerMediaRepeat;\n}\n\nexport const StyledHeroBannerMedia = styled.div<StyledHeroBannerMediaProps>(\n ({ theme: { base }, $source, $size, $position, $repeat }) => css`\n min-block-size: calc(15 * ${base.spacing});\n padding: ${$size === 'cover' ? '0' : `calc(2 * ${base.spacing})`};\n background-image: ${$source};\n\n /* An image smaller than the panel is always centered; the position only chooses what a cover image crops */\n background-position: ${$size === 'cover' ? $position : 'center'};\n background-size: ${$size};\n background-repeat: ${$repeat};\n background-origin: content-box;\n background-clip: content-box;\n `\n);\n\nStyledHeroBannerMedia.defaultProps = defaultThemeProp;\n\nexport const StyledHeroBannerText = styled.div(\n ({ theme: { base } }) => css`\n display: flex;\n flex-direction: column;\n justify-content: center;\n align-items: flex-start;\n gap: ${base.spacing};\n min-inline-size: 0;\n padding: calc(3 * ${base.spacing});\n overflow-wrap: anywhere;\n `\n);\n\nStyledHeroBannerText.defaultProps = defaultThemeProp;\n\nexport const StyledHeroBannerCopy = styled(Text)<{ $color: string; $pageHeading?: boolean }>(({\n theme: { base, components },\n $color,\n $pageHeading\n}) => {\n const headingSize = calculateFontSize(base['font-size'], base['font-scale'])[\n components.text.h2['font-size'] as FontSize\n ];\n\n return css`\n margin: 0;\n max-inline-size: 60ch;\n color: ${$color};\n\n ${$pageHeading &&\n css`\n font-size: calc(1.5 * ${headingSize});\n `}\n `;\n});\n\nStyledHeroBannerCopy.defaultProps = defaultThemeProp;\n\nexport const StyledHeroBannerAction = styled(Button)<{\n $background: string;\n $color: string;\n}>(({ theme: { base }, $background, $color }) => {\n const hover = tryCatch(\n () => darken(0.08, $background),\n () => $background\n );\n\n return css`\n margin-block-start: ${base.spacing};\n\n && {\n background: ${$background};\n border-color: ${$background};\n color: ${$color};\n white-space: normal;\n }\n\n &&:hover:not(:disabled) {\n background: ${hover};\n border-color: ${hover};\n }\n\n @media (forced-colors: active) {\n && {\n border-color: ButtonText;\n }\n }\n `;\n});\n\nStyledHeroBannerAction.defaultProps = defaultThemeProp;\n"]}
|
|
@@ -0,0 +1,2 @@
|
|
|
1
|
+
export declare const getHeroBannerTestIds: (testIdProp?: import("@pega/cosmos-react-core").TestIdProp["testId"]) => import("@pega/cosmos-react-core").TestIdsRecord<readonly ["content", "heading", "subheading", "body", "action", "media", "overlay"]>;
|
|
2
|
+
//# sourceMappingURL=HeroBanner.test-ids.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"HeroBanner.test-ids.d.ts","sourceRoot":"","sources":["../../../src/components/HeroBanner/HeroBanner.test-ids.ts"],"names":[],"mappings":"AAEA,eAAO,MAAM,oBAAoB,+MAQtB,CAAC"}
|
|
@@ -0,0 +1,11 @@
|
|
|
1
|
+
import { createTestIds } from '@pega/cosmos-react-core';
|
|
2
|
+
export const getHeroBannerTestIds = createTestIds('hero-banner', [
|
|
3
|
+
'content',
|
|
4
|
+
'heading',
|
|
5
|
+
'subheading',
|
|
6
|
+
'body',
|
|
7
|
+
'action',
|
|
8
|
+
'media',
|
|
9
|
+
'overlay'
|
|
10
|
+
]);
|
|
11
|
+
//# sourceMappingURL=HeroBanner.test-ids.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"HeroBanner.test-ids.js","sourceRoot":"","sources":["../../../src/components/HeroBanner/HeroBanner.test-ids.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,aAAa,EAAE,MAAM,yBAAyB,CAAC;AAExD,MAAM,CAAC,MAAM,oBAAoB,GAAG,aAAa,CAAC,aAAa,EAAE;IAC/D,SAAS;IACT,SAAS;IACT,YAAY;IACZ,MAAM;IACN,QAAQ;IACR,OAAO;IACP,SAAS;CACD,CAAC,CAAC","sourcesContent":["import { createTestIds } from '@pega/cosmos-react-core';\n\nexport const getHeroBannerTestIds = createTestIds('hero-banner', [\n 'content',\n 'heading',\n 'subheading',\n 'body',\n 'action',\n 'media',\n 'overlay'\n] as const);\n"]}
|
|
@@ -0,0 +1,51 @@
|
|
|
1
|
+
import type { Ref } from 'react';
|
|
2
|
+
import type { BaseProps, NoChildrenProp, TestIdProp } from '@pega/cosmos-react-core';
|
|
3
|
+
export type HeroBannerMediaAlignment = 'left' | 'right';
|
|
4
|
+
export type HeroBannerMediaSize = 'auto' | 'cover' | 'contain';
|
|
5
|
+
export type HeroBannerMediaPosition = 'center' | 'top' | 'right' | 'bottom' | 'left' | 'top left' | 'top right' | 'bottom right' | 'bottom left';
|
|
6
|
+
export type HeroBannerMediaRepeat = 'no-repeat' | 'repeat' | 'repeat-x' | 'repeat-y';
|
|
7
|
+
export interface HeroBannerAction {
|
|
8
|
+
/** Text of the button. */
|
|
9
|
+
label: string;
|
|
10
|
+
/** Web address the button opens. Addresses that are not http(s) are not rendered as an active button. */
|
|
11
|
+
href: string;
|
|
12
|
+
/** Opens the address in a new tab when true; otherwise it opens in the current tab. */
|
|
13
|
+
external?: boolean;
|
|
14
|
+
}
|
|
15
|
+
export interface HeroBannerMedia {
|
|
16
|
+
/** Image source, rendered as a decorative background. */
|
|
17
|
+
src: string;
|
|
18
|
+
/** Side of the text the media appears on. */
|
|
19
|
+
alignment?: HeroBannerMediaAlignment;
|
|
20
|
+
size?: HeroBannerMediaSize;
|
|
21
|
+
position?: HeroBannerMediaPosition;
|
|
22
|
+
repeat?: HeroBannerMediaRepeat;
|
|
23
|
+
}
|
|
24
|
+
export interface HeroBannerColors {
|
|
25
|
+
/** Solid color, gradient, or image (`url(...)`). */
|
|
26
|
+
background?: string;
|
|
27
|
+
heading?: string;
|
|
28
|
+
subheading?: string;
|
|
29
|
+
body?: string;
|
|
30
|
+
button?: string;
|
|
31
|
+
/** Color with transparency. Gradients and images are ignored. */
|
|
32
|
+
overlay?: string;
|
|
33
|
+
}
|
|
34
|
+
export interface HeroBannerProps extends BaseProps, NoChildrenProp, TestIdProp {
|
|
35
|
+
/** Heading text, rendered as a level 2 heading. */
|
|
36
|
+
heading?: string;
|
|
37
|
+
/** Text under the heading. */
|
|
38
|
+
subheading?: string;
|
|
39
|
+
/** Plain body text. */
|
|
40
|
+
body?: string;
|
|
41
|
+
/** Primary button. */
|
|
42
|
+
action?: HeroBannerAction;
|
|
43
|
+
/** Decorative media shown beside the text. */
|
|
44
|
+
media?: HeroBannerMedia;
|
|
45
|
+
/** Overrides of the theme styling values. Missing or invalid values use the theme. */
|
|
46
|
+
colors?: HeroBannerColors;
|
|
47
|
+
/** Whether to fill the height of the parent element. */
|
|
48
|
+
fitToParent?: boolean;
|
|
49
|
+
ref?: Ref<HTMLElement>;
|
|
50
|
+
}
|
|
51
|
+
//# sourceMappingURL=HeroBanner.types.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"HeroBanner.types.d.ts","sourceRoot":"","sources":["../../../src/components/HeroBanner/HeroBanner.types.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,GAAG,EAAE,MAAM,OAAO,CAAC;AAEjC,OAAO,KAAK,EAAE,SAAS,EAAE,cAAc,EAAE,UAAU,EAAE,MAAM,yBAAyB,CAAC;AAErF,MAAM,MAAM,wBAAwB,GAAG,MAAM,GAAG,OAAO,CAAC;AAExD,MAAM,MAAM,mBAAmB,GAAG,MAAM,GAAG,OAAO,GAAG,SAAS,CAAC;AAE/D,MAAM,MAAM,uBAAuB,GAC/B,QAAQ,GACR,KAAK,GACL,OAAO,GACP,QAAQ,GACR,MAAM,GACN,UAAU,GACV,WAAW,GACX,cAAc,GACd,aAAa,CAAC;AAElB,MAAM,MAAM,qBAAqB,GAAG,WAAW,GAAG,QAAQ,GAAG,UAAU,GAAG,UAAU,CAAC;AAErF,MAAM,WAAW,gBAAgB;IAC/B,0BAA0B;IAC1B,KAAK,EAAE,MAAM,CAAC;IACd,yGAAyG;IACzG,IAAI,EAAE,MAAM,CAAC;IACb,uFAAuF;IACvF,QAAQ,CAAC,EAAE,OAAO,CAAC;CACpB;AAED,MAAM,WAAW,eAAe;IAC9B,yDAAyD;IACzD,GAAG,EAAE,MAAM,CAAC;IACZ,6CAA6C;IAC7C,SAAS,CAAC,EAAE,wBAAwB,CAAC;IACrC,IAAI,CAAC,EAAE,mBAAmB,CAAC;IAC3B,QAAQ,CAAC,EAAE,uBAAuB,CAAC;IACnC,MAAM,CAAC,EAAE,qBAAqB,CAAC;CAChC;AAED,MAAM,WAAW,gBAAgB;IAC/B,oDAAoD;IACpD,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,iEAAiE;IACjE,OAAO,CAAC,EAAE,MAAM,CAAC;CAClB;AAED,MAAM,WAAW,eAAgB,SAAQ,SAAS,EAAE,cAAc,EAAE,UAAU;IAC5E,mDAAmD;IACnD,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,8BAA8B;IAC9B,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,uBAAuB;IACvB,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,sBAAsB;IACtB,MAAM,CAAC,EAAE,gBAAgB,CAAC;IAC1B,8CAA8C;IAC9C,KAAK,CAAC,EAAE,eAAe,CAAC;IACxB,sFAAsF;IACtF,MAAM,CAAC,EAAE,gBAAgB,CAAC;IAC1B,wDAAwD;IACxD,WAAW,CAAC,EAAE,OAAO,CAAC;IACtB,GAAG,CAAC,EAAE,GAAG,CAAC,WAAW,CAAC,CAAC;CACxB"}
|