@pcoi/components 0.1.0 → 0.1.2
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/dist/components.css +1 -1
- package/dist/index.d.ts +50 -13
- package/dist/index.js +2 -2
- package/dist/index.mjs +499 -553
- package/package.json +14 -7
- package/src/Badge/Badge.css +2 -2
- package/src/Button/Button.css +4 -4
- package/src/Button/Button.figma.tsx +3 -5
- package/src/Button/Button.test.tsx +32 -0
- package/src/Callout/Callout.css +10 -5
- package/src/Callout/Callout.figma.tsx +25 -0
- package/src/Callout/Callout.tsx +14 -10
- package/src/Card/Card.css +8 -8
- package/src/Card/Card.figma.tsx +28 -0
- package/src/ChatInterface/ChatInterface.css +6 -5
- package/src/ChatInterface/ChatInterface.integration.test.tsx +123 -0
- package/src/ChatInterface/ChatInterface.tsx +6 -1
- package/src/ChatMessage/ChatMessage.css +8 -8
- package/src/ChatMessageList/ChatMessageList.css +4 -4
- package/src/ChatMessageList/ChatMessageList.test.tsx +70 -0
- package/src/ChatMessageList/ChatMessageList.tsx +7 -2
- package/src/Checkbox/Checkbox.css +6 -6
- package/src/CitationMark/CitationMark.css +3 -3
- package/src/CitedExcerpt/CitedExcerpt.css +7 -7
- package/src/CitedExcerpt/CitedExcerpt.tsx +2 -0
- package/src/ComparisonTable/ComparisonTable.css +6 -6
- package/src/ComparisonTable/ComparisonTable.tsx +6 -0
- package/src/ContactForm/ContactForm.css +5 -5
- package/src/ContactForm/ContactForm.tsx +2 -1
- package/src/DataTable/DataTable.css +4 -4
- package/src/DocumentOverlay/DocumentOverlay.css +5 -5
- package/src/DocumentOverlay/DocumentOverlay.test.tsx +95 -0
- package/src/DocumentOverlay/DocumentOverlay.tsx +1 -0
- package/src/Footer/Footer.css +9 -9
- package/src/Footer/Footer.tsx +5 -2
- package/src/FormField/FormField.css +4 -4
- package/src/FormField/FormField.figma.tsx +28 -0
- package/src/HowStep/HowStep.css +4 -4
- package/src/HowStep/HowStep.figma.tsx +23 -0
- package/src/LogoMark/LogoMark.tsx +3 -4
- package/src/Modal/Modal.css +11 -11
- package/src/Modal/Modal.figma.tsx +28 -0
- package/src/Modal/Modal.test.tsx +46 -0
- package/src/Modal/Modal.tsx +88 -85
- package/src/Nav/Nav.css +16 -16
- package/src/Nav/Nav.tsx +6 -2
- package/src/Panel/Panel.css +3 -3
- package/src/PromptBar/PromptBar.css +10 -10
- package/src/PromptBar/PromptBar.figma.tsx +25 -0
- package/src/PromptBar/PromptBar.test.tsx +83 -0
- package/src/PromptBar/PromptBar.tsx +2 -2
- package/src/RadioGroup/RadioGroup.css +11 -11
- package/src/SectionHeader/SectionHeader.css +4 -4
- package/src/SectionHeader/SectionHeader.figma.tsx +23 -0
- package/src/Select/Select.css +5 -5
- package/src/Select/Select.figma.tsx +33 -0
- package/src/Select/Select.tsx +1 -1
- package/src/SignalsPanel/SignalsPanel.css +9 -9
- package/src/SignalsPanel/SignalsPanel.tsx +2 -0
- package/src/SuggestionCard/SuggestionCard.css +5 -5
- package/src/SuggestionCards/SuggestionCards.css +1 -1
- package/src/SuggestionCards/SuggestionCards.test.tsx +27 -0
- package/src/SuggestionCards/SuggestionCards.tsx +1 -1
- package/src/Toast/Toast.css +14 -14
- package/src/Toast/Toast.tsx +50 -45
- package/src/Toggle/Toggle.css +15 -15
- package/src/Toggle/Toggle.figma.tsx +24 -0
- package/src/TypingIndicator/TypingIndicator.css +6 -6
- package/src/TypingIndicator/TypingIndicator.tsx +2 -2
- package/src/index.ts +2 -0
- package/src/styles.css +1 -0
- package/src/types.ts +1 -0
package/dist/components.css
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
.pcoi-sr-only{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border-width:0}.pcoi-badge{display:inline-flex;align-items:center;font-family:var(--pcoi-semantic-type-mono-font);font-size:var(--pcoi-semantic-type-badge-size);font-weight:var(--pcoi-semantic-type-label-weight);letter-spacing:var(--pcoi-semantic-type-badge-letter-spacing);text-transform:uppercase;padding:var(--pcoi-spacing-4) var(--pcoi-spacing-10);border-radius:var(--pcoi-radius-full);line-height:var(--pcoi-semantic-type-none-line-height)}.pcoi-badge--default{background:var(--pcoi-semantic-surface-accent-dim);color:var(--pcoi-semantic-text-accent)}.pcoi-badge--success{background:var(--pcoi-semantic-action-success-bg);color:var(--pcoi-semantic-text-success)}.pcoi-badge--error{background:var(--pcoi-semantic-action-error-bg);color:var(--pcoi-semantic-text-error)}.pcoi-badge--warning{background:var(--pcoi-semantic-action-warning-bg);color:var(--pcoi-semantic-text-warning)}.pcoi-badge--info{background:var(--pcoi-semantic-action-info-bg);color:var(--pcoi-semantic-text-info)}.pcoi-logo{font-family:var(--pcoi-semantic-type-body-font);font-size:var(--pcoi-semantic-type-logo-size);font-weight:var(--pcoi-semantic-type-emphasis-weight);letter-spacing:var(--pcoi-semantic-type-logo-letter-spacing);color:var(--pcoi-semantic-text-primary);text-decoration:none;display:inline-flex;align-items:center}.pcoi-logo__mark{color:var(--pcoi-semantic-text-accent)}.pcoi-btn{display:inline-flex;align-items:center;justify-content:center;padding:var(--pcoi-spacing-14) var(--pcoi-spacing-28);font-size:var(--pcoi-semantic-type-body-size);font-weight:var(--pcoi-semantic-type-emphasis-weight);font-family:var(--pcoi-semantic-type-body-font);border-radius:var(--pcoi-radius-sm);border:none;cursor:pointer;transition:all var(--pcoi-effect-transition-fast, .2s ease);text-decoration:none;line-height:var(--pcoi-semantic-type-none-line-height);white-space:nowrap}.pcoi-btn--primary{background:var(--pcoi-semantic-action-primary-bg);color:var(--pcoi-semantic-action-primary-text)}.pcoi-btn--primary:hover{background:var(--pcoi-semantic-action-primary-bg-hover);transform:var(--pcoi-effect-transform-hover-lift);box-shadow:var(--pcoi-effect-shadow-btn-primary-hover)}.pcoi-btn--ghost{background:transparent;color:var(--pcoi-semantic-action-ghost-text);border:1px solid var(--pcoi-semantic-action-ghost-border)}.pcoi-btn--ghost:hover{color:var(--pcoi-semantic-action-ghost-text-hover);border-color:var(--pcoi-semantic-action-ghost-border-hover);background:var(--pcoi-semantic-action-ghost-bg-hover)}.pcoi-btn--nav-cta{background:var(--pcoi-semantic-action-primary-bg);color:var(--pcoi-semantic-action-primary-text);padding:var(--pcoi-spacing-10) var(--pcoi-spacing-22);font-weight:var(--pcoi-semantic-type-emphasis-weight)}.pcoi-btn--nav-cta:hover{background:var(--pcoi-semantic-action-primary-bg-hover);transform:var(--pcoi-effect-transform-hover-lift-sm)}.pcoi-btn--primary:active{transform:var(--pcoi-effect-transform-press-scale);box-shadow:none}.pcoi-btn--ghost:active{transform:var(--pcoi-effect-transform-press-scale)}.pcoi-btn--nav-cta:active{transform:var(--pcoi-effect-transform-press-scale);box-shadow:none}.pcoi-btn:focus-visible{outline:none;box-shadow:var(--pcoi-effect-shadow-focus-ring)}.pcoi-btn:disabled,.pcoi-btn[aria-disabled=true]{opacity:var(--pcoi-effect-opacity-disabled);cursor:not-allowed;transform:none;box-shadow:none}.pcoi-btn--large{padding:var(--pcoi-spacing-16) var(--pcoi-spacing-36);font-size:var(--pcoi-semantic-type-body-lg-size)}.pcoi-field{display:flex;flex-direction:column;gap:var(--pcoi-spacing-6)}.pcoi-field__label{font-size:var(--pcoi-semantic-type-label-size);font-weight:var(--pcoi-semantic-type-label-weight);letter-spacing:var(--pcoi-semantic-type-label-letter-spacing);text-transform:uppercase;color:var(--pcoi-semantic-text-secondary)}.pcoi-field__required{color:var(--pcoi-semantic-text-error);margin-left:var(--pcoi-spacing-4)}.pcoi-field__input,.pcoi-field__textarea{font-family:var(--pcoi-semantic-type-body-font);font-size:var(--pcoi-semantic-type-body-size);color:var(--pcoi-semantic-text-primary);background:var(--pcoi-semantic-bg-default);border:1px solid var(--pcoi-semantic-border-default);border-radius:var(--pcoi-radius-sm);padding:var(--pcoi-spacing-12) var(--pcoi-spacing-14);transition:border-color var(--pcoi-effect-transition-fast, .2s ease),box-shadow var(--pcoi-effect-transition-fast, .2s ease)}.pcoi-field__input::placeholder,.pcoi-field__textarea::placeholder{color:var(--pcoi-semantic-text-muted)}.pcoi-field__input:not(:disabled):not(:focus):hover,.pcoi-field__textarea:not(:disabled):not(:focus):hover{border-color:var(--pcoi-semantic-border-input-hover)}.pcoi-field__input:focus,.pcoi-field__textarea:focus{outline:none;border-color:var(--pcoi-semantic-focus-border);box-shadow:var(--pcoi-effect-shadow-focus-ring)}.pcoi-field__textarea{resize:vertical;min-height:var(--pcoi-semantic-sizing-textarea-min-height)}.pcoi-field--error .pcoi-field__input,.pcoi-field--error .pcoi-field__textarea{border-color:var(--pcoi-semantic-border-error)}.pcoi-field--error .pcoi-field__input:focus,.pcoi-field--error .pcoi-field__textarea:focus{box-shadow:var(--pcoi-effect-shadow-focus-ring-error)}.pcoi-field__error{font-size:var(--pcoi-semantic-type-label-size);color:var(--pcoi-semantic-text-error);margin:0}.pcoi-field--disabled{opacity:var(--pcoi-effect-opacity-disabled);pointer-events:none}.pcoi-card{border:1px solid var(--pcoi-semantic-border-card);border-radius:var(--pcoi-radius-md);padding:var(--pcoi-spacing-36);transition:border-color var(--pcoi-effect-transition-medium, .3s ease),transform var(--pcoi-effect-transition-medium, .3s ease)}.pcoi-card:hover{border-color:var(--pcoi-semantic-border-card-hover);transform:var(--pcoi-effect-transform-hover-lift)}.pcoi-card--problem{background:var(--pcoi-semantic-bg-card)}.pcoi-card--problem .pcoi-card__icon{width:var(--pcoi-semantic-sizing-icon-box);height:var(--pcoi-semantic-sizing-icon-box);border-radius:var(--pcoi-radius-sm);background:var(--pcoi-semantic-surface-accent-dim);display:flex;align-items:center;justify-content:center;margin-bottom:var(--pcoi-spacing-20);color:var(--pcoi-semantic-text-accent)}.pcoi-card--problem .pcoi-card__title{font-size:var(--pcoi-semantic-type-heading-md-size);font-weight:var(--pcoi-semantic-type-emphasis-weight);color:var(--pcoi-semantic-text-primary);margin:0 0 var(--pcoi-spacing-10) 0}.pcoi-card--problem .pcoi-card__description{font-size:var(--pcoi-semantic-type-body-size);color:var(--pcoi-semantic-text-secondary);line-height:var(--pcoi-semantic-type-body-line-height)}.pcoi-card--who{background:var(--pcoi-semantic-bg-surface)}.pcoi-card--who .pcoi-card__title{font-size:var(--pcoi-semantic-type-heading-sm-size);font-weight:var(--pcoi-semantic-type-emphasis-weight);color:var(--pcoi-semantic-text-accent);margin:0 0 var(--pcoi-spacing-10) 0}.pcoi-card--who .pcoi-card__description{font-size:var(--pcoi-semantic-type-body-compact-size);color:var(--pcoi-semantic-text-secondary);line-height:var(--pcoi-semantic-type-body-line-height)}.pcoi-card--principle{background:var(--pcoi-semantic-bg-card)}.pcoi-card--principle .pcoi-card__number{font-family:var(--pcoi-semantic-type-mono-font);font-size:var(--pcoi-semantic-type-body-sm-size);font-weight:var(--pcoi-semantic-type-emphasis-weight);color:var(--pcoi-semantic-text-accent);margin-bottom:var(--pcoi-spacing-16)}.pcoi-card--principle .pcoi-card__title{font-size:var(--pcoi-semantic-type-card-subtitle-size);font-weight:var(--pcoi-semantic-type-emphasis-weight);color:var(--pcoi-semantic-text-primary);margin:0 0 var(--pcoi-spacing-10) 0}.pcoi-card--principle .pcoi-card__description{font-size:var(--pcoi-semantic-type-body-compact-size);color:var(--pcoi-semantic-text-secondary);line-height:var(--pcoi-semantic-type-body-line-height)}.pcoi-nav{position:fixed;top:0;left:0;right:0;z-index:var(--pcoi-layout-zIndex-nav, 1000);height:var(--pcoi-layout-nav-height, 72px);transition:background var(--pcoi-effect-transition-medium, .3s ease),box-shadow var(--pcoi-effect-transition-medium, .3s ease)}.pcoi-nav--scrolled{background:var(--pcoi-semantic-bg-nav-scrolled);-webkit-backdrop-filter:blur(var(--pcoi-effect-blur-nav-backdrop, 20px));backdrop-filter:blur(var(--pcoi-effect-blur-nav-backdrop, 20px));box-shadow:var(--pcoi-effect-shadow-nav-scrolled)}.pcoi-nav__inner{max-width:var(--pcoi-layout-container-max);margin:0 auto;padding:0 var(--pcoi-spacing-24);height:100%;display:flex;align-items:center;justify-content:space-between}.pcoi-nav__links{display:flex;align-items:center;gap:var(--pcoi-spacing-32)}.pcoi-nav__links a{font-size:var(--pcoi-semantic-type-nav-size);font-weight:var(--pcoi-semantic-type-label-weight);color:var(--pcoi-semantic-text-secondary);text-decoration:none;transition:color var(--pcoi-effect-transition-fast, .2s ease)}.pcoi-nav__links a:hover{color:var(--pcoi-semantic-text-primary)}.pcoi-nav__links a:focus-visible{outline:none;box-shadow:var(--pcoi-effect-shadow-focus-ring);border-radius:var(--pcoi-radius-sm)}.pcoi-nav__links a:active{transform:var(--pcoi-effect-transform-press-scale)}.pcoi-nav__hamburger{display:none;flex-direction:column;justify-content:center;gap:var(--pcoi-spacing-5);width:var(--pcoi-layout-component-hamburger);height:var(--pcoi-layout-component-hamburger);background:none;border:none;cursor:pointer;padding:0}.pcoi-nav__hamburger:hover{color:var(--pcoi-semantic-text-primary)}.pcoi-nav__hamburger:focus-visible{outline:none;box-shadow:var(--pcoi-effect-shadow-focus-ring);border-radius:var(--pcoi-radius-sm)}.pcoi-nav__hamburger:active{transform:var(--pcoi-effect-transform-press-scale-icon)}.pcoi-nav__hamburger span{display:block;width:100%;height:2px;background:var(--pcoi-semantic-text-primary);border-radius:1px;transition:transform var(--pcoi-effect-transition-fast, .2s ease),opacity var(--pcoi-effect-transition-fast, .2s ease)}.pcoi-nav__hamburger--active span:nth-child(1){transform:translateY(var(--pcoi-layout-component-hamburger-bar-offset)) rotate(45deg)}.pcoi-nav__hamburger--active span:nth-child(2){opacity:0}.pcoi-nav__hamburger--active span:nth-child(3){transform:translateY(calc(-1 * var(--pcoi-layout-component-hamburger-bar-offset))) rotate(-45deg)}.pcoi-nav__mobile-menu{display:none;flex-direction:column;padding:var(--pcoi-spacing-24) var(--pcoi-spacing-24) var(--pcoi-spacing-32);background:var(--pcoi-semantic-bg-default);box-shadow:var(--pcoi-effect-shadow-mobile-menu)}.pcoi-nav__mobile-menu a{font-size:var(--pcoi-semantic-type-body-lg-size);font-weight:var(--pcoi-semantic-type-label-weight);color:var(--pcoi-semantic-text-secondary);text-decoration:none;padding:var(--pcoi-spacing-12) 0;transition:color var(--pcoi-effect-transition-fast, .2s ease)}.pcoi-nav__mobile-menu a:hover{color:var(--pcoi-semantic-text-primary)}.pcoi-nav__mobile-menu a:focus-visible{outline:none;box-shadow:var(--pcoi-effect-shadow-focus-ring);border-radius:var(--pcoi-radius-sm)}.pcoi-nav__mobile-menu a:active{transform:var(--pcoi-effect-transform-press-scale)}.pcoi-nav__mobile-menu .pcoi-btn{margin-top:var(--pcoi-spacing-16);width:100%;justify-content:center}@media (max-width: 768px){.pcoi-nav__links{display:none}.pcoi-nav__hamburger,.pcoi-nav--menu-open .pcoi-nav__mobile-menu{display:flex}}.pcoi-section-header{text-align:center;max-width:var(--pcoi-layout-container-narrow);margin:0 auto var(--pcoi-spacing-64)}.pcoi-section-header__label{display:inline-block;font-family:var(--pcoi-semantic-type-mono-font);font-size:var(--pcoi-semantic-type-section-label-size);font-weight:var(--pcoi-semantic-type-label-weight);letter-spacing:var(--pcoi-semantic-type-section-label-letter-spacing);text-transform:uppercase;color:var(--pcoi-semantic-text-accent);margin-bottom:var(--pcoi-spacing-16)}.pcoi-section-header__title{font-size:var(--pcoi-semantic-type-section-title-size);font-weight:var(--pcoi-semantic-type-heading-weight);line-height:var(--pcoi-semantic-type-heading-line-height);letter-spacing:var(--pcoi-semantic-type-heading-letter-spacing);color:var(--pcoi-semantic-text-primary);margin:0 0 var(--pcoi-spacing-16) 0}.pcoi-section-header__title em{font-style:normal;color:var(--pcoi-semantic-text-accent)}.pcoi-section-header__desc{font-size:var(--pcoi-semantic-type-heading-sm-size);color:var(--pcoi-semantic-text-secondary);line-height:var(--pcoi-semantic-type-relaxed-line-height)}.pcoi-how-step{display:flex;align-items:flex-start;gap:var(--pcoi-spacing-32);padding:var(--pcoi-spacing-40) 0;border-bottom:1px solid var(--pcoi-semantic-border-default)}.pcoi-how-step--last{border-bottom:none}.pcoi-how-step__number{flex-shrink:0;width:var(--pcoi-semantic-sizing-step-number);height:var(--pcoi-semantic-sizing-step-number);border-radius:var(--pcoi-radius-full);background:var(--pcoi-semantic-surface-accent-dim);border:1px solid var(--pcoi-semantic-border-accent-dim);display:flex;align-items:center;justify-content:center;font-family:var(--pcoi-semantic-type-mono-font);font-size:var(--pcoi-semantic-type-body-sm-size);font-weight:var(--pcoi-semantic-type-emphasis-weight);color:var(--pcoi-semantic-text-accent)}.pcoi-how-step__content{flex:1;min-width:0}.pcoi-how-step__title{font-size:var(--pcoi-semantic-type-step-title-size);font-weight:var(--pcoi-semantic-type-emphasis-weight);color:var(--pcoi-semantic-text-primary);margin:0 0 var(--pcoi-spacing-8) 0}.pcoi-how-step__desc{font-size:var(--pcoi-semantic-type-body-size);color:var(--pcoi-semantic-text-secondary);line-height:var(--pcoi-semantic-type-step-line-height);margin:0}.pcoi-comparison{max-width:var(--pcoi-layout-container-compare, 900px);border:1px solid var(--pcoi-semantic-border-card);border-radius:var(--pcoi-radius-md);overflow:hidden}.pcoi-comparison__table{width:100%;border-collapse:collapse}.pcoi-comparison__header .pcoi-comparison__col{font-family:var(--pcoi-semantic-type-mono-font);font-size:var(--pcoi-semantic-type-body-sm-size);font-weight:var(--pcoi-semantic-type-emphasis-weight);letter-spacing:var(--pcoi-semantic-type-label-letter-spacing);text-transform:uppercase;color:var(--pcoi-semantic-text-secondary);padding:var(--pcoi-spacing-16) var(--pcoi-spacing-20);background:var(--pcoi-semantic-bg-alt);text-align:left}.pcoi-comparison__row{border-top:1px solid var(--pcoi-semantic-border-card)}.pcoi-comparison__col{padding:var(--pcoi-spacing-16) var(--pcoi-spacing-20);font-size:var(--pcoi-semantic-type-body-compact-size);color:var(--pcoi-semantic-text-secondary);line-height:var(--pcoi-semantic-type-body-compact-line-height)}.pcoi-comparison__col--label{font-weight:var(--pcoi-semantic-type-label-weight);color:var(--pcoi-semantic-text-primary);text-align:left}.pcoi-comparison__col--highlight{background:var(--pcoi-semantic-surface-highlight);color:var(--pcoi-semantic-text-accent);font-weight:var(--pcoi-semantic-type-label-weight)}.pcoi-comparison__header .pcoi-comparison__col--highlight{color:var(--pcoi-semantic-text-accent);font-weight:var(--pcoi-semantic-type-emphasis-weight)}@media (max-width: 768px){.pcoi-comparison{overflow-x:auto;-webkit-overflow-scrolling:touch}.pcoi-comparison__table{min-width:var(--pcoi-layout-container-compare-scroll)}}.pcoi-form{background:var(--pcoi-semantic-bg-surface);border:1px solid var(--pcoi-semantic-border-default);border-radius:var(--pcoi-radius-lg);padding:var(--pcoi-spacing-40);display:flex;flex-direction:column;gap:var(--pcoi-spacing-20)}.pcoi-form__row{display:grid;grid-template-columns:1fr 1fr;gap:var(--pcoi-spacing-20)}.pcoi-form__full{grid-column:1 / -1}.pcoi-form__note{font-size:var(--pcoi-semantic-type-label-size);color:var(--pcoi-semantic-text-muted);margin:0}@media (max-width: 768px){.pcoi-form{padding:var(--pcoi-spacing-24)}.pcoi-form__row{grid-template-columns:1fr}}.pcoi-callout{text-align:center;padding:var(--pcoi-spacing-40) var(--pcoi-spacing-24);display:flex;flex-direction:column;align-items:center}.pcoi-callout__line{width:var(--pcoi-layout-component-accent-line-w);height:2px;background:var(--pcoi-semantic-text-accent);margin-bottom:var(--pcoi-spacing-32)}.pcoi-callout__quote{font-size:var(--pcoi-semantic-type-callout-size);font-weight:var(--pcoi-semantic-type-callout-weight);color:var(--pcoi-semantic-text-secondary);line-height:var(--pcoi-semantic-type-body-compact-line-height);max-width:var(--pcoi-layout-container-chamath, 640px);margin:0 0 var(--pcoi-spacing-24) 0;font-style:italic}.pcoi-callout__attribution{font-size:var(--pcoi-semantic-type-body-sm-size);color:var(--pcoi-semantic-text-muted);margin:0}.pcoi-callout__attribution a{color:var(--pcoi-semantic-text-accent);text-decoration:underline;text-underline-offset:2px;transition:color var(--pcoi-effect-transition-fast, .2s ease)}.pcoi-callout__attribution a:hover{color:var(--pcoi-semantic-text-accent-hover)}.pcoi-signals{background:var(--pcoi-semantic-bg-surface);border:1px solid var(--pcoi-semantic-border-default);border-radius:var(--pcoi-radius-md);padding:var(--pcoi-spacing-40) var(--pcoi-spacing-48)}.pcoi-signals__title{font-size:var(--pcoi-semantic-type-heading-sm-size);font-weight:var(--pcoi-semantic-type-emphasis-weight);color:var(--pcoi-semantic-text-accent);margin:0 0 var(--pcoi-spacing-24) 0}.pcoi-signals__list{list-style:none;padding:0;margin:0;display:flex;flex-direction:column;gap:var(--pcoi-spacing-14)}.pcoi-signals__item{position:relative;padding-left:var(--pcoi-spacing-24);font-size:var(--pcoi-semantic-type-body-compact-size);color:var(--pcoi-semantic-text-secondary);line-height:var(--pcoi-semantic-type-body-compact-line-height)}.pcoi-signals__item:before{content:"";position:absolute;left:0;top:8px;width:var(--pcoi-layout-component-bullet);height:var(--pcoi-layout-component-bullet);border-radius:var(--pcoi-radius-full);background:var(--pcoi-semantic-text-accent);opacity:.5}@media (max-width: 768px){.pcoi-signals{padding:var(--pcoi-spacing-24) var(--pcoi-spacing-28)}}.pcoi-footer{border-top:1px solid var(--pcoi-semantic-border-default);padding:var(--pcoi-spacing-60) var(--pcoi-spacing-24) var(--pcoi-spacing-40)}.pcoi-footer__inner{max-width:var(--pcoi-layout-container-max);margin:0 auto;display:flex;justify-content:space-between;align-items:flex-start}.pcoi-footer__logo{margin-bottom:var(--pcoi-spacing-8)}.pcoi-footer__tagline{font-size:var(--pcoi-semantic-type-body-sm-size);color:var(--pcoi-semantic-text-secondary);line-height:var(--pcoi-semantic-type-body-compact-line-height);margin:0;white-space:pre-line}.pcoi-footer__links{display:flex;flex-wrap:wrap;gap:var(--pcoi-spacing-28)}.pcoi-footer__links a{font-size:var(--pcoi-semantic-type-nav-size);color:var(--pcoi-semantic-text-secondary);text-decoration:none;transition:color var(--pcoi-effect-transition-fast, .2s ease)}.pcoi-footer__links a:hover{color:var(--pcoi-semantic-text-primary)}.pcoi-footer__bottom{max-width:var(--pcoi-layout-container-max);margin:var(--pcoi-spacing-40) auto 0;padding-top:var(--pcoi-spacing-24);border-top:1px solid var(--pcoi-semantic-border-default)}.pcoi-footer__bottom p{font-size:var(--pcoi-semantic-type-label-size);color:var(--pcoi-semantic-text-muted);margin:0}@media (max-width: 768px){.pcoi-footer__inner{flex-direction:column;gap:var(--pcoi-spacing-32)}.pcoi-footer__links{flex-direction:column;gap:var(--pcoi-spacing-14)}}.pcoi-select{display:flex;flex-direction:column;gap:var(--pcoi-spacing-6)}.pcoi-select__label{font-size:var(--pcoi-semantic-type-label-size);font-weight:var(--pcoi-semantic-type-label-weight);letter-spacing:var(--pcoi-semantic-type-label-letter-spacing);text-transform:uppercase;color:var(--pcoi-semantic-text-secondary)}.pcoi-select__required{color:var(--pcoi-semantic-text-error);margin-left:var(--pcoi-spacing-4)}.pcoi-select__wrapper{position:relative}.pcoi-select__native{-webkit-appearance:none;-moz-appearance:none;appearance:none;width:100%;font-family:var(--pcoi-semantic-type-body-font);font-size:var(--pcoi-semantic-type-body-size);color:var(--pcoi-semantic-text-primary);background:var(--pcoi-semantic-bg-default);border:1px solid var(--pcoi-semantic-border-default);border-radius:var(--pcoi-radius-sm);padding:var(--pcoi-spacing-12) var(--pcoi-spacing-36) var(--pcoi-spacing-12) var(--pcoi-spacing-14);cursor:pointer;transition:border-color var(--pcoi-effect-transition-fast, .2s ease),box-shadow var(--pcoi-effect-transition-fast, .2s ease)}.pcoi-select__native:hover{border-color:var(--pcoi-semantic-border-input-hover)}.pcoi-select__native:active{transform:var(--pcoi-effect-transform-press-scale-input)}.pcoi-select__native:focus{outline:none;border-color:var(--pcoi-semantic-focus-border);box-shadow:var(--pcoi-effect-shadow-focus-ring)}.pcoi-select__native option{background:var(--pcoi-semantic-bg-default);color:var(--pcoi-semantic-text-primary)}.pcoi-select__chevron{position:absolute;right:var(--pcoi-spacing-14);top:50%;transform:translateY(-50%);pointer-events:none;color:var(--pcoi-semantic-text-secondary);display:flex;align-items:center}.pcoi-select--error .pcoi-select__native{border-color:var(--pcoi-semantic-border-error)}.pcoi-select--error .pcoi-select__native:focus{box-shadow:var(--pcoi-effect-shadow-focus-ring-error)}.pcoi-select__error{font-size:var(--pcoi-semantic-type-label-size);color:var(--pcoi-semantic-text-error);margin:0}.pcoi-select--disabled{opacity:var(--pcoi-effect-opacity-disabled);pointer-events:none}.pcoi-checkbox{display:flex;flex-direction:column;gap:var(--pcoi-spacing-6)}.pcoi-checkbox__control{display:inline-flex;align-items:center;gap:var(--pcoi-spacing-8);cursor:pointer}.pcoi-checkbox__input{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border-width:0}.pcoi-checkbox__box{width:var(--pcoi-layout-component-control-box);height:var(--pcoi-layout-component-control-box);flex-shrink:0;border:1px solid var(--pcoi-semantic-border-default);border-radius:var(--pcoi-radius-sm);background:var(--pcoi-semantic-bg-default);transition:background var(--pcoi-effect-transition-fast, .2s ease),border-color var(--pcoi-effect-transition-fast, .2s ease);position:relative}.pcoi-checkbox__box:after{content:"";position:absolute;top:2px;left:5px;width:5px;height:9px;border:solid var(--pcoi-semantic-action-primary-text);border-width:0 2px 2px 0;transform:rotate(45deg);opacity:0;transition:opacity var(--pcoi-effect-transition-fast, .2s ease)}.pcoi-checkbox__input:checked+.pcoi-checkbox__box{background:var(--pcoi-semantic-action-primary-bg);border-color:var(--pcoi-semantic-action-primary-bg)}.pcoi-checkbox__input:checked+.pcoi-checkbox__box:after{opacity:1}.pcoi-checkbox__control:hover .pcoi-checkbox__box{border-color:var(--pcoi-semantic-border-input-hover)}.pcoi-checkbox__control:active .pcoi-checkbox__box{transform:var(--pcoi-effect-transform-press-scale-control)}.pcoi-checkbox__input:focus-visible+.pcoi-checkbox__box{border-color:var(--pcoi-semantic-focus-border);box-shadow:var(--pcoi-effect-shadow-focus-ring)}.pcoi-checkbox__label{font-size:var(--pcoi-semantic-type-body-size);color:var(--pcoi-semantic-text-primary)}.pcoi-checkbox--error .pcoi-checkbox__box{border-color:var(--pcoi-semantic-border-error)}.pcoi-checkbox__error{font-size:var(--pcoi-semantic-type-label-size);color:var(--pcoi-semantic-text-error);margin:0;padding-left:calc(var(--pcoi-layout-component-control-box) + var(--pcoi-spacing-8))}.pcoi-checkbox--disabled{opacity:var(--pcoi-effect-opacity-disabled);pointer-events:none}.pcoi-toggle{display:flex;flex-direction:column;gap:var(--pcoi-spacing-6)}.pcoi-toggle__control{display:inline-flex;align-items:center;gap:var(--pcoi-spacing-12);cursor:pointer}.pcoi-toggle__input{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border-width:0}.pcoi-toggle__track{width:var(--pcoi-layout-component-toggle-track-w);height:var(--pcoi-layout-component-toggle-track-h);flex-shrink:0;border-radius:var(--pcoi-radius-full);background:var(--pcoi-semantic-action-toggle-bg);position:relative;transition:background var(--pcoi-effect-transition-fast, .2s ease)}.pcoi-toggle__thumb{position:absolute;top:var(--pcoi-layout-component-toggle-thumb-inset);left:var(--pcoi-layout-component-toggle-thumb-inset);width:var(--pcoi-layout-component-toggle-thumb);height:var(--pcoi-layout-component-toggle-thumb);border-radius:var(--pcoi-radius-full);background:var(--pcoi-semantic-action-toggle-thumb);transition:transform var(--pcoi-effect-transition-fast, .2s ease),background var(--pcoi-effect-transition-fast, .2s ease)}.pcoi-toggle__thumb:after{content:"";position:absolute;top:50%;left:50%;width:var(--pcoi-layout-component-toggle-check-w);height:var(--pcoi-layout-component-toggle-check-h);border:solid var(--pcoi-semantic-action-success);border-width:0 var(--pcoi-layout-component-toggle-check-stroke) var(--pcoi-layout-component-toggle-check-stroke) 0;transform:translate(-50%,-60%) rotate(45deg);opacity:0;transition:opacity var(--pcoi-effect-transition-fast, .2s ease)}.pcoi-toggle__control:hover .pcoi-toggle__track{box-shadow:0 0 0 1px var(--pcoi-semantic-border-input-hover)}.pcoi-toggle__control:active .pcoi-toggle__track{transform:var(--pcoi-effect-transform-press-scale-track)}.pcoi-toggle__input:checked+.pcoi-toggle__track{background:var(--pcoi-semantic-action-toggle-bg-on)}.pcoi-toggle__input:checked+.pcoi-toggle__track .pcoi-toggle__thumb{transform:translate(var(--pcoi-layout-component-toggle-thumb-travel)) var(--pcoi-effect-transform-toggle-thumb-on)}.pcoi-toggle__input:checked+.pcoi-toggle__track .pcoi-toggle__thumb:after{opacity:1}.pcoi-toggle__input:focus-visible+.pcoi-toggle__track{outline:none;box-shadow:var(--pcoi-effect-shadow-focus-ring)}.pcoi-toggle__label{font-size:var(--pcoi-semantic-type-body-size);color:var(--pcoi-semantic-text-primary)}.pcoi-toggle--error .pcoi-toggle__track{box-shadow:0 0 0 1px var(--pcoi-semantic-border-error)}.pcoi-toggle__error{font-size:var(--pcoi-semantic-type-label-size);color:var(--pcoi-semantic-text-error);margin:0;padding-left:calc(var(--pcoi-layout-component-toggle-track-w) + var(--pcoi-spacing-12))}.pcoi-toggle--disabled{opacity:var(--pcoi-effect-opacity-disabled);pointer-events:none}.pcoi-radio-group{border:none;padding:0;margin:0;display:flex;flex-direction:column;gap:var(--pcoi-spacing-10)}.pcoi-radio-group__legend{font-size:var(--pcoi-semantic-type-label-size);font-weight:var(--pcoi-semantic-type-label-weight);letter-spacing:var(--pcoi-semantic-type-label-letter-spacing);text-transform:uppercase;color:var(--pcoi-semantic-text-secondary);margin-bottom:var(--pcoi-spacing-4)}.pcoi-radio-group__required{color:var(--pcoi-semantic-text-error);margin-left:var(--pcoi-spacing-4)}.pcoi-radio-group__options{display:flex;flex-direction:column;gap:var(--pcoi-spacing-12)}.pcoi-radio-group__option{display:inline-flex;align-items:center;gap:var(--pcoi-spacing-8);cursor:pointer}.pcoi-radio-group__input{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border-width:0}.pcoi-radio-group__circle{width:var(--pcoi-layout-component-control-box);height:var(--pcoi-layout-component-control-box);flex-shrink:0;border:1px solid var(--pcoi-semantic-border-default);border-radius:var(--pcoi-radius-full);background:var(--pcoi-semantic-bg-default);position:relative;transition:border-color var(--pcoi-effect-transition-fast, .2s ease)}.pcoi-radio-group__circle:after{content:"";position:absolute;top:50%;left:50%;transform:translate(-50%,-50%);width:var(--pcoi-layout-component-radio-dot);height:var(--pcoi-layout-component-radio-dot);border-radius:var(--pcoi-radius-full);background:var(--pcoi-semantic-action-primary-bg);opacity:0;transition:opacity var(--pcoi-effect-transition-fast, .2s ease)}.pcoi-radio-group__input:checked+.pcoi-radio-group__circle{border-color:var(--pcoi-semantic-action-primary-bg)}.pcoi-radio-group__input:checked+.pcoi-radio-group__circle:after{opacity:1}.pcoi-radio-group__option:hover .pcoi-radio-group__circle{border-color:var(--pcoi-semantic-border-input-hover)}.pcoi-radio-group__option:active .pcoi-radio-group__circle{transform:var(--pcoi-effect-transform-press-scale-control)}.pcoi-radio-group__input:focus-visible+.pcoi-radio-group__circle{border-color:var(--pcoi-semantic-focus-border);box-shadow:var(--pcoi-effect-shadow-focus-ring)}.pcoi-radio-group__label{font-size:var(--pcoi-semantic-type-body-size);color:var(--pcoi-semantic-text-primary)}.pcoi-radio-group--error .pcoi-radio-group__circle{border-color:var(--pcoi-semantic-border-error)}.pcoi-radio-group__error{font-size:var(--pcoi-semantic-type-label-size);color:var(--pcoi-semantic-text-error);margin:0}.pcoi-radio-group--disabled{opacity:var(--pcoi-effect-opacity-disabled);pointer-events:none}.pcoi-panel{background:var(--pcoi-semantic-bg-card);border:1px solid var(--pcoi-semantic-border-default);border-radius:var(--pcoi-radius-md);overflow:hidden}.pcoi-panel__header{display:flex;align-items:center;justify-content:space-between;padding:var(--pcoi-spacing-16) var(--pcoi-spacing-24);border-bottom:1px solid var(--pcoi-semantic-border-default)}.pcoi-panel__title{font-size:var(--pcoi-semantic-type-body-size);font-weight:var(--pcoi-semantic-type-emphasis-weight);color:var(--pcoi-semantic-text-primary);margin:0}.pcoi-panel__action{flex-shrink:0}.pcoi-panel__body{padding:var(--pcoi-spacing-24)}.pcoi-panel--flush .pcoi-panel__body{padding:0}.pcoi-data-table{width:100%;overflow:hidden;overflow-x:auto;border:1px solid var(--pcoi-semantic-border-card);border-radius:var(--pcoi-radius-md)}.pcoi-data-table__table{width:100%;border-collapse:collapse}.pcoi-data-table__th{font-family:var(--pcoi-semantic-type-mono-font);font-size:var(--pcoi-semantic-type-body-sm-size);font-weight:var(--pcoi-semantic-type-emphasis-weight);letter-spacing:var(--pcoi-semantic-type-label-letter-spacing);text-transform:uppercase;color:var(--pcoi-semantic-text-secondary);text-align:left;padding:var(--pcoi-spacing-16) var(--pcoi-spacing-20);background:var(--pcoi-semantic-bg-alt)}.pcoi-data-table__th--center{text-align:center}.pcoi-data-table__th--right{text-align:right}.pcoi-data-table__td{font-size:var(--pcoi-semantic-type-body-compact-size);color:var(--pcoi-semantic-text-secondary);line-height:var(--pcoi-semantic-type-body-compact-line-height);text-align:left;padding:var(--pcoi-spacing-16) var(--pcoi-spacing-20)}.pcoi-data-table__td--center{text-align:center}.pcoi-data-table__td--right{text-align:right}.pcoi-data-table__row{border-top:1px solid var(--pcoi-semantic-border-card);transition:background var(--pcoi-effect-transition-fast, .2s ease)}.pcoi-data-table__row:hover{background:var(--pcoi-semantic-bg-card-hover)}.pcoi-data-table__empty{font-size:var(--pcoi-semantic-type-body-size);color:var(--pcoi-semantic-text-muted);text-align:center;padding:var(--pcoi-spacing-40) var(--pcoi-spacing-16)}.pcoi-modal{position:fixed;top:0;right:0;bottom:0;left:0;z-index:var(--pcoi-layout-zIndex-modal, 500);display:flex;align-items:center;justify-content:center;background:var(--pcoi-semantic-bg-overlay);padding:var(--pcoi-spacing-24);animation:pcoi-modal-fade-in .2s ease}.pcoi-modal__dialog{font-family:var(--pcoi-semantic-type-body-font);background:var(--pcoi-semantic-surface-elevated);border:1px solid var(--pcoi-semantic-border-default);border-radius:var(--pcoi-radius-lg);box-shadow:var(--pcoi-effect-shadow-elevated);width:100%;max-width:var(--pcoi-layout-container-modal);max-height:85vh;display:flex;flex-direction:column;animation:pcoi-modal-slide-up .2s ease}.pcoi-modal__header{display:flex;align-items:center;justify-content:space-between;padding:var(--pcoi-spacing-20) var(--pcoi-spacing-24);border-bottom:1px solid var(--pcoi-semantic-border-default)}.pcoi-modal__title{font-size:var(--pcoi-semantic-type-heading-sm-size);font-weight:var(--pcoi-semantic-type-emphasis-weight);color:var(--pcoi-semantic-text-primary);margin:0}.pcoi-modal__close{background:none;border:none;color:var(--pcoi-semantic-text-secondary);font-size:var(--pcoi-semantic-type-close-lg-size);line-height:var(--pcoi-semantic-type-none-line-height);cursor:pointer;padding:var(--pcoi-spacing-4);border-radius:var(--pcoi-radius-sm);transition:color var(--pcoi-effect-transition-fast, .2s ease)}.pcoi-modal__close:hover{color:var(--pcoi-semantic-text-primary)}.pcoi-modal__close:active{transform:var(--pcoi-effect-transform-press-scale-icon)}.pcoi-modal__close:focus-visible{outline:none;box-shadow:var(--pcoi-effect-shadow-focus-ring)}.pcoi-modal__body{padding:var(--pcoi-spacing-24);overflow-y:auto;flex:1;font-size:var(--pcoi-semantic-type-body-size);color:var(--pcoi-semantic-text-secondary);line-height:var(--pcoi-semantic-type-body-line-height)}.pcoi-modal__footer{display:flex;align-items:center;justify-content:flex-end;gap:var(--pcoi-spacing-12);padding:var(--pcoi-spacing-16) var(--pcoi-spacing-24);border-top:1px solid var(--pcoi-semantic-border-default)}.pcoi-modal__dialog--wide{max-width:var(--pcoi-layout-container-document, 900px)}@keyframes pcoi-modal-fade-in{0%{opacity:0}to{opacity:1}}@keyframes pcoi-modal-slide-up{0%{transform:translateY(16px);opacity:0}to{transform:translateY(0);opacity:1}}.pcoi-toast{position:fixed;bottom:var(--pcoi-spacing-24);right:var(--pcoi-spacing-24);z-index:var(--pcoi-layout-zIndex-toast, 600);animation:pcoi-toast-slide-in .3s ease}.pcoi-toast__content{display:flex;align-items:center;gap:var(--pcoi-spacing-12);font-family:var(--pcoi-semantic-type-body-font);background:var(--pcoi-semantic-surface-elevated);border:1px solid var(--pcoi-semantic-border-default);border-radius:var(--pcoi-radius-md);box-shadow:var(--pcoi-effect-shadow-elevated);padding:var(--pcoi-spacing-14) var(--pcoi-spacing-20);min-width:var(--pcoi-layout-container-toast-min);max-width:var(--pcoi-layout-container-toast-max)}.pcoi-toast--success .pcoi-toast__content{border-left:var(--pcoi-layout-component-accent-border-w) solid var(--pcoi-semantic-border-success)}.pcoi-toast--error .pcoi-toast__content{border-left:var(--pcoi-layout-component-accent-border-w) solid var(--pcoi-semantic-border-error)}.pcoi-toast--warning .pcoi-toast__content{border-left:var(--pcoi-layout-component-accent-border-w) solid var(--pcoi-semantic-border-warning)}.pcoi-toast--info .pcoi-toast__content{border-left:var(--pcoi-layout-component-accent-border-w) solid var(--pcoi-semantic-border-info)}.pcoi-toast__message{flex:1;font-size:var(--pcoi-semantic-type-body-size);color:var(--pcoi-semantic-text-primary);line-height:var(--pcoi-semantic-type-body-compact-line-height)}.pcoi-toast__close{background:none;border:none;color:var(--pcoi-semantic-text-secondary);font-size:var(--pcoi-semantic-type-close-sm-size);line-height:var(--pcoi-semantic-type-none-line-height);cursor:pointer;padding:var(--pcoi-spacing-4);border-radius:var(--pcoi-radius-sm);flex-shrink:0;transition:color var(--pcoi-effect-transition-fast, .2s ease)}.pcoi-toast__close:hover{color:var(--pcoi-semantic-text-primary)}.pcoi-toast__close:active{transform:var(--pcoi-effect-transform-press-scale-icon)}.pcoi-toast__close:focus-visible{outline:none;box-shadow:var(--pcoi-effect-shadow-focus-ring)}@keyframes pcoi-toast-slide-in{0%{transform:translate(100%);opacity:0}to{transform:translate(0);opacity:1}}.pcoi-suggestion-card{display:flex;align-items:center;gap:var(--pcoi-spacing-12);width:100%;padding:var(--pcoi-spacing-16) var(--pcoi-spacing-20);font-family:var(--pcoi-semantic-type-body-font);font-size:var(--pcoi-semantic-type-body-size);line-height:var(--pcoi-semantic-type-body-line-height);color:var(--pcoi-semantic-text-secondary);text-align:left;background:var(--pcoi-color-bg-card);border:1px solid var(--pcoi-semantic-border-card);border-radius:var(--pcoi-radius-md);cursor:pointer;transition:background var(--pcoi-effect-transition-medium),border-color var(--pcoi-effect-transition-medium),transform var(--pcoi-effect-transition-medium),box-shadow var(--pcoi-effect-transition-medium)}.pcoi-suggestion-card:hover{background:var(--pcoi-color-bg-card-hover);border-color:var(--pcoi-semantic-border-card-hover);transform:var(--pcoi-effect-transform-hover-lift-sm)}.pcoi-suggestion-card:active{transform:var(--pcoi-effect-transform-press-scale)}.pcoi-suggestion-card:focus-visible{outline:none;box-shadow:var(--pcoi-effect-shadow-focus-ring)}.pcoi-suggestion-card__icon{display:flex;align-items:center;justify-content:center;flex-shrink:0;color:var(--pcoi-semantic-text-accent)}.pcoi-suggestion-card__label{flex:1;min-width:0}.pcoi-suggestion-cards{display:flex;flex-direction:column;gap:var(--pcoi-spacing-16)}@media (min-width: 768px){.pcoi-suggestion-cards{display:grid;grid-template-columns:repeat(3,1fr)}}.pcoi-cited-excerpt{display:flex;flex-direction:column;gap:var(--pcoi-spacing-6);padding:var(--pcoi-spacing-12);background:var(--pcoi-semantic-surface-accent-dim);border-left:var(--pcoi-layout-component-accent-border-w) solid var(--pcoi-semantic-border-accent-dim);border-radius:var(--pcoi-radius-sm)}.pcoi-cited-excerpt__source{display:inline-flex;align-items:center;align-self:flex-start;padding:0;font-family:var(--pcoi-semantic-type-body-font);font-size:var(--pcoi-semantic-type-body-sm-size);color:var(--pcoi-semantic-text-accent);background:none;border:none;cursor:pointer;transition:color var(--pcoi-effect-transition-fast)}.pcoi-cited-excerpt__source:hover{color:var(--pcoi-semantic-text-accent-hover);text-decoration:underline}.pcoi-cited-excerpt__source:focus-visible{outline:none;box-shadow:var(--pcoi-effect-shadow-focus-ring);border-radius:var(--pcoi-radius-sm)}.pcoi-cited-excerpt__body{display:flex;align-items:baseline;gap:var(--pcoi-spacing-6)}.pcoi-cited-excerpt__index{flex-shrink:0;padding:0;background:none;border:none;cursor:pointer;font-family:var(--pcoi-semantic-type-mono-font);font-size:var(--pcoi-semantic-type-body-compact-size);font-weight:var(--pcoi-semantic-type-label-weight);color:var(--pcoi-semantic-text-accent);transition:color var(--pcoi-effect-transition-fast)}.pcoi-cited-excerpt__index:hover{color:var(--pcoi-semantic-text-accent-hover)}.pcoi-cited-excerpt__index:focus-visible{outline:none;box-shadow:var(--pcoi-effect-shadow-focus-ring);border-radius:var(--pcoi-radius-sm)}.pcoi-cited-excerpt__text{margin:0;font-family:var(--pcoi-semantic-type-body-font);font-size:var(--pcoi-semantic-type-body-compact-size);color:var(--pcoi-semantic-text-secondary);line-height:var(--pcoi-semantic-type-body-line-height)}.pcoi-prompt-bar{display:flex;align-items:flex-end;gap:var(--pcoi-spacing-12);padding:var(--pcoi-spacing-12) var(--pcoi-spacing-16);background:var(--pcoi-color-bg-card);border:1px solid var(--pcoi-semantic-border-default);border-radius:var(--pcoi-radius-md);transition:border-color var(--pcoi-effect-transition-fast),box-shadow var(--pcoi-effect-transition-fast)}.pcoi-prompt-bar:not(:focus-within):hover{border-color:var(--pcoi-semantic-border-input-hover)}.pcoi-prompt-bar:focus-within{border-color:var(--pcoi-color-focus-border);box-shadow:var(--pcoi-effect-shadow-focus-ring)}.pcoi-prompt-bar__input{flex:1;min-height:24px;max-height:120px;padding:var(--pcoi-spacing-4) 0;font-family:var(--pcoi-semantic-type-body-font);font-size:var(--pcoi-semantic-type-body-size);line-height:var(--pcoi-semantic-type-body-line-height);color:var(--pcoi-semantic-text-primary);background:transparent;border:none;outline:none;resize:none}.pcoi-prompt-bar__input::placeholder{color:var(--pcoi-semantic-text-muted)}.pcoi-prompt-bar__actions{flex-shrink:0;display:flex;align-items:center}.pcoi-prompt-bar__send.pcoi-btn{padding:var(--pcoi-spacing-6);min-width:0;min-height:0;width:32px;height:32px}.pcoi-prompt-bar__send-icon{display:flex;transform:rotate(-90deg)}@media (max-width: 480px){.pcoi-prompt-bar{padding:var(--pcoi-spacing-8) var(--pcoi-spacing-12)}}.pcoi-chat-message{display:flex;flex-direction:column;gap:var(--pcoi-spacing-8);padding:var(--pcoi-spacing-16);border-radius:var(--pcoi-radius-md);border:1px solid var(--pcoi-semantic-border-card)}.pcoi-chat-message--user{background:var(--pcoi-color-surface)}.pcoi-chat-message--assistant{background:var(--pcoi-semantic-surface-accent-dim)}.pcoi-chat-message__header{display:flex;align-items:center}.pcoi-chat-message__body{font-family:var(--pcoi-semantic-type-body-font);font-size:var(--pcoi-semantic-type-body-size);line-height:var(--pcoi-semantic-type-body-line-height);color:var(--pcoi-semantic-text-primary)}.pcoi-chat-message__citations{display:flex;flex-direction:column;gap:var(--pcoi-spacing-8);margin-top:var(--pcoi-spacing-4)}.pcoi-chat-message__timestamp{font-family:var(--pcoi-semantic-type-body-font);font-size:var(--pcoi-semantic-type-body-sm-size);color:var(--pcoi-semantic-text-muted)}@media (min-width: 1025px){.pcoi-chat-message--user{margin-left:var(--pcoi-spacing-48)}.pcoi-chat-message--assistant{margin-right:var(--pcoi-spacing-48)}}.pcoi-chat-message-list{flex:1;min-height:0;overflow:hidden}.pcoi-chat-message-list__inner{height:100%;overflow-y:auto;display:flex;flex-direction:column;gap:var(--pcoi-spacing-16);padding:var(--pcoi-spacing-16)}@media (min-width: 768px){.pcoi-chat-message-list__inner{gap:var(--pcoi-spacing-20);padding:var(--pcoi-spacing-24)}}.pcoi-typing-indicator{display:flex;flex-direction:column;gap:var(--pcoi-spacing-8);padding:var(--pcoi-spacing-16);background:var(--pcoi-semantic-surface-accent-dim);border:1px solid var(--pcoi-semantic-border-card);border-radius:var(--pcoi-radius-md);animation:pcoi-typing-fade-in .2s ease}.pcoi-typing-indicator__header{display:flex;align-items:center}.pcoi-typing-indicator__dots{display:flex;align-items:center;gap:6px;padding:var(--pcoi-spacing-4) 0}.pcoi-typing-indicator__dot{width:8px;height:8px;border-radius:var(--pcoi-radius-full);background:var(--pcoi-semantic-text-accent);opacity:.4;animation:pcoi-typing-bounce 1.4s ease-in-out infinite}.pcoi-typing-indicator__dot:nth-child(2){animation-delay:.2s}.pcoi-typing-indicator__dot:nth-child(3){animation-delay:.4s}@keyframes pcoi-typing-bounce{0%,60%,to{transform:translateY(0);opacity:.4}30%{transform:translateY(-6px);opacity:1}}@keyframes pcoi-typing-fade-in{0%{opacity:0;transform:translateY(4px)}to{opacity:1;transform:translateY(0)}}@media (min-width: 1025px){.pcoi-typing-indicator{margin-right:var(--pcoi-spacing-48)}}.pcoi-doc-overlay .pcoi-modal__title{color:var(--pcoi-semantic-text-accent)}.pcoi-doc-overlay__content{font-family:var(--pcoi-semantic-type-body-font);font-size:var(--pcoi-semantic-type-body-size);line-height:var(--pcoi-semantic-type-body-line-height);color:var(--pcoi-semantic-text-primary)}.pcoi-doc-overlay__content p{margin:0 0 var(--pcoi-spacing-12)}.pcoi-doc-overlay__content p:last-child{margin-bottom:0}.pcoi-doc-overlay__highlight{display:flex;align-items:baseline;gap:var(--pcoi-spacing-6);background:var(--pcoi-semantic-surface-highlight);border-left:var(--pcoi-layout-component-accent-border-w) solid var(--pcoi-semantic-border-accent-subtle);padding:var(--pcoi-spacing-8) var(--pcoi-spacing-12);border-radius:var(--pcoi-radius-sm);animation:pcoi-doc-highlight-fade .4s ease}.pcoi-doc-overlay__highlight[data-highlight-index]:before{content:attr(data-highlight-index);flex-shrink:0;font-family:var(--pcoi-semantic-type-mono-font);font-size:var(--pcoi-semantic-type-body-compact-size);font-weight:var(--pcoi-semantic-type-label-weight);color:var(--pcoi-semantic-text-accent)}.pcoi-doc-overlay__source{display:flex;align-items:center}@keyframes pcoi-doc-highlight-fade{0%{background:var(--pcoi-semantic-surface-accent-dim)}to{background:var(--pcoi-semantic-surface-highlight)}}.pcoi-chat{display:flex;flex-direction:column;height:100%;max-width:var(--pcoi-layout-container-narrow, 800px);margin:0 auto}.pcoi-chat--empty{justify-content:flex-end}.pcoi-chat__empty-state{flex:1;display:flex;flex-direction:column;justify-content:center;padding:var(--pcoi-spacing-16)}.pcoi-chat__suggestions{max-width:100%}.pcoi-chat__messages{flex:1;min-height:0}.pcoi-chat__prompt{flex-shrink:0;padding:var(--pcoi-spacing-16)}@media (min-width: 768px){.pcoi-chat__empty-state,.pcoi-chat__prompt{padding:var(--pcoi-spacing-24)}}
|
|
1
|
+
.pcoi-sr-only{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border-width:0}.pcoi-badge{display:inline-flex;align-items:center;font-family:var(--pcoi-semantic-type-mono-font);font-size:var(--pcoi-semantic-type-badge-size);font-weight:var(--pcoi-semantic-type-label-weight);letter-spacing:var(--pcoi-semantic-type-badge-letter-spacing);text-transform:uppercase;padding:var(--pcoi-semantic-spacing-inline-2xs) var(--pcoi-semantic-spacing-chip-x);border-radius:var(--pcoi-semantic-radius-badge);line-height:var(--pcoi-semantic-type-none-line-height)}.pcoi-badge--default{background:var(--pcoi-semantic-surface-accent-dim);color:var(--pcoi-semantic-text-accent)}.pcoi-badge--success{background:var(--pcoi-semantic-action-success-bg);color:var(--pcoi-semantic-text-success)}.pcoi-badge--error{background:var(--pcoi-semantic-action-error-bg);color:var(--pcoi-semantic-text-error)}.pcoi-badge--warning{background:var(--pcoi-semantic-action-warning-bg);color:var(--pcoi-semantic-text-warning)}.pcoi-badge--info{background:var(--pcoi-semantic-action-info-bg);color:var(--pcoi-semantic-text-info)}.pcoi-logo{font-family:var(--pcoi-semantic-type-body-font);font-size:var(--pcoi-semantic-type-logo-size);font-weight:var(--pcoi-semantic-type-emphasis-weight);letter-spacing:var(--pcoi-semantic-type-logo-letter-spacing);color:var(--pcoi-semantic-text-primary);text-decoration:none;display:inline-flex;align-items:center}.pcoi-logo__mark{color:var(--pcoi-semantic-text-accent)}.pcoi-btn{display:inline-flex;align-items:center;justify-content:center;padding:var(--pcoi-semantic-spacing-btn-y-comfortable) var(--pcoi-semantic-spacing-btn-x-comfortable);font-size:var(--pcoi-semantic-type-body-size);font-weight:var(--pcoi-semantic-type-emphasis-weight);font-family:var(--pcoi-semantic-type-body-font);border-radius:var(--pcoi-semantic-radius-btn);border:none;cursor:pointer;transition:all var(--pcoi-effect-transition-fast, .2s ease);text-decoration:none;line-height:var(--pcoi-semantic-type-none-line-height);white-space:nowrap}.pcoi-btn--primary{background:var(--pcoi-semantic-action-primary-bg);color:var(--pcoi-semantic-action-primary-text)}.pcoi-btn--primary:hover{background:var(--pcoi-semantic-action-primary-bg-hover);transform:var(--pcoi-effect-transform-hover-lift);box-shadow:var(--pcoi-effect-shadow-btn-primary-hover)}.pcoi-btn--ghost{background:transparent;color:var(--pcoi-semantic-action-ghost-text);border:1px solid var(--pcoi-semantic-action-ghost-border)}.pcoi-btn--ghost:hover{color:var(--pcoi-semantic-action-ghost-text-hover);border-color:var(--pcoi-semantic-action-ghost-border-hover);background:var(--pcoi-semantic-action-ghost-bg-hover)}.pcoi-btn--nav-cta{background:var(--pcoi-semantic-action-primary-bg);color:var(--pcoi-semantic-action-primary-text);padding:var(--pcoi-semantic-spacing-btn-y) var(--pcoi-semantic-spacing-btn-x-nav);font-weight:var(--pcoi-semantic-type-emphasis-weight)}.pcoi-btn--nav-cta:hover{background:var(--pcoi-semantic-action-primary-bg-hover);transform:var(--pcoi-effect-transform-hover-lift-sm)}.pcoi-btn--primary:active{transform:var(--pcoi-effect-transform-press-scale);box-shadow:none}.pcoi-btn--ghost:active{transform:var(--pcoi-effect-transform-press-scale)}.pcoi-btn--nav-cta:active{transform:var(--pcoi-effect-transform-press-scale);box-shadow:none}.pcoi-btn:focus-visible{outline:none;box-shadow:var(--pcoi-effect-shadow-focus-ring)}.pcoi-btn:disabled,.pcoi-btn[aria-disabled=true]{opacity:var(--pcoi-effect-opacity-disabled);cursor:not-allowed;transform:none;box-shadow:none}.pcoi-btn--large{padding:var(--pcoi-semantic-spacing-btn-y-lg) var(--pcoi-semantic-spacing-btn-x-lg);font-size:var(--pcoi-semantic-type-body-lg-size)}.pcoi-field{display:flex;flex-direction:column;gap:var(--pcoi-semantic-spacing-form-gap-compact)}.pcoi-field__label{font-size:var(--pcoi-semantic-type-label-size);font-weight:var(--pcoi-semantic-type-label-weight);letter-spacing:var(--pcoi-semantic-type-label-letter-spacing);text-transform:uppercase;color:var(--pcoi-semantic-text-secondary)}.pcoi-field__required{color:var(--pcoi-semantic-text-error);margin-left:var(--pcoi-semantic-spacing-inline-2xs)}.pcoi-field__input,.pcoi-field__textarea{font-family:var(--pcoi-semantic-type-body-font);font-size:var(--pcoi-semantic-type-body-size);color:var(--pcoi-semantic-text-primary);background:var(--pcoi-semantic-bg-default);border:1px solid var(--pcoi-semantic-border-default);border-radius:var(--pcoi-semantic-radius-input);padding:var(--pcoi-semantic-spacing-input-y) var(--pcoi-semantic-spacing-input-x-compact);transition:border-color var(--pcoi-effect-transition-fast, .2s ease),box-shadow var(--pcoi-effect-transition-fast, .2s ease)}.pcoi-field__input::placeholder,.pcoi-field__textarea::placeholder{color:var(--pcoi-semantic-text-muted)}.pcoi-field__input:not(:disabled):not(:focus):hover,.pcoi-field__textarea:not(:disabled):not(:focus):hover{border-color:var(--pcoi-semantic-border-input-hover)}.pcoi-field__input:focus,.pcoi-field__textarea:focus{outline:none;border-color:var(--pcoi-semantic-focus-border);box-shadow:var(--pcoi-effect-shadow-focus-ring)}.pcoi-field__textarea{resize:vertical;min-height:var(--pcoi-semantic-sizing-textarea-min-height)}.pcoi-field--error .pcoi-field__input,.pcoi-field--error .pcoi-field__textarea{border-color:var(--pcoi-semantic-border-error)}.pcoi-field--error .pcoi-field__input:focus,.pcoi-field--error .pcoi-field__textarea:focus{box-shadow:var(--pcoi-effect-shadow-focus-ring-error)}.pcoi-field__error{font-size:var(--pcoi-semantic-type-label-size);color:var(--pcoi-semantic-text-error);margin:0}.pcoi-field--disabled{opacity:var(--pcoi-effect-opacity-disabled);pointer-events:none}.pcoi-card{border:1px solid var(--pcoi-semantic-border-card);border-radius:var(--pcoi-semantic-radius-card);padding:var(--pcoi-semantic-spacing-card-padding);transition:border-color var(--pcoi-effect-transition-medium, .3s ease),transform var(--pcoi-effect-transition-medium, .3s ease)}.pcoi-card:hover{border-color:var(--pcoi-semantic-border-card-hover);transform:var(--pcoi-effect-transform-hover-lift)}.pcoi-card--problem{background:var(--pcoi-semantic-bg-card)}.pcoi-card--problem .pcoi-card__icon{width:var(--pcoi-semantic-sizing-icon-box);height:var(--pcoi-semantic-sizing-icon-box);border-radius:var(--pcoi-semantic-radius-btn);background:var(--pcoi-semantic-surface-accent-dim);display:flex;align-items:center;justify-content:center;margin-bottom:var(--pcoi-semantic-spacing-card-gap);color:var(--pcoi-semantic-text-accent)}.pcoi-card--problem .pcoi-card__title{font-size:var(--pcoi-semantic-type-heading-md-size);font-weight:var(--pcoi-semantic-type-emphasis-weight);color:var(--pcoi-semantic-text-primary);margin:0 0 var(--pcoi-semantic-spacing-text-gap-sm) 0}.pcoi-card--problem .pcoi-card__description{font-size:var(--pcoi-semantic-type-body-size);color:var(--pcoi-semantic-text-secondary);line-height:var(--pcoi-semantic-type-body-line-height)}.pcoi-card--who{background:var(--pcoi-semantic-bg-surface)}.pcoi-card--who .pcoi-card__title{font-size:var(--pcoi-semantic-type-heading-sm-size);font-weight:var(--pcoi-semantic-type-emphasis-weight);color:var(--pcoi-semantic-text-accent);margin:0 0 var(--pcoi-semantic-spacing-text-gap-sm) 0}.pcoi-card--who .pcoi-card__description{font-size:var(--pcoi-semantic-type-body-compact-size);color:var(--pcoi-semantic-text-secondary);line-height:var(--pcoi-semantic-type-body-line-height)}.pcoi-card--principle{background:var(--pcoi-semantic-bg-card)}.pcoi-card--principle .pcoi-card__number{font-family:var(--pcoi-semantic-type-mono-font);font-size:var(--pcoi-semantic-type-body-sm-size);font-weight:var(--pcoi-semantic-type-emphasis-weight);color:var(--pcoi-semantic-text-accent);margin-bottom:var(--pcoi-semantic-spacing-stack-md)}.pcoi-card--principle .pcoi-card__title{font-size:var(--pcoi-semantic-type-card-subtitle-size);font-weight:var(--pcoi-semantic-type-emphasis-weight);color:var(--pcoi-semantic-text-primary);margin:0 0 var(--pcoi-semantic-spacing-text-gap-sm) 0}.pcoi-card--principle .pcoi-card__description{font-size:var(--pcoi-semantic-type-body-compact-size);color:var(--pcoi-semantic-text-secondary);line-height:var(--pcoi-semantic-type-body-line-height)}.pcoi-nav{position:fixed;top:0;left:0;right:0;z-index:var(--pcoi-semantic-layout-z-nav, 1000);height:var(--pcoi-semantic-spacing-nav-height, 72px);transition:background var(--pcoi-effect-transition-medium, .3s ease),box-shadow var(--pcoi-effect-transition-medium, .3s ease)}.pcoi-nav--scrolled{background:var(--pcoi-semantic-bg-nav-scrolled);-webkit-backdrop-filter:blur(var(--pcoi-effect-blur-nav-backdrop, 20px));backdrop-filter:blur(var(--pcoi-effect-blur-nav-backdrop, 20px));box-shadow:var(--pcoi-effect-shadow-nav-scrolled)}.pcoi-nav__inner{max-width:var(--pcoi-semantic-sizing-container-max);margin:0 auto;padding:0 var(--pcoi-semantic-spacing-btn-x);height:100%;display:flex;align-items:center;justify-content:space-between}.pcoi-nav__links{display:flex;align-items:center;gap:var(--pcoi-semantic-spacing-stack-lg)}.pcoi-nav__links a{font-size:var(--pcoi-semantic-type-nav-size);font-weight:var(--pcoi-semantic-type-label-weight);color:var(--pcoi-semantic-text-secondary);text-decoration:none;transition:color var(--pcoi-effect-transition-fast, .2s ease)}.pcoi-nav__links a:hover{color:var(--pcoi-semantic-text-primary)}.pcoi-nav__links a:focus-visible{outline:none;box-shadow:var(--pcoi-effect-shadow-focus-ring);border-radius:var(--pcoi-semantic-radius-btn)}.pcoi-nav__links a:active{transform:var(--pcoi-effect-transform-press-scale)}.pcoi-nav__hamburger{display:none;flex-direction:column;justify-content:center;gap:var(--pcoi-semantic-spacing-hamburger-gap);width:var(--pcoi-semantic-sizing-hamburger-size);height:var(--pcoi-semantic-sizing-hamburger-size);background:none;border:none;cursor:pointer;padding:0}.pcoi-nav__hamburger:hover{color:var(--pcoi-semantic-text-primary)}.pcoi-nav__hamburger:focus-visible{outline:none;box-shadow:var(--pcoi-effect-shadow-focus-ring);border-radius:var(--pcoi-semantic-radius-btn)}.pcoi-nav__hamburger:active{transform:var(--pcoi-effect-transform-press-scale-icon)}.pcoi-nav__hamburger span{display:block;width:100%;height:2px;background:var(--pcoi-semantic-text-primary);border-radius:1px;transition:transform var(--pcoi-effect-transition-fast, .2s ease),opacity var(--pcoi-effect-transition-fast, .2s ease)}.pcoi-nav__hamburger--active span:nth-child(1){transform:translateY(var(--pcoi-semantic-spacing-hamburger-bar-offset)) rotate(45deg)}.pcoi-nav__hamburger--active span:nth-child(2){opacity:0}.pcoi-nav__hamburger--active span:nth-child(3){transform:translateY(calc(-1 * var(--pcoi-semantic-spacing-hamburger-bar-offset))) rotate(-45deg)}.pcoi-nav__mobile-menu{display:none;flex-direction:column;padding:var(--pcoi-semantic-spacing-btn-x) var(--pcoi-semantic-spacing-btn-x) var(--pcoi-semantic-spacing-stack-lg);background:var(--pcoi-semantic-bg-default);box-shadow:var(--pcoi-effect-shadow-mobile-menu)}.pcoi-nav__mobile-menu a{font-size:var(--pcoi-semantic-type-body-lg-size);font-weight:var(--pcoi-semantic-type-label-weight);color:var(--pcoi-semantic-text-secondary);text-decoration:none;padding:var(--pcoi-semantic-spacing-input-y) 0;transition:color var(--pcoi-effect-transition-fast, .2s ease)}.pcoi-nav__mobile-menu a:hover{color:var(--pcoi-semantic-text-primary)}.pcoi-nav__mobile-menu a:focus-visible{outline:none;box-shadow:var(--pcoi-effect-shadow-focus-ring);border-radius:var(--pcoi-semantic-radius-btn)}.pcoi-nav__mobile-menu a:active{transform:var(--pcoi-effect-transform-press-scale)}.pcoi-nav__mobile-menu .pcoi-btn{margin-top:var(--pcoi-semantic-spacing-stack-md);width:100%;justify-content:center}@media (max-width: 768px){.pcoi-nav__links{display:none}.pcoi-nav__hamburger,.pcoi-nav--menu-open .pcoi-nav__mobile-menu{display:flex}}.pcoi-section-header{text-align:center;max-width:var(--pcoi-semantic-sizing-container-narrow);margin:0 auto var(--pcoi-semantic-spacing-section-header-margin)}.pcoi-section-header__label{display:inline-block;font-family:var(--pcoi-semantic-type-mono-font);font-size:var(--pcoi-semantic-type-section-label-size);font-weight:var(--pcoi-semantic-type-label-weight);letter-spacing:var(--pcoi-semantic-type-section-label-letter-spacing);text-transform:uppercase;color:var(--pcoi-semantic-text-accent);margin-bottom:var(--pcoi-semantic-spacing-stack-md)}.pcoi-section-header__title{font-size:var(--pcoi-semantic-type-section-title-size);font-weight:var(--pcoi-semantic-type-heading-weight);line-height:var(--pcoi-semantic-type-heading-line-height);letter-spacing:var(--pcoi-semantic-type-heading-letter-spacing);color:var(--pcoi-semantic-text-primary);margin:0 0 var(--pcoi-semantic-spacing-stack-md) 0}.pcoi-section-header__title em{font-style:normal;color:var(--pcoi-semantic-text-accent)}.pcoi-section-header__desc{font-size:var(--pcoi-semantic-type-heading-sm-size);color:var(--pcoi-semantic-text-secondary);line-height:var(--pcoi-semantic-type-relaxed-line-height)}.pcoi-how-step{display:flex;align-items:flex-start;gap:var(--pcoi-semantic-spacing-stack-lg);padding:var(--pcoi-semantic-spacing-component-gap) 0;border-bottom:1px solid var(--pcoi-semantic-border-default)}.pcoi-how-step--last{border-bottom:none}.pcoi-how-step__number{flex-shrink:0;width:var(--pcoi-semantic-sizing-step-number);height:var(--pcoi-semantic-sizing-step-number);border-radius:var(--pcoi-semantic-radius-avatar);background:var(--pcoi-semantic-surface-accent-dim);border:1px solid var(--pcoi-semantic-border-accent-dim);display:flex;align-items:center;justify-content:center;font-family:var(--pcoi-semantic-type-mono-font);font-size:var(--pcoi-semantic-type-body-sm-size);font-weight:var(--pcoi-semantic-type-emphasis-weight);color:var(--pcoi-semantic-text-accent)}.pcoi-how-step__content{flex:1;min-width:0}.pcoi-how-step__title{font-size:var(--pcoi-semantic-type-step-title-size);font-weight:var(--pcoi-semantic-type-emphasis-weight);color:var(--pcoi-semantic-text-primary);margin:0 0 var(--pcoi-semantic-spacing-stack-sm) 0}.pcoi-how-step__desc{font-size:var(--pcoi-semantic-type-body-size);color:var(--pcoi-semantic-text-secondary);line-height:var(--pcoi-semantic-type-step-line-height);margin:0}.pcoi-comparison{max-width:var(--pcoi-semantic-sizing-comparison-width, 900px);border:1px solid var(--pcoi-semantic-border-card);border-radius:var(--pcoi-semantic-radius-card);overflow:hidden}.pcoi-comparison__table{width:100%;border-collapse:collapse}.pcoi-comparison__header .pcoi-comparison__col{font-family:var(--pcoi-semantic-type-mono-font);font-size:var(--pcoi-semantic-type-body-sm-size);font-weight:var(--pcoi-semantic-type-emphasis-weight);letter-spacing:var(--pcoi-semantic-type-label-letter-spacing);text-transform:uppercase;color:var(--pcoi-semantic-text-secondary);padding:var(--pcoi-semantic-spacing-stack-md) var(--pcoi-semantic-spacing-card-gap);background:var(--pcoi-semantic-bg-alt);text-align:left}.pcoi-comparison__row{border-top:1px solid var(--pcoi-semantic-border-card)}.pcoi-comparison__col{padding:var(--pcoi-semantic-spacing-stack-md) var(--pcoi-semantic-spacing-card-gap);font-size:var(--pcoi-semantic-type-body-compact-size);color:var(--pcoi-semantic-text-secondary);line-height:var(--pcoi-semantic-type-body-compact-line-height)}.pcoi-comparison__col--label{font-weight:var(--pcoi-semantic-type-label-weight);color:var(--pcoi-semantic-text-primary);text-align:left}.pcoi-comparison__col--highlight{background:var(--pcoi-semantic-surface-highlight);color:var(--pcoi-semantic-text-accent);font-weight:var(--pcoi-semantic-type-label-weight)}.pcoi-comparison__header .pcoi-comparison__col--highlight{color:var(--pcoi-semantic-text-accent);font-weight:var(--pcoi-semantic-type-emphasis-weight)}@media (max-width: 768px){.pcoi-comparison{overflow-x:auto;-webkit-overflow-scrolling:touch}.pcoi-comparison__table{min-width:var(--pcoi-semantic-sizing-comparison-scroll-width)}}.pcoi-form{background:var(--pcoi-semantic-bg-surface);border:1px solid var(--pcoi-semantic-border-default);border-radius:var(--pcoi-semantic-radius-panel);padding:var(--pcoi-semantic-spacing-form-padding);display:flex;flex-direction:column;gap:var(--pcoi-semantic-spacing-form-gap)}.pcoi-form__row{display:grid;grid-template-columns:1fr 1fr;gap:var(--pcoi-semantic-spacing-form-gap)}.pcoi-form__full{grid-column:1 / -1}.pcoi-form__note{font-size:var(--pcoi-semantic-type-label-size);color:var(--pcoi-semantic-text-muted);margin:0}@media (max-width: 768px){.pcoi-form{padding:var(--pcoi-semantic-spacing-panel-padding)}.pcoi-form__row{grid-template-columns:1fr}}.pcoi-callout{text-align:center;padding:var(--pcoi-semantic-spacing-component-gap) var(--pcoi-semantic-spacing-btn-x);display:flex;flex-direction:column;align-items:center}.pcoi-callout__line{width:var(--pcoi-semantic-sizing-accent-line-width);height:2px;background:var(--pcoi-semantic-text-accent);margin-bottom:var(--pcoi-semantic-spacing-stack-lg)}.pcoi-callout__quote{font-size:var(--pcoi-semantic-type-callout-size);font-weight:var(--pcoi-semantic-type-callout-weight);color:var(--pcoi-semantic-text-secondary);line-height:var(--pcoi-semantic-type-body-compact-line-height);max-width:var(--pcoi-semantic-sizing-callout-width, 640px);margin:0 0 var(--pcoi-semantic-spacing-panel-padding) 0;padding:0;font-style:italic}.pcoi-callout__quote p{margin:0}.pcoi-callout__attribution{font-size:var(--pcoi-semantic-type-body-sm-size);color:var(--pcoi-semantic-text-muted);margin:0}.pcoi-callout__attribution a{color:var(--pcoi-semantic-text-accent);text-decoration:underline;text-underline-offset:2px;transition:color var(--pcoi-effect-transition-fast, .2s ease)}.pcoi-callout__attribution a:hover{color:var(--pcoi-semantic-text-accent-hover)}.pcoi-signals{background:var(--pcoi-semantic-bg-surface);border:1px solid var(--pcoi-semantic-border-default);border-radius:var(--pcoi-semantic-radius-card);padding:var(--pcoi-semantic-spacing-component-gap) var(--pcoi-semantic-spacing-inline-xl)}.pcoi-signals__title{font-size:var(--pcoi-semantic-type-heading-sm-size);font-weight:var(--pcoi-semantic-type-emphasis-weight);color:var(--pcoi-semantic-text-accent);margin:0 0 var(--pcoi-semantic-spacing-panel-padding) 0}.pcoi-signals__list{list-style:none;padding:0;margin:0;display:flex;flex-direction:column;gap:var(--pcoi-semantic-spacing-stack-compact)}.pcoi-signals__item{position:relative;padding-left:var(--pcoi-semantic-spacing-panel-padding);font-size:var(--pcoi-semantic-type-body-compact-size);color:var(--pcoi-semantic-text-secondary);line-height:var(--pcoi-semantic-type-body-compact-line-height)}.pcoi-signals__item:before{content:"";position:absolute;left:0;top:8px;width:var(--pcoi-semantic-sizing-bullet-size);height:var(--pcoi-semantic-sizing-bullet-size);border-radius:var(--pcoi-semantic-radius-badge);background:var(--pcoi-semantic-text-accent);opacity:.5}@media (max-width: 768px){.pcoi-signals{padding:var(--pcoi-semantic-spacing-panel-padding) var(--pcoi-semantic-spacing-inline-lg)}}.pcoi-footer{border-top:1px solid var(--pcoi-semantic-border-default);padding:var(--pcoi-semantic-spacing-section-y-md) var(--pcoi-semantic-spacing-btn-x) var(--pcoi-semantic-spacing-component-gap)}.pcoi-footer__inner{max-width:var(--pcoi-semantic-sizing-container-max);margin:0 auto;display:flex;justify-content:space-between;align-items:flex-start}.pcoi-footer__logo{margin-bottom:var(--pcoi-semantic-spacing-stack-sm)}.pcoi-footer__tagline{font-size:var(--pcoi-semantic-type-body-sm-size);color:var(--pcoi-semantic-text-secondary);line-height:var(--pcoi-semantic-type-body-compact-line-height);margin:0;white-space:pre-line}.pcoi-footer__links{display:flex;flex-wrap:wrap;gap:var(--pcoi-semantic-spacing-inline-lg)}.pcoi-footer__links a{font-size:var(--pcoi-semantic-type-nav-size);color:var(--pcoi-semantic-text-secondary);text-decoration:none;transition:color var(--pcoi-effect-transition-fast, .2s ease)}.pcoi-footer__links a:hover{color:var(--pcoi-semantic-text-primary)}.pcoi-footer__bottom{max-width:var(--pcoi-semantic-sizing-container-max);margin:var(--pcoi-semantic-spacing-component-gap) auto 0;padding-top:var(--pcoi-semantic-spacing-panel-padding);border-top:1px solid var(--pcoi-semantic-border-default)}.pcoi-footer__bottom p{font-size:var(--pcoi-semantic-type-label-size);color:var(--pcoi-semantic-text-muted);margin:0}@media (max-width: 768px){.pcoi-footer__inner{flex-direction:column;gap:var(--pcoi-semantic-spacing-stack-lg)}.pcoi-footer__links{flex-direction:column;gap:var(--pcoi-semantic-spacing-stack-compact)}}.pcoi-select{display:flex;flex-direction:column;gap:var(--pcoi-semantic-spacing-form-gap-compact)}.pcoi-select__label{font-size:var(--pcoi-semantic-type-label-size);font-weight:var(--pcoi-semantic-type-label-weight);letter-spacing:var(--pcoi-semantic-type-label-letter-spacing);text-transform:uppercase;color:var(--pcoi-semantic-text-secondary)}.pcoi-select__required{color:var(--pcoi-semantic-text-error);margin-left:var(--pcoi-semantic-spacing-inline-2xs)}.pcoi-select__wrapper{position:relative}.pcoi-select__native{-webkit-appearance:none;-moz-appearance:none;appearance:none;width:100%;font-family:var(--pcoi-semantic-type-body-font);font-size:var(--pcoi-semantic-type-body-size);color:var(--pcoi-semantic-text-primary);background:var(--pcoi-semantic-bg-default);border:1px solid var(--pcoi-semantic-border-default);border-radius:var(--pcoi-semantic-radius-input);padding:var(--pcoi-semantic-spacing-input-y) var(--pcoi-semantic-spacing-btn-x-lg) var(--pcoi-semantic-spacing-input-y) var(--pcoi-semantic-spacing-input-x-compact);cursor:pointer;transition:border-color var(--pcoi-effect-transition-fast, .2s ease),box-shadow var(--pcoi-effect-transition-fast, .2s ease)}.pcoi-select__native:hover{border-color:var(--pcoi-semantic-border-input-hover)}.pcoi-select__native:active{transform:var(--pcoi-effect-transform-press-scale-input)}.pcoi-select__native:focus{outline:none;border-color:var(--pcoi-semantic-focus-border);box-shadow:var(--pcoi-effect-shadow-focus-ring)}.pcoi-select__native option{background:var(--pcoi-semantic-bg-default);color:var(--pcoi-semantic-text-primary)}.pcoi-select__chevron{position:absolute;right:var(--pcoi-semantic-spacing-input-x-compact);top:50%;transform:translateY(-50%);pointer-events:none;color:var(--pcoi-semantic-text-secondary);display:flex;align-items:center}.pcoi-select--error .pcoi-select__native{border-color:var(--pcoi-semantic-border-error)}.pcoi-select--error .pcoi-select__native:focus{box-shadow:var(--pcoi-effect-shadow-focus-ring-error)}.pcoi-select__error{font-size:var(--pcoi-semantic-type-label-size);color:var(--pcoi-semantic-text-error);margin:0}.pcoi-select--disabled{opacity:var(--pcoi-effect-opacity-disabled);pointer-events:none}.pcoi-checkbox{display:flex;flex-direction:column;gap:var(--pcoi-semantic-spacing-form-gap-compact)}.pcoi-checkbox__control{display:inline-flex;align-items:center;gap:var(--pcoi-semantic-spacing-inline-sm);cursor:pointer}.pcoi-checkbox__input{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border-width:0}.pcoi-checkbox__box{width:var(--pcoi-semantic-sizing-control-box-size);height:var(--pcoi-semantic-sizing-control-box-size);flex-shrink:0;border:1px solid var(--pcoi-semantic-border-default);border-radius:var(--pcoi-semantic-radius-input);background:var(--pcoi-semantic-bg-default);transition:background var(--pcoi-effect-transition-fast, .2s ease),border-color var(--pcoi-effect-transition-fast, .2s ease);position:relative}.pcoi-checkbox__box:after{content:"";position:absolute;top:2px;left:5px;width:5px;height:9px;border:solid var(--pcoi-semantic-action-primary-text);border-width:0 2px 2px 0;transform:rotate(45deg);opacity:0;transition:opacity var(--pcoi-effect-transition-fast, .2s ease)}.pcoi-checkbox__input:checked+.pcoi-checkbox__box{background:var(--pcoi-semantic-action-primary-bg);border-color:var(--pcoi-semantic-action-primary-bg)}.pcoi-checkbox__input:checked+.pcoi-checkbox__box:after{opacity:1}.pcoi-checkbox__control:hover .pcoi-checkbox__box{border-color:var(--pcoi-semantic-border-input-hover)}.pcoi-checkbox__control:active .pcoi-checkbox__box{transform:var(--pcoi-effect-transform-press-scale-control)}.pcoi-checkbox__input:focus-visible+.pcoi-checkbox__box{border-color:var(--pcoi-semantic-focus-border);box-shadow:var(--pcoi-effect-shadow-focus-ring)}.pcoi-checkbox__label{font-size:var(--pcoi-semantic-type-body-size);color:var(--pcoi-semantic-text-primary)}.pcoi-checkbox--error .pcoi-checkbox__box{border-color:var(--pcoi-semantic-border-error)}.pcoi-checkbox__error{font-size:var(--pcoi-semantic-type-label-size);color:var(--pcoi-semantic-text-error);margin:0;padding-left:calc(var(--pcoi-semantic-sizing-control-box-size) + var(--pcoi-semantic-spacing-inline-sm))}.pcoi-checkbox--disabled{opacity:var(--pcoi-effect-opacity-disabled);pointer-events:none}.pcoi-toggle{display:flex;flex-direction:column;gap:var(--pcoi-semantic-spacing-form-gap-compact)}.pcoi-toggle__control{display:inline-flex;align-items:center;gap:var(--pcoi-semantic-spacing-panel-gap);cursor:pointer}.pcoi-toggle__input{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border-width:0}.pcoi-toggle__track{width:var(--pcoi-semantic-sizing-toggle-track-width);height:var(--pcoi-semantic-sizing-toggle-track-height);flex-shrink:0;border-radius:var(--pcoi-semantic-radius-badge);background:var(--pcoi-semantic-action-toggle-bg);position:relative;transition:background var(--pcoi-effect-transition-fast, .2s ease)}.pcoi-toggle__thumb{position:absolute;top:var(--pcoi-semantic-spacing-toggle-thumb-inset);left:var(--pcoi-semantic-spacing-toggle-thumb-inset);width:var(--pcoi-semantic-sizing-toggle-thumb-size);height:var(--pcoi-semantic-sizing-toggle-thumb-size);border-radius:var(--pcoi-semantic-radius-badge);background:var(--pcoi-semantic-action-toggle-thumb);transition:transform var(--pcoi-effect-transition-fast, .2s ease),background var(--pcoi-effect-transition-fast, .2s ease)}.pcoi-toggle__thumb:after{content:"";position:absolute;top:50%;left:50%;width:var(--pcoi-semantic-sizing-toggle-check-width);height:var(--pcoi-semantic-sizing-toggle-check-height);border:solid var(--pcoi-semantic-action-success);border-width:0 var(--pcoi-semantic-sizing-toggle-check-stroke) var(--pcoi-semantic-sizing-toggle-check-stroke) 0;transform:translate(-50%,-60%) rotate(45deg);opacity:0;transition:opacity var(--pcoi-effect-transition-fast, .2s ease)}.pcoi-toggle__control:hover .pcoi-toggle__track{box-shadow:0 0 0 1px var(--pcoi-semantic-border-input-hover)}.pcoi-toggle__control:active .pcoi-toggle__track{transform:var(--pcoi-effect-transform-press-scale-track)}.pcoi-toggle__input:checked+.pcoi-toggle__track{background:var(--pcoi-semantic-action-toggle-bg-on)}.pcoi-toggle__input:checked+.pcoi-toggle__track .pcoi-toggle__thumb{transform:translate(var(--pcoi-semantic-spacing-toggle-thumb-travel)) var(--pcoi-effect-transform-toggle-thumb-on)}.pcoi-toggle__input:checked+.pcoi-toggle__track .pcoi-toggle__thumb:after{opacity:1}.pcoi-toggle__input:focus-visible+.pcoi-toggle__track{outline:none;box-shadow:var(--pcoi-effect-shadow-focus-ring)}.pcoi-toggle__label{font-size:var(--pcoi-semantic-type-body-size);color:var(--pcoi-semantic-text-primary)}.pcoi-toggle--error .pcoi-toggle__track{box-shadow:0 0 0 1px var(--pcoi-semantic-border-error)}.pcoi-toggle__error{font-size:var(--pcoi-semantic-type-label-size);color:var(--pcoi-semantic-text-error);margin:0;padding-left:calc(var(--pcoi-semantic-sizing-toggle-track-width) + var(--pcoi-semantic-spacing-panel-gap))}.pcoi-toggle--disabled{opacity:var(--pcoi-effect-opacity-disabled);pointer-events:none}.pcoi-radio-group{border:none;padding:0;margin:0;display:flex;flex-direction:column;gap:var(--pcoi-semantic-spacing-text-gap-sm)}.pcoi-radio-group__legend{font-size:var(--pcoi-semantic-type-label-size);font-weight:var(--pcoi-semantic-type-label-weight);letter-spacing:var(--pcoi-semantic-type-label-letter-spacing);text-transform:uppercase;color:var(--pcoi-semantic-text-secondary);margin-bottom:var(--pcoi-semantic-spacing-inline-2xs)}.pcoi-radio-group__required{color:var(--pcoi-semantic-text-error);margin-left:var(--pcoi-semantic-spacing-inline-2xs)}.pcoi-radio-group__options{display:flex;flex-direction:column;gap:var(--pcoi-semantic-spacing-panel-gap)}.pcoi-radio-group__option{display:inline-flex;align-items:center;gap:var(--pcoi-semantic-spacing-inline-sm);cursor:pointer}.pcoi-radio-group__input{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border-width:0}.pcoi-radio-group__circle{width:var(--pcoi-semantic-sizing-control-box-size);height:var(--pcoi-semantic-sizing-control-box-size);flex-shrink:0;border:1px solid var(--pcoi-semantic-border-default);border-radius:var(--pcoi-semantic-radius-badge);background:var(--pcoi-semantic-bg-default);position:relative;transition:border-color var(--pcoi-effect-transition-fast, .2s ease)}.pcoi-radio-group__circle:after{content:"";position:absolute;top:50%;left:50%;transform:translate(-50%,-50%);width:var(--pcoi-semantic-sizing-radio-dot-size);height:var(--pcoi-semantic-sizing-radio-dot-size);border-radius:var(--pcoi-semantic-radius-badge);background:var(--pcoi-semantic-action-primary-bg);opacity:0;transition:opacity var(--pcoi-effect-transition-fast, .2s ease)}.pcoi-radio-group__input:checked+.pcoi-radio-group__circle{border-color:var(--pcoi-semantic-action-primary-bg)}.pcoi-radio-group__input:checked+.pcoi-radio-group__circle:after{opacity:1}.pcoi-radio-group__option:hover .pcoi-radio-group__circle{border-color:var(--pcoi-semantic-border-input-hover)}.pcoi-radio-group__option:active .pcoi-radio-group__circle{transform:var(--pcoi-effect-transform-press-scale-control)}.pcoi-radio-group__input:focus-visible+.pcoi-radio-group__circle{border-color:var(--pcoi-semantic-focus-border);box-shadow:var(--pcoi-effect-shadow-focus-ring)}.pcoi-radio-group__label{font-size:var(--pcoi-semantic-type-body-size);color:var(--pcoi-semantic-text-primary)}.pcoi-radio-group--error .pcoi-radio-group__circle{border-color:var(--pcoi-semantic-border-error)}.pcoi-radio-group__error{font-size:var(--pcoi-semantic-type-label-size);color:var(--pcoi-semantic-text-error);margin:0}.pcoi-radio-group--disabled{opacity:var(--pcoi-effect-opacity-disabled);pointer-events:none}.pcoi-panel{background:var(--pcoi-semantic-bg-card);border:1px solid var(--pcoi-semantic-border-default);border-radius:var(--pcoi-semantic-radius-card);overflow:hidden}.pcoi-panel__header{display:flex;align-items:center;justify-content:space-between;padding:var(--pcoi-semantic-spacing-panel-padding-sm) var(--pcoi-semantic-spacing-panel-padding);border-bottom:1px solid var(--pcoi-semantic-border-default)}.pcoi-panel__title{font-size:var(--pcoi-semantic-type-body-size);font-weight:var(--pcoi-semantic-type-emphasis-weight);color:var(--pcoi-semantic-text-primary);margin:0}.pcoi-panel__action{flex-shrink:0}.pcoi-panel__body{padding:var(--pcoi-semantic-spacing-panel-padding)}.pcoi-panel--flush .pcoi-panel__body{padding:0}.pcoi-data-table{width:100%;overflow:hidden;overflow-x:auto;border:1px solid var(--pcoi-semantic-border-card);border-radius:var(--pcoi-semantic-radius-card)}.pcoi-data-table__table{width:100%;border-collapse:collapse}.pcoi-data-table__th{font-family:var(--pcoi-semantic-type-mono-font);font-size:var(--pcoi-semantic-type-body-sm-size);font-weight:var(--pcoi-semantic-type-emphasis-weight);letter-spacing:var(--pcoi-semantic-type-label-letter-spacing);text-transform:uppercase;color:var(--pcoi-semantic-text-secondary);text-align:left;padding:var(--pcoi-semantic-spacing-stack-md) var(--pcoi-semantic-spacing-card-gap);background:var(--pcoi-semantic-bg-alt)}.pcoi-data-table__th--center{text-align:center}.pcoi-data-table__th--right{text-align:right}.pcoi-data-table__td{font-size:var(--pcoi-semantic-type-body-compact-size);color:var(--pcoi-semantic-text-secondary);line-height:var(--pcoi-semantic-type-body-compact-line-height);text-align:left;padding:var(--pcoi-semantic-spacing-stack-md) var(--pcoi-semantic-spacing-card-gap)}.pcoi-data-table__td--center{text-align:center}.pcoi-data-table__td--right{text-align:right}.pcoi-data-table__row{border-top:1px solid var(--pcoi-semantic-border-card);transition:background var(--pcoi-effect-transition-fast, .2s ease)}.pcoi-data-table__row:hover{background:var(--pcoi-semantic-bg-card-hover)}.pcoi-data-table__empty{font-size:var(--pcoi-semantic-type-body-size);color:var(--pcoi-semantic-text-muted);text-align:center;padding:var(--pcoi-semantic-spacing-component-gap) var(--pcoi-semantic-spacing-stack-md)}.pcoi-modal{position:fixed;top:0;right:0;bottom:0;left:0;z-index:var(--pcoi-semantic-layout-z-modal, 500);display:flex;align-items:center;justify-content:center;background:var(--pcoi-semantic-bg-overlay);padding:var(--pcoi-semantic-spacing-panel-padding);animation:pcoi-modal-fade-in .2s ease}.pcoi-modal__dialog{font-family:var(--pcoi-semantic-type-body-font);background:var(--pcoi-semantic-surface-elevated);border:1px solid var(--pcoi-semantic-border-default);border-radius:var(--pcoi-semantic-radius-panel);box-shadow:var(--pcoi-effect-shadow-elevated);width:100%;max-width:var(--pcoi-semantic-sizing-modal-width);max-height:85vh;display:flex;flex-direction:column;animation:pcoi-modal-slide-up .2s ease}.pcoi-modal__header{display:flex;align-items:center;justify-content:space-between;padding:var(--pcoi-semantic-spacing-card-gap) var(--pcoi-semantic-spacing-panel-padding);border-bottom:1px solid var(--pcoi-semantic-border-default)}.pcoi-modal__title{font-size:var(--pcoi-semantic-type-heading-sm-size);font-weight:var(--pcoi-semantic-type-emphasis-weight);color:var(--pcoi-semantic-text-primary);margin:0}.pcoi-modal__close{background:none;border:none;color:var(--pcoi-semantic-text-secondary);font-size:var(--pcoi-semantic-type-close-lg-size);line-height:var(--pcoi-semantic-type-none-line-height);cursor:pointer;padding:var(--pcoi-semantic-spacing-control-padding-2xs);border-radius:var(--pcoi-semantic-radius-btn);transition:color var(--pcoi-effect-transition-fast, .2s ease)}.pcoi-modal__close:hover{color:var(--pcoi-semantic-text-primary)}.pcoi-modal__close:active{transform:var(--pcoi-effect-transform-press-scale-icon)}.pcoi-modal__close:focus-visible{outline:none;box-shadow:var(--pcoi-effect-shadow-focus-ring)}.pcoi-modal__body{padding:var(--pcoi-semantic-spacing-panel-padding);overflow-y:auto;flex:1;font-size:var(--pcoi-semantic-type-body-size);color:var(--pcoi-semantic-text-secondary);line-height:var(--pcoi-semantic-type-body-line-height)}.pcoi-modal__footer{display:flex;align-items:center;justify-content:flex-end;gap:var(--pcoi-semantic-spacing-panel-gap);padding:var(--pcoi-semantic-spacing-panel-padding-sm) var(--pcoi-semantic-spacing-panel-padding);border-top:1px solid var(--pcoi-semantic-border-default)}.pcoi-modal__dialog--wide{max-width:var(--pcoi-semantic-sizing-document-width, 900px)}@keyframes pcoi-modal-fade-in{0%{opacity:0}to{opacity:1}}@keyframes pcoi-modal-slide-up{0%{transform:translateY(16px);opacity:0}to{transform:translateY(0);opacity:1}}.pcoi-toast{position:fixed;bottom:var(--pcoi-semantic-spacing-btn-x);right:var(--pcoi-semantic-spacing-btn-x);z-index:var(--pcoi-semantic-layout-z-toast, 600);animation:pcoi-toast-slide-in .3s ease}.pcoi-toast__content{display:flex;align-items:center;gap:var(--pcoi-semantic-spacing-panel-gap);font-family:var(--pcoi-semantic-type-body-font);background:var(--pcoi-semantic-surface-elevated);border:1px solid var(--pcoi-semantic-border-default);border-radius:var(--pcoi-semantic-radius-card);box-shadow:var(--pcoi-effect-shadow-elevated);padding:var(--pcoi-semantic-spacing-btn-y-comfortable) var(--pcoi-semantic-spacing-card-gap);min-width:var(--pcoi-semantic-sizing-toast-width-min);max-width:var(--pcoi-semantic-sizing-toast-width-max)}.pcoi-toast--success .pcoi-toast__content{border-left:var(--pcoi-semantic-sizing-accent-border-width) solid var(--pcoi-semantic-border-success)}.pcoi-toast--error .pcoi-toast__content{border-left:var(--pcoi-semantic-sizing-accent-border-width) solid var(--pcoi-semantic-border-error)}.pcoi-toast--warning .pcoi-toast__content{border-left:var(--pcoi-semantic-sizing-accent-border-width) solid var(--pcoi-semantic-border-warning)}.pcoi-toast--info .pcoi-toast__content{border-left:var(--pcoi-semantic-sizing-accent-border-width) solid var(--pcoi-semantic-border-info)}.pcoi-toast__message{flex:1;font-size:var(--pcoi-semantic-type-body-size);color:var(--pcoi-semantic-text-primary);line-height:var(--pcoi-semantic-type-body-compact-line-height)}.pcoi-toast__close{background:none;border:none;color:var(--pcoi-semantic-text-secondary);font-size:var(--pcoi-semantic-type-close-sm-size);line-height:var(--pcoi-semantic-type-none-line-height);cursor:pointer;padding:var(--pcoi-semantic-spacing-control-padding-2xs);border-radius:var(--pcoi-semantic-radius-btn);flex-shrink:0;transition:color var(--pcoi-effect-transition-fast, .2s ease)}.pcoi-toast__close:hover{color:var(--pcoi-semantic-text-primary)}.pcoi-toast__close:active{transform:var(--pcoi-effect-transform-press-scale-icon)}.pcoi-toast__close:focus-visible{outline:none;box-shadow:var(--pcoi-effect-shadow-focus-ring)}@keyframes pcoi-toast-slide-in{0%{transform:translate(100%);opacity:0}to{transform:translate(0);opacity:1}}.pcoi-citation-mark{display:inline-flex;align-items:center;justify-content:center;min-width:32px;min-height:32px;padding:var(--pcoi-semantic-spacing-inline-2xs) var(--pcoi-semantic-spacing-chip-x);font-family:var(--pcoi-semantic-type-mono-font);font-size:var(--pcoi-semantic-type-body-compact-size);font-weight:var(--pcoi-semantic-type-label-weight);line-height:var(--pcoi-semantic-type-none-line-height);color:var(--pcoi-semantic-text-accent);background:var(--pcoi-semantic-surface-accent-dim);border:1px solid var(--pcoi-semantic-border-accent-dim);border-radius:var(--pcoi-semantic-radius-badge);cursor:pointer;vertical-align:middle;transition:background var(--pcoi-effect-transition-fast),color var(--pcoi-effect-transition-fast),border-color var(--pcoi-effect-transition-fast),transform var(--pcoi-effect-transition-fast)}.pcoi-citation-mark:hover{color:var(--pcoi-semantic-text-accent-hover);background:var(--pcoi-semantic-surface-accent-dim);border-color:var(--pcoi-semantic-border-accent-subtle)}.pcoi-citation-mark:active{transform:var(--pcoi-effect-transform-press-scale-control)}.pcoi-citation-mark:focus-visible{outline:none;box-shadow:var(--pcoi-effect-shadow-focus-ring)}.pcoi-suggestion-card{display:flex;align-items:center;gap:var(--pcoi-semantic-spacing-panel-gap);width:100%;padding:var(--pcoi-semantic-spacing-panel-padding-sm) var(--pcoi-semantic-spacing-card-gap);font-family:var(--pcoi-semantic-type-body-font);font-size:var(--pcoi-semantic-type-body-size);line-height:var(--pcoi-semantic-type-body-line-height);color:var(--pcoi-semantic-text-secondary);text-align:left;background:var(--pcoi-semantic-bg-card);border:1px solid var(--pcoi-semantic-border-card);border-radius:var(--pcoi-semantic-radius-card);cursor:pointer;transition:background var(--pcoi-effect-transition-medium),border-color var(--pcoi-effect-transition-medium),transform var(--pcoi-effect-transition-medium),box-shadow var(--pcoi-effect-transition-medium)}.pcoi-suggestion-card:hover{background:var(--pcoi-semantic-bg-card-hover);border-color:var(--pcoi-semantic-border-card-hover);transform:var(--pcoi-effect-transform-hover-lift-sm)}.pcoi-suggestion-card:active{transform:var(--pcoi-effect-transform-press-scale)}.pcoi-suggestion-card:focus-visible{outline:none;box-shadow:var(--pcoi-effect-shadow-focus-ring)}.pcoi-suggestion-card__icon{display:flex;align-items:center;justify-content:center;flex-shrink:0;color:var(--pcoi-semantic-text-accent)}.pcoi-suggestion-card__label{flex:1;min-width:0}.pcoi-suggestion-cards{display:flex;flex-direction:column;gap:var(--pcoi-semantic-spacing-stack-md)}@media (min-width: 768px){.pcoi-suggestion-cards{display:grid;grid-template-columns:repeat(3,1fr)}}.pcoi-cited-excerpt{display:flex;flex-direction:column;gap:var(--pcoi-semantic-spacing-form-gap-compact);padding:var(--pcoi-semantic-spacing-input-y);background:var(--pcoi-semantic-surface-accent-dim);border-left:var(--pcoi-semantic-sizing-accent-border-width) solid var(--pcoi-semantic-border-accent-dim);border-radius:var(--pcoi-semantic-radius-input)}.pcoi-cited-excerpt__source{display:inline-flex;align-items:center;align-self:flex-start;padding:0;font-family:var(--pcoi-semantic-type-body-font);font-size:var(--pcoi-semantic-type-body-sm-size);color:var(--pcoi-semantic-text-accent);background:none;border:none;cursor:pointer;transition:color var(--pcoi-effect-transition-fast)}.pcoi-cited-excerpt__source:hover{color:var(--pcoi-semantic-text-accent-hover);text-decoration:underline}.pcoi-cited-excerpt__source:focus-visible{outline:none;box-shadow:var(--pcoi-effect-shadow-focus-ring);border-radius:var(--pcoi-semantic-radius-btn)}.pcoi-cited-excerpt__body{display:flex;align-items:baseline;gap:var(--pcoi-semantic-spacing-form-gap-compact)}.pcoi-cited-excerpt__index{flex-shrink:0;padding:0;background:none;border:none;cursor:pointer;font-family:var(--pcoi-semantic-type-mono-font);font-size:var(--pcoi-semantic-type-body-compact-size);font-weight:var(--pcoi-semantic-type-label-weight);color:var(--pcoi-semantic-text-accent);transition:color var(--pcoi-effect-transition-fast)}.pcoi-cited-excerpt__index:hover{color:var(--pcoi-semantic-text-accent-hover)}.pcoi-cited-excerpt__index:focus-visible{outline:none;box-shadow:var(--pcoi-effect-shadow-focus-ring);border-radius:var(--pcoi-semantic-radius-btn)}.pcoi-cited-excerpt__text{margin:0;font-family:var(--pcoi-semantic-type-body-font);font-size:var(--pcoi-semantic-type-body-compact-size);color:var(--pcoi-semantic-text-secondary);line-height:var(--pcoi-semantic-type-body-line-height)}.pcoi-prompt-bar{display:flex;align-items:flex-end;gap:var(--pcoi-semantic-spacing-panel-gap);padding:var(--pcoi-semantic-spacing-input-y) var(--pcoi-semantic-spacing-input-x);background:var(--pcoi-semantic-bg-card);border:1px solid var(--pcoi-semantic-border-default);border-radius:var(--pcoi-semantic-radius-card);transition:border-color var(--pcoi-effect-transition-fast),box-shadow var(--pcoi-effect-transition-fast)}.pcoi-prompt-bar:not(:focus-within):hover{border-color:var(--pcoi-semantic-border-input-hover)}.pcoi-prompt-bar:focus-within{border-color:var(--pcoi-semantic-focus-border);box-shadow:var(--pcoi-effect-shadow-focus-ring)}.pcoi-prompt-bar__input{flex:1;min-height:24px;max-height:120px;padding:var(--pcoi-semantic-spacing-control-padding-2xs) 0;font-family:var(--pcoi-semantic-type-body-font);font-size:var(--pcoi-semantic-type-body-size);line-height:var(--pcoi-semantic-type-body-line-height);color:var(--pcoi-semantic-text-primary);background:transparent;border:none;outline:none;resize:none}.pcoi-prompt-bar__input::placeholder{color:var(--pcoi-semantic-text-muted)}.pcoi-prompt-bar__actions{flex-shrink:0;display:flex;align-items:center}.pcoi-prompt-bar__send.pcoi-btn{padding:var(--pcoi-semantic-spacing-control-padding-xs);min-width:0;min-height:0;width:var(--pcoi-semantic-sizing-btn-height-nav);height:var(--pcoi-semantic-sizing-btn-height-nav)}.pcoi-prompt-bar__send-icon{display:flex;transform:rotate(-90deg)}@media (max-width: 480px){.pcoi-prompt-bar{padding:var(--pcoi-semantic-spacing-control-padding-sm) var(--pcoi-semantic-spacing-input-y)}}.pcoi-chat-message{display:flex;flex-direction:column;gap:var(--pcoi-semantic-spacing-inline-sm);padding:var(--pcoi-semantic-spacing-stack-md);border-radius:var(--pcoi-semantic-radius-card);border:1px solid var(--pcoi-semantic-border-card)}.pcoi-chat-message--user{background:var(--pcoi-semantic-bg-surface)}.pcoi-chat-message--assistant{background:var(--pcoi-semantic-surface-accent-dim)}.pcoi-chat-message__header{display:flex;align-items:center}.pcoi-chat-message__body{font-family:var(--pcoi-semantic-type-body-font);font-size:var(--pcoi-semantic-type-body-size);line-height:var(--pcoi-semantic-type-body-line-height);color:var(--pcoi-semantic-text-primary)}.pcoi-chat-message__citations{display:flex;flex-direction:column;gap:var(--pcoi-semantic-spacing-inline-sm);margin-top:var(--pcoi-semantic-spacing-inline-2xs)}.pcoi-chat-message__timestamp{font-family:var(--pcoi-semantic-type-body-font);font-size:var(--pcoi-semantic-type-body-sm-size);color:var(--pcoi-semantic-text-muted)}@media (min-width: 1025px){.pcoi-chat-message--user{margin-left:var(--pcoi-semantic-spacing-inline-xl)}.pcoi-chat-message--assistant{margin-right:var(--pcoi-semantic-spacing-inline-xl)}}.pcoi-chat-message-list{flex:1;min-height:0;overflow:hidden}.pcoi-chat-message-list__inner{height:100%;overflow-y:auto;display:flex;flex-direction:column;gap:var(--pcoi-semantic-spacing-stack-md);padding:var(--pcoi-semantic-spacing-panel-padding-sm)}@media (min-width: 768px){.pcoi-chat-message-list__inner{gap:var(--pcoi-semantic-spacing-card-gap);padding:var(--pcoi-semantic-spacing-panel-padding)}}.pcoi-typing-indicator{display:flex;flex-direction:column;gap:var(--pcoi-semantic-spacing-stack-sm);padding:var(--pcoi-semantic-spacing-panel-padding-sm);background:var(--pcoi-semantic-surface-accent-dim);border:1px solid var(--pcoi-semantic-border-card);border-radius:var(--pcoi-semantic-radius-card);animation:pcoi-typing-fade-in .2s ease}.pcoi-typing-indicator__header{display:flex;align-items:center}.pcoi-typing-indicator__dots{display:flex;align-items:center;gap:6px;padding:var(--pcoi-semantic-spacing-inline-2xs) 0}.pcoi-typing-indicator__dot{width:8px;height:8px;border-radius:var(--pcoi-semantic-radius-avatar);background:var(--pcoi-semantic-text-accent);opacity:.4;animation:pcoi-typing-bounce 1.4s ease-in-out infinite}.pcoi-typing-indicator__dot:nth-child(2){animation-delay:.2s}.pcoi-typing-indicator__dot:nth-child(3){animation-delay:.4s}@keyframes pcoi-typing-bounce{0%,60%,to{transform:translateY(0);opacity:.4}30%{transform:translateY(-6px);opacity:1}}@keyframes pcoi-typing-fade-in{0%{opacity:0;transform:translateY(4px)}to{opacity:1;transform:translateY(0)}}@media (min-width: 1025px){.pcoi-typing-indicator{margin-right:var(--pcoi-semantic-spacing-inline-xl)}}.pcoi-doc-overlay .pcoi-modal__title{color:var(--pcoi-semantic-text-accent)}.pcoi-doc-overlay__content{font-family:var(--pcoi-semantic-type-body-font);font-size:var(--pcoi-semantic-type-body-size);line-height:var(--pcoi-semantic-type-body-line-height);color:var(--pcoi-semantic-text-primary)}.pcoi-doc-overlay__content p{margin:0 0 var(--pcoi-semantic-spacing-panel-gap)}.pcoi-doc-overlay__content p:last-child{margin-bottom:0}.pcoi-doc-overlay__highlight{display:flex;align-items:baseline;gap:var(--pcoi-semantic-spacing-form-gap-compact);background:var(--pcoi-semantic-surface-highlight);border-left:var(--pcoi-semantic-sizing-accent-border-width) solid var(--pcoi-semantic-border-accent-subtle);padding:var(--pcoi-semantic-spacing-inline-sm) var(--pcoi-semantic-spacing-input-y);border-radius:var(--pcoi-semantic-radius-input);animation:pcoi-doc-highlight-fade .4s ease}.pcoi-doc-overlay__highlight[data-highlight-index]:before{content:attr(data-highlight-index);flex-shrink:0;font-family:var(--pcoi-semantic-type-mono-font);font-size:var(--pcoi-semantic-type-body-compact-size);font-weight:var(--pcoi-semantic-type-label-weight);color:var(--pcoi-semantic-text-accent)}.pcoi-doc-overlay__source{display:flex;align-items:center}@keyframes pcoi-doc-highlight-fade{0%{background:var(--pcoi-semantic-surface-accent-dim)}to{background:var(--pcoi-semantic-surface-highlight)}}.pcoi-chat{display:flex;flex-direction:column;width:100%;height:100%;max-width:var(--pcoi-semantic-sizing-container-narrow, 800px);margin:0 auto}.pcoi-chat--empty{justify-content:flex-end}.pcoi-chat__empty-state{flex:1;display:flex;flex-direction:column;justify-content:center;padding:var(--pcoi-semantic-spacing-panel-padding-sm)}.pcoi-chat__suggestions{max-width:100%}.pcoi-chat__messages{flex:1;min-height:0}.pcoi-chat__prompt{flex-shrink:0;padding:var(--pcoi-semantic-spacing-panel-padding-sm)}@media (min-width: 768px){.pcoi-chat__empty-state,.pcoi-chat__prompt{padding:var(--pcoi-semantic-spacing-panel-padding)}}
|
package/dist/index.d.ts
CHANGED
|
@@ -47,20 +47,22 @@ export declare type ButtonVariant = "primary" | "ghost" | "nav-cta";
|
|
|
47
47
|
|
|
48
48
|
/**
|
|
49
49
|
* PCOI Callout / Blockquote
|
|
50
|
+
*
|
|
51
|
+
* Renders a semantic `<figure>` with `<blockquote>` and optional `<figcaption>`.
|
|
50
52
|
* Tokens: spacing-40 (padding), text/secondary, text/accent (link)
|
|
51
53
|
*/
|
|
52
|
-
export declare const Callout: default_2.ForwardRefExoticComponent<CalloutProps & default_2.RefAttributes<
|
|
54
|
+
export declare const Callout: default_2.ForwardRefExoticComponent<CalloutProps & default_2.RefAttributes<HTMLElement>>;
|
|
53
55
|
|
|
54
|
-
export declare interface CalloutProps extends default_2.HTMLAttributes<
|
|
56
|
+
export declare interface CalloutProps extends default_2.HTMLAttributes<HTMLElement> {
|
|
55
57
|
/** Quote text */
|
|
56
58
|
quote: string;
|
|
57
59
|
/** Attribution name */
|
|
58
60
|
attribution?: string;
|
|
59
61
|
/** Attribution title/context */
|
|
60
62
|
attributionTitle?: string;
|
|
61
|
-
/** Link URL */
|
|
63
|
+
/** Link URL for the source reference */
|
|
62
64
|
sourceUrl?: string;
|
|
63
|
-
/**
|
|
65
|
+
/** Display label for the source link (default: "Source") */
|
|
64
66
|
sourceLabel?: string;
|
|
65
67
|
}
|
|
66
68
|
|
|
@@ -105,10 +107,15 @@ export declare type CardVariant = "problem" | "who" | "principle";
|
|
|
105
107
|
export declare const ChatInterface: default_2.ForwardRefExoticComponent<ChatInterfaceProps & default_2.RefAttributes<HTMLDivElement>>;
|
|
106
108
|
|
|
107
109
|
export declare interface ChatInterfaceMessage {
|
|
110
|
+
/** Unique message identifier */
|
|
108
111
|
id: string;
|
|
112
|
+
/** Sender role: "user" or "assistant" */
|
|
109
113
|
role: ChatMessageRole;
|
|
114
|
+
/** Message body content */
|
|
110
115
|
content: default_2.ReactNode;
|
|
116
|
+
/** Citations referenced in the message */
|
|
111
117
|
citations?: Citation[];
|
|
118
|
+
/** ISO timestamp displayed below the message */
|
|
112
119
|
timestamp?: string;
|
|
113
120
|
}
|
|
114
121
|
|
|
@@ -195,6 +202,21 @@ export declare interface Citation {
|
|
|
195
202
|
sourceId: string;
|
|
196
203
|
}
|
|
197
204
|
|
|
205
|
+
/**
|
|
206
|
+
* PCOI CitationMark — Inline pill-shaped citation button [1]
|
|
207
|
+
* Tokens: text/accent, surface/accent-dim, border/accent-dim,
|
|
208
|
+
* radius-full, font-family/mono, transition-fast,
|
|
209
|
+
* shadow/focus-ring, transform/press-scale-control
|
|
210
|
+
*/
|
|
211
|
+
export declare const CitationMark: default_2.ForwardRefExoticComponent<CitationMarkProps & default_2.RefAttributes<HTMLButtonElement>>;
|
|
212
|
+
|
|
213
|
+
export declare interface CitationMarkProps extends default_2.ButtonHTMLAttributes<HTMLButtonElement> {
|
|
214
|
+
/** 1-based citation index displayed in the button */
|
|
215
|
+
index: number;
|
|
216
|
+
/** Tooltip text (defaults to "Citation {index}") */
|
|
217
|
+
sourceLabel?: string;
|
|
218
|
+
}
|
|
219
|
+
|
|
198
220
|
/**
|
|
199
221
|
* PCOI CitedExcerpt — Blockquote with excerpt text above, clickable index + source below
|
|
200
222
|
* Tokens: surface/accent-dim, border/accent-dim, accent-border-w,
|
|
@@ -214,8 +236,11 @@ export declare interface CitedExcerptProps extends default_2.HTMLAttributes<HTML
|
|
|
214
236
|
}
|
|
215
237
|
|
|
216
238
|
export declare interface ComparisonRow {
|
|
239
|
+
/** Feature label shown in the first column */
|
|
217
240
|
label: string;
|
|
241
|
+
/** Competitor's value for this feature */
|
|
218
242
|
competitor: string;
|
|
243
|
+
/** PCOI's value for this feature */
|
|
219
244
|
pcoi: string;
|
|
220
245
|
}
|
|
221
246
|
|
|
@@ -227,8 +252,11 @@ export declare interface ComparisonRow {
|
|
|
227
252
|
export declare const ComparisonTable: default_2.ForwardRefExoticComponent<ComparisonTableProps & default_2.RefAttributes<HTMLDivElement>>;
|
|
228
253
|
|
|
229
254
|
export declare interface ComparisonTableProps extends default_2.HTMLAttributes<HTMLDivElement> {
|
|
255
|
+
/** Column header for the competitor (default: "Typical SaaS AI") */
|
|
230
256
|
competitorName?: string;
|
|
257
|
+
/** Column header for PCOI (default: "PCOI") */
|
|
231
258
|
pcoiName?: string;
|
|
259
|
+
/** Feature comparison rows */
|
|
232
260
|
rows: ComparisonRow[];
|
|
233
261
|
}
|
|
234
262
|
|
|
@@ -239,7 +267,8 @@ export declare interface ComparisonTableProps extends default_2.HTMLAttributes<H
|
|
|
239
267
|
*/
|
|
240
268
|
export declare const ContactForm: default_2.ForwardRefExoticComponent<ContactFormProps & default_2.RefAttributes<HTMLFormElement>>;
|
|
241
269
|
|
|
242
|
-
export declare interface ContactFormProps extends default_2.FormHTMLAttributes<HTMLFormElement> {
|
|
270
|
+
export declare interface ContactFormProps extends Omit<default_2.FormHTMLAttributes<HTMLFormElement>, "onSubmit"> {
|
|
271
|
+
/** Called with form field values when the form is submitted */
|
|
243
272
|
onSubmit?: (data: Record<string, string>) => void;
|
|
244
273
|
}
|
|
245
274
|
|
|
@@ -308,8 +337,11 @@ export declare const Footer: default_2.ForwardRefExoticComponent<FooterProps & d
|
|
|
308
337
|
export declare type FooterLink = LinkItem;
|
|
309
338
|
|
|
310
339
|
export declare interface FooterProps extends default_2.HTMLAttributes<HTMLElement> {
|
|
340
|
+
/** Navigation links rendered in the footer */
|
|
311
341
|
links?: LinkItem[];
|
|
342
|
+
/** Brand tagline displayed alongside the logo */
|
|
312
343
|
tagline?: string;
|
|
344
|
+
/** Copyright notice shown at the bottom */
|
|
313
345
|
copyright?: string;
|
|
314
346
|
}
|
|
315
347
|
|
|
@@ -376,15 +408,14 @@ export declare interface LinkItem {
|
|
|
376
408
|
*/
|
|
377
409
|
export declare const LogoMark: default_2.ForwardRefExoticComponent<LogoMarkProps & default_2.RefAttributes<HTMLAnchorElement>>;
|
|
378
410
|
|
|
379
|
-
export declare
|
|
380
|
-
}
|
|
411
|
+
export declare type LogoMarkProps = default_2.AnchorHTMLAttributes<HTMLAnchorElement>;
|
|
381
412
|
|
|
382
413
|
/**
|
|
383
414
|
* PCOI Modal — Dialog overlay with focus trap
|
|
384
415
|
* Tokens: bg/overlay, surface/elevated, border/default, shadow/elevated,
|
|
385
416
|
* zIndex/modal, radius-lg, text/primary, text/secondary
|
|
386
417
|
*/
|
|
387
|
-
export declare const Modal: default_2.
|
|
418
|
+
export declare const Modal: default_2.ForwardRefExoticComponent<ModalProps & default_2.RefAttributes<HTMLDivElement>>;
|
|
388
419
|
|
|
389
420
|
export declare interface ModalProps extends Omit<default_2.HTMLAttributes<HTMLDivElement>, "title"> {
|
|
390
421
|
/** Whether the modal is visible */
|
|
@@ -398,7 +429,7 @@ export declare interface ModalProps extends Omit<default_2.HTMLAttributes<HTMLDi
|
|
|
398
429
|
/** Dialog width: "default" (520px) or "wide" (900px) */
|
|
399
430
|
size?: "default" | "wide";
|
|
400
431
|
/** Modal body content */
|
|
401
|
-
children
|
|
432
|
+
children?: default_2.ReactNode;
|
|
402
433
|
/** Footer content (e.g. action buttons) */
|
|
403
434
|
footer?: default_2.ReactNode;
|
|
404
435
|
}
|
|
@@ -415,9 +446,13 @@ export declare const Nav: default_2.ForwardRefExoticComponent<NavProps & default
|
|
|
415
446
|
export declare type NavLink = LinkItem;
|
|
416
447
|
|
|
417
448
|
export declare interface NavProps extends default_2.HTMLAttributes<HTMLElement> {
|
|
449
|
+
/** Navigation links rendered in the navbar */
|
|
418
450
|
links?: LinkItem[];
|
|
451
|
+
/** Label text for the call-to-action button */
|
|
419
452
|
ctaLabel?: string;
|
|
453
|
+
/** URL the CTA button links to */
|
|
420
454
|
ctaHref?: string;
|
|
455
|
+
/** Called when the CTA button is clicked */
|
|
421
456
|
onCtaClick?: () => void;
|
|
422
457
|
}
|
|
423
458
|
|
|
@@ -454,7 +489,7 @@ export declare interface PanelProps extends default_2.HTMLAttributes<HTMLDivElem
|
|
|
454
489
|
*/
|
|
455
490
|
export declare const PromptBar: default_2.ForwardRefExoticComponent<PromptBarProps & default_2.RefAttributes<HTMLDivElement>>;
|
|
456
491
|
|
|
457
|
-
export declare interface PromptBarProps extends default_2.HTMLAttributes<HTMLDivElement> {
|
|
492
|
+
export declare interface PromptBarProps extends Omit<default_2.HTMLAttributes<HTMLDivElement>, "onChange" | "onSubmit"> {
|
|
458
493
|
/** Current textarea value */
|
|
459
494
|
value: string;
|
|
460
495
|
/** Called when the textarea value changes */
|
|
@@ -549,7 +584,9 @@ export declare interface SelectProps extends Omit<default_2.SelectHTMLAttributes
|
|
|
549
584
|
export declare const SignalsPanel: default_2.ForwardRefExoticComponent<SignalsPanelProps & default_2.RefAttributes<HTMLDivElement>>;
|
|
550
585
|
|
|
551
586
|
export declare interface SignalsPanelProps extends default_2.HTMLAttributes<HTMLDivElement> {
|
|
587
|
+
/** Panel heading text */
|
|
552
588
|
title?: string;
|
|
589
|
+
/** List of signal statements displayed as bullet points */
|
|
553
590
|
signals: string[];
|
|
554
591
|
/** Heading level for the title (default: "h3") */
|
|
555
592
|
headingLevel?: HeadingLevel;
|
|
@@ -562,7 +599,7 @@ export declare interface Suggestion {
|
|
|
562
599
|
/** Display text */
|
|
563
600
|
label: string;
|
|
564
601
|
/** Optional icon rendered before the label */
|
|
565
|
-
icon?:
|
|
602
|
+
icon?: default_2.ReactNode;
|
|
566
603
|
}
|
|
567
604
|
|
|
568
605
|
/**
|
|
@@ -586,7 +623,7 @@ export declare interface SuggestionCardProps extends default_2.ButtonHTMLAttribu
|
|
|
586
623
|
*/
|
|
587
624
|
export declare const SuggestionCards: default_2.ForwardRefExoticComponent<SuggestionCardsProps & default_2.RefAttributes<HTMLDivElement>>;
|
|
588
625
|
|
|
589
|
-
export declare interface SuggestionCardsProps extends default_2.HTMLAttributes<HTMLDivElement> {
|
|
626
|
+
export declare interface SuggestionCardsProps extends Omit<default_2.HTMLAttributes<HTMLDivElement>, "onSelect"> {
|
|
590
627
|
/** Array of suggestion prompts */
|
|
591
628
|
suggestions: Suggestion[];
|
|
592
629
|
/** Called when a suggestion card is clicked */
|
|
@@ -599,7 +636,7 @@ export declare interface SuggestionCardsProps extends default_2.HTMLAttributes<H
|
|
|
599
636
|
* text/primary, text/success|error|warning|info,
|
|
600
637
|
* shadow/elevated, zIndex/toast, radius-md
|
|
601
638
|
*/
|
|
602
|
-
export declare const Toast: default_2.
|
|
639
|
+
export declare const Toast: default_2.ForwardRefExoticComponent<ToastProps & default_2.RefAttributes<HTMLDivElement>>;
|
|
603
640
|
|
|
604
641
|
export declare interface ToastProps extends default_2.HTMLAttributes<HTMLDivElement> {
|
|
605
642
|
/** Toast message */
|
package/dist/index.js
CHANGED
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
"use strict";Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});const e=require("react/jsx-runtime"),d=require("react"),
|
|
2
|
-
Operational Intelligence`,copyright:i=`© ${new Date().getFullYear()} PCOI. Operational intelligence you own.`,className:o="",...c},r)=>e.jsxs("footer",{ref:r,className:`pcoi-footer ${o}`,...c,children:[e.jsxs("div",{className:"pcoi-footer__inner",children:[e.jsxs("div",{className:"pcoi-footer__brand",children:[e.jsx(y,{className:"pcoi-footer__logo"}),e.jsx("p",{className:"pcoi-footer__tagline",children:a})]}),e.jsx("div",{className:"pcoi-footer__links",children:s.map(l=>e.jsx("a",{href:l.href,"data-track-id":l.trackingId,children:l.label},l.href))})]}),e.jsx("div",{className:"pcoi-footer__bottom",children:e.jsx("p",{children:i})})]}));Y.displayName="Footer";const K=({size:s=24,title:a,...i})=>e.jsxs("svg",{width:s,height:s,viewBox:"0 0 24 24",fill:"none",stroke:"currentColor",strokeWidth:1.5,strokeLinecap:"round",strokeLinejoin:"round",role:a?"img":"presentation","aria-hidden":!a,xmlns:"http://www.w3.org/2000/svg",...i,children:[a&&e.jsx("title",{children:a}),e.jsx("polyline",{points:"6 9 12 15 18 9"})]});K.displayName="ChevronDownIcon";const z=d.forwardRef(({label:s,name:a,options:i,placeholder:o,error:c,required:r=!1,disabled:l=!1,className:t="",...p},n)=>{const h=`pcoi-field-${a}`,m=c?`${h}-error`:void 0,f=["pcoi-select",c?"pcoi-select--error":"",l?"pcoi-select--disabled":"",t].filter(Boolean).join(" ");return e.jsxs("div",{className:f,children:[e.jsxs("label",{htmlFor:h,className:"pcoi-select__label",children:[s,r&&e.jsx("span",{className:"pcoi-select__required","aria-hidden":"true",children:"*"})]}),e.jsxs("div",{className:"pcoi-select__wrapper",children:[e.jsxs("select",{ref:n,id:h,name:a,required:r,disabled:l,"aria-invalid":!!c,"aria-describedby":m,className:"pcoi-select__native",defaultValue:o?"":void 0,...p,children:[o&&e.jsx("option",{value:"",disabled:!0,hidden:!0,children:o}),i.map(_=>e.jsx("option",{value:_.value,disabled:_.disabled,children:_.label},_.value))]}),e.jsx("span",{className:"pcoi-select__chevron","aria-hidden":"true",children:e.jsx(K,{size:16})})]}),c&&e.jsx("span",{id:m,className:"pcoi-select__error",role:"alert",children:c})]})});z.displayName="Select";const G=d.forwardRef(({label:s,name:a,error:i,disabled:o=!1,className:c="",...r},l)=>{const t=`pcoi-field-${a}`,p=i?`${t}-error`:void 0,n=["pcoi-checkbox",i?"pcoi-checkbox--error":"",o?"pcoi-checkbox--disabled":"",c].filter(Boolean).join(" ");return e.jsxs("div",{className:n,children:[e.jsxs("label",{htmlFor:t,className:"pcoi-checkbox__control",children:[e.jsx("input",{ref:l,type:"checkbox",id:t,name:a,disabled:o,"aria-invalid":!!i,"aria-describedby":p,className:"pcoi-checkbox__input",...r}),e.jsx("span",{className:"pcoi-checkbox__box","aria-hidden":"true"}),e.jsx("span",{className:"pcoi-checkbox__label",children:s})]}),i&&e.jsx("span",{id:p,className:"pcoi-checkbox__error",role:"alert",children:i})]})});G.displayName="Checkbox";const V=d.forwardRef(({label:s,name:a,error:i,disabled:o=!1,className:c="",...r},l)=>{const t=`pcoi-field-${a}`,p=i?`${t}-error`:void 0,n=["pcoi-toggle",i?"pcoi-toggle--error":"",o?"pcoi-toggle--disabled":"",c].filter(Boolean).join(" ");return e.jsxs("div",{className:n,children:[e.jsxs("label",{htmlFor:t,className:"pcoi-toggle__control",children:[e.jsx("input",{ref:l,type:"checkbox",id:t,name:a,disabled:o,"aria-invalid":!!i,"aria-describedby":p,className:"pcoi-toggle__input",role:"switch",...r}),e.jsx("span",{className:"pcoi-toggle__track","aria-hidden":"true",children:e.jsx("span",{className:"pcoi-toggle__thumb"})}),e.jsx("span",{className:"pcoi-toggle__label",children:s})]}),i&&e.jsx("span",{id:p,className:"pcoi-toggle__error",role:"alert",children:i})]})});V.displayName="Toggle";const J=d.forwardRef(({label:s,name:a,options:i,defaultValue:o,error:c,required:r=!1,disabled:l=!1,onChange:t,className:p="",...n},h)=>{const m=c?`pcoi-field-${a}-error`:void 0,f=["pcoi-radio-group",c?"pcoi-radio-group--error":"",l?"pcoi-radio-group--disabled":"",p].filter(Boolean).join(" "),_=u=>{t==null||t(u.target.value)};return e.jsxs("fieldset",{ref:h,className:f,"aria-invalid":!!c,"aria-describedby":m,...n,children:[e.jsxs("legend",{className:"pcoi-radio-group__legend",children:[s,r&&e.jsx("span",{className:"pcoi-radio-group__required","aria-hidden":"true",children:"*"})]}),e.jsx("div",{className:"pcoi-radio-group__options",children:i.map(u=>{const v=`pcoi-field-${a}-${u.value}`;return e.jsxs("label",{htmlFor:v,className:"pcoi-radio-group__option",children:[e.jsx("input",{type:"radio",id:v,name:a,value:u.value,defaultChecked:o===u.value,required:r,disabled:l||u.disabled,onChange:_,className:"pcoi-radio-group__input"}),e.jsx("span",{className:"pcoi-radio-group__circle","aria-hidden":"true"}),e.jsx("span",{className:"pcoi-radio-group__label",children:u.label})]},u.value)})}),c&&e.jsx("span",{id:m,className:"pcoi-radio-group__error",role:"alert",children:c})]})});J.displayName="RadioGroup";const Q=d.forwardRef(({title:s,headingLevel:a="h3",action:i,children:o,flush:c=!1,className:r="",...l},t)=>{const p=a,n=["pcoi-panel",c?"pcoi-panel--flush":"",r].filter(Boolean).join(" ");return e.jsxs("div",{ref:t,className:n,...l,children:[(s||i)&&e.jsxs("div",{className:"pcoi-panel__header",children:[s&&e.jsx(p,{className:"pcoi-panel__title",children:s}),i&&e.jsx("div",{className:"pcoi-panel__action",children:i})]}),e.jsx("div",{className:"pcoi-panel__body",children:o})]})});Q.displayName="Panel";const X=d.forwardRef(({columns:s,rows:a,rowKey:i,emptyText:o="No data available",ariaLabel:c,className:r="",...l},t)=>{const p=(n,h)=>i?typeof i=="function"?i(n,h):String(n[i]):String(h);return e.jsx("div",{ref:t,className:`pcoi-data-table ${r}`,...l,children:e.jsxs("table",{className:"pcoi-data-table__table","aria-label":c,children:[e.jsx("thead",{className:"pcoi-data-table__head",children:e.jsx("tr",{className:"pcoi-data-table__head-row",children:s.map(n=>e.jsx("th",{className:`pcoi-data-table__th${n.align?` pcoi-data-table__th--${n.align}`:""}`,children:n.header},n.key))})}),e.jsx("tbody",{className:"pcoi-data-table__body",children:a.length===0?e.jsx("tr",{children:e.jsx("td",{colSpan:s.length,className:"pcoi-data-table__empty",children:o})}):a.map((n,h)=>e.jsx("tr",{className:"pcoi-data-table__row",children:s.map(m=>{const f=n[m.key];return e.jsx("td",{className:`pcoi-data-table__td${m.align?` pcoi-data-table__td--${m.align}`:""}`,children:m.render?m.render(f,n):String(f??"")},m.key)})},p(n,h)))})]})})});X.displayName="DataTable";const g=d.forwardRef(({children:s,variant:a="default",className:i="",...o},c)=>{const r=["pcoi-badge",`pcoi-badge--${a}`,i].filter(Boolean).join(" ");return e.jsx("span",{ref:c,className:r,...o,children:s})});g.displayName="Badge";const w=({size:s=24,title:a,...i})=>e.jsxs("svg",{width:s,height:s,viewBox:"0 0 24 24",fill:"none",stroke:"currentColor",strokeWidth:1.5,strokeLinecap:"round",strokeLinejoin:"round",role:a?"img":"presentation","aria-hidden":!a,xmlns:"http://www.w3.org/2000/svg",...i,children:[a&&e.jsx("title",{children:a}),e.jsx("line",{x1:"18",y1:"6",x2:"6",y2:"18"}),e.jsx("line",{x1:"6",y1:"6",x2:"18",y2:"18"})]});w.displayName="CloseIcon";const k=({open:s,onClose:a,title:i,headingLevel:o="h2",size:c="default",children:r,footer:l,className:t="",...p})=>{const n=d.useRef(null),h=d.useRef(null),m=o,f=i?"pcoi-modal-title":void 0,_=d.useCallback(x=>{if(x.key==="Escape"){a();return}if(x.key==="Tab"&&n.current){const j=n.current.querySelectorAll('button, [href], input, select, textarea, [tabindex]:not([tabindex="-1"])');if(j.length===0)return;const T=j[0],F=j[j.length-1];x.shiftKey&&document.activeElement===T?(x.preventDefault(),F.focus()):!x.shiftKey&&document.activeElement===F&&(x.preventDefault(),T.focus())}},[a]);d.useEffect(()=>(s&&(h.current=document.activeElement,document.addEventListener("keydown",_),document.body.style.overflow="hidden",requestAnimationFrame(()=>{var j;const x=(j=n.current)==null?void 0:j.querySelector('button, [href], input, select, textarea, [tabindex]:not([tabindex="-1"])');x==null||x.focus()})),()=>{var x;document.removeEventListener("keydown",_),document.body.style.overflow="",(x=h.current)==null||x.focus()}),[s,_]);const u=x=>{x.target===x.currentTarget&&a()};if(!s)return null;const v=["pcoi-modal",t].filter(Boolean).join(" ");return D.createPortal(e.jsx("div",{className:v,onClick:u,children:e.jsxs("div",{ref:n,className:`pcoi-modal__dialog${c==="wide"?" pcoi-modal__dialog--wide":""}`,role:"dialog","aria-modal":"true","aria-labelledby":f,...p,children:[e.jsxs("div",{className:"pcoi-modal__header",children:[i&&e.jsx(m,{id:f,className:"pcoi-modal__title",children:i}),e.jsx("button",{type:"button",className:"pcoi-modal__close",onClick:a,"aria-label":"Close modal",children:e.jsx(w,{size:20})})]}),e.jsx("div",{className:"pcoi-modal__body",children:r}),l&&e.jsx("div",{className:"pcoi-modal__footer",children:l})]})}),document.body)};k.displayName="Modal";const Z=({message:s,variant:a="info",open:i,onClose:o,duration:c=5e3,className:r="",...l})=>{const t=d.useCallback(()=>{o==null||o()},[o]);if(d.useEffect(()=>{if(!i||c===0)return;const n=setTimeout(t,c);return()=>clearTimeout(n)},[i,c,t]),!i)return null;const p=["pcoi-toast",`pcoi-toast--${a}`,r].filter(Boolean).join(" ");return D.createPortal(e.jsx("div",{className:p,role:"alert",...l,children:e.jsxs("div",{className:"pcoi-toast__content",children:[e.jsx("span",{className:"pcoi-toast__message",children:s}),o&&e.jsx("button",{type:"button",className:"pcoi-toast__close",onClick:t,"aria-label":"Dismiss notification",children:e.jsx(w,{size:16})})]})}),document.body)};Z.displayName="Toast";const C=d.forwardRef(({label:s,icon:a,className:i="",...o},c)=>{const r=["pcoi-suggestion-card",i].filter(Boolean).join(" ");return e.jsxs("button",{ref:c,type:"button",className:r,...o,children:[a&&e.jsx("span",{className:"pcoi-suggestion-card__icon",children:a}),e.jsx("span",{className:"pcoi-suggestion-card__label",children:s})]})});C.displayName="SuggestionCard";const R=d.forwardRef(({index:s,excerpt:a,sourceTitle:i,onSourceClick:o,className:c="",...r},l)=>{const t=["pcoi-cited-excerpt",c].filter(Boolean).join(" ");return e.jsxs("div",{ref:l,className:t,...r,children:[e.jsx("button",{type:"button",className:"pcoi-cited-excerpt__source",onClick:o,children:i}),e.jsxs("div",{className:"pcoi-cited-excerpt__body",children:[e.jsxs("button",{type:"button",className:"pcoi-cited-excerpt__index",onClick:o,children:["[",s,"]"]}),e.jsx("p",{className:"pcoi-cited-excerpt__text",children:a})]})]})});R.displayName="CitedExcerpt";const U=({size:s=24,title:a,...i})=>e.jsxs("svg",{width:s,height:s,viewBox:"0 0 24 24",fill:"none",stroke:"currentColor",strokeWidth:1.5,strokeLinecap:"round",strokeLinejoin:"round",role:a?"img":"presentation","aria-hidden":!a,xmlns:"http://www.w3.org/2000/svg",...i,children:[a&&e.jsx("title",{children:a}),e.jsx("line",{x1:"5",y1:"12",x2:"19",y2:"12"}),e.jsx("polyline",{points:"12 5 19 12 12 19"})]});U.displayName="ArrowRightIcon";const $=d.forwardRef(({value:s,onChange:a,onSubmit:i,placeholder:o="Ask a question…",disabled:c=!1,loading:r=!1,className:l="",...t},p)=>{const n=d.useRef(null),h=d.useCallback(_=>{_.key==="Enter"&&!_.shiftKey&&(_.preventDefault(),s.trim()&&!c&&!r&&i(s.trim()))},[s,c,r,i]),m=d.useCallback(()=>{s.trim()&&!c&&!r&&i(s.trim())},[s,c,r,i]),f=["pcoi-prompt-bar",l].filter(Boolean).join(" ");return e.jsxs("div",{ref:p,className:f,...t,children:[e.jsx("textarea",{ref:n,className:"pcoi-prompt-bar__input",value:s,onChange:_=>a(_.target.value),onKeyDown:h,placeholder:o,disabled:c,rows:1,"aria-label":o}),e.jsx("div",{className:"pcoi-prompt-bar__actions",children:e.jsx(b,{variant:"primary",className:"pcoi-prompt-bar__send",onClick:m,disabled:c||r||!s.trim(),"aria-label":"Send message",children:e.jsx("span",{className:"pcoi-prompt-bar__send-icon",children:e.jsx(U,{size:16})})})})]})});$.displayName="PromptBar";const S=d.forwardRef(({role:s,children:a,citations:i,timestamp:o,onCitationClick:c,className:r="",...l},t)=>{const p=["pcoi-chat-message",`pcoi-chat-message--${s}`,r].filter(Boolean).join(" ");return e.jsxs("div",{ref:t,className:p,...l,children:[e.jsx("div",{className:"pcoi-chat-message__header",children:e.jsx(g,{variant:s==="assistant"?"default":"info",children:s==="assistant"?"PCOI":"You"})}),e.jsx("div",{className:"pcoi-chat-message__body",children:a}),i&&i.length>0&&e.jsx("div",{className:"pcoi-chat-message__citations",children:i.map(n=>e.jsx(R,{index:n.index,excerpt:n.excerpt,sourceTitle:n.sourceTitle,onSourceClick:()=>c==null?void 0:c(n)},n.index))}),o&&e.jsx("time",{className:"pcoi-chat-message__timestamp",children:o})]})});S.displayName="ChatMessage";const I=d.forwardRef(({suggestions:s,onSelect:a,className:i="",...o},c)=>{const r=["pcoi-suggestion-cards",i].filter(Boolean).join(" ");return e.jsx("div",{ref:c,className:r,...o,children:s.map(l=>e.jsx(C,{label:l.label,icon:l.icon,onClick:()=>a(l)},l.id))})});I.displayName="SuggestionCards";const B=d.forwardRef(({children:s,className:a="",...i},o)=>{const c=d.useRef(null);d.useEffect(()=>{const l=c.current;if(!l)return;const t=()=>{requestAnimationFrame(()=>{l.scrollTop=l.scrollHeight})},p=new MutationObserver(t);return p.observe(l,{childList:!0,subtree:!0}),t(),()=>p.disconnect()},[]);const r=["pcoi-chat-message-list",a].filter(Boolean).join(" ");return e.jsx("div",{ref:o,className:r,...i,children:e.jsx("div",{ref:c,className:"pcoi-chat-message-list__inner",children:s})})});B.displayName="ChatMessageList";const ee=d.forwardRef(({open:s,onClose:a,title:i,sourceLabel:o,children:c,highlightId:r,highlightIndex:l,className:t="",...p},n)=>{const h=d.useRef(null);d.useEffect(()=>{s&&r&&h.current&&requestAnimationFrame(()=>{var u;const _=(u=h.current)==null?void 0:u.querySelector(`#${CSS.escape(r)}`);_&&(_.scrollIntoView({behavior:"smooth",block:"center"}),_.classList.add("pcoi-doc-overlay__highlight"),l!==void 0&&_.setAttribute("data-highlight-index",`[${l}]`))})},[s,r,l]);const m=["pcoi-doc-overlay",t].filter(Boolean).join(" "),f=o?d.createElement("div",{className:"pcoi-doc-overlay__source"},d.createElement(g,null,o)):void 0;return d.createElement(k,{open:s,onClose:a,title:i,size:"wide",footer:f,className:m,...p},d.createElement("div",{ref:h,className:"pcoi-doc-overlay__content"},c))});ee.displayName="DocumentOverlay";const E=d.forwardRef(({label:s="PCOI",className:a="",...i},o)=>{const c=["pcoi-typing-indicator",a].filter(Boolean).join(" ");return e.jsxs("div",{ref:o,className:c,...i,children:[e.jsx("div",{className:"pcoi-typing-indicator__header",children:e.jsx(g,{children:s})}),e.jsxs("div",{className:"pcoi-typing-indicator__dots","aria-label":"Typing",children:[e.jsx("span",{className:"pcoi-typing-indicator__dot"}),e.jsx("span",{className:"pcoi-typing-indicator__dot"}),e.jsx("span",{className:"pcoi-typing-indicator__dot"})]})]})});E.displayName="TypingIndicator";const ae=d.forwardRef(({messages:s,suggestions:a,promptValue:i,onPromptChange:o,onPromptSubmit:c,onSuggestionSelect:r,onCitationClick:l,placeholder:t,loading:p=!1,className:n="",...h},m)=>{const f=s.length===0,_=["pcoi-chat",f?"pcoi-chat--empty":"",n].filter(Boolean).join(" ");return e.jsxs("div",{ref:m,className:_,...h,children:[f?e.jsx("div",{className:"pcoi-chat__empty-state",children:a&&a.length>0&&r&&e.jsx("div",{className:"pcoi-chat__suggestions",children:e.jsx(I,{suggestions:a,onSelect:r})})}):e.jsxs(B,{className:"pcoi-chat__messages",children:[s.map(u=>e.jsx(S,{role:u.role,citations:u.citations,timestamp:u.timestamp,onCitationClick:l,children:u.content},u.id)),p&&e.jsx(E,{})]}),e.jsx("div",{className:"pcoi-chat__prompt",children:e.jsx($,{value:i,onChange:o,onSubmit:c,placeholder:t,loading:p,disabled:p})})]})});ae.displayName="ChatInterface";exports.Badge=g;exports.Button=b;exports.Callout=A;exports.Card=P;exports.ChatInterface=ae;exports.ChatMessage=S;exports.ChatMessageList=B;exports.Checkbox=G;exports.CitedExcerpt=R;exports.ComparisonTable=H;exports.ContactForm=q;exports.DataTable=X;exports.DocumentOverlay=ee;exports.Footer=Y;exports.FormField=N;exports.HowStep=M;exports.LogoMark=y;exports.Modal=k;exports.Nav=O;exports.Panel=Q;exports.PromptBar=$;exports.RadioGroup=J;exports.SectionHeader=L;exports.Select=z;exports.SignalsPanel=W;exports.SuggestionCard=C;exports.SuggestionCards=I;exports.Toast=Z;exports.Toggle=V;exports.TypingIndicator=E;
|
|
1
|
+
"use strict";Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});const e=require("react/jsx-runtime"),d=require("react"),y=require("@pcoi/icons"),P=require("react-dom"),w=d.forwardRef(({href:s="#",className:c="",...a},l)=>e.jsxs("a",{ref:l,href:s,className:`pcoi-logo ${c}`,"aria-label":"PCOI home",...a,children:[e.jsx("span",{className:"pcoi-logo__mark","aria-hidden":"true",children:"P"}),"COI"]}));w.displayName="LogoMark";const b=d.forwardRef(({variant:s="primary",size:c="default",children:a,className:l="",...i},r)=>{const o=["pcoi-btn",`pcoi-btn--${s}`,c!=="default"?`pcoi-btn--${c}`:"",l].filter(Boolean).join(" ");return e.jsx("button",{ref:r,className:o,...i,children:a})});b.displayName="Button";const N=d.forwardRef(({label:s,name:c,multiline:a=!1,rows:l=3,error:i,required:r=!1,disabled:o=!1,className:n="",...p},t)=>{const h=`pcoi-field-${c}`,m=i?`${h}-error`:void 0,u=["pcoi-field",i?"pcoi-field--error":"",o?"pcoi-field--disabled":"",n].filter(Boolean).join(" ");return e.jsxs("div",{className:u,children:[e.jsxs("label",{htmlFor:h,className:"pcoi-field__label",children:[s,r&&e.jsx("span",{className:"pcoi-field__required","aria-hidden":"true",children:"*"})]}),a?e.jsx("textarea",{ref:t,id:h,name:c,rows:l,required:r,disabled:o,"aria-invalid":!!i,"aria-describedby":m,className:"pcoi-field__textarea",...p}):e.jsx("input",{ref:t,id:h,name:c,required:r,disabled:o,"aria-invalid":!!i,"aria-describedby":m,className:"pcoi-field__input",...p}),i&&e.jsx("span",{id:m,className:"pcoi-field__error",role:"alert",children:i})]})});N.displayName="FormField";const D=d.forwardRef(({variant:s="problem",title:c,description:a,icon:l,number:i,headingLevel:r="h3",className:o="",...n},p)=>{const t=r,h=["pcoi-card",`pcoi-card--${s}`,o].filter(Boolean).join(" ");return e.jsxs("div",{ref:p,className:h,...n,children:[s==="problem"&&l&&e.jsx("div",{className:"pcoi-card__icon",children:l}),s==="principle"&&i&&e.jsx("div",{className:"pcoi-card__number",children:i}),e.jsx(t,{className:"pcoi-card__title",children:c}),e.jsx("p",{className:"pcoi-card__description",children:a})]})});D.displayName="Card";const O=d.forwardRef(({links:s=[{label:"Problem",href:"#problem"},{label:"How It Works",href:"#how-it-works"},{label:"Difference",href:"#difference"},{label:"Who It's For",href:"#who"}],ctaLabel:c="Start a Conversation",ctaHref:a="#contact",onCtaClick:l,className:i="",...r},o)=>{const[n,p]=d.useState(!1),[t,h]=d.useState(!1);return d.useEffect(()=>{const m=()=>p(window.scrollY>40);return window.addEventListener("scroll",m,{passive:!0}),m(),()=>window.removeEventListener("scroll",m)},[]),d.useEffect(()=>{if(!t)return;const m=u=>{u.key==="Escape"&&h(!1)};return document.addEventListener("keydown",m),()=>document.removeEventListener("keydown",m)},[t]),e.jsxs("nav",{ref:o,className:`pcoi-nav ${n?"pcoi-nav--scrolled":""} ${t?"pcoi-nav--menu-open":""} ${i}`,"aria-label":"Main",...r,children:[e.jsxs("div",{className:"pcoi-nav__inner",children:[e.jsx(w,{}),e.jsxs("div",{className:"pcoi-nav__links",children:[s.map(m=>e.jsx("a",{href:m.href,"data-track-id":m.trackingId,children:m.label},m.href)),e.jsx("a",{href:a,children:e.jsx(b,{variant:"nav-cta",onClick:l,children:c})})]}),e.jsxs("button",{className:`pcoi-nav__hamburger ${t?"pcoi-nav__hamburger--active":""}`,onClick:()=>h(!t),"aria-label":"Toggle menu","aria-expanded":t,"aria-controls":"pcoi-mobile-menu",children:[e.jsx("span",{}),e.jsx("span",{}),e.jsx("span",{})]})]}),e.jsxs("div",{className:"pcoi-nav__mobile-menu",id:"pcoi-mobile-menu",role:"menu","aria-hidden":!t,children:[s.map(m=>e.jsx("a",{href:m.href,"data-track-id":m.trackingId,role:"menuitem",tabIndex:t?0:-1,onClick:()=>h(!1),children:m.label},m.href)),e.jsx("a",{href:a,children:e.jsx(b,{variant:"nav-cta",onClick:()=>{l==null||l(),h(!1)},children:c})})]})]})});O.displayName="Nav";const M=d.forwardRef(({label:s,title:c,titleEmphasis:a,description:l,headingLevel:i="h2",className:r="",...o},n)=>{const p=i;return e.jsxs("div",{ref:n,className:`pcoi-section-header ${r}`,...o,children:[e.jsx("span",{className:"pcoi-section-header__label",children:s}),e.jsx(p,{className:"pcoi-section-header__title",children:a?e.jsxs(e.Fragment,{children:[c.replace(a,""),e.jsx("em",{children:a})]}):c}),l&&e.jsx("p",{className:"pcoi-section-header__desc",children:l})]})});M.displayName="SectionHeader";const q=d.forwardRef(({number:s,title:c,description:a,isLast:l=!1,headingLevel:i="h3",className:r="",...o},n)=>{const p=i;return e.jsxs("div",{ref:n,className:`pcoi-how-step ${l?"pcoi-how-step--last":""} ${r}`,...o,children:[e.jsx("div",{className:"pcoi-how-step__number",children:s}),e.jsxs("div",{className:"pcoi-how-step__content",children:[e.jsx(p,{className:"pcoi-how-step__title",children:c}),e.jsx("p",{className:"pcoi-how-step__desc",children:a})]})]})});q.displayName="HowStep";const H=d.forwardRef(({competitorName:s="Typical SaaS AI",pcoiName:c="PCOI",rows:a,className:l="",...i},r)=>e.jsx("div",{ref:r,className:`pcoi-comparison ${l}`,...i,children:e.jsxs("table",{className:"pcoi-comparison__table",children:[e.jsx("thead",{children:e.jsxs("tr",{className:"pcoi-comparison__header",children:[e.jsx("th",{className:"pcoi-comparison__col",scope:"col",children:e.jsx("span",{className:"pcoi-sr-only",children:"Feature"})}),e.jsx("th",{className:"pcoi-comparison__col",scope:"col",children:s}),e.jsx("th",{className:"pcoi-comparison__col pcoi-comparison__col--highlight",scope:"col",children:c})]})}),e.jsx("tbody",{children:a.map((o,n)=>e.jsxs("tr",{className:"pcoi-comparison__row",children:[e.jsx("th",{className:"pcoi-comparison__col pcoi-comparison__col--label",scope:"row",children:o.label}),e.jsx("td",{className:"pcoi-comparison__col",children:o.competitor}),e.jsx("td",{className:"pcoi-comparison__col pcoi-comparison__col--highlight",children:o.pcoi})]},n))})]})}));H.displayName="ComparisonTable";const L=d.forwardRef(({onSubmit:s,className:c="",...a},l)=>{const[i,r]=d.useState(!1),o=n=>{n.preventDefault();const p=n.currentTarget,t=new FormData(p),h=Object.fromEntries(t.entries());s==null||s(h),r(!0),p.reset(),setTimeout(()=>r(!1),3e3)};return e.jsxs("form",{ref:l,className:`pcoi-form ${c}`,onSubmit:o,"aria-label":"Contact form",...a,children:[e.jsxs("div",{className:"pcoi-form__row",children:[e.jsx(N,{label:"Name",name:"name",placeholder:"Your name",required:!0}),e.jsx(N,{label:"Company",name:"company",placeholder:"Company name",required:!0})]}),e.jsxs("div",{className:"pcoi-form__row",children:[e.jsx(N,{label:"Email",name:"email",type:"email",placeholder:"you@company.com",required:!0}),e.jsx(N,{label:"Your Role",name:"role",placeholder:"CEO, COO, VP Ops, etc."})]}),e.jsx(N,{label:"What problem are you trying to solve?",name:"context",multiline:!0,rows:3,placeholder:"Tell us about the knowledge challenges in your organization...",className:"pcoi-form__full"}),e.jsx(b,{type:"submit",variant:"primary",size:"large",disabled:i,children:i?"Message Received":"Start the Conversation"}),e.jsx("p",{className:"pcoi-form__note",children:"No sales automation. A real person reads this and responds personally."})]})});L.displayName="ContactForm";const A=d.forwardRef(({quote:s,attribution:c,attributionTitle:a,sourceUrl:l,sourceLabel:i,className:r="",...o},n)=>e.jsxs("figure",{ref:n,className:`pcoi-callout ${r}`,...o,children:[e.jsx("div",{className:"pcoi-callout__line","aria-hidden":"true"}),e.jsx("blockquote",{className:"pcoi-callout__quote",children:e.jsx("p",{children:s})}),(c||l)&&e.jsxs("figcaption",{className:"pcoi-callout__attribution",children:[a&&e.jsxs("span",{children:[a," ~ "]}),c,l&&e.jsxs(e.Fragment,{children:[" | ",e.jsx("a",{href:l,target:"_blank",rel:"noopener noreferrer",children:i||"Source"})]})]})]}));A.displayName="Callout";const z=d.forwardRef(({title:s="You'll know this is for you if:",signals:c,headingLevel:a="h3",className:l="",...i},r)=>{const o=a;return e.jsxs("div",{ref:r,className:`pcoi-signals ${l}`,...i,children:[e.jsx(o,{className:"pcoi-signals__title",children:s}),e.jsx("ul",{className:"pcoi-signals__list",children:c.map((n,p)=>e.jsx("li",{className:"pcoi-signals__item",children:n},p))})]})});z.displayName="SignalsPanel";const Y=d.forwardRef(({links:s=[{label:"Problem",href:"#problem"},{label:"How It Works",href:"#how-it-works"},{label:"Difference",href:"#difference"},{label:"Principles",href:"#principles"},{label:"Who It's For",href:"#who"},{label:"Contact",href:"#contact"}],tagline:c=`Portable, Company-Owned
|
|
2
|
+
Operational Intelligence`,copyright:a=`© ${new Date().getFullYear()} PCOI. Operational intelligence you own.`,className:l="",...i},r)=>e.jsxs("footer",{ref:r,className:`pcoi-footer ${l}`,...i,children:[e.jsxs("div",{className:"pcoi-footer__inner",children:[e.jsxs("div",{className:"pcoi-footer__brand",children:[e.jsx(w,{className:"pcoi-footer__logo"}),e.jsx("p",{className:"pcoi-footer__tagline",children:c})]}),e.jsx("nav",{className:"pcoi-footer__links","aria-label":"Footer",children:s.map(o=>e.jsx("a",{href:o.href,"data-track-id":o.trackingId,children:o.label},o.href))})]}),e.jsx("div",{className:"pcoi-footer__bottom",children:e.jsx("p",{children:a})})]}));Y.displayName="Footer";const V=d.forwardRef(({label:s,name:c,options:a,placeholder:l,error:i,required:r=!1,disabled:o=!1,className:n="",...p},t)=>{const h=`pcoi-field-${c}`,m=i?`${h}-error`:void 0,u=["pcoi-select",i?"pcoi-select--error":"",o?"pcoi-select--disabled":"",n].filter(Boolean).join(" ");return e.jsxs("div",{className:u,children:[e.jsxs("label",{htmlFor:h,className:"pcoi-select__label",children:[s,r&&e.jsx("span",{className:"pcoi-select__required","aria-hidden":"true",children:"*"})]}),e.jsxs("div",{className:"pcoi-select__wrapper",children:[e.jsxs("select",{ref:t,id:h,name:c,required:r,disabled:o,"aria-invalid":!!i,"aria-describedby":m,className:"pcoi-select__native",defaultValue:l?"":void 0,...p,children:[l&&e.jsx("option",{value:"",disabled:!0,hidden:!0,children:l}),a.map(f=>e.jsx("option",{value:f.value,disabled:f.disabled,children:f.label},f.value))]}),e.jsx("span",{className:"pcoi-select__chevron","aria-hidden":"true",children:e.jsx(y.ChevronDownIcon,{size:16})})]}),i&&e.jsx("span",{id:m,className:"pcoi-select__error",role:"alert",children:i})]})});V.displayName="Select";const W=d.forwardRef(({label:s,name:c,error:a,disabled:l=!1,className:i="",...r},o)=>{const n=`pcoi-field-${c}`,p=a?`${n}-error`:void 0,t=["pcoi-checkbox",a?"pcoi-checkbox--error":"",l?"pcoi-checkbox--disabled":"",i].filter(Boolean).join(" ");return e.jsxs("div",{className:t,children:[e.jsxs("label",{htmlFor:n,className:"pcoi-checkbox__control",children:[e.jsx("input",{ref:o,type:"checkbox",id:n,name:c,disabled:l,"aria-invalid":!!a,"aria-describedby":p,className:"pcoi-checkbox__input",...r}),e.jsx("span",{className:"pcoi-checkbox__box","aria-hidden":"true"}),e.jsx("span",{className:"pcoi-checkbox__label",children:s})]}),a&&e.jsx("span",{id:p,className:"pcoi-checkbox__error",role:"alert",children:a})]})});W.displayName="Checkbox";const K=d.forwardRef(({label:s,name:c,error:a,disabled:l=!1,className:i="",...r},o)=>{const n=`pcoi-field-${c}`,p=a?`${n}-error`:void 0,t=["pcoi-toggle",a?"pcoi-toggle--error":"",l?"pcoi-toggle--disabled":"",i].filter(Boolean).join(" ");return e.jsxs("div",{className:t,children:[e.jsxs("label",{htmlFor:n,className:"pcoi-toggle__control",children:[e.jsx("input",{ref:o,type:"checkbox",id:n,name:c,disabled:l,"aria-invalid":!!a,"aria-describedby":p,className:"pcoi-toggle__input",role:"switch",...r}),e.jsx("span",{className:"pcoi-toggle__track","aria-hidden":"true",children:e.jsx("span",{className:"pcoi-toggle__thumb"})}),e.jsx("span",{className:"pcoi-toggle__label",children:s})]}),a&&e.jsx("span",{id:p,className:"pcoi-toggle__error",role:"alert",children:a})]})});K.displayName="Toggle";const G=d.forwardRef(({label:s,name:c,options:a,defaultValue:l,error:i,required:r=!1,disabled:o=!1,onChange:n,className:p="",...t},h)=>{const m=i?`pcoi-field-${c}-error`:void 0,u=["pcoi-radio-group",i?"pcoi-radio-group--error":"",o?"pcoi-radio-group--disabled":"",p].filter(Boolean).join(" "),f=_=>{n==null||n(_.target.value)};return e.jsxs("fieldset",{ref:h,className:u,"aria-invalid":!!i,"aria-describedby":m,...t,children:[e.jsxs("legend",{className:"pcoi-radio-group__legend",children:[s,r&&e.jsx("span",{className:"pcoi-radio-group__required","aria-hidden":"true",children:"*"})]}),e.jsx("div",{className:"pcoi-radio-group__options",children:a.map(_=>{const v=`pcoi-field-${c}-${_.value}`;return e.jsxs("label",{htmlFor:v,className:"pcoi-radio-group__option",children:[e.jsx("input",{type:"radio",id:v,name:c,value:_.value,defaultChecked:l===_.value,required:r,disabled:o||_.disabled,onChange:f,className:"pcoi-radio-group__input"}),e.jsx("span",{className:"pcoi-radio-group__circle","aria-hidden":"true"}),e.jsx("span",{className:"pcoi-radio-group__label",children:_.label})]},_.value)})}),i&&e.jsx("span",{id:m,className:"pcoi-radio-group__error",role:"alert",children:i})]})});G.displayName="RadioGroup";const J=d.forwardRef(({title:s,headingLevel:c="h3",action:a,children:l,flush:i=!1,className:r="",...o},n)=>{const p=c,t=["pcoi-panel",i?"pcoi-panel--flush":"",r].filter(Boolean).join(" ");return e.jsxs("div",{ref:n,className:t,...o,children:[(s||a)&&e.jsxs("div",{className:"pcoi-panel__header",children:[s&&e.jsx(p,{className:"pcoi-panel__title",children:s}),a&&e.jsx("div",{className:"pcoi-panel__action",children:a})]}),e.jsx("div",{className:"pcoi-panel__body",children:l})]})});J.displayName="Panel";const Q=d.forwardRef(({columns:s,rows:c,rowKey:a,emptyText:l="No data available",ariaLabel:i,className:r="",...o},n)=>{const p=(t,h)=>a?typeof a=="function"?a(t,h):String(t[a]):String(h);return e.jsx("div",{ref:n,className:`pcoi-data-table ${r}`,...o,children:e.jsxs("table",{className:"pcoi-data-table__table","aria-label":i,children:[e.jsx("thead",{className:"pcoi-data-table__head",children:e.jsx("tr",{className:"pcoi-data-table__head-row",children:s.map(t=>e.jsx("th",{className:`pcoi-data-table__th${t.align?` pcoi-data-table__th--${t.align}`:""}`,children:t.header},t.key))})}),e.jsx("tbody",{className:"pcoi-data-table__body",children:c.length===0?e.jsx("tr",{children:e.jsx("td",{colSpan:s.length,className:"pcoi-data-table__empty",children:l})}):c.map((t,h)=>e.jsx("tr",{className:"pcoi-data-table__row",children:s.map(m=>{const u=t[m.key];return e.jsx("td",{className:`pcoi-data-table__td${m.align?` pcoi-data-table__td--${m.align}`:""}`,children:m.render?m.render(u,t):String(u??"")},m.key)})},p(t,h)))})]})})});Q.displayName="DataTable";const g=d.forwardRef(({children:s,variant:c="default",className:a="",...l},i)=>{const r=["pcoi-badge",`pcoi-badge--${c}`,a].filter(Boolean).join(" ");return e.jsx("span",{ref:i,className:r,...l,children:s})});g.displayName="Badge";const C=d.forwardRef(({open:s,onClose:c,title:a,headingLevel:l="h2",size:i="default",children:r,footer:o,className:n="",...p},t)=>{const h=d.useRef(null),m=d.useRef(null),u=l,f=a?"pcoi-modal-title":void 0,_=d.useCallback(x=>{if(x.key==="Escape"){c();return}if(x.key==="Tab"&&h.current){const j=h.current.querySelectorAll('button, [href], input, select, textarea, [tabindex]:not([tabindex="-1"])');if(j.length===0)return;const F=j[0],T=j[j.length-1];x.shiftKey&&document.activeElement===F?(x.preventDefault(),T.focus()):!x.shiftKey&&document.activeElement===T&&(x.preventDefault(),F.focus())}},[c]);d.useEffect(()=>(s&&(m.current=document.activeElement,document.addEventListener("keydown",_),document.body.style.overflow="hidden",requestAnimationFrame(()=>{var j;const x=(j=h.current)==null?void 0:j.querySelector('button, [href], input, select, textarea, [tabindex]:not([tabindex="-1"])');x==null||x.focus()})),()=>{var x;document.removeEventListener("keydown",_),document.body.style.overflow="",(x=m.current)==null||x.focus()}),[s,_]);const v=x=>{x.target===x.currentTarget&&c()};if(!s)return null;const ae=["pcoi-modal",n].filter(Boolean).join(" ");return P.createPortal(e.jsx("div",{className:ae,onClick:v,children:e.jsxs("div",{ref:h,className:`pcoi-modal__dialog${i==="wide"?" pcoi-modal__dialog--wide":""}`,role:"dialog","aria-modal":"true","aria-labelledby":f,...p,children:[e.jsxs("div",{className:"pcoi-modal__header",children:[a&&e.jsx(u,{id:f,className:"pcoi-modal__title",children:a}),e.jsx("button",{type:"button",className:"pcoi-modal__close",onClick:c,"aria-label":"Close modal",children:e.jsx(y.CloseIcon,{size:20})})]}),e.jsx("div",{className:"pcoi-modal__body",children:r}),o&&e.jsx("div",{className:"pcoi-modal__footer",children:o})]})}),document.body)});C.displayName="Modal";const X=d.forwardRef(({message:s,variant:c="info",open:a,onClose:l,duration:i=5e3,className:r="",...o},n)=>{const p=d.useCallback(()=>{l==null||l()},[l]);if(d.useEffect(()=>{if(!a||i===0)return;const h=setTimeout(p,i);return()=>clearTimeout(h)},[a,i,p]),!a)return null;const t=["pcoi-toast",`pcoi-toast--${c}`,r].filter(Boolean).join(" ");return P.createPortal(e.jsx("div",{ref:n,className:t,role:"alert",...o,children:e.jsxs("div",{className:"pcoi-toast__content",children:[e.jsx("span",{className:"pcoi-toast__message",children:s}),l&&e.jsx("button",{type:"button",className:"pcoi-toast__close",onClick:p,"aria-label":"Dismiss notification",children:e.jsx(y.CloseIcon,{size:16})})]})}),document.body)});X.displayName="Toast";const Z=d.forwardRef(({index:s,sourceLabel:c,className:a="",...l},i)=>{const r=["pcoi-citation-mark",a].filter(Boolean).join(" ");return e.jsx("button",{ref:i,type:"button",className:r,title:c??`Citation ${s}`,"aria-label":c??`Citation ${s}`,...l,children:s})});Z.displayName="CitationMark";const k=d.forwardRef(({label:s,icon:c,className:a="",...l},i)=>{const r=["pcoi-suggestion-card",a].filter(Boolean).join(" ");return e.jsxs("button",{ref:i,type:"button",className:r,...l,children:[c&&e.jsx("span",{className:"pcoi-suggestion-card__icon",children:c}),e.jsx("span",{className:"pcoi-suggestion-card__label",children:s})]})});k.displayName="SuggestionCard";const R=d.forwardRef(({index:s,excerpt:c,sourceTitle:a,onSourceClick:l,className:i="",...r},o)=>{const n=["pcoi-cited-excerpt",i].filter(Boolean).join(" ");return e.jsxs("div",{ref:o,className:n,...r,children:[e.jsx("button",{type:"button",className:"pcoi-cited-excerpt__source",onClick:l,"aria-label":`View source: ${a}`,children:a}),e.jsxs("div",{className:"pcoi-cited-excerpt__body",children:[e.jsxs("button",{type:"button",className:"pcoi-cited-excerpt__index",onClick:l,"aria-label":`Citation ${s}, view source: ${a}`,children:["[",s,"]"]}),e.jsx("p",{className:"pcoi-cited-excerpt__text",children:c})]})]})});R.displayName="CitedExcerpt";const $=d.forwardRef(({value:s,onChange:c,onSubmit:a,placeholder:l="Ask a question…",disabled:i=!1,loading:r=!1,className:o="",...n},p)=>{const t=d.useRef(null),h=d.useCallback(f=>{f.key==="Enter"&&!f.shiftKey&&(f.preventDefault(),s.trim()&&!i&&!r&&a(s.trim()))},[s,i,r,a]),m=d.useCallback(()=>{s.trim()&&!i&&!r&&a(s.trim())},[s,i,r,a]),u=["pcoi-prompt-bar",o].filter(Boolean).join(" ");return e.jsxs("div",{ref:p,className:u,...n,children:[e.jsx("textarea",{ref:t,className:"pcoi-prompt-bar__input",value:s,onChange:f=>c(f.target.value),onKeyDown:h,placeholder:l,disabled:i,rows:1,"aria-label":l}),e.jsx("div",{className:"pcoi-prompt-bar__actions",children:e.jsx(b,{variant:"primary",className:"pcoi-prompt-bar__send",onClick:m,disabled:i||r||!s.trim(),"aria-label":"Send message",children:e.jsx("span",{className:"pcoi-prompt-bar__send-icon",children:e.jsx(y.ArrowRightIcon,{size:16})})})})]})});$.displayName="PromptBar";const S=d.forwardRef(({role:s,children:c,citations:a,timestamp:l,onCitationClick:i,className:r="",...o},n)=>{const p=["pcoi-chat-message",`pcoi-chat-message--${s}`,r].filter(Boolean).join(" ");return e.jsxs("div",{ref:n,className:p,...o,children:[e.jsx("div",{className:"pcoi-chat-message__header",children:e.jsx(g,{variant:s==="assistant"?"default":"info",children:s==="assistant"?"PCOI":"You"})}),e.jsx("div",{className:"pcoi-chat-message__body",children:c}),a&&a.length>0&&e.jsx("div",{className:"pcoi-chat-message__citations",children:a.map(t=>e.jsx(R,{index:t.index,excerpt:t.excerpt,sourceTitle:t.sourceTitle,onSourceClick:()=>i==null?void 0:i(t)},t.index))}),l&&e.jsx("time",{className:"pcoi-chat-message__timestamp",children:l})]})});S.displayName="ChatMessage";const I=d.forwardRef(({suggestions:s,onSelect:c,className:a="",...l},i)=>{const r=["pcoi-suggestion-cards",a].filter(Boolean).join(" ");return e.jsx("div",{ref:i,className:r,...l,children:s.map(o=>e.jsx(k,{label:o.label,icon:o.icon,onClick:()=>c(o)},o.id))})});I.displayName="SuggestionCards";const B=d.forwardRef(({children:s,className:c="",...a},l)=>{const i=d.useRef(null);d.useEffect(()=>{const o=i.current;if(!o)return;const n=()=>{requestAnimationFrame(()=>{const t=o.lastElementChild;t?t.scrollIntoView({block:"nearest"}):o.scrollTop=o.scrollHeight})},p=new MutationObserver(n);return p.observe(o,{childList:!0,subtree:!0}),n(),()=>p.disconnect()},[]);const r=["pcoi-chat-message-list",c].filter(Boolean).join(" ");return e.jsx("div",{ref:l,className:r,role:"log","aria-label":"Conversation",...a,children:e.jsx("div",{ref:i,className:"pcoi-chat-message-list__inner",children:s})})});B.displayName="ChatMessageList";const U=d.forwardRef(({open:s,onClose:c,title:a,sourceLabel:l,children:i,highlightId:r,highlightIndex:o,className:n="",...p},t)=>{const h=d.useRef(null);d.useEffect(()=>{s&&r&&h.current&&requestAnimationFrame(()=>{var _;const f=(_=h.current)==null?void 0:_.querySelector(`#${CSS.escape(r)}`);f&&(f.scrollIntoView({behavior:"smooth",block:"center"}),f.classList.add("pcoi-doc-overlay__highlight"),o!==void 0&&f.setAttribute("data-highlight-index",`[${o}]`))})},[s,r,o]);const m=["pcoi-doc-overlay",n].filter(Boolean).join(" "),u=l?d.createElement("div",{className:"pcoi-doc-overlay__source"},d.createElement(g,null,l)):void 0;return d.createElement(C,{ref:t,open:s,onClose:c,title:a,size:"wide",footer:u,className:m,...p},d.createElement("div",{ref:h,className:"pcoi-doc-overlay__content"},i))});U.displayName="DocumentOverlay";const E=d.forwardRef(({label:s="PCOI",className:c="",...a},l)=>{const i=["pcoi-typing-indicator",c].filter(Boolean).join(" ");return e.jsxs("div",{ref:l,className:i,role:"status","aria-live":"polite","aria-label":`${s} is typing`,...a,children:[e.jsx("div",{className:"pcoi-typing-indicator__header",children:e.jsx(g,{children:s})}),e.jsxs("div",{className:"pcoi-typing-indicator__dots","aria-hidden":"true",children:[e.jsx("span",{className:"pcoi-typing-indicator__dot"}),e.jsx("span",{className:"pcoi-typing-indicator__dot"}),e.jsx("span",{className:"pcoi-typing-indicator__dot"})]})]})});E.displayName="TypingIndicator";const ee=d.forwardRef(({messages:s,suggestions:c,promptValue:a,onPromptChange:l,onPromptSubmit:i,onSuggestionSelect:r,onCitationClick:o,placeholder:n,loading:p=!1,className:t="",...h},m)=>{const u=s.length===0,f=["pcoi-chat",u?"pcoi-chat--empty":"",t].filter(Boolean).join(" ");return e.jsxs("div",{ref:m,className:f,...h,children:[u?e.jsx("div",{className:"pcoi-chat__empty-state",children:c&&c.length>0&&r&&e.jsx("div",{className:"pcoi-chat__suggestions",children:e.jsx(I,{suggestions:c,onSelect:r})})}):e.jsxs(B,{className:"pcoi-chat__messages","aria-live":"polite","aria-relevant":"additions",children:[s.map(_=>e.jsx(S,{role:_.role,citations:_.citations,timestamp:_.timestamp,onCitationClick:o,children:_.content},_.id)),p&&e.jsx(E,{})]}),e.jsx("div",{className:"pcoi-chat__prompt",children:e.jsx($,{value:a,onChange:l,onSubmit:i,placeholder:n,loading:p,disabled:p})})]})});ee.displayName="ChatInterface";exports.Badge=g;exports.Button=b;exports.Callout=A;exports.Card=D;exports.ChatInterface=ee;exports.ChatMessage=S;exports.ChatMessageList=B;exports.Checkbox=W;exports.CitationMark=Z;exports.CitedExcerpt=R;exports.ComparisonTable=H;exports.ContactForm=L;exports.DataTable=Q;exports.DocumentOverlay=U;exports.Footer=Y;exports.FormField=N;exports.HowStep=q;exports.LogoMark=w;exports.Modal=C;exports.Nav=O;exports.Panel=J;exports.PromptBar=$;exports.RadioGroup=G;exports.SectionHeader=M;exports.Select=V;exports.SignalsPanel=z;exports.SuggestionCard=k;exports.SuggestionCards=I;exports.Toast=X;exports.Toggle=K;exports.TypingIndicator=E;
|