@k3000/ce 0.1.0 → 0.2.1

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 (44) hide show
  1. package/README.md +12 -6
  2. package/app/comp/comp-test.mjs +1 -1
  3. package/app/comp/nav-bar.mjs +1 -1
  4. package/app/comp/page-container.mjs +1 -1
  5. package/app/comp/tab-bar.mjs +1 -1
  6. package/app/index.html +1 -1
  7. package/bin.mjs +48 -0
  8. package/ce.mjs +1 -0
  9. package/comm/router-view.mjs +1 -1
  10. package/console/components/common-action-button.mjs +1 -1
  11. package/console/components/common-header.mjs +1 -1
  12. package/console/components/common-input.mjs +1 -1
  13. package/console/components/common-modal.mjs +1 -1
  14. package/console/components/common-pagination.mjs +1 -1
  15. package/console/components/common-toolbar.mjs +1 -1
  16. package/console/components/div-test.mjs +11 -0
  17. package/console/components/g-button.mjs +79 -0
  18. package/console/components/g-cell.mjs +129 -0
  19. package/console/components/g-col.mjs +38 -0
  20. package/console/components/g-field.mjs +162 -0
  21. package/console/components/g-form.mjs +11 -0
  22. package/console/components/g-icon.mjs +82 -0
  23. package/console/components/g-image.mjs +127 -0
  24. package/console/components/g-popup.mjs +130 -0
  25. package/console/components/g-row.mjs +120 -0
  26. package/console/components/g-space.mjs +21 -0
  27. package/console/components/g-toast.mjs +116 -0
  28. package/console/components/layout-header.mjs +0 -179
  29. package/console/components/layout-menu.mjs +99 -2
  30. package/console/index.html +2 -1
  31. package/console/index2.html +46 -0
  32. package/console/pages/demo-button.mjs +116 -0
  33. package/console/pages/demo-cell.mjs +59 -0
  34. package/console/pages/demo-field.mjs +67 -0
  35. package/console/pages/demo-icon.mjs +200 -0
  36. package/console/pages/demo-image.mjs +113 -0
  37. package/console/pages/demo-layout.mjs +141 -0
  38. package/console/pages/demo-popup.mjs +158 -0
  39. package/console/pages/demo-space.mjs +51 -0
  40. package/console/pages/demo-toast.mjs +66 -0
  41. package/index.mjs +8 -1
  42. package/package.json +8 -2
  43. package/test.html +15 -0
  44. package/console/components/console-header.mjs +0 -26
@@ -0,0 +1,51 @@
1
+ export const innerHTML = `
2
+ <div class="h-full flex flex-col p-6 gap-6 overflow-y-auto custom-scrollbar">
3
+ <common-header title="间距展示区" description="展示 g-space 间距组件的用法"></common-header>
4
+
5
+ <div class="space-y-8">
6
+ <!-- 基础用法 -->
7
+ <div class="bg-white/60 dark:bg-gray-800/60 backdrop-blur-2xl rounded-2xl shadow-lg shadow-gray-200/20 dark:shadow-black/20 border border-white/40 dark:border-white/10 p-6">
8
+ <h3 class="text-lg font-medium text-gray-900 dark:text-gray-100 mb-6">基础用法 (默认水平)</h3>
9
+ <g-space>
10
+ <g-button>按钮 A</g-button>
11
+ <g-button>按钮 B</g-button>
12
+ <g-button>按钮 C</g-button>
13
+ </g-space>
14
+ </div>
15
+
16
+ <!-- 垂直方向 -->
17
+ <div class="bg-white/60 dark:bg-gray-800/60 backdrop-blur-2xl rounded-2xl shadow-lg shadow-gray-200/20 dark:shadow-black/20 border border-white/40 dark:border-white/10 p-6">
18
+ <h3 class="text-lg font-medium text-gray-900 dark:text-gray-100 mb-6">垂直方向 (direction="column")</h3>
19
+ <g-space direction="column">
20
+ <g-button>上方的按钮</g-button>
21
+ <g-button>中间的按钮</g-button>
22
+ <g-button>下方的按钮</g-button>
23
+ </g-space>
24
+ </div>
25
+
26
+ <!-- 自定义间距 -->
27
+ <div class="bg-white/60 dark:bg-gray-800/60 backdrop-blur-2xl rounded-2xl shadow-lg shadow-gray-200/20 dark:shadow-black/20 border border-white/40 dark:border-white/10 p-6">
28
+ <h3 class="text-lg font-medium text-gray-900 dark:text-gray-100 mb-6">自定义间距 (gap)</h3>
29
+ <p class="text-sm text-gray-500 mb-4">gap="24px"</p>
30
+ <g-space gap="24px" class="mb-6">
31
+ <g-button type="primary">很大间距</g-button>
32
+ <g-button type="primary">很大间距</g-button>
33
+ <g-button type="primary">很大间距</g-button>
34
+ </g-space>
35
+
36
+ <p class="text-sm text-gray-500 mb-4">gap="4px"</p>
37
+ <g-space gap="4px">
38
+ <g-button type="warning">很小间距</g-button>
39
+ <g-button type="warning">很小间距</g-button>
40
+ <g-button type="warning">很小间距</g-button>
41
+ </g-space>
42
+ </div>
43
+ </div>
44
+ </div>
45
+ `
46
+
47
+ export default class extends HTMLElement {
48
+ ready() {
49
+ console.log('demo-space ready')
50
+ }
51
+ }
@@ -0,0 +1,66 @@
1
+ export const innerHTML = `
2
+ <div class="h-full flex flex-col p-6 gap-6 overflow-y-auto custom-scrollbar">
3
+ <common-header title="轻提示 (Toast)" description="展示 g-toast 消息通知的各种状态和能力。包含普通文本、成功、错误、警告、加载状态等。"></common-header>
4
+
5
+ <div class="space-y-8 pb-10">
6
+ <!-- 基础用法 -->
7
+ <div class="bg-white/60 dark:bg-gray-800/60 backdrop-blur-2xl rounded-2xl shadow-lg shadow-gray-200/20 dark:shadow-black/20 border border-white/40 dark:border-white/10 p-6">
8
+ <h3 class="text-lg font-medium text-gray-900 dark:text-gray-100 mb-6">基础用法 (纯文本)</h3>
9
+ <div class="flex flex-wrap items-center gap-4">
10
+ <g-button onclick="window.$toast.show('这是一条普通的提示消息')">普通提示</g-button>
11
+ <g-button onclick="window.$toast.show('系统已升级到星际 Antigravity 版本!这是一条非常长的通知文本用来测试换行是否正常运作以及展示动态高度适应。')">长文本提示</g-button>
12
+ </div>
13
+ </div>
14
+
15
+ <!-- 状态类型 -->
16
+ <div class="bg-white/60 dark:bg-gray-800/60 backdrop-blur-2xl rounded-2xl shadow-lg shadow-gray-200/20 dark:shadow-black/20 border border-white/40 dark:border-white/10 p-6">
17
+ <h3 class="text-lg font-medium text-gray-900 dark:text-gray-100 mb-6">状态类型提示</h3>
18
+ <div class="flex flex-wrap items-center gap-4">
19
+ <g-button type="success" onclick="window.$toast.success('操作成功完成')">成功 (Success)</g-button>
20
+ <g-button type="danger" onclick="window.$toast.error('网络连接异常,请重试')">错误 (Error)</g-button>
21
+ <g-button type="warning" onclick="window.$toast.warning('您的磁盘空间已不足')">警告 (Warning)</g-button>
22
+ </div>
23
+ </div>
24
+
25
+ <!-- 加载提示 -->
26
+ <div class="bg-white/60 dark:bg-gray-800/60 backdrop-blur-2xl rounded-2xl shadow-lg shadow-gray-200/20 dark:shadow-black/20 border border-white/40 dark:border-white/10 p-6">
27
+ <h3 class="text-lg font-medium text-gray-900 dark:text-gray-100 mb-6">加载状态指示</h3>
28
+ <div class="flex flex-wrap items-center gap-4">
29
+ <g-button type="primary" onclick="{{startLoading}}">显示加载中 (3秒后自动关闭)</g-button>
30
+ </div>
31
+ <p class="text-gray-500 text-sm mt-4">当请求发生时可显示加载提示,等待回调结束后由程序负责关闭它。</p>
32
+ </div>
33
+
34
+ <!-- 进阶管理 -->
35
+ <div class="bg-white/60 dark:bg-gray-800/60 backdrop-blur-2xl rounded-2xl shadow-lg shadow-gray-200/20 dark:shadow-black/20 border border-white/40 dark:border-white/10 p-6">
36
+ <h3 class="text-lg font-medium text-gray-900 dark:text-gray-100 mb-6">进阶管理</h3>
37
+ <div class="flex flex-wrap items-center gap-4">
38
+ <g-button type="primary" plain onclick="{{burst}}">连续快速触发</g-button>
39
+ <g-button type="danger" plain onclick="window.$toast.hide()">手动清除所有轻提示</g-button>
40
+ </div>
41
+ </div>
42
+ </div>
43
+ </div>
44
+ `
45
+
46
+ export default class extends HTMLElement {
47
+ ready() {
48
+ console.log('demo-toast ready')
49
+ }
50
+
51
+ startLoading() {
52
+ // duration=0 ensures it won't be closed automatically
53
+ const hide = window.$toast.loading('加载中,请稍候...', 0);
54
+ setTimeout(() => {
55
+ hide(); // close the specific loading toast
56
+ window.$toast.success('数据加载完成!');
57
+ }, 3000);
58
+ }
59
+
60
+ burst() {
61
+ window.$toast.show('这是第一条消息');
62
+ setTimeout(() => window.$toast.success('操作成功!这是第二条消息'), 200);
63
+ setTimeout(() => window.$toast.error('发生网络错误!这是第三条消息'), 400);
64
+ setTimeout(() => window.$toast.warning('请注意!这是第四条消息'), 600);
65
+ }
66
+ }
package/index.mjs CHANGED
@@ -178,7 +178,7 @@ let handleArray = (data, array) => {
178
178
  * 调用该方法完成可配置参数合方法的初始化
179
179
  * @param options
180
180
  * @example
181
- * import { config } from '../index.mjs'
181
+ * import { config } from '../ce.mjs'
182
182
  * config({
183
183
  * dir: './app/comp',
184
184
  * getVariables: () => {...}
@@ -915,6 +915,13 @@ export const useAttr = node => {
915
915
 
916
916
  for (const n of node.attributes) {
917
917
 
918
+ if (n.nodeName.includes('-')) {
919
+
920
+ result[n.nodeName.split('-')
921
+ .map((key, i) => key && i ? key[0].toUpperCase() + key.slice(1) : key)
922
+ .join('')] = n.nodeValue
923
+ }
924
+
918
925
  result[n.nodeName] = n.nodeValue
919
926
  }
920
927
 
package/package.json CHANGED
@@ -1,6 +1,12 @@
1
1
  {
2
2
  "name": "@k3000/ce",
3
- "version": "0.1.0",
3
+ "version": "0.2.1",
4
4
  "description": "",
5
- "main": "index.mjs"
5
+ "main": "index.mjs",
6
+ "scripts": {
7
+ "sync": "npm link"
8
+ },
9
+ "bin": {
10
+ "ce": "bin.mjs"
11
+ }
6
12
  }
package/test.html ADDED
@@ -0,0 +1,15 @@
1
+ <!DOCTYPE html>
2
+ <html lang="en">
3
+ <head>
4
+ <meta charset="UTF-8">
5
+ <title>Title</title>
6
+ <style>
7
+ .test:before {
8
+ content: attr(title);
9
+ }
10
+ </style>
11
+ </head>
12
+ <body>
13
+ <div title="qwe" class="test" attr-qwe=""></div>
14
+ </body>
15
+ </html>
@@ -1,26 +0,0 @@
1
- import {useAttr} from "../../index.mjs";
2
-
3
- export const innerHTML = `
4
- <div class="flex flex-col sm:flex-row sm:items-center justify-between gap-4">
5
- <div>
6
- <h1 class="text-2xl font-bold text-gray-800 dark:text-white tracking-tight">{{title}}</h1>
7
- <p class="text-sm text-gray-500 dark:text-gray-400 mt-1">{{description}}</p>
8
- </div>
9
- <div class="flex items-center gap-3">
10
- <slot></slot>
11
- </div>
12
- </div>
13
- `
14
-
15
- export default class extends HTMLElement {
16
- title = ''
17
- description = ''
18
-
19
- constructor() {
20
- super()
21
- const attr = useAttr(this)
22
- this.title = attr.title
23
- this.description = attr.description
24
- // console.log([this])
25
- }
26
- }