@mhmo91/schmancy 0.5.28 → 0.5.29

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/dist/badge.cjs CHANGED
@@ -1,2 +1,2 @@
1
- "use strict";Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});const e=require("./avatar-CLMPaFdx.cjs");Object.defineProperty(exports,"ScBadgeV2",{enumerable:!0,get:()=>e.ScBadgeV2}),Object.defineProperty(exports,"SchmancyBadgeV2",{enumerable:!0,get:()=>e.SchmancyBadgeV2});
1
+ "use strict";Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});const e=require("./avatar-B44Yq_7I.cjs");Object.defineProperty(exports,"ScBadgeV2",{enumerable:!0,get:()=>e.ScBadgeV2}),Object.defineProperty(exports,"SchmancyBadgeV2",{enumerable:!0,get:()=>e.SchmancyBadgeV2});
2
2
  //# sourceMappingURL=badge.cjs.map
package/dist/badge.js CHANGED
@@ -1,4 +1,4 @@
1
- import { a as e, S } from "./avatar-BYEYf6j6.js";
1
+ import { a as e, S } from "./avatar-ByCv3NzJ.js";
2
2
  export {
3
3
  e as ScBadgeV2,
4
4
  S as SchmancyBadgeV2
@@ -1,2 +1,2 @@
1
- "use strict";Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});const e=require("./avatar-CLMPaFdx.cjs");Object.defineProperty(exports,"SchmancyContentDrawer",{enumerable:!0,get:()=>e.SchmancyContentDrawer}),exports.SchmancyContentDrawerID=e.SchmancyContentDrawerID,Object.defineProperty(exports,"SchmancyContentDrawerMain",{enumerable:!0,get:()=>e.SchmancyContentDrawerMain}),exports.SchmancyContentDrawerMaxHeight=e.SchmancyContentDrawerMaxHeight,exports.SchmancyContentDrawerMinWidth=e.SchmancyContentDrawerMinWidth,Object.defineProperty(exports,"SchmancyContentDrawerSheet",{enumerable:!0,get:()=>e.SchmancyContentDrawerSheet}),exports.SchmancyContentDrawerSheetMode=e.SchmancyContentDrawerSheetMode,exports.SchmancyContentDrawerSheetState=e.SchmancyContentDrawerSheetState,exports.schmancyContentDrawer=e.schmancyContentDrawer;
1
+ "use strict";Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});const e=require("./avatar-B44Yq_7I.cjs");Object.defineProperty(exports,"SchmancyContentDrawer",{enumerable:!0,get:()=>e.SchmancyContentDrawer}),exports.SchmancyContentDrawerID=e.SchmancyContentDrawerID,Object.defineProperty(exports,"SchmancyContentDrawerMain",{enumerable:!0,get:()=>e.SchmancyContentDrawerMain}),exports.SchmancyContentDrawerMaxHeight=e.SchmancyContentDrawerMaxHeight,exports.SchmancyContentDrawerMinWidth=e.SchmancyContentDrawerMinWidth,Object.defineProperty(exports,"SchmancyContentDrawerSheet",{enumerable:!0,get:()=>e.SchmancyContentDrawerSheet}),exports.SchmancyContentDrawerSheetMode=e.SchmancyContentDrawerSheetMode,exports.SchmancyContentDrawerSheetState=e.SchmancyContentDrawerSheetState,exports.schmancyContentDrawer=e.schmancyContentDrawer;
2
2
  //# sourceMappingURL=content-drawer.cjs.map
@@ -1,4 +1,4 @@
1
- import { g as n, d as t, h as r, e as c, f as h, i as o, b as S, c as s, s as m } from "./avatar-BYEYf6j6.js";
1
+ import { g as n, d as t, h as r, e as c, f as h, i as o, b as S, c as s, s as m } from "./avatar-ByCv3NzJ.js";
2
2
  export {
3
3
  n as SchmancyContentDrawer,
4
4
  t as SchmancyContentDrawerID,
package/dist/index.cjs CHANGED
@@ -1,2 +1,2 @@
1
- "use strict";Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"}),require("./animated-text-vdNivzdc.cjs");const c=require("./area.component-DwPL6bdo.cjs"),t=require("./utils-C38P63L6.cjs");require("./autocomplete-GW91jVqw.cjs");const r=require("./avatar-CLMPaFdx.cjs"),N=require("./boat-DNmaFlxD.cjs");require("./spinner-BD8cXVK_.cjs");const p=require("./icon-button-BrRSVzzx.cjs");require("./media-BZwiyJto.cjs");const v=require("./checkbox-BJ5aqrKY.cjs"),i=require("./suggestion-chip-BPCzI7GW.cjs"),A=require("./input-chip-Cf25jEob.cjs"),h=require("./code-preview-fda91FDi.cjs"),x=require("./payment-card-form-C8bWa_hh.cjs"),d=require("./date-range-0nOdLk-l.cjs"),E=require("./date-range-inline-UoP6EDug.cjs"),s=require("./delay-CaOsI0yP.cjs"),B=require("./details-B_kKG0Du.cjs"),u=require("./dialog-content-B5MUa6uq.cjs"),f=require("./dialog-service-Bdaxn2t0.cjs"),b=require("./ripple-DqQrvaTe.cjs"),F=require("lit/directives/guard.js");require("./divider-DekMH80a.cjs");const C=require("./dropdown-content-eXth59vX.cjs"),P=require("./timezone-wWfEuXrb.cjs");require("./form-OUNdJnUW.cjs"),require("./icon-BwhQbcAk.cjs");const O=require("./input-lzxE1e5L.cjs"),m=require("./flex-CE0IKjR4.cjs"),g=require("./list-rGx4YHgo.cjs"),o=require("./email-recipients-DNcWf4_1.cjs"),H=require("./map-8DhybTup.cjs");require("./menu-D8qP_e7D.cjs");const j=require("./navigation-rail-BzMOzaFm.cjs"),y=require("./notification-service-DCmDSvc-.cjs"),D=require("./notify-XY2e8y_a.cjs");require("./option-q-dig7LF.cjs"),require("./progress-CP2lpJsl.cjs");const q=require("./radio-button-CU-lMs92.cjs"),L=require("./rxjs-utils.cjs");require("rxjs"),require("./index-CCi1otmh.cjs");const V=require("./select-Be8HIqWu.cjs");require("./sheet-dK5UPVjp.cjs");const S=require("./sheet.service-BxvWBGsJ.cjs"),T=require("./slider-CP3JRaWR.cjs"),l=require("./schmancy-steps-container-CQY1zmws.cjs"),a=require("./context-object-DA9DM9QJ.cjs"),e=require("./selector-hook-DQ9zoDM4.cjs"),w=require("./surface-ClIDhSRv.cjs"),I=require("./table-1New2HBS.cjs");require("./tabs-compatibility-DDtYFCUj.cjs"),require("./textarea-ChDsPBZz.cjs");const Y=require("./theme.interface-BMeNadVb.cjs"),n=require("./theme.component-Blc_4wu9.cjs"),R=require("./theme.events-Car6U_SQ.cjs");require("./theme-button-qzDX0i9Q.cjs");const M=require("./tooltip-DLadXXnP.cjs"),z=require("./tree-Brtho3Eu.cjs"),k=require("./types.cjs"),G=require("./typewriter-CEgaw_pR.cjs"),W=require("./typography-NurK7F-8.cjs"),$=require("./intersection-CVvaDv96.cjs"),K=require("./number-B7aCRYnH.cjs"),_=require("./search-DWW8IoOp.cjs");exports.FINDING_MORTIES=c.FINDING_MORTIES,exports.HERE_RICKY=c.HERE_RICKY,exports.HISTORY_STRATEGY=c.HISTORY_STRATEGY,Object.defineProperty(exports,"SchmancyArea",{enumerable:!0,get:()=>c.SchmancyArea}),Object.defineProperty(exports,"SchmancyRoute",{enumerable:!0,get:()=>c.SchmancyRoute}),exports.area=c.area,exports.routerHistory=c.routerHistory,exports.buildQueryString=t.buildQueryString,exports.compareActiveRoutes=t.compareActiveRoutes,exports.compareCustomElementConstructors=t.compareCustomElementConstructors,exports.compareRouteActions=t.compareRouteActions,exports.createRouteCacheKey=t.createRouteCacheKey,exports.debounce=t.debounce,exports.decodeData=t.decodeData,exports.decodeRouteState=t.decodeRouteState,exports.deepMerge=t.deepMerge,exports.encodeData=t.encodeData,exports.encodeRouteState=t.encodeRouteState,exports.extractQueryParams=t.extractQueryParams,exports.getTagName=t.getTagName,exports.isObject=t.isObject,exports.lazy=t.lazy,exports.normalizeTagName=t.normalizeTagName,exports.sanitizeRouteState=t.sanitizeRouteState,exports.$drawer=r.$drawer,exports.HereMorty=r.HereMorty,Object.defineProperty(exports,"ScBadgeV2",{enumerable:!0,get:()=>r.ScBadgeV2}),Object.defineProperty(exports,"SchmancyAvatar",{enumerable:!0,get:()=>r.SchmancyAvatar}),Object.defineProperty(exports,"SchmancyBadgeV2",{enumerable:!0,get:()=>r.SchmancyBadgeV2}),Object.defineProperty(exports,"SchmancyContentDrawer",{enumerable:!0,get:()=>r.SchmancyContentDrawer}),exports.SchmancyContentDrawerID=r.SchmancyContentDrawerID,Object.defineProperty(exports,"SchmancyContentDrawerMain",{enumerable:!0,get:()=>r.SchmancyContentDrawerMain}),exports.SchmancyContentDrawerMaxHeight=r.SchmancyContentDrawerMaxHeight,exports.SchmancyContentDrawerMinWidth=r.SchmancyContentDrawerMinWidth,Object.defineProperty(exports,"SchmancyContentDrawerSheet",{enumerable:!0,get:()=>r.SchmancyContentDrawerSheet}),exports.SchmancyContentDrawerSheetMode=r.SchmancyContentDrawerSheetMode,exports.SchmancyContentDrawerSheetState=r.SchmancyContentDrawerSheetState,Object.defineProperty(exports,"SchmancyDrawerAppbar",{enumerable:!0,get:()=>r.SchmancyDrawerAppbar}),exports.SchmancyDrawerNavbarMode=r.SchmancyDrawerNavbarMode,exports.SchmancyDrawerNavbarState=r.SchmancyDrawerNavbarState,Object.defineProperty(exports,"SchmancyNavigationBar",{enumerable:!0,get:()=>r.SchmancyNavigationBar}),Object.defineProperty(exports,"SchmancyNavigationBarItem",{enumerable:!0,get:()=>r.SchmancyNavigationBarItem}),Object.defineProperty(exports,"SchmancyNavigationDrawer",{enumerable:!0,get:()=>r.SchmancyNavigationDrawer}),Object.defineProperty(exports,"SchmancyNavigationDrawerContent",{enumerable:!0,get:()=>r.SchmancyNavigationDrawerContent}),Object.defineProperty(exports,"SchmancyNavigationDrawerSidebar",{enumerable:!0,get:()=>r.SchmancyNavigationDrawerSidebar}),Object.defineProperty(exports,"SchmancyTeleportation",{enumerable:!0,get:()=>r.SchmancyTeleportation}),exports.WhereAreYouRicky=r.WhereAreYouRicky,exports.schmancyContentDrawer=r.schmancyContentDrawer,exports.schmancyNavDrawer=r.schmancyNavDrawer,exports.teleport=r.teleport,Object.defineProperty(exports,"SchmancyBoat",{enumerable:!0,get:()=>N.SchmancyBoat}),Object.defineProperty(exports,"SchmancyButton",{enumerable:!0,get:()=>p.SchmancyButton}),Object.defineProperty(exports,"SchmnacyIconButton",{enumerable:!0,get:()=>p.SchmnacyIconButton}),Object.defineProperty(exports,"SchmancyCheckbox",{enumerable:!0,get:()=>v.SchmancyCheckboxElement}),Object.defineProperty(exports,"SchmancyAssistChip",{enumerable:!0,get:()=>i.SchmancyAssistChip}),exports.SchmancyChip=i.SchmancyFilterChip,exports.SchmancyFilterChip=i.SchmancyFilterChip,Object.defineProperty(exports,"SchmancySuggestionChip",{enumerable:!0,get:()=>i.SchmancySuggestionChip}),Object.defineProperty(exports,"SchmancyInputChip",{enumerable:!0,get:()=>A.SchmancyInputChip}),Object.defineProperty(exports,"SchmancyCode",{enumerable:!0,get:()=>h.SchmancyCode}),Object.defineProperty(exports,"SchmancyCodeHighlight",{enumerable:!0,get:()=>h.SchmancyCode}),Object.defineProperty(exports,"SchmancyCodePreview",{enumerable:!0,get:()=>h.SchmancyCodePreview}),Object.defineProperty(exports,"SchmancyPaymentCardForm",{enumerable:!0,get:()=>x.SchmancyPaymentCardForm}),Object.defineProperty(exports,"SchmancyDateRange",{enumerable:!0,get:()=>d.SchmancyDateRange}),exports.validateInitialDateRange=d.validateInitialDateRange,Object.defineProperty(exports,"SchmancyDateRangeInline",{enumerable:!0,get:()=>E.SchmancyDateRangeInline}),Object.defineProperty(exports,"SchmancyDelay",{enumerable:!0,get:()=>s.SchmancyDelay}),exports.delayContext=s.delayContext,Object.defineProperty(exports,"SchmancyDetails",{enumerable:!0,get:()=>B.SchmancyDetails}),Object.defineProperty(exports,"ConfirmDialog",{enumerable:!0,get:()=>u.ConfirmDialog}),Object.defineProperty(exports,"SchmancyDialog",{enumerable:!0,get:()=>u.SchmancyDialog}),Object.defineProperty(exports,"SchmancyDialogContent",{enumerable:!0,get:()=>u.SchmancyDialogContent}),exports.$dialog=f.$dialog,exports.DialogService=f.DialogService,exports.color=b.color,exports.fullHeight=b.fullHeight,exports.ripple=b.ripple,Object.defineProperty(exports,"guard",{enumerable:!0,get:()=>F.guard}),Object.defineProperty(exports,"SchmancyDropdown",{enumerable:!0,get:()=>C.SchmancyDropdown}),Object.defineProperty(exports,"SchmancyDropdownContent",{enumerable:!0,get:()=>C.SchmancyDropdownContent}),Object.defineProperty(exports,"SchmancyCountriesSelect",{enumerable:!0,get:()=>P.SchmancyCountriesSelect}),Object.defineProperty(exports,"SchmancyTimezonesSelect",{enumerable:!0,get:()=>P.SchmancyTimezonesSelect}),Object.defineProperty(exports,"SchmancyInput",{enumerable:!0,get:()=>O.SchmancyInput}),Object.defineProperty(exports,"SchmancyInputCompat",{enumerable:!0,get:()=>O.SchmancyInputCompat}),Object.defineProperty(exports,"SchmancyFlex",{enumerable:!0,get:()=>m.SchmancyFlex}),Object.defineProperty(exports,"SchmancyFlexV2",{enumerable:!0,get:()=>m.SchmancyFlexV2}),Object.defineProperty(exports,"SchmancyGrid",{enumerable:!0,get:()=>m.SchmancyGrid}),Object.defineProperty(exports,"SchmancyScroll",{enumerable:!0,get:()=>m.SchmancyScroll}),Object.defineProperty(exports,"List",{enumerable:!0,get:()=>g.List}),Object.defineProperty(exports,"SchmancyListItem",{enumerable:!0,get:()=>g.SchmancyListItem}),exports.SchmancyListTypeContext=g.SchmancyListTypeContext,Object.defineProperty(exports,"SchmancyEmailEditor",{enumerable:!0,get:()=>o.SchmancyEmailEditor}),Object.defineProperty(exports,"SchmancyEmailLayoutSelector",{enumerable:!0,get:()=>o.SchmancyEmailLayoutSelector}),Object.defineProperty(exports,"SchmancyEmailRecipients",{enumerable:!0,get:()=>o.SchmancyEmailRecipients}),Object.defineProperty(exports,"SchmancyEmailViewer",{enumerable:!0,get:()=>o.SchmancyEmailViewer}),Object.defineProperty(exports,"SchmancyMailbox",{enumerable:!0,get:()=>o.SchmancyMailbox}),Object.defineProperty(exports,"SchmancyMap",{enumerable:!0,get:()=>H.SchmancyMap}),Object.defineProperty(exports,"SchmancyNavigationRail",{enumerable:!0,get:()=>j.SchmancyNavigationRail}),Object.defineProperty(exports,"SchmancyNavigationRailItem",{enumerable:!0,get:()=>j.SchmancyNavigationRailItem}),exports.$notify=y.$notify,exports.NotificationAudioService=y.NotificationAudioService,Object.defineProperty(exports,"SchmancyNotification",{enumerable:!0,get:()=>y.SchmancyNotification}),Object.defineProperty(exports,"SchmancyNotificationContainer",{enumerable:!0,get:()=>y.SchmancyNotificationContainer}),exports.notify=D.notify,exports.notifyProgress=D.notifyProgress,Object.defineProperty(exports,"RadioButton",{enumerable:!0,get:()=>q.RadioButton}),Object.defineProperty(exports,"RadioGroup",{enumerable:!0,get:()=>q.RadioGroup}),exports.mutationObserver=L.mutationObserver,Object.defineProperty(exports,"SchmancySelect",{enumerable:!0,get:()=>V.SchmancySelect}),exports.SchmancySheetPosition=S.SchmancySheetPosition,exports.SheetHereMorty=S.SheetHereMorty,exports.SheetWhereAreYouRicky=S.SheetWhereAreYouRicky,exports.sheet=S.sheet,Object.defineProperty(exports,"SchmancySlide",{enumerable:!0,get:()=>T.SchmancySlide}),Object.defineProperty(exports,"SchmancySlider",{enumerable:!0,get:()=>T.SchmancySlider}),Object.defineProperty(exports,"SchmancyStep",{enumerable:!0,get:()=>l.SchmancyStep}),Object.defineProperty(exports,"SchmancyStepsContainer",{enumerable:!0,get:()=>l.SchmancyStepsContainer}),exports.StepsController=l.StepsController,exports.stepsContext=l.stepsContext,exports.BaseStore=a.BaseStore,exports.IndexedDBStorageManager=a.IndexedDBStorageManager,exports.LocalStorageManager=a.LocalStorageManager,exports.MemoryStorageManager=a.MemoryStorageManager,exports.SchmancyArrayStore=a.SchmancyArrayStore,exports.SchmancyStoreObject=a.SchmancyStoreObject,exports.SessionStorageManager=a.SessionStorageManager,exports.StoreError=a.StoreError,exports.createStorageManager=a.createStorageManager,exports.compareValues=e.compareValues,exports.createArrayContext=e.createArrayContext,exports.createCollectionSelector=e.createCollectionSelector,exports.createCompoundSelector=e.createCompoundSelector,exports.createContext=e.createContext,exports.createCountSelector=e.createCountSelector,exports.createEntriesSelector=e.createEntriesSelector,exports.createFilterSelector=e.createFilterSelector,exports.createFindSelector=e.createFindSelector,exports.createItemSelector=e.createItemSelector,exports.createItemsSelector=e.createItemsSelector,exports.createKeysSelector=e.createKeysSelector,exports.createMapSelector=e.createMapSelector,exports.createOptimizedSelector=e.createOptimizedSelector,exports.createSelector=e.createSelector,exports.createSortSelector=e.createSortSelector,exports.createTestArrayContext=e.createTestArrayContext,exports.filterArray=e.filterArray,exports.filterArrayItems=e.filterArrayItems,exports.filterMap=e.filterMap,exports.filterMapItems=e.filterMapItems,exports.getFieldValue=e.getFieldValue,exports.isArray=e.isArray,exports.isDate=e.isDate,exports.isIterable=e.isIterable,exports.isMap=e.isMap,exports.isNil=e.isNil,exports.isNumber=e.isNumber,exports.isPlainObject=e.isPlainObject,exports.isSet=e.isSet,exports.isString=e.isString,exports.select=e.select,exports.selectItem=e.selectItem,Object.defineProperty(exports,"SchmancySurface",{enumerable:!0,get:()=>w.SchmancySurface}),exports.SchmancySurfaceTypeContext=w.SchmancySurfaceTypeContext,Object.defineProperty(exports,"SchmancyDataTable",{enumerable:!0,get:()=>I.SchmancyDataTable}),Object.defineProperty(exports,"SchmancyTableRow",{enumerable:!0,get:()=>I.SchmancyTableRow}),exports.SchmancyTheme=Y.SchmancyTheme,Object.defineProperty(exports,"SchmancyThemeComponent",{enumerable:!0,get:()=>n.SchmancyThemeComponent}),exports.createDarkTonalPaletteFromBaseColor=n.createDarkTonalPaletteFromBaseColor,exports.createLightTonalPaletteFromBaseColor=n.createLightTonalPaletteFromBaseColor,exports.formateTheme=n.formateTheme,exports.tailwindStyles=n.tailwindStyles,exports.theme=n.theme,exports.themeContext=n.themeContext,exports.ThemeHereIAm=R.ThemeHereIAm,exports.ThemeWhereAreYou=R.ThemeWhereAreYou,Object.defineProperty(exports,"SchmancyTooltip",{enumerable:!0,get:()=>M.SchmancyTooltip}),exports.tooltip=M.tooltip,Object.defineProperty(exports,"SchmancyTree",{enumerable:!0,get:()=>z.SchmancyTree}),exports.SchmancyEvents=k.SchmancyEvents,Object.defineProperty(exports,"TypewriterElement",{enumerable:!0,get:()=>G.TypewriterElement}),Object.defineProperty(exports,"SchmancyTypography",{enumerable:!0,get:()=>W.SchmancyTypography}),exports.intersection$=$.intersection$,exports.Numbers=K.Numbers,exports.similarity=_.similarity;
1
+ "use strict";Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"}),require("./animated-text-vdNivzdc.cjs");const c=require("./area.component-DwPL6bdo.cjs"),t=require("./utils-C38P63L6.cjs");require("./autocomplete-ChRZ5y2p.cjs");const r=require("./avatar-B44Yq_7I.cjs"),N=require("./boat-DNmaFlxD.cjs");require("./spinner-BD8cXVK_.cjs");const p=require("./icon-button-BrRSVzzx.cjs");require("./media-BZwiyJto.cjs");const v=require("./checkbox-BJ5aqrKY.cjs"),i=require("./suggestion-chip-BPCzI7GW.cjs"),A=require("./input-chip-Cf25jEob.cjs"),h=require("./code-preview-fda91FDi.cjs"),x=require("./payment-card-form-C8bWa_hh.cjs"),d=require("./date-range-0nOdLk-l.cjs"),E=require("./date-range-inline-UoP6EDug.cjs"),s=require("./delay-CaOsI0yP.cjs"),B=require("./details-B_kKG0Du.cjs"),u=require("./dialog-content-B5MUa6uq.cjs"),f=require("./dialog-service-Bdaxn2t0.cjs"),b=require("./ripple-DqQrvaTe.cjs"),F=require("lit/directives/guard.js");require("./divider-DekMH80a.cjs");const C=require("./dropdown-content-eXth59vX.cjs"),P=require("./timezone-wWfEuXrb.cjs");require("./form-OUNdJnUW.cjs"),require("./icon-BwhQbcAk.cjs");const O=require("./input-lzxE1e5L.cjs"),m=require("./flex-CE0IKjR4.cjs"),g=require("./list-rGx4YHgo.cjs"),o=require("./email-recipients-DNcWf4_1.cjs"),H=require("./map-8DhybTup.cjs");require("./menu-D8qP_e7D.cjs");const j=require("./navigation-rail-BzMOzaFm.cjs"),y=require("./notification-service-DCmDSvc-.cjs"),D=require("./notify-XY2e8y_a.cjs");require("./option-q-dig7LF.cjs"),require("./progress-CP2lpJsl.cjs");const q=require("./radio-button-CU-lMs92.cjs"),L=require("./rxjs-utils.cjs");require("rxjs"),require("./index-CCi1otmh.cjs");const V=require("./select-Be8HIqWu.cjs");require("./sheet-dK5UPVjp.cjs");const S=require("./sheet.service-BxvWBGsJ.cjs"),T=require("./slider-CP3JRaWR.cjs"),l=require("./schmancy-steps-container-CQY1zmws.cjs"),a=require("./context-object-DA9DM9QJ.cjs"),e=require("./selector-hook-DQ9zoDM4.cjs"),w=require("./surface-ClIDhSRv.cjs"),I=require("./table-1New2HBS.cjs");require("./tabs-compatibility-DDtYFCUj.cjs"),require("./textarea-ChDsPBZz.cjs");const Y=require("./theme.interface-BMeNadVb.cjs"),n=require("./theme.component-Blc_4wu9.cjs"),R=require("./theme.events-Car6U_SQ.cjs");require("./theme-button-qzDX0i9Q.cjs");const M=require("./tooltip-DLadXXnP.cjs"),z=require("./tree-Brtho3Eu.cjs"),k=require("./types.cjs"),G=require("./typewriter-CEgaw_pR.cjs"),W=require("./typography-NurK7F-8.cjs"),$=require("./intersection-CVvaDv96.cjs"),K=require("./number-B7aCRYnH.cjs"),_=require("./search-DWW8IoOp.cjs");exports.FINDING_MORTIES=c.FINDING_MORTIES,exports.HERE_RICKY=c.HERE_RICKY,exports.HISTORY_STRATEGY=c.HISTORY_STRATEGY,Object.defineProperty(exports,"SchmancyArea",{enumerable:!0,get:()=>c.SchmancyArea}),Object.defineProperty(exports,"SchmancyRoute",{enumerable:!0,get:()=>c.SchmancyRoute}),exports.area=c.area,exports.routerHistory=c.routerHistory,exports.buildQueryString=t.buildQueryString,exports.compareActiveRoutes=t.compareActiveRoutes,exports.compareCustomElementConstructors=t.compareCustomElementConstructors,exports.compareRouteActions=t.compareRouteActions,exports.createRouteCacheKey=t.createRouteCacheKey,exports.debounce=t.debounce,exports.decodeData=t.decodeData,exports.decodeRouteState=t.decodeRouteState,exports.deepMerge=t.deepMerge,exports.encodeData=t.encodeData,exports.encodeRouteState=t.encodeRouteState,exports.extractQueryParams=t.extractQueryParams,exports.getTagName=t.getTagName,exports.isObject=t.isObject,exports.lazy=t.lazy,exports.normalizeTagName=t.normalizeTagName,exports.sanitizeRouteState=t.sanitizeRouteState,exports.$drawer=r.$drawer,exports.HereMorty=r.HereMorty,Object.defineProperty(exports,"ScBadgeV2",{enumerable:!0,get:()=>r.ScBadgeV2}),Object.defineProperty(exports,"SchmancyAvatar",{enumerable:!0,get:()=>r.SchmancyAvatar}),Object.defineProperty(exports,"SchmancyBadgeV2",{enumerable:!0,get:()=>r.SchmancyBadgeV2}),Object.defineProperty(exports,"SchmancyContentDrawer",{enumerable:!0,get:()=>r.SchmancyContentDrawer}),exports.SchmancyContentDrawerID=r.SchmancyContentDrawerID,Object.defineProperty(exports,"SchmancyContentDrawerMain",{enumerable:!0,get:()=>r.SchmancyContentDrawerMain}),exports.SchmancyContentDrawerMaxHeight=r.SchmancyContentDrawerMaxHeight,exports.SchmancyContentDrawerMinWidth=r.SchmancyContentDrawerMinWidth,Object.defineProperty(exports,"SchmancyContentDrawerSheet",{enumerable:!0,get:()=>r.SchmancyContentDrawerSheet}),exports.SchmancyContentDrawerSheetMode=r.SchmancyContentDrawerSheetMode,exports.SchmancyContentDrawerSheetState=r.SchmancyContentDrawerSheetState,Object.defineProperty(exports,"SchmancyDrawerAppbar",{enumerable:!0,get:()=>r.SchmancyDrawerAppbar}),exports.SchmancyDrawerNavbarMode=r.SchmancyDrawerNavbarMode,exports.SchmancyDrawerNavbarState=r.SchmancyDrawerNavbarState,Object.defineProperty(exports,"SchmancyNavigationBar",{enumerable:!0,get:()=>r.SchmancyNavigationBar}),Object.defineProperty(exports,"SchmancyNavigationBarItem",{enumerable:!0,get:()=>r.SchmancyNavigationBarItem}),Object.defineProperty(exports,"SchmancyNavigationDrawer",{enumerable:!0,get:()=>r.SchmancyNavigationDrawer}),Object.defineProperty(exports,"SchmancyNavigationDrawerContent",{enumerable:!0,get:()=>r.SchmancyNavigationDrawerContent}),Object.defineProperty(exports,"SchmancyNavigationDrawerSidebar",{enumerable:!0,get:()=>r.SchmancyNavigationDrawerSidebar}),Object.defineProperty(exports,"SchmancyTeleportation",{enumerable:!0,get:()=>r.SchmancyTeleportation}),exports.WhereAreYouRicky=r.WhereAreYouRicky,exports.schmancyContentDrawer=r.schmancyContentDrawer,exports.schmancyNavDrawer=r.schmancyNavDrawer,exports.teleport=r.teleport,Object.defineProperty(exports,"SchmancyBoat",{enumerable:!0,get:()=>N.SchmancyBoat}),Object.defineProperty(exports,"SchmancyButton",{enumerable:!0,get:()=>p.SchmancyButton}),Object.defineProperty(exports,"SchmnacyIconButton",{enumerable:!0,get:()=>p.SchmnacyIconButton}),Object.defineProperty(exports,"SchmancyCheckbox",{enumerable:!0,get:()=>v.SchmancyCheckboxElement}),Object.defineProperty(exports,"SchmancyAssistChip",{enumerable:!0,get:()=>i.SchmancyAssistChip}),exports.SchmancyChip=i.SchmancyFilterChip,exports.SchmancyFilterChip=i.SchmancyFilterChip,Object.defineProperty(exports,"SchmancySuggestionChip",{enumerable:!0,get:()=>i.SchmancySuggestionChip}),Object.defineProperty(exports,"SchmancyInputChip",{enumerable:!0,get:()=>A.SchmancyInputChip}),Object.defineProperty(exports,"SchmancyCode",{enumerable:!0,get:()=>h.SchmancyCode}),Object.defineProperty(exports,"SchmancyCodeHighlight",{enumerable:!0,get:()=>h.SchmancyCode}),Object.defineProperty(exports,"SchmancyCodePreview",{enumerable:!0,get:()=>h.SchmancyCodePreview}),Object.defineProperty(exports,"SchmancyPaymentCardForm",{enumerable:!0,get:()=>x.SchmancyPaymentCardForm}),Object.defineProperty(exports,"SchmancyDateRange",{enumerable:!0,get:()=>d.SchmancyDateRange}),exports.validateInitialDateRange=d.validateInitialDateRange,Object.defineProperty(exports,"SchmancyDateRangeInline",{enumerable:!0,get:()=>E.SchmancyDateRangeInline}),Object.defineProperty(exports,"SchmancyDelay",{enumerable:!0,get:()=>s.SchmancyDelay}),exports.delayContext=s.delayContext,Object.defineProperty(exports,"SchmancyDetails",{enumerable:!0,get:()=>B.SchmancyDetails}),Object.defineProperty(exports,"ConfirmDialog",{enumerable:!0,get:()=>u.ConfirmDialog}),Object.defineProperty(exports,"SchmancyDialog",{enumerable:!0,get:()=>u.SchmancyDialog}),Object.defineProperty(exports,"SchmancyDialogContent",{enumerable:!0,get:()=>u.SchmancyDialogContent}),exports.$dialog=f.$dialog,exports.DialogService=f.DialogService,exports.color=b.color,exports.fullHeight=b.fullHeight,exports.ripple=b.ripple,Object.defineProperty(exports,"guard",{enumerable:!0,get:()=>F.guard}),Object.defineProperty(exports,"SchmancyDropdown",{enumerable:!0,get:()=>C.SchmancyDropdown}),Object.defineProperty(exports,"SchmancyDropdownContent",{enumerable:!0,get:()=>C.SchmancyDropdownContent}),Object.defineProperty(exports,"SchmancyCountriesSelect",{enumerable:!0,get:()=>P.SchmancyCountriesSelect}),Object.defineProperty(exports,"SchmancyTimezonesSelect",{enumerable:!0,get:()=>P.SchmancyTimezonesSelect}),Object.defineProperty(exports,"SchmancyInput",{enumerable:!0,get:()=>O.SchmancyInput}),Object.defineProperty(exports,"SchmancyInputCompat",{enumerable:!0,get:()=>O.SchmancyInputCompat}),Object.defineProperty(exports,"SchmancyFlex",{enumerable:!0,get:()=>m.SchmancyFlex}),Object.defineProperty(exports,"SchmancyFlexV2",{enumerable:!0,get:()=>m.SchmancyFlexV2}),Object.defineProperty(exports,"SchmancyGrid",{enumerable:!0,get:()=>m.SchmancyGrid}),Object.defineProperty(exports,"SchmancyScroll",{enumerable:!0,get:()=>m.SchmancyScroll}),Object.defineProperty(exports,"List",{enumerable:!0,get:()=>g.List}),Object.defineProperty(exports,"SchmancyListItem",{enumerable:!0,get:()=>g.SchmancyListItem}),exports.SchmancyListTypeContext=g.SchmancyListTypeContext,Object.defineProperty(exports,"SchmancyEmailEditor",{enumerable:!0,get:()=>o.SchmancyEmailEditor}),Object.defineProperty(exports,"SchmancyEmailLayoutSelector",{enumerable:!0,get:()=>o.SchmancyEmailLayoutSelector}),Object.defineProperty(exports,"SchmancyEmailRecipients",{enumerable:!0,get:()=>o.SchmancyEmailRecipients}),Object.defineProperty(exports,"SchmancyEmailViewer",{enumerable:!0,get:()=>o.SchmancyEmailViewer}),Object.defineProperty(exports,"SchmancyMailbox",{enumerable:!0,get:()=>o.SchmancyMailbox}),Object.defineProperty(exports,"SchmancyMap",{enumerable:!0,get:()=>H.SchmancyMap}),Object.defineProperty(exports,"SchmancyNavigationRail",{enumerable:!0,get:()=>j.SchmancyNavigationRail}),Object.defineProperty(exports,"SchmancyNavigationRailItem",{enumerable:!0,get:()=>j.SchmancyNavigationRailItem}),exports.$notify=y.$notify,exports.NotificationAudioService=y.NotificationAudioService,Object.defineProperty(exports,"SchmancyNotification",{enumerable:!0,get:()=>y.SchmancyNotification}),Object.defineProperty(exports,"SchmancyNotificationContainer",{enumerable:!0,get:()=>y.SchmancyNotificationContainer}),exports.notify=D.notify,exports.notifyProgress=D.notifyProgress,Object.defineProperty(exports,"RadioButton",{enumerable:!0,get:()=>q.RadioButton}),Object.defineProperty(exports,"RadioGroup",{enumerable:!0,get:()=>q.RadioGroup}),exports.mutationObserver=L.mutationObserver,Object.defineProperty(exports,"SchmancySelect",{enumerable:!0,get:()=>V.SchmancySelect}),exports.SchmancySheetPosition=S.SchmancySheetPosition,exports.SheetHereMorty=S.SheetHereMorty,exports.SheetWhereAreYouRicky=S.SheetWhereAreYouRicky,exports.sheet=S.sheet,Object.defineProperty(exports,"SchmancySlide",{enumerable:!0,get:()=>T.SchmancySlide}),Object.defineProperty(exports,"SchmancySlider",{enumerable:!0,get:()=>T.SchmancySlider}),Object.defineProperty(exports,"SchmancyStep",{enumerable:!0,get:()=>l.SchmancyStep}),Object.defineProperty(exports,"SchmancyStepsContainer",{enumerable:!0,get:()=>l.SchmancyStepsContainer}),exports.StepsController=l.StepsController,exports.stepsContext=l.stepsContext,exports.BaseStore=a.BaseStore,exports.IndexedDBStorageManager=a.IndexedDBStorageManager,exports.LocalStorageManager=a.LocalStorageManager,exports.MemoryStorageManager=a.MemoryStorageManager,exports.SchmancyArrayStore=a.SchmancyArrayStore,exports.SchmancyStoreObject=a.SchmancyStoreObject,exports.SessionStorageManager=a.SessionStorageManager,exports.StoreError=a.StoreError,exports.createStorageManager=a.createStorageManager,exports.compareValues=e.compareValues,exports.createArrayContext=e.createArrayContext,exports.createCollectionSelector=e.createCollectionSelector,exports.createCompoundSelector=e.createCompoundSelector,exports.createContext=e.createContext,exports.createCountSelector=e.createCountSelector,exports.createEntriesSelector=e.createEntriesSelector,exports.createFilterSelector=e.createFilterSelector,exports.createFindSelector=e.createFindSelector,exports.createItemSelector=e.createItemSelector,exports.createItemsSelector=e.createItemsSelector,exports.createKeysSelector=e.createKeysSelector,exports.createMapSelector=e.createMapSelector,exports.createOptimizedSelector=e.createOptimizedSelector,exports.createSelector=e.createSelector,exports.createSortSelector=e.createSortSelector,exports.createTestArrayContext=e.createTestArrayContext,exports.filterArray=e.filterArray,exports.filterArrayItems=e.filterArrayItems,exports.filterMap=e.filterMap,exports.filterMapItems=e.filterMapItems,exports.getFieldValue=e.getFieldValue,exports.isArray=e.isArray,exports.isDate=e.isDate,exports.isIterable=e.isIterable,exports.isMap=e.isMap,exports.isNil=e.isNil,exports.isNumber=e.isNumber,exports.isPlainObject=e.isPlainObject,exports.isSet=e.isSet,exports.isString=e.isString,exports.select=e.select,exports.selectItem=e.selectItem,Object.defineProperty(exports,"SchmancySurface",{enumerable:!0,get:()=>w.SchmancySurface}),exports.SchmancySurfaceTypeContext=w.SchmancySurfaceTypeContext,Object.defineProperty(exports,"SchmancyDataTable",{enumerable:!0,get:()=>I.SchmancyDataTable}),Object.defineProperty(exports,"SchmancyTableRow",{enumerable:!0,get:()=>I.SchmancyTableRow}),exports.SchmancyTheme=Y.SchmancyTheme,Object.defineProperty(exports,"SchmancyThemeComponent",{enumerable:!0,get:()=>n.SchmancyThemeComponent}),exports.createDarkTonalPaletteFromBaseColor=n.createDarkTonalPaletteFromBaseColor,exports.createLightTonalPaletteFromBaseColor=n.createLightTonalPaletteFromBaseColor,exports.formateTheme=n.formateTheme,exports.tailwindStyles=n.tailwindStyles,exports.theme=n.theme,exports.themeContext=n.themeContext,exports.ThemeHereIAm=R.ThemeHereIAm,exports.ThemeWhereAreYou=R.ThemeWhereAreYou,Object.defineProperty(exports,"SchmancyTooltip",{enumerable:!0,get:()=>M.SchmancyTooltip}),exports.tooltip=M.tooltip,Object.defineProperty(exports,"SchmancyTree",{enumerable:!0,get:()=>z.SchmancyTree}),exports.SchmancyEvents=k.SchmancyEvents,Object.defineProperty(exports,"TypewriterElement",{enumerable:!0,get:()=>G.TypewriterElement}),Object.defineProperty(exports,"SchmancyTypography",{enumerable:!0,get:()=>W.SchmancyTypography}),exports.intersection$=$.intersection$,exports.Numbers=K.Numbers,exports.similarity=_.similarity;
2
2
  //# sourceMappingURL=index.cjs.map
package/dist/index.js CHANGED
@@ -1,8 +1,8 @@
1
1
  import "./animated-text-Bn8-ILmB.js";
2
2
  import { F as d, H as g, c as u, S as D, b, a as T, r as w } from "./area.component-pd24G8zW.js";
3
3
  import { p as R, k as M, c as N, j as v, m as A, b as E, d as B, h as F, a as H, e as L, f as P, o as k, g as O, i as $, l as j, n as z, s as V } from "./utils-CYOVFxSx.js";
4
- import "./autocomplete-BlhAOtex.js";
5
- import { $ as G, H as W, a as K, v as _, S as q, g as Q, d as J, h as U, e as X, f as Z, i as aa, b as ea, c as ta, k as ra, m as oa, n as ca, r as sa, q as ma, o as na, l as Sa, p as ia, t as ha, W as ya, s as pa, j as la, u as fa } from "./avatar-BYEYf6j6.js";
4
+ import "./autocomplete-CeB2VvCm.js";
5
+ import { $ as G, H as W, a as K, v as _, S as q, g as Q, d as J, h as U, e as X, f as Z, i as aa, b as ea, c as ta, k as ra, m as oa, n as ca, r as sa, q as ma, o as na, l as Sa, p as ia, t as ha, W as ya, s as pa, j as la, u as fa } from "./avatar-ByCv3NzJ.js";
6
6
  import { S as Ca } from "./boat-dSTPix8t.js";
7
7
  import "./spinner-DGyRYqUZ.js";
8
8
  import { S as ga, a as ua } from "./icon-button-CGMdsmXS.js";
@@ -1,2 +1,2 @@
1
- "use strict";Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});const e=require("./avatar-CLMPaFdx.cjs");exports.$drawer=e.$drawer,Object.defineProperty(exports,"SchmancyDrawerAppbar",{enumerable:!0,get:()=>e.SchmancyDrawerAppbar}),exports.SchmancyDrawerNavbarMode=e.SchmancyDrawerNavbarMode,exports.SchmancyDrawerNavbarState=e.SchmancyDrawerNavbarState,Object.defineProperty(exports,"SchmancyNavigationDrawer",{enumerable:!0,get:()=>e.SchmancyNavigationDrawer}),Object.defineProperty(exports,"SchmancyNavigationDrawerContent",{enumerable:!0,get:()=>e.SchmancyNavigationDrawerContent}),Object.defineProperty(exports,"SchmancyNavigationDrawerSidebar",{enumerable:!0,get:()=>e.SchmancyNavigationDrawerSidebar}),exports.schmancyNavDrawer=e.schmancyNavDrawer;
1
+ "use strict";Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});const e=require("./avatar-B44Yq_7I.cjs");exports.$drawer=e.$drawer,Object.defineProperty(exports,"SchmancyDrawerAppbar",{enumerable:!0,get:()=>e.SchmancyDrawerAppbar}),exports.SchmancyDrawerNavbarMode=e.SchmancyDrawerNavbarMode,exports.SchmancyDrawerNavbarState=e.SchmancyDrawerNavbarState,Object.defineProperty(exports,"SchmancyNavigationDrawer",{enumerable:!0,get:()=>e.SchmancyNavigationDrawer}),Object.defineProperty(exports,"SchmancyNavigationDrawerContent",{enumerable:!0,get:()=>e.SchmancyNavigationDrawerContent}),Object.defineProperty(exports,"SchmancyNavigationDrawerSidebar",{enumerable:!0,get:()=>e.SchmancyNavigationDrawerSidebar}),exports.schmancyNavDrawer=e.schmancyNavDrawer;
2
2
  //# sourceMappingURL=nav-drawer.cjs.map
@@ -1,4 +1,4 @@
1
- import { $ as c, k as e, m as n, n as m, o as s, l as o, p as t, j as w } from "./avatar-BYEYf6j6.js";
1
+ import { $ as c, k as e, m as n, n as m, o as s, l as o, p as t, j as w } from "./avatar-ByCv3NzJ.js";
2
2
  export {
3
3
  c as $drawer,
4
4
  e as SchmancyDrawerAppbar,
@@ -1,2 +1,2 @@
1
- "use strict";Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});const e=require("./avatar-CLMPaFdx.cjs");Object.defineProperty(exports,"SchmancyNavigationBar",{enumerable:!0,get:()=>e.SchmancyNavigationBar}),Object.defineProperty(exports,"SchmancyNavigationBarItem",{enumerable:!0,get:()=>e.SchmancyNavigationBarItem});
1
+ "use strict";Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});const e=require("./avatar-B44Yq_7I.cjs");Object.defineProperty(exports,"SchmancyNavigationBar",{enumerable:!0,get:()=>e.SchmancyNavigationBar}),Object.defineProperty(exports,"SchmancyNavigationBarItem",{enumerable:!0,get:()=>e.SchmancyNavigationBarItem});
2
2
  //# sourceMappingURL=navigation-bar.cjs.map
@@ -1,4 +1,4 @@
1
- import { r as c, q as i } from "./avatar-BYEYf6j6.js";
1
+ import { r as c, q as i } from "./avatar-ByCv3NzJ.js";
2
2
  export {
3
3
  c as SchmancyNavigationBar,
4
4
  i as SchmancyNavigationBarItem
package/dist/teleport.cjs CHANGED
@@ -1,2 +1,2 @@
1
- "use strict";Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});const e=require("./avatar-CLMPaFdx.cjs");exports.HereMorty=e.HereMorty,Object.defineProperty(exports,"SchmancyTeleportation",{enumerable:!0,get:()=>e.SchmancyTeleportation}),exports.WhereAreYouRicky=e.WhereAreYouRicky,exports.teleport=e.teleport;
1
+ "use strict";Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});const e=require("./avatar-B44Yq_7I.cjs");exports.HereMorty=e.HereMorty,Object.defineProperty(exports,"SchmancyTeleportation",{enumerable:!0,get:()=>e.SchmancyTeleportation}),exports.WhereAreYouRicky=e.WhereAreYouRicky,exports.teleport=e.teleport;
2
2
  //# sourceMappingURL=teleport.cjs.map
package/dist/teleport.js CHANGED
@@ -1,4 +1,4 @@
1
- import { H as o, t, W as a, u as s } from "./avatar-BYEYf6j6.js";
1
+ import { H as o, t, W as a, u as s } from "./avatar-ByCv3NzJ.js";
2
2
  export {
3
3
  o as HereMorty,
4
4
  t as SchmancyTeleportation,
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@mhmo91/schmancy",
3
- "version": "0.5.28",
3
+ "version": "0.5.29",
4
4
  "description": "UI library build with web components",
5
5
  "main": "./dist/index.js",
6
6
  "exports": {
@@ -6,6 +6,8 @@ export type SchmancyAutocompleteChangeEvent = CustomEvent<{
6
6
  }>;
7
7
  declare const SchmancyAutocomplete_base: CustomElementConstructor & import("@mixins/index").Constructor<import("lit").LitElement> & import("@mixins/index").Constructor<import("@mixins/index").IBaseMixin>;
8
8
  export default class SchmancyAutocomplete extends SchmancyAutocomplete_base {
9
+ _valueSet: boolean;
10
+ _valuesSet: boolean;
9
11
  required: boolean;
10
12
  placeholder: string;
11
13
  label: string;
@@ -1 +0,0 @@
1
- {"version":3,"file":"autocomplete-BlhAOtex.js","sources":["../src/autocomplete/autocomplete.ts"],"sourcesContent":["import { $LitElement } from '@mixins/index'\nimport { InputSize, SchmancyInput } from '@schmancy/input'\nimport SchmancyOption from '@schmancy/option/option'\nimport { html } from 'lit'\nimport { customElement, property, query, queryAssignedElements, state } from 'lit/decorators.js'\nimport { classMap } from 'lit/directives/class-map.js'\nimport { createRef, ref } from 'lit/directives/ref.js'\nimport { repeat } from 'lit/directives/repeat.js'\nimport { when } from 'lit/directives/when.js'\nimport {\n BehaviorSubject,\n combineLatest\n} from 'rxjs'\nimport {\n debounceTime,\n distinctUntilChanged,\n take,\n takeUntil,\n tap\n} from 'rxjs/operators'\nimport style from './autocomplete.scss?inline'\n\n// Import the similarity function (or include it inline)\nimport { similarity } from '../utils/search'\n// Import chip component for multi-select display\nimport '../chips/input-chip'\n\nexport type SchmancyAutocompleteChangeEvent = CustomEvent<{\n value: string | string[]\n values?: string[]\n}>\n\ninterface FilteredOption {\n option: SchmancyOption\n score: number\n}\n\n@customElement('schmancy-autocomplete')\nexport default class SchmancyAutocomplete extends $LitElement(style) {\n // Public API properties\n @property({ type: Boolean }) required = false\n @property({ type: String }) placeholder = ''\n @property({ type: String, reflect: true }) label = ''\n @property({ type: String }) name = ''\n @property({ type: String }) maxHeight = '300px'\n @property({ type: Boolean }) multi = false\n @property({ type: String }) description = ''\n @property({ type: String, reflect: true }) size: InputSize = 'md'\n @property({ type: String }) autocomplete = 'off'\n @property({ type: Number }) debounceMs = 200\n @property({ type: Number }) similarityThreshold = 0.3 // Minimum similarity score to show option\n @property({ type: Boolean }) error = false\n @property({ type: String }) validationMessage = ''\n\n // Values property for multi-select mode\n @property({ type: Array })\n get values() {\n return [...this._selectedValues$.value]\n }\n set values(vals: string[]) {\n this._selectedValues$.next(Array.isArray(vals) ? [...vals] : [])\n }\n\n // Value property\n @property({ type: String, reflect: true })\n get value() {\n return this.multi \n ? this._selectedValues$.value.join(',')\n : this._selectedValue$.value\n }\n set value(val: string) {\n if (this.multi) {\n const newValues = val ? val.split(',').map(v => v.trim()).filter(Boolean) : []\n const currentValues = this._selectedValues$.value\n // Only update if values actually changed\n if (JSON.stringify(newValues) !== JSON.stringify(currentValues)) {\n this._selectedValues$.next(newValues)\n }\n } else {\n // Only update if value actually changed\n if (val !== this._selectedValue$.value) {\n this._selectedValue$.next(val)\n }\n }\n }\n\n // State\n @state() private _open = false\n @state() private _inputValue = ''\n @state() private _visibleOptionsCount = 0\n @state() private _hasResults = true\n\n // Track if we're clicking on an option to prevent blur interference\n private _isSelectingOption = false\n\n // DOM references\n @query('#options') _listbox!: HTMLUListElement\n @query('sch-input') _input!: SchmancyInput\n @queryAssignedElements({ flatten: true }) private _options!: SchmancyOption[]\n private _inputElementRef = createRef<HTMLInputElement>()\n\n // RxJS Subjects - only what we actually need\n private _selectedValue$ = new BehaviorSubject<string>('')\n private _selectedValues$ = new BehaviorSubject<string[]>([])\n private _inputValue$ = new BehaviorSubject<string>('')\n\n connectedCallback() {\n super.connectedCallback()\n\n if (!this.id) {\n this.id = `sch-autocomplete-${Math.random().toString(36).slice(2, 9)}`\n }\n\n this._setupAutocompleteLogic()\n this._setupDocumentClickHandler()\n }\n\n private _setupAutocompleteLogic() {\n // Sync selection state\n combineLatest([\n this._selectedValue$,\n this._selectedValues$\n ]).pipe(\n tap(([selectedValue, selectedValues]) => {\n this._updateOptionSelection(selectedValue, selectedValues)\n }),\n takeUntil(this.disconnecting)\n ).subscribe()\n\n // Filter options based on input\n this._inputValue$.pipe(\n distinctUntilChanged(),\n debounceTime(this.debounceMs),\n tap(searchTerm => {\n if (this._open) {\n this._filterOptions(searchTerm)\n }\n }),\n takeUntil(this.disconnecting)\n ).subscribe()\n }\n\n private _setupOptionHandlers() {\n this._options.forEach((option, index) => {\n option.setAttribute('role', 'option')\n option.tabIndex = -1\n if (!option.id) {\n option.id = `${this.id}-option-${index}`\n }\n // Prevent blur handler from interfering with option selection\n option.onmousedown = (e: MouseEvent) => {\n e.preventDefault() // Prevent focus loss\n this._isSelectingOption = true\n }\n\n // Handle the actual selection\n option.onclick = (e: MouseEvent) => {\n e.stopPropagation()\n this._selectOption(option)\n // Reset flag after a short delay\n setTimeout(() => {\n this._isSelectingOption = false\n }, 50)\n }\n })\n }\n\n private _updateOptionSelection(selectedValue: string, selectedValues: string[]) {\n this._options.forEach(option => {\n option.selected = this.multi\n ? selectedValues.includes(option.value)\n : option.value === selectedValue\n option.setAttribute('aria-selected', String(option.selected))\n })\n }\n\n private _filterOptions(searchTerm: string) {\n const term = searchTerm.trim()\n\n if (!term) {\n // Show all options if no search term\n this._options.forEach(option => {\n option.hidden = false\n option.style.order = '0'\n })\n this._visibleOptionsCount = this._options.length\n this._hasResults = true\n } else {\n // Calculate similarity scores for all options\n const scoredOptions: FilteredOption[] = this._options.map(option => {\n const optionLabel = option.label || option.textContent || ''\n const optionValue = option.value\n\n const labelScore = similarity(term, optionLabel)\n const valueScore = similarity(term, optionValue)\n const score = Math.max(labelScore * 1.1, valueScore)\n\n return { option, score }\n })\n\n // Sort by score (highest first)\n scoredOptions.sort((a, b) => b.score - a.score)\n\n // Apply visibility and ordering\n let visibleCount = 0\n scoredOptions.forEach((item, index) => {\n const { option, score } = item\n\n if (score < this.similarityThreshold) {\n option.hidden = true\n } else {\n option.hidden = false\n visibleCount++\n option.style.order = String(index)\n }\n })\n\n this._visibleOptionsCount = visibleCount\n this._hasResults = visibleCount > 0\n }\n\n this._announceToScreenReader(\n this._visibleOptionsCount > 0\n ? `${this._visibleOptionsCount} option${this._visibleOptionsCount === 1 ? '' : 's'} available.`\n : 'No results found.'\n )\n }\n\n private _selectOption(option: SchmancyOption) {\n if (this.multi) {\n const currentValues = this._selectedValues$.value\n const index = currentValues.indexOf(option.value)\n const newValues = index > -1\n ? currentValues.filter(v => v !== option.value)\n : [...currentValues, option.value]\n\n this._selectedValues$.next(newValues)\n this._announceToScreenReader(\n newValues.length > 0\n ? `Selected: ${this._getSelectedLabels().join(', ')}`\n : 'No options selected'\n )\n this._fireChangeEvent()\n } else {\n // Fix the bug: Update value BEFORE firing event\n this._selectedValue$.next(option.value)\n\n // Now fire event with the NEW value\n this._fireChangeEvent()\n\n // Update UI\n this._open = false\n this._inputValue = option.label || option.textContent || ''\n this._inputValue$.next(this._inputValue)\n\n // Blur the input\n setTimeout(() => this._inputElementRef.value?.blur(), 100)\n\n this._announceToScreenReader(`Selected: ${option.label || option.textContent}`)\n }\n }\n\n private _setupDocumentClickHandler() {\n // Simple document click handler\n const handleDocumentClick = (e: MouseEvent) => {\n if (!this._open) return\n\n const path = e.composedPath()\n if (!path.includes(this) && !this._options.some(opt => path.includes(opt))) {\n this._open = false\n this._updateInputDisplay()\n }\n }\n\n document.addEventListener('click', handleDocumentClick)\n\n // Cleanup on disconnect\n this.disconnecting.pipe(take(1)).subscribe(() => {\n document.removeEventListener('click', handleDocumentClick)\n })\n }\n\n\n private _updateInputDisplay() {\n // For multi-select, we don't update input display since chips show the selections\n if (this.multi || this._open) return\n\n const selectedValue = this._selectedValue$.value\n const option = this._options.find(opt => opt.value === selectedValue)\n this._inputValue = option ? option.label || option.textContent || '' : ''\n this._inputValue$.next(this._inputValue)\n\n if (this._inputElementRef.value) {\n this._inputElementRef.value.value = this._inputValue\n }\n }\n\n private _getSelectedLabels(): string[] {\n return this._options\n .filter(option => \n this.multi \n ? this._selectedValues$.value.includes(option.value)\n : option.value === this._selectedValue$.value\n )\n .map(option => option.label || option.textContent || '')\n }\n\n private _announceToScreenReader(message: string) {\n const liveRegion = this.shadowRoot?.querySelector('#live-status')\n if (liveRegion) {\n liveRegion.textContent = message\n }\n }\n\n private _fireChangeEvent() {\n const detail: SchmancyAutocompleteChangeEvent['detail'] = {\n value: this.value,\n }\n\n if (this.multi) {\n detail.values = [...this._selectedValues$.value]\n }\n\n this.dispatchEvent(\n new CustomEvent<SchmancyAutocompleteChangeEvent['detail']>('change', {\n detail,\n bubbles: true,\n composed: true,\n })\n )\n }\n\n public checkValidity(): boolean {\n if (!this.required) return true\n return this.multi \n ? this._selectedValues$.value.length > 0 \n : Boolean(this._selectedValue$.value)\n }\n\n public reportValidity(): boolean {\n if (this._inputElementRef.value) {\n return this._inputElementRef.value.reportValidity()\n }\n return this.checkValidity()\n }\n\n firstUpdated() {\n this._setupOptionHandlers()\n\n // Update options when slot changes\n const slot = this.shadowRoot?.querySelector('slot')\n slot?.addEventListener('slotchange', () => {\n this._setupOptionHandlers()\n this._updateOptionSelection(this._selectedValue$.value, this._selectedValues$.value)\n })\n }\n\n private handleChipRemove(value: string) {\n const currentValues = this._selectedValues$.value\n const newValues = currentValues.filter(v => v !== value)\n this._selectedValues$.next(newValues)\n this._fireChangeEvent()\n this._announceToScreenReader(`Removed: ${this._getChipLabel(value)}`)\n }\n\n private _getChipLabel(value: string): string {\n const option = this._options.find(opt => opt.value === value)\n return option ? option.label || option.textContent || value : value\n }\n\n private _focusTextInput() {\n if (this._inputElementRef.value) {\n this._inputElementRef.value.focus()\n }\n }\n\n render() {\n const descriptionId = `${this.id}-desc`\n\n // Get size-based styling to match Schmancy input\n const getSizeStyles = () => {\n switch (this.size) {\n case 'sm':\n return {\n height: 'min-h-[40px]',\n padding: 'px-2',\n fontSize: 'text-sm', // 14px\n labelSize: 'text-sm'\n }\n case 'lg':\n return {\n height: 'min-h-[60px]',\n padding: 'px-5',\n fontSize: 'text-lg', // 18px\n labelSize: 'text-lg'\n }\n case 'md':\n default:\n return {\n height: 'min-h-[50px]',\n padding: 'px-4',\n fontSize: 'text-base', // 16px\n labelSize: 'text-base'\n }\n }\n }\n\n const { height, padding, fontSize, labelSize } = getSizeStyles()\n\n return html`\n <div class=\"relative\">\n <!-- Screen reader live region -->\n <div id=\"live-status\" role=\"status\" aria-live=\"polite\" class=\"sr-only\"></div>\n\n <!-- Description -->\n ${this.description ? html`<div id=\"${descriptionId}\" class=\"sr-only\">${this.description}</div>` : ''}\n\n <!-- Custom input wrapper for Gmail-style chip input -->\n <slot name=\"trigger\">\n ${when(this.multi,\n () => html`\n <!-- Custom multi-select input with inline chips -->\n <div class=\"relative\">\n ${when(this.label, () => html`\n <label class=\"${classMap({\n 'block mb-1 font-medium': true,\n 'text-primary-default': !this.error,\n 'text-error-default': this.error,\n [labelSize]: true\n })}\">\n ${this.label}${this.required ? html`<span class=\"text-error-default ml-1\">*</span>` : ''}\n </label>\n `)}\n <div\n class=\"${classMap({\n 'flex flex-wrap items-center gap-1': true,\n [height]: true,\n [padding]: true,\n 'block w-full min-w-0 rounded-[8px] border-0': true,\n 'bg-surface-highest text-surface-on': true,\n 'ring-0 ring-inset focus-within:ring-1 focus-within:ring-inset': true,\n 'ring-secondary-default focus-within:ring-secondary-default': !this.error,\n 'ring-error-default focus-within:ring-error-default': this.error,\n 'cursor-text transition-colors duration-200': true\n })}\"\n @click=${() => this._focusTextInput()}\n role=\"combobox\"\n aria-autocomplete=\"list\"\n aria-haspopup=\"listbox\"\n aria-controls=\"options\"\n aria-expanded=${this._open}\n >\n <!-- Render chips inline -->\n ${repeat(\n this._selectedValues$.value,\n value => value,\n value => html`\n <schmancy-input-chip\n .value=${value}\n @remove=${(e: CustomEvent) => this.handleChipRemove(e.detail.value)}\n class=\"flex-shrink-0 my-0.5\"\n >\n ${this._getChipLabel(value)}\n </schmancy-input-chip>\n `\n )}\n\n <!-- Text input for typing -->\n <input\n ${ref(this._inputElementRef)}\n id=\"autocomplete-input\"\n type=\"text\"\n class=\"flex-1 min-w-[120px] py-1 bg-transparent border-none outline-none ${fontSize} font-medium text-surface-on placeholder:text-muted\"\n name=${this.name || this.label?.toLowerCase().replace(/\\s+/g, '-') || ''}\n .placeholder=${this._selectedValues$.value.length > 0 ? 'Add more...' : this.placeholder}\n .value=${this._inputValue}\n .autocomplete=${this.autocomplete}\n @input=${(e: Event) => {\n const value = (e.target as HTMLInputElement).value\n this._inputValue = value\n this._inputValue$.next(value)\n }}\n @focus=${(e: FocusEvent) => {\n e.stopPropagation()\n // Clear input on focus for new searches\n this._inputValue = ''\n this._inputValue$.next('')\n this._open = true\n }}\n @keydown=${(e: KeyboardEvent) => {\n this._handleKeyDown(e)\n }}\n @blur=${() => {\n this._handleAutoSelectOnBlur()\n }}\n />\n </div>\n\n <!-- Validation message -->\n ${when(this.error && this.validationMessage, () => html`\n <div class=\"mt-1 text-sm text-error-default\">\n ${this.validationMessage}\n </div>\n `)}\n </div>\n `,\n () => html`\n <!-- Regular single-select input -->\n <schmancy-input\n .size=${this.size}\n ${ref(this._inputElementRef)}\n id=\"autocomplete-input\"\n class=\"w-full\"\n .name=${this.name || this.label?.toLowerCase().replace(/\\s+/g, '-') || ''}\n .label=${this.label}\n .placeholder=${this.placeholder}\n .required=${this.required}\n .value=${this._inputValue}\n type=\"text\"\n autocomplete=${this.autocomplete}\n clickable\n role=\"combobox\"\n aria-autocomplete=\"list\"\n aria-haspopup=\"listbox\"\n aria-controls=\"options\"\n aria-expanded=${this._open}\n aria-describedby=${this.description ? descriptionId : undefined}\n @input=${(e: Event) => {\n const value = (e.target as HTMLInputElement).value\n this._inputValue = value\n this._inputValue$.next(value)\n }}\n @focus=${(e: FocusEvent) => {\n e.stopPropagation()\n this._open = true\n }}\n @click=${(e: MouseEvent) => {\n e.stopPropagation()\n this._open = true\n }}\n @keydown=${(e: KeyboardEvent) => {\n this._handleKeyDown(e)\n }}\n @blur=${() => {\n this._handleAutoSelectOnBlur()\n }}\n >\n </schmancy-input>\n `\n )}\n </slot>\n\n <!-- Options dropdown -->\n <ul\n id=\"options\"\n class=${classMap({\n 'absolute': true,\n 'z-[1000]': true,\n 'mt-1': true,\n 'w-full': true,\n 'rounded-md': true,\n 'shadow-md': true,\n 'overflow-auto': true,\n 'min-w-full': true,\n 'bg-surface-low': true,\n 'flex': true,\n 'flex-col': true, // Enable flexbox for ordering\n })}\n role=\"listbox\"\n aria-multiselectable=${this.multi ? 'true' : 'false'}\n aria-label=${`${this.label || 'Options'} dropdown`}\n ?hidden=${!this._open}\n style=\"max-height: ${this.maxHeight}; display: ${this._open ? 'flex' : 'none'};\"\n @slotchange=${() => {\n this._setupOptionHandlers()\n }}\n >\n <slot></slot>\n ${!this._hasResults ? html`\n <li class=\"px-3 py-2 text-sm text-muted\">No results found</li>\n ` : ''}\n </ul>\n </div>\n `\n }\n\n private _handleAutoSelectOnBlur() {\n // Don't run if we're clicking on an option (prevents interference with click handler)\n if (this._isSelectingOption) {\n return\n }\n\n // Only auto-select in single-select mode and when dropdown is open with a search term\n if (this.multi || !this._open || !this._inputValue.trim()) {\n return\n }\n \n const searchTerm = this._inputValue.trim()\n \n // Find the best matching option using the same similarity logic as filtering\n let bestMatch: SchmancyOption | null = null\n let bestScore = 0\n \n this._options.forEach(option => {\n // Skip hidden options\n if (option.hidden) return\n \n // Get text to search in (prioritize label, then textContent, then value)\n const optionLabel = option.label || option.textContent || ''\n const optionValue = option.value\n \n // Calculate similarity scores for both label and value\n const labelScore = similarity(searchTerm, optionLabel)\n const valueScore = similarity(searchTerm, optionValue)\n \n // Use the higher score (prioritizing label matches)\n const score = Math.max(labelScore * 1.1, valueScore) // Slight boost for label matches\n \n // Keep track of best match that meets threshold\n if (score > bestScore && score >= this.similarityThreshold) {\n bestScore = score\n bestMatch = option\n }\n })\n \n // Auto-select the best match if found\n if (bestMatch) {\n // Select the option directly\n this._selectOption(bestMatch)\n\n // Close the dropdown\n this._open = false\n }\n }\n\n private _handleKeyDown(event: KeyboardEvent) {\n const isOpen = this._open\n const selectedValues = this._selectedValues$.value\n\n // Handle backspace to remove last chip in multi-select when input is empty\n if (this.multi && event.key === 'Backspace' && !this._inputValue && selectedValues.length > 0 && !isOpen) {\n event.preventDefault()\n const lastValue = selectedValues[selectedValues.length - 1]\n this.handleChipRemove(lastValue)\n return\n }\n\n if (!isOpen && (event.key === 'ArrowDown' || event.key === 'Enter')) {\n event.preventDefault()\n this._open = true\n\n setTimeout(() => {\n const firstVisible = this._options.find(opt => !opt.hidden)\n firstVisible?.focus()\n }, 10)\n return\n }\n\n if (!isOpen) return\n\n const visibleOptions = this._options.filter(opt => !opt.hidden)\n .sort((a, b) => parseInt(a.style.order || '0') - parseInt(b.style.order || '0'))\n\n const focusedOption = visibleOptions.find(opt => opt === document.activeElement)\n const currentIndex = focusedOption ? visibleOptions.indexOf(focusedOption) : -1\n\n switch (event.key) {\n case 'Escape':\n event.preventDefault()\n this._open = false\n this._updateInputDisplay()\n this._inputElementRef.value?.focus()\n break\n\n case 'Tab':\n this._open = false\n this._updateInputDisplay()\n break\n\n case 'ArrowDown':\n event.preventDefault()\n const nextIndex = currentIndex < visibleOptions.length - 1 ? currentIndex + 1 : 0\n visibleOptions[nextIndex]?.focus()\n break\n\n case 'ArrowUp':\n event.preventDefault()\n const prevIndex = currentIndex > 0 ? currentIndex - 1 : visibleOptions.length - 1\n visibleOptions[prevIndex]?.focus()\n break\n\n case 'Home':\n event.preventDefault()\n visibleOptions[0]?.focus()\n break\n\n case 'End':\n event.preventDefault()\n visibleOptions[visibleOptions.length - 1]?.focus()\n break\n\n case 'Enter':\n case ' ':\n if (focusedOption) {\n event.preventDefault()\n this._selectOption(focusedOption)\n }\n break\n }\n }\n}\n\n\n\ndeclare global {\n interface HTMLElementTagNameMap {\n 'schmancy-autocomplete': SchmancyAutocomplete\n }\n}"],"names":["SchmancyAutocomplete","$LitElement","super","arguments","this","required","placeholder","label","name","maxHeight","multi","description","size","autocomplete","debounceMs","similarityThreshold","error","validationMessage","_open","_inputValue","_visibleOptionsCount","_hasResults","_isSelectingOption","_inputElementRef","createRef","_selectedValue$","BehaviorSubject","_selectedValues$","_inputValue$","values","value","vals","next","Array","isArray","join","val","newValues","split","map","v","trim","filter","Boolean","currentValues","JSON","stringify","connectedCallback","id","Math","random","toString","slice","_setupAutocompleteLogic","_setupDocumentClickHandler","combineLatest","pipe","tap","selectedValue","selectedValues","_updateOptionSelection","takeUntil","disconnecting","subscribe","distinctUntilChanged","debounceTime","searchTerm","_filterOptions","_setupOptionHandlers","_options","forEach","option","index","setAttribute","tabIndex","onmousedown","e","preventDefault","onclick","stopPropagation","_selectOption","setTimeout","selected","includes","String","term","scoredOptions","optionLabel","textContent","optionValue","labelScore","similarity","valueScore","score","max","sort","a","b","visibleCount","item","hidden","style","order","length","_announceToScreenReader","indexOf","_getSelectedLabels","_fireChangeEvent","blur","handleDocumentClick","path","composedPath","some","opt","_updateInputDisplay","document","addEventListener","take","removeEventListener","find","message","liveRegion","shadowRoot","querySelector","detail","dispatchEvent","CustomEvent","bubbles","composed","checkValidity","reportValidity","firstUpdated","_getChipLabel","_focusTextInput","focus","descriptionId","height","padding","fontSize","labelSize","getSizeStyles","html","when","classMap","repeat","handleChipRemove","ref","toLowerCase","replace","target","_handleKeyDown","_handleAutoSelectOnBlur","absolute","flex","bestMatch","bestScore","event","isOpen","key","lastValue","firstVisible","visibleOptions","parseInt","focusedOption","activeElement","currentIndex","nextIndex","prevIndex","__decorateClass","property","type","prototype","reflect","Number","state","query","queryAssignedElements","flatten","customElement"],"mappings":"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"}
@@ -1 +0,0 @@
1
- {"version":3,"file":"autocomplete-GW91jVqw.cjs","sources":["../src/autocomplete/autocomplete.ts"],"sourcesContent":["import { $LitElement } from '@mixins/index'\nimport { InputSize, SchmancyInput } from '@schmancy/input'\nimport SchmancyOption from '@schmancy/option/option'\nimport { html } from 'lit'\nimport { customElement, property, query, queryAssignedElements, state } from 'lit/decorators.js'\nimport { classMap } from 'lit/directives/class-map.js'\nimport { createRef, ref } from 'lit/directives/ref.js'\nimport { repeat } from 'lit/directives/repeat.js'\nimport { when } from 'lit/directives/when.js'\nimport {\n BehaviorSubject,\n combineLatest\n} from 'rxjs'\nimport {\n debounceTime,\n distinctUntilChanged,\n take,\n takeUntil,\n tap\n} from 'rxjs/operators'\nimport style from './autocomplete.scss?inline'\n\n// Import the similarity function (or include it inline)\nimport { similarity } from '../utils/search'\n// Import chip component for multi-select display\nimport '../chips/input-chip'\n\nexport type SchmancyAutocompleteChangeEvent = CustomEvent<{\n value: string | string[]\n values?: string[]\n}>\n\ninterface FilteredOption {\n option: SchmancyOption\n score: number\n}\n\n@customElement('schmancy-autocomplete')\nexport default class SchmancyAutocomplete extends $LitElement(style) {\n // Public API properties\n @property({ type: Boolean }) required = false\n @property({ type: String }) placeholder = ''\n @property({ type: String, reflect: true }) label = ''\n @property({ type: String }) name = ''\n @property({ type: String }) maxHeight = '300px'\n @property({ type: Boolean }) multi = false\n @property({ type: String }) description = ''\n @property({ type: String, reflect: true }) size: InputSize = 'md'\n @property({ type: String }) autocomplete = 'off'\n @property({ type: Number }) debounceMs = 200\n @property({ type: Number }) similarityThreshold = 0.3 // Minimum similarity score to show option\n @property({ type: Boolean }) error = false\n @property({ type: String }) validationMessage = ''\n\n // Values property for multi-select mode\n @property({ type: Array })\n get values() {\n return [...this._selectedValues$.value]\n }\n set values(vals: string[]) {\n this._selectedValues$.next(Array.isArray(vals) ? [...vals] : [])\n }\n\n // Value property\n @property({ type: String, reflect: true })\n get value() {\n return this.multi \n ? this._selectedValues$.value.join(',')\n : this._selectedValue$.value\n }\n set value(val: string) {\n if (this.multi) {\n const newValues = val ? val.split(',').map(v => v.trim()).filter(Boolean) : []\n const currentValues = this._selectedValues$.value\n // Only update if values actually changed\n if (JSON.stringify(newValues) !== JSON.stringify(currentValues)) {\n this._selectedValues$.next(newValues)\n }\n } else {\n // Only update if value actually changed\n if (val !== this._selectedValue$.value) {\n this._selectedValue$.next(val)\n }\n }\n }\n\n // State\n @state() private _open = false\n @state() private _inputValue = ''\n @state() private _visibleOptionsCount = 0\n @state() private _hasResults = true\n\n // Track if we're clicking on an option to prevent blur interference\n private _isSelectingOption = false\n\n // DOM references\n @query('#options') _listbox!: HTMLUListElement\n @query('sch-input') _input!: SchmancyInput\n @queryAssignedElements({ flatten: true }) private _options!: SchmancyOption[]\n private _inputElementRef = createRef<HTMLInputElement>()\n\n // RxJS Subjects - only what we actually need\n private _selectedValue$ = new BehaviorSubject<string>('')\n private _selectedValues$ = new BehaviorSubject<string[]>([])\n private _inputValue$ = new BehaviorSubject<string>('')\n\n connectedCallback() {\n super.connectedCallback()\n\n if (!this.id) {\n this.id = `sch-autocomplete-${Math.random().toString(36).slice(2, 9)}`\n }\n\n this._setupAutocompleteLogic()\n this._setupDocumentClickHandler()\n }\n\n private _setupAutocompleteLogic() {\n // Sync selection state\n combineLatest([\n this._selectedValue$,\n this._selectedValues$\n ]).pipe(\n tap(([selectedValue, selectedValues]) => {\n this._updateOptionSelection(selectedValue, selectedValues)\n }),\n takeUntil(this.disconnecting)\n ).subscribe()\n\n // Filter options based on input\n this._inputValue$.pipe(\n distinctUntilChanged(),\n debounceTime(this.debounceMs),\n tap(searchTerm => {\n if (this._open) {\n this._filterOptions(searchTerm)\n }\n }),\n takeUntil(this.disconnecting)\n ).subscribe()\n }\n\n private _setupOptionHandlers() {\n this._options.forEach((option, index) => {\n option.setAttribute('role', 'option')\n option.tabIndex = -1\n if (!option.id) {\n option.id = `${this.id}-option-${index}`\n }\n // Prevent blur handler from interfering with option selection\n option.onmousedown = (e: MouseEvent) => {\n e.preventDefault() // Prevent focus loss\n this._isSelectingOption = true\n }\n\n // Handle the actual selection\n option.onclick = (e: MouseEvent) => {\n e.stopPropagation()\n this._selectOption(option)\n // Reset flag after a short delay\n setTimeout(() => {\n this._isSelectingOption = false\n }, 50)\n }\n })\n }\n\n private _updateOptionSelection(selectedValue: string, selectedValues: string[]) {\n this._options.forEach(option => {\n option.selected = this.multi\n ? selectedValues.includes(option.value)\n : option.value === selectedValue\n option.setAttribute('aria-selected', String(option.selected))\n })\n }\n\n private _filterOptions(searchTerm: string) {\n const term = searchTerm.trim()\n\n if (!term) {\n // Show all options if no search term\n this._options.forEach(option => {\n option.hidden = false\n option.style.order = '0'\n })\n this._visibleOptionsCount = this._options.length\n this._hasResults = true\n } else {\n // Calculate similarity scores for all options\n const scoredOptions: FilteredOption[] = this._options.map(option => {\n const optionLabel = option.label || option.textContent || ''\n const optionValue = option.value\n\n const labelScore = similarity(term, optionLabel)\n const valueScore = similarity(term, optionValue)\n const score = Math.max(labelScore * 1.1, valueScore)\n\n return { option, score }\n })\n\n // Sort by score (highest first)\n scoredOptions.sort((a, b) => b.score - a.score)\n\n // Apply visibility and ordering\n let visibleCount = 0\n scoredOptions.forEach((item, index) => {\n const { option, score } = item\n\n if (score < this.similarityThreshold) {\n option.hidden = true\n } else {\n option.hidden = false\n visibleCount++\n option.style.order = String(index)\n }\n })\n\n this._visibleOptionsCount = visibleCount\n this._hasResults = visibleCount > 0\n }\n\n this._announceToScreenReader(\n this._visibleOptionsCount > 0\n ? `${this._visibleOptionsCount} option${this._visibleOptionsCount === 1 ? '' : 's'} available.`\n : 'No results found.'\n )\n }\n\n private _selectOption(option: SchmancyOption) {\n if (this.multi) {\n const currentValues = this._selectedValues$.value\n const index = currentValues.indexOf(option.value)\n const newValues = index > -1\n ? currentValues.filter(v => v !== option.value)\n : [...currentValues, option.value]\n\n this._selectedValues$.next(newValues)\n this._announceToScreenReader(\n newValues.length > 0\n ? `Selected: ${this._getSelectedLabels().join(', ')}`\n : 'No options selected'\n )\n this._fireChangeEvent()\n } else {\n // Fix the bug: Update value BEFORE firing event\n this._selectedValue$.next(option.value)\n\n // Now fire event with the NEW value\n this._fireChangeEvent()\n\n // Update UI\n this._open = false\n this._inputValue = option.label || option.textContent || ''\n this._inputValue$.next(this._inputValue)\n\n // Blur the input\n setTimeout(() => this._inputElementRef.value?.blur(), 100)\n\n this._announceToScreenReader(`Selected: ${option.label || option.textContent}`)\n }\n }\n\n private _setupDocumentClickHandler() {\n // Simple document click handler\n const handleDocumentClick = (e: MouseEvent) => {\n if (!this._open) return\n\n const path = e.composedPath()\n if (!path.includes(this) && !this._options.some(opt => path.includes(opt))) {\n this._open = false\n this._updateInputDisplay()\n }\n }\n\n document.addEventListener('click', handleDocumentClick)\n\n // Cleanup on disconnect\n this.disconnecting.pipe(take(1)).subscribe(() => {\n document.removeEventListener('click', handleDocumentClick)\n })\n }\n\n\n private _updateInputDisplay() {\n // For multi-select, we don't update input display since chips show the selections\n if (this.multi || this._open) return\n\n const selectedValue = this._selectedValue$.value\n const option = this._options.find(opt => opt.value === selectedValue)\n this._inputValue = option ? option.label || option.textContent || '' : ''\n this._inputValue$.next(this._inputValue)\n\n if (this._inputElementRef.value) {\n this._inputElementRef.value.value = this._inputValue\n }\n }\n\n private _getSelectedLabels(): string[] {\n return this._options\n .filter(option => \n this.multi \n ? this._selectedValues$.value.includes(option.value)\n : option.value === this._selectedValue$.value\n )\n .map(option => option.label || option.textContent || '')\n }\n\n private _announceToScreenReader(message: string) {\n const liveRegion = this.shadowRoot?.querySelector('#live-status')\n if (liveRegion) {\n liveRegion.textContent = message\n }\n }\n\n private _fireChangeEvent() {\n const detail: SchmancyAutocompleteChangeEvent['detail'] = {\n value: this.value,\n }\n\n if (this.multi) {\n detail.values = [...this._selectedValues$.value]\n }\n\n this.dispatchEvent(\n new CustomEvent<SchmancyAutocompleteChangeEvent['detail']>('change', {\n detail,\n bubbles: true,\n composed: true,\n })\n )\n }\n\n public checkValidity(): boolean {\n if (!this.required) return true\n return this.multi \n ? this._selectedValues$.value.length > 0 \n : Boolean(this._selectedValue$.value)\n }\n\n public reportValidity(): boolean {\n if (this._inputElementRef.value) {\n return this._inputElementRef.value.reportValidity()\n }\n return this.checkValidity()\n }\n\n firstUpdated() {\n this._setupOptionHandlers()\n\n // Update options when slot changes\n const slot = this.shadowRoot?.querySelector('slot')\n slot?.addEventListener('slotchange', () => {\n this._setupOptionHandlers()\n this._updateOptionSelection(this._selectedValue$.value, this._selectedValues$.value)\n })\n }\n\n private handleChipRemove(value: string) {\n const currentValues = this._selectedValues$.value\n const newValues = currentValues.filter(v => v !== value)\n this._selectedValues$.next(newValues)\n this._fireChangeEvent()\n this._announceToScreenReader(`Removed: ${this._getChipLabel(value)}`)\n }\n\n private _getChipLabel(value: string): string {\n const option = this._options.find(opt => opt.value === value)\n return option ? option.label || option.textContent || value : value\n }\n\n private _focusTextInput() {\n if (this._inputElementRef.value) {\n this._inputElementRef.value.focus()\n }\n }\n\n render() {\n const descriptionId = `${this.id}-desc`\n\n // Get size-based styling to match Schmancy input\n const getSizeStyles = () => {\n switch (this.size) {\n case 'sm':\n return {\n height: 'min-h-[40px]',\n padding: 'px-2',\n fontSize: 'text-sm', // 14px\n labelSize: 'text-sm'\n }\n case 'lg':\n return {\n height: 'min-h-[60px]',\n padding: 'px-5',\n fontSize: 'text-lg', // 18px\n labelSize: 'text-lg'\n }\n case 'md':\n default:\n return {\n height: 'min-h-[50px]',\n padding: 'px-4',\n fontSize: 'text-base', // 16px\n labelSize: 'text-base'\n }\n }\n }\n\n const { height, padding, fontSize, labelSize } = getSizeStyles()\n\n return html`\n <div class=\"relative\">\n <!-- Screen reader live region -->\n <div id=\"live-status\" role=\"status\" aria-live=\"polite\" class=\"sr-only\"></div>\n\n <!-- Description -->\n ${this.description ? html`<div id=\"${descriptionId}\" class=\"sr-only\">${this.description}</div>` : ''}\n\n <!-- Custom input wrapper for Gmail-style chip input -->\n <slot name=\"trigger\">\n ${when(this.multi,\n () => html`\n <!-- Custom multi-select input with inline chips -->\n <div class=\"relative\">\n ${when(this.label, () => html`\n <label class=\"${classMap({\n 'block mb-1 font-medium': true,\n 'text-primary-default': !this.error,\n 'text-error-default': this.error,\n [labelSize]: true\n })}\">\n ${this.label}${this.required ? html`<span class=\"text-error-default ml-1\">*</span>` : ''}\n </label>\n `)}\n <div\n class=\"${classMap({\n 'flex flex-wrap items-center gap-1': true,\n [height]: true,\n [padding]: true,\n 'block w-full min-w-0 rounded-[8px] border-0': true,\n 'bg-surface-highest text-surface-on': true,\n 'ring-0 ring-inset focus-within:ring-1 focus-within:ring-inset': true,\n 'ring-secondary-default focus-within:ring-secondary-default': !this.error,\n 'ring-error-default focus-within:ring-error-default': this.error,\n 'cursor-text transition-colors duration-200': true\n })}\"\n @click=${() => this._focusTextInput()}\n role=\"combobox\"\n aria-autocomplete=\"list\"\n aria-haspopup=\"listbox\"\n aria-controls=\"options\"\n aria-expanded=${this._open}\n >\n <!-- Render chips inline -->\n ${repeat(\n this._selectedValues$.value,\n value => value,\n value => html`\n <schmancy-input-chip\n .value=${value}\n @remove=${(e: CustomEvent) => this.handleChipRemove(e.detail.value)}\n class=\"flex-shrink-0 my-0.5\"\n >\n ${this._getChipLabel(value)}\n </schmancy-input-chip>\n `\n )}\n\n <!-- Text input for typing -->\n <input\n ${ref(this._inputElementRef)}\n id=\"autocomplete-input\"\n type=\"text\"\n class=\"flex-1 min-w-[120px] py-1 bg-transparent border-none outline-none ${fontSize} font-medium text-surface-on placeholder:text-muted\"\n name=${this.name || this.label?.toLowerCase().replace(/\\s+/g, '-') || ''}\n .placeholder=${this._selectedValues$.value.length > 0 ? 'Add more...' : this.placeholder}\n .value=${this._inputValue}\n .autocomplete=${this.autocomplete}\n @input=${(e: Event) => {\n const value = (e.target as HTMLInputElement).value\n this._inputValue = value\n this._inputValue$.next(value)\n }}\n @focus=${(e: FocusEvent) => {\n e.stopPropagation()\n // Clear input on focus for new searches\n this._inputValue = ''\n this._inputValue$.next('')\n this._open = true\n }}\n @keydown=${(e: KeyboardEvent) => {\n this._handleKeyDown(e)\n }}\n @blur=${() => {\n this._handleAutoSelectOnBlur()\n }}\n />\n </div>\n\n <!-- Validation message -->\n ${when(this.error && this.validationMessage, () => html`\n <div class=\"mt-1 text-sm text-error-default\">\n ${this.validationMessage}\n </div>\n `)}\n </div>\n `,\n () => html`\n <!-- Regular single-select input -->\n <schmancy-input\n .size=${this.size}\n ${ref(this._inputElementRef)}\n id=\"autocomplete-input\"\n class=\"w-full\"\n .name=${this.name || this.label?.toLowerCase().replace(/\\s+/g, '-') || ''}\n .label=${this.label}\n .placeholder=${this.placeholder}\n .required=${this.required}\n .value=${this._inputValue}\n type=\"text\"\n autocomplete=${this.autocomplete}\n clickable\n role=\"combobox\"\n aria-autocomplete=\"list\"\n aria-haspopup=\"listbox\"\n aria-controls=\"options\"\n aria-expanded=${this._open}\n aria-describedby=${this.description ? descriptionId : undefined}\n @input=${(e: Event) => {\n const value = (e.target as HTMLInputElement).value\n this._inputValue = value\n this._inputValue$.next(value)\n }}\n @focus=${(e: FocusEvent) => {\n e.stopPropagation()\n this._open = true\n }}\n @click=${(e: MouseEvent) => {\n e.stopPropagation()\n this._open = true\n }}\n @keydown=${(e: KeyboardEvent) => {\n this._handleKeyDown(e)\n }}\n @blur=${() => {\n this._handleAutoSelectOnBlur()\n }}\n >\n </schmancy-input>\n `\n )}\n </slot>\n\n <!-- Options dropdown -->\n <ul\n id=\"options\"\n class=${classMap({\n 'absolute': true,\n 'z-[1000]': true,\n 'mt-1': true,\n 'w-full': true,\n 'rounded-md': true,\n 'shadow-md': true,\n 'overflow-auto': true,\n 'min-w-full': true,\n 'bg-surface-low': true,\n 'flex': true,\n 'flex-col': true, // Enable flexbox for ordering\n })}\n role=\"listbox\"\n aria-multiselectable=${this.multi ? 'true' : 'false'}\n aria-label=${`${this.label || 'Options'} dropdown`}\n ?hidden=${!this._open}\n style=\"max-height: ${this.maxHeight}; display: ${this._open ? 'flex' : 'none'};\"\n @slotchange=${() => {\n this._setupOptionHandlers()\n }}\n >\n <slot></slot>\n ${!this._hasResults ? html`\n <li class=\"px-3 py-2 text-sm text-muted\">No results found</li>\n ` : ''}\n </ul>\n </div>\n `\n }\n\n private _handleAutoSelectOnBlur() {\n // Don't run if we're clicking on an option (prevents interference with click handler)\n if (this._isSelectingOption) {\n return\n }\n\n // Only auto-select in single-select mode and when dropdown is open with a search term\n if (this.multi || !this._open || !this._inputValue.trim()) {\n return\n }\n \n const searchTerm = this._inputValue.trim()\n \n // Find the best matching option using the same similarity logic as filtering\n let bestMatch: SchmancyOption | null = null\n let bestScore = 0\n \n this._options.forEach(option => {\n // Skip hidden options\n if (option.hidden) return\n \n // Get text to search in (prioritize label, then textContent, then value)\n const optionLabel = option.label || option.textContent || ''\n const optionValue = option.value\n \n // Calculate similarity scores for both label and value\n const labelScore = similarity(searchTerm, optionLabel)\n const valueScore = similarity(searchTerm, optionValue)\n \n // Use the higher score (prioritizing label matches)\n const score = Math.max(labelScore * 1.1, valueScore) // Slight boost for label matches\n \n // Keep track of best match that meets threshold\n if (score > bestScore && score >= this.similarityThreshold) {\n bestScore = score\n bestMatch = option\n }\n })\n \n // Auto-select the best match if found\n if (bestMatch) {\n // Select the option directly\n this._selectOption(bestMatch)\n\n // Close the dropdown\n this._open = false\n }\n }\n\n private _handleKeyDown(event: KeyboardEvent) {\n const isOpen = this._open\n const selectedValues = this._selectedValues$.value\n\n // Handle backspace to remove last chip in multi-select when input is empty\n if (this.multi && event.key === 'Backspace' && !this._inputValue && selectedValues.length > 0 && !isOpen) {\n event.preventDefault()\n const lastValue = selectedValues[selectedValues.length - 1]\n this.handleChipRemove(lastValue)\n return\n }\n\n if (!isOpen && (event.key === 'ArrowDown' || event.key === 'Enter')) {\n event.preventDefault()\n this._open = true\n\n setTimeout(() => {\n const firstVisible = this._options.find(opt => !opt.hidden)\n firstVisible?.focus()\n }, 10)\n return\n }\n\n if (!isOpen) return\n\n const visibleOptions = this._options.filter(opt => !opt.hidden)\n .sort((a, b) => parseInt(a.style.order || '0') - parseInt(b.style.order || '0'))\n\n const focusedOption = visibleOptions.find(opt => opt === document.activeElement)\n const currentIndex = focusedOption ? visibleOptions.indexOf(focusedOption) : -1\n\n switch (event.key) {\n case 'Escape':\n event.preventDefault()\n this._open = false\n this._updateInputDisplay()\n this._inputElementRef.value?.focus()\n break\n\n case 'Tab':\n this._open = false\n this._updateInputDisplay()\n break\n\n case 'ArrowDown':\n event.preventDefault()\n const nextIndex = currentIndex < visibleOptions.length - 1 ? currentIndex + 1 : 0\n visibleOptions[nextIndex]?.focus()\n break\n\n case 'ArrowUp':\n event.preventDefault()\n const prevIndex = currentIndex > 0 ? currentIndex - 1 : visibleOptions.length - 1\n visibleOptions[prevIndex]?.focus()\n break\n\n case 'Home':\n event.preventDefault()\n visibleOptions[0]?.focus()\n break\n\n case 'End':\n event.preventDefault()\n visibleOptions[visibleOptions.length - 1]?.focus()\n break\n\n case 'Enter':\n case ' ':\n if (focusedOption) {\n event.preventDefault()\n this._selectOption(focusedOption)\n }\n break\n }\n }\n}\n\n\n\ndeclare global {\n interface HTMLElementTagNameMap {\n 'schmancy-autocomplete': SchmancyAutocomplete\n }\n}"],"names":["SchmancyAutocomplete","$LitElement","constructor","super","arguments","this","required","placeholder","label","name","maxHeight","multi","description","size","autocomplete","debounceMs","similarityThreshold","error","validationMessage","_open","_inputValue","_visibleOptionsCount","_hasResults","_isSelectingOption","_inputElementRef","createRef","_selectedValue$","BehaviorSubject","_selectedValues$","_inputValue$","value","vals","next","Array","isArray","join","val","newValues","split","map","v","trim","filter","Boolean","currentValues","JSON","stringify","connectedCallback","id","Math","random","toString","slice","_setupAutocompleteLogic","_setupDocumentClickHandler","combineLatest","pipe","tap","selectedValue","selectedValues","_updateOptionSelection","takeUntil","disconnecting","subscribe","distinctUntilChanged","debounceTime","searchTerm","_filterOptions","_setupOptionHandlers","_options","forEach","option","index","setAttribute","tabIndex","onmousedown","e","preventDefault","onclick","stopPropagation","_selectOption","setTimeout","selected","includes","String","term","scoredOptions","optionLabel","textContent","optionValue","labelScore","similarity","valueScore","score","max","sort","a","b","visibleCount","item","hidden","style","order","length","_announceToScreenReader","indexOf","_getSelectedLabels","_fireChangeEvent","blur","handleDocumentClick","path","composedPath","some","opt","_updateInputDisplay","document","addEventListener","take","removeEventListener","find","message","liveRegion","shadowRoot","querySelector","detail","values","dispatchEvent","CustomEvent","bubbles","composed","checkValidity","reportValidity","firstUpdated","_getChipLabel","_focusTextInput","focus","render","descriptionId","height","padding","fontSize","labelSize","getSizeStyles","html","when","classMap","repeat","handleChipRemove","ref","toLowerCase","replace","target","_handleKeyDown","_handleAutoSelectOnBlur","absolute","flex","bestMatch","bestScore","event","isOpen","key","lastValue","visibleOptions","parseInt","focusedOption","activeElement","currentIndex","nextIndex","prevIndex","__decorateClass","property","type","prototype","reflect","Number","state","query","queryAssignedElements","flatten","customElement"],"mappings":"wpBAsCA,IAAqBA,EAArB,cAAkDC,mYAAlD,aAAAC,CAAAC,SAAAC,SAAAA,EAEiCC,KAAAC,SAAAA,GACDD,KAAAE,YAAc,GACCF,KAAAG,MAAQ,GACvBH,KAAAI,KAAO,GACPJ,KAAAK,UAAY,QACXL,KAAAM,MAAAA,GACDN,KAAAO,YAAc,GACCP,KAAAQ,KAAkB,KACjCR,KAAAS,aAAe,MACfT,KAAAU,WAAa,IACbV,KAAAW,oBAAsB,GACrBX,KAAAY,MAAAA,GACDZ,KAAAa,kBAAoB,GAmCvCb,KAAQc,MAAAA,GACRd,KAAQe,YAAc,GACtBf,KAAQgB,qBAAuB,EAC/BhB,KAAQiB,eAGjBjB,KAAQkB,mBAAAA,GAMRlB,KAAQmB,iBAAmBC,cAG3BpB,KAAQqB,gBAAkB,IAAIC,EAAAA,gBAAwB,EAAA,EACtDtB,KAAQuB,iBAAmB,IAAID,EAAAA,gBAA0B,CAAA,CAAA,EACzDtB,KAAQwB,aAAe,IAAIF,EAAAA,gBAAwB,EAAA,CAAE,CAhDrD,IAAA,SACI,MAAO,CAAA,GAAItB,KAAKuB,iBAAiBE,KAAAA,CACrC,CACA,WAAWC,EAAAA,CACP1B,KAAKuB,iBAAiBI,KAAKC,MAAMC,QAAQH,CAAAA,EAAQ,CAAA,GAAIA,CAAAA,EAAQ,CAAA,CAAA,CACjE,CAIA,IAAA,OAAID,CACA,OAAOzB,KAAKM,MACNN,KAAKuB,iBAAiBE,MAAMK,KAAK,GAAA,EACjC9B,KAAKqB,gBAAgBI,KAC/B,CACA,IAAA,MAAUM,EAAAA,CACN,GAAI/B,KAAKM,MAAO,CACZ,MAAM0B,EAAYD,EAAMA,EAAIE,MAAM,GAAA,EAAKC,IAAIC,GAAKA,EAAEC,KAAAA,CAAAA,EAAQC,OAAOC,SAAW,CAAA,EACtEC,EAAgBvC,KAAKuB,iBAAiBE,MAExCe,KAAKC,UAAUT,CAAAA,IAAeQ,KAAKC,UAAUF,CAAAA,GAC7CvC,KAAKuB,iBAAiBI,KAAKK,CAAAA,CAEnC,MAEQD,IAAQ/B,KAAKqB,gBAAgBI,OAC7BzB,KAAKqB,gBAAgBM,KAAKI,CAAAA,CAGtC,CAsBA,mBAAAW,CACI5C,MAAM4C,oBAED1C,KAAK2C,KACN3C,KAAK2C,GAAK,oBAAoBC,KAAKC,SAASC,SAAS,EAAA,EAAIC,MAAM,EAAG,CAAA,CAAA,IAGtE/C,KAAKgD,0BACLhD,KAAKiD,2BAAAA,CACT,CAEQ,yBAAAD,CAEJE,gBAAc,CACVlD,KAAKqB,gBACLrB,KAAKuB,gBAAAA,CAAAA,EACN4B,KACCC,EAAAA,IAAI,CAAA,CAAEC,EAAeC,CAAAA,IAAAA,CACjBtD,KAAKuD,uBAAuBF,EAAeC,KAE/CE,EAAAA,UAAUxD,KAAKyD,aAAAA,CAAAA,EACjBC,UAAAA,EAGF1D,KAAKwB,aAAa2B,KACdQ,yBACAC,EAAAA,aAAa5D,KAAKU,UAAAA,EAClB0C,EAAAA,IAAIS,GAAAA,CACI7D,KAAKc,OACLd,KAAK8D,eAAeD,KAG5BL,EAAAA,UAAUxD,KAAKyD,aAAAA,CAAAA,EACjBC,UAAAA,CACN,CAEQ,sBAAAK,CACJ/D,KAAKgE,SAASC,QAAQ,CAACC,EAAQC,IAAAA,CAC3BD,EAAOE,aAAa,OAAQ,QAAA,EAC5BF,EAAOG,SAAAA,GACFH,EAAOvB,KACRuB,EAAOvB,GAAK,GAAG3C,KAAK2C,EAAAA,WAAawB,CAAAA,IAGrCD,EAAOI,YAAeC,GAAAA,CAClBA,EAAEC,eAAAA,EACFxE,KAAKkB,mBAAAA,IAITgD,EAAOO,QAAWF,GAAAA,CACdA,EAAEG,gBAAAA,EACF1E,KAAK2E,cAAcT,CAAAA,EAEnBU,WAAW,IAAA,CACP5E,KAAKkB,mBAAAA,EAAqB,EAC3B,EAAA,CAAA,CAAA,CAAA,CAGf,CAEQ,uBAAuBmC,EAAuBC,EAAAA,CAClDtD,KAAKgE,SAASC,QAAQC,GAAAA,CAClBA,EAAOW,SAAW7E,KAAKM,MACjBgD,EAAewB,SAASZ,EAAOzC,KAAAA,EAC/ByC,EAAOzC,QAAU4B,EACvBa,EAAOE,aAAa,gBAAiBW,OAAOb,EAAOW,QAAAA,CAAAA,CAAAA,CAAAA,CAE3D,CAEQ,eAAehB,EAAAA,CACnB,MAAMmB,EAAOnB,EAAWzB,KAAAA,EAExB,GAAK4C,EAQE,CAEH,MAAMC,EAAkCjF,KAAKgE,SAAS9B,IAAIgC,GAAAA,CACtD,MAAMgB,EAAchB,EAAO/D,OAAS+D,EAAOiB,aAAe,GACpDC,EAAclB,EAAOzC,MAErB4D,EAAaC,EAAAA,WAAWN,EAAME,CAAAA,EAC9BK,EAAaD,EAAAA,WAAWN,EAAMI,CAAAA,EAGpC,MAAO,CAAElB,SAAQsB,MAFH5C,KAAK6C,IAAiB,IAAbJ,EAAkBE,CAAAA,CAAAA,CAAAA,CAAAA,EAM7CN,EAAcS,KAAK,CAACC,EAAGC,IAAMA,EAAEJ,MAAQG,EAAEH,OAGzC,IAAIK,EAAe,EACnBZ,EAAchB,QAAQ,CAAC6B,EAAM3B,IAAAA,CACzB,KAAA,CAAMD,OAAEA,EAAAsB,MAAQA,CAAAA,EAAUM,EAEtBN,EAAQxF,KAAKW,oBACbuD,EAAO6B,OAAAA,IAEP7B,EAAO6B,UACPF,IACA3B,EAAO8B,MAAMC,MAAQlB,OAAOZ,MAIpCnE,KAAKgB,qBAAuB6E,EAC5B7F,KAAKiB,YAAc4E,EAAe,CACtC,MAtCI7F,KAAKgE,SAASC,QAAQC,GAAAA,CAClBA,EAAO6B,OAAAA,GACP7B,EAAO8B,MAAMC,MAAQ,GAAA,CAAA,EAEzBjG,KAAKgB,qBAAuBhB,KAAKgE,SAASkC,OAC1ClG,KAAKiB,YAAAA,GAmCTjB,KAAKmG,wBACDnG,KAAKgB,qBAAuB,EACtB,GAAGhB,KAAKgB,oBAAAA,UAA8BhB,KAAKgB,uBAAyB,EAAI,GAAK,GAAA,cAC7E,mBAAA,CAEd,CAEQ,cAAckD,EAAAA,CAClB,GAAIlE,KAAKM,MAAO,CACZ,MAAMiC,EAAgBvC,KAAKuB,iBAAiBE,MAEtCO,EADQO,EAAc6D,QAAQlC,EAAOzC,KAAAA,EAAAA,GAErCc,EAAcF,OAAOF,GAAKA,IAAM+B,EAAOzC,KAAAA,EACvC,CAAA,GAAIc,EAAe2B,EAAOzC,KAAAA,EAEhCzB,KAAKuB,iBAAiBI,KAAKK,CAAAA,EAC3BhC,KAAKmG,wBACDnE,EAAUkE,OAAS,EACb,aAAalG,KAAKqG,mBAAAA,EAAqBvE,KAAK,IAAA,CAAA,GAC5C,qBAAA,EAEV9B,KAAKsG,iBAAAA,CACT,MAEItG,KAAKqB,gBAAgBM,KAAKuC,EAAOzC,KAAAA,EAGjCzB,KAAKsG,iBAAAA,EAGLtG,KAAKc,MAAAA,GACLd,KAAKe,YAAcmD,EAAO/D,OAAS+D,EAAOiB,aAAe,GACzDnF,KAAKwB,aAAaG,KAAK3B,KAAKe,aAG5B6D,WAAW,IAAM5E,KAAKmB,iBAAiBM,OAAO8E,KAAAA,EAAQ,KAEtDvG,KAAKmG,wBAAwB,aAAajC,EAAO/D,OAAS+D,EAAOiB,WAAAA,EAAAA,CAEzE,CAEQ,4BAAAlC,CAEJ,MAAMuD,EAAuBjC,GAAAA,CACzB,GAAA,CAAKvE,KAAKc,MAAO,OAEjB,MAAM2F,EAAOlC,EAAEmC,aAAAA,EACVD,EAAK3B,SAAS9E,IAAAA,GAAUA,KAAKgE,SAAS2C,KAAKC,GAAOH,EAAK3B,SAAS8B,CAAAA,CAAAA,IACjE5G,KAAKc,MAAAA,GACLd,KAAK6G,oBAAAA,EAAAA,EAIbC,SAASC,iBAAiB,QAASP,CAAAA,EAGnCxG,KAAKyD,cAAcN,KAAK6D,EAAAA,KAAK,CAAA,CAAA,EAAItD,UAAU,IAAA,CACvCoD,SAASG,oBAAoB,QAAST,CAAAA,CAAAA,CAAAA,CAE9C,CAGQ,qBAAAK,CAEJ,GAAI7G,KAAKM,OAASN,KAAKc,MAAO,OAE9B,MAAMuC,EAAgBrD,KAAKqB,gBAAgBI,MACrCyC,EAASlE,KAAKgE,SAASkD,KAAKN,GAAOA,EAAInF,QAAU4B,CAAAA,EACvDrD,KAAKe,YAAcmD,IAASA,EAAO/D,OAAS+D,EAAOiB,cAAoB,GACvEnF,KAAKwB,aAAaG,KAAK3B,KAAKe,WAAAA,EAExBf,KAAKmB,iBAAiBM,QACtBzB,KAAKmB,iBAAiBM,MAAMA,MAAQzB,KAAKe,YAEjD,CAEQ,oBAAAsF,CACJ,OAAOrG,KAAKgE,SACP3B,OAAO6B,GACJlE,KAAKM,MACCN,KAAKuB,iBAAiBE,MAAMqD,SAASZ,EAAOzC,KAAAA,EAC5CyC,EAAOzC,QAAUzB,KAAKqB,gBAAgBI,OAE/CS,IAAIgC,GAAUA,EAAO/D,OAAS+D,EAAOiB,aAAe,EAAA,CAC7D,CAEQ,wBAAwBgC,EAAAA,CAC5B,MAAMC,EAAapH,KAAKqH,YAAYC,cAAc,cAAA,EAC9CF,IACAA,EAAWjC,YAAcgC,EAEjC,CAEQ,kBAAAb,CACJ,MAAMiB,EAAoD,CACtD9F,MAAOzB,KAAKyB,KAAAA,EAGZzB,KAAKM,QACLiH,EAAOC,OAAS,CAAA,GAAIxH,KAAKuB,iBAAiBE,KAAAA,GAG9CzB,KAAKyH,cACD,IAAIC,YAAuD,SAAU,CACjEH,OAAAA,EACAI,QAAAA,GACAC,SAAAA,EAAU,CAAA,CAAA,CAGtB,CAEO,eAAAC,CACH,MAAA,CAAK7H,KAAKC,WACHD,KAAKM,MACNN,KAAKuB,iBAAiBE,MAAMyE,OAAS,EACrC5D,EAAQtC,KAAKqB,gBAAgBI,MACvC,CAEO,gBAAAqG,CACH,OAAI9H,KAAKmB,iBAAiBM,MACfzB,KAAKmB,iBAAiBM,MAAMqG,eAAAA,EAEhC9H,KAAK6H,cAAAA,CAChB,CAEA,cAAAE,CACI/H,KAAK+D,qBAAAA,EAGQ/D,KAAKqH,YAAYC,cAAc,MAAA,GACtCP,iBAAiB,aAAc,IAAA,CACjC/G,KAAK+D,qBAAAA,EACL/D,KAAKuD,uBAAuBvD,KAAKqB,gBAAgBI,MAAOzB,KAAKuB,iBAAiBE,KAAAA,CAAAA,CAAAA,CAEtF,CAEQ,iBAAiBA,EAAAA,CACrB,MACMO,EADgBhC,KAAKuB,iBAAiBE,MACZY,OAAOF,GAAKA,IAAMV,GAClDzB,KAAKuB,iBAAiBI,KAAKK,CAAAA,EAC3BhC,KAAKsG,iBAAAA,EACLtG,KAAKmG,wBAAwB,YAAYnG,KAAKgI,cAAcvG,CAAAA,CAAAA,EAAAA,CAChE,CAEQ,cAAcA,EAAAA,CAClB,MAAMyC,EAASlE,KAAKgE,SAASkD,KAAKN,GAAOA,EAAInF,QAAUA,CAAAA,EACvD,OAAOyC,IAASA,EAAO/D,OAAS+D,EAAOiB,cAAuB1D,CAClE,CAEQ,iBAAAwG,CACAjI,KAAKmB,iBAAiBM,OACtBzB,KAAKmB,iBAAiBM,MAAMyG,MAAAA,CAEpC,CAEA,QAAAC,CACI,MAAMC,EAAgB,GAAGpI,KAAK2C,EAAAA,QAAAA,CA8BxB0F,OAAEA,EAAAC,QAAQA,EAAAC,SAASA,EAAAC,UAAUA,IA3Bb,IAAA,CAClB,OAAQxI,KAAKQ,KAAAA,CACT,IAAK,KACD,MAAO,CACH6H,OAAQ,eACRC,QAAS,OACTC,SAAU,UACVC,UAAW,SAAA,EAEnB,IAAK,KACD,MAAO,CACHH,OAAQ,eACRC,QAAS,OACTC,SAAU,UACVC,UAAW,SAAA,EAGnB,QACI,MAAO,CACHH,OAAQ,eACRC,QAAS,OACTC,SAAU,YACVC,UAAW,WAAA,CAAA,CAAA,GAKsBC,EAEjD,OAAOC,EAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA,kBAMG1I,KAAKO,YAAcmI,EAAAA,gBAAgBN,CAAAA,qBAAkCpI,KAAKO,WAAAA,SAAsB,EAAA;AAAA;AAAA;AAAA;AAAA,sBAI5FoI,EAAAA,KAAK3I,KAAKM,MACR,IAAMoI,EAAAA;AAAAA;AAAAA;AAAAA,kCAGIC,OAAK3I,KAAKG,MAAO,IAAMuI,EAAAA;AAAAA,oDACLE,WAAS,CACrB,yBAAA,GACA,uBAAA,CAAyB5I,KAAKY,MAC9B,qBAAsBZ,KAAKY,MAC3B4H,CAACA,CAAAA,EAAAA,EAAY,CAAA,CAAA;AAAA,0CAEXxI,KAAKG,KAAAA,GAAQH,KAAKC,SAAWyI,EAAAA,qDAAuD,EAAA;AAAA;AAAA;;6CAIjFE,WAAS,CACd,oCAAA,GACAP,CAACA,CAAAA,EAAAA,GACDC,CAACA,CAAAA,EAAAA,GACD,8CAAA,GACA,qCAAA,GACA,mEACA,8DAAA,CAAgEtI,KAAKY,MACrE,qDAAsDZ,KAAKY,MAC3D,6CAAA,EAA8C,CAAA,CAAA;AAAA,6CAEzC,IAAMZ,KAAKiI,gBAAAA,CAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA,oDAKJjI,KAAKc,KAAAA;AAAAA;AAAAA;AAAAA,sCAGnB+H,EAAAA,OACE7I,KAAKuB,iBAAiBE,MACtBA,GAASA,EACTA,GAASiH,EAAAA;AAAAA;AAAAA,yDAEQjH,CAAAA;AAAAA,0DACE8C,GAAmBvE,KAAK8I,iBAAiBvE,EAAEgD,OAAO9F,KAAAA,CAAAA;AAAAA;AAAAA;AAAAA,kDAG3DzB,KAAKgI,cAAcvG,CAAAA,CAAAA;AAAAA;AAAAA;;;;0CAO3BsH,EAAAA,IAAI/I,KAAKmB,gBAAAA,CAAAA;AAAAA;AAAAA;AAAAA,mHAGgEoH,CAAAA;AAAAA,+CACpEvI,KAAKI,MAAQJ,KAAKG,OAAO6I,YAAAA,EAAcC,QAAQ,OAAQ,GAAA,GAAQ,EAAA;AAAA,uDACvDjJ,KAAKuB,iBAAiBE,MAAMyE,OAAS,EAAI,cAAgBlG,KAAKE,WAAAA;AAAAA,iDACpEF,KAAKe,WAAAA;AAAAA,wDACEf,KAAKS,YAAAA;AAAAA,iDACX8D,GAAAA,CACN,MAAM9C,EAAS8C,EAAE2E,OAA4BzH,MAC7CzB,KAAKe,YAAcU,EACnBzB,KAAKwB,aAAaG,KAAKF,CAAAA,CAAAA,CAAAA;AAAAA,iDAEjB8C,GAAAA,CACNA,EAAEG,gBAAAA,EAEF1E,KAAKe,YAAc,GACnBf,KAAKwB,aAAaG,KAAK,EAAA,EACvB3B,KAAKc,MAAAA,EAAQ,CAAA;AAAA,mDAELyD,GAAAA,CACRvE,KAAKmJ,eAAe5E,CAAAA,CAAAA,CAAAA;AAAAA,gDAEhB,IAAA,CACJvE,KAAKoJ,wBAAAA,CAAAA,CAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA,kCAMfT,EAAAA,KAAK3I,KAAKY,OAASZ,KAAKa,kBAAmB,IAAM6H,EAAAA;AAAAA;AAAAA,0CAEzC1I,KAAKa,iBAAAA;AAAAA;AAAAA;;0BAKvB,IAAM6H,EAAAA;AAAAA;AAAAA;AAAAA,wCAGU1I,KAAKQ,IAAAA;AAAAA,kCACXuI,EAAAA,IAAI/I,KAAKmB,gBAAAA,CAAAA;AAAAA;AAAAA;AAAAA,wCAGHnB,KAAKI,MAAQJ,KAAKG,OAAO6I,YAAAA,EAAcC,QAAQ,OAAQ,GAAA,GAAQ,EAAA;AAAA,yCAC9DjJ,KAAKG,KAAAA;AAAAA,+CACCH,KAAKE,WAAAA;AAAAA,4CACRF,KAAKC,QAAAA;AAAAA,yCACRD,KAAKe,WAAAA;AAAAA;AAAAA,+CAECf,KAAKS,YAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA,gDAMJT,KAAKc,KAAAA;AAAAA,mDACFd,KAAKO,YAAc6H,EAAAA,MAAgB;AAAA,yCAC5C7D,GAAAA,CACN,MAAM9C,EAAS8C,EAAE2E,OAA4BzH,MAC7CzB,KAAKe,YAAcU,EACnBzB,KAAKwB,aAAaG,KAAKF,CAAAA,CAAAA,CAAAA;AAAAA,yCAEjB8C,GAAAA,CACNA,EAAEG,gBAAAA,EACF1E,KAAKc,MAAAA,EAAQ,CAAA;AAAA,yCAEPyD,GAAAA,CACNA,EAAEG,gBAAAA,EACF1E,KAAKc,MAAAA,EAAQ,CAAA;AAAA,2CAELyD,GAAAA,CACRvE,KAAKmJ,eAAe5E,CAAAA,CAAAA,CAAAA;AAAAA,wCAEhB,IAAA,CACJvE,KAAKoJ,wBAAAA,CAAAA,CAAAA;AAAAA;AAAAA;AAAAA;;;;;;4BAWbR,WAAS,CACbS,SAAAA,GACA,cACA,OAAA,GACA,SAAA,GACA,aAAA,GACA,YAAA,GACA,mBACA,aAAA,GACA,iBAAA,GACAC,KAAAA,GACA,WAAA,EAAY,CAAA,CAAA;AAAA;AAAA,2CAGOtJ,KAAKM,MAAQ,OAAS,OAAA;AAAA,iCAChC,GAAGN,KAAKG,OAAS,SAAA,WAAA;AAAA,+BACnBH,KAAKc,KAAAA;AAAAA,yCACKd,KAAKK,SAAAA,cAAuBL,KAAKc,MAAQ,OAAS,MAAA;AAAA,kCACzD,IAAA,CACVd,KAAK+D,qBAAAA,CAAAA,CAAAA;AAAAA;AAAAA;AAAAA,sBAIN/D,KAAKiB,YAEJ,GAFkByH,EAAAA;AAAAA;AAAAA;;;SAMtC,CAEQ,yBAAAU,CAOJ,GALIpJ,KAAKkB,oBAKLlB,KAAKM,OAAAA,CAAUN,KAAKc,OAAAA,CAAUd,KAAKe,YAAYqB,KAAAA,EAC/C,OAGJ,MAAMyB,EAAa7D,KAAKe,YAAYqB,KAAAA,EAGpC,IAAImH,EAAmC,KACnCC,EAAY,EAEhBxJ,KAAKgE,SAASC,QAAQC,GAAAA,CAElB,GAAIA,EAAO6B,OAAQ,OAGnB,MAAMb,EAAchB,EAAO/D,OAAS+D,EAAOiB,aAAe,GACpDC,EAAclB,EAAOzC,MAGrB4D,EAAaC,EAAAA,WAAWzB,EAAYqB,CAAAA,EACpCK,EAAaD,EAAAA,WAAWzB,EAAYuB,CAAAA,EAGpCI,EAAQ5C,KAAK6C,IAAiB,IAAbJ,EAAkBE,CAAAA,EAGrCC,EAAQgE,GAAahE,GAASxF,KAAKW,sBACnC6I,EAAYhE,EACZ+D,EAAYrF,EAAAA,CAAAA,EAKhBqF,IAEAvJ,KAAK2E,cAAc4E,CAAAA,EAGnBvJ,KAAKc,MAAAA,GAEb,CAEQ,eAAe2I,EAAAA,CACnB,MAAMC,EAAS1J,KAAKc,MACdwC,EAAiBtD,KAAKuB,iBAAiBE,MAG7C,GAAIzB,KAAKM,OAASmJ,EAAME,MAAQ,aAARA,CAAwB3J,KAAKe,aAAeuC,EAAe4C,OAAS,GAAA,CAAMwD,EAAQ,CACtGD,EAAMjF,eAAAA,EACN,MAAMoF,EAAYtG,EAAeA,EAAe4C,OAAS,CAAA,EAEzD,OAAA,KADAlG,KAAK8I,iBAAiBc,CAAAA,CAE1B,CAEA,GAAA,CAAKF,IAAWD,EAAME,MAAQ,aAAeF,EAAME,MAAQ,SAQvD,OAPAF,EAAMjF,eAAAA,EACNxE,KAAKc,MAAAA,GAAQ,KAEb8D,WAAW,IAAA,CACc5E,KAAKgE,SAASkD,KAAKN,GAAAA,CAAQA,EAAIb,MAAAA,GACtCmC,MAAAA,CAAAA,EACf,EAAA,EAIP,GAAA,CAAKwB,EAAQ,OAEb,MAAMG,EAAiB7J,KAAKgE,SAAS3B,OAAOuE,GAAAA,CAAQA,EAAIb,MAAAA,EACnDL,KAAK,CAACC,EAAGC,IAAMkE,SAASnE,EAAEK,MAAMC,OAAS,GAAA,EAAO6D,SAASlE,EAAEI,MAAMC,OAAS,GAAA,CAAA,EAEzE8D,EAAgBF,EAAe3C,KAAKN,GAAOA,IAAQE,SAASkD,aAAAA,EAC5DC,EAAeF,EAAgBF,EAAezD,QAAQ2D,CAAAA,EAAAA,GAE5D,OAAQN,EAAME,IAAAA,CACV,IAAK,SACDF,EAAMjF,eAAAA,EACNxE,KAAKc,MAAAA,GACLd,KAAK6G,oBAAAA,EACL7G,KAAKmB,iBAAiBM,OAAOyG,MAAAA,EAC7B,MAEJ,IAAK,MACDlI,KAAKc,MAAAA,GACLd,KAAK6G,oBAAAA,EACL,MAEJ,IAAK,YACD4C,EAAMjF,eAAAA,EACN,MAAM0F,EAAYD,EAAeJ,EAAe3D,OAAS,EAAI+D,EAAe,EAAI,EAChFJ,EAAeK,CAAAA,GAAYhC,MAAAA,EAC3B,MAEJ,IAAK,UACDuB,EAAMjF,eAAAA,EACN,MAAM2F,EAAYF,EAAe,EAAIA,EAAe,EAAIJ,EAAe3D,OAAS,EAChF2D,EAAeM,CAAAA,GAAYjC,MAAAA,EAC3B,MAEJ,IAAK,OACDuB,EAAMjF,eAAAA,EACNqF,EAAe,CAAA,GAAI3B,MAAAA,EACnB,MAEJ,IAAK,MACDuB,EAAMjF,eAAAA,EACNqF,EAAeA,EAAe3D,OAAS,CAAA,GAAIgC,MAAAA,EAC3C,MAEJ,IAAK,QACL,IAAK,IACG6B,IACAN,EAAMjF,eAAAA,EACNxE,KAAK2E,cAAcoF,CAAAA,EAAAA,CAInC,CAAA,EA7pB6BK,EAAA,CAA5BC,WAAS,CAAEC,KAAMhI,OAAAA,CAAAA,CAAAA,EAFD3C,EAEY4K,UAAA,WAAA,CAAA,EACDH,EAAA,CAA3BC,WAAS,CAAEC,KAAMvF,MAAAA,CAAAA,CAAAA,EAHDpF,EAGW4K,UAAA,cAAA,CAAA,EACeH,EAAA,CAA1CC,EAAAA,SAAS,CAAEC,KAAMvF,OAAQyF,QAAAA,EAAS,CAAA,CAAA,EAJlB7K,EAI0B4K,UAAA,QAAA,CAAA,EACfH,EAAA,CAA3BC,WAAS,CAAEC,KAAMvF,MAAAA,CAAAA,CAAAA,EALDpF,EAKW4K,UAAA,OAAA,CAAA,EACAH,EAAA,CAA3BC,WAAS,CAAEC,KAAMvF,MAAAA,CAAAA,CAAAA,EANDpF,EAMW4K,UAAA,YAAA,CAAA,EACCH,EAAA,CAA5BC,WAAS,CAAEC,KAAMhI,OAAAA,CAAAA,CAAAA,EAPD3C,EAOY4K,UAAA,QAAA,CAAA,EACDH,EAAA,CAA3BC,WAAS,CAAEC,KAAMvF,MAAAA,CAAAA,CAAAA,EARDpF,EAQW4K,UAAA,cAAA,CAAA,EACeH,EAAA,CAA1CC,EAAAA,SAAS,CAAEC,KAAMvF,OAAQyF,QAAAA,EAAS,CAAA,CAAA,EATlB7K,EAS0B4K,UAAA,OAAA,CAAA,EACfH,EAAA,CAA3BC,WAAS,CAAEC,KAAMvF,MAAAA,CAAAA,CAAAA,EAVDpF,EAUW4K,UAAA,eAAA,CAAA,EACAH,EAAA,CAA3BC,WAAS,CAAEC,KAAMG,MAAAA,CAAAA,CAAAA,EAXD9K,EAWW4K,UAAA,aAAA,CAAA,EACAH,EAAA,CAA3BC,WAAS,CAAEC,KAAMG,MAAAA,CAAAA,CAAAA,EAZD9K,EAYW4K,UAAA,sBAAA,CAAA,EACCH,EAAA,CAA5BC,WAAS,CAAEC,KAAMhI,OAAAA,CAAAA,CAAAA,EAbD3C,EAaY4K,UAAA,QAAA,CAAA,EACDH,EAAA,CAA3BC,WAAS,CAAEC,KAAMvF,MAAAA,CAAAA,CAAAA,EAdDpF,EAcW4K,UAAA,oBAAA,CAAA,EAIxBH,EAAA,CADHC,WAAS,CAAEC,KAAM1I,KAAAA,CAAAA,CAAAA,EAjBDjC,EAkBb4K,UAAA,SAAA,CAAA,EASAH,EAAA,CADHC,EAAAA,SAAS,CAAEC,KAAMvF,OAAQyF,QAAAA,EAAS,CAAA,CAAA,EA1BlB7K,EA2Bb4K,UAAA,QAAA,CAAA,EAsBaH,EAAA,CAAhBM,EAAAA,MAAAA,CAAAA,EAjDgB/K,EAiDA4K,UAAA,QAAA,CAAA,EACAH,EAAA,CAAhBM,EAAAA,MAAAA,CAAAA,EAlDgB/K,EAkDA4K,UAAA,cAAA,CAAA,EACAH,EAAA,CAAhBM,EAAAA,MAAAA,CAAAA,EAnDgB/K,EAmDA4K,UAAA,uBAAA,CAAA,EACAH,EAAA,CAAhBM,EAAAA,MAAAA,CAAAA,EApDgB/K,EAoDA4K,UAAA,cAAA,CAAA,EAMEH,EAAA,CAAlBO,EAAAA,MAAM,UAAA,CAAA,EA1DUhL,EA0DE4K,UAAA,WAAA,CAAA,EACCH,EAAA,CAAnBO,EAAAA,MAAM,WAAA,CAAA,EA3DUhL,EA2DG4K,UAAA,SAAA,CAAA,EAC8BH,EAAA,CAAjDQ,wBAAsB,CAAEC,QAAAA,EAAS,CAAA,CAAA,EA5DjBlL,EA4DiC4K,UAAA,WAAA,CAAA,EA5DjC5K,EAArByK,EAAA,CADCU,EAAAA,cAAc,uBAAA,CAAA,EACMnL,CAAAA"}