@vuecs/theme-bootstrap 4.0.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.mjs","names":[],"sources":["../src/index.ts"],"sourcesContent":["import type { Theme } from '@vuecs/core';\n\nexport default function bootstrapTheme(): Theme {\n return {\n elements: {\n formGroup: {\n classes: {\n root: 'form-group',\n label: 'form-label',\n validationError: 'form-group-error',\n validationWarning: 'form-group-warning',\n },\n },\n formInput: {\n classes: {\n root: 'form-control',\n group: 'input-group',\n groupAppend: 'input-group-text',\n groupPrepend: 'input-group-text',\n },\n // Bootstrap's `.form-control-{sm,lg}` modifies padding +\n // font-size on top of `.form-control`. There's no `-md`\n // class — md IS the default.\n variants: {\n size: {\n sm: { root: 'form-control-sm', group: 'input-group-sm' },\n md: { root: '' },\n lg: { root: 'form-control-lg', group: 'input-group-lg' },\n },\n },\n defaultVariants: { size: 'md' },\n },\n // Reka renders the checkbox / radio / switch as `<button role=\"…\">`,\n // not native `<input type=\"…\">`. Bootstrap's `.form-check-input`\n // selector targets inputs only, so we don't apply it. Instead we\n // layer Bootstrap shadow + bg utilities on top of the `vc-form-*`\n // structural defaults — but deliberately skip border utilities:\n // bootstrap's `.border-*` utilities carry `!important` and would\n // beat the structural CSS's `data-state=\"checked\"` border-color\n // rule, making checked / unchecked visually identical. Letting\n // structural CSS own border-color preserves the checked-state\n // visual diff (neutral border → primary border on check).\n formCheckbox: {\n classes: {\n root: 'bg-white shadow-sm',\n indicator: 'text-white',\n label: 'form-check-label',\n group: '',\n },\n // Bootstrap doesn't ship sm/lg form-check sizes, so fall\n // back to the structural CSS `vc-form-checkbox-{sm,lg}`\n // helpers (defined in @vuecs/forms styles).\n variants: {\n size: {\n sm: { root: 'vc-form-checkbox-sm', label: 'small' },\n md: { root: '' },\n lg: { root: 'vc-form-checkbox-lg', label: 'fs-5' },\n },\n },\n defaultVariants: { size: 'md' },\n },\n formCheckboxGroup: { classes: { root: 'd-flex flex-column gap-2' } },\n formSwitch: {\n classes: {\n root: 'shadow-sm',\n thumb: 'bg-white shadow-sm',\n label: 'form-check-label',\n group: '',\n },\n variants: {\n size: {\n sm: { root: 'vc-form-switch-sm', label: 'small' },\n md: { root: '' },\n lg: { root: 'vc-form-switch-lg', label: 'fs-5' },\n },\n },\n defaultVariants: { size: 'md' },\n },\n formSelect: {\n classes: {\n // Bootstrap's `.form-select` ships the chevron via background-image —\n // it works for native <select> but not for our compound trigger.\n // We use `.form-control` for the input chrome plus `d-flex` to lay\n // out the value and our own chevron <span> (rendered by SelectIcon).\n trigger: 'form-control d-flex align-items-center justify-content-between gap-2 text-start',\n value: 'text-truncate',\n icon: 'text-muted',\n content: 'dropdown-menu show vc-overlay-anim',\n viewport: '',\n item: 'dropdown-item ps-4 position-relative',\n itemIndicator: 'position-absolute start-0 ms-2',\n group: '',\n groupLabel: 'dropdown-header',\n separator: 'dropdown-divider',\n },\n variants: {\n size: {\n sm: { trigger: 'form-control-sm' },\n md: { trigger: '' },\n lg: { trigger: 'form-control-lg' },\n },\n },\n defaultVariants: { size: 'md' },\n },\n formSelectSearch: {\n classes: {\n root: 'position-relative',\n input: 'form-control',\n // .show flips Bootstrap's dropdown-menu visibility. The component\n // toggles its own v-show, so .show is redundant for visibility,\n // but ensures the menu picks up `display: block` if a consumer\n // upgrades to a custom toggle that relies on the bootstrap class.\n content: 'dropdown-menu show w-100 mt-1 overflow-auto',\n item: 'dropdown-item d-flex flex-column gap-1',\n // `itemActive` default is already `'active'` — Bootstrap's\n // dropdown active class — so we inherit it.\n itemCurrent: 'bg-secondary-subtle',\n itemDescription: 'small text-muted',\n selected: 'd-flex flex-wrap gap-1 mt-2',\n selectedItem: 'badge bg-secondary-subtle text-body border d-inline-flex align-items-center gap-1',\n selectedItemRemove: 'fw-bold',\n },\n },\n formRadio: {\n classes: {\n root: 'bg-white shadow-sm',\n indicator: 'bg-primary',\n label: 'form-check-label',\n group: '',\n },\n variants: {\n size: {\n sm: { root: 'vc-form-radio-sm', label: 'small' },\n md: { root: '' },\n lg: { root: 'vc-form-radio-lg', label: 'fs-5' },\n },\n },\n defaultVariants: { size: 'md' },\n },\n formRadioGroup: { classes: { root: 'd-flex flex-column gap-2' } },\n // PinInputInput DOES render a real <input>, so `.form-control`\n // would technically apply — but it sets `width: 100%` and\n // collapses every cell into the container's full width. Use\n // bootstrap utilities that mirror form-control's look (border\n // + rounded + shadow + bg) without the width hint; structural\n // CSS keeps the per-cell 2.5rem sizing.\n formPin: {\n classes: {\n root: 'd-inline-flex align-items-center gap-2',\n input: 'border border-secondary-subtle bg-white shadow-sm text-center fw-semibold',\n },\n },\n // Reka Slider renders <span> elements, not <input type=\"range\">.\n // Bootstrap's `.form-range` selector is `input[type=range]` so\n // it never applies — drop it. Layer bootstrap utilities for the\n // visual: muted track, primary range fill, white thumb with a\n // bootstrap-blue ring.\n formSlider: {\n classes: {\n root: '',\n track: 'bg-secondary-subtle rounded-pill',\n range: 'bg-primary rounded-pill',\n thumb: 'rounded-circle bg-white border border-2 border-primary shadow-sm',\n },\n },\n formNumber: {\n classes: {\n root: 'input-group',\n input: 'form-control text-center',\n decrement: 'btn btn-outline-secondary',\n increment: 'btn btn-outline-secondary',\n },\n variants: {\n size: {\n sm: {\n root: 'input-group-sm', \n input: 'form-control-sm', \n decrement: 'btn-sm', \n increment: 'btn-sm', \n },\n md: { root: '' },\n lg: {\n root: 'input-group-lg', \n input: 'form-control-lg', \n decrement: 'btn-lg', \n increment: 'btn-lg', \n },\n },\n },\n defaultVariants: { size: 'md' },\n },\n formTags: {\n classes: {\n root: 'form-control d-flex flex-wrap align-items-center gap-2 p-2',\n item: 'badge rounded-pill text-bg-primary d-inline-flex align-items-center gap-1',\n itemText: '',\n // Plain styled button — `.btn-close` was wrong here: it\n // renders an × via background-image SVG, which combined\n // with the slot's literal \"×\" text produced a doubled\n // delete glyph in every chip.\n itemDelete: 'd-inline-flex align-items-center justify-content-center bg-transparent border-0 text-white p-0 ms-1 lh-1',\n input: 'form-control border-0 flex-grow-1 p-0 shadow-none',\n },\n variants: {\n size: {\n sm: { root: 'form-control-sm p-1', item: 'small' },\n md: { root: '' },\n lg: { root: 'form-control-lg p-3', item: 'fs-6' },\n },\n },\n defaultVariants: { size: 'md' },\n },\n button: {\n // `.btn` is `display: inline-block` by default — gives the\n // leading icon / spinner no gap from the label. Force\n // inline-flex so Bootstrap's `.gap-2` utility takes effect\n // (only affects layout when there are multiple children;\n // single-label buttons render identically).\n classes: { root: 'btn d-inline-flex align-items-center justify-content-center gap-2' },\n variants: {\n size: {\n sm: { root: 'btn-sm' },\n md: { root: '' },\n lg: { root: 'btn-lg' },\n },\n },\n // Map each (variant, color) pair onto a Bootstrap button\n // class. `outline` uses Bootstrap's own `btn-outline-*`\n // family; `soft` uses Bootstrap 5.3+'s `*-subtle` /\n // `*-emphasis` token pair (tint bg + dark colored text);\n // `ghost` strips the link underline so it reads as a\n // borderless button rather than a hyperlink.\n compoundVariants: [\n // solid\n { variants: { variant: 'solid', color: 'primary' }, class: { root: 'btn-primary' } },\n { variants: { variant: 'solid', color: 'neutral' }, class: { root: 'btn-secondary' } },\n { variants: { variant: 'solid', color: 'success' }, class: { root: 'btn-success' } },\n { variants: { variant: 'solid', color: 'warning' }, class: { root: 'btn-warning' } },\n { variants: { variant: 'solid', color: 'error' }, class: { root: 'btn-danger' } },\n { variants: { variant: 'solid', color: 'info' }, class: { root: 'btn-info' } },\n // outline\n { variants: { variant: 'outline', color: 'primary' }, class: { root: 'btn-outline-primary' } },\n { variants: { variant: 'outline', color: 'neutral' }, class: { root: 'btn-outline-secondary' } },\n { variants: { variant: 'outline', color: 'success' }, class: { root: 'btn-outline-success' } },\n { variants: { variant: 'outline', color: 'warning' }, class: { root: 'btn-outline-warning' } },\n { variants: { variant: 'outline', color: 'error' }, class: { root: 'btn-outline-danger' } },\n { variants: { variant: 'outline', color: 'info' }, class: { root: 'btn-outline-info' } },\n // soft — Bootstrap 5.3+'s subtle bg + emphasis text.\n // Both tokens are bridged onto design-system shades by\n // theme-bootstrap/assets/index.css.\n { variants: { variant: 'soft', color: 'primary' }, class: { root: 'bg-primary-subtle text-primary-emphasis border-0' } },\n { variants: { variant: 'soft', color: 'neutral' }, class: { root: 'bg-secondary-subtle text-secondary-emphasis border-0' } },\n { variants: { variant: 'soft', color: 'success' }, class: { root: 'bg-success-subtle text-success-emphasis border-0' } },\n { variants: { variant: 'soft', color: 'warning' }, class: { root: 'bg-warning-subtle text-warning-emphasis border-0' } },\n { variants: { variant: 'soft', color: 'error' }, class: { root: 'bg-danger-subtle text-danger-emphasis border-0' } },\n { variants: { variant: 'soft', color: 'info' }, class: { root: 'bg-info-subtle text-info-emphasis border-0' } },\n // ghost — borderless / no underline, colored text\n { variants: { variant: 'ghost', color: 'primary' }, class: { root: 'btn-link text-decoration-none' } },\n { variants: { variant: 'ghost', color: 'neutral' }, class: { root: 'btn-link text-decoration-none text-secondary' } },\n { variants: { variant: 'ghost', color: 'success' }, class: { root: 'btn-link text-decoration-none text-success' } },\n { variants: { variant: 'ghost', color: 'warning' }, class: { root: 'btn-link text-decoration-none text-warning' } },\n { variants: { variant: 'ghost', color: 'error' }, class: { root: 'btn-link text-decoration-none text-danger' } },\n { variants: { variant: 'ghost', color: 'info' }, class: { root: 'btn-link text-decoration-none text-info' } },\n // link — underlined hyperlink-style, color via text-*\n { variants: { variant: 'link', color: 'primary' }, class: { root: 'btn-link' } },\n { variants: { variant: 'link', color: 'neutral' }, class: { root: 'btn-link text-secondary' } },\n { variants: { variant: 'link', color: 'success' }, class: { root: 'btn-link text-success' } },\n { variants: { variant: 'link', color: 'warning' }, class: { root: 'btn-link text-warning' } },\n { variants: { variant: 'link', color: 'error' }, class: { root: 'btn-link text-danger' } },\n { variants: { variant: 'link', color: 'info' }, class: { root: 'btn-link text-info' } },\n ],\n defaultVariants: {\n variant: 'solid', \n color: 'primary', \n size: 'md', \n },\n },\n formTextarea: {\n classes: { root: 'form-control' },\n variants: {\n size: {\n sm: { root: 'form-control-sm' },\n md: { root: '' },\n lg: { root: 'form-control-lg' },\n },\n },\n defaultVariants: { size: 'md' },\n },\n list: {\n classes: {\n // `position-relative` anchors `<VCListLoading :overlay>`'s\n // absolute positioning to the list container.\n root: 'd-flex flex-column gap-1 position-relative',\n header: 'd-flex align-items-center',\n footer: 'd-flex align-items-center',\n },\n variants: {\n density: {\n compact: { root: 'gap-0' },\n normal: { root: '' },\n spacious: { root: 'gap-3' },\n },\n },\n defaultVariants: { density: 'normal' },\n },\n listBody: { classes: { root: 'list-unstyled m-0' } },\n listItem: {\n classes: {\n root: 'd-flex flex-row align-items-center gap-1',\n text: 'd-inline-flex flex-column flex-grow-1 text-truncate',\n actions: 'd-inline-flex align-items-center gap-1',\n },\n variants: {\n density: {\n compact: { root: 'py-0' },\n normal: { root: 'py-1' },\n spacious: { root: 'py-3' },\n },\n disabled: { true: { root: 'opacity-50 pe-none' } },\n active: { true: { root: 'bg-primary-subtle text-primary-emphasis' } },\n selected: { true: { root: 'bg-body-secondary' } },\n },\n defaultVariants: { density: 'normal' },\n },\n listLoading: {\n classes: { root: 'py-2 text-center text-muted small' },\n // Translucent veil (`bg-body bg-opacity-75`) so underlying\n // rows stay partly visible during refresh — matches the\n // tailwind theme's `bg-bg/75 backdrop-blur-sm`.\n variants: { overlay: { true: { root: 'position-absolute top-0 start-0 end-0 bottom-0 d-flex align-items-center justify-content-center bg-body bg-opacity-75' } } },\n },\n listEmpty: { classes: { root: 'alert alert-warning small p-2' } },\n navigation: {\n classes: {\n group: 'nav-items',\n link: 'nav-link',\n },\n variants: {\n size: {\n sm: { link: 'small py-1 px-2' },\n md: { link: '' },\n lg: { link: 'fs-6 py-3 px-4' },\n },\n },\n defaultVariants: { size: 'md' },\n },\n // Reka encodes orientation as `data-orientation`; Bootstrap has\n // `<hr>` styling for horizontal but no built-in vertical rule —\n // the structural CSS does both. We just remove the default\n // margins so consumers control spacing via parent flex gaps.\n separator: { classes: { root: 'm-0' } },\n tag: {\n classes: {\n // Use `text-bg-primary` so Bootstrap's contrast pair handles\n // light/dark text-on-bg automatically. `rounded-pill` matches\n // the chip aesthetic of Bootstrap badges.\n root: 'badge rounded-pill text-bg-primary d-inline-flex align-items-center gap-1',\n icon: 'd-inline-flex align-items-center',\n // Deliberately NOT `.btn`: `.btn` sets an absolute\n // `font-size: 1rem` which overrides the badge's\n // inherited `0.75em`, stretching the line-box and\n // making removable tags taller than non-removable\n // ones. Plain utilities + `.focus-ring` keep\n // keyboard-focus styling without leaking the .btn\n // sizing into the chip.\n remove: 'focus-ring p-0 d-inline-flex align-items-center justify-content-center bg-transparent border-0 text-white lh-1',\n },\n variants: {\n size: {\n sm: { root: 'small px-2 py-1' },\n md: { root: '' },\n lg: { root: 'fs-6 px-3 py-2' },\n },\n },\n defaultVariants: { size: 'md' },\n },\n tags: {\n classes: {\n root: 'd-flex flex-wrap align-items-center gap-2',\n item: '',\n },\n variants: {\n size: {\n sm: { root: 'gap-1' },\n md: { root: '' },\n lg: { root: 'gap-3' },\n },\n },\n defaultVariants: { size: 'md' },\n },\n avatar: {\n classes: {\n root: 'd-inline-flex align-items-center justify-content-center overflow-hidden rounded-circle bg-secondary-subtle text-secondary-emphasis',\n image: 'w-100 h-100 object-fit-cover',\n fallback: 'd-inline-flex align-items-center justify-content-center w-100 h-100 fw-medium small lh-1',\n },\n // Bootstrap doesn't ship h-8/h-10/h-14 utilities. `md` is\n // the no-op default — the structural `.vc-avatar` rule\n // already sets the medium size. `vc-avatar-{sm,lg}` are\n // shipped in @vuecs/elements/assets/avatar.css.\n variants: {\n size: {\n sm: { root: 'vc-avatar-sm' },\n md: { root: '' },\n lg: { root: 'vc-avatar-lg' },\n },\n },\n defaultVariants: { size: 'md' },\n },\n aspectRatio: { classes: { root: 'd-block w-100' } },\n // VCGravatar wraps VCAvatar — sizing comes from the structural\n // `vc-gravatar` class (5rem default, ships with @vuecs/gravatar).\n // Theme adds bootstrap aesthetics; override visual size via\n // per-instance `themeClass`.\n gravatar: { classes: { root: 'rounded-circle overflow-hidden d-inline-block' } },\n card: {\n // Bootstrap `.card` brings the border + radius + bg-body.\n // Theme bridge (`assets/index.css`) maps `--bs-card-*` onto\n // `--vc-color-*` so runtime palette switches propagate.\n classes: { root: 'card' },\n variants: {\n variant: {\n // Bootstrap's default `.card` is already the outline look.\n outline: { root: '' },\n // Soft = subtle muted bg; we drop the border for visual lift.\n soft: { root: 'bg-body-tertiary border-0' },\n // Elevated = drop a shadow on the default `.card`.\n elevated: { root: 'shadow' },\n },\n interactive: { true: { root: 'shadow-sm' } },\n },\n defaultVariants: { variant: 'outline' },\n },\n cardHeader: {\n classes: { root: 'card-header' },\n variants: {\n padding: {\n compact: { root: 'py-2 px-3' },\n normal: { root: '' },\n spacious: { root: 'py-3 px-4' },\n },\n },\n defaultVariants: { padding: 'normal' },\n },\n cardTitle: { classes: { root: 'card-title mb-0' } },\n cardDescription: { classes: { root: 'card-subtitle text-body-secondary mb-0' } },\n cardBody: {\n classes: { root: 'card-body' },\n variants: {\n padding: {\n compact: { root: 'p-2' },\n normal: { root: '' },\n spacious: { root: 'p-4' },\n },\n },\n defaultVariants: { padding: 'normal' },\n },\n cardFooter: {\n classes: { root: 'card-footer d-flex justify-content-end gap-2' },\n variants: {\n padding: {\n compact: { root: 'py-2 px-3' },\n normal: { root: '' },\n spacious: { root: 'py-3 px-4' },\n },\n },\n defaultVariants: { padding: 'normal' },\n },\n collapse: { classes: { root: '' } },\n collapseTrigger: {\n classes: {\n root: 'btn btn-link p-0 d-inline-flex align-items-center gap-2 text-decoration-none',\n chevron: 'small',\n },\n variants: {\n chevron: {\n auto: { chevron: 'd-inline-flex' },\n none: { chevron: 'd-none' },\n },\n },\n defaultVariants: { chevron: 'auto' },\n },\n collapseContent: { classes: { root: 'vc-collapse-anim' } },\n alert: {\n // Bootstrap's `.alert` ships padding + border-radius +\n // border-width baseline; per-variant color comes from\n // `.alert-<color>`. Outline variant has no native BS class\n // — bridge CSS adds `.vc-alert.vc-alert-outline.alert-<color>`\n // rules that flip background to transparent.\n classes: {\n root: 'alert d-flex align-items-start gap-3 mb-0 position-relative pe-5',\n icon: 'flex-shrink-0 d-inline-flex align-items-center justify-content-center',\n content: 'flex-grow-1 min-w-0 d-flex flex-column gap-1',\n closeIcon: 'btn-close position-absolute top-0 end-0 m-2',\n close: 'btn btn-sm',\n },\n variants: {\n // Size variants only adjust vertical padding + font-size.\n // Right-padding (reserved for the absolute corner-close\n // button) comes from the base `.pe-5` class; overriding\n // with `px-*` here would let text overlap the close icon\n // because BS `.px-*` utilities clobber both sides.\n size: {\n sm: { root: 'py-2 small' },\n md: { root: '' },\n lg: { root: 'py-3 fs-6' },\n },\n },\n compoundVariants: [\n // solid — BS `.alert-<color>` uses the subtle/tinted style\n // which matches our `soft` variant; for `solid` use the\n // `text-bg-<color>` contrast-aware utility.\n { variants: { variant: 'solid', color: 'primary' }, class: { root: 'text-bg-primary' } },\n { variants: { variant: 'solid', color: 'neutral' }, class: { root: 'text-bg-secondary' } },\n { variants: { variant: 'solid', color: 'success' }, class: { root: 'text-bg-success' } },\n { variants: { variant: 'solid', color: 'warning' }, class: { root: 'text-bg-warning' } },\n { variants: { variant: 'solid', color: 'error' }, class: { root: 'text-bg-danger' } },\n { variants: { variant: 'solid', color: 'info' }, class: { root: 'text-bg-info' } },\n // soft → BS's native `.alert-<color>`\n { variants: { variant: 'soft', color: 'primary' }, class: { root: 'alert-primary' } },\n { variants: { variant: 'soft', color: 'neutral' }, class: { root: 'alert-secondary' } },\n { variants: { variant: 'soft', color: 'success' }, class: { root: 'alert-success' } },\n { variants: { variant: 'soft', color: 'warning' }, class: { root: 'alert-warning' } },\n { variants: { variant: 'soft', color: 'error' }, class: { root: 'alert-danger' } },\n { variants: { variant: 'soft', color: 'info' }, class: { root: 'alert-info' } },\n // outline — bridge CSS picks these up\n { variants: { variant: 'outline', color: 'primary' }, class: { root: 'vc-alert-outline alert-primary' } },\n { variants: { variant: 'outline', color: 'neutral' }, class: { root: 'vc-alert-outline alert-secondary' } },\n { variants: { variant: 'outline', color: 'success' }, class: { root: 'vc-alert-outline alert-success' } },\n { variants: { variant: 'outline', color: 'warning' }, class: { root: 'vc-alert-outline alert-warning' } },\n { variants: { variant: 'outline', color: 'error' }, class: { root: 'vc-alert-outline alert-danger' } },\n { variants: { variant: 'outline', color: 'info' }, class: { root: 'vc-alert-outline alert-info' } },\n ],\n defaultVariants: {\n variant: 'soft', \n color: 'neutral', \n size: 'md', \n },\n },\n alertTitle: { classes: { root: 'fw-semibold mb-1' } },\n alertDescription: { classes: { root: 'mb-0' } },\n badge: {\n classes: { root: 'badge rounded-pill' },\n variants: {\n size: {\n sm: { root: 'small px-2 py-1' },\n md: { root: '' },\n lg: { root: 'fs-6 px-3 py-2' },\n },\n },\n // Map (variant, color) onto Bootstrap's `text-bg-*` (solid),\n // `*-subtle` + `*-emphasis` (soft), and `border *-emphasis`\n // (outline) families. Same structure as the button matrix\n // for visual family consistency.\n compoundVariants: [\n // solid — text-bg-* picks the contrast pair\n { variants: { variant: 'solid', color: 'primary' }, class: { root: 'text-bg-primary' } },\n { variants: { variant: 'solid', color: 'neutral' }, class: { root: 'text-bg-secondary' } },\n { variants: { variant: 'solid', color: 'success' }, class: { root: 'text-bg-success' } },\n { variants: { variant: 'solid', color: 'warning' }, class: { root: 'text-bg-warning' } },\n { variants: { variant: 'solid', color: 'error' }, class: { root: 'text-bg-danger' } },\n { variants: { variant: 'solid', color: 'info' }, class: { root: 'text-bg-info' } },\n // soft — *-subtle bg + *-emphasis text\n { variants: { variant: 'soft', color: 'primary' }, class: { root: 'bg-primary-subtle text-primary-emphasis' } },\n { variants: { variant: 'soft', color: 'neutral' }, class: { root: 'bg-secondary-subtle text-secondary-emphasis' } },\n { variants: { variant: 'soft', color: 'success' }, class: { root: 'bg-success-subtle text-success-emphasis' } },\n { variants: { variant: 'soft', color: 'warning' }, class: { root: 'bg-warning-subtle text-warning-emphasis' } },\n { variants: { variant: 'soft', color: 'error' }, class: { root: 'bg-danger-subtle text-danger-emphasis' } },\n { variants: { variant: 'soft', color: 'info' }, class: { root: 'bg-info-subtle text-info-emphasis' } },\n // outline — border + *-emphasis text on transparent\n { variants: { variant: 'outline', color: 'primary' }, class: { root: 'border border-primary text-primary-emphasis' } },\n { variants: { variant: 'outline', color: 'neutral' }, class: { root: 'border border-secondary text-secondary-emphasis' } },\n { variants: { variant: 'outline', color: 'success' }, class: { root: 'border border-success text-success-emphasis' } },\n { variants: { variant: 'outline', color: 'warning' }, class: { root: 'border border-warning text-warning-emphasis' } },\n { variants: { variant: 'outline', color: 'error' }, class: { root: 'border border-danger text-danger-emphasis' } },\n { variants: { variant: 'outline', color: 'info' }, class: { root: 'border border-info text-info-emphasis' } },\n ],\n defaultVariants: {\n variant: 'soft',\n color: 'neutral',\n size: 'md',\n },\n },\n // Bootstrap ships `.table` family natively. Compose those\n // utility classes plus the design-token bridge for\n // dark-mode + runtime palette propagation.\n table: {\n classes: {\n root: 'table align-middle mb-0',\n scrollContainer: 'table-responsive border rounded',\n },\n variants: {\n density: {\n compact: { root: 'table-sm' },\n normal: { root: '' },\n spacious: { root: '' },\n },\n striped: { true: { root: 'table-striped' } },\n bordered: { true: { root: 'table-bordered' } },\n hover: { true: { root: 'table-hover' } },\n stickyHeader: { true: { root: 'vc-table-sticky-header' } },\n },\n defaultVariants: { density: 'normal' },\n },\n tableHeader: { classes: { root: 'text-uppercase small text-body-secondary' } },\n tableBody: { classes: { root: '' } },\n tableFooter: { classes: { root: 'fw-medium' } },\n tableRow: {\n variants: {\n disabled: { true: { root: 'opacity-50 pe-none' } },\n selected: { true: { root: 'table-active' } },\n focused: { true: { root: 'vc-table-row-focused' } },\n rowVariant: {\n success: { root: 'table-success' },\n warning: { root: 'table-warning' },\n error: { root: 'table-danger' },\n info: { root: 'table-info' },\n neutral: { root: 'table-secondary' },\n primary: { root: 'table-primary' },\n },\n },\n },\n tableCell: {\n variants: {\n align: {\n left: { root: 'text-start' },\n center: { root: 'text-center' },\n right: { root: 'text-end' },\n },\n stickyColumn: { true: { root: 'vc-table-sticky-column' } },\n cellVariant: {\n success: { root: 'text-success' },\n warning: { root: 'text-warning' },\n error: { root: 'text-danger' },\n info: { root: 'text-info' },\n neutral: { root: 'text-body-secondary' },\n primary: { root: 'text-primary' },\n },\n },\n },\n tableHeadCell: {\n classes: { sortIcon: 'ms-1 small lh-1' },\n variants: {\n align: {\n left: { root: 'text-start' },\n center: { root: 'text-center' },\n right: { root: 'text-end' },\n },\n stickyColumn: { true: { root: 'vc-table-sticky-column' } },\n sorted: {\n asc: { root: 'vc-table-sort-asc' },\n desc: { root: 'vc-table-sort-desc' },\n none: { root: '' },\n },\n },\n },\n tableEmpty: {\n classes: { root: '' },\n variants: {\n filtered: {\n true: { root: 'text-center text-body-secondary fst-italic py-4' },\n false: { root: 'text-center text-body-secondary py-4' },\n },\n },\n },\n tableLoading: {\n classes: {\n root: 'text-center text-body-secondary py-4',\n overlay: 'bg-body bg-opacity-75 text-body-secondary',\n },\n },\n tableSortIndicators: {\n classes: {\n root: 'd-flex flex-wrap align-items-center gap-2 bg-body-tertiary border rounded px-3 py-2 small',\n label: 'fw-semibold text-body-secondary me-1',\n empty: 'fst-italic text-body-secondary',\n // The chip is now a non-interactive wrapper. We\n // restyle two real `<button>`s inside (toggle +\n // remove), each borderless to inherit the chip\n // pill look as one unit.\n chip: 'd-inline-flex align-items-center border rounded-pill bg-body',\n chipToggle: 'btn btn-sm d-inline-flex align-items-center gap-2 border-0 rounded-start-pill rounded-end-0',\n chipPosition: 'fw-bold text-body-secondary',\n chipLabel: '',\n chipArrow: 'fw-bold text-primary',\n chipRemove: 'btn btn-sm d-inline-flex align-items-center justify-content-center border-0 rounded-end-pill rounded-start-0 px-2 text-body-secondary',\n // addWrapper omitted — Bootstrap styles the\n // <select> directly via `.form-select`.\n add: 'form-select form-select-sm rounded-pill w-auto',\n clear: 'btn btn-sm btn-link text-body-secondary text-decoration-none ms-auto',\n },\n },\n pagination: {\n classes: {\n root: 'd-flex justify-content-center pagination',\n // Apply Bootstrap's `page-item` / `page-link` so Bootstrap\n // CSS picks up the joined-button styling (border, hover,\n // disabled state, focus ring). Active state uses\n // Bootstrap's own `.active.page-link` rules; we merge\n // `active` into linkActive below.\n item: 'page-item',\n // `d-inline-flex align-items-center gap-1` layers on top of\n // Bootstrap's `.page-link` so the icon + label pair (e.g.\n // <chevron> \"Previous\") sits on a single baseline with\n // breathing room between them. `.page-link` is `display: block`\n // by default, which would otherwise stack them.\n link: 'page-link d-inline-flex align-items-center gap-1',\n // `linkActive` default is already `'active'` — Bootstrap's\n // pagination active class — so we inherit it.\n // Wrapper composes `link + ellipsis` onto PaginationEllipsis\n // so it inherits the page-link box. Disable interactivity.\n ellipsis: 'pe-none text-muted',\n },\n variants: {\n // Bootstrap pagination is a single visual style. We\n // expose the same variant catalog as the Tailwind theme\n // for API parity; soft / ghost are minor tweaks rather\n // than a different visual treatment.\n variant: {\n outline: { link: '' },\n soft: { link: 'border-0' },\n ghost: { link: 'border-0 bg-transparent' },\n },\n size: {\n sm: { root: 'pagination-sm' },\n md: { root: '' },\n lg: { root: 'pagination-lg' },\n },\n },\n defaultVariants: { variant: 'outline', size: 'md' },\n },\n // Reka primitives drive open/close via `data-state=\"open|closed\"`,\n // not Bootstrap's `.show` class. The mappings below give consumers\n // Bootstrap's chrome (border, padding, typography) plus enter+exit\n // animations via vuecs's dual-state helpers from @vuecs/design's\n // animations.css (`vc-overlay-anim`, `vc-overlay-fade-anim`,\n // `vc-tooltip-anim`). These helpers package the per-state gating\n // into a single class because BS5 theme strings can't carry the\n // `data-[state=]:` attribute-selector prefix that theme-tailwind\n // uses. Reka's Presence (already wrapping every *Content\n // primitive) keeps the element mounted until the exit animation\n // finishes.\n modal: {\n classes: {\n overlay: 'modal-backdrop fade show vc-overlay-fade-anim',\n content: 'modal-content position-fixed top-50 start-50 translate-middle shadow vc-overlay-anim',\n header: 'modal-header',\n title: 'modal-title',\n description: 'text-muted small',\n body: 'modal-body',\n footer: 'modal-footer',\n trigger: '',\n // Generic close trigger — neutral baseline so consumer\n // classes (`<VCModalClose class=\"...\">`) compose cleanly.\n // The corner-X pattern lives in `closeIcon` below.\n close: '',\n closeIcon: 'btn-close position-absolute top-0 end-0 m-2',\n back: 'btn btn-sm btn-link p-1',\n },\n // Bootstrap maps modal sizes via `.modal-sm` / `.modal-lg` /\n // `.modal-xl` on the .modal element. Our content slot stands\n // in for `.modal-dialog` so we apply the size class there.\n variants: {\n size: {\n sm: { content: 'modal-sm' },\n md: { content: '' },\n lg: { content: 'modal-lg' },\n xl: { content: 'modal-xl' },\n },\n },\n defaultVariants: { size: 'md' },\n },\n popover: {\n classes: {\n trigger: '',\n content: 'popover bs-popover-auto show vc-overlay-anim',\n arrow: 'popover-arrow',\n // Generic close trigger — neutral baseline so consumer\n // classes compose cleanly. Corner-X lives in `closeIcon`.\n close: '',\n closeIcon: 'btn-close position-absolute top-0 end-0 m-1',\n },\n // Bootstrap doesn't ship size variants for popovers — adjust\n // font-size + padding via utility classes; the popover\n // shrinks/grows to content, so explicit width tuning is left\n // to consumers via per-instance themeClass.\n variants: {\n size: {\n sm: { content: 'small p-2' },\n md: { content: '' },\n lg: { content: 'fs-6 p-4' },\n },\n },\n defaultVariants: { size: 'md' },\n },\n hoverCard: {\n classes: {\n trigger: '',\n content: 'popover bs-popover-auto show vc-overlay-anim',\n arrow: 'popover-arrow',\n },\n variants: {\n size: {\n sm: { content: 'small p-2' },\n md: { content: '' },\n lg: { content: 'fs-6 p-4' },\n },\n },\n defaultVariants: { size: 'md' },\n },\n // Bootstrap doesn't ship a stepper component — we wire the rough\n // shape with utility classes (gap-* + rounded-circle for the\n // indicator). data-state=\"completed\" / \"active\" drives bg-* via\n // attribute selectors; without those the indicator stays muted.\n stepper: {\n classes: {\n root: 'd-flex align-items-center gap-2',\n item: 'd-flex align-items-center gap-2 flex-grow-1',\n trigger: 'btn p-0 border-0 bg-transparent d-inline-flex align-items-center justify-content-center',\n indicator: 'rounded-circle border border-secondary-subtle bg-light text-muted d-inline-flex align-items-center justify-content-center fw-semibold',\n title: 'small fw-medium',\n description: 'small text-muted',\n separator: 'flex-grow-1 border-top border-secondary-subtle',\n },\n // Bootstrap doesn't ship circular size utilities; use the\n // structural `vc-stepper-indicator-{sm,lg}` helpers added to\n // @vuecs/navigation's stepper structural CSS.\n variants: {\n size: {\n sm: { indicator: 'vc-stepper-indicator-sm', title: 'small' },\n md: { indicator: '' },\n lg: { indicator: 'vc-stepper-indicator-lg', title: 'fs-6' },\n },\n },\n defaultVariants: { size: 'md' },\n },\n // Bootstrap doesn't ship a Toast viewport / queue idiom (the\n // toasts CSS exists but `.toast-container` is a static\n // layout). We compose `.toast-container` + position helpers\n // for the viewport, and `.toast.show` for each entry so\n // Bootstrap's per-color contrast (`text-bg-*`) propagates.\n // Slide-in/out animations use the `vc-toast-anim` dual-state\n // helper in the bridge CSS (BS theme strings can't carry\n // `data-[state=]:` attribute selectors).\n toastViewport: {\n classes: { root: 'toast-container position-fixed d-flex flex-column p-3 list-unstyled m-0' },\n variants: {\n position: {\n 'top-left': { root: 'top-0 start-0' },\n 'top-right': { root: 'top-0 end-0' },\n 'top-center': { root: 'top-0 start-50 translate-middle-x' },\n 'bottom-left': { root: 'bottom-0 start-0 flex-column-reverse' },\n 'bottom-right': { root: 'bottom-0 end-0 flex-column-reverse' },\n 'bottom-center': { root: 'bottom-0 start-50 translate-middle-x flex-column-reverse' },\n },\n },\n defaultVariants: { position: 'top-right' },\n },\n toast: {\n classes: {\n root: 'toast show vc-toast-anim d-flex align-items-start gap-3 position-relative pe-5',\n body: 'flex-grow-1 min-w-0',\n close: 'btn-close-white btn btn-sm align-self-start',\n closeIcon: 'btn-close position-absolute top-0 end-0 m-2',\n },\n compoundVariants: [\n // solid via Bootstrap's contrast-aware `text-bg-*`\n { variants: { variant: 'solid', color: 'primary' }, class: { root: 'text-bg-primary' } },\n { variants: { variant: 'solid', color: 'neutral' }, class: { root: 'text-bg-secondary' } },\n { variants: { variant: 'solid', color: 'success' }, class: { root: 'text-bg-success' } },\n { variants: { variant: 'solid', color: 'warning' }, class: { root: 'text-bg-warning' } },\n { variants: { variant: 'solid', color: 'error' }, class: { root: 'text-bg-danger' } },\n { variants: { variant: 'solid', color: 'info' }, class: { root: 'text-bg-info' } },\n // soft — subtle bg + emphasis text\n { variants: { variant: 'soft', color: 'primary' }, class: { root: 'bg-primary-subtle text-primary-emphasis border border-primary-subtle' } },\n { variants: { variant: 'soft', color: 'neutral' }, class: { root: 'bg-body-tertiary text-body border' } },\n { variants: { variant: 'soft', color: 'success' }, class: { root: 'bg-success-subtle text-success-emphasis border border-success-subtle' } },\n { variants: { variant: 'soft', color: 'warning' }, class: { root: 'bg-warning-subtle text-warning-emphasis border border-warning-subtle' } },\n { variants: { variant: 'soft', color: 'error' }, class: { root: 'bg-danger-subtle text-danger-emphasis border border-danger-subtle' } },\n { variants: { variant: 'soft', color: 'info' }, class: { root: 'bg-info-subtle text-info-emphasis border border-info-subtle' } },\n // outline — border + emphasis text on transparent\n { variants: { variant: 'outline', color: 'primary' }, class: { root: 'border border-primary text-primary-emphasis bg-body' } },\n { variants: { variant: 'outline', color: 'neutral' }, class: { root: 'border text-body bg-body' } },\n { variants: { variant: 'outline', color: 'success' }, class: { root: 'border border-success text-success-emphasis bg-body' } },\n { variants: { variant: 'outline', color: 'warning' }, class: { root: 'border border-warning text-warning-emphasis bg-body' } },\n { variants: { variant: 'outline', color: 'error' }, class: { root: 'border border-danger text-danger-emphasis bg-body' } },\n { variants: { variant: 'outline', color: 'info' }, class: { root: 'border border-info text-info-emphasis bg-body' } },\n ],\n defaultVariants: { variant: 'soft', color: 'neutral' },\n },\n toastTitle: { classes: { root: 'toast-header bg-transparent border-0 p-0 mb-1 fw-semibold' } },\n toastDescription: { classes: { root: 'toast-body p-0' } },\n toastAction: { classes: { root: 'btn btn-sm btn-outline-secondary flex-shrink-0' } },\n tooltip: {\n classes: {\n trigger: '',\n content: 'tooltip bs-tooltip-auto show tooltip-inner vc-tooltip-anim',\n arrow: 'tooltip-arrow',\n },\n variants: {\n size: {\n sm: { content: 'small px-2 py-1' },\n md: { content: '' },\n lg: { content: 'fs-6 px-3 py-2' },\n },\n },\n defaultVariants: { size: 'md' },\n },\n dropdownMenu: {\n classes: {\n trigger: '',\n content: 'dropdown-menu show vc-overlay-anim',\n item: 'dropdown-item',\n checkboxItem: 'dropdown-item ps-4',\n radioItem: 'dropdown-item ps-4',\n radioGroup: '',\n itemIndicator: 'position-absolute start-0 ms-2',\n label: 'dropdown-header',\n separator: 'dropdown-divider',\n group: '',\n subTrigger: 'dropdown-item dropdown-toggle',\n subContent: 'dropdown-menu show vc-overlay-anim',\n arrow: '',\n },\n // Bootstrap doesn't ship dropdown size variants. Layer\n // utility classes for spacing/font-size; the structural\n // dropdown chrome stays untouched.\n variants: {\n size: {\n sm: {\n content: 'small p-1', \n item: 'py-1 px-2', \n subTrigger: 'py-1 px-2', \n subContent: 'small p-1', \n },\n md: { content: '' },\n lg: {\n content: 'fs-6', \n item: 'py-2 px-3', \n subTrigger: 'py-2 px-3', \n subContent: 'fs-6', \n },\n },\n },\n defaultVariants: { size: 'md' },\n },\n contextMenu: {\n classes: {\n trigger: '',\n content: 'dropdown-menu show vc-overlay-anim',\n item: 'dropdown-item',\n checkboxItem: 'dropdown-item ps-4',\n radioItem: 'dropdown-item ps-4',\n radioGroup: '',\n itemIndicator: 'position-absolute start-0 ms-2',\n label: 'dropdown-header',\n separator: 'dropdown-divider',\n group: '',\n subTrigger: 'dropdown-item dropdown-toggle',\n subContent: 'dropdown-menu show vc-overlay-anim',\n },\n variants: {\n size: {\n sm: {\n content: 'small p-1', \n item: 'py-1 px-2', \n subTrigger: 'py-1 px-2', \n subContent: 'small p-1', \n },\n md: { content: '' },\n lg: {\n content: 'fs-6', \n item: 'py-2 px-3', \n subTrigger: 'py-2 px-3', \n subContent: 'fs-6', \n },\n },\n },\n defaultVariants: { size: 'md' },\n },\n },\n /*\n * Theme-runtime hook (plan 021): mirror the resolved color mode\n * onto Bootstrap's `data-bs-theme` attribute so framework chrome\n * (navbar, dropdown, form-control, etc.) follows vuecs's `.dark`\n * toggle without a per-app `watchEffect` mirror. Bootstrap 5.3+\n * reads `data-bs-theme` as its own dark-mode source of truth;\n * the bridge `assets/index.css` keeps `--vc-color-*` aligned.\n */\n colorMode: {\n handle(doc, mode) {\n doc.documentElement.setAttribute('data-bs-theme', mode);\n },\n },\n };\n}\n"],"mappings":"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"}
package/package.json ADDED
@@ -0,0 +1,65 @@
1
+ {
2
+ "name": "@vuecs/theme-bootstrap",
3
+ "version": "4.0.0",
4
+ "type": "module",
5
+ "description": "Bootstrap theme for vuecs components. Currently targets Bootstrap 5; the version number tracks vuecs theme breaking changes, not Bootstrap's.",
6
+ "exports": {
7
+ "./package.json": "./package.json",
8
+ ".": {
9
+ "types": "./dist/index.d.ts",
10
+ "style": "./assets/index.css",
11
+ "import": "./dist/index.mjs"
12
+ },
13
+ "./index.css": "./assets/index.css",
14
+ "./assets/index.css": "./assets/index.css"
15
+ },
16
+ "style": "./assets/index.css",
17
+ "files": [
18
+ "dist",
19
+ "assets"
20
+ ],
21
+ "sideEffects": [
22
+ "./assets/*.css"
23
+ ],
24
+ "keywords": [],
25
+ "author": {
26
+ "name": "Peter Placzek",
27
+ "email": "contact@tada5hi.net",
28
+ "url": "https://tada5hi.net"
29
+ },
30
+ "license": "Apache-2.0",
31
+ "repository": {
32
+ "type": "git",
33
+ "url": "https://github.com/tada5hi/vuecs.git",
34
+ "directory": "themes/bootstrap"
35
+ },
36
+ "scripts": {
37
+ "build:js": "tsdown",
38
+ "build:types": "tsc --emitDeclarationOnly -p tsconfig.build.json",
39
+ "build": "rimraf dist && npm run build:js && npm run build:types",
40
+ "test": "vitest --config test/vitest.config.ts --run",
41
+ "test:coverage": "vitest --config test/vitest.config.ts --run --coverage"
42
+ },
43
+ "devDependencies": {
44
+ "@vuecs/button": "^1.0.0",
45
+ "@vuecs/core": "^3.0.0",
46
+ "@vuecs/countdown": "^2.0.0",
47
+ "@vuecs/elements": "^1.0.0",
48
+ "@vuecs/forms": "^4.0.0",
49
+ "@vuecs/gravatar": "^2.0.0",
50
+ "@vuecs/list": "^1.0.0",
51
+ "@vuecs/navigation": "^3.0.0",
52
+ "@vuecs/overlays": "^1.0.0",
53
+ "@vuecs/pagination": "^2.0.0",
54
+ "@vuecs/timeago": "^2.0.0"
55
+ },
56
+ "peerDependencies": {
57
+ "@vuecs/core": "^3.0.0"
58
+ },
59
+ "engines": {
60
+ "node": ">=22.0.0"
61
+ },
62
+ "publishConfig": {
63
+ "access": "public"
64
+ }
65
+ }