@vuecs/theme-bootstrap 7.0.3 → 7.1.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.
package/assets/index.css CHANGED
@@ -393,6 +393,7 @@
393
393
  * the theme's `position-fixed top-50 start-50 translate-middle`.
394
394
  * ──────────────────────────────────────────────────────────────────────── */
395
395
 
396
+ .vc-modal-content.vc-modal-xs { max-width: 260px; width: calc(100% - 1rem); }
396
397
  .vc-modal-content.modal-sm { max-width: 300px; width: calc(100% - 1rem); }
397
398
  .vc-modal-content.modal-lg { max-width: 800px; width: calc(100% - 1rem); }
398
399
  .vc-modal-content.modal-xl { max-width: 1140px; width: calc(100% - 1rem); }
@@ -470,3 +471,40 @@
470
471
  .vc-alert-outline {
471
472
  background-color: transparent !important;
472
473
  }
474
+
475
+ /* ────────────────────────────────────────────────────────────────────────────
476
+ * Size: `xs` gap-fill. Bootstrap 5 ships `-sm` / `-lg` size modifiers but
477
+ * nothing below `sm`. The vuecs size axis adds `xs` (one notch under `sm`);
478
+ * these helpers supply it by tightening the relevant BS CSS variables /
479
+ * utilities. Referenced from the `size.xs` theme entries in
480
+ * `themes/bootstrap/src/index.ts`.
481
+ * ──────────────────────────────────────────────────────────────────────── */
482
+
483
+ /* Generic font shrink for text-bearing surfaces (alert, popover, tooltip,
484
+ menus, nav, list, badge, tag) — BS has no font step below `.small`. */
485
+ .vc-fs-xs { font-size: 0.7rem; }
486
+
487
+ /* Button — BS5 buttons resolve sizing from these vars (set by `.btn-sm`). */
488
+ .vc-btn-xs {
489
+ --bs-btn-padding-y: 0.12rem;
490
+ --bs-btn-padding-x: 0.4rem;
491
+ --bs-btn-font-size: 0.7rem;
492
+ --bs-btn-border-radius: 0.2rem;
493
+ }
494
+
495
+ /* Pagination — BS5 reads these vars (set by `.pagination-sm`). */
496
+ .vc-pagination-xs {
497
+ --bs-pagination-padding-y: 0.05rem;
498
+ --bs-pagination-padding-x: 0.4rem;
499
+ --bs-pagination-font-size: 0.7rem;
500
+ }
501
+
502
+ /* Text inputs / selects / textareas — every BS theme slot that takes the
503
+ `xs` size carries the `.form-control` base class (the FormSelect trigger
504
+ included), and `.form-control-sm` sets padding+font directly, so override
505
+ both. Element-qualified (0,2,0) beats `.form-control-sm`. */
506
+ .form-control.vc-form-control-xs {
507
+ padding: 0.1rem 0.4rem;
508
+ font-size: 0.7rem;
509
+ border-radius: 0.2rem;
510
+ }
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,KAAK,EAAE,MAAM,aAAa,CAAC;AAEzC,MAAM,CAAC,OAAO,UAAU,cAAc,IAAI,KAAK,CAkkC9C"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,KAAK,EAAE,MAAM,aAAa,CAAC;AAEzC,MAAM,CAAC,OAAO,UAAU,cAAc,IAAI,KAAK,CAwmC9C"}
package/dist/index.mjs CHANGED
@@ -17,6 +17,10 @@ function bootstrapTheme() {
17
17
  },
18
18
  variants: {
19
19
  size: {
20
+ xs: {
21
+ root: "form-control-sm vc-form-control-xs",
22
+ group: "input-group-sm"
23
+ },
20
24
  sm: {
21
25
  root: "form-control-sm",
22
26
  group: "input-group-sm"
@@ -42,6 +46,10 @@ function bootstrapTheme() {
42
46
  group: ""
43
47
  },
44
48
  variants: { size: {
49
+ xs: {
50
+ root: "vc-form-checkbox-xs",
51
+ label: "vc-fs-xs"
52
+ },
45
53
  sm: {
46
54
  root: "vc-form-checkbox-sm",
47
55
  label: "small"
@@ -63,6 +71,10 @@ function bootstrapTheme() {
63
71
  group: ""
64
72
  },
65
73
  variants: { size: {
74
+ xs: {
75
+ root: "vc-form-switch-xs",
76
+ label: "vc-fs-xs"
77
+ },
66
78
  sm: {
67
79
  root: "vc-form-switch-sm",
68
80
  label: "small"
@@ -90,6 +102,7 @@ function bootstrapTheme() {
90
102
  },
91
103
  variants: {
92
104
  size: {
105
+ xs: { trigger: "form-control-sm vc-form-control-xs" },
93
106
  sm: { trigger: "form-control-sm" },
94
107
  md: { trigger: "" },
95
108
  lg: { trigger: "form-control-lg" }
@@ -126,6 +139,10 @@ function bootstrapTheme() {
126
139
  group: ""
127
140
  },
128
141
  variants: { size: {
142
+ xs: {
143
+ root: "vc-form-radio-xs",
144
+ label: "vc-fs-xs"
145
+ },
129
146
  sm: {
130
147
  root: "vc-form-radio-sm",
131
148
  label: "small"
@@ -158,6 +175,12 @@ function bootstrapTheme() {
158
175
  },
159
176
  variants: {
160
177
  size: {
178
+ xs: {
179
+ root: "input-group-sm",
180
+ input: "form-control-sm vc-form-control-xs",
181
+ decrement: "btn-sm vc-btn-xs",
182
+ increment: "btn-sm vc-btn-xs"
183
+ },
161
184
  sm: {
162
185
  root: "input-group-sm",
163
186
  input: "form-control-sm",
@@ -189,6 +212,10 @@ function bootstrapTheme() {
189
212
  },
190
213
  variants: {
191
214
  size: {
215
+ xs: {
216
+ root: "form-control-sm vc-form-control-xs p-1",
217
+ item: "vc-fs-xs"
218
+ },
192
219
  sm: {
193
220
  root: "form-control-sm p-1",
194
221
  item: "small"
@@ -209,6 +236,7 @@ function bootstrapTheme() {
209
236
  button: {
210
237
  classes: { root: "btn d-inline-flex align-items-center justify-content-center gap-2" },
211
238
  variants: { size: {
239
+ xs: { root: "btn-sm vc-btn-xs" },
212
240
  sm: { root: "btn-sm" },
213
241
  md: { root: "" },
214
242
  lg: { root: "btn-lg" }
@@ -435,6 +463,7 @@ function bootstrapTheme() {
435
463
  classes: { root: "form-control" },
436
464
  variants: {
437
465
  size: {
466
+ xs: { root: "form-control-sm vc-form-control-xs" },
438
467
  sm: { root: "form-control-sm" },
439
468
  md: { root: "" },
440
469
  lg: { root: "form-control-lg" }
@@ -499,6 +528,10 @@ function bootstrapTheme() {
499
528
  content: "ps-3"
500
529
  },
501
530
  variants: { size: {
531
+ xs: {
532
+ link: "vc-fs-xs py-0 px-2",
533
+ trigger: "vc-fs-xs py-0 px-2"
534
+ },
502
535
  sm: {
503
536
  link: "small py-1 px-2",
504
537
  trigger: "small py-1 px-2"
@@ -519,6 +552,7 @@ function bootstrapTheme() {
519
552
  remove: "focus-ring p-0 d-inline-flex align-items-center justify-content-center bg-transparent border-0 text-white lh-1"
520
553
  },
521
554
  variants: { size: {
555
+ xs: { root: "vc-fs-xs px-2 py-0" },
522
556
  sm: { root: "small px-2 py-1" },
523
557
  md: { root: "" },
524
558
  lg: { root: "fs-6 px-3 py-2" }
@@ -531,6 +565,7 @@ function bootstrapTheme() {
531
565
  item: ""
532
566
  },
533
567
  variants: { size: {
568
+ xs: { root: "gap-1" },
534
569
  sm: { root: "gap-1" },
535
570
  md: { root: "" },
536
571
  lg: { root: "gap-3" }
@@ -544,6 +579,7 @@ function bootstrapTheme() {
544
579
  fallback: "d-inline-flex align-items-center justify-content-center w-100 h-100 fw-medium small lh-1"
545
580
  },
546
581
  variants: { size: {
582
+ xs: { root: "vc-avatar-xs" },
547
583
  sm: { root: "vc-avatar-sm" },
548
584
  md: { root: "" },
549
585
  lg: { root: "vc-avatar-lg" }
@@ -615,6 +651,7 @@ function bootstrapTheme() {
615
651
  close: "btn btn-sm"
616
652
  },
617
653
  variants: { size: {
654
+ xs: { root: "py-1 vc-fs-xs" },
618
655
  sm: { root: "py-2 small" },
619
656
  md: { root: "" },
620
657
  lg: { root: "py-3 fs-6" }
@@ -758,6 +795,7 @@ function bootstrapTheme() {
758
795
  badge: {
759
796
  classes: { root: "badge rounded-pill" },
760
797
  variants: { size: {
798
+ xs: { root: "vc-fs-xs px-2 py-0" },
761
799
  sm: { root: "small px-2 py-1" },
762
800
  md: { root: "" },
763
801
  lg: { root: "fs-6 px-3 py-2" }
@@ -1000,6 +1038,7 @@ function bootstrapTheme() {
1000
1038
  ghost: { link: "border-0 bg-transparent" }
1001
1039
  },
1002
1040
  size: {
1041
+ xs: { root: "pagination-sm vc-pagination-xs" },
1003
1042
  sm: { root: "pagination-sm" },
1004
1043
  md: { root: "" },
1005
1044
  lg: { root: "pagination-lg" }
@@ -1025,6 +1064,7 @@ function bootstrapTheme() {
1025
1064
  back: "btn btn-sm btn-link p-1"
1026
1065
  },
1027
1066
  variants: { size: {
1067
+ xs: { content: "vc-modal-xs" },
1028
1068
  sm: { content: "modal-sm" },
1029
1069
  md: { content: "" },
1030
1070
  lg: { content: "modal-lg" },
@@ -1041,6 +1081,7 @@ function bootstrapTheme() {
1041
1081
  closeIcon: "btn-close position-absolute top-0 end-0 m-1"
1042
1082
  },
1043
1083
  variants: { size: {
1084
+ xs: { content: "vc-fs-xs p-2" },
1044
1085
  sm: { content: "small p-2" },
1045
1086
  md: { content: "" },
1046
1087
  lg: { content: "fs-6 p-4" }
@@ -1054,6 +1095,7 @@ function bootstrapTheme() {
1054
1095
  arrow: "popover-arrow"
1055
1096
  },
1056
1097
  variants: { size: {
1098
+ xs: { content: "vc-fs-xs p-2" },
1057
1099
  sm: { content: "small p-2" },
1058
1100
  md: { content: "" },
1059
1101
  lg: { content: "fs-6 p-4" }
@@ -1071,6 +1113,10 @@ function bootstrapTheme() {
1071
1113
  separator: "flex-grow-1 border-top border-secondary-subtle"
1072
1114
  },
1073
1115
  variants: { size: {
1116
+ xs: {
1117
+ indicator: "vc-stepper-indicator-xs",
1118
+ title: "vc-fs-xs"
1119
+ },
1074
1120
  sm: {
1075
1121
  indicator: "vc-stepper-indicator-sm",
1076
1122
  title: "small"
@@ -1245,6 +1291,7 @@ function bootstrapTheme() {
1245
1291
  arrow: "tooltip-arrow"
1246
1292
  },
1247
1293
  variants: { size: {
1294
+ xs: { content: "vc-fs-xs px-2 py-0" },
1248
1295
  sm: { content: "small px-2 py-1" },
1249
1296
  md: { content: "" },
1250
1297
  lg: { content: "fs-6 px-3 py-2" }
@@ -1268,6 +1315,12 @@ function bootstrapTheme() {
1268
1315
  arrow: ""
1269
1316
  },
1270
1317
  variants: { size: {
1318
+ xs: {
1319
+ content: "vc-fs-xs p-1",
1320
+ item: "py-0 px-2",
1321
+ subTrigger: "py-0 px-2",
1322
+ subContent: "vc-fs-xs p-1"
1323
+ },
1271
1324
  sm: {
1272
1325
  content: "small p-1",
1273
1326
  item: "py-1 px-2",
@@ -1300,6 +1353,12 @@ function bootstrapTheme() {
1300
1353
  subContent: "dropdown-menu show vc-overlay-anim"
1301
1354
  },
1302
1355
  variants: { size: {
1356
+ xs: {
1357
+ content: "vc-fs-xs p-1",
1358
+ item: "py-0 px-2",
1359
+ subTrigger: "py-0 px-2",
1360
+ subContent: "vc-fs-xs p-1"
1361
+ },
1303
1362
  sm: {
1304
1363
  content: "small p-1",
1305
1364
  item: "py-1 px-2",
@@ -1 +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 //\n // Severity uses Bootstrap's native `.is-invalid` /\n // `.is-warning`-style helpers — but Bootstrap 5 only\n // ships `.is-invalid` + `.is-valid`. We map `warning` →\n // `.is-invalid` (close-enough red) and leave a comment;\n // BS doesn't really have a soft-severity slot. Consumers\n // wanting a true amber state can override.\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 severity: {\n error: { root: 'is-invalid' },\n warning: { root: 'is-invalid' },\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 severity: {\n error: { trigger: 'is-invalid' },\n warning: { trigger: 'is-invalid' },\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 variants: {\n severity: {\n error: { input: 'is-invalid' },\n warning: { input: 'is-invalid' },\n },\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 severity: {\n error: { input: 'is-invalid' },\n warning: { input: 'is-invalid' },\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 severity: {\n error: { root: 'is-invalid' },\n warning: { root: 'is-invalid' },\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 severity: {\n error: { root: 'is-invalid' },\n warning: { root: 'is-invalid' },\n },\n },\n defaultVariants: { size: 'md' },\n },\n // Severity-aware per-message colour. Bootstrap's `.text-danger`\n // / `.text-warning` / `.text-success` utilities are `!important`,\n // so a single class wins cleanly — no need for a default\n // colour on `item` (messages stay neutral when no severity).\n validationGroup: {\n classes: { item: 'small' },\n variants: {\n severity: {\n error: { item: 'text-danger' },\n warning: { item: 'text-warning' },\n success: { item: 'text-success' },\n },\n },\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 // The structural `.vc-nav-trigger` already resets the\n // native <button> chrome; `.nav-link` layers Bootstrap's\n // link styling on top.\n trigger: 'nav-link',\n content: 'ps-3',\n },\n variants: {\n size: {\n sm: { link: 'small py-1 px-2', trigger: 'small py-1 px-2' },\n md: { link: '' },\n lg: { link: 'fs-6 py-3 px-4', trigger: '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 placeholder: {\n // Bootstrap 5 ships native `.placeholder`,\n // `.placeholder-wave`, and `.placeholder-glow` —\n // map onto those directly.\n classes: {\n root: 'placeholder',\n wave: 'placeholder-wave',\n glow: 'placeholder-glow',\n },\n },\n tablePlaceholder: {\n classes: {\n root: 'table table-borderless mb-0',\n header: 'border-bottom',\n body: '',\n footer: 'border-top',\n row: '',\n cell: '',\n },\n },\n cardPlaceholder: {\n classes: {\n root: 'card',\n image: 'ratio ratio-16x9',\n header: 'card-header',\n body: 'card-body',\n footer: 'card-footer d-flex gap-2',\n },\n },\n placeholderWrapper: { classes: { root: 'position-relative' } },\n tableRowExpansion: {\n classes: {\n root: 'bg-body-tertiary',\n cell: 'p-0',\n panel: 'overflow-hidden',\n panelInner: 'px-3 py-2',\n },\n },\n tableExpandTrigger: {\n classes: {\n root: 'btn btn-link p-1 d-inline-flex align-items-center justify-content-center text-body-secondary',\n icon: 'small',\n },\n },\n tableExpandTriggerCell: { classes: { root: 'text-center align-middle' } },\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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"}
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 //\n // Severity uses Bootstrap's native `.is-invalid` /\n // `.is-warning`-style helpers — but Bootstrap 5 only\n // ships `.is-invalid` + `.is-valid`. We map `warning` →\n // `.is-invalid` (close-enough red) and leave a comment;\n // BS doesn't really have a soft-severity slot. Consumers\n // wanting a true amber state can override.\n variants: {\n size: {\n xs: { root: 'form-control-sm vc-form-control-xs', group: 'input-group-sm' },\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 severity: {\n error: { root: 'is-invalid' },\n warning: { root: 'is-invalid' },\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 xs: { root: 'vc-form-checkbox-xs', label: 'vc-fs-xs' },\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 xs: { root: 'vc-form-switch-xs', label: 'vc-fs-xs' },\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 xs: { trigger: 'form-control-sm vc-form-control-xs' },\n sm: { trigger: 'form-control-sm' },\n md: { trigger: '' },\n lg: { trigger: 'form-control-lg' },\n },\n severity: {\n error: { trigger: 'is-invalid' },\n warning: { trigger: 'is-invalid' },\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 variants: {\n severity: {\n error: { input: 'is-invalid' },\n warning: { input: 'is-invalid' },\n },\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 xs: { root: 'vc-form-radio-xs', label: 'vc-fs-xs' },\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 xs: {\n root: 'input-group-sm', \n input: 'form-control-sm vc-form-control-xs', \n decrement: 'btn-sm vc-btn-xs', \n increment: 'btn-sm vc-btn-xs', \n },\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 severity: {\n error: { input: 'is-invalid' },\n warning: { input: 'is-invalid' },\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 xs: { root: 'form-control-sm vc-form-control-xs p-1', item: 'vc-fs-xs' },\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 severity: {\n error: { root: 'is-invalid' },\n warning: { root: 'is-invalid' },\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 xs: { root: 'btn-sm vc-btn-xs' },\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 xs: { root: 'form-control-sm vc-form-control-xs' },\n sm: { root: 'form-control-sm' },\n md: { root: '' },\n lg: { root: 'form-control-lg' },\n },\n severity: {\n error: { root: 'is-invalid' },\n warning: { root: 'is-invalid' },\n },\n },\n defaultVariants: { size: 'md' },\n },\n // Severity-aware per-message colour. Bootstrap's `.text-danger`\n // / `.text-warning` / `.text-success` utilities are `!important`,\n // so a single class wins cleanly — no need for a default\n // colour on `item` (messages stay neutral when no severity).\n validationGroup: {\n classes: { item: 'small' },\n variants: {\n severity: {\n error: { item: 'text-danger' },\n warning: { item: 'text-warning' },\n success: { item: 'text-success' },\n },\n },\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 // The structural `.vc-nav-trigger` already resets the\n // native <button> chrome; `.nav-link` layers Bootstrap's\n // link styling on top.\n trigger: 'nav-link',\n content: 'ps-3',\n },\n variants: {\n size: {\n xs: { link: 'vc-fs-xs py-0 px-2', trigger: 'vc-fs-xs py-0 px-2' },\n sm: { link: 'small py-1 px-2', trigger: 'small py-1 px-2' },\n md: { link: '' },\n lg: { link: 'fs-6 py-3 px-4', trigger: '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 xs: { root: 'vc-fs-xs px-2 py-0' },\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 xs: { root: 'gap-1' },\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 xs: { root: 'vc-avatar-xs' },\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 xs: { root: 'py-1 vc-fs-xs' },\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 xs: { root: 'vc-fs-xs px-2 py-0' },\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 xs: { root: 'pagination-sm vc-pagination-xs' },\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 xs: { content: 'vc-modal-xs' },\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 xs: { content: 'vc-fs-xs p-2' },\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 xs: { content: 'vc-fs-xs p-2' },\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 xs: { indicator: 'vc-stepper-indicator-xs', title: 'vc-fs-xs' },\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 xs: { content: 'vc-fs-xs px-2 py-0' },\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 xs: {\n content: 'vc-fs-xs p-1', \n item: 'py-0 px-2', \n subTrigger: 'py-0 px-2', \n subContent: 'vc-fs-xs p-1', \n },\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 xs: {\n content: 'vc-fs-xs p-1', \n item: 'py-0 px-2', \n subTrigger: 'py-0 px-2', \n subContent: 'vc-fs-xs p-1', \n },\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 placeholder: {\n // Bootstrap 5 ships native `.placeholder`,\n // `.placeholder-wave`, and `.placeholder-glow` —\n // map onto those directly.\n classes: {\n root: 'placeholder',\n wave: 'placeholder-wave',\n glow: 'placeholder-glow',\n },\n },\n tablePlaceholder: {\n classes: {\n root: 'table table-borderless mb-0',\n header: 'border-bottom',\n body: '',\n footer: 'border-top',\n row: '',\n cell: '',\n },\n },\n cardPlaceholder: {\n classes: {\n root: 'card',\n image: 'ratio ratio-16x9',\n header: 'card-header',\n body: 'card-body',\n footer: 'card-footer d-flex gap-2',\n },\n },\n placeholderWrapper: { classes: { root: 'position-relative' } },\n tableRowExpansion: {\n classes: {\n root: 'bg-body-tertiary',\n cell: 'p-0',\n panel: 'overflow-hidden',\n panelInner: 'px-3 py-2',\n },\n },\n tableExpandTrigger: {\n classes: {\n root: 'btn btn-link p-1 d-inline-flex align-items-center justify-content-center text-body-secondary',\n icon: 'small',\n },\n },\n tableExpandTriggerCell: { classes: { root: 'text-center align-middle' } },\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 CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@vuecs/theme-bootstrap",
3
- "version": "7.0.3",
3
+ "version": "7.1.0",
4
4
  "type": "module",
5
5
  "description": "Bootstrap theme for vuecs components. Currently targets Bootstrap 5; the version number tracks vuecs theme breaking changes, not Bootstrap's.",
6
6
  "exports": {
@@ -41,14 +41,14 @@
41
41
  "test:coverage": "vitest --config test/vitest.config.ts --run --coverage"
42
42
  },
43
43
  "devDependencies": {
44
- "@vuecs/button": "^1.1.1",
44
+ "@vuecs/button": "^1.2.0",
45
45
  "@vuecs/core": "^3.2.2",
46
46
  "@vuecs/countdown": "^2.0.6",
47
- "@vuecs/elements": "^1.2.5",
48
- "@vuecs/forms": "^5.2.3",
49
- "@vuecs/gravatar": "^2.0.7",
47
+ "@vuecs/elements": "^1.3.0",
48
+ "@vuecs/forms": "^5.3.0",
49
+ "@vuecs/gravatar": "^2.0.8",
50
50
  "@vuecs/list": "^1.0.6",
51
- "@vuecs/navigation": "^4.0.4",
51
+ "@vuecs/navigation": "^4.1.0",
52
52
  "@vuecs/overlays": "^1.1.2",
53
53
  "@vuecs/pagination": "^2.1.5",
54
54
  "@vuecs/placeholder": "^1.0.6",