@trendyol/baklava 2.1.0-beta.2 → 2.1.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.
package/README.md CHANGED
@@ -2,8 +2,23 @@
2
2
 
3
3
  <h1 align="center">Baklava Design System</h1>
4
4
 
5
-
6
- [![npm package stable](https://img.shields.io/npm/v/@trendyol/baklava.svg)](https://www.npmjs.com/package/@trendyol/baklava) [![npm package beta](https://img.shields.io/npm/v/@trendyol/baklava/beta.svg)](https://www.npmjs.com/package/@trendyol/baklava/v/beta) [![License](https://img.shields.io/github/license/trendyol/baklava)](https://github.com/Trendyol/baklava/blob/next/LICENSE) [![jsDelivr hits (npm scoped)](https://img.shields.io/jsdelivr/npm/hm/@trendyol/baklava)](https://www.jsdelivr.com/package/npm/@trendyol/baklava) [![semantic-release: angular](https://img.shields.io/badge/semantic--release-angular-e10079?logo=semantic-release)](https://github.com/semantic-release/semantic-release)
5
+ <p align="center">
6
+ <a href="https://www.npmjs.com/package/@trendyol/baklava">
7
+ <img src="https://img.shields.io/npm/v/@trendyol/baklava.svg" alt="NPM Package Stable" />
8
+ </a>
9
+ <a href="https://www.npmjs.com/package/@trendyol/baklava/v/beta">
10
+ <img src="https://img.shields.io/npm/v/@trendyol/baklava/beta.svg" alt="NPM Package Beta" />
11
+ </a>
12
+ <a href="https://github.com/Trendyol/baklava/blob/next/LICENSE">
13
+ <img src="https://img.shields.io/github/license/trendyol/baklava" alt="License" />
14
+ </a>
15
+ <a href="https://www.jsdelivr.com/package/npm/@trendyol/baklava">
16
+ <img src="https://img.shields.io/jsdelivr/npm/hm/@trendyol/baklava" alt="jsDelivr hits" />
17
+ </a>
18
+ <a href="https://github.com/semantic-release/semantic-release">
19
+ <img src="https://img.shields.io/badge/semantic--release-angular-e10079?logo=semantic-release" alt="semantic-release: angular" />
20
+ </a>
21
+ </p>
7
22
 
8
23
  Baklava is a design system provided by [Trendyol](https://github.com/trendyol) to create a consistent UI/UX for app users.
9
24
 
@@ -1,26 +1,114 @@
1
- export declare const BlAlert: any;
2
- export declare const BlBadge: any;
3
- export declare const BlButton: any;
4
- export declare const BlCheckboxGroup: any;
5
- export declare const BlDialog: any;
6
- export declare const BlDrawer: any;
7
- export declare const BlDropdown: any;
8
- export declare const BlIcon: any;
9
- export declare const BlInput: any;
10
- export declare const BlPagination: any;
11
- export declare const BlPopover: any;
12
- export declare const BlProgressIndicator: any;
13
- export declare const BlRadioGroup: any;
14
- export declare const BlSelect: any;
15
- export declare const BlSwitch: any;
16
- export declare const BlTabGroup: any;
17
- export declare const BlTextarea: any;
18
- export declare const BlTooltip: any;
19
- export declare const BlCheckbox: any;
20
- export declare const BlDropdownGroup: any;
21
- export declare const BlDropdownItem: any;
22
- export declare const BlRadio: any;
23
- export declare const BlSelectOption: any;
24
- export declare const BlTab: any;
25
- export declare const BlTabPanel: any;
1
+ import React from "react";
2
+ import { type EventName, ReactWebComponent } from "@lit-labs/react";
3
+ import { ISelectOption } from "./components/select/bl-select";
4
+ import type BlAlertType from "./components/alert/bl-alert";
5
+ import type BlBadgeType from "./components/badge/bl-badge";
6
+ import type BlButtonType from "./components/button/bl-button";
7
+ import type BlCheckboxGroupType from "./components/checkbox-group/bl-checkbox-group";
8
+ import type BlDialogType from "./components/dialog/bl-dialog";
9
+ import type BlDrawerType from "./components/drawer/bl-drawer";
10
+ import type BlDropdownType from "./components/dropdown/bl-dropdown";
11
+ import type BlIconType from "./components/icon/bl-icon";
12
+ import type BlInputType from "./components/input/bl-input";
13
+ import type BlPaginationType from "./components/pagination/bl-pagination";
14
+ import type BlPopoverType from "./components/popover/bl-popover";
15
+ import type BlProgressIndicatorType from "./components/progress-indicator/bl-progress-indicator";
16
+ import type BlRadioGroupType from "./components/radio-group/bl-radio-group";
17
+ import type BlSelectType from "./components/select/bl-select";
18
+ import type BlSwitchType from "./components/switch/bl-switch";
19
+ import type BlTabGroupType from "./components/tab-group/bl-tab-group";
20
+ import type BlTextareaType from "./components/textarea/bl-textarea";
21
+ import type BlTooltipType from "./components/tooltip/bl-tooltip";
22
+ import type BlCheckboxType from "./components/checkbox-group/checkbox/bl-checkbox";
23
+ import type BlDropdownGroupType from "./components/dropdown/group/bl-dropdown-group";
24
+ import type BlDropdownItemType from "./components/dropdown/item/bl-dropdown-item";
25
+ import type BlRadioType from "./components/radio-group/radio/bl-radio";
26
+ import type BlSelectOptionType from "./components/select/option/bl-select-option";
27
+ import type BlTabType from "./components/tab-group/tab/bl-tab";
28
+ import type BlTabPanelType from "./components/tab-group/tab-panel/bl-tab-panel";
29
+ export declare const BlAlert: React.LazyExoticComponent<ReactWebComponent<BlAlertType, {
30
+ onBlClose: EventName<CustomEvent<boolean>>;
31
+ }>>;
32
+ export declare const BlBadge: React.LazyExoticComponent<ReactWebComponent<BlBadgeType, {}>>;
33
+ export declare const BlButton: React.LazyExoticComponent<ReactWebComponent<BlButtonType, {
34
+ onBlClick: EventName<CustomEvent<string>>;
35
+ }>>;
36
+ export declare const BlCheckboxGroup: React.LazyExoticComponent<ReactWebComponent<BlCheckboxGroupType, {
37
+ onBlCheckboxGroupChange: EventName<CustomEvent<string[]>>;
38
+ }>>;
39
+ export declare const BlDialog: React.LazyExoticComponent<ReactWebComponent<BlDialogType, {
40
+ onBlDialogOpen: EventName<CustomEvent<object>>;
41
+ onBlDialogClose: EventName<CustomEvent<object>>;
42
+ }>>;
43
+ export declare const BlDrawer: React.LazyExoticComponent<ReactWebComponent<BlDrawerType, {
44
+ onBlDrawerOpen: EventName<CustomEvent<string>>;
45
+ onBlDrawerClose: EventName<CustomEvent<string>>;
46
+ }>>;
47
+ export declare const BlDropdown: React.LazyExoticComponent<ReactWebComponent<BlDropdownType, {
48
+ onBlDropdownOpen: EventName<CustomEvent<string>>;
49
+ onBlDropdownClose: EventName<CustomEvent<string>>;
50
+ }>>;
51
+ export declare const BlIcon: React.LazyExoticComponent<ReactWebComponent<BlIconType, {
52
+ onBlLoad: EventName<CustomEvent<string>>;
53
+ onBlError: EventName<CustomEvent<string>>;
54
+ }>>;
55
+ export declare const BlInput: React.LazyExoticComponent<ReactWebComponent<BlInputType, {
56
+ onBlChange: EventName<CustomEvent<string>>;
57
+ onBlInput: EventName<CustomEvent<string>>;
58
+ onBlInvalid: EventName<CustomEvent<ValidityState>>;
59
+ }>>;
60
+ export declare const BlPagination: React.LazyExoticComponent<ReactWebComponent<BlPaginationType, {
61
+ onBlChange: EventName<CustomEvent<{
62
+ selectedPage: number;
63
+ prevPage: number;
64
+ itemsPerPage: number;
65
+ }>>;
66
+ }>>;
67
+ export declare const BlPopover: React.LazyExoticComponent<ReactWebComponent<BlPopoverType, {
68
+ onBlPopoverShow: EventName<CustomEvent<string>>;
69
+ onBlPopoverHide: EventName<CustomEvent<string>>;
70
+ }>>;
71
+ export declare const BlProgressIndicator: React.LazyExoticComponent<ReactWebComponent<BlProgressIndicatorType, {}>>;
72
+ export declare const BlRadioGroup: React.LazyExoticComponent<ReactWebComponent<BlRadioGroupType, {
73
+ onBlRadioChange: EventName<CustomEvent<string>>;
74
+ }>>;
75
+ export declare const BlSelect: React.LazyExoticComponent<ReactWebComponent<BlSelectType<string>, {
76
+ onBlSelect: EventName<CustomEvent<ISelectOption[]>>;
77
+ }>>;
78
+ export declare const BlSwitch: React.LazyExoticComponent<ReactWebComponent<BlSwitchType, {
79
+ onBlSwitchToggle: EventName<CustomEvent<boolean>>;
80
+ }>>;
81
+ export declare const BlTabGroup: React.LazyExoticComponent<ReactWebComponent<BlTabGroupType, {}>>;
82
+ export declare const BlTextarea: React.LazyExoticComponent<ReactWebComponent<BlTextareaType, {
83
+ onBlInput: EventName<CustomEvent<string>>;
84
+ onBlChange: EventName<CustomEvent<string>>;
85
+ onBlInvalid: EventName<CustomEvent<ValidityState>>;
86
+ }>>;
87
+ export declare const BlTooltip: React.LazyExoticComponent<ReactWebComponent<BlTooltipType, {
88
+ onBlTooltipShow: EventName<CustomEvent<string>>;
89
+ onBlTooltipHide: EventName<CustomEvent<string>>;
90
+ }>>;
91
+ export declare const BlCheckbox: React.LazyExoticComponent<ReactWebComponent<BlCheckboxType, {
92
+ onBlCheckboxChange: EventName<CustomEvent<boolean>>;
93
+ onBlFocus: EventName<CustomEvent<string>>;
94
+ onBlBlur: EventName<CustomEvent<string>>;
95
+ }>>;
96
+ export declare const BlDropdownGroup: React.LazyExoticComponent<ReactWebComponent<BlDropdownGroupType, {}>>;
97
+ export declare const BlDropdownItem: React.LazyExoticComponent<ReactWebComponent<BlDropdownItemType, {
98
+ onBlDropdownItemClick: EventName<CustomEvent<string>>;
99
+ }>>;
100
+ export declare const BlRadio: React.LazyExoticComponent<ReactWebComponent<BlRadioType, {
101
+ onBlChecked: EventName<CustomEvent<string>>;
102
+ onBlFocus: EventName<CustomEvent<string>>;
103
+ onBlBlur: EventName<CustomEvent<string>>;
104
+ }>>;
105
+ export declare const BlSelectOption: React.LazyExoticComponent<ReactWebComponent<BlSelectOptionType<string>, {
106
+ onBlSelectOption: EventName<CustomEvent<string | null>>;
107
+ onBlFocus: EventName<CustomEvent<string | null>>;
108
+ onBlBlur: EventName<CustomEvent<string | null>>;
109
+ }>>;
110
+ export declare const BlTab: React.LazyExoticComponent<ReactWebComponent<BlTabType, {
111
+ onBlTabSelected: EventName<CustomEvent<string>>;
112
+ }>>;
113
+ export declare const BlTabPanel: React.LazyExoticComponent<ReactWebComponent<BlTabPanelType, {}>>;
26
114
  //# sourceMappingURL=baklava-react.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"baklava-react.d.ts","sourceRoot":"","sources":["../src/baklava-react.ts"],"names":[],"mappings":"AAmCA,eAAO,MAAM,OAAO,KAcnB,CAAC;AAEF,eAAO,MAAM,OAAO,KASnB,CAAC;AAEF,eAAO,MAAM,QAAQ,KAcpB,CAAC;AAEF,eAAO,MAAM,eAAe,KAiB3B,CAAC;AAEF,eAAO,MAAM,QAAQ,KA0BpB,CAAC;AAEF,eAAO,MAAM,QAAQ,KA0BpB,CAAC;AAEF,eAAO,MAAM,UAAU,KA0BtB,CAAC;AAEF,eAAO,MAAM,MAAM,KAuBlB,CAAC;AAEF,eAAO,MAAM,OAAO,KA6BnB,CAAC;AAEF,eAAO,MAAM,YAAY,KAiCxB,CAAC;AAEF,eAAO,MAAM,SAAS,KA0BrB,CAAC;AAEF,eAAO,MAAM,mBAAmB,KAW/B,CAAC;AAEF,eAAO,MAAM,YAAY,KAiBxB,CAAC;AAEF,eAAO,MAAM,QAAQ,KAiBpB,CAAC;AAEF,eAAO,MAAM,QAAQ,KAiBpB,CAAC;AAEF,eAAO,MAAM,UAAU,KAStB,CAAC;AAEF,eAAO,MAAM,UAAU,KA6BtB,CAAC;AAEF,eAAO,MAAM,SAAS,KA0BrB,CAAC;AAEF,eAAO,MAAM,UAAU,KA6BtB,CAAC;AAEF,eAAO,MAAM,eAAe,KAW3B,CAAC;AAEF,eAAO,MAAM,cAAc,KAiB1B,CAAC;AAEF,eAAO,MAAM,OAAO,KA6BnB,CAAC;AAEF,eAAO,MAAM,cAAc,KA6B1B,CAAC;AAEF,eAAO,MAAM,KAAK,KAiBjB,CAAC;AAEF,eAAO,MAAM,UAAU,KAStB,CAAC"}
1
+ {"version":3,"file":"baklava-react.d.ts","sourceRoot":"","sources":["../src/baklava-react.ts"],"names":[],"mappings":"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"}
@@ -1,4 +1,4 @@
1
- import"./chunk-NZ3RGSR6.js";import e from"react";var w=new Set(["children","localName","ref","style","className"]),T=new WeakMap,N=(u,p,b,B,d)=>{let a=d==null?void 0:d[p];a===void 0||b===B?b==null&&p in HTMLElement.prototype?u.removeAttribute(p):u[p]=b:((s,n,g)=>{let m=T.get(s);m===void 0&&T.set(s,m=new Map);let r=m.get(n);g!==void 0?r===void 0?(m.set(n,r={handleEvent:g}),s.addEventListener(n,r)):r.handleEvent=g:r!==void 0&&(m.delete(n),s.removeEventListener(n,r))})(u,a,b)};function t(u=window.React,p,b,B,d){let a,s,n;if(p===void 0){let c=u;({tagName:s,elementClass:n,events:B,displayName:d}=c),a=c.react}else a=u,n=b,s=p;let g=a.Component,m=a.createElement,r=new Set(Object.keys(B!=null?B:{}));class E extends g{constructor(){super(...arguments),this.o=null}t(o){if(this.o!==null)for(let v in this.i)N(this.o,v,this.props[v],o?o[v]:void 0,B)}componentDidMount(){this.t()}componentDidUpdate(o){this.t(o)}render(){let{_$Gl:o,...v}=this.props;this.h!==o&&(this.u=l=>{o!==null&&((i,y)=>{typeof i=="function"?i(y):i.current=y})(o,l),this.o=l,this.h=o}),this.i={};let C={ref:this.u};for(let[l,i]of Object.entries(v))w.has(l)?C[l==="className"?"class":l]=i:r.has(l)||l in n.prototype?this.i[l]=i:C[l]=i;return m(s,C)}}E.displayName=d!=null?d:n.name;let h=a.forwardRef((c,o)=>m(E,{...c,_$Gl:o},c==null?void 0:c.children));return h.displayName=E.displayName,h}var I=e.lazy(()=>customElements.whenDefined("bl-alert").then(()=>({default:t({react:e,tagName:"bl-alert",elementClass:customElements.get("bl-alert"),events:{onBlClose:"bl-close"}})}))),P=e.lazy(()=>customElements.whenDefined("bl-badge").then(()=>({default:t({react:e,tagName:"bl-badge",elementClass:customElements.get("bl-badge"),events:{}})}))),W=e.lazy(()=>customElements.whenDefined("bl-button").then(()=>({default:t({react:e,tagName:"bl-button",elementClass:customElements.get("bl-button"),events:{onBlClick:"bl-click"}})}))),z=e.lazy(()=>customElements.whenDefined("bl-checkbox-group").then(()=>({default:t({react:e,tagName:"bl-checkbox-group",elementClass:customElements.get("bl-checkbox-group"),events:{onBlCheckboxGroupChange:"bl-checkbox-group-change"}})}))),G=e.lazy(()=>customElements.whenDefined("bl-dialog").then(()=>({default:t({react:e,tagName:"bl-dialog",elementClass:customElements.get("bl-dialog"),events:{onBlDialogOpen:"bl-dialog-open",onBlDialogClose:"bl-dialog-close"}})}))),O=e.lazy(()=>customElements.whenDefined("bl-drawer").then(()=>({default:t({react:e,tagName:"bl-drawer",elementClass:customElements.get("bl-drawer"),events:{onBlDrawerOpen:"bl-drawer-open",onBlDrawerClose:"bl-drawer-close"}})}))),V=e.lazy(()=>customElements.whenDefined("bl-dropdown").then(()=>({default:t({react:e,tagName:"bl-dropdown",elementClass:customElements.get("bl-dropdown"),events:{onBlDropdownOpen:"bl-dropdown-open",onBlDropdownClose:"bl-dropdown-close"}})}))),F=e.lazy(()=>customElements.whenDefined("bl-icon").then(()=>({default:t({react:e,tagName:"bl-icon",elementClass:customElements.get("bl-icon"),events:{onBlLoad:"bl-load",onBlError:"bl-error"}})}))),H=e.lazy(()=>customElements.whenDefined("bl-input").then(()=>({default:t({react:e,tagName:"bl-input",elementClass:customElements.get("bl-input"),events:{onBlChange:"bl-change",onBlInput:"bl-input",onBlInvalid:"bl-invalid"}})}))),j=e.lazy(()=>customElements.whenDefined("bl-pagination").then(()=>({default:t({react:e,tagName:"bl-pagination",elementClass:customElements.get("bl-pagination"),events:{onBlChange:"bl-change"}})}))),L=e.lazy(()=>customElements.whenDefined("bl-popover").then(()=>({default:t({react:e,tagName:"bl-popover",elementClass:customElements.get("bl-popover"),events:{onBlPopoverShow:"bl-popover-show",onBlPopoverHide:"bl-popover-hide"}})}))),A=e.lazy(()=>customElements.whenDefined("bl-progress-indicator").then(()=>({default:t({react:e,tagName:"bl-progress-indicator",elementClass:customElements.get("bl-progress-indicator"),events:{}})}))),M=e.lazy(()=>customElements.whenDefined("bl-radio-group").then(()=>({default:t({react:e,tagName:"bl-radio-group",elementClass:customElements.get("bl-radio-group"),events:{onBlRadioChange:"bl-radio-change"}})}))),_=e.lazy(()=>customElements.whenDefined("bl-select").then(()=>({default:t({react:e,tagName:"bl-select",elementClass:customElements.get("bl-select"),events:{onBlSelect:"bl-select"}})}))),$=e.lazy(()=>customElements.whenDefined("bl-switch").then(()=>({default:t({react:e,tagName:"bl-switch",elementClass:customElements.get("bl-switch"),events:{onBlSwitchToggle:"bl-switch-toggle"}})}))),U=e.lazy(()=>customElements.whenDefined("bl-tab-group").then(()=>({default:t({react:e,tagName:"bl-tab-group",elementClass:customElements.get("bl-tab-group"),events:{}})}))),q=e.lazy(()=>customElements.whenDefined("bl-textarea").then(()=>({default:t({react:e,tagName:"bl-textarea",elementClass:customElements.get("bl-textarea"),events:{onBlInput:"bl-input",onBlChange:"bl-change",onBlInvalid:"bl-invalid"}})}))),J=e.lazy(()=>customElements.whenDefined("bl-tooltip").then(()=>({default:t({react:e,tagName:"bl-tooltip",elementClass:customElements.get("bl-tooltip"),events:{onBlTooltipShow:"bl-tooltip-show",onBlTooltipHide:"bl-tooltip-hide"}})}))),K=e.lazy(()=>customElements.whenDefined("bl-checkbox").then(()=>({default:t({react:e,tagName:"bl-checkbox",elementClass:customElements.get("bl-checkbox"),events:{onBlCheckboxChange:"bl-checkbox-change",onBlFocus:"bl-focus",onBlBlur:"bl-blur"}})}))),Q=e.lazy(()=>customElements.whenDefined("bl-dropdown-group").then(()=>({default:t({react:e,tagName:"bl-dropdown-group",elementClass:customElements.get("bl-dropdown-group"),events:{}})}))),X=e.lazy(()=>customElements.whenDefined("bl-dropdown-item").then(()=>({default:t({react:e,tagName:"bl-dropdown-item",elementClass:customElements.get("bl-dropdown-item"),events:{onBlDropdownItemClick:"bl-dropdown-item-click"}})}))),Y=e.lazy(()=>customElements.whenDefined("bl-radio").then(()=>({default:t({react:e,tagName:"bl-radio",elementClass:customElements.get("bl-radio"),events:{onBlChecked:"bl-checked",onBlFocus:"bl-focus",onBlBlur:"bl-blur"}})}))),Z=e.lazy(()=>customElements.whenDefined("bl-select-option").then(()=>({default:t({react:e,tagName:"bl-select-option",elementClass:customElements.get("bl-select-option"),events:{onBlSelectOption:"bl-select-option",onBlFocus:"bl-focus",onBlBlur:"bl-blur"}})}))),ee=e.lazy(()=>customElements.whenDefined("bl-tab").then(()=>({default:t({react:e,tagName:"bl-tab",elementClass:customElements.get("bl-tab"),events:{onBlTabSelected:"bl-tab-selected"}})}))),te=e.lazy(()=>customElements.whenDefined("bl-tab-panel").then(()=>({default:t({react:e,tagName:"bl-tab-panel",elementClass:customElements.get("bl-tab-panel"),events:{}})})));export{I as BlAlert,P as BlBadge,W as BlButton,K as BlCheckbox,z as BlCheckboxGroup,G as BlDialog,O as BlDrawer,V as BlDropdown,Q as BlDropdownGroup,X as BlDropdownItem,F as BlIcon,H as BlInput,j as BlPagination,L as BlPopover,A as BlProgressIndicator,Y as BlRadio,M as BlRadioGroup,_ as BlSelect,Z as BlSelectOption,$ as BlSwitch,ee as BlTab,U as BlTabGroup,te as BlTabPanel,q as BlTextarea,J as BlTooltip};
1
+ import"./chunk-NZ3RGSR6.js";import e from"react";var T=new Set(["children","localName","ref","style","className"]),w=new WeakMap,N=(u,p,b,B,d)=>{let a=d==null?void 0:d[p];a===void 0||b===B?b==null&&p in HTMLElement.prototype?u.removeAttribute(p):u[p]=b:((s,n,g)=>{let m=w.get(s);m===void 0&&w.set(s,m=new Map);let r=m.get(n);g!==void 0?r===void 0?(m.set(n,r={handleEvent:g}),s.addEventListener(n,r)):r.handleEvent=g:r!==void 0&&(m.delete(n),s.removeEventListener(n,r))})(u,a,b)};function t(u=window.React,p,b,B,d){let a,s,n;if(p===void 0){let c=u;({tagName:s,elementClass:n,events:B,displayName:d}=c),a=c.react}else a=u,n=b,s=p;let g=a.Component,m=a.createElement,r=new Set(Object.keys(B!=null?B:{}));class E extends g{constructor(){super(...arguments),this.o=null}t(o){if(this.o!==null)for(let v in this.i)N(this.o,v,this.props[v],o?o[v]:void 0,B)}componentDidMount(){this.t()}componentDidUpdate(o){this.t(o)}render(){let{_$Gl:o,...v}=this.props;this.h!==o&&(this.u=l=>{o!==null&&((i,y)=>{typeof i=="function"?i(y):i.current=y})(o,l),this.o=l,this.h=o}),this.i={};let C={ref:this.u};for(let[l,i]of Object.entries(v))T.has(l)?C[l==="className"?"class":l]=i:r.has(l)||l in n.prototype?this.i[l]=i:C[l]=i;return m(s,C)}}E.displayName=d!=null?d:n.name;let h=a.forwardRef((c,o)=>m(E,{...c,_$Gl:o},c==null?void 0:c.children));return h.displayName=E.displayName,h}var I=e.lazy(()=>customElements.whenDefined("bl-alert").then(()=>({default:t({react:e,tagName:"bl-alert",elementClass:customElements.get("bl-alert"),events:{onBlClose:"bl-close"}})}))),P=e.lazy(()=>customElements.whenDefined("bl-badge").then(()=>({default:t({react:e,tagName:"bl-badge",elementClass:customElements.get("bl-badge"),events:{}})}))),W=e.lazy(()=>customElements.whenDefined("bl-button").then(()=>({default:t({react:e,tagName:"bl-button",elementClass:customElements.get("bl-button"),events:{onBlClick:"bl-click"}})}))),z=e.lazy(()=>customElements.whenDefined("bl-checkbox-group").then(()=>({default:t({react:e,tagName:"bl-checkbox-group",elementClass:customElements.get("bl-checkbox-group"),events:{onBlCheckboxGroupChange:"bl-checkbox-group-change"}})}))),G=e.lazy(()=>customElements.whenDefined("bl-dialog").then(()=>({default:t({react:e,tagName:"bl-dialog",elementClass:customElements.get("bl-dialog"),events:{onBlDialogOpen:"bl-dialog-open",onBlDialogClose:"bl-dialog-close"}})}))),O=e.lazy(()=>customElements.whenDefined("bl-drawer").then(()=>({default:t({react:e,tagName:"bl-drawer",elementClass:customElements.get("bl-drawer"),events:{onBlDrawerOpen:"bl-drawer-open",onBlDrawerClose:"bl-drawer-close"}})}))),F=e.lazy(()=>customElements.whenDefined("bl-dropdown").then(()=>({default:t({react:e,tagName:"bl-dropdown",elementClass:customElements.get("bl-dropdown"),events:{onBlDropdownOpen:"bl-dropdown-open",onBlDropdownClose:"bl-dropdown-close"}})}))),H=e.lazy(()=>customElements.whenDefined("bl-icon").then(()=>({default:t({react:e,tagName:"bl-icon",elementClass:customElements.get("bl-icon"),events:{onBlLoad:"bl-load",onBlError:"bl-error"}})}))),j=e.lazy(()=>customElements.whenDefined("bl-input").then(()=>({default:t({react:e,tagName:"bl-input",elementClass:customElements.get("bl-input"),events:{onBlChange:"bl-change",onBlInput:"bl-input",onBlInvalid:"bl-invalid"}})}))),L=e.lazy(()=>customElements.whenDefined("bl-pagination").then(()=>({default:t({react:e,tagName:"bl-pagination",elementClass:customElements.get("bl-pagination"),events:{onBlChange:"bl-change"}})}))),A=e.lazy(()=>customElements.whenDefined("bl-popover").then(()=>({default:t({react:e,tagName:"bl-popover",elementClass:customElements.get("bl-popover"),events:{onBlPopoverShow:"bl-popover-show",onBlPopoverHide:"bl-popover-hide"}})}))),M=e.lazy(()=>customElements.whenDefined("bl-progress-indicator").then(()=>({default:t({react:e,tagName:"bl-progress-indicator",elementClass:customElements.get("bl-progress-indicator"),events:{}})}))),V=e.lazy(()=>customElements.whenDefined("bl-radio-group").then(()=>({default:t({react:e,tagName:"bl-radio-group",elementClass:customElements.get("bl-radio-group"),events:{onBlRadioChange:"bl-radio-change"}})}))),_=e.lazy(()=>customElements.whenDefined("bl-select").then(()=>({default:t({react:e,tagName:"bl-select",elementClass:customElements.get("bl-select"),events:{onBlSelect:"bl-select"}})}))),$=e.lazy(()=>customElements.whenDefined("bl-switch").then(()=>({default:t({react:e,tagName:"bl-switch",elementClass:customElements.get("bl-switch"),events:{onBlSwitchToggle:"bl-switch-toggle"}})}))),U=e.lazy(()=>customElements.whenDefined("bl-tab-group").then(()=>({default:t({react:e,tagName:"bl-tab-group",elementClass:customElements.get("bl-tab-group"),events:{}})}))),q=e.lazy(()=>customElements.whenDefined("bl-textarea").then(()=>({default:t({react:e,tagName:"bl-textarea",elementClass:customElements.get("bl-textarea"),events:{onBlInput:"bl-input",onBlChange:"bl-change",onBlInvalid:"bl-invalid"}})}))),J=e.lazy(()=>customElements.whenDefined("bl-tooltip").then(()=>({default:t({react:e,tagName:"bl-tooltip",elementClass:customElements.get("bl-tooltip"),events:{onBlTooltipShow:"bl-tooltip-show",onBlTooltipHide:"bl-tooltip-hide"}})}))),K=e.lazy(()=>customElements.whenDefined("bl-checkbox").then(()=>({default:t({react:e,tagName:"bl-checkbox",elementClass:customElements.get("bl-checkbox"),events:{onBlCheckboxChange:"bl-checkbox-change",onBlFocus:"bl-focus",onBlBlur:"bl-blur"}})}))),Q=e.lazy(()=>customElements.whenDefined("bl-dropdown-group").then(()=>({default:t({react:e,tagName:"bl-dropdown-group",elementClass:customElements.get("bl-dropdown-group"),events:{}})}))),X=e.lazy(()=>customElements.whenDefined("bl-dropdown-item").then(()=>({default:t({react:e,tagName:"bl-dropdown-item",elementClass:customElements.get("bl-dropdown-item"),events:{onBlDropdownItemClick:"bl-dropdown-item-click"}})}))),Y=e.lazy(()=>customElements.whenDefined("bl-radio").then(()=>({default:t({react:e,tagName:"bl-radio",elementClass:customElements.get("bl-radio"),events:{onBlChecked:"bl-checked",onBlFocus:"bl-focus",onBlBlur:"bl-blur"}})}))),Z=e.lazy(()=>customElements.whenDefined("bl-select-option").then(()=>({default:t({react:e,tagName:"bl-select-option",elementClass:customElements.get("bl-select-option"),events:{onBlSelectOption:"bl-select-option",onBlFocus:"bl-focus",onBlBlur:"bl-blur"}})}))),ee=e.lazy(()=>customElements.whenDefined("bl-tab").then(()=>({default:t({react:e,tagName:"bl-tab",elementClass:customElements.get("bl-tab"),events:{onBlTabSelected:"bl-tab-selected"}})}))),te=e.lazy(()=>customElements.whenDefined("bl-tab-panel").then(()=>({default:t({react:e,tagName:"bl-tab-panel",elementClass:customElements.get("bl-tab-panel"),events:{}})})));export{I as BlAlert,P as BlBadge,W as BlButton,K as BlCheckbox,z as BlCheckboxGroup,G as BlDialog,O as BlDrawer,F as BlDropdown,Q as BlDropdownGroup,X as BlDropdownItem,H as BlIcon,j as BlInput,L as BlPagination,A as BlPopover,M as BlProgressIndicator,Y as BlRadio,V as BlRadioGroup,_ as BlSelect,Z as BlSelectOption,$ as BlSwitch,ee as BlTab,U as BlTabGroup,te as BlTabPanel,q as BlTextarea,J as BlTooltip};
2
2
  /*! Bundled license information:
3
3
 
4
4
  @lit-labs/react/create-component.js:
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "version": 3,
3
3
  "sources": ["../src/baklava-react.ts", "../node_modules/@lit-labs/react/src/create-component.ts"],
4
- "sourcesContent": ["/* eslint-disable @typescript-eslint/ban-ts-comment */\n// @ts-nocheck\nimport React from \"react\";\nimport {\n type EventName,\n createComponent,\n ReactWebComponent,\n} from \"@lit-labs/react\";\nimport { ISelectOption } from \"./components/select/bl-select\";\nimport type BlAlertType from \"./components/alert/bl-alert\";\nimport type BlBadgeType from \"./components/badge/bl-badge\";\nimport type BlButtonType from \"./components/button/bl-button\";\nimport type BlCheckboxGroupType from \"./components/checkbox-group/bl-checkbox-group\";\nimport type BlDialogType from \"./components/dialog/bl-dialog\";\nimport type BlDrawerType from \"./components/drawer/bl-drawer\";\nimport type BlDropdownType from \"./components/dropdown/bl-dropdown\";\nimport type BlIconType from \"./components/icon/bl-icon\";\nimport type BlInputType from \"./components/input/bl-input\";\nimport type BlPaginationType from \"./components/pagination/bl-pagination\";\nimport type BlPopoverType from \"./components/popover/bl-popover\";\nimport type BlProgressIndicatorType from \"./components/progress-indicator/bl-progress-indicator\";\nimport type BlRadioGroupType from \"./components/radio-group/bl-radio-group\";\nimport type BlSelectType from \"./components/select/bl-select\";\nimport type BlSwitchType from \"./components/switch/bl-switch\";\nimport type BlTabGroupType from \"./components/tab-group/bl-tab-group\";\nimport type BlTextareaType from \"./components/textarea/bl-textarea\";\nimport type BlTooltipType from \"./components/tooltip/bl-tooltip\";\nimport type BlCheckboxType from \"./components/checkbox-group/checkbox/bl-checkbox\";\nimport type BlDropdownGroupType from \"./components/dropdown/group/bl-dropdown-group\";\nimport type BlDropdownItemType from \"./components/dropdown/item/bl-dropdown-item\";\nimport type BlRadioType from \"./components/radio-group/radio/bl-radio\";\nimport type BlSelectOptionType from \"./components/select/option/bl-select-option\";\nimport type BlTabType from \"./components/tab-group/tab/bl-tab\";\nimport type BlTabPanelType from \"./components/tab-group/tab-panel/bl-tab-panel\";\n\nexport const BlAlert = React.lazy<\n ReactWebComponent<BlAlertType, { onBlClose: EventName<CustomEvent<boolean>> }>\n>(() =>\n customElements.whenDefined(\"bl-alert\").then(() => ({\n default: createComponent<\n BlAlertType,\n { onBlClose: EventName<CustomEvent<boolean>> }\n >({\n react: React,\n tagName: \"bl-alert\",\n elementClass: customElements.get(\"bl-alert\"),\n events: { onBlClose: \"bl-close\" },\n }),\n }))\n);\n\nexport const BlBadge = React.lazy<ReactWebComponent<BlBadgeType>>(() =>\n customElements.whenDefined(\"bl-badge\").then(() => ({\n default: createComponent<BlBadgeType>({\n react: React,\n tagName: \"bl-badge\",\n elementClass: customElements.get(\"bl-badge\"),\n events: {},\n }),\n }))\n);\n\nexport const BlButton = React.lazy<\n ReactWebComponent<BlButtonType, { onBlClick: EventName<CustomEvent<string>> }>\n>(() =>\n customElements.whenDefined(\"bl-button\").then(() => ({\n default: createComponent<\n BlButtonType,\n { onBlClick: EventName<CustomEvent<string>> }\n >({\n react: React,\n tagName: \"bl-button\",\n elementClass: customElements.get(\"bl-button\"),\n events: { onBlClick: \"bl-click\" },\n }),\n }))\n);\n\nexport const BlCheckboxGroup = React.lazy<\n ReactWebComponent<\n BlCheckboxGroupType,\n { onBlCheckboxGroupChange: EventName<CustomEvent<string[]>> }\n >\n>(() =>\n customElements.whenDefined(\"bl-checkbox-group\").then(() => ({\n default: createComponent<\n BlCheckboxGroupType,\n { onBlCheckboxGroupChange: EventName<CustomEvent<string[]>> }\n >({\n react: React,\n tagName: \"bl-checkbox-group\",\n elementClass: customElements.get(\"bl-checkbox-group\"),\n events: { onBlCheckboxGroupChange: \"bl-checkbox-group-change\" },\n }),\n }))\n);\n\nexport const BlDialog = React.lazy<\n ReactWebComponent<\n BlDialogType,\n {\n onBlDialogOpen: EventName<CustomEvent<object>>;\n onBlDialogClose: EventName<CustomEvent<object>>;\n }\n >\n>(() =>\n customElements.whenDefined(\"bl-dialog\").then(() => ({\n default: createComponent<\n BlDialogType,\n {\n onBlDialogOpen: EventName<CustomEvent<object>>;\n onBlDialogClose: EventName<CustomEvent<object>>;\n }\n >({\n react: React,\n tagName: \"bl-dialog\",\n elementClass: customElements.get(\"bl-dialog\"),\n events: {\n onBlDialogOpen: \"bl-dialog-open\",\n onBlDialogClose: \"bl-dialog-close\",\n },\n }),\n }))\n);\n\nexport const BlDrawer = React.lazy<\n ReactWebComponent<\n BlDrawerType,\n {\n onBlDrawerOpen: EventName<CustomEvent<string>>;\n onBlDrawerClose: EventName<CustomEvent<string>>;\n }\n >\n>(() =>\n customElements.whenDefined(\"bl-drawer\").then(() => ({\n default: createComponent<\n BlDrawerType,\n {\n onBlDrawerOpen: EventName<CustomEvent<string>>;\n onBlDrawerClose: EventName<CustomEvent<string>>;\n }\n >({\n react: React,\n tagName: \"bl-drawer\",\n elementClass: customElements.get(\"bl-drawer\"),\n events: {\n onBlDrawerOpen: \"bl-drawer-open\",\n onBlDrawerClose: \"bl-drawer-close\",\n },\n }),\n }))\n);\n\nexport const BlDropdown = React.lazy<\n ReactWebComponent<\n BlDropdownType,\n {\n onBlDropdownOpen: EventName<CustomEvent<string>>;\n onBlDropdownClose: EventName<CustomEvent<string>>;\n }\n >\n>(() =>\n customElements.whenDefined(\"bl-dropdown\").then(() => ({\n default: createComponent<\n BlDropdownType,\n {\n onBlDropdownOpen: EventName<CustomEvent<string>>;\n onBlDropdownClose: EventName<CustomEvent<string>>;\n }\n >({\n react: React,\n tagName: \"bl-dropdown\",\n elementClass: customElements.get(\"bl-dropdown\"),\n events: {\n onBlDropdownOpen: \"bl-dropdown-open\",\n onBlDropdownClose: \"bl-dropdown-close\",\n },\n }),\n }))\n);\n\nexport const BlIcon = React.lazy<\n ReactWebComponent<\n BlIconType,\n {\n onBlLoad: EventName<CustomEvent<string>>;\n onBlError: EventName<CustomEvent<string>>;\n }\n >\n>(() =>\n customElements.whenDefined(\"bl-icon\").then(() => ({\n default: createComponent<\n BlIconType,\n {\n onBlLoad: EventName<CustomEvent<string>>;\n onBlError: EventName<CustomEvent<string>>;\n }\n >({\n react: React,\n tagName: \"bl-icon\",\n elementClass: customElements.get(\"bl-icon\"),\n events: { onBlLoad: \"bl-load\", onBlError: \"bl-error\" },\n }),\n }))\n);\n\nexport const BlInput = React.lazy<\n ReactWebComponent<\n BlInputType,\n {\n onBlChange: EventName<CustomEvent<string>>;\n onBlInput: EventName<CustomEvent<string>>;\n onBlInvalid: EventName<CustomEvent<ValidityState>>;\n }\n >\n>(() =>\n customElements.whenDefined(\"bl-input\").then(() => ({\n default: createComponent<\n BlInputType,\n {\n onBlChange: EventName<CustomEvent<string>>;\n onBlInput: EventName<CustomEvent<string>>;\n onBlInvalid: EventName<CustomEvent<ValidityState>>;\n }\n >({\n react: React,\n tagName: \"bl-input\",\n elementClass: customElements.get(\"bl-input\"),\n events: {\n onBlChange: \"bl-change\",\n onBlInput: \"bl-input\",\n onBlInvalid: \"bl-invalid\",\n },\n }),\n }))\n);\n\nexport const BlPagination = React.lazy<\n ReactWebComponent<\n BlPaginationType,\n {\n onBlChange: EventName<\n CustomEvent<{\n selectedPage: number;\n prevPage: number;\n itemsPerPage: number;\n }>\n >;\n }\n >\n>(() =>\n customElements.whenDefined(\"bl-pagination\").then(() => ({\n default: createComponent<\n BlPaginationType,\n {\n onBlChange: EventName<\n CustomEvent<{\n selectedPage: number;\n prevPage: number;\n itemsPerPage: number;\n }>\n >;\n }\n >({\n react: React,\n tagName: \"bl-pagination\",\n elementClass: customElements.get(\"bl-pagination\"),\n events: { onBlChange: \"bl-change\" },\n }),\n }))\n);\n\nexport const BlPopover = React.lazy<\n ReactWebComponent<\n BlPopoverType,\n {\n onBlPopoverShow: EventName<CustomEvent<string>>;\n onBlPopoverHide: EventName<CustomEvent<string>>;\n }\n >\n>(() =>\n customElements.whenDefined(\"bl-popover\").then(() => ({\n default: createComponent<\n BlPopoverType,\n {\n onBlPopoverShow: EventName<CustomEvent<string>>;\n onBlPopoverHide: EventName<CustomEvent<string>>;\n }\n >({\n react: React,\n tagName: \"bl-popover\",\n elementClass: customElements.get(\"bl-popover\"),\n events: {\n onBlPopoverShow: \"bl-popover-show\",\n onBlPopoverHide: \"bl-popover-hide\",\n },\n }),\n }))\n);\n\nexport const BlProgressIndicator = React.lazy<\n ReactWebComponent<BlProgressIndicatorType>\n>(() =>\n customElements.whenDefined(\"bl-progress-indicator\").then(() => ({\n default: createComponent<BlProgressIndicatorType>({\n react: React,\n tagName: \"bl-progress-indicator\",\n elementClass: customElements.get(\"bl-progress-indicator\"),\n events: {},\n }),\n }))\n);\n\nexport const BlRadioGroup = React.lazy<\n ReactWebComponent<\n BlRadioGroupType,\n { onBlRadioChange: EventName<CustomEvent<string>> }\n >\n>(() =>\n customElements.whenDefined(\"bl-radio-group\").then(() => ({\n default: createComponent<\n BlRadioGroupType,\n { onBlRadioChange: EventName<CustomEvent<string>> }\n >({\n react: React,\n tagName: \"bl-radio-group\",\n elementClass: customElements.get(\"bl-radio-group\"),\n events: { onBlRadioChange: \"bl-radio-change\" },\n }),\n }))\n);\n\nexport const BlSelect = React.lazy<\n ReactWebComponent<\n BlSelectType,\n { onBlSelect: EventName<CustomEvent<ISelectOption[]>> }\n >\n>(() =>\n customElements.whenDefined(\"bl-select\").then(() => ({\n default: createComponent<\n BlSelectType,\n { onBlSelect: EventName<CustomEvent<ISelectOption[]>> }\n >({\n react: React,\n tagName: \"bl-select\",\n elementClass: customElements.get(\"bl-select\"),\n events: { onBlSelect: \"bl-select\" },\n }),\n }))\n);\n\nexport const BlSwitch = React.lazy<\n ReactWebComponent<\n BlSwitchType,\n { onBlSwitchToggle: EventName<CustomEvent<boolean>> }\n >\n>(() =>\n customElements.whenDefined(\"bl-switch\").then(() => ({\n default: createComponent<\n BlSwitchType,\n { onBlSwitchToggle: EventName<CustomEvent<boolean>> }\n >({\n react: React,\n tagName: \"bl-switch\",\n elementClass: customElements.get(\"bl-switch\"),\n events: { onBlSwitchToggle: \"bl-switch-toggle\" },\n }),\n }))\n);\n\nexport const BlTabGroup = React.lazy<ReactWebComponent<BlTabGroupType>>(() =>\n customElements.whenDefined(\"bl-tab-group\").then(() => ({\n default: createComponent<BlTabGroupType>({\n react: React,\n tagName: \"bl-tab-group\",\n elementClass: customElements.get(\"bl-tab-group\"),\n events: {},\n }),\n }))\n);\n\nexport const BlTextarea = React.lazy<\n ReactWebComponent<\n BlTextareaType,\n {\n onBlInput: EventName<CustomEvent<string>>;\n onBlChange: EventName<CustomEvent<string>>;\n onBlInvalid: EventName<CustomEvent<ValidityState>>;\n }\n >\n>(() =>\n customElements.whenDefined(\"bl-textarea\").then(() => ({\n default: createComponent<\n BlTextareaType,\n {\n onBlInput: EventName<CustomEvent<string>>;\n onBlChange: EventName<CustomEvent<string>>;\n onBlInvalid: EventName<CustomEvent<ValidityState>>;\n }\n >({\n react: React,\n tagName: \"bl-textarea\",\n elementClass: customElements.get(\"bl-textarea\"),\n events: {\n onBlInput: \"bl-input\",\n onBlChange: \"bl-change\",\n onBlInvalid: \"bl-invalid\",\n },\n }),\n }))\n);\n\nexport const BlTooltip = React.lazy<\n ReactWebComponent<\n BlTooltipType,\n {\n onBlTooltipShow: EventName<CustomEvent<string>>;\n onBlTooltipHide: EventName<CustomEvent<string>>;\n }\n >\n>(() =>\n customElements.whenDefined(\"bl-tooltip\").then(() => ({\n default: createComponent<\n BlTooltipType,\n {\n onBlTooltipShow: EventName<CustomEvent<string>>;\n onBlTooltipHide: EventName<CustomEvent<string>>;\n }\n >({\n react: React,\n tagName: \"bl-tooltip\",\n elementClass: customElements.get(\"bl-tooltip\"),\n events: {\n onBlTooltipShow: \"bl-tooltip-show\",\n onBlTooltipHide: \"bl-tooltip-hide\",\n },\n }),\n }))\n);\n\nexport const BlCheckbox = React.lazy<\n ReactWebComponent<\n BlCheckboxType,\n {\n onBlCheckboxChange: EventName<CustomEvent<boolean>>;\n onBlFocus: EventName<CustomEvent<string>>;\n onBlBlur: EventName<CustomEvent<string>>;\n }\n >\n>(() =>\n customElements.whenDefined(\"bl-checkbox\").then(() => ({\n default: createComponent<\n BlCheckboxType,\n {\n onBlCheckboxChange: EventName<CustomEvent<boolean>>;\n onBlFocus: EventName<CustomEvent<string>>;\n onBlBlur: EventName<CustomEvent<string>>;\n }\n >({\n react: React,\n tagName: \"bl-checkbox\",\n elementClass: customElements.get(\"bl-checkbox\"),\n events: {\n onBlCheckboxChange: \"bl-checkbox-change\",\n onBlFocus: \"bl-focus\",\n onBlBlur: \"bl-blur\",\n },\n }),\n }))\n);\n\nexport const BlDropdownGroup = React.lazy<\n ReactWebComponent<BlDropdownGroupType>\n>(() =>\n customElements.whenDefined(\"bl-dropdown-group\").then(() => ({\n default: createComponent<BlDropdownGroupType>({\n react: React,\n tagName: \"bl-dropdown-group\",\n elementClass: customElements.get(\"bl-dropdown-group\"),\n events: {},\n }),\n }))\n);\n\nexport const BlDropdownItem = React.lazy<\n ReactWebComponent<\n BlDropdownItemType,\n { onBlDropdownItemClick: EventName<CustomEvent<string>> }\n >\n>(() =>\n customElements.whenDefined(\"bl-dropdown-item\").then(() => ({\n default: createComponent<\n BlDropdownItemType,\n { onBlDropdownItemClick: EventName<CustomEvent<string>> }\n >({\n react: React,\n tagName: \"bl-dropdown-item\",\n elementClass: customElements.get(\"bl-dropdown-item\"),\n events: { onBlDropdownItemClick: \"bl-dropdown-item-click\" },\n }),\n }))\n);\n\nexport const BlRadio = React.lazy<\n ReactWebComponent<\n BlRadioType,\n {\n onBlChecked: EventName<CustomEvent<string>>;\n onBlFocus: EventName<CustomEvent<string>>;\n onBlBlur: EventName<CustomEvent<string>>;\n }\n >\n>(() =>\n customElements.whenDefined(\"bl-radio\").then(() => ({\n default: createComponent<\n BlRadioType,\n {\n onBlChecked: EventName<CustomEvent<string>>;\n onBlFocus: EventName<CustomEvent<string>>;\n onBlBlur: EventName<CustomEvent<string>>;\n }\n >({\n react: React,\n tagName: \"bl-radio\",\n elementClass: customElements.get(\"bl-radio\"),\n events: {\n onBlChecked: \"bl-checked\",\n onBlFocus: \"bl-focus\",\n onBlBlur: \"bl-blur\",\n },\n }),\n }))\n);\n\nexport const BlSelectOption = React.lazy<\n ReactWebComponent<\n BlSelectOptionType,\n {\n onBlSelectOption: EventName<CustomEvent<ValueType | string | null>>;\n onBlFocus: EventName<CustomEvent<ValueType | string | null>>;\n onBlBlur: EventName<CustomEvent<ValueType | string | null>>;\n }\n >\n>(() =>\n customElements.whenDefined(\"bl-select-option\").then(() => ({\n default: createComponent<\n BlSelectOptionType,\n {\n onBlSelectOption: EventName<CustomEvent<ValueType | string | null>>;\n onBlFocus: EventName<CustomEvent<ValueType | string | null>>;\n onBlBlur: EventName<CustomEvent<ValueType | string | null>>;\n }\n >({\n react: React,\n tagName: \"bl-select-option\",\n elementClass: customElements.get(\"bl-select-option\"),\n events: {\n onBlSelectOption: \"bl-select-option\",\n onBlFocus: \"bl-focus\",\n onBlBlur: \"bl-blur\",\n },\n }),\n }))\n);\n\nexport const BlTab = React.lazy<\n ReactWebComponent<\n BlTabType,\n { onBlTabSelected: EventName<CustomEvent<string>> }\n >\n>(() =>\n customElements.whenDefined(\"bl-tab\").then(() => ({\n default: createComponent<\n BlTabType,\n { onBlTabSelected: EventName<CustomEvent<string>> }\n >({\n react: React,\n tagName: \"bl-tab\",\n elementClass: customElements.get(\"bl-tab\"),\n events: { onBlTabSelected: \"bl-tab-selected\" },\n }),\n }))\n);\n\nexport const BlTabPanel = React.lazy<ReactWebComponent<BlTabPanelType>>(() =>\n customElements.whenDefined(\"bl-tab-panel\").then(() => ({\n default: createComponent<BlTabPanelType>({\n react: React,\n tagName: \"bl-tab-panel\",\n elementClass: customElements.get(\"bl-tab-panel\"),\n events: {},\n }),\n }))\n);\n", "/**\n * @license\n * Copyright 2018 Google LLC\n * SPDX-License-Identifier: BSD-3-Clause\n */\n\n// Match a prop name to a typed event callback by\n// adding an Event type as an expected property on a string.\nexport type EventName<T extends Event = Event> = string & {\n __event_type: T;\n};\n\n// A key value map matching React prop names to event names\ntype EventNames = Record<string, EventName | string>;\n\n// A map of expected event listener types based on EventNames\ntype EventListeners<R extends EventNames> = {\n [K in keyof R]: R[K] extends EventName\n ? (e: R[K]['__event_type']) => void\n : (e: Event) => void;\n};\n\ntype ReactProps<I, E> = Omit<React.HTMLAttributes<I>, keyof E>;\ntype ElementWithoutPropsOrEventListeners<I, E> = Omit<\n I,\n keyof E | keyof ReactProps<I, E>\n>;\n\n// Props the user is allowed to use, includes standard attributes, children,\n// ref, as well as special event and element properties.\nexport type WebComponentProps<\n I extends HTMLElement,\n E extends EventNames = {}\n> = Partial<\n ReactProps<I, E> &\n ElementWithoutPropsOrEventListeners<I, E> &\n EventListeners<E>\n>;\n\n// Props used by this component wrapper. This is the WebComponentProps and the\n// special `__forwardedRef` property. Note, this ref is special because\n// it's both needed in this component to get access to the rendered element\n// and must fulfill any ref passed by the user.\ntype ReactComponentProps<\n I extends HTMLElement,\n E extends EventNames = {}\n> = WebComponentProps<I, E> & {\n __forwardedRef: React.Ref<I>;\n};\n\nexport type ReactWebComponent<\n I extends HTMLElement,\n E extends EventNames = {}\n> = React.ForwardRefExoticComponent<\n React.PropsWithoutRef<WebComponentProps<I, E>> & React.RefAttributes<I>\n>;\n\ninterface Options<I extends HTMLElement, E extends EventNames = {}> {\n tagName: string;\n elementClass: Constructor<I>;\n react: typeof window.React;\n events?: E;\n displayName?: string;\n}\n\ntype Constructor<T> = {new (): T};\n\nconst DEV_MODE = true;\n\nconst reservedReactProperties = new Set([\n 'children',\n 'localName',\n 'ref',\n 'style',\n 'className',\n]);\n\nconst listenedEvents: WeakMap<\n Element,\n Map<string, EventListenerObject>\n> = new WeakMap();\n\n/**\n * Adds an event listener for the specified event to the given node. In the\n * React setup, there should only ever be one event listener. Thus, for\n * efficiency only one listener is added and the handler for that listener is\n * updated to point to the given listener function.\n */\nconst addOrUpdateEventListener = (\n node: Element,\n event: string,\n listener: (event?: Event) => void\n) => {\n let events = listenedEvents.get(node);\n if (events === undefined) {\n listenedEvents.set(node, (events = new Map()));\n }\n let handler = events.get(event);\n if (listener !== undefined) {\n // If necessary, add listener and track handler\n if (handler === undefined) {\n events.set(event, (handler = {handleEvent: listener}));\n node.addEventListener(event, handler);\n // Otherwise just update the listener with new value\n } else {\n handler.handleEvent = listener;\n }\n // Remove listener if one exists and value is undefined\n } else if (handler !== undefined) {\n events.delete(event);\n node.removeEventListener(event, handler);\n }\n};\n\n/**\n * Sets properties and events on custom elements. These properties and events\n * have been pre-filtered so we know they should apply to the custom element.\n */\nconst setProperty = <E extends Element>(\n node: E,\n name: string,\n value: unknown,\n old: unknown,\n events?: EventNames\n) => {\n const event = events?.[name];\n if (event !== undefined && value !== old) {\n // Dirty check event value.\n addOrUpdateEventListener(node, event, value as (e?: Event) => void);\n return;\n }\n\n // Note, the attribute removal here for `undefined` and `null` values is done\n // to match React's behavior on non-custom elements. It needs special\n // handling because it does not match platform behavior. For example,\n // setting the `id` property to `undefined` sets the attribute to the string\n // \"undefined.\" React \"fixes\" that odd behavior and the code here matches\n // React's convention.\n if (\n (value === undefined || value === null) &&\n name in HTMLElement.prototype\n ) {\n node.removeAttribute(name);\n return;\n }\n\n // But don't dirty check properties; elements are assumed to do this.\n node[name as keyof E] = value as E[keyof E];\n};\n\n// Set a React ref. Note, there are 2 kinds of refs and there's no built in\n// React API to set a ref.\nconst setRef = (ref: React.Ref<unknown>, value: Element | null) => {\n if (typeof ref === 'function') {\n ref(value);\n } else {\n (ref as {current: Element | null}).current = value;\n }\n};\n\n/**\n * Creates a React component for a custom element. Properties are distinguished\n * from attributes automatically, and events can be configured so they are\n * added to the custom element as event listeners.\n *\n * @param options An options bag containing the parameters needed to generate\n * a wrapped web component.\n *\n * @param options.react The React module, typically imported from the `react` npm\n * package.\n * @param options.tagName The custom element tag name registered via\n * `customElements.define`.\n * @param options.elementClass The custom element class registered via\n * `customElements.define`.\n * @param options.events An object listing events to which the component can listen. The\n * object keys are the event property names passed in via React props and the\n * object values are the names of the corresponding events generated by the\n * custom element. For example, given `{onactivate: 'activate'}` an event\n * function may be passed via the component's `onactivate` prop and will be\n * called when the custom element fires its `activate` event.\n * @param options.displayName A React component display name, used in debugging\n * messages. Default value is inferred from the name of custom element class\n * registered via `customElements.define`.\n */\nexport function createComponent<\n I extends HTMLElement,\n E extends EventNames = {}\n>(options: Options<I, E>): ReactWebComponent<I, E>;\n/**\n * @deprecated Use `createComponent(options)` instead of individual arguments.\n *\n * Creates a React component for a custom element. Properties are distinguished\n * from attributes automatically, and events can be configured so they are\n * added to the custom element as event listeners.\n *\n * @param React The React module, typically imported from the `react` npm\n * package.\n * @param tagName The custom element tag name registered via\n * `customElements.define`.\n * @param elementClass The custom element class registered via\n * `customElements.define`.\n * @param events An object listing events to which the component can listen. The\n * object keys are the event property names passed in via React props and the\n * object values are the names of the corresponding events generated by the\n * custom element. For example, given `{onactivate: 'activate'}` an event\n * function may be passed via the component's `onactivate` prop and will be\n * called when the custom element fires its `activate` event.\n * @param displayName A React component display name, used in debugging\n * messages. Default value is inferred from the name of custom element class\n * registered via `customElements.define`.\n */\nexport function createComponent<\n I extends HTMLElement,\n E extends EventNames = {}\n>(\n ReactOrOptions: typeof window.React,\n tagName: string,\n elementClass: Constructor<I>,\n events?: E,\n displayName?: string\n): ReactWebComponent<I, E>;\nexport function createComponent<\n I extends HTMLElement,\n E extends EventNames = {}\n>(\n ReactOrOptions: typeof window.React | Options<I, E> = window.React,\n tagName?: string,\n elementClass?: Constructor<I>,\n events?: E,\n displayName?: string\n): ReactWebComponent<I, E> {\n // digest overloaded parameters\n let React: typeof window.React;\n let tag: string;\n let element: Constructor<I>;\n if (tagName === undefined) {\n const options = ReactOrOptions as Options<I, E>;\n ({tagName: tag, elementClass: element, events, displayName} = options);\n React = options.react;\n } else {\n React = ReactOrOptions as typeof window.React;\n element = elementClass as Constructor<I>;\n tag = tagName;\n }\n\n // Warn users when web components use reserved React properties\n if (DEV_MODE) {\n for (const p of reservedReactProperties) {\n if (p in element.prototype && !(p in HTMLElement.prototype)) {\n // Note, this effectively warns only for `ref` since the other\n // reserved props are on HTMLElement.prototype. To address this\n // would require crawling down the prototype, which doesn't feel worth\n // it since implementing these properties on an element is extremely\n // rare.\n console.warn(`${tagName} contains property ${p} which is a React\nreserved property. It will be used by React and not set on\nthe element.`);\n }\n }\n }\n\n const Component = React.Component;\n const createElement = React.createElement;\n const eventProps = new Set(Object.keys(events ?? {}));\n\n type Props = ReactComponentProps<I, E>;\n\n class ReactComponent extends Component<Props> {\n private _element: I | null = null;\n private _elementProps!: Record<string, unknown>;\n private _forwardedRef?: React.Ref<I>;\n private _ref?: React.RefCallback<I>;\n\n static displayName = displayName ?? element.name;\n\n private _updateElement(oldProps?: Props) {\n if (this._element === null) {\n return;\n }\n // Set element properties to the values in `this.props`\n for (const prop in this._elementProps) {\n setProperty(\n this._element,\n prop,\n this.props[prop],\n oldProps ? oldProps[prop] : undefined,\n events\n );\n }\n // Note, the spirit of React might be to \"unset\" any old values that\n // are no longer included; however, there's no reasonable value to set\n // them to so we just leave the previous state as is.\n }\n\n /**\n * Updates element properties correctly setting properties\n * on mount.\n */\n override componentDidMount() {\n this._updateElement();\n }\n\n /**\n * Updates element properties correctly setting properties\n * on every update. Note, this does not include mount.\n */\n override componentDidUpdate(old: Props) {\n this._updateElement(old);\n }\n\n /**\n * Renders the custom element with a `ref` prop which allows this\n * component to reference the custom element.\n *\n * Standard attributes are passed to React and element properties and events\n * are updated in componentDidMount/componentDidUpdate.\n *\n */\n override render() {\n // Extract and remove __forwardedRef from userProps in a rename-safe way\n const {__forwardedRef, ...userProps} = this.props;\n // Since refs only get fulfilled once, pass a new one if the user's ref\n // changed. This allows refs to be fulfilled as expected, going from\n // having a value to null.\n if (this._forwardedRef !== __forwardedRef) {\n this._ref = (value: I | null) => {\n if (__forwardedRef !== null) {\n setRef(__forwardedRef, value);\n }\n\n this._element = value;\n this._forwardedRef = __forwardedRef;\n };\n }\n // Save element props while iterating to avoid the need to iterate again\n // when setting properties.\n this._elementProps = {};\n const props: Record<string, unknown> = {ref: this._ref};\n // Filters class properties and event properties out and passes the\n // remaining attributes to React. This allows attributes to use framework\n // rules for setting attributes and render correctly under SSR.\n for (const [k, v] of Object.entries(userProps)) {\n if (reservedReactProperties.has(k)) {\n // React does *not* handle `className` for custom elements so\n // coerce it to `class` so it's handled correctly.\n props[k === 'className' ? 'class' : k] = v;\n continue;\n }\n\n if (eventProps.has(k) || k in element.prototype) {\n this._elementProps[k] = v;\n continue;\n }\n\n props[k] = v;\n }\n return createElement<React.HTMLAttributes<I>, I>(tag, props);\n }\n }\n\n const ForwardedComponent: ReactWebComponent<I, E> = React.forwardRef<\n I,\n WebComponentProps<I, E>\n >((props, __forwardedRef) =>\n createElement<Props, ReactComponent, typeof ReactComponent>(\n ReactComponent,\n {...props, __forwardedRef},\n props?.children\n )\n );\n\n // To ease debugging in the React Developer Tools\n ForwardedComponent.displayName = ReactComponent.displayName;\n\n return ForwardedComponent;\n}\n"],
4
+ "sourcesContent": ["/* eslint-disable @typescript-eslint/ban-ts-comment */\n// @ts-nocheck\nimport React from \"react\";\nimport {\n type EventName,\n createComponent,\n ReactWebComponent,\n} from \"@lit-labs/react\";\nimport { ISelectOption } from \"./components/select/bl-select\";\nimport type BlAlertType from \"./components/alert/bl-alert\";\nimport type BlBadgeType from \"./components/badge/bl-badge\";\nimport type BlButtonType from \"./components/button/bl-button\";\nimport type BlCheckboxGroupType from \"./components/checkbox-group/bl-checkbox-group\";\nimport type BlDialogType from \"./components/dialog/bl-dialog\";\nimport type BlDrawerType from \"./components/drawer/bl-drawer\";\nimport type BlDropdownType from \"./components/dropdown/bl-dropdown\";\nimport type BlIconType from \"./components/icon/bl-icon\";\nimport type BlInputType from \"./components/input/bl-input\";\nimport type BlPaginationType from \"./components/pagination/bl-pagination\";\nimport type BlPopoverType from \"./components/popover/bl-popover\";\nimport type BlProgressIndicatorType from \"./components/progress-indicator/bl-progress-indicator\";\nimport type BlRadioGroupType from \"./components/radio-group/bl-radio-group\";\nimport type BlSelectType from \"./components/select/bl-select\";\nimport type BlSwitchType from \"./components/switch/bl-switch\";\nimport type BlTabGroupType from \"./components/tab-group/bl-tab-group\";\nimport type BlTextareaType from \"./components/textarea/bl-textarea\";\nimport type BlTooltipType from \"./components/tooltip/bl-tooltip\";\nimport type BlCheckboxType from \"./components/checkbox-group/checkbox/bl-checkbox\";\nimport type BlDropdownGroupType from \"./components/dropdown/group/bl-dropdown-group\";\nimport type BlDropdownItemType from \"./components/dropdown/item/bl-dropdown-item\";\nimport type BlRadioType from \"./components/radio-group/radio/bl-radio\";\nimport type BlSelectOptionType from \"./components/select/option/bl-select-option\";\nimport type BlTabType from \"./components/tab-group/tab/bl-tab\";\nimport type BlTabPanelType from \"./components/tab-group/tab-panel/bl-tab-panel\";\n\nexport const BlAlert = React.lazy<\n ReactWebComponent<BlAlertType, { onBlClose: EventName<CustomEvent<boolean>> }>\n>(() =>\n customElements.whenDefined(\"bl-alert\").then(() => ({\n default: createComponent<\n BlAlertType,\n { onBlClose: EventName<CustomEvent<boolean>> }\n >({\n react: React,\n tagName: \"bl-alert\",\n elementClass: customElements.get(\"bl-alert\"),\n events: { onBlClose: \"bl-close\" },\n }),\n }))\n);\n\nexport const BlBadge = React.lazy<ReactWebComponent<BlBadgeType>>(() =>\n customElements.whenDefined(\"bl-badge\").then(() => ({\n default: createComponent<BlBadgeType>({\n react: React,\n tagName: \"bl-badge\",\n elementClass: customElements.get(\"bl-badge\"),\n events: {},\n }),\n }))\n);\n\nexport const BlButton = React.lazy<\n ReactWebComponent<BlButtonType, { onBlClick: EventName<CustomEvent<string>> }>\n>(() =>\n customElements.whenDefined(\"bl-button\").then(() => ({\n default: createComponent<\n BlButtonType,\n { onBlClick: EventName<CustomEvent<string>> }\n >({\n react: React,\n tagName: \"bl-button\",\n elementClass: customElements.get(\"bl-button\"),\n events: { onBlClick: \"bl-click\" },\n }),\n }))\n);\n\nexport const BlCheckboxGroup = React.lazy<\n ReactWebComponent<\n BlCheckboxGroupType,\n { onBlCheckboxGroupChange: EventName<CustomEvent<string[]>> }\n >\n>(() =>\n customElements.whenDefined(\"bl-checkbox-group\").then(() => ({\n default: createComponent<\n BlCheckboxGroupType,\n { onBlCheckboxGroupChange: EventName<CustomEvent<string[]>> }\n >({\n react: React,\n tagName: \"bl-checkbox-group\",\n elementClass: customElements.get(\"bl-checkbox-group\"),\n events: { onBlCheckboxGroupChange: \"bl-checkbox-group-change\" },\n }),\n }))\n);\n\nexport const BlDialog = React.lazy<\n ReactWebComponent<\n BlDialogType,\n {\n onBlDialogOpen: EventName<CustomEvent<object>>;\n onBlDialogClose: EventName<CustomEvent<object>>;\n }\n >\n>(() =>\n customElements.whenDefined(\"bl-dialog\").then(() => ({\n default: createComponent<\n BlDialogType,\n {\n onBlDialogOpen: EventName<CustomEvent<object>>;\n onBlDialogClose: EventName<CustomEvent<object>>;\n }\n >({\n react: React,\n tagName: \"bl-dialog\",\n elementClass: customElements.get(\"bl-dialog\"),\n events: {\n onBlDialogOpen: \"bl-dialog-open\",\n onBlDialogClose: \"bl-dialog-close\",\n },\n }),\n }))\n);\n\nexport const BlDrawer = React.lazy<\n ReactWebComponent<\n BlDrawerType,\n {\n onBlDrawerOpen: EventName<CustomEvent<string>>;\n onBlDrawerClose: EventName<CustomEvent<string>>;\n }\n >\n>(() =>\n customElements.whenDefined(\"bl-drawer\").then(() => ({\n default: createComponent<\n BlDrawerType,\n {\n onBlDrawerOpen: EventName<CustomEvent<string>>;\n onBlDrawerClose: EventName<CustomEvent<string>>;\n }\n >({\n react: React,\n tagName: \"bl-drawer\",\n elementClass: customElements.get(\"bl-drawer\"),\n events: {\n onBlDrawerOpen: \"bl-drawer-open\",\n onBlDrawerClose: \"bl-drawer-close\",\n },\n }),\n }))\n);\n\nexport const BlDropdown = React.lazy<\n ReactWebComponent<\n BlDropdownType,\n {\n onBlDropdownOpen: EventName<CustomEvent<string>>;\n onBlDropdownClose: EventName<CustomEvent<string>>;\n }\n >\n>(() =>\n customElements.whenDefined(\"bl-dropdown\").then(() => ({\n default: createComponent<\n BlDropdownType,\n {\n onBlDropdownOpen: EventName<CustomEvent<string>>;\n onBlDropdownClose: EventName<CustomEvent<string>>;\n }\n >({\n react: React,\n tagName: \"bl-dropdown\",\n elementClass: customElements.get(\"bl-dropdown\"),\n events: {\n onBlDropdownOpen: \"bl-dropdown-open\",\n onBlDropdownClose: \"bl-dropdown-close\",\n },\n }),\n }))\n);\n\nexport const BlIcon = React.lazy<\n ReactWebComponent<\n BlIconType,\n {\n onBlLoad: EventName<CustomEvent<string>>;\n onBlError: EventName<CustomEvent<string>>;\n }\n >\n>(() =>\n customElements.whenDefined(\"bl-icon\").then(() => ({\n default: createComponent<\n BlIconType,\n {\n onBlLoad: EventName<CustomEvent<string>>;\n onBlError: EventName<CustomEvent<string>>;\n }\n >({\n react: React,\n tagName: \"bl-icon\",\n elementClass: customElements.get(\"bl-icon\"),\n events: { onBlLoad: \"bl-load\", onBlError: \"bl-error\" },\n }),\n }))\n);\n\nexport const BlInput = React.lazy<\n ReactWebComponent<\n BlInputType,\n {\n onBlChange: EventName<CustomEvent<string>>;\n onBlInput: EventName<CustomEvent<string>>;\n onBlInvalid: EventName<CustomEvent<ValidityState>>;\n }\n >\n>(() =>\n customElements.whenDefined(\"bl-input\").then(() => ({\n default: createComponent<\n BlInputType,\n {\n onBlChange: EventName<CustomEvent<string>>;\n onBlInput: EventName<CustomEvent<string>>;\n onBlInvalid: EventName<CustomEvent<ValidityState>>;\n }\n >({\n react: React,\n tagName: \"bl-input\",\n elementClass: customElements.get(\"bl-input\"),\n events: {\n onBlChange: \"bl-change\",\n onBlInput: \"bl-input\",\n onBlInvalid: \"bl-invalid\",\n },\n }),\n }))\n);\n\nexport const BlPagination = React.lazy<\n ReactWebComponent<\n BlPaginationType,\n {\n onBlChange: EventName<\n CustomEvent<{\n selectedPage: number;\n prevPage: number;\n itemsPerPage: number;\n }>\n >;\n }\n >\n>(() =>\n customElements.whenDefined(\"bl-pagination\").then(() => ({\n default: createComponent<\n BlPaginationType,\n {\n onBlChange: EventName<\n CustomEvent<{\n selectedPage: number;\n prevPage: number;\n itemsPerPage: number;\n }>\n >;\n }\n >({\n react: React,\n tagName: \"bl-pagination\",\n elementClass: customElements.get(\"bl-pagination\"),\n events: { onBlChange: \"bl-change\" },\n }),\n }))\n);\n\nexport const BlPopover = React.lazy<\n ReactWebComponent<\n BlPopoverType,\n {\n onBlPopoverShow: EventName<CustomEvent<string>>;\n onBlPopoverHide: EventName<CustomEvent<string>>;\n }\n >\n>(() =>\n customElements.whenDefined(\"bl-popover\").then(() => ({\n default: createComponent<\n BlPopoverType,\n {\n onBlPopoverShow: EventName<CustomEvent<string>>;\n onBlPopoverHide: EventName<CustomEvent<string>>;\n }\n >({\n react: React,\n tagName: \"bl-popover\",\n elementClass: customElements.get(\"bl-popover\"),\n events: {\n onBlPopoverShow: \"bl-popover-show\",\n onBlPopoverHide: \"bl-popover-hide\",\n },\n }),\n }))\n);\n\nexport const BlProgressIndicator = React.lazy<\n ReactWebComponent<BlProgressIndicatorType>\n>(() =>\n customElements.whenDefined(\"bl-progress-indicator\").then(() => ({\n default: createComponent<BlProgressIndicatorType>({\n react: React,\n tagName: \"bl-progress-indicator\",\n elementClass: customElements.get(\"bl-progress-indicator\"),\n events: {},\n }),\n }))\n);\n\nexport const BlRadioGroup = React.lazy<\n ReactWebComponent<\n BlRadioGroupType,\n { onBlRadioChange: EventName<CustomEvent<string>> }\n >\n>(() =>\n customElements.whenDefined(\"bl-radio-group\").then(() => ({\n default: createComponent<\n BlRadioGroupType,\n { onBlRadioChange: EventName<CustomEvent<string>> }\n >({\n react: React,\n tagName: \"bl-radio-group\",\n elementClass: customElements.get(\"bl-radio-group\"),\n events: { onBlRadioChange: \"bl-radio-change\" },\n }),\n }))\n);\n\nexport const BlSelect = React.lazy<\n ReactWebComponent<\n BlSelectType,\n { onBlSelect: EventName<CustomEvent<ISelectOption[]>> }\n >\n>(() =>\n customElements.whenDefined(\"bl-select\").then(() => ({\n default: createComponent<\n BlSelectType,\n { onBlSelect: EventName<CustomEvent<ISelectOption[]>> }\n >({\n react: React,\n tagName: \"bl-select\",\n elementClass: customElements.get(\"bl-select\"),\n events: { onBlSelect: \"bl-select\" },\n }),\n }))\n);\n\nexport const BlSwitch = React.lazy<\n ReactWebComponent<\n BlSwitchType,\n { onBlSwitchToggle: EventName<CustomEvent<boolean>> }\n >\n>(() =>\n customElements.whenDefined(\"bl-switch\").then(() => ({\n default: createComponent<\n BlSwitchType,\n { onBlSwitchToggle: EventName<CustomEvent<boolean>> }\n >({\n react: React,\n tagName: \"bl-switch\",\n elementClass: customElements.get(\"bl-switch\"),\n events: { onBlSwitchToggle: \"bl-switch-toggle\" },\n }),\n }))\n);\n\nexport const BlTabGroup = React.lazy<ReactWebComponent<BlTabGroupType>>(() =>\n customElements.whenDefined(\"bl-tab-group\").then(() => ({\n default: createComponent<BlTabGroupType>({\n react: React,\n tagName: \"bl-tab-group\",\n elementClass: customElements.get(\"bl-tab-group\"),\n events: {},\n }),\n }))\n);\n\nexport const BlTextarea = React.lazy<\n ReactWebComponent<\n BlTextareaType,\n {\n onBlInput: EventName<CustomEvent<string>>;\n onBlChange: EventName<CustomEvent<string>>;\n onBlInvalid: EventName<CustomEvent<ValidityState>>;\n }\n >\n>(() =>\n customElements.whenDefined(\"bl-textarea\").then(() => ({\n default: createComponent<\n BlTextareaType,\n {\n onBlInput: EventName<CustomEvent<string>>;\n onBlChange: EventName<CustomEvent<string>>;\n onBlInvalid: EventName<CustomEvent<ValidityState>>;\n }\n >({\n react: React,\n tagName: \"bl-textarea\",\n elementClass: customElements.get(\"bl-textarea\"),\n events: {\n onBlInput: \"bl-input\",\n onBlChange: \"bl-change\",\n onBlInvalid: \"bl-invalid\",\n },\n }),\n }))\n);\n\nexport const BlTooltip = React.lazy<\n ReactWebComponent<\n BlTooltipType,\n {\n onBlTooltipShow: EventName<CustomEvent<string>>;\n onBlTooltipHide: EventName<CustomEvent<string>>;\n }\n >\n>(() =>\n customElements.whenDefined(\"bl-tooltip\").then(() => ({\n default: createComponent<\n BlTooltipType,\n {\n onBlTooltipShow: EventName<CustomEvent<string>>;\n onBlTooltipHide: EventName<CustomEvent<string>>;\n }\n >({\n react: React,\n tagName: \"bl-tooltip\",\n elementClass: customElements.get(\"bl-tooltip\"),\n events: {\n onBlTooltipShow: \"bl-tooltip-show\",\n onBlTooltipHide: \"bl-tooltip-hide\",\n },\n }),\n }))\n);\n\nexport const BlCheckbox = React.lazy<\n ReactWebComponent<\n BlCheckboxType,\n {\n onBlCheckboxChange: EventName<CustomEvent<boolean>>;\n onBlFocus: EventName<CustomEvent<string>>;\n onBlBlur: EventName<CustomEvent<string>>;\n }\n >\n>(() =>\n customElements.whenDefined(\"bl-checkbox\").then(() => ({\n default: createComponent<\n BlCheckboxType,\n {\n onBlCheckboxChange: EventName<CustomEvent<boolean>>;\n onBlFocus: EventName<CustomEvent<string>>;\n onBlBlur: EventName<CustomEvent<string>>;\n }\n >({\n react: React,\n tagName: \"bl-checkbox\",\n elementClass: customElements.get(\"bl-checkbox\"),\n events: {\n onBlCheckboxChange: \"bl-checkbox-change\",\n onBlFocus: \"bl-focus\",\n onBlBlur: \"bl-blur\",\n },\n }),\n }))\n);\n\nexport const BlDropdownGroup = React.lazy<\n ReactWebComponent<BlDropdownGroupType>\n>(() =>\n customElements.whenDefined(\"bl-dropdown-group\").then(() => ({\n default: createComponent<BlDropdownGroupType>({\n react: React,\n tagName: \"bl-dropdown-group\",\n elementClass: customElements.get(\"bl-dropdown-group\"),\n events: {},\n }),\n }))\n);\n\nexport const BlDropdownItem = React.lazy<\n ReactWebComponent<\n BlDropdownItemType,\n { onBlDropdownItemClick: EventName<CustomEvent<string>> }\n >\n>(() =>\n customElements.whenDefined(\"bl-dropdown-item\").then(() => ({\n default: createComponent<\n BlDropdownItemType,\n { onBlDropdownItemClick: EventName<CustomEvent<string>> }\n >({\n react: React,\n tagName: \"bl-dropdown-item\",\n elementClass: customElements.get(\"bl-dropdown-item\"),\n events: { onBlDropdownItemClick: \"bl-dropdown-item-click\" },\n }),\n }))\n);\n\nexport const BlRadio = React.lazy<\n ReactWebComponent<\n BlRadioType,\n {\n onBlChecked: EventName<CustomEvent<string>>;\n onBlFocus: EventName<CustomEvent<string>>;\n onBlBlur: EventName<CustomEvent<string>>;\n }\n >\n>(() =>\n customElements.whenDefined(\"bl-radio\").then(() => ({\n default: createComponent<\n BlRadioType,\n {\n onBlChecked: EventName<CustomEvent<string>>;\n onBlFocus: EventName<CustomEvent<string>>;\n onBlBlur: EventName<CustomEvent<string>>;\n }\n >({\n react: React,\n tagName: \"bl-radio\",\n elementClass: customElements.get(\"bl-radio\"),\n events: {\n onBlChecked: \"bl-checked\",\n onBlFocus: \"bl-focus\",\n onBlBlur: \"bl-blur\",\n },\n }),\n }))\n);\n\nexport const BlSelectOption = React.lazy<\n ReactWebComponent<\n BlSelectOptionType,\n {\n onBlSelectOption: EventName<CustomEvent<string | null>>;\n onBlFocus: EventName<CustomEvent<string | null>>;\n onBlBlur: EventName<CustomEvent<string | null>>;\n }\n >\n>(() =>\n customElements.whenDefined(\"bl-select-option\").then(() => ({\n default: createComponent<\n BlSelectOptionType,\n {\n onBlSelectOption: EventName<CustomEvent<string | null>>;\n onBlFocus: EventName<CustomEvent<string | null>>;\n onBlBlur: EventName<CustomEvent<string | null>>;\n }\n >({\n react: React,\n tagName: \"bl-select-option\",\n elementClass: customElements.get(\"bl-select-option\"),\n events: {\n onBlSelectOption: \"bl-select-option\",\n onBlFocus: \"bl-focus\",\n onBlBlur: \"bl-blur\",\n },\n }),\n }))\n);\n\nexport const BlTab = React.lazy<\n ReactWebComponent<\n BlTabType,\n { onBlTabSelected: EventName<CustomEvent<string>> }\n >\n>(() =>\n customElements.whenDefined(\"bl-tab\").then(() => ({\n default: createComponent<\n BlTabType,\n { onBlTabSelected: EventName<CustomEvent<string>> }\n >({\n react: React,\n tagName: \"bl-tab\",\n elementClass: customElements.get(\"bl-tab\"),\n events: { onBlTabSelected: \"bl-tab-selected\" },\n }),\n }))\n);\n\nexport const BlTabPanel = React.lazy<ReactWebComponent<BlTabPanelType>>(() =>\n customElements.whenDefined(\"bl-tab-panel\").then(() => ({\n default: createComponent<BlTabPanelType>({\n react: React,\n tagName: \"bl-tab-panel\",\n elementClass: customElements.get(\"bl-tab-panel\"),\n events: {},\n }),\n }))\n);\n", "/**\n * @license\n * Copyright 2018 Google LLC\n * SPDX-License-Identifier: BSD-3-Clause\n */\n\n// Match a prop name to a typed event callback by\n// adding an Event type as an expected property on a string.\nexport type EventName<T extends Event = Event> = string & {\n __event_type: T;\n};\n\n// A key value map matching React prop names to event names\ntype EventNames = Record<string, EventName | string>;\n\n// A map of expected event listener types based on EventNames\ntype EventListeners<R extends EventNames> = {\n [K in keyof R]: R[K] extends EventName\n ? (e: R[K]['__event_type']) => void\n : (e: Event) => void;\n};\n\ntype ReactProps<I, E> = Omit<React.HTMLAttributes<I>, keyof E>;\ntype ElementWithoutPropsOrEventListeners<I, E> = Omit<\n I,\n keyof E | keyof ReactProps<I, E>\n>;\n\n// Props the user is allowed to use, includes standard attributes, children,\n// ref, as well as special event and element properties.\nexport type WebComponentProps<\n I extends HTMLElement,\n E extends EventNames = {}\n> = Partial<\n ReactProps<I, E> &\n ElementWithoutPropsOrEventListeners<I, E> &\n EventListeners<E>\n>;\n\n// Props used by this component wrapper. This is the WebComponentProps and the\n// special `__forwardedRef` property. Note, this ref is special because\n// it's both needed in this component to get access to the rendered element\n// and must fulfill any ref passed by the user.\ntype ReactComponentProps<\n I extends HTMLElement,\n E extends EventNames = {}\n> = WebComponentProps<I, E> & {\n __forwardedRef: React.Ref<I>;\n};\n\nexport type ReactWebComponent<\n I extends HTMLElement,\n E extends EventNames = {}\n> = React.ForwardRefExoticComponent<\n React.PropsWithoutRef<WebComponentProps<I, E>> & React.RefAttributes<I>\n>;\n\ninterface Options<I extends HTMLElement, E extends EventNames = {}> {\n tagName: string;\n elementClass: Constructor<I>;\n react: typeof window.React;\n events?: E;\n displayName?: string;\n}\n\ntype Constructor<T> = {new (): T};\n\nconst DEV_MODE = true;\n\nconst reservedReactProperties = new Set([\n 'children',\n 'localName',\n 'ref',\n 'style',\n 'className',\n]);\n\nconst listenedEvents: WeakMap<\n Element,\n Map<string, EventListenerObject>\n> = new WeakMap();\n\n/**\n * Adds an event listener for the specified event to the given node. In the\n * React setup, there should only ever be one event listener. Thus, for\n * efficiency only one listener is added and the handler for that listener is\n * updated to point to the given listener function.\n */\nconst addOrUpdateEventListener = (\n node: Element,\n event: string,\n listener: (event?: Event) => void\n) => {\n let events = listenedEvents.get(node);\n if (events === undefined) {\n listenedEvents.set(node, (events = new Map()));\n }\n let handler = events.get(event);\n if (listener !== undefined) {\n // If necessary, add listener and track handler\n if (handler === undefined) {\n events.set(event, (handler = {handleEvent: listener}));\n node.addEventListener(event, handler);\n // Otherwise just update the listener with new value\n } else {\n handler.handleEvent = listener;\n }\n // Remove listener if one exists and value is undefined\n } else if (handler !== undefined) {\n events.delete(event);\n node.removeEventListener(event, handler);\n }\n};\n\n/**\n * Sets properties and events on custom elements. These properties and events\n * have been pre-filtered so we know they should apply to the custom element.\n */\nconst setProperty = <E extends Element>(\n node: E,\n name: string,\n value: unknown,\n old: unknown,\n events?: EventNames\n) => {\n const event = events?.[name];\n if (event !== undefined && value !== old) {\n // Dirty check event value.\n addOrUpdateEventListener(node, event, value as (e?: Event) => void);\n return;\n }\n\n // Note, the attribute removal here for `undefined` and `null` values is done\n // to match React's behavior on non-custom elements. It needs special\n // handling because it does not match platform behavior. For example,\n // setting the `id` property to `undefined` sets the attribute to the string\n // \"undefined.\" React \"fixes\" that odd behavior and the code here matches\n // React's convention.\n if (\n (value === undefined || value === null) &&\n name in HTMLElement.prototype\n ) {\n node.removeAttribute(name);\n return;\n }\n\n // But don't dirty check properties; elements are assumed to do this.\n node[name as keyof E] = value as E[keyof E];\n};\n\n// Set a React ref. Note, there are 2 kinds of refs and there's no built in\n// React API to set a ref.\nconst setRef = (ref: React.Ref<unknown>, value: Element | null) => {\n if (typeof ref === 'function') {\n ref(value);\n } else {\n (ref as {current: Element | null}).current = value;\n }\n};\n\n/**\n * Creates a React component for a custom element. Properties are distinguished\n * from attributes automatically, and events can be configured so they are\n * added to the custom element as event listeners.\n *\n * @param options An options bag containing the parameters needed to generate\n * a wrapped web component.\n *\n * @param options.react The React module, typically imported from the `react` npm\n * package.\n * @param options.tagName The custom element tag name registered via\n * `customElements.define`.\n * @param options.elementClass The custom element class registered via\n * `customElements.define`.\n * @param options.events An object listing events to which the component can listen. The\n * object keys are the event property names passed in via React props and the\n * object values are the names of the corresponding events generated by the\n * custom element. For example, given `{onactivate: 'activate'}` an event\n * function may be passed via the component's `onactivate` prop and will be\n * called when the custom element fires its `activate` event.\n * @param options.displayName A React component display name, used in debugging\n * messages. Default value is inferred from the name of custom element class\n * registered via `customElements.define`.\n */\nexport function createComponent<\n I extends HTMLElement,\n E extends EventNames = {}\n>(options: Options<I, E>): ReactWebComponent<I, E>;\n/**\n * @deprecated Use `createComponent(options)` instead of individual arguments.\n *\n * Creates a React component for a custom element. Properties are distinguished\n * from attributes automatically, and events can be configured so they are\n * added to the custom element as event listeners.\n *\n * @param React The React module, typically imported from the `react` npm\n * package.\n * @param tagName The custom element tag name registered via\n * `customElements.define`.\n * @param elementClass The custom element class registered via\n * `customElements.define`.\n * @param events An object listing events to which the component can listen. The\n * object keys are the event property names passed in via React props and the\n * object values are the names of the corresponding events generated by the\n * custom element. For example, given `{onactivate: 'activate'}` an event\n * function may be passed via the component's `onactivate` prop and will be\n * called when the custom element fires its `activate` event.\n * @param displayName A React component display name, used in debugging\n * messages. Default value is inferred from the name of custom element class\n * registered via `customElements.define`.\n */\nexport function createComponent<\n I extends HTMLElement,\n E extends EventNames = {}\n>(\n ReactOrOptions: typeof window.React,\n tagName: string,\n elementClass: Constructor<I>,\n events?: E,\n displayName?: string\n): ReactWebComponent<I, E>;\nexport function createComponent<\n I extends HTMLElement,\n E extends EventNames = {}\n>(\n ReactOrOptions: typeof window.React | Options<I, E> = window.React,\n tagName?: string,\n elementClass?: Constructor<I>,\n events?: E,\n displayName?: string\n): ReactWebComponent<I, E> {\n // digest overloaded parameters\n let React: typeof window.React;\n let tag: string;\n let element: Constructor<I>;\n if (tagName === undefined) {\n const options = ReactOrOptions as Options<I, E>;\n ({tagName: tag, elementClass: element, events, displayName} = options);\n React = options.react;\n } else {\n React = ReactOrOptions as typeof window.React;\n element = elementClass as Constructor<I>;\n tag = tagName;\n }\n\n // Warn users when web components use reserved React properties\n if (DEV_MODE) {\n for (const p of reservedReactProperties) {\n if (p in element.prototype && !(p in HTMLElement.prototype)) {\n // Note, this effectively warns only for `ref` since the other\n // reserved props are on HTMLElement.prototype. To address this\n // would require crawling down the prototype, which doesn't feel worth\n // it since implementing these properties on an element is extremely\n // rare.\n console.warn(`${tagName} contains property ${p} which is a React\nreserved property. It will be used by React and not set on\nthe element.`);\n }\n }\n }\n\n const Component = React.Component;\n const createElement = React.createElement;\n const eventProps = new Set(Object.keys(events ?? {}));\n\n type Props = ReactComponentProps<I, E>;\n\n class ReactComponent extends Component<Props> {\n private _element: I | null = null;\n private _elementProps!: Record<string, unknown>;\n private _forwardedRef?: React.Ref<I>;\n private _ref?: React.RefCallback<I>;\n\n static displayName = displayName ?? element.name;\n\n private _updateElement(oldProps?: Props) {\n if (this._element === null) {\n return;\n }\n // Set element properties to the values in `this.props`\n for (const prop in this._elementProps) {\n setProperty(\n this._element,\n prop,\n this.props[prop],\n oldProps ? oldProps[prop] : undefined,\n events\n );\n }\n // Note, the spirit of React might be to \"unset\" any old values that\n // are no longer included; however, there's no reasonable value to set\n // them to so we just leave the previous state as is.\n }\n\n /**\n * Updates element properties correctly setting properties\n * on mount.\n */\n override componentDidMount() {\n this._updateElement();\n }\n\n /**\n * Updates element properties correctly setting properties\n * on every update. Note, this does not include mount.\n */\n override componentDidUpdate(old: Props) {\n this._updateElement(old);\n }\n\n /**\n * Renders the custom element with a `ref` prop which allows this\n * component to reference the custom element.\n *\n * Standard attributes are passed to React and element properties and events\n * are updated in componentDidMount/componentDidUpdate.\n *\n */\n override render() {\n // Extract and remove __forwardedRef from userProps in a rename-safe way\n const {__forwardedRef, ...userProps} = this.props;\n // Since refs only get fulfilled once, pass a new one if the user's ref\n // changed. This allows refs to be fulfilled as expected, going from\n // having a value to null.\n if (this._forwardedRef !== __forwardedRef) {\n this._ref = (value: I | null) => {\n if (__forwardedRef !== null) {\n setRef(__forwardedRef, value);\n }\n\n this._element = value;\n this._forwardedRef = __forwardedRef;\n };\n }\n // Save element props while iterating to avoid the need to iterate again\n // when setting properties.\n this._elementProps = {};\n const props: Record<string, unknown> = {ref: this._ref};\n // Filters class properties and event properties out and passes the\n // remaining attributes to React. This allows attributes to use framework\n // rules for setting attributes and render correctly under SSR.\n for (const [k, v] of Object.entries(userProps)) {\n if (reservedReactProperties.has(k)) {\n // React does *not* handle `className` for custom elements so\n // coerce it to `class` so it's handled correctly.\n props[k === 'className' ? 'class' : k] = v;\n continue;\n }\n\n if (eventProps.has(k) || k in element.prototype) {\n this._elementProps[k] = v;\n continue;\n }\n\n props[k] = v;\n }\n return createElement<React.HTMLAttributes<I>, I>(tag, props);\n }\n }\n\n const ForwardedComponent: ReactWebComponent<I, E> = React.forwardRef<\n I,\n WebComponentProps<I, E>\n >((props, __forwardedRef) =>\n createElement<Props, ReactComponent, typeof ReactComponent>(\n ReactComponent,\n {...props, __forwardedRef},\n props?.children\n )\n );\n\n // To ease debugging in the React Developer Tools\n ForwardedComponent.displayName = ReactComponent.displayName;\n\n return ForwardedComponent;\n}\n"],
5
5
  "mappings": "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",
6
6
  "names": ["React", "reservedReactProperties", "Set", "listenedEvents", "WeakMap", "setProperty", "node", "name", "value", "old", "events", "event", "HTMLElement", "prototype", "removeAttribute", "listener", "get", "set", "Map", "handler", "handleEvent", "addEventListener", "delete", "removeEventListener", "createComponent", "ReactOrOptions", "window", "React", "tagName", "elementClass", "displayName", "tag", "element", "options", "react", "Component", "createElement", "eventProps", "Object", "keys", "ReactComponent", "constructor", "this", "_element", "_updateElement", "oldProps", "prop", "_elementProps", "props", "componentDidMount", "componentDidUpdate", "render", "_$Gl", "__forwardedRef", "userProps", "_forwardedRef", "_ref", "ref", "current", "k", "v", "entries", "has", "ForwardedComponent", "forwardRef", "children", "BlAlert", "React", "s", "BlBadge", "BlButton", "BlCheckboxGroup", "BlDialog", "BlDrawer", "BlDropdown", "BlIcon", "BlInput", "BlPagination", "BlPopover", "BlProgressIndicator", "BlRadioGroup", "BlSelect", "BlSwitch", "BlTabGroup", "BlTextarea", "BlTooltip", "BlCheckbox", "BlDropdownGroup", "BlDropdownItem", "BlRadio", "BlSelectOption", "BlTab", "BlTabPanel"]
7
7
  }
package/dist/baklava.js CHANGED
@@ -1,2 +1,2 @@
1
- import{b as S}from"./chunk-YSAEBLYM.js";import{a as b}from"./chunk-TQBAGFBF.js";import{a as I}from"./chunk-YTUAZIEF.js";import{a as P}from"./chunk-6FK4ZU5B.js";import{a as g}from"./chunk-YMS5JP47.js";import{a as h}from"./chunk-32HGEMZF.js";import{b as T,d as G}from"./chunk-GUUZ6VA7.js";import{b as D}from"./chunk-FSYC7NDP.js";import{a as B}from"./chunk-Y4UXIJSO.js";import{a as m}from"./chunk-QASRATPF.js";import{a as s}from"./chunk-MCS3XLXD.js";import{a as x}from"./chunk-PUNHEAEI.js";import"./chunk-XQN3H7RG.js";import"./chunk-3B64VOWB.js";import{a as w}from"./chunk-4PG6AOX7.js";import"./chunk-ANYJUR6Q.js";import{a as n}from"./chunk-RFAEPGC3.js";import{c,f as i}from"./chunk-VXGOQPWU.js";import{a as r}from"./chunk-6UPKDZRW.js";import{a}from"./chunk-5JHQZCHW.js";import{b as f,e as p}from"./chunk-5AIFOXPM.js";import"./chunk-EPJ347EQ.js";import"./chunk-DJOD4BTL.js";import{a as d}from"./chunk-CI65YME7.js";import{a as u}from"./chunk-AZ42S4YP.js";import{b as l}from"./chunk-KGIPG6EV.js";import"./chunk-OLPYXE2P.js";import"./chunk-KPAWUBRO.js";import{a as o,b as e,c as t}from"./chunk-3SON7X7S.js";import"./chunk-RLMJN536.js";import"./chunk-23UFIOHV.js";import"./chunk-57PTZNIL.js";import"./chunk-NZ3RGSR6.js";export{r as BlAlert,a as BlBadge,l as BlButton,f as BlCheckbox,p as BlCheckboxGroup,d as BlDialog,u as BlDrawer,G as BlDropdown,D as BlDropdownGroup,T as BlDropdownItem,t as BlIcon,x as BlInput,B as BlPagination,w as BlPopover,n as BlProgressIndicator,c as BlRadio,i as BlRadioGroup,m as BlSelect,s as BlSelectOption,S as BlSwitch,I as BlTab,b as BlTabGroup,P as BlTabPanel,g as BlTextarea,h as BlTooltip,e as getIconPath,o as setIconPath};
1
+ import{b as S}from"./chunk-VDV6ZXM7.js";import{a as b}from"./chunk-TQBAGFBF.js";import{a as I}from"./chunk-YTUAZIEF.js";import{a as P}from"./chunk-6FK4ZU5B.js";import{a as g}from"./chunk-YMS5JP47.js";import{a as h}from"./chunk-32HGEMZF.js";import{b as T,d as G}from"./chunk-GUUZ6VA7.js";import{b as D}from"./chunk-FSYC7NDP.js";import{a as B}from"./chunk-Y4UXIJSO.js";import{a as m}from"./chunk-LV2MAELO.js";import{a as s}from"./chunk-MCS3XLXD.js";import{a as x}from"./chunk-PUNHEAEI.js";import"./chunk-XQN3H7RG.js";import"./chunk-3B64VOWB.js";import{a as w}from"./chunk-AWKMRQTR.js";import"./chunk-ANYJUR6Q.js";import{a as n}from"./chunk-RFAEPGC3.js";import{c,f as i}from"./chunk-VXGOQPWU.js";import{a as r}from"./chunk-6UPKDZRW.js";import{a}from"./chunk-5JHQZCHW.js";import{b as f,e as p}from"./chunk-5AIFOXPM.js";import"./chunk-EPJ347EQ.js";import"./chunk-DJOD4BTL.js";import{a as d}from"./chunk-CI65YME7.js";import{a as u}from"./chunk-AZ42S4YP.js";import{b as l}from"./chunk-KGIPG6EV.js";import"./chunk-OLPYXE2P.js";import"./chunk-KPAWUBRO.js";import{a as o,b as e,c as t}from"./chunk-3SON7X7S.js";import"./chunk-RLMJN536.js";import"./chunk-23UFIOHV.js";import"./chunk-57PTZNIL.js";import"./chunk-NZ3RGSR6.js";export{r as BlAlert,a as BlBadge,l as BlButton,f as BlCheckbox,p as BlCheckboxGroup,d as BlDialog,u as BlDrawer,G as BlDropdown,D as BlDropdownGroup,T as BlDropdownItem,t as BlIcon,x as BlInput,B as BlPagination,w as BlPopover,n as BlProgressIndicator,c as BlRadio,i as BlRadioGroup,m as BlSelect,s as BlSelectOption,S as BlSwitch,I as BlTab,b as BlTabGroup,P as BlTabPanel,g as BlTextarea,h as BlTooltip,e as getIconPath,o as setIconPath};
2
2
  //# sourceMappingURL=baklava.js.map
@@ -0,0 +1,5 @@
1
+ import{a as m,b as u,c as g,d as f,e as w,f as y,g as E,h as x}from"./chunk-ANYJUR6Q.js";import{a as b}from"./chunk-OLPYXE2P.js";import{a as n}from"./chunk-23UFIOHV.js";import{a as p,b as h,f as v,g as c,h as i,i as s,j as a}from"./chunk-57PTZNIL.js";import{a as o}from"./chunk-NZ3RGSR6.js";var O=p`.popover{--arrow-display:var(--bl-popover-arrow-display,none);--background-color:var(--bl-popover-background-color,var(--bl-color-neutral-full));--border-color:var(--bl-popover-border-color,var(--bl-color-primary-highlight));--padding:var(--bl-popover-padding,var(--bl-size-m));--border-radius:var(--bl-popover-border-radius,var(--bl-size-3xs));--position:var(--bl-popover-position,fixed);position:var(--position);box-sizing:border-box;border:1px solid var(--border-color);padding:var(--padding);border-radius:var(--border-radius);z-index:var(--bl-index-popover);width:max-content;hyphens:auto;background-color:var(--background-color);font:var(--bl-font-title-3-regular);color:var(--bl-color-neutral-darker)}.popover:not(.visible){visibility:hidden}.arrow{--arrow-rotation:45deg;box-sizing:border-box;display:var(--arrow-display);position:absolute;background-color:var(--background-color);width:var(--bl-size-2xs);height:var(--bl-size-2xs);transform:rotate(var(--arrow-rotation));border:1px solid var(--border-color);border-bottom:0;border-right:0}`,_=O;var t=class extends v{constructor(){super(...arguments);this.placement="bottom";this.fitSize=!1;this.offset=8;this._visible=!1;this._handleClickOutside=e=>{let r=e.composedPath();!r.includes(this._target)&&!r.includes(this)&&this.hide()}}static get styles(){return[_]}connectedCallback(){super.connectedCallback(),this._handlePopoverShowEvent=this._handlePopoverShowEvent.bind(this),this._handleKeydownEvent=this._handleKeydownEvent.bind(this),this._handleClickOutside=this._handleClickOutside.bind(this)}disconnectedCallback(){super.disconnectedCallback(),this.popoverAutoUpdateCleanup&&this.popoverAutoUpdateCleanup()}getMiddleware(){let e=[];return e.push(f(this.offset),g(),u(),w({padding:4})),this.fitSize&&e.push(y({apply(r){r.elements.floating&&r.elements.reference&&Object.assign(r.elements.floating.style,{"min-width":`${r.elements.reference.getBoundingClientRect().width}px`})}})),e.push(m({element:this.arrow,padding:5})),e}setPopover(){this.target&&(this.popoverAutoUpdateCleanup=E(this.target,this.popover,()=>{x(this.target,this.popover,{placement:this.placement,strategy:"fixed",middleware:this.getMiddleware()}).then(({x:e,y:r,placement:k,middlewareData:l})=>{if(Object.assign(this.popover.style,{left:`${e}px`,top:`${r}px`}),l.arrow){let{x:C,y:M}=l.arrow;Object.assign(this.arrow.style,{left:`${C}px`,top:`${M}px`});let S={top:"bottom",right:"left",bottom:"top",left:"right"},L={top:"225deg",right:"315deg",bottom:"45deg",left:"135deg"},d=k.split("-")[0],z=S[d];this.arrow.style.setProperty(z,"-5px"),this.arrow.style.setProperty("--arrow-rotation",L[d])}})}))}get target(){return this._target}set target(e){typeof e=="string"?this._target=document.getElementById(e):e instanceof Element?this._target=e:console.warn("BlPopover target only accepts an Element instance or a string id of a DOM element.")}show(){this._visible=!0,this.setPopover(),this.onBlPopoverShow(""),document.addEventListener("click",this._handleClickOutside),document.addEventListener("keydown",this._handleKeydownEvent),document.addEventListener("bl-popover-show",this._handlePopoverShowEvent)}hide(){this._visible=!1,document.removeEventListener("click",this._handleClickOutside),document.removeEventListener("keydown",this._handleKeydownEvent),document.removeEventListener("bl-popover-show",this._handlePopoverShowEvent),this.onBlPopoverHide("")}get visible(){return this._visible}_handlePopoverShowEvent(e){e.target!==this&&this.hide()}_handleKeydownEvent(e){e.key==="Escape"&&this.visible&&(e.preventDefault(),this.hide())}render(){let e=b({popover:!0,visible:this._visible});return h`<div class=${e}>
2
+ <slot id="popover" aria-live=${this._visible?"polite":"off"}></slot>
3
+ <div class="arrow" aria-hidden="true"></div>
4
+ </div>`}};o([a(".popover")],t.prototype,"popover",2),o([a(".arrow")],t.prototype,"arrow",2),o([i({type:String})],t.prototype,"placement",2),o([s()],t.prototype,"_target",2),o([i({type:Boolean,attribute:"fit-size"})],t.prototype,"fitSize",2),o([i({type:Number})],t.prototype,"offset",2),o([s()],t.prototype,"_visible",2),o([n("bl-popover-show")],t.prototype,"onBlPopoverShow",2),o([n("bl-popover-hide")],t.prototype,"onBlPopoverHide",2),o([i()],t.prototype,"target",1),t=o([c("bl-popover")],t);export{t as a};
5
+ //# sourceMappingURL=chunk-AWKMRQTR.js.map
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "version": 3,
3
3
  "sources": ["../src/components/popover/bl-popover.css", "../src/components/popover/bl-popover.ts"],
4
- "sourcesContent": ["import {css} from 'lit';\nexport const styles = css`.popover{--arrow-display:var(--bl-popover-arrow-display,none);--background-color:var(--bl-popover-background-color,var(--bl-color-neutral-full));--border-color:var(--bl-popover-border-color,var(--bl-color-primary-highlight));--padding:var(--bl-popover-padding,var(--bl-size-m));--border-radius:var(--bl-popover-border-radius,var(--bl-size-3xs));--position:var(--bl-popover-position,fixed);position:var(--position);box-sizing:border-box;border:1px solid var(--border-color);padding:var(--padding);border-radius:var(--border-radius);z-index:var(--bl-index-popover);width:max-content;hyphens:auto;background-color:var(--background-color);font:var(--bl-font-title-3-regular);color:var(--bl-color-neutral-darker)}.popover:not(.visible){visibility:hidden}.arrow{--arrow-rotation:45deg;box-sizing:border-box;display:var(--arrow-display);position:absolute;background-color:var(--background-color);width:var(--bl-size-2xs);height:var(--bl-size-2xs);transform:rotate(var(--arrow-rotation));border:1px solid var(--border-color);border-bottom:0;border-right:0}`;\nexport default styles;\n", "import { CSSResultGroup, html, LitElement, TemplateResult } from 'lit';\nimport { customElement, property, query, state } from 'lit/decorators.js';\nimport {\n computePosition,\n flip,\n shift,\n offset,\n arrow,\n inline,\n autoUpdate,\n size,\n Middleware,\n MiddlewareState,\n} from '@floating-ui/dom';\nimport { classMap } from 'lit/directives/class-map.js';\nimport style from './bl-popover.css';\nimport { event, EventDispatcher } from '../../utilities/event';\n\nexport type Placement =\n | 'top-start'\n | 'top'\n | 'top-end'\n | 'bottom-start'\n | 'bottom'\n | 'bottom-end'\n | 'left-start'\n | 'left'\n | 'left-end'\n | 'right-start'\n | 'right'\n | 'right-end';\n\n/**\n * @tag bl-popover\n * @summary Baklava Popover component\n *\n * @cssproperty [--bl-popover-arrow-display=none] - Sets the display of popovers arrow. Set as `block` to make arrow visible.\n * @cssproperty [--bl-popover-background-color=--bl-color-neutral-full] - Sets the background color of popover.\n * @cssproperty [--bl-popover-border-color=--bl-color-primary-highlight] - Sets the border color of popover.\n * @cssproperty [--bl-popover-padding=--bl-size-m] - Sets the padding of popover.\n * @cssproperty [--bl-popover-border-radius=--bl-size-3xs] - Sets the border radius of popover.\n * @cssproperty [--bl-popover-position=fixed] - Sets the position of popover. You can set it to `absolute` if parent element is a fixed positioned element like drawer or dialog.\n */\n@customElement('bl-popover')\nexport default class BlPopover extends LitElement {\n static get styles(): CSSResultGroup {\n return [style];\n }\n\n @query('.popover') private popover: HTMLElement;\n @query('.arrow') private arrow: HTMLElement;\n\n /**\n * Sets placement of the popover\n */\n @property({ type: String })\n placement: Placement = 'bottom';\n\n /**\n * Target elements state\n */\n @state() _target: string | Element;\n\n /**\n * Sets size of popover same as trigger element\n */\n @property({ type: Boolean, attribute: 'fit-size' })\n fitSize = false;\n\n /**\n * Sets the distance between popover and target/trigger element\n */\n @property({ type: Number })\n offset = 8;\n\n /**\n * Visibility state\n */\n @state() private _visible = false;\n\n /**\n * Fires when the popover is shown\n */\n @event('bl-popover-show') private onBlPopoverShow: EventDispatcher<string>;\n\n /**\n * Fires when popover becomes hidden\n */\n @event('bl-popover-hide') private onBlPopoverHide: EventDispatcher<string>;\n\n connectedCallback() {\n super.connectedCallback();\n\n this._handlePopoverShowEvent = this._handlePopoverShowEvent.bind(this);\n this._handleKeyupEvent = this._handleKeyupEvent.bind(this);\n this._handleClickOutside = this._handleClickOutside.bind(this);\n }\n\n disconnectedCallback() {\n super.disconnectedCallback();\n\n this.popoverAutoUpdateCleanup && this.popoverAutoUpdateCleanup();\n }\n\n private getMiddleware(): Middleware[] {\n const middlewareParams: Middleware[] = [];\n middlewareParams.push(offset(this.offset), inline(), flip(), shift({ padding: 4 }));\n\n if (this.fitSize) {\n middlewareParams.push(\n size({\n apply(args: MiddlewareState) {\n if (args.elements.floating && args.elements.reference) {\n Object.assign(args.elements.floating.style, {\n 'min-width': `${args.elements.reference.getBoundingClientRect().width}px`,\n });\n }\n },\n })\n );\n }\n\n middlewareParams.push(arrow({ element: this.arrow, padding: 5 }));\n\n return middlewareParams;\n }\n\n private _handleClickOutside = (event: MouseEvent) => {\n const eventPath = event.composedPath() as HTMLElement[];\n if (!eventPath.includes(this._target as HTMLElement) && !eventPath.includes(this)) {\n this.hide();\n }\n };\n\n private popoverAutoUpdateCleanup: () => void;\n\n private setPopover() {\n if (this.target) {\n this.popoverAutoUpdateCleanup = autoUpdate(this.target as Element, this.popover, () => {\n computePosition(this.target as Element, this.popover, {\n placement: this.placement,\n strategy: 'fixed',\n middleware: this.getMiddleware(),\n }).then(({ x, y, placement, middlewareData }) => {\n Object.assign(this.popover.style, {\n left: `${x}px`,\n top: `${y}px`,\n });\n\n if (middlewareData.arrow) {\n const { x: arrowX, y: arrowY } = middlewareData.arrow;\n\n Object.assign(this.arrow.style, {\n left: `${arrowX}px`,\n top: `${arrowY}px`,\n });\n\n const arrowFlipDirections = {\n top: 'bottom',\n right: 'left',\n bottom: 'top',\n left: 'right',\n };\n const arrowRotateDegrees = {\n top: '225deg',\n right: '315deg',\n bottom: '45deg',\n left: '135deg',\n };\n const popoverPlacement = placement.split('-')[0] as keyof typeof arrowFlipDirections;\n const arrowDirection = arrowFlipDirections[popoverPlacement];\n\n this.arrow.style.setProperty(arrowDirection, '-5px');\n this.arrow.style.setProperty('--arrow-rotation', arrowRotateDegrees[popoverPlacement]);\n }\n });\n });\n }\n }\n\n /**\n * Sets the target element of the popover to align and trigger.\n * It can be a string id of the target element or can be a direct Element reference of it.\n */\n @property()\n get target(): string | Element {\n return this._target;\n }\n\n set target(value: string | Element) {\n if (typeof value === 'string') {\n this._target = document.getElementById(value) as Element;\n } else if (value instanceof Element) {\n this._target = value;\n } else {\n console.warn(\n 'BlPopover target only accepts an Element instance or a string id of a DOM element.'\n );\n }\n }\n\n /**\n * Shows popover\n */\n show() {\n this._visible = true;\n this.setPopover();\n this.onBlPopoverShow('');\n document.addEventListener('click', this._handleClickOutside);\n document.addEventListener('keyup', this._handleKeyupEvent);\n document.addEventListener('bl-popover-show', this._handlePopoverShowEvent);\n }\n\n /**\n * Hides popover\n */\n hide() {\n this._visible = false;\n document.removeEventListener('click', this._handleClickOutside);\n document.removeEventListener('keyup', this._handleKeyupEvent);\n document.removeEventListener('bl-popover-show', this._handlePopoverShowEvent);\n this.onBlPopoverHide('');\n }\n\n /**\n * Gives the visibility status of the popover\n */\n get visible(): boolean {\n return this._visible;\n }\n\n private _handlePopoverShowEvent(event: Event) {\n if (event.target !== this) {\n this.hide();\n }\n }\n\n private _handleKeyupEvent(event: KeyboardEvent) {\n if (event.key === 'Escape' && this.visible) {\n this.hide();\n event.preventDefault();\n }\n }\n\n render(): TemplateResult {\n const classes = classMap({\n popover: true,\n visible: this._visible,\n });\n\n return html`<div class=${classes}>\n <slot id=\"popover\" aria-live=${this._visible ? 'polite' : 'off'}></slot>\n <div class=\"arrow\" aria-hidden=\"true\"></div>\n </div>`;\n }\n}\n\ndeclare global {\n interface HTMLElementTagNameMap {\n 'bl-popover': BlPopover;\n }\n}\n"],
5
- "mappings": "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",
4
+ "sourcesContent": ["import {css} from 'lit';\nexport const styles = css`.popover{--arrow-display:var(--bl-popover-arrow-display,none);--background-color:var(--bl-popover-background-color,var(--bl-color-neutral-full));--border-color:var(--bl-popover-border-color,var(--bl-color-primary-highlight));--padding:var(--bl-popover-padding,var(--bl-size-m));--border-radius:var(--bl-popover-border-radius,var(--bl-size-3xs));--position:var(--bl-popover-position,fixed);position:var(--position);box-sizing:border-box;border:1px solid var(--border-color);padding:var(--padding);border-radius:var(--border-radius);z-index:var(--bl-index-popover);width:max-content;hyphens:auto;background-color:var(--background-color);font:var(--bl-font-title-3-regular);color:var(--bl-color-neutral-darker)}.popover:not(.visible){visibility:hidden}.arrow{--arrow-rotation:45deg;box-sizing:border-box;display:var(--arrow-display);position:absolute;background-color:var(--background-color);width:var(--bl-size-2xs);height:var(--bl-size-2xs);transform:rotate(var(--arrow-rotation));border:1px solid var(--border-color);border-bottom:0;border-right:0}`;\nexport default styles;\n", "import { CSSResultGroup, html, LitElement, TemplateResult } from 'lit';\nimport { customElement, property, query, state } from 'lit/decorators.js';\nimport {\n computePosition,\n flip,\n shift,\n offset,\n arrow,\n inline,\n autoUpdate,\n size,\n Middleware,\n MiddlewareState,\n} from '@floating-ui/dom';\nimport { classMap } from 'lit/directives/class-map.js';\nimport style from './bl-popover.css';\nimport { event, EventDispatcher } from '../../utilities/event';\n\nexport type Placement =\n | 'top-start'\n | 'top'\n | 'top-end'\n | 'bottom-start'\n | 'bottom'\n | 'bottom-end'\n | 'left-start'\n | 'left'\n | 'left-end'\n | 'right-start'\n | 'right'\n | 'right-end';\n\n/**\n * @tag bl-popover\n * @summary Baklava Popover component\n *\n * @cssproperty [--bl-popover-arrow-display=none] - Sets the display of popovers arrow. Set as `block` to make arrow visible.\n * @cssproperty [--bl-popover-background-color=--bl-color-neutral-full] - Sets the background color of popover.\n * @cssproperty [--bl-popover-border-color=--bl-color-primary-highlight] - Sets the border color of popover.\n * @cssproperty [--bl-popover-padding=--bl-size-m] - Sets the padding of popover.\n * @cssproperty [--bl-popover-border-radius=--bl-size-3xs] - Sets the border radius of popover.\n * @cssproperty [--bl-popover-position=fixed] - Sets the position of popover. You can set it to `absolute` if parent element is a fixed positioned element like drawer or dialog.\n */\n@customElement('bl-popover')\nexport default class BlPopover extends LitElement {\n static get styles(): CSSResultGroup {\n return [style];\n }\n\n @query('.popover') private popover: HTMLElement;\n @query('.arrow') private arrow: HTMLElement;\n\n /**\n * Sets placement of the popover\n */\n @property({ type: String })\n placement: Placement = 'bottom';\n\n /**\n * Target elements state\n */\n @state() _target: string | Element;\n\n /**\n * Sets size of popover same as trigger element\n */\n @property({ type: Boolean, attribute: 'fit-size' })\n fitSize = false;\n\n /**\n * Sets the distance between popover and target/trigger element\n */\n @property({ type: Number })\n offset = 8;\n\n /**\n * Visibility state\n */\n @state() private _visible = false;\n\n /**\n * Fires when the popover is shown\n */\n @event('bl-popover-show') private onBlPopoverShow: EventDispatcher<string>;\n\n /**\n * Fires when popover becomes hidden\n */\n @event('bl-popover-hide') private onBlPopoverHide: EventDispatcher<string>;\n\n connectedCallback() {\n super.connectedCallback();\n\n this._handlePopoverShowEvent = this._handlePopoverShowEvent.bind(this);\n this._handleKeydownEvent = this._handleKeydownEvent.bind(this);\n this._handleClickOutside = this._handleClickOutside.bind(this);\n }\n\n disconnectedCallback() {\n super.disconnectedCallback();\n\n this.popoverAutoUpdateCleanup && this.popoverAutoUpdateCleanup();\n }\n\n private getMiddleware(): Middleware[] {\n const middlewareParams: Middleware[] = [];\n middlewareParams.push(offset(this.offset), inline(), flip(), shift({ padding: 4 }));\n\n if (this.fitSize) {\n middlewareParams.push(\n size({\n apply(args: MiddlewareState) {\n if (args.elements.floating && args.elements.reference) {\n Object.assign(args.elements.floating.style, {\n 'min-width': `${args.elements.reference.getBoundingClientRect().width}px`,\n });\n }\n },\n })\n );\n }\n\n middlewareParams.push(arrow({ element: this.arrow, padding: 5 }));\n\n return middlewareParams;\n }\n\n private _handleClickOutside = (event: MouseEvent) => {\n const eventPath = event.composedPath() as HTMLElement[];\n if (!eventPath.includes(this._target as HTMLElement) && !eventPath.includes(this)) {\n this.hide();\n }\n };\n\n private popoverAutoUpdateCleanup: () => void;\n\n private setPopover() {\n if (this.target) {\n this.popoverAutoUpdateCleanup = autoUpdate(this.target as Element, this.popover, () => {\n computePosition(this.target as Element, this.popover, {\n placement: this.placement,\n strategy: 'fixed',\n middleware: this.getMiddleware(),\n }).then(({ x, y, placement, middlewareData }) => {\n Object.assign(this.popover.style, {\n left: `${x}px`,\n top: `${y}px`,\n });\n\n if (middlewareData.arrow) {\n const { x: arrowX, y: arrowY } = middlewareData.arrow;\n\n Object.assign(this.arrow.style, {\n left: `${arrowX}px`,\n top: `${arrowY}px`,\n });\n\n const arrowFlipDirections = {\n top: 'bottom',\n right: 'left',\n bottom: 'top',\n left: 'right',\n };\n const arrowRotateDegrees = {\n top: '225deg',\n right: '315deg',\n bottom: '45deg',\n left: '135deg',\n };\n const popoverPlacement = placement.split('-')[0] as keyof typeof arrowFlipDirections;\n const arrowDirection = arrowFlipDirections[popoverPlacement];\n\n this.arrow.style.setProperty(arrowDirection, '-5px');\n this.arrow.style.setProperty('--arrow-rotation', arrowRotateDegrees[popoverPlacement]);\n }\n });\n });\n }\n }\n\n /**\n * Sets the target element of the popover to align and trigger.\n * It can be a string id of the target element or can be a direct Element reference of it.\n */\n @property()\n get target(): string | Element {\n return this._target;\n }\n\n set target(value: string | Element) {\n if (typeof value === 'string') {\n this._target = document.getElementById(value) as Element;\n } else if (value instanceof Element) {\n this._target = value;\n } else {\n console.warn(\n 'BlPopover target only accepts an Element instance or a string id of a DOM element.'\n );\n }\n }\n\n /**\n * Shows popover\n */\n show() {\n this._visible = true;\n this.setPopover();\n this.onBlPopoverShow('');\n document.addEventListener('click', this._handleClickOutside);\n document.addEventListener('keydown', this._handleKeydownEvent);\n document.addEventListener('bl-popover-show', this._handlePopoverShowEvent);\n }\n\n /**\n * Hides popover\n */\n hide() {\n this._visible = false;\n document.removeEventListener('click', this._handleClickOutside);\n document.removeEventListener('keydown', this._handleKeydownEvent);\n document.removeEventListener('bl-popover-show', this._handlePopoverShowEvent);\n this.onBlPopoverHide('');\n }\n\n /**\n * Gives the visibility status of the popover\n */\n get visible(): boolean {\n return this._visible;\n }\n\n private _handlePopoverShowEvent(event: Event) {\n if (event.target !== this) {\n this.hide();\n }\n }\n\n private _handleKeydownEvent(event: KeyboardEvent) {\n if (event.key === 'Escape' && this.visible) {\n event.preventDefault();\n this.hide();\n }\n }\n\n render(): TemplateResult {\n const classes = classMap({\n popover: true,\n visible: this._visible,\n });\n\n return html`<div class=${classes}>\n <slot id=\"popover\" aria-live=${this._visible ? 'polite' : 'off'}></slot>\n <div class=\"arrow\" aria-hidden=\"true\"></div>\n </div>`;\n }\n}\n\ndeclare global {\n interface HTMLElementTagNameMap {\n 'bl-popover': BlPopover;\n }\n}\n"],
5
+ "mappings": "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",
6
6
  "names": ["styles", "i", "bl_popover_default", "BlPopover", "s", "event", "eventPath", "bl_popover_default", "middlewareParams", "O", "T", "b", "D", "k", "args", "u", "P", "z", "x", "y", "placement", "middlewareData", "arrowX", "arrowY", "arrowFlipDirections", "arrowRotateDegrees", "popoverPlacement", "arrowDirection", "value", "classes", "o", "__decorateClass", "i", "e", "t"]
7
7
  }
@@ -39,4 +39,4 @@ import{a as m}from"./chunk-3B64VOWB.js";import{b as g,d as y,f as x,g as O,h as
39
39
  </div>
40
40
  <div class="hint">${e} ${o}</div>
41
41
  </div> `}handleKeydown(e){this.focusedOptionIndex===-1&&["Enter","Space"].includes(e.code)?(this.togglePopover(),e.preventDefault()):this._isPopoverOpen===!1&&["ArrowDown","ArrowUp"].includes(e.code)?(this.open(),e.preventDefault()):e.code==="Escape"?(this.close(),e.preventDefault()):this._isPopoverOpen&&["ArrowDown","ArrowUp"].includes(e.code)&&(e.code==="ArrowDown"&&this.focusedOptionIndex++,e.code==="ArrowUp"&&this.focusedOptionIndex--,this.focusedOptionIndex=Math.max(0,Math.min(this.focusedOptionIndex,this.options.length-1)),this.options[this.focusedOptionIndex].focus(),e.preventDefault())}togglePopover(){this._isPopoverOpen?this.close():this.open()}_handleSelectEvent(){this._onBlSelect(this._selectedOptions.map(e=>({value:e.value,selected:e.selected,text:e.textContent})))}_handleSingleSelect(e){this.value=e.value,this._handleSelectEvent(),this._isPopoverOpen=!1}_handleMultipleSelect(){this.value=this._connectedOptions.filter(e=>e.selected).map(e=>e.value),this._handleSelectEvent()}_handleSelectOptionEvent(e){let o=e.target;this.dirty=!0,this.multiple?this._handleMultipleSelect():this._handleSingleSelect(o)}_onClickRemove(e){e.stopPropagation(),this._connectedOptions.filter(o=>o.selected).forEach(o=>{o.selected=!1}),this.value=null,this._additionalSelectedOptionCount=0,this._handleSelectEvent()}_checkAdditionalItemCount(){if(!this.multiple||!this.selectedOptionsItems||this.selectedOptionsItems.length<2){this._additionalSelectedOptionCount=0;return}let e=[...this.selectedOptionsItems].findIndex(o=>o.offsetLeft>this.selectedOptionsContainer.offsetWidth);e>-1?this._additionalSelectedOptionCount=this.selectedOptionsItems.length-e:this._additionalSelectedOptionCount=0}firstUpdated(){this.value===void 0&&(this.value=""),this._initialValue=this._value}updated(e){e.has("multiple")&&typeof e.get("multiple")=="boolean"&&(this.value=null),this._checkAdditionalItemCount()}registerOption(e){this._connectedOptions.push(e),e.selected&&(this.multiple?(Array.isArray(this.value)||(this.value=[]),this.value=[...this.value,e.value]):this.value=e.value),this.setOptionsSelected(),this.requestUpdate()}unregisterOption(e){this._connectedOptions.splice(this._connectedOptions.indexOf(e),1)}};t.shadowRootOptions={...d.shadowRootOptions,delegatesFocus:!0},t.formControlValidators=[m],i([l()],t.prototype,"name",2),i([l()],t.prototype,"value",1),i([l({reflect:!0})],t.prototype,"label",2),i([l({})],t.prototype,"placeholder",2),i([l({type:String,reflect:!0})],t.prototype,"size",2),i([l({type:Boolean,reflect:!0})],t.prototype,"required",2),i([l({type:Boolean,reflect:!0})],t.prototype,"disabled",2),i([l({type:Boolean})],t.prototype,"multiple",2),i([l({type:Boolean,reflect:!0})],t.prototype,"autofocus",2),i([l({type:Boolean,attribute:"label-fixed",reflect:!0})],t.prototype,"labelFixed",2),i([l({type:String,attribute:"help-text"})],t.prototype,"helpText",2),i([l({type:String,attribute:"invalid-text"})],t.prototype,"customInvalidText",2),i([r()],t.prototype,"_isPopoverOpen",2),i([r()],t.prototype,"_additionalSelectedOptionCount",2),i([a(".selected-options")],t.prototype,"selectedOptionsContainer",2),i([h(".selected-options li")],t.prototype,"selectedOptionsItems",2),i([a(".popover")],t.prototype,"_popover",2),i([a(".select-input")],t.prototype,"_selectInput",2),i([v("bl-select")],t.prototype,"_onBlSelect",2),i([r()],t.prototype,"_selectedOptions",2),i([r()],t.prototype,"dirty",2),i([a(".select-input")],t.prototype,"validationTarget",2),t=i([u("bl-select")],t);export{t as a};
42
- //# sourceMappingURL=chunk-QASRATPF.js.map
42
+ //# sourceMappingURL=chunk-LV2MAELO.js.map
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "version": 3,
3
3
  "sources": ["../src/components/select/bl-select.css", "../src/components/select/bl-select.ts"],
4
- "sourcesContent": ["import {css} from 'lit';\nexport const styles = css`:host{width:200px;display:inline-block}.select-wrapper{width:100%;position:relative;display:grid;gap:var(--bl-size-3xs);--padding-vertical:var(--bl-size-2xs);--padding-horizontal:var(--bl-size-xs);--label-padding:var(--bl-size-3xs);--border-size:1px;--background-color:var(--bl-color-neutral-full);--border-color:var(--bl-color-neutral-lighter);--border-focus-color:var(--bl-color-primary-highlight);--icon-color:var(--bl-color-neutral-light);--text-color:var(--bl-color-neutral-darker);--label-color:var(--bl-color-neutral-dark);--placeholder-color:var(--bl-color-neutral-light);--height:var(--bl-size-2xl);--menu-padding:0 var(--bl-size-m);--menu-margin-top:var(--bl-size-2xs);--font-size:var(--bl-font-size-m);--disabled-color:var(--bl-color-neutral-lightest);--menu-height:250px;--popover-position:var(--bl-popover-position,fixed)}:host([size='large']) .select-wrapper{--height:var(--bl-size-3xl);--padding-vertical:var(--bl-size-xs);--padding-horizontal:var(--bl-size-m)}:host([size='small']) .select-wrapper{--height:var(--bl-size-xl);--padding-vertical:var(--bl-size-3xs);--padding-horizontal:var(--bl-size-xs);--font-size:var(--bl-font-size-s)}:host([disabled]) .select-wrapper{--placeholder-color:var(--bl-color-neutral-light)}.dirty.invalid{--border-color:var(--bl-color-danger);--border-focus-color:var(--bl-color-danger-highlight);--label-color:var(--bl-color-danger)}.select-input{display:grid;align-items:center;justify-content:space-between;grid-template-columns:1fr max-content max-content;cursor:pointer;box-sizing:border-box;height:var(--height);border:solid 1px var(--border-color);font:var(--bl-font-title-3-regular);padding:0 calc(var(--padding-horizontal) - var(--label-padding) - var(--border-size));border-radius:var(--bl-border-radius-s);color:var(--text-color);background-color:var(--background-color);-webkit-user-select:none;user-select:none;margin:0;width:0;min-width:100%}.placeholder{color:var(--placeholder-color);padding-left:var(--label-padding);white-space:nowrap;max-width:100%;overflow:hidden;text-overflow:ellipsis}.select-wrapper.selected .placeholder,:host([label]:not([label-fixed])) .select-wrapper:not(.select-open) .placeholder{display:none}.remove-all{display:none}.remove-all::after{content:'';position:absolute;left:1.5rem;bottom:4px;height:1rem;border-left:1px solid var(--bl-color-neutral-lighter)}.selected .remove-all{display:block}:host([disabled]) .remove-all,:host([disabled]) .remove-all::after{display:none}.dropdown-icon{font-size:var(--bl-font-size-m)}.dropdown-icon.open{display:none}.select-open .dropdown-icon.open{display:inline-block}.select-open .dropdown-icon.closed{display:none}.selected .dropdown-icon{--icon-color:var(--bl-color-neutral-darker)}:host([disabled]) .dropdown-icon{--icon-color:var(--bl-color-neutral-light)}.select-open .select-input,.select-input:focus-visible{border:solid 1px var(--border-focus-color);outline:0}:host([disabled]){cursor:not-allowed}:host([disabled]) .select-input{pointer-events:none;background-color:var(--disabled-color)}.select-input .selected-options{padding:0;padding-left:var(--label-padding);margin:0;list-style:none;flex:1;overflow:hidden;white-space:nowrap;text-overflow:ellipsis}.selected-options li{display:inline;font-size:var(--font-size);color:var(--text-color)}.selected-options li:not(:last-child)::after{content:', '}.select-input:not(.has-overflowed-options) .additional-selection-count{display:none}:host([disabled]) .selected-options li{color:var(--bl-color-neutral-light)}.select-input .actions{display:flex;align-items:center;justify-content:center;gap:var(--bl-size-2xs);margin-left:var(--bl-size-2xs)}.popover{--left:0;--top:0;position:var(--popover-position);border:solid 1px var(--border-color);background-color:var(--background-color);font:var(--bl-font-title-3-regular);border-radius:var(--bl-border-radius-s);padding:var(--menu-padding);outline:0;box-sizing:border-box;max-height:var(--menu-height);overflow-y:auto;display:none;flex-direction:column;z-index:var(--bl-index-popover);width:100%;top:var(--top);left:var(--left)}.select-open .popover{display:flex;border:solid 1px var(--border-focus-color)}bl-icon{color:var(--icon-color)}legend,label{max-width:max-content;padding:0;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}label{position:absolute;display:block;top:var(--padding-vertical);left:var(--padding-horizontal);right:calc(var(--bl-size-2xs) + var(--bl-size-m) + var(--bl-size-2xs));transition:all ease-in .1s;pointer-events:none;font:var(--bl-font-title-3-regular);font-size:var(--font-size);color:var(--placeholder-color)}legend{height:0;visibility:hidden;display:none}legend span{padding:0 var(--label-padding);display:inline-block;opacity:0;visibility:visible}:where(.select-open,.selected) label{top:0;transform:translateY(-50%);font:var(--bl-font-caption);color:var(--label-color);pointer-events:initial;right:var(--padding-horizontal)}:host([label]) :where(.select-open,.selected) legend{max-width:100%;font:var(--bl-font-caption);display:block}:host([label-fixed]) label{position:static;padding:0;transition:none;transform:none;pointer-events:initial;font:var(--bl-font-caption);color:var(--label-color)}:host([label-fixed]) legend{display:none}.hint{display:none;font:var(--bl-font-body-text-3)}.hint p{padding:0;margin:0}.error-icon,.invalid-text{display:none}.dirty.invalid label,.invalid-text,.error-icon{color:var(--bl-color-danger)}.help-text{color:var(--bl-color-neutral-dark)}.select-open .help-text,.select-open .invalid-text{visibility:hidden}:host([help-text]) .hint,.dirty.invalid .hint{display:block}.dirty.invalid .invalid-text{display:block}.dirty.invalid .help-text{display:none}`;\nexport default styles;\n", "import {\n autoUpdate,\n computePosition,\n flip,\n MiddlewareState,\n offset,\n size,\n} from '@floating-ui/dom';\nimport { FormControlMixin, requiredValidator } from '@open-wc/form-control';\nimport { FormValue } from '@open-wc/form-helpers';\nimport 'element-internals-polyfill';\nimport { CSSResultGroup, html, LitElement, PropertyValues } from 'lit';\nimport { customElement, property, query, queryAll, state } from 'lit/decorators.js';\nimport { classMap } from 'lit/directives/class-map.js';\nimport { ifDefined } from 'lit/directives/if-defined.js';\nimport { event, EventDispatcher } from '../../utilities/event';\nimport '../icon/bl-icon';\nimport style from '../select/bl-select.css';\nimport '../select/option/bl-select-option';\nimport type BlSelectOption from './option/bl-select-option';\n\nexport interface ISelectOption<T> {\n value: T;\n text: string;\n selected: boolean;\n}\n\nexport type SelectSize = 'medium' | 'large' | 'small';\n\nexport type CleanUpFunction = () => void;\n\n/**\n * @tag bl-select\n * @summary Baklava Select component\n *\n * @cssproperty [--bl-popover-position=fixed] Sets the positioning strategy of select popover. You can set it as `absolute` if you need to show popover relative to its trigger element.\n */\n@customElement('bl-select')\nexport default class BlSelect<ValueType extends FormValue = string> extends FormControlMixin(\n LitElement\n) {\n static get styles(): CSSResultGroup {\n return [style];\n }\n static shadowRootOptions = {...LitElement.shadowRootOptions, delegatesFocus: true};\n\n static formControlValidators = [requiredValidator];\n\n /**\n * Sets name of the select field\n */\n @property()\n name: string;\n\n private _value: ValueType | ValueType[] | null;\n\n private _initialValue: ValueType | ValueType[] | null;\n\n /**\n * Sets the value of the select\n */\n @property()\n get value(): ValueType | ValueType[] | null {\n return this._value;\n }\n\n set value(val: ValueType | ValueType[] | null) {\n this._value = val;\n\n if (Array.isArray(val)) {\n const formData = new FormData();\n val.forEach(option => formData.append(this.name, `${option}`));\n this.setValue(formData);\n } else {\n this.setValue(val);\n }\n\n this.setOptionsSelected();\n }\n\n shouldFormValueUpdate(): boolean {\n return this.value !== null && this.value !== '';\n }\n\n /* Declare reactive properties */\n /**\n * Sets the label value\n */\n @property({ reflect: true })\n label?: string;\n\n /**\n * Sets the placeholder value. If left blank, the label value (if specified) is set as placeholder.\n */\n @property({})\n placeholder?: string;\n\n /**\n * Sets the size value. Select component's height value will be changed accordingly\n */\n @property({ type: String, reflect: true })\n size: SelectSize = 'medium';\n\n /**\n * When option is not selected, shows component in error state\n */\n @property({ type: Boolean, reflect: true })\n required = false;\n\n /**\n * Shows the component in disabled state.\n */\n @property({ type: Boolean, reflect: true })\n disabled = false;\n\n /**\n * Allows multiple options to be selected\n */\n @property({ type: Boolean })\n multiple = false;\n\n /**\n * Sets input to get keyboard focus automatically\n */\n @property({ type: Boolean, reflect: true })\n autofocus = false;\n\n /**\n * Makes label as fixed positioned\n */\n @property({ type: Boolean, attribute: 'label-fixed', reflect: true })\n labelFixed = false;\n\n /**\n * Adds help text\n */\n @property({ type: String, attribute: 'help-text' })\n helpText?: string;\n\n /**\n * Set custom error message\n */\n @property({ type: String, attribute: 'invalid-text' })\n customInvalidText?: string;\n\n /* Declare internal reactive properties */\n @state()\n private _isPopoverOpen = false;\n\n @state()\n private _additionalSelectedOptionCount = 0;\n\n @query('.selected-options')\n private selectedOptionsContainer!: HTMLElement;\n\n @queryAll('.selected-options li')\n private selectedOptionsItems!: NodeListOf<HTMLElement>;\n\n @query('.popover')\n private _popover: HTMLElement;\n\n @query('.select-input')\n private _selectInput: HTMLElement;\n\n /**\n * Fires when selection changes\n */\n @event('bl-select') private _onBlSelect: EventDispatcher<ISelectOption<ValueType>[]>;\n\n private _connectedOptions: BlSelectOption<ValueType>[] = [];\n\n private _cleanUpPopover: CleanUpFunction | null = null;\n\n private setOptionsSelected() {\n this._connectedOptions.forEach(\n option =>\n (option.selected =\n this.value === option.value ||\n (Array.isArray(this.value) && this.value.includes(option.value)))\n );\n\n this._selectedOptions = [...this.options.filter(option => option.selected)];\n }\n\n get options() {\n return this._connectedOptions;\n }\n\n get opened() {\n return this._isPopoverOpen;\n }\n\n @state()\n private _selectedOptions: BlSelectOption<ValueType>[] = [];\n\n @state()\n private dirty = false;\n\n get selectedOptions(): BlSelectOption<ValueType>[] {\n return this._selectedOptions;\n }\n\n get additionalSelectedOptionCount() {\n return this._additionalSelectedOptionCount;\n }\n\n validityCallback(): string | void {\n if (this.customInvalidText) {\n return this.customInvalidText;\n }\n const select = document.createElement('select');\n select.required = this.required;\n\n return select.validationMessage;\n }\n\n reportValidity() {\n this.dirty = true;\n return this.checkValidity();\n }\n\n resetFormControl(): void {\n this.value = this._initialValue;\n }\n\n @query('.select-input')\n validationTarget: HTMLElement;\n\n open() {\n this._isPopoverOpen = true;\n this._setupPopover();\n document.addEventListener('click', this._interactOutsideHandler, true);\n document.addEventListener('focus', this._interactOutsideHandler, true);\n }\n\n close() {\n this._isPopoverOpen = false;\n this.focusedOptionIndex = -1;\n this._cleanUpPopover && this._cleanUpPopover();\n document.removeEventListener('click', this._interactOutsideHandler, true);\n document.removeEventListener('focus', this._interactOutsideHandler, true);\n }\n\n private _interactOutsideHandler = (event: MouseEvent | FocusEvent) => {\n const eventPath = event.composedPath() as HTMLElement[];\n\n if (!eventPath?.find(el => el.tagName === 'BL-SELECT')?.contains(this)) {\n this.close();\n }\n };\n\n private _setupPopover() {\n this._cleanUpPopover = autoUpdate(this._selectInput, this._popover, () => {\n computePosition(this._selectInput, this._popover, {\n placement: 'bottom',\n strategy: 'fixed',\n middleware: [\n flip(),\n offset(8),\n size({\n apply(args: MiddlewareState) {\n Object.assign(args.elements.floating.style, {\n width: `${args.elements.reference.getBoundingClientRect().width}px`,\n });\n },\n }),\n ],\n }).then(({ x, y }) => {\n this._popover.style.setProperty('--left', `${x}px`);\n this._popover.style.setProperty('--top', `${y}px`);\n });\n });\n }\n\n connectedCallback(): void {\n super.connectedCallback();\n\n this.form?.addEventListener('submit', (e: SubmitEvent) => {\n if (!this.reportValidity()) {\n e.preventDefault();\n }\n });\n }\n\n disconnectedCallback() {\n super.disconnectedCallback();\n\n this._cleanUpPopover && this._cleanUpPopover();\n }\n\n private inputTemplate() {\n const inputSelectedOptions = html`<ul class=\"selected-options\">\n ${this._selectedOptions.map(item => html`<li>${item.textContent}</li>`)}\n </ul>`;\n const removeButton = html`<bl-button\n class=\"remove-all\"\n size=\"small\"\n variant=\"tertiary\"\n kind=\"neutral\"\n icon=\"close\"\n @click=${this._onClickRemove}\n ></bl-button>`;\n\n return html`<fieldset\n class=${classMap({\n 'select-input': true,\n 'has-overflowed-options': this._additionalSelectedOptionCount > 0,\n })}\n tabindex=\"${this.disabled ? '-1' : 0}\"\n ?autofocus=${this.autofocus}\n @click=${this.togglePopover}\n >\n <legend><span>${this.label}</span></legend>\n <span class=\"placeholder\">${this.placeholder}</span>\n ${inputSelectedOptions}\n <span class=\"additional-selection-count\">+${this._additionalSelectedOptionCount}</span>\n <div class=\"actions\">\n ${this.multiple ? removeButton : null}\n <bl-icon class=\"dropdown-icon open\" name=\"arrow_up\"></bl-icon>\n\n <bl-icon class=\"dropdown-icon closed\" name=\"arrow_down\"></bl-icon>\n </div>\n </fieldset>`;\n }\n\n render() {\n const invalidMessage = !this.checkValidity()\n ? html`<p id=\"errorMessage\" aria-live=\"polite\" class=\"invalid-text\">\n ${this.validationMessage}\n </p>`\n : '';\n\n const helpMessage = this.helpText ? html`<p class=\"help-text\">${this.helpText}</p>` : '';\n\n const label = this.label ? html`<label>${this.label}</label>` : '';\n\n return html`<div\n class=${classMap({\n 'select-wrapper': true,\n 'select-open': this.opened,\n 'selected': this._selectedOptions.length > 0,\n 'invalid': !this.validity.valid,\n 'dirty': this.dirty,\n })}\n @keydown=${this.handleKeydown}\n >\n ${label} ${this.inputTemplate()}\n <div\n class=\"popover\"\n tabindex=\"${ifDefined(this._isPopoverOpen ? undefined : '-1')}\"\n @bl-select-option=${this._handleSelectOptionEvent}\n >\n <slot></slot>\n </div>\n <div class=\"hint\">${invalidMessage} ${helpMessage}</div>\n </div> `;\n }\n\n private focusedOptionIndex = -1;\n\n private handleKeydown(event: KeyboardEvent) {\n if (this.focusedOptionIndex === -1 && ['Enter', 'Space'].includes(event.code)) {\n this.togglePopover();\n event.preventDefault();\n } else if (this._isPopoverOpen === false && ['ArrowDown', 'ArrowUp'].includes(event.code)) {\n this.open();\n event.preventDefault();\n } else if (event.code === 'Escape') {\n this.close();\n event.preventDefault();\n } else if (this._isPopoverOpen && ['ArrowDown', 'ArrowUp'].includes(event.code)) {\n event.code === 'ArrowDown' && this.focusedOptionIndex++;\n event.code === 'ArrowUp' && this.focusedOptionIndex--;\n\n // Don't exceed array indexes\n this.focusedOptionIndex = Math.max(\n 0,\n Math.min(this.focusedOptionIndex, this.options.length - 1)\n );\n\n this.options[this.focusedOptionIndex].focus();\n\n event.preventDefault();\n }\n }\n\n private togglePopover() {\n this._isPopoverOpen ? this.close() : this.open();\n }\n\n private _handleSelectEvent() {\n this._onBlSelect(\n this._selectedOptions.map(\n option =>\n ({\n value: option.value,\n selected: option.selected,\n text: option.textContent,\n } as ISelectOption<ValueType>)\n )\n );\n }\n\n private _handleSingleSelect(optionItem: BlSelectOption<ValueType>) {\n this.value = optionItem.value;\n\n this._handleSelectEvent();\n this._isPopoverOpen = false;\n }\n\n private _handleMultipleSelect() {\n this.value = this._connectedOptions\n .filter(option => option.selected)\n .map(option => option.value);\n\n this._handleSelectEvent();\n }\n\n private _handleSelectOptionEvent(e: CustomEvent) {\n const optionItem = e.target as BlSelectOption<ValueType>;\n this.dirty = true;\n\n if (this.multiple) {\n this._handleMultipleSelect();\n } else {\n this._handleSingleSelect(optionItem);\n }\n }\n\n private _onClickRemove(e: MouseEvent) {\n e.stopPropagation();\n\n this._connectedOptions\n .filter(option => option.selected)\n .forEach(option => {\n option.selected = false;\n });\n\n this.value = null;\n this._additionalSelectedOptionCount = 0;\n this._handleSelectEvent();\n }\n\n private _checkAdditionalItemCount() {\n if (!this.multiple || !this.selectedOptionsItems || this.selectedOptionsItems.length < 2) {\n this._additionalSelectedOptionCount = 0;\n return;\n }\n\n const firstNonVisibleItemIndex = [...this.selectedOptionsItems].findIndex(\n item => item.offsetLeft > this.selectedOptionsContainer.offsetWidth\n );\n\n if (firstNonVisibleItemIndex > -1) {\n this._additionalSelectedOptionCount =\n this.selectedOptionsItems.length - firstNonVisibleItemIndex;\n } else {\n this._additionalSelectedOptionCount = 0;\n }\n }\n\n protected firstUpdated(): void {\n if (this.value === undefined) {\n this.value = '' as ValueType;\n }\n\n this._initialValue = this._value;\n }\n\n protected updated(_changedProperties: PropertyValues) {\n if (\n _changedProperties.has('multiple') &&\n typeof _changedProperties.get('multiple') === 'boolean'\n ) {\n this.value = null;\n }\n\n this._checkAdditionalItemCount();\n }\n\n /**\n * This method is used by `bl-select-option` component to register itself to bl-select.\n * @param option BlSelectOption reference to be registered\n */\n registerOption(option: BlSelectOption<ValueType>) {\n this._connectedOptions.push(option);\n\n if (option.selected) {\n if (this.multiple) {\n if (!Array.isArray(this.value)) {\n this.value = [];\n }\n this.value = [...this.value, option.value];\n } else {\n this.value = option.value;\n }\n }\n\n this.setOptionsSelected();\n this.requestUpdate();\n }\n\n /**\n * This method is used by `bl-select-option` component to unregister itself from bl-select.\n * @param option BlSelectOption reference to be unregistered\n */\n unregisterOption(option: BlSelectOption<ValueType>) {\n this._connectedOptions.splice(this._connectedOptions.indexOf(option), 1);\n }\n}\n\ndeclare global {\n interface HTMLElementTagNameMap {\n 'bl-select': BlSelect;\n }\n}\n"],
4
+ "sourcesContent": ["import {css} from 'lit';\nexport const styles = css`:host{width:200px;display:inline-block}.select-wrapper{width:100%;position:relative;display:grid;gap:var(--bl-size-3xs);--padding-vertical:var(--bl-size-2xs);--padding-horizontal:var(--bl-size-xs);--label-padding:var(--bl-size-3xs);--border-size:1px;--background-color:var(--bl-color-neutral-full);--border-color:var(--bl-color-neutral-lighter);--border-focus-color:var(--bl-color-primary-highlight);--icon-color:var(--bl-color-neutral-light);--text-color:var(--bl-color-neutral-darker);--label-color:var(--bl-color-neutral-dark);--placeholder-color:var(--bl-color-neutral-light);--height:var(--bl-size-2xl);--menu-padding:0 var(--bl-size-m);--menu-margin-top:var(--bl-size-2xs);--font-size:var(--bl-font-size-m);--disabled-color:var(--bl-color-neutral-lightest);--menu-height:250px;--popover-position:var(--bl-popover-position,fixed)}:host([size='large']) .select-wrapper{--height:var(--bl-size-3xl);--padding-vertical:var(--bl-size-xs);--padding-horizontal:var(--bl-size-m)}:host([size='small']) .select-wrapper{--height:var(--bl-size-xl);--padding-vertical:var(--bl-size-3xs);--padding-horizontal:var(--bl-size-xs);--font-size:var(--bl-font-size-s)}:host([disabled]) .select-wrapper{--placeholder-color:var(--bl-color-neutral-light)}.dirty.invalid{--border-color:var(--bl-color-danger);--border-focus-color:var(--bl-color-danger-highlight);--label-color:var(--bl-color-danger)}.select-input{display:grid;align-items:center;justify-content:space-between;grid-template-columns:1fr max-content max-content;cursor:pointer;box-sizing:border-box;height:var(--height);border:solid 1px var(--border-color);font:var(--bl-font-title-3-regular);padding:0 calc(var(--padding-horizontal) - var(--label-padding) - var(--border-size));border-radius:var(--bl-border-radius-s);color:var(--text-color);background-color:var(--background-color);-webkit-user-select:none;user-select:none;margin:0;width:0;min-width:100%}.placeholder{color:var(--placeholder-color);padding-left:var(--label-padding);white-space:nowrap;max-width:100%;overflow:hidden;text-overflow:ellipsis}.select-wrapper.selected .placeholder,:host([label]:not([label-fixed])) .select-wrapper:not(.select-open) .placeholder{display:none}.remove-all{display:none}.remove-all::after{content:'';position:absolute;left:1.5rem;bottom:4px;height:1rem;border-left:1px solid var(--bl-color-neutral-lighter)}.selected .remove-all{display:block}:host([disabled]) .remove-all,:host([disabled]) .remove-all::after{display:none}.dropdown-icon{font-size:var(--bl-font-size-m)}.dropdown-icon.open{display:none}.select-open .dropdown-icon.open{display:inline-block}.select-open .dropdown-icon.closed{display:none}.selected .dropdown-icon{--icon-color:var(--bl-color-neutral-darker)}:host([disabled]) .dropdown-icon{--icon-color:var(--bl-color-neutral-light)}.select-open .select-input,.select-input:focus-visible{border:solid 1px var(--border-focus-color);outline:0}:host([disabled]){cursor:not-allowed}:host([disabled]) .select-input{pointer-events:none;background-color:var(--disabled-color)}.select-input .selected-options{padding:0;padding-left:var(--label-padding);margin:0;list-style:none;flex:1;overflow:hidden;white-space:nowrap;text-overflow:ellipsis}.selected-options li{display:inline;font-size:var(--font-size);color:var(--text-color)}.selected-options li:not(:last-child)::after{content:', '}.select-input:not(.has-overflowed-options) .additional-selection-count{display:none}:host([disabled]) .selected-options li{color:var(--bl-color-neutral-light)}.select-input .actions{display:flex;align-items:center;justify-content:center;gap:var(--bl-size-2xs);margin-left:var(--bl-size-2xs)}.popover{--left:0;--top:0;position:var(--popover-position);border:solid 1px var(--border-color);background-color:var(--background-color);font:var(--bl-font-title-3-regular);border-radius:var(--bl-border-radius-s);padding:var(--menu-padding);outline:0;box-sizing:border-box;max-height:var(--menu-height);overflow-y:auto;display:none;flex-direction:column;z-index:var(--bl-index-popover);width:100%;top:var(--top);left:var(--left)}.select-open .popover{display:flex;border:solid 1px var(--border-focus-color)}bl-icon{color:var(--icon-color)}legend,label{max-width:max-content;padding:0;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}label{position:absolute;display:block;top:var(--padding-vertical);left:var(--padding-horizontal);right:calc(var(--bl-size-2xs) + var(--bl-size-m) + var(--bl-size-2xs));transition:all ease-in .1s;pointer-events:none;font:var(--bl-font-title-3-regular);font-size:var(--font-size);color:var(--placeholder-color)}legend{height:0;visibility:hidden;display:none}legend span{padding:0 var(--label-padding);display:inline-block;opacity:0;visibility:visible}:where(.select-open,.selected) label{top:0;transform:translateY(-50%);font:var(--bl-font-caption);color:var(--label-color);pointer-events:initial;right:var(--padding-horizontal)}:host([label]) :where(.select-open,.selected) legend{max-width:100%;font:var(--bl-font-caption);display:block}:host([label-fixed]) label{position:static;padding:0;transition:none;transform:none;pointer-events:initial;font:var(--bl-font-caption);color:var(--label-color)}:host([label-fixed]) legend{display:none}.hint{display:none;font:var(--bl-font-body-text-3)}.hint p{padding:0;margin:0}.error-icon,.invalid-text{display:none}.dirty.invalid label,.invalid-text,.error-icon{color:var(--bl-color-danger)}.help-text{color:var(--bl-color-neutral-dark)}.select-open .help-text,.select-open .invalid-text{visibility:hidden}:host([help-text]) .hint,.dirty.invalid .hint{display:block}.dirty.invalid .invalid-text{display:block}.dirty.invalid .help-text{display:none}`;\nexport default styles;\n", "import {\n autoUpdate,\n computePosition,\n flip,\n MiddlewareState,\n offset,\n size,\n} from '@floating-ui/dom';\nimport { FormControlMixin, requiredValidator } from '@open-wc/form-control';\nimport { FormValue } from '@open-wc/form-helpers';\nimport 'element-internals-polyfill';\nimport { CSSResultGroup, html, LitElement, PropertyValues } from 'lit';\nimport { customElement, property, query, queryAll, state } from 'lit/decorators.js';\nimport { classMap } from 'lit/directives/class-map.js';\nimport { ifDefined } from 'lit/directives/if-defined.js';\nimport { event, EventDispatcher } from '../../utilities/event';\nimport '../icon/bl-icon';\nimport style from '../select/bl-select.css';\nimport '../select/option/bl-select-option';\nimport type BlSelectOption from './option/bl-select-option';\n\nexport interface ISelectOption<T = string> {\n value: T;\n text: string;\n selected: boolean;\n}\n\nexport type SelectSize = 'medium' | 'large' | 'small';\n\nexport type CleanUpFunction = () => void;\n\n/**\n * @tag bl-select\n * @summary Baklava Select component\n *\n * @cssproperty [--bl-popover-position=fixed] Sets the positioning strategy of select popover. You can set it as `absolute` if you need to show popover relative to its trigger element.\n */\n@customElement('bl-select')\nexport default class BlSelect<ValueType extends FormValue = string> extends FormControlMixin(\n LitElement\n) {\n static get styles(): CSSResultGroup {\n return [style];\n }\n static shadowRootOptions = {...LitElement.shadowRootOptions, delegatesFocus: true};\n\n static formControlValidators = [requiredValidator];\n\n /**\n * Sets name of the select field\n */\n @property()\n name: string;\n\n private _value: ValueType | ValueType[] | null;\n\n private _initialValue: ValueType | ValueType[] | null;\n\n /**\n * Sets the value of the select\n */\n @property()\n get value(): ValueType | ValueType[] | null {\n return this._value;\n }\n\n set value(val: ValueType | ValueType[] | null) {\n this._value = val;\n\n if (Array.isArray(val)) {\n const formData = new FormData();\n val.forEach(option => formData.append(this.name, `${option}`));\n this.setValue(formData);\n } else {\n this.setValue(val);\n }\n\n this.setOptionsSelected();\n }\n\n shouldFormValueUpdate(): boolean {\n return this.value !== null && this.value !== '';\n }\n\n /* Declare reactive properties */\n /**\n * Sets the label value\n */\n @property({ reflect: true })\n label?: string;\n\n /**\n * Sets the placeholder value. If left blank, the label value (if specified) is set as placeholder.\n */\n @property({})\n placeholder?: string;\n\n /**\n * Sets the size value. Select component's height value will be changed accordingly\n */\n @property({ type: String, reflect: true })\n size: SelectSize = 'medium';\n\n /**\n * When option is not selected, shows component in error state\n */\n @property({ type: Boolean, reflect: true })\n required = false;\n\n /**\n * Shows the component in disabled state.\n */\n @property({ type: Boolean, reflect: true })\n disabled = false;\n\n /**\n * Allows multiple options to be selected\n */\n @property({ type: Boolean })\n multiple = false;\n\n /**\n * Sets input to get keyboard focus automatically\n */\n @property({ type: Boolean, reflect: true })\n autofocus = false;\n\n /**\n * Makes label as fixed positioned\n */\n @property({ type: Boolean, attribute: 'label-fixed', reflect: true })\n labelFixed = false;\n\n /**\n * Adds help text\n */\n @property({ type: String, attribute: 'help-text' })\n helpText?: string;\n\n /**\n * Set custom error message\n */\n @property({ type: String, attribute: 'invalid-text' })\n customInvalidText?: string;\n\n /* Declare internal reactive properties */\n @state()\n private _isPopoverOpen = false;\n\n @state()\n private _additionalSelectedOptionCount = 0;\n\n @query('.selected-options')\n private selectedOptionsContainer!: HTMLElement;\n\n @queryAll('.selected-options li')\n private selectedOptionsItems!: NodeListOf<HTMLElement>;\n\n @query('.popover')\n private _popover: HTMLElement;\n\n @query('.select-input')\n private _selectInput: HTMLElement;\n\n /**\n * Fires when selection changes\n */\n @event('bl-select') private _onBlSelect: EventDispatcher<ISelectOption<ValueType>[]>;\n\n private _connectedOptions: BlSelectOption<ValueType>[] = [];\n\n private _cleanUpPopover: CleanUpFunction | null = null;\n\n private setOptionsSelected() {\n this._connectedOptions.forEach(\n option =>\n (option.selected =\n this.value === option.value ||\n (Array.isArray(this.value) && this.value.includes(option.value)))\n );\n\n this._selectedOptions = [...this.options.filter(option => option.selected)];\n }\n\n get options() {\n return this._connectedOptions;\n }\n\n get opened() {\n return this._isPopoverOpen;\n }\n\n @state()\n private _selectedOptions: BlSelectOption<ValueType>[] = [];\n\n @state()\n private dirty = false;\n\n get selectedOptions(): BlSelectOption<ValueType>[] {\n return this._selectedOptions;\n }\n\n get additionalSelectedOptionCount() {\n return this._additionalSelectedOptionCount;\n }\n\n validityCallback(): string | void {\n if (this.customInvalidText) {\n return this.customInvalidText;\n }\n const select = document.createElement('select');\n select.required = this.required;\n\n return select.validationMessage;\n }\n\n reportValidity() {\n this.dirty = true;\n return this.checkValidity();\n }\n\n resetFormControl(): void {\n this.value = this._initialValue;\n }\n\n @query('.select-input')\n validationTarget: HTMLElement;\n\n open() {\n this._isPopoverOpen = true;\n this._setupPopover();\n document.addEventListener('click', this._interactOutsideHandler, true);\n document.addEventListener('focus', this._interactOutsideHandler, true);\n }\n\n close() {\n this._isPopoverOpen = false;\n this.focusedOptionIndex = -1;\n this._cleanUpPopover && this._cleanUpPopover();\n document.removeEventListener('click', this._interactOutsideHandler, true);\n document.removeEventListener('focus', this._interactOutsideHandler, true);\n }\n\n private _interactOutsideHandler = (event: MouseEvent | FocusEvent) => {\n const eventPath = event.composedPath() as HTMLElement[];\n\n if (!eventPath?.find(el => el.tagName === 'BL-SELECT')?.contains(this)) {\n this.close();\n }\n };\n\n private _setupPopover() {\n this._cleanUpPopover = autoUpdate(this._selectInput, this._popover, () => {\n computePosition(this._selectInput, this._popover, {\n placement: 'bottom',\n strategy: 'fixed',\n middleware: [\n flip(),\n offset(8),\n size({\n apply(args: MiddlewareState) {\n Object.assign(args.elements.floating.style, {\n width: `${args.elements.reference.getBoundingClientRect().width}px`,\n });\n },\n }),\n ],\n }).then(({ x, y }) => {\n this._popover.style.setProperty('--left', `${x}px`);\n this._popover.style.setProperty('--top', `${y}px`);\n });\n });\n }\n\n connectedCallback(): void {\n super.connectedCallback();\n\n this.form?.addEventListener('submit', (e: SubmitEvent) => {\n if (!this.reportValidity()) {\n e.preventDefault();\n }\n });\n }\n\n disconnectedCallback() {\n super.disconnectedCallback();\n\n this._cleanUpPopover && this._cleanUpPopover();\n }\n\n private inputTemplate() {\n const inputSelectedOptions = html`<ul class=\"selected-options\">\n ${this._selectedOptions.map(item => html`<li>${item.textContent}</li>`)}\n </ul>`;\n const removeButton = html`<bl-button\n class=\"remove-all\"\n size=\"small\"\n variant=\"tertiary\"\n kind=\"neutral\"\n icon=\"close\"\n @click=${this._onClickRemove}\n ></bl-button>`;\n\n return html`<fieldset\n class=${classMap({\n 'select-input': true,\n 'has-overflowed-options': this._additionalSelectedOptionCount > 0,\n })}\n tabindex=\"${this.disabled ? '-1' : 0}\"\n ?autofocus=${this.autofocus}\n @click=${this.togglePopover}\n >\n <legend><span>${this.label}</span></legend>\n <span class=\"placeholder\">${this.placeholder}</span>\n ${inputSelectedOptions}\n <span class=\"additional-selection-count\">+${this._additionalSelectedOptionCount}</span>\n <div class=\"actions\">\n ${this.multiple ? removeButton : null}\n <bl-icon class=\"dropdown-icon open\" name=\"arrow_up\"></bl-icon>\n\n <bl-icon class=\"dropdown-icon closed\" name=\"arrow_down\"></bl-icon>\n </div>\n </fieldset>`;\n }\n\n render() {\n const invalidMessage = !this.checkValidity()\n ? html`<p id=\"errorMessage\" aria-live=\"polite\" class=\"invalid-text\">\n ${this.validationMessage}\n </p>`\n : '';\n\n const helpMessage = this.helpText ? html`<p class=\"help-text\">${this.helpText}</p>` : '';\n\n const label = this.label ? html`<label>${this.label}</label>` : '';\n\n return html`<div\n class=${classMap({\n 'select-wrapper': true,\n 'select-open': this.opened,\n 'selected': this._selectedOptions.length > 0,\n 'invalid': !this.validity.valid,\n 'dirty': this.dirty,\n })}\n @keydown=${this.handleKeydown}\n >\n ${label} ${this.inputTemplate()}\n <div\n class=\"popover\"\n tabindex=\"${ifDefined(this._isPopoverOpen ? undefined : '-1')}\"\n @bl-select-option=${this._handleSelectOptionEvent}\n >\n <slot></slot>\n </div>\n <div class=\"hint\">${invalidMessage} ${helpMessage}</div>\n </div> `;\n }\n\n private focusedOptionIndex = -1;\n\n private handleKeydown(event: KeyboardEvent) {\n if (this.focusedOptionIndex === -1 && ['Enter', 'Space'].includes(event.code)) {\n this.togglePopover();\n event.preventDefault();\n } else if (this._isPopoverOpen === false && ['ArrowDown', 'ArrowUp'].includes(event.code)) {\n this.open();\n event.preventDefault();\n } else if (event.code === 'Escape') {\n this.close();\n event.preventDefault();\n } else if (this._isPopoverOpen && ['ArrowDown', 'ArrowUp'].includes(event.code)) {\n event.code === 'ArrowDown' && this.focusedOptionIndex++;\n event.code === 'ArrowUp' && this.focusedOptionIndex--;\n\n // Don't exceed array indexes\n this.focusedOptionIndex = Math.max(\n 0,\n Math.min(this.focusedOptionIndex, this.options.length - 1)\n );\n\n this.options[this.focusedOptionIndex].focus();\n\n event.preventDefault();\n }\n }\n\n private togglePopover() {\n this._isPopoverOpen ? this.close() : this.open();\n }\n\n private _handleSelectEvent() {\n this._onBlSelect(\n this._selectedOptions.map(\n option =>\n ({\n value: option.value,\n selected: option.selected,\n text: option.textContent,\n } as ISelectOption<ValueType>)\n )\n );\n }\n\n private _handleSingleSelect(optionItem: BlSelectOption<ValueType>) {\n this.value = optionItem.value;\n\n this._handleSelectEvent();\n this._isPopoverOpen = false;\n }\n\n private _handleMultipleSelect() {\n this.value = this._connectedOptions\n .filter(option => option.selected)\n .map(option => option.value);\n\n this._handleSelectEvent();\n }\n\n private _handleSelectOptionEvent(e: CustomEvent) {\n const optionItem = e.target as BlSelectOption<ValueType>;\n this.dirty = true;\n\n if (this.multiple) {\n this._handleMultipleSelect();\n } else {\n this._handleSingleSelect(optionItem);\n }\n }\n\n private _onClickRemove(e: MouseEvent) {\n e.stopPropagation();\n\n this._connectedOptions\n .filter(option => option.selected)\n .forEach(option => {\n option.selected = false;\n });\n\n this.value = null;\n this._additionalSelectedOptionCount = 0;\n this._handleSelectEvent();\n }\n\n private _checkAdditionalItemCount() {\n if (!this.multiple || !this.selectedOptionsItems || this.selectedOptionsItems.length < 2) {\n this._additionalSelectedOptionCount = 0;\n return;\n }\n\n const firstNonVisibleItemIndex = [...this.selectedOptionsItems].findIndex(\n item => item.offsetLeft > this.selectedOptionsContainer.offsetWidth\n );\n\n if (firstNonVisibleItemIndex > -1) {\n this._additionalSelectedOptionCount =\n this.selectedOptionsItems.length - firstNonVisibleItemIndex;\n } else {\n this._additionalSelectedOptionCount = 0;\n }\n }\n\n protected firstUpdated(): void {\n if (this.value === undefined) {\n this.value = '' as ValueType;\n }\n\n this._initialValue = this._value;\n }\n\n protected updated(_changedProperties: PropertyValues) {\n if (\n _changedProperties.has('multiple') &&\n typeof _changedProperties.get('multiple') === 'boolean'\n ) {\n this.value = null;\n }\n\n this._checkAdditionalItemCount();\n }\n\n /**\n * This method is used by `bl-select-option` component to register itself to bl-select.\n * @param option BlSelectOption reference to be registered\n */\n registerOption(option: BlSelectOption<ValueType>) {\n this._connectedOptions.push(option);\n\n if (option.selected) {\n if (this.multiple) {\n if (!Array.isArray(this.value)) {\n this.value = [];\n }\n this.value = [...this.value, option.value];\n } else {\n this.value = option.value;\n }\n }\n\n this.setOptionsSelected();\n this.requestUpdate();\n }\n\n /**\n * This method is used by `bl-select-option` component to unregister itself from bl-select.\n * @param option BlSelectOption reference to be unregistered\n */\n unregisterOption(option: BlSelectOption<ValueType>) {\n this._connectedOptions.splice(this._connectedOptions.indexOf(option), 1);\n }\n}\n\ndeclare global {\n interface HTMLElementTagNameMap {\n 'bl-select': BlSelect;\n }\n}\n"],
5
5
  "mappings": "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",
6
6
  "names": ["styles", "i", "bl_select_default", "BlSelect", "FormControlMixin", "s", "event", "_a", "eventPath", "el", "bl_select_default", "val", "formData", "option", "select", "P", "z", "b", "O", "k", "args", "x", "y", "e", "inputSelectedOptions", "item", "removeButton", "o", "invalidMessage", "helpMessage", "label", "l", "optionItem", "firstNonVisibleItemIndex", "_changedProperties", "requiredValidator", "__decorateClass", "t", "i"]
7
7
  }
@@ -11,4 +11,4 @@ import{a as b}from"./chunk-KPAWUBRO.js";import{a as d}from"./chunk-23UFIOHV.js";
11
11
  >
12
12
  </span>
13
13
  `}};r([i({type:Boolean,reflect:!0})],t.prototype,"checked",2),r([i({type:Boolean,reflect:!0})],t.prototype,"disabled",2),r([d("bl-switch-toggle")],t.prototype,"onToggle",2),t=r([n(m)],t);export{m as a,t as b};
14
- //# sourceMappingURL=chunk-YSAEBLYM.js.map
14
+ //# sourceMappingURL=chunk-VDV6ZXM7.js.map
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "version": 3,
3
3
  "sources": ["../src/components/switch/bl-switch.css", "../src/components/switch/bl-switch.ts"],
4
- "sourcesContent": ["import {css} from 'lit';\nexport const styles = css`:host{display:inline-block;cursor:pointer}span{display:inline-block}.switch{--track-height:var(--bl-size-xl);--track-width:var(--bl-size-4xl);--thumb-offset:var(--bl-size-4xs);--thumb-height:calc(var(--track-height) - calc(2 * var(--thumb-offset)));--thumb-width:var(--thumb-height);--animation-duration:var(--bl-switch-animation-duration,300ms);--switch-color:var(--bl-switch-color-off,var(--bl-color-neutral-lighter));background-color:var(--switch-color);border-radius:var(--bl-border-radius-pill);height:var(--track-height);transition-property:background-color;transition-duration:var(--animation-duration);width:var(--track-width)}.switch::before{content:'';display:inline-block;background-color:white;border-radius:var(--bl-border-radius-circle);height:var(--thumb-height);left:var(--thumb-offset);position:relative;top:var(--thumb-offset);transition:transform;transition-duration:var(--animation-duration);width:var(--thumb-width)}:host([checked]) .switch{--switch-color:var(--bl-switch-color-on,var(--bl-switch-color,var(--bl-color-primary)))}:host([checked]) .switch::before{transform:translateX(calc(var(--track-width) - var(--thumb-width) - calc(2 * var(--thumb-offset))))}:host([disabled]) .switch{opacity:.5}:host([disabled]){cursor:not-allowed}.switch:focus-visible{position:relative;outline:0}.switch:focus-visible::after{border:2px solid var(--switch-color);border-radius:var(--bl-border-radius-pill);content:'';position:absolute;top:-3px;right:-3px;bottom:-3px;left:-3px}`;\nexport default styles;\n", "import { CSSResultGroup, html, LitElement, TemplateResult } from 'lit';\nimport { ifDefined } from 'lit/directives/if-defined.js';\nimport { customElement, property } from 'lit/decorators.js';\nimport { event, EventDispatcher } from '../../utilities/event';\nimport style from './bl-switch.css';\n\nexport const blSwitchTag = 'bl-switch';\n\n/**\n * @tag bl-switch\n * @summary Baklava Switch component\n *\n * @deprecated [--bl-switch-color=--bl-color-primary] Set the checked color. Renamed to --bl-switch-color-on.\n * @cssproperty [--bl-switch-color-on=--bl-color-primary] Set the checked color\n * @cssproperty [--bl-switch-color-off=--bl-color-neutral-lighter] Set the unchecked color\n * @cssproperty [--bl-switch-animation-duration=300ms] Set the animation duration of switch toggle\n */\n@customElement(blSwitchTag)\nexport default class BlSwitch extends LitElement {\n static get styles(): CSSResultGroup {\n return [style];\n }\n\n /**\n * Sets the checked state for switch\n */\n @property({ type: Boolean, reflect: true })\n checked = false;\n\n /**\n * Sets the disabled state for switch\n */\n @property({ type: Boolean, reflect: true })\n disabled? = false;\n\n /**\n * Fires whenever user toggles the switch\n */\n @event('bl-switch-toggle') private onToggle: EventDispatcher<boolean>;\n\n toggle() {\n if (this.disabled) return;\n\n this.checked = !this.checked;\n this.onToggle(this.checked);\n }\n\n private handleKeyDown(event: KeyboardEvent) {\n if (event.code === 'Enter' || event.code === 'Space') {\n this.toggle();\n event.preventDefault();\n }\n }\n\n render(): TemplateResult {\n const ariaLabel =\n this.ariaLabel ?? this.attributes.getNamedItem('aria-label')?.value ?? undefined;\n\n return html`\n <span\n class=\"switch\"\n role=\"switch\"\n aria-checked=${this.checked}\n aria-readonly=${!!this.disabled}\n @click=${this.toggle}\n @keydown=${this.handleKeyDown}\n aria-label=${ifDefined(ariaLabel)}\n tabindex=\"0\"\n >\n </span>\n `;\n }\n}\n\ndeclare global {\n interface HTMLElementTagNameMap {\n [blSwitchTag]: BlSwitch;\n }\n}\n"],
5
- "mappings": "4LACO,IAAMA,EAASC,m9CACfC,EAAQF,ECIR,IAAMG,EAAc,YAYNC,EAArB,cAAsCC,CAAW,CAAjD,kCASE,aAAU,GAMV,cAAY,GAdZ,WAAW,QAAyB,CAClC,MAAO,CAACC,CAAK,CACf,CAmBA,QAAS,CACH,KAAK,WAET,KAAK,QAAU,CAAC,KAAK,QACrB,KAAK,SAAS,KAAK,OAAO,EAC5B,CAEQ,cAAcC,EAAsB,EACtCA,EAAM,OAAS,SAAWA,EAAM,OAAS,WAC3C,KAAK,OAAO,EACZA,EAAM,eAAe,EAEzB,CAEA,QAAyB,CAtD3B,IAAAC,EAAAC,EAAAC,EAuDI,IAAMC,GACJD,GAAAD,EAAA,KAAK,YAAL,KAAAA,GAAkBD,EAAA,KAAK,WAAW,aAAa,YAAY,IAAzC,YAAAA,EAA4C,QAA9D,KAAAE,EAAuE,OAEzE,OAAOE;AAAA;AAAA;AAAA;AAAA,uBAIY,KAAK;AAAA,wBACJ,CAAC,CAAC,KAAK;AAAA,iBACd,KAAK;AAAA,mBACH,KAAK;AAAA,qBACHC,EAAUF,CAAS;AAAA;AAAA;AAAA;AAAA,KAKtC,CACF,EA7CEG,EAAA,CADCC,EAAS,CAAE,KAAM,QAAS,QAAS,EAAK,CAAC,GARvBX,EASnB,uBAMAU,EAAA,CADCC,EAAS,CAAE,KAAM,QAAS,QAAS,EAAK,CAAC,GAdvBX,EAenB,wBAKmCU,EAAA,CAAlCP,EAAM,kBAAkB,GApBNH,EAoBgB,wBApBhBA,EAArBU,EAAA,CADCC,EAAcZ,CAAW,GACLC",
4
+ "sourcesContent": ["import {css} from 'lit';\nexport const styles = css`:host{display:inline-block;cursor:pointer}span{display:inline-block}.switch{--track-height:var(--bl-size-xl);--track-width:var(--bl-size-4xl);--thumb-offset:var(--bl-size-4xs);--thumb-height:calc(var(--track-height) - calc(2 * var(--thumb-offset)));--thumb-width:var(--thumb-height);--animation-duration:var(--bl-switch-animation-duration,300ms);--switch-color:var(--bl-switch-color-off,var(--bl-color-neutral-lighter));background-color:var(--switch-color);border-radius:var(--bl-border-radius-pill);height:var(--track-height);transition-property:background-color;transition-duration:var(--animation-duration);width:var(--track-width)}.switch::before{content:'';display:inline-block;background-color:white;border-radius:var(--bl-border-radius-circle);height:var(--thumb-height);left:var(--thumb-offset);position:relative;top:var(--thumb-offset);transition:transform;transition-duration:var(--animation-duration);width:var(--thumb-width)}:host([checked]) .switch{--switch-color:var(--bl-switch-color-on,var(--bl-switch-color,var(--bl-color-primary)))}:host([checked]) .switch::before{transform:translateX(calc(var(--track-width) - var(--thumb-width) - calc(2 * var(--thumb-offset))))}:host([disabled]) .switch{opacity:.5}:host([disabled]){cursor:not-allowed}.switch:focus-visible{position:relative;outline:0}.switch:focus-visible::after{border:2px solid var(--switch-color);border-radius:var(--bl-border-radius-pill);content:'';position:absolute;top:-3px;right:-3px;bottom:-3px;left:-3px}`;\nexport default styles;\n", "import { CSSResultGroup, html, LitElement, TemplateResult } from 'lit';\nimport { ifDefined } from 'lit/directives/if-defined.js';\nimport { customElement, property } from 'lit/decorators.js';\nimport { event, EventDispatcher } from '../../utilities/event';\nimport style from './bl-switch.css';\n\nexport const blSwitchTag = 'bl-switch';\n\n/**\n * @tag bl-switch\n * @summary Baklava Switch component\n *\n * @cssproperty [--bl-switch-color-on=--bl-color-primary] Set the checked color\n * @cssproperty [--bl-switch-color-off=--bl-color-neutral-lighter] Set the unchecked color\n * @cssproperty [--bl-switch-animation-duration=300ms] Set the animation duration of switch toggle\n */\n@customElement(blSwitchTag)\nexport default class BlSwitch extends LitElement {\n static get styles(): CSSResultGroup {\n return [style];\n }\n\n /**\n * Sets the checked state for switch\n */\n @property({ type: Boolean, reflect: true })\n checked = false;\n\n /**\n * Sets the disabled state for switch\n */\n @property({ type: Boolean, reflect: true })\n disabled? = false;\n\n /**\n * Fires whenever user toggles the switch\n */\n @event('bl-switch-toggle') private onToggle: EventDispatcher<boolean>;\n\n toggle() {\n if (this.disabled) return;\n\n this.checked = !this.checked;\n this.onToggle(this.checked);\n }\n\n private handleKeyDown(event: KeyboardEvent) {\n if (event.code === 'Enter' || event.code === 'Space') {\n this.toggle();\n event.preventDefault();\n }\n }\n\n render(): TemplateResult {\n const ariaLabel =\n this.ariaLabel ?? this.attributes.getNamedItem('aria-label')?.value ?? undefined;\n\n return html`\n <span\n class=\"switch\"\n role=\"switch\"\n aria-checked=${this.checked}\n aria-readonly=${!!this.disabled}\n @click=${this.toggle}\n @keydown=${this.handleKeyDown}\n aria-label=${ifDefined(ariaLabel)}\n tabindex=\"0\"\n >\n </span>\n `;\n }\n}\n\ndeclare global {\n interface HTMLElementTagNameMap {\n [blSwitchTag]: BlSwitch;\n }\n}\n"],
5
+ "mappings": "4LACO,IAAMA,EAASC,m9CACfC,EAAQF,ECIR,IAAMG,EAAc,YAWNC,EAArB,cAAsCC,CAAW,CAAjD,kCASE,aAAU,GAMV,cAAY,GAdZ,WAAW,QAAyB,CAClC,MAAO,CAACC,CAAK,CACf,CAmBA,QAAS,CACH,KAAK,WAET,KAAK,QAAU,CAAC,KAAK,QACrB,KAAK,SAAS,KAAK,OAAO,EAC5B,CAEQ,cAAcC,EAAsB,EACtCA,EAAM,OAAS,SAAWA,EAAM,OAAS,WAC3C,KAAK,OAAO,EACZA,EAAM,eAAe,EAEzB,CAEA,QAAyB,CArD3B,IAAAC,EAAAC,EAAAC,EAsDI,IAAMC,GACJD,GAAAD,EAAA,KAAK,YAAL,KAAAA,GAAkBD,EAAA,KAAK,WAAW,aAAa,YAAY,IAAzC,YAAAA,EAA4C,QAA9D,KAAAE,EAAuE,OAEzE,OAAOE;AAAA;AAAA;AAAA;AAAA,uBAIY,KAAK;AAAA,wBACJ,CAAC,CAAC,KAAK;AAAA,iBACd,KAAK;AAAA,mBACH,KAAK;AAAA,qBACHC,EAAUF,CAAS;AAAA;AAAA;AAAA;AAAA,KAKtC,CACF,EA7CEG,EAAA,CADCC,EAAS,CAAE,KAAM,QAAS,QAAS,EAAK,CAAC,GARvBX,EASnB,uBAMAU,EAAA,CADCC,EAAS,CAAE,KAAM,QAAS,QAAS,EAAK,CAAC,GAdvBX,EAenB,wBAKmCU,EAAA,CAAlCP,EAAM,kBAAkB,GApBNH,EAoBgB,wBApBhBA,EAArBU,EAAA,CADCC,EAAcZ,CAAW,GACLC",
6
6
  "names": ["styles", "i", "bl_switch_default", "blSwitchTag", "BlSwitch", "s", "bl_switch_default", "event", "_a", "_b", "_c", "ariaLabel", "y", "l", "__decorateClass", "e"]
7
7
  }
@@ -1,2 +1,2 @@
1
- import{a}from"../../chunk-Y4UXIJSO.js";import"../../chunk-QASRATPF.js";import"../../chunk-MCS3XLXD.js";import"../../chunk-PUNHEAEI.js";import"../../chunk-XQN3H7RG.js";import"../../chunk-3B64VOWB.js";import"../../chunk-ANYJUR6Q.js";import"../../chunk-EPJ347EQ.js";import"../../chunk-DJOD4BTL.js";import"../../chunk-KGIPG6EV.js";import"../../chunk-OLPYXE2P.js";import"../../chunk-KPAWUBRO.js";import"../../chunk-3SON7X7S.js";import"../../chunk-RLMJN536.js";import"../../chunk-23UFIOHV.js";import"../../chunk-57PTZNIL.js";import"../../chunk-NZ3RGSR6.js";export{a as default};
1
+ import{a}from"../../chunk-Y4UXIJSO.js";import"../../chunk-LV2MAELO.js";import"../../chunk-MCS3XLXD.js";import"../../chunk-PUNHEAEI.js";import"../../chunk-XQN3H7RG.js";import"../../chunk-3B64VOWB.js";import"../../chunk-ANYJUR6Q.js";import"../../chunk-EPJ347EQ.js";import"../../chunk-DJOD4BTL.js";import"../../chunk-KGIPG6EV.js";import"../../chunk-OLPYXE2P.js";import"../../chunk-KPAWUBRO.js";import"../../chunk-3SON7X7S.js";import"../../chunk-RLMJN536.js";import"../../chunk-23UFIOHV.js";import"../../chunk-57PTZNIL.js";import"../../chunk-NZ3RGSR6.js";export{a as default};
2
2
  //# sourceMappingURL=bl-pagination.js.map
@@ -68,7 +68,7 @@ export default class BlPopover extends LitElement {
68
68
  */
69
69
  get visible(): boolean;
70
70
  private _handlePopoverShowEvent;
71
- private _handleKeyupEvent;
71
+ private _handleKeydownEvent;
72
72
  render(): TemplateResult;
73
73
  }
74
74
  declare global {
@@ -1 +1 @@
1
- {"version":3,"file":"bl-popover.d.ts","sourceRoot":"","sources":["../../../src/components/popover/bl-popover.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,cAAc,EAAQ,UAAU,EAAE,cAAc,EAAE,MAAM,KAAK,CAAC;AAkBvE,oBAAY,SAAS,GACjB,WAAW,GACX,KAAK,GACL,SAAS,GACT,cAAc,GACd,QAAQ,GACR,YAAY,GACZ,YAAY,GACZ,MAAM,GACN,UAAU,GACV,aAAa,GACb,OAAO,GACP,WAAW,CAAC;AAEhB;;;;;;;;;;GAUG;AAEH,MAAM,CAAC,OAAO,OAAO,SAAU,SAAQ,UAAU;IAC/C,MAAM,KAAK,MAAM,IAAI,cAAc,CAElC;IAEkB,OAAO,CAAC,OAAO,CAAc;IAC/B,OAAO,CAAC,KAAK,CAAc;IAE5C;;OAEG;IAEH,SAAS,EAAE,SAAS,CAAY;IAEhC;;OAEG;IACM,OAAO,EAAE,MAAM,GAAG,OAAO,CAAC;IAEnC;;OAEG;IAEH,OAAO,UAAS;IAEhB;;OAEG;IAEH,MAAM,SAAK;IAEX;;OAEG;IACM,OAAO,CAAC,QAAQ,CAAS;IAElC;;OAEG;IACuB,OAAO,CAAC,eAAe,CAA0B;IAE3E;;OAEG;IACuB,OAAO,CAAC,eAAe,CAA0B;IAE3E,iBAAiB;IAQjB,oBAAoB;IAMpB,OAAO,CAAC,aAAa;IAuBrB,OAAO,CAAC,mBAAmB,CAKzB;IAEF,OAAO,CAAC,wBAAwB,CAAa;IAE7C,OAAO,CAAC,UAAU;IA4ClB;;;OAGG;IACH,IACI,MAAM,IAAI,MAAM,GAAG,OAAO,CAE7B;IAED,IAAI,MAAM,CAAC,KAAK,EAAE,MAAM,GAAG,OAAO,EAUjC;IAED;;OAEG;IACH,IAAI;IASJ;;OAEG;IACH,IAAI;IAQJ;;OAEG;IACH,IAAI,OAAO,IAAI,OAAO,CAErB;IAED,OAAO,CAAC,uBAAuB;IAM/B,OAAO,CAAC,iBAAiB;IAOzB,MAAM,IAAI,cAAc;CAWzB;AAED,OAAO,CAAC,MAAM,CAAC;IACb,UAAU,qBAAqB;QAC7B,YAAY,EAAE,SAAS,CAAC;KACzB;CACF"}
1
+ {"version":3,"file":"bl-popover.d.ts","sourceRoot":"","sources":["../../../src/components/popover/bl-popover.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,cAAc,EAAQ,UAAU,EAAE,cAAc,EAAE,MAAM,KAAK,CAAC;AAkBvE,oBAAY,SAAS,GACjB,WAAW,GACX,KAAK,GACL,SAAS,GACT,cAAc,GACd,QAAQ,GACR,YAAY,GACZ,YAAY,GACZ,MAAM,GACN,UAAU,GACV,aAAa,GACb,OAAO,GACP,WAAW,CAAC;AAEhB;;;;;;;;;;GAUG;AAEH,MAAM,CAAC,OAAO,OAAO,SAAU,SAAQ,UAAU;IAC/C,MAAM,KAAK,MAAM,IAAI,cAAc,CAElC;IAEkB,OAAO,CAAC,OAAO,CAAc;IAC/B,OAAO,CAAC,KAAK,CAAc;IAE5C;;OAEG;IAEH,SAAS,EAAE,SAAS,CAAY;IAEhC;;OAEG;IACM,OAAO,EAAE,MAAM,GAAG,OAAO,CAAC;IAEnC;;OAEG;IAEH,OAAO,UAAS;IAEhB;;OAEG;IAEH,MAAM,SAAK;IAEX;;OAEG;IACM,OAAO,CAAC,QAAQ,CAAS;IAElC;;OAEG;IACuB,OAAO,CAAC,eAAe,CAA0B;IAE3E;;OAEG;IACuB,OAAO,CAAC,eAAe,CAA0B;IAE3E,iBAAiB;IAQjB,oBAAoB;IAMpB,OAAO,CAAC,aAAa;IAuBrB,OAAO,CAAC,mBAAmB,CAKzB;IAEF,OAAO,CAAC,wBAAwB,CAAa;IAE7C,OAAO,CAAC,UAAU;IA4ClB;;;OAGG;IACH,IACI,MAAM,IAAI,MAAM,GAAG,OAAO,CAE7B;IAED,IAAI,MAAM,CAAC,KAAK,EAAE,MAAM,GAAG,OAAO,EAUjC;IAED;;OAEG;IACH,IAAI;IASJ;;OAEG;IACH,IAAI;IAQJ;;OAEG;IACH,IAAI,OAAO,IAAI,OAAO,CAErB;IAED,OAAO,CAAC,uBAAuB;IAM/B,OAAO,CAAC,mBAAmB;IAO3B,MAAM,IAAI,cAAc;CAWzB;AAED,OAAO,CAAC,MAAM,CAAC;IACb,UAAU,qBAAqB;QAC7B,YAAY,EAAE,SAAS,CAAC;KACzB;CACF"}
@@ -1,2 +1,2 @@
1
- import{a}from"../../chunk-4PG6AOX7.js";import"../../chunk-ANYJUR6Q.js";import"../../chunk-OLPYXE2P.js";import"../../chunk-RLMJN536.js";import"../../chunk-23UFIOHV.js";import"../../chunk-57PTZNIL.js";import"../../chunk-NZ3RGSR6.js";export{a as default};
1
+ import{a}from"../../chunk-AWKMRQTR.js";import"../../chunk-ANYJUR6Q.js";import"../../chunk-OLPYXE2P.js";import"../../chunk-RLMJN536.js";import"../../chunk-23UFIOHV.js";import"../../chunk-57PTZNIL.js";import"../../chunk-NZ3RGSR6.js";export{a as default};
2
2
  //# sourceMappingURL=bl-popover.js.map
@@ -4,7 +4,7 @@ import { CSSResultGroup, LitElement, PropertyValues } from 'lit';
4
4
  import '../icon/bl-icon';
5
5
  import '../select/option/bl-select-option';
6
6
  import type BlSelectOption from './option/bl-select-option';
7
- export interface ISelectOption<T> {
7
+ export interface ISelectOption<T = string> {
8
8
  value: T;
9
9
  text: string;
10
10
  selected: boolean;
@@ -1 +1 @@
1
- {"version":3,"file":"bl-select.d.ts","sourceRoot":"","sources":["../../../src/components/select/bl-select.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"bl-select.d.ts","sourceRoot":"","sources":["../../../src/components/select/bl-select.ts"],"names":[],"mappings":"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"}
@@ -1,2 +1,2 @@
1
- import{a}from"../../chunk-QASRATPF.js";import"../../chunk-MCS3XLXD.js";import"../../chunk-3B64VOWB.js";import"../../chunk-ANYJUR6Q.js";import"../../chunk-DJOD4BTL.js";import"../../chunk-OLPYXE2P.js";import"../../chunk-KPAWUBRO.js";import"../../chunk-3SON7X7S.js";import"../../chunk-RLMJN536.js";import"../../chunk-23UFIOHV.js";import"../../chunk-57PTZNIL.js";import"../../chunk-NZ3RGSR6.js";export{a as default};
1
+ import{a}from"../../chunk-LV2MAELO.js";import"../../chunk-MCS3XLXD.js";import"../../chunk-3B64VOWB.js";import"../../chunk-ANYJUR6Q.js";import"../../chunk-DJOD4BTL.js";import"../../chunk-OLPYXE2P.js";import"../../chunk-KPAWUBRO.js";import"../../chunk-3SON7X7S.js";import"../../chunk-RLMJN536.js";import"../../chunk-23UFIOHV.js";import"../../chunk-57PTZNIL.js";import"../../chunk-NZ3RGSR6.js";export{a as default};
2
2
  //# sourceMappingURL=bl-select.js.map
@@ -4,7 +4,6 @@ export declare const blSwitchTag = "bl-switch";
4
4
  * @tag bl-switch
5
5
  * @summary Baklava Switch component
6
6
  *
7
- * @deprecated [--bl-switch-color=--bl-color-primary] Set the checked color. Renamed to --bl-switch-color-on.
8
7
  * @cssproperty [--bl-switch-color-on=--bl-color-primary] Set the checked color
9
8
  * @cssproperty [--bl-switch-color-off=--bl-color-neutral-lighter] Set the unchecked color
10
9
  * @cssproperty [--bl-switch-animation-duration=300ms] Set the animation duration of switch toggle
@@ -1 +1 @@
1
- {"version":3,"file":"bl-switch.d.ts","sourceRoot":"","sources":["../../../src/components/switch/bl-switch.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,cAAc,EAAQ,UAAU,EAAE,cAAc,EAAE,MAAM,KAAK,CAAC;AAMvE,eAAO,MAAM,WAAW,cAAc,CAAC;AAEvC;;;;;;;;GAQG;AAEH,MAAM,CAAC,OAAO,OAAO,QAAS,SAAQ,UAAU;IAC9C,MAAM,KAAK,MAAM,IAAI,cAAc,CAElC;IAED;;OAEG;IAEH,OAAO,UAAS;IAEhB;;OAEG;IAEH,QAAQ,CAAC,sBAAS;IAElB;;OAEG;IACwB,OAAO,CAAC,QAAQ,CAA2B;IAEtE,MAAM;IAON,OAAO,CAAC,aAAa;IAOrB,MAAM,IAAI,cAAc;CAkBzB;AAED,OAAO,CAAC,MAAM,CAAC;IACb,UAAU,qBAAqB;QAC7B,CAAC,WAAW,CAAC,EAAE,QAAQ,CAAC;KACzB;CACF"}
1
+ {"version":3,"file":"bl-switch.d.ts","sourceRoot":"","sources":["../../../src/components/switch/bl-switch.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,cAAc,EAAQ,UAAU,EAAE,cAAc,EAAE,MAAM,KAAK,CAAC;AAMvE,eAAO,MAAM,WAAW,cAAc,CAAC;AAEvC;;;;;;;GAOG;AAEH,MAAM,CAAC,OAAO,OAAO,QAAS,SAAQ,UAAU;IAC9C,MAAM,KAAK,MAAM,IAAI,cAAc,CAElC;IAED;;OAEG;IAEH,OAAO,UAAS;IAEhB;;OAEG;IAEH,QAAQ,CAAC,sBAAS;IAElB;;OAEG;IACwB,OAAO,CAAC,QAAQ,CAA2B;IAEtE,MAAM;IAON,OAAO,CAAC,aAAa;IAOrB,MAAM,IAAI,cAAc;CAkBzB;AAED,OAAO,CAAC,MAAM,CAAC;IACb,UAAU,qBAAqB;QAC7B,CAAC,WAAW,CAAC,EAAE,QAAQ,CAAC;KACzB;CACF"}
@@ -1,2 +1,2 @@
1
- import{a,b}from"../../chunk-YSAEBLYM.js";import"../../chunk-KPAWUBRO.js";import"../../chunk-23UFIOHV.js";import"../../chunk-57PTZNIL.js";import"../../chunk-NZ3RGSR6.js";export{a as blSwitchTag,b as default};
1
+ import{a,b}from"../../chunk-VDV6ZXM7.js";import"../../chunk-KPAWUBRO.js";import"../../chunk-23UFIOHV.js";import"../../chunk-57PTZNIL.js";import"../../chunk-NZ3RGSR6.js";export{a as blSwitchTag,b as default};
2
2
  //# sourceMappingURL=bl-switch.js.map
@@ -0,0 +1,7 @@
1
+ import { TemplateResult } from 'lit';
2
+ import { PartialStoryFn } from '@storybook/types';
3
+ export declare const withNoAnimation: (story: PartialStoryFn) => TemplateResult<1>;
4
+ export declare const extraPadding: (story: PartialStoryFn) => TemplateResult<1>;
5
+ export declare const centeredLayout: (story: PartialStoryFn) => TemplateResult<1>;
6
+ export declare const fullscreenLayout: (story: PartialStoryFn) => TemplateResult<1>;
7
+ //# sourceMappingURL=chromatic-decorators.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"chromatic-decorators.d.ts","sourceRoot":"","sources":["../../src/utilities/chromatic-decorators.ts"],"names":[],"mappings":"AAAA,OAAO,EAAQ,cAAc,EAAE,MAAM,KAAK,CAAC;AAE3C,OAAO,EAAE,cAAc,EAAE,MAAM,kBAAkB,CAAC;AAUlD,eAAO,MAAM,eAAe,UAAW,cAAc,sBAI3C,CAAC;AAGX,eAAO,MAAM,YAAY,UAAW,cAAc,sBAKxC,CAAC;AAEX,eAAO,MAAM,cAAc,UAAW,cAAc,sBAW1C,CAAC;AAEX,eAAO,MAAM,gBAAgB,UAAW,cAAc,sBAI5C,CAAC"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@trendyol/baklava",
3
- "version": "2.1.0-beta.2",
3
+ "version": "2.1.0-beta.4",
4
4
  "description": "Trendyol Baklava Design System",
5
5
  "main": "dist/baklava.js",
6
6
  "module": "dist/baklava.js",
@@ -28,10 +28,10 @@
28
28
  "analyze": "cem analyze",
29
29
  "commit": "commit",
30
30
  "build": "del-cli dist/ && npm run analyze && npm run generate-react-exports && tsc --emitDeclarationOnly && node scripts/build.js",
31
- "build-storybook": "NODE_ENV=production build-storybook -o storybook-static",
32
- "build-storybook-docs": "build-storybook --docs",
31
+ "build-storybook": "NODE_ENV=production storybook build -o storybook-static",
32
+ "build-storybook-docs": "storybook build --docs",
33
33
  "serve": "node scripts/build.js --serve",
34
- "storybook:dev": "start-storybook -p 1994",
34
+ "storybook:dev": "storybook dev -p 1994",
35
35
  "lint": "npm-run-all -s lint:*",
36
36
  "lint:tsc": "tsc --noEmit",
37
37
  "lint:eslint": "eslint .",
@@ -79,16 +79,18 @@
79
79
  "@custom-elements-manifest/analyzer": "^0.6.3",
80
80
  "@open-wc/testing": "^3.1.6",
81
81
  "@rollup/plugin-replace": "^4.0.0",
82
- "@storybook/addon-a11y": "6.5.16",
83
- "@storybook/addon-actions": "6.5.16",
84
- "@storybook/addon-essentials": "6.5.16",
85
- "@storybook/addon-interactions": "^6.5.16",
86
- "@storybook/addon-links": "6.5.16",
87
- "@storybook/addon-storysource": "6.5.16",
88
- "@storybook/addon-viewport": "^6.5.16",
89
- "@storybook/jest": "^0.0.10",
90
- "@storybook/testing-library": "^0.0.13",
91
- "@storybook/web-components": "6.5.16",
82
+ "@storybook/addon-a11y": "7.0.6",
83
+ "@storybook/addon-actions": "7.0.6",
84
+ "@storybook/addon-essentials": "7.0.6",
85
+ "@storybook/addon-interactions": "^7.0.6",
86
+ "@storybook/addon-links": "7.0.6",
87
+ "@storybook/addon-mdx-gfm": "^7.0.6",
88
+ "@storybook/addon-storysource": "7.0.6",
89
+ "@storybook/addon-viewport": "^7.0.6",
90
+ "@storybook/jest": "^0.1.0",
91
+ "@storybook/testing-library": "^0.1.0",
92
+ "@storybook/web-components": "7.0.6",
93
+ "@storybook/web-components-vite": "^7.0.6",
92
94
  "@types/estree": "0.0.47",
93
95
  "@types/prettier": "^2.6.4",
94
96
  "@typescript-eslint/eslint-plugin": "^5.18.0",
@@ -115,8 +117,10 @@
115
117
  "npm-run-all": "^4.1.5",
116
118
  "pascal-case": "^3.1.2",
117
119
  "prettier": "^2.0.4",
120
+ "react": "^18.2.0",
121
+ "react-dom": "^18.2.0",
118
122
  "rollup-plugin-lit-css": "^4.0.0",
119
- "storybook": "6.5.16",
123
+ "storybook": "7.0.6",
120
124
  "stylelint": "^14.11.0",
121
125
  "stylelint-config-prettier": "^9.0.3",
122
126
  "stylelint-config-standard": "^28.0.0",
@@ -1,5 +0,0 @@
1
- import{a as m,b as u,c as g,d as f,e as w,f as y,g as E,h as x}from"./chunk-ANYJUR6Q.js";import{a as b}from"./chunk-OLPYXE2P.js";import{a as n}from"./chunk-23UFIOHV.js";import{a as d,b as h,f as v,g as c,h as i,i as s,j as a}from"./chunk-57PTZNIL.js";import{a as r}from"./chunk-NZ3RGSR6.js";var O=d`.popover{--arrow-display:var(--bl-popover-arrow-display,none);--background-color:var(--bl-popover-background-color,var(--bl-color-neutral-full));--border-color:var(--bl-popover-border-color,var(--bl-color-primary-highlight));--padding:var(--bl-popover-padding,var(--bl-size-m));--border-radius:var(--bl-popover-border-radius,var(--bl-size-3xs));--position:var(--bl-popover-position,fixed);position:var(--position);box-sizing:border-box;border:1px solid var(--border-color);padding:var(--padding);border-radius:var(--border-radius);z-index:var(--bl-index-popover);width:max-content;hyphens:auto;background-color:var(--background-color);font:var(--bl-font-title-3-regular);color:var(--bl-color-neutral-darker)}.popover:not(.visible){visibility:hidden}.arrow{--arrow-rotation:45deg;box-sizing:border-box;display:var(--arrow-display);position:absolute;background-color:var(--background-color);width:var(--bl-size-2xs);height:var(--bl-size-2xs);transform:rotate(var(--arrow-rotation));border:1px solid var(--border-color);border-bottom:0;border-right:0}`,_=O;var t=class extends v{constructor(){super(...arguments);this.placement="bottom";this.fitSize=!1;this.offset=8;this._visible=!1;this._handleClickOutside=e=>{let o=e.composedPath();!o.includes(this._target)&&!o.includes(this)&&this.hide()}}static get styles(){return[_]}connectedCallback(){super.connectedCallback(),this._handlePopoverShowEvent=this._handlePopoverShowEvent.bind(this),this._handleKeyupEvent=this._handleKeyupEvent.bind(this),this._handleClickOutside=this._handleClickOutside.bind(this)}disconnectedCallback(){super.disconnectedCallback(),this.popoverAutoUpdateCleanup&&this.popoverAutoUpdateCleanup()}getMiddleware(){let e=[];return e.push(f(this.offset),g(),u(),w({padding:4})),this.fitSize&&e.push(y({apply(o){o.elements.floating&&o.elements.reference&&Object.assign(o.elements.floating.style,{"min-width":`${o.elements.reference.getBoundingClientRect().width}px`})}})),e.push(m({element:this.arrow,padding:5})),e}setPopover(){this.target&&(this.popoverAutoUpdateCleanup=E(this.target,this.popover,()=>{x(this.target,this.popover,{placement:this.placement,strategy:"fixed",middleware:this.getMiddleware()}).then(({x:e,y:o,placement:k,middlewareData:l})=>{if(Object.assign(this.popover.style,{left:`${e}px`,top:`${o}px`}),l.arrow){let{x:C,y:M}=l.arrow;Object.assign(this.arrow.style,{left:`${C}px`,top:`${M}px`});let S={top:"bottom",right:"left",bottom:"top",left:"right"},L={top:"225deg",right:"315deg",bottom:"45deg",left:"135deg"},p=k.split("-")[0],z=S[p];this.arrow.style.setProperty(z,"-5px"),this.arrow.style.setProperty("--arrow-rotation",L[p])}})}))}get target(){return this._target}set target(e){typeof e=="string"?this._target=document.getElementById(e):e instanceof Element?this._target=e:console.warn("BlPopover target only accepts an Element instance or a string id of a DOM element.")}show(){this._visible=!0,this.setPopover(),this.onBlPopoverShow(""),document.addEventListener("click",this._handleClickOutside),document.addEventListener("keyup",this._handleKeyupEvent),document.addEventListener("bl-popover-show",this._handlePopoverShowEvent)}hide(){this._visible=!1,document.removeEventListener("click",this._handleClickOutside),document.removeEventListener("keyup",this._handleKeyupEvent),document.removeEventListener("bl-popover-show",this._handlePopoverShowEvent),this.onBlPopoverHide("")}get visible(){return this._visible}_handlePopoverShowEvent(e){e.target!==this&&this.hide()}_handleKeyupEvent(e){e.key==="Escape"&&this.visible&&(this.hide(),e.preventDefault())}render(){let e=b({popover:!0,visible:this._visible});return h`<div class=${e}>
2
- <slot id="popover" aria-live=${this._visible?"polite":"off"}></slot>
3
- <div class="arrow" aria-hidden="true"></div>
4
- </div>`}};r([a(".popover")],t.prototype,"popover",2),r([a(".arrow")],t.prototype,"arrow",2),r([i({type:String})],t.prototype,"placement",2),r([s()],t.prototype,"_target",2),r([i({type:Boolean,attribute:"fit-size"})],t.prototype,"fitSize",2),r([i({type:Number})],t.prototype,"offset",2),r([s()],t.prototype,"_visible",2),r([n("bl-popover-show")],t.prototype,"onBlPopoverShow",2),r([n("bl-popover-hide")],t.prototype,"onBlPopoverHide",2),r([i()],t.prototype,"target",1),t=r([c("bl-popover")],t);export{t as a};
5
- //# sourceMappingURL=chunk-4PG6AOX7.js.map