bestax-migrate 2.23.1 → 2.24.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/sources/bulma-classes/class-map.d.ts +7 -0
- package/dist/sources/bulma-classes/class-map.d.ts.map +1 -1
- package/dist/sources/bulma-classes/class-map.js +54 -1
- package/dist/sources/bulma-classes/plan.d.ts +38 -0
- package/dist/sources/bulma-classes/plan.d.ts.map +1 -1
- package/dist/sources/bulma-classes/plan.js +112 -0
- package/dist/sources/bulma-classes/transform.d.ts.map +1 -1
- package/dist/sources/bulma-classes/transform.js +151 -12
- package/package.json +2 -2
|
@@ -250,6 +250,13 @@ export interface RootEntry {
|
|
|
250
250
|
* and each `.icon` converts on its own; they go.
|
|
251
251
|
*/
|
|
252
252
|
readonly buildsIcons?: boolean;
|
|
253
|
+
/**
|
|
254
|
+
* The target renders the whole `.file` tree from props (`File`): its
|
|
255
|
+
* `<input>`, button text, icons and file name. The element converts only
|
|
256
|
+
* when its tree is exactly that one, and only inside a `Field`, since
|
|
257
|
+
* outside one the target renders a `.field` of its own around it.
|
|
258
|
+
*/
|
|
259
|
+
readonly buildsFile?: boolean;
|
|
253
260
|
/** The target takes no helper props, so every helper class stays a class. */
|
|
254
261
|
readonly noHelpers?: boolean;
|
|
255
262
|
/**
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"class-map.d.ts","sourceRoot":"","sources":["../../../src/sources/bulma-classes/class-map.ts"],"names":[],"mappings":"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
|
|
1
|
+
{"version":3,"file":"class-map.d.ts","sourceRoot":"","sources":["../../../src/sources/bulma-classes/class-map.ts"],"names":[],"mappings":"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"}
|
|
@@ -1218,7 +1218,59 @@ export const ROOTS = {
|
|
|
1218
1218
|
checkboxes: todo('Checkboxes', 'bestax `Checkboxes` renders its own `.field` and `.control` wrappers'),
|
|
1219
1219
|
radio: todo('Radio', "bestax `Radio` renders its own styled markup, not Bulma's"),
|
|
1220
1220
|
radios: todo('Radios', 'bestax `Radios` renders its own `.field` and `.control` wrappers'),
|
|
1221
|
-
|
|
1221
|
+
// `File` renders the whole `.file` tree from props, and puts the
|
|
1222
|
+
// attributes it's given on its `<input>`. `color` renders `has-text-<color>`
|
|
1223
|
+
// too, so a color stays a class, and `isCentered` renders nothing beside
|
|
1224
|
+
// `isRight`.
|
|
1225
|
+
file: {
|
|
1226
|
+
...BASE,
|
|
1227
|
+
target: 'File',
|
|
1228
|
+
tag: 'div',
|
|
1229
|
+
textColor: null,
|
|
1230
|
+
bgColor: 'backgroundColor',
|
|
1231
|
+
modifiers: {
|
|
1232
|
+
...tokens('is-', ['small', 'medium', 'large'], 'size'),
|
|
1233
|
+
...flags({
|
|
1234
|
+
'is-boxed': 'isBoxed',
|
|
1235
|
+
'is-fullwidth': 'isFullwidth',
|
|
1236
|
+
'is-right': 'isRight',
|
|
1237
|
+
}),
|
|
1238
|
+
// `File` renders `{hasName && fileName && …}`, so a condition handed to
|
|
1239
|
+
// it as it is would render a falsy number (`0`) as text.
|
|
1240
|
+
'has-name': { writes: [{ prop: 'hasName' }], onlyTrue: true },
|
|
1241
|
+
},
|
|
1242
|
+
omits: {
|
|
1243
|
+
...Object.fromEntries(COMPONENT_COLORS.map(color => [
|
|
1244
|
+
`is-${color}`,
|
|
1245
|
+
'`color` renders `has-text-<color>` on the `.file` as well',
|
|
1246
|
+
])),
|
|
1247
|
+
'is-centered': '`isCentered` renders nothing beside `isRight`',
|
|
1248
|
+
},
|
|
1249
|
+
buildsFile: true,
|
|
1250
|
+
ownProps: [
|
|
1251
|
+
'label',
|
|
1252
|
+
'labelSize',
|
|
1253
|
+
'labelProps',
|
|
1254
|
+
'horizontal',
|
|
1255
|
+
'message',
|
|
1256
|
+
'messageColor',
|
|
1257
|
+
'fieldClassName',
|
|
1258
|
+
'color',
|
|
1259
|
+
'size',
|
|
1260
|
+
'isBoxed',
|
|
1261
|
+
'isFullwidth',
|
|
1262
|
+
'isFullWidth',
|
|
1263
|
+
'isRight',
|
|
1264
|
+
'isCentered',
|
|
1265
|
+
'hasName',
|
|
1266
|
+
'buttonLabel',
|
|
1267
|
+
'iconLeft',
|
|
1268
|
+
'iconRight',
|
|
1269
|
+
'inputClassName',
|
|
1270
|
+
'fileName',
|
|
1271
|
+
],
|
|
1272
|
+
passThrough: ['ref'],
|
|
1273
|
+
},
|
|
1222
1274
|
'file-label': part(),
|
|
1223
1275
|
'file-input': part(),
|
|
1224
1276
|
'file-cta': part(),
|
|
@@ -1788,6 +1840,7 @@ export const FORWARDS_REF = [
|
|
|
1788
1840
|
'InputBase',
|
|
1789
1841
|
'TextAreaBase',
|
|
1790
1842
|
'SelectBase',
|
|
1843
|
+
'File',
|
|
1791
1844
|
];
|
|
1792
1845
|
/**
|
|
1793
1846
|
* Plain tags bestax wraps, for an element with helper classes and no root
|
|
@@ -129,6 +129,13 @@ export interface ChildFacts {
|
|
|
129
129
|
becomes?: Conversion;
|
|
130
130
|
soleChild?: ChildFacts;
|
|
131
131
|
text?: string;
|
|
132
|
+
/**
|
|
133
|
+
* Its own `childElements`, read the same way, and whether its content is
|
|
134
|
+
* static: text and elements only, at least one of them rendered. What an
|
|
135
|
+
* entry that `buildsFile` reads, down the tree.
|
|
136
|
+
*/
|
|
137
|
+
children?: readonly ChildFacts[];
|
|
138
|
+
staticContent?: boolean;
|
|
132
139
|
}
|
|
133
140
|
export interface Todo {
|
|
134
141
|
rule: string;
|
|
@@ -188,7 +195,38 @@ export interface Conversion {
|
|
|
188
195
|
* has a text, which becomes its children.
|
|
189
196
|
*/
|
|
190
197
|
icons?: BuiltIcon[];
|
|
198
|
+
/**
|
|
199
|
+
* The target renders the element's whole tree from props (`File`): the
|
|
200
|
+
* `<input>`'s attributes join the element's, and the parts below become
|
|
201
|
+
* props. The tree goes, and the element closes itself.
|
|
202
|
+
*/
|
|
203
|
+
file?: BuiltFile;
|
|
191
204
|
}
|
|
205
|
+
/**
|
|
206
|
+
* The `.file` tree a target that `buildsFile` renders from props. The one
|
|
207
|
+
* child of the element is its `.file-label` <label>, holding the <input>,
|
|
208
|
+
* the `.file-cta` and at most one `.file-name`.
|
|
209
|
+
*/
|
|
210
|
+
export interface BuiltFile {
|
|
211
|
+
/** The <input>'s classes but `file-input`, as `inputClassName`, or null. */
|
|
212
|
+
inputClassName: string | null;
|
|
213
|
+
/**
|
|
214
|
+
* Which of the `.file-cta`'s children holds the button text, when it isn't
|
|
215
|
+
* the text the target renders by default.
|
|
216
|
+
*/
|
|
217
|
+
buttonLabel?: number;
|
|
218
|
+
/** Which of them holds the icon before that text, and after it. */
|
|
219
|
+
iconLeft?: number;
|
|
220
|
+
iconRight?: number;
|
|
221
|
+
/** The `.file-name`'s text. */
|
|
222
|
+
fileName?: string;
|
|
223
|
+
}
|
|
224
|
+
/**
|
|
225
|
+
* Why a target that `buildsFile` stays markup outside a `Field`, for the
|
|
226
|
+
* planner here and for the transform, which can see whether the `.field`
|
|
227
|
+
* around it converts.
|
|
228
|
+
*/
|
|
229
|
+
export declare function fileContextTodo(target: string): Todo;
|
|
192
230
|
/** One icon a target that `buildsIcons` builds from props. */
|
|
193
231
|
export interface BuiltIcon {
|
|
194
232
|
/** Which of the element's `childElements` its `.icon` is. */
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"plan.d.ts","sourceRoot":"","sources":["../../../src/sources/bulma-classes/plan.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;GAUG;AAoBH,MAAM,WAAW,YAAY;IAC3B,GAAG,EAAE,MAAM,CAAC;IACZ,2DAA2D;IAC3D,MAAM,EAAE,SAAS,MAAM,EAAE,CAAC;IAC1B;;;;;OAKG;IACH,WAAW,CAAC,EAAE,SAAS,CAAC,SAAS,MAAM,EAAE,CAAC,EAAE,CAAC;IAC7C;;;;OAIG;IACH,MAAM,CAAC,EAAE,SAAS,MAAM,EAAE,CAAC;IAC3B;;;OAGG;IACH,UAAU,EAAE,WAAW,CAAC,MAAM,EAAE,MAAM,GAAG,IAAI,GAAG,IAAI,CAAC,CAAC;IACtD,SAAS,EAAE,OAAO,CAAC;IACnB,MAAM,EAAE,OAAO,CAAC;IAChB,4EAA4E;IAC5E,WAAW,EAAE,OAAO,CAAC;IACrB;;;;OAIG;IACH,YAAY,CAAC,EAAE,SAAS,MAAM,EAAE,CAAC;IACjC;;;OAGG;IACH,eAAe,CAAC,EAAE,MAAM,CAAC;IACzB;;;OAGG;IACH,SAAS,CAAC,EAAE,UAAU,CAAC;IACvB;;;;OAIG;IACH,aAAa,CAAC,EAAE,SAAS,UAAU,EAAE,CAAC;IACtC,qEAAqE;IACrE,YAAY,CAAC,EAAE,SAAS,MAAM,EAAE,CAAC;IACjC,qEAAqE;IACrE,YAAY,CAAC,EAAE,SAAS,MAAM,EAAE,CAAC;IACjC;;;OAGG;IACH,gBAAgB,CAAC,EAAE,SAAS,MAAM,EAAE,CAAC;IACrC;;;OAGG;IACH,aAAa,CAAC,EAAE,SAAS,MAAM,EAAE,CAAC;IAClC;;;;OAIG;IACH,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB;;;;OAIG;IACH,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB;;;OAGG;IACH,UAAU,CAAC,EAAE,OAAO,CAAC;IACrB;;;OAGG;IACH,WAAW,CAAC,EAAE,UAAU,CAAC;IACzB;;;OAGG;IACH,iBAAiB,CAAC,EAAE,MAAM,CAAC;IAC3B;;OAEG;IACH,IAAI,CAAC,EAAE,MAAM,CAAC;CACf;AAED,MAAM,WAAW,UAAU;IACzB,GAAG,EAAE,MAAM,CAAC;IACZ;;;OAGG;IACH,MAAM,CAAC,EAAE,SAAS,MAAM,EAAE,GAAG,IAAI,CAAC;IAClC;;;OAGG;IACH,UAAU,EAAE,WAAW,CAAC,MAAM,EAAE,MAAM,GAAG,MAAM,GAAG,IAAI,GAAG,IAAI,CAAC,CAAC;IAC/D,SAAS,EAAE,OAAO,CAAC;IACnB;;;OAGG;IACH,OAAO,EAAE,OAAO,CAAC;IACjB;;;;OAIG;IACH,OAAO,CAAC,EAAE,UAAU,CAAC;IACrB,SAAS,CAAC,EAAE,UAAU,CAAC;IACvB,IAAI,CAAC,EAAE,MAAM,CAAC;
|
|
1
|
+
{"version":3,"file":"plan.d.ts","sourceRoot":"","sources":["../../../src/sources/bulma-classes/plan.ts"],"names":[],"mappings":"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"}
|
|
@@ -12,6 +12,19 @@
|
|
|
12
12
|
import { FORWARDS_REF, HELPER_PROPS, HELPER_TOKENS, inTagSet, legacyHint, modifierFor, numberAttrsOf, placedFor, PRECEDENCE, rootFor, WRAPPER_OWN_PROPS, wrapperFor, } from './class-map.js';
|
|
13
13
|
import { readGlyph } from './glyph.js';
|
|
14
14
|
import { ruleId } from './rules.js';
|
|
15
|
+
/** The button text `File` renders when it's given none. */
|
|
16
|
+
const DEFAULT_FILE_LABEL = 'Choose a file\u2026';
|
|
17
|
+
/**
|
|
18
|
+
* Why a target that `buildsFile` stays markup outside a `Field`, for the
|
|
19
|
+
* planner here and for the transform, which can see whether the `.field`
|
|
20
|
+
* around it converts.
|
|
21
|
+
*/
|
|
22
|
+
export function fileContextTodo(target) {
|
|
23
|
+
return {
|
|
24
|
+
rule: ruleId('context', target),
|
|
25
|
+
message: `bestax \`${target}\` renders a \`.field\` of its own around the \`.file\` unless it sits inside a \`Field\`, and nothing around this element is one or becomes one here; keep it as markup, or convert the \`.field\` around it, then re-run`,
|
|
26
|
+
};
|
|
27
|
+
}
|
|
15
28
|
function wrapperEntry(tag) {
|
|
16
29
|
const target = wrapperFor(tag);
|
|
17
30
|
if (!target)
|
|
@@ -114,6 +127,16 @@ export function plan(facts) {
|
|
|
114
127
|
if (facts.hasSpread) {
|
|
115
128
|
return refuse('spread', target, `this element spreads props, which bestax \`${target}\` may read differently than the element did (a spread \`className\` merges with its classes instead of replacing them); convert it to \`${target}\` by hand`);
|
|
116
129
|
}
|
|
130
|
+
if (entry.buildsFile) {
|
|
131
|
+
const own = [...facts.attributes.keys()].find(name => name !== 'key');
|
|
132
|
+
if (own) {
|
|
133
|
+
return refuse('attr', own, `bestax \`${target}\` puts the attributes it's given on its <input>, so this element's \`${own}\` would move there; move it onto the <input> if that's what you want, then re-run`);
|
|
134
|
+
}
|
|
135
|
+
if (!facts.bestaxAround?.includes('Field') &&
|
|
136
|
+
!facts.classesAround?.includes('field')) {
|
|
137
|
+
return { conversion: null, todos: [...todos, fileContextTodo(target)] };
|
|
138
|
+
}
|
|
139
|
+
}
|
|
117
140
|
if (facts.hasRef && !FORWARDS_REF.includes(target)) {
|
|
118
141
|
return refuse('ref', target, `bestax \`${target}\` does not forward refs, so this \`ref\` would stop reaching the DOM node; keep this element as markup`);
|
|
119
142
|
}
|
|
@@ -324,6 +347,14 @@ export function plan(facts) {
|
|
|
324
347
|
return refuse('children', target, built.why);
|
|
325
348
|
icons = built.icons;
|
|
326
349
|
}
|
|
350
|
+
let file;
|
|
351
|
+
if (entry.buildsFile) {
|
|
352
|
+
const built = buildFile(facts.childElements, entry, writes.has('hasName'));
|
|
353
|
+
if ('why' in built)
|
|
354
|
+
return refuse(built.kind, built.token, built.why);
|
|
355
|
+
file = built.file;
|
|
356
|
+
numbers.push(...built.numbers);
|
|
357
|
+
}
|
|
327
358
|
const props = [];
|
|
328
359
|
if (as)
|
|
329
360
|
props.push(['as', as]);
|
|
@@ -388,10 +419,91 @@ export function plan(facts) {
|
|
|
388
419
|
...(parent ? { replacesParent: true } : {}),
|
|
389
420
|
...(conditional.length > 0 ? { conditional } : {}),
|
|
390
421
|
...(icons ? { icons } : {}),
|
|
422
|
+
...(file ? { file } : {}),
|
|
391
423
|
},
|
|
392
424
|
todos,
|
|
393
425
|
};
|
|
394
426
|
}
|
|
427
|
+
/**
|
|
428
|
+
* The tree a target that `buildsFile` renders from props, read from an
|
|
429
|
+
* element's children: exactly the one it renders, with static content where
|
|
430
|
+
* it takes a prop. The <input>'s attributes become the target's, so one it
|
|
431
|
+
* reads as a prop of its own refuses.
|
|
432
|
+
*/
|
|
433
|
+
function buildFile(children, entry, hasName) {
|
|
434
|
+
const target = entry.target;
|
|
435
|
+
const shape = {
|
|
436
|
+
kind: 'children',
|
|
437
|
+
token: target,
|
|
438
|
+
why: `bestax \`${target}\` renders the whole \`.file\` tree itself, so this converts only when its tree is the one it renders: one bare \`.file-label\` <label> holding a \`.file-input\` <input type="file">, a bare \`.file-cta\` <span> with a bare \`.file-label\` <span> of static content and at most one bare \`.file-icon\` <span> of static content on each side of it, and, with \`has-name\`, at most one bare \`.file-name\` <span> of static text; keep it as markup, or convert it by hand`,
|
|
439
|
+
};
|
|
440
|
+
const bare = (child, tag, token) => child?.tag === tag &&
|
|
441
|
+
child.tokens?.length === 1 &&
|
|
442
|
+
child.tokens[0] === token &&
|
|
443
|
+
child.attributes.size === 0 &&
|
|
444
|
+
!child.hasSpread;
|
|
445
|
+
const [label, ...beside] = children ?? [];
|
|
446
|
+
if (beside.length > 0 || !bare(label, 'label', 'file-label'))
|
|
447
|
+
return shape;
|
|
448
|
+
const [input, cta, name, ...more] = label.children ?? [];
|
|
449
|
+
if (more.length > 0 ||
|
|
450
|
+
input?.tag !== 'input' ||
|
|
451
|
+
!input.tokens?.includes('file-input') ||
|
|
452
|
+
input.attributes.get('type') !== 'file' ||
|
|
453
|
+
input.attributes.has('key') ||
|
|
454
|
+
input.hasSpread ||
|
|
455
|
+
!bare(cta, 'span', 'file-cta')) {
|
|
456
|
+
return shape;
|
|
457
|
+
}
|
|
458
|
+
const parts = cta.children ?? [];
|
|
459
|
+
const at = parts.findIndex(part => bare(part, 'span', 'file-label'));
|
|
460
|
+
const icons = parts.filter((_, index) => index !== at);
|
|
461
|
+
if (at === -1 ||
|
|
462
|
+
at > 1 ||
|
|
463
|
+
parts.length - at > 2 ||
|
|
464
|
+
!parts[at].staticContent ||
|
|
465
|
+
!icons.every(icon => bare(icon, 'span', 'file-icon') && icon.staticContent)) {
|
|
466
|
+
return shape;
|
|
467
|
+
}
|
|
468
|
+
if (name && !(hasName && bare(name, 'span', 'file-name') && name.text)) {
|
|
469
|
+
return shape;
|
|
470
|
+
}
|
|
471
|
+
const numbers = [];
|
|
472
|
+
for (const [attribute, value] of input.attributes) {
|
|
473
|
+
if (attribute === 'type')
|
|
474
|
+
continue;
|
|
475
|
+
if (entry.ownProps?.includes(attribute) || HELPER_PROPS.has(attribute)) {
|
|
476
|
+
return {
|
|
477
|
+
kind: 'attr',
|
|
478
|
+
token: attribute,
|
|
479
|
+
why: `bestax \`${target}\` takes the <input>'s attributes as its own props, and \`${attribute}\` is one it reads differently; rename or drop the attribute, then re-run`,
|
|
480
|
+
};
|
|
481
|
+
}
|
|
482
|
+
if (!numberAttrsOf(entry).includes(attribute))
|
|
483
|
+
continue;
|
|
484
|
+
if (typeof value !== 'string')
|
|
485
|
+
continue;
|
|
486
|
+
if (!/^-?\d+(?:\.\d+)?$/.test(value) || String(Number(value)) !== value) {
|
|
487
|
+
return {
|
|
488
|
+
kind: 'attr',
|
|
489
|
+
token: attribute,
|
|
490
|
+
why: `bestax \`${target}\` types \`${attribute}\` as a number, and \`${value}\` is not a number spelled the way it renders; keep this element as markup`,
|
|
491
|
+
};
|
|
492
|
+
}
|
|
493
|
+
numbers.push(attribute);
|
|
494
|
+
}
|
|
495
|
+
const inputClasses = input.tokens.filter(token => token !== 'file-input');
|
|
496
|
+
return {
|
|
497
|
+
file: {
|
|
498
|
+
inputClassName: inputClasses.length > 0 ? inputClasses.join(' ') : null,
|
|
499
|
+
...(parts[at].text !== DEFAULT_FILE_LABEL && { buttonLabel: at }),
|
|
500
|
+
...(at === 1 && { iconLeft: 0 }),
|
|
501
|
+
...(parts.length - at === 2 && { iconRight: at + 1 }),
|
|
502
|
+
...(name && { fileName: name.text }),
|
|
503
|
+
},
|
|
504
|
+
numbers,
|
|
505
|
+
};
|
|
506
|
+
}
|
|
395
507
|
/**
|
|
396
508
|
* The icons a target that `buildsIcons` builds from an element's children:
|
|
397
509
|
* each `.icon` that converts to `Icon` on its own and holds a glyph `Icon`
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"transform.d.ts","sourceRoot":"","sources":["../../../src/sources/bulma-classes/transform.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;GAiBG;AAEH,OAAO,KAAK,EAAE,GAAG,EAAW,QAAQ,EAAE,MAAM,aAAa,CAAC;AAE1D,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,gBAAgB,CAAC;
|
|
1
|
+
{"version":3,"file":"transform.d.ts","sourceRoot":"","sources":["../../../src/sources/bulma-classes/transform.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;GAiBG;AAEH,OAAO,KAAK,EAAE,GAAG,EAAW,QAAQ,EAAE,MAAM,aAAa,CAAC;AAE1D,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,gBAAgB,CAAC;AA+6BvD,MAAM,CAAC,OAAO,UAAU,SAAS,CAC/B,QAAQ,EAAE,QAAQ,EAClB,GAAG,EAAE,GAAG,EACR,OAAO,GAAE,gBAAqB,GAC7B,MAAM,GAAG,SAAS,CA02BpB"}
|
|
@@ -21,7 +21,7 @@ import { addTodo, findAttr, forgetJsxParens, jsxNameParts, literalValueOf, makeA
|
|
|
21
21
|
import { collectBoundNames, makeReserve, prefersTabs, resolvesToBinding, } from '../_shared/imports.js';
|
|
22
22
|
import { rewriteStylesheetImports } from '../_shared/css-imports.js';
|
|
23
23
|
import { BESTAX, buildBestaxImport, placeBestaxImport, seedBestaxImport, } from '../_shared/bestax-import.js';
|
|
24
|
-
import { plan, } from './plan.js';
|
|
24
|
+
import { fileContextTodo, plan, } from './plan.js';
|
|
25
25
|
import { REACT_RUNTIMES, } from './project.js';
|
|
26
26
|
import { PLACED, placedFor, ROOTS, rootFor } from './class-map.js';
|
|
27
27
|
import { ruleId } from './rules.js';
|
|
@@ -711,6 +711,47 @@ function textChild(j, text) {
|
|
|
711
711
|
? j.jsxText(text)
|
|
712
712
|
: j.jsxExpressionContainer(j.stringLiteral(text));
|
|
713
713
|
}
|
|
714
|
+
/**
|
|
715
|
+
* A text as an attribute value: quoted when JSX reads it as written there,
|
|
716
|
+
* and as a string otherwise. A JSX attribute string has no escapes, so a
|
|
717
|
+
* quote would end it, a backslash would print doubled, and an `&` could be
|
|
718
|
+
* read as an entity.
|
|
719
|
+
*/
|
|
720
|
+
function textValue(j, text) {
|
|
721
|
+
return /^[^"&\\\r\n]*$/.test(text)
|
|
722
|
+
? j.stringLiteral(text)
|
|
723
|
+
: j.jsxExpressionContainer(j.stringLiteral(text));
|
|
724
|
+
}
|
|
725
|
+
/** Whether an element's content is text and elements only, and renders. */
|
|
726
|
+
function staticContent(element) {
|
|
727
|
+
const content = (element.children ?? []).filter(reachesReact);
|
|
728
|
+
return (content.length > 0 &&
|
|
729
|
+
content.every((child) => child.type === 'JSXText' ||
|
|
730
|
+
child.type === 'JSXElement' ||
|
|
731
|
+
child.type === 'JSXFragment' ||
|
|
732
|
+
(child.type === 'JSXExpressionContainer' &&
|
|
733
|
+
child.expression.type === 'StringLiteral' &&
|
|
734
|
+
child.expression.value !== '')));
|
|
735
|
+
}
|
|
736
|
+
/**
|
|
737
|
+
* An element's content as one prop value: its one element, or its text, or
|
|
738
|
+
* a fragment of them all, each text written as the string it renders.
|
|
739
|
+
*/
|
|
740
|
+
function contentValue(j, element) {
|
|
741
|
+
const content = (element.children ?? []).filter((child) => !dropped(child));
|
|
742
|
+
if (content.length === 1) {
|
|
743
|
+
const [only] = content;
|
|
744
|
+
if (only.type === 'JSXText') {
|
|
745
|
+
return textValue(j, jsxTextRenders(only.value));
|
|
746
|
+
}
|
|
747
|
+
if (only.type === 'JSXExpressionContainer')
|
|
748
|
+
return only;
|
|
749
|
+
return j.jsxExpressionContainer(only);
|
|
750
|
+
}
|
|
751
|
+
return j.jsxExpressionContainer(j.jsxFragment(j.jsxOpeningFragment(), j.jsxClosingFragment(), content.map((child) => child.type === 'JSXText'
|
|
752
|
+
? textChild(j, jsxTextRenders(child.value))
|
|
753
|
+
: child)));
|
|
754
|
+
}
|
|
714
755
|
function insideForeignContent(elementPath) {
|
|
715
756
|
let current = elementPath.parent;
|
|
716
757
|
while (current) {
|
|
@@ -943,6 +984,33 @@ export default function transform(fileInfo, api, options = {}) {
|
|
|
943
984
|
? root
|
|
944
985
|
: undefined;
|
|
945
986
|
};
|
|
987
|
+
/**
|
|
988
|
+
* What the planner reads of a child element, down its tree: what it
|
|
989
|
+
* converts to on its own (children are planned first), its only child,
|
|
990
|
+
* its text and whether its content is static, and its own children the
|
|
991
|
+
* same way. Each element is read once, since every element around it
|
|
992
|
+
* reads it again: a plan that changes afterwards forgets its reading.
|
|
993
|
+
*/
|
|
994
|
+
const readings = new Map();
|
|
995
|
+
const readChild = (child) => {
|
|
996
|
+
const known = readings.get(child);
|
|
997
|
+
if (known)
|
|
998
|
+
return known;
|
|
999
|
+
const becomes = planned.get(child)?.conversion;
|
|
1000
|
+
const only = soleChild(child);
|
|
1001
|
+
const inner = only && childFacts(only);
|
|
1002
|
+
const text = textOf(child);
|
|
1003
|
+
const children = childElementsOf(child, readChild);
|
|
1004
|
+
const reading = {
|
|
1005
|
+
...(becomes && { becomes }),
|
|
1006
|
+
...(inner && { soleChild: inner }),
|
|
1007
|
+
...(text !== undefined && { text }),
|
|
1008
|
+
...(children && { children }),
|
|
1009
|
+
...(staticContent(child) && { staticContent: true }),
|
|
1010
|
+
};
|
|
1011
|
+
readings.set(child, reading);
|
|
1012
|
+
return reading;
|
|
1013
|
+
};
|
|
946
1014
|
/** The element directly around this one, when this is its only child. */
|
|
947
1015
|
const holderOf = (elementPath) => {
|
|
948
1016
|
const up = elementPath.parent?.node;
|
|
@@ -982,17 +1050,7 @@ export default function transform(fileInfo, api, options = {}) {
|
|
|
982
1050
|
childTargets: childTargets(elementPath),
|
|
983
1051
|
soleChildTarget: planned.get(sole)?.conversion?.target,
|
|
984
1052
|
soleChild: sole && childFacts(sole),
|
|
985
|
-
childElements: childElementsOf(element,
|
|
986
|
-
const becomes = planned.get(child)?.conversion;
|
|
987
|
-
const only = soleChild(child);
|
|
988
|
-
const inner = only && childFacts(only);
|
|
989
|
-
const text = textOf(child);
|
|
990
|
-
return {
|
|
991
|
-
...(becomes && { becomes }),
|
|
992
|
-
...(inner && { soleChild: inner }),
|
|
993
|
-
...(text !== undefined && { text }),
|
|
994
|
-
};
|
|
995
|
-
}),
|
|
1053
|
+
childElements: childElementsOf(element, readChild),
|
|
996
1054
|
bestaxInside: bestaxInside.get(element) ?? [],
|
|
997
1055
|
bestaxAround: surrounding.bestax,
|
|
998
1056
|
componentsAround: surrounding.other,
|
|
@@ -1067,6 +1125,7 @@ export default function transform(fileInfo, api, options = {}) {
|
|
|
1067
1125
|
const node = inside[icon.index];
|
|
1068
1126
|
const own = { conversion: null, todos: planned.get(node).todos };
|
|
1069
1127
|
planned.set(node, own);
|
|
1128
|
+
readings.delete(node);
|
|
1070
1129
|
const at = elements.findIndex(found => found.path.node === node);
|
|
1071
1130
|
if (at === -1)
|
|
1072
1131
|
continue;
|
|
@@ -1121,6 +1180,30 @@ export default function transform(fileInfo, api, options = {}) {
|
|
|
1121
1180
|
found.converts = false;
|
|
1122
1181
|
planned.set(found.path.node, found.plan);
|
|
1123
1182
|
}
|
|
1183
|
+
// A target that renders a `.field` of its own outside a `Field` converts
|
|
1184
|
+
// only inside one: a bestax `Field` already around it, or a `.field`
|
|
1185
|
+
// around it that converts here.
|
|
1186
|
+
for (const found of elements) {
|
|
1187
|
+
const conversion = found.plan.conversion;
|
|
1188
|
+
if (!conversion?.file)
|
|
1189
|
+
continue;
|
|
1190
|
+
let inField = false;
|
|
1191
|
+
for (let up = found.path.parent; up && !inField; up = up.parent) {
|
|
1192
|
+
if (up.node?.type !== 'JSXElement')
|
|
1193
|
+
continue;
|
|
1194
|
+
inField =
|
|
1195
|
+
(bestaxTarget(up.node, up) ??
|
|
1196
|
+
planned.get(up.node)?.conversion?.target) === 'Field';
|
|
1197
|
+
}
|
|
1198
|
+
if (inField)
|
|
1199
|
+
continue;
|
|
1200
|
+
found.plan = {
|
|
1201
|
+
conversion: null,
|
|
1202
|
+
todos: [...found.plan.todos, fileContextTodo(conversion.target)],
|
|
1203
|
+
};
|
|
1204
|
+
found.converts = false;
|
|
1205
|
+
planned.set(found.path.node, found.plan);
|
|
1206
|
+
}
|
|
1124
1207
|
if (elements.length === 0)
|
|
1125
1208
|
return print();
|
|
1126
1209
|
// ---- 3. File-level gates ------------------------------------------------------
|
|
@@ -1264,6 +1347,62 @@ export default function transform(fileInfo, api, options = {}) {
|
|
|
1264
1347
|
name.comments = [...(name.comments ?? []), ...gone.map(afterTagName)];
|
|
1265
1348
|
}
|
|
1266
1349
|
}
|
|
1350
|
+
if (conversion.file) {
|
|
1351
|
+
// The target renders the whole tree from props: the <input>'s
|
|
1352
|
+
// attributes join the element's, the parts below become props, and
|
|
1353
|
+
// the tree goes, its comments moving to the name that stays.
|
|
1354
|
+
const built = conversion.file;
|
|
1355
|
+
const inside = (node) => (node.children ?? []).filter((child) => !dropped(child));
|
|
1356
|
+
const [label] = inside(element);
|
|
1357
|
+
const [input, cta, name] = inside(label);
|
|
1358
|
+
const parts = inside(cta);
|
|
1359
|
+
const given = (input.openingElement.attributes ?? []).filter((attr) => !['className', 'type'].includes(attributeName(attr)));
|
|
1360
|
+
const props = [...given];
|
|
1361
|
+
const prop = (key, value) => props.push(j.jsxAttribute(j.jsxIdentifier(key), value));
|
|
1362
|
+
if (built.inputClassName !== null) {
|
|
1363
|
+
prop('inputClassName', textValue(j, built.inputClassName));
|
|
1364
|
+
}
|
|
1365
|
+
for (const key of ['buttonLabel', 'iconLeft', 'iconRight']) {
|
|
1366
|
+
const index = built[key];
|
|
1367
|
+
if (index !== undefined)
|
|
1368
|
+
prop(key, contentValue(j, parts[index]));
|
|
1369
|
+
}
|
|
1370
|
+
if (built.fileName !== undefined) {
|
|
1371
|
+
prop('fileName', textValue(j, built.fileName));
|
|
1372
|
+
}
|
|
1373
|
+
element.openingElement.attributes = [
|
|
1374
|
+
...(element.openingElement.attributes ?? []),
|
|
1375
|
+
...props,
|
|
1376
|
+
];
|
|
1377
|
+
const commentChildren = (node) => (node.children ?? [])
|
|
1378
|
+
.filter((child) => child.type === 'JSXExpressionContainer' &&
|
|
1379
|
+
child.expression.type === 'JSXEmptyExpression')
|
|
1380
|
+
.flatMap((child) => commentsWithin(child));
|
|
1381
|
+
const moved = [
|
|
1382
|
+
...[label, input, cta, name, ...parts]
|
|
1383
|
+
.filter(Boolean)
|
|
1384
|
+
.flatMap((node) => [
|
|
1385
|
+
...(node.comments ?? []),
|
|
1386
|
+
...tagComments(node),
|
|
1387
|
+
]),
|
|
1388
|
+
...[label, cta, name, ...parts]
|
|
1389
|
+
.filter(Boolean)
|
|
1390
|
+
.flatMap((node) => node.openingElement.attributes ?? [])
|
|
1391
|
+
.flatMap((attr) => commentsWithin(attr)),
|
|
1392
|
+
...(input.openingElement.attributes ?? [])
|
|
1393
|
+
.filter((attr) => !given.includes(attr))
|
|
1394
|
+
.flatMap((attr) => commentsWithin(attr)),
|
|
1395
|
+
...[element, label, cta].flatMap(commentChildren),
|
|
1396
|
+
...[element.closingElement, element.closingElement?.name].flatMap((node) => node?.comments ?? []),
|
|
1397
|
+
];
|
|
1398
|
+
element.children = [];
|
|
1399
|
+
element.openingElement.selfClosing = true;
|
|
1400
|
+
element.closingElement = null;
|
|
1401
|
+
if (moved.length) {
|
|
1402
|
+
const tag = element.openingElement.name;
|
|
1403
|
+
tag.comments = [...(tag.comments ?? []), ...moved.map(afterTagName)];
|
|
1404
|
+
}
|
|
1405
|
+
}
|
|
1267
1406
|
if (conversion.icons) {
|
|
1268
1407
|
// The target builds its children from props: one icon as `iconProps`,
|
|
1269
1408
|
// with its text as the children, or several as `items`. The children
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "bestax-migrate",
|
|
3
|
-
"version": "2.
|
|
3
|
+
"version": "2.24.0",
|
|
4
4
|
"description": "Codemods for migrating existing React apps from other Bulma libraries to @allxsmith/bestax-bulma",
|
|
5
5
|
"type": "module",
|
|
6
6
|
"bin": {
|
|
@@ -38,7 +38,7 @@
|
|
|
38
38
|
"chalk": "^6.0.0",
|
|
39
39
|
"commander": "^15.0.0",
|
|
40
40
|
"jscodeshift": "^17.3.0",
|
|
41
|
-
"@allxsmith/bestax-bulma": "^5.18.
|
|
41
|
+
"@allxsmith/bestax-bulma": "^5.18.1"
|
|
42
42
|
},
|
|
43
43
|
"devDependencies": {
|
|
44
44
|
"@jest/globals": "^30.0.0",
|