winduum 2.2.8 → 2.2.9

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/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "winduum",
3
- "version": "2.2.8",
3
+ "version": "2.2.9",
4
4
  "type": "module",
5
5
  "types": "types/index.d.ts",
6
6
  "main": "plugin/index.cjs",
@@ -26,7 +26,7 @@
26
26
  "@vitejs/plugin-vue": "^6.0.0",
27
27
  "autoprefixer": "^10.4.21",
28
28
  "dts-buddy": "^0.6.2",
29
- "eslint": "^9.30.1",
29
+ "eslint": "^9.31.0",
30
30
  "fast-glob": "^3.3.3",
31
31
  "neostandard": "^0.12.2",
32
32
  "postcss": "^8.5.6",
@@ -39,7 +39,7 @@
39
39
  "tailwindcss": "^4.1.11",
40
40
  "tailwindcss-animate": "^1.0.7",
41
41
  "typescript": "^5",
42
- "vite": "^7.0.3",
42
+ "vite": "^7.0.4",
43
43
  "vue": "^3.5.17"
44
44
  },
45
45
  "files": [
@@ -11,4 +11,6 @@ export interface ScrollDrawerOptions {
11
11
  export function showDrawer(element: HTMLElement | Element, distance?: number, direction?: 'left' | 'top'): void
12
12
  export function closeDrawer(element: HTMLElement | Element, distance?: number, direction?: 'left' | 'top'): void
13
13
  export function scrollInitDrawer(element: HTMLElement | Element, distance?: number, direction?: 'left' | 'top'): void
14
+ export function toggleDrawerAttributes(element: HTMLDialogElement | Element, state?: 'open' | 'close', snapClass?: string): void
15
+ export function scrollDrawerState(scrollState: number, scrollDirection: number): boolean
14
16
  export function scrollDrawer(element: HTMLDialogElement | Element, options?: ScrollDrawerOptions): void
@@ -31,6 +31,27 @@ export const scrollInitDrawer = async (element, distance = element.scrollWidth,
31
31
  await nextRepaint()
32
32
  }
33
33
 
34
+ /**
35
+ * @param {HTMLElement | Element} element
36
+ * @param {'open' | 'close'} state
37
+ * @param {string} snapClass
38
+ * @returns void
39
+ */
40
+ export const toggleDrawerAttributes = (element, state = 'open', snapClass) => {
41
+ element.classList[state === 'open' ? 'add' : 'remove'](...snapClass.split(/\s/))
42
+ element.inert = state === 'close'
43
+ element.dispatchEvent(new CustomEvent(`x-drawer:${state}`))
44
+ }
45
+
46
+ /**
47
+ * @param {number} scrollState
48
+ * @param {number} scrollDirection
49
+ * @returns boolean
50
+ */
51
+ export const scrollDrawerState = (scrollState, scrollDirection) => {
52
+ return scrollState ? Math.ceil(scrollDirection) >= scrollState : Math.floor(scrollDirection) <= scrollState
53
+ }
54
+
34
55
  /**
35
56
  * @param {HTMLDialogElement | Element} element
36
57
  * @param {import("./").ScrollDrawerOptions} options
@@ -53,18 +74,12 @@ export const scrollDrawer = (element, options = {}) => {
53
74
  `${Math.min(Math.abs((options.scrollDirection / options.scrollSize) - options.opacityRatio), 1)}`
54
75
  )
55
76
 
56
- if (options.scrollDirection === options.scrollOpen) {
57
- element.classList.add(...options.snapClass.split(/\s/))
58
- element.inert = false
59
- element.dispatchEvent(new CustomEvent('x-drawer:open'))
77
+ if (scrollDrawerState(options.scrollOpen, options.scrollDirection)) {
78
+ toggleDrawerAttributes(element, 'open', options.snapClass)
60
79
  }
61
80
 
62
- const closeDirection = options.scrollClose ? options.scrollDirection >= options.scrollClose : options.scrollDirection <= options.scrollClose
63
-
64
- if (closeDirection && !element.inert) {
65
- element.classList.remove(...options.snapClass.split(/\s/))
66
- element.inert = true
81
+ if (scrollDrawerState(options.scrollClose, options.scrollDirection) && !element.inert) {
82
+ toggleDrawerAttributes(element, 'close', options.snapClass)
67
83
  element.close && element.close()
68
- element.dispatchEvent(new CustomEvent('x-drawer:close'))
69
84
  }
70
85
  }
package/types/index.d.ts CHANGED
@@ -131,6 +131,8 @@ declare module 'winduum/src/components/drawer' {
131
131
  export function showDrawer(element: HTMLElement | Element, distance?: number, direction?: 'left' | 'top'): void
132
132
  export function closeDrawer(element: HTMLElement | Element, distance?: number, direction?: 'left' | 'top'): void
133
133
  export function scrollInitDrawer(element: HTMLElement | Element, distance?: number, direction?: 'left' | 'top'): void
134
+ export function toggleDrawerAttributes(element: HTMLDialogElement | Element, state?: 'open' | 'close', snapClass?: string): void
135
+ export function scrollDrawerState(scrollState: number, scrollDirection: number): boolean
134
136
  export function scrollDrawer(element: HTMLDialogElement | Element, options?: ScrollDrawerOptions): void
135
137
 
136
138
  export {};
@@ -34,6 +34,8 @@
34
34
  "showDrawer",
35
35
  "closeDrawer",
36
36
  "scrollInitDrawer",
37
+ "toggleDrawerAttributes",
38
+ "scrollDrawerState",
37
39
  "scrollDrawer",
38
40
  "ValidateFormOptions",
39
41
  "ValidateFieldOptions",
@@ -93,6 +95,6 @@
93
95
  null,
94
96
  null
95
97
  ],
96
- "mappings": ";;kBAEiBA,aAAaA;;;;;;;;;;;;;;;;;;;;cAoBjBC,aAAaA;;yBAEFC,YAAYA;;;;;;kBCxBnBC,sBAAsBA;;;;;;;;kBAQtBC,yBAAyBA;;;;;;kBAMzBC,qBAAqBA;;;;;;;;kBAQrBC,uBAAuBA;;;;;kBAKvBC,mBAAmBA;;;;iBAIpBC,UAAUA;iBACVC,UAAUA;iBACVC,QAAQA;iBACRC,YAAYA;iBACZC,eAAeA;iBACfC,cAAcA;iBACdC,kBAAkBA;iBAClBC,gBAAgBA;iBAChBC,YAAYA;;;;;;kBCvCXC,kBAAkBA;;;;;iBAKnBC,WAAWA;iBACXC,eAAeA;iBACfC,YAAYA;;;;;;kBCPXC,cAAcA;;;;;cAKlBC,cAAcA;iBACXC,WAAWA;iBACXC,YAAYA;iBACZC,aAAaA;;;;;;kBCRZJ,cAAcA;;;;;;;;;;cAUlBC,cAAcA;iBACXI,UAAUA;iBACVC,WAAWA;;;;;;kBCZVC,mBAAmBA;;;;;;;;;;iBAUpBC,UAAUA;iBACVC,WAAWA;iBACXC,gBAAgBA;iBAChBC,YAAYA;;;;;;kBCbXC,mBAAmBA;;;;;;;;kBAQnBC,oBAAoBA;;;;;;;;;;;;;;;;;;;iBAmBrBC,YAAYA;iBACZC,aAAaA;;;;;;WC5BnBC,gBAAgBA;;;;;iBAKVC,SAASA;;;;;;kBCLRC,gBAAgBA;;;;;;;kBAOhBC,iBAAiBA;;;;;;iBAMlBC,UAAUA;iBACVC,SAASA;;;;;;kBCdRF,iBAAiBA;;;;;iBAKlBG,YAAYA;;;;;;;kBCHXC,kBAAkBA;;;;;;;;;;;kBAWlBC,kBAAkBA;;;;iBAInBC,WAAWA;iBACXC,WAAWA;iBACXC,aAAaA;;;;;;kBCnBZC,uBAAuBA;;;;;;;kBAOvBC,eAAeA;;;;;kBAKfC,gBAAgBA;;;;;iBAKjBC,gBAAgBA;iBAChBC,QAAQA;iBACRC,cAAcA;;;;;;kBCnBbC,eAAeA;;;;;;iBAMhBC,UAAUA;;;;;;iBCNVC,UAAUA",
98
+ "mappings": ";;kBAEiBA,aAAaA;;;;;;;;;;;;;;;;;;;;cAoBjBC,aAAaA;;yBAEFC,YAAYA;;;;;;kBCxBnBC,sBAAsBA;;;;;;;;kBAQtBC,yBAAyBA;;;;;;kBAMzBC,qBAAqBA;;;;;;;;kBAQrBC,uBAAuBA;;;;;kBAKvBC,mBAAmBA;;;;iBAIpBC,UAAUA;iBACVC,UAAUA;iBACVC,QAAQA;iBACRC,YAAYA;iBACZC,eAAeA;iBACfC,cAAcA;iBACdC,kBAAkBA;iBAClBC,gBAAgBA;iBAChBC,YAAYA;;;;;;kBCvCXC,kBAAkBA;;;;;iBAKnBC,WAAWA;iBACXC,eAAeA;iBACfC,YAAYA;;;;;;kBCPXC,cAAcA;;;;;cAKlBC,cAAcA;iBACXC,WAAWA;iBACXC,YAAYA;iBACZC,aAAaA;;;;;;kBCRZJ,cAAcA;;;;;;;;;;cAUlBC,cAAcA;iBACXI,UAAUA;iBACVC,WAAWA;;;;;;kBCZVC,mBAAmBA;;;;;;;;;;iBAUpBC,UAAUA;iBACVC,WAAWA;iBACXC,gBAAgBA;iBAChBC,sBAAsBA;iBACtBC,iBAAiBA;iBACjBC,YAAYA;;;;;;kBCfXC,mBAAmBA;;;;;;;;kBAQnBC,oBAAoBA;;;;;;;;;;;;;;;;;;;iBAmBrBC,YAAYA;iBACZC,aAAaA;;;;;;WC5BnBC,gBAAgBA;;;;;iBAKVC,SAASA;;;;;;kBCLRC,gBAAgBA;;;;;;;kBAOhBC,iBAAiBA;;;;;;iBAMlBC,UAAUA;iBACVC,SAASA;;;;;;kBCdRF,iBAAiBA;;;;;iBAKlBG,YAAYA;;;;;;;kBCHXC,kBAAkBA;;;;;;;;;;;kBAWlBC,kBAAkBA;;;;iBAInBC,WAAWA;iBACXC,WAAWA;iBACXC,aAAaA;;;;;;kBCnBZC,uBAAuBA;;;;;;;kBAOvBC,eAAeA;;;;;kBAKfC,gBAAgBA;;;;;iBAKjBC,gBAAgBA;iBAChBC,QAAQA;iBACRC,cAAcA;;;;;;kBCnBbC,eAAeA;;;;;;iBAMhBC,UAAUA;;;;;;iBCNVC,UAAUA",
97
99
  "ignoreList": []
98
100
  }