@deriv-web-design/ui 0.0.1

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.
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["../primitives/Button/Button.module.css","../primitives/Link/Link.module.css","../primitives/Chip/Chip.module.css","../primitives/Tag/Tag.module.css","../primitives/Accordion/Accordion.module.css","../primitives/TextField/TextField.module.css","../primitives/SearchField/SearchField.module.css","../primitives/Breadcrumb/Breadcrumb.module.css","../primitives/ChipDropdown/ChipDropdown.module.css","../components/Card/CardPrimaryVariant.module.css","../components/Card/CardSecondaryVariant.module.css","../components/Card/CardThumbnailVariant.module.css","../primitives/Pagination/Pagination.module.css"],"sourcesContent":["/* ── Base ─────────────────────────────────────────────────── */\n\n.button {\n position: relative;\n display: inline-flex;\n align-items: center;\n justify-content: center;\n gap: var(--spacing-8);\n padding: calc(var(--spacing-16) - 2px) calc(var(--spacing-24) - 2px);\n min-width: var(--spacing-96);\n border: 2px solid transparent;\n border-radius: var(--radius-full);\n font-family: var(--font-family-base);\n font-size: var(--font-size-lg);\n font-weight: var(--font-weight-extra-bold);\n line-height: 1;\n text-align: center;\n white-space: nowrap;\n text-decoration: none;\n cursor: pointer;\n outline: none;\n box-sizing: border-box;\n transition: background-color 100ms ease, border-color 100ms ease, opacity 100ms ease;\n}\n\n/* ── Full-width ───────────────────────────────────────────── */\n\n.fullWidth {\n width: 100%;\n}\n\n/* ── Icon-only — square pill, no label ───────────────────── */\n\n.iconOnly {\n padding: calc(var(--spacing-16) - 2px);\n min-width: unset;\n width: var(--spacing-48);\n height: var(--spacing-48);\n}\n\n/* ── Label slot ───────────────────────────────────────────── */\n\n.label {\n flex: 1 0 0;\n min-width: 1px;\n min-height: 1px;\n}\n\n/* ── Icon slot ────────────────────────────────────────────── */\n\n.icon {\n display: flex;\n align-items: center;\n justify-content: center;\n width: var(--spacing-16);\n height: var(--spacing-16);\n flex-shrink: 0;\n}\n\n/* ── Focus ring overlay ───────────────────────────────────── */\n\n.focusRing {\n position: absolute;\n inset: -2px;\n border-radius: var(--radius-full);\n border: 2px solid var(--color-blue-600);\n pointer-events: none;\n}\n\n.button:focus-visible::after {\n content: \"\";\n position: absolute;\n inset: -2px;\n border-radius: var(--radius-full);\n border: 2px solid var(--color-blue-600);\n pointer-events: none;\n}\n\n/* ============================================================\n CORAL color scheme\n ============================================================ */\n\n.coral_primary {\n background-color: var(--color-coral-500);\n color: var(--color-slate-50);\n}\n\n.coral_primary:hover:not(:disabled) {\n background-color: var(--color-coral-600);\n}\n\n.coral_primary:active:not(:disabled) {\n background-color: var(--color-coral-700);\n}\n\n.coral_primary:disabled {\n opacity: 0.24;\n cursor: not-allowed;\n}\n\n.coral_secondary {\n background-color: transparent;\n color: var(--color-coral-500);\n border-color: var(--color-coral-500);\n}\n\n.coral_secondary:hover:not(:disabled) {\n background-color: rgba(255, 68, 79, 0.08);\n}\n\n.coral_secondary:active:not(:disabled) {\n background-color: rgba(255, 68, 79, 0.16);\n}\n\n.coral_secondary:disabled {\n opacity: 0.24;\n cursor: not-allowed;\n}\n\n/* ============================================================\n BLACK color scheme\n ============================================================ */\n\n.black_primary {\n background-color: var(--color-slate-1300);\n color: var(--color-slate-50);\n}\n\n.black_primary:hover:not(:disabled) {\n background-color: rgba(24, 28, 37, 0.8);\n}\n\n.black_primary:active:not(:disabled) {\n background-color: var(--color-opacity-slate-88);\n}\n\n.black_primary:disabled {\n opacity: 0.24;\n cursor: not-allowed;\n}\n\n.black_secondary {\n background-color: transparent;\n color: var(--color-slate-1300);\n border-color: var(--color-slate-1300);\n}\n\n.black_secondary:hover:not(:disabled) {\n background-color: var(--color-opacity-slate-4);\n}\n\n.black_secondary:active:not(:disabled) {\n background-color: var(--color-opacity-slate-8);\n}\n\n.black_secondary:disabled {\n opacity: 0.24;\n cursor: not-allowed;\n}\n\n/* ============================================================\n WHITE color scheme — intended for use on dark backgrounds\n ============================================================ */\n\n.white_primary {\n background-color: var(--color-slate-50);\n color: var(--color-slate-1300);\n}\n\n.white_primary:hover:not(:disabled) {\n background-color: rgba(255, 255, 255, 0.8);\n}\n\n.white_primary:active:not(:disabled) {\n background-color: var(--color-opacity-white-88);\n}\n\n.white_primary:disabled {\n opacity: 0.24;\n cursor: not-allowed;\n}\n\n.white_secondary {\n background-color: transparent;\n color: var(--color-slate-50);\n border-color: var(--color-slate-50);\n}\n\n.white_secondary:hover:not(:disabled) {\n background-color: var(--color-opacity-white-8);\n}\n\n.white_secondary:active:not(:disabled) {\n background-color: var(--color-opacity-white-16);\n}\n\n.white_secondary:disabled {\n opacity: 0.24;\n cursor: not-allowed;\n}\n","/* ── Base ─────────────────────────────────────────────────── */\n\n.link {\n display: inline-flex;\n align-items: center;\n gap: var(--spacing-8);\n cursor: pointer;\n text-decoration: none;\n font-family: var(--font-family-base);\n font-size: var(--font-size-md);\n font-weight: var(--font-weight-semi-bold);\n line-height: 1;\n white-space: nowrap;\n background: none;\n border: none;\n padding: 0;\n outline: none;\n transition: gap 150ms ease;\n}\n\n.link:focus-visible {\n outline: 2px solid var(--color-blue-600);\n outline-offset: 2px;\n border-radius: var(--radius-xs);\n}\n\n/* ── Disabled ─────────────────────────────────────────────── */\n\n.disabled {\n opacity: var(--link-disabled-opacity);\n cursor: not-allowed;\n pointer-events: none;\n}\n\n/* ── Icon slot ────────────────────────────────────────────── */\n\n.icon {\n display: inline-flex;\n align-items: center;\n justify-content: center;\n width: var(--spacing-16);\n height: var(--spacing-16);\n flex-shrink: 0;\n}\n\n/* ── Chevron slot ─────────────────────────────────────────── */\n\n.chevron {\n display: inline-flex;\n align-items: center;\n justify-content: center;\n flex-shrink: 0;\n width: var(--spacing-16);\n height: var(--spacing-16);\n transition: transform 150ms ease;\n}\n\n/* ── Label slot ───────────────────────────────────────────── */\n\n.label {\n text-decoration-skip-ink: none;\n}\n\n/* ── Chevron mode: gap expands on hover/active ────────────── */\n\n.withChevron:hover,\n.withChevron:active {\n gap: var(--spacing-16);\n}\n\n/* ── Icon mode: label underlines on hover/active ──────────── */\n\n.withIcon:hover .label,\n.withIcon:active .label {\n text-decoration: underline;\n text-decoration-style: solid;\n}\n\n/* ── Color schemes ────────────────────────────────────────── */\n\n.coral {\n color: var(--link-coral-color);\n}\n\n.black {\n color: var(--link-black-color);\n}\n\n.white {\n color: var(--link-white-color);\n}\n","/* ── Base ─────────────────────────────────────────────────── */\n\n.chip {\n position: relative;\n display: inline-flex;\n align-items: center;\n border: 1px solid var(--chip-border-color);\n border-radius: var(--radius-full);\n font-family: var(--font-family-base);\n font-weight: var(--font-weight-regular);\n line-height: 1;\n color: var(--chip-text-color);\n white-space: nowrap;\n background: transparent;\n cursor: pointer;\n outline: none;\n box-sizing: border-box;\n transition: background-color 100ms ease, color 100ms ease, border-color 100ms ease;\n user-select: none;\n}\n\n/* ── Sizes ────────────────────────────────────────────────── */\n\n.sm {\n height: var(--spacing-24);\n padding: 0 var(--spacing-12);\n gap: 6px; /* design spec: no 6px spacing token */\n font-size: var(--font-size-xs); /* 12px */\n}\n\n.md {\n height: var(--spacing-32);\n padding: 0 var(--spacing-16);\n gap: var(--spacing-8);\n font-size: var(--font-size-sm); /* 14px */\n}\n\n.lg {\n height: var(--spacing-48);\n padding: 0 var(--spacing-24);\n gap: var(--spacing-12);\n font-size: var(--font-size-md); /* 16px */\n}\n\n/* ── Hover / Active (unselected only) ─────────────────────── */\n\n.chip:hover:not(:disabled):not(.selected) {\n background-color: var(--chip-hover-background);\n}\n\n.chip:active:not(:disabled):not(.selected) {\n background-color: var(--chip-active-background);\n}\n\n/* ── Selected ─────────────────────────────────────────────── */\n\n.selected {\n background-color: var(--chip-selected-background);\n border-color: var(--chip-selected-background);\n color: var(--chip-selected-text);\n}\n\n/* ── Disabled ─────────────────────────────────────────────── */\n\n.chip:disabled {\n color: var(--chip-disabled-text);\n cursor: not-allowed;\n}\n\n/* ── Icon slot ────────────────────────────────────────────── */\n\n.icon {\n display: inline-flex;\n align-items: center;\n justify-content: center;\n flex-shrink: 0;\n width: 1em;\n height: 1em;\n}\n\n/* ── Label slot ───────────────────────────────────────────── */\n\n.label {\n flex-shrink: 0;\n}\n\n/* ── Tag slot ─────────────────────────────────────────────── */\n\n.tag {\n font-weight: var(--font-weight-extra-bold);\n flex-shrink: 0;\n}\n\n/* ── Focus ring overlay ───────────────────────────────────── */\n\n.focusRing {\n position: absolute;\n inset: -3px;\n border-radius: var(--radius-full);\n border: 2px solid var(--chip-focus-ring-color);\n pointer-events: none;\n}\n\n/* Selected chip has no visible border, so ring sits 2px out from edge */\n.selected .focusRing {\n inset: -2px;\n}\n\n.chip:focus-visible::after {\n content: \"\";\n position: absolute;\n inset: -3px;\n border-radius: var(--radius-full);\n border: 2px solid var(--chip-focus-ring-color);\n pointer-events: none;\n}\n\n.selected:focus-visible::after {\n inset: -2px;\n}\n","/* ── Base ─────────────────────────────────────────────────── */\n\n.tag {\n display: inline-flex;\n align-items: center;\n justify-content: center;\n box-sizing: border-box;\n white-space: nowrap;\n font-family: var(--font-family-base);\n line-height: 1;\n color: var(--tag-text-color);\n border-radius: var(--radius-full);\n}\n\n/* ── Variants ─────────────────────────────────────────────── */\n\n.fill {\n background-color: var(--tag-fill-background);\n}\n\n.outline {\n border: 1px solid var(--tag-outline-border);\n}\n\n/* ── Sizes ────────────────────────────────────────────────── */\n\n.xs {\n height: 22px; /* design spec: no 22px spacing token */\n padding: 0 var(--spacing-4);\n gap: var(--spacing-4);\n font-size: var(--font-size-xs); /* 12px */\n}\n\n.sm {\n height: var(--spacing-24);\n padding: 0 var(--spacing-8);\n gap: var(--spacing-8);\n font-size: var(--font-size-xs); /* 12px */\n}\n\n.md {\n height: var(--spacing-32);\n padding: 0 var(--spacing-12);\n gap: var(--spacing-12);\n font-size: var(--font-size-sm); /* 14px */\n}\n\n.lg {\n height: var(--spacing-48);\n padding: 0 var(--spacing-16);\n gap: var(--spacing-16);\n font-size: var(--font-size-md); /* 16px */\n}\n\n/* ── Font weights ─────────────────────────────────────────── */\n\n.regular {\n font-weight: var(--font-weight-regular);\n}\n\n.bold {\n font-weight: var(--font-weight-semi-bold);\n}\n\n/* ── Icon slot ────────────────────────────────────────────── */\n\n.icon {\n display: inline-flex;\n align-items: center;\n justify-content: center;\n flex-shrink: 0;\n width: 1em;\n height: 1em;\n}\n\n/* ── Label slot ───────────────────────────────────────────── */\n\n.label {\n flex-shrink: 0;\n}\n","/* ── Container ────────────────────────────────────────────── */\n\n.accordion {\n position: relative;\n width: 100%;\n max-width: 846px;\n box-sizing: border-box;\n}\n\n/* ── Header ───────────────────────────────────────────────── */\n\n.header {\n display: flex;\n align-items: center;\n gap: var(--spacing-24);\n padding: var(--spacing-24) 0;\n width: 100%;\n background: none;\n border: none;\n cursor: pointer;\n outline: none;\n position: relative;\n text-align: left;\n box-sizing: border-box;\n}\n\n.header:focus-visible::after {\n content: \"\";\n position: absolute;\n inset: -2px;\n border: 2px solid var(--accordion-focus-ring-color);\n pointer-events: none;\n}\n\n/* ── Focus ring overlay ───────────────────────────────────── */\n\n.focusRing {\n position: absolute;\n inset: -2px;\n border: 2px solid var(--accordion-focus-ring-color);\n pointer-events: none;\n}\n\n/* ── Title slot ───────────────────────────────────────────── */\n\n.titleWrapper {\n flex: 1 0 0;\n min-width: 1px;\n}\n\n.title {\n font-family: var(--font-family-base);\n font-size: var(--font-size-lg); /* 18px */\n font-weight: var(--font-weight-semi-bold);\n line-height: var(--line-height-normal);\n color: var(--accordion-title-color);\n}\n\n/* ── Chevron slot ─────────────────────────────────────────── */\n\n.chevron {\n display: flex;\n align-items: center;\n justify-content: center;\n width: var(--spacing-24);\n height: var(--spacing-24);\n flex-shrink: 0;\n color: var(--accordion-chevron-color);\n transition: transform 200ms ease;\n}\n\n.chevronRotated {\n transform: rotate(180deg);\n}\n\n/* ── Body — CSS Grid animated collapse ────────────────────── */\n\n.bodyWrapper {\n display: grid;\n grid-template-rows: 0fr;\n transition: grid-template-rows 200ms ease;\n}\n\n.bodyWrapperOpen {\n grid-template-rows: 1fr;\n}\n\n.bodyInner {\n overflow: hidden;\n}\n\n.body {\n padding-bottom: var(--spacing-24);\n font-family: var(--font-family-base);\n font-size: var(--font-size-md); /* 16px */\n font-weight: var(--font-weight-regular);\n line-height: var(--line-height-normal);\n color: var(--accordion-body-color);\n}\n","/* ── Field wrapper (visual input box) ─────────────────────── */\n\n.wrapper {\n display: flex;\n align-items: center;\n height: var(--spacing-56); /* 56px */\n padding: 0 var(--spacing-16);\n gap: var(--spacing-8);\n border-radius: var(--radius-md); /* 8px */\n border: 1px solid transparent; /* base — prevents layout shift */\n box-sizing: border-box;\n cursor: text;\n transition: background-color 100ms ease, border-color 100ms ease;\n}\n\n/* ── Variant: Outline ─────────────────────────────────────── */\n\n.outline {\n background: var(--field-surface-outline);\n border-color: var(--field-border-default);\n}\n\n/* ── Variant: Fill ────────────────────────────────────────── */\n\n.fill {\n background: var(--field-surface-fill);\n}\n\n/* ── Hover — neutral ──────────────────────────────────────── */\n\n.neutral.outline:hover:not([data-disabled]):not(:focus-within) {\n border-color: var(--field-border-hover);\n}\n\n.neutral.fill:hover:not([data-disabled]):not(:focus-within) {\n background: var(--field-surface-fill-hover);\n}\n\n/* ── Focus — neutral ──────────────────────────────────────── */\n\n.neutral.outline:focus-within:not([data-disabled]) {\n border-color: var(--field-border-focus);\n}\n\n.neutral.fill:focus-within:not([data-disabled]) {\n border-color: var(--field-border-focus);\n}\n\n/* ── Status: Fail — Outline ───────────────────────────────── */\n\n.fail.outline {\n border-color: var(--field-border-fail-default);\n}\n\n.fail.outline:hover:not([data-disabled]):not(:focus-within) {\n border-color: var(--field-border-fail-hover);\n}\n\n.fail.outline:focus-within:not([data-disabled]) {\n border-color: var(--field-border-fail-focus);\n}\n\n/* ── Status: Fail — Fill ──────────────────────────────────── */\n\n.fail.fill {\n background: var(--field-surface-fail);\n}\n\n.fail.fill:hover:not([data-disabled]):not(:focus-within) {\n background: var(--field-surface-fail-hover);\n}\n\n.fail.fill:focus-within:not([data-disabled]) {\n background: var(--field-surface-fail);\n border-color: var(--field-border-fail-focus);\n}\n\n/* ── Status: Success — Outline ────────────────────────────── */\n\n.success.outline {\n border-color: var(--field-border-success-default);\n}\n\n.success.outline:hover:not([data-disabled]):not(:focus-within) {\n border-color: var(--field-border-success-hover);\n}\n\n.success.outline:focus-within:not([data-disabled]) {\n border-color: var(--field-border-success-focus);\n}\n\n/* ── Status: Success — Fill ───────────────────────────────── */\n\n.success.fill {\n background: var(--field-surface-success);\n}\n\n.success.fill:hover:not([data-disabled]):not(:focus-within) {\n background: var(--field-surface-success-hover);\n}\n\n.success.fill:focus-within:not([data-disabled]) {\n background: var(--field-surface-success);\n border-color: var(--field-border-success-focus);\n}\n\n/* ── Disabled ─────────────────────────────────────────────── */\n\n.wrapper[data-disabled] {\n cursor: not-allowed;\n}\n\n/* ── Icon slot ────────────────────────────────────────────── */\n\n.iconSlot {\n display: inline-flex;\n align-items: center;\n justify-content: center;\n flex-shrink: 0;\n width: var(--spacing-24);\n height: var(--spacing-24);\n color: var(--field-icon-default);\n}\n\n.wrapper[data-disabled] .iconSlot {\n color: var(--field-icon-disabled);\n}\n\n.iconSuccess {\n color: var(--field-text-success);\n}\n\n.iconFail {\n color: var(--field-text-fail);\n}\n\n/* ── Native input ─────────────────────────────────────────── */\n\n.input {\n flex: 1 0 0;\n min-width: 1px;\n border: none;\n outline: none;\n background: transparent;\n font-family: var(--font-family-base);\n font-size: var(--font-size-md); /* 16px */\n font-weight: var(--font-weight-regular);\n line-height: var(--line-height-normal);\n color: var(--field-text-default);\n caret-color: var(--field-border-focus);\n padding: 0;\n}\n\n.input::placeholder {\n color: var(--field-text-placeholder);\n}\n\n.input:focus {\n color: var(--field-text-focus);\n}\n\n.input:disabled {\n cursor: not-allowed;\n color: var(--field-text-disabled);\n}\n\n.input:disabled::placeholder {\n color: var(--field-text-disabled);\n}\n\n","/* ── Field wrapper (visual input box) ─────────────────────── */\n\n.wrapper {\n display: flex;\n align-items: center;\n height: var(--spacing-56); /* 56px */\n padding: 0 var(--spacing-16);\n gap: var(--spacing-8);\n border-radius: var(--radius-md); /* 8px */\n border: 1px solid transparent; /* base — prevents layout shift */\n background: var(--field-surface-outline);\n border-color: var(--field-border-default);\n box-sizing: border-box;\n cursor: text;\n transition: background-color 100ms ease, border-color 100ms ease;\n}\n\n/* ── Hover — neutral ──────────────────────────────────────── */\n\n.neutral:hover:not([data-disabled]):not(:focus-within) {\n border-color: var(--field-border-hover);\n}\n\n/* ── Focus — neutral ──────────────────────────────────────── */\n\n.neutral:focus-within:not([data-disabled]) {\n border-color: var(--field-border-focus);\n}\n\n/* ── Status: Fail ─────────────────────────────────────────── */\n\n.fail {\n border-color: var(--field-border-fail-default);\n}\n\n.fail:hover:not([data-disabled]):not(:focus-within) {\n border-color: var(--field-border-fail-hover);\n}\n\n.fail:focus-within:not([data-disabled]) {\n border-color: var(--field-border-fail-focus);\n}\n\n/* ── Status: Success ──────────────────────────────────────── */\n\n.success {\n border-color: var(--field-border-success-default);\n}\n\n.success:hover:not([data-disabled]):not(:focus-within) {\n border-color: var(--field-border-success-hover);\n}\n\n.success:focus-within:not([data-disabled]) {\n border-color: var(--field-border-success-focus);\n}\n\n/* ── Disabled ─────────────────────────────────────────────── */\n\n.wrapper[data-disabled] {\n cursor: not-allowed;\n}\n\n/* ── Icon slot ────────────────────────────────────────────── */\n\n.iconSlot {\n display: inline-flex;\n align-items: center;\n justify-content: center;\n flex-shrink: 0;\n width: var(--spacing-24);\n height: var(--spacing-24);\n color: var(--field-icon-default);\n}\n\n.wrapper[data-disabled] .iconSlot {\n color: var(--field-icon-disabled);\n}\n\n.iconSuccess {\n color: var(--field-text-success);\n}\n\n.iconFail {\n color: var(--field-text-fail);\n}\n\n/* ── Native input ─────────────────────────────────────────── */\n\n.input {\n flex: 1 0 0;\n min-width: 1px;\n border: none;\n outline: none;\n background: transparent;\n font-family: var(--font-family-base);\n font-size: var(--font-size-md); /* 16px */\n font-weight: var(--font-weight-regular);\n line-height: var(--line-height-normal);\n color: var(--field-text-default);\n caret-color: var(--field-border-focus);\n padding: 0;\n}\n\n.input::placeholder {\n color: var(--field-text-placeholder);\n}\n\n.input:focus {\n color: var(--field-text-focus);\n}\n\n.input:disabled {\n cursor: not-allowed;\n color: var(--field-text-disabled);\n}\n\n.input:disabled::placeholder {\n color: var(--field-text-disabled);\n}\n\n/* ── Clear button ─────────────────────────────────────────── */\n\n.clearButton {\n appearance: none;\n display: inline-flex;\n align-items: center;\n justify-content: center;\n flex-shrink: 0;\n width: var(--spacing-24);\n height: var(--spacing-24);\n padding: 0;\n border: none;\n background: none;\n cursor: pointer;\n color: var(--field-icon-subtle);\n border-radius: var(--radius-full);\n transition: color 100ms ease;\n}\n\n.clearButton:hover {\n color: var(--field-text-default);\n}\n\n.clearButton:focus-visible {\n outline: 2px solid var(--field-border-focus);\n outline-offset: 2px;\n}\n","/* ── List ─────────────────────────────────────────────────── */\n\n.list {\n display: flex;\n flex-wrap: wrap;\n align-items: center;\n gap: var(--spacing-8); /* gap between <li> elements — right side of each › */\n list-style: none;\n margin: 0;\n padding: 0;\n font-family: var(--font-family-base);\n font-weight: var(--font-weight-regular);\n}\n\n/* ── Size variants ────────────────────────────────────────── */\n\n.list.sm {\n font-size: var(--font-size-sm); /* 0.875rem / 14px */\n line-height: var(--line-height-normal);\n}\n\n.list.md {\n font-size: var(--font-size-md); /* 1rem / 16px */\n line-height: var(--line-height-normal); /* 1.5 → 24px */\n}\n\n/* ── Item ─────────────────────────────────────────────────── */\n\n/* .item, .middleItem, .ellipsisItem all share this layout */\n.item,\n.middleItem,\n.ellipsisItem {\n display: flex;\n align-items: center;\n gap: var(--spacing-8); /* gap between link text and › — left side of each › */\n}\n\n/* ── Link (clickable crumb) ───────────────────────────────── */\n\n.link {\n color: var(--breadcrumb-text-color);\n text-decoration: none;\n white-space: nowrap;\n cursor: pointer;\n border-radius: var(--radius-sm);\n}\n\n.link:hover {\n text-decoration: underline;\n}\n\n.link:active {\n color: var(--breadcrumb-text-current-color);\n text-decoration: underline;\n}\n\n.link:focus-visible {\n outline: 2px solid var(--breadcrumb-focus-ring-color);\n outline-offset: 2px;\n text-decoration: none;\n}\n\n/* ── Current page (last crumb, non-interactive) ───────────── */\n\n.current {\n color: var(--breadcrumb-text-current-color);\n white-space: nowrap;\n}\n\n/* ── Separator (chevron icon) ─────────────────────────────── */\n\n.separator {\n display: inline-flex;\n align-items: center;\n justify-content: center;\n flex-shrink: 0;\n color: var(--breadcrumb-separator-color);\n width: 1em;\n height: 1em;\n}\n\n/* ── Ellipsis button ──────────────────────────────────────── */\n\n.ellipsisButton {\n appearance: none;\n background: none;\n border: none;\n padding: 0;\n margin: 0;\n font: inherit;\n color: var(--breadcrumb-text-color);\n cursor: pointer;\n border-radius: var(--radius-sm);\n}\n\n.ellipsisButton:hover {\n text-decoration: underline;\n}\n\n.ellipsisButton:focus-visible {\n outline: 2px solid var(--breadcrumb-focus-ring-color);\n outline-offset: 2px;\n text-decoration: none;\n}\n\n/* ── Collapse logic ───────────────────────────────────────── */\n\n/* Desktop: always show all items, never show ellipsis */\n.ellipsisItem {\n display: none;\n}\n\n.middleItem {\n display: flex;\n}\n\n/* Mobile: collapse middle items, show ellipsis */\n@media (max-width: 639px) {\n .list.collapsible {\n gap: var(--spacing-4);\n }\n\n .list.collapsible .item,\n .list.collapsible .middleItem,\n .list.collapsible .ellipsisItem {\n gap: var(--spacing-4);\n }\n\n .list.collapsible .ellipsisItem {\n display: flex;\n }\n\n .list.collapsible .middleItem {\n display: none;\n }\n\n /* Expanded: restore all items, hide ellipsis */\n .list.collapsible.expanded .ellipsisItem {\n display: none;\n }\n\n .list.collapsible.expanded .middleItem {\n display: flex;\n }\n}\n","/* ── Wrapper ───────────────────────────────────────────────── */\n\n.wrapper {\n position: relative;\n display: inline-flex;\n}\n\n/* ── Trigger (chip button) ────────────────────────────────── */\n\n.trigger {\n position: relative;\n display: inline-flex;\n align-items: center;\n border: 1px solid var(--chip-border-color);\n border-radius: var(--radius-full);\n font-family: var(--font-family-base);\n font-weight: var(--font-weight-regular);\n color: var(--chip-text-color);\n white-space: nowrap;\n background: transparent;\n cursor: pointer;\n outline: none;\n box-sizing: border-box;\n transition: background-color 100ms ease, color 100ms ease, border-color 100ms ease;\n user-select: none;\n}\n\n/* ── Sizes ────────────────────────────────────────────────── */\n\n.sm {\n height: var(--spacing-24);\n padding-left: var(--spacing-12);\n padding-right: 6px; /* design spec: --component/chip/spacing/padding/xs = 6px, no token */\n gap: 6px; /* design spec: --component/chip/spacing/gap/xs = 6px, no token */\n font-size: var(--font-size-xs);\n}\n\n.md {\n height: var(--spacing-32);\n padding-left: var(--spacing-16);\n padding-right: var(--spacing-8);\n gap: var(--spacing-8);\n font-size: var(--font-size-sm);\n}\n\n/* ── Hover / Active (unselected, not disabled) ────────────── */\n\n.trigger:hover:not(:disabled):not(.selected) {\n background-color: var(--chip-hover-background);\n}\n\n.trigger:active:not(:disabled) {\n background-color: var(--chip-active-background);\n}\n\n/* ── Expand state (open but no selection) ─────────────────── */\n\n.expand:not(.selected):not(:disabled) {\n background-color: var(--chip-hover-background);\n}\n\n/* ── Selected ─────────────────────────────────────────────── */\n\n.selected {\n background-color: var(--chip-selected-background);\n border-color: var(--chip-selected-background);\n color: var(--chip-selected-text);\n}\n\n/* ── Disabled ─────────────────────────────────────────────── */\n\n.trigger:disabled {\n color: var(--chip-disabled-text);\n cursor: not-allowed;\n}\n\n/* ── Icon slot ────────────────────────────────────────────── */\n\n.icon {\n display: inline-flex;\n align-items: center;\n justify-content: center;\n flex-shrink: 0;\n width: 1em;\n height: 1em;\n}\n\n/* ── Label slot ───────────────────────────────────────────── */\n\n.label {\n flex-shrink: 0;\n}\n\n/* ── Tag slot ─────────────────────────────────────────────── */\n\n.tag {\n font-weight: var(--font-weight-extra-bold);\n flex-shrink: 0;\n}\n\n/* ── Chevron icon ─────────────────────────────────────────── */\n\n.chevron {\n display: inline-flex;\n align-items: center;\n justify-content: center;\n flex-shrink: 0;\n width: 24px;\n height: 24px;\n transition: transform 200ms ease;\n}\n\n.chevronOpen {\n transform: rotate(180deg);\n}\n\n/* ── Focus ring (keyboard / programmatic) ─────────────────── */\n\n.trigger:focus-visible::after {\n content: \"\";\n position: absolute;\n inset: -3px;\n border-radius: var(--radius-full);\n border: 2px solid var(--chip-focus-ring-color);\n pointer-events: none;\n}\n\n/* ── Dropdown list panel ──────────────────────────────────── */\n\n.list {\n position: absolute;\n top: calc(100% + 4px);\n left: 0;\n z-index: 10;\n min-width: 100%;\n list-style: none;\n margin: 0;\n padding: var(--spacing-4);\n background: var(--chip-dropdown-list-bg);\n border: 1px solid var(--chip-dropdown-list-border);\n border-radius: var(--radius-md);\n box-shadow: var(--chip-dropdown-list-shadow);\n display: flex;\n flex-direction: column;\n box-sizing: border-box;\n}\n\n/* ── Dropdown item ────────────────────────────────────────── */\n\n.item {\n display: flex;\n align-items: center;\n gap: 6px; /* design spec: --component/dropdownItem/spacing/gap/sm = 6px, no token */\n height: var(--spacing-32);\n padding: 0 var(--spacing-12);\n border-radius: var(--radius-sm);\n cursor: pointer;\n color: var(--chip-dropdown-item-text);\n font-size: var(--font-size-sm);\n font-family: var(--font-family-base);\n font-weight: var(--font-weight-regular);\n white-space: nowrap;\n box-sizing: border-box;\n transition: background-color 100ms ease;\n list-style: none;\n}\n\n.item:hover {\n background-color: var(--chip-dropdown-item-hover-bg);\n}\n\n.item:active {\n background-color: var(--chip-dropdown-item-active-bg);\n}\n\n/* ── Item label ───────────────────────────────────────────── */\n\n.itemLabel {\n flex: 1;\n min-width: 0;\n overflow: hidden;\n text-overflow: ellipsis;\n white-space: nowrap;\n}\n\n/* ── Selected item ────────────────────────────────────────── */\n\n.itemSelected .itemLabel {\n font-weight: var(--font-weight-semi-bold);\n}\n\n/* ── Selected checkmark ───────────────────────────────────── */\n\n.itemCheck {\n display: inline-flex;\n align-items: center;\n justify-content: center;\n flex-shrink: 0;\n color: var(--chip-dropdown-item-selected-check);\n}","/* ── Card shell ───────────────────────────────────────────── */\n\n.card {\n display: flex;\n flex-direction: column;\n border-radius: var(--radius-2xl);\n overflow: hidden;\n height: 29.5rem;\n position: relative;\n width: 100%;\n}\n\n/* ── Variant backgrounds ──────────────────────────────────── */\n\n.style--light { background-color: var(--color-slate-75); }\n.style--dark { background-color: var(--color-slate-1200); }\n.style--brand { background-color: var(--color-coral-500); }\n.style--image { background-color: transparent; }\n\n/* ── Content area ─────────────────────────────────────────── */\n\n.content {\n flex: 1 0 0;\n display: flex;\n flex-direction: column;\n gap: var(--spacing-16);\n padding: var(--spacing-32);\n position: relative;\n z-index: 1;\n min-height: 0;\n}\n\n/* ── Text colours ─────────────────────────────────────────── */\n\n.textDefault { color: var(--color-slate-1200); }\n.textInverse { color: var(--color-slate-50); }\n\n/* ── Title ────────────────────────────────────────────────── */\n\n.title {\n font-family: var(--typography-h5-font-family);\n font-size: var(--typography-h5-font-size);\n font-weight: var(--typography-h5-font-weight);\n line-height: var(--typography-h5-line-height);\n margin: 0;\n width: 100%;\n}\n\n/* ── Description ──────────────────────────────────────────── */\n\n.description {\n font-family: var(--typography-body-md-font-family);\n font-size: var(--typography-body-md-font-size);\n font-weight: var(--typography-body-md-font-weight);\n line-height: var(--typography-body-md-line-height);\n margin: 0;\n width: 100%;\n}\n\n/* ── Inline link ──────────────────────────────────────────── */\n\n.link {\n display: inline-flex;\n align-items: center;\n gap: var(--spacing-8);\n background: none;\n border: none;\n padding: 0;\n cursor: pointer;\n font-family: var(--font-family-base);\n font-size: var(--font-size-md);\n font-weight: var(--font-weight-semi-bold);\n line-height: var(--line-height-tight);\n text-decoration: none;\n transition: opacity 150ms ease;\n}\n\n.link:hover { opacity: 0.8; }\n\n.linkCoral { color: var(--link-coral-color); }\n.linkInverse { color: var(--link-white-color); }\n\n/* ── Image section (light / dark / brand) ─────────────────── */\n\n.imageSection {\n height: 17.5rem;\n flex-shrink: 0;\n position: relative;\n overflow: hidden;\n}\n\n.image {\n position: absolute;\n inset: 0;\n width: 100%;\n height: 100%;\n object-fit: cover;\n display: block;\n}\n\n/* ── Full-bleed image overlay (image style) ───────────────── */\n\n.imageOverlay {\n position: absolute;\n inset: 0;\n pointer-events: none;\n z-index: 0;\n}\n\n.overlayImg {\n position: absolute;\n inset: 0;\n width: 100%;\n height: 100%;\n object-fit: cover;\n display: block;\n}\n\n.gradient {\n position: absolute;\n inset: 0;\n background: linear-gradient(\n to bottom,\n var(--color-opacity-slate-72) 28%,\n transparent 54%\n );\n}\n","/* ── Card shell ───────────────────────────────────────────── */\n\n.card {\n display: flex;\n flex-direction: column;\n gap: var(--spacing-16); /* Figma: 16px */\n padding: var(--spacing-32); /* Figma: 32px */\n background-color: var(--color-slate-75);\n border-radius: var(--radius-2xl);\n overflow: hidden;\n width: 100%;\n box-sizing: border-box;\n}\n\n/* ── Icon ─────────────────────────────────────────────────── */\n\n.icon {\n display: flex;\n align-items: center;\n justify-content: center;\n width: var(--spacing-32); /* Figma: 32px */\n height: var(--spacing-32);\n flex-shrink: 0;\n color: var(--color-slate-1200);\n}\n\n/* ── Title ────────────────────────────────────────────────── */\n\n.title {\n font-family: var(--typography-h5-font-family);\n font-size: var(--typography-h5-font-size);\n font-weight: var(--typography-h5-font-weight);\n line-height: var(--typography-h5-line-height);\n color: var(--color-slate-1200);\n margin: 0;\n width: 100%;\n}\n\n/* ── Description ──────────────────────────────────────────── */\n\n.description {\n font-family: var(--typography-body-md-font-family);\n font-size: var(--typography-body-md-font-size);\n font-weight: var(--typography-body-md-font-weight);\n line-height: var(--typography-body-md-line-height);\n color: var(--color-slate-1200);\n margin: 0;\n width: 100%;\n}\n\n/* ── Link ─────────────────────────────────────────────────── */\n\n.link {\n display: inline-flex;\n align-items: center;\n gap: var(--spacing-8);\n background: none;\n border: none;\n padding: 0;\n cursor: pointer;\n font-family: var(--font-family-base);\n font-size: var(--font-size-md);\n font-weight: var(--font-weight-semi-bold);\n line-height: var(--line-height-tight);\n color: var(--link-coral-color);\n text-decoration: none;\n transition: opacity 150ms ease;\n}\n\n.link:hover { opacity: 0.8; }\n","/* ── Card shell ───────────────────────────────────────────── */\n\n.card {\n display: flex;\n flex-direction: column;\n gap: var(--spacing-24);\n width: 100%;\n}\n\n/* ── Thumbnail wrapper ────────────────────────────────────── */\n\n.thumbnailWrapper {\n position: relative;\n width: 100%;\n aspect-ratio: 4 / 3;\n border-radius: var(--radius-2xl);\n overflow: hidden;\n flex-shrink: 0;\n}\n\n.thumbnailImage {\n position: absolute;\n inset: 0;\n width: 100%;\n height: 100%;\n object-fit: cover;\n border-radius: inherit;\n pointer-events: none;\n display: block;\n}\n\n/* ── Play button (video only) ─────────────────────────────── */\n\n.playButton {\n position: absolute;\n top: 50%;\n left: 50%;\n transform: translate(-50%, -50%);\n display: flex;\n align-items: center;\n justify-content: center;\n width: var(--spacing-80);\n height: var(--spacing-80);\n pointer-events: none;\n}\n\n/* ── Author avatar (article only) ────────────────────────── */\n\n.avatar {\n position: absolute;\n bottom: var(--spacing-24);\n right: var(--spacing-24);\n width: var(--spacing-72);\n height: var(--spacing-72);\n border-radius: var(--radius-full);\n object-fit: cover;\n display: block;\n}\n\n/* ── Content area ─────────────────────────────────────────── */\n\n.content {\n display: flex;\n flex-direction: column;\n gap: var(--spacing-16);\n width: 100%;\n}\n\n/* ── Meta row ─────────────────────────────────────────────── */\n\n.metaRow {\n display: flex;\n align-items: center;\n justify-content: space-between;\n width: 100%;\n flex-wrap: wrap;\n gap: var(--spacing-12);\n}\n\n.tagsList {\n display: flex;\n align-items: center;\n gap: var(--spacing-12);\n flex: 1 0 0;\n min-width: 0;\n}\n\n/* ── Copy-link button ─────────────────────────────────────── */\n\n.copyLink {\n display: inline-flex;\n align-items: center;\n justify-content: center;\n height: var(--spacing-32);\n min-height: var(--spacing-32);\n max-height: var(--spacing-32);\n padding: 0 var(--spacing-12);\n border-radius: var(--radius-full);\n border: 1px solid var(--tag-outline-border);\n background: transparent;\n color: var(--tag-text-color);\n cursor: pointer;\n flex-shrink: 0;\n transition: background-color 100ms ease;\n}\n\n.copyLink:hover {\n background-color: var(--tag-fill-background);\n}\n\n/* ── Title ────────────────────────────────────────────────── */\n\n.title {\n font-family: var(--typography-h5-font-family);\n font-size: var(--typography-h5-font-size);\n font-weight: var(--typography-h5-font-weight);\n line-height: var(--typography-h5-line-height);\n color: var(--color-slate-1200);\n overflow: hidden;\n text-overflow: ellipsis;\n margin: 0;\n}\n\n/* ── Summary ──────────────────────────────────────────────── */\n\n.summary {\n font-family: var(--typography-body-md-font-family);\n font-size: var(--typography-body-md-font-size);\n font-weight: var(--typography-body-md-font-weight);\n line-height: var(--typography-body-md-line-height);\n color: var(--color-slate-1200);\n overflow: hidden;\n text-overflow: ellipsis;\n margin: 0;\n}\n","/* ── Container ────────────────────────────────────────────── */\n\n.pagination {\n display: flex;\n align-items: center;\n gap: var(--spacing-8);\n}\n\n/* ── Page button ──────────────────────────────────────────── */\n\n.pageButton {\n display: flex;\n align-items: center;\n justify-content: center;\n width: var(--spacing-32);\n height: var(--spacing-32);\n flex-shrink: 0;\n padding: 0;\n border: none;\n border-radius: var(--pagination-page-radius);\n background: transparent;\n color: var(--pagination-page-text);\n font-family: var(--font-family-base);\n font-size: var(--font-size-sm);\n font-weight: var(--font-weight-regular);\n line-height: 1.375rem;\n text-align: center;\n white-space: nowrap;\n cursor: pointer;\n outline: none;\n box-sizing: border-box;\n}\n\n.pageButton:focus-visible {\n outline: 2px solid var(--color-blue-600);\n outline-offset: 2px;\n}\n\n/* ── Active / selected page button ───────────────────────── */\n\n.pageButtonSelected {\n background: var(--pagination-page-selected-bg);\n color: var(--pagination-page-selected-text);\n border-radius: var(--pagination-page-radius);\n cursor: default;\n}\n\n/* ── Ellipsis ─────────────────────────────────────────────── */\n\n.ellipsis {\n display: flex;\n align-items: center;\n justify-content: center;\n width: var(--spacing-32);\n height: var(--spacing-32);\n flex-shrink: 0;\n color: var(--pagination-page-ellipsis-text);\n font-family: var(--font-family-base);\n font-size: var(--font-size-sm);\n font-weight: var(--font-weight-regular);\n line-height: 1.375rem;\n user-select: none;\n}\n\n/* ── Nav button (prev / next) ─────────────────────────────── */\n\n.navButton {\n display: flex;\n align-items: center;\n justify-content: center;\n width: var(--spacing-32);\n height: var(--spacing-32);\n flex-shrink: 0;\n padding: 0;\n border: none;\n border-radius: var(--radius-sm);\n background: transparent;\n color: var(--pagination-nav-icon);\n cursor: pointer;\n outline: none;\n box-sizing: border-box;\n}\n\n.navButton:focus-visible {\n outline: 2px solid var(--color-blue-600);\n outline-offset: 2px;\n border-radius: var(--radius-md);\n}\n\n/* ── Nav button disabled ──────────────────────────────────── */\n\n.navButtonDisabled {\n color: var(--pagination-nav-icon-disabled);\n cursor: not-allowed;\n}\n\n/* ── Nav icon slot ────────────────────────────────────────── */\n\n.navIcon {\n display: flex;\n align-items: center;\n justify-content: center;\n width: var(--spacing-16);\n height: var(--spacing-16);\n flex-shrink: 0;\n}\n"],"mappings":"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","names":[]}
@@ -0,0 +1,231 @@
1
+ import * as react_jsx_runtime from 'react/jsx-runtime';
2
+ import * as react from 'react';
3
+ import { ButtonHTMLAttributes, ReactNode, AnchorHTMLAttributes, HTMLAttributes, InputHTMLAttributes, MouseEvent } from 'react';
4
+
5
+ type ButtonColorScheme = "coral" | "black" | "white";
6
+ type ButtonVariant = "primary" | "secondary";
7
+ type ButtonIconPosition = "none" | "icon-left" | "icon-right" | "icon-only";
8
+ interface ButtonProps extends ButtonHTMLAttributes<HTMLButtonElement> {
9
+ /** Color scheme — coral (brand), black, or white (for dark backgrounds) */
10
+ colorScheme?: ButtonColorScheme;
11
+ /** Visual style variant */
12
+ variant?: ButtonVariant;
13
+ /** Icon placement relative to the label */
14
+ iconPosition?: ButtonIconPosition;
15
+ /** Icon node to render */
16
+ icon?: ReactNode;
17
+ /** Button label text */
18
+ label?: string;
19
+ /** Stretch the button to fill its container */
20
+ fullWidth?: boolean;
21
+ /** Render a visible focus-ring overlay (keyboard / accessibility demos) */
22
+ showFocusRing?: boolean;
23
+ }
24
+
25
+ declare const Button: ({ colorScheme, variant, iconPosition, icon, label, fullWidth, showFocusRing, children, disabled, className, ...props }: ButtonProps) => react_jsx_runtime.JSX.Element;
26
+
27
+ type LinkColorScheme = "coral" | "black" | "white";
28
+ interface LinkProps extends AnchorHTMLAttributes<HTMLAnchorElement> {
29
+ /** Color scheme — coral (brand), black, or white (for dark backgrounds) */
30
+ colorScheme?: LinkColorScheme;
31
+ /** Link label text */
32
+ label?: string;
33
+ /** Optional left icon. When provided, the chevron is hidden and the label underlines on hover/active. */
34
+ icon?: ReactNode;
35
+ /** Show trailing chevron arrow. Active only when no icon is provided. */
36
+ showChevron?: boolean;
37
+ /** Disabled state — prevents interaction and reduces opacity */
38
+ disabled?: boolean;
39
+ }
40
+
41
+ declare const Link: ({ colorScheme, label, icon, showChevron, disabled, children, className, onClick, ...props }: LinkProps) => react_jsx_runtime.JSX.Element;
42
+
43
+ type ChipSize = "sm" | "md" | "lg";
44
+ interface ChipProps extends ButtonHTMLAttributes<HTMLButtonElement> {
45
+ size?: ChipSize;
46
+ label?: string;
47
+ icon?: ReactNode;
48
+ /** Optional bold secondary label displayed after the main label */
49
+ tag?: string;
50
+ selected?: boolean;
51
+ showFocusRing?: boolean;
52
+ }
53
+
54
+ declare const Chip: ({ size, label, icon, tag, selected, showFocusRing, disabled, children, className, ...props }: ChipProps) => react_jsx_runtime.JSX.Element;
55
+
56
+ type TagSize = "xs" | "sm" | "md" | "lg";
57
+ type TagVariant = "fill" | "outline";
58
+ type TagFontWeight = "regular" | "bold";
59
+ interface TagProps extends HTMLAttributes<HTMLSpanElement> {
60
+ size?: TagSize;
61
+ variant?: TagVariant;
62
+ fontWeight?: TagFontWeight;
63
+ label?: string;
64
+ icon?: ReactNode;
65
+ }
66
+
67
+ declare const Tag: ({ size, variant, fontWeight, label, icon, children, className, ...props }: TagProps) => react_jsx_runtime.JSX.Element;
68
+
69
+ interface AccordionProps {
70
+ /** Accordion header title */
71
+ title: string;
72
+ /** Body content revealed when expanded */
73
+ children?: ReactNode;
74
+ /** Controlled open state */
75
+ open?: boolean;
76
+ /** Initial open state for uncontrolled usage */
77
+ defaultOpen?: boolean;
78
+ /** Called when the accordion is toggled */
79
+ onToggle?: (open: boolean) => void;
80
+ /** Show the top divider line (default: true) */
81
+ showTopDivider?: boolean;
82
+ /** Show the bottom divider line (default: true) */
83
+ showBottomDivider?: boolean;
84
+ /** Render a visible focus-ring overlay (Storybook demo) */
85
+ showFocusRing?: boolean;
86
+ className?: string;
87
+ }
88
+
89
+ declare const Accordion: ({ title, children, open, defaultOpen, onToggle, showTopDivider, showBottomDivider, showFocusRing, className, }: AccordionProps) => react_jsx_runtime.JSX.Element;
90
+
91
+ type TextFieldVariant = "outline" | "fill";
92
+ type TextFieldStatus = "neutral" | "success" | "fail";
93
+ interface TextFieldProps extends Omit<InputHTMLAttributes<HTMLInputElement>, "className"> {
94
+ variant?: TextFieldVariant;
95
+ status?: TextFieldStatus;
96
+ /** Applied to the outermost field container */
97
+ className?: string;
98
+ }
99
+
100
+ declare const TextField: react.ForwardRefExoticComponent<TextFieldProps & react.RefAttributes<HTMLInputElement>>;
101
+
102
+ type SearchFieldStatus = "neutral" | "success" | "fail";
103
+ interface SearchFieldProps extends Omit<InputHTMLAttributes<HTMLInputElement>, "className"> {
104
+ /** Visual validation state. Defaults to "neutral". */
105
+ status?: SearchFieldStatus;
106
+ /** Called when the clear (×) button is clicked.
107
+ * In controlled mode, update your value state here.
108
+ * In uncontrolled mode the input is cleared automatically. */
109
+ onClear?: () => void;
110
+ className?: string;
111
+ }
112
+
113
+ declare const SearchField: react.ForwardRefExoticComponent<SearchFieldProps & react.RefAttributes<HTMLInputElement>>;
114
+
115
+ type BreadcrumbSize = "sm" | "md";
116
+ interface BreadcrumbItem {
117
+ label: string;
118
+ href?: string;
119
+ onClick?: (event: MouseEvent<HTMLAnchorElement>) => void;
120
+ }
121
+ interface BreadcrumbProps extends HTMLAttributes<HTMLElement> {
122
+ items: BreadcrumbItem[];
123
+ size?: BreadcrumbSize;
124
+ /** Collapse middle items into "…" on mobile when items > 3. Defaults to true. */
125
+ collapsible?: boolean;
126
+ }
127
+
128
+ declare function Breadcrumb({ items, size, collapsible, className, ...navProps }: BreadcrumbProps): react_jsx_runtime.JSX.Element;
129
+
130
+ interface ChipDropdownOption {
131
+ value: string;
132
+ label: string;
133
+ }
134
+ interface ChipDropdownProps extends Omit<ButtonHTMLAttributes<HTMLButtonElement>, "onChange" | "value"> {
135
+ /** Trigger chip size — sm (24px) or md (32px) */
136
+ size?: Extract<ChipSize, "sm" | "md">;
137
+ /** Placeholder label shown when no value is selected */
138
+ label: string;
139
+ /** Optional bold secondary label shown after main label */
140
+ tag?: string;
141
+ /** Optional leading icon inside the chip trigger */
142
+ icon?: ReactNode;
143
+ /** Selectable options rendered in the dropdown list */
144
+ options: ChipDropdownOption[];
145
+ /** Currently selected option value */
146
+ value?: string | null;
147
+ /** Called when the user selects an option */
148
+ onChange?: (value: string) => void;
149
+ }
150
+
151
+ declare const ChipDropdown: ({ size, label, tag, icon, options, value, onChange, disabled, className, ...props }: ChipDropdownProps) => react_jsx_runtime.JSX.Element;
152
+
153
+ interface CardTag {
154
+ label: string;
155
+ icon?: ReactNode;
156
+ }
157
+ type CardPrimaryStyle = "light" | "dark" | "brand" | "image";
158
+ interface CardPrimaryProps extends HTMLAttributes<HTMLDivElement> {
159
+ variant: "primary";
160
+ /** Visual variant — controls background, text and link colours */
161
+ colorScheme?: CardPrimaryStyle;
162
+ /** Card headline */
163
+ title: string;
164
+ /** Card body text */
165
+ description: string;
166
+ /** Card image source */
167
+ image?: string;
168
+ imageAlt?: string;
169
+ /** Show the "Learn more" inline link (default: true) */
170
+ showLink?: boolean;
171
+ /** Link label text (default: "Learn more") */
172
+ linkText?: string;
173
+ onLinkClick?: () => void;
174
+ }
175
+ type CardThumbnailType = "video" | "article";
176
+ interface CardThumbnailProps extends HTMLAttributes<HTMLDivElement> {
177
+ variant: "thumbnail";
178
+ /** Thumbnail variant — "video" shows a play button, "article" shows an optional avatar */
179
+ type?: CardThumbnailType;
180
+ /** Thumbnail image source */
181
+ thumbnail: string;
182
+ thumbnailAlt?: string;
183
+ /** Card headline */
184
+ title: string;
185
+ /** Card body text */
186
+ summary: string;
187
+ /** Label tags rendered in the meta row */
188
+ tags?: CardTag[];
189
+ /** Hide the tag pills */
190
+ hideTags?: boolean;
191
+ /** Show the copy-link pill button */
192
+ showCopyLink?: boolean;
193
+ onCopyLink?: () => void;
194
+ /** Author avatar (article type only) */
195
+ avatar?: string;
196
+ avatarAlt?: string;
197
+ }
198
+ interface CardSecondaryProps extends HTMLAttributes<HTMLDivElement> {
199
+ variant: "secondary";
200
+ /** Card headline */
201
+ title: string;
202
+ /** Card body text */
203
+ description: string;
204
+ /** Icon rendered above the title */
205
+ icon?: ReactNode;
206
+ /** Show or hide the icon (default: true) */
207
+ showIcon?: boolean;
208
+ /** Show the "Learn more" inline link (default: true) */
209
+ showLink?: boolean;
210
+ /** Link label text (default: "Learn more") */
211
+ linkText?: string;
212
+ onLinkClick?: () => void;
213
+ }
214
+ type CardProps = CardPrimaryProps | CardThumbnailProps | CardSecondaryProps;
215
+
216
+ declare const Card: (props: CardProps) => react_jsx_runtime.JSX.Element;
217
+
218
+ interface PaginationProps {
219
+ /** The currently active page (1-based) */
220
+ currentPage: number;
221
+ /** Total number of pages */
222
+ totalPages: number;
223
+ /** Callback fired when the user navigates to a different page */
224
+ onPageChange: (page: number) => void;
225
+ /** Optional extra class name for the root element */
226
+ className?: string;
227
+ }
228
+
229
+ declare const Pagination: ({ currentPage, totalPages, onPageChange, className, }: PaginationProps) => react_jsx_runtime.JSX.Element;
230
+
231
+ export { Accordion, type AccordionProps, Breadcrumb, type BreadcrumbItem, type BreadcrumbProps, type BreadcrumbSize, Button, type ButtonColorScheme, type ButtonIconPosition, type ButtonProps, type ButtonVariant, Card, type CardPrimaryStyle, type CardProps, type CardTag, type CardThumbnailType, Chip, ChipDropdown, type ChipDropdownOption, type ChipDropdownProps, type ChipProps, type ChipSize, Link, type LinkColorScheme, type LinkProps, Pagination, type PaginationProps, SearchField, type SearchFieldProps, type SearchFieldStatus, Tag, type TagFontWeight, type TagProps, type TagSize, type TagVariant, TextField, type TextFieldProps, type TextFieldStatus, type TextFieldVariant };
@@ -0,0 +1,231 @@
1
+ import * as react_jsx_runtime from 'react/jsx-runtime';
2
+ import * as react from 'react';
3
+ import { ButtonHTMLAttributes, ReactNode, AnchorHTMLAttributes, HTMLAttributes, InputHTMLAttributes, MouseEvent } from 'react';
4
+
5
+ type ButtonColorScheme = "coral" | "black" | "white";
6
+ type ButtonVariant = "primary" | "secondary";
7
+ type ButtonIconPosition = "none" | "icon-left" | "icon-right" | "icon-only";
8
+ interface ButtonProps extends ButtonHTMLAttributes<HTMLButtonElement> {
9
+ /** Color scheme — coral (brand), black, or white (for dark backgrounds) */
10
+ colorScheme?: ButtonColorScheme;
11
+ /** Visual style variant */
12
+ variant?: ButtonVariant;
13
+ /** Icon placement relative to the label */
14
+ iconPosition?: ButtonIconPosition;
15
+ /** Icon node to render */
16
+ icon?: ReactNode;
17
+ /** Button label text */
18
+ label?: string;
19
+ /** Stretch the button to fill its container */
20
+ fullWidth?: boolean;
21
+ /** Render a visible focus-ring overlay (keyboard / accessibility demos) */
22
+ showFocusRing?: boolean;
23
+ }
24
+
25
+ declare const Button: ({ colorScheme, variant, iconPosition, icon, label, fullWidth, showFocusRing, children, disabled, className, ...props }: ButtonProps) => react_jsx_runtime.JSX.Element;
26
+
27
+ type LinkColorScheme = "coral" | "black" | "white";
28
+ interface LinkProps extends AnchorHTMLAttributes<HTMLAnchorElement> {
29
+ /** Color scheme — coral (brand), black, or white (for dark backgrounds) */
30
+ colorScheme?: LinkColorScheme;
31
+ /** Link label text */
32
+ label?: string;
33
+ /** Optional left icon. When provided, the chevron is hidden and the label underlines on hover/active. */
34
+ icon?: ReactNode;
35
+ /** Show trailing chevron arrow. Active only when no icon is provided. */
36
+ showChevron?: boolean;
37
+ /** Disabled state — prevents interaction and reduces opacity */
38
+ disabled?: boolean;
39
+ }
40
+
41
+ declare const Link: ({ colorScheme, label, icon, showChevron, disabled, children, className, onClick, ...props }: LinkProps) => react_jsx_runtime.JSX.Element;
42
+
43
+ type ChipSize = "sm" | "md" | "lg";
44
+ interface ChipProps extends ButtonHTMLAttributes<HTMLButtonElement> {
45
+ size?: ChipSize;
46
+ label?: string;
47
+ icon?: ReactNode;
48
+ /** Optional bold secondary label displayed after the main label */
49
+ tag?: string;
50
+ selected?: boolean;
51
+ showFocusRing?: boolean;
52
+ }
53
+
54
+ declare const Chip: ({ size, label, icon, tag, selected, showFocusRing, disabled, children, className, ...props }: ChipProps) => react_jsx_runtime.JSX.Element;
55
+
56
+ type TagSize = "xs" | "sm" | "md" | "lg";
57
+ type TagVariant = "fill" | "outline";
58
+ type TagFontWeight = "regular" | "bold";
59
+ interface TagProps extends HTMLAttributes<HTMLSpanElement> {
60
+ size?: TagSize;
61
+ variant?: TagVariant;
62
+ fontWeight?: TagFontWeight;
63
+ label?: string;
64
+ icon?: ReactNode;
65
+ }
66
+
67
+ declare const Tag: ({ size, variant, fontWeight, label, icon, children, className, ...props }: TagProps) => react_jsx_runtime.JSX.Element;
68
+
69
+ interface AccordionProps {
70
+ /** Accordion header title */
71
+ title: string;
72
+ /** Body content revealed when expanded */
73
+ children?: ReactNode;
74
+ /** Controlled open state */
75
+ open?: boolean;
76
+ /** Initial open state for uncontrolled usage */
77
+ defaultOpen?: boolean;
78
+ /** Called when the accordion is toggled */
79
+ onToggle?: (open: boolean) => void;
80
+ /** Show the top divider line (default: true) */
81
+ showTopDivider?: boolean;
82
+ /** Show the bottom divider line (default: true) */
83
+ showBottomDivider?: boolean;
84
+ /** Render a visible focus-ring overlay (Storybook demo) */
85
+ showFocusRing?: boolean;
86
+ className?: string;
87
+ }
88
+
89
+ declare const Accordion: ({ title, children, open, defaultOpen, onToggle, showTopDivider, showBottomDivider, showFocusRing, className, }: AccordionProps) => react_jsx_runtime.JSX.Element;
90
+
91
+ type TextFieldVariant = "outline" | "fill";
92
+ type TextFieldStatus = "neutral" | "success" | "fail";
93
+ interface TextFieldProps extends Omit<InputHTMLAttributes<HTMLInputElement>, "className"> {
94
+ variant?: TextFieldVariant;
95
+ status?: TextFieldStatus;
96
+ /** Applied to the outermost field container */
97
+ className?: string;
98
+ }
99
+
100
+ declare const TextField: react.ForwardRefExoticComponent<TextFieldProps & react.RefAttributes<HTMLInputElement>>;
101
+
102
+ type SearchFieldStatus = "neutral" | "success" | "fail";
103
+ interface SearchFieldProps extends Omit<InputHTMLAttributes<HTMLInputElement>, "className"> {
104
+ /** Visual validation state. Defaults to "neutral". */
105
+ status?: SearchFieldStatus;
106
+ /** Called when the clear (×) button is clicked.
107
+ * In controlled mode, update your value state here.
108
+ * In uncontrolled mode the input is cleared automatically. */
109
+ onClear?: () => void;
110
+ className?: string;
111
+ }
112
+
113
+ declare const SearchField: react.ForwardRefExoticComponent<SearchFieldProps & react.RefAttributes<HTMLInputElement>>;
114
+
115
+ type BreadcrumbSize = "sm" | "md";
116
+ interface BreadcrumbItem {
117
+ label: string;
118
+ href?: string;
119
+ onClick?: (event: MouseEvent<HTMLAnchorElement>) => void;
120
+ }
121
+ interface BreadcrumbProps extends HTMLAttributes<HTMLElement> {
122
+ items: BreadcrumbItem[];
123
+ size?: BreadcrumbSize;
124
+ /** Collapse middle items into "…" on mobile when items > 3. Defaults to true. */
125
+ collapsible?: boolean;
126
+ }
127
+
128
+ declare function Breadcrumb({ items, size, collapsible, className, ...navProps }: BreadcrumbProps): react_jsx_runtime.JSX.Element;
129
+
130
+ interface ChipDropdownOption {
131
+ value: string;
132
+ label: string;
133
+ }
134
+ interface ChipDropdownProps extends Omit<ButtonHTMLAttributes<HTMLButtonElement>, "onChange" | "value"> {
135
+ /** Trigger chip size — sm (24px) or md (32px) */
136
+ size?: Extract<ChipSize, "sm" | "md">;
137
+ /** Placeholder label shown when no value is selected */
138
+ label: string;
139
+ /** Optional bold secondary label shown after main label */
140
+ tag?: string;
141
+ /** Optional leading icon inside the chip trigger */
142
+ icon?: ReactNode;
143
+ /** Selectable options rendered in the dropdown list */
144
+ options: ChipDropdownOption[];
145
+ /** Currently selected option value */
146
+ value?: string | null;
147
+ /** Called when the user selects an option */
148
+ onChange?: (value: string) => void;
149
+ }
150
+
151
+ declare const ChipDropdown: ({ size, label, tag, icon, options, value, onChange, disabled, className, ...props }: ChipDropdownProps) => react_jsx_runtime.JSX.Element;
152
+
153
+ interface CardTag {
154
+ label: string;
155
+ icon?: ReactNode;
156
+ }
157
+ type CardPrimaryStyle = "light" | "dark" | "brand" | "image";
158
+ interface CardPrimaryProps extends HTMLAttributes<HTMLDivElement> {
159
+ variant: "primary";
160
+ /** Visual variant — controls background, text and link colours */
161
+ colorScheme?: CardPrimaryStyle;
162
+ /** Card headline */
163
+ title: string;
164
+ /** Card body text */
165
+ description: string;
166
+ /** Card image source */
167
+ image?: string;
168
+ imageAlt?: string;
169
+ /** Show the "Learn more" inline link (default: true) */
170
+ showLink?: boolean;
171
+ /** Link label text (default: "Learn more") */
172
+ linkText?: string;
173
+ onLinkClick?: () => void;
174
+ }
175
+ type CardThumbnailType = "video" | "article";
176
+ interface CardThumbnailProps extends HTMLAttributes<HTMLDivElement> {
177
+ variant: "thumbnail";
178
+ /** Thumbnail variant — "video" shows a play button, "article" shows an optional avatar */
179
+ type?: CardThumbnailType;
180
+ /** Thumbnail image source */
181
+ thumbnail: string;
182
+ thumbnailAlt?: string;
183
+ /** Card headline */
184
+ title: string;
185
+ /** Card body text */
186
+ summary: string;
187
+ /** Label tags rendered in the meta row */
188
+ tags?: CardTag[];
189
+ /** Hide the tag pills */
190
+ hideTags?: boolean;
191
+ /** Show the copy-link pill button */
192
+ showCopyLink?: boolean;
193
+ onCopyLink?: () => void;
194
+ /** Author avatar (article type only) */
195
+ avatar?: string;
196
+ avatarAlt?: string;
197
+ }
198
+ interface CardSecondaryProps extends HTMLAttributes<HTMLDivElement> {
199
+ variant: "secondary";
200
+ /** Card headline */
201
+ title: string;
202
+ /** Card body text */
203
+ description: string;
204
+ /** Icon rendered above the title */
205
+ icon?: ReactNode;
206
+ /** Show or hide the icon (default: true) */
207
+ showIcon?: boolean;
208
+ /** Show the "Learn more" inline link (default: true) */
209
+ showLink?: boolean;
210
+ /** Link label text (default: "Learn more") */
211
+ linkText?: string;
212
+ onLinkClick?: () => void;
213
+ }
214
+ type CardProps = CardPrimaryProps | CardThumbnailProps | CardSecondaryProps;
215
+
216
+ declare const Card: (props: CardProps) => react_jsx_runtime.JSX.Element;
217
+
218
+ interface PaginationProps {
219
+ /** The currently active page (1-based) */
220
+ currentPage: number;
221
+ /** Total number of pages */
222
+ totalPages: number;
223
+ /** Callback fired when the user navigates to a different page */
224
+ onPageChange: (page: number) => void;
225
+ /** Optional extra class name for the root element */
226
+ className?: string;
227
+ }
228
+
229
+ declare const Pagination: ({ currentPage, totalPages, onPageChange, className, }: PaginationProps) => react_jsx_runtime.JSX.Element;
230
+
231
+ export { Accordion, type AccordionProps, Breadcrumb, type BreadcrumbItem, type BreadcrumbProps, type BreadcrumbSize, Button, type ButtonColorScheme, type ButtonIconPosition, type ButtonProps, type ButtonVariant, Card, type CardPrimaryStyle, type CardProps, type CardTag, type CardThumbnailType, Chip, ChipDropdown, type ChipDropdownOption, type ChipDropdownProps, type ChipProps, type ChipSize, Link, type LinkColorScheme, type LinkProps, Pagination, type PaginationProps, SearchField, type SearchFieldProps, type SearchFieldStatus, Tag, type TagFontWeight, type TagProps, type TagSize, type TagVariant, TextField, type TextFieldProps, type TextFieldStatus, type TextFieldVariant };