@public-ui/components 1.3.0 → 1.3.1

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 (208) hide show
  1. package/cheat-sheet.html +6 -6
  2. package/custom-elements.json +3 -3
  3. package/dist/cjs/{controller-8342e490.js → controller-3b86e1c6.js} +1 -1
  4. package/dist/cjs/{controller-8342e490.js.map → controller-3b86e1c6.js.map} +1 -1
  5. package/dist/cjs/{controller-d28e02c0.js → controller-3f64b13e.js} +1 -1
  6. package/dist/cjs/{controller-d28e02c0.js.map → controller-3f64b13e.js.map} +1 -1
  7. package/dist/cjs/{controller-37208c19.js → controller-9ecb5be4.js} +1 -1
  8. package/dist/cjs/{controller-37208c19.js.map → controller-9ecb5be4.js.map} +1 -1
  9. package/dist/cjs/{controller-fc8515bc.js → controller-c22d561c.js} +1 -1
  10. package/dist/cjs/{controller-fc8515bc.js.map → controller-c22d561c.js.map} +1 -1
  11. package/dist/cjs/kol-button-link.cjs.entry.js +1 -1
  12. package/dist/cjs/kol-button-wc_2.cjs.entry.js +1 -1
  13. package/dist/cjs/kol-button-wc_2.cjs.entry.js.map +1 -1
  14. package/dist/cjs/kol-button.cjs.entry.js +1 -1
  15. package/dist/cjs/kol-icon.cjs.entry.js.map +1 -1
  16. package/dist/cjs/kol-input-checkbox.cjs.entry.js +1 -1
  17. package/dist/cjs/kol-input-color.cjs.entry.js +1 -1
  18. package/dist/cjs/kol-input-date.cjs.entry.js +1 -1
  19. package/dist/cjs/kol-input-email.cjs.entry.js +1 -1
  20. package/dist/cjs/kol-input-file.cjs.entry.js +1 -1
  21. package/dist/cjs/kol-input-number.cjs.entry.js +1 -1
  22. package/dist/cjs/kol-input-password.cjs.entry.js +1 -1
  23. package/dist/cjs/kol-input-radio.cjs.entry.js +1 -1
  24. package/dist/cjs/kol-input-range.cjs.entry.js +1 -1
  25. package/dist/cjs/kol-input-text.cjs.entry.js +1 -1
  26. package/dist/cjs/kol-link-button.cjs.entry.js +1 -1
  27. package/dist/cjs/kol-link-wc.cjs.entry.js +1 -1
  28. package/dist/cjs/kol-link.cjs.entry.js +1 -1
  29. package/dist/cjs/kol-pagination.cjs.entry.js +1 -1
  30. package/dist/cjs/kol-select.cjs.entry.js +1 -1
  31. package/dist/cjs/kol-textarea.cjs.entry.js +1 -1
  32. package/dist/cjs/kol-tooltip.cjs.entry.js +1 -1
  33. package/dist/cjs/kol-tooltip.cjs.entry.js.map +1 -1
  34. package/dist/cjs/{label-88419619.js → label-370414db.js} +1 -1
  35. package/dist/cjs/{label-88419619.js.map → label-370414db.js.map} +1 -1
  36. package/dist/cjs/reuse-28825ead.js +4 -0
  37. package/dist/cjs/reuse-28825ead.js.map +1 -0
  38. package/dist/cjs/{tab-index-c69625a6.js → tab-index-954dd1d8.js} +1 -1
  39. package/dist/cjs/{tab-index-c69625a6.js.map → tab-index-954dd1d8.js.map} +1 -1
  40. package/dist/cjs/validator-953ea58f.js +4 -0
  41. package/dist/cjs/validator-953ea58f.js.map +1 -0
  42. package/dist/components/component.js +1 -1
  43. package/dist/components/component.js.map +1 -1
  44. package/dist/components/component2.js.map +1 -1
  45. package/dist/components/component3.js +1 -1
  46. package/dist/components/component3.js.map +1 -1
  47. package/dist/esm/{controller-8e33192f.js → controller-1362fa2f.js} +1 -1
  48. package/dist/esm/{controller-8e33192f.js.map → controller-1362fa2f.js.map} +1 -1
  49. package/dist/esm/{controller-46b28944.js → controller-c34d5da2.js} +1 -1
  50. package/dist/esm/{controller-46b28944.js.map → controller-c34d5da2.js.map} +1 -1
  51. package/dist/esm/{controller-9bcf44e5.js → controller-ce5dfb44.js} +1 -1
  52. package/dist/esm/{controller-9bcf44e5.js.map → controller-ce5dfb44.js.map} +1 -1
  53. package/dist/esm/{controller-1753b7f0.js → controller-f0f7cbc7.js} +1 -1
  54. package/dist/esm/{controller-1753b7f0.js.map → controller-f0f7cbc7.js.map} +1 -1
  55. package/dist/esm/kol-button-link.entry.js +1 -1
  56. package/dist/esm/kol-button-wc_2.entry.js +1 -1
  57. package/dist/esm/kol-button-wc_2.entry.js.map +1 -1
  58. package/dist/esm/kol-button.entry.js +1 -1
  59. package/dist/esm/kol-icon.entry.js.map +1 -1
  60. package/dist/esm/kol-input-checkbox.entry.js +1 -1
  61. package/dist/esm/kol-input-color.entry.js +1 -1
  62. package/dist/esm/kol-input-date.entry.js +1 -1
  63. package/dist/esm/kol-input-email.entry.js +1 -1
  64. package/dist/esm/kol-input-file.entry.js +1 -1
  65. package/dist/esm/kol-input-number.entry.js +1 -1
  66. package/dist/esm/kol-input-password.entry.js +1 -1
  67. package/dist/esm/kol-input-radio.entry.js +1 -1
  68. package/dist/esm/kol-input-range.entry.js +1 -1
  69. package/dist/esm/kol-input-text.entry.js +1 -1
  70. package/dist/esm/kol-link-button.entry.js +1 -1
  71. package/dist/esm/kol-link-wc.entry.js +1 -1
  72. package/dist/esm/kol-link.entry.js +1 -1
  73. package/dist/esm/kol-pagination.entry.js +1 -1
  74. package/dist/esm/kol-select.entry.js +1 -1
  75. package/dist/esm/kol-textarea.entry.js +1 -1
  76. package/dist/esm/kol-tooltip.entry.js +1 -1
  77. package/dist/esm/kol-tooltip.entry.js.map +1 -1
  78. package/dist/esm/{label-6c8f8ebb.js → label-a6e1b813.js} +1 -1
  79. package/dist/esm/{label-6c8f8ebb.js.map → label-a6e1b813.js.map} +1 -1
  80. package/dist/esm/reuse-2f7da8fc.js +4 -0
  81. package/dist/esm/reuse-2f7da8fc.js.map +1 -0
  82. package/dist/esm/{tab-index-4314d33e.js → tab-index-2f165a2f.js} +1 -1
  83. package/dist/esm/{tab-index-4314d33e.js.map → tab-index-2f165a2f.js.map} +1 -1
  84. package/dist/esm/validator-2e4f8df6.js +4 -0
  85. package/dist/esm/validator-2e4f8df6.js.map +1 -0
  86. package/dist/kolibri/assets/fontawesome-free/{v6/LICENSE.txt → LICENSE.txt} +0 -0
  87. package/dist/kolibri/assets/fontawesome-free/{v6/css → css}/all.css +2597 -5174
  88. package/dist/kolibri/assets/fontawesome-free/{v6/css → css}/all.min.css +0 -0
  89. package/dist/kolibri/assets/fontawesome-free/{v6/css → css}/brands.css +0 -0
  90. package/dist/kolibri/assets/fontawesome-free/{v6/css → css}/brands.min.css +0 -0
  91. package/dist/kolibri/assets/fontawesome-free/{v6/css → css}/fontawesome.css +0 -0
  92. package/dist/kolibri/assets/fontawesome-free/{v6/css → css}/fontawesome.min.css +0 -0
  93. package/dist/kolibri/assets/fontawesome-free/{v6/css → css}/regular.css +0 -0
  94. package/dist/kolibri/assets/fontawesome-free/{v6/css → css}/regular.min.css +0 -0
  95. package/dist/kolibri/assets/fontawesome-free/{v6/css → css}/solid.css +0 -0
  96. package/dist/kolibri/assets/fontawesome-free/{v6/css → css}/solid.min.css +0 -0
  97. package/dist/kolibri/assets/fontawesome-free/{v6/css → css}/svg-with-js.css +0 -0
  98. package/dist/kolibri/assets/fontawesome-free/{v6/css → css}/svg-with-js.min.css +0 -0
  99. package/dist/kolibri/assets/fontawesome-free/{v6/css → css}/v4-font-face.css +0 -0
  100. package/dist/kolibri/assets/fontawesome-free/{v6/css → css}/v4-font-face.min.css +0 -0
  101. package/dist/kolibri/assets/fontawesome-free/{v6/css → css}/v4-shims.css +0 -0
  102. package/dist/kolibri/assets/fontawesome-free/{v6/css → css}/v4-shims.min.css +0 -0
  103. package/dist/kolibri/assets/fontawesome-free/{v6/css → css}/v5-font-face.css +0 -0
  104. package/dist/kolibri/assets/fontawesome-free/{v6/css → css}/v5-font-face.min.css +0 -0
  105. package/dist/kolibri/assets/fontawesome-free/{v6/webfonts → webfonts}/fa-brands-400.ttf +0 -0
  106. package/dist/kolibri/assets/fontawesome-free/{v6/webfonts → webfonts}/fa-brands-400.woff2 +0 -0
  107. package/dist/kolibri/assets/fontawesome-free/{v6/webfonts → webfonts}/fa-regular-400.ttf +0 -0
  108. package/dist/kolibri/assets/fontawesome-free/{v6/webfonts → webfonts}/fa-regular-400.woff2 +0 -0
  109. package/dist/kolibri/assets/fontawesome-free/{v6/webfonts → webfonts}/fa-solid-900.ttf +0 -0
  110. package/dist/kolibri/assets/fontawesome-free/{v6/webfonts → webfonts}/fa-solid-900.woff2 +0 -0
  111. package/dist/kolibri/assets/fontawesome-free/{v6/webfonts → webfonts}/fa-v4compatibility.ttf +0 -0
  112. package/dist/kolibri/assets/fontawesome-free/{v6/webfonts → webfonts}/fa-v4compatibility.woff2 +0 -0
  113. package/dist/kolibri/assets/kreon/Kreon-VariableFont_wght.ttf +0 -0
  114. package/dist/kolibri/assets/kreon/OFL.txt +93 -0
  115. package/dist/kolibri/assets/kreon/README.txt +67 -0
  116. package/dist/kolibri/assets/kreon/static/Kreon-Bold.ttf +0 -0
  117. package/dist/kolibri/assets/kreon/static/Kreon-Light.ttf +0 -0
  118. package/dist/kolibri/assets/kreon/static/Kreon-Medium.ttf +0 -0
  119. package/dist/kolibri/assets/kreon/static/Kreon-Regular.ttf +0 -0
  120. package/dist/kolibri/assets/kreon/static/Kreon-SemiBold.ttf +0 -0
  121. package/dist/kolibri/assets/kreon/style.css +41 -0
  122. package/dist/kolibri/{controller-8e33192f.js → controller-1362fa2f.js} +1 -1
  123. package/dist/kolibri/{controller-8e33192f.js.map → controller-1362fa2f.js.map} +0 -0
  124. package/dist/kolibri/{controller-46b28944.js → controller-c34d5da2.js} +1 -1
  125. package/dist/kolibri/{controller-46b28944.js.map → controller-c34d5da2.js.map} +0 -0
  126. package/dist/kolibri/controller-ce5dfb44.js +4 -0
  127. package/dist/kolibri/{controller-9bcf44e5.js.map → controller-ce5dfb44.js.map} +1 -1
  128. package/dist/kolibri/{controller-1753b7f0.js → controller-f0f7cbc7.js} +1 -1
  129. package/dist/kolibri/{controller-1753b7f0.js.map → controller-f0f7cbc7.js.map} +0 -0
  130. package/dist/kolibri/kol-button-link.entry.js +1 -1
  131. package/dist/kolibri/kol-button-wc_2.entry.js +1 -1
  132. package/dist/kolibri/kol-button-wc_2.entry.js.map +1 -1
  133. package/dist/kolibri/kol-button.entry.js +1 -1
  134. package/dist/kolibri/kol-icon.entry.js.map +1 -1
  135. package/dist/kolibri/kol-input-checkbox.entry.js +1 -1
  136. package/dist/kolibri/kol-input-color.entry.js +1 -1
  137. package/dist/kolibri/kol-input-date.entry.js +1 -1
  138. package/dist/kolibri/kol-input-email.entry.js +1 -1
  139. package/dist/kolibri/kol-input-file.entry.js +1 -1
  140. package/dist/kolibri/kol-input-number.entry.js +1 -1
  141. package/dist/kolibri/kol-input-password.entry.js +1 -1
  142. package/dist/kolibri/kol-input-radio.entry.js +1 -1
  143. package/dist/kolibri/kol-input-range.entry.js +1 -1
  144. package/dist/kolibri/kol-input-text.entry.js +1 -1
  145. package/dist/kolibri/kol-link-button.entry.js +1 -1
  146. package/dist/kolibri/kol-link-wc.entry.js +1 -1
  147. package/dist/kolibri/kol-link-wc.entry.js.map +1 -1
  148. package/dist/kolibri/kol-link.entry.js +1 -1
  149. package/dist/kolibri/kol-pagination.entry.js +1 -1
  150. package/dist/kolibri/kol-select.entry.js +1 -1
  151. package/dist/kolibri/kol-textarea.entry.js +1 -1
  152. package/dist/kolibri/kol-tooltip.entry.js +1 -1
  153. package/dist/kolibri/kol-tooltip.entry.js.map +1 -1
  154. package/dist/kolibri/{label-6c8f8ebb.js → label-a6e1b813.js} +1 -1
  155. package/dist/kolibri/{label-6c8f8ebb.js.map → label-a6e1b813.js.map} +0 -0
  156. package/dist/kolibri/reuse-2f7da8fc.js +4 -0
  157. package/dist/kolibri/reuse-2f7da8fc.js.map +1 -0
  158. package/dist/kolibri/{tab-index-4314d33e.js → tab-index-2f165a2f.js} +1 -1
  159. package/dist/kolibri/{tab-index-4314d33e.js.map → tab-index-2f165a2f.js.map} +0 -0
  160. package/dist/kolibri/{validator-8ee8737c.js → validator-2e4f8df6.js} +1 -1
  161. package/dist/kolibri/validator-2e4f8df6.js.map +1 -0
  162. package/dist/types/components/tooltip/component.d.ts +12 -5
  163. package/dist/types/components.d.ts +2 -2
  164. package/doc/tooltip.md +1 -1
  165. package/jest-test-results.json +1 -1
  166. package/package.json +1 -1
  167. package/dist/cjs/reuse-d95dc094.js +0 -4
  168. package/dist/cjs/reuse-d95dc094.js.map +0 -1
  169. package/dist/cjs/validator-6f53d4a2.js +0 -4
  170. package/dist/cjs/validator-6f53d4a2.js.map +0 -1
  171. package/dist/esm/reuse-f9be4952.js +0 -4
  172. package/dist/esm/reuse-f9be4952.js.map +0 -1
  173. package/dist/esm/validator-8ee8737c.js +0 -4
  174. package/dist/esm/validator-8ee8737c.js.map +0 -1
  175. package/dist/kolibri/assets/fontawesome-free/v5/LICENSE.txt +0 -34
  176. package/dist/kolibri/assets/fontawesome-free/v5/css/all.css +0 -4616
  177. package/dist/kolibri/assets/fontawesome-free/v5/css/all.min.css +0 -5
  178. package/dist/kolibri/assets/fontawesome-free/v5/css/brands.css +0 -15
  179. package/dist/kolibri/assets/fontawesome-free/v5/css/brands.min.css +0 -5
  180. package/dist/kolibri/assets/fontawesome-free/v5/css/fontawesome.css +0 -4582
  181. package/dist/kolibri/assets/fontawesome-free/v5/css/fontawesome.min.css +0 -5
  182. package/dist/kolibri/assets/fontawesome-free/v5/css/regular.css +0 -15
  183. package/dist/kolibri/assets/fontawesome-free/v5/css/regular.min.css +0 -5
  184. package/dist/kolibri/assets/fontawesome-free/v5/css/solid.css +0 -16
  185. package/dist/kolibri/assets/fontawesome-free/v5/css/solid.min.css +0 -5
  186. package/dist/kolibri/assets/fontawesome-free/v5/css/svg-with-js.css +0 -371
  187. package/dist/kolibri/assets/fontawesome-free/v5/css/svg-with-js.min.css +0 -5
  188. package/dist/kolibri/assets/fontawesome-free/v5/css/v4-shims.css +0 -2172
  189. package/dist/kolibri/assets/fontawesome-free/v5/css/v4-shims.min.css +0 -5
  190. package/dist/kolibri/assets/fontawesome-free/v5/webfonts/fa-brands-400.eot +0 -0
  191. package/dist/kolibri/assets/fontawesome-free/v5/webfonts/fa-brands-400.svg +0 -3717
  192. package/dist/kolibri/assets/fontawesome-free/v5/webfonts/fa-brands-400.ttf +0 -0
  193. package/dist/kolibri/assets/fontawesome-free/v5/webfonts/fa-brands-400.woff +0 -0
  194. package/dist/kolibri/assets/fontawesome-free/v5/webfonts/fa-brands-400.woff2 +0 -0
  195. package/dist/kolibri/assets/fontawesome-free/v5/webfonts/fa-regular-400.eot +0 -0
  196. package/dist/kolibri/assets/fontawesome-free/v5/webfonts/fa-regular-400.svg +0 -801
  197. package/dist/kolibri/assets/fontawesome-free/v5/webfonts/fa-regular-400.ttf +0 -0
  198. package/dist/kolibri/assets/fontawesome-free/v5/webfonts/fa-regular-400.woff +0 -0
  199. package/dist/kolibri/assets/fontawesome-free/v5/webfonts/fa-regular-400.woff2 +0 -0
  200. package/dist/kolibri/assets/fontawesome-free/v5/webfonts/fa-solid-900.eot +0 -0
  201. package/dist/kolibri/assets/fontawesome-free/v5/webfonts/fa-solid-900.svg +0 -5034
  202. package/dist/kolibri/assets/fontawesome-free/v5/webfonts/fa-solid-900.ttf +0 -0
  203. package/dist/kolibri/assets/fontawesome-free/v5/webfonts/fa-solid-900.woff +0 -0
  204. package/dist/kolibri/assets/fontawesome-free/v5/webfonts/fa-solid-900.woff2 +0 -0
  205. package/dist/kolibri/controller-9bcf44e5.js +0 -4
  206. package/dist/kolibri/reuse-f9be4952.js +0 -4
  207. package/dist/kolibri/reuse-f9be4952.js.map +0 -1
  208. package/dist/kolibri/validator-8ee8737c.js.map +0 -1
@@ -1,4 +1,4 @@
1
1
  /*!
2
2
  * KoliBri - The accessible HTML-Standard
3
3
  */
4
- "use strict";Object.defineProperty(exports,"__esModule",{value:!0});const index=require("./index-57f4a280.js"),i18n=require("./i18n-df10c07f.js"),prop_validators=require("./prop.validators-9f8acb6e.js"),reuse=require("./reuse-d95dc094.js"),controller=require("./controller-8342e490.js");require("./index-65050ef8.js"),require("./a11y.tipps-e1770acf.js"),require("./dev.utils-2353100d.js"),require("./index.m-21aa1255.js"),require("./validator-6f53d4a2.js"),require("./tab-index-c69625a6.js");class TextareaController extends controller.InputController{constructor(e,t,a){super(e,t,a),this.afterSyncCharCounter=()=>{"string"==typeof this.component._value&&this.component._value.length>0&&(this.component.state._currentLength=this.component._value.length)},this.component=e}validateHasCounter(e){prop_validators.watchBoolean(this.component,"_hasCounter",e,{hooks:{afterPatch:this.afterSyncCharCounter}})}validateMaxLength(e){prop_validators.watchNumber(this.component,"_maxLength",e,{hooks:{afterPatch:this.afterSyncCharCounter},min:0})}validatePlaceholder(e){prop_validators.watchString(this.component,"_placeholder",e)}validateReadOnly(e){prop_validators.watchBoolean(this.component,"_readOnly",e)}validateResize(e){prop_validators.watchValidator(this.component,"_resize",(e=>"string"==typeof e&&("both"===e||"horizontal"===e||"none"===e||"vertical"===e)),new Set("String {both, horizontal, vertical, none}"),e)}validateRequired(e){prop_validators.watchBoolean(this.component,"_required",e)}validateRows(e){prop_validators.watchNumber(this.component,"_rows",e)}validateValue(e){prop_validators.watchString(this.component,"_value",e,{hooks:{afterPatch:this.afterSyncCharCounter}}),this.setFormAssociatedValue(this.component._value)}componentWillLoad(){super.componentWillLoad(),this.validateHasCounter(this.component._hasCounter),this.validateMaxLength(this.component._maxLength),this.validatePlaceholder(this.component._placeholder),this.validateReadOnly(this.component._readOnly),this.validateResize(this.component._resize),this.validateRequired(this.component._required),this.validateRows(this.component._rows),this.validateValue(this.component._value)}}const defaultStyleCss="@windicss; *{box-sizing:border-box;font-size:inherit;hyphens:auto;letter-spacing:inherit;word-break:break-word;word-spacing:inherit}kol-heading-wc{font-weight:700}kol-icon{color:inherit}kol-span-wc{display:grid;place-items:center;width:100%}kol-span-wc>span{display:flex;gap:0.25rem;place-items:center}a,button{cursor:pointer}a.icon-only>kol-span-wc>span>span,button.icon-only>kol-span-wc>span>span{display:none}a{display:inline-flex;place-items:baseline}button{border-width:0}",increaseTextareaHeight=e=>{e.style.overflow="hidden";const t=e.rows,a=e.clientHeight/t;e.rows=1;const i=Math.round(e.scrollHeight/a);return e.rows=t,i},KolTextarea=class{render(){const{ariaDiscribedBy:e}=controller.getRenderStates(this.state);return index.h(index.Host,null,index.h("kol-input",{_alert:this.state._alert,_disabled:this.state._disabled,_error:this.state._error,_hideLabel:this.state._hideLabel,_hint:this.state._hint,_id:this.state._id,_readOnly:this.state._readOnly,_required:this.state._required,_touched:this.state._touched},index.h("span",{slot:"label"},index.h("slot",null)),index.h("div",{slot:"input"},index.h("textarea",Object.assign({ref:this.catchRef,part:"textarea",title:"",accessKey:this.state._accessKey,"aria-describedby":e.length>0?e.join(" "):void 0,"aria-labelledby":`${this.state._id}-label`,autoCapitalize:"off",autoCorrect:"off",disabled:this.state._disabled,id:this.state._id,maxlength:this.state._maxLength,name:this.state._name,readOnly:this.state._readOnly,required:this.state._required,rows:this.state._rows,placeholder:this.state._placeholder,spellcheck:"false"},this.controller.onFacade,{onKeyUp:this.onChange,style:{resize:this.state._resize},value:this.state._value})),this.state._hasCounter&&index.h("span",{"aria-atomic":"true","aria-live":"polite"},this.state._currentLength,this.state._maxLength&&index.h(index.Fragment,null,index.h("span",{"aria-label":i18n.translate("kol-of"),role:"img"},"/"),this.state._maxLength)," ",index.h("span",null,i18n.translate("kol-characters"))))))}constructor(e){index.registerInstance(this,e),this.catchRef=e=>{this.ref=e,reuse.propergateFocus(this.host,this.ref)},this.onChange=e=>{this.ref instanceof HTMLTextAreaElement&&(prop_validators.setState(this,"_currentLength",this.ref.value.length),this.state._adjustHeight&&(this._rows=increaseTextareaHeight(this.ref))),"function"==typeof this.controller.onFacade.onChange&&this.controller.onFacade.onChange(e)},this._accessKey=void 0,this._adjustHeight=!1,this._alert=!0,this._hasCounter=void 0,this._disabled=void 0,this._error=void 0,this._hideLabel=void 0,this._hint="",this._id=void 0,this._maxLength=void 0,this._name=void 0,this._on=void 0,this._placeholder=void 0,this._readOnly=void 0,this._resize="vertical",this._required=void 0,this._rows=void 0,this._tabIndex=void 0,this._touched=!1,this._value=void 0,this.state={_adjustHeight:!1,_currentLength:0,_id:"⚠",_resize:"vertical"},this.controller=new TextareaController(this,"textarea",this.host)}validateAccessKey(e){this.controller.validateAccessKey(e)}validateAdjustHeight(e){this.controller.validateAdjustHeight(e)}validateAlert(e){this.controller.validateAlert(e)}validateDisabled(e){this.controller.validateDisabled(e)}validateError(e){this.controller.validateError(e)}validateHasCounter(e){this.controller.validateHasCounter(e)}validateHideLabel(e){this.controller.validateHideLabel(e)}validateHint(e){this.controller.validateHint(e)}validateId(e){this.controller.validateId(e)}validateMaxLength(e){this.controller.validateMaxLength(e)}validateName(e){this.controller.validateName(e)}validateOn(e){this.controller.validateOn(e)}validatePlaceholder(e){this.controller.validatePlaceholder(e)}validateReadOnly(e){this.controller.validateReadOnly(e)}validateResize(e){this.controller.validateResize(e)}validateRequired(e){this.controller.validateRequired(e)}validateRows(e){this.controller.validateRows(e)}validateTabIndex(e){this.controller.validateTabIndex(e)}validateTouched(e){this.controller.validateTouched(e)}validateValue(e){this.controller.validateValue(e)}componentWillLoad(){this._alert=!0===this._alert,this._touched=!0===this._touched,this.controller.componentWillLoad(),this.validateAdjustHeight(this._adjustHeight)}get host(){return index.getElement(this)}static get watchers(){return{_accessKey:["validateAccessKey"],_adjustHeight:["validateAdjustHeight"],_alert:["validateAlert"],_disabled:["validateDisabled"],_error:["validateError"],_hasCounter:["validateHasCounter"],_hideLabel:["validateHideLabel"],_hint:["validateHint"],_id:["validateId"],_maxLength:["validateMaxLength"],_name:["validateName"],_on:["validateOn"],_placeholder:["validatePlaceholder"],_readOnly:["validateReadOnly"],_resize:["validateResize"],_required:["validateRequired"],_rows:["validateRows"],_tabIndex:["validateTabIndex"],_touched:["validateTouched"],_value:["validateValue"]}}};KolTextarea.style={default:defaultStyleCss},exports.kol_textarea=KolTextarea;
4
+ "use strict";Object.defineProperty(exports,"__esModule",{value:!0});const index=require("./index-57f4a280.js"),i18n=require("./i18n-df10c07f.js"),prop_validators=require("./prop.validators-9f8acb6e.js"),reuse=require("./reuse-28825ead.js"),controller=require("./controller-3b86e1c6.js");require("./index-65050ef8.js"),require("./a11y.tipps-e1770acf.js"),require("./dev.utils-2353100d.js"),require("./index.m-21aa1255.js"),require("./validator-953ea58f.js"),require("./tab-index-954dd1d8.js");class TextareaController extends controller.InputController{constructor(e,t,a){super(e,t,a),this.afterSyncCharCounter=()=>{"string"==typeof this.component._value&&this.component._value.length>0&&(this.component.state._currentLength=this.component._value.length)},this.component=e}validateHasCounter(e){prop_validators.watchBoolean(this.component,"_hasCounter",e,{hooks:{afterPatch:this.afterSyncCharCounter}})}validateMaxLength(e){prop_validators.watchNumber(this.component,"_maxLength",e,{hooks:{afterPatch:this.afterSyncCharCounter},min:0})}validatePlaceholder(e){prop_validators.watchString(this.component,"_placeholder",e)}validateReadOnly(e){prop_validators.watchBoolean(this.component,"_readOnly",e)}validateResize(e){prop_validators.watchValidator(this.component,"_resize",(e=>"string"==typeof e&&("both"===e||"horizontal"===e||"none"===e||"vertical"===e)),new Set("String {both, horizontal, vertical, none}"),e)}validateRequired(e){prop_validators.watchBoolean(this.component,"_required",e)}validateRows(e){prop_validators.watchNumber(this.component,"_rows",e)}validateValue(e){prop_validators.watchString(this.component,"_value",e,{hooks:{afterPatch:this.afterSyncCharCounter}}),this.setFormAssociatedValue(this.component._value)}componentWillLoad(){super.componentWillLoad(),this.validateHasCounter(this.component._hasCounter),this.validateMaxLength(this.component._maxLength),this.validatePlaceholder(this.component._placeholder),this.validateReadOnly(this.component._readOnly),this.validateResize(this.component._resize),this.validateRequired(this.component._required),this.validateRows(this.component._rows),this.validateValue(this.component._value)}}const defaultStyleCss="@windicss; *{box-sizing:border-box;font-size:inherit;hyphens:auto;letter-spacing:inherit;word-break:break-word;word-spacing:inherit}kol-heading-wc{font-weight:700}kol-icon{color:inherit}kol-span-wc{display:grid;place-items:center;width:100%}kol-span-wc>span{display:flex;gap:0.25rem;place-items:center}a,button{cursor:pointer}a.icon-only>kol-span-wc>span>span,button.icon-only>kol-span-wc>span>span{display:none}a{display:inline-flex;place-items:baseline}button{border-width:0}",increaseTextareaHeight=e=>{e.style.overflow="hidden";const t=e.rows,a=e.clientHeight/t;e.rows=1;const i=Math.round(e.scrollHeight/a);return e.rows=t,i},KolTextarea=class{render(){const{ariaDiscribedBy:e}=controller.getRenderStates(this.state);return index.h(index.Host,null,index.h("kol-input",{_alert:this.state._alert,_disabled:this.state._disabled,_error:this.state._error,_hideLabel:this.state._hideLabel,_hint:this.state._hint,_id:this.state._id,_readOnly:this.state._readOnly,_required:this.state._required,_touched:this.state._touched},index.h("span",{slot:"label"},index.h("slot",null)),index.h("div",{slot:"input"},index.h("textarea",Object.assign({ref:this.catchRef,part:"textarea",title:"",accessKey:this.state._accessKey,"aria-describedby":e.length>0?e.join(" "):void 0,"aria-labelledby":`${this.state._id}-label`,autoCapitalize:"off",autoCorrect:"off",disabled:this.state._disabled,id:this.state._id,maxlength:this.state._maxLength,name:this.state._name,readOnly:this.state._readOnly,required:this.state._required,rows:this.state._rows,placeholder:this.state._placeholder,spellcheck:"false"},this.controller.onFacade,{onKeyUp:this.onChange,style:{resize:this.state._resize},value:this.state._value})),this.state._hasCounter&&index.h("span",{"aria-atomic":"true","aria-live":"polite"},this.state._currentLength,this.state._maxLength&&index.h(index.Fragment,null,index.h("span",{"aria-label":i18n.translate("kol-of"),role:"img"},"/"),this.state._maxLength)," ",index.h("span",null,i18n.translate("kol-characters"))))))}constructor(e){index.registerInstance(this,e),this.catchRef=e=>{this.ref=e,reuse.propergateFocus(this.host,this.ref)},this.onChange=e=>{this.ref instanceof HTMLTextAreaElement&&(prop_validators.setState(this,"_currentLength",this.ref.value.length),this.state._adjustHeight&&(this._rows=increaseTextareaHeight(this.ref))),"function"==typeof this.controller.onFacade.onChange&&this.controller.onFacade.onChange(e)},this._accessKey=void 0,this._adjustHeight=!1,this._alert=!0,this._hasCounter=void 0,this._disabled=void 0,this._error=void 0,this._hideLabel=void 0,this._hint="",this._id=void 0,this._maxLength=void 0,this._name=void 0,this._on=void 0,this._placeholder=void 0,this._readOnly=void 0,this._resize="vertical",this._required=void 0,this._rows=void 0,this._tabIndex=void 0,this._touched=!1,this._value=void 0,this.state={_adjustHeight:!1,_currentLength:0,_id:"⚠",_resize:"vertical"},this.controller=new TextareaController(this,"textarea",this.host)}validateAccessKey(e){this.controller.validateAccessKey(e)}validateAdjustHeight(e){this.controller.validateAdjustHeight(e)}validateAlert(e){this.controller.validateAlert(e)}validateDisabled(e){this.controller.validateDisabled(e)}validateError(e){this.controller.validateError(e)}validateHasCounter(e){this.controller.validateHasCounter(e)}validateHideLabel(e){this.controller.validateHideLabel(e)}validateHint(e){this.controller.validateHint(e)}validateId(e){this.controller.validateId(e)}validateMaxLength(e){this.controller.validateMaxLength(e)}validateName(e){this.controller.validateName(e)}validateOn(e){this.controller.validateOn(e)}validatePlaceholder(e){this.controller.validatePlaceholder(e)}validateReadOnly(e){this.controller.validateReadOnly(e)}validateResize(e){this.controller.validateResize(e)}validateRequired(e){this.controller.validateRequired(e)}validateRows(e){this.controller.validateRows(e)}validateTabIndex(e){this.controller.validateTabIndex(e)}validateTouched(e){this.controller.validateTouched(e)}validateValue(e){this.controller.validateValue(e)}componentWillLoad(){this._alert=!0===this._alert,this._touched=!0===this._touched,this.controller.componentWillLoad(),this.validateAdjustHeight(this._adjustHeight)}get host(){return index.getElement(this)}static get watchers(){return{_accessKey:["validateAccessKey"],_adjustHeight:["validateAdjustHeight"],_alert:["validateAlert"],_disabled:["validateDisabled"],_error:["validateError"],_hasCounter:["validateHasCounter"],_hideLabel:["validateHideLabel"],_hint:["validateHint"],_id:["validateId"],_maxLength:["validateMaxLength"],_name:["validateName"],_on:["validateOn"],_placeholder:["validatePlaceholder"],_readOnly:["validateReadOnly"],_resize:["validateResize"],_required:["validateRequired"],_rows:["validateRows"],_tabIndex:["validateTabIndex"],_touched:["validateTouched"],_value:["validateValue"]}}};KolTextarea.style={default:defaultStyleCss},exports.kol_textarea=KolTextarea;
@@ -1,4 +1,4 @@
1
1
  /*!
2
2
  * KoliBri - The accessible HTML-Standard
3
3
  */
4
- "use strict";Object.defineProperty(exports,"__esModule",{value:!0});const index=require("./index-57f4a280.js"),buttonLink=require("./button-link-8372c324.js"),dev_utils=require("./dev.utils-2353100d.js"),prop_validators=require("./prop.validators-9f8acb6e.js");require("./index-65050ef8.js"),require("./index.m-21aa1255.js"),require("./a11y.tipps-e1770acf.js");const defaultStyleCss='kol-badge,.tooltip{font-size:1rem;position:fixed;animation-name:fadeInOpacity;animation-iteration-count:1;animation-timing-function:ease-in;animation-duration:0.5s;display:none;z-index:1000;max-width:300px;box-shadow:0 0 0.15rem rgba(255, 255, 255, 0.8)}kol-badge::after,.tooltip::after{content:" ";position:absolute;border-style:solid;border-width:5px}kol-badge.arrow-left::after,.tooltip.arrow-left::after{margin-top:-5px;top:50%;right:100%;border-color:transparent black transparent transparent}kol-badge.arrow-right::after,.tooltip.arrow-right::after{margin-top:-5px;top:50%;left:100%;border-color:transparent transparent transparent black}kol-badge.arrow-top::after,.tooltip.arrow-top::after{margin-left:-5px;left:50%;bottom:100%;border-color:transparent transparent black transparent}kol-badge.arrow-bottom::after,.tooltip.arrow-bottom::after{margin-left:-5px;left:50%;top:100%;border-color:black transparent transparent transparent}@keyframes fadeInOpacity{0%{opacity:0}100%{opacity:1}}',KolTooltip=class{constructor(t){index.registerInstance(this,t),this.hydrated=!1,this.hostElement=null,this.childElements=[],this.alignTooltip=()=>{const t=this.childElements[0];{const e=t.getBoundingClientRect();if(this.tooltipElement){switch(this.state._align){case"top":case"bottom":this.tooltipElement.style.left=e.left+t.offsetWidth/2-this.tooltipElement.offsetWidth/2+"px";break;default:this.tooltipElement.style.top=e.top+e.height/2-this.tooltipElement.offsetHeight/2+"px"}switch(this.state._align){case"left":this.tooltipElement.style.left=`calc(${e.left-this.tooltipElement.offsetWidth}px - 0.5em)`;break;case"right":this.tooltipElement.style.left=`calc(${e.right}px + 0.5em)`;break;case"bottom":this.tooltipElement.style.top=`calc(${e.bottom}px + 0.5em)`;break;default:this.tooltipElement.style.top=`calc(${e.top-this.tooltipElement.offsetHeight}px - 0.5em)`}}}},this.showTooltip=()=>{this.tooltipElement&&(this.tooltipElement.style.setProperty("display","block"),dev_utils.getDocument().body.addEventListener("keyup",this.hideTooltipByEscape),this.alignTooltip(),this.tooltipElement.style.setProperty("visibility","visible"),document.addEventListener("scroll",this.alignTooltip))},this.hideTooltip=()=>{this.tooltipElement&&(this.tooltipElement.style.setProperty("display","none"),this.tooltipElement.style.setProperty("visibility","hidden"),document.removeEventListener("scroll",this.alignTooltip))},this.hideTooltipByEscape=t=>{"Escape"===t.key&&(dev_utils.getDocument().body.removeEventListener("keyup",this.hideTooltipByEscape),this.hideTooltip())},this.catchHostElement=t=>{if(this.hostElement=t,this.hostElement){const t=this.hostElement.previousElementSibling;t&&(t.removeEventListener("mouseover",this.showTooltip),t.addEventListener("mouseover",this.showTooltip),t.removeEventListener("focus",this.showTooltip),t.addEventListener("focus",this.showTooltip),t.removeEventListener("mouseout",this.hideTooltip),t.addEventListener("mouseout",this.hideTooltip),t.removeEventListener("blur",this.hideTooltip),t.addEventListener("blur",this.hideTooltip),this.childElements.push(t))}},this.catchTooltipElement=t=>{this.tooltipElement=t},this._align="top",this._id=void 0,this._label=void 0,this.state={_align:"top",_id:dev_utils.nonce(),_label:""}}render(){const t=setTimeout((()=>{clearTimeout(t),this.alignTooltip()}),250);return index.h(index.Host,{ref:this.catchHostElement},""!==this.state._label&&index.h("kol-badge",{class:{"arrow-bottom":"top"===this.state._align,"arrow-left":"right"===this.state._align,"arrow-top":"bottom"===this.state._align,"arrow-right":"left"===this.state._align},id:this.state._id,ref:this.catchTooltipElement,_color:{backgroundColor:"#333",color:"#ddd"},_label:this.state._label}))}validateAlign(t){buttonLink.watchTooltipAlignment(this,"_align",t)}validateId(t){prop_validators.watchString(this,"_id",t)}validateLabel(t){prop_validators.watchString(this,"_label",t)}componentWillLoad(){this.validateAlign(this._align),this.validateId(this._id),this.validateLabel(this._label),this.hydrated=!0}static get watchers(){return{_align:["validateAlign"],_id:["validateId"],_label:["validateLabel"]}}};KolTooltip.style={default:defaultStyleCss},exports.kol_tooltip=KolTooltip;
4
+ "use strict";Object.defineProperty(exports,"__esModule",{value:!0});const index=require("./index-57f4a280.js"),buttonLink=require("./button-link-8372c324.js"),dev_utils=require("./dev.utils-2353100d.js"),prop_validators=require("./prop.validators-9f8acb6e.js"),reuse=require("./reuse-28825ead.js");require("./index-65050ef8.js"),require("./index.m-21aa1255.js"),require("./a11y.tipps-e1770acf.js"),require("./validator-953ea58f.js");const defaultStyleCss='kol-badge,.tooltip{font-size:1rem;position:fixed;animation-name:fadeInOpacity;animation-iteration-count:1;animation-timing-function:ease-in;animation-duration:0.5s;display:none;z-index:1000;max-width:300px;box-shadow:0 0 0.15rem rgba(255, 255, 255, 0.8)}kol-badge::after,.tooltip::after{content:" ";position:absolute;border-style:solid;border-width:5px}kol-badge.arrow-left::after,.tooltip.arrow-left::after{margin-top:-5px;top:50%;right:100%;border-color:transparent black transparent transparent}kol-badge.arrow-right::after,.tooltip.arrow-right::after{margin-top:-5px;top:50%;left:100%;border-color:transparent transparent transparent black}kol-badge.arrow-top::after,.tooltip.arrow-top::after{margin-left:-5px;left:50%;bottom:100%;border-color:transparent transparent black transparent}kol-badge.arrow-bottom::after,.tooltip.arrow-bottom::after{margin-left:-5px;left:50%;top:100%;border-color:black transparent transparent transparent}@keyframes fadeInOpacity{0%{opacity:0}100%{opacity:1}}',KolTooltip=class{constructor(t){index.registerInstance(this,t),this.alignTooltip=()=>{if(this.previousSibling){const t=this.previousSibling.getBoundingClientRect();if(this.tooltipElement){switch(this.state._align){case"top":case"bottom":this.tooltipElement.style.left=t.left+this.previousSibling.offsetWidth/2-this.tooltipElement.offsetWidth/2+"px";break;default:this.tooltipElement.style.top=t.top+t.height/2-this.tooltipElement.offsetHeight/2+"px"}switch(this.state._align){case"left":this.tooltipElement.style.left=`calc(${t.left-this.tooltipElement.offsetWidth}px - 0.5em)`;break;case"right":this.tooltipElement.style.left=`calc(${t.right}px + 0.5em)`;break;case"bottom":this.tooltipElement.style.top=`calc(${t.bottom}px + 0.5em)`;break;default:this.tooltipElement.style.top=`calc(${t.top-this.tooltipElement.offsetHeight}px - 0.5em)`}}}},this.showTooltip=()=>{this.tooltipElement&&(this.tooltipElement.style.setProperty("display","block"),dev_utils.getDocument().body.addEventListener("keyup",this.hideTooltipByEscape),this.alignTooltip(),this.tooltipElement.style.setProperty("visibility","visible"),document.addEventListener("scroll",this.alignTooltip))},this.hideTooltip=()=>{this.tooltipElement&&(this.tooltipElement.style.setProperty("display","none"),this.tooltipElement.style.setProperty("visibility","hidden"),document.removeEventListener("scroll",this.alignTooltip))},this.hideTooltipByEscape=t=>{"Escape"===t.key&&(dev_utils.getDocument().body.removeEventListener("keyup",this.hideTooltipByEscape),this.hideTooltip())},this.addListeners=t=>{t.addEventListener("mouseover",this.incrementOverFocusCount),t.addEventListener("focus",this.incrementOverFocusCount),t.addEventListener("mouseout",this.decrementOverFocusCount),t.addEventListener("blur",this.decrementOverFocusCount)},this.removeListeners=t=>{t.removeEventListener("mouseover",this.incrementOverFocusCount),t.removeEventListener("focus",this.incrementOverFocusCount),t.removeEventListener("mouseout",this.decrementOverFocusCount),t.removeEventListener("blur",this.decrementOverFocusCount)},this.resyncListeners=t=>{this.removeListeners(t),this.addListeners(t)},this.catchHostElement=t=>{t&&(this.previousSibling=t.previousElementSibling,this.previousSibling&&this.resyncListeners(this.previousSibling))},this.catchTooltipElement=t=>{this.tooltipElement=t,this.tooltipElement&&this.resyncListeners(this.tooltipElement)},this.overFocusCount=0,this.incrementOverFocusCount=()=>{this.overFocusCount++,this.showOrHideTooltip()},this.decrementOverFocusCount=()=>{this.overFocusCount--,this.showOrHideTooltip()},this.showOrHideTooltip=()=>{clearTimeout(this.overFocusTimeout),this.overFocusTimeout=setTimeout((()=>{clearTimeout(this.overFocusTimeout),this.overFocusCount>0?this.showTooltip():this.hideTooltip()}),250)},this._align="top",this._id=void 0,this._label=void 0,this.state={_align:"top",_id:dev_utils.nonce(),_label:""}}render(){return reuse.smartSetTimeout((()=>{this.alignTooltip(),reuse.smartSetTimeout(this.alignTooltip,750)}),250),index.h(index.Host,{ref:this.catchHostElement},""!==this.state._label&&index.h("kol-badge",{class:{"arrow-bottom":"top"===this.state._align,"arrow-left":"right"===this.state._align,"arrow-top":"bottom"===this.state._align,"arrow-right":"left"===this.state._align},id:this.state._id,ref:this.catchTooltipElement,_color:{backgroundColor:"#333",color:"#ddd"},_label:this.state._label}))}validateAlign(t){buttonLink.watchTooltipAlignment(this,"_align",t)}validateId(t){prop_validators.watchString(this,"_id",t)}validateLabel(t){prop_validators.watchString(this,"_label",t)}componentWillLoad(){this.validateAlign(this._align),this.validateId(this._id),this.validateLabel(this._label)}disconnectedCallback(){this.previousSibling&&this.removeListeners(this.previousSibling),this.tooltipElement&&this.removeListeners(this.tooltipElement)}static get watchers(){return{_align:["validateAlign"],_id:["validateId"],_label:["validateLabel"]}}};KolTooltip.style={default:defaultStyleCss},exports.kol_tooltip=KolTooltip;
@@ -1 +1 @@
1
- {"file":"kol-tooltip.entry.cjs.js","mappings":"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","names":["getDocument","nonce","h","Host","watchTooltipAlignment","watchString"],"sources":["./src/components/tooltip/style.sass?tag=kol-tooltip&mode=default","./src/components/tooltip/component.tsx"],"sourcesContent":["/*\n// @import ../style\n\nkol-badge,\n.tooltip /* fix sass formatter */\n\tfont-size: 1rem\n\tposition: fixed\n\t\t// position: absolute\n\t\t// position: relative\n\tanimation-name: fadeInOpacity\n\tanimation-iteration-count: 1\n\tanimation-timing-function: ease-in\n\tanimation-duration: .5s\n\tdisplay: none\n\tz-index: 1000\n\tmax-width: 300px\n\tbox-shadow: 0 0 0.15rem rgba(255,255,255,0.8)\n\n\t&::after\n\t\tcontent: \" \"\n\t\tposition: absolute\n\t\tborder-style: solid\n\t\tborder-width: 5px\n\n\t&.arrow-left\n\t\t&::after\n\t\t\tmargin-top: -5px\n\t\t\ttop: 50%\n\t\t\tright: 100%\n\t\t\tborder-color: transparent black transparent transparent\n\n\t&.arrow-right\n\t\t&::after\n\t\t\tmargin-top: -5px\n\t\t\ttop: 50%\n\t\t\tleft: 100%\n\t\t\tborder-color: transparent transparent transparent black\n\n\t&.arrow-top\n\t\t&::after\n\t\t\tmargin-left: -5px\n\t\t\tleft: 50%\n\t\t\tbottom: 100%\n\t\t\tborder-color: transparent transparent black transparent\n\n\t&.arrow-bottom\n\t\t&::after\n\t\t\tmargin-left: -5px\n\t\t\tleft: 50%\n\t\t\ttop: 100%\n\t\t\tborder-color: black transparent transparent transparent\n\n\t// &::before\n\t// content: ''\n\t// display: inline-block\n\t// vertical-align: middle\n\t// -webkit-transform: rotate(360deg)\n\t// border-style: solid\n\t// border-width: .5rem .5rem .5rem 0\n\t// border-color: transparent black transparent transparent\n\n@keyframes fadeInOpacity\n\t0%\n\t\topacity: 0\n\n\t100%\n\t\topacity: 1\n","import { Component, h, Host, JSX, Prop, State, Watch } from '@stencil/core';\n\nimport { Generic } from '@a11y-ui/core';\nimport { watchTooltipAlignment } from '../../types/button-link';\nimport { Alignment } from '../../types/props/alignment';\nimport { getDocument, nonce } from '../../utils/dev.utils';\nimport { watchString } from '../../utils/prop.validators';\n\n/**\n * API\n */\ntype RequiredProps = {\n\tlabel: string;\n};\ntype OptionalProps = {\n\talign: Alignment;\n\tid: string;\n};\nexport type Props = Generic.Element.Members<RequiredProps, OptionalProps>;\n\ntype RequiredStates = RequiredProps & OptionalProps;\ntype OptionalStates = unknown;\nexport type States = Generic.Element.Members<RequiredStates, OptionalStates>;\n\n@Component({\n\ttag: 'kol-tooltip',\n\tstyleUrls: {\n\t\tdefault: './style.sass',\n\t},\n\tshadow: false,\n})\nexport class KolTooltip implements Generic.Element.ComponentApi<RequiredProps, OptionalProps, RequiredStates, OptionalStates> {\n\t// - eslint-disable-next-line @stencil/own-props-must-be-private\n\tpublic hydrated = false; // TODO: Why?!\n\n\tprivate hostElement?: HTMLElement | null = null;\n\tprivate readonly childElements: HTMLElement[] = [];\n\tprivate tooltipElement?: HTMLKolBadgeElement;\n\n\tprivate alignTooltip = (): void => {\n\t\tconst target = this.childElements[0];\n\n\t\t// getBoundingClientRect is not defined in test suite\n\t\tif (process.env.NODE_ENV !== 'test') {\n\t\t\tconst clientRect = target.getBoundingClientRect();\n\n\t\t\tif (this.tooltipElement /* SSR instanceof HTMLElement */) {\n\t\t\t\tswitch (this.state._align) {\n\t\t\t\t\tcase 'top':\n\t\t\t\t\tcase 'bottom':\n\t\t\t\t\t\tthis.tooltipElement.style.left = `${clientRect.left + target.offsetWidth / 2 - this.tooltipElement.offsetWidth / 2}px`;\n\t\t\t\t\t\tbreak;\n\t\t\t\t\tcase 'left':\n\t\t\t\t\tcase 'right':\n\t\t\t\t\tdefault:\n\t\t\t\t\t\tthis.tooltipElement.style.top = `${clientRect.top + clientRect.height / 2 - this.tooltipElement.offsetHeight / 2}px`;\n\t\t\t\t}\n\t\t\t\tswitch (this.state._align) {\n\t\t\t\t\tcase 'left':\n\t\t\t\t\t\tthis.tooltipElement.style.left = `calc(${clientRect.left - this.tooltipElement.offsetWidth}px - 0.5em)`;\n\t\t\t\t\t\tbreak;\n\t\t\t\t\tcase 'right':\n\t\t\t\t\t\tthis.tooltipElement.style.left = `calc(${clientRect.right}px + 0.5em)`;\n\t\t\t\t\t\tbreak;\n\t\t\t\t\tcase 'bottom':\n\t\t\t\t\t\tthis.tooltipElement.style.top = `calc(${clientRect.bottom}px + 0.5em)`;\n\t\t\t\t\t\tbreak;\n\t\t\t\t\tcase 'top':\n\t\t\t\t\tdefault:\n\t\t\t\t\t\tthis.tooltipElement.style.top = `calc(${clientRect.top - this.tooltipElement.offsetHeight}px - 0.5em)`;\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t};\n\n\tprivate showTooltip = (): void => {\n\t\tif (this.tooltipElement /* SSR instanceof HTMLElement */) {\n\t\t\tthis.tooltipElement.style.setProperty('display', 'block');\n\t\t\tgetDocument().body.addEventListener('keyup', this.hideTooltipByEscape);\n\t\t\tthis.alignTooltip();\n\t\t\tthis.tooltipElement.style.setProperty('visibility', 'visible');\n\t\t\tdocument.addEventListener('scroll', this.alignTooltip);\n\t\t}\n\t};\n\n\tprivate hideTooltip = (): void => {\n\t\tif (this.tooltipElement /* SSR instanceof HTMLElement */) {\n\t\t\tthis.tooltipElement.style.setProperty('display', 'none');\n\t\t\tthis.tooltipElement.style.setProperty('visibility', 'hidden');\n\t\t\tdocument.removeEventListener('scroll', this.alignTooltip);\n\t\t}\n\t};\n\n\tprivate hideTooltipByEscape = (event: KeyboardEvent): void => {\n\t\tif (event.key === 'Escape') {\n\t\t\tgetDocument().body.removeEventListener('keyup', this.hideTooltipByEscape);\n\t\t\tthis.hideTooltip();\n\t\t}\n\t};\n\n\tprivate catchHostElement = (element: HTMLElement | null): void => {\n\t\tthis.hostElement = element;\n\t\tif (this.hostElement /* SSR instanceof HTMLElement */) {\n\t\t\tconst previousSibling = this.hostElement.previousElementSibling;\n\t\t\tif (previousSibling /* SSR instanceof HTMLElement */) {\n\t\t\t\tpreviousSibling.removeEventListener('mouseover', this.showTooltip);\n\t\t\t\tpreviousSibling.addEventListener('mouseover', this.showTooltip);\n\t\t\t\tpreviousSibling.removeEventListener('focus', this.showTooltip);\n\t\t\t\tpreviousSibling.addEventListener('focus', this.showTooltip);\n\t\t\t\tpreviousSibling.removeEventListener('mouseout', this.hideTooltip);\n\t\t\t\tpreviousSibling.addEventListener('mouseout', this.hideTooltip);\n\t\t\t\tpreviousSibling.removeEventListener('blur', this.hideTooltip);\n\t\t\t\tpreviousSibling.addEventListener('blur', this.hideTooltip);\n\t\t\t\tthis.childElements.push(previousSibling as HTMLElement);\n\t\t\t}\n\t\t}\n\t};\n\n\tprivate catchTooltipElement = (element?: HTMLKolBadgeElement): void => {\n\t\tthis.tooltipElement = element;\n\t};\n\n\tpublic render(): JSX.Element {\n\t\tconst timeout = setTimeout(() => {\n\t\t\tclearTimeout(timeout);\n\t\t\tthis.alignTooltip();\n\t\t}, 250);\n\t\treturn (\n\t\t\t<Host ref={this.catchHostElement}>\n\t\t\t\t{this.state._label !== '' && (\n\t\t\t\t\t<kol-badge\n\t\t\t\t\t\tclass={{\n\t\t\t\t\t\t\t'arrow-bottom': this.state._align === 'top',\n\t\t\t\t\t\t\t'arrow-left': this.state._align === 'right',\n\t\t\t\t\t\t\t'arrow-top': this.state._align === 'bottom',\n\t\t\t\t\t\t\t'arrow-right': this.state._align === 'left',\n\t\t\t\t\t\t}}\n\t\t\t\t\t\tid={this.state._id}\n\t\t\t\t\t\tref={this.catchTooltipElement}\n\t\t\t\t\t\t_color={{\n\t\t\t\t\t\t\tbackgroundColor: '#333',\n\t\t\t\t\t\t\tcolor: '#ddd',\n\t\t\t\t\t\t}}\n\t\t\t\t\t\t_label={this.state._label}\n\t\t\t\t\t></kol-badge>\n\t\t\t\t)}\n\t\t\t</Host>\n\t\t);\n\t}\n\n\t/**\n\t * Gibt an, ob der Tooltip oben, rechts, unten oder links angezeigt werden soll.\n\t */\n\t@Prop() public _align?: Alignment = 'top';\n\n\t/**\n\t * Gibt die ID an, wenn z.B. Aria-Labelledby (Link) verwendet wird.\n\t */\n\t@Prop() public _id?: string;\n\n\t/**\n\t * Das Label gibt an, welcher Text in dem Tooltip beim Fokussieren oder Maus-drüberfahren angezeigt wird.\n\t */\n\t@Prop() public _label!: string;\n\n\t/**\n\t * @see: components/abbr/component.tsx (@State)\n\t */\n\t@State() public state: States = {\n\t\t_align: 'top',\n\t\t_id: nonce(),\n\t\t_label: '',\n\t};\n\n\t/**\n\t * @see: components/abbr/component.tsx (@Watch)\n\t */\n\t@Watch('_align')\n\tpublic validateAlign(value?: Alignment): void {\n\t\twatchTooltipAlignment(this, '_align', value);\n\t}\n\n\t/**\n\t * @see: components/abbr/component.tsx (@Watch)\n\t */\n\t@Watch('_id')\n\tpublic validateId(value?: string): void {\n\t\twatchString(this, '_id', value);\n\t}\n\n\t/**\n\t * @see: components/abbr/component.tsx (@Watch)\n\t */\n\t@Watch('_label')\n\tpublic validateLabel(value?: string): void {\n\t\twatchString(this, '_label', value);\n\t}\n\n\t/**\n\t * @see: components/abbr/component.tsx (componentWillLoad)\n\t */\n\tpublic componentWillLoad(): void {\n\t\tthis.validateAlign(this._align);\n\t\tthis.validateId(this._id);\n\t\tthis.validateLabel(this._label);\n\t\tthis.hydrated = true;\n\t}\n}\n"],"version":3}
1
+ {"file":"kol-tooltip.entry.cjs.js","mappings":";;;;;;;;;;;;;;;;;AAAA,MAAM,eAAe,GAAG,q+BAAq+B;;MCgCh/B,UAAU;;;IAId,iBAAY,GAAG;MAEe;QACpC,IAAI,IAAI,CAAC,eAAe,EAAmC;UAC1D,MAAM,UAAU,GAAG,IAAI,CAAC,eAAe,CAAC,qBAAqB,EAAE,CAAC;UAChE,IAAI,IAAI,CAAC,cAAc,EAAmC;YACzD,QAAQ,IAAI,CAAC,KAAK,CAAC,MAAM;cACxB,KAAK,KAAK,CAAC;cACX,KAAK,QAAQ;gBACZ,IAAI,CAAC,cAAc,CAAC,KAAK,CAAC,IAAI,GAAG,GAAG,UAAU,CAAC,IAAI,GAAG,IAAI,CAAC,eAAe,CAAC,WAAW,GAAG,CAAC,GAAG,IAAI,CAAC,cAAc,CAAC,WAAW,GAAG,CAAC,IAAI,CAAC;gBACrI,MAAM;cACP,KAAK,MAAM,CAAC;cACZ,KAAK,OAAO,CAAC;cACb;gBACC,IAAI,CAAC,cAAc,CAAC,KAAK,CAAC,GAAG,GAAG,GAAG,UAAU,CAAC,GAAG,GAAG,UAAU,CAAC,MAAM,GAAG,CAAC,GAAG,IAAI,CAAC,cAAc,CAAC,YAAY,GAAG,CAAC,IAAI,CAAC;aACtH;YACD,QAAQ,IAAI,CAAC,KAAK,CAAC,MAAM;cACxB,KAAK,MAAM;gBACV,IAAI,CAAC,cAAc,CAAC,KAAK,CAAC,IAAI,GAAG,QAAQ,UAAU,CAAC,IAAI,GAAG,IAAI,CAAC,cAAc,CAAC,WAAW,aAAa,CAAC;gBACxG,MAAM;cACP,KAAK,OAAO;gBACX,IAAI,CAAC,cAAc,CAAC,KAAK,CAAC,IAAI,GAAG,QAAQ,UAAU,CAAC,KAAK,aAAa,CAAC;gBACvE,MAAM;cACP,KAAK,QAAQ;gBACZ,IAAI,CAAC,cAAc,CAAC,KAAK,CAAC,GAAG,GAAG,QAAQ,UAAU,CAAC,MAAM,aAAa,CAAC;gBACvE,MAAM;cACP,KAAK,KAAK,CAAC;cACX;gBACC,IAAI,CAAC,cAAc,CAAC,KAAK,CAAC,GAAG,GAAG,QAAQ,UAAU,CAAC,GAAG,GAAG,IAAI,CAAC,cAAc,CAAC,YAAY,aAAa,CAAC;aACxG;WACD;SACD;OACD;KACD,CAAC;IAEM,gBAAW,GAAG;MACrB,IAAI,IAAI,CAAC,cAAc,EAAmC;QACzD,IAAI,CAAC,cAAc,CAAC,KAAK,CAAC,WAAW,CAAC,SAAS,EAAE,OAAO,CAAC,CAAC;QAC1DA,qBAAW,EAAE,CAAC,IAAI,CAAC,gBAAgB,CAAC,OAAO,EAAE,IAAI,CAAC,mBAAmB,CAAC,CAAC;QACvE,IAAI,CAAC,YAAY,EAAE,CAAC;QACpB,IAAI,CAAC,cAAc,CAAC,KAAK,CAAC,WAAW,CAAC,YAAY,EAAE,SAAS,CAAC,CAAC;QAC/D,QAAQ,CAAC,gBAAgB,CAAC,QAAQ,EAAE,IAAI,CAAC,YAAY,CAAC,CAAC;OACvD;KACD,CAAC;IAEM,gBAAW,GAAG;MACrB,IAAI,IAAI,CAAC,cAAc,EAAmC;QACzD,IAAI,CAAC,cAAc,CAAC,KAAK,CAAC,WAAW,CAAC,SAAS,EAAE,MAAM,CAAC,CAAC;QACzD,IAAI,CAAC,cAAc,CAAC,KAAK,CAAC,WAAW,CAAC,YAAY,EAAE,QAAQ,CAAC,CAAC;QAC9D,QAAQ,CAAC,mBAAmB,CAAC,QAAQ,EAAE,IAAI,CAAC,YAAY,CAAC,CAAC;OAC1D;KACD,CAAC;IAEM,wBAAmB,GAAG,CAAC,KAAoB;MAClD,IAAI,KAAK,CAAC,GAAG,KAAK,QAAQ,EAAE;QAC3BA,qBAAW,EAAE,CAAC,IAAI,CAAC,mBAAmB,CAAC,OAAO,EAAE,IAAI,CAAC,mBAAmB,CAAC,CAAC;QAC1E,IAAI,CAAC,WAAW,EAAE,CAAC;OACnB;KACD,CAAC;IAEM,iBAAY,GAAG,CAAC,EAAW;MAClC,EAAE,CAAC,gBAAgB,CAAC,WAAW,EAAE,IAAI,CAAC,uBAAuB,CAAC,CAAC;MAC/D,EAAE,CAAC,gBAAgB,CAAC,OAAO,EAAE,IAAI,CAAC,uBAAuB,CAAC,CAAC;MAC3D,EAAE,CAAC,gBAAgB,CAAC,UAAU,EAAE,IAAI,CAAC,uBAAuB,CAAC,CAAC;MAC9D,EAAE,CAAC,gBAAgB,CAAC,MAAM,EAAE,IAAI,CAAC,uBAAuB,CAAC,CAAC;KAC1D,CAAC;IAEM,oBAAe,GAAG,CAAC,EAAW;MACrC,EAAE,CAAC,mBAAmB,CAAC,WAAW,EAAE,IAAI,CAAC,uBAAuB,CAAC,CAAC;MAClE,EAAE,CAAC,mBAAmB,CAAC,OAAO,EAAE,IAAI,CAAC,uBAAuB,CAAC,CAAC;MAC9D,EAAE,CAAC,mBAAmB,CAAC,UAAU,EAAE,IAAI,CAAC,uBAAuB,CAAC,CAAC;MACjE,EAAE,CAAC,mBAAmB,CAAC,MAAM,EAAE,IAAI,CAAC,uBAAuB,CAAC,CAAC;KAC7D,CAAC;IAEM,oBAAe,GAAG,CAAC,EAAW;MACrC,IAAI,CAAC,eAAe,CAAC,EAAE,CAAC,CAAC;MACzB,IAAI,CAAC,YAAY,CAAC,EAAE,CAAC,CAAC;KACtB,CAAC;IAEM,qBAAgB,GAAG,CAAC,EAAsB;MACjD,IAAI,EAAE,EAAmC;QACxC,IAAI,CAAC,eAAe,GAAG,EAAE,CAAC,sBAA4C,CAAC;QACvE,IAAI,IAAI,CAAC,eAAe,EAAmC;UAC1D,IAAI,CAAC,eAAe,CAAC,IAAI,CAAC,eAAe,CAAC,CAAC;SAC3C;OACD;KACD,CAAC;IAEM,wBAAmB,GAAG,CAAC,EAAwB;MACtD,IAAI,CAAC,cAAc,GAAG,EAAE,CAAC;MACzB,IAAI,IAAI,CAAC,cAAc,EAAmC;QACzD,IAAI,CAAC,eAAe,CAAC,IAAI,CAAC,cAAc,CAAC,CAAC;OAC1C;KACD,CAAC;IA8EM,mBAAc,GAAG,CAAC,CAAC;IAGnB,4BAAuB,GAAG;MACjC,IAAI,CAAC,cAAc,EAAE,CAAC;MACtB,IAAI,CAAC,iBAAiB,EAAE,CAAC;KACzB,CAAC;IAEM,4BAAuB,GAAG;MACjC,IAAI,CAAC,cAAc,EAAE,CAAC;MACtB,IAAI,CAAC,iBAAiB,EAAE,CAAC;KACzB,CAAC;IAEM,sBAAiB,GAAG;MAC3B,YAAY,CAAC,IAAI,CAAC,gBAAgB,CAAC,CAAC;MACpC,IAAI,CAAC,gBAAgB,GAAG,UAAU,CAAC;QAClC,YAAY,CAAC,IAAI,CAAC,gBAAgB,CAAC,CAAC;QACpC,IAAI,IAAI,CAAC,cAAc,GAAG,CAAC,EAAE;UAC5B,IAAI,CAAC,WAAW,EAAE,CAAC;SACnB;aAAM;UACN,IAAI,CAAC,WAAW,EAAE,CAAC;SACnB;OACD,EAAE,GAAG,CAAC,CAAC;KACR,CAAC;kBApEkC,KAAK;;;iBAeT;MAC/B,MAAM,EAAE,KAAK;MACb,GAAG,EAAEC,eAAK,EAAE;MACZ,MAAM,EAAE,EAAE;KACV;;EAlDM,MAAM;IACZC,qBAAe,CAAC;MACf,IAAI,CAAC,YAAY,EAAE,CAAC;MACpBA,qBAAe,CAAC,IAAI,CAAC,YAAY,EAAE,GAAG,CAAC,CAAC;KACxC,EAAE,GAAG,CAAC,CAAC;IACR,QACCC,QAACC,UAAI,IAAC,GAAG,EAAE,IAAI,CAAC,gBAAgB,IAC9B,IAAI,CAAC,KAAK,CAAC,MAAM,KAAK,EAAE,KACxBD,uBACC,KAAK,EAAE;QACN,cAAc,EAAE,IAAI,CAAC,KAAK,CAAC,MAAM,KAAK,KAAK;QAC3C,YAAY,EAAE,IAAI,CAAC,KAAK,CAAC,MAAM,KAAK,OAAO;QAC3C,WAAW,EAAE,IAAI,CAAC,KAAK,CAAC,MAAM,KAAK,QAAQ;QAC3C,aAAa,EAAE,IAAI,CAAC,KAAK,CAAC,MAAM,KAAK,MAAM;OAC3C,EACD,EAAE,EAAE,IAAI,CAAC,KAAK,CAAC,GAAG,EAClB,GAAG,EAAE,IAAI,CAAC,mBAAmB,EAC7B,MAAM,EAAE;QACP,eAAe,EAAE,MAAM;QACvB,KAAK,EAAE,MAAM;OACb,EACD,MAAM,EAAE,IAAI,CAAC,KAAK,CAAC,MAAM,GACb,CACb,CACK,EACN;GACF;EA8BM,aAAa,CAAC,KAAiB;IACrCE,gCAAqB,CAAC,IAAI,EAAE,QAAQ,EAAE,KAAK,CAAC,CAAC;GAC7C;EAMM,UAAU,CAAC,KAAc;IAC/BC,2BAAW,CAAC,IAAI,EAAE,KAAK,EAAE,KAAK,CAAC,CAAC;GAChC;EAMM,aAAa,CAAC,KAAc;IAClCA,2BAAW,CAAC,IAAI,EAAE,QAAQ,EAAE,KAAK,CAAC,CAAC;GACnC;EA8BM,iBAAiB;IACvB,IAAI,CAAC,aAAa,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC;IAChC,IAAI,CAAC,UAAU,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;IAC1B,IAAI,CAAC,aAAa,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC;GAChC;EAKM,oBAAoB;IAC1B,IAAI,IAAI,CAAC,eAAe,EAAmC;MAC1D,IAAI,CAAC,eAAe,CAAC,IAAI,CAAC,eAAe,CAAC,CAAC;KAC3C;IACD,IAAI,IAAI,CAAC,cAAc,EAAmC;MACzD,IAAI,CAAC,eAAe,CAAC,IAAI,CAAC,cAAc,CAAC,CAAC;KAC1C;GACD;;;;;;;;;;;;;","names":["getDocument","nonce","smartSetTimeout","h","Host","watchTooltipAlignment","watchString"],"sources":["./src/components/tooltip/style.sass?tag=kol-tooltip&mode=default","./src/components/tooltip/component.tsx"],"sourcesContent":["/*\n// @import ../style\n\nkol-badge,\n.tooltip /* fix sass formatter */\n\tfont-size: 1rem\n\tposition: fixed\n\t\t// position: absolute\n\t\t// position: relative\n\tanimation-name: fadeInOpacity\n\tanimation-iteration-count: 1\n\tanimation-timing-function: ease-in\n\tanimation-duration: .5s\n\tdisplay: none\n\tz-index: 1000\n\tmax-width: 300px\n\tbox-shadow: 0 0 0.15rem rgba(255,255,255,0.8)\n\n\t&::after\n\t\tcontent: \" \"\n\t\tposition: absolute\n\t\tborder-style: solid\n\t\tborder-width: 5px\n\n\t&.arrow-left\n\t\t&::after\n\t\t\tmargin-top: -5px\n\t\t\ttop: 50%\n\t\t\tright: 100%\n\t\t\tborder-color: transparent black transparent transparent\n\n\t&.arrow-right\n\t\t&::after\n\t\t\tmargin-top: -5px\n\t\t\ttop: 50%\n\t\t\tleft: 100%\n\t\t\tborder-color: transparent transparent transparent black\n\n\t&.arrow-top\n\t\t&::after\n\t\t\tmargin-left: -5px\n\t\t\tleft: 50%\n\t\t\tbottom: 100%\n\t\t\tborder-color: transparent transparent black transparent\n\n\t&.arrow-bottom\n\t\t&::after\n\t\t\tmargin-left: -5px\n\t\t\tleft: 50%\n\t\t\ttop: 100%\n\t\t\tborder-color: black transparent transparent transparent\n\n\t// &::before\n\t// content: ''\n\t// display: inline-block\n\t// vertical-align: middle\n\t// -webkit-transform: rotate(360deg)\n\t// border-style: solid\n\t// border-width: .5rem .5rem .5rem 0\n\t// border-color: transparent black transparent transparent\n\n@keyframes fadeInOpacity\n\t0%\n\t\topacity: 0\n\n\t100%\n\t\topacity: 1\n","import { Component, h, Host, JSX, Prop, State, Watch } from '@stencil/core';\n\nimport { Generic } from '@a11y-ui/core';\nimport { watchTooltipAlignment } from '../../types/button-link';\nimport { Alignment } from '../../types/props/alignment';\nimport { getDocument, nonce } from '../../utils/dev.utils';\nimport { watchString } from '../../utils/prop.validators';\nimport { smartSetTimeout } from '../../utils/reuse';\n\n/**\n * API\n */\ntype RequiredProps = {\n\tid: string;\n\tlabel: string;\n};\ntype OptionalProps = {\n\talign: Alignment;\n};\nexport type Props = Generic.Element.Members<RequiredProps, OptionalProps>;\n\ntype RequiredStates = RequiredProps & OptionalProps;\ntype OptionalStates = unknown;\nexport type States = Generic.Element.Members<RequiredStates, OptionalStates>;\n\n@Component({\n\ttag: 'kol-tooltip',\n\tstyleUrls: {\n\t\tdefault: './style.sass',\n\t},\n\tshadow: false,\n})\nexport class KolTooltip implements Generic.Element.ComponentApi<RequiredProps, OptionalProps, RequiredStates, OptionalStates> {\n\tprivate previousSibling?: HTMLElement | null;\n\tprivate tooltipElement?: HTMLKolBadgeElement;\n\n\tprivate alignTooltip = (): void => {\n\t\t// getBoundingClientRect is not defined in test suite\n\t\tif (process.env.NODE_ENV !== 'test') {\n\t\t\tif (this.previousSibling /* SSR instanceof HTMLElement */) {\n\t\t\t\tconst clientRect = this.previousSibling.getBoundingClientRect();\n\t\t\t\tif (this.tooltipElement /* SSR instanceof HTMLElement */) {\n\t\t\t\t\tswitch (this.state._align) {\n\t\t\t\t\t\tcase 'top':\n\t\t\t\t\t\tcase 'bottom':\n\t\t\t\t\t\t\tthis.tooltipElement.style.left = `${clientRect.left + this.previousSibling.offsetWidth / 2 - this.tooltipElement.offsetWidth / 2}px`;\n\t\t\t\t\t\t\tbreak;\n\t\t\t\t\t\tcase 'left':\n\t\t\t\t\t\tcase 'right':\n\t\t\t\t\t\tdefault:\n\t\t\t\t\t\t\tthis.tooltipElement.style.top = `${clientRect.top + clientRect.height / 2 - this.tooltipElement.offsetHeight / 2}px`;\n\t\t\t\t\t}\n\t\t\t\t\tswitch (this.state._align) {\n\t\t\t\t\t\tcase 'left':\n\t\t\t\t\t\t\tthis.tooltipElement.style.left = `calc(${clientRect.left - this.tooltipElement.offsetWidth}px - 0.5em)`;\n\t\t\t\t\t\t\tbreak;\n\t\t\t\t\t\tcase 'right':\n\t\t\t\t\t\t\tthis.tooltipElement.style.left = `calc(${clientRect.right}px + 0.5em)`;\n\t\t\t\t\t\t\tbreak;\n\t\t\t\t\t\tcase 'bottom':\n\t\t\t\t\t\t\tthis.tooltipElement.style.top = `calc(${clientRect.bottom}px + 0.5em)`;\n\t\t\t\t\t\t\tbreak;\n\t\t\t\t\t\tcase 'top':\n\t\t\t\t\t\tdefault:\n\t\t\t\t\t\t\tthis.tooltipElement.style.top = `calc(${clientRect.top - this.tooltipElement.offsetHeight}px - 0.5em)`;\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t};\n\n\tprivate showTooltip = (): void => {\n\t\tif (this.tooltipElement /* SSR instanceof HTMLElement */) {\n\t\t\tthis.tooltipElement.style.setProperty('display', 'block');\n\t\t\tgetDocument().body.addEventListener('keyup', this.hideTooltipByEscape);\n\t\t\tthis.alignTooltip();\n\t\t\tthis.tooltipElement.style.setProperty('visibility', 'visible');\n\t\t\tdocument.addEventListener('scroll', this.alignTooltip);\n\t\t}\n\t};\n\n\tprivate hideTooltip = (): void => {\n\t\tif (this.tooltipElement /* SSR instanceof HTMLElement */) {\n\t\t\tthis.tooltipElement.style.setProperty('display', 'none');\n\t\t\tthis.tooltipElement.style.setProperty('visibility', 'hidden');\n\t\t\tdocument.removeEventListener('scroll', this.alignTooltip);\n\t\t}\n\t};\n\n\tprivate hideTooltipByEscape = (event: KeyboardEvent): void => {\n\t\tif (event.key === 'Escape') {\n\t\t\tgetDocument().body.removeEventListener('keyup', this.hideTooltipByEscape);\n\t\t\tthis.hideTooltip();\n\t\t}\n\t};\n\n\tprivate addListeners = (el: Element): void => {\n\t\tel.addEventListener('mouseover', this.incrementOverFocusCount);\n\t\tel.addEventListener('focus', this.incrementOverFocusCount);\n\t\tel.addEventListener('mouseout', this.decrementOverFocusCount);\n\t\tel.addEventListener('blur', this.decrementOverFocusCount);\n\t};\n\n\tprivate removeListeners = (el: Element): void => {\n\t\tel.removeEventListener('mouseover', this.incrementOverFocusCount);\n\t\tel.removeEventListener('focus', this.incrementOverFocusCount);\n\t\tel.removeEventListener('mouseout', this.decrementOverFocusCount);\n\t\tel.removeEventListener('blur', this.decrementOverFocusCount);\n\t};\n\n\tprivate resyncListeners = (el: Element): void => {\n\t\tthis.removeListeners(el);\n\t\tthis.addListeners(el);\n\t};\n\n\tprivate catchHostElement = (el: HTMLElement | null): void => {\n\t\tif (el /* SSR instanceof HTMLElement */) {\n\t\t\tthis.previousSibling = el.previousElementSibling as HTMLElement | null;\n\t\t\tif (this.previousSibling /* SSR instanceof HTMLElement */) {\n\t\t\t\tthis.resyncListeners(this.previousSibling);\n\t\t\t}\n\t\t}\n\t};\n\n\tprivate catchTooltipElement = (el?: HTMLKolBadgeElement): void => {\n\t\tthis.tooltipElement = el;\n\t\tif (this.tooltipElement /* SSR instanceof HTMLElement */) {\n\t\t\tthis.resyncListeners(this.tooltipElement);\n\t\t}\n\t};\n\n\tpublic render(): JSX.Element {\n\t\tsmartSetTimeout(() => {\n\t\t\tthis.alignTooltip();\n\t\t\tsmartSetTimeout(this.alignTooltip, 750);\n\t\t}, 250);\n\t\treturn (\n\t\t\t<Host ref={this.catchHostElement}>\n\t\t\t\t{this.state._label !== '' && (\n\t\t\t\t\t<kol-badge\n\t\t\t\t\t\tclass={{\n\t\t\t\t\t\t\t'arrow-bottom': this.state._align === 'top',\n\t\t\t\t\t\t\t'arrow-left': this.state._align === 'right',\n\t\t\t\t\t\t\t'arrow-top': this.state._align === 'bottom',\n\t\t\t\t\t\t\t'arrow-right': this.state._align === 'left',\n\t\t\t\t\t\t}}\n\t\t\t\t\t\tid={this.state._id}\n\t\t\t\t\t\tref={this.catchTooltipElement}\n\t\t\t\t\t\t_color={{\n\t\t\t\t\t\t\tbackgroundColor: '#333',\n\t\t\t\t\t\t\tcolor: '#ddd',\n\t\t\t\t\t\t}}\n\t\t\t\t\t\t_label={this.state._label}\n\t\t\t\t\t></kol-badge>\n\t\t\t\t)}\n\t\t\t</Host>\n\t\t);\n\t}\n\n\t/**\n\t * Gibt an, ob der Tooltip oben, rechts, unten oder links angezeigt werden soll.\n\t */\n\t@Prop() public _align?: Alignment = 'top';\n\n\t/**\n\t * Gibt die ID an, wenn z.B. Aria-Labelledby (Link) verwendet wird.\n\t */\n\t@Prop() public _id!: string;\n\n\t/**\n\t * Das Label gibt an, welcher Text in dem Tooltip beim Fokussieren oder Maus-drüberfahren angezeigt wird.\n\t */\n\t@Prop() public _label!: string;\n\n\t/**\n\t * @see: components/abbr/component.tsx (@State)\n\t */\n\t@State() public state: States = {\n\t\t_align: 'top',\n\t\t_id: nonce(),\n\t\t_label: '',\n\t};\n\n\t/**\n\t * @see: components/abbr/component.tsx (@Watch)\n\t */\n\t@Watch('_align')\n\tpublic validateAlign(value?: Alignment): void {\n\t\twatchTooltipAlignment(this, '_align', value);\n\t}\n\n\t/**\n\t * @see: components/abbr/component.tsx (@Watch)\n\t */\n\t@Watch('_id')\n\tpublic validateId(value?: string): void {\n\t\twatchString(this, '_id', value);\n\t}\n\n\t/**\n\t * @see: components/abbr/component.tsx (@Watch)\n\t */\n\t@Watch('_label')\n\tpublic validateLabel(value?: string): void {\n\t\twatchString(this, '_label', value);\n\t}\n\n\tprivate overFocusCount = 0;\n\tprivate overFocusTimeout?: ReturnType<typeof setTimeout>;\n\n\tprivate incrementOverFocusCount = (): void => {\n\t\tthis.overFocusCount++;\n\t\tthis.showOrHideTooltip();\n\t};\n\n\tprivate decrementOverFocusCount = (): void => {\n\t\tthis.overFocusCount--;\n\t\tthis.showOrHideTooltip();\n\t};\n\n\tprivate showOrHideTooltip = (): void => {\n\t\tclearTimeout(this.overFocusTimeout);\n\t\tthis.overFocusTimeout = setTimeout(() => {\n\t\t\tclearTimeout(this.overFocusTimeout);\n\t\t\tif (this.overFocusCount > 0) {\n\t\t\t\tthis.showTooltip();\n\t\t\t} else {\n\t\t\t\tthis.hideTooltip();\n\t\t\t}\n\t\t}, 250);\n\t};\n\n\t/**\n\t * @see: components/abbr/component.tsx (componentWillLoad)\n\t */\n\tpublic componentWillLoad(): void {\n\t\tthis.validateAlign(this._align);\n\t\tthis.validateId(this._id);\n\t\tthis.validateLabel(this._label);\n\t}\n\n\t/**\n\t * @see: components/abbr/component.tsx (componentDidLoad)\n\t */\n\tpublic disconnectedCallback(): void {\n\t\tif (this.previousSibling /* SSR instanceof HTMLElement */) {\n\t\t\tthis.removeListeners(this.previousSibling);\n\t\t}\n\t\tif (this.tooltipElement /* SSR instanceof HTMLElement */) {\n\t\t\tthis.removeListeners(this.tooltipElement);\n\t\t}\n\t}\n}\n"],"version":3}
@@ -1,4 +1,4 @@
1
1
  /*!
2
2
  * KoliBri - The accessible HTML-Standard
3
3
  */
4
- "use strict";const a11y_tipps=require("./a11y.tipps-e1770acf.js"),prop_validators=require("./prop.validators-9f8acb6e.js"),validator=require("./validator-6f53d4a2.js"),syncAriaLabelBeforePatch=(a,e,r,i)=>{const t=e.has("_ariaLabel")?e.get("_ariaLabel"):r.state._ariaLabel;if("string"==typeof t){const a=e.has("_label")?e.get("_label"):r.state._label;!1===validator.isEmptyOrPrefixOf(a,t)&&("_ariaLabel"===i?e.set("_label",t):e.set("_ariaLabel",a),a11y_tipps.a11yHint("Das abweichende Aria-Label am Schalter ist nicht barrierefrei. Ein abweichendes Aria-Label muss aus Gründern der Barrierefreiheit für die Sprachsteuerung mit dem Label-Text beginnen."))}},validateAriaLabel=(a,e)=>{prop_validators.watchString(a,"_ariaLabel",e,{hooks:{beforePatch:syncAriaLabelBeforePatch}})},validateLabel=(a,e)=>{prop_validators.watchString(a,"_label",e,{hooks:{beforePatch:syncAriaLabelBeforePatch},required:!0})};exports.validateAriaLabel=validateAriaLabel,exports.validateLabel=validateLabel;
4
+ "use strict";const a11y_tipps=require("./a11y.tipps-e1770acf.js"),prop_validators=require("./prop.validators-9f8acb6e.js"),validator=require("./validator-953ea58f.js"),syncAriaLabelBeforePatch=(a,e,r,i)=>{const t=e.has("_ariaLabel")?e.get("_ariaLabel"):r.state._ariaLabel;if("string"==typeof t){const a=e.has("_label")?e.get("_label"):r.state._label;!1===validator.isEmptyOrPrefixOf(a,t)&&("_ariaLabel"===i?e.set("_label",t):e.set("_ariaLabel",a),a11y_tipps.a11yHint("Das abweichende Aria-Label am Schalter ist nicht barrierefrei. Ein abweichendes Aria-Label muss aus Gründern der Barrierefreiheit für die Sprachsteuerung mit dem Label-Text beginnen."))}},validateAriaLabel=(a,e)=>{prop_validators.watchString(a,"_ariaLabel",e,{hooks:{beforePatch:syncAriaLabelBeforePatch}})},validateLabel=(a,e)=>{prop_validators.watchString(a,"_label",e,{hooks:{beforePatch:syncAriaLabelBeforePatch},required:!0})};exports.validateAriaLabel=validateAriaLabel,exports.validateLabel=validateLabel;
@@ -1 +1 @@
1
- {"file":"label-88419619.js","mappings":";;;;;;;;;AASA,MAAM,wBAAwB,GAA2C,CAAC,UAAU,EAAE,SAAS,EAAE,SAAoC,EAAE,GAAG;EACzI,MAAM,SAAS,GAAuB,SAAS,CAAC,GAAG,CAAC,YAAY,CAAC,GAAI,SAAS,CAAC,GAAG,CAAC,YAAY,CAAY,GAAI,SAAS,CAAC,KAAK,CAAC,UAAqB,CAAC;EACrJ,IAAI,OAAO,SAAS,KAAK,QAAQ,EAAE;IAClC,MAAM,KAAK,GAAuB,SAAS,CAAC,GAAG,CAAC,QAAQ,CAAC,GAAI,SAAS,CAAC,GAAG,CAAC,QAAQ,CAAY,GAAI,SAAS,CAAC,KAAK,CAAC,MAAiB,CAAC;IACrI,IAAIA,2BAAiB,CAAC,KAAK,EAAE,SAAS,CAAC,KAAK,KAAK,EAAE;MAClD,IAAI,GAAG,KAAK,YAAY,EAAE;QACzB,SAAS,CAAC,GAAG,CAAC,QAAQ,EAAE,SAAS,CAAC,CAAC;OAEnC;WAAM;QACN,SAAS,CAAC,GAAG,CAAC,YAAY,EAAE,KAAK,CAAC,CAAC;OAEnC;MACDC,mBAAQ,CACP,wLAAwL,CACxL,CAAC;KACF;GACD;AACF,CAAC,CAAC;MAEW,iBAAiB,GAAG,CAAC,SAAoC,EAAE,KAAc;EACrFC,2BAAW,CAAC,SAAS,EAAE,YAAY,EAAE,KAAK,EAAE;IAC3C,KAAK,EAAE;MACN,WAAW,EAAE,wBAAwB;KACrC;GACD,CAAC,CAAC;AACJ,EAAE;MAEW,aAAa,GAAG,CAAC,SAAoC,EAAE,KAAc;EACjFA,2BAAW,CAAC,SAAS,EAAE,QAAQ,EAAE,KAAK,EAAE;IACvC,KAAK,EAAE;MACN,WAAW,EAAE,wBAAwB;KACrC;IACD,QAAQ,EAAE,IAAI;GACd,CAAC,CAAC;AACJ;;;;;","names":["isEmptyOrPrefixOf","a11yHint","watchString"],"sources":["./src/utils/validators/label.ts"],"sourcesContent":["import { Generic } from '@a11y-ui/core';\nimport { a11yHint } from '../a11y.tipps';\nimport { watchString } from '../prop.validators';\nimport { isEmptyOrPrefixOf } from '../validator';\n\n/**\n * Ein abweichendes Aria-Label muss aus Gründern der Barrierefreiheit für\n * die Sprachsteuerung mit dem Label-Text beginnen.\n */\nconst syncAriaLabelBeforePatch: Generic.Element.NextStateHooksCallback = (_nextValue, nextState, component: Generic.Element.Component, key): void => {\n\tconst ariaLabel: string | undefined = nextState.has('_ariaLabel') ? (nextState.get('_ariaLabel') as string) : (component.state._ariaLabel as string);\n\tif (typeof ariaLabel === 'string') {\n\t\tconst label: string | undefined = nextState.has('_label') ? (nextState.get('_label') as string) : (component.state._label as string);\n\t\tif (isEmptyOrPrefixOf(label, ariaLabel) === false) {\n\t\t\tif (key === '_ariaLabel') {\n\t\t\t\tnextState.set('_label', ariaLabel);\n\t\t\t\t// smartSetTimeout(() => ((component as Generic.Element.Component & { _label: string })._label = ariaLabel), 50);\n\t\t\t} else {\n\t\t\t\tnextState.set('_ariaLabel', label);\n\t\t\t\t// smartSetTimeout(() => ((component as Generic.Element.Component & { _ariaLabel: string })._ariaLabel = label), 50);\n\t\t\t}\n\t\t\ta11yHint(\n\t\t\t\t`Das abweichende Aria-Label am Schalter ist nicht barrierefrei. Ein abweichendes Aria-Label muss aus Gründern der Barrierefreiheit für die Sprachsteuerung mit dem Label-Text beginnen.`\n\t\t\t);\n\t\t}\n\t}\n};\n\nexport const validateAriaLabel = (component: Generic.Element.Component, value?: string): void => {\n\twatchString(component, '_ariaLabel', value, {\n\t\thooks: {\n\t\t\tbeforePatch: syncAriaLabelBeforePatch,\n\t\t},\n\t});\n};\n\nexport const validateLabel = (component: Generic.Element.Component, value?: string): void => {\n\twatchString(component, '_label', value, {\n\t\thooks: {\n\t\t\tbeforePatch: syncAriaLabelBeforePatch,\n\t\t},\n\t\trequired: true,\n\t});\n};\n"],"version":3}
1
+ {"file":"label-370414db.js","mappings":";;;;;;;;;AASA,MAAM,wBAAwB,GAA2C,CAAC,UAAU,EAAE,SAAS,EAAE,SAAoC,EAAE,GAAG;EACzI,MAAM,SAAS,GAAuB,SAAS,CAAC,GAAG,CAAC,YAAY,CAAC,GAAI,SAAS,CAAC,GAAG,CAAC,YAAY,CAAY,GAAI,SAAS,CAAC,KAAK,CAAC,UAAqB,CAAC;EACrJ,IAAI,OAAO,SAAS,KAAK,QAAQ,EAAE;IAClC,MAAM,KAAK,GAAuB,SAAS,CAAC,GAAG,CAAC,QAAQ,CAAC,GAAI,SAAS,CAAC,GAAG,CAAC,QAAQ,CAAY,GAAI,SAAS,CAAC,KAAK,CAAC,MAAiB,CAAC;IACrI,IAAIA,2BAAiB,CAAC,KAAK,EAAE,SAAS,CAAC,KAAK,KAAK,EAAE;MAClD,IAAI,GAAG,KAAK,YAAY,EAAE;QACzB,SAAS,CAAC,GAAG,CAAC,QAAQ,EAAE,SAAS,CAAC,CAAC;OAEnC;WAAM;QACN,SAAS,CAAC,GAAG,CAAC,YAAY,EAAE,KAAK,CAAC,CAAC;OAEnC;MACDC,mBAAQ,CACP,wLAAwL,CACxL,CAAC;KACF;GACD;AACF,CAAC,CAAC;MAEW,iBAAiB,GAAG,CAAC,SAAoC,EAAE,KAAc;EACrFC,2BAAW,CAAC,SAAS,EAAE,YAAY,EAAE,KAAK,EAAE;IAC3C,KAAK,EAAE;MACN,WAAW,EAAE,wBAAwB;KACrC;GACD,CAAC,CAAC;AACJ,EAAE;MAEW,aAAa,GAAG,CAAC,SAAoC,EAAE,KAAc;EACjFA,2BAAW,CAAC,SAAS,EAAE,QAAQ,EAAE,KAAK,EAAE;IACvC,KAAK,EAAE;MACN,WAAW,EAAE,wBAAwB;KACrC;IACD,QAAQ,EAAE,IAAI;GACd,CAAC,CAAC;AACJ;;;;;","names":["isEmptyOrPrefixOf","a11yHint","watchString"],"sources":["./src/utils/validators/label.ts"],"sourcesContent":["import { Generic } from '@a11y-ui/core';\nimport { a11yHint } from '../a11y.tipps';\nimport { watchString } from '../prop.validators';\nimport { isEmptyOrPrefixOf } from '../validator';\n\n/**\n * Ein abweichendes Aria-Label muss aus Gründern der Barrierefreiheit für\n * die Sprachsteuerung mit dem Label-Text beginnen.\n */\nconst syncAriaLabelBeforePatch: Generic.Element.NextStateHooksCallback = (_nextValue, nextState, component: Generic.Element.Component, key): void => {\n\tconst ariaLabel: string | undefined = nextState.has('_ariaLabel') ? (nextState.get('_ariaLabel') as string) : (component.state._ariaLabel as string);\n\tif (typeof ariaLabel === 'string') {\n\t\tconst label: string | undefined = nextState.has('_label') ? (nextState.get('_label') as string) : (component.state._label as string);\n\t\tif (isEmptyOrPrefixOf(label, ariaLabel) === false) {\n\t\t\tif (key === '_ariaLabel') {\n\t\t\t\tnextState.set('_label', ariaLabel);\n\t\t\t\t// smartSetTimeout(() => ((component as Generic.Element.Component & { _label: string })._label = ariaLabel), 50);\n\t\t\t} else {\n\t\t\t\tnextState.set('_ariaLabel', label);\n\t\t\t\t// smartSetTimeout(() => ((component as Generic.Element.Component & { _ariaLabel: string })._ariaLabel = label), 50);\n\t\t\t}\n\t\t\ta11yHint(\n\t\t\t\t`Das abweichende Aria-Label am Schalter ist nicht barrierefrei. Ein abweichendes Aria-Label muss aus Gründern der Barrierefreiheit für die Sprachsteuerung mit dem Label-Text beginnen.`\n\t\t\t);\n\t\t}\n\t}\n};\n\nexport const validateAriaLabel = (component: Generic.Element.Component, value?: string): void => {\n\twatchString(component, '_ariaLabel', value, {\n\t\thooks: {\n\t\t\tbeforePatch: syncAriaLabelBeforePatch,\n\t\t},\n\t});\n};\n\nexport const validateLabel = (component: Generic.Element.Component, value?: string): void => {\n\twatchString(component, '_label', value, {\n\t\thooks: {\n\t\t\tbeforePatch: syncAriaLabelBeforePatch,\n\t\t},\n\t\trequired: true,\n\t});\n};\n"],"version":3}
@@ -0,0 +1,4 @@
1
+ /*!
2
+ * KoliBri - The accessible HTML-Standard
3
+ */
4
+ "use strict";const validator=require("./validator-953ea58f.js"),propergateFocus=(t,e)=>{validator.isObject(t)&&t&&(t.focus=t=>null==e?void 0:e.focus(t))},smartSetTimeout=(t,e)=>{const o=setTimeout((()=>{clearTimeout(o),t()}),e)};exports.propergateFocus=propergateFocus,exports.smartSetTimeout=smartSetTimeout;
@@ -0,0 +1 @@
1
+ {"file":"reuse-28825ead.js","mappings":";;;;;;;MAEa,eAAe,GAAG,CAA+C,IAAQ,EAAE,GAAO;EAC9F,IAAIA,kBAAQ,CAAC,IAAI,CAAC,IAAI,IAAI,EAAE;IAC3B,IAAI,CAAC,KAAK,GAAG,CAAC,GAAiB,KAAK,GAAG,aAAH,GAAG,uBAAH,GAAG,CAAE,KAAK,CAAC,GAAG,CAAC,CAAC;GACpD;AACF,EAAE;MAUW,eAAe,GAAG,CAAC,EAAc,EAAE,KAAc;EAC7D,MAAM,OAAO,GAAG,UAAU,CAAC;IAC1B,YAAY,CAAC,OAAO,CAAC,CAAC;IACtB,EAAE,EAAE,CAAC;GACL,EAAE,KAAK,CAAC,CAAC;AACX;;;;;","names":["isObject"],"sources":["./src/utils/reuse.ts"],"sourcesContent":["import { isObject } from './validator';\n\nexport const propergateFocus = <H extends HTMLElement, R extends HTMLElement>(host?: H, ref?: R) => {\n\tif (isObject(host) && host) {\n\t\thost.focus = (ops: FocusOptions) => ref?.focus(ops);\n\t}\n};\n\n/**\n * If you need a tiny setTimeout with clearTimeout, you can\n * use this compact implementation.\n *\n * @param cb Callback with the code to run\n * @param delay Timeout delay\n */\n// ts-prune-ignore-next\nexport const smartSetTimeout = (cb: () => void, delay?: number) => {\n\tconst timeout = setTimeout(() => {\n\t\tclearTimeout(timeout);\n\t\tcb();\n\t}, delay);\n};\n"],"version":3}
@@ -1,4 +1,4 @@
1
1
  /*!
2
2
  * KoliBri - The accessible HTML-Standard
3
3
  */
4
- "use strict";const a11y_tipps=require("./a11y.tipps-e1770acf.js"),prop_validators=require("./prop.validators-9f8acb6e.js"),validator=require("./validator-6f53d4a2.js"),mapCustomIcon=(t,o,i)=>{validator.isObject(i)?t[o]=i:validator.isString(i,1)&&(t[o]={icon:i})},mapIconProp2State=(t,o)=>{let i={};if(validator.isString(t,1))if("right"===o)i={right:{icon:t}};else i={left:{icon:t}};else"object"==typeof t&&null!==t&&(mapCustomIcon(i,"top",t.top),mapCustomIcon(i,"right",t.right),mapCustomIcon(i,"bottom",t.bottom),mapCustomIcon(i,"left",t.left));return i},beforePatchIcon=t=>{var o,i,e,a,n,r,l;if(null===(o=t.nextState)||void 0===o?void 0:o.has("_icon")){const o=null===(i=t.nextState)||void 0===i?void 0:i.get("_icon"),n=(null===(e=t.nextState)||void 0===e?void 0:e.get("_iconAlign"))||t.state._iconAlign;null===(a=t.nextState)||void 0===a||a.set("_icon",mapIconProp2State(o,n))}else if(null===(n=t.nextState)||void 0===n?void 0:n.has("_iconAlign")){const o=t.state._iconAlign;null===(r=t.nextState)||void 0===r||r.set("_icon",{[o]:void 0,[null===(l=t.nextState)||void 0===l?void 0:l.get("_iconAlign")]:t.state._icon[o]})}},isIcon=t=>"object"==typeof t&&null!==t&&(void 0===t.style||validator.isStyle(t.style))&&validator.isString(t.icon,1),validateIcon=(t,o)=>{prop_validators.objectObjectHandler(o,(()=>{try{o=prop_validators.parseJson(o)}catch(t){}prop_validators.watchValidator(t,"_icon",(t=>null===t||validator.isString(t,1)||"object"==typeof t&&null!==t&&(validator.isString(t.left,1)||isIcon(t.left)||validator.isString(t.right,1)||isIcon(t.right)||validator.isString(t.top,1)||isIcon(t.top)||validator.isString(t.bottom,1)||isIcon(t.bottom))),new Set(["KoliBriIcon"]),o,{hooks:{beforePatch:(o,i)=>{null===o&&i.set("_icon",{}),beforePatchIcon(t)}},required:!0})}))},watchIconAlign=(t,o)=>{a11y_tipps.deprecatedHint("Das Property _icon-align bzw. _iconAlign ist veraltet. Die Ausrichtung der Icon's kann jetzt direkt über das _icon-Property vorgenommen werden. (v1.1.10: https://public-ui.github.io/?path=/story/backlog-und-changelog--page)"),prop_validators.watchValidator(t,"_iconAlign",(t=>"left"===t||"right"===t),new Set(["Alignment {left, right, top, bottom}"]),o,{hooks:{beforePatch:()=>{beforePatchIcon(t)}}})},options={hooks:{afterPatch:t=>{-1!==t&&0!==t&&a11y_tipps.a11yHint("Don’t Use Tabindex Greater than 0: https://adrianroselli.com/2014/11/dont-use-tabindex-greater-than-0.html")}}},validateTabIndex=(t,o)=>{prop_validators.watchNumber(t,"_tabIndex",o,options)};exports.isIcon=isIcon,exports.validateIcon=validateIcon,exports.validateTabIndex=validateTabIndex,exports.watchIconAlign=watchIconAlign;
4
+ "use strict";const a11y_tipps=require("./a11y.tipps-e1770acf.js"),prop_validators=require("./prop.validators-9f8acb6e.js"),validator=require("./validator-953ea58f.js"),mapCustomIcon=(t,o,i)=>{validator.isObject(i)?t[o]=i:validator.isString(i,1)&&(t[o]={icon:i})},mapIconProp2State=(t,o)=>{let i={};if(validator.isString(t,1))if("right"===o)i={right:{icon:t}};else i={left:{icon:t}};else"object"==typeof t&&null!==t&&(mapCustomIcon(i,"top",t.top),mapCustomIcon(i,"right",t.right),mapCustomIcon(i,"bottom",t.bottom),mapCustomIcon(i,"left",t.left));return i},beforePatchIcon=t=>{var o,i,e,a,n,r,l;if(null===(o=t.nextState)||void 0===o?void 0:o.has("_icon")){const o=null===(i=t.nextState)||void 0===i?void 0:i.get("_icon"),n=(null===(e=t.nextState)||void 0===e?void 0:e.get("_iconAlign"))||t.state._iconAlign;null===(a=t.nextState)||void 0===a||a.set("_icon",mapIconProp2State(o,n))}else if(null===(n=t.nextState)||void 0===n?void 0:n.has("_iconAlign")){const o=t.state._iconAlign;null===(r=t.nextState)||void 0===r||r.set("_icon",{[o]:void 0,[null===(l=t.nextState)||void 0===l?void 0:l.get("_iconAlign")]:t.state._icon[o]})}},isIcon=t=>"object"==typeof t&&null!==t&&(void 0===t.style||validator.isStyle(t.style))&&validator.isString(t.icon,1),validateIcon=(t,o)=>{prop_validators.objectObjectHandler(o,(()=>{try{o=prop_validators.parseJson(o)}catch(t){}prop_validators.watchValidator(t,"_icon",(t=>null===t||validator.isString(t,1)||"object"==typeof t&&null!==t&&(validator.isString(t.left,1)||isIcon(t.left)||validator.isString(t.right,1)||isIcon(t.right)||validator.isString(t.top,1)||isIcon(t.top)||validator.isString(t.bottom,1)||isIcon(t.bottom))),new Set(["KoliBriIcon"]),o,{hooks:{beforePatch:(o,i)=>{null===o&&i.set("_icon",{}),beforePatchIcon(t)}},required:!0})}))},watchIconAlign=(t,o)=>{a11y_tipps.deprecatedHint("Das Property _icon-align bzw. _iconAlign ist veraltet. Die Ausrichtung der Icon's kann jetzt direkt über das _icon-Property vorgenommen werden. (v1.1.10: https://public-ui.github.io/?path=/story/backlog-und-changelog--page)"),prop_validators.watchValidator(t,"_iconAlign",(t=>"left"===t||"right"===t),new Set(["Alignment {left, right, top, bottom}"]),o,{hooks:{beforePatch:()=>{beforePatchIcon(t)}}})},options={hooks:{afterPatch:t=>{-1!==t&&0!==t&&a11y_tipps.a11yHint("Don’t Use Tabindex Greater than 0: https://adrianroselli.com/2014/11/dont-use-tabindex-greater-than-0.html")}}},validateTabIndex=(t,o)=>{prop_validators.watchNumber(t,"_tabIndex",o,options)};exports.isIcon=isIcon,exports.validateIcon=validateIcon,exports.validateTabIndex=validateTabIndex,exports.watchIconAlign=watchIconAlign;
@@ -1 +1 @@
1
- {"file":"tab-index-c69625a6.js","mappings":"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","names":["isObject","isString","isStyle","objectObjectHandler","parseJson","watchValidator","deprecatedHint","a11yHint","watchNumber"],"sources":["./src/utils/validators/icon.ts","./src/utils/validators/tab-index.ts"],"sourcesContent":["import { Generic } from '@a11y-ui/core';\nimport { ButtonStates } from '../../types/button-link';\nimport { AnyIconFontClass, KoliBriAllIcon, KoliBriCustomIcon, KoliBriIconProp, KoliBriIconState } from '../../types/icon';\nimport { Alignment } from '../../types/props/alignment';\nimport { deprecatedHint } from '../a11y.tipps';\nimport { objectObjectHandler, parseJson, watchValidator } from '../prop.validators';\nimport { isObject, isString, isStyle } from '../validator';\n\nconst mapCustomIcon = (state: KoliBriIconState, alignment: Alignment | 'top' | 'bottom', icon?: AnyIconFontClass | KoliBriCustomIcon) => {\n\tif (isObject(icon)) {\n\t\tstate[alignment] = icon as KoliBriCustomIcon;\n\t} else if (isString(icon, 1)) {\n\t\tstate[alignment] = {\n\t\t\ticon: icon as AnyIconFontClass,\n\t\t};\n\t}\n};\n\nexport const mapIconProp2State = (icon: KoliBriIconProp, iconAlign?: Alignment): KoliBriIconState => {\n\tlet state: KoliBriIconState = {};\n\tif (isString(icon, 1)) {\n\t\tswitch (iconAlign) {\n\t\t\tcase 'right':\n\t\t\t\tstate = {\n\t\t\t\t\tright: {\n\t\t\t\t\t\ticon: icon as AnyIconFontClass,\n\t\t\t\t\t},\n\t\t\t\t};\n\t\t\t\tbreak;\n\t\t\tdefault:\n\t\t\t\tstate = {\n\t\t\t\t\tleft: {\n\t\t\t\t\t\ticon: icon as AnyIconFontClass,\n\t\t\t\t\t},\n\t\t\t\t};\n\t\t}\n\t} else if (typeof icon === 'object' && icon !== null) {\n\t\tmapCustomIcon(state, 'top', icon.top);\n\t\tmapCustomIcon(state, 'right', icon.right);\n\t\tmapCustomIcon(state, 'bottom', icon.bottom);\n\t\tmapCustomIcon(state, 'left', icon.left);\n\t}\n\treturn state;\n};\n\nconst beforePatchIcon = (component: Generic.Element.Component): void => {\n\tif (component.nextState?.has('_icon')) {\n\t\tconst icon = component.nextState?.get('_icon') as KoliBriIconProp;\n\t\tconst iconAlign = (component.nextState?.get('_iconAlign') as Alignment) || (component.state as ButtonStates)._iconAlign;\n\t\tcomponent.nextState?.set('_icon', mapIconProp2State(icon, iconAlign));\n\t} else if (component.nextState?.has('_iconAlign')) {\n\t\tconst lastIconAlign = (component.state as ButtonStates)._iconAlign;\n\t\tcomponent.nextState?.set('_icon', {\n\t\t\t[lastIconAlign]: undefined,\n\t\t\t[component.nextState?.get('_iconAlign') as Alignment]: (component.state as ButtonStates)._icon[lastIconAlign],\n\t\t});\n\t}\n};\n\nexport const isIcon = (value?: unknown): boolean =>\n\ttypeof value === 'object' &&\n\tvalue !== null &&\n\t(typeof (value as KoliBriCustomIcon).style === 'undefined' || isStyle((value as KoliBriCustomIcon).style)) &&\n\tisString((value as KoliBriCustomIcon).icon, 1);\n\nexport const validateIcon = (component: Generic.Element.Component, value?: KoliBriIconProp): void => {\n\tobjectObjectHandler(value, () => {\n\t\ttry {\n\t\t\tvalue = parseJson<KoliBriIconProp>(value as string);\n\t\t} catch (e) {\n\t\t\t// value behält den ursprünglichen Wert\n\t\t}\n\t\twatchValidator(\n\t\t\tcomponent,\n\t\t\t'_icon',\n\t\t\t(value): boolean => {\n\t\t\t\treturn (\n\t\t\t\t\tvalue === null ||\n\t\t\t\t\tisString(value, 1) ||\n\t\t\t\t\t(typeof value === 'object' &&\n\t\t\t\t\t\tvalue !== null &&\n\t\t\t\t\t\t(isString((value as KoliBriAllIcon).left, 1) ||\n\t\t\t\t\t\t\tisIcon((value as KoliBriAllIcon).left) ||\n\t\t\t\t\t\t\tisString((value as KoliBriAllIcon).right, 1) ||\n\t\t\t\t\t\t\tisIcon((value as KoliBriAllIcon).right) ||\n\t\t\t\t\t\t\tisString((value as KoliBriAllIcon).top, 1) ||\n\t\t\t\t\t\t\tisIcon((value as KoliBriAllIcon).top) ||\n\t\t\t\t\t\t\tisString((value as KoliBriAllIcon).bottom, 1) ||\n\t\t\t\t\t\t\tisIcon((value as KoliBriAllIcon).bottom)))\n\t\t\t\t);\n\t\t\t},\n\t\t\tnew Set(['KoliBriIcon']),\n\t\t\tvalue,\n\t\t\t{\n\t\t\t\thooks: {\n\t\t\t\t\tbeforePatch: (nextValue: unknown, nextState: Map<string, unknown>) => {\n\t\t\t\t\t\tif (nextValue === null) {\n\t\t\t\t\t\t\tnextState.set('_icon', {});\n\t\t\t\t\t\t}\n\t\t\t\t\t\tbeforePatchIcon(component);\n\t\t\t\t\t},\n\t\t\t\t},\n\t\t\t\trequired: true,\n\t\t\t}\n\t\t);\n\t});\n};\n\nexport const watchIconAlign = (component: Generic.Element.Component, value?: Alignment): void => {\n\tdeprecatedHint(\n\t\t`Das Property _icon-align bzw. _iconAlign ist veraltet. Die Ausrichtung der Icon's kann jetzt direkt über das _icon-Property vorgenommen werden. (v1.1.10: https://public-ui.github.io/?path=/story/backlog-und-changelog--page)`\n\t);\n\twatchValidator(component, '_iconAlign', (value) => value === 'left' || value === 'right', new Set(['Alignment {left, right, top, bottom}']), value, {\n\t\thooks: {\n\t\t\tbeforePatch: () => {\n\t\t\t\tbeforePatchIcon(component);\n\t\t\t},\n\t\t},\n\t});\n};\n","import { Generic } from '@a11y-ui/core';\nimport { a11yHint } from '../a11y.tipps';\nimport { watchNumber, WatchNumberOptions } from '../prop.validators';\n\n/**\n * Accessibility hints\n * - https://adrianroselli.com/2014/11/dont-use-tabindex-greater-than-0.html\n */\n\nconst options: WatchNumberOptions = {\n\thooks: {\n\t\tafterPatch: (value) => {\n\t\t\tif (value !== -1 && value !== 0) {\n\t\t\t\ta11yHint(`Don’t Use Tabindex Greater than 0: https://adrianroselli.com/2014/11/dont-use-tabindex-greater-than-0.html`);\n\t\t\t}\n\t\t},\n\t},\n};\n\n/**\n * Diese Methode validiert das Property und setzt den State, wenn es valide ist.\n */\nexport const validateTabIndex = (component: Generic.Element.Component, value?: number): void => {\n\twatchNumber(component, '_tabIndex', value, options);\n};\n"],"version":3}
1
+ {"file":"tab-index-954dd1d8.js","mappings":";;;;;;;;;AAQA,MAAM,aAAa,GAAG,CAAC,KAAuB,EAAE,SAAuC,EAAE,IAA2C;EACnI,IAAIA,kBAAQ,CAAC,IAAI,CAAC,EAAE;IACnB,KAAK,CAAC,SAAS,CAAC,GAAG,IAAyB,CAAC;GAC7C;OAAM,IAAIC,kBAAQ,CAAC,IAAI,EAAE,CAAC,CAAC,EAAE;IAC7B,KAAK,CAAC,SAAS,CAAC,GAAG;MAClB,IAAI,EAAE,IAAwB;KAC9B,CAAC;GACF;AACF,CAAC,CAAC;AAEK,MAAM,iBAAiB,GAAG,CAAC,IAAqB,EAAE,SAAqB;EAC7E,IAAI,KAAK,GAAqB,EAAE,CAAC;EACjC,IAAIA,kBAAQ,CAAC,IAAI,EAAE,CAAC,CAAC,EAAE;IACtB,QAAQ,SAAS;MAChB,KAAK,OAAO;QACX,KAAK,GAAG;UACP,KAAK,EAAE;YACN,IAAI,EAAE,IAAwB;WAC9B;SACD,CAAC;QACF,MAAM;MACP;QACC,KAAK,GAAG;UACP,IAAI,EAAE;YACL,IAAI,EAAE,IAAwB;WAC9B;SACD,CAAC;KACH;GACD;OAAM,IAAI,OAAO,IAAI,KAAK,QAAQ,IAAI,IAAI,KAAK,IAAI,EAAE;IACrD,aAAa,CAAC,KAAK,EAAE,KAAK,EAAE,IAAI,CAAC,GAAG,CAAC,CAAC;IACtC,aAAa,CAAC,KAAK,EAAE,OAAO,EAAE,IAAI,CAAC,KAAK,CAAC,CAAC;IAC1C,aAAa,CAAC,KAAK,EAAE,QAAQ,EAAE,IAAI,CAAC,MAAM,CAAC,CAAC;IAC5C,aAAa,CAAC,KAAK,EAAE,MAAM,EAAE,IAAI,CAAC,IAAI,CAAC,CAAC;GACxC;EACD,OAAO,KAAK,CAAC;AACd,CAAC,CAAC;AAEF,MAAM,eAAe,GAAG,CAAC,SAAoC;;EAC5D,IAAI,MAAA,SAAS,CAAC,SAAS,0CAAE,GAAG,CAAC,OAAO,CAAC,EAAE;IACtC,MAAM,IAAI,GAAG,MAAA,SAAS,CAAC,SAAS,0CAAE,GAAG,CAAC,OAAO,CAAoB,CAAC;IAClE,MAAM,SAAS,GAAG,CAAC,MAAA,SAAS,CAAC,SAAS,0CAAE,GAAG,CAAC,YAAY,CAAe,KAAK,SAAS,CAAC,KAAsB,CAAC,UAAU,CAAC;IACxH,MAAA,SAAS,CAAC,SAAS,0CAAE,GAAG,CAAC,OAAO,EAAE,iBAAiB,CAAC,IAAI,EAAE,SAAS,CAAC,CAAC,CAAC;GACtE;OAAM,IAAI,MAAA,SAAS,CAAC,SAAS,0CAAE,GAAG,CAAC,YAAY,CAAC,EAAE;IAClD,MAAM,aAAa,GAAI,SAAS,CAAC,KAAsB,CAAC,UAAU,CAAC;IACnE,MAAA,SAAS,CAAC,SAAS,0CAAE,GAAG,CAAC,OAAO,EAAE;MACjC,CAAC,aAAa,GAAG,SAAS;MAC1B,CAAC,MAAA,SAAS,CAAC,SAAS,0CAAE,GAAG,CAAC,YAAY,CAAc,GAAI,SAAS,CAAC,KAAsB,CAAC,KAAK,CAAC,aAAa,CAAC;KAC7G,CAAC,CAAC;GACH;AACF,CAAC,CAAC;MAEW,MAAM,GAAG,CAAC,KAAe,KACrC,OAAO,KAAK,KAAK,QAAQ;EACzB,KAAK,KAAK,IAAI;GACb,OAAQ,KAA2B,CAAC,KAAK,KAAK,WAAW,IAAIC,iBAAO,CAAE,KAA2B,CAAC,KAAK,CAAC,CAAC;EAC1GD,kBAAQ,CAAE,KAA2B,CAAC,IAAI,EAAE,CAAC,EAAE;MAEnC,YAAY,GAAG,CAAC,SAAoC,EAAE,KAAuB;EACzFE,mCAAmB,CAAC,KAAK,EAAE;IAC1B,IAAI;MACH,KAAK,GAAGC,yBAAS,CAAkB,KAAe,CAAC,CAAC;KACpD;IAAC,OAAO,CAAC,EAAE;KAEX;IACDC,8BAAc,CACb,SAAS,EACT,OAAO,EACP,CAAC,KAAK;MACL,QACC,KAAK,KAAK,IAAI;QACdJ,kBAAQ,CAAC,KAAK,EAAE,CAAC,CAAC;SACjB,OAAO,KAAK,KAAK,QAAQ;UACzB,KAAK,KAAK,IAAI;WACbA,kBAAQ,CAAE,KAAwB,CAAC,IAAI,EAAE,CAAC,CAAC;YAC3C,MAAM,CAAE,KAAwB,CAAC,IAAI,CAAC;YACtCA,kBAAQ,CAAE,KAAwB,CAAC,KAAK,EAAE,CAAC,CAAC;YAC5C,MAAM,CAAE,KAAwB,CAAC,KAAK,CAAC;YACvCA,kBAAQ,CAAE,KAAwB,CAAC,GAAG,EAAE,CAAC,CAAC;YAC1C,MAAM,CAAE,KAAwB,CAAC,GAAG,CAAC;YACrCA,kBAAQ,CAAE,KAAwB,CAAC,MAAM,EAAE,CAAC,CAAC;YAC7C,MAAM,CAAE,KAAwB,CAAC,MAAM,CAAC,CAAC,CAAC,EAC3C;KACF,EACD,IAAI,GAAG,CAAC,CAAC,aAAa,CAAC,CAAC,EACxB,KAAK,EACL;MACC,KAAK,EAAE;QACN,WAAW,EAAE,CAAC,SAAkB,EAAE,SAA+B;UAChE,IAAI,SAAS,KAAK,IAAI,EAAE;YACvB,SAAS,CAAC,GAAG,CAAC,OAAO,EAAE,EAAE,CAAC,CAAC;WAC3B;UACD,eAAe,CAAC,SAAS,CAAC,CAAC;SAC3B;OACD;MACD,QAAQ,EAAE,IAAI;KACd,CACD,CAAC;GACF,CAAC,CAAC;AACJ,EAAE;MAEW,cAAc,GAAG,CAAC,SAAoC,EAAE,KAAiB;EACrFK,yBAAc,CACb,iOAAiO,CACjO,CAAC;EACFD,8BAAc,CAAC,SAAS,EAAE,YAAY,EAAE,CAAC,KAAK,KAAK,KAAK,KAAK,MAAM,IAAI,KAAK,KAAK,OAAO,EAAE,IAAI,GAAG,CAAC,CAAC,sCAAsC,CAAC,CAAC,EAAE,KAAK,EAAE;IACnJ,KAAK,EAAE;MACN,WAAW,EAAE;QACZ,eAAe,CAAC,SAAS,CAAC,CAAC;OAC3B;KACD;GACD,CAAC,CAAC;AACJ;;AC9GA,MAAM,OAAO,GAAuB;EACnC,KAAK,EAAE;IACN,UAAU,EAAE,CAAC,KAAK;MACjB,IAAI,KAAK,KAAK,CAAC,CAAC,IAAI,KAAK,KAAK,CAAC,EAAE;QAChCE,mBAAQ,CAAC,4GAA4G,CAAC,CAAC;OACvH;KACD;GACD;CACD,CAAC;MAKW,gBAAgB,GAAG,CAAC,SAAoC,EAAE,KAAc;EACpFC,2BAAW,CAAC,SAAS,EAAE,WAAW,EAAE,KAAK,EAAE,OAAO,CAAC,CAAC;AACrD;;;;;;;","names":["isObject","isString","isStyle","objectObjectHandler","parseJson","watchValidator","deprecatedHint","a11yHint","watchNumber"],"sources":["./src/utils/validators/icon.ts","./src/utils/validators/tab-index.ts"],"sourcesContent":["import { Generic } from '@a11y-ui/core';\nimport { ButtonStates } from '../../types/button-link';\nimport { AnyIconFontClass, KoliBriAllIcon, KoliBriCustomIcon, KoliBriIconProp, KoliBriIconState } from '../../types/icon';\nimport { Alignment } from '../../types/props/alignment';\nimport { deprecatedHint } from '../a11y.tipps';\nimport { objectObjectHandler, parseJson, watchValidator } from '../prop.validators';\nimport { isObject, isString, isStyle } from '../validator';\n\nconst mapCustomIcon = (state: KoliBriIconState, alignment: Alignment | 'top' | 'bottom', icon?: AnyIconFontClass | KoliBriCustomIcon) => {\n\tif (isObject(icon)) {\n\t\tstate[alignment] = icon as KoliBriCustomIcon;\n\t} else if (isString(icon, 1)) {\n\t\tstate[alignment] = {\n\t\t\ticon: icon as AnyIconFontClass,\n\t\t};\n\t}\n};\n\nexport const mapIconProp2State = (icon: KoliBriIconProp, iconAlign?: Alignment): KoliBriIconState => {\n\tlet state: KoliBriIconState = {};\n\tif (isString(icon, 1)) {\n\t\tswitch (iconAlign) {\n\t\t\tcase 'right':\n\t\t\t\tstate = {\n\t\t\t\t\tright: {\n\t\t\t\t\t\ticon: icon as AnyIconFontClass,\n\t\t\t\t\t},\n\t\t\t\t};\n\t\t\t\tbreak;\n\t\t\tdefault:\n\t\t\t\tstate = {\n\t\t\t\t\tleft: {\n\t\t\t\t\t\ticon: icon as AnyIconFontClass,\n\t\t\t\t\t},\n\t\t\t\t};\n\t\t}\n\t} else if (typeof icon === 'object' && icon !== null) {\n\t\tmapCustomIcon(state, 'top', icon.top);\n\t\tmapCustomIcon(state, 'right', icon.right);\n\t\tmapCustomIcon(state, 'bottom', icon.bottom);\n\t\tmapCustomIcon(state, 'left', icon.left);\n\t}\n\treturn state;\n};\n\nconst beforePatchIcon = (component: Generic.Element.Component): void => {\n\tif (component.nextState?.has('_icon')) {\n\t\tconst icon = component.nextState?.get('_icon') as KoliBriIconProp;\n\t\tconst iconAlign = (component.nextState?.get('_iconAlign') as Alignment) || (component.state as ButtonStates)._iconAlign;\n\t\tcomponent.nextState?.set('_icon', mapIconProp2State(icon, iconAlign));\n\t} else if (component.nextState?.has('_iconAlign')) {\n\t\tconst lastIconAlign = (component.state as ButtonStates)._iconAlign;\n\t\tcomponent.nextState?.set('_icon', {\n\t\t\t[lastIconAlign]: undefined,\n\t\t\t[component.nextState?.get('_iconAlign') as Alignment]: (component.state as ButtonStates)._icon[lastIconAlign],\n\t\t});\n\t}\n};\n\nexport const isIcon = (value?: unknown): boolean =>\n\ttypeof value === 'object' &&\n\tvalue !== null &&\n\t(typeof (value as KoliBriCustomIcon).style === 'undefined' || isStyle((value as KoliBriCustomIcon).style)) &&\n\tisString((value as KoliBriCustomIcon).icon, 1);\n\nexport const validateIcon = (component: Generic.Element.Component, value?: KoliBriIconProp): void => {\n\tobjectObjectHandler(value, () => {\n\t\ttry {\n\t\t\tvalue = parseJson<KoliBriIconProp>(value as string);\n\t\t} catch (e) {\n\t\t\t// value behält den ursprünglichen Wert\n\t\t}\n\t\twatchValidator(\n\t\t\tcomponent,\n\t\t\t'_icon',\n\t\t\t(value): boolean => {\n\t\t\t\treturn (\n\t\t\t\t\tvalue === null ||\n\t\t\t\t\tisString(value, 1) ||\n\t\t\t\t\t(typeof value === 'object' &&\n\t\t\t\t\t\tvalue !== null &&\n\t\t\t\t\t\t(isString((value as KoliBriAllIcon).left, 1) ||\n\t\t\t\t\t\t\tisIcon((value as KoliBriAllIcon).left) ||\n\t\t\t\t\t\t\tisString((value as KoliBriAllIcon).right, 1) ||\n\t\t\t\t\t\t\tisIcon((value as KoliBriAllIcon).right) ||\n\t\t\t\t\t\t\tisString((value as KoliBriAllIcon).top, 1) ||\n\t\t\t\t\t\t\tisIcon((value as KoliBriAllIcon).top) ||\n\t\t\t\t\t\t\tisString((value as KoliBriAllIcon).bottom, 1) ||\n\t\t\t\t\t\t\tisIcon((value as KoliBriAllIcon).bottom)))\n\t\t\t\t);\n\t\t\t},\n\t\t\tnew Set(['KoliBriIcon']),\n\t\t\tvalue,\n\t\t\t{\n\t\t\t\thooks: {\n\t\t\t\t\tbeforePatch: (nextValue: unknown, nextState: Map<string, unknown>) => {\n\t\t\t\t\t\tif (nextValue === null) {\n\t\t\t\t\t\t\tnextState.set('_icon', {});\n\t\t\t\t\t\t}\n\t\t\t\t\t\tbeforePatchIcon(component);\n\t\t\t\t\t},\n\t\t\t\t},\n\t\t\t\trequired: true,\n\t\t\t}\n\t\t);\n\t});\n};\n\nexport const watchIconAlign = (component: Generic.Element.Component, value?: Alignment): void => {\n\tdeprecatedHint(\n\t\t`Das Property _icon-align bzw. _iconAlign ist veraltet. Die Ausrichtung der Icon's kann jetzt direkt über das _icon-Property vorgenommen werden. (v1.1.10: https://public-ui.github.io/?path=/story/backlog-und-changelog--page)`\n\t);\n\twatchValidator(component, '_iconAlign', (value) => value === 'left' || value === 'right', new Set(['Alignment {left, right, top, bottom}']), value, {\n\t\thooks: {\n\t\t\tbeforePatch: () => {\n\t\t\t\tbeforePatchIcon(component);\n\t\t\t},\n\t\t},\n\t});\n};\n","import { Generic } from '@a11y-ui/core';\nimport { a11yHint } from '../a11y.tipps';\nimport { watchNumber, WatchNumberOptions } from '../prop.validators';\n\n/**\n * Accessibility hints\n * - https://adrianroselli.com/2014/11/dont-use-tabindex-greater-than-0.html\n */\n\nconst options: WatchNumberOptions = {\n\thooks: {\n\t\tafterPatch: (value) => {\n\t\t\tif (value !== -1 && value !== 0) {\n\t\t\t\ta11yHint(`Don’t Use Tabindex Greater than 0: https://adrianroselli.com/2014/11/dont-use-tabindex-greater-than-0.html`);\n\t\t\t}\n\t\t},\n\t},\n};\n\n/**\n * Diese Methode validiert das Property und setzt den State, wenn es valide ist.\n */\nexport const validateTabIndex = (component: Generic.Element.Component, value?: number): void => {\n\twatchNumber(component, '_tabIndex', value, options);\n};\n"],"version":3}
@@ -0,0 +1,4 @@
1
+ /*!
2
+ * KoliBri - The accessible HTML-Standard
3
+ */
4
+ "use strict";const isObject=t=>"object"==typeof t&&null!==t,isString=(t,e=0)=>"string"==typeof t&&t.length>=e,isStyle=t=>{if("object"!=typeof t||null===t)return isString(t,1);for(const e in t)if(!1===isString(e,1))return!1;return!0},isPrefixOf=(t,e)=>new RegExp(`^${t}`).test(e),isEmptyOrPrefixOf=(t,e)=>0===e.length||isPrefixOf(t,e),STATE_CHANGE_EVENT=new Event("StateChange");exports.STATE_CHANGE_EVENT=STATE_CHANGE_EVENT,exports.isEmptyOrPrefixOf=isEmptyOrPrefixOf,exports.isObject=isObject,exports.isString=isString,exports.isStyle=isStyle;
@@ -0,0 +1 @@
1
+ {"file":"validator-953ea58f.js","mappings":";;;;;MAAa,QAAQ,GAAG,CAAC,KAAc,KAAc,OAAO,KAAK,KAAK,QAAQ,IAAI,KAAK,KAAK,KAAK;MAEpF,QAAQ,GAAG,CAAC,KAAc,EAAE,SAAS,GAAG,CAAC,KAAc,OAAO,KAAK,KAAK,QAAQ,IAAI,KAAK,CAAC,MAAM,IAAI,UAAU;MAE9G,OAAO,GAAG,CAAC,KAA8B;EACrD,IAAI,OAAO,KAAK,KAAK,QAAQ,IAAI,KAAK,KAAK,IAAI,EAAE;IAChD,KAAK,MAAM,QAAQ,IAAI,KAAK,EAAE;MAC7B,IAAI,QAAQ,CAAC,QAAQ,EAAE,CAAC,CAAC,KAAK,KAAK,EAAE;QACpC,OAAO,KAAK,CAAC;OACb;KACD;GACD;OAAM;IACN,OAAO,QAAQ,CAAC,KAAK,EAAE,CAAC,CAAC,CAAC;GAC1B;EACD,OAAO,IAAI,CAAC;AACb,EAAE;AAKF,MAAM,UAAU,GAAG,CAAC,MAAc,EAAE,IAAY,KAAK,IAAI,MAAM,CAAC,IAAI,MAAM,EAAE,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;MAK5E,iBAAiB,GAAG,CAAC,MAAc,EAAE,IAAY,KAAK,IAAI,CAAC,MAAM,KAAK,CAAC,IAAI,UAAU,CAAC,MAAM,EAAE,IAAI,EAAE;MAKpG,kBAAkB,GAAG,IAAI,KAAK,CAAC,aAAa;;;;;;;;","names":[],"sources":["./src/utils/validator.ts"],"sourcesContent":["export const isObject = (value: unknown): boolean => typeof value === 'object' && value !== null;\n\nexport const isString = (value: unknown, minLength = 0): boolean => typeof value === 'string' && value.length >= minLength;\n\nexport const isStyle = (style?: Record<string, string>): boolean => {\n\tif (typeof style === 'object' && style !== null) {\n\t\tfor (const property in style) {\n\t\t\tif (isString(property, 1) === false) {\n\t\t\t\treturn false;\n\t\t\t}\n\t\t}\n\t} else {\n\t\treturn isString(style, 1);\n\t}\n\treturn true;\n};\n\n/**\n * Validate, if a text contains a prefix.\n */\nconst isPrefixOf = (prefix: string, text: string) => new RegExp(`^${prefix}`).test(text);\n\n/**\n * Validate, if a text is empty or contains a prefix.\n */\nexport const isEmptyOrPrefixOf = (prefix: string, text: string) => text.length === 0 || isPrefixOf(prefix, text);\n\n/**\n * Fix event instance for state changes.\n */\nexport const STATE_CHANGE_EVENT = new Event('StateChange');\n"],"version":3}
@@ -1,4 +1,4 @@
1
1
  /*!
2
2
  * KoliBri - The accessible HTML-Standard
3
3
  */
4
- import{proxyCustomElement,HTMLElement as HTMLElement$1,h,Host}from"@stencil/core/internal/client";import{N as Nationalfarben}from"./color.js";import{a as watchValidator,r as rgbaConvert,b as watchNumber,e as a11yHint,f as setEventTargetAndStopPropagation,K as KoliBriDevHelper,h as getExperimalMode,d as devHint,i as getDocument,n as nonce,w as watchString,m as mapStringOrBoolean2String,j as mapBoolean2String,k as watchBoolean,l as a11yHintDisabled,o as setState,p as featureHint,q as objectObjectHandler,t as parseJson}from"./prop.validators.js";import{s}from"./index.m.js";import{c as colorRgba}from"./index2.js";import{i as isObject,d as defineCustomElement$3,v as validateAriaLabel,a as validateIcon,w as watchIconAlign,b as validateLabel}from"./component3.js";import{d as defineCustomElement$4}from"./component2.js";const watchTooltipAlignment=(t,e,a)=>{watchValidator(t,e,(t=>"top"===t||"right"===t||"bottom"===t||"left"===t),new Set(["Alignment {top, right, buttom, left}"]),a,{defaultValue:"top"})},getContrastYIQ=(t,e,a)=>(299*t+587*e+114*a)/1e3>=128?-1:1,calcContrastColor=(t,e,a,o=1)=>{const i=[Math.max(Math.min(Math.round(e[0]+o*Math.max(1,e[0]/100)),255),0),Math.max(Math.min(Math.round(e[1]+o*Math.max(1,e[1]/100)),255),0),Math.max(Math.min(Math.round(e[2]+o*Math.max(1,e[2]/100)),255),0)],n=s(rgbaConvert.hex(`rgba(${t.join(",")},1)`),rgbaConvert.hex(`rgba(${i.join(",")},1)`)),l=i[0]+i[1]+i[2];return 0===l||765===l||n>a?i:calcContrastColor(t,i,a,o)},getContrastColor=(t,e,a,o=1)=>{if(cache.has(t))return cache.get(t);const i=calcContrastColor(t,e,a,o);return cache.set(t,i),i},cache=new Map,createContrastColorPair=(t,e=7)=>{let a=[0,0,0,1],o=[255,255,255,1];"string"==typeof t?(a=colorRgba(t),o=a):"object"==typeof t&&null!==t&&"string"==typeof t.baseColor&&(a=colorRgba(t.baseColor),o="string"==typeof t.contrastColor?colorRgba(t.contrastColor):a);const i=(s=a[0],n=a[1],l=a[2],(299*s+587*n+114*l)/1e3>=128?-1:1);var s,n,l;return o=[...getContrastColor([a[0],a[1],a[2]],[o[0],o[1],o[2]],e,i),1],{baseColor:rgbaConvert.hex(`rgba(${a.join(",")})`),contrastColor:rgbaConvert.hex(`rgba(${o.join(",")})`)}},propergateFocus=(t,e)=>{isObject(t)&&t&&(t.focus=t=>null==e?void 0:e.focus(t))},options={hooks:{afterPatch:t=>{-1!==t&&0!==t&&a11yHint("Don’t Use Tabindex Greater than 0: https://adrianroselli.com/2014/11/dont-use-tabindex-greater-than-0.html")}}},validateTabIndex=(t,e)=>{watchNumber(t,"_tabIndex",e,options)},searchFormElement=t=>{for(getExperimalMode()&&(devHint("↓ Search form element start."),console.log(t));t instanceof HTMLElement&&"FORM"!==t.tagName&&"KOL-FORM"!==t.tagName;)t=t.parentElement instanceof HTMLElement?t.parentElement:t.parentNode instanceof ShadowRoot?t.parentNode.host:null,getExperimalMode()&&console.log(t);return getExperimalMode()&&devHint("↑ Search form element finished."),t},propergateResetEventToForm=(t={})=>{const e=searchFormElement(t.form);if(e instanceof HTMLElement){const t=new Event("reset",{bubbles:!0,cancelable:!0});if("FORM"===e.tagName)setEventTargetAndStopPropagation(t,e),e.dispatchEvent(t);else if("KOL-FORM"===e.tagName){setEventTargetAndStopPropagation(t,KoliBriDevHelper.querySelector("form",e));const a=e;"object"==typeof a._on&&null!==typeof a._on&&"function"==typeof a._on.onReset&&a._on.onReset(t)}}},propergateSubmitEventToForm=(t={})=>{const e=searchFormElement(t.form);if(e instanceof HTMLElement){const t=new SubmitEvent("submit",{bubbles:!0,cancelable:!0,submitter:e});if("FORM"===e.tagName)setEventTargetAndStopPropagation(t,e),e.dispatchEvent(t);else if("KOL-FORM"===e.tagName){setEventTargetAndStopPropagation(t,KoliBriDevHelper.querySelector("form",e));const a=e;"object"==typeof a._on&&null!==typeof a._on&&"function"==typeof a._on.onSubmit&&a._on.onSubmit(t)}}},watchButtonType=(t,e,a)=>{watchValidator(t,e,(t=>"button"===t||"reset"===t||"submit"===t),new Set(["KoliBriButtonType {button, reset, submit}"]),a)},watchButtonVariant=(t,e,a)=>{watchValidator(t,e,(t=>"primary"===t||"secondary"===t||"normal"===t||"danger"===t||"ghost"===t||"custom"===t),new Set(["KoliBriButtonVariant {primary, secondary, normal, danger, ghost, custom}"]),a,{defaultValue:"normal"})},defaultStyleCss$1='kol-badge,.tooltip{font-size:1rem;position:fixed;animation-name:fadeInOpacity;animation-iteration-count:1;animation-timing-function:ease-in;animation-duration:0.5s;display:none;z-index:1000;max-width:300px;box-shadow:0 0 0.15rem rgba(255, 255, 255, 0.8)}kol-badge::after,.tooltip::after{content:" ";position:absolute;border-style:solid;border-width:5px}kol-badge.arrow-left::after,.tooltip.arrow-left::after{margin-top:-5px;top:50%;right:100%;border-color:transparent black transparent transparent}kol-badge.arrow-right::after,.tooltip.arrow-right::after{margin-top:-5px;top:50%;left:100%;border-color:transparent transparent transparent black}kol-badge.arrow-top::after,.tooltip.arrow-top::after{margin-left:-5px;left:50%;bottom:100%;border-color:transparent transparent black transparent}kol-badge.arrow-bottom::after,.tooltip.arrow-bottom::after{margin-left:-5px;left:50%;top:100%;border-color:black transparent transparent transparent}@keyframes fadeInOpacity{0%{opacity:0}100%{opacity:1}}',KolTooltip=proxyCustomElement(class extends HTMLElement$1{constructor(){super(),this.__registerHost(),this.hydrated=!1,this.hostElement=null,this.childElements=[],this.alignTooltip=()=>{const t=this.childElements[0];{const e=t.getBoundingClientRect();if(this.tooltipElement){switch(this.state._align){case"top":case"bottom":this.tooltipElement.style.left=e.left+t.offsetWidth/2-this.tooltipElement.offsetWidth/2+"px";break;default:this.tooltipElement.style.top=e.top+e.height/2-this.tooltipElement.offsetHeight/2+"px"}switch(this.state._align){case"left":this.tooltipElement.style.left=`calc(${e.left-this.tooltipElement.offsetWidth}px - 0.5em)`;break;case"right":this.tooltipElement.style.left=`calc(${e.right}px + 0.5em)`;break;case"bottom":this.tooltipElement.style.top=`calc(${e.bottom}px + 0.5em)`;break;default:this.tooltipElement.style.top=`calc(${e.top-this.tooltipElement.offsetHeight}px - 0.5em)`}}}},this.showTooltip=()=>{this.tooltipElement&&(this.tooltipElement.style.setProperty("display","block"),getDocument().body.addEventListener("keyup",this.hideTooltipByEscape),this.alignTooltip(),this.tooltipElement.style.setProperty("visibility","visible"),document.addEventListener("scroll",this.alignTooltip))},this.hideTooltip=()=>{this.tooltipElement&&(this.tooltipElement.style.setProperty("display","none"),this.tooltipElement.style.setProperty("visibility","hidden"),document.removeEventListener("scroll",this.alignTooltip))},this.hideTooltipByEscape=t=>{"Escape"===t.key&&(getDocument().body.removeEventListener("keyup",this.hideTooltipByEscape),this.hideTooltip())},this.catchHostElement=t=>{if(this.hostElement=t,this.hostElement){const t=this.hostElement.previousElementSibling;t&&(t.removeEventListener("mouseover",this.showTooltip),t.addEventListener("mouseover",this.showTooltip),t.removeEventListener("focus",this.showTooltip),t.addEventListener("focus",this.showTooltip),t.removeEventListener("mouseout",this.hideTooltip),t.addEventListener("mouseout",this.hideTooltip),t.removeEventListener("blur",this.hideTooltip),t.addEventListener("blur",this.hideTooltip),this.childElements.push(t))}},this.catchTooltipElement=t=>{this.tooltipElement=t},this._align="top",this._id=void 0,this._label=void 0,this.state={_align:"top",_id:nonce(),_label:""}}render(){const t=setTimeout((()=>{clearTimeout(t),this.alignTooltip()}),250);return h(Host,{ref:this.catchHostElement},""!==this.state._label&&h("kol-badge",{class:{"arrow-bottom":"top"===this.state._align,"arrow-left":"right"===this.state._align,"arrow-top":"bottom"===this.state._align,"arrow-right":"left"===this.state._align},id:this.state._id,ref:this.catchTooltipElement,_color:{backgroundColor:"#333",color:"#ddd"},_label:this.state._label}))}validateAlign(t){watchTooltipAlignment(this,"_align",t)}validateId(t){watchString(this,"_id",t)}validateLabel(t){watchString(this,"_label",t)}componentWillLoad(){this.validateAlign(this._align),this.validateId(this._id),this.validateLabel(this._label),this.hydrated=!0}static get watchers(){return{_align:["validateAlign"],_id:["validateId"],_label:["validateLabel"]}}static get style(){return{default:defaultStyleCss$1}}},[32,"kol-tooltip",{_align:[1],_id:[1],_label:[1],state:[32]}]);function defineCustomElement$2(){if("undefined"==typeof customElements)return;["kol-tooltip","kol-badge","kol-button-wc","kol-icon","kol-span-wc","kol-tooltip"].forEach((t=>{switch(t){case"kol-tooltip":customElements.get(t)||customElements.define(t,KolTooltip);break;case"kol-badge":customElements.get(t)||defineCustomElement();break;case"kol-button-wc":customElements.get(t)||defineCustomElement$1();break;case"kol-icon":customElements.get(t)||defineCustomElement$4();break;case"kol-span-wc":customElements.get(t)||defineCustomElement$3();break;case"kol-tooltip":customElements.get(t)||defineCustomElement$2()}}))}const KolButtonWc=proxyCustomElement(class extends HTMLElement$1{constructor(){super(),this.__registerHost(),this.nonce=nonce(),this.catchRef=t=>{this.ref=t,propergateFocus(this.host,this.ref)},this.onClick=t=>{var e,a;"submit"===this.state._type?propergateSubmitEventToForm({form:this.host,ref:this.ref}):"reset"===this.state._type?propergateResetEventToForm({form:this.host,ref:this.ref}):"function"==typeof(null===(e=this.state._on)||void 0===e?void 0:e.onClick)?(setEventTargetAndStopPropagation(t,this.ref),null===(a=this.state._on)||void 0===a||a.onClick(t,this.state._value)):devHint("It was no button click callback configured!")},this._accessKey=void 0,this._ariaControls=void 0,this._ariaCurrent=void 0,this._ariaExpanded=void 0,this._ariaLabel="",this._ariaSelected=void 0,this._customClass=void 0,this._disabled=!1,this._icon=void 0,this._iconAlign="left",this._iconOnly=!1,this._id=void 0,this._label=void 0,this._on=void 0,this._role=void 0,this._tabIndex=void 0,this._tooltipAlign="top",this._type="button",this._value=void 0,this._variant="normal",this.state={_ariaLabel:"",_icon:{},_iconAlign:"left",_label:"",_on:{},_type:"button"}}render(){return h(Host,null,h("button",Object.assign({ref:this.catchRef,accessKey:this.state._accessKey,"aria-controls":this.state._ariaControls,"aria-current":mapStringOrBoolean2String(this.state._ariaCurrent),"aria-expanded":mapBoolean2String(this.state._ariaExpanded),"aria-label":!1===this.state._iconOnly?this.state._ariaLabel||this.state._label:void 0,"aria-labelledby":!0===this.state._iconOnly?this.nonce:void 0,"aria-selected":mapStringOrBoolean2String(this.state._ariaSelected),class:{[this.state._variant]:"custom"!==this.state._variant,[this.state._customClass]:"custom"===this.state._variant&&"string"==typeof this.state._customClass&&this.state._customClass.length>0,"icon-only":!0===this.state._iconOnly},disabled:this.state._disabled,id:this.state._id},this.state._on,{onClick:this.onClick,role:this.state._role,tabIndex:this.state._tabIndex,type:this.state._type}),h("kol-span-wc",{_icon:this._icon,_iconOnly:this._iconOnly,_label:this.state._ariaLabel||this.state._label},h("slot",{name:"expert",slot:"expert"}))),!0===this.state._iconOnly&&h("kol-tooltip",{"aria-hidden":"true",_align:this.state._tooltipAlign,_id:this.nonce,_label:this.state._ariaLabel||this.state._label}))}validateAccessKey(t){watchString(this,"_accessKey",t)}validateAriaControls(t){watchString(this,"_ariaControls",t)}validateAriaCurrent(t){watchValidator(this,"_ariaControls",(t=>!0===t||"date"===t||"location"===t||"page"===t||"step"===t||"time"===t),new Set(["boolean","String {data, location, page, step, time}"]),t)}validateAriaExpanded(t){watchBoolean(this,"_ariaExpanded",t)}validateAriaLabel(t){validateAriaLabel(this,t)}validateAriaSelected(t){watchBoolean(this,"_ariaSelected",t)}validateCustomClass(t){watchString(this,"_customClass",t,{defaultValue:void 0})}validateDisabled(t){watchBoolean(this,"_disabled",t),!0===t&&a11yHintDisabled()}validateIcon(t){validateIcon(this,t)}validateIconAlign(t){watchIconAlign(this,t)}validateIconOnly(t){watchBoolean(this,"_iconOnly",t,{defaultValue:!1})}validateId(t){watchString(this,"_id",t)}validateLabel(t){validateLabel(this,t)}validateOn(t){"object"==typeof t&&null!==t&&(this.state=Object.assign(Object.assign({},this.state),{_on:t}))}validateRole(t){watchString(this,"_role",t)}validateTabIndex(t){validateTabIndex(this,t)}validateTooltipAlign(t){watchTooltipAlignment(this,"_tooltipAlign",t)}validateType(t){watchButtonType(this,"_type",t)}validateValue(t){setState(this,"_value",t)}validateVariant(t){watchButtonVariant(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.validateIcon(this._icon),this.validateIconOnly(this._iconOnly),this.validateId(this._id),this.validateLabel(this._label),this.validateOn(this._on),this.validateRole(this._role),this.validateTabIndex(this._tabIndex),this.validateTooltipAlign(this._tooltipAlign),this.validateType(this._type),this.validateValue(this._value),this.validateVariant(this._variant)}get host(){return this}static get watchers(){return{_accessKey:["validateAccessKey"],_ariaControls:["validateAriaControls"],_ariaCurrent:["validateAriaCurrent"],_ariaExpanded:["validateAriaExpanded"],_ariaLabel:["validateAriaLabel"],_ariaSelected:["validateAriaSelected"],_customClass:["validateCustomClass"],_disabled:["validateDisabled"],_icon:["validateIcon"],_iconAlign:["validateIconAlign"],_iconOnly:["validateIconOnly"],_id:["validateId"],_label:["validateLabel"],_on:["validateOn"],_role:["validateRole"],_tabIndex:["validateTabIndex"],_tooltipAlign:["validateTooltipAlign"],_type:["validateType"],_value:["validateValue"],_variant:["validateVariant"]}}},[4,"kol-button-wc",{_accessKey:[1,"_access-key"],_ariaControls:[1,"_aria-controls"],_ariaCurrent:[8,"_aria-current"],_ariaExpanded:[516,"_aria-expanded"],_ariaLabel:[1025,"_aria-label"],_ariaSelected:[516,"_aria-selected"],_customClass:[1,"_custom-class"],_disabled:[516],_icon:[1],_iconAlign:[1,"_icon-align"],_iconOnly:[516,"_icon-only"],_id:[1],_label:[1025],_on:[16],_role:[1],_tabIndex:[2,"_tab-index"],_tooltipAlign:[1,"_tooltip-align"],_type:[1],_value:[16],_variant:[1],state:[32]}]);function defineCustomElement$1(){if("undefined"==typeof customElements)return;["kol-button-wc","kol-badge","kol-icon","kol-span-wc","kol-tooltip"].forEach((t=>{switch(t){case"kol-button-wc":customElements.get(t)||customElements.define(t,KolButtonWc);break;case"kol-badge":customElements.get(t)||defineCustomElement();break;case"kol-icon":customElements.get(t)||defineCustomElement$4();break;case"kol-span-wc":customElements.get(t)||defineCustomElement$3();break;case"kol-tooltip":customElements.get(t)||defineCustomElement$2()}}))}const defaultStyleCss="@windicss; *{box-sizing:border-box;font-size:inherit;hyphens:auto;letter-spacing:inherit;word-break:break-word;word-spacing:inherit}kol-heading-wc{font-weight:700}kol-icon{color:inherit}kol-span-wc{display:grid;place-items:center;width:100%}kol-span-wc>span{display:flex;gap:0.25rem;place-items:center}a,button{cursor:pointer}a.icon-only>kol-span-wc>span>span,button.icon-only>kol-span-wc>span>span{display:none}a{display:inline-flex;place-items:baseline}button{border-width:0}span{display:inline-flex}span kol-button-wc,span .kol-button-wc{box-shadow-left:1px solid rgba(0, 0, 0, 0.25)}";featureHint("[KolBadge] Optimierung des _color-Properties (rgba, rgb, hex usw.).");const HACK_REG_EX=/^([a-f0-9]{3}|[a-f0-9]{6})$/,KolBadge=proxyCustomElement(class extends HTMLElement$1{constructor(){super(),this.__registerHost(),this.__attachShadow(),this.bgColorStr="#000",this.colorStr="#fff",this.handleColorChange=t=>{let e,a=t;"string"==typeof a?(HACK_REG_EX.test(a)&&(devHint("[KolBadge] Bitte verwenden Sie zukünftig nur noch das Standard-Farbformat für CSS (https://developer.mozilla.org/en-US/docs/Web/CSS/color_value)."),a=`#${a}`),e=createContrastColorPair(a)):e=createContrastColorPair({baseColor:a.backgroundColor,contrastColor:a.color}),this.bgColorStr=e.baseColor,this.colorStr=e.contrastColor},this._color=Nationalfarben.Schwarz,this._icon=void 0,this._iconAlign="left",this._iconOnly=!1,this._label=void 0,this._smartButton=void 0,this.state={_color:Nationalfarben.Schwarz}}render(){return h(Host,null,h("span",{class:{"smart-button":"object"==typeof this.state._smartButton&&null!==this.state._smartButton},style:{backgroundColor:this.bgColorStr,color:this.colorStr}},h("kol-span-wc",{_icon:this._icon,_iconOnly:this._iconOnly,_label:this._label}),"object"==typeof this.state._smartButton&&null!==this.state._smartButton&&h("kol-button-wc",{_ariaLabel:this.state._smartButton._ariaLabel,_customClass:this.state._smartButton._customClass,_disabled:this.state._smartButton._disabled,_icon:this.state._smartButton._icon,_iconOnly:!0,_id:this.state._smartButton._id,_label:this.state._smartButton._label,_on:this.state._smartButton._on,_tooltipAlign:this.state._smartButton._tooltipAlign,_variant:this.state._smartButton._variant})))}validateColor(t){watchValidator(this,"_color",(t=>"string"==typeof t||"object"==typeof t&&null!==t),new Set(["string","KoliBriColor"]),t,{defaultValue:Nationalfarben.Schwarz,hooks:{beforePatch:this.handleColorChange}})}validateSmartButton(t){objectObjectHandler(t,(()=>{try{t=parseJson(t)}catch(t){}setState(this,"_smartButton",t)}))}componentWillLoad(){this.validateColor(this._color),this.validateSmartButton(this._smartButton)}static get watchers(){return{_color:["validateColor"],_smartButton:["validateSmartButton"]}}static get style(){return{default:defaultStyleCss}}},[33,"kol-badge",{_color:[1],_icon:[1],_iconAlign:[1,"_icon-align"],_iconOnly:[516,"_icon-only"],_label:[1],_smartButton:[1,"_smart-button"],state:[32]}]);function defineCustomElement(){if("undefined"==typeof customElements)return;["kol-badge","kol-badge","kol-button-wc","kol-icon","kol-span-wc","kol-tooltip"].forEach((t=>{switch(t){case"kol-badge":customElements.get(t)||customElements.define(t,KolBadge);break;case"kol-badge":customElements.get(t)||defineCustomElement();break;case"kol-button-wc":customElements.get(t)||defineCustomElement$1();break;case"kol-icon":customElements.get(t)||defineCustomElement$4();break;case"kol-span-wc":customElements.get(t)||defineCustomElement$3();break;case"kol-tooltip":customElements.get(t)||defineCustomElement$2()}}))}export{KolBadge as K,defineCustomElement$1 as a,defineCustomElement as b,KolButtonWc as c,defineCustomElement$2 as d,propergateSubmitEventToForm as e,watchButtonVariant as f,KolTooltip as g,propergateFocus as p,validateTabIndex as v,watchTooltipAlignment as w};
4
+ import{proxyCustomElement,HTMLElement as HTMLElement$1,h,Host}from"@stencil/core/internal/client";import{N as Nationalfarben}from"./color.js";import{a as watchValidator,r as rgbaConvert,b as watchNumber,e as a11yHint,f as setEventTargetAndStopPropagation,K as KoliBriDevHelper,h as getExperimalMode,d as devHint,i as getDocument,n as nonce,w as watchString,m as mapStringOrBoolean2String,j as mapBoolean2String,k as watchBoolean,l as a11yHintDisabled,o as setState,p as featureHint,q as objectObjectHandler,t as parseJson}from"./prop.validators.js";import{s}from"./index.m.js";import{c as colorRgba}from"./index2.js";import{i as isObject,d as defineCustomElement$3,v as validateAriaLabel,a as validateIcon,w as watchIconAlign,b as validateLabel}from"./component3.js";import{d as defineCustomElement$4}from"./component2.js";const watchTooltipAlignment=(t,e,a)=>{watchValidator(t,e,(t=>"top"===t||"right"===t||"bottom"===t||"left"===t),new Set(["Alignment {top, right, buttom, left}"]),a,{defaultValue:"top"})},getContrastYIQ=(t,e,a)=>(299*t+587*e+114*a)/1e3>=128?-1:1,calcContrastColor=(t,e,a,o=1)=>{const i=[Math.max(Math.min(Math.round(e[0]+o*Math.max(1,e[0]/100)),255),0),Math.max(Math.min(Math.round(e[1]+o*Math.max(1,e[1]/100)),255),0),Math.max(Math.min(Math.round(e[2]+o*Math.max(1,e[2]/100)),255),0)],n=s(rgbaConvert.hex(`rgba(${t.join(",")},1)`),rgbaConvert.hex(`rgba(${i.join(",")},1)`)),l=i[0]+i[1]+i[2];return 0===l||765===l||n>a?i:calcContrastColor(t,i,a,o)},getContrastColor=(t,e,a,o=1)=>{if(cache.has(t))return cache.get(t);const i=calcContrastColor(t,e,a,o);return cache.set(t,i),i},cache=new Map,createContrastColorPair=(t,e=7)=>{let a=[0,0,0,1],o=[255,255,255,1];"string"==typeof t?(a=colorRgba(t),o=a):"object"==typeof t&&null!==t&&"string"==typeof t.baseColor&&(a=colorRgba(t.baseColor),o="string"==typeof t.contrastColor?colorRgba(t.contrastColor):a);const i=(s=a[0],n=a[1],l=a[2],(299*s+587*n+114*l)/1e3>=128?-1:1);var s,n,l;return o=[...getContrastColor([a[0],a[1],a[2]],[o[0],o[1],o[2]],e,i),1],{baseColor:rgbaConvert.hex(`rgba(${a.join(",")})`),contrastColor:rgbaConvert.hex(`rgba(${o.join(",")})`)}},propergateFocus=(t,e)=>{isObject(t)&&t&&(t.focus=t=>null==e?void 0:e.focus(t))},smartSetTimeout=(t,e)=>{const a=setTimeout((()=>{clearTimeout(a),t()}),e)},options={hooks:{afterPatch:t=>{-1!==t&&0!==t&&a11yHint("Don’t Use Tabindex Greater than 0: https://adrianroselli.com/2014/11/dont-use-tabindex-greater-than-0.html")}}},validateTabIndex=(t,e)=>{watchNumber(t,"_tabIndex",e,options)},searchFormElement=t=>{for(getExperimalMode()&&(devHint("↓ Search form element start."),console.log(t));t instanceof HTMLElement&&"FORM"!==t.tagName&&"KOL-FORM"!==t.tagName;)t=t.parentElement instanceof HTMLElement?t.parentElement:t.parentNode instanceof ShadowRoot?t.parentNode.host:null,getExperimalMode()&&console.log(t);return getExperimalMode()&&devHint("↑ Search form element finished."),t},propergateResetEventToForm=(t={})=>{const e=searchFormElement(t.form);if(e instanceof HTMLElement){const t=new Event("reset",{bubbles:!0,cancelable:!0});if("FORM"===e.tagName)setEventTargetAndStopPropagation(t,e),e.dispatchEvent(t);else if("KOL-FORM"===e.tagName){setEventTargetAndStopPropagation(t,KoliBriDevHelper.querySelector("form",e));const a=e;"object"==typeof a._on&&null!==typeof a._on&&"function"==typeof a._on.onReset&&a._on.onReset(t)}}},propergateSubmitEventToForm=(t={})=>{const e=searchFormElement(t.form);if(e instanceof HTMLElement){const t=new SubmitEvent("submit",{bubbles:!0,cancelable:!0,submitter:e});if("FORM"===e.tagName)setEventTargetAndStopPropagation(t,e),e.dispatchEvent(t);else if("KOL-FORM"===e.tagName){setEventTargetAndStopPropagation(t,KoliBriDevHelper.querySelector("form",e));const a=e;"object"==typeof a._on&&null!==typeof a._on&&"function"==typeof a._on.onSubmit&&a._on.onSubmit(t)}}},watchButtonType=(t,e,a)=>{watchValidator(t,e,(t=>"button"===t||"reset"===t||"submit"===t),new Set(["KoliBriButtonType {button, reset, submit}"]),a)},watchButtonVariant=(t,e,a)=>{watchValidator(t,e,(t=>"primary"===t||"secondary"===t||"normal"===t||"danger"===t||"ghost"===t||"custom"===t),new Set(["KoliBriButtonVariant {primary, secondary, normal, danger, ghost, custom}"]),a,{defaultValue:"normal"})},defaultStyleCss$1='kol-badge,.tooltip{font-size:1rem;position:fixed;animation-name:fadeInOpacity;animation-iteration-count:1;animation-timing-function:ease-in;animation-duration:0.5s;display:none;z-index:1000;max-width:300px;box-shadow:0 0 0.15rem rgba(255, 255, 255, 0.8)}kol-badge::after,.tooltip::after{content:" ";position:absolute;border-style:solid;border-width:5px}kol-badge.arrow-left::after,.tooltip.arrow-left::after{margin-top:-5px;top:50%;right:100%;border-color:transparent black transparent transparent}kol-badge.arrow-right::after,.tooltip.arrow-right::after{margin-top:-5px;top:50%;left:100%;border-color:transparent transparent transparent black}kol-badge.arrow-top::after,.tooltip.arrow-top::after{margin-left:-5px;left:50%;bottom:100%;border-color:transparent transparent black transparent}kol-badge.arrow-bottom::after,.tooltip.arrow-bottom::after{margin-left:-5px;left:50%;top:100%;border-color:black transparent transparent transparent}@keyframes fadeInOpacity{0%{opacity:0}100%{opacity:1}}',KolTooltip=proxyCustomElement(class extends HTMLElement$1{constructor(){super(),this.__registerHost(),this.alignTooltip=()=>{if(this.previousSibling){const t=this.previousSibling.getBoundingClientRect();if(this.tooltipElement){switch(this.state._align){case"top":case"bottom":this.tooltipElement.style.left=t.left+this.previousSibling.offsetWidth/2-this.tooltipElement.offsetWidth/2+"px";break;default:this.tooltipElement.style.top=t.top+t.height/2-this.tooltipElement.offsetHeight/2+"px"}switch(this.state._align){case"left":this.tooltipElement.style.left=`calc(${t.left-this.tooltipElement.offsetWidth}px - 0.5em)`;break;case"right":this.tooltipElement.style.left=`calc(${t.right}px + 0.5em)`;break;case"bottom":this.tooltipElement.style.top=`calc(${t.bottom}px + 0.5em)`;break;default:this.tooltipElement.style.top=`calc(${t.top-this.tooltipElement.offsetHeight}px - 0.5em)`}}}},this.showTooltip=()=>{this.tooltipElement&&(this.tooltipElement.style.setProperty("display","block"),getDocument().body.addEventListener("keyup",this.hideTooltipByEscape),this.alignTooltip(),this.tooltipElement.style.setProperty("visibility","visible"),document.addEventListener("scroll",this.alignTooltip))},this.hideTooltip=()=>{this.tooltipElement&&(this.tooltipElement.style.setProperty("display","none"),this.tooltipElement.style.setProperty("visibility","hidden"),document.removeEventListener("scroll",this.alignTooltip))},this.hideTooltipByEscape=t=>{"Escape"===t.key&&(getDocument().body.removeEventListener("keyup",this.hideTooltipByEscape),this.hideTooltip())},this.addListeners=t=>{t.addEventListener("mouseover",this.incrementOverFocusCount),t.addEventListener("focus",this.incrementOverFocusCount),t.addEventListener("mouseout",this.decrementOverFocusCount),t.addEventListener("blur",this.decrementOverFocusCount)},this.removeListeners=t=>{t.removeEventListener("mouseover",this.incrementOverFocusCount),t.removeEventListener("focus",this.incrementOverFocusCount),t.removeEventListener("mouseout",this.decrementOverFocusCount),t.removeEventListener("blur",this.decrementOverFocusCount)},this.resyncListeners=t=>{this.removeListeners(t),this.addListeners(t)},this.catchHostElement=t=>{t&&(this.previousSibling=t.previousElementSibling,this.previousSibling&&this.resyncListeners(this.previousSibling))},this.catchTooltipElement=t=>{this.tooltipElement=t,this.tooltipElement&&this.resyncListeners(this.tooltipElement)},this.overFocusCount=0,this.incrementOverFocusCount=()=>{this.overFocusCount++,this.showOrHideTooltip()},this.decrementOverFocusCount=()=>{this.overFocusCount--,this.showOrHideTooltip()},this.showOrHideTooltip=()=>{clearTimeout(this.overFocusTimeout),this.overFocusTimeout=setTimeout((()=>{clearTimeout(this.overFocusTimeout),this.overFocusCount>0?this.showTooltip():this.hideTooltip()}),250)},this._align="top",this._id=void 0,this._label=void 0,this.state={_align:"top",_id:nonce(),_label:""}}render(){return smartSetTimeout((()=>{this.alignTooltip(),smartSetTimeout(this.alignTooltip,750)}),250),h(Host,{ref:this.catchHostElement},""!==this.state._label&&h("kol-badge",{class:{"arrow-bottom":"top"===this.state._align,"arrow-left":"right"===this.state._align,"arrow-top":"bottom"===this.state._align,"arrow-right":"left"===this.state._align},id:this.state._id,ref:this.catchTooltipElement,_color:{backgroundColor:"#333",color:"#ddd"},_label:this.state._label}))}validateAlign(t){watchTooltipAlignment(this,"_align",t)}validateId(t){watchString(this,"_id",t)}validateLabel(t){watchString(this,"_label",t)}componentWillLoad(){this.validateAlign(this._align),this.validateId(this._id),this.validateLabel(this._label)}disconnectedCallback(){this.previousSibling&&this.removeListeners(this.previousSibling),this.tooltipElement&&this.removeListeners(this.tooltipElement)}static get watchers(){return{_align:["validateAlign"],_id:["validateId"],_label:["validateLabel"]}}static get style(){return{default:defaultStyleCss$1}}},[32,"kol-tooltip",{_align:[1],_id:[1],_label:[1],state:[32]}]);function defineCustomElement$2(){if("undefined"==typeof customElements)return;["kol-tooltip","kol-badge","kol-button-wc","kol-icon","kol-span-wc","kol-tooltip"].forEach((t=>{switch(t){case"kol-tooltip":customElements.get(t)||customElements.define(t,KolTooltip);break;case"kol-badge":customElements.get(t)||defineCustomElement();break;case"kol-button-wc":customElements.get(t)||defineCustomElement$1();break;case"kol-icon":customElements.get(t)||defineCustomElement$4();break;case"kol-span-wc":customElements.get(t)||defineCustomElement$3();break;case"kol-tooltip":customElements.get(t)||defineCustomElement$2()}}))}const KolButtonWc=proxyCustomElement(class extends HTMLElement$1{constructor(){super(),this.__registerHost(),this.nonce=nonce(),this.catchRef=t=>{this.ref=t,propergateFocus(this.host,this.ref)},this.onClick=t=>{var e,a;"submit"===this.state._type?propergateSubmitEventToForm({form:this.host,ref:this.ref}):"reset"===this.state._type?propergateResetEventToForm({form:this.host,ref:this.ref}):"function"==typeof(null===(e=this.state._on)||void 0===e?void 0:e.onClick)?(setEventTargetAndStopPropagation(t,this.ref),null===(a=this.state._on)||void 0===a||a.onClick(t,this.state._value)):devHint("It was no button click callback configured!")},this._accessKey=void 0,this._ariaControls=void 0,this._ariaCurrent=void 0,this._ariaExpanded=void 0,this._ariaLabel="",this._ariaSelected=void 0,this._customClass=void 0,this._disabled=!1,this._icon=void 0,this._iconAlign="left",this._iconOnly=!1,this._id=void 0,this._label=void 0,this._on=void 0,this._role=void 0,this._tabIndex=void 0,this._tooltipAlign="top",this._type="button",this._value=void 0,this._variant="normal",this.state={_ariaLabel:"",_icon:{},_iconAlign:"left",_label:"",_on:{},_type:"button"}}render(){return h(Host,null,h("button",Object.assign({ref:this.catchRef,accessKey:this.state._accessKey,"aria-controls":this.state._ariaControls,"aria-current":mapStringOrBoolean2String(this.state._ariaCurrent),"aria-expanded":mapBoolean2String(this.state._ariaExpanded),"aria-label":!1===this.state._iconOnly?this.state._ariaLabel||this.state._label:void 0,"aria-labelledby":!0===this.state._iconOnly?this.nonce:void 0,"aria-selected":mapStringOrBoolean2String(this.state._ariaSelected),class:{[this.state._variant]:"custom"!==this.state._variant,[this.state._customClass]:"custom"===this.state._variant&&"string"==typeof this.state._customClass&&this.state._customClass.length>0,"icon-only":!0===this.state._iconOnly},disabled:this.state._disabled,id:this.state._id},this.state._on,{onClick:this.onClick,role:this.state._role,tabIndex:this.state._tabIndex,type:this.state._type}),h("kol-span-wc",{_icon:this._icon,_iconOnly:this._iconOnly,_label:this.state._ariaLabel||this.state._label},h("slot",{name:"expert",slot:"expert"}))),!0===this.state._iconOnly&&h("kol-tooltip",{"aria-hidden":"true",_align:this.state._tooltipAlign,_id:this.nonce,_label:this.state._ariaLabel||this.state._label}))}validateAccessKey(t){watchString(this,"_accessKey",t)}validateAriaControls(t){watchString(this,"_ariaControls",t)}validateAriaCurrent(t){watchValidator(this,"_ariaControls",(t=>!0===t||"date"===t||"location"===t||"page"===t||"step"===t||"time"===t),new Set(["boolean","String {data, location, page, step, time}"]),t)}validateAriaExpanded(t){watchBoolean(this,"_ariaExpanded",t)}validateAriaLabel(t){validateAriaLabel(this,t)}validateAriaSelected(t){watchBoolean(this,"_ariaSelected",t)}validateCustomClass(t){watchString(this,"_customClass",t,{defaultValue:void 0})}validateDisabled(t){watchBoolean(this,"_disabled",t),!0===t&&a11yHintDisabled()}validateIcon(t){validateIcon(this,t)}validateIconAlign(t){watchIconAlign(this,t)}validateIconOnly(t){watchBoolean(this,"_iconOnly",t,{defaultValue:!1})}validateId(t){watchString(this,"_id",t)}validateLabel(t){validateLabel(this,t)}validateOn(t){"object"==typeof t&&null!==t&&(this.state=Object.assign(Object.assign({},this.state),{_on:t}))}validateRole(t){watchString(this,"_role",t)}validateTabIndex(t){validateTabIndex(this,t)}validateTooltipAlign(t){watchTooltipAlignment(this,"_tooltipAlign",t)}validateType(t){watchButtonType(this,"_type",t)}validateValue(t){setState(this,"_value",t)}validateVariant(t){watchButtonVariant(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.validateIcon(this._icon),this.validateIconAlign(this._iconAlign),this.validateIconOnly(this._iconOnly),this.validateId(this._id),this.validateLabel(this._label),this.validateOn(this._on),this.validateRole(this._role),this.validateTabIndex(this._tabIndex),this.validateTooltipAlign(this._tooltipAlign),this.validateType(this._type),this.validateValue(this._value),this.validateVariant(this._variant)}get host(){return this}static get watchers(){return{_accessKey:["validateAccessKey"],_ariaControls:["validateAriaControls"],_ariaCurrent:["validateAriaCurrent"],_ariaExpanded:["validateAriaExpanded"],_ariaLabel:["validateAriaLabel"],_ariaSelected:["validateAriaSelected"],_customClass:["validateCustomClass"],_disabled:["validateDisabled"],_icon:["validateIcon"],_iconAlign:["validateIconAlign"],_iconOnly:["validateIconOnly"],_id:["validateId"],_label:["validateLabel"],_on:["validateOn"],_role:["validateRole"],_tabIndex:["validateTabIndex"],_tooltipAlign:["validateTooltipAlign"],_type:["validateType"],_value:["validateValue"],_variant:["validateVariant"]}}},[4,"kol-button-wc",{_accessKey:[1,"_access-key"],_ariaControls:[1,"_aria-controls"],_ariaCurrent:[8,"_aria-current"],_ariaExpanded:[516,"_aria-expanded"],_ariaLabel:[1025,"_aria-label"],_ariaSelected:[516,"_aria-selected"],_customClass:[1,"_custom-class"],_disabled:[516],_icon:[1],_iconAlign:[1,"_icon-align"],_iconOnly:[516,"_icon-only"],_id:[1],_label:[1025],_on:[16],_role:[1],_tabIndex:[2,"_tab-index"],_tooltipAlign:[1,"_tooltip-align"],_type:[1],_value:[16],_variant:[1],state:[32]}]);function defineCustomElement$1(){if("undefined"==typeof customElements)return;["kol-button-wc","kol-badge","kol-icon","kol-span-wc","kol-tooltip"].forEach((t=>{switch(t){case"kol-button-wc":customElements.get(t)||customElements.define(t,KolButtonWc);break;case"kol-badge":customElements.get(t)||defineCustomElement();break;case"kol-icon":customElements.get(t)||defineCustomElement$4();break;case"kol-span-wc":customElements.get(t)||defineCustomElement$3();break;case"kol-tooltip":customElements.get(t)||defineCustomElement$2()}}))}const defaultStyleCss="@windicss; *{box-sizing:border-box;font-size:inherit;hyphens:auto;letter-spacing:inherit;word-break:break-word;word-spacing:inherit}kol-heading-wc{font-weight:700}kol-icon{color:inherit}kol-span-wc{display:grid;place-items:center;width:100%}kol-span-wc>span{display:flex;gap:0.25rem;place-items:center}a,button{cursor:pointer}a.icon-only>kol-span-wc>span>span,button.icon-only>kol-span-wc>span>span{display:none}a{display:inline-flex;place-items:baseline}button{border-width:0}span{display:inline-flex}span kol-button-wc,span .kol-button-wc{box-shadow-left:1px solid rgba(0, 0, 0, 0.25)}";featureHint("[KolBadge] Optimierung des _color-Properties (rgba, rgb, hex usw.).");const HACK_REG_EX=/^([a-f0-9]{3}|[a-f0-9]{6})$/,KolBadge=proxyCustomElement(class extends HTMLElement$1{constructor(){super(),this.__registerHost(),this.__attachShadow(),this.bgColorStr="#000",this.colorStr="#fff",this.handleColorChange=t=>{let e,a=t;"string"==typeof a?(HACK_REG_EX.test(a)&&(devHint("[KolBadge] Bitte verwenden Sie zukünftig nur noch das Standard-Farbformat für CSS (https://developer.mozilla.org/en-US/docs/Web/CSS/color_value)."),a=`#${a}`),e=createContrastColorPair(a)):e=createContrastColorPair({baseColor:a.backgroundColor,contrastColor:a.color}),this.bgColorStr=e.baseColor,this.colorStr=e.contrastColor},this._color=Nationalfarben.Schwarz,this._icon=void 0,this._iconAlign="left",this._iconOnly=!1,this._label=void 0,this._smartButton=void 0,this.state={_color:Nationalfarben.Schwarz}}render(){return h(Host,null,h("span",{class:{"smart-button":"object"==typeof this.state._smartButton&&null!==this.state._smartButton},style:{backgroundColor:this.bgColorStr,color:this.colorStr}},h("kol-span-wc",{_icon:this._icon,_iconOnly:this._iconOnly,_label:this._label}),"object"==typeof this.state._smartButton&&null!==this.state._smartButton&&h("kol-button-wc",{_ariaLabel:this.state._smartButton._ariaLabel,_customClass:this.state._smartButton._customClass,_disabled:this.state._smartButton._disabled,_icon:this.state._smartButton._icon,_iconOnly:!0,_id:this.state._smartButton._id,_label:this.state._smartButton._label,_on:this.state._smartButton._on,_tooltipAlign:this.state._smartButton._tooltipAlign,_variant:this.state._smartButton._variant})))}validateColor(t){watchValidator(this,"_color",(t=>"string"==typeof t||"object"==typeof t&&null!==t),new Set(["string","KoliBriColor"]),t,{defaultValue:Nationalfarben.Schwarz,hooks:{beforePatch:this.handleColorChange}})}validateSmartButton(t){objectObjectHandler(t,(()=>{try{t=parseJson(t)}catch(t){}setState(this,"_smartButton",t)}))}componentWillLoad(){this.validateColor(this._color),this.validateSmartButton(this._smartButton)}static get watchers(){return{_color:["validateColor"],_smartButton:["validateSmartButton"]}}static get style(){return{default:defaultStyleCss}}},[33,"kol-badge",{_color:[1],_icon:[1],_iconAlign:[1,"_icon-align"],_iconOnly:[516,"_icon-only"],_label:[1],_smartButton:[1,"_smart-button"],state:[32]}]);function defineCustomElement(){if("undefined"==typeof customElements)return;["kol-badge","kol-badge","kol-button-wc","kol-icon","kol-span-wc","kol-tooltip"].forEach((t=>{switch(t){case"kol-badge":customElements.get(t)||customElements.define(t,KolBadge);break;case"kol-badge":customElements.get(t)||defineCustomElement();break;case"kol-button-wc":customElements.get(t)||defineCustomElement$1();break;case"kol-icon":customElements.get(t)||defineCustomElement$4();break;case"kol-span-wc":customElements.get(t)||defineCustomElement$3();break;case"kol-tooltip":customElements.get(t)||defineCustomElement$2()}}))}export{KolBadge as K,defineCustomElement$1 as a,defineCustomElement as b,KolButtonWc as c,defineCustomElement$2 as d,propergateSubmitEventToForm as e,watchButtonVariant as f,KolTooltip as g,propergateFocus as p,validateTabIndex as v,watchTooltipAlignment as w};