@allxsmith/bestax-bulma 5.15.3 → 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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"}