@vuecs/theme-bulma 1.0.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/LICENSE +201 -0
- package/README.md +18 -0
- package/assets/index.css +646 -0
- package/dist/config.d.ts +28 -0
- package/dist/config.d.ts.map +1 -0
- package/dist/index.d.ts +47 -0
- package/dist/index.d.ts.map +1 -0
- package/dist/index.mjs +2604 -0
- package/dist/index.mjs.map +1 -0
- package/dist/palette-catalog.d.ts +16 -0
- package/dist/palette-catalog.d.ts.map +1 -0
- package/dist/palette.d.ts +48 -0
- package/dist/palette.d.ts.map +1 -0
- package/dist/types.d.ts +7 -0
- package/dist/types.d.ts.map +1 -0
- package/package.json +80 -0
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.mjs","names":[],"sources":["../src/palette-catalog.ts","../src/palette.ts","../src/index.ts"],"sourcesContent":["/* eslint-disable */\n/**\n * Auto-generated. Do not edit by hand.\n *\n * Source: tailwindcss@4.2.4 → theme.css → OKLCH literals,\n * converted to HSL via culori@4.0.2.\n *\n * Regenerate with:\n * npm run --workspace=themes/bulma palette-catalog:build\n *\n * Validate (CI):\n * npm run --workspace=themes/bulma palette-catalog:check\n */\nimport type { ColorPaletteName } from '@vuecs/design';\nimport type { Hsl } from './types';\n\nexport const COLOR_PALETTE_HSL: Record<\n ColorPaletteName,\n Record<'50' | '100' | '200' | '300' | '400' | '500' | '600' | '700' | '800' | '900' | '950', Hsl>\n> = {\n slate: {\n '50': { h: 210, s: 34.55, l: 98 },\n '100': { h: 210, s: 40.55, l: 96.05 },\n '200': { h: 214.28, s: 32.97, l: 91.42 },\n '300': { h: 212.72, s: 29.91, l: 84.02 },\n '400': { h: 214.99, s: 22.59, l: 64.5 },\n '500': { h: 215.38, s: 18.37, l: 47.03 },\n '600': { h: 215.29, s: 22.04, l: 34.76 },\n '700': { h: 215.29, s: 27.93, l: 26.85 },\n '800': { h: 217.28, s: 36.07, l: 17.54 },\n '900': { h: 222.34, s: 49.39, l: 11.3 },\n '950': { h: 228.82, s: 85.13, l: 5 },\n },\n gray: {\n '50': { h: 210, s: 24.19, l: 98.1 },\n '100': { h: 220, s: 14.97, l: 95.9 },\n '200': { h: 220, s: 13.57, l: 91.05 },\n '300': { h: 216, s: 13.12, l: 84 },\n '400': { h: 217.9, s: 11.92, l: 64.26 },\n '500': { h: 220.03, s: 10.26, l: 46.3 },\n '600': { h: 214.99, s: 15.66, l: 34.25 },\n '700': { h: 216.94, s: 21.1, l: 26.81 },\n '800': { h: 214.99, s: 30.99, l: 16.95 },\n '900': { h: 221, s: 41.69, l: 11.07 },\n '950': { h: 224.05, s: 72.24, l: 4.17 },\n },\n zinc: {\n '50': { h: 300, s: 0, l: 98.03 },\n '100': { h: 239.99, s: 3.51, l: 95.79 },\n '200': { h: 240, s: 5.86, l: 90.03 },\n '300': { h: 240.02, s: 5.38, l: 83.97 },\n '400': { h: 240.08, s: 5.71, l: 64.3 },\n '500': { h: 240.1, s: 4.41, l: 46.34 },\n '600': { h: 240.13, s: 6, l: 34.16 },\n '700': { h: 240.08, s: 5.74, l: 26.15 },\n '800': { h: 240.05, s: 4.04, l: 15.93 },\n '900': { h: 240.02, s: 6.03, l: 9.98 },\n '950': { h: 240.1, s: 11.24, l: 3.98 },\n },\n neutral: {\n '50': { h: 300, s: 0, l: 98.03 },\n '100': { h: 300, s: 0, l: 96.06 },\n '200': { h: 330, s: 0, l: 89.82 },\n '300': { h: 340, s: 0, l: 83.14 },\n '400': { h: 0, s: 0, l: 63.02 },\n '500': { h: 300, s: 0, l: 45.15 },\n '600': { h: 330, s: 0, l: 32.2 },\n '700': { h: 300, s: 0, l: 25.05 },\n '800': { h: 0, s: 0, l: 14.94 },\n '900': { h: 330, s: 0, l: 9.05 },\n '950': { h: 300, s: 0, l: 3.94 },\n },\n stone: {\n '50': { h: 60.01, s: 7.09, l: 97.9 },\n '100': { h: 60.01, s: 3.65, l: 95.94 },\n '200': { h: 20, s: 6.87, l: 89.98 },\n '300': { h: 24.01, s: 6.69, l: 82.98 },\n '400': { h: 24.01, s: 5.85, l: 63.05 },\n '500': { h: 25.02, s: 5.9, l: 44.64 },\n '600': { h: 33.35, s: 6.28, l: 32.24 },\n '700': { h: 30.02, s: 7.22, l: 25.04 },\n '800': { h: 12, s: 7.23, l: 15.07 },\n '900': { h: 24, s: 9.61, l: 9.99 },\n '950': { h: 20.04, s: 13.84, l: 4.13 },\n },\n red: {\n '50': { h: 360, s: 88.21, l: 97.32 },\n '100': { h: 359.98, s: 98.78, l: 94.25 },\n '200': { h: 359.95, s: 102.84, l: 89.64 },\n '300': { h: 359.73, s: 105.47, l: 82.22 },\n '400': { h: 358.76, s: 101.84, l: 69.84 },\n '500': { h: 356.95, s: 95.9, l: 57.72 },\n '600': { h: 351.73, s: 123.67, l: 40.53 },\n '700': { h: 353.32, s: 117.97, l: 34.72 },\n '800': { h: 355.94, s: 91.15, l: 32.55 },\n '900': { h: 358.8, s: 69.3, l: 30.07 },\n '950': { h: 359.29, s: 79.42, l: 15.35 },\n },\n orange: {\n '50': { h: 33.33, s: 102.53, l: 96.51 },\n '100': { h: 34.29, s: 101.29, l: 91.68 },\n '200': { h: 32.18, s: 100.26, l: 82.86 },\n '300': { h: 30.98, s: 103.88, l: 71.25 },\n '400': { h: 31.43, s: 102.57, l: 51.32 },\n '500': { h: 29.2, s: 138.87, l: 42.64 },\n '600': { h: 23.81, s: 138.29, l: 40.32 },\n '700': { h: 20.51, s: 127.68, l: 34.78 },\n '800': { h: 17.27, s: 101.4, l: 31.01 },\n '900': { h: 15.99, s: 83.12, l: 27.04 },\n '950': { h: 12.88, s: 84.81, l: 14.42 },\n },\n amber: {\n '50': { h: 47.99, s: 101.62, l: 96.03 },\n '100': { h: 47.99, s: 97.34, l: 88.73 },\n '200': { h: 48.02, s: 98.23, l: 75.9 },\n '300': { h: 46.82, s: 100.74, l: 59.53 },\n '400': { h: 46.68, s: 159.66, l: 38.52 },\n '500': { h: 40.58, s: 156.01, l: 38.84 },\n '600': { h: 34.92, s: 147.57, l: 35.7 },\n '700': { h: 29.07, s: 133.04, l: 31.4 },\n '800': { h: 25.56, s: 111, l: 27.98 },\n '900': { h: 23.04, s: 90.17, l: 25.26 },\n '950': { h: 20.9, s: 96.65, l: 13.94 },\n },\n yellow: {\n '50': { h: 54.55, s: 90.61, l: 95.28 },\n '100': { h: 54.89, s: 97.52, l: 87.84 },\n '200': { h: 52.74, s: 99.45, l: 76.08 },\n '300': { h: 51.29, s: 100.85, l: 56.47 },\n '400': { h: 49.97, s: 174.35, l: 36.19 },\n '500': { h: 47.3, s: 165.47, l: 35.46 },\n '600': { h: 42.71, s: 157.07, l: 31.8 },\n '700': { h: 38.01, s: 139.31, l: 27.21 },\n '800': { h: 34.56, s: 115.14, l: 24.91 },\n '900': { h: 29.52, s: 83.35, l: 24.57 },\n '950': { h: 26.16, s: 87.52, l: 13.96 },\n },\n lime: {\n '50': { h: 78.26, s: 92.84, l: 95.14 },\n '100': { h: 79.56, s: 89.72, l: 89.11 },\n '200': { h: 80.7, s: 89.71, l: 78.91 },\n '300': { h: 80.92, s: 87.66, l: 63.65 },\n '400': { h: 76.48, s: 152.65, l: 35.69 },\n '500': { h: 78.99, s: 169.67, l: 30.03 },\n '600': { h: 80.66, s: 166.87, l: 24.26 },\n '700': { h: 81.59, s: 140.51, l: 20.44 },\n '800': { h: 83.18, s: 101.25, l: 19.28 },\n '900': { h: 86.52, s: 71.11, l: 19.12 },\n '950': { h: 88.95, s: 88.62, l: 9.61 },\n },\n green: {\n '50': { h: 138.46, s: 76.51, l: 96.68 },\n '100': { h: 140.65, s: 84.38, l: 92.45 },\n '200': { h: 141.14, s: 81.07, l: 84.82 },\n '300': { h: 142.66, s: 81.25, l: 71.39 },\n '400': { h: 150.06, s: 95.56, l: 44.76 },\n '500': { h: 151.17, s: 165.46, l: 29.65 },\n '600': { h: 149.95, s: 168.41, l: 24.27 },\n '700': { h: 150, s: 143.08, l: 20.98 },\n '800': { h: 147.72, s: 97.15, l: 20.36 },\n '900': { h: 145.73, s: 73.08, l: 18.99 },\n '950': { h: 145.39, s: 87.57, l: 9.65 },\n },\n emerald: {\n '50': { h: 151.78, s: 80.95, l: 95.82 },\n '100': { h: 149.32, s: 81.17, l: 89.84 },\n '200': { h: 152.54, s: 77.89, l: 80.02 },\n '300': { h: 157.3, s: 76.25, l: 64.25 },\n '400': { h: 164.79, s: 160.67, l: 31.94 },\n '500': { h: 164.33, s: 183, l: 26.11 },\n '600': { h: 164.49, s: 182.24, l: 21.22 },\n '700': { h: 165.57, s: 169.47, l: 17.75 },\n '800': { h: 165.49, s: 141.85, l: 15.62 },\n '900': { h: 165.29, s: 107.53, l: 14.85 },\n '950': { h: 166.05, s: 102.4, l: 8.58 },\n },\n teal: {\n '50': { h: 166.15, s: 77.06, l: 96.74 },\n '100': { h: 167.27, s: 86.98, l: 89.13 },\n '200': { h: 168.51, s: 85.39, l: 77.72 },\n '300': { h: 171.35, s: 81.79, l: 60.15 },\n '400': { h: 174.78, s: 172.21, l: 30.68 },\n '500': { h: 175.02, s: 181.45, l: 26.06 },\n '600': { h: 175.86, s: 177.43, l: 21.24 },\n '700': { h: 176.37, s: 150.17, l: 18.75 },\n '800': { h: 176.85, s: 115.91, l: 17.28 },\n '900': { h: 176.3, s: 76.01, l: 17.51 },\n '950': { h: 178.66, s: 91.58, l: 9.64 },\n },\n cyan: {\n '50': { h: 183.16, s: 99.92, l: 96.25 },\n '100': { h: 185.11, s: 96.43, l: 90.29 },\n '200': { h: 186.2, s: 95.77, l: 81.44 },\n '300': { h: 186.71, s: 97.47, l: 65.9 },\n '400': { h: 186.13, s: 175.02, l: 34.58 },\n '500': { h: 187.47, s: 173.4, l: 31.36 },\n '600': { h: 189.97, s: 161.86, l: 27.59 },\n '700': { h: 190.86, s: 142.8, l: 24.02 },\n '800': { h: 192.65, s: 101.49, l: 23.39 },\n '900': { h: 195.82, s: 72.14, l: 22.87 },\n '950': { h: 196.69, s: 85.44, l: 14.55 },\n },\n sky: {\n '50': { h: 204, s: 103.69, l: 97.05 },\n '100': { h: 203.99, s: 96.54, l: 93.67 },\n '200': { h: 200.57, s: 97.87, l: 85.94 },\n '300': { h: 199.1, s: 103.12, l: 73.08 },\n '400': { h: 194.15, s: 130.08, l: 43.65 },\n '500': { h: 195.89, s: 153.89, l: 37.7 },\n '600': { h: 198.44, s: 149.2, l: 32.9 },\n '700': { h: 199.35, s: 140.28, l: 27.48 },\n '800': { h: 199.03, s: 125.92, l: 23.9 },\n '900': { h: 200.84, s: 96.98, l: 22.39 },\n '950': { h: 203.63, s: 87.23, l: 15.52 },\n },\n blue: {\n '50': { h: 213.75, s: 96.48, l: 96.79 },\n '100': { h: 214.28, s: 96.22, l: 92.78 },\n '200': { h: 213.33, s: 100.45, l: 87.28 },\n '300': { h: 211.63, s: 106.83, l: 78.56 },\n '400': { h: 212.79, s: 106.33, l: 66.84 },\n '500': { h: 216.89, s: 105.65, l: 59.61 },\n '600': { h: 221.34, s: 97.06, l: 53.5 },\n '700': { h: 225.35, s: 84.1, l: 48.98 },\n '800': { h: 227.1, s: 75.74, l: 41.14 },\n '900': { h: 224.86, s: 67.28, l: 33.33 },\n '950': { h: 226.51, s: 58.74, l: 21.15 },\n },\n indigo: {\n '50': { h: 225.88, s: 100.93, l: 96.69 },\n '100': { h: 226.46, s: 102.7, l: 93.98 },\n '200': { h: 228.05, s: 103.13, l: 89.09 },\n '300': { h: 229.92, s: 108.23, l: 82.67 },\n '400': { h: 235.61, s: 106.77, l: 75.23 },\n '500': { h: 240.97, s: 102.48, l: 68.98 },\n '600': { h: 246.99, s: 91.66, l: 59.53 },\n '700': { h: 247.88, s: 68.29, l: 51.07 },\n '800': { h: 246.14, s: 60.99, l: 41.85 },\n '900': { h: 243.26, s: 50.34, l: 34.77 },\n '950': { h: 244.4, s: 49.1, l: 20.16 },\n },\n violet: {\n '50': { h: 250, s: 98.58, l: 97.62 },\n '100': { h: 251.44, s: 93.48, l: 95.5 },\n '200': { h: 250.56, s: 100.93, l: 91.93 },\n '300': { h: 252.81, s: 109.64, l: 85.88 },\n '400': { h: 256.16, s: 109, l: 76.89 },\n '500': { h: 260.11, s: 108.45, l: 67.29 },\n '600': { h: 265.48, s: 99.08, l: 56.49 },\n '700': { h: 268, s: 93.3, l: 46.89 },\n '800': { h: 266.64, s: 86.27, l: 40.44 },\n '900': { h: 264.88, s: 74.27, l: 34.64 },\n '950': { h: 262.22, s: 77.74, l: 22.86 },\n },\n purple: {\n '50': { h: 270, s: 98.85, l: 98.04 },\n '100': { h: 268.7, s: 99.95, l: 95.45 },\n '200': { h: 268.62, s: 105.97, l: 91.9 },\n '300': { h: 269.4, s: 112.21, l: 85.76 },\n '400': { h: 270.72, s: 110.6, l: 75.3 },\n '500': { h: 272.11, s: 107.77, l: 65.15 },\n '600': { h: 274.91, s: 96.1, l: 52.15 },\n '700': { h: 276.41, s: 106.31, l: 41.55 },\n '800': { h: 274.93, s: 82.4, l: 37.87 },\n '900': { h: 274.52, s: 72.39, l: 31.62 },\n '950': { h: 274.32, s: 94.3, l: 20.66 },\n },\n fuchsia: {\n '50': { h: 289.09, s: 95.95, l: 97.79 },\n '100': { h: 286.96, s: 103.85, l: 95.53 },\n '200': { h: 288.26, s: 100.65, l: 90.7 },\n '300': { h: 291.08, s: 104.24, l: 83.22 },\n '400': { h: 292.04, s: 102.91, l: 71.3 },\n '500': { h: 292.61, s: 96.35, l: 57.51 },\n '600': { h: 294.63, s: 129.26, l: 38.02 },\n '700': { h: 295.49, s: 122.56, l: 32.26 },\n '800': { h: 295.8, s: 98.24, l: 29.35 },\n '900': { h: 296.7, s: 72.35, l: 27.25 },\n '950': { h: 296.75, s: 99.06, l: 15.6 },\n },\n pink: {\n '50': { h: 327.28, s: 71.09, l: 97 },\n '100': { h: 325.7, s: 78.63, l: 94.7 },\n '200': { h: 325.85, s: 87.87, l: 89.84 },\n '300': { h: 327.09, s: 96.71, l: 82.03 },\n '400': { h: 327.47, s: 95.38, l: 68.88 },\n '500': { h: 328.25, s: 91.82, l: 58.2 },\n '600': { h: 326.44, s: 122.82, l: 40.45 },\n '700': { h: 328.87, s: 127.07, l: 34.25 },\n '800': { h: 331.18, s: 105.41, l: 31.09 },\n '900': { h: 334.27, s: 78.49, l: 29.42 },\n '950': { h: 335.29, s: 90.94, l: 16.65 },\n },\n rose: {\n '50': { h: 355.72, s: 96.53, l: 97.19 },\n '100': { h: 355.55, s: 100.12, l: 94.67 },\n '200': { h: 352.6, s: 100.2, l: 90.07 },\n '300': { h: 352.25, s: 107.84, l: 82.19 },\n '400': { h: 349.91, s: 105.4, l: 70.25 },\n '500': { h: 345.36, s: 100.77, l: 56.4 },\n '600': { h: 338.01, s: 136.74, l: 39.17 },\n '700': { h: 338.15, s: 134.53, l: 33.19 },\n '800': { h: 337.65, s: 115.53, l: 30 },\n '900': { h: 338.93, s: 89.54, l: 28.73 },\n '950': { h: 342.26, s: 94.35, l: 15.6 },\n },\n};\n","import {\n COLOR_PALETTES,\n COLOR_PALETTE_SHADES,\n SEMANTIC_SCALES,\n applyColorPaletteCss,\n} from '@vuecs/design';\nimport type { ColorPaletteConfig, ColorPaletteName, SemanticScaleName } from '@vuecs/design';\nimport { COLOR_PALETTE_HSL } from './palette-catalog';\n\nconst SEMANTIC_SCALE_SET = new Set<string>(SEMANTIC_SCALES);\nconst PALETTE_NAME_SET = new Set<string>(COLOR_PALETTES);\n\n/**\n * Build the CSS string that rebinds Bulma's per-variant theming onto the\n * chosen Tailwind palette catalog.\n *\n * Bulma 1.0 reads three groups of CSS variables for theming:\n * 1. Per-variant **HSL channels** (`--bulma-<scale>-h/s/l`) drive the\n * auto-derived hover / active / `.is-light` shades on `.button`,\n * `.tag`, `.notification`, etc. Setting these is what makes the\n * Bulma side of the bridge respond to runtime palette switches —\n * pure CSS can't decompose `--vc-color-primary-600` into channels,\n * but JS can (via the pre-decomposed catalog generated at package\n * build time).\n * 2. Direct semantic vars (`--bulma-primary`, `-info`, …) read by\n * `has-background-*` / `has-text-*` utilities. We re-emit each at\n * the chosen palette's `-500` shade so utilities stay aligned.\n * 3. The vuecs design tokens (`--vc-color-<scale>-{50…950}`) — emitted\n * so consumer-authored CSS that references them follows along, and\n * so any of the bridge's direct property overrides (`background-color:\n * var(--vc-color-primary-600)`) re-tint correctly.\n *\n * Pure function — works identically on server and client. Returns a\n * `:root { ... }` block; inject into `<head>` (server) or pass to\n * `applyColorPaletteCss()` (client).\n *\n * Defense-in-depth: filters entries to known semantic scales + Tailwind\n * palette names so untrusted callers (cookie payloads, hand-edited\n * localStorage, ad-hoc `setColorPalette({ … })` calls) can't emit\n * broken declarations.\n */\nexport function renderColorPaletteStyles(palette: ColorPaletteConfig): string {\n const entries = Object.entries(palette).filter(\n (entry): entry is [SemanticScaleName, ColorPaletteName] => (\n SEMANTIC_SCALE_SET.has(entry[0]) &&\n typeof entry[1] === 'string' &&\n PALETTE_NAME_SET.has(entry[1])\n ),\n );\n if (entries.length === 0) {\n return '';\n }\n\n // Bulma exposes `info` and `link` as separate axes (link defaults to\n // a brand-blue, info to a sky-cyan); the bridge already maps both to\n // --vc-color-info, so when the consumer rebinds `info`, propagate to\n // `link` too. Other axes don't have a Bulma-side alias to chase.\n const declarations: string[] = [];\n for (const [scale, paletteName] of entries) {\n const shades = COLOR_PALETTE_HSL[paletteName];\n const base = shades['500'];\n\n // (1) HSL channel vars — drive Bulma's auto-derivation on\n // .button, .tag, .notification, etc.\n const bulmaScale = scale === 'error' ? 'danger' : scale;\n declarations.push(\n ` --bulma-${bulmaScale}-h: ${base.h}deg;`,\n ` --bulma-${bulmaScale}-s: ${base.s}%;`,\n ` --bulma-${bulmaScale}-l: ${base.l}%;`,\n );\n if (scale === 'info') {\n // `link` is a Bulma axis with no vuecs counterpart; align with `info`.\n declarations.push(\n ` --bulma-link-h: ${base.h}deg;`,\n ` --bulma-link-s: ${base.s}%;`,\n ` --bulma-link-l: ${base.l}%;`,\n );\n }\n\n // (2) Direct semantic vars — read by `.has-background-*` / `.has-text-*`.\n const baseHsl = `hsl(${base.h}deg, ${base.s}%, ${base.l}%)`;\n declarations.push(` --bulma-${bulmaScale}: ${baseHsl};`);\n if (scale === 'info') {\n declarations.push(` --bulma-link: ${baseHsl};`);\n }\n\n // (3) vuecs design tokens — keep consumer-authored CSS that\n // references `--vc-color-<scale>-N` in lockstep with the\n // palette switch.\n for (const shade of COLOR_PALETTE_SHADES) {\n const {\n h, \n s, \n l, \n } = shades[shade];\n declarations.push(\n ` --vc-color-${scale}-${shade}: hsl(${h}deg, ${s}%, ${l}%);`,\n );\n }\n }\n\n return `:root {\\n${declarations.join('\\n')}\\n}\\n`;\n}\n\n/**\n * Apply a Bulma palette override at runtime (client-side). Composes\n * `@vuecs/design`'s `applyColorPaletteCss()` with our\n * `renderColorPaletteStyles()` renderer.\n *\n * The optional `nonce` parameter wires CSP nonce attribution onto the\n * `<style id=\"vc-color-palette\">` block. CSP-strict consumers using\n * `useColorPalette` from `@vuecs/design` pass nonce via\n * `nonce: () => useConfig('nonce').value`.\n *\n * On the server this is a no-op; use `renderColorPaletteStyles()` directly\n * and inject the result into the SSR response head (or rely on\n * `@vuecs/nuxt`'s palette server plugin, which dispatches through the\n * theme runtime).\n */\nexport function setColorPalette(\n palette: ColorPaletteConfig,\n doc: Document | undefined = globalThis.document,\n nonce?: string,\n): void {\n applyColorPaletteCss(renderColorPaletteStyles(palette), doc, nonce);\n}\n","import type { Theme } from '@vuecs/core';\nimport { COLOR_PALETTES } from '@vuecs/design';\nimport './config';\nimport { renderColorPaletteStyles } from './palette';\n\nexport { renderColorPaletteStyles, setColorPalette } from './palette';\n/**\n * @deprecated Import `useColorPalette` from `@vuecs/design` instead.\n *\n * The per-theme wrapper previously auto-wired the CSP nonce via\n * `useConfig('nonce')` from `@vuecs/core`. The design-level composable\n * does not. If you rely on CSP nonces, pass `nonce` explicitly:\n *\n * import { useColorPalette } from '@vuecs/design';\n * import { useConfig } from '@vuecs/core';\n * const { current, set } = useColorPalette({\n * nonce: () => useConfig('nonce').value,\n * });\n *\n * Will be removed in the next major version of `@vuecs/theme-bulma`.\n */\nexport { useColorPalette } from '@vuecs/design';\n/** @deprecated Import from `@vuecs/design` instead. */\nexport type { UseColorPaletteOptions, UseColorPaletteReturn } from '@vuecs/design';\n/** @deprecated Import from `@vuecs/design` instead — the canonical `ColorPaletteConfig` lives there since plan 026. */\nexport type { ColorPaletteConfig } from '@vuecs/design';\nexport type { Hsl } from './types';\n\n/**\n * Bulma theme for vuecs components.\n *\n * Targets Bulma 1.0+ (CSS-variable-based theming). The companion\n * `assets/index.css` bridges `--bulma-*` onto `--vc-color-*` so palette\n * switches propagate to native Bulma elements alongside vuecs ones.\n *\n * Two notable mapping decisions vs. the Bootstrap theme:\n * - **`ghost` / `link` variants are reversed.** Bulma's `is-ghost`\n * ships an underlined hyperlink-style button (matching our `link`);\n * Bulma's `is-text` ships a borderless transparent button\n * (matching our `ghost`). The mapping here looks inverted at a\n * glance, but it's the natural reading once you know Bulma's\n * vocabulary.\n * - **DropdownMenu / FormSelect content uses `.dropdown-content`,\n * not `.dropdown-menu`.** Bulma gates `.dropdown-menu` visibility\n * on the parent `.dropdown.is-active` wrapper. Reka renders the\n * content via portal — there is no parent — so we apply\n * `.dropdown-content` (the inner box-styled element) directly,\n * which is unconditionally visible.\n */\nexport default function bulmaTheme(): Theme {\n return {\n elements: {\n formGroup: {\n classes: {\n root: 'field',\n label: 'label',\n hint: 'help',\n validationError: 'help is-danger',\n validationWarning: 'help is-warning',\n },\n },\n formInput: {\n classes: {\n root: 'input',\n group: 'field has-addons',\n groupAppend: 'control',\n groupPrepend: 'control',\n },\n // Bulma's `.input` size modifiers are `is-small` / `is-medium` /\n // `is-large`. `md` is the unmodified default.\n variants: {\n size: {\n sm: { root: 'is-small' },\n md: { root: '' },\n lg: { root: 'is-large' },\n },\n },\n defaultVariants: { size: 'md' },\n },\n formTextarea: {\n classes: { root: 'textarea' },\n variants: {\n size: {\n sm: { root: 'is-small' },\n md: { root: '' },\n lg: { root: 'is-large' },\n },\n },\n defaultVariants: { size: 'md' },\n },\n // Reka renders the checkbox / radio / switch as `<button role=\"…\">`,\n // not native `<input>`. Bulma's `.checkbox` / `.radio` / `.switch`\n // selectors target inputs, so they don't apply. Lean entirely on\n // the structural `vc-form-*` classes from @vuecs/forms (shape +\n // border + sizing) and let the bridge CSS paint the\n // `data-state=\"checked\"` colors.\n formCheckbox: {\n classes: {\n // Bulma utility chrome layered on top of the structural\n // `vc-form-checkbox` rule. We deliberately omit Bulma's\n // border utilities — they would beat the structural\n // `data-state=\"checked\"` border-color rule and flatten\n // the checked-state visual diff.\n root: 'has-background-white',\n indicator: 'has-text-white',\n label: '',\n group: 'is-inline-flex is-align-items-center',\n },\n variants: {\n size: {\n sm: { root: 'vc-form-checkbox-sm', label: 'is-size-7' },\n md: { root: '' },\n lg: { root: 'vc-form-checkbox-lg', label: 'is-size-5' },\n },\n },\n defaultVariants: { size: 'md' },\n },\n // Bulma 1.0 doesn't ship gap utilities; use `mr-2` on the items\n // via the wrapper. The structural `vc-form-checkbox-group` rule\n // owns the flex direction.\n formCheckboxGroup: { classes: { root: 'is-flex is-flex-direction-column' } },\n formSwitch: {\n classes: {\n root: '',\n thumb: 'has-background-white',\n label: '',\n group: 'is-inline-flex is-align-items-center',\n },\n variants: {\n size: {\n sm: { root: 'vc-form-switch-sm', label: 'is-size-7' },\n md: { root: '' },\n lg: { root: 'vc-form-switch-lg', label: 'is-size-5' },\n },\n },\n defaultVariants: { size: 'md' },\n },\n formRadio: {\n classes: {\n root: 'has-background-white',\n indicator: '',\n label: '',\n group: 'is-inline-flex is-align-items-center',\n },\n variants: {\n size: {\n sm: { root: 'vc-form-radio-sm', label: 'is-size-7' },\n md: { root: '' },\n lg: { root: 'vc-form-radio-lg', label: 'is-size-5' },\n },\n },\n defaultVariants: { size: 'md' },\n },\n formRadioGroup: { classes: { root: 'is-flex is-flex-direction-column' } },\n // FormSelect (Reka-backed compound) — we deliberately don't use\n // Bulma's `.select` because that styles a `<div>` wrapper around a\n // real `<select>`. Build the trigger from `.input` + flex\n // utilities. Content uses `.dropdown-content` (NOT `.dropdown-menu`,\n // which is parent-gated — see header comment).\n formSelect: {\n classes: {\n trigger: 'input is-flex is-align-items-center is-justify-content-space-between',\n value: 'is-flex-grow-1',\n icon: 'has-text-grey',\n content: 'dropdown-content',\n viewport: 'p-1',\n item: 'dropdown-item',\n itemIndicator: '',\n group: '',\n groupLabel: 'has-text-weight-semibold is-size-7 has-text-grey',\n separator: 'dropdown-divider',\n },\n variants: {\n size: {\n sm: { trigger: 'is-small' },\n md: { trigger: '' },\n lg: { trigger: 'is-large' },\n },\n },\n defaultVariants: { size: 'md' },\n },\n formSelectSearch: {\n classes: {\n root: 'is-relative',\n input: 'input',\n // No parent `.dropdown.is-active` to gate `.dropdown-menu`,\n // so apply `.dropdown-content` directly.\n content: 'dropdown-content',\n item: 'dropdown-item is-flex is-flex-direction-column',\n itemActive: 'is-active',\n itemCurrent: 'has-background-light',\n itemDescription: 'is-size-7 has-text-grey',\n selected: 'is-flex is-flex-wrap-wrap mt-2',\n selectedItem: 'tag is-light is-rounded',\n selectedItemRemove: 'has-text-weight-bold',\n },\n },\n // PinInputInput renders a real `<input>`; `.input` would give it\n // `width: 100%` which collapses every cell. Use Bulma utility\n // classes that mirror the input look (border + bg + shadow)\n // without the width hint. Structural CSS keeps per-cell sizing.\n formPin: {\n classes: {\n root: 'is-inline-flex is-align-items-center',\n input: 'has-background-white has-text-centered has-text-weight-semibold',\n },\n },\n // Reka Slider renders `<span>` elements, not `<input type=\"range\">`.\n // Bulma's `.slider` (extension) targets inputs anyway. Hand-roll\n // the visual via the structural `vc-form-slider-*` classes; bridge\n // CSS paints the primary range fill.\n formSlider: {\n classes: {\n root: '',\n track: '',\n range: '',\n thumb: '',\n },\n },\n formNumber: {\n classes: {\n root: 'field has-addons',\n input: 'input has-text-centered',\n decrement: 'button',\n increment: 'button',\n },\n variants: {\n size: {\n sm: {\n input: 'is-small',\n decrement: 'is-small',\n increment: 'is-small',\n },\n md: { input: '' },\n lg: {\n input: 'is-large',\n decrement: 'is-large',\n increment: 'is-large',\n },\n },\n },\n defaultVariants: { size: 'md' },\n },\n formTags: {\n classes: {\n root: 'input is-flex is-flex-wrap-wrap is-align-items-center',\n item: 'tag is-primary is-rounded is-flex is-align-items-center',\n itemText: '',\n // Plain styled cross button. Bulma's `.delete` element\n // injects its own × glyph via CSS pseudo-elements — paired\n // with the slot's literal \"×\" text it would double-render.\n itemDelete: 'is-inline-flex is-align-items-center is-justify-content-center has-background-transparent has-text-white p-0 ml-1',\n input: 'is-flex-grow-1 has-background-transparent',\n },\n variants: {\n size: {\n sm: { root: 'is-small', item: 'is-size-7' },\n md: { root: '' },\n lg: { root: 'is-large', item: 'is-size-6' },\n },\n },\n defaultVariants: { size: 'md' },\n },\n button: {\n // Bulma 1.x ships `is-gap-*` flex/grid spacing utilities;\n // `is-gap-2` (0.5rem) matches the gap baked into the\n // Tailwind / Bootstrap themes so leading icon / label /\n // trailing icon don't sit flush against each other.\n classes: { root: 'button is-inline-flex is-align-items-center is-justify-content-center is-gap-2' },\n variants: {\n size: {\n sm: { root: 'is-small' },\n md: { root: '' },\n lg: { root: 'is-large' },\n },\n },\n // Bulma's `.is-light` is the soft variant (tinted bg + colored\n // text). `.is-outlined` swaps to colored border + transparent\n // fill. `.is-text` (vuecs `ghost`) is borderless transparent;\n // `.is-ghost` (vuecs `link`) is anchor-like with underline. We\n // map `neutral` to bare `.button` (Bulma's default grey) for\n // the cleanest look.\n compoundVariants: [\n // solid\n { variants: { variant: 'solid', color: 'primary' }, class: { root: 'is-primary' } },\n { variants: { variant: 'solid', color: 'neutral' }, class: { root: '' } },\n { variants: { variant: 'solid', color: 'success' }, class: { root: 'is-success' } },\n { variants: { variant: 'solid', color: 'warning' }, class: { root: 'is-warning' } },\n { variants: { variant: 'solid', color: 'error' }, class: { root: 'is-danger' } },\n { variants: { variant: 'solid', color: 'info' }, class: { root: 'is-info' } },\n // soft (= Bulma is-light shade modifier)\n { variants: { variant: 'soft', color: 'primary' }, class: { root: 'is-primary is-light' } },\n { variants: { variant: 'soft', color: 'neutral' }, class: { root: 'is-light' } },\n { variants: { variant: 'soft', color: 'success' }, class: { root: 'is-success is-light' } },\n { variants: { variant: 'soft', color: 'warning' }, class: { root: 'is-warning is-light' } },\n { variants: { variant: 'soft', color: 'error' }, class: { root: 'is-danger is-light' } },\n { variants: { variant: 'soft', color: 'info' }, class: { root: 'is-info is-light' } },\n // outline\n { variants: { variant: 'outline', color: 'primary' }, class: { root: 'is-primary is-outlined' } },\n { variants: { variant: 'outline', color: 'neutral' }, class: { root: 'is-outlined' } },\n { variants: { variant: 'outline', color: 'success' }, class: { root: 'is-success is-outlined' } },\n { variants: { variant: 'outline', color: 'warning' }, class: { root: 'is-warning is-outlined' } },\n { variants: { variant: 'outline', color: 'error' }, class: { root: 'is-danger is-outlined' } },\n { variants: { variant: 'outline', color: 'info' }, class: { root: 'is-info is-outlined' } },\n // ghost — Bulma's `is-text` (borderless transparent)\n { variants: { variant: 'ghost', color: 'primary' }, class: { root: 'is-text has-text-primary' } },\n { variants: { variant: 'ghost', color: 'neutral' }, class: { root: 'is-text' } },\n { variants: { variant: 'ghost', color: 'success' }, class: { root: 'is-text has-text-success' } },\n { variants: { variant: 'ghost', color: 'warning' }, class: { root: 'is-text has-text-warning' } },\n { variants: { variant: 'ghost', color: 'error' }, class: { root: 'is-text has-text-danger' } },\n { variants: { variant: 'ghost', color: 'info' }, class: { root: 'is-text has-text-info' } },\n // link — Bulma's `is-ghost` (anchor-like, underlined)\n { variants: { variant: 'link', color: 'primary' }, class: { root: 'is-ghost has-text-primary' } },\n { variants: { variant: 'link', color: 'neutral' }, class: { root: 'is-ghost' } },\n { variants: { variant: 'link', color: 'success' }, class: { root: 'is-ghost has-text-success' } },\n { variants: { variant: 'link', color: 'warning' }, class: { root: 'is-ghost has-text-warning' } },\n { variants: { variant: 'link', color: 'error' }, class: { root: 'is-ghost has-text-danger' } },\n { variants: { variant: 'link', color: 'info' }, class: { root: 'is-ghost has-text-info' } },\n ],\n defaultVariants: {\n variant: 'solid',\n color: 'primary',\n size: 'md',\n },\n },\n list: {\n classes: {\n // `is-relative` anchors `<VCListLoading :overlay>`'s\n // `is-overlay` (absolute) positioning to the list\n // container itself.\n root: 'is-flex is-flex-direction-column is-relative',\n header: 'is-flex is-align-items-center',\n footer: 'is-flex is-align-items-center',\n },\n variants: {\n density: {\n compact: { root: '' },\n normal: { root: '' },\n spacious: { root: '' },\n },\n },\n defaultVariants: { density: 'normal' },\n },\n listBody: { classes: { root: 'm-0 p-0' } },\n listItem: {\n classes: {\n root: 'is-flex is-flex-direction-row is-align-items-center',\n text: 'is-inline-flex is-flex-direction-column is-flex-grow-1',\n actions: 'is-inline-flex is-align-items-center',\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: 'has-text-grey-light' } },\n active: { true: { root: 'has-background-primary-light has-text-primary' } },\n selected: { true: { root: 'has-background-grey-lighter' } },\n },\n defaultVariants: { density: 'normal' },\n },\n listLoading: {\n classes: { root: 'py-2 has-text-centered has-text-grey is-size-7' },\n variants: { overlay: { true: { root: 'is-overlay is-flex is-align-items-center is-justify-content-center has-background-white-bis' } } },\n },\n // Bulma `.notification.is-warning.is-light` matches the BS theme's\n // `.alert.alert-warning` look.\n listEmpty: { classes: { root: 'notification is-warning is-light is-size-7 p-2' } },\n navigation: {\n classes: {\n group: 'menu-list',\n link: '',\n },\n variants: {\n size: {\n sm: { link: 'is-size-7' },\n md: { link: '' },\n lg: { link: 'is-size-6' },\n },\n },\n defaultVariants: { size: 'md' },\n },\n // Reka encodes orientation as `data-orientation`; Bulma's `<hr>`\n // styling is limited (no built-in vertical rule). Structural CSS\n // does both axes; we just trim default margins so consumers\n // control spacing via parent flex gaps.\n separator: { classes: { root: 'm-0' } },\n tag: {\n classes: {\n root: 'tag is-primary is-rounded is-flex is-align-items-center',\n icon: 'is-inline-flex is-align-items-center',\n // Plain styled cross button (see formTags.itemDelete for\n // the same rationale — `.delete` injects its own glyph).\n remove: 'is-inline-flex is-align-items-center is-justify-content-center has-background-transparent has-text-white p-0',\n },\n // Bulma's `.tag` size modifiers are `is-medium` / `is-large`;\n // there is no `is-small` (the default IS the smallest size).\n // Mapping our `sm` to the bare default keeps `.tag` small;\n // `md` lifts to `is-medium` and `lg` to `is-large`.\n variants: {\n size: {\n sm: { root: '' },\n md: { root: 'is-medium' },\n lg: { root: 'is-large' },\n },\n },\n defaultVariants: { size: 'md' },\n },\n tags: {\n classes: {\n root: 'tags',\n item: '',\n },\n variants: {\n size: {\n sm: { root: '' },\n md: { root: 'are-medium' },\n lg: { root: 'are-large' },\n },\n },\n defaultVariants: { size: 'md' },\n },\n avatar: {\n classes: {\n root: 'is-inline-flex is-align-items-center is-justify-content-center has-background-light has-text-grey-dark',\n image: 'is-flex-grow-1',\n fallback: 'is-inline-flex is-align-items-center is-justify-content-center has-text-weight-medium is-size-7',\n },\n // Bulma's `.image is-32x32` family relies on fixed size scales\n // — for our sm/md/lg axis we use the structural\n // `vc-avatar-{sm,lg}` helpers (defined in @vuecs/elements).\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: 'is-block' } },\n // VCGravatar wraps VCAvatar — sizing comes from the structural\n // `vc-gravatar` class. Theme adds Bulma aesthetics; override\n // visual size via per-instance `themeClass`.\n gravatar: { classes: { root: 'is-inline-block' } },\n // Bulma's native `.box` is the closest match to a Card. It\n // ships radius + bg + shadow by default. The bridge CSS\n // (`assets/index.css`) wires Bulma's box bg to `--vc-color-bg`\n // so runtime palette / color-mode flips propagate.\n card: {\n classes: { root: 'box' },\n variants: {\n variant: {\n // Bulma `.box` already carries a shadow; the\n // outline variant flattens it and adds a border to\n // distinguish it from the elevated variant.\n outline: { root: 'has-shadow-none vc-card-outline' },\n // Soft = neutral muted background, no shadow. The\n // `vc-card-soft` helper in the bridge paints\n // `background-color` from `--vc-color-bg-muted`\n // so runtime palette / color-mode flips propagate\n // (Bulma's `.has-background-light` resolves\n // through the unbridged `--bulma-light-*` channels).\n soft: { root: 'vc-card-soft has-shadow-none' },\n // Elevated = keep Bulma's default `.box` shadow.\n elevated: { root: '' },\n },\n interactive: { true: { root: 'vc-card-interactive' } },\n },\n defaultVariants: { variant: 'outline' },\n },\n // Bulma has no card-header / card-body / card-footer ladder\n // (its `.card` is differently structured), so we paint these\n // with utility classes from Bulma's spacing helpers + a couple\n // of vc-* helpers in the bridge for the separator borders.\n //\n // Header + body inherit their structural `vc-card-*` classes\n // from the component default — we only contribute the\n // `padding` variant axis. The footer overrides `root` with a\n // flex-row layout helper because Bulma has no native equivalent\n // for \"right-aligned action band\".\n cardHeader: {\n variants: {\n padding: {\n compact: { root: 'py-2 px-3' },\n normal: { root: 'py-3 px-4' },\n spacious: { root: 'py-4 px-5' },\n },\n },\n defaultVariants: { padding: 'normal' },\n },\n cardTitle: { classes: { root: 'title is-5 mb-0' } },\n cardDescription: { classes: { root: 'subtitle is-6 has-text-grey mb-0' } },\n cardBody: {\n variants: {\n padding: {\n compact: { root: 'py-3 px-3' },\n normal: { root: 'py-4 px-4' },\n spacious: { root: 'py-5 px-5' },\n },\n },\n defaultVariants: { padding: 'normal' },\n },\n cardFooter: {\n classes: { root: 'vc-card-footer is-flex is-justify-content-flex-end' },\n variants: {\n padding: {\n compact: { root: 'py-2 px-3' },\n normal: { root: 'py-3 px-4' },\n spacious: { root: 'py-4 px-5' },\n },\n },\n defaultVariants: { padding: 'normal' },\n },\n collapse: { classes: { root: '' } },\n collapseTrigger: {\n classes: {\n root: 'is-inline-flex is-align-items-center button is-text px-0',\n chevron: 'is-size-7',\n },\n variants: {\n chevron: {\n auto: { chevron: 'is-inline-flex' },\n none: { chevron: 'is-hidden' },\n },\n },\n defaultVariants: { chevron: 'auto' },\n },\n collapseContent: { classes: { root: 'vc-collapse-anim' } },\n alert: {\n // Bulma's `.notification` is the alert-equivalent. Toast\n // already composes `.notification`, so per-variant `is-*`\n // overrides + `is-light` for `soft` work the same way.\n // Outline variant uses the existing `vc-toast-outline-*`\n // helpers (same color palette, same intent).\n classes: {\n root: 'notification is-flex is-align-items-flex-start mb-0 is-relative',\n icon: 'is-flex is-flex-shrink-0 is-align-items-center is-justify-content-center mr-3',\n content: 'is-flex-grow-1 is-flex is-flex-direction-column',\n closeIcon: 'delete is-small',\n close: 'button is-small is-text',\n },\n variants: {\n // Size variants only adjust font-size. Bulma's\n // `.notification` already reserves right-padding for the\n // built-in `.delete` button; overriding with `.p-*` here\n // would shrink that reserved space and let text overlap\n // the close icon.\n size: {\n sm: { root: 'is-size-7' },\n md: { root: '' },\n lg: { root: 'is-size-5' },\n },\n },\n compoundVariants: [\n // solid → `.notification.is-<color>`\n { variants: { variant: 'solid', color: 'primary' }, class: { root: 'is-primary' } },\n { variants: { variant: 'solid', color: 'neutral' }, class: { root: 'is-dark' } },\n { variants: { variant: 'solid', color: 'success' }, class: { root: 'is-success' } },\n { variants: { variant: 'solid', color: 'warning' }, class: { root: 'is-warning' } },\n { variants: { variant: 'solid', color: 'error' }, class: { root: 'is-danger' } },\n { variants: { variant: 'solid', color: 'info' }, class: { root: 'is-info' } },\n // soft → `.notification.is-<color>.is-light`\n { variants: { variant: 'soft', color: 'primary' }, class: { root: 'is-primary is-light' } },\n { variants: { variant: 'soft', color: 'neutral' }, class: { root: 'is-light' } },\n { variants: { variant: 'soft', color: 'success' }, class: { root: 'is-success is-light' } },\n { variants: { variant: 'soft', color: 'warning' }, class: { root: 'is-warning is-light' } },\n { variants: { variant: 'soft', color: 'error' }, class: { root: 'is-danger is-light' } },\n { variants: { variant: 'soft', color: 'info' }, class: { root: 'is-info is-light' } },\n // outline — reuse Toast's bridge helpers\n // (same color palette + same intent).\n { variants: { variant: 'outline', color: 'primary' }, class: { root: 'vc-toast-outline-primary' } },\n { variants: { variant: 'outline', color: 'neutral' }, class: { root: 'vc-toast-outline-neutral' } },\n { variants: { variant: 'outline', color: 'success' }, class: { root: 'vc-toast-outline-success' } },\n { variants: { variant: 'outline', color: 'warning' }, class: { root: 'vc-toast-outline-warning' } },\n { variants: { variant: 'outline', color: 'error' }, class: { root: 'vc-toast-outline-error' } },\n { variants: { variant: 'outline', color: 'info' }, class: { root: 'vc-toast-outline-info' } },\n ],\n defaultVariants: {\n variant: 'soft', \n color: 'neutral', \n size: 'md', \n },\n },\n alertTitle: { classes: { root: 'has-text-weight-semibold mb-1' } },\n alertDescription: { classes: { root: 'mb-0' } },\n // Bulma has NO core `.badge` class. Use `.tag` as the host\n // (consistent with how Bulma docs recommend chip-style badges)\n // plus the same color × variant matrix structure as button.\n // Outline variant has no native Bulma class — bridge CSS adds\n // `.vc-badge.vc-badge-outline.tag.is-<color>` rules.\n badge: {\n classes: { root: 'tag is-rounded vc-badge' },\n variants: {\n size: {\n sm: { root: '' },\n md: { root: 'is-medium' },\n lg: { root: 'is-large' },\n },\n },\n compoundVariants: [\n // solid — `.tag.is-<color>`\n { variants: { variant: 'solid', color: 'primary' }, class: { root: 'is-primary' } },\n { variants: { variant: 'solid', color: 'neutral' }, class: { root: 'is-dark' } },\n { variants: { variant: 'solid', color: 'success' }, class: { root: 'is-success' } },\n { variants: { variant: 'solid', color: 'warning' }, class: { root: 'is-warning' } },\n { variants: { variant: 'solid', color: 'error' }, class: { root: 'is-danger' } },\n { variants: { variant: 'solid', color: 'info' }, class: { root: 'is-info' } },\n // soft — `.tag.is-<color>.is-light`\n { variants: { variant: 'soft', color: 'primary' }, class: { root: 'is-primary is-light' } },\n { variants: { variant: 'soft', color: 'neutral' }, class: { root: 'is-light' } },\n { variants: { variant: 'soft', color: 'success' }, class: { root: 'is-success is-light' } },\n { variants: { variant: 'soft', color: 'warning' }, class: { root: 'is-warning is-light' } },\n { variants: { variant: 'soft', color: 'error' }, class: { root: 'is-danger is-light' } },\n { variants: { variant: 'soft', color: 'info' }, class: { root: 'is-info is-light' } },\n // outline — gap-fill rule in assets/index.css does the\n // colored border + transparent fill. The marker class\n // `vc-badge-outline` carries the per-color rule.\n { variants: { variant: 'outline', color: 'primary' }, class: { root: 'vc-badge-outline vc-badge-outline-primary' } },\n { variants: { variant: 'outline', color: 'neutral' }, class: { root: 'vc-badge-outline vc-badge-outline-neutral' } },\n { variants: { variant: 'outline', color: 'success' }, class: { root: 'vc-badge-outline vc-badge-outline-success' } },\n { variants: { variant: 'outline', color: 'warning' }, class: { root: 'vc-badge-outline vc-badge-outline-warning' } },\n { variants: { variant: 'outline', color: 'error' }, class: { root: 'vc-badge-outline vc-badge-outline-error' } },\n { variants: { variant: 'outline', color: 'info' }, class: { root: 'vc-badge-outline vc-badge-outline-info' } },\n ],\n defaultVariants: {\n variant: 'soft',\n color: 'neutral',\n size: 'md',\n },\n },\n // Bulma's `.table` family covers the basic chrome. Variant\n // mappings: `.table.is-striped`, `.is-bordered`, `.is-hoverable`,\n // `.is-narrow` (compact). Sticky-header and per-row variants\n // come from the bridge CSS (`vc-table-*` gap-fill helpers).\n table: {\n classes: { root: 'table is-fullwidth' },\n variants: {\n density: {\n compact: { root: 'is-narrow' },\n normal: { root: '' },\n spacious: { root: '' },\n },\n striped: { true: { root: 'is-striped' } },\n bordered: { true: { root: 'is-bordered' } },\n hover: { true: { root: 'is-hoverable' } },\n stickyHeader: { true: { root: 'vc-table-sticky-header' } },\n },\n defaultVariants: { density: 'normal' },\n },\n tableHeader: { classes: { root: 'is-uppercase has-text-grey is-size-7' } },\n tableBody: { classes: { root: '' } },\n tableFooter: { classes: { root: 'has-text-weight-medium' } },\n tableRow: {\n variants: {\n disabled: { true: { root: 'vc-table-row-disabled' } },\n selected: { true: { root: 'is-selected' } },\n focused: { true: { root: 'vc-table-row-focused' } },\n rowVariant: {\n success: { root: 'has-background-success-light' },\n warning: { root: 'has-background-warning-light' },\n error: { root: 'has-background-danger-light' },\n info: { root: 'has-background-info-light' },\n neutral: { root: 'has-background-light' },\n primary: { root: 'has-background-primary-light' },\n },\n },\n },\n tableCell: {\n variants: {\n align: {\n left: { root: 'has-text-left' },\n center: { root: 'has-text-centered' },\n right: { root: 'has-text-right' },\n },\n stickyColumn: { true: { root: 'vc-table-sticky-column' } },\n cellVariant: {\n success: { root: 'has-text-success' },\n warning: { root: 'has-text-warning' },\n error: { root: 'has-text-danger' },\n info: { root: 'has-text-info' },\n neutral: { root: 'has-text-grey' },\n primary: { root: 'has-text-primary' },\n },\n },\n },\n tableHeadCell: {\n classes: { sortIcon: 'ml-1 is-size-7' },\n variants: {\n align: {\n left: { root: 'has-text-left' },\n center: { root: 'has-text-centered' },\n right: { root: 'has-text-right' },\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: 'has-text-centered has-text-grey is-italic py-5' },\n false: { root: 'has-text-centered has-text-grey py-5' },\n },\n },\n },\n tableLoading: {\n classes: {\n root: 'has-text-centered has-text-grey py-5',\n overlay: 'vc-table-loading-overlay-bulma',\n },\n },\n tableSortIndicators: {\n classes: {\n root: 'vc-table-sort-indicators-bulma',\n label: 'has-text-weight-semibold has-text-grey mr-1',\n empty: 'is-italic has-text-grey',\n // Bulma's `.tag` is the chip primitive; we use it\n // for the wrapper. Inner toggle is a borderless\n // button. Inner remove is a button styled to\n // match (Bulma's `.delete` pseudo-element\n // approach can't compose with a real glyph\n // inside, so we go custom via gap-fill CSS).\n chip: 'tag is-medium is-rounded is-light vc-table-sort-indicators-chip-bulma',\n chipToggle: 'button is-small is-rounded vc-table-sort-indicators-chip-toggle-bulma',\n chipPosition: 'has-text-weight-bold has-text-grey is-size-7',\n chipLabel: '',\n chipArrow: 'has-text-weight-bold has-text-primary',\n chipRemove: 'button is-small is-rounded vc-table-sort-indicators-chip-remove-bulma',\n // Bulma 1.x `.select` is a wrapper styling pattern,\n // not a direct-on-select class — see addWrapper.\n addWrapper: 'select is-small is-rounded',\n add: '',\n clear: 'button is-small is-text ml-auto',\n },\n },\n pagination: {\n // Bulma's pagination canonical structure is\n // `<nav class=\"pagination\">` containing standalone\n // `.pagination-previous` / `-next` siblings PLUS a\n // `<ul class=\"pagination-list\">` wrapping the `.pagination-link`\n // page items. <VCPagination> only renders one `<ul>` with\n // uniform `<li>` children for every control (first / prev /\n // page items / next / last) — there's no mid-render hook to\n // differentiate item types in the theme today. As a\n // pragmatic mapping: apply `.pagination-list` to the\n // outer `<ul>` so its flex layout takes effect, and use\n // `.pagination-link` uniformly for all controls (Bulma's\n // edge-control styling — `.pagination-previous`/`-next` —\n // is very close to `.pagination-link`'s anyway, just\n // wider on small viewports). Visual parity with the\n // Tailwind / Bootstrap themes is preserved.\n classes: {\n root: 'pagination-list is-flex is-justify-content-center',\n item: '',\n link: 'pagination-link',\n linkActive: 'is-current',\n ellipsis: 'pagination-ellipsis',\n },\n variants: {\n variant: {\n outline: { link: '' },\n soft: { link: 'is-light' },\n ghost: { link: 'is-text' },\n },\n size: {\n sm: { root: 'is-small' },\n md: { root: '' },\n lg: { root: 'is-large' },\n },\n },\n defaultVariants: { variant: 'outline', size: 'md' },\n },\n // Reka primitives drive open/close via `data-state=\"open|closed\"`,\n // not Bulma's `.is-active` class. Theme strings reference Bulma\n // classes for chrome (border, padding, typography); enter+exit\n // animations come from vuecs's dual-state helpers in\n // @vuecs/design's animations.css (`vc-overlay-anim`,\n // `vc-overlay-fade-anim`, `vc-tooltip-anim`).\n modal: {\n classes: {\n overlay: 'modal-background vc-overlay-fade-anim',\n // `.modal-content` is Bulma's centered panel host. Use\n // it directly (skipping `.modal-card`); width sizing is\n // wired in the bridge CSS for `.modal-sm/lg/xl`.\n content: 'modal-content has-background-white p-5 vc-overlay-anim',\n header: 'is-flex is-flex-direction-column',\n title: 'title is-5',\n description: 'subtitle is-size-7 has-text-grey',\n body: 'is-flex is-flex-direction-column',\n footer: 'is-flex is-align-items-center is-justify-content-flex-end',\n trigger: '',\n close: '',\n // `.delete` paints the X glyph (Bulma's pseudo-element +\n // `font-size: 0` recipe — the slot's literal \"×\"\n // fallback is collapsed to zero size, so no\n // double-render). Bulma's `.delete` is `position:\n // relative` by default; the bridge CSS adds\n // corner-positioning by targeting the structural\n // `vc-modal-close-icon` class (from component defaults).\n closeIcon: 'delete is-medium',\n back: 'button is-small is-ghost',\n },\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 // No native popover compound — `box` ships the panel\n // chrome (bg, border-radius, shadow, padding).\n content: 'box vc-overlay-anim',\n arrow: '',\n close: '',\n // Same `.delete` rationale as `modal.closeIcon` —\n // bridge CSS positions the structural\n // `vc-popover-close-icon` class in the corner.\n closeIcon: 'delete',\n },\n variants: {\n size: {\n sm: { content: 'is-size-7 p-2' },\n md: { content: '' },\n lg: { content: 'is-size-6 p-5' },\n },\n },\n defaultVariants: { size: 'md' },\n },\n hoverCard: {\n classes: {\n trigger: '',\n content: 'box vc-overlay-anim',\n arrow: '',\n },\n variants: {\n size: {\n sm: { content: 'is-size-7 p-2' },\n md: { content: '' },\n lg: { content: 'is-size-6 p-5' },\n },\n },\n defaultVariants: { size: 'md' },\n },\n // Bulma has no native toast component. Compose `.notification`\n // (its closest visual equivalent) for the per-toast root plus\n // position utilities on the viewport. Slide animations use\n // the `vc-toast-anim` dual-state helper.\n toastViewport: {\n classes: { root: 'is-flex is-flex-direction-column m-0 p-4 vc-toast-viewport-fixed' },\n variants: {\n position: {\n 'top-left': { root: 'vc-toast-viewport-top-left' },\n 'top-right': { root: 'vc-toast-viewport-top-right' },\n 'top-center': { root: 'vc-toast-viewport-top-center' },\n 'bottom-left': { root: 'vc-toast-viewport-bottom-left is-flex-direction-column-reverse' },\n 'bottom-right': { root: 'vc-toast-viewport-bottom-right is-flex-direction-column-reverse' },\n 'bottom-center': { root: 'vc-toast-viewport-bottom-center is-flex-direction-column-reverse' },\n },\n },\n defaultVariants: { position: 'top-right' },\n },\n toast: {\n classes: {\n root: 'notification is-flex is-align-items-flex-start vc-toast-anim',\n body: 'is-flex-grow-1',\n close: 'button is-small is-text',\n closeIcon: 'delete is-small',\n },\n compoundVariants: [\n // solid → `.notification.is-<color>`\n { variants: { variant: 'solid', color: 'primary' }, class: { root: 'is-primary' } },\n { variants: { variant: 'solid', color: 'neutral' }, class: { root: 'is-dark' } },\n { variants: { variant: 'solid', color: 'success' }, class: { root: 'is-success' } },\n { variants: { variant: 'solid', color: 'warning' }, class: { root: 'is-warning' } },\n { variants: { variant: 'solid', color: 'error' }, class: { root: 'is-danger' } },\n { variants: { variant: 'solid', color: 'info' }, class: { root: 'is-info' } },\n // soft → `.notification.is-<color>.is-light`\n { variants: { variant: 'soft', color: 'primary' }, class: { root: 'is-primary is-light' } },\n { variants: { variant: 'soft', color: 'neutral' }, class: { root: 'is-light' } },\n { variants: { variant: 'soft', color: 'success' }, class: { root: 'is-success is-light' } },\n { variants: { variant: 'soft', color: 'warning' }, class: { root: 'is-warning is-light' } },\n { variants: { variant: 'soft', color: 'error' }, class: { root: 'is-danger is-light' } },\n { variants: { variant: 'soft', color: 'info' }, class: { root: 'is-info is-light' } },\n // outline — bridge helper `vc-toast-outline-*` paints\n // the border + emphasis text since Bulma's\n // `.notification` has no outline variant.\n { variants: { variant: 'outline', color: 'primary' }, class: { root: 'vc-toast-outline-primary' } },\n { variants: { variant: 'outline', color: 'neutral' }, class: { root: 'vc-toast-outline-neutral' } },\n { variants: { variant: 'outline', color: 'success' }, class: { root: 'vc-toast-outline-success' } },\n { variants: { variant: 'outline', color: 'warning' }, class: { root: 'vc-toast-outline-warning' } },\n { variants: { variant: 'outline', color: 'error' }, class: { root: 'vc-toast-outline-error' } },\n { variants: { variant: 'outline', color: 'info' }, class: { root: 'vc-toast-outline-info' } },\n ],\n defaultVariants: { variant: 'soft', color: 'neutral' },\n },\n toastTitle: { classes: { root: 'has-text-weight-semibold mb-1' } },\n toastDescription: { classes: { root: 'is-size-7' } },\n toastAction: { classes: { root: 'button is-small is-outlined' } },\n tooltip: {\n classes: {\n trigger: '',\n // Bulma's `[data-tooltip]` is data-attribute-driven and\n // doesn't fit Reka's class-based tooltip. Use `box` +\n // dark-bg utilities for a tooltip-like panel.\n content: 'has-background-dark has-text-light vc-tooltip-anim',\n arrow: '',\n },\n variants: {\n size: {\n sm: { content: 'is-size-7 px-2 py-1' },\n md: { content: 'px-3 py-1' },\n lg: { content: 'is-size-6 px-3 py-2' },\n },\n },\n defaultVariants: { size: 'md' },\n },\n dropdownMenu: {\n classes: {\n trigger: '',\n // `.dropdown-content` instead of `.dropdown-menu` — see\n // file header for rationale (parent-state-gated).\n content: 'dropdown-content vc-overlay-anim',\n item: 'dropdown-item',\n checkboxItem: 'dropdown-item',\n radioItem: 'dropdown-item',\n radioGroup: '',\n itemIndicator: '',\n label: 'dropdown-item has-text-weight-semibold has-text-grey',\n separator: 'dropdown-divider',\n group: '',\n subTrigger: 'dropdown-item is-flex is-justify-content-space-between',\n subContent: 'dropdown-content vc-overlay-anim',\n arrow: '',\n },\n variants: {\n size: {\n sm: { content: 'is-size-7' },\n md: { content: '' },\n lg: { content: 'is-size-6' },\n },\n },\n defaultVariants: { size: 'md' },\n },\n contextMenu: {\n classes: {\n trigger: '',\n content: 'dropdown-content vc-overlay-anim',\n item: 'dropdown-item',\n checkboxItem: 'dropdown-item',\n radioItem: 'dropdown-item',\n radioGroup: '',\n itemIndicator: '',\n label: 'dropdown-item has-text-weight-semibold has-text-grey',\n separator: 'dropdown-divider',\n group: '',\n subTrigger: 'dropdown-item is-flex is-justify-content-space-between',\n subContent: 'dropdown-content vc-overlay-anim',\n },\n variants: {\n size: {\n sm: { content: 'is-size-7' },\n md: { content: '' },\n lg: { content: 'is-size-6' },\n },\n },\n defaultVariants: { size: 'md' },\n },\n // Bulma has no core stepper compound. Layout (size, radius,\n // gaps) lives in @vuecs/navigation's structural CSS; this entry\n // only paints colors. data-state=\"active|completed\" drives the\n // bg/text/border flip via attribute selectors in the bridge CSS.\n stepper: {\n classes: {\n root: '',\n item: '',\n trigger: 'button is-text',\n indicator: 'has-background-light has-text-grey has-text-weight-semibold',\n // No size class on title/description by default — let the\n // size variants control. `is-size-{1..7}` are equal-\n // specificity class selectors; Bulma's source order\n // would make a default size impossible to override per\n // variant without `!important`.\n title: 'has-text-weight-medium',\n description: 'has-text-grey',\n separator: 'has-background-grey-lighter',\n },\n variants: {\n size: {\n sm: {\n indicator: 'vc-stepper-indicator-sm', \n title: 'is-size-7', \n description: 'is-size-7', \n },\n md: { indicator: '' },\n lg: {\n indicator: 'vc-stepper-indicator-lg', \n title: 'is-size-5', \n description: 'is-size-6', \n },\n },\n },\n defaultVariants: { size: 'md' },\n },\n },\n /*\n * Theme-runtime hook (plan 021): mirror the resolved color mode\n * onto Bulma's `data-theme` attribute so framework chrome (navbar\n * text, form-control bg, etc.) follows vuecs's `.dark` toggle\n * without a per-app `watchEffect` mirror. Bulma 1.0+ reads\n * `data-theme` (alongside `prefers-color-scheme`) as its own\n * dark-mode source of truth; the bridge `assets/index.css` keeps\n * `--vc-color-*` aligned.\n */\n colorMode: {\n handle(doc, mode) {\n doc.documentElement.setAttribute('data-theme', mode);\n },\n },\n /*\n * Theme-runtime hook (plan 021): declare the Bulma palette\n * renderer + catalog. `@vuecs/design`'s `useColorPalette()`\n * walks installed themes and concatenates each\n * `palette.handle` output, so `@vuecs/theme-bulma`'s\n * `useColorPalette()` wrapper delegates here. When stacked\n * alongside theme-tailwind (the docs-site case), both renderers\n * fire on the same payload and emit non-overlapping CSS rules\n * into the single `<style id=\"vc-color-palette\">` block. Bulma\n * reuses Tailwind's 22-name palette catalog, rendered as HSL\n * channel vars internally (plan 018).\n */\n palette: {\n handle: renderColorPaletteStyles as (palette: Record<string, string>) => string,\n names: COLOR_PALETTES,\n },\n };\n}\n"],"mappings":"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"}
|
|
@@ -0,0 +1,16 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Auto-generated. Do not edit by hand.
|
|
3
|
+
*
|
|
4
|
+
* Source: tailwindcss@4.2.4 → theme.css → OKLCH literals,
|
|
5
|
+
* converted to HSL via culori@4.0.2.
|
|
6
|
+
*
|
|
7
|
+
* Regenerate with:
|
|
8
|
+
* npm run --workspace=themes/bulma palette-catalog:build
|
|
9
|
+
*
|
|
10
|
+
* Validate (CI):
|
|
11
|
+
* npm run --workspace=themes/bulma palette-catalog:check
|
|
12
|
+
*/
|
|
13
|
+
import type { ColorPaletteName } from '@vuecs/design';
|
|
14
|
+
import type { Hsl } from './types';
|
|
15
|
+
export declare const COLOR_PALETTE_HSL: Record<ColorPaletteName, Record<'50' | '100' | '200' | '300' | '400' | '500' | '600' | '700' | '800' | '900' | '950', Hsl>>;
|
|
16
|
+
//# sourceMappingURL=palette-catalog.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"palette-catalog.d.ts","sourceRoot":"","sources":["../src/palette-catalog.ts"],"names":[],"mappings":"AACA;;;;;;;;;;;GAWG;AACH,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,eAAe,CAAC;AACtD,OAAO,KAAK,EAAE,GAAG,EAAE,MAAM,SAAS,CAAC;AAEnC,eAAO,MAAM,iBAAiB,EAAE,MAAM,CAClC,gBAAgB,EAChB,MAAM,CAAC,IAAI,GAAG,KAAK,GAAG,KAAK,GAAG,KAAK,GAAG,KAAK,GAAG,KAAK,GAAG,KAAK,GAAG,KAAK,GAAG,KAAK,GAAG,KAAK,GAAG,KAAK,EAAE,GAAG,CAAC,CAgSpG,CAAC"}
|
|
@@ -0,0 +1,48 @@
|
|
|
1
|
+
import type { ColorPaletteConfig } from '@vuecs/design';
|
|
2
|
+
/**
|
|
3
|
+
* Build the CSS string that rebinds Bulma's per-variant theming onto the
|
|
4
|
+
* chosen Tailwind palette catalog.
|
|
5
|
+
*
|
|
6
|
+
* Bulma 1.0 reads three groups of CSS variables for theming:
|
|
7
|
+
* 1. Per-variant **HSL channels** (`--bulma-<scale>-h/s/l`) drive the
|
|
8
|
+
* auto-derived hover / active / `.is-light` shades on `.button`,
|
|
9
|
+
* `.tag`, `.notification`, etc. Setting these is what makes the
|
|
10
|
+
* Bulma side of the bridge respond to runtime palette switches —
|
|
11
|
+
* pure CSS can't decompose `--vc-color-primary-600` into channels,
|
|
12
|
+
* but JS can (via the pre-decomposed catalog generated at package
|
|
13
|
+
* build time).
|
|
14
|
+
* 2. Direct semantic vars (`--bulma-primary`, `-info`, …) read by
|
|
15
|
+
* `has-background-*` / `has-text-*` utilities. We re-emit each at
|
|
16
|
+
* the chosen palette's `-500` shade so utilities stay aligned.
|
|
17
|
+
* 3. The vuecs design tokens (`--vc-color-<scale>-{50…950}`) — emitted
|
|
18
|
+
* so consumer-authored CSS that references them follows along, and
|
|
19
|
+
* so any of the bridge's direct property overrides (`background-color:
|
|
20
|
+
* var(--vc-color-primary-600)`) re-tint correctly.
|
|
21
|
+
*
|
|
22
|
+
* Pure function — works identically on server and client. Returns a
|
|
23
|
+
* `:root { ... }` block; inject into `<head>` (server) or pass to
|
|
24
|
+
* `applyColorPaletteCss()` (client).
|
|
25
|
+
*
|
|
26
|
+
* Defense-in-depth: filters entries to known semantic scales + Tailwind
|
|
27
|
+
* palette names so untrusted callers (cookie payloads, hand-edited
|
|
28
|
+
* localStorage, ad-hoc `setColorPalette({ … })` calls) can't emit
|
|
29
|
+
* broken declarations.
|
|
30
|
+
*/
|
|
31
|
+
export declare function renderColorPaletteStyles(palette: ColorPaletteConfig): string;
|
|
32
|
+
/**
|
|
33
|
+
* Apply a Bulma palette override at runtime (client-side). Composes
|
|
34
|
+
* `@vuecs/design`'s `applyColorPaletteCss()` with our
|
|
35
|
+
* `renderColorPaletteStyles()` renderer.
|
|
36
|
+
*
|
|
37
|
+
* The optional `nonce` parameter wires CSP nonce attribution onto the
|
|
38
|
+
* `<style id="vc-color-palette">` block. CSP-strict consumers using
|
|
39
|
+
* `useColorPalette` from `@vuecs/design` pass nonce via
|
|
40
|
+
* `nonce: () => useConfig('nonce').value`.
|
|
41
|
+
*
|
|
42
|
+
* On the server this is a no-op; use `renderColorPaletteStyles()` directly
|
|
43
|
+
* and inject the result into the SSR response head (or rely on
|
|
44
|
+
* `@vuecs/nuxt`'s palette server plugin, which dispatches through the
|
|
45
|
+
* theme runtime).
|
|
46
|
+
*/
|
|
47
|
+
export declare function setColorPalette(palette: ColorPaletteConfig, doc?: Document | undefined, nonce?: string): void;
|
|
48
|
+
//# sourceMappingURL=palette.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"palette.d.ts","sourceRoot":"","sources":["../src/palette.ts"],"names":[],"mappings":"AAMA,OAAO,KAAK,EAAE,kBAAkB,EAAuC,MAAM,eAAe,CAAC;AAM7F;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA4BG;AACH,wBAAgB,wBAAwB,CAAC,OAAO,EAAE,kBAAkB,GAAG,MAAM,CA6D5E;AAED;;;;;;;;;;;;;;GAcG;AACH,wBAAgB,eAAe,CAC3B,OAAO,EAAE,kBAAkB,EAC3B,GAAG,GAAE,QAAQ,GAAG,SAA+B,EAC/C,KAAK,CAAC,EAAE,MAAM,GACf,IAAI,CAEN"}
|
package/dist/types.d.ts
ADDED
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../src/types.ts"],"names":[],"mappings":"AAAA,uDAAuD;AACvD,MAAM,MAAM,GAAG,GAAG;IACd,CAAC,EAAE,MAAM,CAAC;IACV,CAAC,EAAE,MAAM,CAAC;IACV,CAAC,EAAE,MAAM,CAAC;CACb,CAAC"}
|
package/package.json
ADDED
|
@@ -0,0 +1,80 @@
|
|
|
1
|
+
{
|
|
2
|
+
"name": "@vuecs/theme-bulma",
|
|
3
|
+
"version": "1.0.0",
|
|
4
|
+
"type": "module",
|
|
5
|
+
"description": "Bulma theme for vuecs components. Targets Bulma 1.0+ (CSS-variable-based theming); the version number tracks vuecs theme breaking changes, not Bulma's.",
|
|
6
|
+
"exports": {
|
|
7
|
+
"./package.json": "./package.json",
|
|
8
|
+
".": {
|
|
9
|
+
"types": "./dist/index.d.ts",
|
|
10
|
+
"style": "./assets/index.css",
|
|
11
|
+
"import": "./dist/index.mjs"
|
|
12
|
+
},
|
|
13
|
+
"./index.css": "./assets/index.css",
|
|
14
|
+
"./assets/index.css": "./assets/index.css"
|
|
15
|
+
},
|
|
16
|
+
"style": "./assets/index.css",
|
|
17
|
+
"files": [
|
|
18
|
+
"dist",
|
|
19
|
+
"assets"
|
|
20
|
+
],
|
|
21
|
+
"sideEffects": [
|
|
22
|
+
"./assets/*.css"
|
|
23
|
+
],
|
|
24
|
+
"keywords": [
|
|
25
|
+
"vuecs",
|
|
26
|
+
"theme",
|
|
27
|
+
"bulma"
|
|
28
|
+
],
|
|
29
|
+
"author": {
|
|
30
|
+
"name": "Peter Placzek",
|
|
31
|
+
"email": "contact@tada5hi.net",
|
|
32
|
+
"url": "https://tada5hi.net"
|
|
33
|
+
},
|
|
34
|
+
"license": "Apache-2.0",
|
|
35
|
+
"repository": {
|
|
36
|
+
"type": "git",
|
|
37
|
+
"url": "https://github.com/tada5hi/vuecs.git",
|
|
38
|
+
"directory": "themes/bulma"
|
|
39
|
+
},
|
|
40
|
+
"scripts": {
|
|
41
|
+
"build:js": "tsdown",
|
|
42
|
+
"build:types": "tsc --emitDeclarationOnly -p tsconfig.build.json",
|
|
43
|
+
"build": "rimraf dist && npm run build:js && npm run build:types",
|
|
44
|
+
"test": "vitest --config test/vitest.config.ts --run",
|
|
45
|
+
"test:coverage": "vitest --config test/vitest.config.ts --run --coverage",
|
|
46
|
+
"palette-catalog:build": "tsx scripts/build-palette-catalog.ts",
|
|
47
|
+
"palette-catalog:check": "tsx scripts/build-palette-catalog.ts --check"
|
|
48
|
+
},
|
|
49
|
+
"devDependencies": {
|
|
50
|
+
"@vuecs/button": "^1.0.0",
|
|
51
|
+
"@vuecs/core": "^3.0.0",
|
|
52
|
+
"@vuecs/countdown": "^2.0.0",
|
|
53
|
+
"@vuecs/design": "^1.0.0",
|
|
54
|
+
"@vuecs/elements": "^1.0.0",
|
|
55
|
+
"@vuecs/forms": "^4.0.0",
|
|
56
|
+
"@vuecs/gravatar": "^2.0.0",
|
|
57
|
+
"@vuecs/list": "^1.0.0",
|
|
58
|
+
"@vuecs/navigation": "^3.0.0",
|
|
59
|
+
"@vuecs/overlays": "^1.0.0",
|
|
60
|
+
"@vuecs/pagination": "^2.0.0",
|
|
61
|
+
"@vuecs/timeago": "^2.0.0",
|
|
62
|
+
"@vueuse/core": "^14.3.0",
|
|
63
|
+
"culori": "^4.0.1",
|
|
64
|
+
"tailwindcss": "^4.3.0",
|
|
65
|
+
"tsx": "^4.22.0",
|
|
66
|
+
"vue": "^3.5.34"
|
|
67
|
+
},
|
|
68
|
+
"peerDependencies": {
|
|
69
|
+
"@vuecs/core": "^3.0.0",
|
|
70
|
+
"@vuecs/design": "^1.0.0",
|
|
71
|
+
"@vueuse/core": "^13.0.0 || ^14.0.0",
|
|
72
|
+
"vue": "^3.x"
|
|
73
|
+
},
|
|
74
|
+
"engines": {
|
|
75
|
+
"node": ">=22.0.0"
|
|
76
|
+
},
|
|
77
|
+
"publishConfig": {
|
|
78
|
+
"access": "public"
|
|
79
|
+
}
|
|
80
|
+
}
|