aleman 1.14.1 → 1.14.3

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.
Files changed (34) hide show
  1. package/ChangeLog +10 -0
  2. package/aleman/render.js +35 -8
  3. package/aleman/vim.js +5 -0
  4. package/menu/addons/gg/fixture/gg-fix.js +8 -0
  5. package/menu/addons/gg/fixture/gg.js +8 -0
  6. package/menu/addons/gg/fixture/submenu-fix.js +17 -0
  7. package/menu/addons/gg/fixture/submenu.js +18 -0
  8. package/menu/addons/{gg.js → gg/gg.js} +1 -1
  9. package/menu/addons/index.js +2 -2
  10. package/menu/addons/{k/fixture/m.html → j/fixture/j-fix.js} +2 -2
  11. package/menu/addons/j/fixture/submenu-fix.js +8 -0
  12. package/menu/addons/j/fixture/submenu.js +8 -0
  13. package/menu/addons/{j.js → j/j.js} +2 -2
  14. package/menu/addons/k/fixture/k-fix.js +8 -0
  15. package/menu/addons/k/fixture/k.js +8 -0
  16. package/menu/addons/k/fixture/m.js +8 -0
  17. package/menu/addons/k/fixture/submenu-fix.js +8 -0
  18. package/menu/addons/k/fixture/submenu.js +8 -0
  19. package/menu/addons/shift-g/fixture/hide.js +8 -0
  20. package/menu/addons/shift-g/fixture/shift-g-fix.js +8 -0
  21. package/menu/addons/shift-g/fixture/shift-g.js +8 -0
  22. package/menu/importmap.js +1 -1
  23. package/menu/rules/menu/index.js +1 -1
  24. package/menu/rules/select/fixture/submenu-fix.js +14 -5
  25. package/menu/rules/select/fixture/submenu.js +15 -5
  26. package/menu/rules/select/index.js +6 -0
  27. package/package.json +1 -1
  28. package/menu/addons/k/fixture/k-fix.html +0 -8
  29. package/menu/addons/k/fixture/submenu-fix.html +0 -8
  30. package/menu/addons/k/fixture/submenu.html +0 -8
  31. package/menu/addons/shift-g/fixture/shift-g-fix.html +0 -8
  32. /package/menu/addons/{k/fixture/k.html → gg/fixture/hide.js} +0 -0
  33. /package/menu/addons/{shift-g/fixture/shift-g.html → j/fixture/j.js} +0 -0
  34. /package/menu/addons/{shift-g/fixture/hide.html → j/fixture/m.js} +0 -0
package/ChangeLog CHANGED
@@ -1,3 +1,13 @@
1
+ 2025.09.20, v1.14.3
2
+
3
+ feature:
4
+ - 178e1db aleman: menu: importmap: putout v4.7.6
5
+
6
+ 2025.09.20, v1.14.2
7
+
8
+ feature:
9
+ - 63ac668 aleman: vim: F-* buttuns support
10
+
1
11
  2025.09.18, v1.14.1
2
12
 
3
13
  fix:
package/aleman/render.js CHANGED
@@ -11,11 +11,8 @@ const {entries} = Object;
11
11
  export const SKIP = false;
12
12
  export const TRANSFORM = true;
13
13
 
14
- export const createRender = (html, {options, rules}) => {
15
- const {source} = branch(html)[0];
16
- const withDiv = `<template>${source}</template>`;
17
-
18
- const ast = parse(withDiv);
14
+ export const createRender = (html, {options, rules, type}) => {
15
+ const {ast, source} = parseAccordingToType(html, type);
19
16
 
20
17
  return function render(state) {
21
18
  const currentRules = {};
@@ -34,9 +31,13 @@ export const createRender = (html, {options, rules}) => {
34
31
  });
35
32
 
36
33
  if (!places.length)
37
- return [SKIP, '', places];
34
+ return [
35
+ SKIP,
36
+ source,
37
+ places,
38
+ ];
38
39
 
39
- transform(ast, '', {
40
+ transform(ast, source, {
40
41
  rules: currentRules,
41
42
  plugins,
42
43
  });
@@ -50,10 +51,18 @@ export const createRender = (html, {options, rules}) => {
50
51
  }],
51
52
  });
52
53
 
54
+ if (type === 'jsx')
55
+ return [
56
+ TRANSFORM,
57
+ code,
58
+ places,
59
+ ];
60
+
53
61
  const prefix = '<template>';
54
62
  const suffix = '<\\template>\n';
55
63
 
56
- const result = merge('', [code]).slice(prefix.length, -suffix.length)
64
+ const result = merge('', [code])
65
+ .slice(prefix.length, -suffix.length)
57
66
  .trim();
58
67
 
59
68
  return [
@@ -63,3 +72,21 @@ export const createRender = (html, {options, rules}) => {
63
72
  ];
64
73
  };
65
74
  };
75
+
76
+ function parseAccordingToType(html, type) {
77
+ if (type === 'jsx')
78
+ return {
79
+ ast: parse(html),
80
+ source: html,
81
+ };
82
+
83
+ const {source} = branch(html)[0];
84
+ const withDiv = `<template>${source}</template>`;
85
+
86
+ const ast = parse(withDiv);
87
+
88
+ return {
89
+ ast,
90
+ source,
91
+ };
92
+ }
package/aleman/vim.js CHANGED
@@ -1,6 +1,11 @@
1
1
  const isNumber = (a) => !Number.isNaN(a) && typeof a === 'number';
2
2
 
3
3
  export const createVimParser = (buffer = []) => ({key}) => {
4
+ if (/F\d/.test(key)) {
5
+ buffer = [];
6
+ return [''];
7
+ }
8
+
4
9
  if (key === '^')
5
10
  return ['^'];
6
11
 
@@ -0,0 +1,8 @@
1
+ <ul data-name="menu" className="menu" 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>;
@@ -0,0 +1,8 @@
1
+ <ul data-name="menu" className="menu" 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,17 @@
1
+ // second selected
2
+ <ul data-name="menu" className="menu" style="left: 0px; top: 20px;">
3
+ <li data-menu-path="Upload" data-name="menu-item" className="menu-item icon icon-view">
4
+ <label data-menu-path="Upload">Upload</label>
5
+ </li>
6
+ <li data-menu-path="New" data-name="menu-item" className="menu-item icon icon-edit menu-submenu menu-submenu-show">
7
+ <label data-menu-path="New">New</label>
8
+ <ul data-name="menu" className="menu" style="left: 0px; top: 20px;">
9
+ <li data-menu-path="New.File" data-name="menu-item" className="menu-item icon icon-view">
10
+ <label data-menu-path="New.File">File</label>
11
+ </li>
12
+ <li data-menu-path="New.Directory" data-name="menu-item" className="menu-item-selected menu-item icon icon-edit">
13
+ <label data-menu-path="New.Directory">Directory</label>
14
+ </li>
15
+ </ul>
16
+ </li>
17
+ </ul>;
@@ -0,0 +1,18 @@
1
+ // second selected
2
+ <ul data-name="menu" className="menu">
3
+ <li data-menu-path="Upload" data-name="menu-item" className="menu-item icon icon-view">
4
+ <label data-menu-path="Upload">Upload</label>
5
+ </li>
6
+ <li data-menu-path="New" data-name="menu-item" className="menu-item icon icon-edit menu-item-selected menu-submenu menu-submenu-show">
7
+ <label data-menu-path="New">New</label>
8
+ <ul data-name="menu" className="menu">
9
+ <li data-menu-path="New.File" data-name="menu-item" className="menu-item icon icon-view">
10
+ <label data-menu-path="New.File">File</label>
11
+ </li>
12
+ <li data-menu-path="New.Directory" data-name="menu-item" className="menu-item-selected menu-item icon icon-edit">
13
+ <label data-menu-path="New.Directory">Directory</label>
14
+ </li>
15
+ </ul>
16
+ </li>
17
+ </ul>;
18
+
@@ -1,4 +1,4 @@
1
- import * as up from './up.js';
1
+ import * as up from '../up.js';
2
2
 
3
3
  export const {filter} = up;
4
4
  export const commands = [
@@ -6,8 +6,8 @@ import * as enter from './enter.js';
6
6
  import * as left from './left.js';
7
7
  import * as right from './right.js';
8
8
  import * as shiftG from './shift-g/shift-g.js';
9
- import * as gg from './gg.js';
10
- import * as j from './j.js';
9
+ import * as gg from './gg/gg.js';
10
+ import * as j from './j/j.js';
11
11
  import * as k from './k/k.js';
12
12
 
13
13
  export const addons = [
@@ -1,8 +1,8 @@
1
- <ul data-name="menu" class="menu menu-hidden" style="left: 0px; top: 20px;">
1
+ <ul data-name="menu" className="menu" style="left: 0px; top: 20px;">
2
2
  <li data-name="menu-item" data-menu-index="0" className="menu-item icon icon-view">
3
3
  <label data-menu-path="View">View</label>
4
4
  </li>
5
5
  <li data-name="menu-item" data-menu-index="1" className="menu-item icon icon-edit menu-item-selected">
6
6
  <label data-menu-path="Edit">Edit</label>
7
7
  </li>
8
- </ul>;
8
+ </ul>;
@@ -0,0 +1,8 @@
1
+ <ul data-name="menu" className="menu" 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,8 @@
1
+ <ul data-name="menu" className="menu menu-hidden">
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,5 +1,5 @@
1
- import * as down from './down.js';
2
- import {getSubmenu} from './submenu/index.js';
1
+ import * as down from '../down.js';
2
+ import {getSubmenu} from '../submenu/index.js';
3
3
 
4
4
  export const {filter} = down;
5
5
  export const commands = ['j'];
@@ -0,0 +1,8 @@
1
+ <ul data-name="menu" className="menu" 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>;
@@ -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,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,8 @@
1
+ <ul data-name="menu" className="menu" 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,8 @@
1
+ <ul data-name="menu" className="menu menu-hidden">
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>;
@@ -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,8 @@
1
+ <ul data-name="menu" className="menu" 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,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>;
package/menu/importmap.js CHANGED
@@ -1,6 +1,6 @@
1
1
  export const importmap = {
2
2
  imports: {
3
- 'putout': 'https://esm.sh/@putout/bundle@4.7.4',
3
+ 'putout': 'https://esm.sh/@putout/bundle@4.7.6',
4
4
  '@putout/processor-html': 'https://esm.sh/@putout/processor-html',
5
5
  'fullstore': 'https://esm.sh/fullstore',
6
6
  'jessy': 'https://esm.sh/jessy',
@@ -27,7 +27,7 @@ export const traverse = ({push, options}) => ({
27
27
  const {name, command} = options;
28
28
 
29
29
  if (!hasDataName(path, name))
30
- return false;
30
+ return;
31
31
 
32
32
  const shown = !containsClassName(path, 'menu-hidden');
33
33
 
@@ -1,8 +1,17 @@
1
- <ul data-name="menu" class="menu menu-hidden">
2
- <li data-name="menu-item" data-menu-index="0" className="menu-item icon icon-view">
3
- <label data-menu-path="View">View</label>
1
+ // second selected
2
+ <ul data-name="menu" className="menu">
3
+ <li data-menu-path="Upload" data-name="menu-item" className="menu-item icon icon-view">
4
+ <label data-menu-path="Upload">Upload</label>
4
5
  </li>
5
- <li data-name="menu-item" data-menu-index="1" className="menu-item icon icon-edit menu-item-selected menu-submenu-show">
6
- <label data-menu-path="Edit">Edit</label>
6
+ <li data-menu-path="New" data-name="menu-item" className="menu-item icon icon-edit menu-item-selected menu-submenu menu-submenu-show">
7
+ <label data-menu-path="New">New</label>
8
+ <ul data-name="menu" className="menu">
9
+ <li data-menu-path="New.File" data-name="menu-item" className="menu-item icon icon-view">
10
+ <label data-menu-path="New.File">File</label>
11
+ </li>
12
+ <li data-menu-path="New.Directory" data-name="menu-item" className="menu-item-selected menu-item icon icon-edit">
13
+ <label data-menu-path="New.Directory">Directory</label>
14
+ </li>
15
+ </ul>
7
16
  </li>
8
17
  </ul>;
@@ -1,8 +1,18 @@
1
- <ul data-name="menu" class="menu menu-hidden">
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>
1
+ // second selected
2
+ <ul data-name="menu" className="menu">
3
+ <li data-menu-path="Upload" data-name="menu-item" className="menu-item icon icon-view">
4
+ <label data-menu-path="Upload">Upload</label>
4
5
  </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>
6
+ <li data-menu-path="New" data-name="menu-item" className="menu-item icon icon-edit menu-item-selected menu-submenu menu-submenu-show">
7
+ <label data-menu-path="New">New</label>
8
+ <ul data-name="menu" className="menu">
9
+ <li data-menu-path="New.File" data-name="menu-item" className="menu-item icon icon-view">
10
+ <label data-menu-path="New.File">File</label>
11
+ </li>
12
+ <li data-menu-path="New.Directory" data-name="menu-item" className="menu-item-selected menu-item icon icon-edit">
13
+ <label data-menu-path="New.Directory">Directory</label>
14
+ </li>
15
+ </ul>
7
16
  </li>
8
17
  </ul>;
18
+
@@ -8,6 +8,7 @@ const {
8
8
  removeClassName,
9
9
  hasAttributeValue,
10
10
  containsClassName,
11
+ getAttributeValue,
11
12
  } = operator;
12
13
 
13
14
  const SELECTED = 'menu-item-selected';
@@ -73,6 +74,11 @@ function unselect(path) {
73
74
  }
74
75
 
75
76
  function addShowSubmenu(path, {showSubmenu}) {
77
+ const menuPath = getAttributeValue(path, 'data-menu-path');
78
+
79
+ if (menuPath.includes('.'))
80
+ return;
81
+
76
82
  if (showSubmenu)
77
83
  return addClassName(path, SHOW);
78
84
  }
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "aleman",
3
- "version": "1.14.1",
3
+ "version": "1.14.3",
4
4
  "type": "module",
5
5
  "author": "coderaiser <mnemonic.enemy@gmail.com> (https://github.com/coderaiser)",
6
6
  "description": "🐊Putout-based framework for web",
@@ -1,8 +0,0 @@
1
- <ul data-name="menu" class="menu menu-hidden" style="left: 0px; top: 20px;">
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>;
@@ -1,8 +0,0 @@
1
- <ul data-name="menu" class="menu menu-hidden" style="left: 0px; top: 20px;">
2
- <li data-name="menu-item" data-menu-index="0" class="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" class="menu-item icon icon-edit menu-item-selected">
6
- <label data-menu-path="Edit">Edit</label>
7
- </li>
8
- </ul>;
@@ -1,8 +0,0 @@
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>;
@@ -1,8 +0,0 @@
1
- <ul data-name="menu" class="menu" style="left: 0px; top: 20px;">
2
- <li data-name="menu-item" data-menu-index="0" class="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" class="menu-item icon icon-edit menu-item-selected">
6
- <label data-menu-path="Edit">Edit</label>
7
- </li>
8
- </ul>;