@aquera/nile-elements 2.0.18 → 2.0.20

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 (138) hide show
  1. package/README.md +10 -0
  2. package/demo/index.js +0 -1
  3. package/dist/index.cjs.js +1 -1
  4. package/dist/index.esm.js +1 -1
  5. package/dist/index.js +1275 -490
  6. package/dist/nile-badge/index.cjs.js +1 -1
  7. package/dist/nile-badge/index.esm.js +1 -1
  8. package/dist/nile-badge/nile-badge.cjs.js +1 -1
  9. package/dist/nile-badge/nile-badge.cjs.js.map +1 -1
  10. package/dist/nile-badge/nile-badge.css.cjs.js +1 -1
  11. package/dist/nile-badge/nile-badge.css.cjs.js.map +1 -1
  12. package/dist/nile-badge/nile-badge.css.esm.js +24 -3
  13. package/dist/nile-badge/nile-badge.esm.js +5 -3
  14. package/dist/nile-breadcrumb/nile-breadcrumb.cjs.js +1 -1
  15. package/dist/nile-breadcrumb/nile-breadcrumb.cjs.js.map +1 -1
  16. package/dist/nile-breadcrumb/nile-breadcrumb.esm.js +2 -2
  17. package/dist/nile-breadcrumb-item/nile-breadcrumb-item.cjs.js +1 -1
  18. package/dist/nile-breadcrumb-item/nile-breadcrumb-item.cjs.js.map +1 -1
  19. package/dist/nile-breadcrumb-item/nile-breadcrumb-item.css.cjs.js +1 -1
  20. package/dist/nile-breadcrumb-item/nile-breadcrumb-item.css.cjs.js.map +1 -1
  21. package/dist/nile-breadcrumb-item/nile-breadcrumb-item.css.esm.js +14 -2
  22. package/dist/nile-breadcrumb-item/nile-breadcrumb-item.esm.js +4 -4
  23. package/dist/nile-calendar/index.cjs.js +1 -1
  24. package/dist/nile-calendar/index.esm.js +1 -1
  25. package/dist/nile-calendar/nile-calendar.cjs.js +2 -1
  26. package/dist/nile-calendar/nile-calendar.cjs.js.map +1 -1
  27. package/dist/nile-calendar/nile-calendar.css.cjs.js +1 -1
  28. package/dist/nile-calendar/nile-calendar.css.cjs.js.map +1 -1
  29. package/dist/nile-calendar/nile-calendar.css.esm.js +357 -2
  30. package/dist/nile-calendar/nile-calendar.esm.js +365 -41
  31. package/dist/nile-calendar/timezones.cjs.js +1 -1
  32. package/dist/nile-calendar/timezones.cjs.js.map +1 -1
  33. package/dist/nile-calendar/timezones.esm.js +1 -1
  34. package/dist/nile-date-time-picker/index.cjs.js +2 -0
  35. package/dist/nile-date-time-picker/index.cjs.js.map +1 -0
  36. package/dist/nile-date-time-picker/index.esm.js +1 -0
  37. package/dist/nile-date-time-picker/nile-date-time-picker.cjs.js +2 -0
  38. package/dist/nile-date-time-picker/nile-date-time-picker.cjs.js.map +1 -0
  39. package/dist/nile-date-time-picker/nile-date-time-picker.css.cjs.js +2 -0
  40. package/dist/nile-date-time-picker/nile-date-time-picker.css.cjs.js.map +1 -0
  41. package/dist/nile-date-time-picker/nile-date-time-picker.css.esm.js +13 -0
  42. package/dist/nile-date-time-picker/nile-date-time-picker.esm.js +53 -0
  43. package/dist/nile-select/index.cjs.js +1 -1
  44. package/dist/nile-select/index.esm.js +1 -1
  45. package/dist/nile-select/nile-select.cjs.js +2 -2
  46. package/dist/nile-select/nile-select.cjs.js.map +1 -1
  47. package/dist/nile-select/nile-select.esm.js +1 -1
  48. package/dist/nile-select/virtual-scroll-helper.cjs.js +1 -1
  49. package/dist/nile-select/virtual-scroll-helper.cjs.js.map +1 -1
  50. package/dist/nile-select/virtual-scroll-helper.esm.js +48 -47
  51. package/dist/nile-virtual-select/nile-virtual-select.cjs.js +4 -4
  52. package/dist/nile-virtual-select/nile-virtual-select.cjs.js.map +1 -1
  53. package/dist/nile-virtual-select/nile-virtual-select.esm.js +2 -2
  54. package/dist/src/index.d.ts +1 -0
  55. package/dist/src/index.js +1 -0
  56. package/dist/src/index.js.map +1 -1
  57. package/dist/src/nile-badge/nile-badge.css.js +24 -3
  58. package/dist/src/nile-badge/nile-badge.css.js.map +1 -1
  59. package/dist/src/nile-badge/nile-badge.d.ts +7 -4
  60. package/dist/src/nile-badge/nile-badge.js +22 -5
  61. package/dist/src/nile-badge/nile-badge.js.map +1 -1
  62. package/dist/src/nile-badge/nile-badge.test.js +88 -0
  63. package/dist/src/nile-badge/nile-badge.test.js.map +1 -1
  64. package/dist/src/nile-breadcrumb/nile-breadcrumb.d.ts +7 -0
  65. package/dist/src/nile-breadcrumb/nile-breadcrumb.js +24 -1
  66. package/dist/src/nile-breadcrumb/nile-breadcrumb.js.map +1 -1
  67. package/dist/src/nile-breadcrumb/nile-breadcrumb.test.js +51 -0
  68. package/dist/src/nile-breadcrumb/nile-breadcrumb.test.js.map +1 -1
  69. package/dist/src/nile-breadcrumb-item/nile-breadcrumb-item.css.js +12 -0
  70. package/dist/src/nile-breadcrumb-item/nile-breadcrumb-item.css.js.map +1 -1
  71. package/dist/src/nile-breadcrumb-item/nile-breadcrumb-item.d.ts +5 -0
  72. package/dist/src/nile-breadcrumb-item/nile-breadcrumb-item.js +9 -0
  73. package/dist/src/nile-breadcrumb-item/nile-breadcrumb-item.js.map +1 -1
  74. package/dist/src/nile-calendar/nile-calendar.css.js +355 -0
  75. package/dist/src/nile-calendar/nile-calendar.css.js.map +1 -1
  76. package/dist/src/nile-calendar/nile-calendar.d.ts +175 -0
  77. package/dist/src/nile-calendar/nile-calendar.js +1726 -26
  78. package/dist/src/nile-calendar/nile-calendar.js.map +1 -1
  79. package/dist/src/nile-calendar/nile-calendar.test.d.ts +1 -0
  80. package/dist/src/nile-calendar/nile-calendar.test.js +3580 -0
  81. package/dist/src/nile-calendar/nile-calendar.test.js.map +1 -1
  82. package/dist/src/nile-calendar/timezones.d.ts +21 -0
  83. package/dist/src/nile-calendar/timezones.js +49 -0
  84. package/dist/src/nile-calendar/timezones.js.map +1 -1
  85. package/dist/src/nile-date-time-picker/index.d.ts +1 -0
  86. package/dist/src/nile-date-time-picker/index.js +2 -0
  87. package/dist/src/nile-date-time-picker/index.js.map +1 -0
  88. package/dist/src/nile-date-time-picker/nile-date-time-picker.css.d.ts +11 -0
  89. package/dist/src/nile-date-time-picker/nile-date-time-picker.css.js +49 -0
  90. package/dist/src/nile-date-time-picker/nile-date-time-picker.css.js.map +1 -0
  91. package/dist/src/nile-date-time-picker/nile-date-time-picker.d.ts +173 -0
  92. package/dist/src/nile-date-time-picker/nile-date-time-picker.js +1270 -0
  93. package/dist/src/nile-date-time-picker/nile-date-time-picker.js.map +1 -0
  94. package/dist/src/nile-date-time-picker/nile-date-time-picker.test.d.ts +143 -0
  95. package/dist/src/nile-date-time-picker/nile-date-time-picker.test.js +7277 -0
  96. package/dist/src/nile-date-time-picker/nile-date-time-picker.test.js.map +1 -0
  97. package/dist/src/nile-select/nile-select.d.ts +1 -0
  98. package/dist/src/nile-select/nile-select.js +16 -1
  99. package/dist/src/nile-select/nile-select.js.map +1 -1
  100. package/dist/src/nile-select/nile-select.test.js +430 -5
  101. package/dist/src/nile-select/nile-select.test.js.map +1 -1
  102. package/dist/src/nile-select/virtual-scroll-helper.js +7 -4
  103. package/dist/src/nile-select/virtual-scroll-helper.js.map +1 -1
  104. package/dist/src/nile-virtual-select/nile-virtual-select.d.ts +3 -1
  105. package/dist/src/nile-virtual-select/nile-virtual-select.js +14 -6
  106. package/dist/src/nile-virtual-select/nile-virtual-select.js.map +1 -1
  107. package/dist/src/nile-virtual-select/nile-virtual-select.test.js +115 -1
  108. package/dist/src/nile-virtual-select/nile-virtual-select.test.js.map +1 -1
  109. package/dist/src/version.js +1 -1
  110. package/dist/src/version.js.map +1 -1
  111. package/dist/tsconfig.tsbuildinfo +1 -1
  112. package/dist/utilities/animation-registry.cjs.js +1 -1
  113. package/dist/utilities/animation-registry.cjs.js.map +1 -1
  114. package/dist/utilities/animation-registry.esm.js +1 -1
  115. package/package.json +3 -1
  116. package/scripts/coverage-report.mjs +96 -0
  117. package/src/index.ts +1 -0
  118. package/src/nile-badge/nile-badge.css.ts +24 -3
  119. package/src/nile-badge/nile-badge.test.ts +102 -0
  120. package/src/nile-badge/nile-badge.ts +28 -5
  121. package/src/nile-breadcrumb/nile-breadcrumb.test.ts +57 -0
  122. package/src/nile-breadcrumb/nile-breadcrumb.ts +19 -0
  123. package/src/nile-breadcrumb-item/nile-breadcrumb-item.css.ts +12 -0
  124. package/src/nile-breadcrumb-item/nile-breadcrumb-item.ts +7 -0
  125. package/src/nile-calendar/nile-calendar.css.ts +355 -0
  126. package/src/nile-calendar/nile-calendar.test.ts +3793 -0
  127. package/src/nile-calendar/nile-calendar.ts +1760 -28
  128. package/src/nile-calendar/timezones.ts +57 -0
  129. package/src/nile-date-time-picker/index.ts +1 -0
  130. package/src/nile-date-time-picker/nile-date-time-picker.css.ts +54 -0
  131. package/src/nile-date-time-picker/nile-date-time-picker.test.ts +7886 -0
  132. package/src/nile-date-time-picker/nile-date-time-picker.ts +1153 -0
  133. package/src/nile-select/nile-select.test.ts +560 -5
  134. package/src/nile-select/nile-select.ts +21 -1
  135. package/src/nile-select/virtual-scroll-helper.ts +7 -4
  136. package/src/nile-virtual-select/nile-virtual-select.test.ts +139 -1
  137. package/src/nile-virtual-select/nile-virtual-select.ts +17 -6
  138. package/vscode-html-custom-data.json +200 -20
@@ -1 +1 @@
1
- {"version":3,"file":"nile-badge.test.js","sourceRoot":"","sources":["../../../src/nile-badge/nile-badge.test.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,MAAM,EAAE,OAAO,EAAE,IAAI,EAAE,cAAc,EAAE,MAAM,kBAAkB,CAAC;AACzE,OAAO,cAAc,CAAC;AACtB,OAAO,SAAS,MAAM,cAAc,CAAC;AACrC,OAAO,EAAE,MAAM,EAAE,MAAM,kBAAkB,CAAC;AAE1C,QAAQ,CAAC,WAAW,EAAE,GAAG,EAAE;IACzB,oBAAoB;IACpB,EAAE,CAAC,iCAAiC,EAAE,KAAK,IAAI,EAAE;QAC/C,MAAM,EAAE,GAAG,MAAM,OAAO,CAAY,IAAI,CAAA,2BAA2B,CAAC,CAAC;QACrE,MAAM,CAAC,EAAE,CAAC,CAAC,EAAE,CAAC,KAAK,CAAC;IACtB,CAAC,CAAC,CAAC;IAEH,EAAE,CAAC,8BAA8B,EAAE,KAAK,IAAI,EAAE;QAC5C,MAAM,EAAE,GAAG,MAAM,OAAO,CAAY,IAAI,CAAA,2BAA2B,CAAC,CAAC;QACrE,MAAM,CAAC,EAAE,CAAC,UAAU,CAAC,CAAC,EAAE,CAAC,GAAG,CAAC,EAAE,CAAC,IAAI,CAAC;IACvC,CAAC,CAAC,CAAC;IAEH,EAAE,CAAC,yCAAyC,EAAE,KAAK,IAAI,EAAE;QACvD,MAAM,EAAE,GAAG,MAAM,OAAO,CAAY,IAAI,CAAA,2BAA2B,CAAC,CAAC;QACrE,MAAM,IAAI,GAAG,EAAE,CAAC,UAAW,CAAC,aAAa,CAAC,MAAM,CAAC,CAAC;QAClD,MAAM,CAAC,IAAI,CAAC,CAAC,EAAE,CAAC,KAAK,CAAC;IACxB,CAAC,CAAC,CAAC;IAEH,EAAE,CAAC,+BAA+B,EAAE,KAAK,IAAI,EAAE;QAC7C,MAAM,EAAE,GAAG,MAAM,OAAO,CAAY,IAAI,CAAA,qCAAqC,CAAC,CAAC;QAC/E,MAAM,CAAC,EAAE,CAAC,WAAY,CAAC,IAAI,EAAE,CAAC,CAAC,EAAE,CAAC,KAAK,CAAC,YAAY,CAAC,CAAC;IACxD,CAAC,CAAC,CAAC;IAEH,EAAE,CAAC,+BAA+B,EAAE,KAAK,IAAI,EAAE;QAC7C,MAAM,EAAE,GAAG,MAAM,OAAO,CAAY,IAAI,CAAA,2BAA2B,CAAC,CAAC;QACrE,MAAM,IAAI,GAAG,EAAE,CAAC,UAAW,CAAC,aAAa,CAAC,MAAM,CAAC,CAAC;QAClD,MAAM,CAAC,IAAI,CAAC,CAAC,EAAE,CAAC,KAAK,CAAC;IACxB,CAAC,CAAC,CAAC;IAEH,6BAA6B;IAC7B,EAAE,CAAC,0CAA0C,EAAE,KAAK,IAAI,EAAE;QACxD,MAAM,EAAE,GAAG,MAAM,OAAO,CAAY,IAAI,CAAA,2BAA2B,CAAC,CAAC;QACrE,MAAM,CAAC,EAAE,CAAC,OAAO,CAAC,CAAC,EAAE,CAAC,KAAK,CAAC,QAAQ,CAAC,CAAC;IACxC,CAAC,CAAC,CAAC;IAEH,EAAE,CAAC,yCAAyC,EAAE,KAAK,IAAI,EAAE;QACvD,MAAM,EAAE,GAAG,MAAM,OAAO,CAAY,IAAI,CAAA,2BAA2B,CAAC,CAAC;QACrE,MAAM,CAAC,EAAE,CAAC,OAAO,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,KAAK,CAAC;IACjC,CAAC,CAAC,CAAC;IAEH,EAAE,CAAC,gDAAgD,EAAE,KAAK,IAAI,EAAE;QAC9D,MAAM,EAAE,GAAG,MAAM,OAAO,CAAY,IAAI,CAAA,2BAA2B,CAAC,CAAC;QACrE,MAAM,CAAC,EAAE,CAAC,QAAQ,CAAC,CAAC,EAAE,CAAC,KAAK,CAAC,aAAa,CAAC,CAAC;IAC9C,CAAC,CAAC,CAAC;IAEH,wBAAwB;IACxB,EAAE,CAAC,uCAAuC,EAAE,KAAK,IAAI,EAAE;QACrD,MAAM,EAAE,GAAG,MAAM,OAAO,CAAY,IAAI,CAAA,6CAA6C,CAAC,CAAC;QACvF,MAAM,IAAI,GAAG,EAAE,CAAC,UAAW,CAAC,aAAa,CAAC,MAAM,CAAC,CAAC;QAClD,MAAM,CAAC,IAAK,CAAC,SAAS,CAAC,QAAQ,CAAC,gBAAgB,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,IAAI,CAAC;IAChE,CAAC,CAAC,CAAC;IAEH,EAAE,CAAC,wCAAwC,EAAE,KAAK,IAAI,EAAE;QACtD,MAAM,EAAE,GAAG,MAAM,OAAO,CAAY,IAAI,CAAA,6CAA6C,CAAC,CAAC;QACvF,MAAM,IAAI,GAAG,EAAE,CAAC,UAAW,CAAC,aAAa,CAAC,MAAM,CAAC,CAAC;QAClD,MAAM,CAAC,IAAK,CAAC,SAAS,CAAC,QAAQ,CAAC,gBAAgB,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,IAAI,CAAC;IAChE,CAAC,CAAC,CAAC;IAEH,EAAE,CAAC,uCAAuC,EAAE,KAAK,IAAI,EAAE;QACrD,MAAM,EAAE,GAAG,MAAM,OAAO,CAAY,IAAI,CAAA,4CAA4C,CAAC,CAAC;QACtF,MAAM,IAAI,GAAG,EAAE,CAAC,UAAW,CAAC,aAAa,CAAC,MAAM,CAAC,CAAC;QAClD,MAAM,CAAC,IAAK,CAAC,SAAS,CAAC,QAAQ,CAAC,eAAe,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,IAAI,CAAC;IAC/D,CAAC,CAAC,CAAC;IAEH,EAAE,CAAC,wCAAwC,EAAE,KAAK,IAAI,EAAE;QACtD,MAAM,EAAE,GAAG,MAAM,OAAO,CAAY,IAAI,CAAA,6CAA6C,CAAC,CAAC;QACvF,MAAM,IAAI,GAAG,EAAE,CAAC,UAAW,CAAC,aAAa,CAAC,MAAM,CAAC,CAAC;QAClD,MAAM,CAAC,IAAK,CAAC,SAAS,CAAC,QAAQ,CAAC,gBAAgB,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,IAAI,CAAC;IAChE,CAAC,CAAC,CAAC;IAEH,EAAE,CAAC,sCAAsC,EAAE,KAAK,IAAI,EAAE;QACpD,MAAM,EAAE,GAAG,MAAM,OAAO,CAAY,IAAI,CAAA,2CAA2C,CAAC,CAAC;QACrF,MAAM,IAAI,GAAG,EAAE,CAAC,UAAW,CAAC,aAAa,CAAC,MAAM,CAAC,CAAC;QAClD,MAAM,CAAC,IAAK,CAAC,SAAS,CAAC,QAAQ,CAAC,cAAc,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,IAAI,CAAC;IAC9D,CAAC,CAAC,CAAC;IAEH,EAAE,CAAC,qCAAqC,EAAE,KAAK,IAAI,EAAE;QACnD,MAAM,EAAE,GAAG,MAAM,OAAO,CAAY,IAAI,CAAA,0CAA0C,CAAC,CAAC;QACpF,MAAM,IAAI,GAAG,EAAE,CAAC,UAAW,CAAC,aAAa,CAAC,MAAM,CAAC,CAAC;QAClD,MAAM,CAAC,IAAK,CAAC,SAAS,CAAC,QAAQ,CAAC,aAAa,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,IAAI,CAAC;IAC7D,CAAC,CAAC,CAAC;IAEH,EAAE,CAAC,qCAAqC,EAAE,KAAK,IAAI,EAAE;QACnD,MAAM,EAAE,GAAG,MAAM,OAAO,CAAY,IAAI,CAAA,0CAA0C,CAAC,CAAC;QACpF,MAAM,IAAI,GAAG,EAAE,CAAC,UAAW,CAAC,aAAa,CAAC,MAAM,CAAC,CAAC;QAClD,MAAM,CAAC,IAAK,CAAC,SAAS,CAAC,QAAQ,CAAC,aAAa,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,IAAI,CAAC;IAC7D,CAAC,CAAC,CAAC;IAEH,EAAE,CAAC,sCAAsC,EAAE,KAAK,IAAI,EAAE;QACpD,MAAM,EAAE,GAAG,MAAM,OAAO,CAAY,IAAI,CAAA,2CAA2C,CAAC,CAAC;QACrF,MAAM,IAAI,GAAG,EAAE,CAAC,UAAW,CAAC,aAAa,CAAC,MAAM,CAAC,CAAC;QAClD,MAAM,CAAC,IAAK,CAAC,SAAS,CAAC,QAAQ,CAAC,cAAc,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,IAAI,CAAC;IAC9D,CAAC,CAAC,CAAC;IAEH,EAAE,CAAC,2CAA2C,EAAE,KAAK,IAAI,EAAE;QACzD,MAAM,EAAE,GAAG,MAAM,OAAO,CAAY,IAAI,CAAA,gDAAgD,CAAC,CAAC;QAC1F,MAAM,IAAI,GAAG,EAAE,CAAC,UAAW,CAAC,aAAa,CAAC,MAAM,CAAC,CAAC;QAClD,MAAM,CAAC,IAAK,CAAC,SAAS,CAAC,QAAQ,CAAC,mBAAmB,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,IAAI,CAAC;IACnE,CAAC,CAAC,CAAC;IAEH,EAAE,CAAC,qCAAqC,EAAE,KAAK,IAAI,EAAE;QACnD,MAAM,EAAE,GAAG,MAAM,OAAO,CAAY,IAAI,CAAA,0CAA0C,CAAC,CAAC;QACpF,MAAM,IAAI,GAAG,EAAE,CAAC,UAAW,CAAC,aAAa,CAAC,MAAM,CAAC,CAAC;QAClD,MAAM,CAAC,IAAK,CAAC,SAAS,CAAC,QAAQ,CAAC,aAAa,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,IAAI,CAAC;IAC7D,CAAC,CAAC,CAAC;IAEH,EAAE,CAAC,uCAAuC,EAAE,KAAK,IAAI,EAAE;QACrD,MAAM,EAAE,GAAG,MAAM,OAAO,CAAY,IAAI,CAAA,4CAA4C,CAAC,CAAC;QACtF,MAAM,IAAI,GAAG,EAAE,CAAC,UAAW,CAAC,aAAa,CAAC,MAAM,CAAC,CAAC;QAClD,MAAM,CAAC,IAAK,CAAC,SAAS,CAAC,QAAQ,CAAC,eAAe,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,IAAI,CAAC;IAC/D,CAAC,CAAC,CAAC;IAEH,EAAE,CAAC,uCAAuC,EAAE,KAAK,IAAI,EAAE;QACrD,MAAM,EAAE,GAAG,MAAM,OAAO,CAAY,IAAI,CAAA,4CAA4C,CAAC,CAAC;QACtF,MAAM,IAAI,GAAG,EAAE,CAAC,UAAW,CAAC,aAAa,CAAC,MAAM,CAAC,CAAC;QAClD,MAAM,CAAC,IAAK,CAAC,SAAS,CAAC,QAAQ,CAAC,eAAe,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,IAAI,CAAC;IAC/D,CAAC,CAAC,CAAC;IAEH,EAAE,CAAC,qCAAqC,EAAE,KAAK,IAAI,EAAE;QACnD,MAAM,EAAE,GAAG,MAAM,OAAO,CAAY,IAAI,CAAA,0CAA0C,CAAC,CAAC;QACpF,MAAM,IAAI,GAAG,EAAE,CAAC,UAAW,CAAC,aAAa,CAAC,MAAM,CAAC,CAAC;QAClD,MAAM,CAAC,IAAK,CAAC,SAAS,CAAC,QAAQ,CAAC,aAAa,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,IAAI,CAAC;IAC7D,CAAC,CAAC,CAAC;IAEH,EAAE,CAAC,uCAAuC,EAAE,KAAK,IAAI,EAAE;QACrD,MAAM,EAAE,GAAG,MAAM,OAAO,CAAY,IAAI,CAAA,4CAA4C,CAAC,CAAC;QACtF,MAAM,IAAI,GAAG,EAAE,CAAC,UAAW,CAAC,aAAa,CAAC,MAAM,CAAC,CAAC;QAClD,MAAM,CAAC,IAAK,CAAC,SAAS,CAAC,QAAQ,CAAC,eAAe,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,IAAI,CAAC;IAC/D,CAAC,CAAC,CAAC;IAEH,EAAE,CAAC,0CAA0C,EAAE,KAAK,IAAI,EAAE;QACxD,MAAM,EAAE,GAAG,MAAM,OAAO,CAAY,IAAI,CAAA,+CAA+C,CAAC,CAAC;QACzF,MAAM,IAAI,GAAG,EAAE,CAAC,UAAW,CAAC,aAAa,CAAC,MAAM,CAAC,CAAC;QAClD,MAAM,CAAC,IAAK,CAAC,SAAS,CAAC,QAAQ,CAAC,kBAAkB,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,IAAI,CAAC;IAClE,CAAC,CAAC,CAAC;IAEH,EAAE,CAAC,sCAAsC,EAAE,KAAK,IAAI,EAAE;QACpD,MAAM,EAAE,GAAG,MAAM,OAAO,CAAY,IAAI,CAAA,6CAA6C,CAAC,CAAC;QACvF,MAAM,CAAC,EAAE,CAAC,YAAY,CAAC,SAAS,CAAC,CAAC,CAAC,EAAE,CAAC,KAAK,CAAC,SAAS,CAAC,CAAC;IACzD,CAAC,CAAC,CAAC;IAEH,kBAAkB;IAClB,EAAE,CAAC,qDAAqD,EAAE,KAAK,IAAI,EAAE;QACnE,MAAM,EAAE,GAAG,MAAM,OAAO,CAAY,IAAI,CAAA,mCAAmC,CAAC,CAAC;QAC7E,MAAM,IAAI,GAAG,EAAE,CAAC,UAAW,CAAC,aAAa,CAAC,MAAM,CAAC,CAAC;QAClD,MAAM,CAAC,IAAK,CAAC,SAAS,CAAC,QAAQ,CAAC,gBAAgB,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,IAAI,CAAC;IAChE,CAAC,CAAC,CAAC;IAEH,EAAE,CAAC,0DAA0D,EAAE,KAAK,IAAI,EAAE;QACxE,MAAM,EAAE,GAAG,MAAM,OAAO,CAAY,IAAI,CAAA,2BAA2B,CAAC,CAAC;QACrE,MAAM,IAAI,GAAG,EAAE,CAAC,UAAW,CAAC,aAAa,CAAC,MAAM,CAAC,CAAC;QAClD,MAAM,CAAC,IAAK,CAAC,SAAS,CAAC,QAAQ,CAAC,gBAAgB,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,KAAK,CAAC;IACjE,CAAC,CAAC,CAAC;IAEH,EAAE,CAAC,sCAAsC,EAAE,KAAK,IAAI,EAAE;QACpD,MAAM,EAAE,GAAG,MAAM,OAAO,CAAY,IAAI,CAAA,mCAAmC,CAAC,CAAC;QAC7E,MAAM,CAAC,EAAE,CAAC,YAAY,CAAC,SAAS,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,IAAI,CAAC;IAChD,CAAC,CAAC,CAAC;IAEH,mBAAmB;IACnB,EAAE,CAAC,wDAAwD,EAAE,KAAK,IAAI,EAAE;QACtE,MAAM,EAAE,GAAG,MAAM,OAAO,CAAY,IAAI,CAAA,2BAA2B,CAAC,CAAC;QACrE,MAAM,IAAI,GAAG,EAAE,CAAC,UAAW,CAAC,aAAa,CAAC,MAAM,CAAC,CAAC;QAClD,MAAM,CAAC,IAAK,CAAC,SAAS,CAAC,QAAQ,CAAC,oBAAoB,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,IAAI,CAAC;IACpE,CAAC,CAAC,CAAC;IAEH,EAAE,CAAC,8CAA8C,EAAE,KAAK,IAAI,EAAE;QAC5D,MAAM,EAAE,GAAG,MAAM,OAAO,CAAY,IAAI,CAAA,mDAAmD,CAAC,CAAC;QAC7F,MAAM,IAAI,GAAG,EAAE,CAAC,UAAW,CAAC,aAAa,CAAC,MAAM,CAAC,CAAC;QAClD,MAAM,CAAC,IAAK,CAAC,SAAS,CAAC,QAAQ,CAAC,qBAAqB,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,IAAI,CAAC;IACrE,CAAC,CAAC,CAAC;IAEH,EAAE,CAAC,4CAA4C,EAAE,KAAK,IAAI,EAAE;QAC1D,MAAM,EAAE,GAAG,MAAM,OAAO,CAAY,IAAI,CAAA,iDAAiD,CAAC,CAAC;QAC3F,MAAM,IAAI,GAAG,EAAE,CAAC,UAAW,CAAC,aAAa,CAAC,MAAM,CAAC,CAAC;QAClD,MAAM,CAAC,IAAK,CAAC,SAAS,CAAC,QAAQ,CAAC,gBAAgB,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,IAAI,CAAC;IAChE,CAAC,CAAC,CAAC;IAEH,EAAE,CAAC,qDAAqD,EAAE,KAAK,IAAI,EAAE;QACnE,MAAM,EAAE,GAAG,MAAM,OAAO,CAAY,IAAI,CAAA,mDAAmD,CAAC,CAAC;QAC7F,MAAM,IAAI,GAAG,EAAE,CAAC,UAAW,CAAC,aAAa,CAAC,MAAM,CAAC,CAAC;QAClD,MAAM,CAAC,IAAK,CAAC,SAAS,CAAC,QAAQ,CAAC,gBAAgB,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,IAAI,CAAC;IAChE,CAAC,CAAC,CAAC;IAEH,EAAE,CAAC,mDAAmD,EAAE,KAAK,IAAI,EAAE;QACjE,MAAM,EAAE,GAAG,MAAM,OAAO,CAAY,IAAI,CAAA,iDAAiD,CAAC,CAAC;QAC3F,MAAM,IAAI,GAAG,EAAE,CAAC,UAAW,CAAC,aAAa,CAAC,MAAM,CAAC,CAAC;QAClD,MAAM,CAAC,IAAK,CAAC,SAAS,CAAC,QAAQ,CAAC,gBAAgB,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,IAAI,CAAC;IAChE,CAAC,CAAC,CAAC;IAEH,EAAE,CAAC,uCAAuC,EAAE,KAAK,IAAI,EAAE;QACrD,MAAM,EAAE,GAAG,MAAM,OAAO,CAAY,IAAI,CAAA,mDAAmD,CAAC,CAAC;QAC7F,MAAM,CAAC,EAAE,CAAC,YAAY,CAAC,UAAU,CAAC,CAAC,CAAC,EAAE,CAAC,KAAK,CAAC,cAAc,CAAC,CAAC;IAC/D,CAAC,CAAC,CAAC;IAEH,oBAAoB;IACpB,EAAE,CAAC,2BAA2B,EAAE,KAAK,IAAI,EAAE;QACzC,MAAM,EAAE,GAAG,MAAM,OAAO,CAAY,IAAI,CAAA,2BAA2B,CAAC,CAAC;QACrE,MAAM,IAAI,GAAG,EAAE,CAAC,UAAW,CAAC,aAAa,CAAC,gBAAgB,CAAC,CAAC;QAC5D,MAAM,CAAC,IAAI,CAAC,CAAC,EAAE,CAAC,KAAK,CAAC;IACxB,CAAC,CAAC,CAAC;IAEH,EAAE,CAAC,8BAA8B,EAAE,KAAK,IAAI,EAAE;QAC5C,MAAM,EAAE,GAAG,MAAM,OAAO,CAAY,IAAI,CAAA,2BAA2B,CAAC,CAAC;QACrE,MAAM,OAAO,GAAG,EAAE,CAAC,UAAW,CAAC,aAAa,CAAC,mBAAmB,CAAC,CAAC;QAClE,MAAM,CAAC,OAAO,CAAC,CAAC,EAAE,CAAC,KAAK,CAAC;IAC3B,CAAC,CAAC,CAAC;IAEH,mCAAmC;IACnC,EAAE,CAAC,uCAAuC,EAAE,KAAK,IAAI,EAAE;QACrD,MAAM,EAAE,GAAG,MAAM,OAAO,CAAY,IAAI,CAAA,4CAA4C,CAAC,CAAC;QACtF,EAAE,CAAC,OAAO,GAAG,SAAS,CAAC;QACvB,MAAM,EAAE,CAAC,cAAc,CAAC;QACxB,MAAM,IAAI,GAAG,EAAE,CAAC,UAAW,CAAC,aAAa,CAAC,MAAM,CAAC,CAAC;QAClD,MAAM,CAAC,IAAK,CAAC,SAAS,CAAC,QAAQ,CAAC,gBAAgB,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,IAAI,CAAC;IAChE,CAAC,CAAC,CAAC;IAEH,EAAE,CAAC,uCAAuC,EAAE,KAAK,IAAI,EAAE;QACrD,MAAM,EAAE,GAAG,MAAM,OAAO,CAAY,IAAI,CAAA,2BAA2B,CAAC,CAAC;QACrE,EAAE,CAAC,OAAO,GAAG,IAAI,CAAC;QAClB,MAAM,EAAE,CAAC,cAAc,CAAC;QACxB,MAAM,IAAI,GAAG,EAAE,CAAC,UAAW,CAAC,aAAa,CAAC,MAAM,CAAC,CAAC;QAClD,MAAM,CAAC,IAAK,CAAC,SAAS,CAAC,QAAQ,CAAC,gBAAgB,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,IAAI,CAAC;IAChE,CAAC,CAAC,CAAC;IAEH,EAAE,CAAC,wCAAwC,EAAE,KAAK,IAAI,EAAE;QACtD,MAAM,EAAE,GAAG,MAAM,OAAO,CAAY,IAAI,CAAA,2BAA2B,CAAC,CAAC;QACrE,EAAE,CAAC,QAAQ,GAAG,cAAc,CAAC;QAC7B,MAAM,EAAE,CAAC,cAAc,CAAC;QACxB,MAAM,IAAI,GAAG,EAAE,CAAC,UAAW,CAAC,aAAa,CAAC,MAAM,CAAC,CAAC;QAClD,MAAM,CAAC,IAAK,CAAC,SAAS,CAAC,QAAQ,CAAC,qBAAqB,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,IAAI,CAAC;IACrE,CAAC,CAAC,CAAC;IAEH,6BAA6B;IAC7B,EAAE,CAAC,oCAAoC,EAAE,KAAK,IAAI,EAAE;QAClD,MAAM,EAAE,GAAG,MAAM,OAAO,CAAY,IAAI,CAAA,2BAA2B,CAAC,CAAC;QACrE,MAAM,IAAI,GAAG,EAAE,CAAC,UAAW,CAAC,aAAa,CAAC,MAAM,CAAC,CAAC;QAClD,MAAM,CAAC,IAAK,CAAC,SAAS,CAAC,QAAQ,CAAC,OAAO,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,IAAI,CAAC;IACvD,CAAC,CAAC,CAAC;IAEH,EAAE,CAAC,qCAAqC,EAAE,KAAK,IAAI,EAAE;QACnD,MAAM,EAAE,GAAG,MAAM,OAAO,CAAY,IAAI,CAAA,mDAAmD,CAAC,CAAC;QAC7F,MAAM,IAAI,GAAG,EAAE,CAAC,UAAW,CAAC,aAAa,CAAC,MAAM,CAAC,CAAC;QAClD,MAAM,CAAC,IAAK,CAAC,SAAS,CAAC,QAAQ,CAAC,cAAc,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,IAAI,CAAC;QAC5D,MAAM,CAAC,IAAK,CAAC,SAAS,CAAC,QAAQ,CAAC,gBAAgB,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,IAAI,CAAC;IAChE,CAAC,CAAC,CAAC;IAEH,EAAE,CAAC,sCAAsC,EAAE,KAAK,IAAI,EAAE;QACpD,MAAM,EAAE,GAAG,MAAM,OAAO,CAAY,IAAI,CAAA,qEAAqE,CAAC,CAAC;QAC/G,MAAM,IAAI,GAAG,EAAE,CAAC,UAAW,CAAC,aAAa,CAAC,MAAM,CAAC,CAAC;QAClD,MAAM,CAAC,IAAK,CAAC,SAAS,CAAC,QAAQ,CAAC,gBAAgB,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,IAAI,CAAC;QAC9D,MAAM,CAAC,IAAK,CAAC,SAAS,CAAC,QAAQ,CAAC,qBAAqB,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,IAAI,CAAC;IACrE,CAAC,CAAC,CAAC;IAEH,EAAE,CAAC,2CAA2C,EAAE,KAAK,IAAI,EAAE;QACzD,MAAM,EAAE,GAAG,MAAM,OAAO,CAAY,IAAI,CAAA,6EAA6E,CAAC,CAAC;QACvH,MAAM,IAAI,GAAG,EAAE,CAAC,UAAW,CAAC,aAAa,CAAC,MAAM,CAAC,CAAC;QAClD,MAAM,CAAC,IAAK,CAAC,SAAS,CAAC,QAAQ,CAAC,gBAAgB,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,IAAI,CAAC;QAC9D,MAAM,CAAC,IAAK,CAAC,SAAS,CAAC,QAAQ,CAAC,gBAAgB,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,IAAI,CAAC;QAC9D,MAAM,CAAC,IAAK,CAAC,SAAS,CAAC,QAAQ,CAAC,qBAAqB,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,IAAI,CAAC;IACrE,CAAC,CAAC,CAAC;IAEH,0CAA0C;IAC1C,EAAE,CAAC,wDAAwD,EAAE,KAAK,IAAI,EAAE;QACtE,MAAM,EAAE,GAAG,MAAM,OAAO,CAAY,IAAI,CAAA,6CAA6C,CAAC,CAAC;QACvF,MAAM,IAAI,GAAG,EAAE,CAAC,UAAW,CAAC,aAAa,CAAC,MAAM,CAAC,CAAC;QAClD,MAAM,CAAC,IAAK,CAAC,SAAS,CAAC,QAAQ,CAAC,gBAAgB,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,IAAI,CAAC;QAC9D,MAAM,CAAC,IAAK,CAAC,SAAS,CAAC,QAAQ,CAAC,gBAAgB,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,KAAK,CAAC;QAC/D,MAAM,CAAC,IAAK,CAAC,SAAS,CAAC,QAAQ,CAAC,cAAc,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,KAAK,CAAC;IAC/D,CAAC,CAAC,CAAC;IAEH,EAAE,CAAC,6CAA6C,EAAE,KAAK,IAAI,EAAE;QAC3D,MAAM,EAAE,GAAG,MAAM,OAAO,CAAY,IAAI,CAAA,6CAA6C,CAAC,CAAC;QACvF,EAAE,CAAC,OAAO,GAAG,OAAO,CAAC;QACrB,MAAM,EAAE,CAAC,cAAc,CAAC;QACxB,MAAM,IAAI,GAAG,EAAE,CAAC,UAAW,CAAC,aAAa,CAAC,MAAM,CAAC,CAAC;QAClD,MAAM,CAAC,IAAK,CAAC,SAAS,CAAC,QAAQ,CAAC,cAAc,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,IAAI,CAAC;QAC5D,MAAM,CAAC,IAAK,CAAC,SAAS,CAAC,QAAQ,CAAC,gBAAgB,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,KAAK,CAAC;IACjE,CAAC,CAAC,CAAC;IAEH,4BAA4B;IAC5B,EAAE,CAAC,wCAAwC,EAAE,KAAK,IAAI,EAAE;QACtD,MAAM,EAAE,GAAG,MAAM,OAAO,CAAY,IAAI,CAAA,gDAAgD,CAAC,CAAC;QAC1F,MAAM,MAAM,GAAG,EAAE,CAAC,aAAa,CAAC,QAAQ,CAAC,CAAC;QAC1C,MAAM,CAAC,MAAM,CAAC,CAAC,EAAE,CAAC,KAAK,CAAC;QACxB,MAAM,CAAC,MAAO,CAAC,WAAW,CAAC,CAAC,EAAE,CAAC,KAAK,CAAC,MAAM,CAAC,CAAC;IAC/C,CAAC,CAAC,CAAC;IAEH,EAAE,CAAC,6CAA6C,EAAE,KAAK,IAAI,EAAE;QAC3D,MAAM,EAAE,GAAG,MAAM,OAAO,CAAY,IAAI,CAAA,uDAAuD,CAAC,CAAC;QACjG,MAAM,KAAK,GAAG,EAAE,CAAC,gBAAgB,CAAC,MAAM,CAAC,CAAC;QAC1C,MAAM,CAAC,KAAK,CAAC,MAAM,CAAC,CAAC,EAAE,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC;IACnC,CAAC,CAAC,CAAC;IAEH,EAAE,CAAC,iCAAiC,EAAE,KAAK,IAAI,EAAE;QAC/C,MAAM,EAAE,GAAG,MAAM,OAAO,CAAY,IAAI,CAAA,2BAA2B,CAAC,CAAC;QACrE,MAAM,CAAC,EAAE,CAAC,WAAY,CAAC,IAAI,EAAE,CAAC,CAAC,EAAE,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC;IAC9C,CAAC,CAAC,CAAC;IAEH,sBAAsB;IACtB,EAAE,CAAC,8CAA8C,EAAE,KAAK,IAAI,EAAE;QAC5D,MAAM,EAAE,GAAG,MAAM,OAAO,CAAY,IAAI,CAAA,2BAA2B,CAAC,CAAC;QACrE,MAAM,WAAW,GAAG,EAAE,CAAC,UAAW,CAAC,aAAa,CAAC,iBAAiB,CAAC,CAAC;QACpE,MAAM,CAAC,WAAW,CAAC,CAAC,EAAE,CAAC,KAAK,CAAC;IAC/B,CAAC,CAAC,CAAC;IAEH,2BAA2B;IAC3B,EAAE,CAAC,4CAA4C,EAAE,KAAK,IAAI,EAAE;QAC1D,MAAM,EAAE,GAAG,MAAM,OAAO,CAAY,IAAI,CAAA,2BAA2B,CAAC,CAAC;QACrE,MAAM,QAAQ,GAAgE,CAAC,SAAS,EAAE,SAAS,EAAE,OAAO,EAAE,SAAS,EAAE,MAAM,CAAC,CAAC;QACjI,KAAK,MAAM,CAAC,IAAI,QAAQ,EAAE,CAAC;YACzB,EAAE,CAAC,OAAO,GAAG,CAAC,CAAC;YACf,MAAM,EAAE,CAAC,cAAc,CAAC;YACxB,MAAM,IAAI,GAAG,EAAE,CAAC,UAAW,CAAC,aAAa,CAAC,MAAM,CAAC,CAAC;YAClD,MAAM,CAAC,IAAK,CAAC,SAAS,CAAC,QAAQ,CAAC,UAAU,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,IAAI,CAAC;QAC7D,CAAC;IACH,CAAC,CAAC,CAAC;IAEH,EAAE,CAAC,oCAAoC,EAAE,KAAK,IAAI,EAAE;QAClD,MAAM,EAAE,GAAG,MAAM,OAAO,CAAY,IAAI,CAAA,2BAA2B,CAAC,CAAC;QACrE,EAAE,CAAC,OAAO,GAAG,IAAI,CAAC;QAClB,MAAM,EAAE,CAAC,cAAc,CAAC;QACxB,IAAI,IAAI,GAAG,EAAE,CAAC,UAAW,CAAC,aAAa,CAAC,MAAM,CAAC,CAAC;QAChD,MAAM,CAAC,IAAK,CAAC,SAAS,CAAC,QAAQ,CAAC,gBAAgB,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,IAAI,CAAC;QAC9D,EAAE,CAAC,OAAO,GAAG,KAAK,CAAC;QACnB,MAAM,EAAE,CAAC,cAAc,CAAC;QACxB,IAAI,GAAG,EAAE,CAAC,UAAW,CAAC,aAAa,CAAC,MAAM,CAAC,CAAC;QAC5C,MAAM,CAAC,IAAK,CAAC,SAAS,CAAC,QAAQ,CAAC,gBAAgB,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,KAAK,CAAC;IACjE,CAAC,CAAC,CAAC;IAEH,0CAA0C;IAC1C,EAAE,CAAC,wCAAwC,EAAE,KAAK,IAAI,EAAE;QACtD,MAAM,EAAE,GAAG,MAAM,OAAO,CAAY,IAAI,CAAA,6CAA6C,CAAC,CAAC;QACvF,MAAM,CAAC,EAAE,CAAC,YAAY,CAAC,SAAS,CAAC,CAAC,CAAC,EAAE,CAAC,KAAK,CAAC,SAAS,CAAC,CAAC;IACzD,CAAC,CAAC,CAAC;IAEH,EAAE,CAAC,wCAAwC,EAAE,KAAK,IAAI,EAAE;QACtD,MAAM,EAAE,GAAG,MAAM,OAAO,CAAY,IAAI,CAAA,6CAA6C,CAAC,CAAC;QACvF,MAAM,CAAC,EAAE,CAAC,YAAY,CAAC,SAAS,CAAC,CAAC,CAAC,EAAE,CAAC,KAAK,CAAC,SAAS,CAAC,CAAC;IACzD,CAAC,CAAC,CAAC;IAEH,EAAE,CAAC,uCAAuC,EAAE,KAAK,IAAI,EAAE;QACrD,MAAM,EAAE,GAAG,MAAM,OAAO,CAAY,IAAI,CAAA,4CAA4C,CAAC,CAAC;QACtF,MAAM,CAAC,EAAE,CAAC,YAAY,CAAC,SAAS,CAAC,CAAC,CAAC,EAAE,CAAC,KAAK,CAAC,QAAQ,CAAC,CAAC;IACxD,CAAC,CAAC,CAAC;IAEH,EAAE,CAAC,wCAAwC,EAAE,KAAK,IAAI,EAAE;QACtD,MAAM,EAAE,GAAG,MAAM,OAAO,CAAY,IAAI,CAAA,6CAA6C,CAAC,CAAC;QACvF,MAAM,CAAC,EAAE,CAAC,YAAY,CAAC,SAAS,CAAC,CAAC,CAAC,EAAE,CAAC,KAAK,CAAC,SAAS,CAAC,CAAC;IACzD,CAAC,CAAC,CAAC;IAEH,EAAE,CAAC,sCAAsC,EAAE,KAAK,IAAI,EAAE;QACpD,MAAM,EAAE,GAAG,MAAM,OAAO,CAAY,IAAI,CAAA,2CAA2C,CAAC,CAAC;QACrF,MAAM,CAAC,EAAE,CAAC,YAAY,CAAC,SAAS,CAAC,CAAC,CAAC,EAAE,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC;IACvD,CAAC,CAAC,CAAC;IAEH,EAAE,CAAC,qCAAqC,EAAE,KAAK,IAAI,EAAE;QACnD,MAAM,EAAE,GAAG,MAAM,OAAO,CAAY,IAAI,CAAA,0CAA0C,CAAC,CAAC;QACpF,MAAM,CAAC,EAAE,CAAC,YAAY,CAAC,SAAS,CAAC,CAAC,CAAC,EAAE,CAAC,KAAK,CAAC,MAAM,CAAC,CAAC;IACtD,CAAC,CAAC,CAAC;IAEH,EAAE,CAAC,qCAAqC,EAAE,KAAK,IAAI,EAAE;QACnD,MAAM,EAAE,GAAG,MAAM,OAAO,CAAY,IAAI,CAAA,0CAA0C,CAAC,CAAC;QACpF,MAAM,CAAC,EAAE,CAAC,YAAY,CAAC,SAAS,CAAC,CAAC,CAAC,EAAE,CAAC,KAAK,CAAC,MAAM,CAAC,CAAC;IACtD,CAAC,CAAC,CAAC;IAEH,EAAE,CAAC,sCAAsC,EAAE,KAAK,IAAI,EAAE;QACpD,MAAM,EAAE,GAAG,MAAM,OAAO,CAAY,IAAI,CAAA,2CAA2C,CAAC,CAAC;QACrF,MAAM,CAAC,EAAE,CAAC,YAAY,CAAC,SAAS,CAAC,CAAC,CAAC,EAAE,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC;IACvD,CAAC,CAAC,CAAC;IAEH,EAAE,CAAC,2CAA2C,EAAE,KAAK,IAAI,EAAE;QACzD,MAAM,EAAE,GAAG,MAAM,OAAO,CAAY,IAAI,CAAA,gDAAgD,CAAC,CAAC;QAC1F,MAAM,CAAC,EAAE,CAAC,YAAY,CAAC,SAAS,CAAC,CAAC,CAAC,EAAE,CAAC,KAAK,CAAC,YAAY,CAAC,CAAC;IAC5D,CAAC,CAAC,CAAC;IAEH,EAAE,CAAC,qCAAqC,EAAE,KAAK,IAAI,EAAE;QACnD,MAAM,EAAE,GAAG,MAAM,OAAO,CAAY,IAAI,CAAA,0CAA0C,CAAC,CAAC;QACpF,MAAM,CAAC,EAAE,CAAC,YAAY,CAAC,SAAS,CAAC,CAAC,CAAC,EAAE,CAAC,KAAK,CAAC,MAAM,CAAC,CAAC;IACtD,CAAC,CAAC,CAAC;IAEH,EAAE,CAAC,uCAAuC,EAAE,KAAK,IAAI,EAAE;QACrD,MAAM,EAAE,GAAG,MAAM,OAAO,CAAY,IAAI,CAAA,4CAA4C,CAAC,CAAC;QACtF,MAAM,CAAC,EAAE,CAAC,YAAY,CAAC,SAAS,CAAC,CAAC,CAAC,EAAE,CAAC,KAAK,CAAC,QAAQ,CAAC,CAAC;IACxD,CAAC,CAAC,CAAC;IAEH,EAAE,CAAC,uCAAuC,EAAE,KAAK,IAAI,EAAE;QACrD,MAAM,EAAE,GAAG,MAAM,OAAO,CAAY,IAAI,CAAA,4CAA4C,CAAC,CAAC;QACtF,MAAM,CAAC,EAAE,CAAC,YAAY,CAAC,SAAS,CAAC,CAAC,CAAC,EAAE,CAAC,KAAK,CAAC,QAAQ,CAAC,CAAC;IACxD,CAAC,CAAC,CAAC;IAEH,EAAE,CAAC,qCAAqC,EAAE,KAAK,IAAI,EAAE;QACnD,MAAM,EAAE,GAAG,MAAM,OAAO,CAAY,IAAI,CAAA,0CAA0C,CAAC,CAAC;QACpF,MAAM,CAAC,EAAE,CAAC,YAAY,CAAC,SAAS,CAAC,CAAC,CAAC,EAAE,CAAC,KAAK,CAAC,MAAM,CAAC,CAAC;IACtD,CAAC,CAAC,CAAC;IAEH,EAAE,CAAC,uCAAuC,EAAE,KAAK,IAAI,EAAE;QACrD,MAAM,EAAE,GAAG,MAAM,OAAO,CAAY,IAAI,CAAA,4CAA4C,CAAC,CAAC;QACtF,MAAM,CAAC,EAAE,CAAC,YAAY,CAAC,SAAS,CAAC,CAAC,CAAC,EAAE,CAAC,KAAK,CAAC,QAAQ,CAAC,CAAC;IACxD,CAAC,CAAC,CAAC;IAEH,EAAE,CAAC,0CAA0C,EAAE,KAAK,IAAI,EAAE;QACxD,MAAM,EAAE,GAAG,MAAM,OAAO,CAAY,IAAI,CAAA,+CAA+C,CAAC,CAAC;QACzF,MAAM,CAAC,EAAE,CAAC,YAAY,CAAC,SAAS,CAAC,CAAC,CAAC,EAAE,CAAC,KAAK,CAAC,WAAW,CAAC,CAAC;IAC3D,CAAC,CAAC,CAAC;IAEH,8BAA8B;IAC9B,EAAE,CAAC,6CAA6C,EAAE,KAAK,IAAI,EAAE;QAC3D,MAAM,EAAE,GAAG,MAAM,OAAO,CAAY,IAAI,CAAA,kDAAkD,CAAC,CAAC;QAC5F,MAAM,CAAC,EAAE,CAAC,YAAY,CAAC,UAAU,CAAC,CAAC,CAAC,EAAE,CAAC,KAAK,CAAC,aAAa,CAAC,CAAC;IAC9D,CAAC,CAAC,CAAC;IAEH,EAAE,CAAC,8CAA8C,EAAE,KAAK,IAAI,EAAE;QAC5D,MAAM,EAAE,GAAG,MAAM,OAAO,CAAY,IAAI,CAAA,mDAAmD,CAAC,CAAC;QAC7F,MAAM,CAAC,EAAE,CAAC,YAAY,CAAC,UAAU,CAAC,CAAC,CAAC,EAAE,CAAC,KAAK,CAAC,cAAc,CAAC,CAAC;IAC/D,CAAC,CAAC,CAAC;IAEH,EAAE,CAAC,4CAA4C,EAAE,KAAK,IAAI,EAAE;QAC1D,MAAM,EAAE,GAAG,MAAM,OAAO,CAAY,IAAI,CAAA,iDAAiD,CAAC,CAAC;QAC3F,MAAM,CAAC,EAAE,CAAC,YAAY,CAAC,UAAU,CAAC,CAAC,CAAC,EAAE,CAAC,KAAK,CAAC,YAAY,CAAC,CAAC;IAC7D,CAAC,CAAC,CAAC;IAEH,mCAAmC;IACnC,EAAE,CAAC,oDAAoD,EAAE,KAAK,IAAI,EAAE;QAClE,MAAM,EAAE,GAAG,MAAM,OAAO,CAAY,IAAI,CAAA,kDAAkD,CAAC,CAAC;QAC5F,EAAE,CAAC,QAAQ,GAAG,cAAc,CAAC;QAC7B,MAAM,EAAE,CAAC,cAAc,CAAC;QACxB,MAAM,IAAI,GAAG,EAAE,CAAC,UAAW,CAAC,aAAa,CAAC,MAAM,CAAC,CAAC;QAClD,MAAM,CAAC,IAAK,CAAC,SAAS,CAAC,QAAQ,CAAC,qBAAqB,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,IAAI,CAAC;QACnE,MAAM,CAAC,IAAK,CAAC,SAAS,CAAC,QAAQ,CAAC,oBAAoB,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,KAAK,CAAC;IACrE,CAAC,CAAC,CAAC;IAEH,EAAE,CAAC,mDAAmD,EAAE,KAAK,IAAI,EAAE;QACjE,MAAM,EAAE,GAAG,MAAM,OAAO,CAAY,IAAI,CAAA,mDAAmD,CAAC,CAAC;QAC7F,EAAE,CAAC,QAAQ,GAAG,YAAY,CAAC;QAC3B,MAAM,EAAE,CAAC,cAAc,CAAC;QACxB,MAAM,IAAI,GAAG,EAAE,CAAC,UAAW,CAAC,aAAa,CAAC,MAAM,CAAC,CAAC;QAClD,MAAM,CAAC,IAAK,CAAC,SAAS,CAAC,QAAQ,CAAC,qBAAqB,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,KAAK,CAAC;IACtE,CAAC,CAAC,CAAC;IAEH,oCAAoC;IACpC,EAAE,CAAC,kCAAkC,EAAE,KAAK,IAAI,EAAE;QAChD,MAAM,EAAE,GAAG,MAAM,OAAO,CAAY,IAAI,CAAA,qDAAqD,CAAC,CAAC;QAC/F,MAAM,IAAI,GAAG,EAAE,CAAC,UAAW,CAAC,aAAa,CAAC,MAAM,CAAC,CAAC;QAClD,MAAM,CAAC,IAAK,CAAC,SAAS,CAAC,QAAQ,CAAC,gBAAgB,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,IAAI,CAAC;QAC9D,MAAM,CAAC,IAAK,CAAC,SAAS,CAAC,QAAQ,CAAC,gBAAgB,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,IAAI,CAAC;IAChE,CAAC,CAAC,CAAC;IAEH,EAAE,CAAC,kCAAkC,EAAE,KAAK,IAAI,EAAE;QAChD,MAAM,EAAE,GAAG,MAAM,OAAO,CAAY,IAAI,CAAA,qDAAqD,CAAC,CAAC;QAC/F,MAAM,IAAI,GAAG,EAAE,CAAC,UAAW,CAAC,aAAa,CAAC,MAAM,CAAC,CAAC;QAClD,MAAM,CAAC,IAAK,CAAC,SAAS,CAAC,QAAQ,CAAC,gBAAgB,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,IAAI,CAAC;QAC9D,MAAM,CAAC,IAAK,CAAC,SAAS,CAAC,QAAQ,CAAC,gBAAgB,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,IAAI,CAAC;IAChE,CAAC,CAAC,CAAC;IAEH,EAAE,CAAC,gCAAgC,EAAE,KAAK,IAAI,EAAE;QAC9C,MAAM,EAAE,GAAG,MAAM,OAAO,CAAY,IAAI,CAAA,mDAAmD,CAAC,CAAC;QAC7F,MAAM,IAAI,GAAG,EAAE,CAAC,UAAW,CAAC,aAAa,CAAC,MAAM,CAAC,CAAC;QAClD,MAAM,CAAC,IAAK,CAAC,SAAS,CAAC,QAAQ,CAAC,cAAc,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,IAAI,CAAC;QAC5D,MAAM,CAAC,IAAK,CAAC,SAAS,CAAC,QAAQ,CAAC,gBAAgB,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,IAAI,CAAC;IAChE,CAAC,CAAC,CAAC;IAEH,EAAE,CAAC,kCAAkC,EAAE,KAAK,IAAI,EAAE;QAChD,MAAM,EAAE,GAAG,MAAM,OAAO,CAAY,IAAI,CAAA,qDAAqD,CAAC,CAAC;QAC/F,MAAM,IAAI,GAAG,EAAE,CAAC,UAAW,CAAC,aAAa,CAAC,MAAM,CAAC,CAAC;QAClD,MAAM,CAAC,IAAK,CAAC,SAAS,CAAC,QAAQ,CAAC,gBAAgB,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,IAAI,CAAC;QAC9D,MAAM,CAAC,IAAK,CAAC,SAAS,CAAC,QAAQ,CAAC,gBAAgB,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,IAAI,CAAC;IAChE,CAAC,CAAC,CAAC;IAEH,EAAE,CAAC,+BAA+B,EAAE,KAAK,IAAI,EAAE;QAC7C,MAAM,EAAE,GAAG,MAAM,OAAO,CAAY,IAAI,CAAA,kDAAkD,CAAC,CAAC;QAC5F,MAAM,IAAI,GAAG,EAAE,CAAC,UAAW,CAAC,aAAa,CAAC,MAAM,CAAC,CAAC;QAClD,MAAM,CAAC,IAAK,CAAC,SAAS,CAAC,QAAQ,CAAC,aAAa,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,IAAI,CAAC;QAC3D,MAAM,CAAC,IAAK,CAAC,SAAS,CAAC,QAAQ,CAAC,gBAAgB,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,IAAI,CAAC;IAChE,CAAC,CAAC,CAAC;IAEH,yCAAyC;IACzC,EAAE,CAAC,+BAA+B,EAAE,KAAK,IAAI,EAAE;QAC7C,MAAM,EAAE,GAAG,MAAM,OAAO,CAAY,IAAI,CAAA,qEAAqE,CAAC,CAAC;QAC/G,MAAM,IAAI,GAAG,EAAE,CAAC,UAAW,CAAC,aAAa,CAAC,MAAM,CAAC,CAAC;QAClD,MAAM,CAAC,IAAK,CAAC,SAAS,CAAC,QAAQ,CAAC,gBAAgB,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,IAAI,CAAC;QAC9D,MAAM,CAAC,IAAK,CAAC,SAAS,CAAC,QAAQ,CAAC,qBAAqB,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,IAAI,CAAC;QACnE,MAAM,CAAC,IAAK,CAAC,SAAS,CAAC,QAAQ,CAAC,gBAAgB,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,IAAI,CAAC;IAChE,CAAC,CAAC,CAAC;IAEH,EAAE,CAAC,+BAA+B,EAAE,KAAK,IAAI,EAAE;QAC7C,MAAM,EAAE,GAAG,MAAM,OAAO,CAAY,IAAI,CAAA,qEAAqE,CAAC,CAAC;QAC/G,MAAM,IAAI,GAAG,EAAE,CAAC,UAAW,CAAC,aAAa,CAAC,MAAM,CAAC,CAAC;QAClD,MAAM,CAAC,IAAK,CAAC,SAAS,CAAC,QAAQ,CAAC,gBAAgB,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,IAAI,CAAC;QAC9D,MAAM,CAAC,IAAK,CAAC,SAAS,CAAC,QAAQ,CAAC,qBAAqB,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,IAAI,CAAC;IACrE,CAAC,CAAC,CAAC;IAEH,EAAE,CAAC,6BAA6B,EAAE,KAAK,IAAI,EAAE;QAC3C,MAAM,EAAE,GAAG,MAAM,OAAO,CAAY,IAAI,CAAA,mEAAmE,CAAC,CAAC;QAC7G,MAAM,IAAI,GAAG,EAAE,CAAC,UAAW,CAAC,aAAa,CAAC,MAAM,CAAC,CAAC;QAClD,MAAM,CAAC,IAAK,CAAC,SAAS,CAAC,QAAQ,CAAC,cAAc,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,IAAI,CAAC;QAC5D,MAAM,CAAC,IAAK,CAAC,SAAS,CAAC,QAAQ,CAAC,qBAAqB,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,IAAI,CAAC;IACrE,CAAC,CAAC,CAAC;IAEH,EAAE,CAAC,+BAA+B,EAAE,KAAK,IAAI,EAAE;QAC7C,MAAM,EAAE,GAAG,MAAM,OAAO,CAAY,IAAI,CAAA,qEAAqE,CAAC,CAAC;QAC/G,MAAM,IAAI,GAAG,EAAE,CAAC,UAAW,CAAC,aAAa,CAAC,MAAM,CAAC,CAAC;QAClD,MAAM,CAAC,IAAK,CAAC,SAAS,CAAC,QAAQ,CAAC,gBAAgB,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,IAAI,CAAC;QAC9D,MAAM,CAAC,IAAK,CAAC,SAAS,CAAC,QAAQ,CAAC,qBAAqB,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,IAAI,CAAC;IACrE,CAAC,CAAC,CAAC;IAEH,EAAE,CAAC,4BAA4B,EAAE,KAAK,IAAI,EAAE;QAC1C,MAAM,EAAE,GAAG,MAAM,OAAO,CAAY,IAAI,CAAA,kEAAkE,CAAC,CAAC;QAC5G,MAAM,IAAI,GAAG,EAAE,CAAC,UAAW,CAAC,aAAa,CAAC,MAAM,CAAC,CAAC;QAClD,MAAM,CAAC,IAAK,CAAC,SAAS,CAAC,QAAQ,CAAC,aAAa,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,IAAI,CAAC;QAC3D,MAAM,CAAC,IAAK,CAAC,SAAS,CAAC,QAAQ,CAAC,qBAAqB,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,IAAI,CAAC;IACrE,CAAC,CAAC,CAAC;IAEH,wCAAwC;IACxC,EAAE,CAAC,8BAA8B,EAAE,KAAK,IAAI,EAAE;QAC5C,MAAM,EAAE,GAAG,MAAM,OAAO,CAAY,IAAI,CAAA,oEAAoE,CAAC,CAAC;QAC9G,MAAM,IAAI,GAAG,EAAE,CAAC,UAAW,CAAC,aAAa,CAAC,MAAM,CAAC,CAAC;QAClD,MAAM,CAAC,IAAK,CAAC,SAAS,CAAC,QAAQ,CAAC,gBAAgB,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,IAAI,CAAC;QAC9D,MAAM,CAAC,IAAK,CAAC,SAAS,CAAC,QAAQ,CAAC,oBAAoB,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,IAAI,CAAC;IACpE,CAAC,CAAC,CAAC;IAEH,EAAE,CAAC,8BAA8B,EAAE,KAAK,IAAI,EAAE;QAC5C,MAAM,EAAE,GAAG,MAAM,OAAO,CAAY,IAAI,CAAA,oEAAoE,CAAC,CAAC;QAC9G,MAAM,IAAI,GAAG,EAAE,CAAC,UAAW,CAAC,aAAa,CAAC,MAAM,CAAC,CAAC;QAClD,MAAM,CAAC,IAAK,CAAC,SAAS,CAAC,QAAQ,CAAC,gBAAgB,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,IAAI,CAAC;QAC9D,MAAM,CAAC,IAAK,CAAC,SAAS,CAAC,QAAQ,CAAC,oBAAoB,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,IAAI,CAAC;IACpE,CAAC,CAAC,CAAC;IAEH,EAAE,CAAC,2BAA2B,EAAE,KAAK,IAAI,EAAE;QACzC,MAAM,EAAE,GAAG,MAAM,OAAO,CAAY,IAAI,CAAA,iEAAiE,CAAC,CAAC;QAC3G,MAAM,IAAI,GAAG,EAAE,CAAC,UAAW,CAAC,aAAa,CAAC,MAAM,CAAC,CAAC;QAClD,MAAM,CAAC,IAAK,CAAC,SAAS,CAAC,QAAQ,CAAC,aAAa,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,IAAI,CAAC;QAC3D,MAAM,CAAC,IAAK,CAAC,SAAS,CAAC,QAAQ,CAAC,oBAAoB,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,IAAI,CAAC;IACpE,CAAC,CAAC,CAAC;IAEH,EAAE,CAAC,6BAA6B,EAAE,KAAK,IAAI,EAAE;QAC3C,MAAM,EAAE,GAAG,MAAM,OAAO,CAAY,IAAI,CAAA,mEAAmE,CAAC,CAAC;QAC7G,MAAM,IAAI,GAAG,EAAE,CAAC,UAAW,CAAC,aAAa,CAAC,MAAM,CAAC,CAAC;QAClD,MAAM,CAAC,IAAK,CAAC,SAAS,CAAC,QAAQ,CAAC,eAAe,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,IAAI,CAAC;QAC7D,MAAM,CAAC,IAAK,CAAC,SAAS,CAAC,QAAQ,CAAC,oBAAoB,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,IAAI,CAAC;IACpE,CAAC,CAAC,CAAC;IAEH,EAAE,CAAC,6BAA6B,EAAE,KAAK,IAAI,EAAE;QAC3C,MAAM,EAAE,GAAG,MAAM,OAAO,CAAY,IAAI,CAAA,mEAAmE,CAAC,CAAC;QAC7G,MAAM,IAAI,GAAG,EAAE,CAAC,UAAW,CAAC,aAAa,CAAC,MAAM,CAAC,CAAC;QAClD,MAAM,CAAC,IAAK,CAAC,SAAS,CAAC,QAAQ,CAAC,eAAe,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,IAAI,CAAC;QAC7D,MAAM,CAAC,IAAK,CAAC,SAAS,CAAC,QAAQ,CAAC,oBAAoB,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,IAAI,CAAC;IACpE,CAAC,CAAC,CAAC;IAEH,mCAAmC;IACnC,EAAE,CAAC,wCAAwC,EAAE,KAAK,IAAI,EAAE;QACtD,MAAM,EAAE,GAAG,MAAM,OAAO,CAAY,IAAI,CAAA,2BAA2B,CAAC,CAAC;QACrE,MAAM,SAAS,GAAyD,CAAC,aAAa,EAAE,cAAc,EAAE,YAAY,CAAC,CAAC;QACtH,KAAK,MAAM,EAAE,IAAI,SAAS,EAAE,CAAC;YAC3B,EAAE,CAAC,QAAQ,GAAG,EAAE,CAAC;YACjB,MAAM,EAAE,CAAC,cAAc,CAAC;YACxB,MAAM,CAAC,EAAE,CAAC,QAAQ,CAAC,CAAC,EAAE,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC;QACnC,CAAC;IACH,CAAC,CAAC,CAAC;IAEH,EAAE,CAAC,iDAAiD,EAAE,KAAK,IAAI,EAAE;QAC/D,MAAM,EAAE,GAAG,MAAM,OAAO,CAAY,IAAI,CAAA,2BAA2B,CAAC,CAAC;QACrE,MAAM,QAAQ,GAA8F,CAAC,SAAS,EAAE,SAAS,EAAE,QAAQ,EAAE,SAAS,EAAE,OAAO,EAAE,MAAM,EAAE,MAAM,EAAE,OAAO,CAAC,CAAC;QAC1L,KAAK,MAAM,CAAC,IAAI,QAAQ,EAAE,CAAC;YACzB,EAAE,CAAC,OAAO,GAAG,CAAC,CAAC;YACf,MAAM,EAAE,CAAC,cAAc,CAAC;YACxB,MAAM,IAAI,GAAG,EAAE,CAAC,UAAW,CAAC,aAAa,CAAC,MAAM,CAAC,CAAC;YAClD,MAAM,CAAC,IAAK,CAAC,SAAS,CAAC,QAAQ,CAAC,UAAU,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,IAAI,CAAC;QAC7D,CAAC;IACH,CAAC,CAAC,CAAC;IAEH,yBAAyB;IACzB,EAAE,CAAC,gCAAgC,EAAE,KAAK,IAAI,EAAE;QAC9C,MAAM,EAAE,GAAG,MAAM,OAAO,CAAY,IAAI,CAAA,2BAA2B,CAAC,CAAC;QACrE,MAAM,IAAI,GAAG,EAAE,CAAC,UAAW,CAAC,aAAa,CAAC,MAAM,CAAC,CAAC;QAClD,MAAM,IAAI,GAAG,IAAK,CAAC,aAAa,CAAC,MAAM,CAAC,CAAC;QACzC,MAAM,CAAC,IAAI,CAAC,CAAC,EAAE,CAAC,KAAK,CAAC;IACxB,CAAC,CAAC,CAAC;IAEH,2BAA2B;IAC3B,EAAE,CAAC,qCAAqC,EAAE,KAAK,IAAI,EAAE;QACnD,MAAM,EAAE,GAAG,MAAM,OAAO,CAAY,IAAI,CAAA,2BAA2B,CAAC,CAAC;QACrE,MAAM,CAAC,EAAE,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,UAAU,CAAC,SAAS,CAAC,CAAC;IACzC,CAAC,CAAC,CAAC;IAEH,EAAE,CAAC,kCAAkC,EAAE,KAAK,IAAI,EAAE;QAChD,MAAM,EAAE,GAAG,MAAM,OAAO,CAAY,IAAI,CAAA,2BAA2B,CAAC,CAAC;QACrE,MAAM,CAAC,EAAE,CAAC,OAAO,CAAC,WAAW,EAAE,CAAC,CAAC,EAAE,CAAC,KAAK,CAAC,YAAY,CAAC,CAAC;IAC1D,CAAC,CAAC,CAAC;IAEH,4BAA4B;IAC5B,EAAE,CAAC,yCAAyC,EAAE,KAAK,IAAI,EAAE;QACvD,MAAM,EAAE,GAAG,MAAM,OAAO,CAAY,IAAI,CAAA,2BAA2B,CAAC,CAAC;QACrE,EAAE,CAAC,YAAY,CAAC,SAAS,EAAE,OAAO,CAAC,CAAC;QACpC,MAAM,EAAE,CAAC,cAAc,CAAC;QACxB,MAAM,CAAC,EAAE,CAAC,OAAO,CAAC,CAAC,EAAE,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC;IACvC,CAAC,CAAC,CAAC;IAEH,EAAE,CAAC,yCAAyC,EAAE,KAAK,IAAI,EAAE;QACvD,MAAM,EAAE,GAAG,MAAM,OAAO,CAAY,IAAI,CAAA,2BAA2B,CAAC,CAAC;QACrE,EAAE,CAAC,YAAY,CAAC,SAAS,EAAE,EAAE,CAAC,CAAC;QAC/B,MAAM,EAAE,CAAC,cAAc,CAAC;QACxB,MAAM,CAAC,EAAE,CAAC,OAAO,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,IAAI,CAAC;IAChC,CAAC,CAAC,CAAC;IAEH,EAAE,CAAC,qCAAqC,EAAE,KAAK,IAAI,EAAE;QACnD,MAAM,EAAE,GAAG,MAAM,OAAO,CAAY,IAAI,CAAA,mCAAmC,CAAC,CAAC;QAC7E,EAAE,CAAC,eAAe,CAAC,SAAS,CAAC,CAAC;QAC9B,MAAM,EAAE,CAAC,cAAc,CAAC;QACxB,MAAM,CAAC,EAAE,CAAC,OAAO,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,KAAK,CAAC;IACjC,CAAC,CAAC,CAAC;IAEH,EAAE,CAAC,0CAA0C,EAAE,KAAK,IAAI,EAAE;QACxD,MAAM,EAAE,GAAG,MAAM,OAAO,CAAY,IAAI,CAAA,2BAA2B,CAAC,CAAC;QACrE,EAAE,CAAC,YAAY,CAAC,UAAU,EAAE,cAAc,CAAC,CAAC;QAC5C,MAAM,EAAE,CAAC,cAAc,CAAC;QACxB,MAAM,CAAC,EAAE,CAAC,QAAQ,CAAC,CAAC,EAAE,CAAC,KAAK,CAAC,cAAc,CAAC,CAAC;IAC/C,CAAC,CAAC,CAAC;IAEH,iBAAiB;IACjB,EAAE,CAAC,+BAA+B,EAAE,KAAK,IAAI,EAAE;QAC7C,MAAM,CAAC,SAAS,CAAC,MAAM,CAAC,CAAC,EAAE,CAAC,KAAK,CAAC;IACpC,CAAC,CAAC,CAAC;IAEH,2BAA2B;IAC3B,EAAE,CAAC,6DAA6D,EAAE,KAAK,IAAI,EAAE;QAC3E,MAAM,EAAE,GAAG,MAAM,OAAO,CAAY,IAAI,CAAA,2BAA2B,CAAC,CAAC;QACrE,EAAE,CAAC,OAAO,GAAG,SAAS,CAAC;QACvB,EAAE,CAAC,OAAO,GAAG,SAAS,CAAC;QACvB,EAAE,CAAC,OAAO,GAAG,OAAO,CAAC;QACrB,MAAM,EAAE,CAAC,cAAc,CAAC;QACxB,MAAM,IAAI,GAAG,EAAE,CAAC,UAAW,CAAC,aAAa,CAAC,MAAM,CAAC,CAAC;QAClD,MAAM,CAAC,IAAK,CAAC,SAAS,CAAC,QAAQ,CAAC,cAAc,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,IAAI,CAAC;IAC9D,CAAC,CAAC,CAAC;IAEH,EAAE,CAAC,qCAAqC,EAAE,KAAK,IAAI,EAAE;QACnD,MAAM,QAAQ,GAAG,GAAG,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC;QAClC,MAAM,EAAE,GAAG,MAAM,OAAO,CAAY,IAAI,CAAA,eAAe,QAAQ,eAAe,CAAC,CAAC;QAChF,MAAM,CAAC,EAAE,CAAC,WAAY,CAAC,IAAI,EAAE,CAAC,CAAC,EAAE,CAAC,KAAK,CAAC,QAAQ,CAAC,CAAC;IACpD,CAAC,CAAC,CAAC;IAEH,EAAE,CAAC,sCAAsC,EAAE,KAAK,IAAI,EAAE;QACpD,MAAM,EAAE,GAAG,MAAM,OAAO,CAAY,IAAI,CAAA,yCAAyC,CAAC,CAAC;QACnF,MAAM,CAAC,EAAE,CAAC,WAAW,CAAC,CAAC,EAAE,CAAC,OAAO,CAAC,UAAU,CAAC,CAAC;IAChD,CAAC,CAAC,CAAC;IAEH,EAAE,CAAC,mCAAmC,EAAE,KAAK,IAAI,EAAE;QACjD,MAAM,EAAE,GAAG,MAAM,OAAO,CAAY,IAAI,CAAA,6BAA6B,CAAC,CAAC;QACvE,MAAM,CAAC,EAAE,CAAC,WAAY,CAAC,IAAI,EAAE,CAAC,CAAC,EAAE,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC;IAChD,CAAC,CAAC,CAAC;IAEH,EAAE,CAAC,oCAAoC,EAAE,KAAK,IAAI,EAAE;QAClD,MAAM,EAAE,GAAG,MAAM,OAAO,CAAY,IAAI,CAAA,sCAAsC,CAAC,CAAC;QAChF,MAAM,CAAC,EAAE,CAAC,WAAW,CAAC,CAAC,EAAE,CAAC,OAAO,CAAC,QAAQ,CAAC,CAAC;IAC9C,CAAC,CAAC,CAAC;IAEH,qBAAqB;IACrB,EAAE,CAAC,qCAAqC,EAAE,KAAK,IAAI,EAAE;QACnD,MAAM,EAAE,GAAG,MAAM,OAAO,CAAY,IAAI,CAAA,2BAA2B,CAAC,CAAC;QACrE,MAAM,CAAC,EAAE,CAAC,IAAI,CAAC,CAAC,EAAE,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC;QAC/B,MAAM,IAAI,GAAG,EAAE,CAAC,UAAW,CAAC,aAAa,CAAC,MAAM,CAAC,CAAC;QAClD,MAAM,CAAC,IAAK,CAAC,SAAS,CAAC,QAAQ,CAAC,WAAW,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,IAAI,CAAC;IAC3D,CAAC,CAAC,CAAC;IAEH,EAAE,CAAC,oCAAoC,EAAE,KAAK,IAAI,EAAE;QAClD,MAAM,EAAE,GAAG,MAAM,OAAO,CAAY,IAAI,CAAA,qCAAqC,CAAC,CAAC;QAC/E,MAAM,CAAC,EAAE,CAAC,YAAY,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC;IACjD,CAAC,CAAC,CAAC;IAEH,KAAK,MAAM,IAAI,IAAI,CAAC,IAAI,EAAE,IAAI,EAAE,IAAI,CAAU,EAAE,CAAC;QAC/C,EAAE,CAAC,8BAA8B,IAAI,aAAa,EAAE,KAAK,IAAI,EAAE;YAC7D,MAAM,EAAE,GAAG,MAAM,OAAO,CAAY,IAAI,CAAA,oBAAoB,IAAI,qBAAqB,CAAC,CAAC;YACvF,MAAM,IAAI,GAAG,EAAE,CAAC,UAAW,CAAC,aAAa,CAAC,MAAM,CAAE,CAAC;YACnD,KAAK,MAAM,KAAK,IAAI,CAAC,IAAI,EAAE,IAAI,EAAE,IAAI,CAAC,EAAE,CAAC;gBACvC,MAAM,CAAC,IAAI,CAAC,SAAS,CAAC,QAAQ,CAAC,UAAU,KAAK,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC,KAAK,CAAC,KAAK,KAAK,IAAI,CAAC,CAAC;YAC9E,CAAC;QACH,CAAC,CAAC,CAAC;IACL,CAAC;IAED,EAAE,CAAC,iDAAiD,EAAE,KAAK,IAAI,EAAE;QAC/D,MAAM,EAAE,GAAG,MAAM,OAAO,CAAY,IAAI,CAAA,gCAAgC,CAAC,CAAC;QAC1E,EAAE,CAAC,IAAI,GAAG,IAAI,CAAC;QACf,MAAM,cAAc,CAAC,EAAE,CAAC,CAAC;QACzB,MAAM,IAAI,GAAG,EAAE,CAAC,UAAW,CAAC,aAAa,CAAC,MAAM,CAAE,CAAC;QACnD,MAAM,CAAC,IAAI,CAAC,SAAS,CAAC,QAAQ,CAAC,WAAW,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,IAAI,CAAC;QACxD,MAAM,CAAC,IAAI,CAAC,SAAS,CAAC,QAAQ,CAAC,WAAW,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,KAAK,CAAC;IAC3D,CAAC,CAAC,CAAC;IAEH,QAAQ,CAAC,iCAAiC,EAAE,GAAG,EAAE;QAC/C,IAAI,MAAwB,CAAC;QAE7B,MAAM,CAAC,GAAG,EAAE;YACV,MAAM,GAAG,QAAQ,CAAC,aAAa,CAAC,OAAO,CAAC,CAAC;YACzC,MAAM,CAAC,WAAW,GAAG;;;;QAInB,CAAC;YACH,QAAQ,CAAC,IAAI,CAAC,WAAW,CAAC,MAAM,CAAC,CAAC;QACpC,CAAC,CAAC,CAAC;QAEH,KAAK,CAAC,GAAG,EAAE,CAAC,MAAM,CAAC,MAAM,EAAE,CAAC,CAAC;QAE7B,EAAE,CAAC,+DAA+D,EAAE,KAAK,IAAI,EAAE;YAC7E,MAAM,OAAO,GAAa,EAAE,CAAC;YAC7B,KAAK,MAAM,IAAI,IAAI,CAAC,IAAI,EAAE,IAAI,EAAE,IAAI,CAAC,EAAE,CAAC;gBACtC,MAAM,EAAE,GAAG,MAAM,OAAO,CAAY,IAAI,CAAA,oBAAoB,IAAI,qBAAqB,CAAC,CAAC;gBACvF,OAAO,CAAC,IAAI,CAAC,EAAE,CAAC,UAAW,CAAC,aAAa,CAAC,MAAM,CAAE,CAAC,qBAAqB,EAAE,CAAC,MAAM,CAAC,CAAC;YACrF,CAAC;YACD,MAAM,CAAC,OAAO,CAAC,CAAC,EAAE,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,EAAE,EAAE,EAAE,EAAE,EAAE,CAAC,CAAC,CAAC;QAC9C,CAAC,CAAC,CAAC;QAEH,EAAE,CAAC,4CAA4C,EAAE,KAAK,IAAI,EAAE;YAC1D,MAAM,EAAE,GAAG,MAAM,OAAO,CAAY,IAAI,CAAA,kDAAkD,CAAC,CAAC;YAC5F,MAAM,KAAK,GAAG,gBAAgB,CAAC,EAAE,CAAC,UAAW,CAAC,aAAa,CAAC,MAAM,CAAE,CAAC,CAAC;YACtE,MAAM,CAAC,KAAK,CAAC,UAAU,CAAC,CAAC,EAAE,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC;YACzC,MAAM,CAAC,KAAK,CAAC,WAAW,CAAC,CAAC,EAAE,CAAC,KAAK,CAAC,MAAM,CAAC,CAAC;QAC7C,CAAC,CAAC,CAAC;IACL,CAAC,CAAC,CAAC;IAEH,QAAQ,CAAC,wCAAwC,EAAE,GAAG,EAAE;QACtD,MAAM,GAAG,GAAG,MAAM,CAAC,OAAO,CAAC;QAC3B,MAAM,IAAI,GAAG,CAAC,QAAgB,EAAE,EAAE,CAAC,GAAG,CAAC,KAAK,CAAC,GAAG,CAAC,OAAO,CAAC,GAAG,QAAQ,IAAI,CAAC,CAAC,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC;QACzF,MAAM,EAAE,GAAG,CAAC,KAAa,EAAE,EAAE,CAAC,oCAAoC,KAAK,GAAG,CAAC;QAE3E,MAAM,KAAK,GAAuC;YAChD,CAAC,OAAO,EAAE,UAAU,EAAE,WAAW,EAAE,WAAW,CAAC;YAC/C,CAAC,QAAQ,EAAE,WAAW,EAAE,YAAY,EAAE,WAAW,CAAC;YAClD,CAAC,SAAS,EAAE,YAAY,EAAE,aAAa,EAAE,aAAa,CAAC;SACxD,CAAC;QAEF,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,OAAO,EAAE,IAAI,EAAE,MAAM,EAAE,IAAI,CAAC,EAAE,CAAC,EAAE,EAAE;YACjD,EAAE,CAAC,GAAG,GAAG,GAAG,CAAC,gBAAgB,OAAO,OAAO,IAAI,MAAM,MAAM,MAAM,IAAI,EAAE,EAAE,GAAG,EAAE;gBAC5E,MAAM,IAAI,GAAG,IAAI,CAAC,WAAW,OAAO,EAAE,CAAC,CAAC;gBACxC,MAAM,CAAC,IAAI,CAAC,CAAC,EAAE,CAAC,OAAO,CAAC,cAAc,OAAO,KAAK,EAAE,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;gBAC/D,MAAM,CAAC,IAAI,CAAC,CAAC,EAAE,CAAC,OAAO,CAAC,gBAAgB,OAAO,KAAK,EAAE,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC;gBACnE,MAAM,CAAC,IAAI,CAAC,CAAC,EAAE,CAAC,OAAO,CAAC,QAAQ,OAAO,KAAK,EAAE,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;gBACzD,MAAM,CAAC,IAAI,CAAC,WAAW,OAAO,sBAAsB,CAAC,CAAC,CAAC,EAAE,CAAC,OAAO,CAAC,gBAAgB,OAAO,KAAK,EAAE,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC;YAC/G,CAAC,CAAC,CAAC;QACL,CAAC,CAAC,CAAC;IACL,CAAC,CAAC,CAAC;AACL,CAAC,CAAC,CAAC","sourcesContent":["import { expect, fixture, html, elementUpdated } from '@open-wc/testing';\nimport './nile-badge';\nimport NileBadge from './nile-badge';\nimport { styles } from './nile-badge.css';\n\ndescribe('NileBadge', () => {\n // === RENDERING ===\n it('1. should render without errors', async () => {\n const el = await fixture<NileBadge>(html`<nile-badge></nile-badge>`);\n expect(el).to.exist;\n });\n\n it('2. should have a shadow root', async () => {\n const el = await fixture<NileBadge>(html`<nile-badge></nile-badge>`);\n expect(el.shadowRoot).to.not.be.null;\n });\n\n it('3. should render a span as base element', async () => {\n const el = await fixture<NileBadge>(html`<nile-badge></nile-badge>`);\n const span = el.shadowRoot!.querySelector('span');\n expect(span).to.exist;\n });\n\n it('4. should render slot content', async () => {\n const el = await fixture<NileBadge>(html`<nile-badge>Badge Text</nile-badge>`);\n expect(el.textContent!.trim()).to.equal('Badge Text');\n });\n\n it('5. should render default slot', async () => {\n const el = await fixture<NileBadge>(html`<nile-badge></nile-badge>`);\n const slot = el.shadowRoot!.querySelector('slot');\n expect(slot).to.exist;\n });\n\n // === DEFAULT PROPERTIES ===\n it('6. should have variant default to normal', async () => {\n const el = await fixture<NileBadge>(html`<nile-badge></nile-badge>`);\n expect(el.variant).to.equal('normal');\n });\n\n it('7. should have rounded default to false', async () => {\n const el = await fixture<NileBadge>(html`<nile-badge></nile-badge>`);\n expect(el.rounded).to.be.false;\n });\n\n it('8. should have pilltype default to badge-color', async () => {\n const el = await fixture<NileBadge>(html`<nile-badge></nile-badge>`);\n expect(el.pilltype).to.equal('badge-color');\n });\n\n // === VARIANT TESTS ===\n it('9. should apply primary variant class', async () => {\n const el = await fixture<NileBadge>(html`<nile-badge variant=\"primary\"></nile-badge>`);\n const span = el.shadowRoot!.querySelector('span');\n expect(span!.classList.contains('badge--primary')).to.be.true;\n });\n\n it('10. should apply success variant class', async () => {\n const el = await fixture<NileBadge>(html`<nile-badge variant=\"success\"></nile-badge>`);\n const span = el.shadowRoot!.querySelector('span');\n expect(span!.classList.contains('badge--success')).to.be.true;\n });\n\n it('11. should apply normal variant class', async () => {\n const el = await fixture<NileBadge>(html`<nile-badge variant=\"normal\"></nile-badge>`);\n const span = el.shadowRoot!.querySelector('span');\n expect(span!.classList.contains('badge--normal')).to.be.true;\n });\n\n it('12. should apply warning variant class', async () => {\n const el = await fixture<NileBadge>(html`<nile-badge variant=\"warning\"></nile-badge>`);\n const span = el.shadowRoot!.querySelector('span');\n expect(span!.classList.contains('badge--warning')).to.be.true;\n });\n\n it('13. should apply error variant class', async () => {\n const el = await fixture<NileBadge>(html`<nile-badge variant=\"error\"></nile-badge>`);\n const span = el.shadowRoot!.querySelector('span');\n expect(span!.classList.contains('badge--error')).to.be.true;\n });\n\n it('14. should apply info variant class', async () => {\n const el = await fixture<NileBadge>(html`<nile-badge variant=\"info\"></nile-badge>`);\n const span = el.shadowRoot!.querySelector('span');\n expect(span!.classList.contains('badge--info')).to.be.true;\n });\n\n it('15. should apply gray variant class', async () => {\n const el = await fixture<NileBadge>(html`<nile-badge variant=\"gray\"></nile-badge>`);\n const span = el.shadowRoot!.querySelector('span');\n expect(span!.classList.contains('badge--gray')).to.be.true;\n });\n\n it('16. should apply brand variant class', async () => {\n const el = await fixture<NileBadge>(html`<nile-badge variant=\"brand\"></nile-badge>`);\n const span = el.shadowRoot!.querySelector('span');\n expect(span!.classList.contains('badge--brand')).to.be.true;\n });\n\n it('17. should apply blue-light variant class', async () => {\n const el = await fixture<NileBadge>(html`<nile-badge variant=\"blue-light\"></nile-badge>`);\n const span = el.shadowRoot!.querySelector('span');\n expect(span!.classList.contains('badge--blue-light')).to.be.true;\n });\n\n it('18. should apply blue variant class', async () => {\n const el = await fixture<NileBadge>(html`<nile-badge variant=\"blue\"></nile-badge>`);\n const span = el.shadowRoot!.querySelector('span');\n expect(span!.classList.contains('badge--blue')).to.be.true;\n });\n\n it('19. should apply indigo variant class', async () => {\n const el = await fixture<NileBadge>(html`<nile-badge variant=\"indigo\"></nile-badge>`);\n const span = el.shadowRoot!.querySelector('span');\n expect(span!.classList.contains('badge--indigo')).to.be.true;\n });\n\n it('20. should apply purple variant class', async () => {\n const el = await fixture<NileBadge>(html`<nile-badge variant=\"purple\"></nile-badge>`);\n const span = el.shadowRoot!.querySelector('span');\n expect(span!.classList.contains('badge--purple')).to.be.true;\n });\n\n it('21. should apply pink variant class', async () => {\n const el = await fixture<NileBadge>(html`<nile-badge variant=\"pink\"></nile-badge>`);\n const span = el.shadowRoot!.querySelector('span');\n expect(span!.classList.contains('badge--pink')).to.be.true;\n });\n\n it('22. should apply orange variant class', async () => {\n const el = await fixture<NileBadge>(html`<nile-badge variant=\"orange\"></nile-badge>`);\n const span = el.shadowRoot!.querySelector('span');\n expect(span!.classList.contains('badge--orange')).to.be.true;\n });\n\n it('23. should apply gray-blue variant class', async () => {\n const el = await fixture<NileBadge>(html`<nile-badge variant=\"gray-blue\"></nile-badge>`);\n const span = el.shadowRoot!.querySelector('span');\n expect(span!.classList.contains('badge--gray-blue')).to.be.true;\n });\n\n it('24. should reflect variant attribute', async () => {\n const el = await fixture<NileBadge>(html`<nile-badge variant=\"success\"></nile-badge>`);\n expect(el.getAttribute('variant')).to.equal('success');\n });\n\n // === ROUNDED ===\n it('25. should apply rounded class when rounded is true', async () => {\n const el = await fixture<NileBadge>(html`<nile-badge rounded></nile-badge>`);\n const span = el.shadowRoot!.querySelector('span');\n expect(span!.classList.contains('badge--rounded')).to.be.true;\n });\n\n it('26. should not apply rounded class when rounded is false', async () => {\n const el = await fixture<NileBadge>(html`<nile-badge></nile-badge>`);\n const span = el.shadowRoot!.querySelector('span');\n expect(span!.classList.contains('badge--rounded')).to.be.false;\n });\n\n it('27. should reflect rounded attribute', async () => {\n const el = await fixture<NileBadge>(html`<nile-badge rounded></nile-badge>`);\n expect(el.hasAttribute('rounded')).to.be.true;\n });\n\n // === PILLTYPE ===\n it('28. should apply badge-color pilltype class by default', async () => {\n const el = await fixture<NileBadge>(html`<nile-badge></nile-badge>`);\n const span = el.shadowRoot!.querySelector('span');\n expect(span!.classList.contains('badge--badge-color')).to.be.true;\n });\n\n it('29. should apply pill-outline pilltype class', async () => {\n const el = await fixture<NileBadge>(html`<nile-badge pilltype=\"pill-outline\"></nile-badge>`);\n const span = el.shadowRoot!.querySelector('span');\n expect(span!.classList.contains('badge--pill-outline')).to.be.true;\n });\n\n it('30. should apply pill-color pilltype class', async () => {\n const el = await fixture<NileBadge>(html`<nile-badge pilltype=\"pill-color\"></nile-badge>`);\n const span = el.shadowRoot!.querySelector('span');\n expect(span!.classList.contains('badge--rounded')).to.be.true;\n });\n\n it('31. should auto-round when pilltype is pill-outline', async () => {\n const el = await fixture<NileBadge>(html`<nile-badge pilltype=\"pill-outline\"></nile-badge>`);\n const span = el.shadowRoot!.querySelector('span');\n expect(span!.classList.contains('badge--rounded')).to.be.true;\n });\n\n it('32. should auto-round when pilltype is pill-color', async () => {\n const el = await fixture<NileBadge>(html`<nile-badge pilltype=\"pill-color\"></nile-badge>`);\n const span = el.shadowRoot!.querySelector('span');\n expect(span!.classList.contains('badge--rounded')).to.be.true;\n });\n\n it('33. should reflect pilltype attribute', async () => {\n const el = await fixture<NileBadge>(html`<nile-badge pilltype=\"pill-outline\"></nile-badge>`);\n expect(el.getAttribute('pilltype')).to.equal('pill-outline');\n });\n\n // === CSS PARTS ===\n it('34. should have base part', async () => {\n const el = await fixture<NileBadge>(html`<nile-badge></nile-badge>`);\n const base = el.shadowRoot!.querySelector('[part~=\"base\"]');\n expect(base).to.exist;\n });\n\n it('35. should have content part', async () => {\n const el = await fixture<NileBadge>(html`<nile-badge></nile-badge>`);\n const content = el.shadowRoot!.querySelector('[part~=\"content\"]');\n expect(content).to.exist;\n });\n\n // === DYNAMIC PROPERTY CHANGES ===\n it('36. should update variant dynamically', async () => {\n const el = await fixture<NileBadge>(html`<nile-badge variant=\"normal\"></nile-badge>`);\n el.variant = 'success';\n await el.updateComplete;\n const span = el.shadowRoot!.querySelector('span');\n expect(span!.classList.contains('badge--success')).to.be.true;\n });\n\n it('37. should update rounded dynamically', async () => {\n const el = await fixture<NileBadge>(html`<nile-badge></nile-badge>`);\n el.rounded = true;\n await el.updateComplete;\n const span = el.shadowRoot!.querySelector('span');\n expect(span!.classList.contains('badge--rounded')).to.be.true;\n });\n\n it('38. should update pilltype dynamically', async () => {\n const el = await fixture<NileBadge>(html`<nile-badge></nile-badge>`);\n el.pilltype = 'pill-outline';\n await el.updateComplete;\n const span = el.shadowRoot!.querySelector('span');\n expect(span!.classList.contains('badge--pill-outline')).to.be.true;\n });\n\n // === CLASS COMBINATIONS ===\n it('39. should have badge class always', async () => {\n const el = await fixture<NileBadge>(html`<nile-badge></nile-badge>`);\n const span = el.shadowRoot!.querySelector('span');\n expect(span!.classList.contains('badge')).to.be.true;\n });\n\n it('40. should handle variant + rounded', async () => {\n const el = await fixture<NileBadge>(html`<nile-badge variant=\"error\" rounded></nile-badge>`);\n const span = el.shadowRoot!.querySelector('span');\n expect(span!.classList.contains('badge--error')).to.be.true;\n expect(span!.classList.contains('badge--rounded')).to.be.true;\n });\n\n it('41. should handle variant + pilltype', async () => {\n const el = await fixture<NileBadge>(html`<nile-badge variant=\"success\" pilltype=\"pill-outline\"></nile-badge>`);\n const span = el.shadowRoot!.querySelector('span');\n expect(span!.classList.contains('badge--success')).to.be.true;\n expect(span!.classList.contains('badge--pill-outline')).to.be.true;\n });\n\n it('42. should handle all properties together', async () => {\n const el = await fixture<NileBadge>(html`<nile-badge variant=\"warning\" rounded pilltype=\"pill-outline\"></nile-badge>`);\n const span = el.shadowRoot!.querySelector('span');\n expect(span!.classList.contains('badge--warning')).to.be.true;\n expect(span!.classList.contains('badge--rounded')).to.be.true;\n expect(span!.classList.contains('badge--pill-outline')).to.be.true;\n });\n\n // === ALL VARIANTS CLASS VERIFICATION ===\n it('43. should not have other variant classes when primary', async () => {\n const el = await fixture<NileBadge>(html`<nile-badge variant=\"primary\"></nile-badge>`);\n const span = el.shadowRoot!.querySelector('span');\n expect(span!.classList.contains('badge--primary')).to.be.true;\n expect(span!.classList.contains('badge--success')).to.be.false;\n expect(span!.classList.contains('badge--error')).to.be.false;\n });\n\n it('44. should switch variant classes on change', async () => {\n const el = await fixture<NileBadge>(html`<nile-badge variant=\"primary\"></nile-badge>`);\n el.variant = 'error';\n await el.updateComplete;\n const span = el.shadowRoot!.querySelector('span');\n expect(span!.classList.contains('badge--error')).to.be.true;\n expect(span!.classList.contains('badge--primary')).to.be.false;\n });\n\n // === CONTENT RENDERING ===\n it('45. should render HTML content in slot', async () => {\n const el = await fixture<NileBadge>(html`<nile-badge><strong>Bold</strong></nile-badge>`);\n const strong = el.querySelector('strong');\n expect(strong).to.exist;\n expect(strong!.textContent).to.equal('Bold');\n });\n\n it('46. should render multiple elements in slot', async () => {\n const el = await fixture<NileBadge>(html`<nile-badge><span>A</span><span>B</span></nile-badge>`);\n const spans = el.querySelectorAll('span');\n expect(spans.length).to.equal(2);\n });\n\n it('47. should handle empty content', async () => {\n const el = await fixture<NileBadge>(html`<nile-badge></nile-badge>`);\n expect(el.textContent!.trim()).to.equal('');\n });\n\n // === BADGE CLASS ===\n it('48. should have badge__content class on slot', async () => {\n const el = await fixture<NileBadge>(html`<nile-badge></nile-badge>`);\n const contentSlot = el.shadowRoot!.querySelector('.badge__content');\n expect(contentSlot).to.exist;\n });\n\n // === REPEATED UPDATES ===\n it('49. should handle multiple variant changes', async () => {\n const el = await fixture<NileBadge>(html`<nile-badge></nile-badge>`);\n const variants: Array<'primary' | 'success' | 'error' | 'warning' | 'info'> = ['primary', 'success', 'error', 'warning', 'info'];\n for (const v of variants) {\n el.variant = v;\n await el.updateComplete;\n const span = el.shadowRoot!.querySelector('span');\n expect(span!.classList.contains(`badge--${v}`)).to.be.true;\n }\n });\n\n it('50. should handle toggling rounded', async () => {\n const el = await fixture<NileBadge>(html`<nile-badge></nile-badge>`);\n el.rounded = true;\n await el.updateComplete;\n let span = el.shadowRoot!.querySelector('span');\n expect(span!.classList.contains('badge--rounded')).to.be.true;\n el.rounded = false;\n await el.updateComplete;\n span = el.shadowRoot!.querySelector('span');\n expect(span!.classList.contains('badge--rounded')).to.be.false;\n });\n\n // === ADDITIONAL VARIANT COMBINATIONS ===\n it('51. primary variant reflects attribute', async () => {\n const el = await fixture<NileBadge>(html`<nile-badge variant=\"primary\"></nile-badge>`);\n expect(el.getAttribute('variant')).to.equal('primary');\n });\n\n it('52. success variant reflects attribute', async () => {\n const el = await fixture<NileBadge>(html`<nile-badge variant=\"success\"></nile-badge>`);\n expect(el.getAttribute('variant')).to.equal('success');\n });\n\n it('53. normal variant reflects attribute', async () => {\n const el = await fixture<NileBadge>(html`<nile-badge variant=\"normal\"></nile-badge>`);\n expect(el.getAttribute('variant')).to.equal('normal');\n });\n\n it('54. warning variant reflects attribute', async () => {\n const el = await fixture<NileBadge>(html`<nile-badge variant=\"warning\"></nile-badge>`);\n expect(el.getAttribute('variant')).to.equal('warning');\n });\n\n it('55. error variant reflects attribute', async () => {\n const el = await fixture<NileBadge>(html`<nile-badge variant=\"error\"></nile-badge>`);\n expect(el.getAttribute('variant')).to.equal('error');\n });\n\n it('56. info variant reflects attribute', async () => {\n const el = await fixture<NileBadge>(html`<nile-badge variant=\"info\"></nile-badge>`);\n expect(el.getAttribute('variant')).to.equal('info');\n });\n\n it('57. gray variant reflects attribute', async () => {\n const el = await fixture<NileBadge>(html`<nile-badge variant=\"gray\"></nile-badge>`);\n expect(el.getAttribute('variant')).to.equal('gray');\n });\n\n it('58. brand variant reflects attribute', async () => {\n const el = await fixture<NileBadge>(html`<nile-badge variant=\"brand\"></nile-badge>`);\n expect(el.getAttribute('variant')).to.equal('brand');\n });\n\n it('59. blue-light variant reflects attribute', async () => {\n const el = await fixture<NileBadge>(html`<nile-badge variant=\"blue-light\"></nile-badge>`);\n expect(el.getAttribute('variant')).to.equal('blue-light');\n });\n\n it('60. blue variant reflects attribute', async () => {\n const el = await fixture<NileBadge>(html`<nile-badge variant=\"blue\"></nile-badge>`);\n expect(el.getAttribute('variant')).to.equal('blue');\n });\n\n it('61. indigo variant reflects attribute', async () => {\n const el = await fixture<NileBadge>(html`<nile-badge variant=\"indigo\"></nile-badge>`);\n expect(el.getAttribute('variant')).to.equal('indigo');\n });\n\n it('62. purple variant reflects attribute', async () => {\n const el = await fixture<NileBadge>(html`<nile-badge variant=\"purple\"></nile-badge>`);\n expect(el.getAttribute('variant')).to.equal('purple');\n });\n\n it('63. pink variant reflects attribute', async () => {\n const el = await fixture<NileBadge>(html`<nile-badge variant=\"pink\"></nile-badge>`);\n expect(el.getAttribute('variant')).to.equal('pink');\n });\n\n it('64. orange variant reflects attribute', async () => {\n const el = await fixture<NileBadge>(html`<nile-badge variant=\"orange\"></nile-badge>`);\n expect(el.getAttribute('variant')).to.equal('orange');\n });\n\n it('65. gray-blue variant reflects attribute', async () => {\n const el = await fixture<NileBadge>(html`<nile-badge variant=\"gray-blue\"></nile-badge>`);\n expect(el.getAttribute('variant')).to.equal('gray-blue');\n });\n\n // === PILLTYPE VARIATIONS ===\n it('66. badge-color pilltype reflects attribute', async () => {\n const el = await fixture<NileBadge>(html`<nile-badge pilltype=\"badge-color\"></nile-badge>`);\n expect(el.getAttribute('pilltype')).to.equal('badge-color');\n });\n\n it('67. pill-outline pilltype reflects attribute', async () => {\n const el = await fixture<NileBadge>(html`<nile-badge pilltype=\"pill-outline\"></nile-badge>`);\n expect(el.getAttribute('pilltype')).to.equal('pill-outline');\n });\n\n it('68. pill-color pilltype reflects attribute', async () => {\n const el = await fixture<NileBadge>(html`<nile-badge pilltype=\"pill-color\"></nile-badge>`);\n expect(el.getAttribute('pilltype')).to.equal('pill-color');\n });\n\n // === DYNAMIC PILLTYPE UPDATES ===\n it('69. should switch from badge-color to pill-outline', async () => {\n const el = await fixture<NileBadge>(html`<nile-badge pilltype=\"badge-color\"></nile-badge>`);\n el.pilltype = 'pill-outline';\n await el.updateComplete;\n const span = el.shadowRoot!.querySelector('span');\n expect(span!.classList.contains('badge--pill-outline')).to.be.true;\n expect(span!.classList.contains('badge--badge-color')).to.be.false;\n });\n\n it('70. should switch from pill-outline to pill-color', async () => {\n const el = await fixture<NileBadge>(html`<nile-badge pilltype=\"pill-outline\"></nile-badge>`);\n el.pilltype = 'pill-color';\n await el.updateComplete;\n const span = el.shadowRoot!.querySelector('span');\n expect(span!.classList.contains('badge--pill-outline')).to.be.false;\n });\n\n // === EACH VARIANT WITH ROUNDED ===\n it('71. primary variant with rounded', async () => {\n const el = await fixture<NileBadge>(html`<nile-badge variant=\"primary\" rounded></nile-badge>`);\n const span = el.shadowRoot!.querySelector('span');\n expect(span!.classList.contains('badge--primary')).to.be.true;\n expect(span!.classList.contains('badge--rounded')).to.be.true;\n });\n\n it('72. success variant with rounded', async () => {\n const el = await fixture<NileBadge>(html`<nile-badge variant=\"success\" rounded></nile-badge>`);\n const span = el.shadowRoot!.querySelector('span');\n expect(span!.classList.contains('badge--success')).to.be.true;\n expect(span!.classList.contains('badge--rounded')).to.be.true;\n });\n\n it('73. error variant with rounded', async () => {\n const el = await fixture<NileBadge>(html`<nile-badge variant=\"error\" rounded></nile-badge>`);\n const span = el.shadowRoot!.querySelector('span');\n expect(span!.classList.contains('badge--error')).to.be.true;\n expect(span!.classList.contains('badge--rounded')).to.be.true;\n });\n\n it('74. warning variant with rounded', async () => {\n const el = await fixture<NileBadge>(html`<nile-badge variant=\"warning\" rounded></nile-badge>`);\n const span = el.shadowRoot!.querySelector('span');\n expect(span!.classList.contains('badge--warning')).to.be.true;\n expect(span!.classList.contains('badge--rounded')).to.be.true;\n });\n\n it('75. info variant with rounded', async () => {\n const el = await fixture<NileBadge>(html`<nile-badge variant=\"info\" rounded></nile-badge>`);\n const span = el.shadowRoot!.querySelector('span');\n expect(span!.classList.contains('badge--info')).to.be.true;\n expect(span!.classList.contains('badge--rounded')).to.be.true;\n });\n\n // === EACH VARIANT WITH PILL-OUTLINE ===\n it('76. primary with pill-outline', async () => {\n const el = await fixture<NileBadge>(html`<nile-badge variant=\"primary\" pilltype=\"pill-outline\"></nile-badge>`);\n const span = el.shadowRoot!.querySelector('span');\n expect(span!.classList.contains('badge--primary')).to.be.true;\n expect(span!.classList.contains('badge--pill-outline')).to.be.true;\n expect(span!.classList.contains('badge--rounded')).to.be.true;\n });\n\n it('77. success with pill-outline', async () => {\n const el = await fixture<NileBadge>(html`<nile-badge variant=\"success\" pilltype=\"pill-outline\"></nile-badge>`);\n const span = el.shadowRoot!.querySelector('span');\n expect(span!.classList.contains('badge--success')).to.be.true;\n expect(span!.classList.contains('badge--pill-outline')).to.be.true;\n });\n\n it('78. error with pill-outline', async () => {\n const el = await fixture<NileBadge>(html`<nile-badge variant=\"error\" pilltype=\"pill-outline\"></nile-badge>`);\n const span = el.shadowRoot!.querySelector('span');\n expect(span!.classList.contains('badge--error')).to.be.true;\n expect(span!.classList.contains('badge--pill-outline')).to.be.true;\n });\n\n it('79. warning with pill-outline', async () => {\n const el = await fixture<NileBadge>(html`<nile-badge variant=\"warning\" pilltype=\"pill-outline\"></nile-badge>`);\n const span = el.shadowRoot!.querySelector('span');\n expect(span!.classList.contains('badge--warning')).to.be.true;\n expect(span!.classList.contains('badge--pill-outline')).to.be.true;\n });\n\n it('80. info with pill-outline', async () => {\n const el = await fixture<NileBadge>(html`<nile-badge variant=\"info\" pilltype=\"pill-outline\"></nile-badge>`);\n const span = el.shadowRoot!.querySelector('span');\n expect(span!.classList.contains('badge--info')).to.be.true;\n expect(span!.classList.contains('badge--pill-outline')).to.be.true;\n });\n\n // === EACH VARIANT WITH BADGE-COLOR ===\n it('81. primary with badge-color', async () => {\n const el = await fixture<NileBadge>(html`<nile-badge variant=\"primary\" pilltype=\"badge-color\"></nile-badge>`);\n const span = el.shadowRoot!.querySelector('span');\n expect(span!.classList.contains('badge--primary')).to.be.true;\n expect(span!.classList.contains('badge--badge-color')).to.be.true;\n });\n\n it('82. success with badge-color', async () => {\n const el = await fixture<NileBadge>(html`<nile-badge variant=\"success\" pilltype=\"badge-color\"></nile-badge>`);\n const span = el.shadowRoot!.querySelector('span');\n expect(span!.classList.contains('badge--success')).to.be.true;\n expect(span!.classList.contains('badge--badge-color')).to.be.true;\n });\n\n it('83. blue with badge-color', async () => {\n const el = await fixture<NileBadge>(html`<nile-badge variant=\"blue\" pilltype=\"badge-color\"></nile-badge>`);\n const span = el.shadowRoot!.querySelector('span');\n expect(span!.classList.contains('badge--blue')).to.be.true;\n expect(span!.classList.contains('badge--badge-color')).to.be.true;\n });\n\n it('84. indigo with badge-color', async () => {\n const el = await fixture<NileBadge>(html`<nile-badge variant=\"indigo\" pilltype=\"badge-color\"></nile-badge>`);\n const span = el.shadowRoot!.querySelector('span');\n expect(span!.classList.contains('badge--indigo')).to.be.true;\n expect(span!.classList.contains('badge--badge-color')).to.be.true;\n });\n\n it('85. purple with badge-color', async () => {\n const el = await fixture<NileBadge>(html`<nile-badge variant=\"purple\" pilltype=\"badge-color\"></nile-badge>`);\n const span = el.shadowRoot!.querySelector('span');\n expect(span!.classList.contains('badge--purple')).to.be.true;\n expect(span!.classList.contains('badge--badge-color')).to.be.true;\n });\n\n // === MULTIPLE DYNAMIC UPDATES ===\n it('86. should cycle through all pilltypes', async () => {\n const el = await fixture<NileBadge>(html`<nile-badge></nile-badge>`);\n const pilltypes: Array<'badge-color' | 'pill-outline' | 'pill-color'> = ['badge-color', 'pill-outline', 'pill-color'];\n for (const pt of pilltypes) {\n el.pilltype = pt;\n await el.updateComplete;\n expect(el.pilltype).to.equal(pt);\n }\n });\n\n it('87. should handle setting variant to each value', async () => {\n const el = await fixture<NileBadge>(html`<nile-badge></nile-badge>`);\n const variants: Array<'primary' | 'success' | 'normal' | 'warning' | 'error' | 'info' | 'gray' | 'brand'> = ['primary', 'success', 'normal', 'warning', 'error', 'info', 'gray', 'brand'];\n for (const v of variants) {\n el.variant = v;\n await el.updateComplete;\n const span = el.shadowRoot!.querySelector('span');\n expect(span!.classList.contains(`badge--${v}`)).to.be.true;\n }\n });\n\n // === SLOT STRUCTURE ===\n it('88. slot should be inside span', async () => {\n const el = await fixture<NileBadge>(html`<nile-badge></nile-badge>`);\n const span = el.shadowRoot!.querySelector('span');\n const slot = span!.querySelector('slot');\n expect(slot).to.exist;\n });\n\n // === ELEMENT INSTANCE ===\n it('89. should be instance of NileBadge', async () => {\n const el = await fixture<NileBadge>(html`<nile-badge></nile-badge>`);\n expect(el).to.be.instanceOf(NileBadge);\n });\n\n it('90. should have correct tag name', async () => {\n const el = await fixture<NileBadge>(html`<nile-badge></nile-badge>`);\n expect(el.tagName.toLowerCase()).to.equal('nile-badge');\n });\n\n // === ATTRIBUTE SETTING ===\n it('91. should set variant via setAttribute', async () => {\n const el = await fixture<NileBadge>(html`<nile-badge></nile-badge>`);\n el.setAttribute('variant', 'error');\n await el.updateComplete;\n expect(el.variant).to.equal('error');\n });\n\n it('92. should set rounded via setAttribute', async () => {\n const el = await fixture<NileBadge>(html`<nile-badge></nile-badge>`);\n el.setAttribute('rounded', '');\n await el.updateComplete;\n expect(el.rounded).to.be.true;\n });\n\n it('93. should remove rounded attribute', async () => {\n const el = await fixture<NileBadge>(html`<nile-badge rounded></nile-badge>`);\n el.removeAttribute('rounded');\n await el.updateComplete;\n expect(el.rounded).to.be.false;\n });\n\n it('94. should set pilltype via setAttribute', async () => {\n const el = await fixture<NileBadge>(html`<nile-badge></nile-badge>`);\n el.setAttribute('pilltype', 'pill-outline');\n await el.updateComplete;\n expect(el.pilltype).to.equal('pill-outline');\n });\n\n // === STYLES ===\n it('95. should have static styles', async () => {\n expect(NileBadge.styles).to.exist;\n });\n\n // === RENDERING STRESS ===\n it('96. should render consistently after multiple rapid updates', async () => {\n const el = await fixture<NileBadge>(html`<nile-badge></nile-badge>`);\n el.variant = 'primary';\n el.variant = 'success';\n el.variant = 'error';\n await el.updateComplete;\n const span = el.shadowRoot!.querySelector('span');\n expect(span!.classList.contains('badge--error')).to.be.true;\n });\n\n it('97. should render long text content', async () => {\n const longText = 'A'.repeat(1000);\n const el = await fixture<NileBadge>(html`<nile-badge>${longText}</nile-badge>`);\n expect(el.textContent!.trim()).to.equal(longText);\n });\n\n it('98. should render special characters', async () => {\n const el = await fixture<NileBadge>(html`<nile-badge>&lt;script&gt;</nile-badge>`);\n expect(el.textContent).to.contain('<script>');\n });\n\n it('99. should handle numeric content', async () => {\n const el = await fixture<NileBadge>(html`<nile-badge>42</nile-badge>`);\n expect(el.textContent!.trim()).to.equal('42');\n });\n\n it('100. should handle unicode content', async () => {\n const el = await fixture<NileBadge>(html`<nile-badge>\\u2713 Done</nile-badge>`);\n expect(el.textContent).to.contain('\\u2713');\n });\n\n // === SIZE TESTS ===\n it('101. should have size default to md', async () => {\n const el = await fixture<NileBadge>(html`<nile-badge></nile-badge>`);\n expect(el.size).to.equal('md');\n const span = el.shadowRoot!.querySelector('span');\n expect(span!.classList.contains('badge--md')).to.be.true;\n });\n\n it('102. should reflect size attribute', async () => {\n const el = await fixture<NileBadge>(html`<nile-badge size=\"lg\"></nile-badge>`);\n expect(el.getAttribute('size')).to.equal('lg');\n });\n\n for (const size of ['sm', 'md', 'lg'] as const) {\n it(`103. should apply only the ${size} size class`, async () => {\n const el = await fixture<NileBadge>(html`<nile-badge size=${size}>Label</nile-badge>`);\n const span = el.shadowRoot!.querySelector('span')!;\n for (const other of ['sm', 'md', 'lg']) {\n expect(span.classList.contains(`badge--${other}`)).to.equal(other === size);\n }\n });\n }\n\n it('104. should update size class when size changes', async () => {\n const el = await fixture<NileBadge>(html`<nile-badge>Label</nile-badge>`);\n el.size = 'sm';\n await elementUpdated(el);\n const span = el.shadowRoot!.querySelector('span')!;\n expect(span.classList.contains('badge--sm')).to.be.true;\n expect(span.classList.contains('badge--md')).to.be.false;\n });\n\n describe('size dimensions (nxtgen tokens)', () => {\n let tokens: HTMLStyleElement;\n\n before(() => {\n tokens = document.createElement('style');\n tokens.textContent = `:root {\n --ng-height-22px: 22px; --ng-height-24px: 24px; --ng-height-28px: 28px;\n --ng-spacing-xxs: 2px; --ng-spacing-xs: 4px; --ng-spacing-md: 8px;\n --ng-spacing-md-alt: 10px; --ng-spacing-lg: 12px;\n }`;\n document.head.appendChild(tokens);\n });\n\n after(() => tokens.remove());\n\n it('105. should render 22px, 24px and 28px tall for sm, md and lg', async () => {\n const heights: number[] = [];\n for (const size of ['sm', 'md', 'lg']) {\n const el = await fixture<NileBadge>(html`<nile-badge size=${size}>Label</nile-badge>`);\n heights.push(el.shadowRoot!.querySelector('span')!.getBoundingClientRect().height);\n }\n expect(heights).to.deep.equal([22, 24, 28]);\n });\n\n it('106. should keep size padding when rounded', async () => {\n const el = await fixture<NileBadge>(html`<nile-badge size=\"lg\" rounded>Label</nile-badge>`);\n const style = getComputedStyle(el.shadowRoot!.querySelector('span')!);\n expect(style.paddingTop).to.equal('4px');\n expect(style.paddingLeft).to.equal('12px');\n });\n });\n\n describe('error / orange / warning colour tokens', () => {\n const css = styles.cssText;\n const rule = (selector: string) => css.slice(css.indexOf(`${selector} {`)).split('}')[0];\n const ng = (token: string) => `var(--ng-componentcolors-utility-${token})`;\n\n const cases: [string, string, string, string][] = [\n ['error', 'error-50', 'error-200', 'error-700'],\n ['orange', 'orange-50', 'orange-300', 'error-600'],\n ['warning', 'warning-50', 'warning-300', 'warning-700'],\n ];\n\n cases.forEach(([variant, fill, border, text], i) => {\n it(`${107 + i}. should map ${variant} to ${fill} / ${border} / ${text}`, () => {\n const base = rule(`.badge--${variant}`);\n expect(base).to.contain(`background-${variant}, ${ng(fill)})`);\n expect(base).to.contain(`border-color-${variant}, ${ng(border)})`);\n expect(base).to.contain(`font-${variant}, ${ng(text)})`);\n expect(rule(`.badge--${variant}.badge--pill-outline`)).to.contain(`pill-outline-${variant}, ${ng(border)})`);\n });\n });\n });\n});\n"]}
1
+ {"version":3,"file":"nile-badge.test.js","sourceRoot":"","sources":["../../../src/nile-badge/nile-badge.test.ts"],"names":[],"mappings":"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","sourcesContent":["import { expect, fixture, html, elementUpdated } from '@open-wc/testing';\nimport './nile-badge';\nimport NileBadge from './nile-badge';\nimport { styles } from './nile-badge.css';\n\ndescribe('NileBadge', () => {\n // === RENDERING ===\n it('1. should render without errors', async () => {\n const el = await fixture<NileBadge>(html`<nile-badge></nile-badge>`);\n expect(el).to.exist;\n });\n\n it('2. should have a shadow root', async () => {\n const el = await fixture<NileBadge>(html`<nile-badge></nile-badge>`);\n expect(el.shadowRoot).to.not.be.null;\n });\n\n it('3. should render a span as base element', async () => {\n const el = await fixture<NileBadge>(html`<nile-badge></nile-badge>`);\n const span = el.shadowRoot!.querySelector('span');\n expect(span).to.exist;\n });\n\n it('4. should render slot content', async () => {\n const el = await fixture<NileBadge>(html`<nile-badge>Badge Text</nile-badge>`);\n expect(el.textContent!.trim()).to.equal('Badge Text');\n });\n\n it('5. should render default slot', async () => {\n const el = await fixture<NileBadge>(html`<nile-badge></nile-badge>`);\n const slot = el.shadowRoot!.querySelector('slot');\n expect(slot).to.exist;\n });\n\n // === DEFAULT PROPERTIES ===\n it('6. should have variant default to normal', async () => {\n const el = await fixture<NileBadge>(html`<nile-badge></nile-badge>`);\n expect(el.variant).to.equal('normal');\n });\n\n it('7. should have rounded default to false', async () => {\n const el = await fixture<NileBadge>(html`<nile-badge></nile-badge>`);\n expect(el.rounded).to.be.false;\n });\n\n it('8. should have pilltype default to badge-color', async () => {\n const el = await fixture<NileBadge>(html`<nile-badge></nile-badge>`);\n expect(el.pilltype).to.equal('badge-color');\n });\n\n // === VARIANT TESTS ===\n it('9. should apply primary variant class', async () => {\n const el = await fixture<NileBadge>(html`<nile-badge variant=\"primary\"></nile-badge>`);\n const span = el.shadowRoot!.querySelector('span');\n expect(span!.classList.contains('badge--primary')).to.be.true;\n });\n\n it('10. should apply success variant class', async () => {\n const el = await fixture<NileBadge>(html`<nile-badge variant=\"success\"></nile-badge>`);\n const span = el.shadowRoot!.querySelector('span');\n expect(span!.classList.contains('badge--success')).to.be.true;\n });\n\n it('11. should apply normal variant class', async () => {\n const el = await fixture<NileBadge>(html`<nile-badge variant=\"normal\"></nile-badge>`);\n const span = el.shadowRoot!.querySelector('span');\n expect(span!.classList.contains('badge--normal')).to.be.true;\n });\n\n it('12. should apply warning variant class', async () => {\n const el = await fixture<NileBadge>(html`<nile-badge variant=\"warning\"></nile-badge>`);\n const span = el.shadowRoot!.querySelector('span');\n expect(span!.classList.contains('badge--warning')).to.be.true;\n });\n\n it('13. should apply error variant class', async () => {\n const el = await fixture<NileBadge>(html`<nile-badge variant=\"error\"></nile-badge>`);\n const span = el.shadowRoot!.querySelector('span');\n expect(span!.classList.contains('badge--error')).to.be.true;\n });\n\n it('14. should apply info variant class', async () => {\n const el = await fixture<NileBadge>(html`<nile-badge variant=\"info\"></nile-badge>`);\n const span = el.shadowRoot!.querySelector('span');\n expect(span!.classList.contains('badge--info')).to.be.true;\n });\n\n it('15. should apply gray variant class', async () => {\n const el = await fixture<NileBadge>(html`<nile-badge variant=\"gray\"></nile-badge>`);\n const span = el.shadowRoot!.querySelector('span');\n expect(span!.classList.contains('badge--gray')).to.be.true;\n });\n\n it('16. should apply brand variant class', async () => {\n const el = await fixture<NileBadge>(html`<nile-badge variant=\"brand\"></nile-badge>`);\n const span = el.shadowRoot!.querySelector('span');\n expect(span!.classList.contains('badge--brand')).to.be.true;\n });\n\n it('17. should apply blue-light variant class', async () => {\n const el = await fixture<NileBadge>(html`<nile-badge variant=\"blue-light\"></nile-badge>`);\n const span = el.shadowRoot!.querySelector('span');\n expect(span!.classList.contains('badge--blue-light')).to.be.true;\n });\n\n it('18. should apply blue variant class', async () => {\n const el = await fixture<NileBadge>(html`<nile-badge variant=\"blue\"></nile-badge>`);\n const span = el.shadowRoot!.querySelector('span');\n expect(span!.classList.contains('badge--blue')).to.be.true;\n });\n\n it('19. should apply indigo variant class', async () => {\n const el = await fixture<NileBadge>(html`<nile-badge variant=\"indigo\"></nile-badge>`);\n const span = el.shadowRoot!.querySelector('span');\n expect(span!.classList.contains('badge--indigo')).to.be.true;\n });\n\n it('20. should apply purple variant class', async () => {\n const el = await fixture<NileBadge>(html`<nile-badge variant=\"purple\"></nile-badge>`);\n const span = el.shadowRoot!.querySelector('span');\n expect(span!.classList.contains('badge--purple')).to.be.true;\n });\n\n it('21. should apply pink variant class', async () => {\n const el = await fixture<NileBadge>(html`<nile-badge variant=\"pink\"></nile-badge>`);\n const span = el.shadowRoot!.querySelector('span');\n expect(span!.classList.contains('badge--pink')).to.be.true;\n });\n\n it('22. should apply orange variant class', async () => {\n const el = await fixture<NileBadge>(html`<nile-badge variant=\"orange\"></nile-badge>`);\n const span = el.shadowRoot!.querySelector('span');\n expect(span!.classList.contains('badge--orange')).to.be.true;\n });\n\n it('23. should apply gray-blue variant class', async () => {\n const el = await fixture<NileBadge>(html`<nile-badge variant=\"gray-blue\"></nile-badge>`);\n const span = el.shadowRoot!.querySelector('span');\n expect(span!.classList.contains('badge--gray-blue')).to.be.true;\n });\n\n it('24. should reflect variant attribute', async () => {\n const el = await fixture<NileBadge>(html`<nile-badge variant=\"success\"></nile-badge>`);\n expect(el.getAttribute('variant')).to.equal('success');\n });\n\n // === ROUNDED ===\n it('25. should apply rounded class when rounded is true', async () => {\n const el = await fixture<NileBadge>(html`<nile-badge rounded></nile-badge>`);\n const span = el.shadowRoot!.querySelector('span');\n expect(span!.classList.contains('badge--rounded')).to.be.true;\n });\n\n it('26. should not apply rounded class when rounded is false', async () => {\n const el = await fixture<NileBadge>(html`<nile-badge></nile-badge>`);\n const span = el.shadowRoot!.querySelector('span');\n expect(span!.classList.contains('badge--rounded')).to.be.false;\n });\n\n it('27. should reflect rounded attribute', async () => {\n const el = await fixture<NileBadge>(html`<nile-badge rounded></nile-badge>`);\n expect(el.hasAttribute('rounded')).to.be.true;\n });\n\n // === PILLTYPE ===\n it('28. should apply badge-color pilltype class by default', async () => {\n const el = await fixture<NileBadge>(html`<nile-badge></nile-badge>`);\n const span = el.shadowRoot!.querySelector('span');\n expect(span!.classList.contains('badge--badge-color')).to.be.true;\n });\n\n it('29. should apply pill-outline pilltype class', async () => {\n const el = await fixture<NileBadge>(html`<nile-badge pilltype=\"pill-outline\"></nile-badge>`);\n const span = el.shadowRoot!.querySelector('span');\n expect(span!.classList.contains('badge--pill-outline')).to.be.true;\n });\n\n it('30. should apply pill-color pilltype class', async () => {\n const el = await fixture<NileBadge>(html`<nile-badge pilltype=\"pill-color\"></nile-badge>`);\n const span = el.shadowRoot!.querySelector('span');\n expect(span!.classList.contains('badge--rounded')).to.be.true;\n });\n\n it('31. should auto-round when pilltype is pill-outline', async () => {\n const el = await fixture<NileBadge>(html`<nile-badge pilltype=\"pill-outline\"></nile-badge>`);\n const span = el.shadowRoot!.querySelector('span');\n expect(span!.classList.contains('badge--rounded')).to.be.true;\n });\n\n it('32. should auto-round when pilltype is pill-color', async () => {\n const el = await fixture<NileBadge>(html`<nile-badge pilltype=\"pill-color\"></nile-badge>`);\n const span = el.shadowRoot!.querySelector('span');\n expect(span!.classList.contains('badge--rounded')).to.be.true;\n });\n\n it('33. should reflect pilltype attribute', async () => {\n const el = await fixture<NileBadge>(html`<nile-badge pilltype=\"pill-outline\"></nile-badge>`);\n expect(el.getAttribute('pilltype')).to.equal('pill-outline');\n });\n\n // === CSS PARTS ===\n it('34. should have base part', async () => {\n const el = await fixture<NileBadge>(html`<nile-badge></nile-badge>`);\n const base = el.shadowRoot!.querySelector('[part~=\"base\"]');\n expect(base).to.exist;\n });\n\n it('35. should have content part', async () => {\n const el = await fixture<NileBadge>(html`<nile-badge></nile-badge>`);\n const content = el.shadowRoot!.querySelector('[part~=\"content\"]');\n expect(content).to.exist;\n });\n\n // === DYNAMIC PROPERTY CHANGES ===\n it('36. should update variant dynamically', async () => {\n const el = await fixture<NileBadge>(html`<nile-badge variant=\"normal\"></nile-badge>`);\n el.variant = 'success';\n await el.updateComplete;\n const span = el.shadowRoot!.querySelector('span');\n expect(span!.classList.contains('badge--success')).to.be.true;\n });\n\n it('37. should update rounded dynamically', async () => {\n const el = await fixture<NileBadge>(html`<nile-badge></nile-badge>`);\n el.rounded = true;\n await el.updateComplete;\n const span = el.shadowRoot!.querySelector('span');\n expect(span!.classList.contains('badge--rounded')).to.be.true;\n });\n\n it('38. should update pilltype dynamically', async () => {\n const el = await fixture<NileBadge>(html`<nile-badge></nile-badge>`);\n el.pilltype = 'pill-outline';\n await el.updateComplete;\n const span = el.shadowRoot!.querySelector('span');\n expect(span!.classList.contains('badge--pill-outline')).to.be.true;\n });\n\n // === CLASS COMBINATIONS ===\n it('39. should have badge class always', async () => {\n const el = await fixture<NileBadge>(html`<nile-badge></nile-badge>`);\n const span = el.shadowRoot!.querySelector('span');\n expect(span!.classList.contains('badge')).to.be.true;\n });\n\n it('40. should handle variant + rounded', async () => {\n const el = await fixture<NileBadge>(html`<nile-badge variant=\"error\" rounded></nile-badge>`);\n const span = el.shadowRoot!.querySelector('span');\n expect(span!.classList.contains('badge--error')).to.be.true;\n expect(span!.classList.contains('badge--rounded')).to.be.true;\n });\n\n it('41. should handle variant + pilltype', async () => {\n const el = await fixture<NileBadge>(html`<nile-badge variant=\"success\" pilltype=\"pill-outline\"></nile-badge>`);\n const span = el.shadowRoot!.querySelector('span');\n expect(span!.classList.contains('badge--success')).to.be.true;\n expect(span!.classList.contains('badge--pill-outline')).to.be.true;\n });\n\n it('42. should handle all properties together', async () => {\n const el = await fixture<NileBadge>(html`<nile-badge variant=\"warning\" rounded pilltype=\"pill-outline\"></nile-badge>`);\n const span = el.shadowRoot!.querySelector('span');\n expect(span!.classList.contains('badge--warning')).to.be.true;\n expect(span!.classList.contains('badge--rounded')).to.be.true;\n expect(span!.classList.contains('badge--pill-outline')).to.be.true;\n });\n\n // === ALL VARIANTS CLASS VERIFICATION ===\n it('43. should not have other variant classes when primary', async () => {\n const el = await fixture<NileBadge>(html`<nile-badge variant=\"primary\"></nile-badge>`);\n const span = el.shadowRoot!.querySelector('span');\n expect(span!.classList.contains('badge--primary')).to.be.true;\n expect(span!.classList.contains('badge--success')).to.be.false;\n expect(span!.classList.contains('badge--error')).to.be.false;\n });\n\n it('44. should switch variant classes on change', async () => {\n const el = await fixture<NileBadge>(html`<nile-badge variant=\"primary\"></nile-badge>`);\n el.variant = 'error';\n await el.updateComplete;\n const span = el.shadowRoot!.querySelector('span');\n expect(span!.classList.contains('badge--error')).to.be.true;\n expect(span!.classList.contains('badge--primary')).to.be.false;\n });\n\n // === CONTENT RENDERING ===\n it('45. should render HTML content in slot', async () => {\n const el = await fixture<NileBadge>(html`<nile-badge><strong>Bold</strong></nile-badge>`);\n const strong = el.querySelector('strong');\n expect(strong).to.exist;\n expect(strong!.textContent).to.equal('Bold');\n });\n\n it('46. should render multiple elements in slot', async () => {\n const el = await fixture<NileBadge>(html`<nile-badge><span>A</span><span>B</span></nile-badge>`);\n const spans = el.querySelectorAll('span');\n expect(spans.length).to.equal(2);\n });\n\n it('47. should handle empty content', async () => {\n const el = await fixture<NileBadge>(html`<nile-badge></nile-badge>`);\n expect(el.textContent!.trim()).to.equal('');\n });\n\n // === BADGE CLASS ===\n it('48. should have badge__content class on slot', async () => {\n const el = await fixture<NileBadge>(html`<nile-badge></nile-badge>`);\n const contentSlot = el.shadowRoot!.querySelector('.badge__content');\n expect(contentSlot).to.exist;\n });\n\n // === REPEATED UPDATES ===\n it('49. should handle multiple variant changes', async () => {\n const el = await fixture<NileBadge>(html`<nile-badge></nile-badge>`);\n const variants: Array<'primary' | 'success' | 'error' | 'warning' | 'info'> = ['primary', 'success', 'error', 'warning', 'info'];\n for (const v of variants) {\n el.variant = v;\n await el.updateComplete;\n const span = el.shadowRoot!.querySelector('span');\n expect(span!.classList.contains(`badge--${v}`)).to.be.true;\n }\n });\n\n it('50. should handle toggling rounded', async () => {\n const el = await fixture<NileBadge>(html`<nile-badge></nile-badge>`);\n el.rounded = true;\n await el.updateComplete;\n let span = el.shadowRoot!.querySelector('span');\n expect(span!.classList.contains('badge--rounded')).to.be.true;\n el.rounded = false;\n await el.updateComplete;\n span = el.shadowRoot!.querySelector('span');\n expect(span!.classList.contains('badge--rounded')).to.be.false;\n });\n\n // === ADDITIONAL VARIANT COMBINATIONS ===\n it('51. primary variant reflects attribute', async () => {\n const el = await fixture<NileBadge>(html`<nile-badge variant=\"primary\"></nile-badge>`);\n expect(el.getAttribute('variant')).to.equal('primary');\n });\n\n it('52. success variant reflects attribute', async () => {\n const el = await fixture<NileBadge>(html`<nile-badge variant=\"success\"></nile-badge>`);\n expect(el.getAttribute('variant')).to.equal('success');\n });\n\n it('53. normal variant reflects attribute', async () => {\n const el = await fixture<NileBadge>(html`<nile-badge variant=\"normal\"></nile-badge>`);\n expect(el.getAttribute('variant')).to.equal('normal');\n });\n\n it('54. warning variant reflects attribute', async () => {\n const el = await fixture<NileBadge>(html`<nile-badge variant=\"warning\"></nile-badge>`);\n expect(el.getAttribute('variant')).to.equal('warning');\n });\n\n it('55. error variant reflects attribute', async () => {\n const el = await fixture<NileBadge>(html`<nile-badge variant=\"error\"></nile-badge>`);\n expect(el.getAttribute('variant')).to.equal('error');\n });\n\n it('56. info variant reflects attribute', async () => {\n const el = await fixture<NileBadge>(html`<nile-badge variant=\"info\"></nile-badge>`);\n expect(el.getAttribute('variant')).to.equal('info');\n });\n\n it('57. gray variant reflects attribute', async () => {\n const el = await fixture<NileBadge>(html`<nile-badge variant=\"gray\"></nile-badge>`);\n expect(el.getAttribute('variant')).to.equal('gray');\n });\n\n it('58. brand variant reflects attribute', async () => {\n const el = await fixture<NileBadge>(html`<nile-badge variant=\"brand\"></nile-badge>`);\n expect(el.getAttribute('variant')).to.equal('brand');\n });\n\n it('59. blue-light variant reflects attribute', async () => {\n const el = await fixture<NileBadge>(html`<nile-badge variant=\"blue-light\"></nile-badge>`);\n expect(el.getAttribute('variant')).to.equal('blue-light');\n });\n\n it('60. blue variant reflects attribute', async () => {\n const el = await fixture<NileBadge>(html`<nile-badge variant=\"blue\"></nile-badge>`);\n expect(el.getAttribute('variant')).to.equal('blue');\n });\n\n it('61. indigo variant reflects attribute', async () => {\n const el = await fixture<NileBadge>(html`<nile-badge variant=\"indigo\"></nile-badge>`);\n expect(el.getAttribute('variant')).to.equal('indigo');\n });\n\n it('62. purple variant reflects attribute', async () => {\n const el = await fixture<NileBadge>(html`<nile-badge variant=\"purple\"></nile-badge>`);\n expect(el.getAttribute('variant')).to.equal('purple');\n });\n\n it('63. pink variant reflects attribute', async () => {\n const el = await fixture<NileBadge>(html`<nile-badge variant=\"pink\"></nile-badge>`);\n expect(el.getAttribute('variant')).to.equal('pink');\n });\n\n it('64. orange variant reflects attribute', async () => {\n const el = await fixture<NileBadge>(html`<nile-badge variant=\"orange\"></nile-badge>`);\n expect(el.getAttribute('variant')).to.equal('orange');\n });\n\n it('65. gray-blue variant reflects attribute', async () => {\n const el = await fixture<NileBadge>(html`<nile-badge variant=\"gray-blue\"></nile-badge>`);\n expect(el.getAttribute('variant')).to.equal('gray-blue');\n });\n\n // === PILLTYPE VARIATIONS ===\n it('66. badge-color pilltype reflects attribute', async () => {\n const el = await fixture<NileBadge>(html`<nile-badge pilltype=\"badge-color\"></nile-badge>`);\n expect(el.getAttribute('pilltype')).to.equal('badge-color');\n });\n\n it('67. pill-outline pilltype reflects attribute', async () => {\n const el = await fixture<NileBadge>(html`<nile-badge pilltype=\"pill-outline\"></nile-badge>`);\n expect(el.getAttribute('pilltype')).to.equal('pill-outline');\n });\n\n it('68. pill-color pilltype reflects attribute', async () => {\n const el = await fixture<NileBadge>(html`<nile-badge pilltype=\"pill-color\"></nile-badge>`);\n expect(el.getAttribute('pilltype')).to.equal('pill-color');\n });\n\n // === DYNAMIC PILLTYPE UPDATES ===\n it('69. should switch from badge-color to pill-outline', async () => {\n const el = await fixture<NileBadge>(html`<nile-badge pilltype=\"badge-color\"></nile-badge>`);\n el.pilltype = 'pill-outline';\n await el.updateComplete;\n const span = el.shadowRoot!.querySelector('span');\n expect(span!.classList.contains('badge--pill-outline')).to.be.true;\n expect(span!.classList.contains('badge--badge-color')).to.be.false;\n });\n\n it('70. should switch from pill-outline to pill-color', async () => {\n const el = await fixture<NileBadge>(html`<nile-badge pilltype=\"pill-outline\"></nile-badge>`);\n el.pilltype = 'pill-color';\n await el.updateComplete;\n const span = el.shadowRoot!.querySelector('span');\n expect(span!.classList.contains('badge--pill-outline')).to.be.false;\n });\n\n // === EACH VARIANT WITH ROUNDED ===\n it('71. primary variant with rounded', async () => {\n const el = await fixture<NileBadge>(html`<nile-badge variant=\"primary\" rounded></nile-badge>`);\n const span = el.shadowRoot!.querySelector('span');\n expect(span!.classList.contains('badge--primary')).to.be.true;\n expect(span!.classList.contains('badge--rounded')).to.be.true;\n });\n\n it('72. success variant with rounded', async () => {\n const el = await fixture<NileBadge>(html`<nile-badge variant=\"success\" rounded></nile-badge>`);\n const span = el.shadowRoot!.querySelector('span');\n expect(span!.classList.contains('badge--success')).to.be.true;\n expect(span!.classList.contains('badge--rounded')).to.be.true;\n });\n\n it('73. error variant with rounded', async () => {\n const el = await fixture<NileBadge>(html`<nile-badge variant=\"error\" rounded></nile-badge>`);\n const span = el.shadowRoot!.querySelector('span');\n expect(span!.classList.contains('badge--error')).to.be.true;\n expect(span!.classList.contains('badge--rounded')).to.be.true;\n });\n\n it('74. warning variant with rounded', async () => {\n const el = await fixture<NileBadge>(html`<nile-badge variant=\"warning\" rounded></nile-badge>`);\n const span = el.shadowRoot!.querySelector('span');\n expect(span!.classList.contains('badge--warning')).to.be.true;\n expect(span!.classList.contains('badge--rounded')).to.be.true;\n });\n\n it('75. info variant with rounded', async () => {\n const el = await fixture<NileBadge>(html`<nile-badge variant=\"info\" rounded></nile-badge>`);\n const span = el.shadowRoot!.querySelector('span');\n expect(span!.classList.contains('badge--info')).to.be.true;\n expect(span!.classList.contains('badge--rounded')).to.be.true;\n });\n\n // === EACH VARIANT WITH PILL-OUTLINE ===\n it('76. primary with pill-outline', async () => {\n const el = await fixture<NileBadge>(html`<nile-badge variant=\"primary\" pilltype=\"pill-outline\"></nile-badge>`);\n const span = el.shadowRoot!.querySelector('span');\n expect(span!.classList.contains('badge--primary')).to.be.true;\n expect(span!.classList.contains('badge--pill-outline')).to.be.true;\n expect(span!.classList.contains('badge--rounded')).to.be.true;\n });\n\n it('77. success with pill-outline', async () => {\n const el = await fixture<NileBadge>(html`<nile-badge variant=\"success\" pilltype=\"pill-outline\"></nile-badge>`);\n const span = el.shadowRoot!.querySelector('span');\n expect(span!.classList.contains('badge--success')).to.be.true;\n expect(span!.classList.contains('badge--pill-outline')).to.be.true;\n });\n\n it('78. error with pill-outline', async () => {\n const el = await fixture<NileBadge>(html`<nile-badge variant=\"error\" pilltype=\"pill-outline\"></nile-badge>`);\n const span = el.shadowRoot!.querySelector('span');\n expect(span!.classList.contains('badge--error')).to.be.true;\n expect(span!.classList.contains('badge--pill-outline')).to.be.true;\n });\n\n it('79. warning with pill-outline', async () => {\n const el = await fixture<NileBadge>(html`<nile-badge variant=\"warning\" pilltype=\"pill-outline\"></nile-badge>`);\n const span = el.shadowRoot!.querySelector('span');\n expect(span!.classList.contains('badge--warning')).to.be.true;\n expect(span!.classList.contains('badge--pill-outline')).to.be.true;\n });\n\n it('80. info with pill-outline', async () => {\n const el = await fixture<NileBadge>(html`<nile-badge variant=\"info\" pilltype=\"pill-outline\"></nile-badge>`);\n const span = el.shadowRoot!.querySelector('span');\n expect(span!.classList.contains('badge--info')).to.be.true;\n expect(span!.classList.contains('badge--pill-outline')).to.be.true;\n });\n\n // === EACH VARIANT WITH BADGE-COLOR ===\n it('81. primary with badge-color', async () => {\n const el = await fixture<NileBadge>(html`<nile-badge variant=\"primary\" pilltype=\"badge-color\"></nile-badge>`);\n const span = el.shadowRoot!.querySelector('span');\n expect(span!.classList.contains('badge--primary')).to.be.true;\n expect(span!.classList.contains('badge--badge-color')).to.be.true;\n });\n\n it('82. success with badge-color', async () => {\n const el = await fixture<NileBadge>(html`<nile-badge variant=\"success\" pilltype=\"badge-color\"></nile-badge>`);\n const span = el.shadowRoot!.querySelector('span');\n expect(span!.classList.contains('badge--success')).to.be.true;\n expect(span!.classList.contains('badge--badge-color')).to.be.true;\n });\n\n it('83. blue with badge-color', async () => {\n const el = await fixture<NileBadge>(html`<nile-badge variant=\"blue\" pilltype=\"badge-color\"></nile-badge>`);\n const span = el.shadowRoot!.querySelector('span');\n expect(span!.classList.contains('badge--blue')).to.be.true;\n expect(span!.classList.contains('badge--badge-color')).to.be.true;\n });\n\n it('84. indigo with badge-color', async () => {\n const el = await fixture<NileBadge>(html`<nile-badge variant=\"indigo\" pilltype=\"badge-color\"></nile-badge>`);\n const span = el.shadowRoot!.querySelector('span');\n expect(span!.classList.contains('badge--indigo')).to.be.true;\n expect(span!.classList.contains('badge--badge-color')).to.be.true;\n });\n\n it('85. purple with badge-color', async () => {\n const el = await fixture<NileBadge>(html`<nile-badge variant=\"purple\" pilltype=\"badge-color\"></nile-badge>`);\n const span = el.shadowRoot!.querySelector('span');\n expect(span!.classList.contains('badge--purple')).to.be.true;\n expect(span!.classList.contains('badge--badge-color')).to.be.true;\n });\n\n // === MULTIPLE DYNAMIC UPDATES ===\n it('86. should cycle through all pilltypes', async () => {\n const el = await fixture<NileBadge>(html`<nile-badge></nile-badge>`);\n const pilltypes: Array<'badge-color' | 'pill-outline' | 'pill-color'> = ['badge-color', 'pill-outline', 'pill-color'];\n for (const pt of pilltypes) {\n el.pilltype = pt;\n await el.updateComplete;\n expect(el.pilltype).to.equal(pt);\n }\n });\n\n it('87. should handle setting variant to each value', async () => {\n const el = await fixture<NileBadge>(html`<nile-badge></nile-badge>`);\n const variants: Array<'primary' | 'success' | 'normal' | 'warning' | 'error' | 'info' | 'gray' | 'brand'> = ['primary', 'success', 'normal', 'warning', 'error', 'info', 'gray', 'brand'];\n for (const v of variants) {\n el.variant = v;\n await el.updateComplete;\n const span = el.shadowRoot!.querySelector('span');\n expect(span!.classList.contains(`badge--${v}`)).to.be.true;\n }\n });\n\n // === SLOT STRUCTURE ===\n it('88. slot should be inside span', async () => {\n const el = await fixture<NileBadge>(html`<nile-badge></nile-badge>`);\n const span = el.shadowRoot!.querySelector('span');\n const slot = span!.querySelector('slot');\n expect(slot).to.exist;\n });\n\n // === ELEMENT INSTANCE ===\n it('89. should be instance of NileBadge', async () => {\n const el = await fixture<NileBadge>(html`<nile-badge></nile-badge>`);\n expect(el).to.be.instanceOf(NileBadge);\n });\n\n it('90. should have correct tag name', async () => {\n const el = await fixture<NileBadge>(html`<nile-badge></nile-badge>`);\n expect(el.tagName.toLowerCase()).to.equal('nile-badge');\n });\n\n // === ATTRIBUTE SETTING ===\n it('91. should set variant via setAttribute', async () => {\n const el = await fixture<NileBadge>(html`<nile-badge></nile-badge>`);\n el.setAttribute('variant', 'error');\n await el.updateComplete;\n expect(el.variant).to.equal('error');\n });\n\n it('92. should set rounded via setAttribute', async () => {\n const el = await fixture<NileBadge>(html`<nile-badge></nile-badge>`);\n el.setAttribute('rounded', '');\n await el.updateComplete;\n expect(el.rounded).to.be.true;\n });\n\n it('93. should remove rounded attribute', async () => {\n const el = await fixture<NileBadge>(html`<nile-badge rounded></nile-badge>`);\n el.removeAttribute('rounded');\n await el.updateComplete;\n expect(el.rounded).to.be.false;\n });\n\n it('94. should set pilltype via setAttribute', async () => {\n const el = await fixture<NileBadge>(html`<nile-badge></nile-badge>`);\n el.setAttribute('pilltype', 'pill-outline');\n await el.updateComplete;\n expect(el.pilltype).to.equal('pill-outline');\n });\n\n // === STYLES ===\n it('95. should have static styles', async () => {\n expect(NileBadge.styles).to.exist;\n });\n\n // === RENDERING STRESS ===\n it('96. should render consistently after multiple rapid updates', async () => {\n const el = await fixture<NileBadge>(html`<nile-badge></nile-badge>`);\n el.variant = 'primary';\n el.variant = 'success';\n el.variant = 'error';\n await el.updateComplete;\n const span = el.shadowRoot!.querySelector('span');\n expect(span!.classList.contains('badge--error')).to.be.true;\n });\n\n it('97. should render long text content', async () => {\n const longText = 'A'.repeat(1000);\n const el = await fixture<NileBadge>(html`<nile-badge>${longText}</nile-badge>`);\n expect(el.textContent!.trim()).to.equal(longText);\n });\n\n it('98. should render special characters', async () => {\n const el = await fixture<NileBadge>(html`<nile-badge>&lt;script&gt;</nile-badge>`);\n expect(el.textContent).to.contain('<script>');\n });\n\n it('99. should handle numeric content', async () => {\n const el = await fixture<NileBadge>(html`<nile-badge>42</nile-badge>`);\n expect(el.textContent!.trim()).to.equal('42');\n });\n\n it('100. should handle unicode content', async () => {\n const el = await fixture<NileBadge>(html`<nile-badge>\\u2713 Done</nile-badge>`);\n expect(el.textContent).to.contain('\\u2713');\n });\n\n // === SIZE TESTS ===\n it('101. should have size default to md', async () => {\n const el = await fixture<NileBadge>(html`<nile-badge></nile-badge>`);\n expect(el.size).to.equal('md');\n const span = el.shadowRoot!.querySelector('span');\n expect(span!.classList.contains('badge--md')).to.be.true;\n });\n\n it('102. should reflect size attribute', async () => {\n const el = await fixture<NileBadge>(html`<nile-badge size=\"lg\"></nile-badge>`);\n expect(el.getAttribute('size')).to.equal('lg');\n });\n\n for (const size of ['sm', 'md', 'lg'] as const) {\n it(`103. should apply only the ${size} size class`, async () => {\n const el = await fixture<NileBadge>(html`<nile-badge size=${size}>Label</nile-badge>`);\n const span = el.shadowRoot!.querySelector('span')!;\n for (const other of ['sm', 'md', 'lg']) {\n expect(span.classList.contains(`badge--${other}`)).to.equal(other === size);\n }\n });\n }\n\n it('104. should update size class when size changes', async () => {\n const el = await fixture<NileBadge>(html`<nile-badge>Label</nile-badge>`);\n el.size = 'sm';\n await elementUpdated(el);\n const span = el.shadowRoot!.querySelector('span')!;\n expect(span.classList.contains('badge--sm')).to.be.true;\n expect(span.classList.contains('badge--md')).to.be.false;\n });\n\n describe('size dimensions (nxtgen tokens)', () => {\n let tokens: HTMLStyleElement;\n\n before(() => {\n tokens = document.createElement('style');\n tokens.textContent = `:root {\n --ng-height-22px: 22px; --ng-height-24px: 24px; --ng-height-28px: 28px;\n --ng-spacing-xxs: 2px; --ng-spacing-xs: 4px; --ng-spacing-md: 8px;\n --ng-spacing-md-alt: 10px; --ng-spacing-lg: 12px;\n }`;\n document.head.appendChild(tokens);\n });\n\n after(() => tokens.remove());\n\n it('105. should render 22px, 24px and 28px tall for sm, md and lg', async () => {\n const heights: number[] = [];\n for (const size of ['sm', 'md', 'lg']) {\n const el = await fixture<NileBadge>(html`<nile-badge size=${size}>Label</nile-badge>`);\n heights.push(el.shadowRoot!.querySelector('span')!.getBoundingClientRect().height);\n }\n expect(heights).to.deep.equal([22, 24, 28]);\n });\n\n it('106. should keep size padding when rounded', async () => {\n const el = await fixture<NileBadge>(html`<nile-badge size=\"lg\" rounded>Label</nile-badge>`);\n const style = getComputedStyle(el.shadowRoot!.querySelector('span')!);\n expect(style.paddingTop).to.equal('4px');\n expect(style.paddingLeft).to.equal('12px');\n });\n });\n\n describe('error / orange / warning colour tokens', () => {\n const css = styles.cssText;\n const rule = (selector: string) => css.slice(css.indexOf(`${selector} {`)).split('}')[0];\n const ng = (token: string) => `var(--ng-componentcolors-utility-${token})`;\n\n const cases: [string, string, string, string][] = [\n ['error', 'error-50', 'error-200', 'error-700'],\n ['orange', 'orange-50', 'orange-300', 'error-600'],\n ['warning', 'warning-50', 'warning-300', 'warning-700'],\n ];\n\n cases.forEach(([variant, fill, border, text], i) => {\n it(`${107 + i}. should map ${variant} to ${fill} / ${border} / ${text}`, () => {\n const base = rule(`.badge--${variant}`);\n expect(base).to.contain(`background-${variant}, ${ng(fill)})`);\n expect(base).to.contain(`border-color-${variant}, ${ng(border)})`);\n expect(base).to.contain(`font-${variant}, ${ng(text)})`);\n expect(rule(`.badge--${variant}.badge--pill-outline`)).to.contain(`pill-outline-${variant}, ${ng(border)})`);\n });\n });\n });\n\n describe('prefix and suffix slots', () => {\n const base = (el: NileBadge) => el.shadowRoot!.querySelector('[part=\"base\"]')!;\n const slotOf = (el: NileBadge, name: string) =>\n el.shadowRoot!.querySelector<HTMLSlotElement>(`slot[name=\"${name}\"]`)!;\n\n it('110. should render prefix and suffix slots with parts', async () => {\n const el = await fixture<NileBadge>(html`<nile-badge>Label</nile-badge>`);\n expect(slotOf(el, 'prefix').getAttribute('part')).to.equal('prefix');\n expect(slotOf(el, 'suffix').getAttribute('part')).to.equal('suffix');\n });\n\n it('111. should render prefix before content and suffix after it', async () => {\n const el = await fixture<NileBadge>(html`<nile-badge>Label</nile-badge>`);\n const parts = [...base(el).children].map(n => n.getAttribute('part'));\n expect(parts).to.deep.equal(['prefix', 'content', 'suffix']);\n });\n\n it('112. should assign prefix content to the prefix slot', async () => {\n const el = await fixture<NileBadge>(html`<nile-badge><span slot=\"prefix\" id=\"p\">●</span>Label</nile-badge>`);\n const assigned = slotOf(el, 'prefix').assignedElements();\n expect(assigned).to.have.length(1);\n expect(assigned[0].id).to.equal('p');\n });\n\n it('113. should assign suffix content to the suffix slot', async () => {\n const el = await fixture<NileBadge>(html`<nile-badge>Label<span slot=\"suffix\" id=\"s\">3</span></nile-badge>`);\n const assigned = slotOf(el, 'suffix').assignedElements();\n expect(assigned).to.have.length(1);\n expect(assigned[0].id).to.equal('s');\n });\n\n it('114. should accept any element in the slots', async () => {\n const el = await fixture<NileBadge>(html`\n <nile-badge>\n <img slot=\"prefix\" alt=\"\" />\n Label\n <button slot=\"suffix\">x</button>\n </nile-badge>\n `);\n expect(slotOf(el, 'prefix').assignedElements()[0].tagName).to.equal('IMG');\n expect(slotOf(el, 'suffix').assignedElements()[0].tagName).to.equal('BUTTON');\n });\n\n it('115. should not add has-prefix or has-suffix classes when slots are empty', async () => {\n const el = await fixture<NileBadge>(html`<nile-badge>Label</nile-badge>`);\n expect(base(el).classList.contains('badge--has-prefix')).to.be.false;\n expect(base(el).classList.contains('badge--has-suffix')).to.be.false;\n });\n\n it('116. should add has-prefix and has-suffix classes when slots are filled', async () => {\n const el = await fixture<NileBadge>(html`\n <nile-badge><span slot=\"prefix\">a</span>Label<span slot=\"suffix\">b</span></nile-badge>\n `);\n expect(base(el).classList.contains('badge--has-prefix')).to.be.true;\n expect(base(el).classList.contains('badge--has-suffix')).to.be.true;\n });\n\n it('117. should update classes when slot content is added later', async () => {\n const el = await fixture<NileBadge>(html`<nile-badge>Label</nile-badge>`);\n const icon = document.createElement('span');\n icon.slot = 'prefix';\n el.prepend(icon);\n await elementUpdated(el);\n await el.updateComplete;\n expect(base(el).classList.contains('badge--has-prefix')).to.be.true;\n });\n\n it('118. should take no space when prefix and suffix are empty', async () => {\n const el = await fixture<NileBadge>(html`<nile-badge>Label</nile-badge>`);\n expect(slotOf(el, 'prefix').getBoundingClientRect().width).to.equal(0);\n expect(slotOf(el, 'suffix').getBoundingClientRect().width).to.equal(0);\n });\n\n it('119. should space filled slots from the content with the spacing token', () => {\n const css = styles.cssText;\n const rule = (selector: string) => css.slice(css.indexOf(`${selector} {`)).split('}')[0];\n const token = 'var(--nile-spacing-xs, var(--ng-spacing-xs))';\n expect(rule('.badge--has-prefix .badge__prefix')).to.contain(`margin-inline-end: ${token}`);\n expect(rule('.badge--has-suffix .badge__suffix')).to.contain(`margin-inline-start: ${token}`);\n });\n\n it('120. should keep slot content out of the aria-label', async () => {\n const el = await fixture<NileBadge>(html`\n <nile-badge><span slot=\"prefix\">icon</span>Active<span slot=\"suffix\">12</span></nile-badge>\n `);\n expect(el.getAttribute('aria-label')).to.equal('Active');\n });\n it('121. should ignore comment nodes in the aria-label', async () => {\n const el = document.createElement('nile-badge') as NileBadge;\n el.append(document.createComment('?lit$123$'), 'Active', document.createComment('ng-container'));\n document.body.append(el);\n await el.updateComplete;\n expect(el.getAttribute('aria-label')).to.equal('Active');\n el.remove();\n });\n\n it('122. should keep the existing label for badges without slots', async () => {\n const el = await fixture<NileBadge>(html`<nile-badge>New <b>beta</b></nile-badge>`);\n expect(el.getAttribute('aria-label')).to.equal('New beta');\n });\n });\n});\n"]}
@@ -18,11 +18,18 @@ export declare class NileBreadcrumb extends NileElement {
18
18
  * @remarks If you are extending this class you can extend the base styles with super. Eg `return [super(), myCustomStyles]`
19
19
  */
20
20
  static get styles(): CSSResultArray;
21
+ /**
22
+ * Visual style of the items. `outlined` renders each item inside an outlined chip;
23
+ * text colours are unchanged. Propagated to every slotted `nile-breadcrumb-item`.
24
+ */
25
+ variant: 'default' | 'outlined';
21
26
  /**
22
27
  * Render method
23
28
  * @slot This is a slot test
24
29
  */
25
30
  connectedCallback(): void;
31
+ protected updated(changedProperties: Map<string, unknown>): void;
32
+ private syncItemVariant;
26
33
  private changeLastItem;
27
34
  private handleRemoveClick;
28
35
  render(): TemplateResult;
@@ -6,7 +6,7 @@
6
6
  */
7
7
  import { __decorate } from "tslib";
8
8
  import { html, } from 'lit';
9
- import { customElement } from 'lit/decorators.js';
9
+ import { customElement, property } from 'lit/decorators.js';
10
10
  import { styles } from './nile-breadcrumb.css';
11
11
  import NileElement from '../internal/nile-element';
12
12
  /**
@@ -16,6 +16,15 @@ import NileElement from '../internal/nile-element';
16
16
  *
17
17
  */
18
18
  let NileBreadcrumb = class NileBreadcrumb extends NileElement {
19
+ constructor() {
20
+ super(...arguments);
21
+ /**
22
+ * Visual style of the items. `outlined` renders each item inside an outlined chip;
23
+ * text colours are unchanged. Propagated to every slotted `nile-breadcrumb-item`.
24
+ */
25
+ this.variant = 'default';
26
+ /* #endregion */
27
+ }
19
28
  /**
20
29
  * The styles for Breadcrumb
21
30
  * @remarks If you are extending this class you can extend the base styles with super. Eg `return [super(), myCustomStyles]`
@@ -35,7 +44,18 @@ let NileBreadcrumb = class NileBreadcrumb extends NileElement {
35
44
  this.changeLastItem();
36
45
  });
37
46
  }
47
+ updated(changedProperties) {
48
+ if (changedProperties.has('variant')) {
49
+ this.syncItemVariant();
50
+ }
51
+ }
52
+ syncItemVariant() {
53
+ this.querySelectorAll('nile-breadcrumb-item').forEach(item => {
54
+ item.variant = this.variant;
55
+ });
56
+ }
38
57
  changeLastItem() {
58
+ this.syncItemVariant();
39
59
  const items = [...this.querySelectorAll('nile-breadcrumb-item')];
40
60
  const itemslength = items.length;
41
61
  for (let i = 0; i < itemslength - 1; i++) {
@@ -58,6 +78,9 @@ let NileBreadcrumb = class NileBreadcrumb extends NileElement {
58
78
  `;
59
79
  }
60
80
  };
81
+ __decorate([
82
+ property({ type: String, reflect: true })
83
+ ], NileBreadcrumb.prototype, "variant", void 0);
61
84
  NileBreadcrumb = __decorate([
62
85
  customElement('nile-breadcrumb')
63
86
  ], NileBreadcrumb);
@@ -1 +1 @@
1
- {"version":3,"file":"nile-breadcrumb.js","sourceRoot":"","sources":["../../../src/nile-breadcrumb/nile-breadcrumb.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;;AAEH,OAAO,EAEL,IAAI,GAGL,MAAM,KAAK,CAAC;AACb,OAAO,EAAE,aAAa,EAAY,MAAM,mBAAmB,CAAC;AAC5D,OAAO,EAAE,MAAM,EAAE,MAAM,uBAAuB,CAAC;AAC/C,OAAO,WAAW,MAAM,0BAA0B,CAAC;AAEnD;;;;;GAKG;AAEI,IAAM,cAAc,GAApB,MAAM,cAAe,SAAQ,WAAW;IAC7C;;;OAGG;IACI,MAAM,KAAK,MAAM;QACtB,OAAO,CAAC,MAAM,CAAC,CAAC;IAClB,CAAC;IAED,gBAAgB;IAEhB,qBAAqB;IAErB;;;OAGG;IACH,iBAAiB;QACf,KAAK,CAAC,iBAAiB,EAAE,CAAC;QAC1B,IAAI,CAAC,cAAc,CAAC,IAAI,CAAC,GAAG,EAAE;YAC5B,IAAI,CAAC,cAAc,EAAE,CAAC;QACxB,CAAC,CAAC,CAAC;IACL,CAAC;IAEO,cAAc;QACpB,MAAM,KAAK,GAAQ,CAAC,GAAG,IAAI,CAAC,gBAAgB,CAAC,sBAAsB,CAAC,CAAC,CAAC;QACtE,MAAM,WAAW,GAAG,KAAK,CAAC,MAAM,CAAC;QACjC,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,WAAW,GAAG,CAAC,EAAE,CAAC,EAAE,EAAE,CAAC;YACzC,MAAM,OAAO,GAAG,KAAK,CAAC,CAAC,CAAC,CAAC;YACzB,OAAO,CAAC,MAAM,GAAG,KAAK,CAAC;QACzB,CAAC;QACD,MAAM,QAAQ,GAAG,KAAK,CAAC,WAAW,GAAG,CAAC,CAAC,CAAC;QACxC,QAAQ,CAAC,MAAM,GAAG,IAAI,CAAC;IACzB,CAAC;IAEO,iBAAiB,CAAC,KAAU;QAClC,IAAI,CAAC,IAAI,CAAC,YAAY,EAAE,EAAE,KAAK,EAAE,KAAK,CAAC,MAAM,CAAC,SAAS,EAAE,CAAC,CAAC;IAC7D,CAAC;IAEM,MAAM;QACX,OAAO,IAAI,CAAA;;sBAEO,IAAI,CAAC,cAAc;2BACd,IAAI,CAAC,iBAAiB;;;KAG5C,CAAC;IACJ,CAAC;CAGF,CAAA;AAlDY,cAAc;IAD1B,aAAa,CAAC,iBAAiB,CAAC;GACpB,cAAc,CAkD1B;;AAED,eAAe,cAAc,CAAC","sourcesContent":["/**\n * Copyright Aquera Inc 2023\n *\n * This source code is licensed under the BSD-3-Clause license found in the\n * LICENSE file in the root directory of this source tree.\n */\n\nimport {\n LitElement,\n html,\n CSSResultArray,\n TemplateResult,\n} from 'lit';\nimport { customElement, property } from 'lit/decorators.js';\nimport { styles } from './nile-breadcrumb.css';\nimport NileElement from '../internal/nile-element';\nimport { foreach } from '../nile-icon/icons/svg';\n/**\n * Nile BreadCrumb component.\n *\n * @tag nile-breadcrumb\n *\n */\n@customElement('nile-breadcrumb')\nexport class NileBreadcrumb extends NileElement {\n /**\n * The styles for Breadcrumb\n * @remarks If you are extending this class you can extend the base styles with super. Eg `return [super(), myCustomStyles]`\n */\n public static get styles(): CSSResultArray {\n return [styles];\n }\n\n /* #endregion */\n\n /* #region Methods */\n\n /**\n * Render method\n * @slot This is a slot test\n */\n connectedCallback() {\n super.connectedCallback();\n this.updateComplete.then(() => {\n this.changeLastItem();\n });\n }\n\n private changeLastItem() {\n const items: any = [...this.querySelectorAll('nile-breadcrumb-item')];\n const itemslength = items.length;\n for (let i = 0; i < itemslength - 1; i++) {\n const element = items[i];\n element.isLast = false;\n }\n const lastItem = items[itemslength - 1];\n lastItem.isLast = true;\n }\n\n private handleRemoveClick(event: any) {\n this.emit('nile-click', { value: event.target.innerText });\n }\n\n public render(): TemplateResult {\n return html`\n <slot\n @slotchange=${this.changeLastItem}\n @nile-click-item=${this.handleRemoveClick}\n class=\"breadcrumb\"\n ></slot>\n `;\n }\n\n /* #endregion */\n}\n\nexport default NileBreadcrumb;\n\ndeclare global {\n interface HTMLElementTagNameMap {\n 'nile-breadcrumb': NileBreadcrumb;\n }\n}\n"]}
1
+ {"version":3,"file":"nile-breadcrumb.js","sourceRoot":"","sources":["../../../src/nile-breadcrumb/nile-breadcrumb.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;;AAEH,OAAO,EAEL,IAAI,GAGL,MAAM,KAAK,CAAC;AACb,OAAO,EAAE,aAAa,EAAE,QAAQ,EAAE,MAAM,mBAAmB,CAAC;AAC5D,OAAO,EAAE,MAAM,EAAE,MAAM,uBAAuB,CAAC;AAC/C,OAAO,WAAW,MAAM,0BAA0B,CAAC;AAEnD;;;;;GAKG;AAEI,IAAM,cAAc,GAApB,MAAM,cAAe,SAAQ,WAAW;IAAxC;;QASL;;;WAGG;QACwC,YAAO,GAA2B,SAAS,CAAC;QAuDvF,gBAAgB;IAClB,CAAC;IApEC;;;OAGG;IACI,MAAM,KAAK,MAAM;QACtB,OAAO,CAAC,MAAM,CAAC,CAAC;IAClB,CAAC;IAQD,gBAAgB;IAEhB,qBAAqB;IAErB;;;OAGG;IACH,iBAAiB;QACf,KAAK,CAAC,iBAAiB,EAAE,CAAC;QAC1B,IAAI,CAAC,cAAc,CAAC,IAAI,CAAC,GAAG,EAAE;YAC5B,IAAI,CAAC,cAAc,EAAE,CAAC;QACxB,CAAC,CAAC,CAAC;IACL,CAAC;IAES,OAAO,CAAC,iBAAuC;QACvD,IAAI,iBAAiB,CAAC,GAAG,CAAC,SAAS,CAAC,EAAE,CAAC;YACrC,IAAI,CAAC,eAAe,EAAE,CAAC;QACzB,CAAC;IACH,CAAC;IAEO,eAAe;QACrB,IAAI,CAAC,gBAAgB,CAAC,sBAAsB,CAAC,CAAC,OAAO,CAAC,IAAI,CAAC,EAAE;YAC3D,IAAI,CAAC,OAAO,GAAG,IAAI,CAAC,OAAO,CAAC;QAC9B,CAAC,CAAC,CAAC;IACL,CAAC;IAEO,cAAc;QACpB,IAAI,CAAC,eAAe,EAAE,CAAC;QACvB,MAAM,KAAK,GAAQ,CAAC,GAAG,IAAI,CAAC,gBAAgB,CAAC,sBAAsB,CAAC,CAAC,CAAC;QACtE,MAAM,WAAW,GAAG,KAAK,CAAC,MAAM,CAAC;QACjC,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,WAAW,GAAG,CAAC,EAAE,CAAC,EAAE,EAAE,CAAC;YACzC,MAAM,OAAO,GAAG,KAAK,CAAC,CAAC,CAAC,CAAC;YACzB,OAAO,CAAC,MAAM,GAAG,KAAK,CAAC;QACzB,CAAC;QACD,MAAM,QAAQ,GAAG,KAAK,CAAC,WAAW,GAAG,CAAC,CAAC,CAAC;QACxC,QAAQ,CAAC,MAAM,GAAG,IAAI,CAAC;IACzB,CAAC;IAEO,iBAAiB,CAAC,KAAU;QAClC,IAAI,CAAC,IAAI,CAAC,YAAY,EAAE,EAAE,KAAK,EAAE,KAAK,CAAC,MAAM,CAAC,SAAS,EAAE,CAAC,CAAC;IAC7D,CAAC;IAEM,MAAM;QACX,OAAO,IAAI,CAAA;;sBAEO,IAAI,CAAC,cAAc;2BACd,IAAI,CAAC,iBAAiB;;;KAG5C,CAAC;IACJ,CAAC;CAGF,CAAA;AAxD4C;IAA1C,QAAQ,CAAC,EAAE,IAAI,EAAE,MAAM,EAAE,OAAO,EAAE,IAAI,EAAE,CAAC;+CAA6C;AAb5E,cAAc;IAD1B,aAAa,CAAC,iBAAiB,CAAC;GACpB,cAAc,CAqE1B;;AAED,eAAe,cAAc,CAAC","sourcesContent":["/**\n * Copyright Aquera Inc 2023\n *\n * This source code is licensed under the BSD-3-Clause license found in the\n * LICENSE file in the root directory of this source tree.\n */\n\nimport {\n LitElement,\n html,\n CSSResultArray,\n TemplateResult,\n} from 'lit';\nimport { customElement, property } from 'lit/decorators.js';\nimport { styles } from './nile-breadcrumb.css';\nimport NileElement from '../internal/nile-element';\nimport { foreach } from '../nile-icon/icons/svg';\n/**\n * Nile BreadCrumb component.\n *\n * @tag nile-breadcrumb\n *\n */\n@customElement('nile-breadcrumb')\nexport class NileBreadcrumb extends NileElement {\n /**\n * The styles for Breadcrumb\n * @remarks If you are extending this class you can extend the base styles with super. Eg `return [super(), myCustomStyles]`\n */\n public static get styles(): CSSResultArray {\n return [styles];\n }\n\n /**\n * Visual style of the items. `outlined` renders each item inside an outlined chip;\n * text colours are unchanged. Propagated to every slotted `nile-breadcrumb-item`.\n */\n @property({ type: String, reflect: true }) variant: 'default' | 'outlined' = 'default';\n\n /* #endregion */\n\n /* #region Methods */\n\n /**\n * Render method\n * @slot This is a slot test\n */\n connectedCallback() {\n super.connectedCallback();\n this.updateComplete.then(() => {\n this.changeLastItem();\n });\n }\n\n protected updated(changedProperties: Map<string, unknown>) {\n if (changedProperties.has('variant')) {\n this.syncItemVariant();\n }\n }\n\n private syncItemVariant() {\n this.querySelectorAll('nile-breadcrumb-item').forEach(item => {\n item.variant = this.variant;\n });\n }\n\n private changeLastItem() {\n this.syncItemVariant();\n const items: any = [...this.querySelectorAll('nile-breadcrumb-item')];\n const itemslength = items.length;\n for (let i = 0; i < itemslength - 1; i++) {\n const element = items[i];\n element.isLast = false;\n }\n const lastItem = items[itemslength - 1];\n lastItem.isLast = true;\n }\n\n private handleRemoveClick(event: any) {\n this.emit('nile-click', { value: event.target.innerText });\n }\n\n public render(): TemplateResult {\n return html`\n <slot\n @slotchange=${this.changeLastItem}\n @nile-click-item=${this.handleRemoveClick}\n class=\"breadcrumb\"\n ></slot>\n `;\n }\n\n /* #endregion */\n}\n\nexport default NileBreadcrumb;\n\ndeclare global {\n interface HTMLElementTagNameMap {\n 'nile-breadcrumb': NileBreadcrumb;\n }\n}\n"]}
@@ -102,5 +102,56 @@ describe('NileBreadcrumb', () => {
102
102
  it('98. slot is default (no name)', async () => { const el = await fixture(html `<nile-breadcrumb><nile-breadcrumb-item>A</nile-breadcrumb-item></nile-breadcrumb>`); const slot = el.shadowRoot.querySelector('slot'); expect(slot.hasAttribute('name')).to.be.false; });
103
103
  it('99. no nile-divider', async () => { const el = await fixture(html `<nile-breadcrumb><nile-breadcrumb-item>A</nile-breadcrumb-item></nile-breadcrumb>`); expect(el.shadowRoot.querySelector('nile-divider')).to.be.null; });
104
104
  it('100. full integration', async () => { const el = await fixture(html `<nile-breadcrumb class="b" id="b1" role="navigation" aria-label="Breadcrumb"><nile-breadcrumb-item>Home</nile-breadcrumb-item><nile-breadcrumb-item>Settings</nile-breadcrumb-item><nile-breadcrumb-item>Profile</nile-breadcrumb-item></nile-breadcrumb>`); expect(el.id).to.equal('b1'); expect(el.getAttribute('role')).to.equal('navigation'); expect(el.querySelectorAll('nile-breadcrumb-item').length).to.equal(3); expect(el.textContent).to.contain('Home'); expect(el.textContent).to.contain('Profile'); });
105
+ describe('variant', () => {
106
+ const tpl = (variant) => variant
107
+ ? html `<nile-breadcrumb variant=${variant}><nile-breadcrumb-item>A</nile-breadcrumb-item><nile-breadcrumb-item>B</nile-breadcrumb-item></nile-breadcrumb>`
108
+ : html `<nile-breadcrumb><nile-breadcrumb-item>A</nile-breadcrumb-item><nile-breadcrumb-item>B</nile-breadcrumb-item></nile-breadcrumb>`;
109
+ const items = (el) => [...el.querySelectorAll('nile-breadcrumb-item')];
110
+ it('defaults to "default" and reflects', async () => {
111
+ const el = await fixture(tpl());
112
+ expect(el.variant).to.equal('default');
113
+ expect(el.getAttribute('variant')).to.equal('default');
114
+ items(el).forEach(i => expect(i.variant).to.equal('default'));
115
+ });
116
+ it('propagates "outlined" to every item', async () => {
117
+ const el = await fixture(tpl('outlined'));
118
+ await Promise.all(items(el).map(i => i.updateComplete));
119
+ items(el).forEach(i => {
120
+ expect(i.getAttribute('variant')).to.equal('outlined');
121
+ expect(i.shadowRoot.querySelector('[part="item"]').classList.contains('nile-breadcrumb-item--outlined')).to.be.true;
122
+ });
123
+ });
124
+ it('keeps the existing text-colour classes when outlined', async () => {
125
+ const el = await fixture(tpl('outlined'));
126
+ const [a, b] = items(el);
127
+ await a.updateComplete;
128
+ await b.updateComplete;
129
+ expect(a.shadowRoot.querySelector('[part="item"]').classList.contains('nile-breadcrumb-item__slot-text')).to.be.true;
130
+ expect(b.shadowRoot.querySelector('[part="item"]').classList.contains('nile-breadcrumb-item__last-slot-text')).to.be.true;
131
+ });
132
+ it('updates items when variant changes at runtime', async () => {
133
+ const el = await fixture(tpl());
134
+ el.variant = 'outlined';
135
+ await el.updateComplete;
136
+ items(el).forEach(i => expect(i.variant).to.equal('outlined'));
137
+ el.variant = 'default';
138
+ await el.updateComplete;
139
+ items(el).forEach(i => expect(i.variant).to.equal('default'));
140
+ });
141
+ it('applies the variant to items added later', async () => {
142
+ const el = await fixture(tpl('outlined'));
143
+ const added = document.createElement('nile-breadcrumb-item');
144
+ added.textContent = 'C';
145
+ el.appendChild(added);
146
+ await new Promise(r => setTimeout(r));
147
+ expect(added.variant).to.equal('outlined');
148
+ });
149
+ it('no chip class in the default variant', async () => {
150
+ const el = await fixture(tpl());
151
+ const [a] = items(el);
152
+ await a.updateComplete;
153
+ expect(a.shadowRoot.querySelector('.nile-breadcrumb-item--outlined')).to.be.null;
154
+ });
155
+ });
105
156
  });
106
157
  //# sourceMappingURL=nile-breadcrumb.test.js.map