@lgtm-hq/turbo-themes 0.12.16

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.
Files changed (184) hide show
  1. package/LICENSE +21 -0
  2. package/README.md +231 -0
  3. package/assets/css/adapters/bulma.css +26 -0
  4. package/assets/css/themes/bulma-dark.css +90 -0
  5. package/assets/css/themes/bulma-light.css +90 -0
  6. package/assets/css/themes/catppuccin-frappe.css +58 -0
  7. package/assets/css/themes/catppuccin-latte.css +58 -0
  8. package/assets/css/themes/catppuccin-macchiato.css +58 -0
  9. package/assets/css/themes/catppuccin-mocha.css +58 -0
  10. package/assets/css/themes/dracula.css +90 -0
  11. package/assets/css/themes/github-dark.css +58 -0
  12. package/assets/css/themes/github-light.css +58 -0
  13. package/assets/css/turbo-core.css +92 -0
  14. package/dist/adapters/bootstrap/_utilities.scss +178 -0
  15. package/dist/adapters/bootstrap/_variables.scss +99 -0
  16. package/dist/adapters/tailwind/colors.js +133 -0
  17. package/dist/adapters/tailwind/preset.js +136 -0
  18. package/dist/index.d.ts +12 -0
  19. package/dist/index.d.ts.map +1 -0
  20. package/dist/index.js +14 -0
  21. package/dist/index.js.map +1 -0
  22. package/dist/themes/bulma.d.ts +31 -0
  23. package/dist/themes/bulma.d.ts.map +1 -0
  24. package/dist/themes/bulma.js +160 -0
  25. package/dist/themes/bulma.js.map +1 -0
  26. package/dist/themes/css.d.ts +4 -0
  27. package/dist/themes/css.d.ts.map +1 -0
  28. package/dist/themes/css.js +617 -0
  29. package/dist/themes/css.js.map +1 -0
  30. package/dist/themes/packs/bulma.d.ts +12 -0
  31. package/dist/themes/packs/bulma.d.ts.map +1 -0
  32. package/dist/themes/packs/bulma.js +285 -0
  33. package/dist/themes/packs/bulma.js.map +1 -0
  34. package/dist/themes/packs/catppuccin.synced.d.ts +3 -0
  35. package/dist/themes/packs/catppuccin.synced.d.ts.map +1 -0
  36. package/dist/themes/packs/catppuccin.synced.js +340 -0
  37. package/dist/themes/packs/catppuccin.synced.js.map +1 -0
  38. package/dist/themes/packs/dracula.d.ts +8 -0
  39. package/dist/themes/packs/dracula.d.ts.map +1 -0
  40. package/dist/themes/packs/dracula.js +145 -0
  41. package/dist/themes/packs/dracula.js.map +1 -0
  42. package/dist/themes/packs/github.synced.d.ts +10 -0
  43. package/dist/themes/packs/github.synced.d.ts.map +1 -0
  44. package/dist/themes/packs/github.synced.js +281 -0
  45. package/dist/themes/packs/github.synced.js.map +1 -0
  46. package/dist/themes/registry.d.ts +3 -0
  47. package/dist/themes/registry.d.ts.map +1 -0
  48. package/dist/themes/registry.js +16 -0
  49. package/dist/themes/registry.js.map +1 -0
  50. package/dist/themes/types.d.ts +172 -0
  51. package/dist/themes/types.d.ts.map +1 -0
  52. package/dist/themes/types.js +4 -0
  53. package/dist/themes/types.js.map +1 -0
  54. package/dist/tokens/index.d.ts +8 -0
  55. package/dist/tokens/index.d.ts.map +1 -0
  56. package/dist/tokens/index.js +9 -0
  57. package/dist/tokens/index.js.map +1 -0
  58. package/dist/tokens/style-dictionary/bulma-dark.json +410 -0
  59. package/dist/tokens/style-dictionary/bulma-light.json +410 -0
  60. package/dist/tokens/style-dictionary/catppuccin-frappe.json +264 -0
  61. package/dist/tokens/style-dictionary/catppuccin-latte.json +264 -0
  62. package/dist/tokens/style-dictionary/catppuccin-macchiato.json +264 -0
  63. package/dist/tokens/style-dictionary/catppuccin-mocha.json +264 -0
  64. package/dist/tokens/style-dictionary/dracula.json +409 -0
  65. package/dist/tokens/style-dictionary/github-dark.json +264 -0
  66. package/dist/tokens/style-dictionary/github-light.json +264 -0
  67. package/dist/tokens/style-dictionary/themes.json +2526 -0
  68. package/dist/tokens/style-dictionary/tokens.json +1050 -0
  69. package/dist/tokens/tokens-typed.json +218 -0
  70. package/package.json +180 -0
  71. package/packages/adapters/bulma/dist/bulma-adapter.css +153 -0
  72. package/packages/adapters/bulma/dist/index.d.ts +60 -0
  73. package/packages/adapters/bulma/dist/index.d.ts.map +1 -0
  74. package/packages/adapters/bulma/dist/index.js +343 -0
  75. package/packages/adapters/bulma/dist/index.js.map +1 -0
  76. package/packages/adapters/tailwind/dist/colors.d.ts +32 -0
  77. package/packages/adapters/tailwind/dist/colors.d.ts.map +1 -0
  78. package/packages/adapters/tailwind/dist/colors.js +133 -0
  79. package/packages/adapters/tailwind/dist/colors.js.map +1 -0
  80. package/packages/adapters/tailwind/dist/preset.d.ts +117 -0
  81. package/packages/adapters/tailwind/dist/preset.d.ts.map +1 -0
  82. package/packages/adapters/tailwind/dist/preset.js +136 -0
  83. package/packages/adapters/tailwind/dist/preset.js.map +1 -0
  84. package/packages/adapters/tailwind/dist/tsconfig.tsbuildinfo +1 -0
  85. package/packages/css/dist/base.d.ts +27 -0
  86. package/packages/css/dist/base.d.ts.map +1 -0
  87. package/packages/css/dist/base.js +277 -0
  88. package/packages/css/dist/base.js.map +1 -0
  89. package/packages/css/dist/components/buttons.css +141 -0
  90. package/packages/css/dist/components/cards.css +157 -0
  91. package/packages/css/dist/components/forms.css +109 -0
  92. package/packages/css/dist/components/navigation.css +175 -0
  93. package/packages/css/dist/components/notifications.css +192 -0
  94. package/packages/css/dist/components/progress.css +113 -0
  95. package/packages/css/dist/components/sidebar.css +537 -0
  96. package/packages/css/dist/components/tables.css +157 -0
  97. package/packages/css/dist/components/tabs.css +106 -0
  98. package/packages/css/dist/components/tags.css +121 -0
  99. package/packages/css/dist/generator.d.ts +60 -0
  100. package/packages/css/dist/generator.d.ts.map +1 -0
  101. package/packages/css/dist/generator.js +267 -0
  102. package/packages/css/dist/generator.js.map +1 -0
  103. package/packages/css/dist/index.d.ts +13 -0
  104. package/packages/css/dist/index.d.ts.map +1 -0
  105. package/packages/css/dist/index.js +16 -0
  106. package/packages/css/dist/index.js.map +1 -0
  107. package/packages/css/dist/syntax.d.ts +29 -0
  108. package/packages/css/dist/syntax.d.ts.map +1 -0
  109. package/packages/css/dist/syntax.js +341 -0
  110. package/packages/css/dist/syntax.js.map +1 -0
  111. package/packages/css/dist/themes/bulma-dark.css +86 -0
  112. package/packages/css/dist/themes/bulma-light.css +86 -0
  113. package/packages/css/dist/themes/catppuccin-frappe.css +61 -0
  114. package/packages/css/dist/themes/catppuccin-latte.css +61 -0
  115. package/packages/css/dist/themes/catppuccin-macchiato.css +61 -0
  116. package/packages/css/dist/themes/catppuccin-mocha.css +61 -0
  117. package/packages/css/dist/themes/dracula.css +85 -0
  118. package/packages/css/dist/themes/github-dark.css +61 -0
  119. package/packages/css/dist/themes/github-light.css +61 -0
  120. package/packages/css/dist/turbo-base.css +246 -0
  121. package/packages/css/dist/turbo-components.css +1833 -0
  122. package/packages/css/dist/turbo-core.css +92 -0
  123. package/packages/css/dist/turbo-syntax.css +242 -0
  124. package/packages/css/dist/turbo.css +727 -0
  125. package/packages/theme-selector/dist/accessibility.d.ts +8 -0
  126. package/packages/theme-selector/dist/accessibility.d.ts.map +1 -0
  127. package/packages/theme-selector/dist/accessibility.js +19 -0
  128. package/packages/theme-selector/dist/accessibility.js.map +1 -0
  129. package/packages/theme-selector/dist/apply-theme.d.ts +12 -0
  130. package/packages/theme-selector/dist/apply-theme.d.ts.map +1 -0
  131. package/packages/theme-selector/dist/apply-theme.js +60 -0
  132. package/packages/theme-selector/dist/apply-theme.js.map +1 -0
  133. package/packages/theme-selector/dist/constants.d.ts +28 -0
  134. package/packages/theme-selector/dist/constants.d.ts.map +1 -0
  135. package/packages/theme-selector/dist/constants.js +29 -0
  136. package/packages/theme-selector/dist/constants.js.map +1 -0
  137. package/packages/theme-selector/dist/dropdown/events.d.ts +9 -0
  138. package/packages/theme-selector/dist/dropdown/events.d.ts.map +1 -0
  139. package/packages/theme-selector/dist/dropdown/events.js +120 -0
  140. package/packages/theme-selector/dist/dropdown/events.js.map +1 -0
  141. package/packages/theme-selector/dist/dropdown/helpers.d.ts +12 -0
  142. package/packages/theme-selector/dist/dropdown/helpers.d.ts.map +1 -0
  143. package/packages/theme-selector/dist/dropdown/helpers.js +25 -0
  144. package/packages/theme-selector/dist/dropdown/helpers.js.map +1 -0
  145. package/packages/theme-selector/dist/dropdown/state.d.ts +26 -0
  146. package/packages/theme-selector/dist/dropdown/state.d.ts.map +1 -0
  147. package/packages/theme-selector/dist/dropdown/state.js +50 -0
  148. package/packages/theme-selector/dist/dropdown/state.js.map +1 -0
  149. package/packages/theme-selector/dist/dropdown/ui.d.ts +46 -0
  150. package/packages/theme-selector/dist/dropdown/ui.d.ts.map +1 -0
  151. package/packages/theme-selector/dist/dropdown/ui.js +179 -0
  152. package/packages/theme-selector/dist/dropdown/ui.js.map +1 -0
  153. package/packages/theme-selector/dist/errors.d.ts +59 -0
  154. package/packages/theme-selector/dist/errors.d.ts.map +1 -0
  155. package/packages/theme-selector/dist/errors.js +127 -0
  156. package/packages/theme-selector/dist/errors.js.map +1 -0
  157. package/packages/theme-selector/dist/index.d.ts +25 -0
  158. package/packages/theme-selector/dist/index.d.ts.map +1 -0
  159. package/packages/theme-selector/dist/index.js +114 -0
  160. package/packages/theme-selector/dist/index.js.map +1 -0
  161. package/packages/theme-selector/dist/navbar.d.ts +13 -0
  162. package/packages/theme-selector/dist/navbar.d.ts.map +1 -0
  163. package/packages/theme-selector/dist/navbar.js +75 -0
  164. package/packages/theme-selector/dist/navbar.js.map +1 -0
  165. package/packages/theme-selector/dist/storage.d.ts +32 -0
  166. package/packages/theme-selector/dist/storage.d.ts.map +1 -0
  167. package/packages/theme-selector/dist/storage.js +100 -0
  168. package/packages/theme-selector/dist/storage.js.map +1 -0
  169. package/packages/theme-selector/dist/theme-loader.d.ts +37 -0
  170. package/packages/theme-selector/dist/theme-loader.d.ts.map +1 -0
  171. package/packages/theme-selector/dist/theme-loader.js +142 -0
  172. package/packages/theme-selector/dist/theme-loader.js.map +1 -0
  173. package/packages/theme-selector/dist/theme-mapper.d.ts +25 -0
  174. package/packages/theme-selector/dist/theme-mapper.d.ts.map +1 -0
  175. package/packages/theme-selector/dist/theme-mapper.js +99 -0
  176. package/packages/theme-selector/dist/theme-mapper.js.map +1 -0
  177. package/packages/theme-selector/dist/theme-resolver.d.ts +50 -0
  178. package/packages/theme-selector/dist/theme-resolver.d.ts.map +1 -0
  179. package/packages/theme-selector/dist/theme-resolver.js +84 -0
  180. package/packages/theme-selector/dist/theme-resolver.js.map +1 -0
  181. package/packages/theme-selector/dist/types.d.ts +7 -0
  182. package/packages/theme-selector/dist/types.d.ts.map +1 -0
  183. package/packages/theme-selector/dist/types.js +6 -0
  184. package/packages/theme-selector/dist/types.js.map +1 -0
@@ -0,0 +1,136 @@
1
+ // SPDX-License-Identifier: MIT
2
+ /**
3
+ * Tailwind CSS preset for Turbo Themes
4
+ *
5
+ * Maps Turbo Theme design tokens to Tailwind utility classes.
6
+ * Supports all theme variants and provides semantic color mappings.
7
+ *
8
+ * @example
9
+ * ```js
10
+ * // tailwind.config.js
11
+ * module.exports = {
12
+ * presets: [require('@lgtm-hq/turbo-themes/adapters/tailwind/preset')],
13
+ * theme: { extend: {} },
14
+ * plugins: [],
15
+ * };
16
+ * ```
17
+ */
18
+ import { themeIds } from '@lgtm-hq/turbo-themes-core';
19
+ import { createColorMappings } from './colors.js';
20
+ const defaultOptions = {
21
+ themes: [...themeIds],
22
+ darkMode: true,
23
+ colors: {},
24
+ };
25
+ export default function preset(userOptions = {}) {
26
+ const options = { ...defaultOptions, ...userOptions };
27
+ // Generate color mappings for all requested themes
28
+ const colorMappings = createColorMappings(options.themes || []);
29
+ return {
30
+ theme: {
31
+ extend: {
32
+ colors: {
33
+ // Base theme colors (always available)
34
+ background: 'var(--turbo-bg-base)',
35
+ surface: 'var(--turbo-bg-surface)',
36
+ 'surface-alt': 'var(--turbo-bg-surface-alt)',
37
+ foreground: 'var(--turbo-text-primary)',
38
+ 'foreground-secondary': 'var(--turbo-text-secondary)',
39
+ 'foreground-inverse': 'var(--turbo-text-inverse)',
40
+ muted: 'var(--turbo-text-secondary)',
41
+ // Brand colors
42
+ primary: 'var(--turbo-brand-primary)',
43
+ brand: 'var(--turbo-brand-primary)',
44
+ // State colors
45
+ success: 'var(--turbo-state-success)',
46
+ error: 'var(--turbo-state-danger)',
47
+ warning: 'var(--turbo-state-warning)',
48
+ info: 'var(--turbo-state-info)',
49
+ danger: 'var(--turbo-state-danger)',
50
+ // Border colors
51
+ border: 'var(--turbo-border-default)',
52
+ 'border-strong': 'var(--turbo-border-strong)',
53
+ // Accent colors
54
+ accent: 'var(--turbo-accent-link)',
55
+ link: 'var(--turbo-accent-link)',
56
+ // Content colors
57
+ heading: {
58
+ 1: 'var(--turbo-heading-h1)',
59
+ 2: 'var(--turbo-heading-h2)',
60
+ 3: 'var(--turbo-heading-h3)',
61
+ 4: 'var(--turbo-heading-h4)',
62
+ 5: 'var(--turbo-heading-h5)',
63
+ 6: 'var(--turbo-heading-h6)',
64
+ },
65
+ body: {
66
+ primary: 'var(--turbo-body-primary)',
67
+ secondary: 'var(--turbo-body-secondary)',
68
+ },
69
+ selection: {
70
+ fg: 'var(--turbo-selection-fg)',
71
+ bg: 'var(--turbo-selection-bg)',
72
+ },
73
+ blockquote: {
74
+ border: 'var(--turbo-blockquote-border)',
75
+ fg: 'var(--turbo-blockquote-fg)',
76
+ bg: 'var(--turbo-blockquote-bg)',
77
+ },
78
+ code: {
79
+ inline: {
80
+ fg: 'var(--turbo-code-inline-fg)',
81
+ bg: 'var(--turbo-code-inline-bg)',
82
+ },
83
+ block: {
84
+ fg: 'var(--turbo-code-block-fg)',
85
+ bg: 'var(--turbo-code-block-bg)',
86
+ },
87
+ },
88
+ table: {
89
+ border: 'var(--turbo-table-border)',
90
+ stripe: 'var(--turbo-table-stripe)',
91
+ thead: 'var(--turbo-table-thead-bg)',
92
+ cell: 'var(--turbo-table-cell-bg)',
93
+ header: 'var(--turbo-table-header-fg)',
94
+ },
95
+ // Custom color mappings
96
+ ...colorMappings,
97
+ ...options.colors,
98
+ },
99
+ // Spacing tokens (separate from colors)
100
+ spacing: {
101
+ 'turbo-xs': 'var(--turbo-spacing-xs, 0.25rem)',
102
+ 'turbo-sm': 'var(--turbo-spacing-sm, 0.5rem)',
103
+ 'turbo-md': 'var(--turbo-spacing-md, 1rem)',
104
+ 'turbo-lg': 'var(--turbo-spacing-lg, 1.5rem)',
105
+ 'turbo-xl': 'var(--turbo-spacing-xl, 2rem)',
106
+ },
107
+ // Shadow/elevation support
108
+ boxShadow: {
109
+ 'elevation-sm': 'var(--turbo-elevation-sm, 0 1px 2px 0 rgba(0, 0, 0, 0.05))',
110
+ 'elevation-md': 'var(--turbo-elevation-md, 0 4px 6px -1px rgba(0, 0, 0, 0.1))',
111
+ 'elevation-lg': 'var(--turbo-elevation-lg, 0 10px 15px -3px rgba(0, 0, 0, 0.1))',
112
+ 'elevation-xl': 'var(--turbo-elevation-xl, 0 20px 25px -5px rgba(0, 0, 0, 0.1))',
113
+ },
114
+ // Animation support
115
+ transitionDuration: {
116
+ fast: 'var(--turbo-animation-duration-fast, 150ms)',
117
+ normal: 'var(--turbo-animation-duration-normal, 300ms)',
118
+ slow: 'var(--turbo-animation-duration-slow, 500ms)',
119
+ },
120
+ transitionTimingFunction: {
121
+ default: 'var(--turbo-animation-easing-default, cubic-bezier(0.4, 0, 0.2, 1))',
122
+ emphasized: 'var(--turbo-animation-easing-emphasized, cubic-bezier(0.05, 0.7, 0.1, 1))',
123
+ },
124
+ // Typography
125
+ fontFamily: {
126
+ sans: 'var(--turbo-font-sans)',
127
+ mono: 'var(--turbo-font-mono)',
128
+ },
129
+ },
130
+ },
131
+ };
132
+ }
133
+ // Export utilities for advanced usage
134
+ export { createColorMappings } from './colors.js';
135
+ export { getTheme, themesById, themeIds } from '@lgtm-hq/turbo-themes-core';
136
+ //# sourceMappingURL=preset.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"preset.js","sourceRoot":"","sources":["../preset.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1 @@
1
+ {"fileNames":["../../../../node_modules/.bun/typescript@5.9.3/node_modules/typescript/lib/lib.es5.d.ts","../../../../node_modules/.bun/typescript@5.9.3/node_modules/typescript/lib/lib.es2015.d.ts","../../../../node_modules/.bun/typescript@5.9.3/node_modules/typescript/lib/lib.es2016.d.ts","../../../../node_modules/.bun/typescript@5.9.3/node_modules/typescript/lib/lib.es2017.d.ts","../../../../node_modules/.bun/typescript@5.9.3/node_modules/typescript/lib/lib.es2018.d.ts","../../../../node_modules/.bun/typescript@5.9.3/node_modules/typescript/lib/lib.es2019.d.ts","../../../../node_modules/.bun/typescript@5.9.3/node_modules/typescript/lib/lib.es2020.d.ts","../../../../node_modules/.bun/typescript@5.9.3/node_modules/typescript/lib/lib.dom.d.ts","../../../../node_modules/.bun/typescript@5.9.3/node_modules/typescript/lib/lib.es2015.core.d.ts","../../../../node_modules/.bun/typescript@5.9.3/node_modules/typescript/lib/lib.es2015.collection.d.ts","../../../../node_modules/.bun/typescript@5.9.3/node_modules/typescript/lib/lib.es2015.generator.d.ts","../../../../node_modules/.bun/typescript@5.9.3/node_modules/typescript/lib/lib.es2015.iterable.d.ts","../../../../node_modules/.bun/typescript@5.9.3/node_modules/typescript/lib/lib.es2015.promise.d.ts","../../../../node_modules/.bun/typescript@5.9.3/node_modules/typescript/lib/lib.es2015.proxy.d.ts","../../../../node_modules/.bun/typescript@5.9.3/node_modules/typescript/lib/lib.es2015.reflect.d.ts","../../../../node_modules/.bun/typescript@5.9.3/node_modules/typescript/lib/lib.es2015.symbol.d.ts","../../../../node_modules/.bun/typescript@5.9.3/node_modules/typescript/lib/lib.es2015.symbol.wellknown.d.ts","../../../../node_modules/.bun/typescript@5.9.3/node_modules/typescript/lib/lib.es2016.array.include.d.ts","../../../../node_modules/.bun/typescript@5.9.3/node_modules/typescript/lib/lib.es2016.intl.d.ts","../../../../node_modules/.bun/typescript@5.9.3/node_modules/typescript/lib/lib.es2017.arraybuffer.d.ts","../../../../node_modules/.bun/typescript@5.9.3/node_modules/typescript/lib/lib.es2017.date.d.ts","../../../../node_modules/.bun/typescript@5.9.3/node_modules/typescript/lib/lib.es2017.object.d.ts","../../../../node_modules/.bun/typescript@5.9.3/node_modules/typescript/lib/lib.es2017.sharedmemory.d.ts","../../../../node_modules/.bun/typescript@5.9.3/node_modules/typescript/lib/lib.es2017.string.d.ts","../../../../node_modules/.bun/typescript@5.9.3/node_modules/typescript/lib/lib.es2017.intl.d.ts","../../../../node_modules/.bun/typescript@5.9.3/node_modules/typescript/lib/lib.es2017.typedarrays.d.ts","../../../../node_modules/.bun/typescript@5.9.3/node_modules/typescript/lib/lib.es2018.asyncgenerator.d.ts","../../../../node_modules/.bun/typescript@5.9.3/node_modules/typescript/lib/lib.es2018.asynciterable.d.ts","../../../../node_modules/.bun/typescript@5.9.3/node_modules/typescript/lib/lib.es2018.intl.d.ts","../../../../node_modules/.bun/typescript@5.9.3/node_modules/typescript/lib/lib.es2018.promise.d.ts","../../../../node_modules/.bun/typescript@5.9.3/node_modules/typescript/lib/lib.es2018.regexp.d.ts","../../../../node_modules/.bun/typescript@5.9.3/node_modules/typescript/lib/lib.es2019.array.d.ts","../../../../node_modules/.bun/typescript@5.9.3/node_modules/typescript/lib/lib.es2019.object.d.ts","../../../../node_modules/.bun/typescript@5.9.3/node_modules/typescript/lib/lib.es2019.string.d.ts","../../../../node_modules/.bun/typescript@5.9.3/node_modules/typescript/lib/lib.es2019.symbol.d.ts","../../../../node_modules/.bun/typescript@5.9.3/node_modules/typescript/lib/lib.es2019.intl.d.ts","../../../../node_modules/.bun/typescript@5.9.3/node_modules/typescript/lib/lib.es2020.bigint.d.ts","../../../../node_modules/.bun/typescript@5.9.3/node_modules/typescript/lib/lib.es2020.date.d.ts","../../../../node_modules/.bun/typescript@5.9.3/node_modules/typescript/lib/lib.es2020.promise.d.ts","../../../../node_modules/.bun/typescript@5.9.3/node_modules/typescript/lib/lib.es2020.sharedmemory.d.ts","../../../../node_modules/.bun/typescript@5.9.3/node_modules/typescript/lib/lib.es2020.string.d.ts","../../../../node_modules/.bun/typescript@5.9.3/node_modules/typescript/lib/lib.es2020.symbol.wellknown.d.ts","../../../../node_modules/.bun/typescript@5.9.3/node_modules/typescript/lib/lib.es2020.intl.d.ts","../../../../node_modules/.bun/typescript@5.9.3/node_modules/typescript/lib/lib.es2020.number.d.ts","../../../../node_modules/.bun/typescript@5.9.3/node_modules/typescript/lib/lib.decorators.d.ts","../../../../node_modules/.bun/typescript@5.9.3/node_modules/typescript/lib/lib.decorators.legacy.d.ts","../../../../node_modules/.bun/@types+react@19.2.9/node_modules/@types/react/global.d.ts","../../../../node_modules/.bun/csstype@3.2.3/node_modules/csstype/index.d.ts","../../../../node_modules/.bun/@types+react@19.2.9/node_modules/@types/react/index.d.ts","../../../../node_modules/.bun/@types+react@19.2.9/node_modules/@types/react/jsx-runtime.d.ts","../../../core/dist/themes/types.d.ts","../../../core/dist/tokens/index.d.ts","../../../core/dist/themes/registry.d.ts","../../../core/dist/index.d.ts","../colors.ts","../preset.ts","../../../../node_modules/.bun/@types+react-dom@19.2.3+683c4a136ce5ea82/node_modules/@types/react-dom/index.d.ts"],"fileIdsList":[[49],[47,48],[50,54],[50,54,55],[51,52,53],[52],[51]],"fileInfos":[{"version":"c430d44666289dae81f30fa7b2edebf186ecc91a2d4c71266ea6ae76388792e1","affectsGlobalScope":true,"impliedFormat":1},{"version":"45b7ab580deca34ae9729e97c13cfd999df04416a79116c3bfb483804f85ded4","impliedFormat":1},{"version":"3facaf05f0c5fc569c5649dd359892c98a85557e3e0c847964caeb67076f4d75","impliedFormat":1},{"version":"e44bb8bbac7f10ecc786703fe0a6a4b952189f908707980ba8f3c8975a760962","impliedFormat":1},{"version":"5e1c4c362065a6b95ff952c0eab010f04dcd2c3494e813b493ecfd4fcb9fc0d8","impliedFormat":1},{"version":"68d73b4a11549f9c0b7d352d10e91e5dca8faa3322bfb77b661839c42b1ddec7","impliedFormat":1},{"version":"5efce4fc3c29ea84e8928f97adec086e3dc876365e0982cc8479a07954a3efd4","impliedFormat":1},{"version":"080941d9f9ff9307f7e27a83bcd888b7c8270716c39af943532438932ec1d0b9","affectsGlobalScope":true,"impliedFormat":1},{"version":"c57796738e7f83dbc4b8e65132f11a377649c00dd3eee333f672b8f0a6bea671","affectsGlobalScope":true,"impliedFormat":1},{"version":"dc2df20b1bcdc8c2d34af4926e2c3ab15ffe1160a63e58b7e09833f616efff44","affectsGlobalScope":true,"impliedFormat":1},{"version":"515d0b7b9bea2e31ea4ec968e9edd2c39d3eebf4a2d5cbd04e88639819ae3b71","affectsGlobalScope":true,"impliedFormat":1},{"version":"0559b1f683ac7505ae451f9a96ce4c3c92bdc71411651ca6ddb0e88baaaad6a3","affectsGlobalScope":true,"impliedFormat":1},{"version":"0dc1e7ceda9b8b9b455c3a2d67b0412feab00bd2f66656cd8850e8831b08b537","affectsGlobalScope":true,"impliedFormat":1},{"version":"ce691fb9e5c64efb9547083e4a34091bcbe5bdb41027e310ebba8f7d96a98671","affectsGlobalScope":true,"impliedFormat":1},{"version":"8d697a2a929a5fcb38b7a65594020fcef05ec1630804a33748829c5ff53640d0","affectsGlobalScope":true,"impliedFormat":1},{"version":"4ff2a353abf8a80ee399af572debb8faab2d33ad38c4b4474cff7f26e7653b8d","affectsGlobalScope":true,"impliedFormat":1},{"version":"fb0f136d372979348d59b3f5020b4cdb81b5504192b1cacff5d1fbba29378aa1","affectsGlobalScope":true,"impliedFormat":1},{"version":"d15bea3d62cbbdb9797079416b8ac375ae99162a7fba5de2c6c505446486ac0a","affectsGlobalScope":true,"impliedFormat":1},{"version":"68d18b664c9d32a7336a70235958b8997ebc1c3b8505f4f1ae2b7e7753b87618","affectsGlobalScope":true,"impliedFormat":1},{"version":"eb3d66c8327153d8fa7dd03f9c58d351107fe824c79e9b56b462935176cdf12a","affectsGlobalScope":true,"impliedFormat":1},{"version":"38f0219c9e23c915ef9790ab1d680440d95419ad264816fa15009a8851e79119","affectsGlobalScope":true,"impliedFormat":1},{"version":"69ab18c3b76cd9b1be3d188eaf8bba06112ebbe2f47f6c322b5105a6fbc45a2e","affectsGlobalScope":true,"impliedFormat":1},{"version":"a680117f487a4d2f30ea46f1b4b7f58bef1480456e18ba53ee85c2746eeca012","affectsGlobalScope":true,"impliedFormat":1},{"version":"2f11ff796926e0832f9ae148008138ad583bd181899ab7dd768a2666700b1893","affectsGlobalScope":true,"impliedFormat":1},{"version":"4de680d5bb41c17f7f68e0419412ca23c98d5749dcaaea1896172f06435891fc","affectsGlobalScope":true,"impliedFormat":1},{"version":"954296b30da6d508a104a3a0b5d96b76495c709785c1d11610908e63481ee667","affectsGlobalScope":true,"impliedFormat":1},{"version":"ac9538681b19688c8eae65811b329d3744af679e0bdfa5d842d0e32524c73e1c","affectsGlobalScope":true,"impliedFormat":1},{"version":"0a969edff4bd52585473d24995c5ef223f6652d6ef46193309b3921d65dd4376","affectsGlobalScope":true,"impliedFormat":1},{"version":"9e9fbd7030c440b33d021da145d3232984c8bb7916f277e8ffd3dc2e3eae2bdb","affectsGlobalScope":true,"impliedFormat":1},{"version":"811ec78f7fefcabbda4bfa93b3eb67d9ae166ef95f9bff989d964061cbf81a0c","affectsGlobalScope":true,"impliedFormat":1},{"version":"717937616a17072082152a2ef351cb51f98802fb4b2fdabd32399843875974ca","affectsGlobalScope":true,"impliedFormat":1},{"version":"d7e7d9b7b50e5f22c915b525acc5a49a7a6584cf8f62d0569e557c5cfc4b2ac2","affectsGlobalScope":true,"impliedFormat":1},{"version":"71c37f4c9543f31dfced6c7840e068c5a5aacb7b89111a4364b1d5276b852557","affectsGlobalScope":true,"impliedFormat":1},{"version":"576711e016cf4f1804676043e6a0a5414252560eb57de9faceee34d79798c850","affectsGlobalScope":true,"impliedFormat":1},{"version":"89c1b1281ba7b8a96efc676b11b264de7a8374c5ea1e6617f11880a13fc56dc6","affectsGlobalScope":true,"impliedFormat":1},{"version":"74f7fa2d027d5b33eb0471c8e82a6c87216223181ec31247c357a3e8e2fddc5b","affectsGlobalScope":true,"impliedFormat":1},{"version":"d6d7ae4d1f1f3772e2a3cde568ed08991a8ae34a080ff1151af28b7f798e22ca","affectsGlobalScope":true,"impliedFormat":1},{"version":"063600664504610fe3e99b717a1223f8b1900087fab0b4cad1496a114744f8df","affectsGlobalScope":true,"impliedFormat":1},{"version":"934019d7e3c81950f9a8426d093458b65d5aff2c7c1511233c0fd5b941e608ab","affectsGlobalScope":true,"impliedFormat":1},{"version":"52ada8e0b6e0482b728070b7639ee42e83a9b1c22d205992756fe020fd9f4a47","affectsGlobalScope":true,"impliedFormat":1},{"version":"3bdefe1bfd4d6dee0e26f928f93ccc128f1b64d5d501ff4a8cf3c6371200e5e6","affectsGlobalScope":true,"impliedFormat":1},{"version":"59fb2c069260b4ba00b5643b907ef5d5341b167e7d1dbf58dfd895658bda2867","affectsGlobalScope":true,"impliedFormat":1},{"version":"639e512c0dfc3fad96a84caad71b8834d66329a1f28dc95e3946c9b58176c73a","affectsGlobalScope":true,"impliedFormat":1},{"version":"368af93f74c9c932edd84c58883e736c9e3d53cec1fe24c0b0ff451f529ceab1","affectsGlobalScope":true,"impliedFormat":1},{"version":"8e7f8264d0fb4c5339605a15daadb037bf238c10b654bb3eee14208f860a32ea","affectsGlobalScope":true,"impliedFormat":1},{"version":"782dec38049b92d4e85c1585fbea5474a219c6984a35b004963b00beb1aab538","affectsGlobalScope":true,"impliedFormat":1},{"version":"170d4db14678c68178ee8a3d5a990d5afb759ecb6ec44dbd885c50f6da6204f6","affectsGlobalScope":true,"impliedFormat":1},{"version":"ac51dd7d31333793807a6abaa5ae168512b6131bd41d9c5b98477fc3b7800f9f","impliedFormat":1},{"version":"cf8db38686dfd74567ea692266fe44fbb32fa0e25fc0888ad6fc40e65873607e","impliedFormat":1},{"version":"42c169fb8c2d42f4f668c624a9a11e719d5d07dacbebb63cbcf7ef365b0a75b3","impliedFormat":1},"94ad1ae0c7ad1bd23cf76ed2233960b97adcc8cdffa16311a00f7bcd7bafdc3b","ba42ffb7054311e72981f42d2c0cedf349b8f29d47856b36318a3cbd48b1f35e","3549aeb2205b3a57ce85301689e50146cede675d4fddfe76d5b9b9f59da5987b","fbf3be44e91fb2d5370b7ae0a4e9d6b4c1ff052ed44762f2a223734f5f23b24d",{"version":"bd0d3371e2c4e31540901294bcff98dd21555c9c504e14f78fce97186149c6c8","signature":"4ea2809c4d9cdbcbbd4c1d7ba5a1dcb03d09d76e9625d82fd171adc46634fdba"},{"version":"df61a9ba794c04fe201e5e9cb6fdfdd921548176a2e3697d8dfd4c612a1c91a3","signature":"aa627d79336f57e875caf5a7cf5ec86ca4b6912edb8eca61b42b41ba98f617dc"},{"version":"be1cc4d94ea60cbe567bc29ed479d42587bf1e6cba490f123d329976b0fe4ee5","impliedFormat":1}],"root":[55,56],"options":{"composite":true,"declaration":true,"declarationMap":true,"exactOptionalPropertyTypes":true,"jsx":4,"module":6,"noUncheckedIndexedAccess":true,"outDir":"./","rootDir":"..","skipLibCheck":true,"sourceMap":true,"strict":true,"target":7},"referencedMap":[[57,1],[49,2],[50,1],[55,3],[56,4],[54,5],[53,6],[52,7]],"latestChangedDtsFile":"./preset.d.ts","version":"5.9.3"}
@@ -0,0 +1,27 @@
1
+ /**
2
+ * Base semantic styles for Turbo Themes.
3
+ *
4
+ * Provides optional CSS that applies theme variables to common HTML elements.
5
+ * This is a lightweight alternative to a full CSS framework.
6
+ *
7
+ * @packageDocumentation
8
+ */
9
+ /**
10
+ * Minimal CSS reset that works well with Turbo theme variables.
11
+ * Approximately 500 bytes minified.
12
+ */
13
+ export declare const CSS_RESET = "/* Turbo Themes - Minimal Reset */\n*,\n*::before,\n*::after {\n box-sizing: border-box;\n}\n\nbody,\nh1,\nh2,\nh3,\nh4,\nh5,\nh6,\np,\nfigure,\nblockquote,\ndl,\ndd {\n margin: 0;\n}\n\nhtml {\n -webkit-text-size-adjust: 100%;\n -moz-text-size-adjust: 100%;\n text-size-adjust: 100%;\n}\n\nbody {\n min-height: 100vh;\n line-height: 1.5;\n -webkit-font-smoothing: antialiased;\n}\n\nimg,\npicture,\nvideo,\ncanvas,\nsvg {\n display: block;\n max-width: 100%;\n}\n\ninput,\nbutton,\ntextarea,\nselect {\n font: inherit;\n}\n";
14
+ /**
15
+ * Base semantic styles that use Turbo theme variables.
16
+ * Approximately 2KB minified.
17
+ */
18
+ export declare const CSS_BASE = "/* Turbo Themes - Base Semantic Styles */\n\n/* Root & Body */\n:root {\n color-scheme: light dark;\n}\n\nbody {\n font-family: var(--turbo-font-sans, system-ui, -apple-system, sans-serif);\n color: var(--turbo-text-primary, #000);\n background-color: var(--turbo-bg-base, #fff);\n}\n\n/* Typography */\nh1, h2, h3, h4, h5, h6 {\n line-height: 1.2;\n font-weight: 600;\n}\n\nh1 { color: var(--turbo-heading-h1, var(--turbo-text-primary)); font-size: 2.5rem; }\nh2 { color: var(--turbo-heading-h2, var(--turbo-text-primary)); font-size: 2rem; }\nh3 { color: var(--turbo-heading-h3, var(--turbo-text-primary)); font-size: 1.75rem; }\nh4 { color: var(--turbo-heading-h4, var(--turbo-text-primary)); font-size: 1.5rem; }\nh5 { color: var(--turbo-heading-h5, var(--turbo-text-primary)); font-size: 1.25rem; }\nh6 { color: var(--turbo-heading-h6, var(--turbo-text-primary)); font-size: 1rem; }\n\np {\n color: var(--turbo-body-primary, var(--turbo-text-primary));\n}\n\n/* Links */\na {\n color: var(--turbo-accent-link, var(--turbo-brand-primary));\n text-decoration: none;\n}\n\na:hover {\n text-decoration: underline;\n}\n\n/* Selection */\n::selection {\n color: var(--turbo-selection-fg, #fff);\n background-color: var(--turbo-selection-bg, #3273dc);\n}\n\n/* Code */\ncode,\nkbd,\nsamp,\npre {\n font-family: var(--turbo-font-mono, ui-monospace, monospace);\n}\n\ncode {\n padding: 0.125rem 0.25rem;\n color: var(--turbo-code-inline-fg, #e83e8c);\n background-color: var(--turbo-code-inline-bg, #f8f9fa);\n border-radius: 0.25rem;\n font-size: 0.875em;\n}\n\npre {\n padding: 1rem;\n color: var(--turbo-code-block-fg, #f8f9fa);\n background-color: var(--turbo-code-block-bg, #2b2b2b);\n border-radius: 0.5rem;\n overflow-x: auto;\n}\n\npre code {\n padding: 0;\n background-color: transparent;\n font-size: inherit;\n}\n\n/* Blockquote */\nblockquote {\n margin: 1rem 0;\n padding: 0.5rem 1rem;\n color: var(--turbo-blockquote-fg);\n background-color: var(--turbo-blockquote-bg);\n border-left: 4px solid var(--turbo-blockquote-border);\n border-radius: 0 0.25rem 0.25rem 0;\n}\n\n/* Tables */\ntable {\n width: 100%;\n border-collapse: collapse;\n}\n\nth,\ntd {\n padding: 0.75rem;\n text-align: left;\n border: 1px solid var(--turbo-table-border);\n}\n\nth {\n color: var(--turbo-table-header-fg, var(--turbo-text-primary));\n background-color: var(--turbo-table-thead-bg);\n font-weight: 600;\n}\n\ntr:nth-child(even) td {\n background-color: var(--turbo-table-stripe);\n}\n\n/* Form Elements */\nbutton,\ninput,\nselect,\ntextarea {\n border: 1px solid var(--turbo-border-default);\n border-radius: 0.25rem;\n background-color: var(--turbo-bg-surface);\n color: var(--turbo-text-primary);\n}\n\nbutton {\n padding: 0.5rem 1rem;\n cursor: pointer;\n background-color: var(--turbo-brand-primary);\n color: var(--turbo-text-inverse);\n border: none;\n font-weight: 500;\n}\n\nbutton:hover {\n opacity: 0.9;\n}\n\nbutton:disabled {\n opacity: 0.5;\n cursor: not-allowed;\n}\n\ninput,\nselect,\ntextarea {\n padding: 0.5rem 0.75rem;\n}\n\nbutton:focus-visible,\ninput:focus,\nselect:focus,\ntextarea:focus {\n outline: 2px solid var(--turbo-brand-primary);\n outline-offset: 2px;\n}\n\n/* Utility classes */\n.surface {\n background-color: var(--turbo-bg-surface);\n}\n\n.surface-alt {\n background-color: var(--turbo-bg-overlay);\n}\n\n.text-primary {\n color: var(--turbo-text-primary);\n}\n\n.text-secondary {\n color: var(--turbo-text-secondary);\n}\n\n.text-success {\n color: var(--turbo-state-success);\n}\n\n.text-warning {\n color: var(--turbo-state-warning);\n}\n\n.text-danger {\n color: var(--turbo-state-danger);\n}\n\n.text-info {\n color: var(--turbo-state-info);\n}\n\n.border {\n border: 1px solid var(--turbo-border-default);\n}\n\n.rounded {\n border-radius: 0.25rem;\n}\n\n.rounded-lg {\n border-radius: 0.5rem;\n}\n";
19
+ /**
20
+ * Generates the complete base CSS including reset and semantic styles.
21
+ */
22
+ export declare function generateBaseCss(): string;
23
+ /**
24
+ * Generates only the reset CSS.
25
+ */
26
+ export declare function generateResetCss(): string;
27
+ //# sourceMappingURL=base.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"base.d.ts","sourceRoot":"","sources":["../src/base.ts"],"names":[],"mappings":"AACA;;;;;;;GAOG;AAEH;;;GAGG;AACH,eAAO,MAAM,SAAS,4hBAiDrB,CAAC;AAEF;;;GAGG;AACH,eAAO,MAAM,QAAQ,o0HAoMpB,CAAC;AAEF;;GAEG;AACH,wBAAgB,eAAe,IAAI,MAAM,CAExC;AAED;;GAEG;AACH,wBAAgB,gBAAgB,IAAI,MAAM,CAEzC"}
@@ -0,0 +1,277 @@
1
+ // SPDX-License-Identifier: MIT
2
+ /**
3
+ * Base semantic styles for Turbo Themes.
4
+ *
5
+ * Provides optional CSS that applies theme variables to common HTML elements.
6
+ * This is a lightweight alternative to a full CSS framework.
7
+ *
8
+ * @packageDocumentation
9
+ */
10
+ /**
11
+ * Minimal CSS reset that works well with Turbo theme variables.
12
+ * Approximately 500 bytes minified.
13
+ */
14
+ export const CSS_RESET = `/* Turbo Themes - Minimal Reset */
15
+ *,
16
+ *::before,
17
+ *::after {
18
+ box-sizing: border-box;
19
+ }
20
+
21
+ body,
22
+ h1,
23
+ h2,
24
+ h3,
25
+ h4,
26
+ h5,
27
+ h6,
28
+ p,
29
+ figure,
30
+ blockquote,
31
+ dl,
32
+ dd {
33
+ margin: 0;
34
+ }
35
+
36
+ html {
37
+ -webkit-text-size-adjust: 100%;
38
+ -moz-text-size-adjust: 100%;
39
+ text-size-adjust: 100%;
40
+ }
41
+
42
+ body {
43
+ min-height: 100vh;
44
+ line-height: 1.5;
45
+ -webkit-font-smoothing: antialiased;
46
+ }
47
+
48
+ img,
49
+ picture,
50
+ video,
51
+ canvas,
52
+ svg {
53
+ display: block;
54
+ max-width: 100%;
55
+ }
56
+
57
+ input,
58
+ button,
59
+ textarea,
60
+ select {
61
+ font: inherit;
62
+ }
63
+ `;
64
+ /**
65
+ * Base semantic styles that use Turbo theme variables.
66
+ * Approximately 2KB minified.
67
+ */
68
+ export const CSS_BASE = `/* Turbo Themes - Base Semantic Styles */
69
+
70
+ /* Root & Body */
71
+ :root {
72
+ color-scheme: light dark;
73
+ }
74
+
75
+ body {
76
+ font-family: var(--turbo-font-sans, system-ui, -apple-system, sans-serif);
77
+ color: var(--turbo-text-primary, #000);
78
+ background-color: var(--turbo-bg-base, #fff);
79
+ }
80
+
81
+ /* Typography */
82
+ h1, h2, h3, h4, h5, h6 {
83
+ line-height: 1.2;
84
+ font-weight: 600;
85
+ }
86
+
87
+ h1 { color: var(--turbo-heading-h1, var(--turbo-text-primary)); font-size: 2.5rem; }
88
+ h2 { color: var(--turbo-heading-h2, var(--turbo-text-primary)); font-size: 2rem; }
89
+ h3 { color: var(--turbo-heading-h3, var(--turbo-text-primary)); font-size: 1.75rem; }
90
+ h4 { color: var(--turbo-heading-h4, var(--turbo-text-primary)); font-size: 1.5rem; }
91
+ h5 { color: var(--turbo-heading-h5, var(--turbo-text-primary)); font-size: 1.25rem; }
92
+ h6 { color: var(--turbo-heading-h6, var(--turbo-text-primary)); font-size: 1rem; }
93
+
94
+ p {
95
+ color: var(--turbo-body-primary, var(--turbo-text-primary));
96
+ }
97
+
98
+ /* Links */
99
+ a {
100
+ color: var(--turbo-accent-link, var(--turbo-brand-primary));
101
+ text-decoration: none;
102
+ }
103
+
104
+ a:hover {
105
+ text-decoration: underline;
106
+ }
107
+
108
+ /* Selection */
109
+ ::selection {
110
+ color: var(--turbo-selection-fg, #fff);
111
+ background-color: var(--turbo-selection-bg, #3273dc);
112
+ }
113
+
114
+ /* Code */
115
+ code,
116
+ kbd,
117
+ samp,
118
+ pre {
119
+ font-family: var(--turbo-font-mono, ui-monospace, monospace);
120
+ }
121
+
122
+ code {
123
+ padding: 0.125rem 0.25rem;
124
+ color: var(--turbo-code-inline-fg, #e83e8c);
125
+ background-color: var(--turbo-code-inline-bg, #f8f9fa);
126
+ border-radius: 0.25rem;
127
+ font-size: 0.875em;
128
+ }
129
+
130
+ pre {
131
+ padding: 1rem;
132
+ color: var(--turbo-code-block-fg, #f8f9fa);
133
+ background-color: var(--turbo-code-block-bg, #2b2b2b);
134
+ border-radius: 0.5rem;
135
+ overflow-x: auto;
136
+ }
137
+
138
+ pre code {
139
+ padding: 0;
140
+ background-color: transparent;
141
+ font-size: inherit;
142
+ }
143
+
144
+ /* Blockquote */
145
+ blockquote {
146
+ margin: 1rem 0;
147
+ padding: 0.5rem 1rem;
148
+ color: var(--turbo-blockquote-fg);
149
+ background-color: var(--turbo-blockquote-bg);
150
+ border-left: 4px solid var(--turbo-blockquote-border);
151
+ border-radius: 0 0.25rem 0.25rem 0;
152
+ }
153
+
154
+ /* Tables */
155
+ table {
156
+ width: 100%;
157
+ border-collapse: collapse;
158
+ }
159
+
160
+ th,
161
+ td {
162
+ padding: 0.75rem;
163
+ text-align: left;
164
+ border: 1px solid var(--turbo-table-border);
165
+ }
166
+
167
+ th {
168
+ color: var(--turbo-table-header-fg, var(--turbo-text-primary));
169
+ background-color: var(--turbo-table-thead-bg);
170
+ font-weight: 600;
171
+ }
172
+
173
+ tr:nth-child(even) td {
174
+ background-color: var(--turbo-table-stripe);
175
+ }
176
+
177
+ /* Form Elements */
178
+ button,
179
+ input,
180
+ select,
181
+ textarea {
182
+ border: 1px solid var(--turbo-border-default);
183
+ border-radius: 0.25rem;
184
+ background-color: var(--turbo-bg-surface);
185
+ color: var(--turbo-text-primary);
186
+ }
187
+
188
+ button {
189
+ padding: 0.5rem 1rem;
190
+ cursor: pointer;
191
+ background-color: var(--turbo-brand-primary);
192
+ color: var(--turbo-text-inverse);
193
+ border: none;
194
+ font-weight: 500;
195
+ }
196
+
197
+ button:hover {
198
+ opacity: 0.9;
199
+ }
200
+
201
+ button:disabled {
202
+ opacity: 0.5;
203
+ cursor: not-allowed;
204
+ }
205
+
206
+ input,
207
+ select,
208
+ textarea {
209
+ padding: 0.5rem 0.75rem;
210
+ }
211
+
212
+ button:focus-visible,
213
+ input:focus,
214
+ select:focus,
215
+ textarea:focus {
216
+ outline: 2px solid var(--turbo-brand-primary);
217
+ outline-offset: 2px;
218
+ }
219
+
220
+ /* Utility classes */
221
+ .surface {
222
+ background-color: var(--turbo-bg-surface);
223
+ }
224
+
225
+ .surface-alt {
226
+ background-color: var(--turbo-bg-overlay);
227
+ }
228
+
229
+ .text-primary {
230
+ color: var(--turbo-text-primary);
231
+ }
232
+
233
+ .text-secondary {
234
+ color: var(--turbo-text-secondary);
235
+ }
236
+
237
+ .text-success {
238
+ color: var(--turbo-state-success);
239
+ }
240
+
241
+ .text-warning {
242
+ color: var(--turbo-state-warning);
243
+ }
244
+
245
+ .text-danger {
246
+ color: var(--turbo-state-danger);
247
+ }
248
+
249
+ .text-info {
250
+ color: var(--turbo-state-info);
251
+ }
252
+
253
+ .border {
254
+ border: 1px solid var(--turbo-border-default);
255
+ }
256
+
257
+ .rounded {
258
+ border-radius: 0.25rem;
259
+ }
260
+
261
+ .rounded-lg {
262
+ border-radius: 0.5rem;
263
+ }
264
+ `;
265
+ /**
266
+ * Generates the complete base CSS including reset and semantic styles.
267
+ */
268
+ export function generateBaseCss() {
269
+ return `${CSS_RESET}\n${CSS_BASE}`;
270
+ }
271
+ /**
272
+ * Generates only the reset CSS.
273
+ */
274
+ export function generateResetCss() {
275
+ return CSS_RESET;
276
+ }
277
+ //# sourceMappingURL=base.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"base.js","sourceRoot":"","sources":["../src/base.ts"],"names":[],"mappings":"AAAA,+BAA+B;AAC/B;;;;;;;GAOG;AAEH;;;GAGG;AACH,MAAM,CAAC,MAAM,SAAS,GAAG;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CAiDxB,CAAC;AAEF;;;GAGG;AACH,MAAM,CAAC,MAAM,QAAQ,GAAG;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CAoMvB,CAAC;AAEF;;GAEG;AACH,MAAM,UAAU,eAAe;IAC7B,OAAO,GAAG,SAAS,KAAK,QAAQ,EAAE,CAAC;AACrC,CAAC;AAED;;GAEG;AACH,MAAM,UAAU,gBAAgB;IAC9B,OAAO,SAAS,CAAC;AACnB,CAAC"}
@@ -0,0 +1,141 @@
1
+ /* ==========================================================================
2
+ Turbo Themes - Buttons
3
+ ========================================================================== */
4
+
5
+ .btn {
6
+ display: inline-flex;
7
+ align-items: center;
8
+ justify-content: center;
9
+ gap: var(--space-sm);
10
+ padding: var(--space-md) var(--space-xl);
11
+ font-size: 1rem;
12
+ font-weight: 600;
13
+ text-decoration: none;
14
+ border: none;
15
+ border-radius: var(--radius-lg);
16
+ cursor: pointer;
17
+ transition: all var(--transition-fast);
18
+ }
19
+
20
+ .btn:hover:not(:disabled) {
21
+ transform: translateY(-2px);
22
+ text-decoration: none;
23
+ }
24
+
25
+ .btn:active:not(:disabled) {
26
+ transform: translateY(0);
27
+ }
28
+
29
+ .btn:focus-visible {
30
+ outline: 2px solid var(--turbo-brand-primary);
31
+ outline-offset: 2px;
32
+ }
33
+
34
+ .btn:disabled {
35
+ opacity: 0.5;
36
+ cursor: not-allowed;
37
+ transform: none;
38
+ }
39
+
40
+ /* Primary */
41
+ .btn-primary {
42
+ color: var(--turbo-text-inverse);
43
+ background: var(--gradient-primary, var(--turbo-brand-primary));
44
+ box-shadow: var(--shadow-md);
45
+ }
46
+
47
+ .btn-primary:hover:not(:disabled) {
48
+ box-shadow: var(--shadow-lg), var(--shadow-glow);
49
+ }
50
+
51
+ /* Secondary */
52
+ .btn-secondary {
53
+ color: var(--turbo-text-primary);
54
+ background: var(--turbo-bg-surface);
55
+ border: 1px solid var(--turbo-border-default);
56
+ }
57
+
58
+ .btn-secondary:hover:not(:disabled) {
59
+ background: var(--turbo-bg-overlay);
60
+ border-color: var(--turbo-brand-primary);
61
+ }
62
+
63
+ /* Ghost */
64
+ .btn-ghost {
65
+ color: var(--turbo-text-secondary);
66
+ background: transparent;
67
+ }
68
+
69
+ .btn-ghost:hover:not(:disabled) {
70
+ color: var(--turbo-text-primary);
71
+ background: color-mix(in srgb, var(--turbo-brand-primary) 10%, transparent);
72
+ }
73
+
74
+ /* Outline */
75
+ .btn-outline {
76
+ color: var(--turbo-brand-primary);
77
+ background: transparent;
78
+ border: 2px solid var(--turbo-brand-primary);
79
+ }
80
+
81
+ .btn-outline:hover:not(:disabled) {
82
+ color: var(--turbo-text-inverse);
83
+ background: var(--turbo-brand-primary);
84
+ }
85
+
86
+ /* State variants */
87
+ .btn-success {
88
+ color: var(--turbo-bg-base);
89
+ background: var(--turbo-state-success);
90
+ }
91
+
92
+ .btn-success:hover:not(:disabled) {
93
+ background: color-mix(in srgb, var(--turbo-state-success) 85%, black);
94
+ }
95
+
96
+ .btn-warning {
97
+ color: var(--turbo-bg-base);
98
+ background: var(--turbo-state-warning);
99
+ }
100
+
101
+ .btn-warning:hover:not(:disabled) {
102
+ background: color-mix(in srgb, var(--turbo-state-warning) 85%, black);
103
+ }
104
+
105
+ .btn-danger {
106
+ color: var(--turbo-bg-base);
107
+ background: var(--turbo-state-danger);
108
+ }
109
+
110
+ .btn-danger:hover:not(:disabled) {
111
+ background: color-mix(in srgb, var(--turbo-state-danger) 85%, black);
112
+ }
113
+
114
+ .btn-info {
115
+ color: var(--turbo-bg-base);
116
+ background: var(--turbo-state-info);
117
+ }
118
+
119
+ .btn-info:hover:not(:disabled) {
120
+ background: color-mix(in srgb, var(--turbo-state-info) 85%, black);
121
+ }
122
+
123
+ /* Sizes */
124
+ .btn-sm {
125
+ padding: var(--space-sm) var(--space-md);
126
+ font-size: 0.875rem;
127
+ border-radius: var(--radius-md);
128
+ }
129
+
130
+ .btn-lg {
131
+ padding: var(--space-lg) var(--space-2xl);
132
+ font-size: 1.125rem;
133
+ border-radius: var(--radius-xl);
134
+ }
135
+
136
+ /* Button group */
137
+ .btn-group {
138
+ display: flex;
139
+ flex-wrap: wrap;
140
+ gap: var(--space-sm);
141
+ }