@mantou/gem 2.3.1 → 2.3.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 (44) hide show
  1. package/AGENTS.md +150 -0
  2. package/dist/gem.js +11 -11
  3. package/dist/gem.mjs +11 -11
  4. package/elements/base/gesture.d.ts.map +1 -1
  5. package/elements/base/gesture.js +20 -1
  6. package/elements/base/gesture.js.map +1 -1
  7. package/elements/base/link.d.ts +2 -1
  8. package/elements/base/link.d.ts.map +1 -1
  9. package/elements/base/link.js +1 -2
  10. package/elements/base/link.js.map +1 -1
  11. package/elements/base/route.d.ts +4 -21
  12. package/elements/base/route.d.ts.map +1 -1
  13. package/elements/base/route.js +2 -83
  14. package/elements/base/route.js.map +1 -1
  15. package/lib/element.d.ts +17 -5
  16. package/lib/element.d.ts.map +1 -1
  17. package/lib/element.js +8 -11
  18. package/lib/element.js.map +1 -1
  19. package/lib/history.d.ts +24 -0
  20. package/lib/history.d.ts.map +1 -1
  21. package/lib/history.js +82 -0
  22. package/lib/history.js.map +1 -1
  23. package/lib/keyed.d.ts +10 -0
  24. package/lib/keyed.d.ts.map +1 -0
  25. package/lib/keyed.js +26 -0
  26. package/lib/keyed.js.map +1 -0
  27. package/lib/lit-html.d.ts.map +1 -1
  28. package/lib/lit-html.js +3 -3
  29. package/lib/lit-html.js.map +1 -1
  30. package/lib/repeat.d.ts.map +1 -1
  31. package/lib/repeat.js +1 -1
  32. package/lib/repeat.js.map +1 -1
  33. package/lib/version.d.ts +1 -1
  34. package/lib/version.js +1 -1
  35. package/package.json +10 -1
  36. package/src/elements/base/gesture.ts +20 -1
  37. package/src/elements/base/link.ts +3 -3
  38. package/src/elements/base/route.ts +4 -96
  39. package/src/lib/element.ts +14 -15
  40. package/src/lib/history.ts +96 -0
  41. package/src/lib/keyed.ts +30 -0
  42. package/src/lib/lit-html.ts +3 -3
  43. package/src/lib/repeat.ts +1 -1
  44. package/src/lib/version.ts +1 -1
@@ -1 +1 @@
1
- {"version":3,"file":"repeat.d.ts","sourceRoot":"","sources":["../src/lib/repeat.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"repeat.d.ts","sourceRoot":"","sources":["../src/lib/repeat.ts"],"names":[],"mappings":"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"}
package/lib/repeat.js CHANGED
@@ -529,5 +529,5 @@ class RepeatDirective extends Directive {
529
529
  * If no `keyFn` is provided, this directive will perform similar to mapping
530
530
  * items to values, and DOM will be reused against potentially different items.
531
531
  */
532
- export const repeat = directive(RepeatDirective);
532
+ export const repeat = /*#__PURE__*/ directive(RepeatDirective);
533
533
  //# sourceMappingURL=repeat.js.map
package/lib/repeat.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"repeat.js","sourceRoot":"","sources":["../src/lib/repeat.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"repeat.js","sourceRoot":"","sources":["../src/lib/repeat.ts"],"names":[],"mappings":"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"}
package/lib/version.d.ts CHANGED
@@ -1,2 +1,2 @@
1
- export declare const version = "2.3.1";
1
+ export declare const version = "2.3.3";
2
2
  //# sourceMappingURL=version.d.ts.map
package/lib/version.js CHANGED
@@ -1,2 +1,2 @@
1
- export const version = '2.3.1';
1
+ export const version = '2.3.3';
2
2
  //# sourceMappingURL=version.js.map
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@mantou/gem",
3
- "version": "2.3.1",
3
+ "version": "2.3.3",
4
4
  "description": "💎 Build reusable custom elements and web apps on Web Components",
5
5
  "keywords": [
6
6
  "frontend",
@@ -12,6 +12,14 @@
12
12
  "esm.sh": {
13
13
  "bundle": false
14
14
  },
15
+ "sideEffects": [
16
+ "./index.js",
17
+ "./lib/element.js",
18
+ "./elements/*.js",
19
+ "./helper/hmr.js",
20
+ "./helper/ssr-shim.js",
21
+ "./dist/*"
22
+ ],
15
23
  "main": "index.js",
16
24
  "module": "index.js",
17
25
  "exports": {
@@ -22,6 +30,7 @@
22
30
  "./helper/*": "./helper/*.js"
23
31
  },
24
32
  "files": [
33
+ "/AGENTS.md",
25
34
  "/index.*",
26
35
  "/dist/",
27
36
  "/elements/",
@@ -137,7 +137,26 @@ const style = css`
137
137
  &:where(:not([hidden])) {
138
138
  display: block;
139
139
  user-select: none;
140
- touch-action: attr(touch-action, none);
140
+ touch-action: none;
141
+ }
142
+ /* 常用取值,兼容不支持在 touch-action 中使用 attr() 的浏览器 */
143
+ &:where([touch-action='auto']) {
144
+ touch-action: auto;
145
+ }
146
+ &:where([touch-action='manipulation']) {
147
+ touch-action: manipulation;
148
+ }
149
+ &:where([touch-action='pan-x']) {
150
+ touch-action: pan-x;
151
+ }
152
+ &:where([touch-action='pan-y']) {
153
+ touch-action: pan-y;
154
+ }
155
+ /* 支持任意取值;不带类型的 attr() 是字符串,对 touch-action 无效 */
156
+ @supports (touch-action: attr(touch-action type(*), none)) {
157
+ &:where([touch-action]) {
158
+ touch-action: attr(touch-action type(*), none);
159
+ }
141
160
  }
142
161
  }
143
162
  `;
@@ -13,11 +13,11 @@ import {
13
13
  template,
14
14
  } from '../../lib/decorators';
15
15
  import { css, GemElement, html } from '../../lib/element';
16
- import { basePathStore, history } from '../../lib/history';
16
+ import type { RouteOptions } from '../../lib/history';
17
+ import { basePathStore, createHistoryParams, createPath, history, matchPath } from '../../lib/history';
17
18
  import { isServer } from '../../lib/server';
18
19
  import { absoluteLocation } from '../../lib/utils';
19
- import type { RouteItem, RouteOptions } from './route';
20
- import { createHistoryParams, createPath, matchPath } from './route';
20
+ import type { RouteItem } from './route';
21
21
 
22
22
  function isExternal(path: string) {
23
23
  return !path.startsWith('/');
@@ -1,80 +1,17 @@
1
1
  import type { Emitter } from '../../lib/decorators';
2
2
  import { adoptedStyle, boolattribute, effect, emitter, light, property, shadow, template } from '../../lib/decorators';
3
3
  import { createState, css, GemElement, html } from '../../lib/element';
4
- import type { UpdateHistoryParams } from '../../lib/history';
5
- import { history, titleStore } from '../../lib/history';
4
+ import type { RouteOptions, UpdateHistoryParams } from '../../lib/history';
5
+ import { createPath, history, matchPath, titleStore } from '../../lib/history';
6
6
  import type { TemplateResult } from '../../lib/lit-html';
7
7
  import type { Store } from '../../lib/store';
8
8
  import { connect, createStore } from '../../lib/store';
9
9
  import type { QueryString } from '../../lib/utils';
10
10
  import { addListener } from '../../lib/utils';
11
11
 
12
- type Params = Record<string, string>;
13
- type Matcher = (path: string) => Params | null | undefined;
14
-
15
- const UNNAMED_PARAM_PREFIX = '_';
16
-
17
- // 不支持 `URLPattern` 时转换成正则
18
- // '/test/:a' /^\/test\/(?<a>[^/]+)$/
19
- // '/test/:a/b' /^\/test\/(?<a>[^/]+)\/b$/
20
- // '/test/*' /^\/test\/(?<_0>.*)$/
21
- // '/test/:a/*' /^\/test\/(?<a>[^/]+)\/(?<_0>.*)$/
22
- // '/test/*/:b' /^\/test\/(?<_0>.*)\/(?<b>[^/]+)$/
23
- function createRegExpMatcher(pattern: string): Matcher {
24
- let i = 0;
25
- const source = pattern.replace(/:[^/$]+|\*/g, (name) =>
26
- name === '*' ? `(?<${UNNAMED_PARAM_PREFIX}${i++}>.*)` : `(?<${name.slice(1)}>[^/]+)`,
27
- );
28
- const reg = new RegExp(`^${source}$`);
29
- return (path) => {
30
- const result = path.match(reg);
31
- if (!result) return null;
32
- const params: Params = {};
33
- for (const key in result.groups) {
34
- params[key.startsWith(UNNAMED_PARAM_PREFIX) ? key.slice(1) : key] = result.groups[key];
35
- }
36
- return params;
37
- };
38
- }
12
+ export { createHistoryParams, createPath, matchPath, type RouteOptions } from '../../lib/history';
39
13
 
40
- // pattern 开头不含参数和特殊字符的部分
41
- const LITERAL_PREFIX = /^[\w\-./~]*/;
42
-
43
- // `URLPattern` 的创建和 `exec` 都比较慢,不含参数时直接比较,否则先检查固定的开头
44
- function createMatcher(pattern: string): Matcher {
45
- const literal = LITERAL_PREFIX.exec(pattern)![0];
46
- if (literal === pattern) return (path) => (path === pattern ? {} : null);
47
- // 根 layout 的 pattern
48
- if (pattern === '*') return (path) => ({ 0: path });
49
- if (!globalThis.URLPattern) return createRegExpMatcher(pattern);
50
- const urlPattern = new URLPattern({ pathname: pattern });
51
- // 参数前的 `/` 可能是可选的,例如 `/a/:b?` 匹配 `/a`
52
- const prefix = literal.replace(/\/$/, '');
53
- return (path) =>
54
- path.startsWith(prefix) ? (urlPattern.exec({ pathname: path })?.pathname.groups as Params | undefined) : null;
55
- }
56
-
57
- // pattern 来自路由定义,数量有限
58
- const matchers = new Map<string, Matcher>();
59
-
60
- /**
61
- * - 大小写敏感
62
- * - 匹配成功时返回 params
63
- * - 以 `/` 结尾时能不带 `/` 结尾的路径
64
- * - `*` 匹配到的 params 名称为数字
65
- *
66
- * @example
67
- * ```js
68
- * matchPath(`/a/b/:c/:d`,`/a/b/1/2`);
69
- * matchPath(`/a/b/:c/:d`,`/a/b/1/2/`);
70
- * matchPath(`/a/b/*`,`/a/b/1/2/`);
71
- * ```
72
- */
73
- export function matchPath(pattern: string, path: string) {
74
- let match = matchers.get(pattern);
75
- if (!match) matchers.set(pattern, (match = createMatcher(pattern)));
76
- return match(path) || match(`${path}/`) || null;
77
- }
14
+ type Params = Record<string, string>;
78
15
 
79
16
  export interface RouteItem<T = unknown> {
80
17
  // 支持 *
@@ -96,35 +33,6 @@ export interface RouteItem<T = unknown> {
96
33
 
97
34
  export type RoutesObject<T = unknown> = Record<string, RouteItem<T>>;
98
35
 
99
- // params 中的成员不会验证
100
- export interface RouteOptions extends Omit<UpdateHistoryParams, 'path'> {
101
- params?: Params;
102
- }
103
-
104
- // 从路由创建路径
105
- // 不包含 basePath
106
- export function createPath(route: RouteItem, options?: RouteOptions) {
107
- // /a/* /a/:0
108
- // /a/*/:b/* /a/:0/:b/:1
109
- let i = 0;
110
- let path = route.pattern.replaceAll('*', () => `:${i++}`);
111
- const params = options?.params;
112
- if (params) {
113
- Object.keys(params).forEach((key) => {
114
- path = path.replace(new RegExp(`:${key}`, 'g'), params[key]);
115
- });
116
- }
117
- return path;
118
- }
119
-
120
- export function createHistoryParams(route: RouteItem, options?: RouteOptions): UpdateHistoryParams {
121
- const path = createPath(route, options);
122
- return {
123
- path,
124
- ...options,
125
- };
126
- }
127
-
128
36
  const INIT_CONTENT = html``;
129
37
 
130
38
  type State = {
@@ -1,31 +1,30 @@
1
- import * as decoratorsExports from './decorators';
2
1
  import { html, render } from './lit-html';
3
- import * as reactiveExports from './reactive';
4
- import { setEngine } from './reactive';
5
- import * as storeExports from './store';
6
- import * as versionExports from './version';
2
+ import { createState, css, GemElement, setEngine } from './reactive';
3
+ import { version } from './version';
7
4
 
5
+ // 副作用,在 package.json 的 `sideEffects` 中声明;
6
+ // 同时声明 `index.js`,否则 esbuild 从入口直接解析到 reactive 的导出时会跳过这个模块
8
7
  setEngine(html, render);
9
8
 
10
9
  export * from './decorators';
11
10
  export { directive } from './directive';
11
+ export { keyed } from './keyed';
12
12
  export { createRef, mathml, svg, TemplateResult } from './lit-html';
13
13
  export * from './reactive';
14
14
  export { repeat } from './repeat';
15
15
 
16
+ // 只提供 devtools 使用的成员,引用整个模块会导致没用到的导出不能被树抖
17
+ const hookExports = { GemElement, setEngine, html, render, css, createState, version };
18
+
19
+ type HookExports = typeof hookExports;
20
+
16
21
  declare global {
17
- var __GEM_DEVTOOLS__HOOK__:
18
- | (typeof reactiveExports & typeof decoratorsExports & typeof storeExports & typeof versionExports)
19
- | Record<string, never>
20
- | undefined;
22
+ /** devtools 注入的钩子,其他包可以扩展,例如 gem-ssr */
23
+ interface GemDevToolsHook extends HookExports {}
24
+ var __GEM_DEVTOOLS__HOOK__: GemDevToolsHook | Record<string, never> | undefined;
21
25
  }
22
26
 
23
27
  // 只记录第一次定义,往往是最外层 App
24
28
  if (globalThis.__GEM_DEVTOOLS__HOOK__ && !globalThis.__GEM_DEVTOOLS__HOOK__.GemElement) {
25
- Object.assign(globalThis.__GEM_DEVTOOLS__HOOK__, {
26
- ...reactiveExports,
27
- ...decoratorsExports,
28
- ...storeExports,
29
- ...versionExports,
30
- });
29
+ Object.assign(globalThis.__GEM_DEVTOOLS__HOOK__, hookExports);
31
30
  }
@@ -309,3 +309,99 @@ if (!globalThis._GEMHISTORY) {
309
309
  const { history, titleStore, basePathStore } = globalThis._GEMHISTORY;
310
310
 
311
311
  export { basePathStore, history, titleStore };
312
+
313
+ type Params = Record<string, string>;
314
+ type Matcher = (path: string) => Params | null | undefined;
315
+
316
+ const UNNAMED_PARAM_PREFIX = '_';
317
+
318
+ // 不支持 `URLPattern` 时转换成正则
319
+ // '/test/:a' /^\/test\/(?<a>[^/]+)$/
320
+ // '/test/:a/b' /^\/test\/(?<a>[^/]+)\/b$/
321
+ // '/test/*' /^\/test\/(?<_0>.*)$/
322
+ // '/test/:a/*' /^\/test\/(?<a>[^/]+)\/(?<_0>.*)$/
323
+ // '/test/*/:b' /^\/test\/(?<_0>.*)\/(?<b>[^/]+)$/
324
+ function createRegExpMatcher(pattern: string): Matcher {
325
+ let i = 0;
326
+ const source = pattern.replace(/:[^/$]+|\*/g, (name) =>
327
+ name === '*' ? `(?<${UNNAMED_PARAM_PREFIX}${i++}>.*)` : `(?<${name.slice(1)}>[^/]+)`,
328
+ );
329
+ const reg = new RegExp(`^${source}$`);
330
+ return (path) => {
331
+ const result = path.match(reg);
332
+ if (!result) return null;
333
+ const params: Params = {};
334
+ for (const key in result.groups) {
335
+ params[key.startsWith(UNNAMED_PARAM_PREFIX) ? key.slice(1) : key] = result.groups[key];
336
+ }
337
+ return params;
338
+ };
339
+ }
340
+
341
+ // pattern 开头不含参数和特殊字符的部分
342
+ const LITERAL_PREFIX = /^[\w\-./~]*/;
343
+
344
+ // `URLPattern` 的创建和 `exec` 都比较慢,不含参数时直接比较,否则先检查固定的开头
345
+ function createMatcher(pattern: string): Matcher {
346
+ const literal = LITERAL_PREFIX.exec(pattern)![0];
347
+ if (literal === pattern) return (path) => (path === pattern ? {} : null);
348
+ // 根 layout 的 pattern
349
+ if (pattern === '*') return (path) => ({ 0: path });
350
+ if (!globalThis.URLPattern) return createRegExpMatcher(pattern);
351
+ const urlPattern = new URLPattern({ pathname: pattern });
352
+ // 参数前的 `/` 可能是可选的,例如 `/a/:b?` 匹配 `/a`
353
+ const prefix = literal.replace(/\/$/, '');
354
+ return (path) =>
355
+ path.startsWith(prefix) ? (urlPattern.exec({ pathname: path })?.pathname.groups as Params | undefined) : null;
356
+ }
357
+
358
+ // pattern 来自路由定义,数量有限
359
+ const matchers = new Map<string, Matcher>();
360
+
361
+ /**
362
+ * - 大小写敏感
363
+ * - 匹配成功时返回 params
364
+ * - 以 `/` 结尾时能不带 `/` 结尾的路径
365
+ * - `*` 匹配到的 params 名称为数字
366
+ *
367
+ * @example
368
+ * ```js
369
+ * matchPath(`/a/b/:c/:d`,`/a/b/1/2`);
370
+ * matchPath(`/a/b/:c/:d`,`/a/b/1/2/`);
371
+ * matchPath(`/a/b/*`,`/a/b/1/2/`);
372
+ * ```
373
+ */
374
+ export function matchPath(pattern: string, path: string) {
375
+ let match = matchers.get(pattern);
376
+ if (!match) matchers.set(pattern, (match = createMatcher(pattern)));
377
+ return match(path) || match(`${path}/`) || null;
378
+ }
379
+
380
+ // params 中的成员不会验证
381
+ export interface RouteOptions extends Omit<UpdateHistoryParams, 'path'> {
382
+ params?: Record<string, string>;
383
+ }
384
+
385
+ // 从路由创建路径
386
+ // 不包含 basePath
387
+ export function createPath(route: { pattern: string }, options?: RouteOptions) {
388
+ // /a/* /a/:0
389
+ // /a/*/:b/* /a/:0/:b/:1
390
+ let i = 0;
391
+ let path = route.pattern.replaceAll('*', () => `:${i++}`);
392
+ const params = options?.params;
393
+ if (params) {
394
+ Object.keys(params).forEach((key) => {
395
+ path = path.replace(new RegExp(`:${key}`, 'g'), params[key]);
396
+ });
397
+ }
398
+ return path;
399
+ }
400
+
401
+ export function createHistoryParams(route: { pattern: string }, options?: RouteOptions): UpdateHistoryParams {
402
+ const path = createPath(route, options);
403
+ return {
404
+ path,
405
+ ...options,
406
+ };
407
+ }
@@ -0,0 +1,30 @@
1
+ import { Directive, directive } from './directive';
2
+ import type { ChildPart } from './lit-html';
3
+ import { setCommittedValue } from './repeat';
4
+
5
+ const INITIAL = Symbol();
6
+
7
+ class KeyedDirective extends Directive {
8
+ #key: unknown = INITIAL;
9
+
10
+ render(_key: unknown, value: unknown) {
11
+ return value;
12
+ }
13
+
14
+ // 第一次渲染时不清除,水合时复用 SSR 的内容
15
+ update(part: ChildPart, [key, value]: [unknown, unknown]) {
16
+ if (this.#key !== INITIAL && key !== this.#key) setCommittedValue(part);
17
+ this.#key = key;
18
+ return value;
19
+ }
20
+ }
21
+
22
+ /**
23
+ * `key` 改变时丢弃原来的 DOM,重新创建内容,即使模板相同,例如页面参数改变时重新创建页面元素
24
+ *
25
+ * @example
26
+ * ```ts
27
+ * html`${keyed(this.id, html`<my-editor .id=${this.id}></my-editor>`)}`;
28
+ * ```
29
+ */
30
+ export const keyed = /*#__PURE__*/ directive(KeyedDirective) as (key: unknown, value: unknown) => unknown;
@@ -167,9 +167,9 @@ const tag =
167
167
  return new TemplateResult(type, strings, values);
168
168
  };
169
169
 
170
- export const html = tag(HTML_RESULT);
171
- export const svg = tag(SVG_RESULT);
172
- export const mathml = tag(MATHML_RESULT);
170
+ export const html = /*#__PURE__*/ tag(HTML_RESULT);
171
+ export const svg = /*#__PURE__*/ tag(SVG_RESULT);
172
+ export const mathml = /*#__PURE__*/ tag(MATHML_RESULT);
173
173
 
174
174
  // for directive
175
175
  export const noChange = Symbol.for('lit-noChange');
package/src/lib/repeat.ts CHANGED
@@ -571,7 +571,7 @@ export interface RepeatDirectiveFn {
571
571
  * If no `keyFn` is provided, this directive will perform similar to mapping
572
572
  * items to values, and DOM will be reused against potentially different items.
573
573
  */
574
- export const repeat = directive(RepeatDirective) as RepeatDirectiveFn;
574
+ export const repeat = /*#__PURE__*/ directive(RepeatDirective) as RepeatDirectiveFn;
575
575
 
576
576
  /**
577
577
  * The type of the class that powers this directive. Necessary for naming the
@@ -1 +1 @@
1
- export const version = '2.3.1';
1
+ export const version = '2.3.3';