@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.
- package/dist/constants.cjs +357 -0
- package/dist/constants.cjs.map +1 -0
- package/dist/constants.d.cts +197 -0
- package/dist/constants.esm.js +328 -0
- package/dist/constants.esm.js.map +1 -0
- package/dist/index.cjs.js +72 -15
- package/dist/index.cjs.js.map +1 -1
- package/dist/index.esm.js +66 -16
- package/dist/index.esm.js.map +1 -1
- package/dist/types/elements/Notification.d.ts +8 -12
- package/dist/types/elements/Progress.d.ts +4 -5
- package/dist/types/helpers/bulmaClassHelpers.d.ts +49 -1
- package/dist/types/helpers/colorDeprecations.d.ts +1 -1
- package/dist/types/helpers/useBulmaClasses.d.ts +1 -1
- package/dist/types/helpers/useOtherClasses.d.ts +8 -7
- package/dist/types/layout/Hero.d.ts +4 -6
- package/package.json +18 -1
|
@@ -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,
|
|
943
|
+
addClassNoViewport('is-pulled', float, validFloats);
|
|
891
944
|
}
|
|
892
945
|
if (overflow) {
|
|
893
|
-
addClassNoViewport('is', overflow,
|
|
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,
|
|
952
|
+
addClassNoViewport('is', interaction, validInteractions);
|
|
900
953
|
}
|
|
901
|
-
if (cursor) {
|
|
902
|
-
|
|
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,
|
|
958
|
+
addClassNoViewport('is', radius, validRadii);
|
|
911
959
|
}
|
|
912
960
|
if (shadow) {
|
|
913
|
-
addClassNoViewport('is', shadow,
|
|
961
|
+
addClassNoViewport('is', shadow, validShadows);
|
|
914
962
|
}
|
|
915
963
|
if (responsive) {
|
|
916
|
-
addClassNoViewport('is', responsive,
|
|
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
|
|
12747
|
-
*
|
|
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;
|