@duskmoon-dev/el-popover 0.4.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/dist/cjs/index.js +467 -0
- package/dist/cjs/index.js.map +11 -0
- package/dist/cjs/register.js +470 -0
- package/dist/cjs/register.js.map +12 -0
- package/dist/esm/index.js +435 -0
- package/dist/esm/index.js.map +11 -0
- package/dist/esm/register.js +434 -0
- package/dist/esm/register.js.map +12 -0
- package/dist/tsconfig.tsbuildinfo +1 -0
- package/dist/types/el-dm-popover.d.ts +106 -0
- package/dist/types/el-dm-popover.d.ts.map +1 -0
- package/dist/types/index.d.ts +19 -0
- package/dist/types/index.d.ts.map +1 -0
- package/dist/types/register.d.ts +2 -0
- package/dist/types/register.d.ts.map +1 -0
- package/package.json +62 -0
|
@@ -0,0 +1,106 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* DuskMoon Popover Element
|
|
3
|
+
*
|
|
4
|
+
* A contextual overlay/popup component that appears relative to a trigger element.
|
|
5
|
+
* Supports multiple trigger modes, placements, and auto-flip when near viewport edges.
|
|
6
|
+
*
|
|
7
|
+
* @element el-dm-popover
|
|
8
|
+
*
|
|
9
|
+
* @attr {boolean} open - Whether the popover is visible
|
|
10
|
+
* @attr {string} trigger - Trigger mode: click, hover, focus, manual
|
|
11
|
+
* @attr {string} placement - Popover position relative to trigger
|
|
12
|
+
* @attr {number} offset - Distance from trigger element in pixels
|
|
13
|
+
* @attr {boolean} arrow - Whether to show arrow pointing to trigger
|
|
14
|
+
*
|
|
15
|
+
* @slot trigger - The element that triggers the popover
|
|
16
|
+
* @slot - Default slot for popover content
|
|
17
|
+
*
|
|
18
|
+
* @fires open - Fired when popover opens
|
|
19
|
+
* @fires close - Fired when popover closes
|
|
20
|
+
*
|
|
21
|
+
* @csspart popover - The popover container
|
|
22
|
+
* @csspart content - The popover content area
|
|
23
|
+
* @csspart arrow - The popover arrow
|
|
24
|
+
*/
|
|
25
|
+
import { BaseElement } from '@duskmoon-dev/el-core';
|
|
26
|
+
export type PopoverPlacement = 'top' | 'top-start' | 'top-end' | 'bottom' | 'bottom-start' | 'bottom-end' | 'left' | 'left-start' | 'left-end' | 'right' | 'right-start' | 'right-end';
|
|
27
|
+
export type PopoverTrigger = 'click' | 'hover' | 'focus' | 'manual';
|
|
28
|
+
export declare class ElDmPopover extends BaseElement {
|
|
29
|
+
static properties: {
|
|
30
|
+
open: {
|
|
31
|
+
type: BooleanConstructor;
|
|
32
|
+
reflect: boolean;
|
|
33
|
+
default: boolean;
|
|
34
|
+
};
|
|
35
|
+
trigger: {
|
|
36
|
+
type: StringConstructor;
|
|
37
|
+
reflect: boolean;
|
|
38
|
+
default: string;
|
|
39
|
+
};
|
|
40
|
+
placement: {
|
|
41
|
+
type: StringConstructor;
|
|
42
|
+
reflect: boolean;
|
|
43
|
+
default: string;
|
|
44
|
+
};
|
|
45
|
+
offset: {
|
|
46
|
+
type: NumberConstructor;
|
|
47
|
+
reflect: boolean;
|
|
48
|
+
default: number;
|
|
49
|
+
};
|
|
50
|
+
arrow: {
|
|
51
|
+
type: BooleanConstructor;
|
|
52
|
+
reflect: boolean;
|
|
53
|
+
default: boolean;
|
|
54
|
+
};
|
|
55
|
+
};
|
|
56
|
+
open: boolean;
|
|
57
|
+
trigger: PopoverTrigger;
|
|
58
|
+
placement: PopoverPlacement;
|
|
59
|
+
offset: number;
|
|
60
|
+
arrow: boolean;
|
|
61
|
+
private _boundHandleClickOutside;
|
|
62
|
+
private _boundHandleKeyDown;
|
|
63
|
+
private _boundHandleScroll;
|
|
64
|
+
private _boundUpdatePosition;
|
|
65
|
+
private _hoverTimeout;
|
|
66
|
+
private _currentPlacement;
|
|
67
|
+
constructor();
|
|
68
|
+
connectedCallback(): void;
|
|
69
|
+
disconnectedCallback(): void;
|
|
70
|
+
/**
|
|
71
|
+
* Show the popover
|
|
72
|
+
*/
|
|
73
|
+
show(): void;
|
|
74
|
+
/**
|
|
75
|
+
* Hide the popover
|
|
76
|
+
*/
|
|
77
|
+
hide(): void;
|
|
78
|
+
/**
|
|
79
|
+
* Toggle the popover visibility
|
|
80
|
+
*/
|
|
81
|
+
toggle(): void;
|
|
82
|
+
private _setVisible;
|
|
83
|
+
private _setupTriggerListeners;
|
|
84
|
+
private _attachTriggerEvents;
|
|
85
|
+
private _detachTriggerEvents;
|
|
86
|
+
private _removeTriggerListeners;
|
|
87
|
+
private _getTriggerElement;
|
|
88
|
+
private _handleTriggerClick;
|
|
89
|
+
private _handleTriggerMouseEnter;
|
|
90
|
+
private _handleTriggerMouseLeave;
|
|
91
|
+
private _handlePopoverMouseEnter;
|
|
92
|
+
private _handlePopoverMouseLeave;
|
|
93
|
+
private _handleTriggerFocus;
|
|
94
|
+
private _handleTriggerBlur;
|
|
95
|
+
private _addGlobalListeners;
|
|
96
|
+
private _removeGlobalListeners;
|
|
97
|
+
private _handleClickOutside;
|
|
98
|
+
private _handleKeyDown;
|
|
99
|
+
private _handleScroll;
|
|
100
|
+
private _updatePosition;
|
|
101
|
+
private _getEffectivePlacement;
|
|
102
|
+
private _calculatePosition;
|
|
103
|
+
update(): void;
|
|
104
|
+
render(): string;
|
|
105
|
+
}
|
|
106
|
+
//# sourceMappingURL=el-dm-popover.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"el-dm-popover.d.ts","sourceRoot":"","sources":["../../src/el-dm-popover.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;GAuBG;AAEH,OAAO,EAAE,WAAW,EAAO,MAAM,uBAAuB,CAAC;AAEzD,MAAM,MAAM,gBAAgB,GACxB,KAAK,GACL,WAAW,GACX,SAAS,GACT,QAAQ,GACR,cAAc,GACd,YAAY,GACZ,MAAM,GACN,YAAY,GACZ,UAAU,GACV,OAAO,GACP,aAAa,GACb,WAAW,CAAC;AAEhB,MAAM,MAAM,cAAc,GAAG,OAAO,GAAG,OAAO,GAAG,OAAO,GAAG,QAAQ,CAAC;AA4HpE,qBAAa,WAAY,SAAQ,WAAW;IAC1C,MAAM,CAAC,UAAU;;;;;;;;;;;;;;;;;;;;;;;;;;MAMf;IAEM,IAAI,EAAE,OAAO,CAAC;IACd,OAAO,EAAE,cAAc,CAAC;IACxB,SAAS,EAAE,gBAAgB,CAAC;IAC5B,MAAM,EAAE,MAAM,CAAC;IACf,KAAK,EAAE,OAAO,CAAC;IAEvB,OAAO,CAAC,wBAAwB,CAA0B;IAC1D,OAAO,CAAC,mBAAmB,CAA6B;IACxD,OAAO,CAAC,kBAAkB,CAAa;IACvC,OAAO,CAAC,oBAAoB,CAAa;IACzC,OAAO,CAAC,aAAa,CAAuB;IAC5C,OAAO,CAAC,iBAAiB,CAA8B;;IAWvD,iBAAiB,IAAI,IAAI;IAKzB,oBAAoB,IAAI,IAAI;IAM5B;;OAEG;IACH,IAAI,IAAI,IAAI;IAUZ;;OAEG;IACH,IAAI,IAAI,IAAI;IAQZ;;OAEG;IACH,MAAM,IAAI,IAAI;IAQd,OAAO,CAAC,WAAW;IAOnB,OAAO,CAAC,sBAAsB;IAe9B,OAAO,CAAC,oBAAoB;IAqB5B,OAAO,CAAC,oBAAoB;IAU5B,OAAO,CAAC,uBAAuB;IAO/B,OAAO,CAAC,kBAAkB;IAS1B,OAAO,CAAC,mBAAmB,CAEzB;IAEF,OAAO,CAAC,wBAAwB,CAM9B;IAEF,OAAO,CAAC,wBAAwB,CAI9B;IAEF,OAAO,CAAC,wBAAwB,CAK9B;IAEF,OAAO,CAAC,wBAAwB,CAI9B;IAEF,OAAO,CAAC,mBAAmB,CAEzB;IAEF,OAAO,CAAC,kBAAkB,CAOxB;IAEF,OAAO,CAAC,mBAAmB;IAO3B,OAAO,CAAC,sBAAsB;IAO9B,OAAO,CAAC,mBAAmB;IAS3B,OAAO,CAAC,cAAc;IAStB,OAAO,CAAC,aAAa;IAMrB,OAAO,CAAC,eAAe;IA8BvB,OAAO,CAAC,sBAAsB;IA2C9B,OAAO,CAAC,kBAAkB;IAiE1B,MAAM,IAAI,IAAI;IAWd,MAAM,IAAI,MAAM;CAmBjB"}
|
|
@@ -0,0 +1,19 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* @duskmoon-dev/el-popover
|
|
3
|
+
*
|
|
4
|
+
* DuskMoon Popover custom element
|
|
5
|
+
*/
|
|
6
|
+
import { ElDmPopover } from './el-dm-popover.js';
|
|
7
|
+
export { ElDmPopover };
|
|
8
|
+
export type { PopoverPlacement, PopoverTrigger } from './el-dm-popover.js';
|
|
9
|
+
/**
|
|
10
|
+
* Register the el-dm-popover custom element
|
|
11
|
+
*
|
|
12
|
+
* @example
|
|
13
|
+
* ```ts
|
|
14
|
+
* import { register } from '@duskmoon-dev/el-popover';
|
|
15
|
+
* register();
|
|
16
|
+
* ```
|
|
17
|
+
*/
|
|
18
|
+
export declare function register(): void;
|
|
19
|
+
//# sourceMappingURL=index.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/index.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAEH,OAAO,EAAE,WAAW,EAAE,MAAM,oBAAoB,CAAC;AAEjD,OAAO,EAAE,WAAW,EAAE,CAAC;AACvB,YAAY,EAAE,gBAAgB,EAAE,cAAc,EAAE,MAAM,oBAAoB,CAAC;AAE3E;;;;;;;;GAQG;AACH,wBAAgB,QAAQ,IAAI,IAAI,CAI/B"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"register.d.ts","sourceRoot":"","sources":["../../src/register.ts"],"names":[],"mappings":""}
|
package/package.json
ADDED
|
@@ -0,0 +1,62 @@
|
|
|
1
|
+
{
|
|
2
|
+
"name": "@duskmoon-dev/el-popover",
|
|
3
|
+
"version": "0.4.0",
|
|
4
|
+
"type": "module",
|
|
5
|
+
"main": "./dist/cjs/index.js",
|
|
6
|
+
"module": "./dist/esm/index.js",
|
|
7
|
+
"types": "./dist/types/index.d.ts",
|
|
8
|
+
"exports": {
|
|
9
|
+
".": {
|
|
10
|
+
"types": "./dist/types/index.d.ts",
|
|
11
|
+
"import": "./dist/esm/index.js",
|
|
12
|
+
"require": "./dist/cjs/index.js"
|
|
13
|
+
},
|
|
14
|
+
"./register": {
|
|
15
|
+
"types": "./dist/types/register.d.ts",
|
|
16
|
+
"import": "./dist/esm/register.js",
|
|
17
|
+
"require": "./dist/cjs/register.js"
|
|
18
|
+
}
|
|
19
|
+
},
|
|
20
|
+
"files": [
|
|
21
|
+
"dist"
|
|
22
|
+
],
|
|
23
|
+
"scripts": {
|
|
24
|
+
"prebuild": "bun run clean",
|
|
25
|
+
"build": "bun run build:esm && bun run build:cjs && bun run build:types",
|
|
26
|
+
"build:esm": "bun build ./src/index.ts ./src/register.ts --outdir ./dist/esm --format esm --sourcemap --external @duskmoon-dev/el-core --external @duskmoon-dev/core",
|
|
27
|
+
"build:cjs": "bun build ./src/index.ts ./src/register.ts --outdir ./dist/cjs --format cjs --sourcemap --external @duskmoon-dev/el-core --external @duskmoon-dev/core",
|
|
28
|
+
"build:types": "tsc --emitDeclarationOnly --outDir ./dist/types",
|
|
29
|
+
"dev": "bun build ./src/index.ts --outdir ./dist/esm --format esm --sourcemap --external @duskmoon-dev/el-core --watch",
|
|
30
|
+
"clean": "del-cli dist",
|
|
31
|
+
"test": "bun test",
|
|
32
|
+
"typecheck": "tsc --noEmit",
|
|
33
|
+
"format": "prettier --write 'src/**/*.ts' '*.json'",
|
|
34
|
+
"format:check": "prettier --check 'src/**/*.ts' '*.json'",
|
|
35
|
+
"lint": "eslint src",
|
|
36
|
+
"lint:check": "eslint src --max-warnings 0",
|
|
37
|
+
"lint:fix": "eslint src --fix",
|
|
38
|
+
"release": "bun publish",
|
|
39
|
+
"release:dry-run": "bun publish --dry-run"
|
|
40
|
+
},
|
|
41
|
+
"dependencies": {
|
|
42
|
+
"@duskmoon-dev/el-core": "0.3.0"
|
|
43
|
+
},
|
|
44
|
+
"devDependencies": {
|
|
45
|
+
"typescript": "^5.7.2"
|
|
46
|
+
},
|
|
47
|
+
"publishConfig": {
|
|
48
|
+
"access": "public"
|
|
49
|
+
},
|
|
50
|
+
"customElements": "custom-elements.json",
|
|
51
|
+
"keywords": [
|
|
52
|
+
"duskmoon-dev",
|
|
53
|
+
"duskmoon",
|
|
54
|
+
"custom-elements",
|
|
55
|
+
"customelements",
|
|
56
|
+
"web-components",
|
|
57
|
+
"webcomponents",
|
|
58
|
+
"popover",
|
|
59
|
+
"popup",
|
|
60
|
+
"html"
|
|
61
|
+
]
|
|
62
|
+
}
|