@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,328 @@
1
+ /* @allxsmith/bestax-bulma — AI agents: see AGENTS.md in the package root, or https://bestax.io/llms.txt */
2
+ /**
3
+ * Valid Bulma color classes.
4
+ * @example 'primary', 'link', 'info'
5
+ */
6
+ const validColors = [
7
+ 'primary',
8
+ 'link',
9
+ 'info',
10
+ 'success',
11
+ 'warning',
12
+ 'danger',
13
+ 'black',
14
+ 'black-bis',
15
+ 'black-ter',
16
+ 'grey-darker',
17
+ 'grey-dark',
18
+ 'grey',
19
+ 'grey-light',
20
+ 'grey-lighter',
21
+ 'white',
22
+ 'white-bis',
23
+ 'white-ter',
24
+ 'light',
25
+ 'dark',
26
+ ];
27
+ /**
28
+ * Valid Bulma color shade suffixes.
29
+ * @example '00', '05', 'invert', 'light', 'dark', 'soft', 'bold', 'on-scheme'
30
+ */
31
+ const validColorShades = [
32
+ '00',
33
+ '05',
34
+ '10',
35
+ '15',
36
+ '20',
37
+ '25',
38
+ '30',
39
+ '35',
40
+ '40',
41
+ '45',
42
+ '50',
43
+ '55',
44
+ '60',
45
+ '65',
46
+ '70',
47
+ '75',
48
+ '80',
49
+ '85',
50
+ '90',
51
+ '95',
52
+ 'invert',
53
+ 'light',
54
+ 'dark',
55
+ 'soft',
56
+ 'bold',
57
+ 'on-scheme',
58
+ ];
59
+ /**
60
+ * Valid Bulma scheme color names for scheme-aware backgrounds.
61
+ *
62
+ * Bulma ships no `has-background-scheme-*` helper classes, so these values
63
+ * never emit a class — components render them as a dark-mode-safe inline
64
+ * `background-color: var(--bulma-<value>)` style instead.
65
+ * @example 'scheme-main', 'scheme-main-bis', 'scheme-invert'
66
+ */
67
+ const validSchemeColors = [
68
+ 'scheme-main',
69
+ 'scheme-main-bis',
70
+ 'scheme-main-ter',
71
+ 'scheme-invert',
72
+ 'scheme-invert-bis',
73
+ 'scheme-invert-ter',
74
+ ];
75
+ /**
76
+ * Valid Bulma size classes for margins and paddings.
77
+ * @example '0', '1', 'auto'
78
+ */
79
+ const validSizes = ['0', '1', '2', '3', '4', '5', '6', 'auto'];
80
+ /**
81
+ * Valid Bulma text size classes.
82
+ * @example '1', '2', '3'
83
+ */
84
+ const validTextSizes = ['1', '2', '3', '4', '5', '6', '7'];
85
+ /**
86
+ * Valid Bulma text alignment classes.
87
+ * @example 'centered', 'left', 'right'
88
+ */
89
+ const validAlignments = [
90
+ 'centered',
91
+ 'justified',
92
+ 'left',
93
+ 'right',
94
+ ];
95
+ /**
96
+ * Valid Bulma text transformation classes.
97
+ * @example 'capitalized', 'uppercase', 'italic'
98
+ */
99
+ const validTextTransforms = [
100
+ 'capitalized',
101
+ 'lowercase',
102
+ 'uppercase',
103
+ 'italic',
104
+ ];
105
+ /**
106
+ * Valid Bulma text weight classes.
107
+ * @example 'light', 'normal', 'bold'
108
+ */
109
+ const validTextWeights = [
110
+ 'light',
111
+ 'normal',
112
+ 'medium',
113
+ 'semibold',
114
+ 'bold',
115
+ ];
116
+ /**
117
+ * Valid Bulma font family classes.
118
+ * @example 'sans-serif', 'monospace', 'code'
119
+ */
120
+ const validFontFamilies = [
121
+ 'sans-serif',
122
+ 'monospace',
123
+ 'primary',
124
+ 'secondary',
125
+ 'code',
126
+ ];
127
+ /**
128
+ * Valid Bulma display classes.
129
+ * @example 'block', 'flex', 'inline'
130
+ */
131
+ const validDisplays = [
132
+ 'block',
133
+ 'flex',
134
+ 'inline',
135
+ 'inline-block',
136
+ 'inline-flex',
137
+ 'grid',
138
+ ];
139
+ /**
140
+ * Valid Bulma visibility classes.
141
+ * These are all the valid visibility options available in Bulma.
142
+ * @example 'hidden', 'sr-only', 'invisible'
143
+ */
144
+ const validVisibilities = ['hidden', 'sr-only', 'invisible'];
145
+ /**
146
+ * Valid Bulma flex direction classes.
147
+ * @example 'row', 'column', 'row-reverse'
148
+ */
149
+ const validFlexDirections = [
150
+ 'row',
151
+ 'row-reverse',
152
+ 'column',
153
+ 'column-reverse',
154
+ ];
155
+ /**
156
+ * Valid Bulma flex wrap classes.
157
+ * @example 'nowrap', 'wrap', 'wrap-reverse'
158
+ */
159
+ const validFlexWraps = ['nowrap', 'wrap', 'wrap-reverse'];
160
+ /**
161
+ * Valid Bulma justify-content classes.
162
+ * @example 'flex-start', 'center', 'space-between'
163
+ */
164
+ const validJustifyContents = [
165
+ 'flex-start',
166
+ 'flex-end',
167
+ 'center',
168
+ 'space-between',
169
+ 'space-around',
170
+ 'space-evenly',
171
+ 'start',
172
+ 'end',
173
+ 'left',
174
+ 'right',
175
+ ];
176
+ /**
177
+ * Valid Bulma align-content classes.
178
+ * @example 'flex-start', 'center', 'stretch'
179
+ */
180
+ const validAlignContents = [
181
+ 'flex-start',
182
+ 'flex-end',
183
+ 'center',
184
+ 'space-between',
185
+ 'space-around',
186
+ 'space-evenly',
187
+ 'stretch',
188
+ ];
189
+ /**
190
+ * Valid Bulma align-items classes.
191
+ * @example 'stretch', 'flex-start', 'center'
192
+ */
193
+ const validAlignItems = [
194
+ 'stretch',
195
+ 'flex-start',
196
+ 'flex-end',
197
+ 'center',
198
+ 'baseline',
199
+ 'start',
200
+ 'end',
201
+ ];
202
+ /**
203
+ * Valid Bulma align-self classes.
204
+ * @example 'auto', 'flex-start', 'center'
205
+ */
206
+ const validAlignSelfs = [
207
+ 'auto',
208
+ 'flex-start',
209
+ 'flex-end',
210
+ 'center',
211
+ 'baseline',
212
+ 'stretch',
213
+ ];
214
+ /**
215
+ * Valid Bulma flex grow and shrink values.
216
+ * @example '0', '1', '2', '3', '4', '5'
217
+ */
218
+ const validFlexGrowShrink = ['0', '1', '2', '3', '4', '5'];
219
+ /**
220
+ * Valid Bulma viewport classes for responsive design.
221
+ * @example 'mobile', 'tablet', 'desktop'
222
+ */
223
+ const validViewports = [
224
+ 'mobile',
225
+ 'tablet',
226
+ 'tablet-only',
227
+ 'touch',
228
+ 'desktop',
229
+ 'desktop-only',
230
+ 'widescreen',
231
+ 'widescreen-only',
232
+ 'fullhd',
233
+ ];
234
+ /**
235
+ * Valid Bulma float classes.
236
+ * @example 'left', 'right'
237
+ */
238
+ const validFloats = ['left', 'right'];
239
+ /**
240
+ * Valid Bulma overflow classes.
241
+ * @example 'clipped'
242
+ */
243
+ const validOverflows = ['clipped'];
244
+ /**
245
+ * Valid Bulma interaction classes.
246
+ * @example 'unselectable', 'clickable'
247
+ */
248
+ const validInteractions = ['unselectable', 'clickable'];
249
+ /**
250
+ * Valid Bulma cursor helper values.
251
+ *
252
+ * These share no class stem: `pointer` renders `is-clickable` and `help`
253
+ * renders `is-cursor-help`, so the class each one emits lives in
254
+ * `cursorClasses` rather than being built from the value.
255
+ * @example 'pointer', 'help'
256
+ */
257
+ const validCursors = ['pointer', 'help'];
258
+ /**
259
+ * Cursor helper value to the class it renders.
260
+ *
261
+ * A `Record` over `validCursors` on purpose: TypeScript then rejects a value
262
+ * added to the tuple with no class for it, and a class for a value the tuple
263
+ * does not carry, so the accepted set and the rendered classes cannot drift
264
+ * apart.
265
+ */
266
+ const cursorClasses = {
267
+ pointer: 'is-clickable',
268
+ help: 'is-cursor-help',
269
+ };
270
+ /**
271
+ * Valid Bulma border-radius helper classes.
272
+ * @example 'radiusless'
273
+ */
274
+ const validRadii = ['radiusless'];
275
+ /**
276
+ * Valid Bulma shadow helper classes.
277
+ * @example 'shadowless'
278
+ */
279
+ const validShadows = ['shadowless'];
280
+ /**
281
+ * Valid Bulma responsive helper classes.
282
+ * @example 'mobile', 'narrow'
283
+ */
284
+ const validResponsives = ['mobile', 'narrow'];
285
+ /**
286
+ * Creates the shared class-building helpers used by the Bulma helper hooks.
287
+ *
288
+ * Returns a mutable `classes` array along with the helper functions that push
289
+ * (optionally prefixed, optionally viewport-suffixed) class names onto it.
290
+ *
291
+ * @internal
292
+ * @param classPrefix - Optional prefix applied to all generated class names.
293
+ * @param viewport - Optional viewport modifier for viewport-aware classes.
294
+ */
295
+ const createBulmaClassHelpers = (classPrefix, viewport) => {
296
+ const classes = [];
297
+ // Helper function to add class with prefix support
298
+ const addPrefixedClass = (className) => {
299
+ classes.push(classPrefix ? `${classPrefix}${className}` : className);
300
+ };
301
+ // Helper to add class with optional viewport
302
+ //
303
+ // `supportedViewports` narrows which viewports may be suffixed onto this
304
+ // class. It defaults to every viewport, but a few Bulma helper families
305
+ // (notably `is-size-*`, which ships no `-only` bands) support only a subset,
306
+ // so passing the emitting set keeps us from producing dead classes.
307
+ const addClass = (prefix, value, validValues, supportsViewport = false, supportedViewports = validViewports) => {
308
+ if (value && validValues.includes(value)) {
309
+ const className = supportsViewport &&
310
+ viewport &&
311
+ validViewports.includes(viewport) &&
312
+ supportedViewports.includes(viewport)
313
+ ? `${prefix}-${value}-${viewport}`
314
+ : `${prefix}-${value}`;
315
+ addPrefixedClass(className);
316
+ }
317
+ };
318
+ // Helper specifically for classes that never support viewport modifiers
319
+ const addClassNoViewport = (prefix, value, validValues) => {
320
+ if (value && (!validValues.length || validValues.includes(value))) {
321
+ addPrefixedClass(`${prefix}-${value}`);
322
+ }
323
+ };
324
+ return { classes, addPrefixedClass, addClass, addClassNoViewport };
325
+ };
326
+
327
+ export { createBulmaClassHelpers, cursorClasses, validAlignContents, validAlignItems, validAlignSelfs, validAlignments, validColorShades, validColors, validCursors, validDisplays, validFlexDirections, validFlexGrowShrink, validFlexWraps, validFloats, validFontFamilies, validInteractions, validJustifyContents, validOverflows, validRadii, validResponsives, validSchemeColors, validShadows, validSizes, validTextSizes, validTextTransforms, validTextWeights, validViewports, validVisibilities };
328
+ //# sourceMappingURL=constants.esm.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"constants.esm.js","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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"}
package/dist/index.cjs.js CHANGED
@@ -211,6 +211,8 @@ const validColors = [
211
211
  'grey-light',
212
212
  'grey-lighter',
213
213
  'white',
214
+ 'white-bis',
215
+ 'white-ter',
214
216
  'light',
215
217
  'dark',
216
218
  ];
@@ -421,6 +423,57 @@ const validViewports = [
421
423
  'widescreen-only',
422
424
  'fullhd',
423
425
  ];
426
+ /**
427
+ * Valid Bulma float classes.
428
+ * @example 'left', 'right'
429
+ */
430
+ const validFloats = ['left', 'right'];
431
+ /**
432
+ * Valid Bulma overflow classes.
433
+ * @example 'clipped'
434
+ */
435
+ const validOverflows = ['clipped'];
436
+ /**
437
+ * Valid Bulma interaction classes.
438
+ * @example 'unselectable', 'clickable'
439
+ */
440
+ const validInteractions = ['unselectable', 'clickable'];
441
+ /**
442
+ * Valid Bulma cursor helper values.
443
+ *
444
+ * These share no class stem: `pointer` renders `is-clickable` and `help`
445
+ * renders `is-cursor-help`, so the class each one emits lives in
446
+ * `cursorClasses` rather than being built from the value.
447
+ * @example 'pointer', 'help'
448
+ */
449
+ const validCursors = ['pointer', 'help'];
450
+ /**
451
+ * Cursor helper value to the class it renders.
452
+ *
453
+ * A `Record` over `validCursors` on purpose: TypeScript then rejects a value
454
+ * added to the tuple with no class for it, and a class for a value the tuple
455
+ * does not carry, so the accepted set and the rendered classes cannot drift
456
+ * apart.
457
+ */
458
+ const cursorClasses = {
459
+ pointer: 'is-clickable',
460
+ help: 'is-cursor-help',
461
+ };
462
+ /**
463
+ * Valid Bulma border-radius helper classes.
464
+ * @example 'radiusless'
465
+ */
466
+ const validRadii = ['radiusless'];
467
+ /**
468
+ * Valid Bulma shadow helper classes.
469
+ * @example 'shadowless'
470
+ */
471
+ const validShadows = ['shadowless'];
472
+ /**
473
+ * Valid Bulma responsive helper classes.
474
+ * @example 'mobile', 'narrow'
475
+ */
476
+ const validResponsives = ['mobile', 'narrow'];
424
477
  /**
425
478
  * Creates the shared class-building helpers used by the Bulma helper hooks.
426
479
  *
@@ -887,33 +940,28 @@ const useOtherClasses = (props) => {
887
940
  const { classes, addPrefixedClass, addClassNoViewport } = createBulmaClassHelpers(classPrefix);
888
941
  // Other Helpers (no viewport support)
889
942
  if (float) {
890
- addClassNoViewport('is-pulled', float, ['left', 'right']);
943
+ addClassNoViewport('is-pulled', float, validFloats);
891
944
  }
892
945
  if (overflow) {
893
- addClassNoViewport('is', overflow, ['clipped']);
946
+ addClassNoViewport('is', overflow, validOverflows);
894
947
  }
895
948
  if (overlay) {
896
949
  addPrefixedClass('is-overlay');
897
950
  }
898
951
  if (interaction) {
899
- addClassNoViewport('is', interaction, ['unselectable', 'clickable']);
952
+ addClassNoViewport('is', interaction, validInteractions);
900
953
  }
901
- if (cursor) {
902
- if (cursor === 'pointer') {
903
- addPrefixedClass('is-clickable');
904
- }
905
- else if (cursor === 'help') {
906
- addPrefixedClass('is-cursor-help');
907
- }
954
+ if (cursor && validCursors.includes(cursor)) {
955
+ addPrefixedClass(cursorClasses[cursor]);
908
956
  }
909
957
  if (radius) {
910
- addClassNoViewport('is', radius, ['radiusless']);
958
+ addClassNoViewport('is', radius, validRadii);
911
959
  }
912
960
  if (shadow) {
913
- addClassNoViewport('is', shadow, ['shadowless']);
961
+ addClassNoViewport('is', shadow, validShadows);
914
962
  }
915
963
  if (responsive) {
916
- addClassNoViewport('is', responsive, ['mobile', 'narrow']);
964
+ addClassNoViewport('is', responsive, validResponsives);
917
965
  }
918
966
  // Bulma Skeleton Helper
919
967
  if (skeleton) {
@@ -2967,6 +3015,8 @@ const Navbar = withSubComponents(NavbarComponent, {
2967
3015
  const UNSTYLED_MODIFIER_COLORS = [
2968
3016
  'black-bis',
2969
3017
  'black-ter',
3018
+ 'white-bis',
3019
+ 'white-ter',
2970
3020
  'grey-darker',
2971
3021
  'grey-dark',
2972
3022
  'grey',
@@ -12743,8 +12793,8 @@ function cssVarToProp(varName) {
12743
12793
  * Mapping of camelCase prop names to their Bulma CSS variable counterparts.
12744
12794
  *
12745
12795
  * `--bulma-shadow` is excluded: `cssVarToProp` would mint it as `shadow`,
12746
- * which already exists as a `BulmaOtherProps` prop (`shadow?: 'shadowless'`,
12747
- * applied via `useBulmaClasses`) — keeping it out of this map means that
12796
+ * which already exists as a `BulmaOtherProps` prop applied via
12797
+ * `useBulmaClasses` — keeping it out of this map means that
12748
12798
  * prop keeps its existing class-based meaning, while `--bulma-shadow` is
12749
12799
  * still reachable through the `bulmaVars` object.
12750
12800
  */
@@ -13398,13 +13448,20 @@ exports.validAlignSelfs = validAlignSelfs;
13398
13448
  exports.validAlignments = validAlignments$1;
13399
13449
  exports.validColorShades = validColorShades;
13400
13450
  exports.validColors = validColors;
13451
+ exports.validCursors = validCursors;
13401
13452
  exports.validDisplays = validDisplays;
13402
13453
  exports.validFlexDirections = validFlexDirections;
13403
13454
  exports.validFlexGrowShrink = validFlexGrowShrink;
13404
13455
  exports.validFlexWraps = validFlexWraps;
13456
+ exports.validFloats = validFloats;
13405
13457
  exports.validFontFamilies = validFontFamilies;
13458
+ exports.validInteractions = validInteractions;
13406
13459
  exports.validJustifyContents = validJustifyContents;
13460
+ exports.validOverflows = validOverflows;
13461
+ exports.validRadii = validRadii;
13462
+ exports.validResponsives = validResponsives;
13407
13463
  exports.validSchemeColors = validSchemeColors;
13464
+ exports.validShadows = validShadows;
13408
13465
  exports.validSizes = validSizes$1;
13409
13466
  exports.validTableColors = validTableColors;
13410
13467
  exports.validTextSizes = validTextSizes;