@allxsmith/bestax-bulma 5.15.4 → 5.16.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -0,0 +1,357 @@
1
+ /* @allxsmith/bestax-bulma — AI agents: see AGENTS.md in the package root, or https://bestax.io/llms.txt */
2
+ 'use strict';
3
+
4
+ /**
5
+ * Valid Bulma color classes.
6
+ * @example 'primary', 'link', 'info'
7
+ */
8
+ const validColors = [
9
+ 'primary',
10
+ 'link',
11
+ 'info',
12
+ 'success',
13
+ 'warning',
14
+ 'danger',
15
+ 'black',
16
+ 'black-bis',
17
+ 'black-ter',
18
+ 'grey-darker',
19
+ 'grey-dark',
20
+ 'grey',
21
+ 'grey-light',
22
+ 'grey-lighter',
23
+ 'white',
24
+ 'white-bis',
25
+ 'white-ter',
26
+ 'light',
27
+ 'dark',
28
+ ];
29
+ /**
30
+ * Valid Bulma color shade suffixes.
31
+ * @example '00', '05', 'invert', 'light', 'dark', 'soft', 'bold', 'on-scheme'
32
+ */
33
+ const validColorShades = [
34
+ '00',
35
+ '05',
36
+ '10',
37
+ '15',
38
+ '20',
39
+ '25',
40
+ '30',
41
+ '35',
42
+ '40',
43
+ '45',
44
+ '50',
45
+ '55',
46
+ '60',
47
+ '65',
48
+ '70',
49
+ '75',
50
+ '80',
51
+ '85',
52
+ '90',
53
+ '95',
54
+ 'invert',
55
+ 'light',
56
+ 'dark',
57
+ 'soft',
58
+ 'bold',
59
+ 'on-scheme',
60
+ ];
61
+ /**
62
+ * Valid Bulma scheme color names for scheme-aware backgrounds.
63
+ *
64
+ * Bulma ships no `has-background-scheme-*` helper classes, so these values
65
+ * never emit a class — components render them as a dark-mode-safe inline
66
+ * `background-color: var(--bulma-<value>)` style instead.
67
+ * @example 'scheme-main', 'scheme-main-bis', 'scheme-invert'
68
+ */
69
+ const validSchemeColors = [
70
+ 'scheme-main',
71
+ 'scheme-main-bis',
72
+ 'scheme-main-ter',
73
+ 'scheme-invert',
74
+ 'scheme-invert-bis',
75
+ 'scheme-invert-ter',
76
+ ];
77
+ /**
78
+ * Valid Bulma size classes for margins and paddings.
79
+ * @example '0', '1', 'auto'
80
+ */
81
+ const validSizes = ['0', '1', '2', '3', '4', '5', '6', 'auto'];
82
+ /**
83
+ * Valid Bulma text size classes.
84
+ * @example '1', '2', '3'
85
+ */
86
+ const validTextSizes = ['1', '2', '3', '4', '5', '6', '7'];
87
+ /**
88
+ * Valid Bulma text alignment classes.
89
+ * @example 'centered', 'left', 'right'
90
+ */
91
+ const validAlignments = [
92
+ 'centered',
93
+ 'justified',
94
+ 'left',
95
+ 'right',
96
+ ];
97
+ /**
98
+ * Valid Bulma text transformation classes.
99
+ * @example 'capitalized', 'uppercase', 'italic'
100
+ */
101
+ const validTextTransforms = [
102
+ 'capitalized',
103
+ 'lowercase',
104
+ 'uppercase',
105
+ 'italic',
106
+ ];
107
+ /**
108
+ * Valid Bulma text weight classes.
109
+ * @example 'light', 'normal', 'bold'
110
+ */
111
+ const validTextWeights = [
112
+ 'light',
113
+ 'normal',
114
+ 'medium',
115
+ 'semibold',
116
+ 'bold',
117
+ ];
118
+ /**
119
+ * Valid Bulma font family classes.
120
+ * @example 'sans-serif', 'monospace', 'code'
121
+ */
122
+ const validFontFamilies = [
123
+ 'sans-serif',
124
+ 'monospace',
125
+ 'primary',
126
+ 'secondary',
127
+ 'code',
128
+ ];
129
+ /**
130
+ * Valid Bulma display classes.
131
+ * @example 'block', 'flex', 'inline'
132
+ */
133
+ const validDisplays = [
134
+ 'block',
135
+ 'flex',
136
+ 'inline',
137
+ 'inline-block',
138
+ 'inline-flex',
139
+ 'grid',
140
+ ];
141
+ /**
142
+ * Valid Bulma visibility classes.
143
+ * These are all the valid visibility options available in Bulma.
144
+ * @example 'hidden', 'sr-only', 'invisible'
145
+ */
146
+ const validVisibilities = ['hidden', 'sr-only', 'invisible'];
147
+ /**
148
+ * Valid Bulma flex direction classes.
149
+ * @example 'row', 'column', 'row-reverse'
150
+ */
151
+ const validFlexDirections = [
152
+ 'row',
153
+ 'row-reverse',
154
+ 'column',
155
+ 'column-reverse',
156
+ ];
157
+ /**
158
+ * Valid Bulma flex wrap classes.
159
+ * @example 'nowrap', 'wrap', 'wrap-reverse'
160
+ */
161
+ const validFlexWraps = ['nowrap', 'wrap', 'wrap-reverse'];
162
+ /**
163
+ * Valid Bulma justify-content classes.
164
+ * @example 'flex-start', 'center', 'space-between'
165
+ */
166
+ const validJustifyContents = [
167
+ 'flex-start',
168
+ 'flex-end',
169
+ 'center',
170
+ 'space-between',
171
+ 'space-around',
172
+ 'space-evenly',
173
+ 'start',
174
+ 'end',
175
+ 'left',
176
+ 'right',
177
+ ];
178
+ /**
179
+ * Valid Bulma align-content classes.
180
+ * @example 'flex-start', 'center', 'stretch'
181
+ */
182
+ const validAlignContents = [
183
+ 'flex-start',
184
+ 'flex-end',
185
+ 'center',
186
+ 'space-between',
187
+ 'space-around',
188
+ 'space-evenly',
189
+ 'stretch',
190
+ ];
191
+ /**
192
+ * Valid Bulma align-items classes.
193
+ * @example 'stretch', 'flex-start', 'center'
194
+ */
195
+ const validAlignItems = [
196
+ 'stretch',
197
+ 'flex-start',
198
+ 'flex-end',
199
+ 'center',
200
+ 'baseline',
201
+ 'start',
202
+ 'end',
203
+ ];
204
+ /**
205
+ * Valid Bulma align-self classes.
206
+ * @example 'auto', 'flex-start', 'center'
207
+ */
208
+ const validAlignSelfs = [
209
+ 'auto',
210
+ 'flex-start',
211
+ 'flex-end',
212
+ 'center',
213
+ 'baseline',
214
+ 'stretch',
215
+ ];
216
+ /**
217
+ * Valid Bulma flex grow and shrink values.
218
+ * @example '0', '1', '2', '3', '4', '5'
219
+ */
220
+ const validFlexGrowShrink = ['0', '1', '2', '3', '4', '5'];
221
+ /**
222
+ * Valid Bulma viewport classes for responsive design.
223
+ * @example 'mobile', 'tablet', 'desktop'
224
+ */
225
+ const validViewports = [
226
+ 'mobile',
227
+ 'tablet',
228
+ 'tablet-only',
229
+ 'touch',
230
+ 'desktop',
231
+ 'desktop-only',
232
+ 'widescreen',
233
+ 'widescreen-only',
234
+ 'fullhd',
235
+ ];
236
+ /**
237
+ * Valid Bulma float classes.
238
+ * @example 'left', 'right'
239
+ */
240
+ const validFloats = ['left', 'right'];
241
+ /**
242
+ * Valid Bulma overflow classes.
243
+ * @example 'clipped'
244
+ */
245
+ const validOverflows = ['clipped'];
246
+ /**
247
+ * Valid Bulma interaction classes.
248
+ * @example 'unselectable', 'clickable'
249
+ */
250
+ const validInteractions = ['unselectable', 'clickable'];
251
+ /**
252
+ * Valid Bulma cursor helper values.
253
+ *
254
+ * These share no class stem: `pointer` renders `is-clickable` and `help`
255
+ * renders `is-cursor-help`, so the class each one emits lives in
256
+ * `cursorClasses` rather than being built from the value.
257
+ * @example 'pointer', 'help'
258
+ */
259
+ const validCursors = ['pointer', 'help'];
260
+ /**
261
+ * Cursor helper value to the class it renders.
262
+ *
263
+ * A `Record` over `validCursors` on purpose: TypeScript then rejects a value
264
+ * added to the tuple with no class for it, and a class for a value the tuple
265
+ * does not carry, so the accepted set and the rendered classes cannot drift
266
+ * apart.
267
+ */
268
+ const cursorClasses = {
269
+ pointer: 'is-clickable',
270
+ help: 'is-cursor-help',
271
+ };
272
+ /**
273
+ * Valid Bulma border-radius helper classes.
274
+ * @example 'radiusless'
275
+ */
276
+ const validRadii = ['radiusless'];
277
+ /**
278
+ * Valid Bulma shadow helper classes.
279
+ * @example 'shadowless'
280
+ */
281
+ const validShadows = ['shadowless'];
282
+ /**
283
+ * Valid Bulma responsive helper classes.
284
+ * @example 'mobile', 'narrow'
285
+ */
286
+ const validResponsives = ['mobile', 'narrow'];
287
+ /**
288
+ * Creates the shared class-building helpers used by the Bulma helper hooks.
289
+ *
290
+ * Returns a mutable `classes` array along with the helper functions that push
291
+ * (optionally prefixed, optionally viewport-suffixed) class names onto it.
292
+ *
293
+ * @internal
294
+ * @param classPrefix - Optional prefix applied to all generated class names.
295
+ * @param viewport - Optional viewport modifier for viewport-aware classes.
296
+ */
297
+ const createBulmaClassHelpers = (classPrefix, viewport) => {
298
+ const classes = [];
299
+ // Helper function to add class with prefix support
300
+ const addPrefixedClass = (className) => {
301
+ classes.push(classPrefix ? `${classPrefix}${className}` : className);
302
+ };
303
+ // Helper to add class with optional viewport
304
+ //
305
+ // `supportedViewports` narrows which viewports may be suffixed onto this
306
+ // class. It defaults to every viewport, but a few Bulma helper families
307
+ // (notably `is-size-*`, which ships no `-only` bands) support only a subset,
308
+ // so passing the emitting set keeps us from producing dead classes.
309
+ const addClass = (prefix, value, validValues, supportsViewport = false, supportedViewports = validViewports) => {
310
+ if (value && validValues.includes(value)) {
311
+ const className = supportsViewport &&
312
+ viewport &&
313
+ validViewports.includes(viewport) &&
314
+ supportedViewports.includes(viewport)
315
+ ? `${prefix}-${value}-${viewport}`
316
+ : `${prefix}-${value}`;
317
+ addPrefixedClass(className);
318
+ }
319
+ };
320
+ // Helper specifically for classes that never support viewport modifiers
321
+ const addClassNoViewport = (prefix, value, validValues) => {
322
+ if (value && (!validValues.length || validValues.includes(value))) {
323
+ addPrefixedClass(`${prefix}-${value}`);
324
+ }
325
+ };
326
+ return { classes, addPrefixedClass, addClass, addClassNoViewport };
327
+ };
328
+
329
+ exports.createBulmaClassHelpers = createBulmaClassHelpers;
330
+ exports.cursorClasses = cursorClasses;
331
+ exports.validAlignContents = validAlignContents;
332
+ exports.validAlignItems = validAlignItems;
333
+ exports.validAlignSelfs = validAlignSelfs;
334
+ exports.validAlignments = validAlignments;
335
+ exports.validColorShades = validColorShades;
336
+ exports.validColors = validColors;
337
+ exports.validCursors = validCursors;
338
+ exports.validDisplays = validDisplays;
339
+ exports.validFlexDirections = validFlexDirections;
340
+ exports.validFlexGrowShrink = validFlexGrowShrink;
341
+ exports.validFlexWraps = validFlexWraps;
342
+ exports.validFloats = validFloats;
343
+ exports.validFontFamilies = validFontFamilies;
344
+ exports.validInteractions = validInteractions;
345
+ exports.validJustifyContents = validJustifyContents;
346
+ exports.validOverflows = validOverflows;
347
+ exports.validRadii = validRadii;
348
+ exports.validResponsives = validResponsives;
349
+ exports.validSchemeColors = validSchemeColors;
350
+ exports.validShadows = validShadows;
351
+ exports.validSizes = validSizes;
352
+ exports.validTextSizes = validTextSizes;
353
+ exports.validTextTransforms = validTextTransforms;
354
+ exports.validTextWeights = validTextWeights;
355
+ exports.validViewports = validViewports;
356
+ exports.validVisibilities = validVisibilities;
357
+ //# sourceMappingURL=constants.cjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"constants.cjs","sources":["../src/helpers/bulmaClassHelpers.ts"],"sourcesContent":["/**\n * Valid Bulma color classes.\n * @example 'primary', 'link', 'info'\n */\nexport const validColors = [\n 'primary',\n 'link',\n 'info',\n 'success',\n 'warning',\n 'danger',\n 'black',\n 'black-bis',\n 'black-ter',\n 'grey-darker',\n 'grey-dark',\n 'grey',\n 'grey-light',\n 'grey-lighter',\n 'white',\n 'white-bis',\n 'white-ter',\n 'light',\n 'dark',\n] as const;\n\n/**\n * Valid Bulma color shade suffixes.\n * @example '00', '05', 'invert', 'light', 'dark', 'soft', 'bold', 'on-scheme'\n */\nexport const validColorShades = [\n '00',\n '05',\n '10',\n '15',\n '20',\n '25',\n '30',\n '35',\n '40',\n '45',\n '50',\n '55',\n '60',\n '65',\n '70',\n '75',\n '80',\n '85',\n '90',\n '95',\n 'invert',\n 'light',\n 'dark',\n 'soft',\n 'bold',\n 'on-scheme',\n] as const;\n\n/**\n * Valid Bulma scheme color names for scheme-aware backgrounds.\n *\n * Bulma ships no `has-background-scheme-*` helper classes, so these values\n * never emit a class — components render them as a dark-mode-safe inline\n * `background-color: var(--bulma-<value>)` style instead.\n * @example 'scheme-main', 'scheme-main-bis', 'scheme-invert'\n */\nexport const validSchemeColors = [\n 'scheme-main',\n 'scheme-main-bis',\n 'scheme-main-ter',\n 'scheme-invert',\n 'scheme-invert-bis',\n 'scheme-invert-ter',\n] as const;\n\n/**\n * Valid Bulma size classes for margins and paddings.\n * @example '0', '1', 'auto'\n */\nexport const validSizes = ['0', '1', '2', '3', '4', '5', '6', 'auto'] as const;\n\n/**\n * Valid Bulma text size classes.\n * @example '1', '2', '3'\n */\nexport const validTextSizes = ['1', '2', '3', '4', '5', '6', '7'] as const;\n\n/**\n * Valid Bulma text alignment classes.\n * @example 'centered', 'left', 'right'\n */\nexport const validAlignments = [\n 'centered',\n 'justified',\n 'left',\n 'right',\n] as const;\n\n/**\n * Valid Bulma text transformation classes.\n * @example 'capitalized', 'uppercase', 'italic'\n */\nexport const validTextTransforms = [\n 'capitalized',\n 'lowercase',\n 'uppercase',\n 'italic',\n] as const;\n\n/**\n * Valid Bulma text weight classes.\n * @example 'light', 'normal', 'bold'\n */\nexport const validTextWeights = [\n 'light',\n 'normal',\n 'medium',\n 'semibold',\n 'bold',\n] as const;\n\n/**\n * Valid Bulma font family classes.\n * @example 'sans-serif', 'monospace', 'code'\n */\nexport const validFontFamilies = [\n 'sans-serif',\n 'monospace',\n 'primary',\n 'secondary',\n 'code',\n] as const;\n\n/**\n * Valid Bulma display classes.\n * @example 'block', 'flex', 'inline'\n */\nexport const validDisplays = [\n 'block',\n 'flex',\n 'inline',\n 'inline-block',\n 'inline-flex',\n 'grid',\n] as const;\n\n/**\n * Valid Bulma visibility classes.\n * These are all the valid visibility options available in Bulma.\n * @example 'hidden', 'sr-only', 'invisible'\n */\nexport const validVisibilities = ['hidden', 'sr-only', 'invisible'] as const;\n\n/**\n * Valid Bulma flex direction classes.\n * @example 'row', 'column', 'row-reverse'\n */\nexport const validFlexDirections = [\n 'row',\n 'row-reverse',\n 'column',\n 'column-reverse',\n] as const;\n\n/**\n * Valid Bulma flex wrap classes.\n * @example 'nowrap', 'wrap', 'wrap-reverse'\n */\nexport const validFlexWraps = ['nowrap', 'wrap', 'wrap-reverse'] as const;\n\n/**\n * Valid Bulma justify-content classes.\n * @example 'flex-start', 'center', 'space-between'\n */\nexport const validJustifyContents = [\n 'flex-start',\n 'flex-end',\n 'center',\n 'space-between',\n 'space-around',\n 'space-evenly',\n 'start',\n 'end',\n 'left',\n 'right',\n] as const;\n\n/**\n * Valid Bulma align-content classes.\n * @example 'flex-start', 'center', 'stretch'\n */\nexport const validAlignContents = [\n 'flex-start',\n 'flex-end',\n 'center',\n 'space-between',\n 'space-around',\n 'space-evenly',\n 'stretch',\n] as const;\n\n/**\n * Valid Bulma align-items classes.\n * @example 'stretch', 'flex-start', 'center'\n */\nexport const validAlignItems = [\n 'stretch',\n 'flex-start',\n 'flex-end',\n 'center',\n 'baseline',\n 'start',\n 'end',\n] as const;\n\n/**\n * Valid Bulma align-self classes.\n * @example 'auto', 'flex-start', 'center'\n */\nexport const validAlignSelfs = [\n 'auto',\n 'flex-start',\n 'flex-end',\n 'center',\n 'baseline',\n 'stretch',\n] as const;\n\n/**\n * Valid Bulma flex grow and shrink values.\n * @example '0', '1', '2', '3', '4', '5'\n */\nexport const validFlexGrowShrink = ['0', '1', '2', '3', '4', '5'] as const;\n\n/**\n * Valid Bulma viewport classes for responsive design.\n * @example 'mobile', 'tablet', 'desktop'\n */\nexport const validViewports = [\n 'mobile',\n 'tablet',\n 'tablet-only',\n 'touch',\n 'desktop',\n 'desktop-only',\n 'widescreen',\n 'widescreen-only',\n 'fullhd',\n] as const;\n\n/**\n * Valid Bulma float classes.\n * @example 'left', 'right'\n */\nexport const validFloats = ['left', 'right'] as const;\n\n/**\n * Valid Bulma overflow classes.\n * @example 'clipped'\n */\nexport const validOverflows = ['clipped'] as const;\n\n/**\n * Valid Bulma interaction classes.\n * @example 'unselectable', 'clickable'\n */\nexport const validInteractions = ['unselectable', 'clickable'] as const;\n\n/**\n * Valid Bulma cursor helper values.\n *\n * These share no class stem: `pointer` renders `is-clickable` and `help`\n * renders `is-cursor-help`, so the class each one emits lives in\n * `cursorClasses` rather than being built from the value.\n * @example 'pointer', 'help'\n */\nexport const validCursors = ['pointer', 'help'] as const;\n\n/**\n * Cursor helper value to the class it renders.\n *\n * A `Record` over `validCursors` on purpose: TypeScript then rejects a value\n * added to the tuple with no class for it, and a class for a value the tuple\n * does not carry, so the accepted set and the rendered classes cannot drift\n * apart.\n */\nexport const cursorClasses: Record<(typeof validCursors)[number], string> = {\n pointer: 'is-clickable',\n help: 'is-cursor-help',\n};\n\n/**\n * Valid Bulma border-radius helper classes.\n * @example 'radiusless'\n */\nexport const validRadii = ['radiusless'] as const;\n\n/**\n * Valid Bulma shadow helper classes.\n * @example 'shadowless'\n */\nexport const validShadows = ['shadowless'] as const;\n\n/**\n * Valid Bulma responsive helper classes.\n * @example 'mobile', 'narrow'\n */\nexport const validResponsives = ['mobile', 'narrow'] as const;\n\n/**\n * Props for applying a Bulma viewport modifier to viewport-aware helper classes.\n */\nexport interface BulmaViewportProps {\n /** Viewport for responsive classes (e.g., 'mobile', 'desktop'). */\n viewport?: (typeof validViewports)[number];\n}\n\n/**\n * Props for applying Bulma display helper classes, including viewport-specific\n * display variants.\n */\nexport interface BulmaDisplayProps {\n /** Display type (e.g., 'block', 'flex'). */\n display?: (typeof validDisplays)[number] | 'none';\n /** Display type for mobile viewport (up to 768px). */\n displayMobile?: (typeof validDisplays)[number] | 'none';\n /** Display type for tablet viewport (769px - 1023px). */\n displayTablet?: (typeof validDisplays)[number] | 'none';\n /** Display type for tablet-only viewport (769px - 1023px, excludes desktop+). */\n displayTabletOnly?: (typeof validDisplays)[number] | 'none';\n /** Display type for touch viewport (up to 1023px; mobile + tablet). */\n displayTouch?: (typeof validDisplays)[number] | 'none';\n /** Display type for desktop viewport (1024px - 1215px). */\n displayDesktop?: (typeof validDisplays)[number] | 'none';\n /** Display type for desktop-only viewport (1024px - 1215px, excludes widescreen+). */\n displayDesktopOnly?: (typeof validDisplays)[number] | 'none';\n /** Display type for widescreen viewport (1216px - 1407px). */\n displayWidescreen?: (typeof validDisplays)[number] | 'none';\n /** Display type for widescreen-only viewport (1216px - 1407px, excludes fullhd). */\n displayWidescreenOnly?: (typeof validDisplays)[number] | 'none';\n /** Display type for fullhd viewport (1408px and above). */\n displayFullhd?: (typeof validDisplays)[number] | 'none';\n}\n\n/**\n * Creates the shared class-building helpers used by the Bulma helper hooks.\n *\n * Returns a mutable `classes` array along with the helper functions that push\n * (optionally prefixed, optionally viewport-suffixed) class names onto it.\n *\n * @internal\n * @param classPrefix - Optional prefix applied to all generated class names.\n * @param viewport - Optional viewport modifier for viewport-aware classes.\n */\nexport const createBulmaClassHelpers = (\n classPrefix?: string,\n viewport?: (typeof validViewports)[number]\n) => {\n const classes: string[] = [];\n\n // Helper function to add class with prefix support\n const addPrefixedClass = (className: string) => {\n classes.push(classPrefix ? `${classPrefix}${className}` : className);\n };\n\n // Helper to add class with optional viewport\n //\n // `supportedViewports` narrows which viewports may be suffixed onto this\n // class. It defaults to every viewport, but a few Bulma helper families\n // (notably `is-size-*`, which ships no `-only` bands) support only a subset,\n // so passing the emitting set keeps us from producing dead classes.\n const addClass = (\n prefix: string,\n value: string | undefined,\n validValues: readonly string[],\n supportsViewport = false,\n supportedViewports: readonly string[] = validViewports\n ) => {\n if (value && validValues.includes(value)) {\n const className =\n supportsViewport &&\n viewport &&\n validViewports.includes(viewport) &&\n supportedViewports.includes(viewport)\n ? `${prefix}-${value}-${viewport}`\n : `${prefix}-${value}`;\n addPrefixedClass(className);\n }\n };\n\n // Helper specifically for classes that never support viewport modifiers\n const addClassNoViewport = (\n prefix: string,\n value: string | undefined,\n validValues: readonly string[]\n ) => {\n if (value && (!validValues.length || validValues.includes(value))) {\n addPrefixedClass(`${prefix}-${value}`);\n }\n };\n\n return { classes, addPrefixedClass, addClass, addClassNoViewport };\n};\n"],"names":[],"mappings":"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"}
@@ -0,0 +1,197 @@
1
+ /**
2
+ * Valid Bulma color classes.
3
+ * @example 'primary', 'link', 'info'
4
+ */
5
+ export declare const validColors: readonly ["primary", "link", "info", "success", "warning", "danger", "black", "black-bis", "black-ter", "grey-darker", "grey-dark", "grey", "grey-light", "grey-lighter", "white", "white-bis", "white-ter", "light", "dark"];
6
+ /**
7
+ * Valid Bulma color shade suffixes.
8
+ * @example '00', '05', 'invert', 'light', 'dark', 'soft', 'bold', 'on-scheme'
9
+ */
10
+ export declare const validColorShades: readonly ["00", "05", "10", "15", "20", "25", "30", "35", "40", "45", "50", "55", "60", "65", "70", "75", "80", "85", "90", "95", "invert", "light", "dark", "soft", "bold", "on-scheme"];
11
+ /**
12
+ * Valid Bulma scheme color names for scheme-aware backgrounds.
13
+ *
14
+ * Bulma ships no `has-background-scheme-*` helper classes, so these values
15
+ * never emit a class — components render them as a dark-mode-safe inline
16
+ * `background-color: var(--bulma-<value>)` style instead.
17
+ * @example 'scheme-main', 'scheme-main-bis', 'scheme-invert'
18
+ */
19
+ export declare const validSchemeColors: readonly ["scheme-main", "scheme-main-bis", "scheme-main-ter", "scheme-invert", "scheme-invert-bis", "scheme-invert-ter"];
20
+ /**
21
+ * Valid Bulma size classes for margins and paddings.
22
+ * @example '0', '1', 'auto'
23
+ */
24
+ export declare const validSizes: readonly ["0", "1", "2", "3", "4", "5", "6", "auto"];
25
+ /**
26
+ * Valid Bulma text size classes.
27
+ * @example '1', '2', '3'
28
+ */
29
+ export declare const validTextSizes: readonly ["1", "2", "3", "4", "5", "6", "7"];
30
+ /**
31
+ * Valid Bulma text alignment classes.
32
+ * @example 'centered', 'left', 'right'
33
+ */
34
+ export declare const validAlignments: readonly ["centered", "justified", "left", "right"];
35
+ /**
36
+ * Valid Bulma text transformation classes.
37
+ * @example 'capitalized', 'uppercase', 'italic'
38
+ */
39
+ export declare const validTextTransforms: readonly ["capitalized", "lowercase", "uppercase", "italic"];
40
+ /**
41
+ * Valid Bulma text weight classes.
42
+ * @example 'light', 'normal', 'bold'
43
+ */
44
+ export declare const validTextWeights: readonly ["light", "normal", "medium", "semibold", "bold"];
45
+ /**
46
+ * Valid Bulma font family classes.
47
+ * @example 'sans-serif', 'monospace', 'code'
48
+ */
49
+ export declare const validFontFamilies: readonly ["sans-serif", "monospace", "primary", "secondary", "code"];
50
+ /**
51
+ * Valid Bulma display classes.
52
+ * @example 'block', 'flex', 'inline'
53
+ */
54
+ export declare const validDisplays: readonly ["block", "flex", "inline", "inline-block", "inline-flex", "grid"];
55
+ /**
56
+ * Valid Bulma visibility classes.
57
+ * These are all the valid visibility options available in Bulma.
58
+ * @example 'hidden', 'sr-only', 'invisible'
59
+ */
60
+ export declare const validVisibilities: readonly ["hidden", "sr-only", "invisible"];
61
+ /**
62
+ * Valid Bulma flex direction classes.
63
+ * @example 'row', 'column', 'row-reverse'
64
+ */
65
+ export declare const validFlexDirections: readonly ["row", "row-reverse", "column", "column-reverse"];
66
+ /**
67
+ * Valid Bulma flex wrap classes.
68
+ * @example 'nowrap', 'wrap', 'wrap-reverse'
69
+ */
70
+ export declare const validFlexWraps: readonly ["nowrap", "wrap", "wrap-reverse"];
71
+ /**
72
+ * Valid Bulma justify-content classes.
73
+ * @example 'flex-start', 'center', 'space-between'
74
+ */
75
+ export declare const validJustifyContents: readonly ["flex-start", "flex-end", "center", "space-between", "space-around", "space-evenly", "start", "end", "left", "right"];
76
+ /**
77
+ * Valid Bulma align-content classes.
78
+ * @example 'flex-start', 'center', 'stretch'
79
+ */
80
+ export declare const validAlignContents: readonly ["flex-start", "flex-end", "center", "space-between", "space-around", "space-evenly", "stretch"];
81
+ /**
82
+ * Valid Bulma align-items classes.
83
+ * @example 'stretch', 'flex-start', 'center'
84
+ */
85
+ export declare const validAlignItems: readonly ["stretch", "flex-start", "flex-end", "center", "baseline", "start", "end"];
86
+ /**
87
+ * Valid Bulma align-self classes.
88
+ * @example 'auto', 'flex-start', 'center'
89
+ */
90
+ export declare const validAlignSelfs: readonly ["auto", "flex-start", "flex-end", "center", "baseline", "stretch"];
91
+ /**
92
+ * Valid Bulma flex grow and shrink values.
93
+ * @example '0', '1', '2', '3', '4', '5'
94
+ */
95
+ export declare const validFlexGrowShrink: readonly ["0", "1", "2", "3", "4", "5"];
96
+ /**
97
+ * Valid Bulma viewport classes for responsive design.
98
+ * @example 'mobile', 'tablet', 'desktop'
99
+ */
100
+ export declare const validViewports: readonly ["mobile", "tablet", "tablet-only", "touch", "desktop", "desktop-only", "widescreen", "widescreen-only", "fullhd"];
101
+ /**
102
+ * Valid Bulma float classes.
103
+ * @example 'left', 'right'
104
+ */
105
+ export declare const validFloats: readonly ["left", "right"];
106
+ /**
107
+ * Valid Bulma overflow classes.
108
+ * @example 'clipped'
109
+ */
110
+ export declare const validOverflows: readonly ["clipped"];
111
+ /**
112
+ * Valid Bulma interaction classes.
113
+ * @example 'unselectable', 'clickable'
114
+ */
115
+ export declare const validInteractions: readonly ["unselectable", "clickable"];
116
+ /**
117
+ * Valid Bulma cursor helper values.
118
+ *
119
+ * These share no class stem: `pointer` renders `is-clickable` and `help`
120
+ * renders `is-cursor-help`, so the class each one emits lives in
121
+ * `cursorClasses` rather than being built from the value.
122
+ * @example 'pointer', 'help'
123
+ */
124
+ export declare const validCursors: readonly ["pointer", "help"];
125
+ /**
126
+ * Cursor helper value to the class it renders.
127
+ *
128
+ * A `Record` over `validCursors` on purpose: TypeScript then rejects a value
129
+ * added to the tuple with no class for it, and a class for a value the tuple
130
+ * does not carry, so the accepted set and the rendered classes cannot drift
131
+ * apart.
132
+ */
133
+ export declare const cursorClasses: Record<(typeof validCursors)[number], string>;
134
+ /**
135
+ * Valid Bulma border-radius helper classes.
136
+ * @example 'radiusless'
137
+ */
138
+ export declare const validRadii: readonly ["radiusless"];
139
+ /**
140
+ * Valid Bulma shadow helper classes.
141
+ * @example 'shadowless'
142
+ */
143
+ export declare const validShadows: readonly ["shadowless"];
144
+ /**
145
+ * Valid Bulma responsive helper classes.
146
+ * @example 'mobile', 'narrow'
147
+ */
148
+ export declare const validResponsives: readonly ["mobile", "narrow"];
149
+ /**
150
+ * Props for applying a Bulma viewport modifier to viewport-aware helper classes.
151
+ */
152
+ export interface BulmaViewportProps {
153
+ /** Viewport for responsive classes (e.g., 'mobile', 'desktop'). */
154
+ viewport?: (typeof validViewports)[number];
155
+ }
156
+ /**
157
+ * Props for applying Bulma display helper classes, including viewport-specific
158
+ * display variants.
159
+ */
160
+ export interface BulmaDisplayProps {
161
+ /** Display type (e.g., 'block', 'flex'). */
162
+ display?: (typeof validDisplays)[number] | 'none';
163
+ /** Display type for mobile viewport (up to 768px). */
164
+ displayMobile?: (typeof validDisplays)[number] | 'none';
165
+ /** Display type for tablet viewport (769px - 1023px). */
166
+ displayTablet?: (typeof validDisplays)[number] | 'none';
167
+ /** Display type for tablet-only viewport (769px - 1023px, excludes desktop+). */
168
+ displayTabletOnly?: (typeof validDisplays)[number] | 'none';
169
+ /** Display type for touch viewport (up to 1023px; mobile + tablet). */
170
+ displayTouch?: (typeof validDisplays)[number] | 'none';
171
+ /** Display type for desktop viewport (1024px - 1215px). */
172
+ displayDesktop?: (typeof validDisplays)[number] | 'none';
173
+ /** Display type for desktop-only viewport (1024px - 1215px, excludes widescreen+). */
174
+ displayDesktopOnly?: (typeof validDisplays)[number] | 'none';
175
+ /** Display type for widescreen viewport (1216px - 1407px). */
176
+ displayWidescreen?: (typeof validDisplays)[number] | 'none';
177
+ /** Display type for widescreen-only viewport (1216px - 1407px, excludes fullhd). */
178
+ displayWidescreenOnly?: (typeof validDisplays)[number] | 'none';
179
+ /** Display type for fullhd viewport (1408px and above). */
180
+ displayFullhd?: (typeof validDisplays)[number] | 'none';
181
+ }
182
+ /**
183
+ * Creates the shared class-building helpers used by the Bulma helper hooks.
184
+ *
185
+ * Returns a mutable `classes` array along with the helper functions that push
186
+ * (optionally prefixed, optionally viewport-suffixed) class names onto it.
187
+ *
188
+ * @internal
189
+ * @param classPrefix - Optional prefix applied to all generated class names.
190
+ * @param viewport - Optional viewport modifier for viewport-aware classes.
191
+ */
192
+ export declare const createBulmaClassHelpers: (classPrefix?: string, viewport?: (typeof validViewports)[number]) => {
193
+ classes: string[];
194
+ addPrefixedClass: (className: string) => void;
195
+ addClass: (prefix: string, value: string | undefined, validValues: readonly string[], supportsViewport?: boolean, supportedViewports?: readonly string[]) => void;
196
+ addClassNoViewport: (prefix: string, value: string | undefined, validValues: readonly string[]) => void;
197
+ };