aleman 1.13.0 → 1.14.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/ChangeLog CHANGED
@@ -1,3 +1,8 @@
1
+ 2025.09.18, v1.14.0
2
+
3
+ feature:
4
+ - 9b7ceb5 aleman: beutify generated fixtues
5
+
1
6
  2025.09.17, v1.13.0
2
7
 
3
8
  fix:
package/aleman/render.js CHANGED
@@ -14,6 +14,7 @@ export const TRANSFORM = true;
14
14
  export const createRender = (html, {options, rules}) => {
15
15
  const {source} = branch(html)[0];
16
16
  const withDiv = `<template>${source}</template>`;
17
+
17
18
  const ast = parse(withDiv);
18
19
 
19
20
  return function render(state) {
@@ -43,7 +44,7 @@ export const createRender = (html, {options, rules}) => {
43
44
  const code = print(ast, {
44
45
  printer: ['putout', {
45
46
  format: {
46
- newline: '',
47
+ newline: '\n',
47
48
  endOfFile: '',
48
49
  },
49
50
  }],
@@ -51,6 +52,7 @@ export const createRender = (html, {options, rules}) => {
51
52
 
52
53
  const prefix = '<template>';
53
54
  const suffix = '<\\template>\n';
55
+
54
56
  const result = merge('', [code]).slice(prefix.length, -suffix.length);
55
57
 
56
58
  return [
@@ -60,3 +62,4 @@ export const createRender = (html, {options, rules}) => {
60
62
  ];
61
63
  };
62
64
  };
65
+
@@ -5,7 +5,7 @@ import * as up from './up.js';
5
5
  import * as enter from './enter.js';
6
6
  import * as left from './left.js';
7
7
  import * as right from './right.js';
8
- import * as shiftG from './shift-g.js';
8
+ import * as shiftG from './shift-g/shift-g.js';
9
9
  import * as gg from './gg.js';
10
10
  import * as j from './j.js';
11
11
  import * as k from './k/k.js';
@@ -1 +1,9 @@
1
- <ul data-name="menu" class="menu menu-hidden" style="left: 0px; top: 20px;"> <li data-name="menu-item" data-menu-index="0" class="menu-item icon icon-view menu-item-selected"> <label data-menu-path="View">View</label></li> <li data-name="menu-item" data-menu-index="1" class="menu-item icon icon-edit"> <label data-menu-path="Edit">Edit</label></li></ul>;
1
+
2
+ <ul data-name="menu" class="menu menu-hidden" style="left: 0px; top: 20px;">
3
+ <li data-name="menu-item" data-menu-index="0" class="menu-item icon icon-view menu-item-selected">
4
+ <label data-menu-path="View">View</label>
5
+ </li>
6
+ <li data-name="menu-item" data-menu-index="1" class="menu-item icon icon-edit">
7
+ <label data-menu-path="Edit">Edit</label>
8
+ </li>
9
+ </ul>;
@@ -0,0 +1,9 @@
1
+
2
+ <ul data-name="menu" class="menu menu-hidden" style="left: 0px; top: 20px;">
3
+ <li data-name="menu-item" data-menu-index="0" class="menu-item icon icon-view">
4
+ <label data-menu-path="View">View</label>
5
+ </li>
6
+ <li data-name="menu-item" data-menu-index="1" class="menu-item icon icon-edit menu-item-selected">
7
+ <label data-menu-path="Edit">Edit</label>
8
+ </li>
9
+ </ul>;
@@ -0,0 +1,8 @@
1
+ <ul data-name="menu" class="menu menu-hidden">
2
+ <li data-name="menu-item" data-menu-index="0" class="menu-item icon icon-view menu-item-selected">
3
+ <label data-menu-path="View">View</label>
4
+ </li>
5
+ <li data-name="menu-item" data-menu-index="1" class="menu-item icon icon-edit">
6
+ <label data-menu-path="Edit">Edit</label>
7
+ </li>
8
+ </ul>;
@@ -0,0 +1,8 @@
1
+ <ul data-name="menu" className="menu menu-hidden" style="left: 0px; top: 20px;">
2
+ <li data-name="menu-item" data-menu-index="0" className="menu-item icon icon-view">
3
+ <label data-menu-path="View">View</label>
4
+ </li>
5
+ <li data-name="menu-item" data-menu-index="1" className="menu-item icon icon-edit menu-item-selected">
6
+ <label data-menu-path="Edit">Edit</label>
7
+ </li>
8
+ </ul>;
@@ -0,0 +1,9 @@
1
+
2
+ <ul data-name="menu" class="menu" style="left: 0px; top: 20px;">
3
+ <li data-name="menu-item" data-menu-index="0" class="menu-item icon icon-view">
4
+ <label data-menu-path="View">View</label>
5
+ </li>
6
+ <li data-name="menu-item" data-menu-index="1" class="menu-item icon icon-edit menu-item-selected">
7
+ <label data-menu-path="Edit">Edit</label>
8
+ </li>
9
+ </ul>;
@@ -0,0 +1,8 @@
1
+ <ul data-name="menu" className="menu menu-hidden" style="left: 0px; top: 20px;">
2
+ <li data-name="menu-item" data-menu-index="0" className="menu-item icon icon-view menu-item-selected">
3
+ <label data-menu-path="View">View</label>
4
+ </li>
5
+ <li data-name="menu-item" data-menu-index="1" className="menu-item icon icon-edit">
6
+ <label data-menu-path="Edit">Edit</label>
7
+ </li>
8
+ </ul>;
@@ -1,10 +1,12 @@
1
- import {getSubmenu} from './submenu/index.js';
1
+ import {getSubmenu} from '../submenu/index.js';
2
2
 
3
3
  export const keys = [
4
4
  'G',
5
5
  '$',
6
6
  ];
7
7
 
8
+ export const filter = ({state}) => state.command === 'show';
9
+
8
10
  export const preventDefault = true;
9
11
 
10
12
  export const listener = ({state, options}) => {
package/menu/addons/up.js CHANGED
@@ -3,9 +3,7 @@ import {getSubmenu} from './submenu/index.js';
3
3
  export const keys = ['ArrowUp'];
4
4
 
5
5
  export const preventDefault = true;
6
- export const filter = ({state, options}) => {
7
- return state.command === 'show';
8
- };
6
+ export const filter = ({state}) => state.command === 'show';
9
7
 
10
8
  export const listener = ({state, options}) => {
11
9
  const {menu} = options;
package/menu/menu.css CHANGED
@@ -28,7 +28,7 @@
28
28
  .menu-item {
29
29
  position: relative;
30
30
  padding: 3px 20px;
31
- white-space: pre;
31
+ white-space: nowrap;
32
32
  }
33
33
 
34
34
  .menu-item::after {
@@ -1 +1,8 @@
1
- <ul data-name="menu" class="menu menu-hidden"><li data-name="menu-item" data-menu-index="0" className="menu-item" data-menu-path="hello"><label data-menu-path="hello">hello</label></li><li data-name="menu-item" data-menu-index="1" className="menu-item" data-menu-path="world"><label data-menu-path="world">world</label></li></ul>;
1
+ <ul data-name="menu" class="menu menu-hidden">
2
+ <li data-name="menu-item" data-menu-index="0" className="menu-item" data-menu-path="hello">
3
+ <label data-menu-path="">hello</label>
4
+ </li>
5
+ <li data-name="menu-item" data-menu-index="1" className="menu-item" data-menu-path="world">
6
+ <label data-menu-path="">world</label>
7
+ </li>
8
+ </ul>;
@@ -1 +1,8 @@
1
- <ul data-name="menu" class="menu menu-hidden"><li data-name="menu-item" data-menu-index="0" className="menu-item icon icon-hello" data-menu-path="hello"><label data-menu-path="hello">hello</label></li><li data-name="menu-item" data-menu-index="1" className="menu-item icon icon-world" data-menu-path="world"><label data-menu-path="world">world</label></li></ul>;
1
+ <ul data-name="menu" class="menu menu-hidden">
2
+ <li data-name="menu-item" data-menu-index="0" className="menu-item icon icon-hello" data-menu-path="hello">
3
+ <label data-menu-path="">hello</label>
4
+ </li>
5
+ <li data-name="menu-item" data-menu-index="1" className="menu-item icon icon-world" data-menu-path="world">
6
+ <label data-menu-path="">world</label>
7
+ </li>
8
+ </ul>;
@@ -1 +1,9 @@
1
- <ul data-name="menu" class="menu menu-hidden"><li data-name="menu-item" data-menu-index="0" className="menu-item icon icon-hello menu-submenu" data-menu-path="hello"><label data-menu-path="hello">hello</label><ul data-name="menu" className="menu menu-hidden"><li data-name="menu-item" data-menu-index="0" className="menu-item icon icon-world" data-menu-path="hello.world"><label data-menu-path="hello.world">world</label></li></ul></li></ul>;
1
+ <ul data-name="menu" class="menu menu-hidden">
2
+ <li data-name="menu-item" data-menu-index="0" className="menu-item icon icon-hello menu-submenu" data-menu-path="hello">
3
+ <label data-menu-path="">hello</label>
4
+ <ul data-name="menu" className="menu menu-hidden">
5
+ <li data-name="menu-item" data-menu-index="0" className="menu-item icon icon-world" data-menu-path="hello.world">
6
+ <label data-menu-path="">world</label>
7
+ </li>
8
+ </ul></li>
9
+ </ul>;
@@ -1,5 +1,10 @@
1
- import {template, operator} from 'putout';
1
+ import {
2
+ template,
3
+ operator,
4
+ types,
5
+ } from 'putout';
2
6
 
7
+ const {jsxText} = types;
3
8
  const {
4
9
  setAttributeValue,
5
10
  hasDataName,
@@ -13,7 +18,9 @@ const isObject = (a) => a && typeof a === 'object';
13
18
  export const report = () => `Build menu`;
14
19
 
15
20
  const createMenuItem = template(`
16
- <li data-name="menu-item" data-menu-index="" className="menu-item" data-menu-path=""><label data-menu-path="">NAME</label></li>
21
+ <li data-name="menu-item" data-menu-index="" className="menu-item" data-menu-path="">
22
+ <label data-menu-path="">NAME</label>
23
+ </li>
17
24
  `);
18
25
 
19
26
  const createMenu = template(`
@@ -25,6 +32,9 @@ const DefaultMenu = {
25
32
  world: null,
26
33
  };
27
34
 
35
+ const NEWLINE = jsxText('\n');
36
+ const INDENT = jsxText(' ');
37
+
28
38
  export const fix = ({path, menu, icon, name = ''}) => {
29
39
  const {children} = path.node;
30
40
  let i = 0;
@@ -32,23 +42,22 @@ export const fix = ({path, menu, icon, name = ''}) => {
32
42
  for (const [key, value] of entries(menu)) {
33
43
  const menuItem = createMenuItem();
34
44
 
35
- menuItem.children[0].children[0].value = key;
45
+ menuItem.children[1].children[0].value = key;
36
46
 
37
47
  if (icon)
38
48
  setIcon(key, menuItem);
39
49
 
40
50
  setDataMenuIndex(i++, menuItem);
41
51
  setDataMenuPath(key, name, menuItem);
42
- setDataMenuPath(key, name, menuItem.children[0]);
43
-
44
- children.push(menuItem);
52
+ // setDataMenuPath(key, name, menuItem.children[3]);
53
+ children.push(INDENT, menuItem);
45
54
 
46
55
  if (isObject(value)) {
47
56
  setSubmenu(menuItem);
48
57
  menuItem.children.push(createMenu());
49
58
 
50
59
  const elementPath = path.get('children').at(-1)
51
- .get('children.1');
60
+ .get('children.3');
52
61
 
53
62
  fix({
54
63
  path: elementPath,
@@ -58,6 +67,8 @@ export const fix = ({path, menu, icon, name = ''}) => {
58
67
  });
59
68
  }
60
69
  }
70
+
71
+ children.push(NEWLINE);
61
72
  };
62
73
 
63
74
  export const traverse = ({options, push}) => ({
@@ -47,7 +47,7 @@ export const traverse = ({options, push}) => ({
47
47
  if (!hasDataName(parentPath, name))
48
48
  return;
49
49
 
50
- if (!insideSubmenu && !hasAttributeValue(path, 'data-menu-index', `${index}`))
50
+ if (!insideSubmenu && !hasAttributeValue(path, 'data-menu-index', String(index)))
51
51
  return;
52
52
 
53
53
  if (!insideSubmenu && containsClassName(path, 'menu-item-selected'))
@@ -80,4 +80,3 @@ function addShowSubmenu(path, {showSubmenu}) {
80
80
  function removeShowSubmenu(path) {
81
81
  removeClassName(path, SHOW);
82
82
  }
83
-
@@ -0,0 +1,8 @@
1
+ <ul data-name="menu" class="menu menu-hidden">
2
+ <li data-name="menu-item" className="menu-item icon icon-view menu-item-selected">
3
+ <label data-menu-path="View">View</label>
4
+ </li>
5
+ <li data-name="menu-item" className="menu-item icon icon-edit menu-item-selected">
6
+ <label data-menu-path="Edit">Edit</label>
7
+ </li>
8
+ </ul>;
@@ -18,7 +18,14 @@ export const fix = (path) => {
18
18
 
19
19
  export const traverse = ({push, options}) => ({
20
20
  JSXElement(path) {
21
- const {index, name = 'menu'} = options;
21
+ const {
22
+ index,
23
+ name = 'menu',
24
+ command,
25
+ } = options;
26
+
27
+ if (command === 'hide')
28
+ return;
22
29
 
23
30
  if (index !== -1)
24
31
  return;
@@ -0,0 +1,17 @@
1
+ // second selected
2
+ <ul data-name="menu" class="menu menu-hidden">
3
+ <li data-menu-path="Upload" data-name="menu-item" data-menu-index="0" className="menu-item icon icon-view menu-item-selected">
4
+ <label data-menu-path="Upload">Upload</label>
5
+ </li>
6
+ <li data-menu-path="New" data-name="menu-item" data-menu-index="1" className="menu-item icon icon-edit menu-item-selected">
7
+ <label data-menu-path="New">New</label>
8
+ <ul data-name="menu" class="menu menu-hidden">
9
+ <li data-menu-path="New.File" data-name="menu-item" data-menu-index="0" className="menu-item icon icon-view menu-item-selected">
10
+ <label data-menu-path="Upload">Upload</label>
11
+ </li>
12
+ <li data-menu-path="Directory" data-name="menu-item" data-menu-index="1" className="menu-item icon icon-edit">
13
+ <label data-menu-path="New.Directory">New</label>
14
+ </li>
15
+ </ul>
16
+ </li>
17
+ </ul>;
@@ -15,7 +15,10 @@ export const fix = (path) => {
15
15
 
16
16
  export const traverse = ({push, options}) => ({
17
17
  JSXElement(path) {
18
- const {index = 1} = options;
18
+ const {index = 1, command} = options;
19
+
20
+ if (command === 'hide')
21
+ return;
19
22
 
20
23
  if (!hasTagName(path, 'li'))
21
24
  return;
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "aleman",
3
- "version": "1.13.0",
3
+ "version": "1.14.0",
4
4
  "type": "module",
5
5
  "author": "coderaiser <mnemonic.enemy@gmail.com> (https://github.com/coderaiser)",
6
6
  "description": "🐊Putout-based framework for web",
File without changes