@phila/phila-ui-collapse-panel 0.1.1 → 0.2.0-beta.4

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.
@@ -3,36 +3,39 @@ declare function __VLS_template(): {
3
3
  attrs: Partial<{}>;
4
4
  slots: {
5
5
  toggle?(_: {
6
+ "data-toggle"?: undefined;
7
+ onclick?: undefined;
8
+ open: boolean;
9
+ ariaLabel: string;
10
+ ariaExpanded: boolean;
11
+ ariaControls: string;
12
+ } | {
13
+ "data-toggle": string;
14
+ onclick: () => void;
6
15
  open: boolean;
7
16
  ariaLabel: string;
8
17
  ariaExpanded: boolean;
9
18
  ariaControls: string;
10
- onClickToggle: (event?: Event) => void;
11
- onClickOpen: (event?: Event) => void;
12
- focusChange: (e: FocusEvent) => void;
13
- onClick: (event?: Event) => void;
14
19
  }): any;
15
20
  default?(_: {
16
21
  id: string;
17
22
  open: boolean;
18
- onClickToggle: (event?: Event) => void;
19
- focusChange: (e: FocusEvent) => void;
20
23
  hidden: boolean;
21
24
  }): any;
22
25
  };
23
26
  refs: {};
24
- rootEl: HTMLDivElement;
27
+ rootEl: any;
25
28
  };
26
29
  type __VLS_TemplateResult = ReturnType<typeof __VLS_template>;
27
- declare const __VLS_component: import('vue').DefineComponent<CollapsePanelProps, {}, {}, {}, {}, import('vue').ComponentOptionsMixin, import('vue').ComponentOptionsMixin, {}, string, import('vue').PublicProps, Readonly<CollapsePanelProps> & Readonly<{}>, {
28
- group: string;
29
- blurClose: boolean;
30
- openSingle: boolean;
31
- mouseOverToggle: boolean;
32
- outsideClickClose: boolean;
33
- escapeKeyClose: boolean;
34
- toggleAttrs: Partial<import('vue').ButtonHTMLAttributes>;
35
- }, {}, {}, {}, string, import('vue').ComponentProvideOptions, false, {}, HTMLDivElement>;
30
+ declare const __VLS_component: import('vue').DefineComponent<CollapsePanelProps, {}, {}, {}, {}, import('vue').ComponentOptionsMixin, import('vue').ComponentOptionsMixin, {} & {
31
+ escape: () => any;
32
+ }, string, import('vue').PublicProps, Readonly<CollapsePanelProps> & Readonly<{
33
+ onEscape?: (() => any) | undefined;
34
+ }>, {
35
+ id: string;
36
+ blurHide: boolean;
37
+ trapFocus: boolean;
38
+ }, {}, {}, {}, string, import('vue').ComponentProvideOptions, false, {}, any>;
36
39
  declare const _default: __VLS_WithTemplateSlots<typeof __VLS_component, __VLS_TemplateResult["slots"]>;
37
40
  export default _default;
38
41
  type __VLS_WithTemplateSlots<T, S> = T & {
@@ -1 +1 @@
1
- {"version":3,"file":"CollapsePanel.vue.d.ts","sourceRoot":"","sources":["../src/CollapsePanel.vue"],"names":[],"mappings":"AA+DA,OAAO,KAAK,EAAE,kBAAkB,EAAE,MAAM,SAAS,CAAC;AA0BlD,iBAAS,cAAc;WA+CT,OAAO,IAA6B;;;;;;;;;;;YAXtB,GAAG;;;;;;;YACF,GAAG;;;;EAe/B;AAeD,KAAK,oBAAoB,GAAG,UAAU,CAAC,OAAO,cAAc,CAAC,CAAC;AAC9D,QAAA,MAAM,eAAe;;;;;;;;wFAQnB,CAAC;wBACkB,uBAAuB,CAAC,OAAO,eAAe,EAAE,oBAAoB,CAAC,OAAO,CAAC,CAAC;AAAnG,wBAAoG;AAapG,KAAK,uBAAuB,CAAC,CAAC,EAAE,CAAC,IAAI,CAAC,GAAG;IACxC,QAAO;QACN,MAAM,EAAE,CAAC,CAAC;KAEV,CAAA;CACD,CAAC"}
1
+ {"version":3,"file":"CollapsePanel.vue.d.ts","sourceRoot":"","sources":["../src/CollapsePanel.vue"],"names":[],"mappings":"AA8EA,OAAO,KAAK,EAAE,kBAAkB,EAAE,MAAM,SAAS,CAAC;AAoClD,iBAAS,cAAc;WAwET,OAAO,IAA6B;;;;;;;;;;;;;;;;YAXrB,GAAG;;;;;YACF,GAAG;;;;EAehC;AAiBD,KAAK,oBAAoB,GAAG,UAAU,CAAC,OAAO,cAAc,CAAC,CAAC;AAC9D,QAAA,MAAM,eAAe;;;;;;;;6EASnB,CAAC;wBACkB,uBAAuB,CAAC,OAAO,eAAe,EAAE,oBAAoB,CAAC,OAAO,CAAC,CAAC;AAAnG,wBAAoG;AAapG,KAAK,uBAAuB,CAAC,CAAC,EAAE,CAAC,IAAI,CAAC,GAAG;IACxC,QAAO;QACN,MAAM,EAAE,CAAC,CAAC;KAEV,CAAA;CACD,CAAC"}
package/dist/index.d.ts CHANGED
@@ -1,4 +1,6 @@
1
- import { BaseProps, UseCollapseProps } from '@phila/phila-ui-core';
1
+ import { BaseProps, UseVisibilityProps } from '@phila/phila-ui-core';
2
2
  export { default as CollapsePanel } from './CollapsePanel.vue';
3
- export type CollapsePanelProps = BaseProps & UseCollapseProps;
3
+ export type CollapsePanelProps = BaseProps & UseVisibilityProps & {
4
+ trapFocus?: boolean;
5
+ };
4
6
  //# sourceMappingURL=index.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,sBAAsB,CAAC;AACtD,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,sBAAsB,CAAC;AAC7D,OAAO,EAAE,OAAO,IAAI,aAAa,EAAE,MAAM,qBAAqB,CAAC;AAE/D,MAAM,MAAM,kBAAkB,GAAG,SAAS,GAAG,gBAAgB,CAAC"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,sBAAsB,CAAC;AACtD,OAAO,KAAK,EAAE,kBAAkB,EAAE,MAAM,sBAAsB,CAAC;AAC/D,OAAO,EAAE,OAAO,IAAI,aAAa,EAAE,MAAM,qBAAqB,CAAC;AAE/D,MAAM,MAAM,kBAAkB,GAAG,SAAS,GACxC,kBAAkB,GAAG;IACnB,SAAS,CAAC,EAAE,OAAO,CAAC;CACrB,CAAC"}
package/dist/index.js CHANGED
@@ -1 +1 @@
1
- "use strict";Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});const e=require("vue"),g=require("@phila/phila-ui-core"),C=["data-toggle","aria-label","aria-expanded","aria-controls"],c=e.defineComponent({__name:"CollapsePanel",props:{className:{},id:{},group:{default:void 0},blurClose:{type:Boolean,default:!1},openSingle:{type:Boolean,default:!1},mouseOverToggle:{type:Boolean,default:!1},outsideClickClose:{type:Boolean,default:!1},escapeKeyClose:{type:Boolean,default:!1},toggleAttrs:{default:void 0}},setup(a){const u=a,{isCollapsed:f,onMouseEnter:s,onMouseLeave:i,onClickToggle:t,onClickOpen:p,focusChange:r}=g.useCollapse(u),l=e.computed(()=>f(u.id));return(d,o)=>(e.openBlock(),e.createElementBlock("div",{onMouseenter:o[1]||(o[1]=(...n)=>e.unref(s)&&e.unref(s)(...n)),onMouseleave:o[2]||(o[2]=(...n)=>e.unref(i)&&e.unref(i)(...n)),onFocusout:o[3]||(o[3]=(...n)=>e.unref(r)&&e.unref(r)(...n))},[e.renderSlot(d.$slots,"toggle",e.normalizeProps(e.guardReactiveProps({open:l.value,ariaLabel:l.value?"Close panel":"Open panel",ariaExpanded:l.value,ariaControls:a.id,onClickToggle:e.unref(t),onClickOpen:e.unref(p),focusChange:e.unref(r),onClick:e.unref(t)})),()=>[e.createElementVNode("button",e.mergeProps({"data-toggle":a.id,"aria-label":l.value?"Close panel":"Open panel","aria-expanded":l.value,"aria-controls":a.id},a.toggleAttrs,{onClick:o[0]||(o[0]=e.withModifiers((...n)=>e.unref(t)&&e.unref(t)(...n),["prevent"]))}),null,16,C)]),e.renderSlot(d.$slots,"default",e.normalizeProps(e.guardReactiveProps({id:a.id,open:l.value,onClickToggle:e.unref(t),focusChange:e.unref(r),hidden:!l.value})))],32))}});exports.CollapsePanel=c;
1
+ "use strict";Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});const e=require("vue"),n=require("@phila/phila-ui-core"),m=["data-toggle","aria-label","aria-expanded","aria-controls"],y=e.defineComponent({__name:"CollapsePanel",props:{className:{},id:{default:"collapse-panel"},group:{},blurHide:{type:Boolean,default:!1},showSingle:{type:Boolean},mouseOverToggle:{type:Boolean},outsideClickHide:{type:Boolean},escapeKeyHide:{type:Boolean},visibleOnMount:{type:Boolean},trapFocus:{type:Boolean,default:!1}},emits:["escape"],setup(i,{emit:r}){const o=i,u=e.useAttrs(),p=r,{isVisible:d,onMouseEnter:c,onMouseLeave:g,toggleProps:s}=n.useVisibility({id:o.id,group:o.group,outsideClickHide:o.outsideClickHide,escapeKeyHide:o.escapeKeyHide,blurHide:o.blurHide,mouseOverToggle:o.mouseOverToggle,showSingle:o.showSingle}),v=()=>{o.trapFocus||p("escape")},a=e.computed(()=>d(o.id));return(t,l)=>(e.openBlock(),e.createBlock(e.unref(n.FocusTrap),e.mergeProps({"allow-escape":!i.trapFocus},e.unref(u),{onEscape:v,onMouseenter:l[0]||(l[0]=f=>e.unref(c)(o.id)),onMouseleave:l[1]||(l[1]=f=>e.unref(g)(o.id))}),{default:e.withCtx(()=>[e.renderSlot(t.$slots,"toggle",e.normalizeProps(e.guardReactiveProps({open:a.value,ariaLabel:a.value?"Close panel":"Open panel",ariaExpanded:a.value,ariaControls:`visibility-${o.id}`,...e.unref(s)})),()=>[e.createElementVNode("button",e.mergeProps({"data-toggle":o.id,"aria-label":a.value?"Close panel":"Open panel","aria-expanded":a.value,"aria-controls":`visibility-${o.id}`},{...e.unref(s),...t.toggleAttrs}),null,16,m)]),e.renderSlot(t.$slots,"default",e.normalizeProps(e.guardReactiveProps({id:`visibility-${o.id}`,open:a.value,hidden:!a.value})))]),_:3},16,["allow-escape"]))}});exports.CollapsePanel=y;
package/dist/index.mjs CHANGED
@@ -1,55 +1,60 @@
1
- import { defineComponent as m, computed as c, createElementBlock as k, openBlock as B, unref as e, renderSlot as p, normalizeProps as g, guardReactiveProps as f, createElementVNode as y, mergeProps as b, withModifiers as M } from "vue";
2
- import { useCollapse as O } from "@phila/phila-ui-core";
3
- const P = ["data-toggle", "aria-label", "aria-expanded", "aria-controls"], x = /* @__PURE__ */ m({
1
+ import { defineComponent as C, useAttrs as B, computed as H, createBlock as $, openBlock as w, unref as a, mergeProps as n, withCtx as O, renderSlot as r, normalizeProps as p, guardReactiveProps as d, createElementVNode as P } from "vue";
2
+ import { useVisibility as k, FocusTrap as E } from "@phila/phila-ui-core";
3
+ const F = ["data-toggle", "aria-label", "aria-expanded", "aria-controls"], S = /* @__PURE__ */ C({
4
4
  __name: "CollapsePanel",
5
5
  props: {
6
6
  className: {},
7
- id: {},
8
- group: { default: void 0 },
9
- blurClose: { type: Boolean, default: !1 },
10
- openSingle: { type: Boolean, default: !1 },
11
- mouseOverToggle: { type: Boolean, default: !1 },
12
- outsideClickClose: { type: Boolean, default: !1 },
13
- escapeKeyClose: { type: Boolean, default: !1 },
14
- toggleAttrs: { default: void 0 }
7
+ id: { default: "collapse-panel" },
8
+ group: {},
9
+ blurHide: { type: Boolean, default: !1 },
10
+ showSingle: { type: Boolean },
11
+ mouseOverToggle: { type: Boolean },
12
+ outsideClickHide: { type: Boolean },
13
+ escapeKeyHide: { type: Boolean },
14
+ visibleOnMount: { type: Boolean },
15
+ trapFocus: { type: Boolean, default: !1 }
15
16
  },
16
- setup(n) {
17
- const i = n, { isCollapsed: C, onMouseEnter: r, onMouseLeave: d, onClickToggle: t, onClickOpen: v, focusChange: s } = O(i), l = c(() => C(i.id));
18
- return (u, o) => (B(), k("div", {
19
- onMouseenter: o[1] || (o[1] = //@ts-ignore
20
- (...a) => e(r) && e(r)(...a)),
21
- onMouseleave: o[2] || (o[2] = //@ts-ignore
22
- (...a) => e(d) && e(d)(...a)),
23
- onFocusout: o[3] || (o[3] = //@ts-ignore
24
- (...a) => e(s) && e(s)(...a))
25
- }, [
26
- p(u.$slots, "toggle", g(f({
27
- open: l.value,
28
- ariaLabel: l.value ? "Close panel" : "Open panel",
29
- ariaExpanded: l.value,
30
- ariaControls: n.id,
31
- onClickToggle: e(t),
32
- onClickOpen: e(v),
33
- focusChange: e(s),
34
- onClick: e(t)
35
- })), () => [
36
- y("button", b({
37
- "data-toggle": n.id,
38
- "aria-label": l.value ? "Close panel" : "Open panel",
39
- "aria-expanded": l.value,
40
- "aria-controls": n.id
41
- }, n.toggleAttrs, {
42
- onClick: o[0] || (o[0] = M(
43
- //@ts-ignore
44
- (...a) => e(t) && e(t)(...a),
45
- ["prevent"]
46
- ))
47
- }), null, 16, P)
17
+ emits: ["escape"],
18
+ setup(t, { emit: u }) {
19
+ const e = t, c = B(), g = u, { isVisible: v, onMouseEnter: m, onMouseLeave: y, toggleProps: i } = k({
20
+ id: e.id,
21
+ group: e.group,
22
+ outsideClickHide: e.outsideClickHide,
23
+ escapeKeyHide: e.escapeKeyHide,
24
+ blurHide: e.blurHide,
25
+ mouseOverToggle: e.mouseOverToggle,
26
+ showSingle: e.showSingle
27
+ }), b = () => {
28
+ e.trapFocus || g("escape");
29
+ }, o = H(() => v(e.id));
30
+ return (s, l) => (w(), $(a(E), n({
31
+ "allow-escape": !t.trapFocus
32
+ }, a(c), {
33
+ onEscape: b,
34
+ onMouseenter: l[0] || (l[0] = (f) => a(m)(e.id)),
35
+ onMouseleave: l[1] || (l[1] = (f) => a(y)(e.id))
36
+ }), {
37
+ default: O(() => [
38
+ r(s.$slots, "toggle", p(d({
39
+ open: o.value,
40
+ ariaLabel: o.value ? "Close panel" : "Open panel",
41
+ ariaExpanded: o.value,
42
+ ariaControls: `visibility-${e.id}`,
43
+ ...a(i)
44
+ })), () => [
45
+ P("button", n({
46
+ "data-toggle": e.id,
47
+ "aria-label": o.value ? "Close panel" : "Open panel",
48
+ "aria-expanded": o.value,
49
+ "aria-controls": `visibility-${e.id}`
50
+ }, { ...a(i), ...s.toggleAttrs }), null, 16, F)
51
+ ]),
52
+ r(s.$slots, "default", p(d({ id: `visibility-${e.id}`, open: o.value, hidden: !o.value })))
48
53
  ]),
49
- p(u.$slots, "default", g(f({ id: n.id, open: l.value, onClickToggle: e(t), focusChange: e(s), hidden: !l.value })))
50
- ], 32));
54
+ _: 3
55
+ }, 16, ["allow-escape"]));
51
56
  }
52
57
  });
53
58
  export {
54
- x as CollapsePanel
59
+ S as CollapsePanel
55
60
  };
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@phila/phila-ui-collapse-panel",
3
- "version": "0.1.1",
3
+ "version": "0.2.0-beta.4",
4
4
  "type": "module",
5
5
  "description": "Customizable component for toggling visibility of content. ",
6
6
  "main": "./dist/index.js",
@@ -28,7 +28,7 @@
28
28
  "vue": "^3.0.0"
29
29
  },
30
30
  "dependencies": {
31
- "@phila/phila-ui-core": "2.4.0"
31
+ "@phila/phila-ui-core": "3.0.0-beta.4"
32
32
  },
33
33
  "devDependencies": {
34
34
  "@types/node": "^24.0.0",