@dxos/lit-ui 0.8.1-staging.9eaf14f → 0.8.2-main.12df754

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.
@@ -0,0 +1,24 @@
1
+ import { LitElement } from 'lit';
2
+ export declare class DxRefTagActivate extends Event {
3
+ readonly ref: string;
4
+ readonly label: string;
5
+ readonly trigger: HTMLButtonElement;
6
+ constructor(props: {
7
+ ref: string;
8
+ label: string;
9
+ trigger: HTMLButtonElement;
10
+ });
11
+ }
12
+ export declare class DxRefTag extends LitElement {
13
+ ref: string;
14
+ label: string;
15
+ rootClassName: string | undefined;
16
+ hoverDelay: number;
17
+ private hoverTimer;
18
+ private handleActivate;
19
+ private handlePointerEnter;
20
+ private handlePointerLeave;
21
+ render(): import("lit").TemplateResult<1>;
22
+ createRenderRoot(): this;
23
+ }
24
+ //# sourceMappingURL=dx-ref-tag.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"dx-ref-tag.d.ts","sourceRoot":"","sources":["../../../src/dx-ref-tag/dx-ref-tag.ts"],"names":[],"mappings":"AAIA,OAAO,EAAQ,UAAU,EAAE,MAAM,KAAK,CAAC;AAKvC,qBAAa,gBAAiB,SAAQ,KAAK;IACzC,SAAgB,GAAG,EAAE,MAAM,CAAC;IAC5B,SAAgB,KAAK,EAAE,MAAM,CAAC;IAC9B,SAAgB,OAAO,EAAE,iBAAiB,CAAC;gBAC/B,KAAK,EAAE;QAAE,GAAG,EAAE,MAAM,CAAC;QAAC,KAAK,EAAE,MAAM,CAAC;QAAC,OAAO,EAAE,iBAAiB,CAAA;KAAE;CAM9E;AAED,qBACa,QAAS,SAAQ,UAAU;IAEtC,GAAG,EAAE,MAAM,CAAwB;IAGnC,KAAK,EAAE,MAAM,CAAW;IAGxB,aAAa,EAAE,MAAM,GAAG,SAAS,CAAa;IAG9C,UAAU,EAAE,MAAM,CAAO;IAGzB,OAAO,CAAC,UAAU,CAAuB;IAEzC,OAAO,CAAC,cAAc;IAMtB,OAAO,CAAC,kBAAkB;IAU1B,OAAO,CAAC,kBAAkB;IAOjB,MAAM;IAcN,gBAAgB;CAG1B"}
@@ -0,0 +1,84 @@
1
+ //
2
+ // Copyright 2025 DXOS.org
3
+ //
4
+ var __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {
5
+ var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;
6
+ if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc);
7
+ else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;
8
+ return c > 3 && r && Object.defineProperty(target, key, r), r;
9
+ };
10
+ import { html, LitElement } from 'lit';
11
+ import { customElement, property, state } from 'lit/decorators.js';
12
+ import { makeId } from '@dxos/react-hooks';
13
+ export class DxRefTagActivate extends Event {
14
+ constructor(props) {
15
+ super('dx-ref-tag-activate');
16
+ this.ref = props.ref;
17
+ this.label = props.label;
18
+ this.trigger = props.trigger;
19
+ }
20
+ }
21
+ let DxRefTag = class DxRefTag extends LitElement {
22
+ constructor() {
23
+ super(...arguments);
24
+ this.ref = makeId('dx-ref-tag');
25
+ this.label = 'never';
26
+ this.rootClassName = undefined;
27
+ this.hoverDelay = 400;
28
+ this.hoverTimer = null;
29
+ }
30
+ handleActivate(event) {
31
+ this.dispatchEvent(new DxRefTagActivate({ ref: this.ref, label: this.label, trigger: this.querySelector('[data-trigger]') }));
32
+ }
33
+ handlePointerEnter() {
34
+ if (this.hoverTimer !== null) {
35
+ window.clearTimeout(this.hoverTimer);
36
+ }
37
+ this.hoverTimer = window.setTimeout(() => {
38
+ this.handleActivate({ type: 'hover-linger' });
39
+ this.hoverTimer = null;
40
+ }, this.hoverDelay);
41
+ }
42
+ handlePointerLeave() {
43
+ if (this.hoverTimer !== null) {
44
+ window.clearTimeout(this.hoverTimer);
45
+ this.hoverTimer = null;
46
+ }
47
+ }
48
+ render() {
49
+ const className = `dx-focus-ring dx-ref-tag${this.rootClassName ? ` ${this.rootClassName}` : ''}`;
50
+ return html `<span
51
+ tabindex="0"
52
+ data-trigger="true"
53
+ class=${className}
54
+ id=${this.id}
55
+ @click=${this.handleActivate}
56
+ @pointerenter=${this.handlePointerEnter}
57
+ @pointerleave=${this.handlePointerLeave}
58
+ >${this.label}</span
59
+ >`;
60
+ }
61
+ createRenderRoot() {
62
+ return this;
63
+ }
64
+ };
65
+ __decorate([
66
+ property({ type: String })
67
+ ], DxRefTag.prototype, "ref", void 0);
68
+ __decorate([
69
+ property({ type: String })
70
+ ], DxRefTag.prototype, "label", void 0);
71
+ __decorate([
72
+ property({ type: String })
73
+ ], DxRefTag.prototype, "rootClassName", void 0);
74
+ __decorate([
75
+ property({ type: Number })
76
+ ], DxRefTag.prototype, "hoverDelay", void 0);
77
+ __decorate([
78
+ state()
79
+ ], DxRefTag.prototype, "hoverTimer", void 0);
80
+ DxRefTag = __decorate([
81
+ customElement('dx-ref-tag')
82
+ ], DxRefTag);
83
+ export { DxRefTag };
84
+ //# sourceMappingURL=dx-ref-tag.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"dx-ref-tag.js","sourceRoot":"","sources":["../../../src/dx-ref-tag/dx-ref-tag.ts"],"names":[],"mappings":"AAAA,EAAE;AACF,0BAA0B;AAC1B,EAAE;;;;;;;AAEF,OAAO,EAAE,IAAI,EAAE,UAAU,EAAE,MAAM,KAAK,CAAC;AACvC,OAAO,EAAE,aAAa,EAAE,QAAQ,EAAE,KAAK,EAAE,MAAM,mBAAmB,CAAC;AAEnE,OAAO,EAAE,MAAM,EAAE,MAAM,mBAAmB,CAAC;AAE3C,MAAM,OAAO,gBAAiB,SAAQ,KAAK;IAIzC,YAAY,KAAiE;QAC3E,KAAK,CAAC,qBAAqB,CAAC,CAAC;QAC7B,IAAI,CAAC,GAAG,GAAG,KAAK,CAAC,GAAG,CAAC;QACrB,IAAI,CAAC,KAAK,GAAG,KAAK,CAAC,KAAK,CAAC;QACzB,IAAI,CAAC,OAAO,GAAG,KAAK,CAAC,OAAO,CAAC;IAC/B,CAAC;CACF;AAGM,IAAM,QAAQ,GAAd,MAAM,QAAS,SAAQ,UAAU;IAAjC;;QAEL,QAAG,GAAW,MAAM,CAAC,YAAY,CAAC,CAAC;QAGnC,UAAK,GAAW,OAAO,CAAC;QAGxB,kBAAa,GAAuB,SAAS,CAAC;QAG9C,eAAU,GAAW,GAAG,CAAC;QAGjB,eAAU,GAAkB,IAAI,CAAC;IA0C3C,CAAC;IAxCS,cAAc,CAAC,KAAuB;QAC5C,IAAI,CAAC,aAAa,CAChB,IAAI,gBAAgB,CAAC,EAAE,GAAG,EAAE,IAAI,CAAC,GAAG,EAAE,KAAK,EAAE,IAAI,CAAC,KAAK,EAAE,OAAO,EAAE,IAAI,CAAC,aAAa,CAAC,gBAAgB,CAAE,EAAE,CAAC,CAC3G,CAAC;IACJ,CAAC;IAEO,kBAAkB;QACxB,IAAI,IAAI,CAAC,UAAU,KAAK,IAAI,EAAE,CAAC;YAC7B,MAAM,CAAC,YAAY,CAAC,IAAI,CAAC,UAAU,CAAC,CAAC;QACvC,CAAC;QACD,IAAI,CAAC,UAAU,GAAG,MAAM,CAAC,UAAU,CAAC,GAAG,EAAE;YACvC,IAAI,CAAC,cAAc,CAAC,EAAE,IAAI,EAAE,cAAc,EAAE,CAAC,CAAC;YAC9C,IAAI,CAAC,UAAU,GAAG,IAAI,CAAC;QACzB,CAAC,EAAE,IAAI,CAAC,UAAU,CAAC,CAAC;IACtB,CAAC;IAEO,kBAAkB;QACxB,IAAI,IAAI,CAAC,UAAU,KAAK,IAAI,EAAE,CAAC;YAC7B,MAAM,CAAC,YAAY,CAAC,IAAI,CAAC,UAAU,CAAC,CAAC;YACrC,IAAI,CAAC,UAAU,GAAG,IAAI,CAAC;QACzB,CAAC;IACH,CAAC;IAEQ,MAAM;QACb,MAAM,SAAS,GAAG,2BAA2B,IAAI,CAAC,aAAa,CAAC,CAAC,CAAC,IAAI,IAAI,CAAC,aAAa,EAAE,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC;QAClG,OAAO,IAAI,CAAA;;;cAGD,SAAS;WACZ,IAAI,CAAC,EAAE;eACH,IAAI,CAAC,cAAc;sBACZ,IAAI,CAAC,kBAAkB;sBACvB,IAAI,CAAC,kBAAkB;SACpC,IAAI,CAAC,KAAK;MACb,CAAC;IACL,CAAC;IAEQ,gBAAgB;QACvB,OAAO,IAAI,CAAC;IACd,CAAC;CACF,CAAA;AAtDC;IADC,QAAQ,CAAC,EAAE,IAAI,EAAE,MAAM,EAAE,CAAC;qCACQ;AAGnC;IADC,QAAQ,CAAC,EAAE,IAAI,EAAE,MAAM,EAAE,CAAC;uCACH;AAGxB;IADC,QAAQ,CAAC,EAAE,IAAI,EAAE,MAAM,EAAE,CAAC;+CACmB;AAG9C;IADC,QAAQ,CAAC,EAAE,IAAI,EAAE,MAAM,EAAE,CAAC;4CACF;AAGjB;IADP,KAAK,EAAE;4CACiC;AAd9B,QAAQ;IADpB,aAAa,CAAC,YAAY,CAAC;GACf,QAAQ,CAwDpB"}
@@ -0,0 +1,2 @@
1
+ export * from './dx-ref-tag';
2
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/dx-ref-tag/index.ts"],"names":[],"mappings":"AAIA,cAAc,cAAc,CAAC"}
@@ -0,0 +1,5 @@
1
+ //
2
+ // Copyright 2025 DXOS.org
3
+ //
4
+ export * from './dx-ref-tag';
5
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/dx-ref-tag/index.ts"],"names":[],"mappings":"AAAA,EAAE;AACF,0BAA0B;AAC1B,EAAE;AAEF,cAAc,cAAc,CAAC"}
@@ -1,5 +1,6 @@
1
1
  export * from './dx-avatar';
2
2
  export * from './dx-tag-picker';
3
+ export * from './dx-ref-tag';
3
4
  export * from './dx-icon';
4
5
  export { createComponent, type EventName } from '@lit/react';
5
6
  //# sourceMappingURL=index.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/index.ts"],"names":[],"mappings":"AAIA,cAAc,aAAa,CAAC;AAC5B,cAAc,iBAAiB,CAAC;AAChC,cAAc,WAAW,CAAC;AAE1B,OAAO,EAAE,eAAe,EAAE,KAAK,SAAS,EAAE,MAAM,YAAY,CAAC"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/index.ts"],"names":[],"mappings":"AAIA,cAAc,aAAa,CAAC;AAC5B,cAAc,iBAAiB,CAAC;AAChC,cAAc,cAAc,CAAC;AAC7B,cAAc,WAAW,CAAC;AAE1B,OAAO,EAAE,eAAe,EAAE,KAAK,SAAS,EAAE,MAAM,YAAY,CAAC"}
package/dist/src/index.js CHANGED
@@ -3,6 +3,7 @@
3
3
  //
4
4
  export * from './dx-avatar';
5
5
  export * from './dx-tag-picker';
6
+ export * from './dx-ref-tag';
6
7
  export * from './dx-icon';
7
8
  export { createComponent } from '@lit/react';
8
9
  //# sourceMappingURL=index.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/index.ts"],"names":[],"mappings":"AAAA,EAAE;AACF,0BAA0B;AAC1B,EAAE;AAEF,cAAc,aAAa,CAAC;AAC5B,cAAc,iBAAiB,CAAC;AAChC,cAAc,WAAW,CAAC;AAE1B,OAAO,EAAE,eAAe,EAAkB,MAAM,YAAY,CAAC"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/index.ts"],"names":[],"mappings":"AAAA,EAAE;AACF,0BAA0B;AAC1B,EAAE;AAEF,cAAc,aAAa,CAAC;AAC5B,cAAc,iBAAiB,CAAC;AAChC,cAAc,cAAc,CAAC;AAC7B,cAAc,WAAW,CAAC;AAE1B,OAAO,EAAE,eAAe,EAAkB,MAAM,YAAY,CAAC"}
@@ -0,0 +1,24 @@
1
+ import { LitElement } from 'lit';
2
+ export declare class DxRefTagActivate extends Event {
3
+ readonly ref: string;
4
+ readonly label: string;
5
+ readonly trigger: HTMLButtonElement;
6
+ constructor(props: {
7
+ ref: string;
8
+ label: string;
9
+ trigger: HTMLButtonElement;
10
+ });
11
+ }
12
+ export declare class DxRefTag extends LitElement {
13
+ ref: string;
14
+ label: string;
15
+ rootClassName: string | undefined;
16
+ hoverDelay: number;
17
+ private hoverTimer;
18
+ private handleActivate;
19
+ private handlePointerEnter;
20
+ private handlePointerLeave;
21
+ render(): import("lit").TemplateResult<1>;
22
+ createRenderRoot(): this;
23
+ }
24
+ //# sourceMappingURL=dx-ref-tag.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"dx-ref-tag.d.ts","sourceRoot":"","sources":["../../../../src/dx-ref-tag/dx-ref-tag.ts"],"names":[],"mappings":"AAIA,OAAO,EAAQ,UAAU,EAAE,MAAM,KAAK,CAAC;AAKvC,qBAAa,gBAAiB,SAAQ,KAAK;IACzC,SAAgB,GAAG,EAAE,MAAM,CAAC;IAC5B,SAAgB,KAAK,EAAE,MAAM,CAAC;IAC9B,SAAgB,OAAO,EAAE,iBAAiB,CAAC;gBAC/B,KAAK,EAAE;QAAE,GAAG,EAAE,MAAM,CAAC;QAAC,KAAK,EAAE,MAAM,CAAC;QAAC,OAAO,EAAE,iBAAiB,CAAA;KAAE;CAM9E;AAED,qBACa,QAAS,SAAQ,UAAU;IAEtC,GAAG,EAAE,MAAM,CAAwB;IAGnC,KAAK,EAAE,MAAM,CAAW;IAGxB,aAAa,EAAE,MAAM,GAAG,SAAS,CAAa;IAG9C,UAAU,EAAE,MAAM,CAAO;IAGzB,OAAO,CAAC,UAAU,CAAuB;IAEzC,OAAO,CAAC,cAAc;IAMtB,OAAO,CAAC,kBAAkB;IAU1B,OAAO,CAAC,kBAAkB;IAOjB,MAAM;IAcN,gBAAgB;CAG1B"}
@@ -0,0 +1,84 @@
1
+ //
2
+ // Copyright 2025 DXOS.org
3
+ //
4
+ var __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {
5
+ var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;
6
+ if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc);
7
+ else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;
8
+ return c > 3 && r && Object.defineProperty(target, key, r), r;
9
+ };
10
+ import { html, LitElement } from 'lit';
11
+ import { customElement, property, state } from 'lit/decorators.js';
12
+ import { makeId } from '@dxos/react-hooks';
13
+ export class DxRefTagActivate extends Event {
14
+ constructor(props) {
15
+ super('dx-ref-tag-activate');
16
+ this.ref = props.ref;
17
+ this.label = props.label;
18
+ this.trigger = props.trigger;
19
+ }
20
+ }
21
+ let DxRefTag = class DxRefTag extends LitElement {
22
+ constructor() {
23
+ super(...arguments);
24
+ this.ref = makeId('dx-ref-tag');
25
+ this.label = 'never';
26
+ this.rootClassName = undefined;
27
+ this.hoverDelay = 400;
28
+ this.hoverTimer = null;
29
+ }
30
+ handleActivate(event) {
31
+ this.dispatchEvent(new DxRefTagActivate({ ref: this.ref, label: this.label, trigger: this.querySelector('[data-trigger]') }));
32
+ }
33
+ handlePointerEnter() {
34
+ if (this.hoverTimer !== null) {
35
+ window.clearTimeout(this.hoverTimer);
36
+ }
37
+ this.hoverTimer = window.setTimeout(() => {
38
+ this.handleActivate({ type: 'hover-linger' });
39
+ this.hoverTimer = null;
40
+ }, this.hoverDelay);
41
+ }
42
+ handlePointerLeave() {
43
+ if (this.hoverTimer !== null) {
44
+ window.clearTimeout(this.hoverTimer);
45
+ this.hoverTimer = null;
46
+ }
47
+ }
48
+ render() {
49
+ const className = `dx-focus-ring dx-ref-tag${this.rootClassName ? ` ${this.rootClassName}` : ''}`;
50
+ return html `<span
51
+ tabindex="0"
52
+ data-trigger="true"
53
+ class=${className}
54
+ id=${this.id}
55
+ @click=${this.handleActivate}
56
+ @pointerenter=${this.handlePointerEnter}
57
+ @pointerleave=${this.handlePointerLeave}
58
+ >${this.label}</span
59
+ >`;
60
+ }
61
+ createRenderRoot() {
62
+ return this;
63
+ }
64
+ };
65
+ __decorate([
66
+ property({ type: String })
67
+ ], DxRefTag.prototype, "ref", void 0);
68
+ __decorate([
69
+ property({ type: String })
70
+ ], DxRefTag.prototype, "label", void 0);
71
+ __decorate([
72
+ property({ type: String })
73
+ ], DxRefTag.prototype, "rootClassName", void 0);
74
+ __decorate([
75
+ property({ type: Number })
76
+ ], DxRefTag.prototype, "hoverDelay", void 0);
77
+ __decorate([
78
+ state()
79
+ ], DxRefTag.prototype, "hoverTimer", void 0);
80
+ DxRefTag = __decorate([
81
+ customElement('dx-ref-tag')
82
+ ], DxRefTag);
83
+ export { DxRefTag };
84
+ //# sourceMappingURL=dx-ref-tag.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"dx-ref-tag.js","sourceRoot":"","sources":["../../../../src/dx-ref-tag/dx-ref-tag.ts"],"names":[],"mappings":"AAAA,EAAE;AACF,0BAA0B;AAC1B,EAAE;;;;;;;AAEF,OAAO,EAAE,IAAI,EAAE,UAAU,EAAE,MAAM,KAAK,CAAC;AACvC,OAAO,EAAE,aAAa,EAAE,QAAQ,EAAE,KAAK,EAAE,MAAM,mBAAmB,CAAC;AAEnE,OAAO,EAAE,MAAM,EAAE,MAAM,mBAAmB,CAAC;AAE3C,MAAM,OAAO,gBAAiB,SAAQ,KAAK;IAIzC,YAAY,KAAiE;QAC3E,KAAK,CAAC,qBAAqB,CAAC,CAAC;QAC7B,IAAI,CAAC,GAAG,GAAG,KAAK,CAAC,GAAG,CAAC;QACrB,IAAI,CAAC,KAAK,GAAG,KAAK,CAAC,KAAK,CAAC;QACzB,IAAI,CAAC,OAAO,GAAG,KAAK,CAAC,OAAO,CAAC;IAC/B,CAAC;CACF;AAGM,IAAM,QAAQ,GAAd,MAAM,QAAS,SAAQ,UAAU;IAAjC;;QAEL,QAAG,GAAW,MAAM,CAAC,YAAY,CAAC,CAAC;QAGnC,UAAK,GAAW,OAAO,CAAC;QAGxB,kBAAa,GAAuB,SAAS,CAAC;QAG9C,eAAU,GAAW,GAAG,CAAC;QAGjB,eAAU,GAAkB,IAAI,CAAC;IA0C3C,CAAC;IAxCS,cAAc,CAAC,KAAuB;QAC5C,IAAI,CAAC,aAAa,CAChB,IAAI,gBAAgB,CAAC,EAAE,GAAG,EAAE,IAAI,CAAC,GAAG,EAAE,KAAK,EAAE,IAAI,CAAC,KAAK,EAAE,OAAO,EAAE,IAAI,CAAC,aAAa,CAAC,gBAAgB,CAAE,EAAE,CAAC,CAC3G,CAAC;IACJ,CAAC;IAEO,kBAAkB;QACxB,IAAI,IAAI,CAAC,UAAU,KAAK,IAAI,EAAE,CAAC;YAC7B,MAAM,CAAC,YAAY,CAAC,IAAI,CAAC,UAAU,CAAC,CAAC;QACvC,CAAC;QACD,IAAI,CAAC,UAAU,GAAG,MAAM,CAAC,UAAU,CAAC,GAAG,EAAE;YACvC,IAAI,CAAC,cAAc,CAAC,EAAE,IAAI,EAAE,cAAc,EAAE,CAAC,CAAC;YAC9C,IAAI,CAAC,UAAU,GAAG,IAAI,CAAC;QACzB,CAAC,EAAE,IAAI,CAAC,UAAU,CAAC,CAAC;IACtB,CAAC;IAEO,kBAAkB;QACxB,IAAI,IAAI,CAAC,UAAU,KAAK,IAAI,EAAE,CAAC;YAC7B,MAAM,CAAC,YAAY,CAAC,IAAI,CAAC,UAAU,CAAC,CAAC;YACrC,IAAI,CAAC,UAAU,GAAG,IAAI,CAAC;QACzB,CAAC;IACH,CAAC;IAEQ,MAAM;QACb,MAAM,SAAS,GAAG,2BAA2B,IAAI,CAAC,aAAa,CAAC,CAAC,CAAC,IAAI,IAAI,CAAC,aAAa,EAAE,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC;QAClG,OAAO,IAAI,CAAA;;;cAGD,SAAS;WACZ,IAAI,CAAC,EAAE;eACH,IAAI,CAAC,cAAc;sBACZ,IAAI,CAAC,kBAAkB;sBACvB,IAAI,CAAC,kBAAkB;SACpC,IAAI,CAAC,KAAK;MACb,CAAC;IACL,CAAC;IAEQ,gBAAgB;QACvB,OAAO,IAAI,CAAC;IACd,CAAC;CACF,CAAA;AAtDC;IADC,QAAQ,CAAC,EAAE,IAAI,EAAE,MAAM,EAAE,CAAC;qCACQ;AAGnC;IADC,QAAQ,CAAC,EAAE,IAAI,EAAE,MAAM,EAAE,CAAC;uCACH;AAGxB;IADC,QAAQ,CAAC,EAAE,IAAI,EAAE,MAAM,EAAE,CAAC;+CACmB;AAG9C;IADC,QAAQ,CAAC,EAAE,IAAI,EAAE,MAAM,EAAE,CAAC;4CACF;AAGjB;IADP,KAAK,EAAE;4CACiC;AAd9B,QAAQ;IADpB,aAAa,CAAC,YAAY,CAAC;GACf,QAAQ,CAwDpB"}
@@ -0,0 +1,2 @@
1
+ export * from './dx-ref-tag';
2
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../src/dx-ref-tag/index.ts"],"names":[],"mappings":"AAIA,cAAc,cAAc,CAAC"}
@@ -0,0 +1,5 @@
1
+ //
2
+ // Copyright 2025 DXOS.org
3
+ //
4
+ export * from './dx-ref-tag';
5
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../src/dx-ref-tag/index.ts"],"names":[],"mappings":"AAAA,EAAE;AACF,0BAA0B;AAC1B,EAAE;AAEF,cAAc,cAAc,CAAC"}
@@ -1,5 +1,6 @@
1
1
  export * from './dx-avatar';
2
2
  export * from './dx-tag-picker';
3
+ export * from './dx-ref-tag';
3
4
  export * from './dx-icon';
4
5
  export { createComponent, type EventName } from '@lit/react';
5
6
  //# sourceMappingURL=index.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/index.ts"],"names":[],"mappings":"AAIA,cAAc,aAAa,CAAC;AAC5B,cAAc,iBAAiB,CAAC;AAChC,cAAc,WAAW,CAAC;AAE1B,OAAO,EAAE,eAAe,EAAE,KAAK,SAAS,EAAE,MAAM,YAAY,CAAC"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/index.ts"],"names":[],"mappings":"AAIA,cAAc,aAAa,CAAC;AAC5B,cAAc,iBAAiB,CAAC;AAChC,cAAc,cAAc,CAAC;AAC7B,cAAc,WAAW,CAAC;AAE1B,OAAO,EAAE,eAAe,EAAE,KAAK,SAAS,EAAE,MAAM,YAAY,CAAC"}
@@ -3,6 +3,7 @@
3
3
  //
4
4
  export * from './dx-avatar';
5
5
  export * from './dx-tag-picker';
6
+ export * from './dx-ref-tag';
6
7
  export * from './dx-icon';
7
8
  export { createComponent } from '@lit/react';
8
9
  //# sourceMappingURL=index.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/index.ts"],"names":[],"mappings":"AAAA,EAAE;AACF,0BAA0B;AAC1B,EAAE;AAEF,cAAc,aAAa,CAAC;AAC5B,cAAc,iBAAiB,CAAC;AAChC,cAAc,WAAW,CAAC;AAE1B,OAAO,EAAE,eAAe,EAAkB,MAAM,YAAY,CAAC"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/index.ts"],"names":[],"mappings":"AAAA,EAAE;AACF,0BAA0B;AAC1B,EAAE;AAEF,cAAc,aAAa,CAAC;AAC5B,cAAc,iBAAiB,CAAC;AAChC,cAAc,cAAc,CAAC;AAC7B,cAAc,WAAW,CAAC;AAE1B,OAAO,EAAE,eAAe,EAAkB,MAAM,YAAY,CAAC"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@dxos/lit-ui",
3
- "version": "0.8.1-staging.9eaf14f",
3
+ "version": "0.8.2-main.12df754",
4
4
  "description": "Web Components for DXOS using Lit",
5
5
  "homepage": "https://dxos.org",
6
6
  "bugs": "https://github.com/dxos/dxos/issues",
@@ -15,7 +15,8 @@
15
15
  "node": "./dist/src/index.js"
16
16
  },
17
17
  "./dx-avatar.pcss": "./src/dx-avatar/dx-avatar.pcss",
18
- "./dx-tag-picker.pcss": "./src/dx-tag-picker/dx-tag-picker.pcss"
18
+ "./dx-tag-picker.pcss": "./src/dx-tag-picker/dx-tag-picker.pcss",
19
+ "./dx-ref-tag.pcss": "./src/dx-ref-tag/dx-ref-tag.pcss"
19
20
  },
20
21
  "main": "dist/src/index.js",
21
22
  "types": "dist/src/index.d.ts",
@@ -26,9 +27,9 @@
26
27
  "dependencies": {
27
28
  "@lit/react": "^1.0.5",
28
29
  "lit": "^3.2.0",
29
- "@dxos/react-hooks": "0.8.1-staging.9eaf14f"
30
+ "@dxos/react-hooks": "0.8.2-main.12df754"
30
31
  },
31
32
  "devDependencies": {
32
- "@dxos/test-utils": "0.8.1-staging.9eaf14f"
33
+ "@dxos/test-utils": "0.8.2-main.12df754"
33
34
  }
34
35
  }
@@ -1,5 +1,5 @@
1
1
  .dx-avatar-group {
2
- @apply inline-flex items-center;
2
+ @apply inline-flex items-center pie-2;
3
3
  }
4
4
 
5
5
  .dx-avatar-group .dx-avatar {
@@ -20,7 +20,7 @@ dx-avatar {
20
20
  @apply relative inline-flex shrink-0;
21
21
 
22
22
  .dx-avatar__frame {
23
- @apply is-full bs-full bg-[--surface-bg]
23
+ @apply is-full bs-full bg-[--surface-bg];
24
24
  }
25
25
 
26
26
  .dx-avatar__frame, .dx-avatar__ring {
@@ -0,0 +1,7 @@
1
+ dx-ref-tag {
2
+ display: contents;
3
+ }
4
+
5
+ .dx-ref-tag {
6
+ @apply inline cursor-pointer pli-1 plb-0.5 border border-separator rounded-sm
7
+ }
@@ -0,0 +1,79 @@
1
+ //
2
+ // Copyright 2025 DXOS.org
3
+ //
4
+
5
+ import { html, LitElement } from 'lit';
6
+ import { customElement, property, state } from 'lit/decorators.js';
7
+
8
+ import { makeId } from '@dxos/react-hooks';
9
+
10
+ export class DxRefTagActivate extends Event {
11
+ public readonly ref: string;
12
+ public readonly label: string;
13
+ public readonly trigger: HTMLButtonElement;
14
+ constructor(props: { ref: string; label: string; trigger: HTMLButtonElement }) {
15
+ super('dx-ref-tag-activate');
16
+ this.ref = props.ref;
17
+ this.label = props.label;
18
+ this.trigger = props.trigger;
19
+ }
20
+ }
21
+
22
+ @customElement('dx-ref-tag')
23
+ export class DxRefTag extends LitElement {
24
+ @property({ type: String })
25
+ ref: string = makeId('dx-ref-tag');
26
+
27
+ @property({ type: String })
28
+ label: string = 'never';
29
+
30
+ @property({ type: String })
31
+ rootClassName: string | undefined = undefined;
32
+
33
+ @property({ type: Number })
34
+ hoverDelay: number = 400;
35
+
36
+ @state()
37
+ private hoverTimer: number | null = null;
38
+
39
+ private handleActivate(event: { type: string }) {
40
+ this.dispatchEvent(
41
+ new DxRefTagActivate({ ref: this.ref, label: this.label, trigger: this.querySelector('[data-trigger]')! }),
42
+ );
43
+ }
44
+
45
+ private handlePointerEnter() {
46
+ if (this.hoverTimer !== null) {
47
+ window.clearTimeout(this.hoverTimer);
48
+ }
49
+ this.hoverTimer = window.setTimeout(() => {
50
+ this.handleActivate({ type: 'hover-linger' });
51
+ this.hoverTimer = null;
52
+ }, this.hoverDelay);
53
+ }
54
+
55
+ private handlePointerLeave() {
56
+ if (this.hoverTimer !== null) {
57
+ window.clearTimeout(this.hoverTimer);
58
+ this.hoverTimer = null;
59
+ }
60
+ }
61
+
62
+ override render() {
63
+ const className = `dx-focus-ring dx-ref-tag${this.rootClassName ? ` ${this.rootClassName}` : ''}`;
64
+ return html`<span
65
+ tabindex="0"
66
+ data-trigger="true"
67
+ class=${className}
68
+ id=${this.id}
69
+ @click=${this.handleActivate}
70
+ @pointerenter=${this.handlePointerEnter}
71
+ @pointerleave=${this.handlePointerLeave}
72
+ >${this.label}</span
73
+ >`;
74
+ }
75
+
76
+ override createRenderRoot() {
77
+ return this;
78
+ }
79
+ }
@@ -0,0 +1,5 @@
1
+ //
2
+ // Copyright 2025 DXOS.org
3
+ //
4
+
5
+ export * from './dx-ref-tag';
package/src/index.ts CHANGED
@@ -4,6 +4,7 @@
4
4
 
5
5
  export * from './dx-avatar';
6
6
  export * from './dx-tag-picker';
7
+ export * from './dx-ref-tag';
7
8
  export * from './dx-icon';
8
9
 
9
10
  export { createComponent, type EventName } from '@lit/react';