@public-ui/components 1.6.0-rc.3 → 1.6.0-rc.4

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (91) hide show
  1. package/custom-elements.json +1 -8
  2. package/dist/cjs/kol-badge.cjs.entry.js +1 -1
  3. package/dist/cjs/kol-badge.cjs.entry.js.map +1 -1
  4. package/dist/cjs/kol-button-link.cjs.entry.js +1 -1
  5. package/dist/cjs/kol-button-link.cjs.entry.js.map +1 -1
  6. package/dist/cjs/kol-button-wc_2.cjs.entry.js +1 -1
  7. package/dist/cjs/kol-button-wc_2.cjs.entry.js.map +1 -1
  8. package/dist/cjs/kol-button.cjs.entry.js +1 -1
  9. package/dist/cjs/kol-button.cjs.entry.js.map +1 -1
  10. package/dist/cjs/kol-link-button.cjs.entry.js +1 -1
  11. package/dist/cjs/kol-link-button.cjs.entry.js.map +1 -1
  12. package/dist/cjs/kol-link-wc.cjs.entry.js +1 -1
  13. package/dist/cjs/kol-link-wc.cjs.entry.js.map +1 -1
  14. package/dist/cjs/kol-link.cjs.entry.js +1 -1
  15. package/dist/cjs/kol-link.cjs.entry.js.map +1 -1
  16. package/dist/cjs/kol-span-wc.cjs.entry.js +1 -1
  17. package/dist/cjs/kol-span-wc.cjs.entry.js.map +1 -1
  18. package/dist/cjs/kol-span.cjs.entry.js +1 -1
  19. package/dist/cjs/kol-span.cjs.entry.js.map +1 -1
  20. package/dist/cjs/kol-split-button.cjs.entry.js +1 -1
  21. package/dist/cjs/kol-split-button.cjs.entry.js.map +1 -1
  22. package/dist/components/component3.js +1 -1
  23. package/dist/components/component3.js.map +1 -1
  24. package/dist/components/component5.js +1 -1
  25. package/dist/components/component5.js.map +1 -1
  26. package/dist/components/component7.js +1 -1
  27. package/dist/components/component7.js.map +1 -1
  28. package/dist/components/component8.js +1 -1
  29. package/dist/components/component8.js.map +1 -1
  30. package/dist/components/kol-button-link.js +1 -1
  31. package/dist/components/kol-button-link.js.map +1 -1
  32. package/dist/components/kol-link-button.js +1 -1
  33. package/dist/components/kol-link-button.js.map +1 -1
  34. package/dist/components/kol-span.js +1 -1
  35. package/dist/components/kol-span.js.map +1 -1
  36. package/dist/components/kol-split-button.js +1 -1
  37. package/dist/components/kol-split-button.js.map +1 -1
  38. package/dist/components/shadow2.js +1 -1
  39. package/dist/components/shadow2.js.map +1 -1
  40. package/dist/components/shadow3.js +1 -1
  41. package/dist/components/shadow3.js.map +1 -1
  42. package/dist/esm/kol-badge.entry.js +1 -1
  43. package/dist/esm/kol-badge.entry.js.map +1 -1
  44. package/dist/esm/kol-button-link.entry.js +1 -1
  45. package/dist/esm/kol-button-link.entry.js.map +1 -1
  46. package/dist/esm/kol-button-wc_2.entry.js +1 -1
  47. package/dist/esm/kol-button-wc_2.entry.js.map +1 -1
  48. package/dist/esm/kol-button.entry.js +1 -1
  49. package/dist/esm/kol-button.entry.js.map +1 -1
  50. package/dist/esm/kol-link-button.entry.js +1 -1
  51. package/dist/esm/kol-link-button.entry.js.map +1 -1
  52. package/dist/esm/kol-link-wc.entry.js +1 -1
  53. package/dist/esm/kol-link-wc.entry.js.map +1 -1
  54. package/dist/esm/kol-link.entry.js +1 -1
  55. package/dist/esm/kol-link.entry.js.map +1 -1
  56. package/dist/esm/kol-span-wc.entry.js +1 -1
  57. package/dist/esm/kol-span-wc.entry.js.map +1 -1
  58. package/dist/esm/kol-span.entry.js +1 -1
  59. package/dist/esm/kol-span.entry.js.map +1 -1
  60. package/dist/esm/kol-split-button.entry.js +1 -1
  61. package/dist/esm/kol-split-button.entry.js.map +1 -1
  62. package/dist/kolibri/kol-badge.entry.js +1 -1
  63. package/dist/kolibri/kol-badge.entry.js.map +1 -1
  64. package/dist/kolibri/kol-button-link.entry.js +1 -1
  65. package/dist/kolibri/kol-button-link.entry.js.map +1 -1
  66. package/dist/kolibri/kol-button-wc_2.entry.js +1 -1
  67. package/dist/kolibri/kol-button-wc_2.entry.js.map +1 -1
  68. package/dist/kolibri/kol-button.entry.js +1 -1
  69. package/dist/kolibri/kol-button.entry.js.map +1 -1
  70. package/dist/kolibri/kol-link-button.entry.js +1 -1
  71. package/dist/kolibri/kol-link-button.entry.js.map +1 -1
  72. package/dist/kolibri/kol-link-wc.entry.js +1 -1
  73. package/dist/kolibri/kol-link-wc.entry.js.map +1 -1
  74. package/dist/kolibri/kol-link.entry.js +1 -1
  75. package/dist/kolibri/kol-link.entry.js.map +1 -1
  76. package/dist/kolibri/kol-span-wc.entry.js +1 -1
  77. package/dist/kolibri/kol-span-wc.entry.js.map +1 -1
  78. package/dist/kolibri/kol-span.entry.js +1 -1
  79. package/dist/kolibri/kol-span.entry.js.map +1 -1
  80. package/dist/kolibri/kol-split-button.entry.js +1 -1
  81. package/dist/kolibri/kol-split-button.entry.js.map +1 -1
  82. package/doc/badge.md +1 -1
  83. package/doc/button-link.md +1 -1
  84. package/doc/button.md +1 -1
  85. package/doc/link-button.md +1 -1
  86. package/doc/link.md +1 -1
  87. package/doc/span.md +1 -1
  88. package/doc/split-button.md +1 -1
  89. package/jest-test-results.json +1 -1
  90. package/package.json +1 -1
  91. package/dist/types/core/declare.d.ts +0 -10
@@ -1,4 +1,4 @@
1
1
  /*!
2
2
  * KoliBri - The accessible HTML-Standard
3
3
  */
4
- import{r as i,h as t,H as e,g as s}from"./index-6ad587d0.js";import{a}from"./i18n-3ed8125e.js";import{w as l}from"./button-link-283b2d32.js";import{d as n,g as h}from"./a11y.tipps-2e27f8e6.js";import{n as o}from"./dev.utils-157f0499.js";import{b as d,w as r,f,h as c,i as v}from"./prop.validators-f81af56e.js";import{a as b}from"./reuse-3a02afb9.js";import{v as p,w as _}from"./icon-83ced735.js";import{a as u,b as g}from"./label-559ca626.js";import{v as m}from"./tab-index-ff5374b8.js";import{v as j,a as x}from"./aria-selected-efb464e1.js";import{v as A}from"./hide-label-2baeb5c5.js";import"./index-ebb14eab.js";import"./index-ff788b4b.js";const k=(t,a)=>{"boolean"==typeof a?d(t,"_download",a):r(t,"_download",a)},y=(t,a)=>{d(t,"_stealth",a)},w=class{constructor(t){i(this,t),this.nonce=o(),this.catchRef=t=>{this.ref=t,b(this.host,this.ref)},this.onClick=t=>{var a,e;"function"==typeof(null===(a=this.state._on)||void 0===a?void 0:a.onClick)&&(t.preventDefault(),f(t,this.ref),null===(e=this.state._on)||void 0===e||e.onClick(t,this.state._href))},this.getRenderValues=()=>{let t={};"string"==typeof this.state._selector&&(t={role:"link",tabIndex:0,onClick:()=>{v(this.state._selector)},onKeyPress:()=>{v(this.state._selector)}});const a="string"==typeof this.state._target&&"_self"!==this.state._target,e={href:"string"==typeof this.state._href&&this.state._href.length>0?this.state._href:"javascript:void(0)",target:"string"==typeof this.state._target&&this.state._target.length>0?this.state._target:void 0,rel:a?"noopener":void 0};return"image"!==this.state._useCase&&!0!==this.state._hideLabel||"string"==typeof this.state._ariaLabel&&0!==this.state._ariaLabel.length||n("[KolLink] Es muss ein Aria-Label gesetzt werden, wenn eine Grafik verlinkt oder der Icon-Only-Modus verwendet wird."),{isExternal:a,tagAttrs:e,goToProps:t}},this._ariaControls=void 0,this._ariaCurrent=void 0,this._ariaExpanded=void 0,this._ariaLabel=void 0,this._ariaSelected=void 0,this._disabled=!1,this._download=!1,this._hideLabel=!1,this._href=void 0,this._icon=void 0,this._iconAlign=void 0,this._iconOnly=!1,this._label=void 0,this._on=void 0,this._role=void 0,this._selector=void 0,this._stealth=!1,this._tabIndex=void 0,this._target=void 0,this._targetDescription=a("kol-open-link-in-tab"),this._tooltipAlign="right",this._useCase="text",this.state={_href:"javascript:void(0)",_icon:{},_label:""}}render(){const{isExternal:a,tagAttrs:i,goToProps:s}=this.getRenderValues();return t(e,null,t("a",Object.assign({ref:this.catchRef},i,{"aria-controls":this.state._ariaControls,"aria-current":this.state._ariaCurrent,"aria-expanded":c(this.state._ariaExpanded),"aria-labelledby":"image"===this.state._useCase||!0===this.state._hideLabel?this.nonce:void 0,"aria-selected":c(this.state._ariaSelected),class:{disabled:!0===this.state._disabled,"skip ":!1!==this.state._stealth,"icon-only":!0===this.state._hideLabel,"hide-label":!0===this.state._hideLabel,"external-link":a}},this.state._on,{onClick:this.onClick,onKeyPress:this.onClick},s,{role:this.state._role,tabIndex:this.state._tabIndex}),t("kol-span-wc",{_icon:this._icon,_hideLabel:this._hideLabel,_label:this.state._label},t("slot",{name:"expert",slot:"expert"})),a&&t("kol-icon",{class:"external-link-icon",_ariaLabel:this.state._targetDescription,_icon:"codicon codicon-link-external"})),(!0===this.state._hideLabel||"image"===this.state._useCase)&&t("kol-tooltip",{"aria-hidden":"true",_align:this.state._tooltipAlign,_id:this.nonce,_label:this.state._ariaLabel||this.state._label}))}validateAriaControls(t){r(this,"_ariaControls",t)}validateAriaCurrent(t){j(this,t)}validateAriaExpanded(t){d(this,"_ariaExpanded",t)}validateAriaLabel(t){u(this,t)}validateAriaSelected(t){x(this,t)}validateDisabled(t){d(this,"_disabled",t),!0===t&&h()}validateDownload(t){k(this,t)}validateHideLabel(t){A(this,t)}validateHref(t){r(this,"_href",t)}validateIcon(t){p(this,t)}validateIconAlign(t){_(this,t)}validateIconOnly(t){this.validateHideLabel(t)}validateLabel(t){g(this,t)}validateOn(t){"object"==typeof t&&null!==t&&Object.prototype.hasOwnProperty.call(t,"onClick")&&"function"==typeof t.onClick&&(this.state=Object.assign(Object.assign({},this.state),{_on:t}))}validateRole(t){r(this,"_role",t)}validateSelector(t){r(this,"_selector",t)}validateStealth(t){y(this,t)}validateTabIndex(t){m(this,t)}validateTarget(t){r(this,"_target",t)}validateTargetDescription(t){r(this,"_targetDescription",t)}validateTooltipAlign(t){l(this,"_tooltipAlign",t)}validateUseCase(t){"string"==typeof t&&(this.state=Object.assign(Object.assign({},this.state),{_useCase:t}))}componentWillLoad(){this.validateAriaControls(this._ariaControls),this.validateAriaCurrent(this._ariaCurrent),this.validateAriaExpanded(this._ariaExpanded),this.validateAriaLabel(this._ariaLabel),this.validateAriaSelected(this._ariaSelected),this.validateDisabled(this._disabled),this.validateDownload(this._download),this.validateHideLabel(this._hideLabel||this._iconOnly),this.validateHref(this._href),this.validateIcon(this._icon),this.validateIconAlign(this._iconAlign),this.validateLabel(this._label),this.validateOn(this._on),this.validateRole(this._role),this.validateSelector(this._selector),this.validateStealth(this._stealth),this.validateTabIndex(this._tabIndex),this.validateTarget(this._target),this.validateTargetDescription(this._targetDescription),this.validateTooltipAlign(this._tooltipAlign),this.validateUseCase(this._useCase)}get host(){return s(this)}static get watchers(){return{_ariaControls:["validateAriaControls"],_ariaCurrent:["validateAriaCurrent"],_ariaExpanded:["validateAriaExpanded"],_ariaLabel:["validateAriaLabel"],_ariaSelected:["validateAriaSelected"],_disabled:["validateDisabled"],_download:["validateDownload"],_hideLabel:["validateHideLabel"],_href:["validateHref"],_icon:["validateIcon"],_iconAlign:["validateIconAlign"],_iconOnly:["validateIconOnly"],_label:["validateLabel"],_on:["validateOn"],_role:["validateRole"],_selector:["validateSelector"],_stealth:["validateStealth"],_tabIndex:["validateTabIndex"],_target:["validateTarget"],_targetDescription:["validateTargetDescription"],_tooltipAlign:["validateTooltipAlign"],_useCase:["validateUseCase"]}}};export{w as kol_link_wc};
4
+ import{r as i,h as t,H as e,g as s}from"./index-6ad587d0.js";import{a}from"./i18n-3ed8125e.js";import{w as l}from"./button-link-283b2d32.js";import{d as n,g as h}from"./a11y.tipps-2e27f8e6.js";import{n as o}from"./dev.utils-157f0499.js";import{b as d,w as r,f,h as c,i as v}from"./prop.validators-f81af56e.js";import{a as b}from"./reuse-3a02afb9.js";import{v as p,w as _}from"./icon-83ced735.js";import{a as u,b as g}from"./label-559ca626.js";import{v as m}from"./tab-index-ff5374b8.js";import{v as j,a as x}from"./aria-selected-efb464e1.js";import{v as A}from"./hide-label-2baeb5c5.js";import"./index-ebb14eab.js";import"./index-ff788b4b.js";const k=(t,a)=>{"boolean"==typeof a?d(t,"_download",a):r(t,"_download",a)},y=(t,a)=>{d(t,"_stealth",a)},w=class{constructor(t){i(this,t),this.nonce=o(),this.catchRef=t=>{this.ref=t,b(this.host,this.ref)},this.onClick=t=>{var a,e;"function"==typeof(null===(a=this.state._on)||void 0===a?void 0:a.onClick)&&(t.preventDefault(),f(t,this.ref),null===(e=this.state._on)||void 0===e||e.onClick(t,this.state._href))},this.getRenderValues=()=>{let t={};"string"==typeof this.state._selector&&(t={role:"link",tabIndex:0,onClick:()=>{v(this.state._selector)},onKeyPress:()=>{v(this.state._selector)}});const a="string"==typeof this.state._target&&"_self"!==this.state._target,e={href:"string"==typeof this.state._href&&this.state._href.length>0?this.state._href:"javascript:void(0)",target:"string"==typeof this.state._target&&this.state._target.length>0?this.state._target:void 0,rel:a?"noopener":void 0};return"image"!==this.state._useCase&&!0!==this.state._hideLabel||"string"==typeof this.state._ariaLabel&&0!==this.state._ariaLabel.length||n("[KolLink] Es muss ein Aria-Label gesetzt werden, wenn eine Grafik verlinkt oder der Icon-Only-Modus verwendet wird."),{isExternal:a,tagAttrs:e,goToProps:t}},this._ariaControls=void 0,this._ariaCurrent=void 0,this._ariaExpanded=void 0,this._ariaLabel=void 0,this._ariaSelected=void 0,this._disabled=!1,this._download=!1,this._hideLabel=!1,this._href=void 0,this._icon=void 0,this._iconAlign=void 0,this._iconOnly=void 0,this._label=void 0,this._on=void 0,this._role=void 0,this._selector=void 0,this._stealth=!1,this._tabIndex=void 0,this._target=void 0,this._targetDescription=a("kol-open-link-in-tab"),this._tooltipAlign="right",this._useCase="text",this.state={_href:"javascript:void(0)",_icon:{},_label:""}}render(){const{isExternal:a,tagAttrs:i,goToProps:s}=this.getRenderValues();return t(e,null,t("a",Object.assign({ref:this.catchRef},i,{"aria-controls":this.state._ariaControls,"aria-current":this.state._ariaCurrent,"aria-expanded":c(this.state._ariaExpanded),"aria-labelledby":"image"===this.state._useCase||!0===this.state._hideLabel?this.nonce:void 0,"aria-selected":c(this.state._ariaSelected),class:{disabled:!0===this.state._disabled,"skip ":!1!==this.state._stealth,"icon-only":!0===this.state._hideLabel,"hide-label":!0===this.state._hideLabel,"external-link":a}},this.state._on,{onClick:this.onClick,onKeyPress:this.onClick},s,{role:this.state._role,tabIndex:this.state._tabIndex}),t("kol-span-wc",{_icon:this._icon,_hideLabel:this._hideLabel,_label:this.state._label},t("slot",{name:"expert",slot:"expert"})),a&&t("kol-icon",{class:"external-link-icon",_ariaLabel:this.state._targetDescription,_icon:"codicon codicon-link-external"})),(!0===this.state._hideLabel||"image"===this.state._useCase)&&t("kol-tooltip",{"aria-hidden":"true",_align:this.state._tooltipAlign,_id:this.nonce,_label:this.state._ariaLabel||this.state._label}))}validateAriaControls(t){r(this,"_ariaControls",t)}validateAriaCurrent(t){j(this,t)}validateAriaExpanded(t){d(this,"_ariaExpanded",t)}validateAriaLabel(t){u(this,t)}validateAriaSelected(t){x(this,t)}validateDisabled(t){d(this,"_disabled",t),!0===t&&h()}validateDownload(t){k(this,t)}validateHideLabel(t){A(this,t)}validateHref(t){r(this,"_href",t)}validateIcon(t){p(this,t)}validateIconAlign(t){_(this,t)}validateIconOnly(t){this.validateHideLabel(t)}validateLabel(t){g(this,t)}validateOn(t){"object"==typeof t&&null!==t&&Object.prototype.hasOwnProperty.call(t,"onClick")&&"function"==typeof t.onClick&&(this.state=Object.assign(Object.assign({},this.state),{_on:t}))}validateRole(t){r(this,"_role",t)}validateSelector(t){r(this,"_selector",t)}validateStealth(t){y(this,t)}validateTabIndex(t){m(this,t)}validateTarget(t){r(this,"_target",t)}validateTargetDescription(t){r(this,"_targetDescription",t)}validateTooltipAlign(t){l(this,"_tooltipAlign",t)}validateUseCase(t){"string"==typeof t&&(this.state=Object.assign(Object.assign({},this.state),{_useCase:t}))}componentWillLoad(){this.validateAriaControls(this._ariaControls),this.validateAriaCurrent(this._ariaCurrent),this.validateAriaExpanded(this._ariaExpanded),this.validateAriaLabel(this._ariaLabel),this.validateAriaSelected(this._ariaSelected),this.validateDisabled(this._disabled),this.validateDownload(this._download),this.validateHideLabel(this._hideLabel||this._iconOnly),this.validateHref(this._href),this.validateIcon(this._icon),this.validateIconAlign(this._iconAlign),this.validateLabel(this._label),this.validateOn(this._on),this.validateRole(this._role),this.validateSelector(this._selector),this.validateStealth(this._stealth),this.validateTabIndex(this._tabIndex),this.validateTarget(this._target),this.validateTargetDescription(this._targetDescription),this.validateTooltipAlign(this._tooltipAlign),this.validateUseCase(this._useCase)}get host(){return s(this)}static get watchers(){return{_ariaControls:["validateAriaControls"],_ariaCurrent:["validateAriaCurrent"],_ariaExpanded:["validateAriaExpanded"],_ariaLabel:["validateAriaLabel"],_ariaSelected:["validateAriaSelected"],_disabled:["validateDisabled"],_download:["validateDownload"],_hideLabel:["validateHideLabel"],_href:["validateHref"],_icon:["validateIcon"],_iconAlign:["validateIconAlign"],_iconOnly:["validateIconOnly"],_label:["validateLabel"],_on:["validateOn"],_role:["validateRole"],_selector:["validateSelector"],_stealth:["validateStealth"],_tabIndex:["validateTabIndex"],_target:["validateTarget"],_targetDescription:["validateTargetDescription"],_tooltipAlign:["validateTooltipAlign"],_useCase:["validateUseCase"]}}};export{w as kol_link_wc};
@@ -1 +1 @@
1
- {"version":3,"names":["validateDownload","component","value","watchBoolean","watchString","validateStealth","KolLinkWc","this","nonce","catchRef","ref","propagateFocus","host","onClick","event","_a","state","_on","preventDefault","setEventTarget","_b","_href","getRenderValues","goToProps","_selector","role","tabIndex","scrollBySelector","onKeyPress","isExternal","_target","tagAttrs","href","length","target","undefined","rel","_useCase","_hideLabel","_ariaLabel","devHint","translate","_icon","_label","render","h","Host","Object","assign","_ariaControls","_ariaCurrent","mapBoolean2String","_ariaExpanded","_ariaSelected","class","disabled","_disabled","_stealth","_role","_tabIndex","name","slot","_targetDescription","_align","_tooltipAlign","_id","validateAriaControls","validateAriaCurrent","validateAriaExpanded","validateAriaLabel","validateAriaLabelWithLabel","validateAriaSelected","validateDisabled","a11yHintDisabled","validateHideLabel","validateHref","validateIcon","validateIconAlign","watchIconAlign","validateIconOnly","validateLabel","validateLabelWithAriaLabel","validateOn","prototype","hasOwnProperty","call","validateRole","validateSelector","validateTabIndex","validateTarget","validateTargetDescription","validateTooltipAlign","watchTooltipAlignment","validateUseCase","componentWillLoad","_download","_iconOnly","_iconAlign"],"sources":["./src/types/props/download.ts","./src/types/props/stealth.ts","./src/components/link/component.tsx"],"sourcesContent":["import { Generic } from '@a11y-ui/core';\nimport { watchBoolean, watchString } from '../../utils/prop.validators';\n\n/* types */\n/** de\n * Teilt dem Browser mit, dass sich hinter dem Link eine Datei befindet. Setzt optional den Dateinamen.\n */\n/** en\n * Tells the browser that the link contains a file. Optionally sets the filename.\n */\nexport type PropDownload = {\n\tdownload?: boolean | string;\n};\n\n/* validator */\nexport const validateDownload = (component: Generic.Element.Component, value?: boolean | string): void => {\n\tif (typeof value === 'boolean') watchBoolean(component, '_download', value);\n\telse watchString(component, '_download', value);\n};\n","import { Generic } from '@a11y-ui/core';\nimport { watchBoolean } from '../../utils/prop.validators';\n\n/* types */\n/** de\n * Versteckt den Link und lässt ihn bei Fokussierung erscheinen.\n */\n/** en\n * Hides the link und makes it appear on focus.\n */\nexport type PropStealth = {\n\tstealth: boolean;\n};\n\n/* validator */\nexport const validateStealth = (component: Generic.Element.Component, value?: boolean): void => {\n\twatchBoolean(component, '_stealth', value);\n};\n","import { Component, Element, h, Host, JSX, Prop, State, Watch } from '@stencil/core';\n\nimport { Generic } from '@a11y-ui/core';\nimport { translate } from '../../i18n';\nimport {\n\tAlternativButtonLinkRole,\n\tLinkOnCallbacks,\n\tLinkStates,\n\tLinkTarget,\n\tLinkUseCase,\n\tOptionalLinkProps,\n\tOptionalLinkStates,\n\tRequiredLinkProps,\n\tRequiredLinkStates,\n\twatchTooltipAlignment,\n} from '../../types/button-link';\nimport { Stringified } from '../../types/common';\nimport { KoliBriIconProp } from '../../types/icon';\nimport { AriaCurrent, Align, validateAriaCurrent, validateAriaSelected, validateStealth, validateDownload, validateHideLabel } from '../../types/props';\nimport { a11yHintDisabled, devHint } from '../../utils/a11y.tipps';\nimport { nonce } from '../../utils/dev.utils';\nimport { mapBoolean2String, scrollBySelector, setEventTarget, watchBoolean, watchString } from '../../utils/prop.validators';\nimport { propagateFocus } from '../../utils/reuse';\nimport { validateIcon, watchIconAlign } from '../../types/props/icon';\nimport { validateAriaLabelWithLabel, validateLabelWithAriaLabel } from '../../types/props/label';\nimport { validateTabIndex } from '../../utils/validators/tab-index';\n\n/**\n * @internal\n */\n@Component({\n\ttag: 'kol-link-wc',\n\tshadow: false,\n})\nexport class KolLinkWc implements Generic.Element.ComponentApi<RequiredLinkProps, OptionalLinkProps, RequiredLinkStates, OptionalLinkStates> {\n\t@Element() private readonly host?: HTMLKolLinkWcElement;\n\tprivate readonly nonce = nonce();\n\tprivate ref?: HTMLAnchorElement;\n\n\tprivate readonly catchRef = (ref?: HTMLAnchorElement) => {\n\t\tthis.ref = ref;\n\t\tpropagateFocus(this.host, this.ref);\n\t};\n\n\tprivate readonly onClick = (event: Event) => {\n\t\tif (typeof this.state._on?.onClick === 'function') {\n\t\t\tevent.preventDefault();\n\t\t\tsetEventTarget(event, this.ref);\n\t\t\tthis.state._on?.onClick(event, this.state._href);\n\t\t}\n\t};\n\n\tprivate readonly getRenderValues = () => {\n\t\t/**\n\t\t * DX\n\t\t * Das möchte ich ungern für HTML machen, sondern nur für Barrierefreiheitsthemen.\n\t\t */\n\t\t// if (typeof this.state._href === 'string' && this.state._href.length > 0) {\n\t\t// console.error('Setz den URL.');\n\t\t// throw new Error('Setz den URL.');\n\t\t// }\n\n\t\t// switch (this.state._target) {\n\t\t// case '_blank':\n\t\t// case '_self':\n\t\t// break;\n\t\t// default:\n\t\t// console.error('Fehlerhaftes Target.');\n\t\t// throw new Error('Fehlerhaftes Target.');\n\t\t// }\n\n\t\t// ROBUSTHEIT durch Validierung\n\t\tlet goToProps = {};\n\t\tif (typeof this.state._selector === 'string') {\n\t\t\tgoToProps = {\n\t\t\t\trole: 'link',\n\t\t\t\ttabIndex: 0,\n\t\t\t\tonClick: () => {\n\t\t\t\t\tscrollBySelector(this.state._selector as string);\n\t\t\t\t},\n\t\t\t\tonKeyPress: () => {\n\t\t\t\t\tscrollBySelector(this.state._selector as string);\n\t\t\t\t},\n\t\t\t};\n\t\t}\n\n\t\tconst isExternal = typeof this.state._target === 'string' && this.state._target !== '_self';\n\n\t\tconst tagAttrs = {\n\t\t\thref: typeof this.state._href === 'string' && this.state._href.length > 0 ? this.state._href : 'javascript:void(0)',\n\t\t\ttarget: typeof this.state._target === 'string' && this.state._target.length > 0 ? this.state._target : undefined,\n\t\t\trel: isExternal ? 'noopener' : undefined,\n\t\t};\n\n\t\tif (\n\t\t\t(this.state._useCase === 'image' || this.state._hideLabel === true) &&\n\t\t\t(typeof this.state._ariaLabel !== 'string' || this.state._ariaLabel.length === 0)\n\t\t) {\n\t\t\tdevHint(`[KolLink] Es muss ein Aria-Label gesetzt werden, wenn eine Grafik verlinkt oder der Icon-Only-Modus verwendet wird.`);\n\t\t}\n\t\treturn { isExternal, tagAttrs, goToProps };\n\t};\n\n\tpublic render(): JSX.Element {\n\t\tconst { isExternal, tagAttrs, goToProps } = this.getRenderValues();\n\t\treturn (\n\t\t\t<Host>\n\t\t\t\t<a\n\t\t\t\t\tref={this.catchRef}\n\t\t\t\t\t{...tagAttrs}\n\t\t\t\t\taria-controls={this.state._ariaControls}\n\t\t\t\t\taria-current={this.state._ariaCurrent}\n\t\t\t\t\taria-expanded={mapBoolean2String(this.state._ariaExpanded)}\n\t\t\t\t\taria-labelledby={this.state._useCase === 'image' || this.state._hideLabel === true ? this.nonce : undefined}\n\t\t\t\t\taria-selected={mapBoolean2String(this.state._ariaSelected)}\n\t\t\t\t\tclass={{\n\t\t\t\t\t\tdisabled: this.state._disabled === true,\n\t\t\t\t\t\t'skip ': this.state._stealth !== false,\n\t\t\t\t\t\t'icon-only': this.state._hideLabel === true,\n\t\t\t\t\t\t'hide-label': this.state._hideLabel === true,\n\t\t\t\t\t\t'external-link': isExternal,\n\t\t\t\t\t}}\n\t\t\t\t\t{...this.state._on}\n\t\t\t\t\t// https://github.com/jsx-eslint/eslint-plugin-jsx-a11y/blob/main/docs/rules/click-events-have-key-events.md\n\t\t\t\t\tonClick={this.onClick}\n\t\t\t\t\tonKeyPress={this.onClick}\n\t\t\t\t\t{...goToProps}\n\t\t\t\t\trole={this.state._role}\n\t\t\t\t\ttabIndex={this.state._tabIndex}\n\t\t\t\t>\n\t\t\t\t\t<kol-span-wc _icon={this._icon} _hideLabel={this._hideLabel} _label={this.state._label}>\n\t\t\t\t\t\t<slot name=\"expert\" slot=\"expert\"></slot>\n\t\t\t\t\t</kol-span-wc>\n\t\t\t\t\t{isExternal && <kol-icon class=\"external-link-icon\" _ariaLabel={this.state._targetDescription as string} _icon={'codicon codicon-link-external'} />}\n\t\t\t\t</a>\n\t\t\t\t{(this.state._hideLabel === true || this.state._useCase === 'image') && (\n\t\t\t\t\t<kol-tooltip\n\t\t\t\t\t\t/**\n\t\t\t\t\t\t * Dieses Aria-Hidden verhindert das doppelte Vorlesen des Labels,\n\t\t\t\t\t\t * verhindert aber nicht das Aria-Labelledby vorgelesen wird.\n\t\t\t\t\t\t */\n\t\t\t\t\t\taria-hidden=\"true\"\n\t\t\t\t\t\t_align={this.state._tooltipAlign}\n\t\t\t\t\t\t_id={this.nonce}\n\t\t\t\t\t\t_label={this.state._ariaLabel || this.state._label}\n\t\t\t\t\t></kol-tooltip>\n\t\t\t\t)}\n\t\t\t</Host>\n\t\t);\n\t}\n\n\t/**\n\t * Gibt an, welche Elemente kontrolliert werden. (https://developer.mozilla.org/en-US/docs/Web/Accessibility/ARIA/Attributes/aria-controls)\n\t */\n\t@Prop() public _ariaControls?: string;\n\n\t/**\n\t * Gibt an, welchen aktuellen Auswahlstatus das interaktive Element der Komponente hat. (https://developer.mozilla.org/en-US/docs/Web/Accessibility/ARIA/Attributes/aria-current)\n\t */\n\t@Prop() public _ariaCurrent?: AriaCurrent;\n\n\t/**\n\t * Gibt an, ob durch das interaktive Element in der Komponente etwas aufgeklappt wurde. (https://developer.mozilla.org/en-US/docs/Web/Accessibility/ARIA/Attributes/aria-expanded)\n\t */\n\t@Prop({ reflect: true }) public _ariaExpanded?: boolean;\n\n\t/**\n\t * Setzt die sichtbare oder semantische Beschriftung der Komponente (z.B. Aria-Label, Label, Headline, Caption, Summary usw.).\n\t */\n\t@Prop() public _ariaLabel?: string;\n\n\t/**\n\t * Gibt an, ob interaktive Element in der Komponente ausgewählt ist (z.B. role=tab). (https://developer.mozilla.org/en-US/docs/Web/Accessibility/ARIA/Attributes/aria-selected)\n\t */\n\t@Prop({ reflect: true }) public _ariaSelected?: boolean;\n\n\t/**\n\t * Deaktiviert das interaktive Element in der Komponente und erlaubt keine Interaktion mehr damit.\n\t *\n\t * @deprecated Ein Link kann nicht deaktiviert werden, nutzen Sie den Button-Link stattdessen.\n\t */\n\t@Prop({ reflect: true }) public _disabled?: boolean = false;\n\n\t/**\n\t * Teilt dem Browser mit, dass sich hinter dem Link eine Datei befindet. Setzt optional den Dateinamen.\n\t */\n\t@Prop() public _download?: boolean | string = false;\n\n\t/**\n\t * Blendet die Beschriftung (Label) aus und zeigt sie stattdessen mittels eines Tooltips an.\n\t */\n\t@Prop({ reflect: true }) public _hideLabel?: boolean = false;\n\n\t/**\n\t * Gibt die Ziel-Url des Links an.\n\t */\n\t@Prop() public _href!: string;\n\n\t/**\n\t * Setzt die Iconklasse (z.B.: `_icon=\"codicon codicon-home`).\n\t */\n\t@Prop() public _icon?: Stringified<KoliBriIconProp>;\n\n\t/**\n\t * Deprecated: Gibt an, ob das Icon links oder rechts von der Beschriftung angezeigt werden soll.\n\t *\n\t * @deprecated Wird durch das neue flexibleren Icon-Typ abgedeckt.\n\t */\n\t@Prop() public _iconAlign?: Align;\n\n\t/**\n\t * Blendet die Beschriftung (Label) aus und zeigt sie stattdessen mittels eines Tooltips an.\n\t * @deprecated use _hide-label\n\t */\n\t@Prop({ reflect: true }) public _iconOnly?: boolean = false;\n\n\t/**\n\t * Setzt die sichtbare oder semantische Beschriftung der Komponente (z.B. Aria-Label, Label, Headline, Caption, Summary usw.).\n\t */\n\t// - eslint-disable-next-line @stencil/strict-mutable\n\t@Prop({ mutable: true, reflect: false }) public _label!: string;\n\n\t/**\n\t * Gibt die EventCallback-Funktionen für den Link an.\n\t * @deprecated\n\t */\n\t@Prop() public _on?: LinkOnCallbacks;\n\n\t/**\n\t * Gibt die Rolle des primären Elements in der Komponente an.\n\t */\n\t@Prop() public _role?: AlternativButtonLinkRole;\n\n\t/**\n\t * Gibt die ID eines DOM-Elements, zu dem gesprungen werden soll, aus.\n\t *\n\t * @deprecated Das Styling sollte stets über CSS erfolgen.\n\t */\n\t@Prop() public _selector?: string;\n\n\t/**\n\t * Gibt an, ob der Link nur beim Fokus sichtbar ist.\n\t *\n\t * @deprecated Das Styling sollte stets über CSS erfolgen.\n\t */\n\t@Prop({ reflect: true }) public _stealth?: boolean = false;\n\n\t/**\n\t * Gibt an, welchen Tab-Index das primäre Element in der Komponente hat. (https://developer.mozilla.org/en-US/docs/Web/HTML/Global_attributes/tabindex)\n\t */\n\t@Prop() public _tabIndex?: number;\n\n\t/**\n\t * Gibt an wo der Link geöffnet werden soll.\n\t */\n\t@Prop() public _target?: LinkTarget;\n\n\t/**\n\t * Gibt die Beschreibung an, wenn der Link in einem anderen Programm geöffnet wird.\n\t */\n\t@Prop() public _targetDescription?: string = translate('kol-open-link-in-tab');\n\n\t/**\n\t * Gibt an, ob der Tooltip bevorzugt entweder oben, rechts, unten oder links angezeigt werden soll.\n\t */\n\t@Prop() public _tooltipAlign?: Align = 'right';\n\n\t/**\n\t * Gibt den Verwendungsfall des Links an.\n\t *\n\t * @deprecated Das Styling sollte stets über CSS erfolgen.\n\t */\n\t@Prop() public _useCase?: LinkUseCase = 'text';\n\n\t@State() public state: LinkStates = {\n\t\t_href: 'javascript:void(0)',\n\t\t_icon: {},\n\t\t_label: '', // TODO: must removed to v2\n\t\t// _label: '…', // ⚠ required\n\t};\n\n\t@Watch('_ariaControls')\n\tpublic validateAriaControls(value?: string): void {\n\t\twatchString(this, '_ariaControls', value);\n\t}\n\n\t@Watch('_ariaCurrent')\n\tpublic validateAriaCurrent(value?: AriaCurrent): void {\n\t\tvalidateAriaCurrent(this, value);\n\t}\n\n\t@Watch('_ariaExpanded')\n\tpublic validateAriaExpanded(value?: boolean): void {\n\t\twatchBoolean(this, '_ariaExpanded', value);\n\t}\n\n\t@Watch('_ariaLabel')\n\tpublic validateAriaLabel(value?: string): void {\n\t\tvalidateAriaLabelWithLabel(this, value);\n\t}\n\n\t@Watch('_ariaSelected')\n\tpublic validateAriaSelected(value?: boolean): void {\n\t\tvalidateAriaSelected(this, value);\n\t}\n\n\t/**\n\t * @see: components/abbr/component.tsx (@Watch)\n\t *\n\t * @deprecated\n\t */\n\t@Watch('_disabled')\n\tpublic validateDisabled(value?: boolean): void {\n\t\twatchBoolean(this, '_disabled', value);\n\t\tif (value === true) {\n\t\t\ta11yHintDisabled();\n\t\t}\n\t}\n\n\t@Watch('_download')\n\tpublic validateDownload(value?: boolean | string): void {\n\t\tvalidateDownload(this, value);\n\t}\n\n\t@Watch('_hideLabel')\n\tpublic validateHideLabel(value?: boolean): void {\n\t\tvalidateHideLabel(this, value);\n\t}\n\n\t@Watch('_href')\n\tpublic validateHref(value?: string): void {\n\t\twatchString(this, '_href', value);\n\t}\n\n\t@Watch('_icon')\n\tpublic validateIcon(value?: KoliBriIconProp): void {\n\t\tvalidateIcon(this, value);\n\t}\n\n\t/**\n\t * @see: components/abbr/component.tsx (@Watch)\n\t * @deprecated\n\t */\n\t@Watch('_iconAlign')\n\tpublic validateIconAlign(value?: Align): void {\n\t\twatchIconAlign(this, value);\n\t}\n\n\t/**\n\t * @deprecated use _hide-label\n\t */\n\t@Watch('_iconOnly')\n\tpublic validateIconOnly(value?: boolean): void {\n\t\tthis.validateHideLabel(value);\n\t}\n\n\t@Watch('_label')\n\tpublic validateLabel(value?: string): void {\n\t\tvalidateLabelWithAriaLabel(this, value);\n\t}\n\n\t/**\n\t * @see: components/abbr/component.tsx (@Watch)\n\t * @deprecated\n\t */\n\t@Watch('_on')\n\tpublic validateOn(value?: LinkOnCallbacks): void {\n\t\tif (\n\t\t\ttypeof value === 'object' &&\n\t\t\tvalue !== null &&\n\t\t\t// https://eslint.org/docs/rules/no-prototype-builtins\n\t\t\tObject.prototype.hasOwnProperty.call(value, 'onClick') &&\n\t\t\ttypeof value.onClick === 'function'\n\t\t) {\n\t\t\tthis.state = {\n\t\t\t\t...this.state,\n\t\t\t\t_on: value,\n\t\t\t};\n\t\t}\n\t}\n\n\t@Watch('_role')\n\tpublic validateRole(value?: AlternativButtonLinkRole): void {\n\t\twatchString(this, '_role', value);\n\t}\n\n\t@Watch('_selector')\n\tpublic validateSelector(value?: string): void {\n\t\twatchString(this, '_selector', value);\n\t}\n\n\t@Watch('_stealth')\n\tpublic validateStealth(value?: boolean): void {\n\t\tvalidateStealth(this, value);\n\t}\n\n\t@Watch('_tabIndex')\n\tpublic validateTabIndex(value?: number): void {\n\t\tvalidateTabIndex(this, value);\n\t}\n\n\t@Watch('_target')\n\tpublic validateTarget(value?: LinkTarget): void {\n\t\twatchString(this, '_target', value);\n\t}\n\n\t@Watch('_targetDescription')\n\tpublic validateTargetDescription(value?: string): void {\n\t\twatchString(this, '_targetDescription', value);\n\t}\n\n\t@Watch('_tooltipAlign')\n\tpublic validateTooltipAlign(value?: Align): void {\n\t\twatchTooltipAlignment(this, '_tooltipAlign', value);\n\t}\n\n\t@Watch('_useCase')\n\tpublic validateUseCase(value?: LinkUseCase): void {\n\t\tif (typeof value === 'string') {\n\t\t\tthis.state = {\n\t\t\t\t...this.state,\n\t\t\t\t_useCase: value,\n\t\t\t};\n\t\t}\n\t}\n\n\tpublic componentWillLoad(): void {\n\t\tthis.validateAriaControls(this._ariaControls);\n\t\tthis.validateAriaCurrent(this._ariaCurrent);\n\t\tthis.validateAriaExpanded(this._ariaExpanded);\n\t\tthis.validateAriaLabel(this._ariaLabel);\n\t\tthis.validateAriaSelected(this._ariaSelected);\n\t\tthis.validateDisabled(this._disabled);\n\t\tthis.validateDownload(this._download);\n\t\tthis.validateHideLabel(this._hideLabel || this._iconOnly);\n\t\tthis.validateHref(this._href);\n\t\tthis.validateIcon(this._icon);\n\t\tthis.validateIconAlign(this._iconAlign);\n\t\tthis.validateLabel(this._label);\n\t\tthis.validateOn(this._on);\n\t\tthis.validateRole(this._role);\n\t\tthis.validateSelector(this._selector);\n\t\tthis.validateStealth(this._stealth);\n\t\tthis.validateTabIndex(this._tabIndex);\n\t\tthis.validateTarget(this._target);\n\t\tthis.validateTargetDescription(this._targetDescription);\n\t\tthis.validateTooltipAlign(this._tooltipAlign);\n\t\tthis.validateUseCase(this._useCase);\n\t}\n}\n"],"mappings":"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"}
1
+ {"version":3,"names":["validateDownload","component","value","watchBoolean","watchString","validateStealth","KolLinkWc","this","nonce","catchRef","ref","propagateFocus","host","onClick","event","_a","state","_on","preventDefault","setEventTarget","_b","_href","getRenderValues","goToProps","_selector","role","tabIndex","scrollBySelector","onKeyPress","isExternal","_target","tagAttrs","href","length","target","undefined","rel","_useCase","_hideLabel","_ariaLabel","devHint","translate","_icon","_label","render","h","Host","Object","assign","_ariaControls","_ariaCurrent","mapBoolean2String","_ariaExpanded","_ariaSelected","class","disabled","_disabled","_stealth","_role","_tabIndex","name","slot","_targetDescription","_align","_tooltipAlign","_id","validateAriaControls","validateAriaCurrent","validateAriaExpanded","validateAriaLabel","validateAriaLabelWithLabel","validateAriaSelected","validateDisabled","a11yHintDisabled","validateHideLabel","validateHref","validateIcon","validateIconAlign","watchIconAlign","validateIconOnly","validateLabel","validateLabelWithAriaLabel","validateOn","prototype","hasOwnProperty","call","validateRole","validateSelector","validateTabIndex","validateTarget","validateTargetDescription","validateTooltipAlign","watchTooltipAlignment","validateUseCase","componentWillLoad","_download","_iconOnly","_iconAlign"],"sources":["./src/types/props/download.ts","./src/types/props/stealth.ts","./src/components/link/component.tsx"],"sourcesContent":["import { Generic } from '@a11y-ui/core';\nimport { watchBoolean, watchString } from '../../utils/prop.validators';\n\n/* types */\n/** de\n * Teilt dem Browser mit, dass sich hinter dem Link eine Datei befindet. Setzt optional den Dateinamen.\n */\n/** en\n * Tells the browser that the link contains a file. Optionally sets the filename.\n */\nexport type PropDownload = {\n\tdownload?: boolean | string;\n};\n\n/* validator */\nexport const validateDownload = (component: Generic.Element.Component, value?: boolean | string): void => {\n\tif (typeof value === 'boolean') watchBoolean(component, '_download', value);\n\telse watchString(component, '_download', value);\n};\n","import { Generic } from '@a11y-ui/core';\nimport { watchBoolean } from '../../utils/prop.validators';\n\n/* types */\n/** de\n * Versteckt den Link und lässt ihn bei Fokussierung erscheinen.\n */\n/** en\n * Hides the link und makes it appear on focus.\n */\nexport type PropStealth = {\n\tstealth: boolean;\n};\n\n/* validator */\nexport const validateStealth = (component: Generic.Element.Component, value?: boolean): void => {\n\twatchBoolean(component, '_stealth', value);\n};\n","import { Component, Element, h, Host, JSX, Prop, State, Watch } from '@stencil/core';\n\nimport { Generic } from '@a11y-ui/core';\nimport { translate } from '../../i18n';\nimport {\n\tAlternativButtonLinkRole,\n\tLinkOnCallbacks,\n\tLinkStates,\n\tLinkTarget,\n\tLinkUseCase,\n\tOptionalLinkProps,\n\tOptionalLinkStates,\n\tRequiredLinkProps,\n\tRequiredLinkStates,\n\twatchTooltipAlignment,\n} from '../../types/button-link';\nimport { Stringified } from '../../types/common';\nimport { KoliBriIconProp } from '../../types/icon';\nimport { AriaCurrent, Align, validateAriaCurrent, validateAriaSelected, validateStealth, validateDownload, validateHideLabel } from '../../types/props';\nimport { a11yHintDisabled, devHint } from '../../utils/a11y.tipps';\nimport { nonce } from '../../utils/dev.utils';\nimport { mapBoolean2String, scrollBySelector, setEventTarget, watchBoolean, watchString } from '../../utils/prop.validators';\nimport { propagateFocus } from '../../utils/reuse';\nimport { validateIcon, watchIconAlign } from '../../types/props/icon';\nimport { validateAriaLabelWithLabel, validateLabelWithAriaLabel } from '../../types/props/label';\nimport { validateTabIndex } from '../../utils/validators/tab-index';\n\n/**\n * @internal\n */\n@Component({\n\ttag: 'kol-link-wc',\n\tshadow: false,\n})\nexport class KolLinkWc implements Generic.Element.ComponentApi<RequiredLinkProps, OptionalLinkProps, RequiredLinkStates, OptionalLinkStates> {\n\t@Element() private readonly host?: HTMLKolLinkWcElement;\n\tprivate readonly nonce = nonce();\n\tprivate ref?: HTMLAnchorElement;\n\n\tprivate readonly catchRef = (ref?: HTMLAnchorElement) => {\n\t\tthis.ref = ref;\n\t\tpropagateFocus(this.host, this.ref);\n\t};\n\n\tprivate readonly onClick = (event: Event) => {\n\t\tif (typeof this.state._on?.onClick === 'function') {\n\t\t\tevent.preventDefault();\n\t\t\tsetEventTarget(event, this.ref);\n\t\t\tthis.state._on?.onClick(event, this.state._href);\n\t\t}\n\t};\n\n\tprivate readonly getRenderValues = () => {\n\t\t/**\n\t\t * DX\n\t\t * Das möchte ich ungern für HTML machen, sondern nur für Barrierefreiheitsthemen.\n\t\t */\n\t\t// if (typeof this.state._href === 'string' && this.state._href.length > 0) {\n\t\t// console.error('Setz den URL.');\n\t\t// throw new Error('Setz den URL.');\n\t\t// }\n\n\t\t// switch (this.state._target) {\n\t\t// case '_blank':\n\t\t// case '_self':\n\t\t// break;\n\t\t// default:\n\t\t// console.error('Fehlerhaftes Target.');\n\t\t// throw new Error('Fehlerhaftes Target.');\n\t\t// }\n\n\t\t// ROBUSTHEIT durch Validierung\n\t\tlet goToProps = {};\n\t\tif (typeof this.state._selector === 'string') {\n\t\t\tgoToProps = {\n\t\t\t\trole: 'link',\n\t\t\t\ttabIndex: 0,\n\t\t\t\tonClick: () => {\n\t\t\t\t\tscrollBySelector(this.state._selector as string);\n\t\t\t\t},\n\t\t\t\tonKeyPress: () => {\n\t\t\t\t\tscrollBySelector(this.state._selector as string);\n\t\t\t\t},\n\t\t\t};\n\t\t}\n\n\t\tconst isExternal = typeof this.state._target === 'string' && this.state._target !== '_self';\n\n\t\tconst tagAttrs = {\n\t\t\thref: typeof this.state._href === 'string' && this.state._href.length > 0 ? this.state._href : 'javascript:void(0)',\n\t\t\ttarget: typeof this.state._target === 'string' && this.state._target.length > 0 ? this.state._target : undefined,\n\t\t\trel: isExternal ? 'noopener' : undefined,\n\t\t};\n\n\t\tif (\n\t\t\t(this.state._useCase === 'image' || this.state._hideLabel === true) &&\n\t\t\t(typeof this.state._ariaLabel !== 'string' || this.state._ariaLabel.length === 0)\n\t\t) {\n\t\t\tdevHint(`[KolLink] Es muss ein Aria-Label gesetzt werden, wenn eine Grafik verlinkt oder der Icon-Only-Modus verwendet wird.`);\n\t\t}\n\t\treturn { isExternal, tagAttrs, goToProps };\n\t};\n\n\tpublic render(): JSX.Element {\n\t\tconst { isExternal, tagAttrs, goToProps } = this.getRenderValues();\n\t\treturn (\n\t\t\t<Host>\n\t\t\t\t<a\n\t\t\t\t\tref={this.catchRef}\n\t\t\t\t\t{...tagAttrs}\n\t\t\t\t\taria-controls={this.state._ariaControls}\n\t\t\t\t\taria-current={this.state._ariaCurrent}\n\t\t\t\t\taria-expanded={mapBoolean2String(this.state._ariaExpanded)}\n\t\t\t\t\taria-labelledby={this.state._useCase === 'image' || this.state._hideLabel === true ? this.nonce : undefined}\n\t\t\t\t\taria-selected={mapBoolean2String(this.state._ariaSelected)}\n\t\t\t\t\tclass={{\n\t\t\t\t\t\tdisabled: this.state._disabled === true,\n\t\t\t\t\t\t'skip ': this.state._stealth !== false,\n\t\t\t\t\t\t'icon-only': this.state._hideLabel === true, // @deprecated in v2\n\t\t\t\t\t\t'hide-label': this.state._hideLabel === true,\n\t\t\t\t\t\t'external-link': isExternal,\n\t\t\t\t\t}}\n\t\t\t\t\t{...this.state._on}\n\t\t\t\t\t// https://github.com/jsx-eslint/eslint-plugin-jsx-a11y/blob/main/docs/rules/click-events-have-key-events.md\n\t\t\t\t\tonClick={this.onClick}\n\t\t\t\t\tonKeyPress={this.onClick}\n\t\t\t\t\t{...goToProps}\n\t\t\t\t\trole={this.state._role}\n\t\t\t\t\ttabIndex={this.state._tabIndex}\n\t\t\t\t>\n\t\t\t\t\t<kol-span-wc _icon={this._icon} _hideLabel={this._hideLabel} _label={this.state._label}>\n\t\t\t\t\t\t<slot name=\"expert\" slot=\"expert\"></slot>\n\t\t\t\t\t</kol-span-wc>\n\t\t\t\t\t{isExternal && <kol-icon class=\"external-link-icon\" _ariaLabel={this.state._targetDescription as string} _icon={'codicon codicon-link-external'} />}\n\t\t\t\t</a>\n\t\t\t\t{(this.state._hideLabel === true || this.state._useCase === 'image') && (\n\t\t\t\t\t<kol-tooltip\n\t\t\t\t\t\t/**\n\t\t\t\t\t\t * Dieses Aria-Hidden verhindert das doppelte Vorlesen des Labels,\n\t\t\t\t\t\t * verhindert aber nicht das Aria-Labelledby vorgelesen wird.\n\t\t\t\t\t\t */\n\t\t\t\t\t\taria-hidden=\"true\"\n\t\t\t\t\t\t_align={this.state._tooltipAlign}\n\t\t\t\t\t\t_id={this.nonce}\n\t\t\t\t\t\t_label={this.state._ariaLabel || this.state._label}\n\t\t\t\t\t></kol-tooltip>\n\t\t\t\t)}\n\t\t\t</Host>\n\t\t);\n\t}\n\n\t/**\n\t * Gibt an, welche Elemente kontrolliert werden. (https://developer.mozilla.org/en-US/docs/Web/Accessibility/ARIA/Attributes/aria-controls)\n\t */\n\t@Prop() public _ariaControls?: string;\n\n\t/**\n\t * Gibt an, welchen aktuellen Auswahlstatus das interaktive Element der Komponente hat. (https://developer.mozilla.org/en-US/docs/Web/Accessibility/ARIA/Attributes/aria-current)\n\t */\n\t@Prop() public _ariaCurrent?: AriaCurrent;\n\n\t/**\n\t * Gibt an, ob durch das interaktive Element in der Komponente etwas aufgeklappt wurde. (https://developer.mozilla.org/en-US/docs/Web/Accessibility/ARIA/Attributes/aria-expanded)\n\t */\n\t@Prop({ reflect: true }) public _ariaExpanded?: boolean;\n\n\t/**\n\t * Setzt die sichtbare oder semantische Beschriftung der Komponente (z.B. Aria-Label, Label, Headline, Caption, Summary usw.).\n\t */\n\t@Prop() public _ariaLabel?: string;\n\n\t/**\n\t * Gibt an, ob interaktive Element in der Komponente ausgewählt ist (z.B. role=tab). (https://developer.mozilla.org/en-US/docs/Web/Accessibility/ARIA/Attributes/aria-selected)\n\t */\n\t@Prop({ reflect: true }) public _ariaSelected?: boolean;\n\n\t/**\n\t * Deaktiviert das interaktive Element in der Komponente und erlaubt keine Interaktion mehr damit.\n\t *\n\t * @deprecated Ein Link kann nicht deaktiviert werden, nutzen Sie den Button-Link stattdessen.\n\t */\n\t@Prop({ reflect: true }) public _disabled?: boolean = false;\n\n\t/**\n\t * Teilt dem Browser mit, dass sich hinter dem Link eine Datei befindet. Setzt optional den Dateinamen.\n\t */\n\t@Prop() public _download?: boolean | string = false;\n\n\t/**\n\t * Blendet die Beschriftung (Label) aus und zeigt sie stattdessen mittels eines Tooltips an.\n\t */\n\t@Prop({ reflect: true }) public _hideLabel?: boolean = false;\n\n\t/**\n\t * Gibt die Ziel-Url des Links an.\n\t */\n\t@Prop() public _href!: string;\n\n\t/**\n\t * Setzt die Iconklasse (z.B.: `_icon=\"codicon codicon-home`).\n\t */\n\t@Prop() public _icon?: Stringified<KoliBriIconProp>;\n\n\t/**\n\t * Deprecated: Gibt an, ob das Icon links oder rechts von der Beschriftung angezeigt werden soll.\n\t *\n\t * @deprecated Wird durch das neue flexibleren Icon-Typ abgedeckt.\n\t */\n\t@Prop() public _iconAlign?: Align;\n\n\t/**\n\t * Blendet die Beschriftung (Label) aus und zeigt sie stattdessen mittels eines Tooltips an.\n\t * @deprecated use _hide-label\n\t */\n\t@Prop({ reflect: true }) public _iconOnly?: boolean;\n\n\t/**\n\t * Setzt die sichtbare oder semantische Beschriftung der Komponente (z.B. Aria-Label, Label, Headline, Caption, Summary usw.).\n\t */\n\t// - eslint-disable-next-line @stencil/strict-mutable\n\t@Prop({ mutable: true, reflect: false }) public _label!: string;\n\n\t/**\n\t * Gibt die EventCallback-Funktionen für den Link an.\n\t * @deprecated\n\t */\n\t@Prop() public _on?: LinkOnCallbacks;\n\n\t/**\n\t * Gibt die Rolle des primären Elements in der Komponente an.\n\t */\n\t@Prop() public _role?: AlternativButtonLinkRole;\n\n\t/**\n\t * Gibt die ID eines DOM-Elements, zu dem gesprungen werden soll, aus.\n\t *\n\t * @deprecated Das Styling sollte stets über CSS erfolgen.\n\t */\n\t@Prop() public _selector?: string;\n\n\t/**\n\t * Gibt an, ob der Link nur beim Fokus sichtbar ist.\n\t *\n\t * @deprecated Das Styling sollte stets über CSS erfolgen.\n\t */\n\t@Prop({ reflect: true }) public _stealth?: boolean = false;\n\n\t/**\n\t * Gibt an, welchen Tab-Index das primäre Element in der Komponente hat. (https://developer.mozilla.org/en-US/docs/Web/HTML/Global_attributes/tabindex)\n\t */\n\t@Prop() public _tabIndex?: number;\n\n\t/**\n\t * Gibt an wo der Link geöffnet werden soll.\n\t */\n\t@Prop() public _target?: LinkTarget;\n\n\t/**\n\t * Gibt die Beschreibung an, wenn der Link in einem anderen Programm geöffnet wird.\n\t */\n\t@Prop() public _targetDescription?: string = translate('kol-open-link-in-tab');\n\n\t/**\n\t * Gibt an, ob der Tooltip bevorzugt entweder oben, rechts, unten oder links angezeigt werden soll.\n\t */\n\t@Prop() public _tooltipAlign?: Align = 'right';\n\n\t/**\n\t * Gibt den Verwendungsfall des Links an.\n\t *\n\t * @deprecated Das Styling sollte stets über CSS erfolgen.\n\t */\n\t@Prop() public _useCase?: LinkUseCase = 'text';\n\n\t@State() public state: LinkStates = {\n\t\t_href: 'javascript:void(0)',\n\t\t_icon: {},\n\t\t_label: '', // TODO: must removed to v2\n\t\t// _label: '…', // ⚠ required\n\t};\n\n\t@Watch('_ariaControls')\n\tpublic validateAriaControls(value?: string): void {\n\t\twatchString(this, '_ariaControls', value);\n\t}\n\n\t@Watch('_ariaCurrent')\n\tpublic validateAriaCurrent(value?: AriaCurrent): void {\n\t\tvalidateAriaCurrent(this, value);\n\t}\n\n\t@Watch('_ariaExpanded')\n\tpublic validateAriaExpanded(value?: boolean): void {\n\t\twatchBoolean(this, '_ariaExpanded', value);\n\t}\n\n\t@Watch('_ariaLabel')\n\tpublic validateAriaLabel(value?: string): void {\n\t\tvalidateAriaLabelWithLabel(this, value);\n\t}\n\n\t@Watch('_ariaSelected')\n\tpublic validateAriaSelected(value?: boolean): void {\n\t\tvalidateAriaSelected(this, value);\n\t}\n\n\t/**\n\t * @see: components/abbr/component.tsx (@Watch)\n\t *\n\t * @deprecated\n\t */\n\t@Watch('_disabled')\n\tpublic validateDisabled(value?: boolean): void {\n\t\twatchBoolean(this, '_disabled', value);\n\t\tif (value === true) {\n\t\t\ta11yHintDisabled();\n\t\t}\n\t}\n\n\t@Watch('_download')\n\tpublic validateDownload(value?: boolean | string): void {\n\t\tvalidateDownload(this, value);\n\t}\n\n\t@Watch('_hideLabel')\n\tpublic validateHideLabel(value?: boolean): void {\n\t\tvalidateHideLabel(this, value);\n\t}\n\n\t@Watch('_href')\n\tpublic validateHref(value?: string): void {\n\t\twatchString(this, '_href', value);\n\t}\n\n\t@Watch('_icon')\n\tpublic validateIcon(value?: KoliBriIconProp): void {\n\t\tvalidateIcon(this, value);\n\t}\n\n\t/**\n\t * @see: components/abbr/component.tsx (@Watch)\n\t * @deprecated\n\t */\n\t@Watch('_iconAlign')\n\tpublic validateIconAlign(value?: Align): void {\n\t\twatchIconAlign(this, value);\n\t}\n\n\t/**\n\t * @deprecated use _hide-label\n\t */\n\t@Watch('_iconOnly')\n\tpublic validateIconOnly(value?: boolean): void {\n\t\tthis.validateHideLabel(value);\n\t}\n\n\t@Watch('_label')\n\tpublic validateLabel(value?: string): void {\n\t\tvalidateLabelWithAriaLabel(this, value);\n\t}\n\n\t/**\n\t * @see: components/abbr/component.tsx (@Watch)\n\t * @deprecated\n\t */\n\t@Watch('_on')\n\tpublic validateOn(value?: LinkOnCallbacks): void {\n\t\tif (\n\t\t\ttypeof value === 'object' &&\n\t\t\tvalue !== null &&\n\t\t\t// https://eslint.org/docs/rules/no-prototype-builtins\n\t\t\tObject.prototype.hasOwnProperty.call(value, 'onClick') &&\n\t\t\ttypeof value.onClick === 'function'\n\t\t) {\n\t\t\tthis.state = {\n\t\t\t\t...this.state,\n\t\t\t\t_on: value,\n\t\t\t};\n\t\t}\n\t}\n\n\t@Watch('_role')\n\tpublic validateRole(value?: AlternativButtonLinkRole): void {\n\t\twatchString(this, '_role', value);\n\t}\n\n\t@Watch('_selector')\n\tpublic validateSelector(value?: string): void {\n\t\twatchString(this, '_selector', value);\n\t}\n\n\t@Watch('_stealth')\n\tpublic validateStealth(value?: boolean): void {\n\t\tvalidateStealth(this, value);\n\t}\n\n\t@Watch('_tabIndex')\n\tpublic validateTabIndex(value?: number): void {\n\t\tvalidateTabIndex(this, value);\n\t}\n\n\t@Watch('_target')\n\tpublic validateTarget(value?: LinkTarget): void {\n\t\twatchString(this, '_target', value);\n\t}\n\n\t@Watch('_targetDescription')\n\tpublic validateTargetDescription(value?: string): void {\n\t\twatchString(this, '_targetDescription', value);\n\t}\n\n\t@Watch('_tooltipAlign')\n\tpublic validateTooltipAlign(value?: Align): void {\n\t\twatchTooltipAlignment(this, '_tooltipAlign', value);\n\t}\n\n\t@Watch('_useCase')\n\tpublic validateUseCase(value?: LinkUseCase): void {\n\t\tif (typeof value === 'string') {\n\t\t\tthis.state = {\n\t\t\t\t...this.state,\n\t\t\t\t_useCase: value,\n\t\t\t};\n\t\t}\n\t}\n\n\tpublic componentWillLoad(): void {\n\t\tthis.validateAriaControls(this._ariaControls);\n\t\tthis.validateAriaCurrent(this._ariaCurrent);\n\t\tthis.validateAriaExpanded(this._ariaExpanded);\n\t\tthis.validateAriaLabel(this._ariaLabel);\n\t\tthis.validateAriaSelected(this._ariaSelected);\n\t\tthis.validateDisabled(this._disabled);\n\t\tthis.validateDownload(this._download);\n\t\tthis.validateHideLabel(this._hideLabel || this._iconOnly);\n\t\tthis.validateHref(this._href);\n\t\tthis.validateIcon(this._icon);\n\t\tthis.validateIconAlign(this._iconAlign);\n\t\tthis.validateLabel(this._label);\n\t\tthis.validateOn(this._on);\n\t\tthis.validateRole(this._role);\n\t\tthis.validateSelector(this._selector);\n\t\tthis.validateStealth(this._stealth);\n\t\tthis.validateTabIndex(this._tabIndex);\n\t\tthis.validateTarget(this._target);\n\t\tthis.validateTargetDescription(this._targetDescription);\n\t\tthis.validateTooltipAlign(this._tooltipAlign);\n\t\tthis.validateUseCase(this._useCase);\n\t}\n}\n"],"mappings":"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"}
@@ -1,4 +1,4 @@
1
1
  /*!
2
2
  * KoliBri - The accessible HTML-Standard
3
3
  */
4
- import{r as i,h as t,H as e,g as n}from"./index-6ad587d0.js";import{a as s}from"./reuse-3a02afb9.js";const o=":host{--a11y-min-size:44px;font-size:inherit}*{hyphens:auto;letter-spacing:inherit;word-break:break-word;word-spacing:inherit}[role='button'],button:not([role='link']),kol-input .input{min-height:var(--a11y-min-size);min-width:var(--a11y-min-size)}a,button,h1,h2,h3,h4,h5,h6,input,option,select,textarea{font-family:inherit;font-size:inherit}:is(a,button){background-color:transparent;border:none;margin:0;padding:0;width:100%;}:host{max-width:100%}*{box-sizing:border-box}kol-span-wc{display:grid;place-items:center}kol-span-wc>span{display:flex;place-items:center}a,button{cursor:pointer}button,input,option,select,textarea{font-family:inherit}.icon-only>kol-span-wc>span>span{display:none}:host{display:inline-block}:is(a,button){align-items:baseline;display:inline-flex;place-items:center;text-align:left;text-decoration-line:underline}:is(a,button):is(:focus,:hover){text-decoration-thickness:0.2em}.hidden{display:none;visibility:hidden}.skip{left:-99999px;overflow:hidden;position:absolute;z-index:9999999;line-height:1em}.skip:focus{background-color:#fff;left:unset;padding:1em;position:unset}kol-icon.external-link-icon{display:inline-flex}",a=class{constructor(t){i(this,t),this.catchRef=i=>{this.ref=i,s(this.host,this.ref)},this._ariaControls=void 0,this._ariaCurrent=void 0,this._ariaExpanded=void 0,this._ariaLabel=void 0,this._ariaSelected=void 0,this._disabled=!1,this._download=!1,this._hideLabel=!1,this._href=void 0,this._icon=void 0,this._iconAlign=void 0,this._iconOnly=!1,this._label=void 0,this._on=void 0,this._role=void 0,this._selector=void 0,this._stealth=!1,this._tabIndex=void 0,this._target=void 0,this._targetDescription="Der Link wird in einem neuen Tab geöffnet.",this._tooltipAlign="right",this._useCase="text"}render(){return t(e,null,t("kol-link-wc",{ref:this.catchRef,_ariaControls:this._ariaControls,_ariaCurrent:this._ariaCurrent,_ariaExpanded:this._ariaExpanded,_ariaLabel:this._ariaLabel,_ariaSelected:this._ariaSelected,_disabled:this._disabled,_download:this._download,_hideLabel:this._hideLabel,_href:this._href,_icon:this._icon,_iconAlign:this._iconAlign,_label:this._label,_on:this._on,_role:this._role,_selector:this._selector,_stealth:this._stealth,_tabIndex:this._tabIndex,_target:this._target,_targetDescription:this._targetDescription,_tooltipAlign:this._tooltipAlign,_useCase:this._useCase},t("slot",{name:"expert",slot:"expert"}),t("slot",{slot:"expert"})))}get host(){return n(this)}};a.style={default:o};export{a as kol_link};
4
+ import{r as i,h as t,H as e,g as n}from"./index-6ad587d0.js";import{a as s}from"./reuse-3a02afb9.js";const o=":host{--a11y-min-size:44px;font-size:inherit}*{hyphens:auto;letter-spacing:inherit;word-break:break-word;word-spacing:inherit}[role='button'],button:not([role='link']),kol-input .input{min-height:var(--a11y-min-size);min-width:var(--a11y-min-size)}a,button,h1,h2,h3,h4,h5,h6,input,option,select,textarea{font-family:inherit;font-size:inherit}:is(a,button){background-color:transparent;border:none;margin:0;padding:0;width:100%;}:host{max-width:100%}*{box-sizing:border-box}kol-span-wc{display:grid;place-items:center}kol-span-wc>span{display:flex;place-items:center}a,button{cursor:pointer}button,input,option,select,textarea{font-family:inherit}.icon-only>kol-span-wc>span>span{display:none}:host{display:inline-block}:is(a,button){align-items:baseline;display:inline-flex;place-items:center;text-align:left;text-decoration-line:underline}:is(a,button):is(:focus,:hover){text-decoration-thickness:0.2em}.hidden{display:none;visibility:hidden}.skip{left:-99999px;overflow:hidden;position:absolute;z-index:9999999;line-height:1em}.skip:focus{background-color:#fff;left:unset;padding:1em;position:unset}kol-icon.external-link-icon{display:inline-flex}",a=class{constructor(t){i(this,t),this.catchRef=i=>{this.ref=i,s(this.host,this.ref)},this._ariaControls=void 0,this._ariaCurrent=void 0,this._ariaExpanded=void 0,this._ariaLabel=void 0,this._ariaSelected=void 0,this._disabled=!1,this._download=!1,this._hideLabel=!1,this._href=void 0,this._icon=void 0,this._iconAlign=void 0,this._iconOnly=void 0,this._label=void 0,this._on=void 0,this._role=void 0,this._selector=void 0,this._stealth=!1,this._tabIndex=void 0,this._target=void 0,this._targetDescription="Der Link wird in einem neuen Tab geöffnet.",this._tooltipAlign="right",this._useCase="text"}render(){return t(e,null,t("kol-link-wc",{ref:this.catchRef,_ariaControls:this._ariaControls,_ariaCurrent:this._ariaCurrent,_ariaExpanded:this._ariaExpanded,_ariaLabel:this._ariaLabel,_ariaSelected:this._ariaSelected,_disabled:this._disabled,_download:this._download,_hideLabel:this._hideLabel,_href:this._href,_icon:this._icon,_iconAlign:this._iconAlign,_label:this._label,_on:this._on,_role:this._role,_selector:this._selector,_stealth:this._stealth,_tabIndex:this._tabIndex,_target:this._target,_targetDescription:this._targetDescription,_tooltipAlign:this._tooltipAlign,_useCase:this._useCase},t("slot",{name:"expert",slot:"expert"}),t("slot",{slot:"expert"})))}get host(){return n(this)}};a.style={default:o};export{a as kol_link};
@@ -1 +1 @@
1
- {"version":3,"names":["defaultStyleCss","KolLink","this","catchRef","ref","propagateFocus","host","render","h","Host","_ariaControls","_ariaCurrent","_ariaExpanded","_ariaLabel","_ariaSelected","_disabled","_download","_hideLabel","_href","_icon","_iconAlign","_label","_on","_role","_selector","_stealth","_tabIndex","_target","_targetDescription","_tooltipAlign","_useCase","name","slot"],"sources":["./src/components/link/style.css?tag=kol-link&mode=default&encapsulation=shadow","./src/components/link/shadow.tsx"],"sourcesContent":["@import url(../link.css);\n","import { Generic } from '@a11y-ui/core';\nimport { Component, Element, h, Host, JSX, Prop } from '@stencil/core';\nimport { AlternativButtonLinkRole, LinkOnCallbacks, LinkTarget, LinkUseCase, OptionalLinkProps, RequiredLinkProps } from '../../types/button-link';\nimport { Stringified } from '../../types/common';\nimport { KoliBriIconProp } from '../../types/icon';\nimport { AriaCurrent, Align } from '../../types/props';\nimport { propagateFocus } from '../../utils/reuse';\n\n@Component({\n\ttag: 'kol-link',\n\tstyleUrls: {\n\t\tdefault: './style.css',\n\t},\n\tshadow: true,\n})\nexport class KolLink implements Generic.Element.Members<RequiredLinkProps, OptionalLinkProps> {\n\t@Element() private readonly host?: HTMLKolLinkElement;\n\tprivate ref?: HTMLKolLinkWcElement;\n\n\tprivate readonly catchRef = (ref?: HTMLKolLinkWcElement) => {\n\t\tthis.ref = ref;\n\t\tpropagateFocus(this.host, this.ref);\n\t};\n\n\tpublic render(): JSX.Element {\n\t\treturn (\n\t\t\t<Host>\n\t\t\t\t<kol-link-wc\n\t\t\t\t\tref={this.catchRef}\n\t\t\t\t\t_ariaControls={this._ariaControls}\n\t\t\t\t\t_ariaCurrent={this._ariaCurrent}\n\t\t\t\t\t_ariaExpanded={this._ariaExpanded}\n\t\t\t\t\t_ariaLabel={this._ariaLabel}\n\t\t\t\t\t_ariaSelected={this._ariaSelected}\n\t\t\t\t\t_disabled={this._disabled}\n\t\t\t\t\t_download={this._download}\n\t\t\t\t\t_hideLabel={this._hideLabel}\n\t\t\t\t\t_href={this._href}\n\t\t\t\t\t_icon={this._icon}\n\t\t\t\t\t_iconAlign={this._iconAlign}\n\t\t\t\t\t_label={this._label}\n\t\t\t\t\t_on={this._on}\n\t\t\t\t\t_role={this._role}\n\t\t\t\t\t_selector={this._selector}\n\t\t\t\t\t_stealth={this._stealth}\n\t\t\t\t\t_tabIndex={this._tabIndex}\n\t\t\t\t\t_target={this._target}\n\t\t\t\t\t_targetDescription={this._targetDescription}\n\t\t\t\t\t_tooltipAlign={this._tooltipAlign}\n\t\t\t\t\t_useCase={this._useCase}\n\t\t\t\t>\n\t\t\t\t\t{/*\n\t\t\t\t\t\tEs ist keine gute Idee hier einen Slot einzufügen, da dadurch ermöglicht wird,\n\t\t\t\t\t\tdie Unterstützung hinsichtlich der Barrierefreiheit der Komponente zu umgehen.\n\t\t\t\t\t*/}\n\t\t\t\t\t<slot name=\"expert\" slot=\"expert\"></slot>\n\t\t\t\t\t{/* TODO: der folgende Slot ohne Name muss später entfernt werden */}\n\t\t\t\t\t<slot slot=\"expert\" />\n\t\t\t\t</kol-link-wc>\n\t\t\t</Host>\n\t\t);\n\t}\n\n\t/**\n\t * Gibt an, welche Elemente kontrolliert werden. (https://developer.mozilla.org/en-US/docs/Web/Accessibility/ARIA/Attributes/aria-controls)\n\t */\n\t@Prop() public _ariaControls?: string;\n\n\t/**\n\t * Gibt an, welchen aktuellen Auswahlstatus das interaktive Element der Komponente hat. (https://developer.mozilla.org/en-US/docs/Web/Accessibility/ARIA/Attributes/aria-current)\n\t */\n\t@Prop() public _ariaCurrent?: AriaCurrent;\n\n\t/**\n\t * Gibt an, ob durch das interaktive Element in der Komponente etwas aufgeklappt wurde. (https://developer.mozilla.org/en-US/docs/Web/Accessibility/ARIA/Attributes/aria-expanded)\n\t */\n\t@Prop({ reflect: true }) public _ariaExpanded?: boolean;\n\n\t/**\n\t * Setzt die sichtbare oder semantische Beschriftung der Komponente (z.B. Aria-Label, Label, Headline, Caption, Summary usw.).\n\t */\n\t@Prop() public _ariaLabel?: string;\n\n\t/**\n\t * Gibt an, ob interaktive Element in der Komponente ausgewählt ist (z.B. role=tab). (https://developer.mozilla.org/en-US/docs/Web/Accessibility/ARIA/Attributes/aria-selected)\n\t */\n\t@Prop({ reflect: true }) public _ariaSelected?: boolean;\n\n\t/**\n\t * Deaktiviert das interaktive Element in der Komponente und erlaubt keine Interaktion mehr damit.\n\t */\n\t@Prop({ reflect: true }) public _disabled?: boolean = false;\n\n\t/**\n\t * Teilt dem Browser mit, dass sich hinter dem Link eine Datei befindet. Setzt optional den Dateinamen.\n\t */\n\t@Prop() public _download?: boolean | string = false;\n\n\t/**\n\t * Blendet die Beschriftung (Label) aus und zeigt sie stattdessen mittels eines Tooltips an.\n\t */\n\t@Prop({ reflect: true }) public _hideLabel?: boolean = false;\n\n\t/**\n\t * Gibt die Ziel-Url des Links an.\n\t */\n\t@Prop() public _href!: string;\n\n\t/**\n\t * Setzt die Iconklasse (z.B.: `_icon=\"codicon codicon-home`).\n\t */\n\t@Prop() public _icon?: Stringified<KoliBriIconProp>;\n\n\t/**\n\t * Deprecated: Gibt an, ob das Icon links oder rechts von der Beschriftung angezeigt werden soll.\n\t *\n\t * @deprecated Wird durch das neue flexibleren Icon-Typ abgedeckt.\n\t */\n\t@Prop() public _iconAlign?: Align;\n\t/**\n\t * Blendet die Beschriftung (Label) aus und zeigt sie stattdessen mittels eines Tooltips an.\n\t * @deprecated use _hide-label\n\t */\n\t@Prop({ reflect: true }) public _iconOnly?: boolean = false;\n\n\t/**\n\t * Setzt die sichtbare oder semantische Beschriftung der Komponente (z.B. Aria-Label, Label, Headline, Caption, Summary usw.).\n\t */\n\t@Prop() public _label!: string;\n\n\t/**\n\t * Gibt die EventCallback-Funktionen für den Link an.\n\t * @deprecated\n\t */\n\t@Prop() public _on?: LinkOnCallbacks;\n\n\t/**\n\t * Gibt die Rolle des primären Elements in der Komponente an.\n\t */\n\t@Prop() public _role?: AlternativButtonLinkRole;\n\n\t/**\n\t * Gibt die ID eines DOM-Elements, zu dem gesprungen werden soll, aus.\n\t *\n\t * @deprecated Das Styling sollte stets über CSS erfolgen.\n\t */\n\t@Prop() public _selector?: string;\n\n\t/**\n\t * Gibt an, ob der Link nur beim Fokus sichtbar ist.\n\t *\n\t * @deprecated Das Styling sollte stets über CSS erfolgen.\n\t */\n\t@Prop({ reflect: true }) public _stealth?: boolean = false;\n\n\t/**\n\t * Gibt an, welchen Tab-Index das primäre Element in der Komponente hat. (https://developer.mozilla.org/en-US/docs/Web/HTML/Global_attributes/tabindex)\n\t */\n\t@Prop() public _tabIndex?: number;\n\n\t/**\n\t * Gibt an wo der Link geöffnet werden soll.\n\t */\n\t@Prop() public _target?: LinkTarget;\n\n\t/**\n\t * Gibt die Beschreibung an, wenn der Link in einem anderen Programm geöffnet wird.\n\t */\n\t@Prop() public _targetDescription?: string = 'Der Link wird in einem neuen Tab geöffnet.';\n\n\t/**\n\t * Gibt an, ob der Tooltip bevorzugt entweder oben, rechts, unten oder links angezeigt werden soll.\n\t */\n\t@Prop() public _tooltipAlign?: Align = 'right';\n\n\t/**\n\t * Gibt den Verwendungsfall des Links an.\n\t *\n\t * @deprecated Das Styling sollte stets über CSS erfolgen.\n\t */\n\t@Prop() public _useCase?: LinkUseCase = 'text';\n}\n"],"mappings":";;;qGAAA,MAAMA,EAAkB,goC,MCeXC,EAAO,M,yBAIFC,KAAAC,SAAYC,IAC5BF,KAAKE,IAAMA,EACXC,EAAeH,KAAKI,KAAMJ,KAAKE,IAAI,E,4JAsEkB,M,eAKR,M,gBAKS,M,mFAsBD,M,qGA8BD,M,wEAeR,6C,mBAKN,Q,cAOC,M,CA5JjCG,SACN,OACCC,EAACC,EAAI,KACJD,EAAA,eACCJ,IAAKF,KAAKC,SACVO,cAAeR,KAAKQ,cACpBC,aAAcT,KAAKS,aACnBC,cAAeV,KAAKU,cACpBC,WAAYX,KAAKW,WACjBC,cAAeZ,KAAKY,cACpBC,UAAWb,KAAKa,UAChBC,UAAWd,KAAKc,UAChBC,WAAYf,KAAKe,WACjBC,MAAOhB,KAAKgB,MACZC,MAAOjB,KAAKiB,MACZC,WAAYlB,KAAKkB,WACjBC,OAAQnB,KAAKmB,OACbC,IAAKpB,KAAKoB,IACVC,MAAOrB,KAAKqB,MACZC,UAAWtB,KAAKsB,UAChBC,SAAUvB,KAAKuB,SACfC,UAAWxB,KAAKwB,UAChBC,QAASzB,KAAKyB,QACdC,mBAAoB1B,KAAK0B,mBACzBC,cAAe3B,KAAK2B,cACpBC,SAAU5B,KAAK4B,UAMftB,EAAA,QAAMuB,KAAK,SAASC,KAAK,WAEzBxB,EAAA,QAAMwB,KAAK,Y"}
1
+ {"version":3,"names":["defaultStyleCss","KolLink","this","catchRef","ref","propagateFocus","host","render","h","Host","_ariaControls","_ariaCurrent","_ariaExpanded","_ariaLabel","_ariaSelected","_disabled","_download","_hideLabel","_href","_icon","_iconAlign","_label","_on","_role","_selector","_stealth","_tabIndex","_target","_targetDescription","_tooltipAlign","_useCase","name","slot"],"sources":["./src/components/link/style.css?tag=kol-link&mode=default&encapsulation=shadow","./src/components/link/shadow.tsx"],"sourcesContent":["@import url(../link.css);\n","import { Generic } from '@a11y-ui/core';\nimport { Component, Element, h, Host, JSX, Prop } from '@stencil/core';\nimport { AlternativButtonLinkRole, LinkOnCallbacks, LinkTarget, LinkUseCase, OptionalLinkProps, RequiredLinkProps } from '../../types/button-link';\nimport { Stringified } from '../../types/common';\nimport { KoliBriIconProp } from '../../types/icon';\nimport { AriaCurrent, Align } from '../../types/props';\nimport { propagateFocus } from '../../utils/reuse';\n\n@Component({\n\ttag: 'kol-link',\n\tstyleUrls: {\n\t\tdefault: './style.css',\n\t},\n\tshadow: true,\n})\nexport class KolLink implements Generic.Element.Members<RequiredLinkProps, OptionalLinkProps> {\n\t@Element() private readonly host?: HTMLKolLinkElement;\n\tprivate ref?: HTMLKolLinkWcElement;\n\n\tprivate readonly catchRef = (ref?: HTMLKolLinkWcElement) => {\n\t\tthis.ref = ref;\n\t\tpropagateFocus(this.host, this.ref);\n\t};\n\n\tpublic render(): JSX.Element {\n\t\treturn (\n\t\t\t<Host>\n\t\t\t\t<kol-link-wc\n\t\t\t\t\tref={this.catchRef}\n\t\t\t\t\t_ariaControls={this._ariaControls}\n\t\t\t\t\t_ariaCurrent={this._ariaCurrent}\n\t\t\t\t\t_ariaExpanded={this._ariaExpanded}\n\t\t\t\t\t_ariaLabel={this._ariaLabel}\n\t\t\t\t\t_ariaSelected={this._ariaSelected}\n\t\t\t\t\t_disabled={this._disabled}\n\t\t\t\t\t_download={this._download}\n\t\t\t\t\t_hideLabel={this._hideLabel}\n\t\t\t\t\t_href={this._href}\n\t\t\t\t\t_icon={this._icon}\n\t\t\t\t\t_iconAlign={this._iconAlign}\n\t\t\t\t\t_label={this._label}\n\t\t\t\t\t_on={this._on}\n\t\t\t\t\t_role={this._role}\n\t\t\t\t\t_selector={this._selector}\n\t\t\t\t\t_stealth={this._stealth}\n\t\t\t\t\t_tabIndex={this._tabIndex}\n\t\t\t\t\t_target={this._target}\n\t\t\t\t\t_targetDescription={this._targetDescription}\n\t\t\t\t\t_tooltipAlign={this._tooltipAlign}\n\t\t\t\t\t_useCase={this._useCase}\n\t\t\t\t>\n\t\t\t\t\t{/*\n\t\t\t\t\t\tEs ist keine gute Idee hier einen Slot einzufügen, da dadurch ermöglicht wird,\n\t\t\t\t\t\tdie Unterstützung hinsichtlich der Barrierefreiheit der Komponente zu umgehen.\n\t\t\t\t\t*/}\n\t\t\t\t\t<slot name=\"expert\" slot=\"expert\"></slot>\n\t\t\t\t\t{/* TODO: der folgende Slot ohne Name muss später entfernt werden */}\n\t\t\t\t\t<slot slot=\"expert\" />\n\t\t\t\t</kol-link-wc>\n\t\t\t</Host>\n\t\t);\n\t}\n\n\t/**\n\t * Gibt an, welche Elemente kontrolliert werden. (https://developer.mozilla.org/en-US/docs/Web/Accessibility/ARIA/Attributes/aria-controls)\n\t */\n\t@Prop() public _ariaControls?: string;\n\n\t/**\n\t * Gibt an, welchen aktuellen Auswahlstatus das interaktive Element der Komponente hat. (https://developer.mozilla.org/en-US/docs/Web/Accessibility/ARIA/Attributes/aria-current)\n\t */\n\t@Prop() public _ariaCurrent?: AriaCurrent;\n\n\t/**\n\t * Gibt an, ob durch das interaktive Element in der Komponente etwas aufgeklappt wurde. (https://developer.mozilla.org/en-US/docs/Web/Accessibility/ARIA/Attributes/aria-expanded)\n\t */\n\t@Prop({ reflect: true }) public _ariaExpanded?: boolean;\n\n\t/**\n\t * Setzt die sichtbare oder semantische Beschriftung der Komponente (z.B. Aria-Label, Label, Headline, Caption, Summary usw.).\n\t */\n\t@Prop() public _ariaLabel?: string;\n\n\t/**\n\t * Gibt an, ob interaktive Element in der Komponente ausgewählt ist (z.B. role=tab). (https://developer.mozilla.org/en-US/docs/Web/Accessibility/ARIA/Attributes/aria-selected)\n\t */\n\t@Prop({ reflect: true }) public _ariaSelected?: boolean;\n\n\t/**\n\t * Deaktiviert das interaktive Element in der Komponente und erlaubt keine Interaktion mehr damit.\n\t */\n\t@Prop({ reflect: true }) public _disabled?: boolean = false;\n\n\t/**\n\t * Teilt dem Browser mit, dass sich hinter dem Link eine Datei befindet. Setzt optional den Dateinamen.\n\t */\n\t@Prop() public _download?: boolean | string = false;\n\n\t/**\n\t * Blendet die Beschriftung (Label) aus und zeigt sie stattdessen mittels eines Tooltips an.\n\t */\n\t@Prop({ reflect: true }) public _hideLabel?: boolean = false;\n\n\t/**\n\t * Gibt die Ziel-Url des Links an.\n\t */\n\t@Prop() public _href!: string;\n\n\t/**\n\t * Setzt die Iconklasse (z.B.: `_icon=\"codicon codicon-home`).\n\t */\n\t@Prop() public _icon?: Stringified<KoliBriIconProp>;\n\n\t/**\n\t * Deprecated: Gibt an, ob das Icon links oder rechts von der Beschriftung angezeigt werden soll.\n\t *\n\t * @deprecated Wird durch das neue flexibleren Icon-Typ abgedeckt.\n\t */\n\t@Prop() public _iconAlign?: Align;\n\t/**\n\t * Blendet die Beschriftung (Label) aus und zeigt sie stattdessen mittels eines Tooltips an.\n\t * @deprecated use _hide-label\n\t */\n\t@Prop({ reflect: true }) public _iconOnly?: boolean;\n\n\t/**\n\t * Setzt die sichtbare oder semantische Beschriftung der Komponente (z.B. Aria-Label, Label, Headline, Caption, Summary usw.).\n\t */\n\t@Prop() public _label!: string;\n\n\t/**\n\t * Gibt die EventCallback-Funktionen für den Link an.\n\t * @deprecated\n\t */\n\t@Prop() public _on?: LinkOnCallbacks;\n\n\t/**\n\t * Gibt die Rolle des primären Elements in der Komponente an.\n\t */\n\t@Prop() public _role?: AlternativButtonLinkRole;\n\n\t/**\n\t * Gibt die ID eines DOM-Elements, zu dem gesprungen werden soll, aus.\n\t *\n\t * @deprecated Das Styling sollte stets über CSS erfolgen.\n\t */\n\t@Prop() public _selector?: string;\n\n\t/**\n\t * Gibt an, ob der Link nur beim Fokus sichtbar ist.\n\t *\n\t * @deprecated Das Styling sollte stets über CSS erfolgen.\n\t */\n\t@Prop({ reflect: true }) public _stealth?: boolean = false;\n\n\t/**\n\t * Gibt an, welchen Tab-Index das primäre Element in der Komponente hat. (https://developer.mozilla.org/en-US/docs/Web/HTML/Global_attributes/tabindex)\n\t */\n\t@Prop() public _tabIndex?: number;\n\n\t/**\n\t * Gibt an wo der Link geöffnet werden soll.\n\t */\n\t@Prop() public _target?: LinkTarget;\n\n\t/**\n\t * Gibt die Beschreibung an, wenn der Link in einem anderen Programm geöffnet wird.\n\t */\n\t@Prop() public _targetDescription?: string = 'Der Link wird in einem neuen Tab geöffnet.';\n\n\t/**\n\t * Gibt an, ob der Tooltip bevorzugt entweder oben, rechts, unten oder links angezeigt werden soll.\n\t */\n\t@Prop() public _tooltipAlign?: Align = 'right';\n\n\t/**\n\t * Gibt den Verwendungsfall des Links an.\n\t *\n\t * @deprecated Das Styling sollte stets über CSS erfolgen.\n\t */\n\t@Prop() public _useCase?: LinkUseCase = 'text';\n}\n"],"mappings":";;;qGAAA,MAAMA,EAAkB,goC,MCeXC,EAAO,M,yBAIFC,KAAAC,SAAYC,IAC5BF,KAAKE,IAAMA,EACXC,EAAeH,KAAKI,KAAMJ,KAAKE,IAAI,E,4JAsEkB,M,eAKR,M,gBAKS,M,kMAoDF,M,wEAeR,6C,mBAKN,Q,cAOC,M,CA5JjCG,SACN,OACCC,EAACC,EAAI,KACJD,EAAA,eACCJ,IAAKF,KAAKC,SACVO,cAAeR,KAAKQ,cACpBC,aAAcT,KAAKS,aACnBC,cAAeV,KAAKU,cACpBC,WAAYX,KAAKW,WACjBC,cAAeZ,KAAKY,cACpBC,UAAWb,KAAKa,UAChBC,UAAWd,KAAKc,UAChBC,WAAYf,KAAKe,WACjBC,MAAOhB,KAAKgB,MACZC,MAAOjB,KAAKiB,MACZC,WAAYlB,KAAKkB,WACjBC,OAAQnB,KAAKmB,OACbC,IAAKpB,KAAKoB,IACVC,MAAOrB,KAAKqB,MACZC,UAAWtB,KAAKsB,UAChBC,SAAUvB,KAAKuB,SACfC,UAAWxB,KAAKwB,UAChBC,QAASzB,KAAKyB,QACdC,mBAAoB1B,KAAK0B,mBACzBC,cAAe3B,KAAK2B,cACpBC,SAAU5B,KAAK4B,UAMftB,EAAA,QAAMuB,KAAK,SAASC,KAAK,WAEzBxB,EAAA,QAAMwB,KAAK,Y"}
@@ -1,4 +1,4 @@
1
1
  /*!
2
2
  * KoliBri - The accessible HTML-Standard
3
3
  */
4
- import{r as i,h as s,H as t}from"./index-6ad587d0.js";import{v as a}from"./icon-83ced735.js";import{b as e}from"./label-559ca626.js";import{v as l}from"./hide-label-2baeb5c5.js";import"./prop.validators-f81af56e.js";import"./a11y.tipps-2e27f8e6.js";import"./dev.utils-157f0499.js";import"./reuse-3a02afb9.js";import"./index-ff788b4b.js";const o=class{constructor(t){i(this,t),this._hideLabel=!1,this._icon=void 0,this._iconOnly=!1,this._label=void 0,this.state={_hideLabel:!1,_icon:{},_iconOnly:!1,_label:"…"}}render(){const i=this.state._label.length>0;return s(t,{class:{"icon-only":!!this.state._hideLabel,"hide-label":!!this.state._hideLabel}},this.state._icon.top&&s("kol-icon",{class:"icon top",style:this.state._icon.top.style,_ariaLabel:"",_icon:this.state._icon.top.icon}),s("span",null,this.state._icon.left&&s("kol-icon",{class:"icon left",style:this.state._icon.left.style,_ariaLabel:"",_icon:this.state._icon.left.icon}),!0!==this.state._hideLabel&&this.state._label.length>0?s("span",null,this.state._label):"",s("span",{"aria-hidden":i?"true":void 0,hidden:i},s("slot",{name:"expert"})),this.state._icon.right&&s("kol-icon",{class:"icon right",style:this.state._icon.right.style,_ariaLabel:"",_icon:this.state._icon.right.icon})),this.state._icon.bottom&&s("kol-icon",{class:"icon bottom",style:this.state._icon.bottom.style,_ariaLabel:"",_icon:this.state._icon.bottom.icon}))}validateHideLabel(t){l(this,t)}validateIcon(t){a(this,t)}validateIconOnly(t){this.validateHideLabel(t)}validateLabel(t){e(this,t)}componentWillLoad(){this.validateHideLabel(this._hideLabel||this._iconOnly),this.validateIcon(this._icon),this.validateLabel(this._label)}static get watchers(){return{_hideLabel:["validateHideLabel"],_icon:["validateIcon"],_iconOnly:["validateIconOnly"],_label:["validateLabel"]}}};export{o as kol_span_wc};
4
+ import{r as i,h as s,H as t}from"./index-6ad587d0.js";import{v as a}from"./icon-83ced735.js";import{b as e}from"./label-559ca626.js";import{v as l}from"./hide-label-2baeb5c5.js";import"./prop.validators-f81af56e.js";import"./a11y.tipps-2e27f8e6.js";import"./dev.utils-157f0499.js";import"./reuse-3a02afb9.js";import"./index-ff788b4b.js";const o=class{constructor(t){i(this,t),this._hideLabel=!1,this._icon=void 0,this._iconOnly=void 0,this._label=void 0,this.state={_hideLabel:!1,_icon:{},_iconOnly:!1,_label:"…"}}render(){const i=this.state._label.length>0;return s(t,{class:{"icon-only":!!this.state._hideLabel,"hide-label":!!this.state._hideLabel}},this.state._icon.top&&s("kol-icon",{class:"icon top",style:this.state._icon.top.style,_ariaLabel:"",_icon:this.state._icon.top.icon}),s("span",null,this.state._icon.left&&s("kol-icon",{class:"icon left",style:this.state._icon.left.style,_ariaLabel:"",_icon:this.state._icon.left.icon}),!0!==this.state._hideLabel&&this.state._label.length>0?s("span",null,this.state._label):"",s("span",{"aria-hidden":i?"true":void 0,hidden:i},s("slot",{name:"expert"})),this.state._icon.right&&s("kol-icon",{class:"icon right",style:this.state._icon.right.style,_ariaLabel:"",_icon:this.state._icon.right.icon})),this.state._icon.bottom&&s("kol-icon",{class:"icon bottom",style:this.state._icon.bottom.style,_ariaLabel:"",_icon:this.state._icon.bottom.icon}))}validateHideLabel(t){l(this,t)}validateIcon(t){a(this,t)}validateIconOnly(t){this.validateHideLabel(t)}validateLabel(t){e(this,t)}componentWillLoad(){this.validateHideLabel(this._hideLabel||this._iconOnly),this.validateIcon(this._icon),this.validateLabel(this._label)}static get watchers(){return{_hideLabel:["validateHideLabel"],_icon:["validateIcon"],_iconOnly:["validateIconOnly"],_label:["validateLabel"]}}};export{o as kol_span_wc};
@@ -1 +1 @@
1
- {"version":3,"names":["KolSpanWc","_hideLabel","_icon","_iconOnly","_label","render","hideExpertSlot","this","state","length","h","Host","class","top","style","_ariaLabel","icon","left","undefined","hidden","name","right","bottom","validateHideLabel","value","validateIcon","validateIconOnly","validateLabel","validateLabelWithAriaLabel","componentWillLoad"],"sources":["./src/components/span/component.tsx"],"sourcesContent":["import { Generic } from '@a11y-ui/core';\nimport { Component, h, Host, JSX, Prop, State, Watch } from '@stencil/core';\nimport { Stringified } from '../../types/common';\n\nimport { KoliBriCustomIcon, KoliBriIconProp } from '../../types/icon';\nimport { validateIcon } from '../../types/props/icon';\nimport { validateLabelWithAriaLabel } from '../../types/props/label';\nimport { PropHideLabel, validateHideLabel } from '../../types/props';\n\ntype RequiredProps = {\n\tlabel: string;\n};\ntype OptionalProps = {\n\ticon: Stringified<KoliBriIconProp>;\n\t/**\n\t * @deprecated use _hide-label\n\t */\n\ticonOnly: boolean;\n} & PropHideLabel;\nexport type Props = Generic.Element.Members<RequiredProps, OptionalProps>;\n\ntype RequiredStates = {\n\ticon: {\n\t\ttop?: KoliBriCustomIcon;\n\t\tright?: KoliBriCustomIcon;\n\t\tbottom?: KoliBriCustomIcon;\n\t\tleft?: KoliBriCustomIcon;\n\t};\n\tlabel: string;\n};\ntype OptionalStates = {\n\t/**\n\t * @deprecated use _hide-label\n\t */\n\ticonOnly: boolean;\n} & PropHideLabel;\nexport type States = Generic.Element.Members<RequiredStates, OptionalStates>;\n\n/**\n * @internal\n */\n@Component({\n\ttag: 'kol-span-wc',\n\tshadow: false,\n})\nexport class KolSpanWc implements Generic.Element.ComponentApi<RequiredProps, OptionalProps, RequiredStates, OptionalStates> {\n\tpublic render(): JSX.Element {\n\t\tconst hideExpertSlot = this.state._label.length > 0;\n\t\treturn (\n\t\t\t<Host\n\t\t\t\tclass={{\n\t\t\t\t\t'icon-only': !!this.state._hideLabel,\n\t\t\t\t\t'hide-label': !!this.state._hideLabel,\n\t\t\t\t}}\n\t\t\t>\n\t\t\t\t{this.state._icon.top && <kol-icon class=\"icon top\" style={this.state._icon.top.style} _ariaLabel=\"\" _icon={this.state._icon.top.icon} />}\n\t\t\t\t<span>\n\t\t\t\t\t{this.state._icon.left && <kol-icon class=\"icon left\" style={this.state._icon.left.style} _ariaLabel=\"\" _icon={this.state._icon.left.icon} />}\n\t\t\t\t\t{this.state._hideLabel !== true && this.state._label.length > 0 ? <span>{this.state._label}</span> : ''}\n\t\t\t\t\t<span aria-hidden={hideExpertSlot ? 'true' : undefined} hidden={hideExpertSlot}>\n\t\t\t\t\t\t<slot name=\"expert\" />\n\t\t\t\t\t</span>\n\t\t\t\t\t{this.state._icon.right && <kol-icon class=\"icon right\" style={this.state._icon.right.style} _ariaLabel=\"\" _icon={this.state._icon.right.icon} />}\n\t\t\t\t</span>\n\t\t\t\t{this.state._icon.bottom && <kol-icon class=\"icon bottom\" style={this.state._icon.bottom.style} _ariaLabel=\"\" _icon={this.state._icon.bottom.icon} />}\n\t\t\t</Host>\n\t\t);\n\t}\n\n\t/**\n\t * Blendet die Beschriftung (Label) aus und zeigt sie stattdessen mittels eines Tooltips an.\n\t */\n\t@Prop({ reflect: true }) public _hideLabel?: boolean = false;\n\n\t/**\n\t * Setzt die Iconklasse (z.B.: `_icon=\"codicon codicon-home`).\n\t */\n\t@Prop() public _icon?: Stringified<KoliBriIconProp>;\n\n\t/**\n\t * Blendet die Beschriftung (Label) aus und zeigt sie stattdessen mittels eines Tooltips an.\n\t * @deprecated use _hide-label\n\t */\n\t@Prop({ reflect: true }) public _iconOnly?: boolean = false;\n\n\t/**\n\t * Setzt die sichtbare oder semantische Beschriftung der Komponente (z.B. Aria-Label, Label, Headline, Caption, Summary usw.).\n\t */\n\t@Prop() public _label!: string;\n\n\t@State() public state: States = {\n\t\t_hideLabel: false,\n\t\t_icon: {},\n\t\t_iconOnly: false,\n\t\t_label: '…', // ⚠ required\n\t};\n\n\t@Watch('_hideLabel')\n\tpublic validateHideLabel(value?: boolean): void {\n\t\tvalidateHideLabel(this, value);\n\t}\n\n\t@Watch('_icon')\n\tpublic validateIcon(value?: KoliBriIconProp): void {\n\t\tvalidateIcon(this, value);\n\t}\n\n\t/**\n\t * @deprecated use _hide-label\n\t */\n\t@Watch('_iconOnly')\n\tpublic validateIconOnly(value?: boolean): void {\n\t\tthis.validateHideLabel(value);\n\t}\n\n\t@Watch('_label')\n\tpublic validateLabel(value?: string): void {\n\t\tvalidateLabelWithAriaLabel(this, value);\n\t}\n\n\tpublic componentWillLoad(): void {\n\t\tthis.validateHideLabel(this._hideLabel || this._iconOnly);\n\t\tthis.validateIcon(this._icon);\n\t\tthis.validateLabel(this._label);\n\t}\n}\n"],"mappings":";;;uVA6CaA,EAAS,M,yCA2BkC,M,oCAWD,M,iCAOtB,CAC/BC,WAAY,MACZC,MAAO,GACPC,UAAW,MACXC,OAAQ,I,CAhDFC,SACN,MAAMC,EAAiBC,KAAKC,MAAMJ,OAAOK,OAAS,EAClD,OACCC,EAACC,EAAI,CACJC,MAAO,CACN,cAAeL,KAAKC,MAAMP,WAC1B,eAAgBM,KAAKC,MAAMP,aAG3BM,KAAKC,MAAMN,MAAMW,KAAOH,EAAA,YAAUE,MAAM,WAAWE,MAAOP,KAAKC,MAAMN,MAAMW,IAAIC,MAAOC,WAAW,GAAGb,MAAOK,KAAKC,MAAMN,MAAMW,IAAIG,OACjIN,EAAA,YACEH,KAAKC,MAAMN,MAAMe,MAAQP,EAAA,YAAUE,MAAM,YAAYE,MAAOP,KAAKC,MAAMN,MAAMe,KAAKH,MAAOC,WAAW,GAAGb,MAAOK,KAAKC,MAAMN,MAAMe,KAAKD,OACpIT,KAAKC,MAAMP,aAAe,MAAQM,KAAKC,MAAMJ,OAAOK,OAAS,EAAIC,EAAA,YAAOH,KAAKC,MAAMJ,QAAiB,GACrGM,EAAA,sBAAmBJ,EAAiB,OAASY,UAAWC,OAAQb,GAC/DI,EAAA,QAAMU,KAAK,YAEXb,KAAKC,MAAMN,MAAMmB,OAASX,EAAA,YAAUE,MAAM,aAAaE,MAAOP,KAAKC,MAAMN,MAAMmB,MAAMP,MAAOC,WAAW,GAAGb,MAAOK,KAAKC,MAAMN,MAAMmB,MAAML,QAEzIT,KAAKC,MAAMN,MAAMoB,QAAUZ,EAAA,YAAUE,MAAM,cAAcE,MAAOP,KAAKC,MAAMN,MAAMoB,OAAOR,MAAOC,WAAW,GAAGb,MAAOK,KAAKC,MAAMN,MAAMoB,OAAON,O,CAkCzIO,kBAAkBC,GACxBD,EAAkBhB,KAAMiB,E,CAIlBC,aAAaD,GACnBC,EAAalB,KAAMiB,E,CAObE,iBAAiBF,GACvBjB,KAAKgB,kBAAkBC,E,CAIjBG,cAAcH,GACpBI,EAA2BrB,KAAMiB,E,CAG3BK,oBACNtB,KAAKgB,kBAAkBhB,KAAKN,YAAcM,KAAKJ,WAC/CI,KAAKkB,aAAalB,KAAKL,OACvBK,KAAKoB,cAAcpB,KAAKH,O"}
1
+ {"version":3,"names":["KolSpanWc","_hideLabel","_icon","_iconOnly","_label","render","hideExpertSlot","this","state","length","h","Host","class","top","style","_ariaLabel","icon","left","undefined","hidden","name","right","bottom","validateHideLabel","value","validateIcon","validateIconOnly","validateLabel","validateLabelWithAriaLabel","componentWillLoad"],"sources":["./src/components/span/component.tsx"],"sourcesContent":["import { Generic } from '@a11y-ui/core';\nimport { Component, h, Host, JSX, Prop, State, Watch } from '@stencil/core';\nimport { Stringified } from '../../types/common';\n\nimport { KoliBriCustomIcon, KoliBriIconProp } from '../../types/icon';\nimport { validateIcon } from '../../types/props/icon';\nimport { validateLabelWithAriaLabel } from '../../types/props/label';\nimport { PropHideLabel, validateHideLabel } from '../../types/props';\n\ntype RequiredProps = {\n\tlabel: string;\n};\ntype OptionalProps = {\n\ticon: Stringified<KoliBriIconProp>;\n\t/**\n\t * @deprecated use _hide-label\n\t */\n\ticonOnly: boolean;\n} & PropHideLabel;\nexport type Props = Generic.Element.Members<RequiredProps, OptionalProps>;\n\ntype RequiredStates = {\n\ticon: {\n\t\ttop?: KoliBriCustomIcon;\n\t\tright?: KoliBriCustomIcon;\n\t\tbottom?: KoliBriCustomIcon;\n\t\tleft?: KoliBriCustomIcon;\n\t};\n\tlabel: string;\n};\ntype OptionalStates = {\n\t/**\n\t * @deprecated use _hide-label\n\t */\n\ticonOnly: boolean;\n} & PropHideLabel;\nexport type States = Generic.Element.Members<RequiredStates, OptionalStates>;\n\n/**\n * @internal\n */\n@Component({\n\ttag: 'kol-span-wc',\n\tshadow: false,\n})\nexport class KolSpanWc implements Generic.Element.ComponentApi<RequiredProps, OptionalProps, RequiredStates, OptionalStates> {\n\tpublic render(): JSX.Element {\n\t\tconst hideExpertSlot = this.state._label.length > 0;\n\t\treturn (\n\t\t\t<Host\n\t\t\t\tclass={{\n\t\t\t\t\t'icon-only': !!this.state._hideLabel, // @deprecated in v2\n\t\t\t\t\t'hide-label': !!this.state._hideLabel,\n\t\t\t\t}}\n\t\t\t>\n\t\t\t\t{this.state._icon.top && <kol-icon class=\"icon top\" style={this.state._icon.top.style} _ariaLabel=\"\" _icon={this.state._icon.top.icon} />}\n\t\t\t\t<span>\n\t\t\t\t\t{this.state._icon.left && <kol-icon class=\"icon left\" style={this.state._icon.left.style} _ariaLabel=\"\" _icon={this.state._icon.left.icon} />}\n\t\t\t\t\t{this.state._hideLabel !== true && this.state._label.length > 0 ? <span>{this.state._label}</span> : ''}\n\t\t\t\t\t<span aria-hidden={hideExpertSlot ? 'true' : undefined} hidden={hideExpertSlot}>\n\t\t\t\t\t\t<slot name=\"expert\" />\n\t\t\t\t\t</span>\n\t\t\t\t\t{this.state._icon.right && <kol-icon class=\"icon right\" style={this.state._icon.right.style} _ariaLabel=\"\" _icon={this.state._icon.right.icon} />}\n\t\t\t\t</span>\n\t\t\t\t{this.state._icon.bottom && <kol-icon class=\"icon bottom\" style={this.state._icon.bottom.style} _ariaLabel=\"\" _icon={this.state._icon.bottom.icon} />}\n\t\t\t</Host>\n\t\t);\n\t}\n\n\t/**\n\t * Blendet die Beschriftung (Label) aus und zeigt sie stattdessen mittels eines Tooltips an.\n\t */\n\t@Prop({ reflect: true }) public _hideLabel?: boolean = false;\n\n\t/**\n\t * Setzt die Iconklasse (z.B.: `_icon=\"codicon codicon-home`).\n\t */\n\t@Prop() public _icon?: Stringified<KoliBriIconProp>;\n\n\t/**\n\t * Blendet die Beschriftung (Label) aus und zeigt sie stattdessen mittels eines Tooltips an.\n\t * @deprecated use _hide-label\n\t */\n\t@Prop({ reflect: true }) public _iconOnly?: boolean;\n\n\t/**\n\t * Setzt die sichtbare oder semantische Beschriftung der Komponente (z.B. Aria-Label, Label, Headline, Caption, Summary usw.).\n\t */\n\t@Prop() public _label!: string;\n\n\t@State() public state: States = {\n\t\t_hideLabel: false,\n\t\t_icon: {},\n\t\t_iconOnly: false,\n\t\t_label: '…', // ⚠ required\n\t};\n\n\t@Watch('_hideLabel')\n\tpublic validateHideLabel(value?: boolean): void {\n\t\tvalidateHideLabel(this, value);\n\t}\n\n\t@Watch('_icon')\n\tpublic validateIcon(value?: KoliBriIconProp): void {\n\t\tvalidateIcon(this, value);\n\t}\n\n\t/**\n\t * @deprecated use _hide-label\n\t */\n\t@Watch('_iconOnly')\n\tpublic validateIconOnly(value?: boolean): void {\n\t\tthis.validateHideLabel(value);\n\t}\n\n\t@Watch('_label')\n\tpublic validateLabel(value?: string): void {\n\t\tvalidateLabelWithAriaLabel(this, value);\n\t}\n\n\tpublic componentWillLoad(): void {\n\t\tthis.validateHideLabel(this._hideLabel || this._iconOnly);\n\t\tthis.validateIcon(this._icon);\n\t\tthis.validateLabel(this._label);\n\t}\n}\n"],"mappings":";;;uVA6CaA,EAAS,M,yCA2BkC,M,+EAkBvB,CAC/BC,WAAY,MACZC,MAAO,GACPC,UAAW,MACXC,OAAQ,I,CAhDFC,SACN,MAAMC,EAAiBC,KAAKC,MAAMJ,OAAOK,OAAS,EAClD,OACCC,EAACC,EAAI,CACJC,MAAO,CACN,cAAeL,KAAKC,MAAMP,WAC1B,eAAgBM,KAAKC,MAAMP,aAG3BM,KAAKC,MAAMN,MAAMW,KAAOH,EAAA,YAAUE,MAAM,WAAWE,MAAOP,KAAKC,MAAMN,MAAMW,IAAIC,MAAOC,WAAW,GAAGb,MAAOK,KAAKC,MAAMN,MAAMW,IAAIG,OACjIN,EAAA,YACEH,KAAKC,MAAMN,MAAMe,MAAQP,EAAA,YAAUE,MAAM,YAAYE,MAAOP,KAAKC,MAAMN,MAAMe,KAAKH,MAAOC,WAAW,GAAGb,MAAOK,KAAKC,MAAMN,MAAMe,KAAKD,OACpIT,KAAKC,MAAMP,aAAe,MAAQM,KAAKC,MAAMJ,OAAOK,OAAS,EAAIC,EAAA,YAAOH,KAAKC,MAAMJ,QAAiB,GACrGM,EAAA,sBAAmBJ,EAAiB,OAASY,UAAWC,OAAQb,GAC/DI,EAAA,QAAMU,KAAK,YAEXb,KAAKC,MAAMN,MAAMmB,OAASX,EAAA,YAAUE,MAAM,aAAaE,MAAOP,KAAKC,MAAMN,MAAMmB,MAAMP,MAAOC,WAAW,GAAGb,MAAOK,KAAKC,MAAMN,MAAMmB,MAAML,QAEzIT,KAAKC,MAAMN,MAAMoB,QAAUZ,EAAA,YAAUE,MAAM,cAAcE,MAAOP,KAAKC,MAAMN,MAAMoB,OAAOR,MAAOC,WAAW,GAAGb,MAAOK,KAAKC,MAAMN,MAAMoB,OAAON,O,CAkCzIO,kBAAkBC,GACxBD,EAAkBhB,KAAMiB,E,CAIlBC,aAAaD,GACnBC,EAAalB,KAAMiB,E,CAObE,iBAAiBF,GACvBjB,KAAKgB,kBAAkBC,E,CAIjBG,cAAcH,GACpBI,EAA2BrB,KAAMiB,E,CAG3BK,oBACNtB,KAAKgB,kBAAkBhB,KAAKN,YAAcM,KAAKJ,WAC/CI,KAAKkB,aAAalB,KAAKL,OACvBK,KAAKoB,cAAcpB,KAAKH,O"}
@@ -1,4 +1,4 @@
1
1
  /*!
2
2
  * KoliBri - The accessible HTML-Standard
3
3
  */
4
- import{r as t,h as n}from"./index-6ad587d0.js";const i=":host{--a11y-min-size:44px;font-size:inherit}*{hyphens:auto;letter-spacing:inherit;word-break:break-word;word-spacing:inherit}[role='button'],button:not([role='link']),kol-input .input{min-height:var(--a11y-min-size);min-width:var(--a11y-min-size)}a,button,h1,h2,h3,h4,h5,h6,input,option,select,textarea{font-family:inherit;font-size:inherit}:is(a,button){background-color:transparent;border:none;margin:0;padding:0;width:100%;}:host{max-width:100%}*{box-sizing:border-box}kol-span-wc{display:grid;place-items:center}kol-span-wc>span{display:flex;place-items:center}a,button{cursor:pointer}button,input,option,select,textarea{font-family:inherit}.icon-only>kol-span-wc>span>span{display:none}",e=class{constructor(i){t(this,i),this._hideLabel=!1,this._icon=void 0,this._iconOnly=!1,this._label=void 0}render(){return n("kol-span-wc",{_icon:this._icon,_hideLabel:this._hideLabel,_label:this._label},n("slot",{name:"expert",slot:"expert"}))}};e.style={default:i};export{e as kol_span};
4
+ import{r as t,h as n}from"./index-6ad587d0.js";const i=":host{--a11y-min-size:44px;font-size:inherit}*{hyphens:auto;letter-spacing:inherit;word-break:break-word;word-spacing:inherit}[role='button'],button:not([role='link']),kol-input .input{min-height:var(--a11y-min-size);min-width:var(--a11y-min-size)}a,button,h1,h2,h3,h4,h5,h6,input,option,select,textarea{font-family:inherit;font-size:inherit}:is(a,button){background-color:transparent;border:none;margin:0;padding:0;width:100%;}:host{max-width:100%}*{box-sizing:border-box}kol-span-wc{display:grid;place-items:center}kol-span-wc>span{display:flex;place-items:center}a,button{cursor:pointer}button,input,option,select,textarea{font-family:inherit}.icon-only>kol-span-wc>span>span{display:none}",e=class{constructor(i){t(this,i),this._hideLabel=!1,this._icon=void 0,this._iconOnly=void 0,this._label=void 0}render(){return n("kol-span-wc",{_icon:this._icon,_hideLabel:this._hideLabel,_label:this._label},n("slot",{name:"expert",slot:"expert"}))}};e.style={default:i};export{e as kol_span};
@@ -1 +1 @@
1
- {"version":3,"names":["defaultStyleCss","KolSpan","render","h","_icon","this","_hideLabel","_label","name","slot"],"sources":["./src/components/span/style.css?tag=kol-span&mode=default&encapsulation=shadow","./src/components/span/shadow.tsx"],"sourcesContent":["@import url(../style.css);\n","import { Component, h, JSX, Prop } from '@stencil/core';\nimport { Stringified } from '../../types/common';\n\nimport { KoliBriIconProp } from '../../types/icon';\nimport { Props } from './component';\n\n@Component({\n\ttag: 'kol-span',\n\tstyleUrls: {\n\t\tdefault: './style.css',\n\t},\n\tshadow: true,\n})\nexport class KolSpan implements Props {\n\tpublic render(): JSX.Element {\n\t\treturn (\n\t\t\t<kol-span-wc _icon={this._icon} _hideLabel={this._hideLabel} _label={this._label}>\n\t\t\t\t<slot name=\"expert\" slot=\"expert\"></slot>\n\t\t\t</kol-span-wc>\n\t\t);\n\t}\n\n\t/**\n\t * Blendet die Beschriftung (Label) aus und zeigt sie stattdessen mittels eines Tooltips an.\n\t */\n\t@Prop({ reflect: true }) public _hideLabel?: boolean = false;\n\n\t/**\n\t * Setzt die Iconklasse (z.B.: `_icon=\"codicon codicon-home`).\n\t */\n\t@Prop() public _icon?: Stringified<KoliBriIconProp>;\n\n\t/**\n\t * Blendet die Beschriftung (Label) aus und zeigt sie stattdessen mittels eines Tooltips an.\n\t * @deprecated use _hide-label\n\t */\n\t@Prop({ reflect: true }) public _iconOnly?: boolean = false;\n\n\t/**\n\t * Setzt die sichtbare oder semantische Beschriftung der Komponente (z.B. Aria-Label, Label, Headline, Caption, Summary usw.).\n\t */\n\t@Prop() public _label!: string;\n}\n"],"mappings":";;;+CAAA,MAAMA,EAAkB,urB,MCaXC,EAAO,M,yCAYoC,M,oCAWD,M,sBAtB/CC,SACN,OACCC,EAAA,eAAaC,MAAOC,KAAKD,MAAOE,WAAYD,KAAKC,WAAYC,OAAQF,KAAKE,QACzEJ,EAAA,QAAMK,KAAK,SAASC,KAAK,W"}
1
+ {"version":3,"names":["defaultStyleCss","KolSpan","render","h","_icon","this","_hideLabel","_label","name","slot"],"sources":["./src/components/span/style.css?tag=kol-span&mode=default&encapsulation=shadow","./src/components/span/shadow.tsx"],"sourcesContent":["@import url(../style.css);\n","import { Component, h, JSX, Prop } from '@stencil/core';\nimport { Stringified } from '../../types/common';\n\nimport { KoliBriIconProp } from '../../types/icon';\nimport { Props } from './component';\n\n@Component({\n\ttag: 'kol-span',\n\tstyleUrls: {\n\t\tdefault: './style.css',\n\t},\n\tshadow: true,\n})\nexport class KolSpan implements Props {\n\tpublic render(): JSX.Element {\n\t\treturn (\n\t\t\t<kol-span-wc _icon={this._icon} _hideLabel={this._hideLabel} _label={this._label}>\n\t\t\t\t<slot name=\"expert\" slot=\"expert\"></slot>\n\t\t\t</kol-span-wc>\n\t\t);\n\t}\n\n\t/**\n\t * Blendet die Beschriftung (Label) aus und zeigt sie stattdessen mittels eines Tooltips an.\n\t */\n\t@Prop({ reflect: true }) public _hideLabel?: boolean = false;\n\n\t/**\n\t * Setzt die Iconklasse (z.B.: `_icon=\"codicon codicon-home`).\n\t */\n\t@Prop() public _icon?: Stringified<KoliBriIconProp>;\n\n\t/**\n\t * Blendet die Beschriftung (Label) aus und zeigt sie stattdessen mittels eines Tooltips an.\n\t * @deprecated use _hide-label\n\t */\n\t@Prop({ reflect: true }) public _iconOnly?: boolean;\n\n\t/**\n\t * Setzt die sichtbare oder semantische Beschriftung der Komponente (z.B. Aria-Label, Label, Headline, Caption, Summary usw.).\n\t */\n\t@Prop() public _label!: string;\n}\n"],"mappings":";;;+CAAA,MAAMA,EAAkB,urB,MCaXC,EAAO,M,yCAYoC,M,oEAXhDC,SACN,OACCC,EAAA,eAAaC,MAAOC,KAAKD,MAAOE,WAAYD,KAAKC,WAAYC,OAAQF,KAAKE,QACzEJ,EAAA,QAAMK,KAAK,SAASC,KAAK,W"}
@@ -1,4 +1,4 @@
1
1
  /*!
2
2
  * KoliBri - The accessible HTML-Standard
3
3
  */
4
- import{r as t,h as i,H as s}from"./index-6ad587d0.js";import{w as e,b as a,s as o}from"./prop.validators-f81af56e.js";import{a as n,b as h}from"./label-559ca626.js";import{g as l}from"./a11y.tipps-2e27f8e6.js";import{v as d}from"./tab-index-ff5374b8.js";import{w as r}from"./button-link-283b2d32.js";import{a as c,w as p}from"./controller-ec771280.js";import{v as u,a as b}from"./aria-selected-efb464e1.js";import{v as f,a as v}from"./disabled-6200e69c.js";import{v as _}from"./hide-label-2baeb5c5.js";import"./dev.utils-157f0499.js";import"./reuse-3a02afb9.js";import"./index-ff788b4b.js";const m=":host{--a11y-min-size:44px;font-size:inherit}*{hyphens:auto;letter-spacing:inherit;word-break:break-word;word-spacing:inherit}[role='button'],button:not([role='link']),kol-input .input{min-height:var(--a11y-min-size);min-width:var(--a11y-min-size)}a,button,h1,h2,h3,h4,h5,h6,input,option,select,textarea{font-family:inherit;font-size:inherit}:is(a,button){background-color:transparent;border:none;margin:0;padding:0;width:100%;}:host{max-width:100%}*{box-sizing:border-box}kol-span-wc{display:grid;place-items:center}kol-span-wc>span{display:flex;place-items:center}a,button{cursor:pointer}button,input,option,select,textarea{font-family:inherit}.icon-only>kol-span-wc>span>span{display:none}:host{display:flex;position:relative}.main-button{flex-grow:1;text-align:left}.main-button kol-span-wc{place-items:start}.secondary-button button{height:100%}.horizontal-line{background-color:rgba(0, 0, 0, 0.2);border-radius:2px;height:70%;margin-block:auto;width:1px}.popover{height:0;left:0;min-width:100%;overflow:hidden;position:absolute;top:100%;transition:height 0.3s ease-in-out}.popover-content{inset:0 0 auto 0;min-width:100%;position:absolute}",w=class{constructor(i){t(this,i),this.clickHandler=t=>{"function"==typeof this.state._on.onClick?this.state._on.onClick(t):this.toggleDropdown()},this.openDropdown=()=>{this.dropdown&&this.dropdownContent&&(this.dropdown.style.height=`${this.dropdownContent.clientHeight}px`,this.state=Object.assign(Object.assign({},this.state),{_showDropdown:!0}))},this.closeDropdown=()=>{this.dropdown&&this.dropdownContent&&(this.dropdown.style.height="",this.state=Object.assign(Object.assign({},this.state),{_showDropdown:!1}))},this.toggleDropdown=t=>{("boolean"==typeof t?t:!this.state._showDropdown)?this.openDropdown():this.closeDropdown()},this.forceCounter=100,this.forceOpenDropdown=()=>{var t;this.forceCounter>0&&((null===(t=this.dropdownContent)||void 0===t?void 0:t.clientHeight)?this.openDropdown():setTimeout(this.forceOpenDropdown,10),this.forceCounter--)},this.catchDropdownElements=t=>{t&&(this.dropdown=t,setTimeout((()=>{this.dropdownContent=t.firstChild,this._showDropdown&&this.forceOpenDropdown()})))},this._accessKey=void 0,this._ariaControls=void 0,this._ariaCurrent=void 0,this._ariaExpanded=void 0,this._ariaLabel=void 0,this._ariaSelected=void 0,this._customClass=void 0,this._disabled=!1,this._hideLabel=!1,this._icon=void 0,this._iconOnly=!1,this._label=void 0,this._on=void 0,this._role=void 0,this._showDropdown=!1,this._tabIndex=void 0,this._tooltipAlign="top",this._type="button",this._value=void 0,this._variant="normal",this.state={_icon:"",_label:"",_on:{},_showDropdown:!1}}render(){return i(s,null,i("kol-button-wc",{class:{"main-button":!0,button:!0,[this._variant]:"custom"!==this._variant,[this._customClass]:"custom"===this._variant&&"string"==typeof this._customClass&&this._customClass.length>0},_accessKey:this._accessKey,_ariaControls:this._ariaControls,_ariaCurrent:this._ariaCurrent,_ariaExpanded:this._ariaExpanded,_ariaLabel:this._ariaLabel,_ariaSelected:this._ariaSelected,_customClass:this._customClass,_disabled:this._disabled,_icon:this._icon,_hideLabel:this._hideLabel,_label:this._label,_on:{onClick:this.clickHandler},_role:this._role,_tabIndex:this._tabIndex,_tooltipAlign:this._tooltipAlign,_type:this._type,_value:this._value,_variant:this._variant}),i("div",{class:"horizontal-line"}),i("kol-button-wc",{class:"secondary-button",_disabled:this._disabled,_hideLabel:!0,_icon:"codicon codicon-triangle-down",_label:"dropdown "+(this.state._showDropdown?"schließen":"öffnen"),_on:{onClick:()=>this.toggleDropdown()}}),i("div",{class:"popover",ref:this.catchDropdownElements},i("div",{class:"popover-content"},i("slot",null))))}validateAccessKey(t){e(this,"_accessKey",t)}validateAriaControls(t){e(this,"_ariaControls",t)}validateAriaCurrent(t){u(this,t)}validateAriaExpanded(t){f(this,t)}validateAriaLabel(t){n(this,t)}validateAriaSelected(t){b(this,t)}validateCustomClass(t){e(this,"_customClass",t,{defaultValue:void 0})}validateDisabled(t){v(this,t),t&&l()}validateHideLabel(t){_(this,t)}validateIcon(t){e(this,"_icon",t)}validateIconOnly(t){this.validateHideLabel(t)}validateLabel(t){h(this,t)}validateOn(t){"object"==typeof t&&null!==t&&(this.state=Object.assign(Object.assign({},this.state),{_on:t}))}validateRole(t){e(this,"_role",t)}validateShowDropdown(t){a(this,"_showDropdown",t),this.toggleDropdown(t)}validateTabIndex(t){d(this,t)}validateTooltipAlign(t){r(this,"_tooltipAlign",t)}validateType(t){c(this,"_type",t)}validateValue(t){o(this,"_value",t)}validateVariant(t){p(this,"_variant",t)}componentWillLoad(){this.validateAccessKey(this._accessKey),this.validateAriaControls(this._ariaControls),this.validateAriaCurrent(this._ariaCurrent),this.validateAriaExpanded(this._ariaExpanded),this.validateAriaLabel(this._ariaLabel),this.validateAriaSelected(this._ariaSelected),this.validateCustomClass(this._customClass),this.validateDisabled(this._disabled),this.validateHideLabel(this._hideLabel||this._iconOnly),this.validateIcon(this._icon),this.validateLabel(this._label),this.validateOn(this._on),this.validateRole(this._role),this.validateShowDropdown(this._showDropdown),this.validateTabIndex(this._tabIndex),this.validateTooltipAlign(this._tooltipAlign),this.validateType(this._type),this.validateValue(this._value),this.validateVariant(this._variant)}static get watchers(){return{_accessKey:["validateAccessKey"],_ariaControls:["validateAriaControls"],_ariaCurrent:["validateAriaCurrent"],_ariaExpanded:["validateAriaExpanded"],_ariaLabel:["validateAriaLabel"],_ariaSelected:["validateAriaSelected"],_customClass:["validateCustomClass"],_disabled:["validateDisabled"],_hideLabel:["validateHideLabel"],_icon:["validateIcon"],_iconOnly:["validateIconOnly"],_label:["validateLabel"],_on:["validateOn"],_role:["validateRole"],_showDropdown:["validateShowDropdown"],_tabIndex:["validateTabIndex"],_tooltipAlign:["validateTooltipAlign"],_type:["validateType"],_value:["validateValue"],_variant:["validateVariant"]}}};w.style={default:m};export{w as kol_split_button};
4
+ import{r as t,h as i,H as s}from"./index-6ad587d0.js";import{w as e,b as a,s as o}from"./prop.validators-f81af56e.js";import{a as n,b as h}from"./label-559ca626.js";import{g as l}from"./a11y.tipps-2e27f8e6.js";import{v as d}from"./tab-index-ff5374b8.js";import{w as r}from"./button-link-283b2d32.js";import{a as c,w as p}from"./controller-ec771280.js";import{v as u,a as b}from"./aria-selected-efb464e1.js";import{v as f,a as v}from"./disabled-6200e69c.js";import{v as _}from"./hide-label-2baeb5c5.js";import"./dev.utils-157f0499.js";import"./reuse-3a02afb9.js";import"./index-ff788b4b.js";const m=":host{--a11y-min-size:44px;font-size:inherit}*{hyphens:auto;letter-spacing:inherit;word-break:break-word;word-spacing:inherit}[role='button'],button:not([role='link']),kol-input .input{min-height:var(--a11y-min-size);min-width:var(--a11y-min-size)}a,button,h1,h2,h3,h4,h5,h6,input,option,select,textarea{font-family:inherit;font-size:inherit}:is(a,button){background-color:transparent;border:none;margin:0;padding:0;width:100%;}:host{max-width:100%}*{box-sizing:border-box}kol-span-wc{display:grid;place-items:center}kol-span-wc>span{display:flex;place-items:center}a,button{cursor:pointer}button,input,option,select,textarea{font-family:inherit}.icon-only>kol-span-wc>span>span{display:none}:host{display:flex;position:relative}.main-button{flex-grow:1;text-align:left}.main-button kol-span-wc{place-items:start}.secondary-button button{height:100%}.horizontal-line{background-color:rgba(0, 0, 0, 0.2);border-radius:2px;height:70%;margin-block:auto;width:1px}.popover{height:0;left:0;min-width:100%;overflow:hidden;position:absolute;top:100%;transition:height 0.3s ease-in-out}.popover-content{inset:0 0 auto 0;min-width:100%;position:absolute}",w=class{constructor(i){t(this,i),this.clickHandler=t=>{"function"==typeof this.state._on.onClick?this.state._on.onClick(t):this.toggleDropdown()},this.openDropdown=()=>{this.dropdown&&this.dropdownContent&&(this.dropdown.style.height=`${this.dropdownContent.clientHeight}px`,this.state=Object.assign(Object.assign({},this.state),{_showDropdown:!0}))},this.closeDropdown=()=>{this.dropdown&&this.dropdownContent&&(this.dropdown.style.height="",this.state=Object.assign(Object.assign({},this.state),{_showDropdown:!1}))},this.toggleDropdown=t=>{("boolean"==typeof t?t:!this.state._showDropdown)?this.openDropdown():this.closeDropdown()},this.forceCounter=100,this.forceOpenDropdown=()=>{var t;this.forceCounter>0&&((null===(t=this.dropdownContent)||void 0===t?void 0:t.clientHeight)?this.openDropdown():setTimeout(this.forceOpenDropdown,10),this.forceCounter--)},this.catchDropdownElements=t=>{t&&(this.dropdown=t,setTimeout((()=>{this.dropdownContent=t.firstChild,this._showDropdown&&this.forceOpenDropdown()})))},this._accessKey=void 0,this._ariaControls=void 0,this._ariaCurrent=void 0,this._ariaExpanded=void 0,this._ariaLabel=void 0,this._ariaSelected=void 0,this._customClass=void 0,this._disabled=!1,this._hideLabel=!1,this._icon=void 0,this._iconOnly=void 0,this._label=void 0,this._on=void 0,this._role=void 0,this._showDropdown=!1,this._tabIndex=void 0,this._tooltipAlign="top",this._type="button",this._value=void 0,this._variant="normal",this.state={_icon:"",_label:"",_on:{},_showDropdown:!1}}render(){return i(s,null,i("kol-button-wc",{class:{"main-button":!0,button:!0,[this._variant]:"custom"!==this._variant,[this._customClass]:"custom"===this._variant&&"string"==typeof this._customClass&&this._customClass.length>0},_accessKey:this._accessKey,_ariaControls:this._ariaControls,_ariaCurrent:this._ariaCurrent,_ariaExpanded:this._ariaExpanded,_ariaLabel:this._ariaLabel,_ariaSelected:this._ariaSelected,_customClass:this._customClass,_disabled:this._disabled,_icon:this._icon,_hideLabel:this._hideLabel,_label:this._label,_on:{onClick:this.clickHandler},_role:this._role,_tabIndex:this._tabIndex,_tooltipAlign:this._tooltipAlign,_type:this._type,_value:this._value,_variant:this._variant}),i("div",{class:"horizontal-line"}),i("kol-button-wc",{class:"secondary-button",_disabled:this._disabled,_hideLabel:!0,_icon:"codicon codicon-triangle-down",_label:"dropdown "+(this.state._showDropdown?"schließen":"öffnen"),_on:{onClick:()=>this.toggleDropdown()}}),i("div",{class:"popover",ref:this.catchDropdownElements},i("div",{class:"popover-content"},i("slot",null))))}validateAccessKey(t){e(this,"_accessKey",t)}validateAriaControls(t){e(this,"_ariaControls",t)}validateAriaCurrent(t){u(this,t)}validateAriaExpanded(t){f(this,t)}validateAriaLabel(t){n(this,t)}validateAriaSelected(t){b(this,t)}validateCustomClass(t){e(this,"_customClass",t,{defaultValue:void 0})}validateDisabled(t){v(this,t),t&&l()}validateHideLabel(t){_(this,t)}validateIcon(t){e(this,"_icon",t)}validateIconOnly(t){this.validateHideLabel(t)}validateLabel(t){h(this,t)}validateOn(t){"object"==typeof t&&null!==t&&(this.state=Object.assign(Object.assign({},this.state),{_on:t}))}validateRole(t){e(this,"_role",t)}validateShowDropdown(t){a(this,"_showDropdown",t),this.toggleDropdown(t)}validateTabIndex(t){d(this,t)}validateTooltipAlign(t){r(this,"_tooltipAlign",t)}validateType(t){c(this,"_type",t)}validateValue(t){o(this,"_value",t)}validateVariant(t){p(this,"_variant",t)}componentWillLoad(){this.validateAccessKey(this._accessKey),this.validateAriaControls(this._ariaControls),this.validateAriaCurrent(this._ariaCurrent),this.validateAriaExpanded(this._ariaExpanded),this.validateAriaLabel(this._ariaLabel),this.validateAriaSelected(this._ariaSelected),this.validateCustomClass(this._customClass),this.validateDisabled(this._disabled),this.validateHideLabel(this._hideLabel||this._iconOnly),this.validateIcon(this._icon),this.validateLabel(this._label),this.validateOn(this._on),this.validateRole(this._role),this.validateShowDropdown(this._showDropdown),this.validateTabIndex(this._tabIndex),this.validateTooltipAlign(this._tooltipAlign),this.validateType(this._type),this.validateValue(this._value),this.validateVariant(this._variant)}static get watchers(){return{_accessKey:["validateAccessKey"],_ariaControls:["validateAriaControls"],_ariaCurrent:["validateAriaCurrent"],_ariaExpanded:["validateAriaExpanded"],_ariaLabel:["validateAriaLabel"],_ariaSelected:["validateAriaSelected"],_customClass:["validateCustomClass"],_disabled:["validateDisabled"],_hideLabel:["validateHideLabel"],_icon:["validateIcon"],_iconOnly:["validateIconOnly"],_label:["validateLabel"],_on:["validateOn"],_role:["validateRole"],_showDropdown:["validateShowDropdown"],_tabIndex:["validateTabIndex"],_tooltipAlign:["validateTooltipAlign"],_type:["validateType"],_value:["validateValue"],_variant:["validateVariant"]}}};w.style={default:m};export{w as kol_split_button};
@@ -1 +1 @@
1
- {"version":3,"names":["defaultStyleCss","KolSplitButton","this","clickHandler","e","state","_on","onClick","toggleDropdown","openDropdown","dropdown","dropdownContent","style","height","clientHeight","Object","assign","_showDropdown","closeDropdown","value","openIt","forceCounter","forceOpenDropdown","_a","setTimeout","catchDropdownElements","firstChild","_icon","_label","render","h","Host","class","button","_variant","_customClass","length","_accessKey","_ariaControls","_ariaCurrent","_ariaExpanded","_ariaLabel","_ariaSelected","_disabled","_hideLabel","_role","_tabIndex","_tooltipAlign","_type","_value","ref","validateAccessKey","watchString","validateAriaControls","validateAriaCurrent","validateAriaExpanded","validateAriaLabel","validateAriaLabelWithLabel","validateAriaSelected","validateCustomClass","defaultValue","undefined","validateDisabled","a11yHintDisabled","validateHideLabel","validateIcon","validateIconOnly","validateLabel","validateLabelWithAriaLabel","validateOn","validateRole","validateShowDropdown","watchBoolean","validateTabIndex","validateTooltipAlign","watchTooltipAlignment","validateType","watchButtonType","validateValue","setState","validateVariant","watchButtonVariant","componentWillLoad","_iconOnly"],"sources":["./src/components/split-button/style.css?tag=kol-split-button&mode=default&encapsulation=shadow","./src/components/split-button/component.tsx"],"sourcesContent":["@import url(../style.css);\n:host {\n\tdisplay: flex;\n\tposition: relative;\n}\n.main-button {\n\tflex-grow: 1;\n\ttext-align: left;\n}\n.main-button kol-span-wc {\n\tplace-items: start;\n}\n.secondary-button button {\n\theight: 100%;\n}\n.horizontal-line {\n\tbackground-color: rgba(0, 0, 0, 0.2);\n\tborder-radius: 2px;\n\theight: 70%;\n\tmargin-block: auto;\n\twidth: 1px;\n}\n/* popover */\n.popover {\n\theight: 0;\n\tleft: 0;\n\tmin-width: 100%;\n\toverflow: hidden;\n\tposition: absolute;\n\ttop: 100%;\n\ttransition: height 0.3s ease-in-out;\n}\n.popover-content {\n\tinset: 0 0 auto 0;\n\tmin-width: 100%;\n\tposition: absolute;\n}\n","import { Component, h, Host, JSX, Prop, State, Watch } from '@stencil/core';\n\nimport { API, KoliBriSplitButtonCallback, States } from './types';\nimport { setState, watchBoolean, watchString } from '../../utils/prop.validators';\nimport { Align, AriaCurrent, validateAriaCurrent, validateAriaExpanded, validateAriaSelected, validateDisabled, validateHideLabel } from '../../types/props';\nimport { validateAriaLabelWithLabel, validateLabelWithAriaLabel } from '../../types/props/label';\nimport { a11yHintDisabled } from '../../utils/a11y.tipps';\nimport { validateTabIndex } from '../../utils/validators/tab-index';\nimport { AlternativButtonLinkRole, KoliBriButtonType, KoliBriButtonVariant, watchTooltipAlignment } from '../../types/button-link';\nimport { watchButtonType, watchButtonVariant } from '../button/controller';\nimport { Stringified } from '../../types/common';\n\n/**\n * @slot - Ermöglicht das Einfügen beliebigen HTML's in das dropdown.\n */\n@Component({\n\ttag: 'kol-split-button',\n\tstyleUrls: {\n\t\tdefault: './style.css',\n\t},\n\tshadow: true,\n})\nexport class KolSplitButton implements API {\n\tprivate dropdown: HTMLDivElement | undefined;\n\tprivate dropdownContent: HTMLDivElement | undefined;\n\n\tprivate readonly clickHandler = (e: Event) => {\n\t\tif (typeof this.state._on.onClick === 'function') this.state._on.onClick(e);\n\t\telse this.toggleDropdown();\n\t};\n\n\tprivate readonly openDropdown = () => {\n\t\tif (this.dropdown && this.dropdownContent) {\n\t\t\tthis.dropdown.style.height = `${this.dropdownContent.clientHeight}px`;\n\t\t\tthis.state = { ...this.state, _showDropdown: true };\n\t\t}\n\t};\n\tprivate readonly closeDropdown = () => {\n\t\tif (this.dropdown && this.dropdownContent) {\n\t\t\tthis.dropdown.style.height = ``;\n\t\t\tthis.state = { ...this.state, _showDropdown: false };\n\t\t}\n\t};\n\tprivate readonly toggleDropdown = (value?: boolean) => {\n\t\tconst openIt = typeof value === 'boolean' ? value : !this.state._showDropdown;\n\t\tif (openIt) this.openDropdown();\n\t\telse this.closeDropdown();\n\t};\n\tprivate forceCounter = 100; // because the dropdown could be empty\n\tprivate readonly forceOpenDropdown = () => {\n\t\tif (this.forceCounter > 0) {\n\t\t\tif (this.dropdownContent?.clientHeight) this.openDropdown();\n\t\t\telse setTimeout(this.forceOpenDropdown, 10);\n\t\t\tthis.forceCounter--;\n\t\t}\n\t};\n\n\tprivate readonly catchDropdownElements = (e?: HTMLDivElement | null) => {\n\t\tif (e) {\n\t\t\tthis.dropdown = e;\n\t\t\tsetTimeout(() => {\n\t\t\t\tthis.dropdownContent = e.firstChild as HTMLDivElement;\n\t\t\t\tif (this._showDropdown) this.forceOpenDropdown();\n\t\t\t});\n\t\t}\n\t};\n\n\tpublic render(): JSX.Element {\n\t\treturn (\n\t\t\t<Host>\n\t\t\t\t<kol-button-wc\n\t\t\t\t\tclass={{\n\t\t\t\t\t\t'main-button': true,\n\t\t\t\t\t\tbutton: true,\n\t\t\t\t\t\t[this._variant as string]: this._variant !== 'custom',\n\t\t\t\t\t\t[this._customClass as string]: this._variant === 'custom' && typeof this._customClass === 'string' && this._customClass.length > 0,\n\t\t\t\t\t}}\n\t\t\t\t\t_accessKey={this._accessKey}\n\t\t\t\t\t_ariaControls={this._ariaControls}\n\t\t\t\t\t_ariaCurrent={this._ariaCurrent}\n\t\t\t\t\t_ariaExpanded={this._ariaExpanded}\n\t\t\t\t\t_ariaLabel={this._ariaLabel}\n\t\t\t\t\t_ariaSelected={this._ariaSelected}\n\t\t\t\t\t_customClass={this._customClass}\n\t\t\t\t\t_disabled={this._disabled}\n\t\t\t\t\t_icon={this._icon}\n\t\t\t\t\t_hideLabel={this._hideLabel}\n\t\t\t\t\t_label={this._label}\n\t\t\t\t\t_on={{ onClick: this.clickHandler }}\n\t\t\t\t\t_role={this._role}\n\t\t\t\t\t_tabIndex={this._tabIndex}\n\t\t\t\t\t_tooltipAlign={this._tooltipAlign}\n\t\t\t\t\t_type={this._type}\n\t\t\t\t\t_value={this._value}\n\t\t\t\t\t_variant={this._variant}\n\t\t\t\t></kol-button-wc>\n\t\t\t\t<div class=\"horizontal-line\"></div>\n\t\t\t\t<kol-button-wc\n\t\t\t\t\tclass=\"secondary-button\"\n\t\t\t\t\t_disabled={this._disabled}\n\t\t\t\t\t_hideLabel\n\t\t\t\t\t_icon=\"codicon codicon-triangle-down\"\n\t\t\t\t\t_label={`dropdown ${this.state._showDropdown ? 'schließen' : 'öffnen'}`}\n\t\t\t\t\t_on={{ onClick: () => this.toggleDropdown() }}\n\t\t\t\t></kol-button-wc>\n\t\t\t\t<div class=\"popover\" ref={this.catchDropdownElements}>\n\t\t\t\t\t<div class=\"popover-content\">\n\t\t\t\t\t\t<slot />\n\t\t\t\t\t</div>\n\t\t\t\t</div>\n\t\t\t</Host>\n\t\t);\n\t}\n\n\t/**\n\t * Gibt an, mit welcher Tastenkombination man das interaktive Element der Komponente auslösen oder fokussieren kann.\n\t */\n\t@Prop() public _accessKey?: string;\n\n\t/**\n\t * Gibt an, welche Elemente kontrolliert werden. (https://developer.mozilla.org/en-US/docs/Web/Accessibility/ARIA/Attributes/aria-controls)\n\t */\n\t@Prop() public _ariaControls?: string;\n\n\t/**\n\t * Gibt an, welchen aktuellen Auswahlstatus das interaktive Element der Komponente hat. (https://developer.mozilla.org/en-US/docs/Web/Accessibility/ARIA/Attributes/aria-current)\n\t */\n\t@Prop() public _ariaCurrent?: AriaCurrent;\n\n\t/**\n\t * Gibt an, ob durch das interaktive Element in der Komponente etwas aufgeklappt wurde. (https://developer.mozilla.org/en-US/docs/Web/Accessibility/ARIA/Attributes/aria-expanded)\n\t */\n\t@Prop({ reflect: true }) public _ariaExpanded?: boolean;\n\n\t/**\n\t * Setzt die sichtbare oder semantische Beschriftung der Komponente (z.B. Aria-Label, Label, Headline, Caption, Summary usw.).\n\t */\n\t@Prop({ mutable: true, reflect: false }) public _ariaLabel?: string;\n\n\t/**\n\t * Gibt an, ob interaktive Element in der Komponente ausgewählt ist (z.B. role=tab). (https://developer.mozilla.org/en-US/docs/Web/Accessibility/ARIA/Attributes/aria-selected)\n\t */\n\t@Prop({ reflect: true }) public _ariaSelected?: boolean;\n\n\t/**\n\t * Gibt an, welche Custom-Class übergeben werden soll, wenn _variant=\"custom\" gesetzt ist.\n\t */\n\t@Prop() public _customClass?: string;\n\n\t/**\n\t * Deaktiviert das interaktive Element in der Komponente und erlaubt keine Interaktion mehr damit.\n\t */\n\t@Prop({ reflect: true }) public _disabled?: boolean = false;\n\n\t/**\n\t * Blendet die Beschriftung (Label) aus und zeigt sie stattdessen mittels eines Tooltips an.\n\t */\n\t@Prop({ reflect: true }) public _hideLabel?: boolean = false;\n\n\t/**\n\t * Setzt die Iconklasse (z.B.: `_icon=\"codicon codicon-home`).\n\t */\n\t@Prop() public _icon?: string;\n\n\t/**\n\t * Blendet die Beschriftung (Label) aus und zeigt sie stattdessen mittels eines Tooltips an.\n\t * @deprecated use _hide-label\n\t */\n\t@Prop({ reflect: true }) public _iconOnly?: boolean = false;\n\n\t/**\n\t * Setzt die sichtbare oder semantische Beschriftung der Komponente (z.B. Aria-Label, Label, Headline, Caption, Summary usw.).\n\t */\n\t@Prop({ mutable: true, reflect: false }) public _label!: string;\n\n\t/**\n\t * Gibt die EventCallback-Funktionen für die Button-Events an.\n\t */\n\t@Prop() public _on?: { onClick: KoliBriSplitButtonCallback };\n\n\t/**\n\t * Gibt die Rolle des primären Elements in der Komponente an.\n\t */\n\t@Prop() public _role?: AlternativButtonLinkRole;\n\n\t/**\n\t * Gibt die Rolle des primären Elements in der Komponente an.\n\t */\n\t@Prop({ mutable: true, reflect: true }) public _showDropdown?: boolean = false;\n\n\t/**\n\t * Gibt an, welchen Tab-Index das primäre Element in der Komponente hat. (https://developer.mozilla.org/en-US/docs/Web/HTML/Global_attributes/tabindex)\n\t */\n\t@Prop() public _tabIndex?: number;\n\n\t/**\n\t * Gibt an, ob der Tooltip bevorzugt entweder oben, rechts, unten oder links angezeigt werden soll.\n\t */\n\t@Prop() public _tooltipAlign?: Align = 'top';\n\n\t/**\n\t * Setzt den Typ der Komponente oder des interaktiven Elements in der Komponente an.\n\t */\n\t@Prop() public _type?: KoliBriButtonType = 'button';\n\n\t/**\n\t * Gibt einen Wert an, den der Schalter bei einem Klick zurückgibt.\n\t */\n\t@Prop() public _value?: Stringified<unknown>;\n\n\t/**\n\t * Gibt an, welche Variante der Darstellung genutzt werden soll.\n\t */\n\t@Prop() public _variant?: KoliBriButtonVariant = 'normal';\n\n\t@State() public state: States = {\n\t\t_icon: '',\n\t\t_label: '',\n\t\t_on: {},\n\t\t_showDropdown: false,\n\t};\n\n\t@Watch('_accessKey')\n\tpublic validateAccessKey(value?: string): void {\n\t\twatchString(this, '_accessKey', value);\n\t}\n\n\t@Watch('_ariaControls')\n\tpublic validateAriaControls(value?: string): void {\n\t\twatchString(this, '_ariaControls', value);\n\t}\n\n\t@Watch('_ariaCurrent')\n\tpublic validateAriaCurrent(value?: AriaCurrent): void {\n\t\tvalidateAriaCurrent(this, value);\n\t}\n\n\t@Watch('_ariaExpanded')\n\tpublic validateAriaExpanded(value?: boolean): void {\n\t\tvalidateAriaExpanded(this, value);\n\t}\n\n\t@Watch('_ariaLabel')\n\tpublic validateAriaLabel(value?: string): void {\n\t\tvalidateAriaLabelWithLabel(this, value);\n\t}\n\n\t@Watch('_ariaSelected')\n\tpublic validateAriaSelected(value?: boolean): void {\n\t\tvalidateAriaSelected(this, value);\n\t}\n\n\t@Watch('_customClass')\n\tpublic validateCustomClass(value?: string): void {\n\t\twatchString(this, '_customClass', value, { defaultValue: undefined });\n\t}\n\n\t@Watch('_disabled')\n\tpublic validateDisabled(value?: boolean): void {\n\t\tvalidateDisabled(this, value);\n\t\tif (value) a11yHintDisabled();\n\t}\n\n\t@Watch('_hideLabel')\n\tpublic validateHideLabel(value?: boolean): void {\n\t\tvalidateHideLabel(this, value);\n\t}\n\n\t@Watch('_icon')\n\tpublic validateIcon(value?: string): void {\n\t\twatchString(this, '_icon', value);\n\t}\n\n\t@Watch('_iconOnly')\n\tpublic validateIconOnly(value?: boolean): void {\n\t\tthis.validateHideLabel(value);\n\t}\n\n\t@Watch('_label')\n\tpublic validateLabel(value?: string): void {\n\t\tvalidateLabelWithAriaLabel(this, value);\n\t}\n\n\t@Watch('_on')\n\tpublic validateOn(value?: { onClick: KoliBriSplitButtonCallback }): void {\n\t\tif (typeof value === 'object' && value !== null) {\n\t\t\tthis.state = {\n\t\t\t\t...this.state,\n\t\t\t\t_on: value,\n\t\t\t};\n\t\t}\n\t}\n\n\t@Watch('_role')\n\tpublic validateRole(value?: AlternativButtonLinkRole): void {\n\t\twatchString(this, '_role', value);\n\t}\n\n\t@Watch('_showDropdown')\n\tpublic validateShowDropdown(value?: boolean): void {\n\t\twatchBoolean(this, '_showDropdown', value);\n\t\tthis.toggleDropdown(value);\n\t}\n\n\t@Watch('_tabIndex')\n\tpublic validateTabIndex(value?: number): void {\n\t\tvalidateTabIndex(this, value);\n\t}\n\n\t@Watch('_tooltipAlign')\n\tpublic validateTooltipAlign(value?: Align): void {\n\t\twatchTooltipAlignment(this, '_tooltipAlign', value);\n\t}\n\n\t@Watch('_type')\n\tpublic validateType(value?: KoliBriButtonType): void {\n\t\twatchButtonType(this, '_type', value);\n\t}\n\n\t@Watch('_value')\n\tpublic validateValue(value?: Stringified<unknown>): void {\n\t\tsetState(this, '_value', value);\n\t}\n\n\t@Watch('_variant')\n\tpublic validateVariant(value?: KoliBriButtonVariant): void {\n\t\twatchButtonVariant(this, '_variant', value);\n\t}\n\n\tpublic componentWillLoad(): void {\n\t\tthis.validateAccessKey(this._accessKey);\n\t\tthis.validateAriaControls(this._ariaControls);\n\t\tthis.validateAriaCurrent(this._ariaCurrent);\n\t\tthis.validateAriaExpanded(this._ariaExpanded);\n\t\tthis.validateAriaLabel(this._ariaLabel);\n\t\tthis.validateAriaSelected(this._ariaSelected);\n\t\tthis.validateCustomClass(this._customClass);\n\t\tthis.validateDisabled(this._disabled);\n\t\tthis.validateHideLabel(this._hideLabel || this._iconOnly);\n\t\tthis.validateIcon(this._icon);\n\t\tthis.validateLabel(this._label);\n\t\tthis.validateOn(this._on);\n\t\tthis.validateRole(this._role);\n\t\tthis.validateShowDropdown(this._showDropdown);\n\t\tthis.validateTabIndex(this._tabIndex);\n\t\tthis.validateTooltipAlign(this._tooltipAlign);\n\t\tthis.validateType(this._type);\n\t\tthis.validateValue(this._value);\n\t\tthis.validateVariant(this._variant);\n\t}\n}\n"],"mappings":"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"}
1
+ {"version":3,"names":["defaultStyleCss","KolSplitButton","this","clickHandler","e","state","_on","onClick","toggleDropdown","openDropdown","dropdown","dropdownContent","style","height","clientHeight","Object","assign","_showDropdown","closeDropdown","value","openIt","forceCounter","forceOpenDropdown","_a","setTimeout","catchDropdownElements","firstChild","_icon","_label","render","h","Host","class","button","_variant","_customClass","length","_accessKey","_ariaControls","_ariaCurrent","_ariaExpanded","_ariaLabel","_ariaSelected","_disabled","_hideLabel","_role","_tabIndex","_tooltipAlign","_type","_value","ref","validateAccessKey","watchString","validateAriaControls","validateAriaCurrent","validateAriaExpanded","validateAriaLabel","validateAriaLabelWithLabel","validateAriaSelected","validateCustomClass","defaultValue","undefined","validateDisabled","a11yHintDisabled","validateHideLabel","validateIcon","validateIconOnly","validateLabel","validateLabelWithAriaLabel","validateOn","validateRole","validateShowDropdown","watchBoolean","validateTabIndex","validateTooltipAlign","watchTooltipAlignment","validateType","watchButtonType","validateValue","setState","validateVariant","watchButtonVariant","componentWillLoad","_iconOnly"],"sources":["./src/components/split-button/style.css?tag=kol-split-button&mode=default&encapsulation=shadow","./src/components/split-button/component.tsx"],"sourcesContent":["@import url(../style.css);\n:host {\n\tdisplay: flex;\n\tposition: relative;\n}\n.main-button {\n\tflex-grow: 1;\n\ttext-align: left;\n}\n.main-button kol-span-wc {\n\tplace-items: start;\n}\n.secondary-button button {\n\theight: 100%;\n}\n.horizontal-line {\n\tbackground-color: rgba(0, 0, 0, 0.2);\n\tborder-radius: 2px;\n\theight: 70%;\n\tmargin-block: auto;\n\twidth: 1px;\n}\n/* popover */\n.popover {\n\theight: 0;\n\tleft: 0;\n\tmin-width: 100%;\n\toverflow: hidden;\n\tposition: absolute;\n\ttop: 100%;\n\ttransition: height 0.3s ease-in-out;\n}\n.popover-content {\n\tinset: 0 0 auto 0;\n\tmin-width: 100%;\n\tposition: absolute;\n}\n","import { Component, h, Host, JSX, Prop, State, Watch } from '@stencil/core';\n\nimport { API, KoliBriSplitButtonCallback, States } from './types';\nimport { setState, watchBoolean, watchString } from '../../utils/prop.validators';\nimport { Align, AriaCurrent, validateAriaCurrent, validateAriaExpanded, validateAriaSelected, validateDisabled, validateHideLabel } from '../../types/props';\nimport { validateAriaLabelWithLabel, validateLabelWithAriaLabel } from '../../types/props/label';\nimport { a11yHintDisabled } from '../../utils/a11y.tipps';\nimport { validateTabIndex } from '../../utils/validators/tab-index';\nimport { AlternativButtonLinkRole, KoliBriButtonType, KoliBriButtonVariant, watchTooltipAlignment } from '../../types/button-link';\nimport { watchButtonType, watchButtonVariant } from '../button/controller';\nimport { Stringified } from '../../types/common';\n\n/**\n * @slot - Ermöglicht das Einfügen beliebigen HTML's in das dropdown.\n */\n@Component({\n\ttag: 'kol-split-button',\n\tstyleUrls: {\n\t\tdefault: './style.css',\n\t},\n\tshadow: true,\n})\nexport class KolSplitButton implements API {\n\tprivate dropdown: HTMLDivElement | undefined;\n\tprivate dropdownContent: HTMLDivElement | undefined;\n\n\tprivate readonly clickHandler = (e: Event) => {\n\t\tif (typeof this.state._on.onClick === 'function') this.state._on.onClick(e);\n\t\telse this.toggleDropdown();\n\t};\n\n\tprivate readonly openDropdown = () => {\n\t\tif (this.dropdown && this.dropdownContent) {\n\t\t\tthis.dropdown.style.height = `${this.dropdownContent.clientHeight}px`;\n\t\t\tthis.state = { ...this.state, _showDropdown: true };\n\t\t}\n\t};\n\tprivate readonly closeDropdown = () => {\n\t\tif (this.dropdown && this.dropdownContent) {\n\t\t\tthis.dropdown.style.height = ``;\n\t\t\tthis.state = { ...this.state, _showDropdown: false };\n\t\t}\n\t};\n\tprivate readonly toggleDropdown = (value?: boolean) => {\n\t\tconst openIt = typeof value === 'boolean' ? value : !this.state._showDropdown;\n\t\tif (openIt) this.openDropdown();\n\t\telse this.closeDropdown();\n\t};\n\tprivate forceCounter = 100; // because the dropdown could be empty\n\tprivate readonly forceOpenDropdown = () => {\n\t\tif (this.forceCounter > 0) {\n\t\t\tif (this.dropdownContent?.clientHeight) this.openDropdown();\n\t\t\telse setTimeout(this.forceOpenDropdown, 10);\n\t\t\tthis.forceCounter--;\n\t\t}\n\t};\n\n\tprivate readonly catchDropdownElements = (e?: HTMLDivElement | null) => {\n\t\tif (e) {\n\t\t\tthis.dropdown = e;\n\t\t\tsetTimeout(() => {\n\t\t\t\tthis.dropdownContent = e.firstChild as HTMLDivElement;\n\t\t\t\tif (this._showDropdown) this.forceOpenDropdown();\n\t\t\t});\n\t\t}\n\t};\n\n\tpublic render(): JSX.Element {\n\t\treturn (\n\t\t\t<Host>\n\t\t\t\t<kol-button-wc\n\t\t\t\t\tclass={{\n\t\t\t\t\t\t'main-button': true,\n\t\t\t\t\t\tbutton: true,\n\t\t\t\t\t\t[this._variant as string]: this._variant !== 'custom',\n\t\t\t\t\t\t[this._customClass as string]: this._variant === 'custom' && typeof this._customClass === 'string' && this._customClass.length > 0,\n\t\t\t\t\t}}\n\t\t\t\t\t_accessKey={this._accessKey}\n\t\t\t\t\t_ariaControls={this._ariaControls}\n\t\t\t\t\t_ariaCurrent={this._ariaCurrent}\n\t\t\t\t\t_ariaExpanded={this._ariaExpanded}\n\t\t\t\t\t_ariaLabel={this._ariaLabel}\n\t\t\t\t\t_ariaSelected={this._ariaSelected}\n\t\t\t\t\t_customClass={this._customClass}\n\t\t\t\t\t_disabled={this._disabled}\n\t\t\t\t\t_icon={this._icon}\n\t\t\t\t\t_hideLabel={this._hideLabel}\n\t\t\t\t\t_label={this._label}\n\t\t\t\t\t_on={{ onClick: this.clickHandler }}\n\t\t\t\t\t_role={this._role}\n\t\t\t\t\t_tabIndex={this._tabIndex}\n\t\t\t\t\t_tooltipAlign={this._tooltipAlign}\n\t\t\t\t\t_type={this._type}\n\t\t\t\t\t_value={this._value}\n\t\t\t\t\t_variant={this._variant}\n\t\t\t\t></kol-button-wc>\n\t\t\t\t<div class=\"horizontal-line\"></div>\n\t\t\t\t<kol-button-wc\n\t\t\t\t\tclass=\"secondary-button\"\n\t\t\t\t\t_disabled={this._disabled}\n\t\t\t\t\t_hideLabel\n\t\t\t\t\t_icon=\"codicon codicon-triangle-down\"\n\t\t\t\t\t_label={`dropdown ${this.state._showDropdown ? 'schließen' : 'öffnen'}`}\n\t\t\t\t\t_on={{ onClick: () => this.toggleDropdown() }}\n\t\t\t\t></kol-button-wc>\n\t\t\t\t<div class=\"popover\" ref={this.catchDropdownElements}>\n\t\t\t\t\t<div class=\"popover-content\">\n\t\t\t\t\t\t<slot />\n\t\t\t\t\t</div>\n\t\t\t\t</div>\n\t\t\t</Host>\n\t\t);\n\t}\n\n\t/**\n\t * Gibt an, mit welcher Tastenkombination man das interaktive Element der Komponente auslösen oder fokussieren kann.\n\t */\n\t@Prop() public _accessKey?: string;\n\n\t/**\n\t * Gibt an, welche Elemente kontrolliert werden. (https://developer.mozilla.org/en-US/docs/Web/Accessibility/ARIA/Attributes/aria-controls)\n\t */\n\t@Prop() public _ariaControls?: string;\n\n\t/**\n\t * Gibt an, welchen aktuellen Auswahlstatus das interaktive Element der Komponente hat. (https://developer.mozilla.org/en-US/docs/Web/Accessibility/ARIA/Attributes/aria-current)\n\t */\n\t@Prop() public _ariaCurrent?: AriaCurrent;\n\n\t/**\n\t * Gibt an, ob durch das interaktive Element in der Komponente etwas aufgeklappt wurde. (https://developer.mozilla.org/en-US/docs/Web/Accessibility/ARIA/Attributes/aria-expanded)\n\t */\n\t@Prop({ reflect: true }) public _ariaExpanded?: boolean;\n\n\t/**\n\t * Setzt die sichtbare oder semantische Beschriftung der Komponente (z.B. Aria-Label, Label, Headline, Caption, Summary usw.).\n\t */\n\t@Prop({ mutable: true, reflect: false }) public _ariaLabel?: string;\n\n\t/**\n\t * Gibt an, ob interaktive Element in der Komponente ausgewählt ist (z.B. role=tab). (https://developer.mozilla.org/en-US/docs/Web/Accessibility/ARIA/Attributes/aria-selected)\n\t */\n\t@Prop({ reflect: true }) public _ariaSelected?: boolean;\n\n\t/**\n\t * Gibt an, welche Custom-Class übergeben werden soll, wenn _variant=\"custom\" gesetzt ist.\n\t */\n\t@Prop() public _customClass?: string;\n\n\t/**\n\t * Deaktiviert das interaktive Element in der Komponente und erlaubt keine Interaktion mehr damit.\n\t */\n\t@Prop({ reflect: true }) public _disabled?: boolean = false;\n\n\t/**\n\t * Blendet die Beschriftung (Label) aus und zeigt sie stattdessen mittels eines Tooltips an.\n\t */\n\t@Prop({ reflect: true }) public _hideLabel?: boolean = false;\n\n\t/**\n\t * Setzt die Iconklasse (z.B.: `_icon=\"codicon codicon-home`).\n\t */\n\t@Prop() public _icon?: string;\n\n\t/**\n\t * Blendet die Beschriftung (Label) aus und zeigt sie stattdessen mittels eines Tooltips an.\n\t * @deprecated use _hide-label\n\t */\n\t@Prop({ reflect: true }) public _iconOnly?: boolean;\n\n\t/**\n\t * Setzt die sichtbare oder semantische Beschriftung der Komponente (z.B. Aria-Label, Label, Headline, Caption, Summary usw.).\n\t */\n\t@Prop({ mutable: true, reflect: false }) public _label!: string;\n\n\t/**\n\t * Gibt die EventCallback-Funktionen für die Button-Events an.\n\t */\n\t@Prop() public _on?: { onClick: KoliBriSplitButtonCallback };\n\n\t/**\n\t * Gibt die Rolle des primären Elements in der Komponente an.\n\t */\n\t@Prop() public _role?: AlternativButtonLinkRole;\n\n\t/**\n\t * Gibt die Rolle des primären Elements in der Komponente an.\n\t */\n\t@Prop({ mutable: true, reflect: true }) public _showDropdown?: boolean = false;\n\n\t/**\n\t * Gibt an, welchen Tab-Index das primäre Element in der Komponente hat. (https://developer.mozilla.org/en-US/docs/Web/HTML/Global_attributes/tabindex)\n\t */\n\t@Prop() public _tabIndex?: number;\n\n\t/**\n\t * Gibt an, ob der Tooltip bevorzugt entweder oben, rechts, unten oder links angezeigt werden soll.\n\t */\n\t@Prop() public _tooltipAlign?: Align = 'top';\n\n\t/**\n\t * Setzt den Typ der Komponente oder des interaktiven Elements in der Komponente an.\n\t */\n\t@Prop() public _type?: KoliBriButtonType = 'button';\n\n\t/**\n\t * Gibt einen Wert an, den der Schalter bei einem Klick zurückgibt.\n\t */\n\t@Prop() public _value?: Stringified<unknown>;\n\n\t/**\n\t * Gibt an, welche Variante der Darstellung genutzt werden soll.\n\t */\n\t@Prop() public _variant?: KoliBriButtonVariant = 'normal';\n\n\t@State() public state: States = {\n\t\t_icon: '',\n\t\t_label: '',\n\t\t_on: {},\n\t\t_showDropdown: false,\n\t};\n\n\t@Watch('_accessKey')\n\tpublic validateAccessKey(value?: string): void {\n\t\twatchString(this, '_accessKey', value);\n\t}\n\n\t@Watch('_ariaControls')\n\tpublic validateAriaControls(value?: string): void {\n\t\twatchString(this, '_ariaControls', value);\n\t}\n\n\t@Watch('_ariaCurrent')\n\tpublic validateAriaCurrent(value?: AriaCurrent): void {\n\t\tvalidateAriaCurrent(this, value);\n\t}\n\n\t@Watch('_ariaExpanded')\n\tpublic validateAriaExpanded(value?: boolean): void {\n\t\tvalidateAriaExpanded(this, value);\n\t}\n\n\t@Watch('_ariaLabel')\n\tpublic validateAriaLabel(value?: string): void {\n\t\tvalidateAriaLabelWithLabel(this, value);\n\t}\n\n\t@Watch('_ariaSelected')\n\tpublic validateAriaSelected(value?: boolean): void {\n\t\tvalidateAriaSelected(this, value);\n\t}\n\n\t@Watch('_customClass')\n\tpublic validateCustomClass(value?: string): void {\n\t\twatchString(this, '_customClass', value, { defaultValue: undefined });\n\t}\n\n\t@Watch('_disabled')\n\tpublic validateDisabled(value?: boolean): void {\n\t\tvalidateDisabled(this, value);\n\t\tif (value) a11yHintDisabled();\n\t}\n\n\t@Watch('_hideLabel')\n\tpublic validateHideLabel(value?: boolean): void {\n\t\tvalidateHideLabel(this, value);\n\t}\n\n\t@Watch('_icon')\n\tpublic validateIcon(value?: string): void {\n\t\twatchString(this, '_icon', value);\n\t}\n\n\t@Watch('_iconOnly')\n\tpublic validateIconOnly(value?: boolean): void {\n\t\tthis.validateHideLabel(value);\n\t}\n\n\t@Watch('_label')\n\tpublic validateLabel(value?: string): void {\n\t\tvalidateLabelWithAriaLabel(this, value);\n\t}\n\n\t@Watch('_on')\n\tpublic validateOn(value?: { onClick: KoliBriSplitButtonCallback }): void {\n\t\tif (typeof value === 'object' && value !== null) {\n\t\t\tthis.state = {\n\t\t\t\t...this.state,\n\t\t\t\t_on: value,\n\t\t\t};\n\t\t}\n\t}\n\n\t@Watch('_role')\n\tpublic validateRole(value?: AlternativButtonLinkRole): void {\n\t\twatchString(this, '_role', value);\n\t}\n\n\t@Watch('_showDropdown')\n\tpublic validateShowDropdown(value?: boolean): void {\n\t\twatchBoolean(this, '_showDropdown', value);\n\t\tthis.toggleDropdown(value);\n\t}\n\n\t@Watch('_tabIndex')\n\tpublic validateTabIndex(value?: number): void {\n\t\tvalidateTabIndex(this, value);\n\t}\n\n\t@Watch('_tooltipAlign')\n\tpublic validateTooltipAlign(value?: Align): void {\n\t\twatchTooltipAlignment(this, '_tooltipAlign', value);\n\t}\n\n\t@Watch('_type')\n\tpublic validateType(value?: KoliBriButtonType): void {\n\t\twatchButtonType(this, '_type', value);\n\t}\n\n\t@Watch('_value')\n\tpublic validateValue(value?: Stringified<unknown>): void {\n\t\tsetState(this, '_value', value);\n\t}\n\n\t@Watch('_variant')\n\tpublic validateVariant(value?: KoliBriButtonVariant): void {\n\t\twatchButtonVariant(this, '_variant', value);\n\t}\n\n\tpublic componentWillLoad(): void {\n\t\tthis.validateAccessKey(this._accessKey);\n\t\tthis.validateAriaControls(this._ariaControls);\n\t\tthis.validateAriaCurrent(this._ariaCurrent);\n\t\tthis.validateAriaExpanded(this._ariaExpanded);\n\t\tthis.validateAriaLabel(this._ariaLabel);\n\t\tthis.validateAriaSelected(this._ariaSelected);\n\t\tthis.validateCustomClass(this._customClass);\n\t\tthis.validateDisabled(this._disabled);\n\t\tthis.validateHideLabel(this._hideLabel || this._iconOnly);\n\t\tthis.validateIcon(this._icon);\n\t\tthis.validateLabel(this._label);\n\t\tthis.validateOn(this._on);\n\t\tthis.validateRole(this._role);\n\t\tthis.validateShowDropdown(this._showDropdown);\n\t\tthis.validateTabIndex(this._tabIndex);\n\t\tthis.validateTooltipAlign(this._tooltipAlign);\n\t\tthis.validateType(this._type);\n\t\tthis.validateValue(this._value);\n\t\tthis.validateVariant(this._variant);\n\t}\n}\n"],"mappings":"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"}
package/doc/badge.md CHANGED
@@ -94,7 +94,7 @@ Die zusätzliche Ausgabe eines **Icon** gewährleistet, dass der Nutzer auch hie
94
94
  | `_color` | `_color` | Setzt die Hintergrundfarbe. | `string` \| `undefined` \| `{ backgroundColor: string; color: string; }` \| `{ backgroundColor: string; foregroundColor: Stringified<CharacteristicColors>; }` | `'#000'` |
95
95
  | `_hideLabel` | `_hide-label` | Blendet die Beschriftung (Label) aus und zeigt sie stattdessen mittels eines Tooltips an. | `boolean` \| `undefined` | `false` |
96
96
  | `_icon` | `_icon` | Setzt die Iconklasse (z.B.: `_icon="codicon codicon-home`). | `KoliBriHorizontalIcon & KoliBriVerticalIcon` \| `string` \| `undefined` | `undefined` |
97
- | `_iconOnly` | `_icon-only` | <span class="text-red-500">**[DEPRECATED]**</span> use _hide-label<br/><br/>Blendet die Beschriftung (Label) aus und zeigt sie stattdessen mittels eines Tooltips an. | `boolean` \| `undefined` | `false` |
97
+ | `_iconOnly` | `_icon-only` | <span class="text-red-500">**[DEPRECATED]**</span> use _hide-label<br/><br/>Blendet die Beschriftung (Label) aus und zeigt sie stattdessen mittels eines Tooltips an. | `boolean` \| `undefined` | `undefined` |
98
98
  | `_label` _(required)_ | `_label` | Setzt die sichtbare oder semantische Beschriftung der Komponente (z.B. Aria-Label, Label, Headline, Caption, Summary usw.). | `string` | `undefined` |
99
99
  | `_smartButton` | `_smart-button` | Ermöglicht einen Schalter ins das Eingabefeld mit einer beliebigen Aktion zu einzufügen (nur Icon-Only). | `string` \| `undefined` \| `{ _label: string; } & { _ariaControls?: string` \| `undefined; _ariaLabel?: string` \| `undefined; _icon?: Stringified<KoliBriIconProp>` \| `undefined; _iconAlign?: Align` \| `undefined; _iconOnly?: boolean` \| `undefined; _role?: AlternativButtonLinkRole` \| `undefined; _tabIndex?: number` \| `undefined; _tooltipAlign?: Align` \| `undefined; _ariaCurrent?: AriaCurrent` \| `undefined; _ariaExpanded?: boolean` \| `undefined; _ariaSelected?: boolean` \| `undefined; _disabled?: boolean` \| `undefined; _hideLabel?: boolean` \| `undefined; _accessKey?: string` \| `undefined; _id?: string` \| `undefined; _on?: KoliBriButtonCallbacks<unknown>` \| `undefined; _type?: KoliBriButtonType` \| `undefined; _value?: unknown; _variant?: KoliBriButtonVariant` \| `undefined; _customClass?: string` \| `undefined; }` | `undefined` |
100
100
 
@@ -40,7 +40,7 @@ Da der Link, nicht wie der Button, in mehrere Varianten (`primary` oder `seconda
40
40
  | `_disabled` | `_disabled` | Deaktiviert das interaktive Element in der Komponente und erlaubt keine Interaktion mehr damit. | `boolean` \| `undefined` | `false` |
41
41
  | `_hideLabel` | `_hide-label` | Blendet die Beschriftung (Label) aus und zeigt sie stattdessen mittels eines Tooltips an. | `boolean` \| `undefined` | `false` |
42
42
  | `_icon` | `_icon` | Setzt die Iconklasse (z.B.: `_icon="codicon codicon-home`). | `KoliBriHorizontalIcon & KoliBriVerticalIcon` \| `string` \| `undefined` | `undefined` |
43
- | `_iconOnly` | `_icon-only` | <span class="text-red-500">**[DEPRECATED]**</span> use _hide-label<br/><br/>Blendet die Beschriftung (Label) aus und zeigt sie stattdessen mittels eines Tooltips an. | `boolean` \| `undefined` | `false` |
43
+ | `_iconOnly` | `_icon-only` | <span class="text-red-500">**[DEPRECATED]**</span> use _hide-label<br/><br/>Blendet die Beschriftung (Label) aus und zeigt sie stattdessen mittels eines Tooltips an. | `boolean` \| `undefined` | `undefined` |
44
44
  | `_id` | `_id` | Gibt die interne ID des primären Elements in der Komponente an. | `string` \| `undefined` | `undefined` |
45
45
  | `_label` _(required)_ | `_label` | Setzt die sichtbare oder semantische Beschriftung der Komponente (z.B. Aria-Label, Label, Headline, Caption, Summary usw.). | `string` | `undefined` |
46
46
  | `_on` | -- | Gibt die EventCallback-Funktionen für die Button-Events an. | `undefined` \| `{ onClick?: EventValueOrEventCallback<MouseEvent, unknown>` \| `undefined; onMouseDown?: EventCallback<MouseEvent>` \| `undefined; }` | `undefined` |
package/doc/button.md CHANGED
@@ -111,7 +111,7 @@ Probleme mit Disabled-Status
111
111
  | `_hideLabel` | `_hide-label` | Blendet die Beschriftung (Label) aus und zeigt sie stattdessen mittels eines Tooltips an. | `boolean` \| `undefined` | `false` |
112
112
  | `_icon` | `_icon` | Setzt die Iconklasse (z.B.: `_icon="codicon codicon-home`). | `KoliBriHorizontalIcon & KoliBriVerticalIcon` \| `string` \| `undefined` | `undefined` |
113
113
  | `_iconAlign` | `_icon-align` | <span class="text-red-500">**[DEPRECATED]**</span> <br/><br/>Deprecated: Gibt an, ob das Icon links oder rechts von der Beschriftung angezeigt werden soll. | `"bottom"` \| `"left"` \| `"right"` \| `"top"` \| `undefined` | `undefined` |
114
- | `_iconOnly` | `_icon-only` | <span style="color:red">**[DEPRECATED]**</span> use _hide-label<br/><br/>Blendet die Beschriftung (Label) aus und zeigt sie stattdessen mittels eines Tooltips an. | `boolean` \| `undefined` | `false` |
114
+ | `_iconOnly` | `_icon-only` | <span style="color:red">**[DEPRECATED]**</span> use _hide-label<br/><br/>Blendet die Beschriftung (Label) aus und zeigt sie stattdessen mittels eines Tooltips an. | `boolean` \| `undefined` | `undefined` |
115
115
  | `_id` | `_id` | Gibt die interne ID des primären Elements in der Komponente an. | `string` \| `undefined` | `undefined` |
116
116
  | `_label` _(required)_ | `_label` | Setzt die sichtbare oder semantische Beschriftung der Komponente (z.B. Aria-Label, Label, Headline, Caption, Summary usw.). | `string` | `undefined` |
117
117
  | `_on` | -- | Gibt die EventCallback-Funktionen für die Button-Events an. | `undefined` \| `{ onClick?: EventValueOrEventCallback<MouseEvent, unknown>` \| `undefined; onMouseDown?: EventCallback<MouseEvent>` \| `undefined; }` | `undefined` |
@@ -43,7 +43,7 @@ Weitere Informationen zum Aussehen finden Sie auf der <kol-link _href="/docs/com
43
43
  | `_hideLabel` | `_hide-label` | Blendet die Beschriftung (Label) aus und zeigt sie stattdessen mittels eines Tooltips an. | `boolean` \| `undefined` | `false` |
44
44
  | `_href` _(required)_ | `_href` | Gibt die Ziel-Url des Links an. | `string` | `undefined` |
45
45
  | `_icon` | `_icon` | Setzt die Iconklasse (z.B.: `_icon="codicon codicon-home`). | `KoliBriHorizontalIcon & KoliBriVerticalIcon` \| `string` \| `undefined` | `undefined` |
46
- | `_iconOnly` | `_icon-only` | <span class="text-red-500">**[DEPRECATED]**</span> use _hide-label<br/><br/>Blendet die Beschriftung (Label) aus und zeigt sie stattdessen mittels eines Tooltips an. | `boolean` \| `undefined` | `false` |
46
+ | `_iconOnly` | `_icon-only` | <span class="text-red-500">**[DEPRECATED]**</span> use _hide-label<br/><br/>Blendet die Beschriftung (Label) aus und zeigt sie stattdessen mittels eines Tooltips an. | `boolean` \| `undefined` | `undefined` |
47
47
  | `_label` _(required)_ | `_label` | Setzt die sichtbare oder semantische Beschriftung der Komponente (z.B. Aria-Label, Label, Headline, Caption, Summary usw.). | `string` | `undefined` |
48
48
  | `_on` | -- | <span style="color:red">**[DEPRECATED]**</span> <br/><br/>Gibt die EventCallback-Funktionen für den Link an. | `undefined` \| `{ onClick?: EventValueOrEventCallback<Event, string>` \| `undefined; }` | `undefined` |
49
49
  | `_role` | `_role` | Gibt die Rolle des primären Elements in der Komponente an. | `"button"` \| `"link"` \| `"tab"` \| `undefined` | `undefined` |
package/doc/link.md CHANGED
@@ -83,7 +83,7 @@ Eingabe von Leerzeichen eingefügt werden. Zusätzliche Leerzeichen vergrößern
83
83
  | `_href` _(required)_ | `_href` | Gibt die Ziel-Url des Links an. | `string` | `undefined` |
84
84
  | `_icon` | `_icon` | Setzt die Iconklasse (z.B.: `_icon="codicon codicon-home`). | `KoliBriHorizontalIcon & KoliBriVerticalIcon` \| `string` \| `undefined` | `undefined` |
85
85
  | `_iconAlign` | `_icon-align` | <span class="text-red-500">**[DEPRECATED]**</span> Wird durch das neue flexibleren Icon-Typ abgedeckt.<br/><br/>Deprecated: Gibt an, ob das Icon links oder rechts von der Beschriftung angezeigt werden soll. | `"bottom"` \| `"left"` \| `"right"` \| `"top"` \| `undefined` | `undefined` |
86
- | `_iconOnly` | `_icon-only` | <span style="color:red">**[DEPRECATED]**</span> use _hide-label<br/><br/>Blendet die Beschriftung (Label) aus und zeigt sie stattdessen mittels eines Tooltips an. | `boolean` \| `undefined` | `false` |
86
+ | `_iconOnly` | `_icon-only` | <span style="color:red">**[DEPRECATED]**</span> use _hide-label<br/><br/>Blendet die Beschriftung (Label) aus und zeigt sie stattdessen mittels eines Tooltips an. | `boolean` \| `undefined` | `undefined` |
87
87
  | `_label` _(required)_ | `_label` | Setzt die sichtbare oder semantische Beschriftung der Komponente (z.B. Aria-Label, Label, Headline, Caption, Summary usw.). | `string` | `undefined` |
88
88
  | `_on` | -- | <span style="color:red">**[DEPRECATED]**</span> <br/><br/>Gibt die EventCallback-Funktionen für den Link an. | `undefined` \| `{ onClick?: EventValueOrEventCallback<Event, string>` \| `undefined; }` | `undefined` |
89
89
  | `_role` | `_role` | Gibt die Rolle des primären Elements in der Komponente an. | `"button"` \| `"link"` \| `"tab"` \| `undefined` | `undefined` |
package/doc/span.md CHANGED
@@ -25,7 +25,7 @@ Die **Span**-Komponente dient dazu innerhalb zahlreicher KoliBri-Komponenten die
25
25
  | --------------------- | ------------- | ------------------------------------------------------------------------------------------------------------------------------------------------------------------ | -------------------------------------------------------------------- | ----------- |
26
26
  | `_hideLabel` | `_hide-label` | Blendet die Beschriftung (Label) aus und zeigt sie stattdessen mittels eines Tooltips an. | `boolean` \| `undefined` | `false` |
27
27
  | `_icon` | `_icon` | Setzt die Iconklasse (z.B.: `_icon="codicon codicon-home`). | `KoliBriHorizontalIcon & KoliBriVerticalIcon` \| `string` \| `undefined` | `undefined` |
28
- | `_iconOnly` | `_icon-only` | <span class="text-red-500">**[DEPRECATED]**</span> use _hide-label<br/><br/>Blendet die Beschriftung (Label) aus und zeigt sie stattdessen mittels eines Tooltips an. | `boolean` \| `undefined` | `false` |
28
+ | `_iconOnly` | `_icon-only` | <span class="text-red-500">**[DEPRECATED]**</span> use _hide-label<br/><br/>Blendet die Beschriftung (Label) aus und zeigt sie stattdessen mittels eines Tooltips an. | `boolean` \| `undefined` | `undefined` |
29
29
  | `_label` _(required)_ | `_label` | Setzt die sichtbare oder semantische Beschriftung der Komponente (z.B. Aria-Label, Label, Headline, Caption, Summary usw.). | `string` | `undefined` |
30
30
 
31
31
 
@@ -44,7 +44,7 @@
44
44
  | `_disabled` | `_disabled` | Deaktiviert das interaktive Element in der Komponente und erlaubt keine Interaktion mehr damit. | `boolean` \| `undefined` | `false` |
45
45
  | `_hideLabel` | `_hide-label` | Blendet die Beschriftung (Label) aus und zeigt sie stattdessen mittels eines Tooltips an. | `boolean` \| `undefined` | `false` |
46
46
  | `_icon` | `_icon` | Setzt die Iconklasse (z.B.: `_icon="codicon codicon-home`). | `string` \| `undefined` | `undefined` |
47
- | `_iconOnly` | `_icon-only` | <span class="text-red-500">**[DEPRECATED]**</span> use _hide-label<br/><br/>Blendet die Beschriftung (Label) aus und zeigt sie stattdessen mittels eines Tooltips an. | `boolean` \| `undefined` | `false` |
47
+ | `_iconOnly` | `_icon-only` | <span class="text-red-500">**[DEPRECATED]**</span> use _hide-label<br/><br/>Blendet die Beschriftung (Label) aus und zeigt sie stattdessen mittels eines Tooltips an. | `boolean` \| `undefined` | `undefined` |
48
48
  | `_label` _(required)_ | `_label` | Setzt die sichtbare oder semantische Beschriftung der Komponente (z.B. Aria-Label, Label, Headline, Caption, Summary usw.). | `string` | `undefined` |
49
49
  | `_on` | -- | Gibt die EventCallback-Funktionen für die Button-Events an. | `undefined` \| `{ onClick: KoliBriSplitButtonCallback; }` | `undefined` |
50
50
  | `_role` | `_role` | Gibt die Rolle des primären Elements in der Komponente an. | `"button"` \| `"link"` \| `"tab"` \| `undefined` | `undefined` |