@oiz/stzh-components 3.3.0-beta4 → 3.3.0-beta6
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/cjs/{app-globals-add1c2c1.js → app-globals-2cd4f46b.js} +2 -2
- package/dist/cjs/{app-globals-add1c2c1.js.map → app-globals-2cd4f46b.js.map} +1 -1
- package/dist/cjs/{arrow-16638ece.js → arrow-6135123b.js} +116 -49
- package/dist/cjs/arrow-6135123b.js.map +1 -0
- package/dist/cjs/index.cjs.js.map +1 -1
- package/dist/cjs/loader.cjs.js +2 -2
- package/dist/cjs/stzh-app-nav.cjs.entry.js +9 -1
- package/dist/cjs/stzh-app-nav.cjs.entry.js.map +1 -1
- package/dist/cjs/stzh-badge_3.cjs.entry.js +1 -1
- package/dist/cjs/stzh-badge_3.cjs.entry.js.map +1 -1
- package/dist/cjs/stzh-components.cjs.js +2 -2
- package/dist/cjs/stzh-header.cjs.entry.js +23 -13
- package/dist/cjs/stzh-header.cjs.entry.js.map +1 -1
- package/dist/cjs/stzh-popover_2.cjs.entry.js +21 -9
- package/dist/cjs/stzh-popover_2.cjs.entry.js.map +1 -1
- package/dist/cjs/stzh-row.cjs.entry.js +1 -1
- package/dist/cjs/stzh-row.cjs.entry.js.map +1 -1
- package/dist/cjs/stzh-tooltip.cjs.entry.js +20 -8
- package/dist/cjs/stzh-tooltip.cjs.entry.js.map +1 -1
- package/dist/cjs/stzh-upload.cjs.entry.js +1 -1
- package/dist/cjs/stzh-upload.cjs.entry.js.map +1 -1
- package/dist/collection/components/stzh-app-nav/stzh-app-nav.js +32 -1
- package/dist/collection/components/stzh-app-nav/stzh-app-nav.js.map +1 -1
- package/dist/collection/components/stzh-app-nav/stzh-app-nav.stories.js +1 -1
- package/dist/collection/components/stzh-button/stzh-button.css +3 -2
- package/dist/collection/components/stzh-header/stzh-header.js +34 -20
- package/dist/collection/components/stzh-header/stzh-header.js.map +1 -1
- package/dist/collection/components/stzh-header/stzh-header.stories.js +9 -9
- package/dist/collection/components/stzh-popover/stzh-popover.js +20 -8
- package/dist/collection/components/stzh-popover/stzh-popover.js.map +1 -1
- package/dist/collection/components/stzh-row/stzh-row.css +240 -184
- package/dist/collection/components/stzh-tooltip/stzh-tooltip.js +19 -7
- package/dist/collection/components/stzh-tooltip/stzh-tooltip.js.map +1 -1
- package/dist/collection/components/stzh-upload/stzh-upload.js +1 -1
- package/dist/collection/components/stzh-upload/stzh-upload.js.map +1 -1
- package/dist/collection/index.js.map +1 -1
- package/dist/components/arrow.js +115 -48
- package/dist/components/arrow.js.map +1 -1
- package/dist/components/index.js +1 -1
- package/dist/components/index2.js.map +1 -1
- package/dist/components/stzh-app-nav2.js +10 -2
- package/dist/components/stzh-app-nav2.js.map +1 -1
- package/dist/components/stzh-button2.js +1 -1
- package/dist/components/stzh-button2.js.map +1 -1
- package/dist/components/stzh-header.js +27 -16
- package/dist/components/stzh-header.js.map +1 -1
- package/dist/components/stzh-popover2.js +20 -8
- package/dist/components/stzh-popover2.js.map +1 -1
- package/dist/components/stzh-row.js +1 -1
- package/dist/components/stzh-row.js.map +1 -1
- package/dist/components/stzh-tooltip2.js +19 -7
- package/dist/components/stzh-tooltip2.js.map +1 -1
- package/dist/components/stzh-upload.js +1 -1
- package/dist/components/stzh-upload.js.map +1 -1
- package/dist/esm/{app-globals-7f5414ca.js → app-globals-0aad39a2.js} +2 -2
- package/dist/esm/{app-globals-7f5414ca.js.map → app-globals-0aad39a2.js.map} +1 -1
- package/dist/esm/{arrow-fc956b24.js → arrow-8f47d7ea.js} +116 -49
- package/dist/esm/arrow-8f47d7ea.js.map +1 -0
- package/dist/esm/index.js.map +1 -1
- package/dist/esm/loader.js +2 -2
- package/dist/esm/stzh-app-nav.entry.js +10 -2
- package/dist/esm/stzh-app-nav.entry.js.map +1 -1
- package/dist/esm/stzh-badge_3.entry.js +1 -1
- package/dist/esm/stzh-badge_3.entry.js.map +1 -1
- package/dist/esm/stzh-components.js +2 -2
- package/dist/esm/stzh-header.entry.js +23 -13
- package/dist/esm/stzh-header.entry.js.map +1 -1
- package/dist/esm/stzh-popover_2.entry.js +21 -9
- package/dist/esm/stzh-popover_2.entry.js.map +1 -1
- package/dist/esm/stzh-row.entry.js +1 -1
- package/dist/esm/stzh-row.entry.js.map +1 -1
- package/dist/esm/stzh-tooltip.entry.js +20 -8
- package/dist/esm/stzh-tooltip.entry.js.map +1 -1
- package/dist/esm/stzh-upload.entry.js +1 -1
- package/dist/esm/stzh-upload.entry.js.map +1 -1
- package/dist/stzh-components/index.esm.js.map +1 -1
- package/dist/stzh-components/{p-4f7f4362.entry.js → p-16581003.entry.js} +2 -2
- package/dist/stzh-components/p-16581003.entry.js.map +1 -0
- package/dist/stzh-components/{p-6009632f.js → p-49fcbbfb.js} +2 -2
- package/dist/stzh-components/p-7423c6c2.js +2 -0
- package/dist/stzh-components/p-7423c6c2.js.map +1 -0
- package/dist/stzh-components/{p-d1aa8602.entry.js → p-8202e541.entry.js} +2 -2
- package/dist/stzh-components/p-8202e541.entry.js.map +1 -0
- package/dist/stzh-components/p-ab6cc68f.entry.js +2 -0
- package/dist/stzh-components/p-ab6cc68f.entry.js.map +1 -0
- package/dist/stzh-components/p-b047262a.entry.js +2 -0
- package/dist/stzh-components/p-b047262a.entry.js.map +1 -0
- package/dist/stzh-components/{p-288fd6f7.entry.js → p-bb4dea97.entry.js} +2 -2
- package/dist/stzh-components/{p-288fd6f7.entry.js.map → p-bb4dea97.entry.js.map} +1 -1
- package/dist/stzh-components/p-dc4f385d.entry.js +2 -0
- package/dist/stzh-components/p-dc4f385d.entry.js.map +1 -0
- package/dist/stzh-components/p-ecbac5ca.entry.js +2 -0
- package/dist/stzh-components/p-ecbac5ca.entry.js.map +1 -0
- package/dist/stzh-components/stzh-components.esm.js +1 -1
- package/dist/stzh-components/stzh-components.esm.js.map +1 -1
- package/dist/types/components/stzh-app-nav/stzh-app-nav.d.ts +5 -1
- package/dist/types/components/stzh-header/stzh-header.d.ts +7 -5
- package/dist/types/components/stzh-popover/stzh-popover.d.ts +3 -0
- package/dist/types/components/stzh-tooltip/stzh-tooltip.d.ts +3 -0
- package/dist/types/components.d.ts +22 -14
- package/dist/types/index.d.ts +5 -0
- package/dist/vscode-data.json +9 -5
- package/package.json +2 -2
- package/dist/cjs/arrow-16638ece.js.map +0 -1
- package/dist/esm/arrow-fc956b24.js.map +0 -1
- package/dist/stzh-components/p-4f7f4362.entry.js.map +0 -1
- package/dist/stzh-components/p-6a1d65ce.entry.js +0 -2
- package/dist/stzh-components/p-6a1d65ce.entry.js.map +0 -1
- package/dist/stzh-components/p-a2da1df4.js +0 -2
- package/dist/stzh-components/p-a2da1df4.js.map +0 -1
- package/dist/stzh-components/p-d1aa8602.entry.js.map +0 -1
- package/dist/stzh-components/p-e9933daa.entry.js +0 -2
- package/dist/stzh-components/p-e9933daa.entry.js.map +0 -1
- package/dist/stzh-components/p-f0887c02.entry.js +0 -2
- package/dist/stzh-components/p-f0887c02.entry.js.map +0 -1
- package/dist/stzh-components/p-f42f6787.entry.js +0 -2
- package/dist/stzh-components/p-f42f6787.entry.js.map +0 -1
- /package/dist/stzh-components/{p-6009632f.js.map → p-49fcbbfb.js.map} +0 -0
|
@@ -1 +1 @@
|
|
|
1
|
-
{"file":"index2.js","mappings":"AAAA;AACA;AACA;IAwwDiB,IAoMhB;AApMD,WAAiB,GAAG;EACL,oBAAgB,GAAG,QAAQ,CAAC;EAE5B,kBAAc,GAAG,QAAQ,CAAC;EAC1B,2BAAuB,GAAG,sBAAsB,CAAC;EAEjD,sBAAkB,GAAG,YAAY,CAAC;EAClC,2BAAuB,GAAG,GAAG,CAAC;EAC9B,4BAAwB,GAAG,GAAG,CAAC;EAC/B,sBAAkB,GAAG,GAAG,CAAC;EACzB,qBAAiB,GAAG,GAAG,CAAC;EACxB,mBAAe,GAAG,GAAG,CAAC;AAyLrC,CAAC,EApMgB,GAAG,KAAH,GAAG;;;;","names":[],"sources":["src/index.ts"],"sourcesContent":["// ---\n// Global window types\n// ---\n\nimport { StzhLocaleAdapter } from \"./utils/date-adapter\";\n\nimport {\n StzhLocaleComponent,\n StzhLocaleFormats,\n StzhLocaleGlobals,\n} from \"./utils/translation-utils\";\n\nexport type WindowStzhComponents = {\n version: string;\n supportedLocales: string[];\n defaultLocale: string;\n translations: null | StzhLocaleComponent;\n translationsLoading: Promise<StzhLocaleComponent>;\n pathMedia: string;\n pathTranslations: string;\n pathVendors: string;\n cacheTranslations: boolean;\n formats: StzhLocaleFormats;\n fixAutofocus: boolean;\n fixHashfocus: boolean;\n utils: {\n getLocale: (element: HTMLElement) => string;\n fetchTranslations: (\n host: HTMLElement,\n component: string\n ) => Promise<StzhLocaleComponent & any>;\n\n format: (date: Date, type: string) => string;\n parse: (string: string, type: string) => Date;\n formatSpan: (\n date: Date | string,\n date2: Date | string,\n type: string\n ) => string;\n parseSpan: (string: string, type: string) => [Date, Date, string];\n createFormatParseAdapter: (\n formats: StzhLocaleFormats,\n globals: StzhLocaleGlobals\n ) => StzhLocaleAdapter;\n };\n};\n\ndeclare global {\n interface Window {\n stzhComponents: WindowStzhComponents;\n // global third party library\n pannellum: any;\n Dropzone: any;\n proj4: any;\n // readspeaker lib APIs\n readpage: any;\n ReadSpeaker: any;\n rsConf: any;\n rspkr: any;\n }\n}\n\n// ---\n// Event Types\n// ---\n\n/* Sortable */\n\nexport type StzhSortableUpdateEvent = {\n component: \"stzh-sortable\";\n data: string[];\n item: HTMLElement;\n newIndex: number;\n oldIndex: number;\n};\n\nexport type StzhSortableDisableEvent = {\n component: \"stzh-sortable\";\n disabled: boolean;\n};\n\n/* Panorama */\n\nexport type PanoramaScene = {\n sceneId: string;\n imageSrc: string;\n imageTitle: string;\n\n imageAuthor?: string;\n imageType?: \"equirectangular\" | \"cubemap\" | \"multires\";\n caption?: string;\n copyright?: string;\n\n pitch?: number;\n yaw?: number;\n hfov?: number;\n\n hotspots: PanoramaSceneHotSpot[];\n};\n\nexport type PanoramaScenesLibrary = {\n [sceneKey: string]: {\n title?: string;\n author?: string;\n panorama: string;\n type?: \"equirectangular\" | \"cubemap\" | \"multires\";\n\n pitch?: number;\n yaw?: number;\n hfov?: number;\n\n hotSpots: PanoramaSceneHotSpot[];\n };\n};\n\nexport type PanoramaSceneHotSpot = {\n pitch: number;\n yaw: number;\n type: string;\n text: string;\n url?: string;\n id?: string;\n sceneId?: string;\n targetPitch?: number;\n targetYaw?: number;\n\n cssClass?: string;\n createTooltipFunc?: Function;\n createTooltipArgs?: any;\n};\n\nexport type StzhPanoramaLoadEvent = {\n component: \"stzh-panorama\";\n};\n\nexport type StzhPanoramaChangeEvent = {\n component: \"stzh-panorama\";\n value: { pitch: number; yaw: number; hfov: number };\n};\n\nexport type StzhPanoramaFullscreenChangeEvent = {\n component: \"stzh-panorama\";\n value: boolean;\n};\n\nexport type StzhPanoramaSceneChangeEvent = {\n component: \"stzh-panorama\";\n value: string;\n};\n\nexport type StzhPanoramaZoomChangeEvent = {\n component: \"stzh-panorama\";\n value: number;\n};\n\n/* Iframe */\n\nexport type StzhIframeView = \"iframe\" | \"cookiewall\" | \"preview\";\n\nexport type StzhIframeViewChangeEvent = {\n component: \"stzh-iframe\";\n value: StzhIframeView;\n};\n\nexport type StzhIframePreviewSkipEvent = {\n component: \"stzh-iframe\";\n};\n\n/* Olmap */\n\nexport type OlmapLayer = {\n title?: string;\n thumbnailUrl: string;\n options: {\n url: string;\n layer: string;\n matrixSet: string;\n origin: number[];\n extent: number[];\n };\n};\n\nexport type StzhOlmapInitializedEvent = {\n component: \"stzh-olmap\";\n};\n\nexport type StzhOlmapPostRenderEvent = {\n component: \"stzh-olmap\";\n};\n\nexport type StzhOlmapMoveStartEvent = {\n component: \"stzh-olmap\";\n};\n\nexport type StzhOlmapMoveEndEvent = {\n component: \"stzh-olmap\";\n};\n\n/* Sticky */\n\nexport type StzhStickyStuckTopEvent = {\n component: \"stzh-sticky\";\n sticky: boolean;\n};\n\nexport type StzhStickyStuckBottomEvent = {\n component: \"stzh-sticky\";\n sticky: boolean;\n};\n\n/* Table */\n\nexport type StzhDatatableCellData = {\n value: string | number;\n isHeader?: boolean;\n align?: \"left\" | \"right\" | \"center\";\n valign?: \"auto\" | \"middle\" | \"bottom\" | \"top\";\n colspan?: number;\n rowspan?: number;\n id?: string;\n};\n\nexport type StzhDatatableRowData = {\n [key: string]: StzhDatatableCellData;\n};\n\nexport type StzhDatatableInputRowData = {\n [key: string]: StzhDatatableCellData | string | number;\n};\n\nexport type StzhDatatableColumnData = {\n key: string;\n text?: string;\n align?: \"left\" | \"right\" | \"center\";\n valign?: \"auto\" | \"middle\" | \"bottom\" | \"top\";\n sort?:\n | boolean\n | {\n type?: \"numerical\" | \"text\";\n field?: string;\n };\n fixed?: \"left\" | \"right\";\n isHeader?: boolean;\n colspan?: number;\n rowspan?: number;\n hideColumnHeading?: boolean;\n analyticsId?: string;\n style?: {\n [key: string]: string;\n };\n};\n\nexport type StzhDatatableRowClickEvent = {\n component: \"stzh-datatable\";\n row: any;\n originalEvent: MouseEvent;\n};\n\nexport type StzhDatatableCellClickEvent = {\n component: \"stzh-datatable\";\n row: any;\n column: any;\n cellIndex: number;\n rowIndex: number;\n originalEvent: MouseEvent;\n};\n\nexport type StzhDatatableHeadingCellClickEvent = {\n component: \"stzh-datatable\";\n column: any;\n index: number;\n originalEvent: MouseEvent;\n};\n\nexport type StzhDatatableSortClickEvent = {\n component: \"stzh-datatable\";\n column: any;\n originalEvent: MouseEvent;\n};\n\nexport type StzhDatatableSortByChangeEvent = {\n component: \"stzh-datatable\";\n value: string;\n oldValue: string;\n};\n\nexport type StzhDatatableSortDirectionChangeEvent = {\n component: \"stzh-datatable\";\n value: \"asc\" | \"desc\";\n oldValue: \"asc\" | \"desc\";\n};\n\n/* Archivelist */\n\nexport type StzhArchivelistItem = {\n label: string;\n labelClamp?: any; // attributes of HTMLStzhClampElement\n href: string;\n dateline?: string;\n description?: string;\n descriptionClamp?: any; // attributes of HTMLStzhClampElement\n};\n\nexport type StzhArchivelistItemClickEvent = {\n component: \"stzh-archivelist\";\n item: StzhArchivelistItem;\n originalEvent: MouseEvent;\n};\n\n/* Anchornav */\n\nexport type StzhAnchornavItem = {\n label: string;\n href?: string;\n icon?: string;\n};\n\nexport type StzhAnchornavItemClickEvent = {\n component: \"stzh-anchornav\";\n item: StzhAnchornavItem;\n originalEvent: MouseEvent;\n};\n\n/* TopnewsMostsearchedSection */\n\nexport type StzhTopnewsItem = {\n subtitle?: string;\n label: string;\n href?: string;\n isHighlighted?: boolean;\n};\n\nexport type StzhMostsearchedItem = {\n label: string;\n href: string;\n};\n\n/* VBZ Quicklinks */\n\nexport type StzhVbzQuicklink = {\n label: string;\n href: string;\n};\n\n/* Status */\n\nexport type StzhStatusType =\n | \"default\"\n | \"success\"\n | \"warning\"\n | \"error\"\n | \"info\";\n\n/* Badge */\n\nexport type StzhBadgeType =\n | \"default\"\n | \"success\"\n | \"warning\"\n | \"error\"\n | \"info\";\n\n/* Actionset */\n\nexport type StzhActionsetItem = {\n id: string;\n label?: string;\n icon?: string;\n iconPosition?: \"left\" | \"right\";\n iconOnly?: boolean;\n badge?: string;\n badgeEmpty?: boolean;\n badgeType?: StzhBadgeType;\n variant?: StzhButtonVariant;\n size?: StzhButtonSize;\n badgePosition?: \"icon\" | \"button\";\n tooltipContent?: string;\n};\n\nexport type StzhActionsetItemClickEvent = {\n component: \"stzh-actionset\";\n action: StzhActionsetItem;\n originalEvent: MouseEvent;\n};\n\n/* Audio */\n\nexport type StzhAudioPlayEvent = {\n component: \"stzh-audio\";\n};\n\nexport type StzhAudioPlayingEvent = {\n component: \"stzh-audio\";\n};\n\nexport type StzhAudioPauseEvent = {\n component: \"stzh-audio\";\n};\n\nexport type StzhAudioReplayEvent = {\n component: \"stzh-audio\";\n};\n\nexport type StzhAudioEndEvent = {\n component: \"stzh-audio\";\n};\n\nexport type StzhAudioEndedEvent = {\n component: \"stzh-audio\";\n};\n\nexport type StzhAudioErrorEvent = {\n component: \"stzh-audio\";\n originalEvent: ErrorEvent;\n};\n\n/* Share */\n\nexport type ShareService =\n | \"facebook\"\n | \"twitter\"\n | \"linkedin\"\n | \"xing\"\n | \"mail\";\n\n/* Footer Editor */\n\nexport type StzhEditorLink = {\n label: string;\n href?: string;\n icon?: string;\n rel?: string;\n target?: string;\n};\n\n/* Header */\n\nexport type StzhHeaderMenuItem = {\n label: string;\n href?: string;\n items?: StzhHeaderMenuItem[];\n id?: string;\n};\n\nexport type StzhHeaderMetanavItem = {\n label: string;\n labelShort?: string;\n labelHidden?: boolean;\n stay?: boolean;\n stayAndShowInMobileMenu?: boolean;\n variant?: \"default\" | \"secondary\"; // used for menu-item and popover\n size?: \"default\" | \"large\"; // used for menu-item and popover\n important?: boolean;\n importantSubmenu?: boolean;\n badgeEmpty?: boolean;\n badgeType?: StzhBadgeType;\n badge?: string;\n icon?: string;\n iconOpen?: string;\n href?: string;\n target?: string;\n id?: string;\n items?: StzhHeaderMetanavItemChild[];\n itemButton?: StzhHeaderMetanavItemButton;\n cssOrder?: boolean;\n};\n\nexport type StzhHeaderMetanavItemChild = {\n label: string;\n href?: string;\n target?: string;\n id?: string;\n icon?: string;\n counter?: number;\n badge?: string;\n badgeType?: StzhBadgeType;\n};\n\nexport type StzhHeaderMetanavItemButton = {\n label: string;\n href?: string;\n target?: string;\n size?: StzhButtonSize;\n id?: string;\n};\n\nexport type StzhHeaderMetanavItemClickEvent = {\n component: \"stzh-header\";\n item: StzhHeaderMetanavItem;\n originalEvent: MouseEvent;\n};\n\nexport type StzhHeaderMetanavItemChildClickEvent = {\n component: \"stzh-header\";\n itemChild: StzhHeaderMetanavItemChild;\n originalEvent: MouseEvent;\n};\n\nexport type StzhHeaderMetanavItemButtonClickEvent = {\n component: \"stzh-header\";\n itemButton: StzhHeaderMetanavItemButton;\n originalEvent: MouseEvent;\n};\n\nexport type StzhHeaderMenuItemClickEvent = {\n component: \"stzh-header\";\n item: StzhHeaderMenuItem;\n originalEvent: MouseEvent;\n};\n\nexport type StzhHeaderLanguageChangeEvent = {\n component: \"stzh-header\";\n value: string;\n};\n\nexport type StzhHeaderSearchChangeEvent = {\n component: \"stzh-header\";\n originalEvent: InputEvent | MouseEvent;\n value: string;\n};\n\nexport type StzhHeaderSearchChangedEvent = {\n component: \"stzh-header\";\n originalEvent: InputEvent | MouseEvent;\n value: string;\n};\n\n/* App Nav */\nexport type StzhAppNavItem = {\n text: string;\n href: string;\n badge: string;\n badgeType: StzhBadgeType;\n icon: string;\n active: boolean;\n a11yCurrent: string;\n};\n\n/* PI Pagetitle */\n\nexport type StzhPiPagetitleMenuItem = {\n label: string;\n href?: string;\n active?: boolean;\n items?: StzhPiPagetitleMenuItem[];\n id?: string;\n};\n\n/* Search */\n\nexport type StzhSearchOverlayCloseClickEvent = {\n component: \"stzh-search\";\n originalEvent: MouseEvent;\n};\n\n/* Breadcrumb */\n\nexport type StzhBreadcrumbItem = {\n label: string;\n href: string;\n};\n\nexport type StzhBreadcrumbItemClickEvent = {\n component: \"stzh-breadcrumb\";\n item: StzhBreadcrumbItem;\n originalEvent: MouseEvent;\n};\n\n/* Card */\n\nexport type StzhCardHeaderAction = {\n id: string;\n label?: string;\n icon?: string;\n badge?: string;\n badgeEmpty?: boolean;\n badgeType?: StzhBadgeType;\n};\n\nexport type StzhCardSubtitleClickEvent = {\n component: \"stzh-card\";\n originalEvent: MouseEvent;\n};\n\nexport type StzhCardCollapseEvent = {\n component: \"stzh-card\";\n collapsed: boolean;\n};\n\nexport type StzhCardClickEvent = {\n component: \"stzh-card\";\n originalEvent: MouseEvent;\n href: string;\n};\n\nexport type StzhCardStarClickEvent = {\n component: \"stzh-card\";\n starred: boolean;\n originalEvent: MouseEvent;\n};\n\nexport type StzhCardHeaderActionClickEvent = {\n component: \"stzh-card\";\n action: StzhCardHeaderAction;\n originalEvent: MouseEvent;\n};\n\n/* Card Navigation */\n\nexport type StzhCardNavigationClickEvent = {\n component: \"stzh-card-navigation\";\n originalEvent: MouseEvent;\n href: string;\n};\n\nexport type StzhPiCardNavigationClickEvent = {\n component: \"stzh-pi-content-navigation\";\n originalEvent: MouseEvent;\n href: string;\n};\n\n/* Pi Teaser */\n\nexport type StzhPiTeaserClickEvent = {\n component: \"stzh-pi-teaser\";\n originalEvent: MouseEvent;\n href: string;\n};\n\n/* Card Superteaser */\n\nexport type StzhCardSuperteaserClickEvent = {\n component: \"stzh-card-superteaser\";\n originalEvent: MouseEvent;\n href: string;\n};\n\n/* Card Searchresult */\n\nexport type StzhCardSearchresultClickEvent = {\n component: \"stzh-card-searchresult\";\n originalEvent: MouseEvent;\n href: string;\n};\n\n/* Search */\n\nexport type StzhSearchResult = {\n html?: string;\n href?: string;\n heading?: string;\n dateline?: string;\n description?: string;\n image?: string;\n imagePosition?: \"default\" | \"right\";\n tag?: string;\n topic?: string;\n service?: string;\n serviceColor?: string;\n serviceBackgroundColor?: string;\n meta?: string[];\n breadcrumbItems?: StzhBreadcrumbItem[];\n eventDateStart?: string;\n eventDateEnd?: string;\n eventLocation?: string;\n download?: string;\n downloadHeading?: string;\n downloadMeta?: string[];\n};\n\nexport type StzhSearchChipsResult = {\n label: string;\n value: string;\n amount?: number;\n options?: { text: string; value: string }[];\n};\n\n/* Microsite Teaserlist */\n\nexport type StzhMicrositeTeaserlistTag = {\n id: string;\n name: string;\n};\n\nexport type StzhMicrositeTeaserlistItem = {\n title?: string;\n description?: string;\n image?: string;\n link: string;\n tags: string[];\n teaserid: string;\n};\n\n/* Cardlist */\n\nexport type StzhCardlistCollapseAllEvent = {\n component: \"stzh-cardlist\";\n allCollapsed: boolean;\n};\n\n/* Calendar */\n\nexport type StzhCalendarChangeEvent = {\n component: \"stzh-calendar\";\n valueAsDate: Date;\n value: string;\n};\n\n/* Datepicker */\n\nexport type StzhDatepickerChangeEvent = {\n component: \"stzh-datepicker\";\n value: string;\n valueAsDate: Date;\n};\n\n/* Pagination */\n\nexport type StzhPaginationChangeEvent = {\n component: \"stzh-pagination\";\n page: number;\n};\n\n/* Timepicker */\n\nexport type StzhTimepickerChangeEvent = {\n component: \"stzh-timepicker\";\n value: string;\n};\n\n/* Monthyearpicker */\n\nexport type StzhMonthyearpickerChangeEvent = {\n component: \"stzh-monthyearpicker\";\n value: string;\n valueMonth: string;\n valueYear: string;\n};\n\n/* Amount */\n\nexport type StzhAmountChangeEvent = {\n component: \"stzh-amount\";\n value: string;\n};\n\n/* Appointments */\n\nexport type StzhAppointmentsChangeEvent = {\n component: \"stzh-appointments\";\n value: string;\n};\n\n/* Skiplink */\n\nexport type StzhSkiplinkFocusEvent = {\n component: \"stzh-skiplink\";\n originalEvent: FocusEvent;\n};\n\nexport type StzhSkiplinkBlurEvent = {\n component: \"stzh-skiplink\";\n originalEvent: FocusEvent;\n};\n\n/* Checkbox */\n\nexport type StzhCheckboxChangeEvent = {\n component: \"stzh-checkbox\";\n originalEvent: InputEvent | Event;\n value: string;\n checked: boolean;\n};\n\nexport type StzhCheckboxFocusEvent = {\n component: \"stzh-checkbox\";\n originalEvent: FocusEvent;\n};\n\nexport type StzhCheckboxBlurEvent = {\n component: \"stzh-checkbox\";\n originalEvent: FocusEvent;\n};\n\nexport type StzhCheckboxgroupChangeEvent = {\n component: \"stzh-checkboxgroup\";\n value: string[];\n};\n\n/* Toggle */\n\nexport type StzhToggleChangeEvent = {\n component: \"stzh-toggle\";\n originalEvent: InputEvent;\n value: string;\n checked: boolean;\n};\n\nexport type StzhToggleFocusEvent = {\n component: \"stzh-toggle\";\n originalEvent: FocusEvent;\n};\n\nexport type StzhToggleBlurEvent = {\n component: \"stzh-toggle\";\n originalEvent: FocusEvent;\n};\n\n/* Button */\n\nexport type StzhButtonVariant =\n | \"default\"\n | \"secondary\"\n | \"tertiary\"\n | \"tertiary-plain\";\nexport type StzhButtonSize = \"default\" | \"small\" | \"tiny\";\n\nexport type StzhButtonFocusEvent = {\n component: \"stzh-button\";\n originalEvent: FocusEvent;\n};\n\nexport type StzhButtonBlurEvent = {\n component: \"stzh-button\";\n originalEvent: FocusEvent;\n};\n\nexport type StzhButtonClickEvent = {\n component: \"stzh-button\";\n originalEvent: MouseEvent;\n href: string;\n};\n\nexport type StzhButtonChangeEvent = {\n component: \"stzh-button\";\n originalEvent: InputEvent;\n value: string;\n checked: boolean;\n};\n\n/* Link */\n\nexport type StzhLinkSize = \"default\" | \"small\" | \"inherit\";\n\nexport type StzhLinkFocusEvent = {\n component: \"stzh-link\";\n originalEvent: FocusEvent;\n};\n\nexport type StzhLinkBlurEvent = {\n component: \"stzh-link\";\n originalEvent: FocusEvent;\n};\n\nexport type StzhLinkClickEvent = {\n component: \"stzh-link\";\n originalEvent: MouseEvent;\n href: string;\n};\n\n/* Menu (Item) */\n\nexport type StzhMenuVariant = \"default\" | \"secondary\";\nexport type StzhMenuSize = \"default\" | \"large\";\n\nexport type StzhMenuItemFocusEvent = {\n component: \"stzh-menu-item\";\n originalEvent: FocusEvent;\n};\n\nexport type StzhMenuItemBlurEvent = {\n component: \"stzh-menu-item\";\n originalEvent: FocusEvent;\n};\n\nexport type StzhMenuItemClickEvent = {\n component: \"stzh-menu-item\";\n originalEvent: MouseEvent;\n href: string;\n};\n\n/* Carousel */\n\nexport type StzhCarouselSlideStartEvent = {\n component: \"stzh-carousel\";\n index: number;\n};\n\nexport type StzhCarouselSlidePassedEvent = {\n component: \"stzh-carousel\";\n index: number;\n};\n\nexport type StzhCarouselSlideEndEvent = {\n component: \"stzh-carousel\";\n index: number;\n};\n\n/* Chipselect */\n\nexport type StzhChipselectItem = {\n label: string;\n value: string;\n disabled?: boolean;\n variant?: StzhChipVariant;\n type?: StzhChipType;\n inverted?: boolean;\n counter?: string;\n icon?: string;\n size?: StzhChipSize;\n};\n\nexport type StzhChipselectChangeEvent = {\n component: \"stzh-chipselect\";\n value: string[] | string;\n};\n\n/* Gallery */\n\nexport type StzhGalleryItem = {\n width: number;\n height: number;\n src: string;\n srcLightbox?: string;\n srcsetLightbox?: string;\n alt?: string;\n copyright?: string;\n heading?: string;\n headingLightbox?: string;\n caption?: string;\n captionLightbox?: string;\n lightboxHtml?: string;\n hideCounter?: boolean;\n};\n\n/* Datalist */\n\nexport type StzhDatalistItemEntry = {\n value: string;\n leadingIcon?: string;\n label?: string;\n meta?: string;\n icon?: string;\n iconLabel?: string;\n iconTooltip?: string;\n statusLabel?: string;\n statusType?: StzhStatusType;\n href?: string;\n rel?: string;\n target?: string;\n items?: StzhDatalistItemEntry[];\n};\n\nexport type StzhDatalistVariant = \"default\" | \"table\";\nexport type StzhDatalistDirection = \"vertical\" | \"horizontal\";\n\nexport type StzhDatalistVariantChangeEvent = {\n component: \"stzh-datalist\";\n value: StzhDatalistVariant;\n};\n\nexport type StzhDatalistDirectionChangeEvent = {\n component: \"stzh-datalist\";\n value: \"vertical\" | \"horizontal\";\n};\n\n/* Datalist Item */\n\nexport type StzhDatalistItemActionClickEvent = {\n component: \"stzh-datalist-item\";\n originalEvent: MouseEvent;\n};\n\nexport type StzhDatalistItemClickEvent = {\n component: \"stzh-datalist-item\";\n originalEvent: MouseEvent;\n href: string;\n};\n\n/* Datamessagelist */\n\nexport type StzhDatamessagelistItemEntryMeta = {\n label: string;\n value: string;\n};\n\nexport type StzhDatamessagelistItemEntryAction = {\n id: string | number;\n icon: string;\n label: string;\n badge?: string;\n};\n\nexport type StzhDatamessagelistItemEntryTag = {\n icon: string;\n label: string;\n type?: StzhChipType;\n inverted?: boolean;\n};\n\nexport type StzhDatamessagelistItemEntryLoadingStatus = {\n percent: number;\n label: string;\n type: \"default\" | \"success\" | \"warning\" | \"error\";\n};\n\nexport type StzhDatamessagelistItemClickEvent = {\n component: \"stzh-datamessagelist-item\";\n originalEvent: MouseEvent;\n href: string;\n};\n\nexport type StzhDatamessagelistItemActionClickEvent = {\n component: \"stzh-datamessagelist-item\";\n action: StzhDatamessagelistItemEntryAction;\n originalEvent: MouseEvent;\n};\n\n/* Cta */\n\nexport type StzhCtaFocusEvent = {\n component: \"stzh-cta\";\n originalEvent: FocusEvent;\n};\n\nexport type StzhCtaBlurEvent = {\n component: \"stzh-cta\";\n originalEvent: FocusEvent;\n};\n\nexport type StzhCtaClickEvent = {\n component: \"stzh-cta\";\n originalEvent: MouseEvent;\n href: string;\n};\n\n/* Tag */\n\nexport type StzhTagSize = \"default\" | \"large\";\nexport type StzhTagType = \"default\" | \"secondary\";\n\nexport type StzhTagClickEvent = {\n component: \"stzh-tag\";\n originalEvent: MouseEvent;\n href: string;\n};\n\nexport type StzhTagFocusEvent = {\n component: \"stzh-tag\";\n originalEvent: FocusEvent;\n};\n\nexport type StzhTagBlurEvent = {\n component: \"stzh-tag\";\n originalEvent: FocusEvent;\n};\n\n/* Chip */\n\nexport type StzhChipVariant = \"tag\" | \"filter\" | \"input\";\nexport type StzhChipSize = \"default\" | \"small\" | \"large\";\nexport type StzhChipType = \"default\" | \"success\" | \"warning\" | \"error\" | \"info\";\n\nexport type StzhChipClickEvent = {\n component: \"stzh-chip\";\n originalEvent: MouseEvent;\n href: string;\n};\n\nexport type StzhChipRemoveEvent = {\n component: \"stzh-chip\";\n originalEvent: MouseEvent;\n};\n\nexport type StzhChipFocusEvent = {\n component: \"stzh-chip\";\n originalEvent: FocusEvent;\n};\n\nexport type StzhChipBlurEvent = {\n component: \"stzh-chip\";\n originalEvent: FocusEvent;\n};\n\n/* VBZ Major Ticker */\n\nexport type StzhVbzMajortickerDisturbance = {\n id: string;\n head: string;\n text: string;\n startDate: Date;\n endDate: Date;\n altStart: string;\n altEnd: string;\n infoUrl?: VbzTickerInfoUrl;\n};\n\nexport type StzhVbzMajortickerDisturbanceFetchedEvent = {\n component: \"stzh-vbz-majorticker\";\n disturbance: StzhVbzMajortickerDisturbance | null;\n};\n\n/* VBZ Ticker */\n\nexport type VbzTickerInfoUrl = {\n name: string;\n url: string;\n};\n\nexport type VbzTickerDisturbance = {\n id: string;\n head: string;\n startDate: Date;\n endDate: Date;\n altStart: string;\n altEnd: string;\n baseType?: string;\n infoUrl?: VbzTickerInfoUrl;\n category:\n | typeof VBZ.DISTURBANCE_INFORMATION\n | typeof VBZ.DISTURBANCE_CONSTRUCTION\n | typeof VBZ.DISTURBANCE_NORMAL\n | typeof VBZ.DISTURBANCE_EVENT\n | typeof VBZ.DISTURBANCE_BUS;\n};\n\nexport type VbzTickerLine = {\n line: VBZ.Lines;\n name: string;\n disturbances: VbzTickerDisturbance[];\n // whether normal or big disturbance for this line exist\n alert: boolean;\n // 2 = Fernverkehr / 16 = Schiff / 32 = S-Bahn/Reg / 64 = Bus / 128 = Bergbahn / 256 = Nachtnetz / 512 = Tram\n category: \"2\" | \"16\" | \"32\" | \"64\" | \"128\" | \"256\" | \"512\";\n};\n\n/* VBZ Line Chip */\n\nexport type StzhVbzLinechipLine = {\n color: string;\n background: string;\n comment?: string;\n};\n\nexport type StzhVbzLinechipFocusEvent = {\n component: \"stzh-vbz-linechip\";\n originalEvent: FocusEvent;\n};\n\nexport type StzhVbzLinechipBlurEvent = {\n component: \"stzh-vbz-linechip\";\n originalEvent: FocusEvent;\n};\n\n/* Clamp */\n\nexport type StzhClampClampEvent = {\n component: \"stzh-clamp\";\n clamped: boolean;\n};\n\nexport type StzhClampExpandEvent = {\n component: \"stzh-clamp\";\n expanded: boolean;\n};\n\n/* Image Comparison */\n\nexport type StzhImagecomparisonChangeEvent = {\n component: \"stzh-imagecomparison\";\n originalEvent: InputEvent;\n value: number;\n};\n\n/* Dialog */\n\nexport type StzhDialogOpenEvent = {\n component: \"stzh-dialog\";\n};\n\nexport type StzhDialogCloseEvent = {\n component: \"stzh-dialog\";\n};\n\n/* Contact */\n\nexport type ContactEmail = {\n label: string;\n text: string;\n href?: string;\n analyticsId?: string;\n};\n\nexport type ContactNumber = {\n type: \"tel\" | \"fax\";\n label: string;\n number: string;\n analyticsId?: string;\n};\n\nexport type StzhContactAvailabilityItem = {\n weekday: string;\n hours: string[];\n};\n\n/* Eventinfo */\n\nexport type StzhEventinfoItemInput = {\n calendarUrl?: string;\n calendarLabel?: string;\n start: string | Date;\n end: string | Date;\n};\n\nexport type StzhEventinfoItem = {\n calendarUrl?: string;\n calendarLabel?: string;\n start: Date;\n end: Date;\n};\n\nexport type StzhEventinfoMonth = {\n name: string;\n events: StzhEventinfoItem[];\n};\n\n/* Overlay */\n\nexport type StzhOverlayOpenEvent = {\n component: \"stzh-overlay\";\n};\n\nexport type StzhOverlayCloseEvent = {\n component: \"stzh-overlay\";\n};\n\n/* Banner */\n\nexport type StzhBannerOpenEvent = {\n component: \"stzh-banner\";\n};\n\nexport type StzhBannerCloseEvent = {\n component: \"stzh-banner\";\n};\n\n/* Message */\n\nexport type StzhMessageOpenEvent = {\n component: \"stzh-message\";\n};\n\nexport type StzhMessageCloseEvent = {\n component: \"stzh-message\";\n};\n\n/* Toastbar */\n\nexport type StzhToastbarInitialToast = {\n label: string;\n type?: StzhToastType;\n link?:\n | HTMLStzhLinkElement\n | {\n href: string;\n label: string;\n };\n cookie?: string;\n cookieExpires?: number;\n};\n\n/* Disturber */\n\nexport type StzhDisturberOpenEvent = {\n component: \"stzh-disturber\";\n};\n\nexport type StzhDisturberCloseEvent = {\n component: \"stzh-disturber\";\n};\n\nexport type StzhDisturberOpenedEvent = {\n component: \"stzh-disturber\";\n};\n\nexport type StzhDisturberClosedEvent = {\n component: \"stzh-disturber\";\n};\n\n/* Toast */\n\nexport type StzhToastType = \"info\" | \"success\" | \"warning\" | \"error\";\n\nexport type StzhToastOpenEvent = {\n component: \"stzh-toast\";\n};\n\nexport type StzhToastCloseEvent = {\n component: \"stzh-toast\";\n};\n\nexport type StzhToastOpenedEvent = {\n component: \"stzh-toast\";\n};\n\nexport type StzhToastClosedEvent = {\n component: \"stzh-toast\";\n};\n\n/* Ghettobox */\n\nexport type StzhGhettoboxOpenEvent = {\n component: \"stzh-ghettobox\";\n};\n\nexport type StzhGhettoboxCloseEvent = {\n component: \"stzh-ghettobox\";\n};\n\n/* Input */\n\nexport type StzhInputChangeEvent = {\n component: \"stzh-input\";\n originalEvent: InputEvent | MouseEvent;\n value: string;\n};\n\nexport type StzhInputChangedEvent = {\n component: \"stzh-input\";\n originalEvent: InputEvent | MouseEvent;\n value: string;\n};\n\nexport type StzhInputFocusEvent = {\n component: \"stzh-input\";\n originalEvent: FocusEvent;\n};\n\nexport type StzhInputBlurEvent = {\n component: \"stzh-input\";\n originalEvent: FocusEvent;\n};\n\n/* Popover */\n\nexport type StzhPopoverOpenEvent = {\n component: \"stzh-popover\";\n};\n\nexport type StzhPopoverOpenedEvent = {\n component: \"stzh-popover\";\n};\n\nexport type StzhPopoverCloseEvent = {\n component: \"stzh-popover\";\n};\n\nexport type StzhPopoverClosedEvent = {\n component: \"stzh-popover\";\n};\n\n/* Timeline */\n\nexport type StzhTimelineFoldableChangeEvent = {\n component: \"stzh-timeline\";\n value: boolean;\n};\n\n/* TimelineItem */\n\nexport type StzhTimelineItemOpenEvent = {\n component: \"stzh-timeline-item\";\n};\n\nexport type StzhTimelineItemOpenedEvent = {\n component: \"stzh-timeline-item\";\n};\n\nexport type StzhTimelineItemCloseEvent = {\n component: \"stzh-timeline-item\";\n};\n\nexport type StzhTimelineItemClosedEvent = {\n component: \"stzh-timeline-item\";\n};\n\nexport type StzhTimelineItemFocusEvent = {\n component: \"stzh-timeline-item\";\n originalEvent: FocusEvent;\n};\n\nexport type StzhTimelineItemBlurEvent = {\n component: \"stzh-timeline-item\";\n originalEvent: FocusEvent;\n};\n\n/* Accordion */\n\nexport type StzhAccordionVariant = \"default\" | \"title\" | \"table\" | \"menu\";\n\nexport type StzhAccordionVariantChangeEvent = {\n component: \"stzh-accordion\";\n value: StzhAccordionVariant;\n};\n\nexport type StzhAccordionItemOpenEvent = {\n component: \"stzh-accordion-item\";\n};\n\nexport type StzhAccordionItemOpenedEvent = {\n component: \"stzh-accordion-item\";\n};\n\nexport type StzhAccordionItemCloseEvent = {\n component: \"stzh-accordion-item\";\n};\n\nexport type StzhAccordionItemClosedEvent = {\n component: \"stzh-accordion-item\";\n};\n\nexport type StzhAccordionItemFocusEvent = {\n component: \"stzh-accordion-item\";\n originalEvent: FocusEvent;\n};\n\nexport type StzhAccordionItemBlurEvent = {\n component: \"stzh-accordion-item\";\n originalEvent: FocusEvent;\n};\n\n/* Pi Menu */\n\nexport type StzhPiMenuOpenEvent = {\n component: \"stzh-pi-menu\";\n};\n\nexport type StzhPiMenuOpenedEvent = {\n component: \"stzh-pi-menu\";\n};\n\nexport type StzhPiMenuCloseEvent = {\n component: \"stzh-pi-menu\";\n};\n\nexport type StzhPiMenuClosedEvent = {\n component: \"stzh-pi-menu\";\n};\n\nexport type StzhPiMenuItemClickEvent = {\n component: \"stzh-pi-menu\";\n originalEvent: MouseEvent;\n};\n\n/* Tooltip */\n\nexport type StzhTooltipOpenEvent = {\n component: \"stzh-tooltip\";\n};\n\nexport type StzhTooltipOpenedEvent = {\n component: \"stzh-tooltip\";\n};\n\nexport type StzhTooltipCloseEvent = {\n component: \"stzh-tooltip\";\n};\n\nexport type StzhTooltipClosedEvent = {\n component: \"stzh-tooltip\";\n};\n\n/* Radio */\n\nexport type StzhRadioChangeEvent = {\n component: \"stzh-radio\";\n originalEvent: InputEvent;\n value: string;\n checked: boolean;\n};\n\nexport type StzhRadioFocusEvent = {\n component: \"stzh-radio\";\n originalEvent: FocusEvent;\n};\n\nexport type StzhRadioBlurEvent = {\n component: \"stzh-radio\";\n originalEvent: FocusEvent;\n};\n\n/* Daterange */\n\nexport type StzhDaterangeRanges = \"today\" | \"tomorrow\" | \"next7days\";\n\n/* Dropdown */\n\nexport type StzhDropdownSize = \"default\" | \"small\" | \"tiny\" | StzhChipSize;\n\nexport type StzhDropdownOption = {\n text: string;\n value: string;\n disabled?: boolean;\n};\n\nexport type StzhDropdownChangeEvent = {\n component: \"stzh-dropdown\";\n value: string | string[];\n};\n\nexport type StzhDropdownItemAddEvent = {\n component: \"stzh-dropdown\";\n value: string;\n};\n\nexport type StzhDropdownItemRemoveEvent = {\n component: \"stzh-dropdown\";\n value: string;\n};\n\nexport type StzhDropdownOptionAddEvent = {\n component: \"stzh-dropdown\";\n value: string;\n};\n\nexport type StzhDropdownOptionRemoveEvent = {\n component: \"stzh-dropdown\";\n value: string;\n};\n\nexport type StzhDropdownOpenEvent = {\n component: \"stzh-dropdown\";\n};\n\nexport type StzhDropdowCloseEvent = {\n component: \"stzh-dropdown\";\n};\n\nexport type StzhDropdownFocusEvent = {\n component: \"stzh-dropdown\";\n originalEvent: {\n target: Element;\n };\n};\n\nexport type StzhDropdownBlurEvent = {\n component: \"stzh-dropdown\";\n};\n\nexport type StzhDropdowInitEvent = {\n component: \"stzh-dropdown\";\n};\n\n/** Progressbar */\n\nexport type StzhProgressbarDataItem = {\n label: string;\n icon?: string;\n disabled?: boolean;\n analyticsId?: string;\n};\n\n/* Progressbar Item */\n\nexport type StzhProgressbarItemClickEvent = {\n component: \"stzh-progressbar-item\";\n originalEvent: MouseEvent;\n index: number;\n};\n\nexport type StzhProgressbarItemDottedClickEvent = {\n component: \"stzh-progressbar-item\";\n originalEvent: MouseEvent;\n index: number;\n};\n\n/* Upload */\n\nexport type StzhUploadFilesItem = {\n name: string;\n size: number;\n [key: string]: any;\n};\n\nexport type StzhUploadFile = File & {\n xhr: XMLHttpRequest;\n status: string;\n upload: any;\n accepted: boolean;\n previewElement: HTMLElement;\n};\n\nexport type StzhUploadFileAddedEvent = {\n component: \"stzh-upload\";\n file: StzhUploadFile;\n};\n\nexport type StzhUploadFilesAddedEvent = {\n component: \"stzh-upload\";\n files: StzhUploadFile[];\n};\n\nexport type StzhUploadFileRemoveEvent = {\n component: \"stzh-upload\";\n file: StzhUploadFile;\n};\n\nexport type StzhUploadFileRemovedEvent = {\n component: \"stzh-upload\";\n file: StzhUploadFile;\n force: boolean;\n};\n\nexport type StzhUploadSendingEvent = {\n component: \"stzh-upload\";\n file: StzhUploadFile;\n xhr: XMLHttpRequest;\n formData: FormData;\n};\n\nexport type StzhUploadSendingMultipleEvent = {\n component: \"stzh-upload\";\n files: StzhUploadFile[];\n xhr: XMLHttpRequest;\n formData: FormData;\n};\n\nexport type StzhUploadProcessingEvent = {\n component: \"stzh-upload\";\n file: StzhUploadFile;\n};\n\nexport type StzhUploadProcessingMultipleEvent = {\n component: \"stzh-upload\";\n files: StzhUploadFile[];\n};\n\nexport type StzhUploadProgressEvent = {\n component: \"stzh-upload\";\n file: StzhUploadFile;\n progress: number;\n bytesSent: number;\n};\n\nexport type StzhUploadProgressTotalEvent = {\n component: \"stzh-upload\";\n totalUploadProgress: number;\n totalBytes: number;\n totalBytesSent: number;\n};\n\nexport type StzhUploadErrorEvent = {\n component: \"stzh-upload\";\n file: StzhUploadFile;\n message: string;\n xhr: XMLHttpRequest;\n};\n\nexport type StzhUploadErrorMultipleEvent = {\n component: \"stzh-upload\";\n files: StzhUploadFile[];\n message: string;\n xhr: XMLHttpRequest;\n};\n\nexport type StzhUploadSuccessEvent = {\n component: \"stzh-upload\";\n file: StzhUploadFile;\n responseText: string;\n event: ProgressEvent;\n};\n\nexport type StzhUploadSuccessMultipleEvent = {\n component: \"stzh-upload\";\n files: StzhUploadFile[];\n responseText: string;\n event: ProgressEvent;\n};\n\nexport type StzhUploadCanceledEvent = {\n component: \"stzh-upload\";\n file: StzhUploadFile;\n};\n\nexport type StzhUploadCanceledMultipleEvent = {\n component: \"stzh-upload\";\n files: StzhUploadFile[];\n};\n\nexport type StzhUploadCompleteEvent = {\n component: \"stzh-upload\";\n file: StzhUploadFile;\n};\n\nexport type StzhUploadCompleteMultipleEvent = {\n component: \"stzh-upload\";\n files: StzhUploadFile[];\n};\n\n// Merged Types\n\nexport type StzhFocusEvent =\n | StzhAccordionItemFocusEvent\n | StzhButtonFocusEvent\n | StzhCheckboxFocusEvent\n | StzhChipFocusEvent\n | StzhDropdownFocusEvent\n | StzhInputFocusEvent\n | StzhLinkFocusEvent\n | StzhMenuItemFocusEvent\n | StzhRadioFocusEvent\n | StzhToggleFocusEvent\n | StzhVbzLinechipFocusEvent\n | StzhSkiplinkFocusEvent;\n\n// ---\n// Prop Types\n// ---\n\nexport type StzhCalendarDateDisabledPredicate = (date: Date) => boolean;\n\nexport namespace Layout {\n export type Ratio = \"16:9\" | \"1:1\" | \"5:4\" | \"4:3\" | \"3:2\" | \"2:1\" | \"21:9\";\n\n export type Justify =\n | \"start\"\n | \"end\"\n | \"center\"\n | \"between\"\n | \"around\"\n | \"evenly\";\n\n export type Items = \"start\" | \"end\" | \"center\" | \"baseline\" | \"stretch\";\n\n export type JustifySelf = \"auto\" | Justify;\n\n export type AlignSelf = \"auto\" | Items;\n}\n\nexport namespace Space {\n export type Sizes =\n | \"xxxsmall\"\n | \"xxsmall\"\n | \"xsmall\"\n | \"small\"\n | \"medium\"\n | \"large\"\n | \"xlarge\"\n | \"xxlarge\"\n | \"xxxlarge\"\n | \"xxxxlarge\"\n | \"big\"\n | \"xbig\"\n | \"huge\"\n | \"xhuge\"\n | \"none\"\n | \"inherit\";\n\n export type Curves =\n | \"tiny\"\n | \"small\"\n | \"regular\"\n | \"medium\"\n | \"large\"\n | \"big\"\n | \"huge\"\n | \"none\";\n}\n\nexport namespace Font {\n export type Fonts = \"light\" | \"regular\" | \"medium\" | \"heavy\" | \"default\";\n\n export type Sizes =\n | \"pico\"\n | \"nano\"\n | \"micro\"\n | \"milli\"\n | \"centi\"\n | \"deci\"\n | \"regular\"\n | \"deca\"\n | \"hecto\"\n | \"kilo\"\n | \"mega\"\n | \"giga\"\n | \"hero\";\n\n export type Curves =\n | \"p1\"\n | \"p2\"\n | \"lead\"\n | \"caption\"\n | \"h4\"\n | \"h3\"\n | \"h2\"\n | \"h1\"\n | \"hero\"\n | \"h1home\"\n | \"default\"\n | \"none\";\n}\n\nexport namespace VBZ {\n export const BASE_TYPE_GLOBAL = \"GLOBAL\";\n\n export const CHANNEL_TICKER = \"ticker\";\n export const CHANNEL_INFO_URL_FILTER = \"stadt-zuerich.ch/vbz\";\n\n export const DISTURBANCE_GLOBAL = \"__global__\";\n export const DISTURBANCE_INFORMATION = \"0\";\n export const DISTURBANCE_CONSTRUCTION = \"1\";\n export const DISTURBANCE_NORMAL = \"2\";\n export const DISTURBANCE_EVENT = \"4\";\n export const DISTURBANCE_BUS = \"5\";\n\n export type Lines =\n | \"2\"\n | \"3\"\n | \"4\"\n | \"5\"\n | \"6\"\n | \"7\"\n | \"8\"\n | \"9\"\n | \"10\"\n | \"11\"\n | \"12\"\n | \"13\"\n | \"14\"\n | \"15\"\n | \"16\"\n | \"17\"\n | \"19\"\n | \"20\"\n | \"21\"\n | \"23\"\n | \"24\"\n | \"25\"\n | \"29\"\n | \"31\"\n | \"32\"\n | \"33\"\n | \"34\"\n | \"35\"\n | \"36\"\n | \"37\"\n | \"38\"\n | \"39\"\n | \"40\"\n | \"45\"\n | \"46\"\n | \"54\"\n | \"61\"\n | \"62\"\n | \"63\"\n | \"64\"\n | \"66\"\n | \"67\"\n | \"69\"\n | \"70\"\n | \"72\"\n | \"73\"\n | \"75\"\n | \"76\"\n | \"77\"\n | \"78\"\n | \"79\"\n | \"80\"\n | \"83\"\n | \"89\"\n | \"91\"\n | \"94\"\n | \"95\"\n | \"99\"\n | \"151\"\n | \"152\"\n | \"153\"\n | \"156\"\n | \"161\"\n | \"162\"\n | \"163\"\n | \"165\"\n | \"184\"\n | \"185\"\n | \"200\"\n | \"201\"\n | \"215\"\n | \"220\"\n | \"235\"\n | \"236\"\n | \"245\"\n | \"301\"\n | \"302\"\n | \"303\"\n | \"304\"\n | \"305\"\n | \"306\"\n | \"307\"\n | \"308\"\n | \"309\"\n | \"311\"\n | \"314\"\n | \"315\"\n | \"317\"\n | \"321\"\n | \"323\"\n | \"325\"\n | \"350\"\n | \"444\"\n | \"445\"\n | \"701\"\n | \"702\"\n | \"703\"\n | \"704\"\n | \"705\"\n | \"720\"\n | \"721\"\n | \"725\"\n | \"726\"\n | \"727\"\n | \"742\"\n | \"743\"\n | \"744\"\n | \"745\"\n | \"747\"\n | \"748\"\n | \"751\"\n | \"752\"\n | \"753\"\n | \"754\"\n | \"759\"\n | \"760\"\n | \"765\"\n | \"768\"\n | \"781\"\n | \"786\"\n | \"787\"\n | \"910\"\n | \"912\"\n | \"916\"\n | \"917\"\n | \"918\"\n | \"919\"\n | \"E\"\n | \"N\"\n | \"N1\"\n | \"N2\"\n | \"N4\"\n | \"N5\"\n | \"N6\"\n | \"N7\"\n | \"N8\"\n | \"N9\"\n | \"N10\"\n | \"N11\"\n | \"N12\"\n | \"N13\"\n | \"N14\"\n | \"N15\"\n | \"N16\"\n | \"N17\"\n | \"N18\"\n | \"N19\"\n | \"N30\"\n | \"N31\"\n | \"N32\"\n | \"N33\"\n | \"N34\"\n | \"N45\"\n | \"N72\"\n | \"N78\"\n | \"SN1\"\n | \"SN4\"\n | \"SN5\"\n | \"SN6\"\n | \"SN7\"\n | \"SN8\"\n | \"SN9\"\n | \"S2\"\n | \"S3\"\n | \"S4\"\n | \"S5\"\n | \"S6\"\n | \"S7\"\n | \"S8\"\n | \"S9\"\n | \"S10\"\n | \"S11\"\n | \"S14\"\n | \"S15\"\n | \"S16\"\n | \"S18\"\n | \"S19\"\n | \"S20\"\n | \"S21\"\n | \"S23\"\n | \"S24\"\n | \"S25\";\n}\n\n// ---\n// Stencil component types\n// ---\n\nexport * from \"./components\";\n"],"version":3}
|
|
1
|
+
{"file":"index2.js","mappings":"AAAA;AACA;AACA;IA8wDiB,IAoMhB;AApMD,WAAiB,GAAG;EACL,oBAAgB,GAAG,QAAQ,CAAC;EAE5B,kBAAc,GAAG,QAAQ,CAAC;EAC1B,2BAAuB,GAAG,sBAAsB,CAAC;EAEjD,sBAAkB,GAAG,YAAY,CAAC;EAClC,2BAAuB,GAAG,GAAG,CAAC;EAC9B,4BAAwB,GAAG,GAAG,CAAC;EAC/B,sBAAkB,GAAG,GAAG,CAAC;EACzB,qBAAiB,GAAG,GAAG,CAAC;EACxB,mBAAe,GAAG,GAAG,CAAC;AAyLrC,CAAC,EApMgB,GAAG,KAAH,GAAG;;;;","names":[],"sources":["src/index.ts"],"sourcesContent":["// ---\n// Global window types\n// ---\n\nimport { StzhLocaleAdapter } from \"./utils/date-adapter\";\n\nimport {\n StzhLocaleComponent,\n StzhLocaleFormats,\n StzhLocaleGlobals,\n} from \"./utils/translation-utils\";\n\nexport type WindowStzhComponents = {\n version: string;\n supportedLocales: string[];\n defaultLocale: string;\n translations: null | StzhLocaleComponent;\n translationsLoading: Promise<StzhLocaleComponent>;\n pathMedia: string;\n pathTranslations: string;\n pathVendors: string;\n cacheTranslations: boolean;\n formats: StzhLocaleFormats;\n fixAutofocus: boolean;\n fixHashfocus: boolean;\n utils: {\n getLocale: (element: HTMLElement) => string;\n fetchTranslations: (\n host: HTMLElement,\n component: string\n ) => Promise<StzhLocaleComponent & any>;\n\n format: (date: Date, type: string) => string;\n parse: (string: string, type: string) => Date;\n formatSpan: (\n date: Date | string,\n date2: Date | string,\n type: string\n ) => string;\n parseSpan: (string: string, type: string) => [Date, Date, string];\n createFormatParseAdapter: (\n formats: StzhLocaleFormats,\n globals: StzhLocaleGlobals\n ) => StzhLocaleAdapter;\n };\n};\n\ndeclare global {\n interface Window {\n stzhComponents: WindowStzhComponents;\n // global third party library\n pannellum: any;\n Dropzone: any;\n proj4: any;\n // readspeaker lib APIs\n readpage: any;\n ReadSpeaker: any;\n rsConf: any;\n rspkr: any;\n }\n}\n\n// ---\n// Event Types\n// ---\n\n/* Sortable */\n\nexport type StzhSortableUpdateEvent = {\n component: \"stzh-sortable\";\n data: string[];\n item: HTMLElement;\n newIndex: number;\n oldIndex: number;\n};\n\nexport type StzhSortableDisableEvent = {\n component: \"stzh-sortable\";\n disabled: boolean;\n};\n\n/* Panorama */\n\nexport type PanoramaScene = {\n sceneId: string;\n imageSrc: string;\n imageTitle: string;\n\n imageAuthor?: string;\n imageType?: \"equirectangular\" | \"cubemap\" | \"multires\";\n caption?: string;\n copyright?: string;\n\n pitch?: number;\n yaw?: number;\n hfov?: number;\n\n hotspots: PanoramaSceneHotSpot[];\n};\n\nexport type PanoramaScenesLibrary = {\n [sceneKey: string]: {\n title?: string;\n author?: string;\n panorama: string;\n type?: \"equirectangular\" | \"cubemap\" | \"multires\";\n\n pitch?: number;\n yaw?: number;\n hfov?: number;\n\n hotSpots: PanoramaSceneHotSpot[];\n };\n};\n\nexport type PanoramaSceneHotSpot = {\n pitch: number;\n yaw: number;\n type: string;\n text: string;\n url?: string;\n id?: string;\n sceneId?: string;\n targetPitch?: number;\n targetYaw?: number;\n\n cssClass?: string;\n createTooltipFunc?: Function;\n createTooltipArgs?: any;\n};\n\nexport type StzhPanoramaLoadEvent = {\n component: \"stzh-panorama\";\n};\n\nexport type StzhPanoramaChangeEvent = {\n component: \"stzh-panorama\";\n value: { pitch: number; yaw: number; hfov: number };\n};\n\nexport type StzhPanoramaFullscreenChangeEvent = {\n component: \"stzh-panorama\";\n value: boolean;\n};\n\nexport type StzhPanoramaSceneChangeEvent = {\n component: \"stzh-panorama\";\n value: string;\n};\n\nexport type StzhPanoramaZoomChangeEvent = {\n component: \"stzh-panorama\";\n value: number;\n};\n\n/* Iframe */\n\nexport type StzhIframeView = \"iframe\" | \"cookiewall\" | \"preview\";\n\nexport type StzhIframeViewChangeEvent = {\n component: \"stzh-iframe\";\n value: StzhIframeView;\n};\n\nexport type StzhIframePreviewSkipEvent = {\n component: \"stzh-iframe\";\n};\n\n/* Olmap */\n\nexport type OlmapLayer = {\n title?: string;\n thumbnailUrl: string;\n options: {\n url: string;\n layer: string;\n matrixSet: string;\n origin: number[];\n extent: number[];\n };\n};\n\nexport type StzhOlmapInitializedEvent = {\n component: \"stzh-olmap\";\n};\n\nexport type StzhOlmapPostRenderEvent = {\n component: \"stzh-olmap\";\n};\n\nexport type StzhOlmapMoveStartEvent = {\n component: \"stzh-olmap\";\n};\n\nexport type StzhOlmapMoveEndEvent = {\n component: \"stzh-olmap\";\n};\n\n/* Sticky */\n\nexport type StzhStickyStuckTopEvent = {\n component: \"stzh-sticky\";\n sticky: boolean;\n};\n\nexport type StzhStickyStuckBottomEvent = {\n component: \"stzh-sticky\";\n sticky: boolean;\n};\n\n/* Table */\n\nexport type StzhDatatableCellData = {\n value: string | number;\n isHeader?: boolean;\n align?: \"left\" | \"right\" | \"center\";\n valign?: \"auto\" | \"middle\" | \"bottom\" | \"top\";\n colspan?: number;\n rowspan?: number;\n id?: string;\n};\n\nexport type StzhDatatableRowData = {\n [key: string]: StzhDatatableCellData;\n};\n\nexport type StzhDatatableInputRowData = {\n [key: string]: StzhDatatableCellData | string | number;\n};\n\nexport type StzhDatatableColumnData = {\n key: string;\n text?: string;\n align?: \"left\" | \"right\" | \"center\";\n valign?: \"auto\" | \"middle\" | \"bottom\" | \"top\";\n sort?:\n | boolean\n | {\n type?: \"numerical\" | \"text\";\n field?: string;\n };\n fixed?: \"left\" | \"right\";\n isHeader?: boolean;\n colspan?: number;\n rowspan?: number;\n hideColumnHeading?: boolean;\n analyticsId?: string;\n style?: {\n [key: string]: string;\n };\n};\n\nexport type StzhDatatableRowClickEvent = {\n component: \"stzh-datatable\";\n row: any;\n originalEvent: MouseEvent;\n};\n\nexport type StzhDatatableCellClickEvent = {\n component: \"stzh-datatable\";\n row: any;\n column: any;\n cellIndex: number;\n rowIndex: number;\n originalEvent: MouseEvent;\n};\n\nexport type StzhDatatableHeadingCellClickEvent = {\n component: \"stzh-datatable\";\n column: any;\n index: number;\n originalEvent: MouseEvent;\n};\n\nexport type StzhDatatableSortClickEvent = {\n component: \"stzh-datatable\";\n column: any;\n originalEvent: MouseEvent;\n};\n\nexport type StzhDatatableSortByChangeEvent = {\n component: \"stzh-datatable\";\n value: string;\n oldValue: string;\n};\n\nexport type StzhDatatableSortDirectionChangeEvent = {\n component: \"stzh-datatable\";\n value: \"asc\" | \"desc\";\n oldValue: \"asc\" | \"desc\";\n};\n\n/* Archivelist */\n\nexport type StzhArchivelistItem = {\n label: string;\n labelClamp?: any; // attributes of HTMLStzhClampElement\n href: string;\n dateline?: string;\n description?: string;\n descriptionClamp?: any; // attributes of HTMLStzhClampElement\n};\n\nexport type StzhArchivelistItemClickEvent = {\n component: \"stzh-archivelist\";\n item: StzhArchivelistItem;\n originalEvent: MouseEvent;\n};\n\n/* Anchornav */\n\nexport type StzhAnchornavItem = {\n label: string;\n href?: string;\n icon?: string;\n};\n\nexport type StzhAnchornavItemClickEvent = {\n component: \"stzh-anchornav\";\n item: StzhAnchornavItem;\n originalEvent: MouseEvent;\n};\n\n/* TopnewsMostsearchedSection */\n\nexport type StzhTopnewsItem = {\n subtitle?: string;\n label: string;\n href?: string;\n isHighlighted?: boolean;\n};\n\nexport type StzhMostsearchedItem = {\n label: string;\n href: string;\n};\n\n/* VBZ Quicklinks */\n\nexport type StzhVbzQuicklink = {\n label: string;\n href: string;\n};\n\n/* Status */\n\nexport type StzhStatusType =\n | \"default\"\n | \"success\"\n | \"warning\"\n | \"error\"\n | \"info\";\n\n/* Badge */\n\nexport type StzhBadgeType =\n | \"default\"\n | \"success\"\n | \"warning\"\n | \"error\"\n | \"info\";\n\n/* Actionset */\n\nexport type StzhActionsetItem = {\n id: string;\n label?: string;\n icon?: string;\n iconPosition?: \"left\" | \"right\";\n iconOnly?: boolean;\n badge?: string;\n badgeEmpty?: boolean;\n badgeType?: StzhBadgeType;\n variant?: StzhButtonVariant;\n size?: StzhButtonSize;\n badgePosition?: \"icon\" | \"button\";\n tooltipContent?: string;\n};\n\nexport type StzhActionsetItemClickEvent = {\n component: \"stzh-actionset\";\n action: StzhActionsetItem;\n originalEvent: MouseEvent;\n};\n\n/* Audio */\n\nexport type StzhAudioPlayEvent = {\n component: \"stzh-audio\";\n};\n\nexport type StzhAudioPlayingEvent = {\n component: \"stzh-audio\";\n};\n\nexport type StzhAudioPauseEvent = {\n component: \"stzh-audio\";\n};\n\nexport type StzhAudioReplayEvent = {\n component: \"stzh-audio\";\n};\n\nexport type StzhAudioEndEvent = {\n component: \"stzh-audio\";\n};\n\nexport type StzhAudioEndedEvent = {\n component: \"stzh-audio\";\n};\n\nexport type StzhAudioErrorEvent = {\n component: \"stzh-audio\";\n originalEvent: ErrorEvent;\n};\n\n/* Share */\n\nexport type ShareService =\n | \"facebook\"\n | \"twitter\"\n | \"linkedin\"\n | \"xing\"\n | \"mail\";\n\n/* Footer Editor */\n\nexport type StzhEditorLink = {\n label: string;\n href?: string;\n icon?: string;\n rel?: string;\n target?: string;\n};\n\n/* Header */\n\nexport type StzhHeaderMenuItem = {\n label: string;\n href?: string;\n items?: StzhHeaderMenuItem[];\n id?: string;\n};\n\nexport type StzhHeaderMetanavItem = {\n label: string;\n labelShort?: string;\n labelHidden?: boolean;\n stay?: boolean;\n stayAndShowInMobileMenu?: boolean;\n variant?: \"default\" | \"secondary\"; // used for menu-item and popover\n size?: \"default\" | \"large\"; // used for menu-item and popover\n important?: boolean;\n importantSubmenu?: boolean;\n badgeEmpty?: boolean;\n badgeType?: StzhBadgeType;\n badge?: string;\n icon?: string;\n iconOpen?: string;\n href?: string;\n target?: string;\n id?: string;\n items?: StzhHeaderMetanavItemChild[];\n itemButton?: StzhHeaderMetanavItemButton;\n cssOrder?: boolean;\n};\n\nexport type StzhHeaderMetanavItemChild = {\n label: string;\n href?: string;\n target?: string;\n id?: string;\n icon?: string;\n counter?: number;\n badge?: string;\n badgeType?: StzhBadgeType;\n};\n\nexport type StzhHeaderMetanavItemButton = {\n label: string;\n href?: string;\n target?: string;\n size?: StzhButtonSize;\n id?: string;\n};\n\nexport type StzhHeaderMetanavItemClickEvent = {\n component: \"stzh-header\";\n item: StzhHeaderMetanavItem;\n originalEvent: MouseEvent;\n};\n\nexport type StzhHeaderMetanavItemChildClickEvent = {\n component: \"stzh-header\";\n itemChild: StzhHeaderMetanavItemChild;\n originalEvent: MouseEvent;\n};\n\nexport type StzhHeaderMetanavItemButtonClickEvent = {\n component: \"stzh-header\";\n itemButton: StzhHeaderMetanavItemButton;\n originalEvent: MouseEvent;\n};\n\nexport type StzhHeaderMenuItemClickEvent = {\n component: \"stzh-header\";\n item: StzhHeaderMenuItem;\n originalEvent: MouseEvent;\n};\n\nexport type StzhHeaderLanguageChangeEvent = {\n component: \"stzh-header\";\n value: string;\n};\n\nexport type StzhHeaderSearchChangeEvent = {\n component: \"stzh-header\";\n originalEvent: InputEvent | MouseEvent;\n value: string;\n};\n\nexport type StzhHeaderSearchChangedEvent = {\n component: \"stzh-header\";\n originalEvent: InputEvent | MouseEvent;\n value: string;\n};\n\n/* App Nav */\nexport type StzhAppNavItem = {\n text: string;\n href: string;\n badge: string;\n badgeType: StzhBadgeType;\n icon: string;\n active: boolean;\n a11yCurrent: string;\n};\n\nexport type StzhAppNavItemClickEvent = {\n component: \"stzh-app-nav\";\n item: StzhAppNavItem;\n originalEvent: MouseEvent;\n};\n\n/* PI Pagetitle */\n\nexport type StzhPiPagetitleMenuItem = {\n label: string;\n href?: string;\n active?: boolean;\n items?: StzhPiPagetitleMenuItem[];\n id?: string;\n};\n\n/* Search */\n\nexport type StzhSearchOverlayCloseClickEvent = {\n component: \"stzh-search\";\n originalEvent: MouseEvent;\n};\n\n/* Breadcrumb */\n\nexport type StzhBreadcrumbItem = {\n label: string;\n href: string;\n};\n\nexport type StzhBreadcrumbItemClickEvent = {\n component: \"stzh-breadcrumb\";\n item: StzhBreadcrumbItem;\n originalEvent: MouseEvent;\n};\n\n/* Card */\n\nexport type StzhCardHeaderAction = {\n id: string;\n label?: string;\n icon?: string;\n badge?: string;\n badgeEmpty?: boolean;\n badgeType?: StzhBadgeType;\n};\n\nexport type StzhCardSubtitleClickEvent = {\n component: \"stzh-card\";\n originalEvent: MouseEvent;\n};\n\nexport type StzhCardCollapseEvent = {\n component: \"stzh-card\";\n collapsed: boolean;\n};\n\nexport type StzhCardClickEvent = {\n component: \"stzh-card\";\n originalEvent: MouseEvent;\n href: string;\n};\n\nexport type StzhCardStarClickEvent = {\n component: \"stzh-card\";\n starred: boolean;\n originalEvent: MouseEvent;\n};\n\nexport type StzhCardHeaderActionClickEvent = {\n component: \"stzh-card\";\n action: StzhCardHeaderAction;\n originalEvent: MouseEvent;\n};\n\n/* Card Navigation */\n\nexport type StzhCardNavigationClickEvent = {\n component: \"stzh-card-navigation\";\n originalEvent: MouseEvent;\n href: string;\n};\n\nexport type StzhPiCardNavigationClickEvent = {\n component: \"stzh-pi-content-navigation\";\n originalEvent: MouseEvent;\n href: string;\n};\n\n/* Pi Teaser */\n\nexport type StzhPiTeaserClickEvent = {\n component: \"stzh-pi-teaser\";\n originalEvent: MouseEvent;\n href: string;\n};\n\n/* Card Superteaser */\n\nexport type StzhCardSuperteaserClickEvent = {\n component: \"stzh-card-superteaser\";\n originalEvent: MouseEvent;\n href: string;\n};\n\n/* Card Searchresult */\n\nexport type StzhCardSearchresultClickEvent = {\n component: \"stzh-card-searchresult\";\n originalEvent: MouseEvent;\n href: string;\n};\n\n/* Search */\n\nexport type StzhSearchResult = {\n html?: string;\n href?: string;\n heading?: string;\n dateline?: string;\n description?: string;\n image?: string;\n imagePosition?: \"default\" | \"right\";\n tag?: string;\n topic?: string;\n service?: string;\n serviceColor?: string;\n serviceBackgroundColor?: string;\n meta?: string[];\n breadcrumbItems?: StzhBreadcrumbItem[];\n eventDateStart?: string;\n eventDateEnd?: string;\n eventLocation?: string;\n download?: string;\n downloadHeading?: string;\n downloadMeta?: string[];\n};\n\nexport type StzhSearchChipsResult = {\n label: string;\n value: string;\n amount?: number;\n options?: { text: string; value: string }[];\n};\n\n/* Microsite Teaserlist */\n\nexport type StzhMicrositeTeaserlistTag = {\n id: string;\n name: string;\n};\n\nexport type StzhMicrositeTeaserlistItem = {\n title?: string;\n description?: string;\n image?: string;\n link: string;\n tags: string[];\n teaserid: string;\n};\n\n/* Cardlist */\n\nexport type StzhCardlistCollapseAllEvent = {\n component: \"stzh-cardlist\";\n allCollapsed: boolean;\n};\n\n/* Calendar */\n\nexport type StzhCalendarChangeEvent = {\n component: \"stzh-calendar\";\n valueAsDate: Date;\n value: string;\n};\n\n/* Datepicker */\n\nexport type StzhDatepickerChangeEvent = {\n component: \"stzh-datepicker\";\n value: string;\n valueAsDate: Date;\n};\n\n/* Pagination */\n\nexport type StzhPaginationChangeEvent = {\n component: \"stzh-pagination\";\n page: number;\n};\n\n/* Timepicker */\n\nexport type StzhTimepickerChangeEvent = {\n component: \"stzh-timepicker\";\n value: string;\n};\n\n/* Monthyearpicker */\n\nexport type StzhMonthyearpickerChangeEvent = {\n component: \"stzh-monthyearpicker\";\n value: string;\n valueMonth: string;\n valueYear: string;\n};\n\n/* Amount */\n\nexport type StzhAmountChangeEvent = {\n component: \"stzh-amount\";\n value: string;\n};\n\n/* Appointments */\n\nexport type StzhAppointmentsChangeEvent = {\n component: \"stzh-appointments\";\n value: string;\n};\n\n/* Skiplink */\n\nexport type StzhSkiplinkFocusEvent = {\n component: \"stzh-skiplink\";\n originalEvent: FocusEvent;\n};\n\nexport type StzhSkiplinkBlurEvent = {\n component: \"stzh-skiplink\";\n originalEvent: FocusEvent;\n};\n\n/* Checkbox */\n\nexport type StzhCheckboxChangeEvent = {\n component: \"stzh-checkbox\";\n originalEvent: InputEvent | Event;\n value: string;\n checked: boolean;\n};\n\nexport type StzhCheckboxFocusEvent = {\n component: \"stzh-checkbox\";\n originalEvent: FocusEvent;\n};\n\nexport type StzhCheckboxBlurEvent = {\n component: \"stzh-checkbox\";\n originalEvent: FocusEvent;\n};\n\nexport type StzhCheckboxgroupChangeEvent = {\n component: \"stzh-checkboxgroup\";\n value: string[];\n};\n\n/* Toggle */\n\nexport type StzhToggleChangeEvent = {\n component: \"stzh-toggle\";\n originalEvent: InputEvent;\n value: string;\n checked: boolean;\n};\n\nexport type StzhToggleFocusEvent = {\n component: \"stzh-toggle\";\n originalEvent: FocusEvent;\n};\n\nexport type StzhToggleBlurEvent = {\n component: \"stzh-toggle\";\n originalEvent: FocusEvent;\n};\n\n/* Button */\n\nexport type StzhButtonVariant =\n | \"default\"\n | \"secondary\"\n | \"tertiary\"\n | \"tertiary-plain\";\nexport type StzhButtonSize = \"default\" | \"small\" | \"tiny\";\n\nexport type StzhButtonFocusEvent = {\n component: \"stzh-button\";\n originalEvent: FocusEvent;\n};\n\nexport type StzhButtonBlurEvent = {\n component: \"stzh-button\";\n originalEvent: FocusEvent;\n};\n\nexport type StzhButtonClickEvent = {\n component: \"stzh-button\";\n originalEvent: MouseEvent;\n href: string;\n};\n\nexport type StzhButtonChangeEvent = {\n component: \"stzh-button\";\n originalEvent: InputEvent;\n value: string;\n checked: boolean;\n};\n\n/* Link */\n\nexport type StzhLinkSize = \"default\" | \"small\" | \"inherit\";\n\nexport type StzhLinkFocusEvent = {\n component: \"stzh-link\";\n originalEvent: FocusEvent;\n};\n\nexport type StzhLinkBlurEvent = {\n component: \"stzh-link\";\n originalEvent: FocusEvent;\n};\n\nexport type StzhLinkClickEvent = {\n component: \"stzh-link\";\n originalEvent: MouseEvent;\n href: string;\n};\n\n/* Menu (Item) */\n\nexport type StzhMenuVariant = \"default\" | \"secondary\";\nexport type StzhMenuSize = \"default\" | \"large\";\n\nexport type StzhMenuItemFocusEvent = {\n component: \"stzh-menu-item\";\n originalEvent: FocusEvent;\n};\n\nexport type StzhMenuItemBlurEvent = {\n component: \"stzh-menu-item\";\n originalEvent: FocusEvent;\n};\n\nexport type StzhMenuItemClickEvent = {\n component: \"stzh-menu-item\";\n originalEvent: MouseEvent;\n href: string;\n};\n\n/* Carousel */\n\nexport type StzhCarouselSlideStartEvent = {\n component: \"stzh-carousel\";\n index: number;\n};\n\nexport type StzhCarouselSlidePassedEvent = {\n component: \"stzh-carousel\";\n index: number;\n};\n\nexport type StzhCarouselSlideEndEvent = {\n component: \"stzh-carousel\";\n index: number;\n};\n\n/* Chipselect */\n\nexport type StzhChipselectItem = {\n label: string;\n value: string;\n disabled?: boolean;\n variant?: StzhChipVariant;\n type?: StzhChipType;\n inverted?: boolean;\n counter?: string;\n icon?: string;\n size?: StzhChipSize;\n};\n\nexport type StzhChipselectChangeEvent = {\n component: \"stzh-chipselect\";\n value: string[] | string;\n};\n\n/* Gallery */\n\nexport type StzhGalleryItem = {\n width: number;\n height: number;\n src: string;\n srcLightbox?: string;\n srcsetLightbox?: string;\n alt?: string;\n copyright?: string;\n heading?: string;\n headingLightbox?: string;\n caption?: string;\n captionLightbox?: string;\n lightboxHtml?: string;\n hideCounter?: boolean;\n};\n\n/* Datalist */\n\nexport type StzhDatalistItemEntry = {\n value: string;\n leadingIcon?: string;\n label?: string;\n meta?: string;\n icon?: string;\n iconLabel?: string;\n iconTooltip?: string;\n statusLabel?: string;\n statusType?: StzhStatusType;\n href?: string;\n rel?: string;\n target?: string;\n items?: StzhDatalistItemEntry[];\n};\n\nexport type StzhDatalistVariant = \"default\" | \"table\";\nexport type StzhDatalistDirection = \"vertical\" | \"horizontal\";\n\nexport type StzhDatalistVariantChangeEvent = {\n component: \"stzh-datalist\";\n value: StzhDatalistVariant;\n};\n\nexport type StzhDatalistDirectionChangeEvent = {\n component: \"stzh-datalist\";\n value: \"vertical\" | \"horizontal\";\n};\n\n/* Datalist Item */\n\nexport type StzhDatalistItemActionClickEvent = {\n component: \"stzh-datalist-item\";\n originalEvent: MouseEvent;\n};\n\nexport type StzhDatalistItemClickEvent = {\n component: \"stzh-datalist-item\";\n originalEvent: MouseEvent;\n href: string;\n};\n\n/* Datamessagelist */\n\nexport type StzhDatamessagelistItemEntryMeta = {\n label: string;\n value: string;\n};\n\nexport type StzhDatamessagelistItemEntryAction = {\n id: string | number;\n icon: string;\n label: string;\n badge?: string;\n};\n\nexport type StzhDatamessagelistItemEntryTag = {\n icon: string;\n label: string;\n type?: StzhChipType;\n inverted?: boolean;\n};\n\nexport type StzhDatamessagelistItemEntryLoadingStatus = {\n percent: number;\n label: string;\n type: \"default\" | \"success\" | \"warning\" | \"error\";\n};\n\nexport type StzhDatamessagelistItemClickEvent = {\n component: \"stzh-datamessagelist-item\";\n originalEvent: MouseEvent;\n href: string;\n};\n\nexport type StzhDatamessagelistItemActionClickEvent = {\n component: \"stzh-datamessagelist-item\";\n action: StzhDatamessagelistItemEntryAction;\n originalEvent: MouseEvent;\n};\n\n/* Cta */\n\nexport type StzhCtaFocusEvent = {\n component: \"stzh-cta\";\n originalEvent: FocusEvent;\n};\n\nexport type StzhCtaBlurEvent = {\n component: \"stzh-cta\";\n originalEvent: FocusEvent;\n};\n\nexport type StzhCtaClickEvent = {\n component: \"stzh-cta\";\n originalEvent: MouseEvent;\n href: string;\n};\n\n/* Tag */\n\nexport type StzhTagSize = \"default\" | \"large\";\nexport type StzhTagType = \"default\" | \"secondary\";\n\nexport type StzhTagClickEvent = {\n component: \"stzh-tag\";\n originalEvent: MouseEvent;\n href: string;\n};\n\nexport type StzhTagFocusEvent = {\n component: \"stzh-tag\";\n originalEvent: FocusEvent;\n};\n\nexport type StzhTagBlurEvent = {\n component: \"stzh-tag\";\n originalEvent: FocusEvent;\n};\n\n/* Chip */\n\nexport type StzhChipVariant = \"tag\" | \"filter\" | \"input\";\nexport type StzhChipSize = \"default\" | \"small\" | \"large\";\nexport type StzhChipType = \"default\" | \"success\" | \"warning\" | \"error\" | \"info\";\n\nexport type StzhChipClickEvent = {\n component: \"stzh-chip\";\n originalEvent: MouseEvent;\n href: string;\n};\n\nexport type StzhChipRemoveEvent = {\n component: \"stzh-chip\";\n originalEvent: MouseEvent;\n};\n\nexport type StzhChipFocusEvent = {\n component: \"stzh-chip\";\n originalEvent: FocusEvent;\n};\n\nexport type StzhChipBlurEvent = {\n component: \"stzh-chip\";\n originalEvent: FocusEvent;\n};\n\n/* VBZ Major Ticker */\n\nexport type StzhVbzMajortickerDisturbance = {\n id: string;\n head: string;\n text: string;\n startDate: Date;\n endDate: Date;\n altStart: string;\n altEnd: string;\n infoUrl?: VbzTickerInfoUrl;\n};\n\nexport type StzhVbzMajortickerDisturbanceFetchedEvent = {\n component: \"stzh-vbz-majorticker\";\n disturbance: StzhVbzMajortickerDisturbance | null;\n};\n\n/* VBZ Ticker */\n\nexport type VbzTickerInfoUrl = {\n name: string;\n url: string;\n};\n\nexport type VbzTickerDisturbance = {\n id: string;\n head: string;\n startDate: Date;\n endDate: Date;\n altStart: string;\n altEnd: string;\n baseType?: string;\n infoUrl?: VbzTickerInfoUrl;\n category:\n | typeof VBZ.DISTURBANCE_INFORMATION\n | typeof VBZ.DISTURBANCE_CONSTRUCTION\n | typeof VBZ.DISTURBANCE_NORMAL\n | typeof VBZ.DISTURBANCE_EVENT\n | typeof VBZ.DISTURBANCE_BUS;\n};\n\nexport type VbzTickerLine = {\n line: VBZ.Lines;\n name: string;\n disturbances: VbzTickerDisturbance[];\n // whether normal or big disturbance for this line exist\n alert: boolean;\n // 2 = Fernverkehr / 16 = Schiff / 32 = S-Bahn/Reg / 64 = Bus / 128 = Bergbahn / 256 = Nachtnetz / 512 = Tram\n category: \"2\" | \"16\" | \"32\" | \"64\" | \"128\" | \"256\" | \"512\";\n};\n\n/* VBZ Line Chip */\n\nexport type StzhVbzLinechipLine = {\n color: string;\n background: string;\n comment?: string;\n};\n\nexport type StzhVbzLinechipFocusEvent = {\n component: \"stzh-vbz-linechip\";\n originalEvent: FocusEvent;\n};\n\nexport type StzhVbzLinechipBlurEvent = {\n component: \"stzh-vbz-linechip\";\n originalEvent: FocusEvent;\n};\n\n/* Clamp */\n\nexport type StzhClampClampEvent = {\n component: \"stzh-clamp\";\n clamped: boolean;\n};\n\nexport type StzhClampExpandEvent = {\n component: \"stzh-clamp\";\n expanded: boolean;\n};\n\n/* Image Comparison */\n\nexport type StzhImagecomparisonChangeEvent = {\n component: \"stzh-imagecomparison\";\n originalEvent: InputEvent;\n value: number;\n};\n\n/* Dialog */\n\nexport type StzhDialogOpenEvent = {\n component: \"stzh-dialog\";\n};\n\nexport type StzhDialogCloseEvent = {\n component: \"stzh-dialog\";\n};\n\n/* Contact */\n\nexport type ContactEmail = {\n label: string;\n text: string;\n href?: string;\n analyticsId?: string;\n};\n\nexport type ContactNumber = {\n type: \"tel\" | \"fax\";\n label: string;\n number: string;\n analyticsId?: string;\n};\n\nexport type StzhContactAvailabilityItem = {\n weekday: string;\n hours: string[];\n};\n\n/* Eventinfo */\n\nexport type StzhEventinfoItemInput = {\n calendarUrl?: string;\n calendarLabel?: string;\n start: string | Date;\n end: string | Date;\n};\n\nexport type StzhEventinfoItem = {\n calendarUrl?: string;\n calendarLabel?: string;\n start: Date;\n end: Date;\n};\n\nexport type StzhEventinfoMonth = {\n name: string;\n events: StzhEventinfoItem[];\n};\n\n/* Overlay */\n\nexport type StzhOverlayOpenEvent = {\n component: \"stzh-overlay\";\n};\n\nexport type StzhOverlayCloseEvent = {\n component: \"stzh-overlay\";\n};\n\n/* Banner */\n\nexport type StzhBannerOpenEvent = {\n component: \"stzh-banner\";\n};\n\nexport type StzhBannerCloseEvent = {\n component: \"stzh-banner\";\n};\n\n/* Message */\n\nexport type StzhMessageOpenEvent = {\n component: \"stzh-message\";\n};\n\nexport type StzhMessageCloseEvent = {\n component: \"stzh-message\";\n};\n\n/* Toastbar */\n\nexport type StzhToastbarInitialToast = {\n label: string;\n type?: StzhToastType;\n link?:\n | HTMLStzhLinkElement\n | {\n href: string;\n label: string;\n };\n cookie?: string;\n cookieExpires?: number;\n};\n\n/* Disturber */\n\nexport type StzhDisturberOpenEvent = {\n component: \"stzh-disturber\";\n};\n\nexport type StzhDisturberCloseEvent = {\n component: \"stzh-disturber\";\n};\n\nexport type StzhDisturberOpenedEvent = {\n component: \"stzh-disturber\";\n};\n\nexport type StzhDisturberClosedEvent = {\n component: \"stzh-disturber\";\n};\n\n/* Toast */\n\nexport type StzhToastType = \"info\" | \"success\" | \"warning\" | \"error\";\n\nexport type StzhToastOpenEvent = {\n component: \"stzh-toast\";\n};\n\nexport type StzhToastCloseEvent = {\n component: \"stzh-toast\";\n};\n\nexport type StzhToastOpenedEvent = {\n component: \"stzh-toast\";\n};\n\nexport type StzhToastClosedEvent = {\n component: \"stzh-toast\";\n};\n\n/* Ghettobox */\n\nexport type StzhGhettoboxOpenEvent = {\n component: \"stzh-ghettobox\";\n};\n\nexport type StzhGhettoboxCloseEvent = {\n component: \"stzh-ghettobox\";\n};\n\n/* Input */\n\nexport type StzhInputChangeEvent = {\n component: \"stzh-input\";\n originalEvent: InputEvent | MouseEvent;\n value: string;\n};\n\nexport type StzhInputChangedEvent = {\n component: \"stzh-input\";\n originalEvent: InputEvent | MouseEvent;\n value: string;\n};\n\nexport type StzhInputFocusEvent = {\n component: \"stzh-input\";\n originalEvent: FocusEvent;\n};\n\nexport type StzhInputBlurEvent = {\n component: \"stzh-input\";\n originalEvent: FocusEvent;\n};\n\n/* Popover */\n\nexport type StzhPopoverOpenEvent = {\n component: \"stzh-popover\";\n};\n\nexport type StzhPopoverOpenedEvent = {\n component: \"stzh-popover\";\n};\n\nexport type StzhPopoverCloseEvent = {\n component: \"stzh-popover\";\n};\n\nexport type StzhPopoverClosedEvent = {\n component: \"stzh-popover\";\n};\n\n/* Timeline */\n\nexport type StzhTimelineFoldableChangeEvent = {\n component: \"stzh-timeline\";\n value: boolean;\n};\n\n/* TimelineItem */\n\nexport type StzhTimelineItemOpenEvent = {\n component: \"stzh-timeline-item\";\n};\n\nexport type StzhTimelineItemOpenedEvent = {\n component: \"stzh-timeline-item\";\n};\n\nexport type StzhTimelineItemCloseEvent = {\n component: \"stzh-timeline-item\";\n};\n\nexport type StzhTimelineItemClosedEvent = {\n component: \"stzh-timeline-item\";\n};\n\nexport type StzhTimelineItemFocusEvent = {\n component: \"stzh-timeline-item\";\n originalEvent: FocusEvent;\n};\n\nexport type StzhTimelineItemBlurEvent = {\n component: \"stzh-timeline-item\";\n originalEvent: FocusEvent;\n};\n\n/* Accordion */\n\nexport type StzhAccordionVariant = \"default\" | \"title\" | \"table\" | \"menu\";\n\nexport type StzhAccordionVariantChangeEvent = {\n component: \"stzh-accordion\";\n value: StzhAccordionVariant;\n};\n\nexport type StzhAccordionItemOpenEvent = {\n component: \"stzh-accordion-item\";\n};\n\nexport type StzhAccordionItemOpenedEvent = {\n component: \"stzh-accordion-item\";\n};\n\nexport type StzhAccordionItemCloseEvent = {\n component: \"stzh-accordion-item\";\n};\n\nexport type StzhAccordionItemClosedEvent = {\n component: \"stzh-accordion-item\";\n};\n\nexport type StzhAccordionItemFocusEvent = {\n component: \"stzh-accordion-item\";\n originalEvent: FocusEvent;\n};\n\nexport type StzhAccordionItemBlurEvent = {\n component: \"stzh-accordion-item\";\n originalEvent: FocusEvent;\n};\n\n/* Pi Menu */\n\nexport type StzhPiMenuOpenEvent = {\n component: \"stzh-pi-menu\";\n};\n\nexport type StzhPiMenuOpenedEvent = {\n component: \"stzh-pi-menu\";\n};\n\nexport type StzhPiMenuCloseEvent = {\n component: \"stzh-pi-menu\";\n};\n\nexport type StzhPiMenuClosedEvent = {\n component: \"stzh-pi-menu\";\n};\n\nexport type StzhPiMenuItemClickEvent = {\n component: \"stzh-pi-menu\";\n originalEvent: MouseEvent;\n};\n\n/* Tooltip */\n\nexport type StzhTooltipOpenEvent = {\n component: \"stzh-tooltip\";\n};\n\nexport type StzhTooltipOpenedEvent = {\n component: \"stzh-tooltip\";\n};\n\nexport type StzhTooltipCloseEvent = {\n component: \"stzh-tooltip\";\n};\n\nexport type StzhTooltipClosedEvent = {\n component: \"stzh-tooltip\";\n};\n\n/* Radio */\n\nexport type StzhRadioChangeEvent = {\n component: \"stzh-radio\";\n originalEvent: InputEvent;\n value: string;\n checked: boolean;\n};\n\nexport type StzhRadioFocusEvent = {\n component: \"stzh-radio\";\n originalEvent: FocusEvent;\n};\n\nexport type StzhRadioBlurEvent = {\n component: \"stzh-radio\";\n originalEvent: FocusEvent;\n};\n\n/* Daterange */\n\nexport type StzhDaterangeRanges = \"today\" | \"tomorrow\" | \"next7days\";\n\n/* Dropdown */\n\nexport type StzhDropdownSize = \"default\" | \"small\" | \"tiny\" | StzhChipSize;\n\nexport type StzhDropdownOption = {\n text: string;\n value: string;\n disabled?: boolean;\n};\n\nexport type StzhDropdownChangeEvent = {\n component: \"stzh-dropdown\";\n value: string | string[];\n};\n\nexport type StzhDropdownItemAddEvent = {\n component: \"stzh-dropdown\";\n value: string;\n};\n\nexport type StzhDropdownItemRemoveEvent = {\n component: \"stzh-dropdown\";\n value: string;\n};\n\nexport type StzhDropdownOptionAddEvent = {\n component: \"stzh-dropdown\";\n value: string;\n};\n\nexport type StzhDropdownOptionRemoveEvent = {\n component: \"stzh-dropdown\";\n value: string;\n};\n\nexport type StzhDropdownOpenEvent = {\n component: \"stzh-dropdown\";\n};\n\nexport type StzhDropdowCloseEvent = {\n component: \"stzh-dropdown\";\n};\n\nexport type StzhDropdownFocusEvent = {\n component: \"stzh-dropdown\";\n originalEvent: {\n target: Element;\n };\n};\n\nexport type StzhDropdownBlurEvent = {\n component: \"stzh-dropdown\";\n};\n\nexport type StzhDropdowInitEvent = {\n component: \"stzh-dropdown\";\n};\n\n/** Progressbar */\n\nexport type StzhProgressbarDataItem = {\n label: string;\n icon?: string;\n disabled?: boolean;\n analyticsId?: string;\n};\n\n/* Progressbar Item */\n\nexport type StzhProgressbarItemClickEvent = {\n component: \"stzh-progressbar-item\";\n originalEvent: MouseEvent;\n index: number;\n};\n\nexport type StzhProgressbarItemDottedClickEvent = {\n component: \"stzh-progressbar-item\";\n originalEvent: MouseEvent;\n index: number;\n};\n\n/* Upload */\n\nexport type StzhUploadFilesItem = {\n name: string;\n size: number;\n [key: string]: any;\n};\n\nexport type StzhUploadFile = File & {\n xhr: XMLHttpRequest;\n status: string;\n upload: any;\n accepted: boolean;\n previewElement: HTMLElement;\n};\n\nexport type StzhUploadFileAddedEvent = {\n component: \"stzh-upload\";\n file: StzhUploadFile;\n};\n\nexport type StzhUploadFilesAddedEvent = {\n component: \"stzh-upload\";\n files: StzhUploadFile[];\n};\n\nexport type StzhUploadFileRemoveEvent = {\n component: \"stzh-upload\";\n file: StzhUploadFile;\n};\n\nexport type StzhUploadFileRemovedEvent = {\n component: \"stzh-upload\";\n file: StzhUploadFile;\n force: boolean;\n};\n\nexport type StzhUploadSendingEvent = {\n component: \"stzh-upload\";\n file: StzhUploadFile;\n xhr: XMLHttpRequest;\n formData: FormData;\n};\n\nexport type StzhUploadSendingMultipleEvent = {\n component: \"stzh-upload\";\n files: StzhUploadFile[];\n xhr: XMLHttpRequest;\n formData: FormData;\n};\n\nexport type StzhUploadProcessingEvent = {\n component: \"stzh-upload\";\n file: StzhUploadFile;\n};\n\nexport type StzhUploadProcessingMultipleEvent = {\n component: \"stzh-upload\";\n files: StzhUploadFile[];\n};\n\nexport type StzhUploadProgressEvent = {\n component: \"stzh-upload\";\n file: StzhUploadFile;\n progress: number;\n bytesSent: number;\n};\n\nexport type StzhUploadProgressTotalEvent = {\n component: \"stzh-upload\";\n totalUploadProgress: number;\n totalBytes: number;\n totalBytesSent: number;\n};\n\nexport type StzhUploadErrorEvent = {\n component: \"stzh-upload\";\n file: StzhUploadFile;\n message: string;\n xhr: XMLHttpRequest;\n};\n\nexport type StzhUploadErrorMultipleEvent = {\n component: \"stzh-upload\";\n files: StzhUploadFile[];\n message: string;\n xhr: XMLHttpRequest;\n};\n\nexport type StzhUploadSuccessEvent = {\n component: \"stzh-upload\";\n file: StzhUploadFile;\n responseText: string;\n event: ProgressEvent;\n};\n\nexport type StzhUploadSuccessMultipleEvent = {\n component: \"stzh-upload\";\n files: StzhUploadFile[];\n responseText: string;\n event: ProgressEvent;\n};\n\nexport type StzhUploadCanceledEvent = {\n component: \"stzh-upload\";\n file: StzhUploadFile;\n};\n\nexport type StzhUploadCanceledMultipleEvent = {\n component: \"stzh-upload\";\n files: StzhUploadFile[];\n};\n\nexport type StzhUploadCompleteEvent = {\n component: \"stzh-upload\";\n file: StzhUploadFile;\n};\n\nexport type StzhUploadCompleteMultipleEvent = {\n component: \"stzh-upload\";\n files: StzhUploadFile[];\n};\n\n// Merged Types\n\nexport type StzhFocusEvent =\n | StzhAccordionItemFocusEvent\n | StzhButtonFocusEvent\n | StzhCheckboxFocusEvent\n | StzhChipFocusEvent\n | StzhDropdownFocusEvent\n | StzhInputFocusEvent\n | StzhLinkFocusEvent\n | StzhMenuItemFocusEvent\n | StzhRadioFocusEvent\n | StzhToggleFocusEvent\n | StzhVbzLinechipFocusEvent\n | StzhSkiplinkFocusEvent;\n\n// ---\n// Prop Types\n// ---\n\nexport type StzhCalendarDateDisabledPredicate = (date: Date) => boolean;\n\nexport namespace Layout {\n export type Ratio = \"16:9\" | \"1:1\" | \"5:4\" | \"4:3\" | \"3:2\" | \"2:1\" | \"21:9\";\n\n export type Justify =\n | \"start\"\n | \"end\"\n | \"center\"\n | \"between\"\n | \"around\"\n | \"evenly\";\n\n export type Items = \"start\" | \"end\" | \"center\" | \"baseline\" | \"stretch\";\n\n export type JustifySelf = \"auto\" | Justify;\n\n export type AlignSelf = \"auto\" | Items;\n}\n\nexport namespace Space {\n export type Sizes =\n | \"xxxsmall\"\n | \"xxsmall\"\n | \"xsmall\"\n | \"small\"\n | \"medium\"\n | \"large\"\n | \"xlarge\"\n | \"xxlarge\"\n | \"xxxlarge\"\n | \"xxxxlarge\"\n | \"big\"\n | \"xbig\"\n | \"huge\"\n | \"xhuge\"\n | \"none\"\n | \"inherit\";\n\n export type Curves =\n | \"tiny\"\n | \"small\"\n | \"regular\"\n | \"medium\"\n | \"large\"\n | \"big\"\n | \"huge\"\n | \"none\";\n}\n\nexport namespace Font {\n export type Fonts = \"light\" | \"regular\" | \"medium\" | \"heavy\" | \"default\";\n\n export type Sizes =\n | \"pico\"\n | \"nano\"\n | \"micro\"\n | \"milli\"\n | \"centi\"\n | \"deci\"\n | \"regular\"\n | \"deca\"\n | \"hecto\"\n | \"kilo\"\n | \"mega\"\n | \"giga\"\n | \"hero\";\n\n export type Curves =\n | \"p1\"\n | \"p2\"\n | \"lead\"\n | \"caption\"\n | \"h4\"\n | \"h3\"\n | \"h2\"\n | \"h1\"\n | \"hero\"\n | \"h1home\"\n | \"default\"\n | \"none\";\n}\n\nexport namespace VBZ {\n export const BASE_TYPE_GLOBAL = \"GLOBAL\";\n\n export const CHANNEL_TICKER = \"ticker\";\n export const CHANNEL_INFO_URL_FILTER = \"stadt-zuerich.ch/vbz\";\n\n export const DISTURBANCE_GLOBAL = \"__global__\";\n export const DISTURBANCE_INFORMATION = \"0\";\n export const DISTURBANCE_CONSTRUCTION = \"1\";\n export const DISTURBANCE_NORMAL = \"2\";\n export const DISTURBANCE_EVENT = \"4\";\n export const DISTURBANCE_BUS = \"5\";\n\n export type Lines =\n | \"2\"\n | \"3\"\n | \"4\"\n | \"5\"\n | \"6\"\n | \"7\"\n | \"8\"\n | \"9\"\n | \"10\"\n | \"11\"\n | \"12\"\n | \"13\"\n | \"14\"\n | \"15\"\n | \"16\"\n | \"17\"\n | \"19\"\n | \"20\"\n | \"21\"\n | \"23\"\n | \"24\"\n | \"25\"\n | \"29\"\n | \"31\"\n | \"32\"\n | \"33\"\n | \"34\"\n | \"35\"\n | \"36\"\n | \"37\"\n | \"38\"\n | \"39\"\n | \"40\"\n | \"45\"\n | \"46\"\n | \"54\"\n | \"61\"\n | \"62\"\n | \"63\"\n | \"64\"\n | \"66\"\n | \"67\"\n | \"69\"\n | \"70\"\n | \"72\"\n | \"73\"\n | \"75\"\n | \"76\"\n | \"77\"\n | \"78\"\n | \"79\"\n | \"80\"\n | \"83\"\n | \"89\"\n | \"91\"\n | \"94\"\n | \"95\"\n | \"99\"\n | \"151\"\n | \"152\"\n | \"153\"\n | \"156\"\n | \"161\"\n | \"162\"\n | \"163\"\n | \"165\"\n | \"184\"\n | \"185\"\n | \"200\"\n | \"201\"\n | \"215\"\n | \"220\"\n | \"235\"\n | \"236\"\n | \"245\"\n | \"301\"\n | \"302\"\n | \"303\"\n | \"304\"\n | \"305\"\n | \"306\"\n | \"307\"\n | \"308\"\n | \"309\"\n | \"311\"\n | \"314\"\n | \"315\"\n | \"317\"\n | \"321\"\n | \"323\"\n | \"325\"\n | \"350\"\n | \"444\"\n | \"445\"\n | \"701\"\n | \"702\"\n | \"703\"\n | \"704\"\n | \"705\"\n | \"720\"\n | \"721\"\n | \"725\"\n | \"726\"\n | \"727\"\n | \"742\"\n | \"743\"\n | \"744\"\n | \"745\"\n | \"747\"\n | \"748\"\n | \"751\"\n | \"752\"\n | \"753\"\n | \"754\"\n | \"759\"\n | \"760\"\n | \"765\"\n | \"768\"\n | \"781\"\n | \"786\"\n | \"787\"\n | \"910\"\n | \"912\"\n | \"916\"\n | \"917\"\n | \"918\"\n | \"919\"\n | \"E\"\n | \"N\"\n | \"N1\"\n | \"N2\"\n | \"N4\"\n | \"N5\"\n | \"N6\"\n | \"N7\"\n | \"N8\"\n | \"N9\"\n | \"N10\"\n | \"N11\"\n | \"N12\"\n | \"N13\"\n | \"N14\"\n | \"N15\"\n | \"N16\"\n | \"N17\"\n | \"N18\"\n | \"N19\"\n | \"N30\"\n | \"N31\"\n | \"N32\"\n | \"N33\"\n | \"N34\"\n | \"N45\"\n | \"N72\"\n | \"N78\"\n | \"SN1\"\n | \"SN4\"\n | \"SN5\"\n | \"SN6\"\n | \"SN7\"\n | \"SN8\"\n | \"SN9\"\n | \"S2\"\n | \"S3\"\n | \"S4\"\n | \"S5\"\n | \"S6\"\n | \"S7\"\n | \"S8\"\n | \"S9\"\n | \"S10\"\n | \"S11\"\n | \"S14\"\n | \"S15\"\n | \"S16\"\n | \"S18\"\n | \"S19\"\n | \"S20\"\n | \"S21\"\n | \"S23\"\n | \"S24\"\n | \"S25\";\n}\n\n// ---\n// Stencil component types\n// ---\n\nexport * from \"./components\";\n"],"version":3}
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import { proxyCustomElement, HTMLElement, h, Host } from '@stencil/core/internal/client';
|
|
1
|
+
import { proxyCustomElement, HTMLElement, createEvent, h, Host } from '@stencil/core/internal/client';
|
|
2
2
|
import { d as defineCustomElement$3 } from './stzh-badge2.js';
|
|
3
3
|
import { d as defineCustomElement$2 } from './stzh-icon2.js';
|
|
4
4
|
import { d as defineCustomElement$1 } from './stzh-link2.js';
|
|
@@ -10,6 +10,14 @@ const StzhAppNav = /*@__PURE__*/ proxyCustomElement(class StzhAppNav extends HTM
|
|
|
10
10
|
super();
|
|
11
11
|
this.__registerHost();
|
|
12
12
|
this.__attachShadow();
|
|
13
|
+
this.stzhAppNavItemClick = createEvent(this, "stzhAppNavItemClick", 7);
|
|
14
|
+
this.handleAppNavItemClick = (event, item) => {
|
|
15
|
+
this.stzhAppNavItemClick.emit({
|
|
16
|
+
component: "stzh-app-nav",
|
|
17
|
+
item,
|
|
18
|
+
originalEvent: event,
|
|
19
|
+
});
|
|
20
|
+
};
|
|
13
21
|
this.localization = undefined;
|
|
14
22
|
this.items = [];
|
|
15
23
|
}
|
|
@@ -22,7 +30,7 @@ const StzhAppNav = /*@__PURE__*/ proxyCustomElement(class StzhAppNav extends HTM
|
|
|
22
30
|
const classes = {
|
|
23
31
|
"stzh-app-nav": true,
|
|
24
32
|
};
|
|
25
|
-
return (h(Host, null, h("nav", { role: "navigation", class: classes, "aria-label": this.localization.title }, h("div", { class: "stzh-app-nav__links", role: "list" }, this.items.map((item) => (h("stzh-link", { class: "stzh-app-nav__link", active: item.active, role: "listitem", "a11y-current": item.a11yCurrent, href: item.href, badge: item.badge, badgeType: item.badgeType, icon: item.icon }, item.text)))))));
|
|
33
|
+
return (h(Host, null, h("nav", { role: "navigation", class: classes, "aria-label": this.localization.title }, h("div", { class: "stzh-app-nav__links", role: "list" }, this.items.map((item) => (h("stzh-link", { class: "stzh-app-nav__link", active: item.active, role: "listitem", "a11y-current": item.a11yCurrent, href: item.href, badge: item.badge, badgeType: item.badgeType, icon: item.icon, onClick: (e) => { this.handleAppNavItemClick(e, item); } }, item.text)))))));
|
|
26
34
|
}
|
|
27
35
|
get element() { return this; }
|
|
28
36
|
static get style() { return stzhAppNavCss; }
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"file":"stzh-app-nav2.js","mappings":";;;;;AAAA,MAAM,aAAa,GAAG,+sGAA+sG;;MCYxtG,UAAU;;;;;;
|
|
1
|
+
{"file":"stzh-app-nav2.js","mappings":";;;;;AAAA,MAAM,aAAa,GAAG,+sGAA+sG;;MCYxtG,UAAU;;;;;;IAkBb,0BAAqB,GAAG,CAAC,KAAiB,EAAE,IAAoB;MACtE,IAAI,CAAC,mBAAmB,CAAC,IAAI,CAAC;QAC5B,SAAS,EAAE,cAAc;QACzB,IAAI;QACJ,aAAa,EAAE,KAAK;OACrB,CAAC,CAAC;KACJ,CAAC;;iBAnBgC,EAAE;;EAOpC,MAAM,iBAAiB;IACrB,IAAI,CAAC,IAAI,CAAC,YAAY,EAAE;MACtB,IAAI,CAAC,YAAY,GAAG,MAAM,MAAM,CAAC,cAAc,CAAC,KAAK,CAAC,iBAAiB,CAAC,IAAI,CAAC,OAAO,EAAE,QAAQ,CAAC,CAAC;KACjG;GACF;EAUD,MAAM;IACJ,MAAM,OAAO,GAAG;MACd,cAAc,EAAE,IAAI;KACrB,CAAC;IAEF,QACE,EAAC,IAAI,QACH,WAAK,IAAI,EAAC,YAAY,EAAC,KAAK,EAAE,OAAO,gBAAc,IAAI,CAAC,YAAY,CAAC,KAAK,IACxE,WAAK,KAAK,EAAC,qBAAqB,EAAC,IAAI,EAAC,MAAM,IAC3C,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,IAAI,MACnB,iBACE,KAAK,EAAC,oBAAoB,EAC1B,MAAM,EAAE,IAAI,CAAC,MAAM,EACnB,IAAI,EAAC,UAAU,kBACD,IAAI,CAAC,WAAW,EAC9B,IAAI,EAAE,IAAI,CAAC,IAAI,EACf,KAAK,EAAE,IAAI,CAAC,KAAK,EACjB,SAAS,EAAE,IAAI,CAAC,SAAS,EACzB,IAAI,EAAE,IAAI,CAAC,IAAI,EACf,OAAO,EAAE,CAAC,CAAa,OAAO,IAAI,CAAC,qBAAqB,CAAC,CAAC,EAAE,IAAI,CAAC,CAAA,EAAE,IACjE,IAAI,CAAC,IAAI,CACD,CACb,CAAC,CACI,CACF,CACD,EACP;GACH;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;","names":[],"sources":["src/components/stzh-app-nav/stzh-app-nav.scss?tag=stzh-app-nav&encapsulation=shadow","src/components/stzh-app-nav/stzh-app-nav.tsx"],"sourcesContent":["/**\n * @prop --stzh-app-nav-background-color: Background color of app nav links.\n * @prop --stzh-app-nav-color: Text and icon color of app nav links.\n * @prop --stzh-app-nav-color-active: Text and icon color of active app nav links.\n */\n\n:host {\n --stzh-app-nav-background-color: var(--stzh-color-coolgrey10);\n --stzh-app-nav-color: var(--stzh-color-coolgrey90);\n --stzh-app-nav-color-active: var(--stzh-color-primary70);\n}\n\n.stzh-app-nav {\n background-color: var(--stzh-app-nav-background-color);\n\n &__links {\n display: flex;\n flex-direction: row;\n justify-content: space-between;\n padding: space('medium') space('large') space('xlarge');\n\n @include mq($from: medium) {\n padding: 0;\n align-items: center;\n }\n }\n\n &__link {\n --text-decoration-line: none;\n --hover-text-decoration-line: none;\n --color: var(--stzh-app-nav-color);\n\n @include mq($from: medium) {\n margin-right: space('xlarge');\n }\n\n &::last-child {\n margin-right: 0;\n }\n }\n\n .stzh-link--is-active {\n text-decoration: none;\n --color: var(--stzh-app-nav-color-active);\n\n @include mq($from: medium) {\n @include font('heavy');\n }\n }\n\n .stzh-link__inner {\n flex-direction: column;\n\n @include mq($from: medium) {\n flex-direction: row;\n }\n }\n\n .stzh-link__text {\n @include font('medium');\n @include fontSize('pico');\n\n @include mq($from: medium) {\n @include fontSize('milli');\n font-weight: var(--stzh-font-weight-medium);\n }\n }\n\n .stzh-link__icon-wrapper.sc-stzh-link:not(:empty) + .stzh-link__text.sc-stzh-link:not(:empty), .stzh-link__text.sc-stzh-link:not(:empty) + .stzh-link__icon-wrapper.sc-stzh-link:not(:empty) {\n margin-top: space('xxsmall');\n margin-left: 0;\n\n @include mq($from: medium) {\n margin-left: space('xsmall');\n margin-top: 0;\n }\n }\n}\n","import {Component, Prop, h, Host, Element, Event, EventEmitter} from \"@stencil/core\";\n\nimport { StzhAppNavLocalizedText } from \"./stzh-app-nav.localization\";\n\nimport {StzhAppNavItem, StzhAppNavItemClickEvent} from \"../../index\";\n\n@Component({\n tag: \"stzh-app-nav\",\n styleUrl: \"stzh-app-nav.scss\",\n shadow: true,\n})\n\nexport class StzhAppNav {\n /** Translation strings */\n @Prop() localization: StzhAppNavLocalizedText;\n\n /** App-nav items */\n @Prop() items: StzhAppNavItem[] = [];\n\n @Element() element: HTMLStzhAppNavElement;\n\n /** AppNav item click event */\n @Event() stzhAppNavItemClick: EventEmitter<StzhAppNavItemClickEvent>;\n\n async componentWillLoad() {\n if (!this.localization) {\n this.localization = await window.stzhComponents.utils.fetchTranslations(this.element, \"appnav\");\n }\n }\n\n private handleAppNavItemClick = (event: MouseEvent, item: StzhAppNavItem) => {\n this.stzhAppNavItemClick.emit({\n component: \"stzh-app-nav\",\n item,\n originalEvent: event,\n });\n };\n\n render() {\n const classes = {\n \"stzh-app-nav\": true,\n };\n\n return (\n <Host>\n <nav role=\"navigation\" class={classes} aria-label={this.localization.title}>\n <div class=\"stzh-app-nav__links\" role=\"list\">\n {this.items.map((item) => (\n <stzh-link\n class=\"stzh-app-nav__link\"\n active={item.active}\n role=\"listitem\"\n a11y-current={item.a11yCurrent}\n href={item.href}\n badge={item.badge}\n badgeType={item.badgeType}\n icon={item.icon}\n onClick={(e: MouseEvent) => { this.handleAppNavItemClick(e, item) }}\n >{item.text}\n </stzh-link>\n ))}\n </div>\n </nav>\n </Host>\n );\n }\n}\n"],"version":3}
|
|
@@ -3,7 +3,7 @@ import { h as hasSlot } from './utils.js';
|
|
|
3
3
|
import { d as defineCustomElement$2 } from './stzh-badge2.js';
|
|
4
4
|
import { d as defineCustomElement$1 } from './stzh-icon2.js';
|
|
5
5
|
|
|
6
|
-
const stzhButtonCss = "@charset \"UTF-8\";.sc-stzh-button-h{font-family:var(--stzh-font-family-medium);font-weight:var(--stzh-font-weight-medium);font-style:var(--stzh-font-style-medium);color:var(--stzh-base-color);box-sizing:border-box;display:block}[hidden].sc-stzh-button-h{display:none}.sc-stzh-button-h::-moz-selection{color:var(--stzh-selection-color);background-color:var(--stzh-selection-background-color)}.sc-stzh-button-h::selection{color:var(--stzh-selection-color);background-color:var(--stzh-selection-background-color)}.sc-stzh-button-h *.sc-stzh-button,.sc-stzh-button-h *.sc-stzh-button::before,.sc-stzh-button-h *.sc-stzh-button::after{box-sizing:border-box;text-underline-offset:var(--stzh-link-text-underline-offset);text-decoration-thickness:var(--stzh-link-text-decoration-thickness);-webkit-text-decoration-skip-ink:var(--stzh-link-text-decoration-skip-ink);text-decoration-skip-ink:var(--stzh-link-text-decoration-skip-ink)}.sc-stzh-button-h .has-focus.sc-stzh-button{outline:var(--stzh-flyingfocus-color) solid 0.125rem;outline-offset:0.125rem}.sc-stzh-button-h .stzh-fylingfocus-focused.sc-stzh-button{outline-style:none !important}.sc-stzh-button-h .stzh-fylingfocus-focused.sc-stzh-button::-moz-focus-inner{border:0 !important}.sc-stzh-button-h{--height:var(--stzh-form-input-height);--padding-top:calc(var(--stzh-space-xsmall) - var(--border-width));--padding-bottom:calc(var(--stzh-space-xsmall) - var(--border-width));--padding-left:var(--stzh-space-xlarge);--padding-right:var(--stzh-space-xlarge);--font-size:var(--stzh-font-centi-font-size);--line-height:var(--stzh-font-centi-text-line-height);--letter-spacing:normal;--icon-size:var(--stzh-icon-size-medium);--icon-toggle-size:0.90625rem;--color:var(--stzh-button-color, var(--stzh-color-white));--background-color:var(--stzh-button-background-color, var(--stzh-color-primary70));--border-width:0px;--border-color:transparent;--border-radius:0px;--icon-text-margin:var(--stzh-space-xsmall);--icon-toggle-color:currentColor;--badge-icon-text-margin:calc(var(--icon-text-margin) + var(--stzh-space-xxsmall));--white-space:var(--stzh-button-white-space, normal);--box-shadow:none;--cursor:pointer;--hover-color:var(--stzh-button-hover-color, var(--stzh-color-white));--hover-background-color:var(--stzh-button-hover-background-color, var(--stzh-color-secondary60));--hover-border-color:transparent;display:inline-grid;width:auto;min-width:var(--height);min-height:var(--height);pointer-events:var(--stzh-button-pointer-events, auto)}.sc-stzh-button-h:where([icon-only]:not([icon-only=\"false\"])){--icon-size:var(--stzh-icon-size-large)}@media print{.sc-stzh-button-h{-webkit-print-color-adjust:exact;print-color-adjust:exact}}[icon-only].sc-stzh-button-h:not([icon-only=false]){--padding-top:0;--padding-bottom:0;--padding-left:0;--padding-right:0;width:var(--height);height:var(--height)}[fullwidth].sc-stzh-button-h:not([fullwidth=false]){width:100%;display:grid}[rounded].sc-stzh-button-h:not([rounded=false]){--border-radius:var(--height)}[no-padding-left].sc-stzh-button-h:not([no-padding-left=false]){--padding-left:0px}[no-padding-right].sc-stzh-button-h:not([no-padding-right=false]){--padding-right:0px}[variant=secondary].sc-stzh-button-h{--color:var(--stzh-button-secondary-color, var(--stzh-color-primary70));--background-color:var(--stzh-button-secondary-background-color, var(--stzh-color-secondary30));--hover-color:var(--stzh-button-secondary-hover-color, var(--stzh-color-primary80));--hover-background-color:var(--stzh-button-secondary-hover-background-color, var(--stzh-color-secondary40))}[variant=tertiary].sc-stzh-button-h{--color:var(--stzh-button-tertiary-color, var(--stzh-color-primary70));--background-color:var(--stzh-button-tertiary-background-color, transparent);--hover-color:var(--stzh-button-tertiary-hover-color, var(--stzh-color-primary80));--hover-background-color:var(--stzh-button-tertiary-hover-background-color, var(--stzh-color-secondary20))}[variant=tertiary-plain].sc-stzh-button-h{--color:var(--stzh-button-tertiary-color, var(--stzh-color-primary70));--background-color:transparent;--hover-color:var(--stzh-button-tertiary-hover-color, var(--stzh-color-primary80));--hover-background-color:var(--background-color)}[active].sc-stzh-button-h:not([active=false]){--color:var(--stzh-button-active-color, var(--stzh-color-white));--background-color:var(--stzh-button-active-background-color, var(--stzh-color-secondary60));--hover-color:var(--stzh-button-active-hover-color, var(--stzh-color-white));--hover-background-color:var(--stzh-button-active-hover-background-color, var(--stzh-color-secondary60))}[disabled].sc-stzh-button-h:not([disabled=false]),[a11y-disabled].sc-stzh-button-h:not([a11y-disabled=false]){--color:var(--stzh-button-disabled-color, var(--stzh-color-white));--background-color:var(--stzh-button-disabled-background-color, var(--stzh-color-grey70));--hover-color:var(--color);--hover-background-color:var(--background-color)}[disabled].sc-stzh-button-h:not([disabled=false])[variant=secondary],[a11y-disabled].sc-stzh-button-h:not([a11y-disabled=false])[variant=secondary]{--color:var(--stzh-button-secondary-disabled-color, var(--stzh-color-grey80));--background-color:var(--stzh-button-secondary-disabled-background-color, var(--stzh-color-grey20))}[disabled].sc-stzh-button-h:not([disabled=false])[variant=input],[a11y-disabled].sc-stzh-button-h:not([a11y-disabled=false])[variant=input]{--color:var(--stzh-button-input-disabled-color, var(--stzh-color-grey80));--background-color:var(--stzh-button-input-disabled-background-color, var(--stzh-color-grey20))}[disabled].sc-stzh-button-h:not([disabled=false])[variant=tertiary],[disabled].sc-stzh-button-h:not([disabled=false])[variant=tertiary-plain],[a11y-disabled].sc-stzh-button-h:not([a11y-disabled=false])[variant=tertiary],[a11y-disabled].sc-stzh-button-h:not([a11y-disabled=false])[variant=tertiary-plain]{--color:var(--stzh-button-tertiary-disabled-color, var(--stzh-color-grey70));--background-color:var(--stzh-button-tertiary-disabled-background-color, transparent)}.sc-stzh-button-h:where([size=\"small\"]){--height:var(--stzh-form-input-small-height);--padding-left:var(--stzh-space-large);--padding-right:var(--stzh-space-large);--font-size:var(--stzh-font-milli-font-size);--line-height:var(--stzh-font-milli-text-line-height);--icon-size:var(--stzh-icon-size-medium)}.sc-stzh-button-h:where([size=\"tiny\"]){--height:var(--stzh-form-input-tiny-height);--padding-left:var(--stzh-space-medium);--padding-right:var(--stzh-space-medium);--padding-top:calc(var(--stzh-space-xxsmall) - var(--border-width));--padding-bottom:calc(var(--stzh-space-xxsmall) - var(--border-width));--font-size:var(--stzh-font-milli-font-size);--line-height:var(--stzh-font-milli-text-line-height);--icon-size:var(--stzh-icon-size-medium)}@media screen and (min-width: 600px){.sc-stzh-button-h:where([size-small=\"default\"]){--height:var(--stzh-form-input-height);--padding-top:calc(var(--stzh-space-xsmall) - var(--border-width));--padding-bottom:calc(var(--stzh-space-xsmall) - var(--border-width));--padding-left:var(--stzh-space-xlarge);--padding-right:var(--stzh-space-xlarge);--font-size:var(--stzh-font-centi-font-size);--line-height:var(--stzh-font-centi-text-line-height);--letter-spacing:normal;--icon-size:var(--stzh-icon-size-medium);--icon-toggle-size:0.90625rem}.sc-stzh-button-h:where([size-small=\"default\"]):where([icon-only]:not([icon-only=\"false\"])){--icon-size:var(--stzh-icon-size-large)}.sc-stzh-button-h:where([size-small=\"small\"]){--height:var(--stzh-form-input-small-height);--padding-left:var(--stzh-space-large);--padding-right:var(--stzh-space-large);--font-size:var(--stzh-font-milli-font-size);--line-height:var(--stzh-font-milli-text-line-height);--icon-size:var(--stzh-icon-size-medium)}.sc-stzh-button-h:where([size-small=\"tiny\"]){--height:var(--stzh-form-input-tiny-height);--padding-left:var(--stzh-space-medium);--padding-right:var(--stzh-space-medium);--padding-top:calc(var(--stzh-space-xxsmall) - var(--border-width));--padding-bottom:calc(var(--stzh-space-xxsmall) - var(--border-width));--font-size:var(--stzh-font-milli-font-size);--line-height:var(--stzh-font-milli-text-line-height);--icon-size:var(--stzh-icon-size-medium)}}@media screen and (min-width: 900px){.sc-stzh-button-h:where([size-medium=\"default\"]){--height:var(--stzh-form-input-height);--padding-top:calc(var(--stzh-space-xsmall) - var(--border-width));--padding-bottom:calc(var(--stzh-space-xsmall) - var(--border-width));--padding-left:var(--stzh-space-xlarge);--padding-right:var(--stzh-space-xlarge);--font-size:var(--stzh-font-centi-font-size);--line-height:var(--stzh-font-centi-text-line-height);--letter-spacing:normal;--icon-size:var(--stzh-icon-size-medium);--icon-toggle-size:0.90625rem}.sc-stzh-button-h:where([size-medium=\"default\"]):where([icon-only]:not([icon-only=\"false\"])){--icon-size:var(--stzh-icon-size-large)}.sc-stzh-button-h:where([size-medium=\"small\"]){--height:var(--stzh-form-input-small-height);--padding-left:var(--stzh-space-large);--padding-right:var(--stzh-space-large);--font-size:var(--stzh-font-milli-font-size);--line-height:var(--stzh-font-milli-text-line-height);--icon-size:var(--stzh-icon-size-medium)}.sc-stzh-button-h:where([size-medium=\"tiny\"]){--height:var(--stzh-form-input-tiny-height);--padding-left:var(--stzh-space-medium);--padding-right:var(--stzh-space-medium);--padding-top:calc(var(--stzh-space-xxsmall) - var(--border-width));--padding-bottom:calc(var(--stzh-space-xxsmall) - var(--border-width));--font-size:var(--stzh-font-milli-font-size);--line-height:var(--stzh-font-milli-text-line-height);--icon-size:var(--stzh-icon-size-medium)}}@media screen and (min-width: 1260px){.sc-stzh-button-h:where([size-large=\"default\"]){--height:var(--stzh-form-input-height);--padding-top:calc(var(--stzh-space-xsmall) - var(--border-width));--padding-bottom:calc(var(--stzh-space-xsmall) - var(--border-width));--padding-left:var(--stzh-space-xlarge);--padding-right:var(--stzh-space-xlarge);--font-size:var(--stzh-font-centi-font-size);--line-height:var(--stzh-font-centi-text-line-height);--letter-spacing:normal;--icon-size:var(--stzh-icon-size-medium);--icon-toggle-size:0.90625rem}.sc-stzh-button-h:where([size-large=\"default\"]):where([icon-only]:not([icon-only=\"false\"])){--icon-size:var(--stzh-icon-size-large)}.sc-stzh-button-h:where([size-large=\"small\"]){--height:var(--stzh-form-input-small-height);--padding-left:var(--stzh-space-large);--padding-right:var(--stzh-space-large);--font-size:var(--stzh-font-milli-font-size);--line-height:var(--stzh-font-milli-text-line-height);--icon-size:var(--stzh-icon-size-medium)}.sc-stzh-button-h:where([size-large=\"tiny\"]){--height:var(--stzh-form-input-tiny-height);--padding-left:var(--stzh-space-medium);--padding-right:var(--stzh-space-medium);--padding-top:calc(var(--stzh-space-xxsmall) - var(--border-width));--padding-bottom:calc(var(--stzh-space-xxsmall) - var(--border-width));--font-size:var(--stzh-font-milli-font-size);--line-height:var(--stzh-font-milli-text-line-height);--icon-size:var(--stzh-icon-size-medium)}}@media screen and (min-width: 1600px){.sc-stzh-button-h:where([size-ultra=\"default\"]){--height:var(--stzh-form-input-height);--padding-top:calc(var(--stzh-space-xsmall) - var(--border-width));--padding-bottom:calc(var(--stzh-space-xsmall) - var(--border-width));--padding-left:var(--stzh-space-xlarge);--padding-right:var(--stzh-space-xlarge);--font-size:var(--stzh-font-centi-font-size);--line-height:var(--stzh-font-centi-text-line-height);--letter-spacing:normal;--icon-size:var(--stzh-icon-size-medium);--icon-toggle-size:0.90625rem}.sc-stzh-button-h:where([size-ultra=\"default\"]):where([icon-only]:not([icon-only=\"false\"])){--icon-size:var(--stzh-icon-size-large)}.sc-stzh-button-h:where([size-ultra=\"small\"]){--height:var(--stzh-form-input-small-height);--padding-left:var(--stzh-space-large);--padding-right:var(--stzh-space-large);--font-size:var(--stzh-font-milli-font-size);--line-height:var(--stzh-font-milli-text-line-height);--icon-size:var(--stzh-icon-size-medium)}.sc-stzh-button-h:where([size-ultra=\"tiny\"]){--height:var(--stzh-form-input-tiny-height);--padding-left:var(--stzh-space-medium);--padding-right:var(--stzh-space-medium);--padding-top:calc(var(--stzh-space-xxsmall) - var(--border-width));--padding-bottom:calc(var(--stzh-space-xxsmall) - var(--border-width));--font-size:var(--stzh-font-milli-font-size);--line-height:var(--stzh-font-milli-text-line-height);--icon-size:var(--stzh-icon-size-medium)}}@keyframes stzh-button-effect-cta{0%,20%,50%,80%,100%{transform:translateX(0)}40%{transform:translateX(-0.5rem)}60%{transform:translateX(-0.25rem)}}.stzh-button.sc-stzh-button{font-family:var(--stzh-font-family-heavy);font-weight:var(--stzh-font-weight-heavy);font-style:var(--stzh-font-style-heavy);font-size:var(--font-size);line-height:var(--line-height);letter-spacing:var(--letter-spacing);position:relative;z-index:0;overflow:visible;display:flex;align-items:center;justify-content:stretch;-webkit-appearance:none;-moz-appearance:none;appearance:none;color:var(--color);padding-top:var(--padding-top);padding-bottom:var(--padding-bottom);padding-left:var(--padding-left);padding-right:var(--padding-right);background-color:var(--background-color);transition-duration:var(--stzh-base-transition-animation-speed);transition-property:color, background-color, border-color;border-style:solid;border-width:var(--border-width);border-color:var(--border-color);cursor:var(--cursor);-webkit-text-decoration-line:none;text-decoration-line:none;width:100%;height:100%;border-radius:var(--border-radius);text-align:left;box-shadow:var(--box-shadow)}.stzh-button.sc-stzh-button:hover{border-color:var(--hover-border-color);background-color:var(--hover-background-color);color:var(--hover-color)}.stzh-button__vhidden.sc-stzh-button{border:0;clip:rect(0 0 0 0);-webkit-clip-path:inset(100%);clip-path:inset(100%);width:0.0625rem;height:0.0625rem;overflow:hidden;padding:0;position:absolute}.stzh-button__inner.sc-stzh-button{display:flex;align-items:center;justify-content:center;flex-grow:1}.stzh-button__icon-wrapper.sc-stzh-button,.stzh-button__toggle-icon-wrapper.sc-stzh-button{display:inline-flex;align-items:center;justify-content:center;flex-shrink:0}.stzh-button__icon-wrapper.sc-stzh-button{--stzh-icon-size:var(--icon-size);width:auto;height:1em}.stzh-button__toggle-icon-wrapper.sc-stzh-button{width:var(--icon-size);height:var(--icon-size)}.stzh-button__toggle-icon.sc-stzh-button{position:relative;display:block;width:var(--icon-toggle-size);height:var(--icon-toggle-size)}.stzh-button__toggle-icon.sc-stzh-button::before,.stzh-button__toggle-icon.sc-stzh-button::after{position:absolute;top:50%;left:50%;content:\"\";display:block;width:var(--icon-toggle-size);height:0.125rem;transition-property:transform, background-color;transition-duration:500ms;transform-origin:top left;background-color:var(--icon-toggle-color)}@media (prefers-reduced-motion: reduce){.stzh-button__toggle-icon.sc-stzh-button::before,.stzh-button__toggle-icon.sc-stzh-button::after{transition:none}}.stzh-button__toggle-icon.sc-stzh-button::before{transform:rotate(180deg) translate(-50%, -50%)}.stzh-button__toggle-icon.sc-stzh-button::after{transform:rotate(90deg) translate(-50%, -50%)}.stzh-button__text.sc-stzh-button{overflow-wrap:break-word;word-wrap:break-word;word-break:break-word;-webkit-hyphens:auto;hyphens:auto;white-space:var(--white-space);text-align:center}.stzh-button__icon-wrapper.sc-stzh-button:not(:empty)+.stzh-button__text.sc-stzh-button:not(:empty),.stzh-button__text.sc-stzh-button:not(:empty)+.stzh-button__icon-wrapper.sc-stzh-button:not(:empty){margin-left:var(--icon-text-margin)}.stzh-button__badge.sc-stzh-button{position:absolute;z-index:1;top:0;right:0}.stzh-button__input.sc-stzh-button{position:absolute;top:0;left:0;width:100%;height:100%;margin:0;z-index:-1;opacity:0;pointer-events:none;-webkit-appearance:none;-moz-appearance:none;appearance:none}.stzh-button__mark.sc-stzh-button{border:0.125rem solid var(--stzh-color-black);background-color:var(--stzh-color-white);width:1.5rem;height:1.5rem;flex-shrink:0;border-radius:50%;display:inline-flex;justify-content:center;align-items:center;transition:border-color var(--stzh-base-transition-animation-speed);width:1.25rem;height:1.25rem;margin-right:var(--stzh-space-xsmall);border-color:currentColor}.stzh-button__mark.sc-stzh-button::before{content:\"\"}.stzh-button__check.sc-stzh-button{background-color:currentColor;color:var(--stzh-color-primary70);width:1rem;height:1rem;border-radius:50%;opacity:0;transition-property:color;transition-duration:var(--stzh-base-transition-animation-speed)}@media (forced-colors: active), (-ms-high-contrast: active){.stzh-button__check.sc-stzh-button{background-color:ButtonText}}.stzh-button__input.sc-stzh-button:checked:hover~.stzh-button__inner.sc-stzh-button .stzh-button__mark.sc-stzh-button .stzh-button__check.sc-stzh-button,.stzh-button__input.sc-stzh-button:checked:focus~.stzh-button__inner.sc-stzh-button .stzh-button__mark.sc-stzh-button .stzh-button__check.sc-stzh-button{color:var(--stzh-color-secondary60)}.stzh-button.sc-stzh-button:hover .stzh-button__mark.sc-stzh-button,.stzh-button__input.sc-stzh-button:focus:hover~.stzh-button__inner.sc-stzh-button .stzh-button__mark.sc-stzh-button,.stzh-button__input.sc-stzh-button:checked:hover~.stzh-button__inner.sc-stzh-button .stzh-button__mark.sc-stzh-button,.stzh-button__input.sc-stzh-button:checked:focus~.stzh-button__inner.sc-stzh-button .stzh-button__mark.sc-stzh-button{border-color:var(--stzh-color-secondary60)}.stzh-button__input.sc-stzh-button:focus~.stzh-button__inner.sc-stzh-button .stzh-button__mark.sc-stzh-button,.stzh-button__input.sc-stzh-button:checked~.stzh-button__inner.sc-stzh-button .stzh-button__mark.sc-stzh-button{border-color:var(--stzh-color-primary)}.stzh-button__input.sc-stzh-button:checked~.stzh-button__inner.sc-stzh-button .stzh-button__mark.sc-stzh-button .stzh-button__check.sc-stzh-button{opacity:1}.stzh-button--is-disabled.sc-stzh-button .stzh-button__input.sc-stzh-button~.stzh-button__inner.sc-stzh-button .stzh-button__mark.sc-stzh-button .stzh-button__check.sc-stzh-button{color:var(--stzh-color-grey70)}.stzh-button--is-disabled.sc-stzh-button .stzh-button__input.sc-stzh-button~.stzh-button__inner.sc-stzh-button .stzh-button__mark.sc-stzh-button{border-color:var(--stzh-color-grey70)}.stzh-button--is-disabled.sc-stzh-button .stzh-button__mark.sc-stzh-button{background-color:var(--stzh-color-grey10)}.stzh-button--is-expanded.sc-stzh-button .stzh-button__toggle-icon.sc-stzh-button::before,.stzh-button--is-expanded.sc-stzh-button .stzh-button__toggle-icon.sc-stzh-button::after{transform:rotate(0) translate(-50%, -50%)}.stzh-button--badge-position-button.sc-stzh-button .stzh-button__icon-wrapper.sc-stzh-button{position:static}.stzh-button__badge.sc-stzh-button,.stzh-button--badge-position-button.sc-stzh-button .stzh-button__badge.sc-stzh-button{top:calc(var(--stzh-space-xsmall) * -1);right:calc(var(--stzh-space-xsmall) * -1)}.stzh-button--badge-position-icon.stzh-button--has-icon.sc-stzh-button .stzh-button__icon-wrapper.sc-stzh-button{position:relative}.stzh-button--badge-position-icon.stzh-button--has-icon.sc-stzh-button .stzh-button__badge.sc-stzh-button{top:calc(var(--stzh-space-xsmall) * -1);right:calc(var(--stzh-space-small) * -1)}.stzh-button--badge-position-icon.stzh-button--has-icon.stzh-button--has-badge.sc-stzh-button .stzh-button__icon-wrapper.sc-stzh-button:not(:empty)+.stzh-button__text.sc-stzh-button:not(:empty),.stzh-button--badge-position-icon.stzh-button--has-icon.stzh-button--has-badge.sc-stzh-button .stzh-button__text.sc-stzh-button:not(:empty)+.stzh-button__icon-wrapper.sc-stzh-button:not(:empty){margin-left:var(--badge-icon-text-margin)}.stzh-button--has-icon-only.sc-stzh-button .stzh-button__text.sc-stzh-button{border:0;clip:rect(0 0 0 0);-webkit-clip-path:inset(100%);clip-path:inset(100%);width:0.0625rem;height:0.0625rem;overflow:hidden;padding:0;position:absolute}.stzh-button--effect-cta.sc-stzh-button:hover .stzh-button__icon-wrapper.sc-stzh-button{animation:stzh-button-effect-cta 1s}.stzh-button--align-left.sc-stzh-button .stzh-button__inner.sc-stzh-button{justify-content:flex-start}.stzh-button--align-right.sc-stzh-button .stzh-button__inner.sc-stzh-button{justify-content:flex-end}.stzh-button--align-center.sc-stzh-button .stzh-button__inner.sc-stzh-button{justify-content:center}.stzh-button--align-space-between.sc-stzh-button .stzh-button__inner.sc-stzh-button{justify-content:space-between}.stzh-button--is-disabled.sc-stzh-button{cursor:not-allowed}.stzh-button--default.has-focus.sc-stzh-button{outline:var(--stzh-flyingfocus-color) solid 0.1875rem}";
|
|
6
|
+
const stzhButtonCss = "@charset \"UTF-8\";.sc-stzh-button-h{font-family:var(--stzh-font-family-medium);font-weight:var(--stzh-font-weight-medium);font-style:var(--stzh-font-style-medium);color:var(--stzh-base-color);box-sizing:border-box;display:block}[hidden].sc-stzh-button-h{display:none}.sc-stzh-button-h::-moz-selection{color:var(--stzh-selection-color);background-color:var(--stzh-selection-background-color)}.sc-stzh-button-h::selection{color:var(--stzh-selection-color);background-color:var(--stzh-selection-background-color)}.sc-stzh-button-h *.sc-stzh-button,.sc-stzh-button-h *.sc-stzh-button::before,.sc-stzh-button-h *.sc-stzh-button::after{box-sizing:border-box;text-underline-offset:var(--stzh-link-text-underline-offset);text-decoration-thickness:var(--stzh-link-text-decoration-thickness);-webkit-text-decoration-skip-ink:var(--stzh-link-text-decoration-skip-ink);text-decoration-skip-ink:var(--stzh-link-text-decoration-skip-ink)}.sc-stzh-button-h .has-focus.sc-stzh-button{outline:var(--stzh-flyingfocus-color) solid 0.125rem;outline-offset:0.125rem}.sc-stzh-button-h .stzh-fylingfocus-focused.sc-stzh-button{outline-style:none !important}.sc-stzh-button-h .stzh-fylingfocus-focused.sc-stzh-button::-moz-focus-inner{border:0 !important}.sc-stzh-button-h{--height:var(--stzh-form-input-height);--padding-top:calc(var(--stzh-space-xsmall) - var(--border-width));--padding-bottom:calc(var(--stzh-space-xsmall) - var(--border-width));--padding-left:var(--stzh-space-xlarge);--padding-right:var(--stzh-space-xlarge);--font-size:var(--stzh-font-centi-font-size);--line-height:var(--stzh-font-centi-text-line-height);--letter-spacing:normal;--icon-size:var(--stzh-icon-size-medium);--icon-toggle-size:0.90625rem;--color:var(--stzh-button-color, var(--stzh-color-white));--background-color:var(--stzh-button-background-color, var(--stzh-color-primary70));--border-width:0px;--border-color:transparent;--border-radius:0px;--icon-text-margin:var(--stzh-space-xsmall);--icon-toggle-color:currentColor;--badge-icon-text-margin:calc(var(--icon-text-margin) + var(--stzh-space-xxsmall));--white-space:var(--stzh-button-white-space, normal);--box-shadow:none;--cursor:pointer;--hover-color:var(--stzh-button-hover-color, var(--stzh-color-white));--hover-background-color:var(--stzh-button-hover-background-color, var(--stzh-color-secondary60));--hover-border-color:transparent;display:inline-flex;width:auto;min-width:var(--height);min-height:var(--height);pointer-events:var(--stzh-button-pointer-events, auto)}.sc-stzh-button-h:where([icon-only]:not([icon-only=\"false\"])){--icon-size:var(--stzh-icon-size-large)}@media print{.sc-stzh-button-h{-webkit-print-color-adjust:exact;print-color-adjust:exact}}[icon-only].sc-stzh-button-h:not([icon-only=false]){--padding-top:0;--padding-bottom:0;--padding-left:0;--padding-right:0;width:var(--height);height:var(--height)}[fullwidth].sc-stzh-button-h:not([fullwidth=false]){width:100%;display:grid}[rounded].sc-stzh-button-h:not([rounded=false]){--border-radius:var(--height)}[no-padding-left].sc-stzh-button-h:not([no-padding-left=false]){--padding-left:0px}[no-padding-right].sc-stzh-button-h:not([no-padding-right=false]){--padding-right:0px}[variant=secondary].sc-stzh-button-h{--color:var(--stzh-button-secondary-color, var(--stzh-color-primary70));--background-color:var(--stzh-button-secondary-background-color, var(--stzh-color-secondary30));--hover-color:var(--stzh-button-secondary-hover-color, var(--stzh-color-primary80));--hover-background-color:var(--stzh-button-secondary-hover-background-color, var(--stzh-color-secondary40))}[variant=tertiary].sc-stzh-button-h{--color:var(--stzh-button-tertiary-color, var(--stzh-color-primary70));--background-color:var(--stzh-button-tertiary-background-color, transparent);--hover-color:var(--stzh-button-tertiary-hover-color, var(--stzh-color-primary80));--hover-background-color:var(--stzh-button-tertiary-hover-background-color, var(--stzh-color-secondary20))}[variant=tertiary-plain].sc-stzh-button-h{--color:var(--stzh-button-tertiary-color, var(--stzh-color-primary70));--background-color:transparent;--hover-color:var(--stzh-button-tertiary-hover-color, var(--stzh-color-primary80));--hover-background-color:var(--background-color)}[active].sc-stzh-button-h:not([active=false]){--color:var(--stzh-button-active-color, var(--stzh-color-white));--background-color:var(--stzh-button-active-background-color, var(--stzh-color-secondary60));--hover-color:var(--stzh-button-active-hover-color, var(--stzh-color-white));--hover-background-color:var(--stzh-button-active-hover-background-color, var(--stzh-color-secondary60))}[disabled].sc-stzh-button-h:not([disabled=false]),[a11y-disabled].sc-stzh-button-h:not([a11y-disabled=false]){--color:var(--stzh-button-disabled-color, var(--stzh-color-white));--background-color:var(--stzh-button-disabled-background-color, var(--stzh-color-grey70));--hover-color:var(--color);--hover-background-color:var(--background-color)}[disabled].sc-stzh-button-h:not([disabled=false])[variant=secondary],[a11y-disabled].sc-stzh-button-h:not([a11y-disabled=false])[variant=secondary]{--color:var(--stzh-button-secondary-disabled-color, var(--stzh-color-grey80));--background-color:var(--stzh-button-secondary-disabled-background-color, var(--stzh-color-grey20))}[disabled].sc-stzh-button-h:not([disabled=false])[variant=input],[a11y-disabled].sc-stzh-button-h:not([a11y-disabled=false])[variant=input]{--color:var(--stzh-button-input-disabled-color, var(--stzh-color-grey80));--background-color:var(--stzh-button-input-disabled-background-color, var(--stzh-color-grey20))}[disabled].sc-stzh-button-h:not([disabled=false])[variant=tertiary],[disabled].sc-stzh-button-h:not([disabled=false])[variant=tertiary-plain],[a11y-disabled].sc-stzh-button-h:not([a11y-disabled=false])[variant=tertiary],[a11y-disabled].sc-stzh-button-h:not([a11y-disabled=false])[variant=tertiary-plain]{--color:var(--stzh-button-tertiary-disabled-color, var(--stzh-color-grey70));--background-color:var(--stzh-button-tertiary-disabled-background-color, transparent)}.sc-stzh-button-h:where([size=\"small\"]){--height:var(--stzh-form-input-small-height);--padding-left:var(--stzh-space-large);--padding-right:var(--stzh-space-large);--font-size:var(--stzh-font-milli-font-size);--line-height:var(--stzh-font-milli-text-line-height);--icon-size:var(--stzh-icon-size-medium)}.sc-stzh-button-h:where([size=\"tiny\"]){--height:var(--stzh-form-input-tiny-height);--padding-left:var(--stzh-space-medium);--padding-right:var(--stzh-space-medium);--padding-top:calc(var(--stzh-space-xxsmall) - var(--border-width));--padding-bottom:calc(var(--stzh-space-xxsmall) - var(--border-width));--font-size:var(--stzh-font-milli-font-size);--line-height:var(--stzh-font-milli-text-line-height);--icon-size:var(--stzh-icon-size-medium)}@media screen and (min-width: 600px){.sc-stzh-button-h:where([size-small=\"default\"]){--height:var(--stzh-form-input-height);--padding-top:calc(var(--stzh-space-xsmall) - var(--border-width));--padding-bottom:calc(var(--stzh-space-xsmall) - var(--border-width));--padding-left:var(--stzh-space-xlarge);--padding-right:var(--stzh-space-xlarge);--font-size:var(--stzh-font-centi-font-size);--line-height:var(--stzh-font-centi-text-line-height);--letter-spacing:normal;--icon-size:var(--stzh-icon-size-medium);--icon-toggle-size:0.90625rem}.sc-stzh-button-h:where([size-small=\"default\"]):where([icon-only]:not([icon-only=\"false\"])){--icon-size:var(--stzh-icon-size-large)}.sc-stzh-button-h:where([size-small=\"small\"]){--height:var(--stzh-form-input-small-height);--padding-left:var(--stzh-space-large);--padding-right:var(--stzh-space-large);--font-size:var(--stzh-font-milli-font-size);--line-height:var(--stzh-font-milli-text-line-height);--icon-size:var(--stzh-icon-size-medium)}.sc-stzh-button-h:where([size-small=\"tiny\"]){--height:var(--stzh-form-input-tiny-height);--padding-left:var(--stzh-space-medium);--padding-right:var(--stzh-space-medium);--padding-top:calc(var(--stzh-space-xxsmall) - var(--border-width));--padding-bottom:calc(var(--stzh-space-xxsmall) - var(--border-width));--font-size:var(--stzh-font-milli-font-size);--line-height:var(--stzh-font-milli-text-line-height);--icon-size:var(--stzh-icon-size-medium)}}@media screen and (min-width: 900px){.sc-stzh-button-h:where([size-medium=\"default\"]){--height:var(--stzh-form-input-height);--padding-top:calc(var(--stzh-space-xsmall) - var(--border-width));--padding-bottom:calc(var(--stzh-space-xsmall) - var(--border-width));--padding-left:var(--stzh-space-xlarge);--padding-right:var(--stzh-space-xlarge);--font-size:var(--stzh-font-centi-font-size);--line-height:var(--stzh-font-centi-text-line-height);--letter-spacing:normal;--icon-size:var(--stzh-icon-size-medium);--icon-toggle-size:0.90625rem}.sc-stzh-button-h:where([size-medium=\"default\"]):where([icon-only]:not([icon-only=\"false\"])){--icon-size:var(--stzh-icon-size-large)}.sc-stzh-button-h:where([size-medium=\"small\"]){--height:var(--stzh-form-input-small-height);--padding-left:var(--stzh-space-large);--padding-right:var(--stzh-space-large);--font-size:var(--stzh-font-milli-font-size);--line-height:var(--stzh-font-milli-text-line-height);--icon-size:var(--stzh-icon-size-medium)}.sc-stzh-button-h:where([size-medium=\"tiny\"]){--height:var(--stzh-form-input-tiny-height);--padding-left:var(--stzh-space-medium);--padding-right:var(--stzh-space-medium);--padding-top:calc(var(--stzh-space-xxsmall) - var(--border-width));--padding-bottom:calc(var(--stzh-space-xxsmall) - var(--border-width));--font-size:var(--stzh-font-milli-font-size);--line-height:var(--stzh-font-milli-text-line-height);--icon-size:var(--stzh-icon-size-medium)}}@media screen and (min-width: 1260px){.sc-stzh-button-h:where([size-large=\"default\"]){--height:var(--stzh-form-input-height);--padding-top:calc(var(--stzh-space-xsmall) - var(--border-width));--padding-bottom:calc(var(--stzh-space-xsmall) - var(--border-width));--padding-left:var(--stzh-space-xlarge);--padding-right:var(--stzh-space-xlarge);--font-size:var(--stzh-font-centi-font-size);--line-height:var(--stzh-font-centi-text-line-height);--letter-spacing:normal;--icon-size:var(--stzh-icon-size-medium);--icon-toggle-size:0.90625rem}.sc-stzh-button-h:where([size-large=\"default\"]):where([icon-only]:not([icon-only=\"false\"])){--icon-size:var(--stzh-icon-size-large)}.sc-stzh-button-h:where([size-large=\"small\"]){--height:var(--stzh-form-input-small-height);--padding-left:var(--stzh-space-large);--padding-right:var(--stzh-space-large);--font-size:var(--stzh-font-milli-font-size);--line-height:var(--stzh-font-milli-text-line-height);--icon-size:var(--stzh-icon-size-medium)}.sc-stzh-button-h:where([size-large=\"tiny\"]){--height:var(--stzh-form-input-tiny-height);--padding-left:var(--stzh-space-medium);--padding-right:var(--stzh-space-medium);--padding-top:calc(var(--stzh-space-xxsmall) - var(--border-width));--padding-bottom:calc(var(--stzh-space-xxsmall) - var(--border-width));--font-size:var(--stzh-font-milli-font-size);--line-height:var(--stzh-font-milli-text-line-height);--icon-size:var(--stzh-icon-size-medium)}}@media screen and (min-width: 1600px){.sc-stzh-button-h:where([size-ultra=\"default\"]){--height:var(--stzh-form-input-height);--padding-top:calc(var(--stzh-space-xsmall) - var(--border-width));--padding-bottom:calc(var(--stzh-space-xsmall) - var(--border-width));--padding-left:var(--stzh-space-xlarge);--padding-right:var(--stzh-space-xlarge);--font-size:var(--stzh-font-centi-font-size);--line-height:var(--stzh-font-centi-text-line-height);--letter-spacing:normal;--icon-size:var(--stzh-icon-size-medium);--icon-toggle-size:0.90625rem}.sc-stzh-button-h:where([size-ultra=\"default\"]):where([icon-only]:not([icon-only=\"false\"])){--icon-size:var(--stzh-icon-size-large)}.sc-stzh-button-h:where([size-ultra=\"small\"]){--height:var(--stzh-form-input-small-height);--padding-left:var(--stzh-space-large);--padding-right:var(--stzh-space-large);--font-size:var(--stzh-font-milli-font-size);--line-height:var(--stzh-font-milli-text-line-height);--icon-size:var(--stzh-icon-size-medium)}.sc-stzh-button-h:where([size-ultra=\"tiny\"]){--height:var(--stzh-form-input-tiny-height);--padding-left:var(--stzh-space-medium);--padding-right:var(--stzh-space-medium);--padding-top:calc(var(--stzh-space-xxsmall) - var(--border-width));--padding-bottom:calc(var(--stzh-space-xxsmall) - var(--border-width));--font-size:var(--stzh-font-milli-font-size);--line-height:var(--stzh-font-milli-text-line-height);--icon-size:var(--stzh-icon-size-medium)}}@keyframes stzh-button-effect-cta{0%,20%,50%,80%,100%{transform:translateX(0)}40%{transform:translateX(-0.5rem)}60%{transform:translateX(-0.25rem)}}.stzh-button.sc-stzh-button{font-family:var(--stzh-font-family-heavy);font-weight:var(--stzh-font-weight-heavy);font-style:var(--stzh-font-style-heavy);font-size:var(--font-size);line-height:var(--line-height);letter-spacing:var(--letter-spacing);position:relative;z-index:0;overflow:visible;display:flex;align-items:center;justify-content:stretch;-webkit-appearance:none;-moz-appearance:none;appearance:none;color:var(--color);padding-top:var(--padding-top);padding-bottom:var(--padding-bottom);padding-left:var(--padding-left);padding-right:var(--padding-right);background-color:var(--background-color);transition-duration:var(--stzh-base-transition-animation-speed);transition-property:color, background-color, border-color;border-style:solid;border-width:var(--border-width);border-color:var(--border-color);cursor:var(--cursor);-webkit-text-decoration-line:none;text-decoration-line:none;width:100%;min-height:100%;margin:0;border-radius:var(--border-radius);text-align:left;box-shadow:var(--box-shadow)}.stzh-button.sc-stzh-button:hover{border-color:var(--hover-border-color);background-color:var(--hover-background-color);color:var(--hover-color)}.stzh-button__vhidden.sc-stzh-button{border:0;clip:rect(0 0 0 0);-webkit-clip-path:inset(100%);clip-path:inset(100%);width:0.0625rem;height:0.0625rem;overflow:hidden;padding:0;position:absolute}.stzh-button__inner.sc-stzh-button{display:flex;align-items:center;justify-content:center;flex-grow:1}.stzh-button__icon-wrapper.sc-stzh-button,.stzh-button__toggle-icon-wrapper.sc-stzh-button{display:inline-flex;align-items:center;justify-content:center;flex-shrink:0}.stzh-button__icon-wrapper.sc-stzh-button{--stzh-icon-size:var(--icon-size);width:auto;height:1em}.stzh-button__toggle-icon-wrapper.sc-stzh-button{width:var(--icon-size);height:var(--icon-size)}.stzh-button__toggle-icon.sc-stzh-button{position:relative;display:block;width:var(--icon-toggle-size);height:var(--icon-toggle-size)}.stzh-button__toggle-icon.sc-stzh-button::before,.stzh-button__toggle-icon.sc-stzh-button::after{position:absolute;top:50%;left:50%;content:\"\";display:block;width:var(--icon-toggle-size);height:0.125rem;transition-property:transform, background-color;transition-duration:500ms;transform-origin:top left;background-color:var(--icon-toggle-color)}@media (prefers-reduced-motion: reduce){.stzh-button__toggle-icon.sc-stzh-button::before,.stzh-button__toggle-icon.sc-stzh-button::after{transition:none}}.stzh-button__toggle-icon.sc-stzh-button::before{transform:rotate(180deg) translate(-50%, -50%)}.stzh-button__toggle-icon.sc-stzh-button::after{transform:rotate(90deg) translate(-50%, -50%)}.stzh-button__text.sc-stzh-button{overflow-wrap:break-word;word-wrap:break-word;word-break:break-word;-webkit-hyphens:auto;hyphens:auto;white-space:var(--white-space);text-align:center}.stzh-button__icon-wrapper.sc-stzh-button:not(:empty)+.stzh-button__text.sc-stzh-button:not(:empty),.stzh-button__text.sc-stzh-button:not(:empty)+.stzh-button__icon-wrapper.sc-stzh-button:not(:empty){margin-left:var(--icon-text-margin)}.stzh-button__badge.sc-stzh-button{position:absolute;z-index:1;top:0;right:0}.stzh-button__input.sc-stzh-button{position:absolute;top:0;left:0;width:100%;height:100%;margin:0;z-index:-1;opacity:0;pointer-events:none;-webkit-appearance:none;-moz-appearance:none;appearance:none}.stzh-button__mark.sc-stzh-button{border:0.125rem solid var(--stzh-color-black);background-color:var(--stzh-color-white);width:1.5rem;height:1.5rem;flex-shrink:0;border-radius:50%;display:inline-flex;justify-content:center;align-items:center;transition:border-color var(--stzh-base-transition-animation-speed);width:1.25rem;height:1.25rem;margin-right:var(--stzh-space-xsmall);border-color:currentColor}.stzh-button__mark.sc-stzh-button::before{content:\"\"}.stzh-button__check.sc-stzh-button{background-color:currentColor;color:var(--stzh-color-primary70);width:1rem;height:1rem;border-radius:50%;opacity:0;transition-property:color;transition-duration:var(--stzh-base-transition-animation-speed)}@media (forced-colors: active), (-ms-high-contrast: active){.stzh-button__check.sc-stzh-button{background-color:ButtonText}}.stzh-button__input.sc-stzh-button:checked:hover~.stzh-button__inner.sc-stzh-button .stzh-button__mark.sc-stzh-button .stzh-button__check.sc-stzh-button,.stzh-button__input.sc-stzh-button:checked:focus~.stzh-button__inner.sc-stzh-button .stzh-button__mark.sc-stzh-button .stzh-button__check.sc-stzh-button{color:var(--stzh-color-secondary60)}.stzh-button.sc-stzh-button:hover .stzh-button__mark.sc-stzh-button,.stzh-button__input.sc-stzh-button:focus:hover~.stzh-button__inner.sc-stzh-button .stzh-button__mark.sc-stzh-button,.stzh-button__input.sc-stzh-button:checked:hover~.stzh-button__inner.sc-stzh-button .stzh-button__mark.sc-stzh-button,.stzh-button__input.sc-stzh-button:checked:focus~.stzh-button__inner.sc-stzh-button .stzh-button__mark.sc-stzh-button{border-color:var(--stzh-color-secondary60)}.stzh-button__input.sc-stzh-button:focus~.stzh-button__inner.sc-stzh-button .stzh-button__mark.sc-stzh-button,.stzh-button__input.sc-stzh-button:checked~.stzh-button__inner.sc-stzh-button .stzh-button__mark.sc-stzh-button{border-color:var(--stzh-color-primary)}.stzh-button__input.sc-stzh-button:checked~.stzh-button__inner.sc-stzh-button .stzh-button__mark.sc-stzh-button .stzh-button__check.sc-stzh-button{opacity:1}.stzh-button--is-disabled.sc-stzh-button .stzh-button__input.sc-stzh-button~.stzh-button__inner.sc-stzh-button .stzh-button__mark.sc-stzh-button .stzh-button__check.sc-stzh-button{color:var(--stzh-color-grey70)}.stzh-button--is-disabled.sc-stzh-button .stzh-button__input.sc-stzh-button~.stzh-button__inner.sc-stzh-button .stzh-button__mark.sc-stzh-button{border-color:var(--stzh-color-grey70)}.stzh-button--is-disabled.sc-stzh-button .stzh-button__mark.sc-stzh-button{background-color:var(--stzh-color-grey10)}.stzh-button--is-expanded.sc-stzh-button .stzh-button__toggle-icon.sc-stzh-button::before,.stzh-button--is-expanded.sc-stzh-button .stzh-button__toggle-icon.sc-stzh-button::after{transform:rotate(0) translate(-50%, -50%)}.stzh-button--badge-position-button.sc-stzh-button .stzh-button__icon-wrapper.sc-stzh-button{position:static}.stzh-button__badge.sc-stzh-button,.stzh-button--badge-position-button.sc-stzh-button .stzh-button__badge.sc-stzh-button{top:calc(var(--stzh-space-xsmall) * -1);right:calc(var(--stzh-space-xsmall) * -1)}.stzh-button--badge-position-icon.stzh-button--has-icon.sc-stzh-button .stzh-button__icon-wrapper.sc-stzh-button{position:relative}.stzh-button--badge-position-icon.stzh-button--has-icon.sc-stzh-button .stzh-button__badge.sc-stzh-button{top:calc(var(--stzh-space-xsmall) * -1);right:calc(var(--stzh-space-small) * -1)}.stzh-button--badge-position-icon.stzh-button--has-icon.stzh-button--has-badge.sc-stzh-button .stzh-button__icon-wrapper.sc-stzh-button:not(:empty)+.stzh-button__text.sc-stzh-button:not(:empty),.stzh-button--badge-position-icon.stzh-button--has-icon.stzh-button--has-badge.sc-stzh-button .stzh-button__text.sc-stzh-button:not(:empty)+.stzh-button__icon-wrapper.sc-stzh-button:not(:empty){margin-left:var(--badge-icon-text-margin)}.stzh-button--has-icon-only.sc-stzh-button .stzh-button__text.sc-stzh-button{border:0;clip:rect(0 0 0 0);-webkit-clip-path:inset(100%);clip-path:inset(100%);width:0.0625rem;height:0.0625rem;overflow:hidden;padding:0;position:absolute}.stzh-button--effect-cta.sc-stzh-button:hover .stzh-button__icon-wrapper.sc-stzh-button{animation:stzh-button-effect-cta 1s}.stzh-button--align-left.sc-stzh-button .stzh-button__inner.sc-stzh-button{justify-content:flex-start}.stzh-button--align-right.sc-stzh-button .stzh-button__inner.sc-stzh-button{justify-content:flex-end}.stzh-button--align-center.sc-stzh-button .stzh-button__inner.sc-stzh-button{justify-content:center}.stzh-button--align-space-between.sc-stzh-button .stzh-button__inner.sc-stzh-button{justify-content:space-between}.stzh-button--is-disabled.sc-stzh-button{cursor:not-allowed}.stzh-button--default.has-focus.sc-stzh-button{outline:var(--stzh-flyingfocus-color) solid 0.1875rem}";
|
|
7
7
|
|
|
8
8
|
const StzhButton = /*@__PURE__*/ proxyCustomElement(class StzhButton extends HTMLElement {
|
|
9
9
|
constructor() {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"file":"stzh-button2.js","mappings":"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","names":[],"sources":["src/components/stzh-button/stzh-button.scss?tag=stzh-button&encapsulation=scoped","src/components/stzh-button/stzh-button.tsx"],"sourcesContent":["/**\n * @prop --height: Height of button\n * @prop --padding-top: Padding top of button\n * @prop --padding-bottom: Padding bottom of button\n * @prop --padding-left: Padding left of button\n * @prop --padding-right: Padding right of button\n * @prop --border-radius: Border radius of button\n * @prop --color: Color of button\n * @prop --background-color: Background color of button\n * @prop --border-color: Border color of button\n * @prop --icon-size: Size of icon next to button\n * @prop --hover-color: Hover color of button\n * @prop --hover-background-color: Hover background color of button\n * @prop --hover-border-color: Hover border color of button\n * @prop --white-space: White space behaviour of button\n *\n * @prop --stzh-form-input-height: **Global**: Height of fields & buttons\n * @prop --stzh-form-input-small-height: **Global**: Height of fields & buttons when small variant is used\n * @prop --stzh-form-input-tiny-height: **Global**: Height of fields & buttons when tiny variant is used\n */\n\n@mixin button--size-default() {\n --height: #{$formInputHeight};\n --padding-top: calc(#{space('xsmall')} - var(--border-width));\n --padding-bottom: calc(#{space('xsmall')} - var(--border-width));\n --padding-left: #{space('xlarge')};\n --padding-right: #{space('xlarge')};\n --font-size: var(--stzh-font-centi-font-size);\n --line-height: var(--stzh-font-centi-text-line-height);\n --letter-spacing: normal;\n --icon-size: #{iconSize('medium')};\n --icon-toggle-size: 14.5px;\n\n &:where([icon-only]:not([icon-only=\"false\"])) {\n --icon-size: #{iconSize('large')};\n }\n}\n\n@mixin button--size-small() {\n --height: #{$formInputHeightSmall};\n --padding-left: #{space('large')};\n --padding-right: #{space('large')};\n --font-size: var(--stzh-font-milli-font-size);\n --line-height: var(--stzh-font-milli-text-line-height);\n --icon-size: #{iconSize('medium')};\n}\n\n@mixin button--size-tiny() {\n --height: #{$formInputHeightTiny};\n --padding-left: #{space('medium')};\n --padding-right: #{space('medium')};\n --padding-top: calc(#{space('xxsmall')} - var(--border-width));\n --padding-bottom: calc(#{space('xxsmall')} - var(--border-width));\n --font-size: var(--stzh-font-milli-font-size);\n --line-height: var(--stzh-font-milli-text-line-height);\n --icon-size: #{iconSize('medium')};\n}\n\n:host {\n @include button--size-default;\n --color: var(--stzh-button-color, #{$colorWhite});\n --background-color: var(--stzh-button-background-color, #{$colorPrimary70});\n --border-width: 0px;\n --border-color: transparent;\n --border-radius: 0px;\n --icon-text-margin: #{space('xsmall')};\n --icon-toggle-color: currentColor;\n --badge-icon-text-margin: calc(var(--icon-text-margin) + #{space('xxsmall')});\n --white-space: var(--stzh-button-white-space, normal);\n --box-shadow: none;\n --cursor: pointer;\n\n --hover-color: var(--stzh-button-hover-color, #{$colorWhite});\n --hover-background-color: var(--stzh-button-hover-background-color, #{$colorSecondary60});\n --hover-border-color: transparent;\n\n display: inline-grid;\n width: auto;\n min-width: var(--height);\n min-height: var(--height);\n pointer-events: var(--stzh-button-pointer-events, auto);\n\n @media print {\n -webkit-print-color-adjust: exact;\n print-color-adjust: exact;\n }\n\n &[icon-only]:not([icon-only=\"false\"]) {\n --padding-top: 0;\n --padding-bottom: 0;\n --padding-left: 0;\n --padding-right: 0;\n\n width: var(--height);\n height: var(--height);\n }\n\n &[fullwidth]:not([fullwidth=\"false\"]) {\n width: 100%;\n display: grid;\n }\n\n &[rounded]:not([rounded=\"false\"]) {\n --border-radius: var(--height);\n }\n\n &[no-padding-left]:not([no-padding-left=\"false\"]) {\n --padding-left: 0px;\n }\n\n &[no-padding-right]:not([no-padding-right=\"false\"]) {\n --padding-right: 0px;\n }\n\n &[variant=\"secondary\"] {\n --color: var(--stzh-button-secondary-color, #{$colorPrimary70});\n --background-color: var(--stzh-button-secondary-background-color, #{$colorSecondary30});\n\n --hover-color: var(--stzh-button-secondary-hover-color, #{$colorPrimary80});\n --hover-background-color: var(--stzh-button-secondary-hover-background-color, #{$colorSecondary40});\n }\n\n &[variant=\"tertiary\"] {\n --color: var(--stzh-button-tertiary-color, #{$colorPrimary70});\n --background-color: var(--stzh-button-tertiary-background-color, transparent);\n\n --hover-color: var(--stzh-button-tertiary-hover-color, #{$colorPrimary80});\n --hover-background-color: var(--stzh-button-tertiary-hover-background-color, #{$colorSecondary20});\n }\n\n &[variant=\"tertiary-plain\"] {\n --color: var(--stzh-button-tertiary-color, #{$colorPrimary70});\n --background-color: transparent;\n\n --hover-color: var(--stzh-button-tertiary-hover-color, #{$colorPrimary80});\n --hover-background-color: var(--background-color);\n }\n\n &[active]:not([active=\"false\"]) {\n --color: var(--stzh-button-active-color, #{$colorWhite});\n --background-color: var(--stzh-button-active-background-color, #{$colorSecondary60});\n\n --hover-color: var(--stzh-button-active-hover-color, #{$colorWhite});\n --hover-background-color: var(--stzh-button-active-hover-background-color, #{$colorSecondary60});\n }\n\n &[disabled]:not([disabled=\"false\"]),\n &[a11y-disabled]:not([a11y-disabled=\"false\"]) {\n --color: var(--stzh-button-disabled-color, #{$colorWhite});\n --background-color: var(--stzh-button-disabled-background-color, #{$colorGrey70});\n\n --hover-color: var(--color);\n --hover-background-color: var(--background-color);\n }\n\n &[disabled]:not([disabled=\"false\"])[variant=\"secondary\"],\n &[a11y-disabled]:not([a11y-disabled=\"false\"])[variant=\"secondary\"] {\n --color: var(--stzh-button-secondary-disabled-color, #{$colorGrey80});\n --background-color: var(--stzh-button-secondary-disabled-background-color, #{$colorGrey20});\n }\n\n &[disabled]:not([disabled=\"false\"])[variant=\"input\"],\n &[a11y-disabled]:not([a11y-disabled=\"false\"])[variant=\"input\"] {\n --color: var(--stzh-button-input-disabled-color, #{$colorGrey80});\n --background-color: var(--stzh-button-input-disabled-background-color, #{$colorGrey20});\n }\n\n &[disabled]:not([disabled=\"false\"])[variant=\"tertiary\"],\n &[disabled]:not([disabled=\"false\"])[variant=\"tertiary-plain\"],\n &[a11y-disabled]:not([a11y-disabled=\"false\"])[variant=\"tertiary\"],\n &[a11y-disabled]:not([a11y-disabled=\"false\"])[variant=\"tertiary-plain\"] {\n --color: var(--stzh-button-tertiary-disabled-color, #{$colorGrey70});\n --background-color: var(--stzh-button-tertiary-disabled-background-color, transparent);\n }\n}\n\n:host(:where([size=\"small\"])) {\n @include button--size-small;\n}\n\n:host(:where([size=\"tiny\"])) {\n @include button--size-tiny;\n}\n\n@each $breakpoint, $size in $breakpoints {\n @include mq($from: $breakpoint) {\n :host(:where([size-#{$breakpoint}=\"default\"])) {\n @include button--size-default;\n }\n\n :host(:where([size-#{$breakpoint}=\"small\"])) {\n @include button--size-small;\n }\n\n :host(:where([size-#{$breakpoint}=\"tiny\"])) {\n @include button--size-tiny;\n }\n }\n}\n\n@keyframes stzh-button-effect-cta {\n\t0%,\n\t20%,\n\t50%,\n\t80%,\n\t100% {\n\t\ttransform: translateX(0);\n\t}\n\n\t40% {\n\t\ttransform: translateX(-8px);\n\t}\n\n\t60% {\n\t\ttransform: translateX(-4px);\n\t}\n}\n\n.stzh-button {\n @include font('heavy');\n font-size: var(--font-size);\n line-height: var(--line-height);\n letter-spacing: var(--letter-spacing);\n position: relative;\n z-index: 0;\n overflow: visible;\n display: flex;\n align-items: center;\n justify-content: stretch;\n appearance: none;\n color: var(--color);\n padding-top: var(--padding-top);\n padding-bottom: var(--padding-bottom);\n padding-left: var(--padding-left);\n padding-right: var(--padding-right);\n background-color: var(--background-color);\n transition-duration: $baseTransitionAnimationSpeed;\n transition-property: color, background-color, border-color;\n border-style: solid;\n border-width: var(--border-width);\n border-color: var(--border-color);\n cursor: var(--cursor);\n text-decoration-line: none;\n width: 100%;\n height: 100%;\n border-radius: var(--border-radius);\n text-align: left;\n box-shadow: var(--box-shadow);\n\n &:hover {\n border-color: var(--hover-border-color);\n background-color: var(--hover-background-color);\n color: var(--hover-color);\n }\n\n &__vhidden {\n @include visuallyhidden;\n }\n\n &__inner {\n display: flex;\n align-items: center;\n justify-content: center;\n flex-grow: 1;\n }\n\n &__icon-wrapper,\n &__toggle-icon-wrapper {\n display: inline-flex;\n align-items: center;\n justify-content: center;\n flex-shrink: 0;\n }\n\n &__icon-wrapper {\n --stzh-icon-size: var(--icon-size);\n width: auto;\n height: 1em;\n }\n\n &__toggle-icon-wrapper {\n width: var(--icon-size);\n height: var(--icon-size);\n }\n\n &__toggle-icon {\n position: relative;\n display: block;\n width: var(--icon-toggle-size);\n height: var(--icon-toggle-size);\n\n &::before,\n &::after {\n position: absolute;\n top: 50%;\n left: 50%;\n content: '';\n display: block;\n width: var(--icon-toggle-size);\n height: 2px;\n transition-property: transform, background-color;\n transition-duration: 500ms;\n transform-origin: top left;\n background-color: var(--icon-toggle-color);\n\n @media (prefers-reduced-motion: reduce) {\n transition: none;\n }\n }\n\n &::before {\n transform: rotate(180deg) translate(-50%, -50%);\n }\n\n &::after {\n transform: rotate(90deg) translate(-50%, -50%);\n }\n }\n\n &__text {\n @include wordWrap;\n white-space: var(--white-space);\n text-align: center;\n }\n\n &__icon-wrapper:not(:empty) + &__text:not(:empty),\n &__text:not(:empty) + &__icon-wrapper:not(:empty) {\n margin-left: var(--icon-text-margin);\n }\n\n &__badge {\n position: absolute;\n z-index: 1;\n top: 0;\n right: 0;\n }\n\n &__input {\n @include visuallyhiddenInput;\n }\n\n &__mark {\n @include radio__mark();\n width: 20px;\n height: 20px;\n margin-right: space('xsmall');\n border-color: currentColor;\n }\n\n &__check {\n @include radio__check();\n }\n\n /* Hover / Focus / Checked / Disabled of Radio Type */\n\n &__input:checked:hover ~ &__inner &__mark &__check,\n &__input:checked:focus ~ &__inner &__mark &__check {\n color: $colorSecondary60;\n }\n\n &:hover &__mark,\n &__input:focus:hover ~ &__inner &__mark,\n &__input:checked:hover ~ &__inner &__mark,\n &__input:checked:focus ~ &__inner &__mark {\n border-color: $colorSecondary60;\n }\n\n &__input:focus ~ &__inner &__mark,\n &__input:checked ~ &__inner &__mark {\n border-color: $colorPrimary;\n }\n\n &__input:checked ~ &__inner &__mark &__check {\n opacity: 1;\n }\n\n &--is-disabled &__input ~ &__inner &__mark &__check {\n color: $formDisabledColor;\n }\n\n &--is-disabled &__input ~ &__inner &__mark {\n border-color: $formDisabledBorderColor;\n }\n\n &--is-disabled &__mark {\n background-color: $formDisabledBackgroundColor;\n }\n\n /* Is expanded */\n\n &--is-expanded &__toggle-icon {\n &::before,\n &::after {\n transform: rotate(0) translate(-50%, -50%);\n }\n }\n\n /* Badge positioning variants */\n\n &--badge-position-button &__icon-wrapper {\n position: static;\n }\n\n &__badge,\n &--badge-position-button &__badge {\n top: calc(#{space('xsmall')} * -1);\n right: calc(#{space('xsmall')} * -1);\n }\n\n &--badge-position-icon#{&}--has-icon &__icon-wrapper {\n position: relative;\n }\n\n &--badge-position-icon#{&}--has-icon &__badge {\n top: calc(#{space('xsmall')} * -1);\n right: calc(#{space('small')} * -1);\n }\n\n &--badge-position-icon#{&}--has-icon#{&}--has-badge &__icon-wrapper:not(:empty) + &__text:not(:empty),\n &--badge-position-icon#{&}--has-icon#{&}--has-badge &__text:not(:empty) + &__icon-wrapper:not(:empty) {\n margin-left: var(--badge-icon-text-margin);\n }\n\n /* Variant if button only has icon */\n\n &--has-icon-only &__text {\n @include visuallyhidden;\n }\n\n /* Effect */\n\n &--effect-cta:hover &__icon-wrapper {\n\t\tanimation: stzh-button-effect-cta 1s;\n }\n\n /* Alignment variants */\n\n &--align-left &__inner {\n justify-content: flex-start;\n }\n\n &--align-right &__inner {\n justify-content: flex-end;\n }\n\n &--align-center &__inner {\n justify-content: center;\n }\n\n &--align-space-between &__inner {\n justify-content: space-between;\n }\n\n /* Disabled variant */\n\n &--is-disabled {\n cursor: not-allowed;\n }\n\n /* Default */\n\n &--default.has-focus {\n outline: var(--stzh-flyingfocus-color) solid 3px;\n }\n}\n","import {\n Component,\n Host,\n Fragment,\n Element,\n h,\n Prop,\n Event,\n EventEmitter,\n Listen\n} from \"@stencil/core\";\n\nimport {\n StzhButtonFocusEvent,\n StzhButtonBlurEvent,\n StzhButtonChangeEvent,\n StzhButtonSize,\n StzhButtonVariant,\n StzhBadgeType,\n StzhButtonClickEvent\n} from \"../../index\";\n\nimport { hasSlot } from \"../../utils/utils\";\nimport { StzhLocaleComponent } from \"../../utils/translation-utils\";\n\n/**\n * @slot - Slot for label/text content\n * @slot icon - Slot for icon element\n */\n@Component({\n tag: \"stzh-button\",\n styleUrl: \"stzh-button.scss\",\n scoped: true\n})\nexport class StzhButton {\n /** Translation strings */\n @Prop() localization: StzhLocaleComponent;\n\n /** Display a badge aligned to button or icons */\n @Prop() badge: string = \"\";\n\n /** Badge type */\n @Prop({ reflect: true }) badgeType: StzhBadgeType = \"default\";\n\n /** Badge position */\n @Prop({ reflect: true }) badgePosition: \"icon\" | \"button\" = \"button\";\n\n /** Whether badge should be displayed empty */\n @Prop({ reflect: true }) badgeEmpty: boolean = false;\n\n /** Whether the button is full width */\n @Prop({ reflect: true }) fullwidth: boolean = false;\n\n /** Whether the button is rounded */\n @Prop({ reflect: true }) rounded: boolean = false;\n\n /** Size variant */\n @Prop({ reflect: true }) size: StzhButtonSize = \"default\";\n\n /** Size variant (above small breakpoint) */\n @Prop({ reflect: true }) sizeSmall: StzhButtonSize;\n\n /** Size variant (above medium breakpoint) */\n @Prop({ reflect: true }) sizeMedium: StzhButtonSize;\n\n /** Size variant (above large breakpoint) */\n @Prop({ reflect: true }) sizeLarge: StzhButtonSize;\n\n /** Size variant (above ultra breakpoint) */\n @Prop({ reflect: true }) sizeUltra: StzhButtonSize;\n\n /** Text alignment */\n @Prop({ reflect: true }) textAlign: \"left\" | \"center\" | \"right\" | \"space-between\" | \"default\" = \"default\";\n\n /** Variant style */\n @Prop({ reflect: true }) variant: StzhButtonVariant = \"default\";\n\n /** Icon (use instead of icon slot) */\n @Prop() icon: string = \"\";\n\n /** Icon Position */\n @Prop({ reflect: true }) iconPosition: \"left\" | \"right\" = \"left\";\n\n /** Checked status (if type is radio) */\n @Prop({ mutable: true, reflect: true }) checked: boolean = false;\n\n /** Default checked (used by reset, if type is radio) */\n @Prop({ mutable: true }) defaultChecked: boolean;\n\n /** The name of the input element (if type is button or radio) */\n @Prop({ reflect: true }) name: string = \"\";\n\n /** The value of the input element (if type is button or radio) */\n @Prop({ mutable: true }) value: string = \"\";\n\n /** `href` if the button should be used as link */\n @Prop() href: string = \"\";\n\n /** Rel (if href is used) */\n @Prop() rel: string;\n\n /** Target if the button is used as link (if `href` used) */\n @Prop() target: string = \"\";\n\n /** Download attribute of link (if `href` used) */\n @Prop() download: string;\n\n /** Type of the button */\n @Prop() type: \"button\" | \"submit\" | \"reset\" | \"radio\" = \"button\";\n\n /** Whether the button is disabled */\n @Prop({ reflect: true }) disabled: boolean = false;\n\n /** Whether the button is active */\n @Prop({ reflect: true }) active: boolean = false;\n\n /** Label */\n @Prop() label: string = \"\";\n\n /** Effect/Animation used */\n @Prop() effect: \"default\" | \"cta\" = \"default\";\n\n /** Whether only an icon is used inside the button */\n @Prop({ reflect: true }) iconOnly: boolean = false;\n\n /** Whether padding left should be removed */\n @Prop({ reflect: true }) noPaddingLeft: boolean = false;\n\n /** Whether padding right should be removed */\n @Prop({ reflect: true }) noPaddingRight: boolean = false;\n\n /** Access key of button (usually a number e.g. 1) */\n @Prop() buttonAccesskey: string;\n\n /** ID of button element */\n @Prop() buttonId: string;\n\n /** Whether to show toggle icon (show minus when a11yExpanded=true, otherwise plus) */\n @Prop({ reflect: true }) showToggleIcon: boolean = false;\n\n /** Accessible label for screen readers to replace visible text */\n @Prop({ attribute: \"a11y-label\" }) a11yLabel: string;\n\n /** Id for element which describes the button (this will be overwritten if description prop or slot is used, used by stzh-radiogroup) */\n @Prop({ attribute: \"a11y-describedby\" }) a11yDescribedby: string = \"\";\n\n /** Aria expanded of link/button */\n @Prop({ reflect: true, attribute: \"a11y-expanded\" }) a11yExpanded: boolean;\n\n /** Aria disabled of link/button */\n @Prop({ reflect: true, attribute: \"a11y-disabled\" }) a11yDisabled: boolean;\n\n /** Aria controls of link/button */\n @Prop({ attribute: \"a11y-controls\" }) a11yControls: string;\n\n /** Aria current of link/button */\n @Prop({ attribute: \"a11y-current\" }) a11yCurrent: string;\n\n /** Tabindex of link/button */\n @Prop({ attribute: \"a11y-tabindex\" }) a11yTabindex: string;\n\n /**\n * For Adobe Analytics.\n * Will be rendered as value of `s-object-id` attribute to the link/button element.\n * Default value will be taken from `label` prop or default slot.\n */\n @Prop() analyticsId: string;\n\n @Element() element: HTMLStzhButtonElement;\n\n @Listen(\"reset\", { target: \"document\" })\n resetListener(event: Event) {\n if ((event.target as HTMLElement).contains(this.element)) {\n requestAnimationFrame(() => {\n this.handleReset();\n });\n }\n }\n\n /** Focus event */\n @Event() stzhFocus: EventEmitter<StzhButtonFocusEvent>;\n\n /** Blur event */\n @Event() stzhBlur: EventEmitter<StzhButtonBlurEvent>;\n\n /** Change event (only called if type is radio) */\n @Event() stzhChange: EventEmitter<StzhButtonChangeEvent>;\n\n /** Click event */\n @Event() stzhClick: EventEmitter<StzhButtonClickEvent>;\n\n private button: HTMLButtonElement | HTMLAnchorElement | HTMLLabelElement;\n private input: HTMLInputElement;\n private text: HTMLDivElement;\n private focusedByInput: boolean = false;\n\n private handleReset = async () => {\n this.checked = this.defaultChecked;\n }\n\n private onInput = (event: InputEvent) => {\n this.checked = this.input.checked;\n this.stzhChange.emit({\n component: \"stzh-button\",\n originalEvent: event,\n value: this.value,\n checked: this.checked\n });\n }\n\n private onRootFocus = () => {\n if (!this.focusedByInput) {\n this.button.focus();\n }\n\n this.focusedByInput = false;\n }\n\n private onFocus = (event: FocusEvent) => {\n this.focusedByInput = true;\n\n const focusEvent = new FocusEvent(\"focus\", {\n view: window,\n bubbles: false,\n cancelable: false\n });\n\n this.element.dispatchEvent(focusEvent);\n this.stzhFocus.emit({\n component: \"stzh-button\",\n originalEvent: event\n });\n }\n\n private onBlur = (event: FocusEvent) => {\n const blurEvent = new FocusEvent(\"blur\", {\n view: window,\n bubbles: false,\n cancelable: false\n });\n\n this.element.dispatchEvent(blurEvent);\n this.stzhBlur.emit({\n component: \"stzh-button\",\n originalEvent: event\n });\n }\n\n private onClick = (event: MouseEvent) => {\n if (this.disabled) {\n event.stopPropagation();\n event.preventDefault();\n }\n else {\n this.stzhClick.emit({\n component: \"stzh-button\",\n originalEvent: event,\n href: this.href\n });\n }\n }\n\n private renderIcon(iconUsed: boolean): HTMLInputElement {\n return (\n <div class=\"stzh-button__icon-wrapper\">\n {this.icon &&\n <stzh-icon class=\"stzh-button__icon\" name={this.icon}></stzh-icon>\n }\n {!this.icon && this.showToggleIcon &&\n <div class=\"stzh-button__toggle-icon-wrapper\">\n <div class=\"stzh-button__toggle-icon\"></div>\n </div>\n }\n {!this.icon && !this.showToggleIcon &&\n <slot name=\"icon\"></slot>\n }\n {(this.badge || this.badgeEmpty) && this.badgePosition === \"icon\" && iconUsed &&\n <stzh-badge class=\"stzh-button__badge\" label={this.badge} type={this.badgeType}></stzh-badge>\n }\n </div>\n );\n }\n\n private renderContent(): HTMLDivElement {\n return (\n <div\n class=\"stzh-button__text\"\n ref={(el) => (this.text = el as HTMLDivElement)}\n >\n {this.rel && this.rel.includes('external') && <div class=\"stzh-button__vhidden\">{this.localization.$globals.externalLinkLabel}</div>}\n {this.download && <div class=\"stzh-button__vhidden\">{this.localization.$globals.downloadLinkLabel}</div>}\n {this.label ? this.label : <slot></slot>}\n </div>\n );\n }\n\n private renderInner(iconUsed: boolean): DocumentFragment {\n return (\n <Fragment>\n <div class=\"stzh-button__inner\">\n {this.type === \"radio\" &&\n <div class=\"stzh-button__mark\">\n <div class=\"stzh-button__check\"></div>\n </div>\n }\n {this.iconPosition === \"left\" && this.renderIcon(iconUsed)}\n {this.renderContent()}\n {this.iconPosition === \"right\" && this.renderIcon(iconUsed)}\n </div>\n {(this.badge || this.badgeEmpty) && (this.badgePosition === \"button\" || !iconUsed) &&\n <stzh-badge\n class=\"stzh-button__badge\"\n label={this.badge}\n type={this.badgeType}\n ></stzh-badge>\n }\n </Fragment>\n );\n }\n async componentWillLoad() {\n this.defaultChecked = typeof this.defaultChecked === \"boolean\" ? this.defaultChecked : this.checked;\n\n if (!this.localization) {\n this.localization = await window.stzhComponents.utils.fetchTranslations(this.element, \"button\");\n }\n }\n\n componentDidRender() {\n requestAnimationFrame(() => {\n this.button?.setAttribute(\"s-object-id\", this.analyticsId || this.text.innerText);\n });\n }\n\n render() {\n const iconUsed: boolean = hasSlot(this.element, \"icon\") || !!this.icon;\n const classes = {\n \"stzh-button\": true,\n \"stzh-button--has-icon\": iconUsed,\n \"stzh-button--has-icon-only\": this.iconOnly,\n \"stzh-button--has-badge\": !!this.badge,\n \"stzh-button--is-rounded\": this.rounded,\n \"stzh-button--is-fullwidth\": this.fullwidth,\n \"stzh-button--is-disabled\": this.disabled || this.a11yDisabled,\n \"stzh-button--is-active\": this.active,\n \"stzh-button--is-expanded\": this.a11yExpanded,\n [`stzh-button--effect-${this.effect}`]: !!this.effect,\n [`stzh-button--badge-position-${this.badgePosition}`]: !!this.badgePosition,\n [`stzh-button--align-${this.textAlign}`]: !!this.textAlign,\n [`stzh-button--type-${this.type}`]: !!this.type,\n [`stzh-button--${this.variant}`]: !!this.variant\n };\n\n return (\n <Host tabindex={this.disabled ? null : \"-1\"} onFocus={this.onRootFocus}>\n {this.href ?\n <a\n ref={(el) => (this.button = el as HTMLAnchorElement)}\n href={this.disabled ? null : this.href}\n rel={this.rel}\n download={this.download}\n target={this.target}\n class={classes}\n aria-label={this.a11yLabel || null}\n aria-describedby={this.a11yDescribedby || null}\n aria-disabled={typeof this.a11yDisabled !== \"undefined\"\n ? (this.a11yDisabled ? \"true\" : \"false\") : null}\n aria-expanded={typeof this.a11yExpanded !== \"undefined\"\n ? (this.a11yExpanded ? \"true\" : \"false\") : null}\n aria-controls={this.a11yControls || null}\n aria-current={this.a11yCurrent || null}\n id={this.buttonId}\n accessKey={this.buttonAccesskey}\n tabindex={this.a11yTabindex}\n onFocus={this.onFocus}\n onBlur={this.onBlur}\n onClick={this.onClick}\n >\n {this.renderInner(iconUsed)}\n </a>\n :\n this.type === \"radio\" ?\n <label\n ref={(el) => (this.button = el as HTMLLabelElement)}\n class={classes}\n onClick={this.onClick}\n >\n <input\n ref={(el) => (this.input = el as HTMLInputElement)}\n type=\"radio\"\n class=\"stzh-button__input\"\n name={this.name}\n value={this.value}\n defaultChecked={this.defaultChecked}\n checked={this.checked}\n disabled={this.disabled}\n aria-label={this.a11yLabel || null}\n aria-describedby={this.a11yDescribedby || null}\n aria-disabled={typeof this.a11yDisabled !== \"undefined\"\n ? (this.a11yDisabled ? \"true\" : \"false\") : null}\n aria-expanded={typeof this.a11yExpanded !== \"undefined\"\n ? (this.a11yExpanded ? \"true\" : \"false\") : null}\n aria-controls={this.a11yControls || null}\n aria-current={this.a11yCurrent || null}\n id={this.buttonId}\n accessKey={this.buttonAccesskey}\n tabindex={this.a11yTabindex}\n onFocus={this.onFocus}\n onBlur={this.onBlur}\n onClick={this.onClick}\n onInput={this.onInput}\n />\n {this.renderInner(iconUsed)}\n </label>\n :\n <button\n ref={(el) => (this.button = el as HTMLButtonElement)}\n class={classes}\n type={this.type}\n name={this.name}\n value={this.value}\n disabled={this.disabled}\n aria-label={this.a11yLabel || null}\n aria-describedby={this.a11yDescribedby || null}\n aria-disabled={typeof this.a11yDisabled !== \"undefined\"\n ? (this.a11yDisabled ? \"true\" : \"false\") : null}\n aria-expanded={typeof this.a11yExpanded !== \"undefined\"\n ? (this.a11yExpanded ? \"true\" : \"false\") : null}\n aria-controls={this.a11yControls || null}\n aria-current={this.a11yCurrent || null}\n id={this.buttonId}\n accessKey={this.buttonAccesskey}\n tabindex={this.a11yTabindex}\n onFocus={this.onFocus}\n onBlur={this.onBlur}\n onClick={this.onClick}\n >\n {this.renderInner(iconUsed)}\n </button>\n }\n </Host>\n );\n }\n}\n"],"version":3}
|
|
1
|
+
{"file":"stzh-button2.js","mappings":"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","names":[],"sources":["src/components/stzh-button/stzh-button.scss?tag=stzh-button&encapsulation=scoped","src/components/stzh-button/stzh-button.tsx"],"sourcesContent":["/**\n * @prop --height: Height of button\n * @prop --padding-top: Padding top of button\n * @prop --padding-bottom: Padding bottom of button\n * @prop --padding-left: Padding left of button\n * @prop --padding-right: Padding right of button\n * @prop --border-radius: Border radius of button\n * @prop --color: Color of button\n * @prop --background-color: Background color of button\n * @prop --border-color: Border color of button\n * @prop --icon-size: Size of icon next to button\n * @prop --hover-color: Hover color of button\n * @prop --hover-background-color: Hover background color of button\n * @prop --hover-border-color: Hover border color of button\n * @prop --white-space: White space behaviour of button\n *\n * @prop --stzh-form-input-height: **Global**: Height of fields & buttons\n * @prop --stzh-form-input-small-height: **Global**: Height of fields & buttons when small variant is used\n * @prop --stzh-form-input-tiny-height: **Global**: Height of fields & buttons when tiny variant is used\n */\n\n@mixin button--size-default() {\n --height: #{$formInputHeight};\n --padding-top: calc(#{space('xsmall')} - var(--border-width));\n --padding-bottom: calc(#{space('xsmall')} - var(--border-width));\n --padding-left: #{space('xlarge')};\n --padding-right: #{space('xlarge')};\n --font-size: var(--stzh-font-centi-font-size);\n --line-height: var(--stzh-font-centi-text-line-height);\n --letter-spacing: normal;\n --icon-size: #{iconSize('medium')};\n --icon-toggle-size: 14.5px;\n\n &:where([icon-only]:not([icon-only=\"false\"])) {\n --icon-size: #{iconSize('large')};\n }\n}\n\n@mixin button--size-small() {\n --height: #{$formInputHeightSmall};\n --padding-left: #{space('large')};\n --padding-right: #{space('large')};\n --font-size: var(--stzh-font-milli-font-size);\n --line-height: var(--stzh-font-milli-text-line-height);\n --icon-size: #{iconSize('medium')};\n}\n\n@mixin button--size-tiny() {\n --height: #{$formInputHeightTiny};\n --padding-left: #{space('medium')};\n --padding-right: #{space('medium')};\n --padding-top: calc(#{space('xxsmall')} - var(--border-width));\n --padding-bottom: calc(#{space('xxsmall')} - var(--border-width));\n --font-size: var(--stzh-font-milli-font-size);\n --line-height: var(--stzh-font-milli-text-line-height);\n --icon-size: #{iconSize('medium')};\n}\n\n:host {\n @include button--size-default;\n --color: var(--stzh-button-color, #{$colorWhite});\n --background-color: var(--stzh-button-background-color, #{$colorPrimary70});\n --border-width: 0px;\n --border-color: transparent;\n --border-radius: 0px;\n --icon-text-margin: #{space('xsmall')};\n --icon-toggle-color: currentColor;\n --badge-icon-text-margin: calc(var(--icon-text-margin) + #{space('xxsmall')});\n --white-space: var(--stzh-button-white-space, normal);\n --box-shadow: none;\n --cursor: pointer;\n\n --hover-color: var(--stzh-button-hover-color, #{$colorWhite});\n --hover-background-color: var(--stzh-button-hover-background-color, #{$colorSecondary60});\n --hover-border-color: transparent;\n\n display: inline-flex;\n width: auto;\n min-width: var(--height);\n min-height: var(--height);\n pointer-events: var(--stzh-button-pointer-events, auto);\n\n @media print {\n -webkit-print-color-adjust: exact;\n print-color-adjust: exact;\n }\n\n &[icon-only]:not([icon-only=\"false\"]) {\n --padding-top: 0;\n --padding-bottom: 0;\n --padding-left: 0;\n --padding-right: 0;\n\n width: var(--height);\n height: var(--height);\n }\n\n &[fullwidth]:not([fullwidth=\"false\"]) {\n width: 100%;\n display: grid;\n }\n\n &[rounded]:not([rounded=\"false\"]) {\n --border-radius: var(--height);\n }\n\n &[no-padding-left]:not([no-padding-left=\"false\"]) {\n --padding-left: 0px;\n }\n\n &[no-padding-right]:not([no-padding-right=\"false\"]) {\n --padding-right: 0px;\n }\n\n &[variant=\"secondary\"] {\n --color: var(--stzh-button-secondary-color, #{$colorPrimary70});\n --background-color: var(--stzh-button-secondary-background-color, #{$colorSecondary30});\n\n --hover-color: var(--stzh-button-secondary-hover-color, #{$colorPrimary80});\n --hover-background-color: var(--stzh-button-secondary-hover-background-color, #{$colorSecondary40});\n }\n\n &[variant=\"tertiary\"] {\n --color: var(--stzh-button-tertiary-color, #{$colorPrimary70});\n --background-color: var(--stzh-button-tertiary-background-color, transparent);\n\n --hover-color: var(--stzh-button-tertiary-hover-color, #{$colorPrimary80});\n --hover-background-color: var(--stzh-button-tertiary-hover-background-color, #{$colorSecondary20});\n }\n\n &[variant=\"tertiary-plain\"] {\n --color: var(--stzh-button-tertiary-color, #{$colorPrimary70});\n --background-color: transparent;\n\n --hover-color: var(--stzh-button-tertiary-hover-color, #{$colorPrimary80});\n --hover-background-color: var(--background-color);\n }\n\n &[active]:not([active=\"false\"]) {\n --color: var(--stzh-button-active-color, #{$colorWhite});\n --background-color: var(--stzh-button-active-background-color, #{$colorSecondary60});\n\n --hover-color: var(--stzh-button-active-hover-color, #{$colorWhite});\n --hover-background-color: var(--stzh-button-active-hover-background-color, #{$colorSecondary60});\n }\n\n &[disabled]:not([disabled=\"false\"]),\n &[a11y-disabled]:not([a11y-disabled=\"false\"]) {\n --color: var(--stzh-button-disabled-color, #{$colorWhite});\n --background-color: var(--stzh-button-disabled-background-color, #{$colorGrey70});\n\n --hover-color: var(--color);\n --hover-background-color: var(--background-color);\n }\n\n &[disabled]:not([disabled=\"false\"])[variant=\"secondary\"],\n &[a11y-disabled]:not([a11y-disabled=\"false\"])[variant=\"secondary\"] {\n --color: var(--stzh-button-secondary-disabled-color, #{$colorGrey80});\n --background-color: var(--stzh-button-secondary-disabled-background-color, #{$colorGrey20});\n }\n\n &[disabled]:not([disabled=\"false\"])[variant=\"input\"],\n &[a11y-disabled]:not([a11y-disabled=\"false\"])[variant=\"input\"] {\n --color: var(--stzh-button-input-disabled-color, #{$colorGrey80});\n --background-color: var(--stzh-button-input-disabled-background-color, #{$colorGrey20});\n }\n\n &[disabled]:not([disabled=\"false\"])[variant=\"tertiary\"],\n &[disabled]:not([disabled=\"false\"])[variant=\"tertiary-plain\"],\n &[a11y-disabled]:not([a11y-disabled=\"false\"])[variant=\"tertiary\"],\n &[a11y-disabled]:not([a11y-disabled=\"false\"])[variant=\"tertiary-plain\"] {\n --color: var(--stzh-button-tertiary-disabled-color, #{$colorGrey70});\n --background-color: var(--stzh-button-tertiary-disabled-background-color, transparent);\n }\n}\n\n:host(:where([size=\"small\"])) {\n @include button--size-small;\n}\n\n:host(:where([size=\"tiny\"])) {\n @include button--size-tiny;\n}\n\n@each $breakpoint, $size in $breakpoints {\n @include mq($from: $breakpoint) {\n :host(:where([size-#{$breakpoint}=\"default\"])) {\n @include button--size-default;\n }\n\n :host(:where([size-#{$breakpoint}=\"small\"])) {\n @include button--size-small;\n }\n\n :host(:where([size-#{$breakpoint}=\"tiny\"])) {\n @include button--size-tiny;\n }\n }\n}\n\n@keyframes stzh-button-effect-cta {\n\t0%,\n\t20%,\n\t50%,\n\t80%,\n\t100% {\n\t\ttransform: translateX(0);\n\t}\n\n\t40% {\n\t\ttransform: translateX(-8px);\n\t}\n\n\t60% {\n\t\ttransform: translateX(-4px);\n\t}\n}\n\n.stzh-button {\n @include font('heavy');\n font-size: var(--font-size);\n line-height: var(--line-height);\n letter-spacing: var(--letter-spacing);\n position: relative;\n z-index: 0;\n overflow: visible;\n display: flex;\n align-items: center;\n justify-content: stretch;\n appearance: none;\n color: var(--color);\n padding-top: var(--padding-top);\n padding-bottom: var(--padding-bottom);\n padding-left: var(--padding-left);\n padding-right: var(--padding-right);\n background-color: var(--background-color);\n transition-duration: $baseTransitionAnimationSpeed;\n transition-property: color, background-color, border-color;\n border-style: solid;\n border-width: var(--border-width);\n border-color: var(--border-color);\n cursor: var(--cursor);\n text-decoration-line: none;\n width: 100%;\n min-height: 100%;\n margin: 0;\n border-radius: var(--border-radius);\n text-align: left;\n box-shadow: var(--box-shadow);\n\n &:hover {\n border-color: var(--hover-border-color);\n background-color: var(--hover-background-color);\n color: var(--hover-color);\n }\n\n &__vhidden {\n @include visuallyhidden;\n }\n\n &__inner {\n display: flex;\n align-items: center;\n justify-content: center;\n flex-grow: 1;\n }\n\n &__icon-wrapper,\n &__toggle-icon-wrapper {\n display: inline-flex;\n align-items: center;\n justify-content: center;\n flex-shrink: 0;\n }\n\n &__icon-wrapper {\n --stzh-icon-size: var(--icon-size);\n width: auto;\n height: 1em;\n }\n\n &__toggle-icon-wrapper {\n width: var(--icon-size);\n height: var(--icon-size);\n }\n\n &__toggle-icon {\n position: relative;\n display: block;\n width: var(--icon-toggle-size);\n height: var(--icon-toggle-size);\n\n &::before,\n &::after {\n position: absolute;\n top: 50%;\n left: 50%;\n content: '';\n display: block;\n width: var(--icon-toggle-size);\n height: 2px;\n transition-property: transform, background-color;\n transition-duration: 500ms;\n transform-origin: top left;\n background-color: var(--icon-toggle-color);\n\n @media (prefers-reduced-motion: reduce) {\n transition: none;\n }\n }\n\n &::before {\n transform: rotate(180deg) translate(-50%, -50%);\n }\n\n &::after {\n transform: rotate(90deg) translate(-50%, -50%);\n }\n }\n\n &__text {\n @include wordWrap;\n white-space: var(--white-space);\n text-align: center;\n }\n\n &__icon-wrapper:not(:empty) + &__text:not(:empty),\n &__text:not(:empty) + &__icon-wrapper:not(:empty) {\n margin-left: var(--icon-text-margin);\n }\n\n &__badge {\n position: absolute;\n z-index: 1;\n top: 0;\n right: 0;\n }\n\n &__input {\n @include visuallyhiddenInput;\n }\n\n &__mark {\n @include radio__mark();\n width: 20px;\n height: 20px;\n margin-right: space('xsmall');\n border-color: currentColor;\n }\n\n &__check {\n @include radio__check();\n }\n\n /* Hover / Focus / Checked / Disabled of Radio Type */\n\n &__input:checked:hover ~ &__inner &__mark &__check,\n &__input:checked:focus ~ &__inner &__mark &__check {\n color: $colorSecondary60;\n }\n\n &:hover &__mark,\n &__input:focus:hover ~ &__inner &__mark,\n &__input:checked:hover ~ &__inner &__mark,\n &__input:checked:focus ~ &__inner &__mark {\n border-color: $colorSecondary60;\n }\n\n &__input:focus ~ &__inner &__mark,\n &__input:checked ~ &__inner &__mark {\n border-color: $colorPrimary;\n }\n\n &__input:checked ~ &__inner &__mark &__check {\n opacity: 1;\n }\n\n &--is-disabled &__input ~ &__inner &__mark &__check {\n color: $formDisabledColor;\n }\n\n &--is-disabled &__input ~ &__inner &__mark {\n border-color: $formDisabledBorderColor;\n }\n\n &--is-disabled &__mark {\n background-color: $formDisabledBackgroundColor;\n }\n\n /* Is expanded */\n\n &--is-expanded &__toggle-icon {\n &::before,\n &::after {\n transform: rotate(0) translate(-50%, -50%);\n }\n }\n\n /* Badge positioning variants */\n\n &--badge-position-button &__icon-wrapper {\n position: static;\n }\n\n &__badge,\n &--badge-position-button &__badge {\n top: calc(#{space('xsmall')} * -1);\n right: calc(#{space('xsmall')} * -1);\n }\n\n &--badge-position-icon#{&}--has-icon &__icon-wrapper {\n position: relative;\n }\n\n &--badge-position-icon#{&}--has-icon &__badge {\n top: calc(#{space('xsmall')} * -1);\n right: calc(#{space('small')} * -1);\n }\n\n &--badge-position-icon#{&}--has-icon#{&}--has-badge &__icon-wrapper:not(:empty) + &__text:not(:empty),\n &--badge-position-icon#{&}--has-icon#{&}--has-badge &__text:not(:empty) + &__icon-wrapper:not(:empty) {\n margin-left: var(--badge-icon-text-margin);\n }\n\n /* Variant if button only has icon */\n\n &--has-icon-only &__text {\n @include visuallyhidden;\n }\n\n /* Effect */\n\n &--effect-cta:hover &__icon-wrapper {\n\t\tanimation: stzh-button-effect-cta 1s;\n }\n\n /* Alignment variants */\n\n &--align-left &__inner {\n justify-content: flex-start;\n }\n\n &--align-right &__inner {\n justify-content: flex-end;\n }\n\n &--align-center &__inner {\n justify-content: center;\n }\n\n &--align-space-between &__inner {\n justify-content: space-between;\n }\n\n /* Disabled variant */\n\n &--is-disabled {\n cursor: not-allowed;\n }\n\n /* Default */\n\n &--default.has-focus {\n outline: var(--stzh-flyingfocus-color) solid 3px;\n }\n}\n","import {\n Component,\n Host,\n Fragment,\n Element,\n h,\n Prop,\n Event,\n EventEmitter,\n Listen\n} from \"@stencil/core\";\n\nimport {\n StzhButtonFocusEvent,\n StzhButtonBlurEvent,\n StzhButtonChangeEvent,\n StzhButtonSize,\n StzhButtonVariant,\n StzhBadgeType,\n StzhButtonClickEvent\n} from \"../../index\";\n\nimport { hasSlot } from \"../../utils/utils\";\nimport { StzhLocaleComponent } from \"../../utils/translation-utils\";\n\n/**\n * @slot - Slot for label/text content\n * @slot icon - Slot for icon element\n */\n@Component({\n tag: \"stzh-button\",\n styleUrl: \"stzh-button.scss\",\n scoped: true\n})\nexport class StzhButton {\n /** Translation strings */\n @Prop() localization: StzhLocaleComponent;\n\n /** Display a badge aligned to button or icons */\n @Prop() badge: string = \"\";\n\n /** Badge type */\n @Prop({ reflect: true }) badgeType: StzhBadgeType = \"default\";\n\n /** Badge position */\n @Prop({ reflect: true }) badgePosition: \"icon\" | \"button\" = \"button\";\n\n /** Whether badge should be displayed empty */\n @Prop({ reflect: true }) badgeEmpty: boolean = false;\n\n /** Whether the button is full width */\n @Prop({ reflect: true }) fullwidth: boolean = false;\n\n /** Whether the button is rounded */\n @Prop({ reflect: true }) rounded: boolean = false;\n\n /** Size variant */\n @Prop({ reflect: true }) size: StzhButtonSize = \"default\";\n\n /** Size variant (above small breakpoint) */\n @Prop({ reflect: true }) sizeSmall: StzhButtonSize;\n\n /** Size variant (above medium breakpoint) */\n @Prop({ reflect: true }) sizeMedium: StzhButtonSize;\n\n /** Size variant (above large breakpoint) */\n @Prop({ reflect: true }) sizeLarge: StzhButtonSize;\n\n /** Size variant (above ultra breakpoint) */\n @Prop({ reflect: true }) sizeUltra: StzhButtonSize;\n\n /** Text alignment */\n @Prop({ reflect: true }) textAlign: \"left\" | \"center\" | \"right\" | \"space-between\" | \"default\" = \"default\";\n\n /** Variant style */\n @Prop({ reflect: true }) variant: StzhButtonVariant = \"default\";\n\n /** Icon (use instead of icon slot) */\n @Prop() icon: string = \"\";\n\n /** Icon Position */\n @Prop({ reflect: true }) iconPosition: \"left\" | \"right\" = \"left\";\n\n /** Checked status (if type is radio) */\n @Prop({ mutable: true, reflect: true }) checked: boolean = false;\n\n /** Default checked (used by reset, if type is radio) */\n @Prop({ mutable: true }) defaultChecked: boolean;\n\n /** The name of the input element (if type is button or radio) */\n @Prop({ reflect: true }) name: string = \"\";\n\n /** The value of the input element (if type is button or radio) */\n @Prop({ mutable: true }) value: string = \"\";\n\n /** `href` if the button should be used as link */\n @Prop() href: string = \"\";\n\n /** Rel (if href is used) */\n @Prop() rel: string;\n\n /** Target if the button is used as link (if `href` used) */\n @Prop() target: string = \"\";\n\n /** Download attribute of link (if `href` used) */\n @Prop() download: string;\n\n /** Type of the button */\n @Prop() type: \"button\" | \"submit\" | \"reset\" | \"radio\" = \"button\";\n\n /** Whether the button is disabled */\n @Prop({ reflect: true }) disabled: boolean = false;\n\n /** Whether the button is active */\n @Prop({ reflect: true }) active: boolean = false;\n\n /** Label */\n @Prop() label: string = \"\";\n\n /** Effect/Animation used */\n @Prop() effect: \"default\" | \"cta\" = \"default\";\n\n /** Whether only an icon is used inside the button */\n @Prop({ reflect: true }) iconOnly: boolean = false;\n\n /** Whether padding left should be removed */\n @Prop({ reflect: true }) noPaddingLeft: boolean = false;\n\n /** Whether padding right should be removed */\n @Prop({ reflect: true }) noPaddingRight: boolean = false;\n\n /** Access key of button (usually a number e.g. 1) */\n @Prop() buttonAccesskey: string;\n\n /** ID of button element */\n @Prop() buttonId: string;\n\n /** Whether to show toggle icon (show minus when a11yExpanded=true, otherwise plus) */\n @Prop({ reflect: true }) showToggleIcon: boolean = false;\n\n /** Accessible label for screen readers to replace visible text */\n @Prop({ attribute: \"a11y-label\" }) a11yLabel: string;\n\n /** Id for element which describes the button (this will be overwritten if description prop or slot is used, used by stzh-radiogroup) */\n @Prop({ attribute: \"a11y-describedby\" }) a11yDescribedby: string = \"\";\n\n /** Aria expanded of link/button */\n @Prop({ reflect: true, attribute: \"a11y-expanded\" }) a11yExpanded: boolean;\n\n /** Aria disabled of link/button */\n @Prop({ reflect: true, attribute: \"a11y-disabled\" }) a11yDisabled: boolean;\n\n /** Aria controls of link/button */\n @Prop({ attribute: \"a11y-controls\" }) a11yControls: string;\n\n /** Aria current of link/button */\n @Prop({ attribute: \"a11y-current\" }) a11yCurrent: string;\n\n /** Tabindex of link/button */\n @Prop({ attribute: \"a11y-tabindex\" }) a11yTabindex: string;\n\n /**\n * For Adobe Analytics.\n * Will be rendered as value of `s-object-id` attribute to the link/button element.\n * Default value will be taken from `label` prop or default slot.\n */\n @Prop() analyticsId: string;\n\n @Element() element: HTMLStzhButtonElement;\n\n @Listen(\"reset\", { target: \"document\" })\n resetListener(event: Event) {\n if ((event.target as HTMLElement).contains(this.element)) {\n requestAnimationFrame(() => {\n this.handleReset();\n });\n }\n }\n\n /** Focus event */\n @Event() stzhFocus: EventEmitter<StzhButtonFocusEvent>;\n\n /** Blur event */\n @Event() stzhBlur: EventEmitter<StzhButtonBlurEvent>;\n\n /** Change event (only called if type is radio) */\n @Event() stzhChange: EventEmitter<StzhButtonChangeEvent>;\n\n /** Click event */\n @Event() stzhClick: EventEmitter<StzhButtonClickEvent>;\n\n private button: HTMLButtonElement | HTMLAnchorElement | HTMLLabelElement;\n private input: HTMLInputElement;\n private text: HTMLDivElement;\n private focusedByInput: boolean = false;\n\n private handleReset = async () => {\n this.checked = this.defaultChecked;\n }\n\n private onInput = (event: InputEvent) => {\n this.checked = this.input.checked;\n this.stzhChange.emit({\n component: \"stzh-button\",\n originalEvent: event,\n value: this.value,\n checked: this.checked\n });\n }\n\n private onRootFocus = () => {\n if (!this.focusedByInput) {\n this.button.focus();\n }\n\n this.focusedByInput = false;\n }\n\n private onFocus = (event: FocusEvent) => {\n this.focusedByInput = true;\n\n const focusEvent = new FocusEvent(\"focus\", {\n view: window,\n bubbles: false,\n cancelable: false\n });\n\n this.element.dispatchEvent(focusEvent);\n this.stzhFocus.emit({\n component: \"stzh-button\",\n originalEvent: event\n });\n }\n\n private onBlur = (event: FocusEvent) => {\n const blurEvent = new FocusEvent(\"blur\", {\n view: window,\n bubbles: false,\n cancelable: false\n });\n\n this.element.dispatchEvent(blurEvent);\n this.stzhBlur.emit({\n component: \"stzh-button\",\n originalEvent: event\n });\n }\n\n private onClick = (event: MouseEvent) => {\n if (this.disabled) {\n event.stopPropagation();\n event.preventDefault();\n }\n else {\n this.stzhClick.emit({\n component: \"stzh-button\",\n originalEvent: event,\n href: this.href\n });\n }\n }\n\n private renderIcon(iconUsed: boolean): HTMLInputElement {\n return (\n <div class=\"stzh-button__icon-wrapper\">\n {this.icon &&\n <stzh-icon class=\"stzh-button__icon\" name={this.icon}></stzh-icon>\n }\n {!this.icon && this.showToggleIcon &&\n <div class=\"stzh-button__toggle-icon-wrapper\">\n <div class=\"stzh-button__toggle-icon\"></div>\n </div>\n }\n {!this.icon && !this.showToggleIcon &&\n <slot name=\"icon\"></slot>\n }\n {(this.badge || this.badgeEmpty) && this.badgePosition === \"icon\" && iconUsed &&\n <stzh-badge class=\"stzh-button__badge\" label={this.badge} type={this.badgeType}></stzh-badge>\n }\n </div>\n );\n }\n\n private renderContent(): HTMLDivElement {\n return (\n <div\n class=\"stzh-button__text\"\n ref={(el) => (this.text = el as HTMLDivElement)}\n >\n {this.rel && this.rel.includes('external') && <div class=\"stzh-button__vhidden\">{this.localization.$globals.externalLinkLabel}</div>}\n {this.download && <div class=\"stzh-button__vhidden\">{this.localization.$globals.downloadLinkLabel}</div>}\n {this.label ? this.label : <slot></slot>}\n </div>\n );\n }\n\n private renderInner(iconUsed: boolean): DocumentFragment {\n return (\n <Fragment>\n <div class=\"stzh-button__inner\">\n {this.type === \"radio\" &&\n <div class=\"stzh-button__mark\">\n <div class=\"stzh-button__check\"></div>\n </div>\n }\n {this.iconPosition === \"left\" && this.renderIcon(iconUsed)}\n {this.renderContent()}\n {this.iconPosition === \"right\" && this.renderIcon(iconUsed)}\n </div>\n {(this.badge || this.badgeEmpty) && (this.badgePosition === \"button\" || !iconUsed) &&\n <stzh-badge\n class=\"stzh-button__badge\"\n label={this.badge}\n type={this.badgeType}\n ></stzh-badge>\n }\n </Fragment>\n );\n }\n async componentWillLoad() {\n this.defaultChecked = typeof this.defaultChecked === \"boolean\" ? this.defaultChecked : this.checked;\n\n if (!this.localization) {\n this.localization = await window.stzhComponents.utils.fetchTranslations(this.element, \"button\");\n }\n }\n\n componentDidRender() {\n requestAnimationFrame(() => {\n this.button?.setAttribute(\"s-object-id\", this.analyticsId || this.text.innerText);\n });\n }\n\n render() {\n const iconUsed: boolean = hasSlot(this.element, \"icon\") || !!this.icon;\n const classes = {\n \"stzh-button\": true,\n \"stzh-button--has-icon\": iconUsed,\n \"stzh-button--has-icon-only\": this.iconOnly,\n \"stzh-button--has-badge\": !!this.badge,\n \"stzh-button--is-rounded\": this.rounded,\n \"stzh-button--is-fullwidth\": this.fullwidth,\n \"stzh-button--is-disabled\": this.disabled || this.a11yDisabled,\n \"stzh-button--is-active\": this.active,\n \"stzh-button--is-expanded\": this.a11yExpanded,\n [`stzh-button--effect-${this.effect}`]: !!this.effect,\n [`stzh-button--badge-position-${this.badgePosition}`]: !!this.badgePosition,\n [`stzh-button--align-${this.textAlign}`]: !!this.textAlign,\n [`stzh-button--type-${this.type}`]: !!this.type,\n [`stzh-button--${this.variant}`]: !!this.variant\n };\n\n return (\n <Host tabindex={this.disabled ? null : \"-1\"} onFocus={this.onRootFocus}>\n {this.href ?\n <a\n ref={(el) => (this.button = el as HTMLAnchorElement)}\n href={this.disabled ? null : this.href}\n rel={this.rel}\n download={this.download}\n target={this.target}\n class={classes}\n aria-label={this.a11yLabel || null}\n aria-describedby={this.a11yDescribedby || null}\n aria-disabled={typeof this.a11yDisabled !== \"undefined\"\n ? (this.a11yDisabled ? \"true\" : \"false\") : null}\n aria-expanded={typeof this.a11yExpanded !== \"undefined\"\n ? (this.a11yExpanded ? \"true\" : \"false\") : null}\n aria-controls={this.a11yControls || null}\n aria-current={this.a11yCurrent || null}\n id={this.buttonId}\n accessKey={this.buttonAccesskey}\n tabindex={this.a11yTabindex}\n onFocus={this.onFocus}\n onBlur={this.onBlur}\n onClick={this.onClick}\n >\n {this.renderInner(iconUsed)}\n </a>\n :\n this.type === \"radio\" ?\n <label\n ref={(el) => (this.button = el as HTMLLabelElement)}\n class={classes}\n onClick={this.onClick}\n >\n <input\n ref={(el) => (this.input = el as HTMLInputElement)}\n type=\"radio\"\n class=\"stzh-button__input\"\n name={this.name}\n value={this.value}\n defaultChecked={this.defaultChecked}\n checked={this.checked}\n disabled={this.disabled}\n aria-label={this.a11yLabel || null}\n aria-describedby={this.a11yDescribedby || null}\n aria-disabled={typeof this.a11yDisabled !== \"undefined\"\n ? (this.a11yDisabled ? \"true\" : \"false\") : null}\n aria-expanded={typeof this.a11yExpanded !== \"undefined\"\n ? (this.a11yExpanded ? \"true\" : \"false\") : null}\n aria-controls={this.a11yControls || null}\n aria-current={this.a11yCurrent || null}\n id={this.buttonId}\n accessKey={this.buttonAccesskey}\n tabindex={this.a11yTabindex}\n onFocus={this.onFocus}\n onBlur={this.onBlur}\n onClick={this.onClick}\n onInput={this.onInput}\n />\n {this.renderInner(iconUsed)}\n </label>\n :\n <button\n ref={(el) => (this.button = el as HTMLButtonElement)}\n class={classes}\n type={this.type}\n name={this.name}\n value={this.value}\n disabled={this.disabled}\n aria-label={this.a11yLabel || null}\n aria-describedby={this.a11yDescribedby || null}\n aria-disabled={typeof this.a11yDisabled !== \"undefined\"\n ? (this.a11yDisabled ? \"true\" : \"false\") : null}\n aria-expanded={typeof this.a11yExpanded !== \"undefined\"\n ? (this.a11yExpanded ? \"true\" : \"false\") : null}\n aria-controls={this.a11yControls || null}\n aria-current={this.a11yCurrent || null}\n id={this.buttonId}\n accessKey={this.buttonAccesskey}\n tabindex={this.a11yTabindex}\n onFocus={this.onFocus}\n onBlur={this.onBlur}\n onClick={this.onClick}\n >\n {this.renderInner(iconUsed)}\n </button>\n }\n </Host>\n );\n }\n}\n"],"version":3}
|