@mhmo91/schmancy 0.5.34 → 0.5.36

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 (383) hide show
  1. package/ai/content-drawer.md +114 -140
  2. package/ai/navigation-bar.md +30 -4
  3. package/ai/navigation-rail.md +72 -0
  4. package/ai/theme.md +218 -789
  5. package/dist/ai/content-drawer.md +114 -140
  6. package/dist/ai/navigation-bar.md +30 -4
  7. package/dist/ai/navigation-rail.md +72 -0
  8. package/dist/ai/theme.md +218 -789
  9. package/dist/{animated-text-COvhr8E3.js → animated-text-BEAHZetl.js} +4 -3
  10. package/dist/{animated-text-COvhr8E3.js.map → animated-text-BEAHZetl.js.map} +1 -1
  11. package/dist/{animated-text-BZUrBdvN.cjs → animated-text-ChV1GUee.cjs} +2 -2
  12. package/dist/{animated-text-BZUrBdvN.cjs.map → animated-text-ChV1GUee.cjs.map} +1 -1
  13. package/dist/animated-text.cjs +1 -1
  14. package/dist/animated-text.js +1 -1
  15. package/dist/area.cjs +1 -1
  16. package/dist/{area.component-BHtBHWVt.js → area.component-R4KQInpP.js} +4 -3
  17. package/dist/{area.component-BHtBHWVt.js.map → area.component-R4KQInpP.js.map} +1 -1
  18. package/dist/area.component-cxxQIhCN.cjs +12 -0
  19. package/dist/{area.component-Ch2Eaa4i.cjs.map → area.component-cxxQIhCN.cjs.map} +1 -1
  20. package/dist/area.js +1 -1
  21. package/dist/{autocomplete-CenwFcT1.cjs → autocomplete-Cq_NzrBX.cjs} +2 -2
  22. package/dist/{autocomplete-CenwFcT1.cjs.map → autocomplete-Cq_NzrBX.cjs.map} +1 -1
  23. package/dist/{autocomplete-9RkU9LmA.js → autocomplete-DKYBmt2q.js} +18 -18
  24. package/dist/{autocomplete-9RkU9LmA.js.map → autocomplete-DKYBmt2q.js.map} +1 -1
  25. package/dist/autocomplete.cjs +1 -1
  26. package/dist/autocomplete.js +1 -1
  27. package/dist/{avatar-DnYQquLU.js → avatar-DJ7qYc6-.js} +163 -152
  28. package/dist/avatar-DJ7qYc6-.js.map +1 -0
  29. package/dist/avatar-DbUCDe1w.cjs +306 -0
  30. package/dist/avatar-DbUCDe1w.cjs.map +1 -0
  31. package/dist/badge.cjs +1 -1
  32. package/dist/badge.js +1 -1
  33. package/dist/boat-BBFE1yJY.js +276 -0
  34. package/dist/boat-BBFE1yJY.js.map +1 -0
  35. package/dist/boat-BSYtwy1W.cjs +78 -0
  36. package/dist/boat-BSYtwy1W.cjs.map +1 -0
  37. package/dist/boat.cjs +1 -1
  38. package/dist/boat.js +1 -1
  39. package/dist/busy.cjs +1 -1
  40. package/dist/busy.js +1 -1
  41. package/dist/button.cjs +1 -1
  42. package/dist/button.js +1 -1
  43. package/dist/card.cjs +1 -1
  44. package/dist/card.js +1 -1
  45. package/dist/{checkbox-8djp_8NK.cjs → checkbox-BBJqucMb.cjs} +2 -2
  46. package/dist/{checkbox-8djp_8NK.cjs.map → checkbox-BBJqucMb.cjs.map} +1 -1
  47. package/dist/{checkbox-D6-WQeEk.js → checkbox-geD1IIHh.js} +3 -2
  48. package/dist/{checkbox-D6-WQeEk.js.map → checkbox-geD1IIHh.js.map} +1 -1
  49. package/dist/checkbox.cjs +1 -1
  50. package/dist/checkbox.js +1 -1
  51. package/dist/chips.cjs +1 -1
  52. package/dist/chips.js +2 -2
  53. package/dist/code-highlight.cjs +1 -1
  54. package/dist/code-highlight.js +1 -1
  55. package/dist/{code-preview-BFoEmN8y.cjs → code-preview-CR3U6wXD.cjs} +5 -5
  56. package/dist/{code-preview-BFoEmN8y.cjs.map → code-preview-CR3U6wXD.cjs.map} +1 -1
  57. package/dist/{code-preview-Z02-2suM.js → code-preview-D2ZpTZ7C.js} +8 -8
  58. package/dist/{code-preview-Z02-2suM.js.map → code-preview-D2ZpTZ7C.js.map} +1 -1
  59. package/dist/components.cjs +1 -1
  60. package/dist/components.js +1 -1
  61. package/dist/content-drawer.cjs +1 -1
  62. package/dist/content-drawer.js +1 -1
  63. package/dist/context-create-CA907mdD.cjs +2 -0
  64. package/dist/context-create-CA907mdD.cjs.map +1 -0
  65. package/dist/{context-object-BE1o2XB3.js → context-create-DCiujzV2.js} +262 -212
  66. package/dist/context-create-DCiujzV2.js.map +1 -0
  67. package/dist/{date-range-DoCtnpW6.cjs → date-range-DkSLcajW.cjs} +2 -2
  68. package/dist/{date-range-DoCtnpW6.cjs.map → date-range-DkSLcajW.cjs.map} +1 -1
  69. package/dist/{date-range-kFnTrnHN.js → date-range-NB6Q02hz.js} +141 -140
  70. package/dist/{date-range-kFnTrnHN.js.map → date-range-NB6Q02hz.js.map} +1 -1
  71. package/dist/date-range-inline-C8InUZoD.cjs +44 -0
  72. package/dist/{date-range-inline-DNr7C5X-.cjs.map → date-range-inline-C8InUZoD.cjs.map} +1 -1
  73. package/dist/{date-range-inline-BXeX6T7R.js → date-range-inline-DXBR0Ocx.js} +8 -7
  74. package/dist/{date-range-inline-BXeX6T7R.js.map → date-range-inline-DXBR0Ocx.js.map} +1 -1
  75. package/dist/date-range-inline.cjs +1 -1
  76. package/dist/date-range-inline.js +1 -1
  77. package/dist/date-range.cjs +1 -1
  78. package/dist/date-range.js +1 -1
  79. package/dist/{delay-CrdOikhP.cjs → delay-B4IPKZEn.cjs} +2 -2
  80. package/dist/{delay-CrdOikhP.cjs.map → delay-B4IPKZEn.cjs.map} +1 -1
  81. package/dist/{delay-Cz-9rZxi.js → delay-DsOC-uuq.js} +2 -2
  82. package/dist/{delay-Cz-9rZxi.js.map → delay-DsOC-uuq.js.map} +1 -1
  83. package/dist/delay.cjs +1 -1
  84. package/dist/delay.js +1 -1
  85. package/dist/{details-CsqhGMjL.cjs → details-7pcQWJF9.cjs} +2 -2
  86. package/dist/{details-CsqhGMjL.cjs.map → details-7pcQWJF9.cjs.map} +1 -1
  87. package/dist/{details-DeBtsJlp.js → details-D6Vq36lN.js} +3 -2
  88. package/dist/{details-DeBtsJlp.js.map → details-D6Vq36lN.js.map} +1 -1
  89. package/dist/details.cjs +1 -1
  90. package/dist/details.js +1 -1
  91. package/dist/{dialog-content-BzSQoM2J.cjs → dialog-content-BC--KBf7.cjs} +2 -2
  92. package/dist/{dialog-content-BzSQoM2J.cjs.map → dialog-content-BC--KBf7.cjs.map} +1 -1
  93. package/dist/{dialog-content-DTKdAF_l.js → dialog-content-XoKxxGTv.js} +4 -4
  94. package/dist/{dialog-content-DTKdAF_l.js.map → dialog-content-XoKxxGTv.js.map} +1 -1
  95. package/dist/dialog.cjs +1 -1
  96. package/dist/dialog.js +1 -1
  97. package/dist/discovery.cjs +2 -0
  98. package/dist/discovery.cjs.map +1 -0
  99. package/dist/discovery.js +6 -0
  100. package/dist/discovery.js.map +1 -0
  101. package/dist/discovery.service-BbYjU5x8.js +21 -0
  102. package/dist/discovery.service-BbYjU5x8.js.map +1 -0
  103. package/dist/discovery.service-BpGCuXPd.cjs +2 -0
  104. package/dist/discovery.service-BpGCuXPd.cjs.map +1 -0
  105. package/dist/divider-55yUklFI.cjs +2 -0
  106. package/dist/{divider-CNxOc8ep.cjs.map → divider-55yUklFI.cjs.map} +1 -1
  107. package/dist/{divider-7iyyEd8k.js → divider-JaB5FtmR.js} +4 -3
  108. package/dist/{divider-7iyyEd8k.js.map → divider-JaB5FtmR.js.map} +1 -1
  109. package/dist/divider.cjs +1 -1
  110. package/dist/divider.js +1 -1
  111. package/dist/{dropdown-content-De0OkNoq.cjs → dropdown-content-C2nxdAFA.cjs} +2 -2
  112. package/dist/{dropdown-content-De0OkNoq.cjs.map → dropdown-content-C2nxdAFA.cjs.map} +1 -1
  113. package/dist/{dropdown-content-_GMpqsNq.js → dropdown-content-Qzt-B1FB.js} +4 -3
  114. package/dist/{dropdown-content-_GMpqsNq.js.map → dropdown-content-Qzt-B1FB.js.map} +1 -1
  115. package/dist/dropdown.cjs +1 -1
  116. package/dist/dropdown.js +1 -1
  117. package/dist/{email-recipients-DS01C3V3.cjs → email-recipients-7reIxhmF.cjs} +2 -2
  118. package/dist/{email-recipients-DS01C3V3.cjs.map → email-recipients-7reIxhmF.cjs.map} +1 -1
  119. package/dist/{email-recipients-CPZlUiRR.js → email-recipients-C3TfQU2c.js} +6 -5
  120. package/dist/{email-recipients-CPZlUiRR.js.map → email-recipients-C3TfQU2c.js.map} +1 -1
  121. package/dist/extra.cjs +1 -1
  122. package/dist/extra.js +1 -1
  123. package/dist/{flex-CHf9Gc5V.cjs → flex-1y7FNRpS.cjs} +2 -2
  124. package/dist/{flex-CHf9Gc5V.cjs.map → flex-1y7FNRpS.cjs.map} +1 -1
  125. package/dist/{flex-BeSoRNTu.js → flex-DauT7n0E.js} +3 -2
  126. package/dist/{flex-BeSoRNTu.js.map → flex-DauT7n0E.js.map} +1 -1
  127. package/dist/{form-DNeKagke.js → form-DqA7DfNR.js} +3 -2
  128. package/dist/{form-DNeKagke.js.map → form-DqA7DfNR.js.map} +1 -1
  129. package/dist/form-Xg8jZsBF.cjs +2 -0
  130. package/dist/{form-DzDksPgv.cjs.map → form-Xg8jZsBF.cjs.map} +1 -1
  131. package/dist/form.cjs +1 -1
  132. package/dist/form.js +1 -1
  133. package/dist/{formField.mixin-D5YAYIS1.cjs → formField.mixin-BnSYnYXQ.cjs} +2 -2
  134. package/dist/{formField.mixin-D5YAYIS1.cjs.map → formField.mixin-BnSYnYXQ.cjs.map} +1 -1
  135. package/dist/{formField.mixin-BNj75WQ4.js → formField.mixin-YvrrvL_A.js} +2 -2
  136. package/dist/{formField.mixin-BNj75WQ4.js.map → formField.mixin-YvrrvL_A.js.map} +1 -1
  137. package/dist/{icon-DebIySqv.cjs → icon-BFYUD00J.cjs} +3 -3
  138. package/dist/{icon-DebIySqv.cjs.map → icon-BFYUD00J.cjs.map} +1 -1
  139. package/dist/{icon-CCMpTJTp.js → icon-BtdeB2JT.js} +9 -9
  140. package/dist/{icon-CCMpTJTp.js.map → icon-BtdeB2JT.js.map} +1 -1
  141. package/dist/{icon-button-DwnnW2oj.cjs → icon-button-B-uxvO86.cjs} +2 -2
  142. package/dist/{icon-button-DwnnW2oj.cjs.map → icon-button-B-uxvO86.cjs.map} +1 -1
  143. package/dist/{icon-button-D6DH52j4.js → icon-button-DwL4WnDE.js} +4 -3
  144. package/dist/{icon-button-D6DH52j4.js.map → icon-button-DwL4WnDE.js.map} +1 -1
  145. package/dist/icons.cjs +1 -1
  146. package/dist/icons.js +1 -1
  147. package/dist/index.cjs +1 -1
  148. package/dist/index.js +187 -182
  149. package/dist/index.js.map +1 -1
  150. package/dist/{input-DtHPCCyd.js → input-CuOmXLVJ.js} +4 -3
  151. package/dist/{input-DtHPCCyd.js.map → input-CuOmXLVJ.js.map} +1 -1
  152. package/dist/input-PoerIsqx.cjs +51 -0
  153. package/dist/{input-C2Vz-51i.cjs.map → input-PoerIsqx.cjs.map} +1 -1
  154. package/dist/{input-chip-B7ANrtLF.cjs → input-chip-BlmZB-cO.cjs} +2 -2
  155. package/dist/{input-chip-B7ANrtLF.cjs.map → input-chip-BlmZB-cO.cjs.map} +1 -1
  156. package/dist/{input-chip-DbIvSyvP.js → input-chip-CcNElytP.js} +2 -2
  157. package/dist/{input-chip-DbIvSyvP.js.map → input-chip-CcNElytP.js.map} +1 -1
  158. package/dist/input.cjs +1 -1
  159. package/dist/input.js +1 -1
  160. package/dist/layout.cjs +1 -1
  161. package/dist/layout.js +1 -1
  162. package/dist/{list-BH8OJ3Rv.cjs → list-BJjW-iAW.cjs} +2 -2
  163. package/dist/{list-BH8OJ3Rv.cjs.map → list-BJjW-iAW.cjs.map} +1 -1
  164. package/dist/{list-BBo0--_Q.js → list-Bou3BRYQ.js} +3 -2
  165. package/dist/{list-BBo0--_Q.js.map → list-Bou3BRYQ.js.map} +1 -1
  166. package/dist/list.cjs +1 -1
  167. package/dist/list.js +1 -1
  168. package/dist/{litElement.mixin-CzF0mNQd.js → litElement.mixin-Bkdw4DeE.js} +2 -2
  169. package/dist/{litElement.mixin-CzF0mNQd.js.map → litElement.mixin-Bkdw4DeE.js.map} +1 -1
  170. package/dist/{litElement.mixin-LplXbzd8.cjs → litElement.mixin-Di-HgRnn.cjs} +2 -2
  171. package/dist/{litElement.mixin-LplXbzd8.cjs.map → litElement.mixin-Di-HgRnn.cjs.map} +1 -1
  172. package/dist/mailbox.cjs +1 -1
  173. package/dist/mailbox.js +1 -1
  174. package/dist/{map-C7lxYU4A.cjs → map-CXNKwo__.cjs} +2 -2
  175. package/dist/{map-C7lxYU4A.cjs.map → map-CXNKwo__.cjs.map} +1 -1
  176. package/dist/{map-DeiCBxMP.js → map-bUVyL7jN.js} +19 -19
  177. package/dist/{map-DeiCBxMP.js.map → map-bUVyL7jN.js.map} +1 -1
  178. package/dist/map.cjs +1 -1
  179. package/dist/map.js +1 -1
  180. package/dist/{media-CsYVcfaX.cjs → media-8D6oDv1e.cjs} +6 -6
  181. package/dist/{media-CsYVcfaX.cjs.map → media-8D6oDv1e.cjs.map} +1 -1
  182. package/dist/{media-CEnaqjig.js → media-CF1lpFAm.js} +9 -8
  183. package/dist/{media-CEnaqjig.js.map → media-CF1lpFAm.js.map} +1 -1
  184. package/dist/{menu-Boqsyfmh.cjs → menu-B8Ad1OVm.cjs} +2 -2
  185. package/dist/{menu-Boqsyfmh.cjs.map → menu-B8Ad1OVm.cjs.map} +1 -1
  186. package/dist/{menu-wtkHGlyc.js → menu-C9mJa_ck.js} +4 -3
  187. package/dist/{menu-wtkHGlyc.js.map → menu-C9mJa_ck.js.map} +1 -1
  188. package/dist/menu.cjs +1 -1
  189. package/dist/menu.js +1 -1
  190. package/dist/mixins/baseElement.ts +33 -1
  191. package/dist/nav-drawer.cjs +1 -1
  192. package/dist/nav-drawer.js +1 -1
  193. package/dist/navigation-bar.cjs +1 -1
  194. package/dist/navigation-bar.js +1 -1
  195. package/dist/{navigation-rail-6ONc-XE-.cjs → navigation-rail-CAgKSJh4.cjs} +14 -11
  196. package/dist/navigation-rail-CAgKSJh4.cjs.map +1 -0
  197. package/dist/{navigation-rail-D-lK9oVd.js → navigation-rail-Dh3B6B0L.js} +43 -31
  198. package/dist/navigation-rail-Dh3B6B0L.js.map +1 -0
  199. package/dist/navigation-rail.cjs +1 -1
  200. package/dist/navigation-rail.js +1 -1
  201. package/dist/{notification-service-ZiGUSd63.js → notification-service-IBQJTcmw.js} +7 -6
  202. package/dist/{notification-service-ZiGUSd63.js.map → notification-service-IBQJTcmw.js.map} +1 -1
  203. package/dist/{notification-service-9HXSKWcw.cjs → notification-service-L82ozhd0.cjs} +2 -2
  204. package/dist/{notification-service-9HXSKWcw.cjs.map → notification-service-L82ozhd0.cjs.map} +1 -1
  205. package/dist/notification.cjs +1 -1
  206. package/dist/notification.js +2 -2
  207. package/dist/{notify-W-NrP0cC.cjs → notify-AIKWEjDG.cjs} +2 -2
  208. package/dist/{notify-W-NrP0cC.cjs.map → notify-AIKWEjDG.cjs.map} +1 -1
  209. package/dist/{notify-DbfX6Z2P.js → notify-CtxRmxjL.js} +2 -2
  210. package/dist/{notify-DbfX6Z2P.js.map → notify-CtxRmxjL.js.map} +1 -1
  211. package/dist/{option-D2bxihLu.cjs → option-D5OW1kDk.cjs} +2 -2
  212. package/dist/{option-D2bxihLu.cjs.map → option-D5OW1kDk.cjs.map} +1 -1
  213. package/dist/{option-BFlWiCu0.js → option-DHGTgRBn.js} +11 -10
  214. package/dist/{option-BFlWiCu0.js.map → option-DHGTgRBn.js.map} +1 -1
  215. package/dist/option.cjs +1 -1
  216. package/dist/option.js +1 -1
  217. package/dist/payment-card-form-CHS_s_Fk.cjs +74 -0
  218. package/dist/{payment-card-form--v94EhJF.cjs.map → payment-card-form-CHS_s_Fk.cjs.map} +1 -1
  219. package/dist/{payment-card-form-DLRNX9NX.js → payment-card-form-wj2JWoyn.js} +4 -3
  220. package/dist/{payment-card-form-DLRNX9NX.js.map → payment-card-form-wj2JWoyn.js.map} +1 -1
  221. package/dist/{progress-CjkD8QBy.cjs → progress-CP4R_l3i.cjs} +2 -2
  222. package/dist/{progress-CjkD8QBy.cjs.map → progress-CP4R_l3i.cjs.map} +1 -1
  223. package/dist/{progress-BYohUvYO.js → progress-ZrDv_k3Z.js} +10 -9
  224. package/dist/{progress-BYohUvYO.js.map → progress-ZrDv_k3Z.js.map} +1 -1
  225. package/dist/progress.cjs +1 -1
  226. package/dist/progress.js +1 -1
  227. package/dist/{radio-button-CGmGOAil.cjs → radio-button-BXP_yPjS.cjs} +2 -2
  228. package/dist/{radio-button-CGmGOAil.cjs.map → radio-button-BXP_yPjS.cjs.map} +1 -1
  229. package/dist/{radio-button-BlxeCjdq.js → radio-button-D0pVoIe-.js} +4 -3
  230. package/dist/{radio-button-BlxeCjdq.js.map → radio-button-D0pVoIe-.js.map} +1 -1
  231. package/dist/radio-group.cjs +1 -1
  232. package/dist/radio-group.js +1 -1
  233. package/dist/{schmancy-steps-container-CydL78yk.cjs → schmancy-steps-container-BSv1aURP.cjs} +2 -2
  234. package/dist/{schmancy-steps-container-CydL78yk.cjs.map → schmancy-steps-container-BSv1aURP.cjs.map} +1 -1
  235. package/dist/{schmancy-steps-container-BtAHCm73.js → schmancy-steps-container-vjioa19k.js} +2 -2
  236. package/dist/{schmancy-steps-container-BtAHCm73.js.map → schmancy-steps-container-vjioa19k.js.map} +1 -1
  237. package/dist/{select-CrB02cIO.cjs → select-DZ-Cy-lg.cjs} +2 -2
  238. package/dist/{select-CrB02cIO.cjs.map → select-DZ-Cy-lg.cjs.map} +1 -1
  239. package/dist/{select-BiN334GN.js → select-SgSe22qC.js} +13 -13
  240. package/dist/{select-BiN334GN.js.map → select-SgSe22qC.js.map} +1 -1
  241. package/dist/select.cjs +1 -1
  242. package/dist/select.js +1 -1
  243. package/dist/selector-hook-BWMY8npH.cjs +2 -0
  244. package/dist/selector-hook-BWMY8npH.cjs.map +1 -0
  245. package/dist/selector-hook-CKeyK4K-.js +313 -0
  246. package/dist/selector-hook-CKeyK4K-.js.map +1 -0
  247. package/dist/{sheet-sgVoRMi1.cjs → sheet-CNMKrulQ.cjs} +2 -2
  248. package/dist/{sheet-sgVoRMi1.cjs.map → sheet-CNMKrulQ.cjs.map} +1 -1
  249. package/dist/{sheet-DpJv4DRi.js → sheet-CevNG0tZ.js} +4 -3
  250. package/dist/{sheet-DpJv4DRi.js.map → sheet-CevNG0tZ.js.map} +1 -1
  251. package/dist/sheet.cjs +1 -1
  252. package/dist/sheet.js +1 -1
  253. package/dist/{slider-Dd1L6oYm.cjs → slider-BSxJatG-.cjs} +4 -4
  254. package/dist/{slider-Dd1L6oYm.cjs.map → slider-BSxJatG-.cjs.map} +1 -1
  255. package/dist/{slider-D7qdxfvX.js → slider-DIRocNv8.js} +9 -9
  256. package/dist/{slider-D7qdxfvX.js.map → slider-DIRocNv8.js.map} +1 -1
  257. package/dist/slider.cjs +1 -1
  258. package/dist/slider.js +1 -1
  259. package/dist/{spinner-CaXU45TV.cjs → spinner-Cx54uto8.cjs} +2 -2
  260. package/dist/{spinner-CaXU45TV.cjs.map → spinner-Cx54uto8.cjs.map} +1 -1
  261. package/dist/{spinner-XN4W5ihQ.js → spinner-DZcG-AtO.js} +3 -2
  262. package/dist/{spinner-XN4W5ihQ.js.map → spinner-DZcG-AtO.js.map} +1 -1
  263. package/dist/steps.cjs +1 -1
  264. package/dist/steps.js +1 -1
  265. package/dist/store.cjs +1 -1
  266. package/dist/store.js +26 -26
  267. package/dist/{suggestion-chip-CdhoATv9.js → suggestion-chip-DADIje6B.js} +3 -3
  268. package/dist/{suggestion-chip-CdhoATv9.js.map → suggestion-chip-DADIje6B.js.map} +1 -1
  269. package/dist/{suggestion-chip-PI24Hc3s.cjs → suggestion-chip-ssmmc0q6.cjs} +2 -2
  270. package/dist/{suggestion-chip-PI24Hc3s.cjs.map → suggestion-chip-ssmmc0q6.cjs.map} +1 -1
  271. package/dist/{surface-CKrYJ58l.js → surface-_cS9Ehk0.js} +2 -2
  272. package/dist/{surface-CKrYJ58l.js.map → surface-_cS9Ehk0.js.map} +1 -1
  273. package/dist/{surface-Ax6I7ldp.cjs → surface-ix9qOb7a.cjs} +2 -2
  274. package/dist/{surface-Ax6I7ldp.cjs.map → surface-ix9qOb7a.cjs.map} +1 -1
  275. package/dist/surface.cjs +1 -1
  276. package/dist/surface.js +1 -1
  277. package/dist/{table-CP6_NkPm.js → table-Bi2ftsJe.js} +2 -2
  278. package/dist/{table-CP6_NkPm.js.map → table-Bi2ftsJe.js.map} +1 -1
  279. package/dist/{table-BlwUyf_4.cjs → table-DSEK3bMb.cjs} +2 -2
  280. package/dist/{table-BlwUyf_4.cjs.map → table-DSEK3bMb.cjs.map} +1 -1
  281. package/dist/table.cjs +1 -1
  282. package/dist/table.js +1 -1
  283. package/dist/{tabs-compatibility-CX0cIu_Y.cjs → tabs-compatibility-BE2Q3rig.cjs} +4 -4
  284. package/dist/{tabs-compatibility-CX0cIu_Y.cjs.map → tabs-compatibility-BE2Q3rig.cjs.map} +1 -1
  285. package/dist/{tabs-compatibility-7QKuXX4i.js → tabs-compatibility-DA3RIq35.js} +7 -6
  286. package/dist/{tabs-compatibility-7QKuXX4i.js.map → tabs-compatibility-DA3RIq35.js.map} +1 -1
  287. package/dist/tabs.cjs +1 -1
  288. package/dist/tabs.js +1 -1
  289. package/dist/tailwind.mixin-CvQn8Ynb.cjs +2 -0
  290. package/dist/tailwind.mixin-CvQn8Ynb.cjs.map +1 -0
  291. package/dist/tailwind.mixin-DGLcZhRp.js +57 -0
  292. package/dist/tailwind.mixin-DGLcZhRp.js.map +1 -0
  293. package/dist/teleport.cjs +1 -1
  294. package/dist/teleport.js +1 -1
  295. package/dist/{textarea-DHrDn-O6.js → textarea-CBb2CzKu.js} +3 -2
  296. package/dist/{textarea-DHrDn-O6.js.map → textarea-CBb2CzKu.js.map} +1 -1
  297. package/dist/textarea-ClgK_mP6.cjs +44 -0
  298. package/dist/{textarea-qLA0vP78.cjs.map → textarea-ClgK_mP6.cjs.map} +1 -1
  299. package/dist/textarea.cjs +1 -1
  300. package/dist/textarea.js +1 -1
  301. package/dist/theme-button-Dhp3ozyB.cjs +9 -0
  302. package/dist/{theme-button-D7fBEUGf.cjs.map → theme-button-Dhp3ozyB.cjs.map} +1 -1
  303. package/dist/{theme-button-BEUsbH5m.js → theme-button-Z_xWXMaf.js} +6 -5
  304. package/dist/{theme-button-BEUsbH5m.js.map → theme-button-Z_xWXMaf.js.map} +1 -1
  305. package/dist/theme-button.cjs +1 -1
  306. package/dist/theme-button.js +1 -1
  307. package/dist/theme.cjs +1 -1
  308. package/dist/{theme.component-ByGua01V.js → theme.controls-BtaZcM7z.js} +367 -238
  309. package/dist/theme.controls-BtaZcM7z.js.map +1 -0
  310. package/dist/theme.controls-C_zAMJgA.cjs +67 -0
  311. package/dist/theme.controls-C_zAMJgA.cjs.map +1 -0
  312. package/dist/theme.js +13 -11
  313. package/dist/{timezone-BpDMR26D.js → timezone-CZ0gCI2P.js} +10 -9
  314. package/dist/{timezone-BpDMR26D.js.map → timezone-CZ0gCI2P.js.map} +1 -1
  315. package/dist/{timezone-Bw4EXBt7.cjs → timezone-DucGbWcE.cjs} +2 -2
  316. package/dist/{timezone-Bw4EXBt7.cjs.map → timezone-DucGbWcE.cjs.map} +1 -1
  317. package/dist/{tooltip-Dhs4HL3A.cjs → tooltip-BSWp7Mmz.cjs} +2 -2
  318. package/dist/{tooltip-Dhs4HL3A.cjs.map → tooltip-BSWp7Mmz.cjs.map} +1 -1
  319. package/dist/{tooltip-B1jynZOH.js → tooltip-BSppSqZM.js} +2 -2
  320. package/dist/{tooltip-B1jynZOH.js.map → tooltip-BSppSqZM.js.map} +1 -1
  321. package/dist/tooltip.cjs +1 -1
  322. package/dist/tooltip.js +1 -1
  323. package/dist/{tree-D-ezei_U.cjs → tree-DL71EUih.cjs} +4 -4
  324. package/dist/{tree-D-ezei_U.cjs.map → tree-DL71EUih.cjs.map} +1 -1
  325. package/dist/{tree-BH1qCJ_U.js → tree-dEse6eMH.js} +3 -2
  326. package/dist/{tree-BH1qCJ_U.js.map → tree-dEse6eMH.js.map} +1 -1
  327. package/dist/tree.cjs +1 -1
  328. package/dist/tree.js +1 -1
  329. package/dist/typewriter-B1Au4MRO.cjs +9 -0
  330. package/dist/{typewriter-CtPh4Pyj.cjs.map → typewriter-B1Au4MRO.cjs.map} +1 -1
  331. package/dist/{typewriter-DQbpNPtY.js → typewriter-DBvUYzpl.js} +5 -4
  332. package/dist/{typewriter-DQbpNPtY.js.map → typewriter-DBvUYzpl.js.map} +1 -1
  333. package/dist/typewriter.cjs +1 -1
  334. package/dist/typewriter.js +1 -1
  335. package/dist/{typography-BrIaOYmC.cjs → typography-3gXQvLXN.cjs} +2 -2
  336. package/dist/{typography-BrIaOYmC.cjs.map → typography-3gXQvLXN.cjs.map} +1 -1
  337. package/dist/{typography-D71cmr0R.js → typography-iOtjgSkI.js} +2 -2
  338. package/dist/{typography-D71cmr0R.js.map → typography-iOtjgSkI.js.map} +1 -1
  339. package/dist/typography.cjs +1 -1
  340. package/dist/typography.js +1 -1
  341. package/package.json +1 -1
  342. package/types/mixins/baseElement.d.ts +2 -1
  343. package/types/src/boat/boat.d.ts +10 -5
  344. package/types/src/discovery/discovery.service.d.ts +17 -0
  345. package/types/src/discovery/index.d.ts +1 -0
  346. package/types/src/index.d.ts +1 -0
  347. package/types/src/navigation-bar/navigation-bar.d.ts +19 -2
  348. package/types/src/navigation-rail/navigation-rail.d.ts +13 -0
  349. package/types/src/theme/index.d.ts +1 -0
  350. package/types/src/theme/theme.controls.d.ts +27 -0
  351. package/types/src/theme/theme.service.d.ts +58 -2
  352. package/dist/area.component-Ch2Eaa4i.cjs +0 -12
  353. package/dist/avatar-DZMY4ePP.cjs +0 -303
  354. package/dist/avatar-DZMY4ePP.cjs.map +0 -1
  355. package/dist/avatar-DnYQquLU.js.map +0 -1
  356. package/dist/boat-CUsJXaLf.js +0 -240
  357. package/dist/boat-CUsJXaLf.js.map +0 -1
  358. package/dist/boat-Dfx9-P8c.cjs +0 -83
  359. package/dist/boat-Dfx9-P8c.cjs.map +0 -1
  360. package/dist/context-object-BE1o2XB3.js.map +0 -1
  361. package/dist/context-object-DA9DM9QJ.cjs +0 -2
  362. package/dist/context-object-DA9DM9QJ.cjs.map +0 -1
  363. package/dist/date-range-inline-DNr7C5X-.cjs +0 -44
  364. package/dist/divider-CNxOc8ep.cjs +0 -2
  365. package/dist/form-DzDksPgv.cjs +0 -2
  366. package/dist/input-C2Vz-51i.cjs +0 -51
  367. package/dist/navigation-rail-6ONc-XE-.cjs.map +0 -1
  368. package/dist/navigation-rail-D-lK9oVd.js.map +0 -1
  369. package/dist/payment-card-form--v94EhJF.cjs +0 -74
  370. package/dist/selector-hook-DOsvFxG2.js +0 -364
  371. package/dist/selector-hook-DOsvFxG2.js.map +0 -1
  372. package/dist/selector-hook-DQ9zoDM4.cjs +0 -2
  373. package/dist/selector-hook-DQ9zoDM4.cjs.map +0 -1
  374. package/dist/tailwind.mixin-BjDGMGbj.js +0 -43
  375. package/dist/tailwind.mixin-BjDGMGbj.js.map +0 -1
  376. package/dist/tailwind.mixin-ClfV2_Nh.cjs +0 -2
  377. package/dist/tailwind.mixin-ClfV2_Nh.cjs.map +0 -1
  378. package/dist/textarea-qLA0vP78.cjs +0 -44
  379. package/dist/theme-button-D7fBEUGf.cjs +0 -9
  380. package/dist/theme.component-ByGua01V.js.map +0 -1
  381. package/dist/theme.component-CQ1trrZB.cjs +0 -3
  382. package/dist/theme.component-CQ1trrZB.cjs.map +0 -1
  383. package/dist/typewriter-CtPh4Pyj.cjs +0 -9
@@ -1,9 +1,10 @@
1
1
  import { fromEvent as l, takeUntil as r, tap as c, filter as f } from "rxjs";
2
+ import "rxjs/operators";
2
3
  import "lit/directives/class-map.js";
3
4
  import "lit/directives/style-map.js";
4
5
  import { customElement as d, queryAssignedElements as g, query as E } from "lit/decorators.js";
5
- import { T as w } from "./tailwind.mixin-BjDGMGbj.js";
6
- import { $ as v } from "./litElement.mixin-CzF0mNQd.js";
6
+ import { T as w } from "./tailwind.mixin-DGLcZhRp.js";
7
+ import { $ as v } from "./litElement.mixin-Bkdw4DeE.js";
7
8
  import { css as b, html as y } from "lit";
8
9
  import { offset as x, flip as k, shift as M, size as P, computePosition as p, autoUpdate as O } from "@floating-ui/dom";
9
10
  var j = Object.getOwnPropertyDescriptor;
@@ -96,4 +97,4 @@ let m = class extends w(b`
96
97
  }
97
98
  };
98
99
  u([g({ flatten: !0, slot: "button" })], m.prototype, "buttonElement", 2), u([E("#menu")], m.prototype, "menuElement", 2), m = u([d("schmancy-menu")], m);
99
- //# sourceMappingURL=menu-wtkHGlyc.js.map
100
+ //# sourceMappingURL=menu-C9mJa_ck.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"menu-wtkHGlyc.js","sources":["../src/menu/menu-item.ts","../src/menu/menu.ts"],"sourcesContent":["import { $LitElement } from '@mixins/index'\nimport { css, html } from 'lit'\nimport { customElement } from 'lit/decorators.js'\nimport { fromEvent, takeUntil } from 'rxjs'\n\n@customElement('schmancy-menu-item')\nexport default class SchmancyMenuItem extends $LitElement(css`\n\t:host {\n\t\tdisplay: block;\n\t}\n`) {\n\tconnectedCallback(): void {\n\t\tsuper.connectedCallback()\n\t\tfromEvent(this, 'click')\n\t\t\t.pipe(takeUntil(this.disconnecting))\n\t\t\t.subscribe(e => {\n\t\t\t\te.stopPropagation()\n\t\t\t\tthis.dispatchEvent(\n\t\t\t\t\tnew CustomEvent('schmancy-menu-item-click', {\n\t\t\t\t\t\tbubbles: true,\n\t\t\t\t\t\tcomposed: true,\n\t\t\t\t\t}),\n\t\t\t\t)\n\t\t\t})\n\t}\n\tprotected render(): unknown {\n\t\treturn html`\n\t\t\t<schmancy-list-item>\n\t\t\t\t<slot></slot>\n\t\t\t</schmancy-list-item>\n\t\t`\n\t}\n}\n\ndeclare global {\n\tinterface HTMLElementTagNameMap {\n\t\t'schmancy-menu-item': SchmancyMenuItem\n\t}\n}\n","import { autoUpdate, computePosition, flip, offset, shift, size } from '@floating-ui/dom'\nimport { TailwindElement } from '@mixins/index'\nimport { css, html } from 'lit'\nimport { customElement, query, queryAssignedElements } from 'lit/decorators.js'\nimport { filter, fromEvent, takeUntil, tap } from 'rxjs'\n\n@customElement('schmancy-menu')\nexport default class SchmancyMenu extends TailwindElement(css`\n\t:host {\n\t\tposition: relative;\n\t\tdisplay: inline-block;\n\t}\n\n\t#menu {\n\t\tdisplay: none;\n\t}\n\n\t#menu[data-show='true'] {\n\t\tdisplay: block;\n\t}\n`) {\n\t@queryAssignedElements({ flatten: true, slot: 'button' })\n\tbuttonElement!: Array<HTMLElement>\n\n\t@query('#menu') menuElement!: HTMLElement\n\n\tprivate cleanup?: any\n\n\tprivate getMiddleware() {\n\t\treturn [\n\t\t\toffset(5),\n\t\t\tflip(),\n\t\t\tshift({ padding: 5 }),\n\t\t\tsize({\n\t\t\t\tapply({ availableHeight, elements }) {\n\t\t\t\t\telements.floating.style.maxHeight = `${availableHeight}px`\n\t\t\t\t},\n\t\t\t}),\n\t\t]\n\t}\n\n\tasync updatePosition() {\n\t\tif (!this.buttonElement[0] || !this.menuElement) {\n\t\t\treturn\n\t\t}\n\n\t\tawait computePosition(this.buttonElement[0], this.menuElement, {\n\t\t\tplacement: 'bottom-start',\n\t\t\tmiddleware: this.getMiddleware(),\n\t\t}).then(({ x, y }) => {\n\t\t\tObject.assign(this.menuElement.style, {\n\t\t\t\tleft: `${x}px`,\n\t\t\t\ttop: `${y}px`,\n\t\t\t})\n\t\t})\n\t}\n\n\tprivate showMenu() {\n\t\tif (!this.buttonElement[0] || !this.menuElement) return\n\n\t\tthis.menuElement.dataset.show = 'true'\n\n\t\tthis.cleanup = autoUpdate(this.buttonElement[0], this.menuElement, () => {\n\t\t\tcomputePosition(this.buttonElement[0], this.menuElement, {\n\t\t\t\tplacement: 'bottom-start',\n\t\t\t\tmiddleware: this.getMiddleware(),\n\t\t\t}).then(({ x, y, strategy }) => {\n\t\t\t\tObject.assign(this.menuElement.style, {\n\t\t\t\t\tleft: `${x}px`,\n\t\t\t\t\ttop: `${y}px`,\n\t\t\t\t\tposition: strategy,\n\t\t\t\t})\n\t\t\t})\n\t\t})\n\n\t\tconst animation = this.menuElement.animate(\n\t\t\t[\n\t\t\t\t{ opacity: 0, transform: 'scale(0.95)' },\n\t\t\t\t{ opacity: 1, transform: 'scale(1)' },\n\t\t\t],\n\t\t\t{\n\t\t\t\tduration: 100,\n\t\t\t\teasing: 'cubic-bezier(0.55, 0.085, 0.68, 0.53)',\n\t\t\t},\n\t\t)\n\n\t\tanimation.onfinish = () => {}\n\t}\n\n\tprivate async hideMenu() {\n\t\t// Make hideMenu async\n\t\tif (this.cleanup) {\n\t\t\tawait this.cleanup() // Await the cleanup!\n\t\t\tthis.cleanup = undefined\n\t\t}\n\t\tthis.menuElement.dataset.show = 'false'\n\n\t\tconst animation = this.menuElement.animate(\n\t\t\t[\n\t\t\t\t{ opacity: 1, transform: 'scale(1)' },\n\t\t\t\t{ opacity: 0, transform: 'scale(0.95)' },\n\t\t\t],\n\t\t\t{\n\t\t\t\tduration: 75,\n\t\t\t\teasing: 'cubic-bezier(0.55, 0.085, 0.68, 0.53)',\n\t\t\t},\n\t\t)\n\t\tanimation.onfinish = () => {} // No need for a promise now\n\t}\n\n\tfirstUpdated(): void {\n\t\tfromEvent(this.buttonElement, 'click')\n\t\t\t.pipe(\n\t\t\t\ttap(e => e.stopPropagation()),\n\t\t\t\ttakeUntil(this.disconnecting),\n\t\t\t)\n\t\t\t.subscribe(() => {\n\t\t\t\tthis.showMenu()\n\t\t\t})\n\n\t\tfromEvent(this, 'schmancy-menu-item-click')\n\t\t\t.pipe(\n\t\t\t\ttap(e => e.stopPropagation()),\n\t\t\t\ttakeUntil(this.disconnecting),\n\t\t\t)\n\t\t\t.subscribe(() => {\n\t\t\t\tthis.hideMenu()\n\t\t\t})\n\n\t\tfromEvent(document, 'click')\n\t\t\t.pipe(\n\t\t\t\tfilter((e: Event) => !this.contains(e.target as Node)),\n\t\t\t\ttakeUntil(this.disconnecting),\n\t\t\t\ttap(() => {\n\t\t\t\t\tif (this.menuElement.dataset.show === 'true') {\n\t\t\t\t\t\tthis.hideMenu()\n\t\t\t\t\t}\n\t\t\t\t}),\n\t\t\t)\n\t\t\t.subscribe()\n\t}\n\n\trender() {\n\t\treturn html`\n\t\t\t<slot name=\"button\">\n\t\t\t\t<schmancy-icon-button> more_vert </schmancy-icon-button>\n\t\t\t</slot>\n\t\t\t<ul\n\t\t\t\tid=\"menu\"\n\t\t\t\tclass=\"absolute z-50 border-outlineVariant rounded-md min-w-[160px] max-w-[320px] w-max bg-surface-default max-h-[90vh] shadow-1 overflow-y-auto\"\n\t\t\t\trole=\"menu\"\n\t\t\t\taria-orientation=\"vertical\"\n\t\t\t\taria-labelledby=\"options-menu-4-button\"\n\t\t\t>\n\t\t\t\t<slot></slot>\n\t\t\t</ul>\n\t\t`\n\t}\n}\n\ndeclare global {\n\tinterface HTMLElementTagNameMap {\n\t\t'schmancy-menu': SchmancyMenu\n\t}\n}\n"],"names":["SchmancyMenuItem","$LitElement","css","connectedCallback","super","fromEvent","this","pipe","takeUntil","disconnecting","subscribe","e","stopPropagation","dispatchEvent","CustomEvent","bubbles","composed","render","html","customElement","SchmancyMenu","TailwindElement","getMiddleware","offset","flip","shift","padding","size","apply","availableHeight","elements","floating","style","maxHeight","buttonElement","menuElement","computePosition","placement","middleware","then","x","y","Object","assign","left","top","showMenu","dataset","show","cleanup","autoUpdate","strategy","position","animate","opacity","transform","duration","easing","onfinish","hideMenu","firstUpdated","tap","document","filter","contains","target","__decorateClass","queryAssignedElements","flatten","slot","prototype","query"],"mappings":"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"}
1
+ {"version":3,"file":"menu-C9mJa_ck.js","sources":["../src/menu/menu-item.ts","../src/menu/menu.ts"],"sourcesContent":["import { $LitElement } from '@mixins/index'\nimport { css, html } from 'lit'\nimport { customElement } from 'lit/decorators.js'\nimport { fromEvent, takeUntil } from 'rxjs'\n\n@customElement('schmancy-menu-item')\nexport default class SchmancyMenuItem extends $LitElement(css`\n\t:host {\n\t\tdisplay: block;\n\t}\n`) {\n\tconnectedCallback(): void {\n\t\tsuper.connectedCallback()\n\t\tfromEvent(this, 'click')\n\t\t\t.pipe(takeUntil(this.disconnecting))\n\t\t\t.subscribe(e => {\n\t\t\t\te.stopPropagation()\n\t\t\t\tthis.dispatchEvent(\n\t\t\t\t\tnew CustomEvent('schmancy-menu-item-click', {\n\t\t\t\t\t\tbubbles: true,\n\t\t\t\t\t\tcomposed: true,\n\t\t\t\t\t}),\n\t\t\t\t)\n\t\t\t})\n\t}\n\tprotected render(): unknown {\n\t\treturn html`\n\t\t\t<schmancy-list-item>\n\t\t\t\t<slot></slot>\n\t\t\t</schmancy-list-item>\n\t\t`\n\t}\n}\n\ndeclare global {\n\tinterface HTMLElementTagNameMap {\n\t\t'schmancy-menu-item': SchmancyMenuItem\n\t}\n}\n","import { autoUpdate, computePosition, flip, offset, shift, size } from '@floating-ui/dom'\nimport { TailwindElement } from '@mixins/index'\nimport { css, html } from 'lit'\nimport { customElement, query, queryAssignedElements } from 'lit/decorators.js'\nimport { filter, fromEvent, takeUntil, tap } from 'rxjs'\n\n@customElement('schmancy-menu')\nexport default class SchmancyMenu extends TailwindElement(css`\n\t:host {\n\t\tposition: relative;\n\t\tdisplay: inline-block;\n\t}\n\n\t#menu {\n\t\tdisplay: none;\n\t}\n\n\t#menu[data-show='true'] {\n\t\tdisplay: block;\n\t}\n`) {\n\t@queryAssignedElements({ flatten: true, slot: 'button' })\n\tbuttonElement!: Array<HTMLElement>\n\n\t@query('#menu') menuElement!: HTMLElement\n\n\tprivate cleanup?: any\n\n\tprivate getMiddleware() {\n\t\treturn [\n\t\t\toffset(5),\n\t\t\tflip(),\n\t\t\tshift({ padding: 5 }),\n\t\t\tsize({\n\t\t\t\tapply({ availableHeight, elements }) {\n\t\t\t\t\telements.floating.style.maxHeight = `${availableHeight}px`\n\t\t\t\t},\n\t\t\t}),\n\t\t]\n\t}\n\n\tasync updatePosition() {\n\t\tif (!this.buttonElement[0] || !this.menuElement) {\n\t\t\treturn\n\t\t}\n\n\t\tawait computePosition(this.buttonElement[0], this.menuElement, {\n\t\t\tplacement: 'bottom-start',\n\t\t\tmiddleware: this.getMiddleware(),\n\t\t}).then(({ x, y }) => {\n\t\t\tObject.assign(this.menuElement.style, {\n\t\t\t\tleft: `${x}px`,\n\t\t\t\ttop: `${y}px`,\n\t\t\t})\n\t\t})\n\t}\n\n\tprivate showMenu() {\n\t\tif (!this.buttonElement[0] || !this.menuElement) return\n\n\t\tthis.menuElement.dataset.show = 'true'\n\n\t\tthis.cleanup = autoUpdate(this.buttonElement[0], this.menuElement, () => {\n\t\t\tcomputePosition(this.buttonElement[0], this.menuElement, {\n\t\t\t\tplacement: 'bottom-start',\n\t\t\t\tmiddleware: this.getMiddleware(),\n\t\t\t}).then(({ x, y, strategy }) => {\n\t\t\t\tObject.assign(this.menuElement.style, {\n\t\t\t\t\tleft: `${x}px`,\n\t\t\t\t\ttop: `${y}px`,\n\t\t\t\t\tposition: strategy,\n\t\t\t\t})\n\t\t\t})\n\t\t})\n\n\t\tconst animation = this.menuElement.animate(\n\t\t\t[\n\t\t\t\t{ opacity: 0, transform: 'scale(0.95)' },\n\t\t\t\t{ opacity: 1, transform: 'scale(1)' },\n\t\t\t],\n\t\t\t{\n\t\t\t\tduration: 100,\n\t\t\t\teasing: 'cubic-bezier(0.55, 0.085, 0.68, 0.53)',\n\t\t\t},\n\t\t)\n\n\t\tanimation.onfinish = () => {}\n\t}\n\n\tprivate async hideMenu() {\n\t\t// Make hideMenu async\n\t\tif (this.cleanup) {\n\t\t\tawait this.cleanup() // Await the cleanup!\n\t\t\tthis.cleanup = undefined\n\t\t}\n\t\tthis.menuElement.dataset.show = 'false'\n\n\t\tconst animation = this.menuElement.animate(\n\t\t\t[\n\t\t\t\t{ opacity: 1, transform: 'scale(1)' },\n\t\t\t\t{ opacity: 0, transform: 'scale(0.95)' },\n\t\t\t],\n\t\t\t{\n\t\t\t\tduration: 75,\n\t\t\t\teasing: 'cubic-bezier(0.55, 0.085, 0.68, 0.53)',\n\t\t\t},\n\t\t)\n\t\tanimation.onfinish = () => {} // No need for a promise now\n\t}\n\n\tfirstUpdated(): void {\n\t\tfromEvent(this.buttonElement, 'click')\n\t\t\t.pipe(\n\t\t\t\ttap(e => e.stopPropagation()),\n\t\t\t\ttakeUntil(this.disconnecting),\n\t\t\t)\n\t\t\t.subscribe(() => {\n\t\t\t\tthis.showMenu()\n\t\t\t})\n\n\t\tfromEvent(this, 'schmancy-menu-item-click')\n\t\t\t.pipe(\n\t\t\t\ttap(e => e.stopPropagation()),\n\t\t\t\ttakeUntil(this.disconnecting),\n\t\t\t)\n\t\t\t.subscribe(() => {\n\t\t\t\tthis.hideMenu()\n\t\t\t})\n\n\t\tfromEvent(document, 'click')\n\t\t\t.pipe(\n\t\t\t\tfilter((e: Event) => !this.contains(e.target as Node)),\n\t\t\t\ttakeUntil(this.disconnecting),\n\t\t\t\ttap(() => {\n\t\t\t\t\tif (this.menuElement.dataset.show === 'true') {\n\t\t\t\t\t\tthis.hideMenu()\n\t\t\t\t\t}\n\t\t\t\t}),\n\t\t\t)\n\t\t\t.subscribe()\n\t}\n\n\trender() {\n\t\treturn html`\n\t\t\t<slot name=\"button\">\n\t\t\t\t<schmancy-icon-button> more_vert </schmancy-icon-button>\n\t\t\t</slot>\n\t\t\t<ul\n\t\t\t\tid=\"menu\"\n\t\t\t\tclass=\"absolute z-50 border-outlineVariant rounded-md min-w-[160px] max-w-[320px] w-max bg-surface-default max-h-[90vh] shadow-1 overflow-y-auto\"\n\t\t\t\trole=\"menu\"\n\t\t\t\taria-orientation=\"vertical\"\n\t\t\t\taria-labelledby=\"options-menu-4-button\"\n\t\t\t>\n\t\t\t\t<slot></slot>\n\t\t\t</ul>\n\t\t`\n\t}\n}\n\ndeclare global {\n\tinterface HTMLElementTagNameMap {\n\t\t'schmancy-menu': SchmancyMenu\n\t}\n}\n"],"names":["SchmancyMenuItem","$LitElement","css","connectedCallback","super","fromEvent","this","pipe","takeUntil","disconnecting","subscribe","e","stopPropagation","dispatchEvent","CustomEvent","bubbles","composed","render","html","customElement","SchmancyMenu","TailwindElement","getMiddleware","offset","flip","shift","padding","size","apply","availableHeight","elements","floating","style","maxHeight","buttonElement","menuElement","computePosition","placement","middleware","then","x","y","Object","assign","left","top","showMenu","dataset","show","cleanup","autoUpdate","strategy","position","animate","opacity","transform","duration","easing","onfinish","hideMenu","firstUpdated","tap","document","filter","contains","target","__decorateClass","queryAssignedElements","flatten","slot","prototype","query"],"mappings":"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"}
package/dist/menu.cjs CHANGED
@@ -1,2 +1,2 @@
1
- "use strict";require("./menu-Boqsyfmh.cjs");
1
+ "use strict";require("./menu-B8Ad1OVm.cjs");
2
2
  //# sourceMappingURL=menu.cjs.map
package/dist/menu.js CHANGED
@@ -1,2 +1,2 @@
1
- import "./menu-wtkHGlyc.js";
1
+ import "./menu-C9mJa_ck.js";
2
2
  //# sourceMappingURL=menu.js.map
@@ -1,18 +1,22 @@
1
1
  import type { Constructor } from './constructor'
2
2
  import { LitElement } from 'lit'
3
- import { Subject } from 'rxjs'
3
+ import { Subject, fromEvent, Observable } from 'rxjs'
4
+ import { takeUntil } from 'rxjs/operators'
4
5
  import { classMap } from 'lit/directives/class-map.js'
5
6
  import { styleMap } from 'lit/directives/style-map.js'
7
+ import { discoverComponent } from '../src/discovery/discovery.service'
6
8
 
7
9
  export declare class IBaseMixin {
8
10
  disconnecting: Subject<boolean>
9
11
  classMap: typeof classMap
10
12
  styleMap: typeof styleMap
13
+ discover<T extends HTMLElement>(tag: string): Observable<T | null>
11
14
  }
12
15
 
13
16
  export const BaseElement = <T extends Constructor<LitElement>>(superClass: T) => {
14
17
  class BaseElement extends superClass {
15
18
  disconnecting = new Subject<boolean>()
19
+
16
20
  classMap(classes: Record<string, boolean>) {
17
21
  const newClasses: Record<string, boolean> = {}
18
22
  Object.keys(classes).forEach(key => {
@@ -31,6 +35,34 @@ export const BaseElement = <T extends Constructor<LitElement>>(superClass: T) =>
31
35
  return styleMap(styles)
32
36
  }
33
37
 
38
+ connectedCallback() {
39
+ super.connectedCallback()
40
+ this.setupDiscoveryResponse()
41
+ }
42
+
43
+ private setupDiscoveryResponse() {
44
+ const tagName = this.tagName.toLowerCase()
45
+ const whereAreYouEvent = `${tagName}-where-are-you`
46
+ const hereIAmEvent = `${tagName}-here-i-am`
47
+
48
+ fromEvent(window, whereAreYouEvent)
49
+ .pipe(takeUntil(this.disconnecting))
50
+ .subscribe(() => {
51
+ window.dispatchEvent(
52
+ new CustomEvent(hereIAmEvent, {
53
+ detail: { component: this },
54
+ bubbles: true,
55
+ composed: true,
56
+ }),
57
+ )
58
+ })
59
+ }
60
+
61
+ // Make discover public to match the interface
62
+ discover<T extends HTMLElement>(tag: string): Observable<T | null> {
63
+ return discoverComponent<T>(tag)
64
+ }
65
+
34
66
  disconnectedCallback() {
35
67
  this.disconnecting.next(true)
36
68
  this.disconnecting.complete()
@@ -1,2 +1,2 @@
1
- "use strict";Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});const e=require("./avatar-DZMY4ePP.cjs");exports.$drawer=e.$drawer,Object.defineProperty(exports,"SchmancyDrawerAppbar",{enumerable:!0,get:()=>e.SchmancyDrawerAppbar}),exports.SchmancyDrawerNavbarMode=e.SchmancyDrawerNavbarMode,exports.SchmancyDrawerNavbarState=e.SchmancyDrawerNavbarState,Object.defineProperty(exports,"SchmancyNavigationDrawer",{enumerable:!0,get:()=>e.SchmancyNavigationDrawer}),Object.defineProperty(exports,"SchmancyNavigationDrawerContent",{enumerable:!0,get:()=>e.SchmancyNavigationDrawerContent}),Object.defineProperty(exports,"SchmancyNavigationDrawerSidebar",{enumerable:!0,get:()=>e.SchmancyNavigationDrawerSidebar}),exports.schmancyNavDrawer=e.schmancyNavDrawer;
1
+ "use strict";Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});const e=require("./avatar-DbUCDe1w.cjs");exports.$drawer=e.$drawer,Object.defineProperty(exports,"SchmancyDrawerAppbar",{enumerable:!0,get:()=>e.SchmancyDrawerAppbar}),exports.SchmancyDrawerNavbarMode=e.SchmancyDrawerNavbarMode,exports.SchmancyDrawerNavbarState=e.SchmancyDrawerNavbarState,Object.defineProperty(exports,"SchmancyNavigationDrawer",{enumerable:!0,get:()=>e.SchmancyNavigationDrawer}),Object.defineProperty(exports,"SchmancyNavigationDrawerContent",{enumerable:!0,get:()=>e.SchmancyNavigationDrawerContent}),Object.defineProperty(exports,"SchmancyNavigationDrawerSidebar",{enumerable:!0,get:()=>e.SchmancyNavigationDrawerSidebar}),exports.schmancyNavDrawer=e.schmancyNavDrawer;
2
2
  //# sourceMappingURL=nav-drawer.cjs.map
@@ -1,4 +1,4 @@
1
- import { $ as c, k as e, m as n, n as m, o as s, l as o, p as t, j as w } from "./avatar-DnYQquLU.js";
1
+ import { $ as c, k as e, m as n, n as m, o as s, l as o, p as t, j as w } from "./avatar-DJ7qYc6-.js";
2
2
  export {
3
3
  c as $drawer,
4
4
  e as SchmancyDrawerAppbar,
@@ -1,2 +1,2 @@
1
- "use strict";Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});const e=require("./avatar-DZMY4ePP.cjs");Object.defineProperty(exports,"SchmancyNavigationBar",{enumerable:!0,get:()=>e.SchmancyNavigationBar}),Object.defineProperty(exports,"SchmancyNavigationBarItem",{enumerable:!0,get:()=>e.SchmancyNavigationBarItem});
1
+ "use strict";Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});const e=require("./avatar-DbUCDe1w.cjs");Object.defineProperty(exports,"SchmancyNavigationBar",{enumerable:!0,get:()=>e.SchmancyNavigationBar}),Object.defineProperty(exports,"SchmancyNavigationBarItem",{enumerable:!0,get:()=>e.SchmancyNavigationBarItem});
2
2
  //# sourceMappingURL=navigation-bar.cjs.map
@@ -1,4 +1,4 @@
1
- import { r as c, q as i } from "./avatar-DnYQquLU.js";
1
+ import { r as c, q as i } from "./avatar-DJ7qYc6-.js";
2
2
  export {
3
3
  c as SchmancyNavigationBar,
4
4
  i as SchmancyNavigationBarItem
@@ -1,4 +1,4 @@
1
- "use strict";const l=require("rxjs");require("lit/directives/class-map.js"),require("lit/directives/style-map.js");const a=require("lit/decorators.js");require("./tailwind.mixin-ClfV2_Nh.cjs");const b=require("./litElement.mixin-LplXbzd8.cjs"),h=require("lit"),u=require("lit/directives/when.js"),r=require("rxjs/operators");var g=Object.defineProperty,f=Object.getOwnPropertyDescriptor,o=(e,t,i,s)=>{for(var c,n=s>1?void 0:s?f(t,i):t,d=e.length-1;d>=0;d--)(c=e[d])&&(n=(s?c(t,i,n):c(n))||n);return s&&n&&g(t,i,n),n};exports.SchmancyNavigationRailItem=class extends b.$LitElement(){constructor(){super(...arguments),this.hovering$=new l.BehaviorSubject(!1),this.pressing$=new l.BehaviorSubject(!1),this.active$=new l.BehaviorSubject(!1),this.icon="",this.label="",this.value="",this.badge="",this.badgeVariant="error",this.showLabel=!1,this.disabled=!1,this.nested=!1,this.group=!1,this.showRipple=!1}get active(){return this.active$.value}set active(e){this.active$.next(e)}get selected(){return this.active}set selected(e){this.active=e}connectedCallback(){super.connectedCallback(),l.merge(l.fromEvent(this,"mouseenter").pipe(r.tap(()=>this.hovering$.next(!0))),l.fromEvent(this,"mouseleave").pipe(r.tap(()=>this.hovering$.next(!1)))).pipe(l.takeUntil(this.disconnecting)).subscribe(),l.merge(l.fromEvent(this,"mousedown").pipe(r.tap(()=>this.pressing$.next(!0))),l.fromEvent(this,"mouseup").pipe(r.tap(()=>this.pressing$.next(!1))),l.fromEvent(this,"mouseleave").pipe(r.tap(()=>this.pressing$.next(!1)))).pipe(l.takeUntil(this.disconnecting)).subscribe(),this.pressing$.pipe(r.tap(e=>{e&&!this.disabled&&(this.showRipple=!0)}),r.delay(600),r.tap(()=>this.showRipple=!1),l.takeUntil(this.disconnecting)).subscribe(),this.active$.pipe(r.distinctUntilChanged(),r.tap(e=>{this.requestUpdate(),this.setAttribute("aria-selected",String(e)),this.setAttribute("tabindex",e?"0":"-1")}),l.takeUntil(this.disconnecting)).subscribe(),this.setAttribute("role","listitem"),this.hasAttribute("tabindex")||this.setAttribute("tabindex",this.active?"0":"-1")}updated(e){super.updated(e),e.has("disabled")&&this.setAttribute("aria-disabled",String(this.disabled)),e.has("label")&&this.setAttribute("aria-label",this.label)}handleClick(e){if(this.disabled)return e.preventDefault(),void e.stopPropagation();this.dispatchEvent(new CustomEvent("navigate",{detail:this.value||this.label,bubbles:!0,composed:!0}))}handleKeyDown(e){this.disabled||e.key!=="Enter"&&e.key!==" "||(e.preventDefault(),this.click())}render(){const e=this.querySelector('[slot="icon"]'),t=this.querySelector(":not([slot])"),i=this.querySelector('[slot="badge"]'),s=this.classMap({"flex flex-col items-center justify-center":!0,"min-h-14 w-full":!0,"py-3":!0,"gap-1":!0,"rounded-lg":!0,"cursor-pointer":!0,relative:!0,"select-none":!0,"box-border":!0,"text-surface-onVariant":!this.active,"text-secondary-onContainer":this.active,"hover:bg-surface-containerHighest":!0,"transition-all duration-150 ease-out":!0,"pointer-events-none opacity-38":this.disabled,"[&>.ripple]:scale-100":this.showRipple,"min-h-12 pl-8":this.nested,"mb-2 after:absolute after:bottom-[-4px] after:left-3 after:right-3 after:h-px after:bg-outline-variant after:opacity-12":this.group}),c=this.classMap({"flex items-center justify-center":!0,"w-auto min-w-14 h-8":!0,"flex-shrink-0 relative z-10":!0}),n=this.classMap({"absolute top-1/2 left-1/2 opacity-50":!0,"w-14 h-8":!0,"rounded-lg":!0,"bg-secondary-container":!0,"transition-transform duration-150 ease-out":!0,"z-0":!0,"scale-0 -translate-x-1/2 -translate-y-1/2":!this.active,"scale-100 -translate-x-1/2 -translate-y-1/2":this.active}),d=this.classMap({"text-2xl leading-none":!this.nested,"text-xl leading-none":this.nested,"relative z-10":!0}),v=this.classMap({"text-xs font-medium leading-4":!0,"text-center":!0,"overflow-hidden text-ellipsis whitespace-nowrap":!0,"z-10 max-w-14 px-1":!0,hidden:!this.showLabel&&!this.label}),y=this.classMap({"absolute top-2 right-3":!0,"min-w-4 h-4":!0,"rounded-sm":!0,"text-xs font-semibold":!0,"flex items-center justify-center":!0,"px-1 box-border z-20":!0,"animate-pulse":!0,"bg-error-default text-error-on":this.badgeVariant==="error","bg-primary-default text-primary-on":this.badgeVariant==="primary","bg-secondary-default text-secondary-on":this.badgeVariant==="secondary"}),m=this.classMap({"absolute inset-0 rounded-lg overflow-hidden z-0":!0,'before:content-[""] before:absolute before:top-1/2 before:left-1/2':!0,"before:w-0 before:h-0 before:rounded-full":!0,"before:bg-current before:opacity-0":!0,"before:-translate-x-1/2 before:-translate-y-1/2":!0,"before:transition-all before:duration-300":!0,"before:w-[200%] before:h-[200%] before:opacity-12":this.showRipple});return h.html`
1
+ "use strict";const n=require("rxjs"),r=require("rxjs/operators");require("lit/directives/class-map.js"),require("lit/directives/style-map.js");const a=require("lit/decorators.js");require("./tailwind.mixin-CvQn8Ynb.cjs");const b=require("./litElement.mixin-Di-HgRnn.cjs"),p=require("lit"),u=require("lit/directives/when.js");var g=Object.defineProperty,f=Object.getOwnPropertyDescriptor,o=(e,t,i,s)=>{for(var c,l=s>1?void 0:s?f(t,i):t,d=e.length-1;d>=0;d--)(c=e[d])&&(l=(s?c(t,i,l):c(l))||l);return s&&l&&g(t,i,l),l};exports.SchmancyNavigationRailItem=class extends b.$LitElement(){constructor(){super(...arguments),this.hovering$=new n.BehaviorSubject(!1),this.pressing$=new n.BehaviorSubject(!1),this.active$=new n.BehaviorSubject(!1),this.icon="",this.label="",this.value="",this.badge="",this.badgeVariant="error",this.showLabel=!1,this.disabled=!1,this.nested=!1,this.group=!1,this.showRipple=!1}get active(){return this.active$.value}set active(e){this.active$.next(e)}get selected(){return this.active}set selected(e){this.active=e}connectedCallback(){super.connectedCallback(),n.merge(n.fromEvent(this,"mouseenter").pipe(r.tap(()=>this.hovering$.next(!0))),n.fromEvent(this,"mouseleave").pipe(r.tap(()=>this.hovering$.next(!1)))).pipe(n.takeUntil(this.disconnecting)).subscribe(),n.merge(n.fromEvent(this,"mousedown").pipe(r.tap(()=>this.pressing$.next(!0))),n.fromEvent(this,"mouseup").pipe(r.tap(()=>this.pressing$.next(!1))),n.fromEvent(this,"mouseleave").pipe(r.tap(()=>this.pressing$.next(!1)))).pipe(n.takeUntil(this.disconnecting)).subscribe(),this.pressing$.pipe(r.tap(e=>{e&&!this.disabled&&(this.showRipple=!0)}),r.delay(600),r.tap(()=>this.showRipple=!1),n.takeUntil(this.disconnecting)).subscribe(),this.active$.pipe(r.distinctUntilChanged(),r.tap(e=>{this.requestUpdate(),this.setAttribute("aria-selected",String(e)),this.setAttribute("tabindex",e?"0":"-1")}),n.takeUntil(this.disconnecting)).subscribe(),this.setAttribute("role","listitem"),this.hasAttribute("tabindex")||this.setAttribute("tabindex",this.active?"0":"-1")}updated(e){super.updated(e),e.has("disabled")&&this.setAttribute("aria-disabled",String(this.disabled)),e.has("label")&&this.setAttribute("aria-label",this.label)}handleClick(e){if(this.disabled)return e.preventDefault(),void e.stopPropagation();this.dispatchEvent(new CustomEvent("navigate",{detail:this.value||this.label,bubbles:!0,composed:!0}))}handleKeyDown(e){this.disabled||e.key!=="Enter"&&e.key!==" "||(e.preventDefault(),this.click())}render(){const e=this.querySelector('[slot="icon"]'),t=this.querySelector(":not([slot])"),i=this.querySelector('[slot="badge"]'),s=this.classMap({"flex flex-col items-center justify-center":!0,"min-h-14 w-full":!0,"py-3":!0,"gap-1":!0,"rounded-lg":!0,"cursor-pointer":!0,relative:!0,"select-none":!0,"box-border":!0,"text-surface-onVariant":!this.active,"text-secondary-onContainer":this.active,"hover:bg-surface-containerHighest":!0,"transition-all duration-150 ease-out":!0,"pointer-events-none opacity-38":this.disabled,"[&>.ripple]:scale-100":this.showRipple,"min-h-12 pl-8":this.nested,"mb-2 after:absolute after:bottom-[-4px] after:left-3 after:right-3 after:h-px after:bg-outline-variant after:opacity-12":this.group}),c=this.classMap({"flex items-center justify-center":!0,"w-auto min-w-14 h-8":!0,"flex-shrink-0 relative z-10":!0}),l=this.classMap({"absolute top-1/2 left-1/2 opacity-50":!0,"w-14 h-8":!0,"rounded-lg":!0,"bg-secondary-container":!0,"transition-transform duration-150 ease-out":!0,"z-0":!0,"scale-0 -translate-x-1/2 -translate-y-1/2":!this.active,"scale-100 -translate-x-1/2 -translate-y-1/2":this.active}),d=this.classMap({"text-2xl leading-none":!this.nested,"text-xl leading-none":this.nested,"relative z-10":!0}),v=this.classMap({"text-xs font-medium leading-4":!0,"text-center":!0,"overflow-hidden text-ellipsis whitespace-nowrap":!0,"z-10 max-w-14 px-1":!0,hidden:!this.showLabel&&!this.label}),y=this.classMap({"absolute top-2 right-3":!0,"min-w-4 h-4":!0,"rounded-sm":!0,"text-xs font-semibold":!0,"flex items-center justify-center":!0,"px-1 box-border z-20":!0,"animate-pulse":!0,"bg-error-default text-error-on":this.badgeVariant==="error","bg-primary-default text-primary-on":this.badgeVariant==="primary","bg-secondary-default text-secondary-on":this.badgeVariant==="secondary"}),m=this.classMap({"absolute inset-0 rounded-lg overflow-hidden z-0":!0,'before:content-[""] before:absolute before:top-1/2 before:left-1/2':!0,"before:w-0 before:h-0 before:rounded-full":!0,"before:bg-current before:opacity-0":!0,"before:-translate-x-1/2 before:-translate-y-1/2":!0,"before:transition-all before:duration-300":!0,"before:w-[200%] before:h-[200%] before:opacity-12":this.showRipple});return p.html`
2
2
  <div
3
3
  class=${s}
4
4
  part="container"
@@ -8,10 +8,10 @@
8
8
  >
9
9
  <span class=${m} aria-hidden="true"></span>
10
10
 
11
- ${u.when(t,()=>h.html`<slot></slot>`,()=>h.html`
11
+ ${u.when(t,()=>p.html`<slot></slot>`,()=>p.html`
12
12
  <div class=${c} part="icon">
13
- <span class=${n} part="indicator" aria-hidden="true"></span>
14
- ${u.when(e,()=>h.html`<slot name="icon"></slot>`,()=>u.when(this.icon,()=>h.html`
13
+ <span class=${l} part="indicator" aria-hidden="true"></span>
14
+ ${u.when(e,()=>p.html`<slot name="icon"></slot>`,()=>u.when(this.icon,()=>p.html`
15
15
  <span
16
16
  class=${d}
17
17
  part="icon-text"
@@ -22,11 +22,11 @@
22
22
  `))}
23
23
  </div>
24
24
 
25
- ${u.when(this.label,()=>h.html`<span class=${v} part="label">${this.label}</span>`)}
25
+ ${u.when(this.label,()=>p.html`<span class=${v} part="label">${this.label}</span>`)}
26
26
  `)}
27
27
 
28
- ${u.when(this.badge,()=>h.html`
29
- ${u.when(i,()=>h.html`<slot name="badge"></slot>`,()=>h.html`
28
+ ${u.when(this.badge,()=>p.html`
29
+ ${u.when(i,()=>p.html`<slot name="badge"></slot>`,()=>p.html`
30
30
  <span
31
31
  class=${y}
32
32
  part="badge"
@@ -38,7 +38,7 @@
38
38
  `)}
39
39
 
40
40
  <!-- Tooltip shown via title attribute -->
41
- ${u.when(this.hasAttribute("title"),()=>h.html`
41
+ ${u.when(this.hasAttribute("title"),()=>p.html`
42
42
  <div class="
43
43
  absolute left-[calc(100%+8px)] top-1/2 -translate-y-1/2
44
44
  bg-surface-inverse text-surface-inverseOn
@@ -52,7 +52,10 @@
52
52
  </div>
53
53
  `)}
54
54
  </div>
55
- `}},o([a.property({type:String})],exports.SchmancyNavigationRailItem.prototype,"icon",2),o([a.property({type:String})],exports.SchmancyNavigationRailItem.prototype,"label",2),o([a.property({type:String})],exports.SchmancyNavigationRailItem.prototype,"value",2),o([a.property({type:Boolean,reflect:!0})],exports.SchmancyNavigationRailItem.prototype,"active",1),o([a.property({type:Boolean,reflect:!0})],exports.SchmancyNavigationRailItem.prototype,"selected",1),o([a.property({type:String})],exports.SchmancyNavigationRailItem.prototype,"badge",2),o([a.property({type:String})],exports.SchmancyNavigationRailItem.prototype,"badgeVariant",2),o([a.property({type:Boolean,attribute:"show-label"})],exports.SchmancyNavigationRailItem.prototype,"showLabel",2),o([a.property({type:Boolean,reflect:!0})],exports.SchmancyNavigationRailItem.prototype,"disabled",2),o([a.property({type:Boolean,reflect:!0})],exports.SchmancyNavigationRailItem.prototype,"nested",2),o([a.property({type:Boolean,reflect:!0})],exports.SchmancyNavigationRailItem.prototype,"group",2),o([a.state()],exports.SchmancyNavigationRailItem.prototype,"showRipple",2),exports.SchmancyNavigationRailItem=o([a.customElement("schmancy-navigation-rail-item")],exports.SchmancyNavigationRailItem);var x=Object.defineProperty,w=Object.getOwnPropertyDescriptor,p=(e,t,i,s)=>{for(var c,n=s>1?void 0:s?w(t,i):t,d=e.length-1;d>=0;d--)(c=e[d])&&(n=(s?c(t,i,n):c(n))||n);return s&&n&&x(t,i,n),n};exports.SchmancyNavigationRail=class extends b.$LitElement(){constructor(){super(...arguments),this.activeIndex$=new l.BehaviorSubject(-1),this._activeValue="",this.labelVisibility="all",this.alignment="top",this.showTooltips=!0,this.keyboardNavigation=!0,this.expanded=!1,this.focusedIndex=-1}get activeIndex(){return this.activeIndex$.value}set activeIndex(e){this.activeIndex$.next(e)}get activeValue(){return this._activeValue}set activeValue(e){this._activeValue=e,this.updateActiveByValue(e)}get navigationItems(){return this.allElements.filter(e=>e.tagName==="SCHMANCY-NAVIGATION-RAIL-ITEM")}connectedCallback(){super.connectedCallback(),this.keyboardNavigation&&this.addEventListener("keydown",this.handleKeyDown),this.activeIndex$.pipe(r.distinctUntilChanged(),r.tap(e=>this.updateActiveStates(e)),l.takeUntil(this.disconnecting)).subscribe(),this.setupNavigateListener(),this.updateLabelVisibility(),this.setAttribute("role","navigation"),this.setAttribute("aria-label","Main navigation")}updated(e){super.updated(e),e.has("labelVisibility")&&this.updateLabelVisibility(),e.has("activeValue")&&this.updateActiveByValue(this.activeValue),e.has("expanded")&&this.updateLabelVisibility()}updateActiveStates(e){this.navigationItems.forEach((t,i)=>{const s=i===e;t.active=s,t.setAttribute("aria-selected",String(s)),t.setAttribute("tabindex",s?"0":"-1"),s&&(this._activeValue=t.value||t.label||"")})}updateActiveByValue(e){const t=this.navigationItems.findIndex(i=>i.getAttribute("value")===e||i.label===e);t>=0&&(this.activeIndex=t)}updateLabelVisibility(){this.navigationItems.forEach((e,t)=>{let i=!1;i=!!this.expanded||this.labelVisibility==="all"||this.labelVisibility==="selected"&&t===this.activeIndex,e.showLabel=i,this.showTooltips&&!i&&!this.expanded&&e.label?e.setAttribute("title",e.label):e.removeAttribute("title")})}expand(){this.expanded=!0}collapse(){this.expanded=!1}toggle(){this.expanded=!this.expanded}handleKeyDown(e){const t=this.navigationItems;if(t.length===0)return;let i=this.focusedIndex>=0?this.focusedIndex:this.activeIndex;switch(e.key){case"ArrowDown":e.preventDefault(),i=(i+1)%t.length;break;case"ArrowUp":e.preventDefault(),i=i<=0?t.length-1:i-1;break;case"Home":e.preventDefault(),i=0;break;case"End":e.preventDefault(),i=t.length-1;break;case"Enter":case" ":return e.preventDefault(),void(i>=0&&t[i].click());default:return}this.focusedIndex=i,t[i].focus()}handleFabClick(e){e.stopPropagation(),this.dispatchEvent(new CustomEvent("fab-click",{bubbles:!0,composed:!0}))}handleMenuClick(e){e.stopPropagation(),this.dispatchEvent(new CustomEvent("menu-click",{bubbles:!0,composed:!0}))}render(){const e=this.classMap({"flex flex-col":!0,"w-20 h-full":!0,"box-border relative overflow-visible":!0,"z-10 hover:z-[100]":!0,"md:w-20 w-14":!0}),t=this.classMap({"flex flex-col h-full":!0,"box-border relative":!0,"bg-surface-default text-surface-on":!0,"transition-all duration-300 ease-emphasized":!0,"w-20 px-3 py-2 gap-1":!this.expanded,"md:w-20 w-14":!this.expanded,"md:px-3 px-2":!this.expanded,"w-60 px-4 py-2 gap-1":this.expanded,"md:w-60 w-50":this.expanded,"md:px-4 px-3":this.expanded,"shadow-lg":this.expanded}),i=this.classMap({"flex flex-col items-center gap-1 mb-2":!0,'[&_[slot="fab"]]:mb-2':!0,'[&_[slot="menu"]]:mb-3':!0}),s=this.classMap({"flex-1 flex flex-col gap-1":!0,"min-h-0":!0,"justify-start":this.alignment==="top","justify-center":this.alignment==="center","justify-end":this.alignment==="bottom"}),c=this.classMap({"flex flex-col items-center gap-1 mt-auto pt-2":!0});return h.html`
55
+ `}},o([a.property({type:String})],exports.SchmancyNavigationRailItem.prototype,"icon",2),o([a.property({type:String})],exports.SchmancyNavigationRailItem.prototype,"label",2),o([a.property({type:String})],exports.SchmancyNavigationRailItem.prototype,"value",2),o([a.property({type:Boolean,reflect:!0})],exports.SchmancyNavigationRailItem.prototype,"active",1),o([a.property({type:Boolean,reflect:!0})],exports.SchmancyNavigationRailItem.prototype,"selected",1),o([a.property({type:String})],exports.SchmancyNavigationRailItem.prototype,"badge",2),o([a.property({type:String})],exports.SchmancyNavigationRailItem.prototype,"badgeVariant",2),o([a.property({type:Boolean,attribute:"show-label"})],exports.SchmancyNavigationRailItem.prototype,"showLabel",2),o([a.property({type:Boolean,reflect:!0})],exports.SchmancyNavigationRailItem.prototype,"disabled",2),o([a.property({type:Boolean,reflect:!0})],exports.SchmancyNavigationRailItem.prototype,"nested",2),o([a.property({type:Boolean,reflect:!0})],exports.SchmancyNavigationRailItem.prototype,"group",2),o([a.state()],exports.SchmancyNavigationRailItem.prototype,"showRipple",2),exports.SchmancyNavigationRailItem=o([a.customElement("schmancy-navigation-rail-item")],exports.SchmancyNavigationRailItem);var x=Object.defineProperty,w=Object.getOwnPropertyDescriptor,h=(e,t,i,s)=>{for(var c,l=s>1?void 0:s?w(t,i):t,d=e.length-1;d>=0;d--)(c=e[d])&&(l=(s?c(t,i,l):c(l))||l);return s&&l&&x(t,i,l),l};exports.SchmancyNavigationRail=class extends b.$LitElement(){constructor(){super(...arguments),this.activeIndex$=new n.BehaviorSubject(-1),this._activeValue="",this.labelVisibility="all",this.alignment="top",this.showTooltips=!0,this.keyboardNavigation=!0,this.expanded=!1,this.focusedIndex=-1,this.isFullscreen=!1}get activeIndex(){return this.activeIndex$.value}set activeIndex(e){this.activeIndex$.next(e)}get activeValue(){return this._activeValue}set activeValue(e){this._activeValue=e,this.updateActiveByValue(e)}get navigationItems(){return this.allElements.filter(e=>e.tagName==="SCHMANCY-NAVIGATION-RAIL-ITEM")}connectedCallback(){super.connectedCallback(),this.keyboardNavigation&&this.addEventListener("keydown",this.handleKeyDown),this.activeIndex$.pipe(r.distinctUntilChanged(),r.tap(e=>this.updateActiveStates(e)),n.takeUntil(this.disconnecting)).subscribe(),n.fromEvent(window,"fullscreen").pipe(r.tap(e=>{const t=e;this.isFullscreen=t.detail}),n.takeUntil(this.disconnecting)).subscribe(),this.setupNavigateListener(),this.updateLabelVisibility(),this.setAttribute("role","navigation"),this.setAttribute("aria-label","Main navigation")}updated(e){super.updated(e),e.has("labelVisibility")&&this.updateLabelVisibility(),e.has("activeValue")&&this.updateActiveByValue(this.activeValue),e.has("expanded")&&this.updateLabelVisibility()}updateActiveStates(e){this.navigationItems.forEach((t,i)=>{const s=i===e;t.active=s,t.setAttribute("aria-selected",String(s)),t.setAttribute("tabindex",s?"0":"-1"),s&&(this._activeValue=t.value||t.label||"")})}updateActiveByValue(e){const t=this.navigationItems.findIndex(i=>i.getAttribute("value")===e||i.label===e);t>=0&&(this.activeIndex=t)}updateLabelVisibility(){this.navigationItems.forEach((e,t)=>{let i=!1;i=!!this.expanded||this.labelVisibility==="all"||this.labelVisibility==="selected"&&t===this.activeIndex,e.showLabel=i,this.showTooltips&&!i&&!this.expanded&&e.label?e.setAttribute("title",e.label):e.removeAttribute("title")})}expand(){this.expanded=!0}collapse(){this.expanded=!1}addBoatItem(e){const t=document.createElement("schmancy-navigation-rail-item");t.setAttribute("value",e.id),t.innerHTML=`
56
+ <schmancy-icon slot="icon">${e.icon||"widgets"}</schmancy-icon>
57
+ ${e.title}
58
+ `;const i=this.querySelector('[slot="footer"]');return i?this.insertBefore(t,i):this.appendChild(t),t}toggle(){this.expanded=!this.expanded}handleKeyDown(e){const t=this.navigationItems;if(t.length===0)return;let i=this.focusedIndex>=0?this.focusedIndex:this.activeIndex;switch(e.key){case"ArrowDown":e.preventDefault(),i=(i+1)%t.length;break;case"ArrowUp":e.preventDefault(),i=i<=0?t.length-1:i-1;break;case"Home":e.preventDefault(),i=0;break;case"End":e.preventDefault(),i=t.length-1;break;case"Enter":case" ":return e.preventDefault(),void(i>=0&&t[i].click());default:return}this.focusedIndex=i,t[i].focus()}handleFabClick(e){e.stopPropagation(),this.dispatchEvent(new CustomEvent("fab-click",{bubbles:!0,composed:!0}))}handleMenuClick(e){e.stopPropagation(),this.dispatchEvent(new CustomEvent("menu-click",{bubbles:!0,composed:!0}))}render(){const e=this.classMap({"flex flex-col":!0,"w-20 h-full":!0,"box-border relative overflow-visible":!0,"z-10 hover:z-[100]":!0,"md:w-20 w-14":!0,"transition-all duration-300 ease-emphasized":!0,"opacity-100 translate-x-0":!this.isFullscreen,"opacity-0 -translate-x-full pointer-events-none":this.isFullscreen}),t=this.classMap({"flex flex-col h-full":!0,"box-border relative":!0,"bg-surface-default text-surface-on":!0,"transition-all duration-300 ease-emphasized":!0,"w-20 px-3 py-2 gap-1":!this.expanded,"md:w-20 w-14":!this.expanded,"md:px-3 px-2":!this.expanded,"w-60 px-4 py-2 gap-1":this.expanded,"md:w-60 w-50":this.expanded,"md:px-4 px-3":this.expanded,"shadow-lg":this.expanded}),i=this.classMap({"flex flex-col items-center gap-1 mb-2":!0,'[&_[slot="fab"]]:mb-2':!0,'[&_[slot="menu"]]:mb-3':!0}),s=this.classMap({"flex-1 flex flex-col gap-1":!0,"min-h-0":!0,"justify-start":this.alignment==="top","justify-center":this.alignment==="center","justify-end":this.alignment==="bottom"}),c=this.classMap({"flex flex-col items-center gap-1 mt-auto pt-2":!0});return p.html`
56
59
  <div
57
60
  class=${e}
58
61
  >
@@ -74,5 +77,5 @@
74
77
  </div>
75
78
  </div>
76
79
  </div>
77
- `}setupNavigateListener(){this.addEventListener("navigate",e=>{if(e instanceof CustomEvent){const t=e.detail,i=this.navigationItems.findIndex(s=>s.value===t||s.label===t);i>=0&&(this.activeIndex=i,this._activeValue=t)}})}handleSlotChange(){this.updateLabelVisibility(),this.updateActiveStates(this.activeIndex),this.navigationItems.forEach((e,t)=>{e.setAttribute("role","listitem"),e.hasAttribute("tabindex")||e.setAttribute("tabindex",t===this.activeIndex?"0":"-1")})}},p([a.property({type:Number})],exports.SchmancyNavigationRail.prototype,"activeIndex",1),p([a.property({type:String})],exports.SchmancyNavigationRail.prototype,"activeValue",1),p([a.property({type:String,attribute:"label-visibility",reflect:!0})],exports.SchmancyNavigationRail.prototype,"labelVisibility",2),p([a.property({type:String,reflect:!0})],exports.SchmancyNavigationRail.prototype,"alignment",2),p([a.property({type:Boolean})],exports.SchmancyNavigationRail.prototype,"showTooltips",2),p([a.property({type:Boolean})],exports.SchmancyNavigationRail.prototype,"keyboardNavigation",2),p([a.property({type:Boolean,reflect:!0})],exports.SchmancyNavigationRail.prototype,"expanded",2),p([a.state()],exports.SchmancyNavigationRail.prototype,"focusedIndex",2),p([a.queryAssignedElements({flatten:!0})],exports.SchmancyNavigationRail.prototype,"allElements",2),exports.SchmancyNavigationRail=p([a.customElement("schmancy-navigation-rail")],exports.SchmancyNavigationRail);
78
- //# sourceMappingURL=navigation-rail-6ONc-XE-.cjs.map
80
+ `}setupNavigateListener(){this.addEventListener("navigate",e=>{if(e instanceof CustomEvent){const t=e.detail,i=this.navigationItems.findIndex(s=>s.value===t||s.label===t);i>=0&&(this.activeIndex=i,this._activeValue=t)}})}handleSlotChange(){this.updateLabelVisibility(),this.updateActiveStates(this.activeIndex),this.navigationItems.forEach((e,t)=>{e.setAttribute("role","listitem"),e.hasAttribute("tabindex")||e.setAttribute("tabindex",t===this.activeIndex?"0":"-1")})}},h([a.property({type:Number})],exports.SchmancyNavigationRail.prototype,"activeIndex",1),h([a.property({type:String})],exports.SchmancyNavigationRail.prototype,"activeValue",1),h([a.property({type:String,attribute:"label-visibility",reflect:!0})],exports.SchmancyNavigationRail.prototype,"labelVisibility",2),h([a.property({type:String,reflect:!0})],exports.SchmancyNavigationRail.prototype,"alignment",2),h([a.property({type:Boolean})],exports.SchmancyNavigationRail.prototype,"showTooltips",2),h([a.property({type:Boolean})],exports.SchmancyNavigationRail.prototype,"keyboardNavigation",2),h([a.property({type:Boolean,reflect:!0})],exports.SchmancyNavigationRail.prototype,"expanded",2),h([a.state()],exports.SchmancyNavigationRail.prototype,"focusedIndex",2),h([a.state()],exports.SchmancyNavigationRail.prototype,"isFullscreen",2),h([a.queryAssignedElements({flatten:!0})],exports.SchmancyNavigationRail.prototype,"allElements",2),exports.SchmancyNavigationRail=h([a.customElement("schmancy-navigation-rail")],exports.SchmancyNavigationRail);
81
+ //# sourceMappingURL=navigation-rail-CAgKSJh4.cjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"navigation-rail-CAgKSJh4.cjs","sources":["../src/navigation-rail/navigation-rail-item.ts","../src/navigation-rail/navigation-rail.ts"],"sourcesContent":["import { $LitElement } from '@mixins/index'\r\nimport { html, PropertyValues } from 'lit'\r\nimport { customElement, property, state } from 'lit/decorators.js'\r\nimport { when } from 'lit/directives/when.js'\r\nimport { BehaviorSubject, fromEvent, merge, takeUntil } from 'rxjs'\r\nimport { delay, distinctUntilChanged, tap } from 'rxjs/operators'\r\n\r\nexport type NavigationRailItemClickEvent = CustomEvent<{\r\n\ticon: string\r\n\tlabel: string\r\n\tvalue: string\r\n\tactive: boolean\r\n}>\r\n\r\n/**\r\n * Material Design 3 Navigation Rail Item Component\r\n * @see https://m3.material.io/components/navigation-rail/overview\r\n *\r\n * `<schmancy-navigation-rail-item>` component\r\n *\r\n * Individual navigation item for use within a navigation rail.\r\n * Represents a single destination or action with an icon and optional label.\r\n *\r\n * @element schmancy-navigation-rail-item\r\n * @slot icon - Slot for the navigation item icon (e.g., schmancy-icon)\r\n * @slot - Default slot for custom content\r\n * @slot badge - Custom badge content\r\n *\r\n * @fires navigate - When the item is clicked\r\n *\r\n * @csspart container - The main item container\r\n * @csspart indicator - The active indicator\r\n * @csspart icon - The icon container\r\n * @csspart label - The label text\r\n * @csspart badge - The badge element\r\n *\r\n * @example\r\n * <schmancy-navigation-rail-item\r\n * icon=\"home\"\r\n * label=\"Home\"\r\n * value=\"/home\"\r\n * badge=\"3\"\r\n * active>\r\n * </schmancy-navigation-rail-item>\r\n *\r\n * @example\r\n * <!-- Using 'selected' alias -->\r\n * <schmancy-navigation-rail-item\r\n * icon=\"settings\"\r\n * label=\"Settings\"\r\n * value=\"/settings\"\r\n * selected>\r\n * </schmancy-navigation-rail-item>\r\n *\r\n * @example\r\n * <!-- With custom icon -->\r\n * <schmancy-navigation-rail-item label=\"Dashboard\">\r\n * <schmancy-icon slot=\"icon\">dashboard</schmancy-icon>\r\n * </schmancy-navigation-rail-item>\r\n */\r\n@customElement('schmancy-navigation-rail-item')\r\nexport class SchmancyNavigationRailItem extends $LitElement() {\r\n\t// Observable state\r\n\tprivate hovering$ = new BehaviorSubject<boolean>(false)\r\n\tprivate pressing$ = new BehaviorSubject<boolean>(false)\r\n\tprivate active$ = new BehaviorSubject<boolean>(false)\r\n\r\n\t// Properties\r\n\t/**\r\n\t * Icon name (Material Symbols icon)\r\n\t */\r\n\t@property({ type: String })\r\n\ticon = ''\r\n\r\n\t/**\r\n\t * Label text for the navigation item\r\n\t */\r\n\t@property({ type: String })\r\n\tlabel = ''\r\n\r\n\t/**\r\n\t * Value associated with this item (useful for routing)\r\n\t */\r\n\t@property({ type: String })\r\n\tvalue = ''\r\n\r\n\t/**\r\n\t * Whether this item is currently active/selected\r\n\t * @default false\r\n\t */\r\n\t@property({ type: Boolean, reflect: true })\r\n\tget active() { return this.active$.value }\r\n\tset active(value: boolean) {\r\n\t\tthis.active$.next(value)\r\n\t}\r\n\r\n\t/**\r\n\t * Whether this item is currently selected (alias for active)\r\n\t * @default false\r\n\t */\r\n\t@property({ type: Boolean, reflect: true })\r\n\tget selected() { return this.active }\r\n\tset selected(value: boolean) { this.active = value }\r\n\r\n\t/**\r\n\t * Badge text or number to display\r\n\t */\r\n\t@property({ type: String })\r\n\tbadge = ''\r\n\r\n\t/**\r\n\t * Badge variant\r\n\t */\r\n\t@property({ type: String })\r\n\tbadgeVariant: 'error' | 'primary' | 'secondary' = 'error'\r\n\r\n\t/**\r\n\t * Whether to show the label (controlled by parent rail)\r\n\t * @default false\r\n\t */\r\n\t@property({ type: Boolean, attribute: 'show-label' })\r\n\tshowLabel = false\r\n\r\n\t/**\r\n\t * Whether this item is disabled\r\n\t * @default false\r\n\t */\r\n\t@property({ type: Boolean, reflect: true })\r\n\tdisabled = false\r\n\r\n\t/**\r\n\t * Whether this is a nested item (sub-navigation)\r\n\t * @default false\r\n\t */\r\n\t@property({ type: Boolean, reflect: true })\r\n\tnested = false\r\n\r\n\t/**\r\n\t * Whether this item represents a group separator\r\n\t * @default false\r\n\t */\r\n\t@property({ type: Boolean, reflect: true })\r\n\tgroup = false\r\n\r\n\t// State\r\n\t@state()\r\n\tprivate showRipple = false\r\n\r\n\r\n\tconnectedCallback() {\r\n\t\tsuper.connectedCallback()\r\n\r\n\t\t// Set up hover tracking\r\n\t\tmerge(\r\n\t\t\tfromEvent(this, 'mouseenter').pipe(tap(() => this.hovering$.next(true))),\r\n\t\t\tfromEvent(this, 'mouseleave').pipe(tap(() => this.hovering$.next(false)))\r\n\t\t).pipe(takeUntil(this.disconnecting)).subscribe()\r\n\r\n\t\t// Set up press tracking\r\n\t\tmerge(\r\n\t\t\tfromEvent(this, 'mousedown').pipe(tap(() => this.pressing$.next(true))),\r\n\t\t\tfromEvent(this, 'mouseup').pipe(tap(() => this.pressing$.next(false))),\r\n\t\t\tfromEvent(this, 'mouseleave').pipe(tap(() => this.pressing$.next(false)))\r\n\t\t).pipe(takeUntil(this.disconnecting)).subscribe()\r\n\r\n\r\n\t\t// Ripple effect with M3 timing\r\n\t\tthis.pressing$.pipe(\r\n\t\t\ttap(pressing => {\r\n\t\t\t\tif (pressing && !this.disabled) {\r\n\t\t\t\t\tthis.showRipple = true\r\n\t\t\t\t}\r\n\t\t\t}),\r\n\t\t\t// M3 standard ripple duration\r\n\t\t\tdelay(600),\r\n\t\t\ttap(() => this.showRipple = false),\r\n\t\t\ttakeUntil(this.disconnecting)\r\n\t\t).subscribe()\r\n\r\n\t\t// Subscribe to active state changes for reactive updates\r\n\t\tthis.active$.pipe(\r\n\t\t\tdistinctUntilChanged(),\r\n\t\t\ttap((isActive) => {\r\n\t\t\t\tthis.requestUpdate()\r\n\t\t\t\t// Update ARIA attributes reactively\r\n\t\t\t\tthis.setAttribute('aria-selected', String(isActive))\r\n\t\t\t\tthis.setAttribute('tabindex', isActive ? '0' : '-1')\r\n\t\t\t}),\r\n\t\t\ttakeUntil(this.disconnecting)\r\n\t\t).subscribe()\r\n\r\n\t\t// Set ARIA attributes\r\n\t\tthis.setAttribute('role', 'listitem')\r\n\t\tif (!this.hasAttribute('tabindex')) {\r\n\t\t\tthis.setAttribute('tabindex', this.active ? '0' : '-1')\r\n\t\t}\r\n\t}\r\n\r\n\tupdated(changedProperties: PropertyValues) {\r\n\t\tsuper.updated(changedProperties)\r\n\r\n\t\t// Active state is now handled by the BehaviorSubject subscription\r\n\t\t// So we don't need to duplicate it here\r\n\r\n\t\tif (changedProperties.has('disabled')) {\r\n\t\t\tthis.setAttribute('aria-disabled', String(this.disabled))\r\n\t\t}\r\n\r\n\t\tif (changedProperties.has('label')) {\r\n\t\t\tthis.setAttribute('aria-label', this.label)\r\n\t\t}\r\n\t}\r\n\r\n\t/**\r\n\t * Handle click events\r\n\t */\r\n\tprivate handleClick(event: Event) {\r\n\t\tif (this.disabled) {\r\n\t\t\tevent.preventDefault()\r\n\t\t\tevent.stopPropagation()\r\n\t\t\treturn\r\n\t\t}\r\n\r\n\t\t// Emit navigate event with the value\r\n\t\tthis.dispatchEvent(new CustomEvent('navigate', {\r\n\t\t\tdetail: this.value || this.label,\r\n\t\t\tbubbles: true,\r\n\t\t\tcomposed: true\r\n\t\t}))\r\n\r\n\t\t// Visual feedback is handled by the ripple effect in connectedCallback\r\n\t\t// The parent rail will confirm and update via activeIndex\r\n\t}\r\n\r\n\t/**\r\n\t * Handle keyboard events\r\n\t */\r\n\tprivate handleKeyDown(event: KeyboardEvent) {\r\n\t\tif (this.disabled) return\r\n\r\n\t\tif (event.key === 'Enter' || event.key === ' ') {\r\n\t\t\tevent.preventDefault()\r\n\t\t\tthis.click()\r\n\t\t}\r\n\t}\r\n\r\n\tprotected render() {\r\n\t\tconst hasCustomIcon = this.querySelector('[slot=\"icon\"]')\r\n\t\tconst hasCustomContent = this.querySelector(':not([slot])')\r\n\t\tconst hasCustomBadge = this.querySelector('[slot=\"badge\"]')\r\n\r\n\t\t// M3 Navigation Rail Item classes with theme integration\r\n\t\tconst containerClasses = this.classMap({\r\n\t\t\t// Layout & Spacing (M3 56px height, 12px vertical padding)\r\n\t\t\t'flex flex-col items-center justify-center': true,\r\n\t\t\t'min-h-14 w-full': true, // min-h-14 = 56px\r\n\t\t\t'py-3': true, // py-3 = 12px top/bottom\r\n\t\t\t'gap-1': true, // gap-1 = 4px\r\n\r\n\t\t\t// M3 Shape & Interaction\r\n\t\t\t'rounded-lg': true, // M3 large corner radius\r\n\t\t\t'cursor-pointer': true,\r\n\t\t\t'relative': true,\r\n\t\t\t'select-none': true,\r\n\t\t\t'box-border': true,\r\n\r\n\t\t\t// Colors & States\r\n\t\t\t'text-surface-onVariant': !this.active,\r\n\t\t\t'text-secondary-onContainer': this.active,\r\n\t\t\t'hover:bg-surface-containerHighest': true,\r\n\r\n\t\t\t// Transitions (M3 emphasized motion)\r\n\t\t\t'transition-all duration-150 ease-out': true,\r\n\r\n\t\t\t// Disabled state\r\n\t\t\t'pointer-events-none opacity-38': this.disabled,\r\n\r\n\t\t\t// Active ripple effect\r\n\t\t\t'[&>.ripple]:scale-100': this.showRipple,\r\n\r\n\t\t\t// Nested item adjustments\r\n\t\t\t'min-h-12 pl-8': this.nested, // 48px height, 32px left padding for nested\r\n\r\n\t\t\t// Group separator\r\n\t\t\t'mb-2 after:absolute after:bottom-[-4px] after:left-3 after:right-3 after:h-px after:bg-outline-variant after:opacity-12': this.group,\r\n\t\t})\r\n\r\n\t\t// Icon container with active indicator\r\n\t\tconst iconContainerClasses = this.classMap({\r\n\t\t\t'flex items-center justify-center': true,\r\n\t\t\t'w-auto min-w-14 h-8': true, // 56px min-width, 32px height\r\n\t\t\t'flex-shrink-0 relative z-10': true,\r\n\t\t})\r\n\r\n\t\t// Active indicator behind icon\r\n\t\tconst indicatorClasses = this.classMap({\r\n\t\t\t'absolute top-1/2 left-1/2 opacity-50': true,\r\n\t\t\t'w-14 h-8': true, // 56px x 32px\r\n\t\t\t'rounded-lg': true, // M3 large corner radius\r\n\t\t\t'bg-secondary-container': true,\r\n\t\t\t'transition-transform duration-150 ease-out': true,\r\n\t\t\t'z-0': true,\r\n\t\t\t// Transform based on active state\r\n\t\t\t'scale-0 -translate-x-1/2 -translate-y-1/2': !this.active,\r\n\t\t\t'scale-100 -translate-x-1/2 -translate-y-1/2': this.active,\r\n\t\t})\r\n\r\n\t\t// Icon styling\r\n\t\tconst iconClasses = this.classMap({\r\n\t\t\t'text-2xl leading-none': !this.nested, // 24px icon for normal\r\n\t\t\t'text-xl leading-none': this.nested, // 20px icon for nested\r\n\t\t\t'relative z-10': true,\r\n\t\t\t// Material Symbols font variations handled via CSS custom properties\r\n\t\t})\r\n\r\n\t\t// Label styling\r\n\t\tconst labelClasses = this.classMap({\r\n\t\t\t'text-xs font-medium leading-4': true, // 12px, medium weight, 16px line height\r\n\t\t\t'text-center': true,\r\n\t\t\t'overflow-hidden text-ellipsis whitespace-nowrap': true,\r\n\t\t\t'z-10 max-w-14 px-1': true, // max 56px width, 4px horizontal padding\r\n\t\t\t'hidden': !this.showLabel && !this.label, // Hide if not shown or no label\r\n\t\t})\r\n\r\n\t\t// Badge styling with dynamic colors\r\n\t\tconst badgeClasses = this.classMap({\r\n\t\t\t'absolute top-2 right-3': true, // 8px from top, 12px from right\r\n\t\t\t'min-w-4 h-4': true, // 16px min-width and height\r\n\t\t\t'rounded-sm': true, // M3 small corner radius\r\n\t\t\t'text-xs font-semibold': true, // 11px, 600 weight\r\n\t\t\t'flex items-center justify-center': true,\r\n\t\t\t'px-1 box-border z-20': true, // 4px padding\r\n\t\t\t'animate-pulse': true, // Pulse animation\r\n\t\t\t// Dynamic background based on variant\r\n\t\t\t'bg-error-default text-error-on': this.badgeVariant === 'error',\r\n\t\t\t'bg-primary-default text-primary-on': this.badgeVariant === 'primary',\r\n\t\t\t'bg-secondary-default text-secondary-on': this.badgeVariant === 'secondary',\r\n\t\t})\r\n\r\n\t\t// Ripple effect classes\r\n\t\tconst rippleClasses = this.classMap({\r\n\t\t\t'absolute inset-0 rounded-lg overflow-hidden z-0': true,\r\n\t\t\t'before:content-[\"\"] before:absolute before:top-1/2 before:left-1/2': true,\r\n\t\t\t'before:w-0 before:h-0 before:rounded-full': true,\r\n\t\t\t'before:bg-current before:opacity-0': true,\r\n\t\t\t'before:-translate-x-1/2 before:-translate-y-1/2': true,\r\n\t\t\t'before:transition-all before:duration-300': true,\r\n\t\t\t// Active state\r\n\t\t\t'before:w-[200%] before:h-[200%] before:opacity-12': this.showRipple,\r\n\t\t})\r\n\r\n\t\treturn html`\r\n\t\t\t<div\r\n\t\t\t\tclass=${containerClasses}\r\n\t\t\t\tpart=\"container\"\r\n\t\t\t\t@click=${this.handleClick}\r\n\t\t\t\t@keydown=${this.handleKeyDown}\r\n\t\t\t\tstyle=\"outline: ${this.matches(':focus-visible') ? '2px solid var(--schmancy-sys-color-primary-default)' : 'none'}; outline-offset: 2px;\"\r\n\t\t\t>\r\n\t\t\t\t<span class=${rippleClasses} aria-hidden=\"true\"></span>\r\n\r\n\t\t\t\t${when(hasCustomContent,\r\n\t\t\t\t\t() => html`<slot></slot>`,\r\n\t\t\t\t\t() => html`\r\n\t\t\t\t\t\t<div class=${iconContainerClasses} part=\"icon\">\r\n\t\t\t\t\t\t\t<span class=${indicatorClasses} part=\"indicator\" aria-hidden=\"true\"></span>\r\n\t\t\t\t\t\t\t${when(hasCustomIcon,\r\n\t\t\t\t\t\t\t\t() => html`<slot name=\"icon\"></slot>`,\r\n\t\t\t\t\t\t\t\t() => when(this.icon,\r\n\t\t\t\t\t\t\t\t\t() => html`\r\n\t\t\t\t\t\t\t\t\t\t<span\r\n\t\t\t\t\t\t\t\t\t\t\tclass=${iconClasses}\r\n\t\t\t\t\t\t\t\t\t\t\tpart=\"icon-text\"\r\n\t\t\t\t\t\t\t\t\t\t\tstyle=\"font-family: 'Material Symbols Outlined'; font-variation-settings: 'FILL' ${this.active ? '1' : '0'}, 'wght' 400, 'GRAD' 0, 'opsz' ${this.nested ? '20' : '24'};\"\r\n\t\t\t\t\t\t\t\t\t\t>\r\n\t\t\t\t\t\t\t\t\t\t\t${this.icon}\r\n\t\t\t\t\t\t\t\t\t\t</span>\r\n\t\t\t\t\t\t\t\t\t`\r\n\t\t\t\t\t\t\t\t)\r\n\t\t\t\t\t\t\t)}\r\n\t\t\t\t\t\t</div>\r\n\r\n\t\t\t\t\t\t${when(this.label,\r\n\t\t\t\t\t\t\t() => html`<span class=${labelClasses} part=\"label\">${this.label}</span>`\r\n\t\t\t\t\t\t)}\r\n\t\t\t\t\t`\r\n\t\t\t\t)}\r\n\r\n\t\t\t\t${when(this.badge,\r\n\t\t\t\t\t() => html`\r\n\t\t\t\t\t\t${when(hasCustomBadge,\r\n\t\t\t\t\t\t\t() => html`<slot name=\"badge\"></slot>`,\r\n\t\t\t\t\t\t\t() => html`\r\n\t\t\t\t\t\t\t\t<span\r\n\t\t\t\t\t\t\t\t\tclass=${badgeClasses}\r\n\t\t\t\t\t\t\t\t\tpart=\"badge\"\r\n\t\t\t\t\t\t\t\t\taria-label=\"${this.badge} notifications\"\r\n\t\t\t\t\t\t\t\t>\r\n\t\t\t\t\t\t\t\t\t${this.badge}\r\n\t\t\t\t\t\t\t\t</span>\r\n\t\t\t\t\t\t\t`\r\n\t\t\t\t\t\t)}\r\n\t\t\t\t\t`\r\n\t\t\t\t)}\r\n\r\n\t\t\t\t<!-- Tooltip shown via title attribute -->\r\n\t\t\t\t${when(this.hasAttribute('title'),\r\n\t\t\t\t\t() => html`\r\n\t\t\t\t\t\t<div class=\"\r\n\t\t\t\t\t\t\tabsolute left-[calc(100%+8px)] top-1/2 -translate-y-1/2\r\n\t\t\t\t\t\t\tbg-surface-inverse text-surface-inverseOn\r\n\t\t\t\t\t\t\tpx-2 py-1 rounded-sm text-xs whitespace-nowrap\r\n\t\t\t\t\t\t\tz-[1000] pointer-events-none opacity-0\r\n\t\t\t\t\t\t\thover:opacity-100 hover:translate-x-0\r\n\t\t\t\t\t\t\ttransition-all duration-150 ease-out\r\n\t\t\t\t\t\t\t-translate-x-1\r\n\t\t\t\t\t\t\" aria-hidden=\"true\">\r\n\t\t\t\t\t\t\t${this.getAttribute('title')}\r\n\t\t\t\t\t\t</div>\r\n\t\t\t\t\t`\r\n\t\t\t\t)}\r\n\t\t\t</div>\r\n\t\t`\r\n\t}\r\n}\r\n\r\ndeclare global {\r\n\tinterface HTMLElementTagNameMap {\r\n\t\t'schmancy-navigation-rail-item': SchmancyNavigationRailItem\r\n\t}\r\n}","import { $LitElement } from '@mixins/index'\r\nimport { html, PropertyValues } from 'lit'\r\nimport { customElement, property, queryAssignedElements, state } from 'lit/decorators.js'\r\nimport { BehaviorSubject, fromEvent, takeUntil } from 'rxjs'\r\nimport { distinctUntilChanged, tap } from 'rxjs/operators'\r\nimport { SchmancyNavigationRailItem } from './navigation-rail-item'\r\n\r\nexport type NavigateEvent = CustomEvent<string>\r\n\r\nexport type NavigationRailMenuClickEvent = CustomEvent<void>\r\n\r\nexport type NavigationRailFabClickEvent = CustomEvent<void>\r\n\r\n\r\nexport type LabelVisibility = 'all' | 'selected' | 'none'\r\n\r\n/**\r\n * Material Design 3 Navigation Rail Component\r\n * @see https://m3.material.io/components/navigation-rail/overview\r\n *\r\n * `<schmancy-navigation-rail>` component\r\n *\r\n * A Material Design 3 vertical navigation component positioned on the left side of an application.\r\n * Navigation rails provide access to between 3-7 primary destinations with a compact footprint.\r\n * Automatically hides in fullscreen mode when triggered via schmancyTheme.next({ fullscreen: true }).\r\n *\r\n * @element schmancy-navigation-rail\r\n * @slot fab - Slot for a floating action button at the top\r\n * @slot menu - Slot for a menu icon or button below the FAB\r\n * @slot header - Custom header content slot\r\n * @slot footer - Custom footer content slot\r\n * @slot - Default slot for navigation rail items\r\n *\r\n * @fires navigate - When a navigation item is selected\r\n * @fires menu-click - When the menu button is clicked\r\n * @fires fab-click - When the FAB is clicked\r\n *\r\n * @csspart rail - The main rail container\r\n * @csspart header - The header section\r\n * @csspart nav - The navigation items container\r\n * @csspart footer - The footer section\r\n *\r\n * @example\r\n * <schmancy-navigation-rail activeIndex=\"0\">\r\n * <schmancy-button slot=\"fab\" variant=\"filled\" aria-label=\"Compose\">\r\n * <schmancy-icon>add</schmancy-icon>\r\n * </schmancy-button>\r\n * <schmancy-button slot=\"menu\" variant=\"text\" aria-label=\"Menu\">\r\n * <schmancy-icon>menu</schmancy-icon>\r\n * </schmancy-button>\r\n * <schmancy-navigation-rail-item icon=\"home\" label=\"Home\"></schmancy-navigation-rail-item>\r\n * <schmancy-navigation-rail-item icon=\"search\" label=\"Search\"></schmancy-navigation-rail-item>\r\n * <schmancy-navigation-rail-item icon=\"favorite\" label=\"Favorites\" badge=\"3\"></schmancy-navigation-rail-item>\r\n * <schmancy-navigation-rail-item icon=\"settings\" label=\"Settings\"></schmancy-navigation-rail-item>\r\n * </schmancy-navigation-rail>\r\n */\r\n@customElement('schmancy-navigation-rail')\r\nexport class SchmancyNavigationRail extends $LitElement() {\r\n\t// Observable state\r\n\tprivate activeIndex$ = new BehaviorSubject<number>(-1)\r\n\r\n\t// Properties\r\n\t/**\r\n\t * The currently active item index\r\n\t * @default -1\r\n\t */\r\n\t@property({ type: Number })\r\n\tget activeIndex() {\r\n\t\treturn this.activeIndex$.value\r\n\t}\r\n\tset activeIndex(value: number) {\r\n\t\tthis.activeIndex$.next(value)\r\n\t}\r\n\r\n\t/**\r\n\t * The currently active item value (for programmatic selection)\r\n\t */\r\n\t@property({ type: String })\r\n\tget activeValue() {\r\n\t\treturn this._activeValue\r\n\t}\r\n\tset activeValue(value: string) {\r\n\t\tthis._activeValue = value\r\n\t\tthis.updateActiveByValue(value)\r\n\t}\r\n\tprivate _activeValue = ''\r\n\r\n\t/**\r\n\t * When to show labels for navigation items\r\n\t * 'all' - Always show labels for all items\r\n\t * 'selected' - Only show label for selected item\r\n\t * 'none' - Never show labels\r\n\t * @default 'all'\r\n\t */\r\n\t@property({ type: String, attribute: 'label-visibility', reflect: true })\r\n\tlabelVisibility: LabelVisibility = 'all'\r\n\r\n\t/**\r\n\t * Alignment of navigation items\r\n\t * @default 'top'\r\n\t */\r\n\t@property({ type: String, reflect: true })\r\n\talignment: 'top' | 'center' | 'bottom' = 'top'\r\n\r\n\t/**\r\n\t * Show tooltips when labels are hidden\r\n\t * @default true\r\n\t */\r\n\t@property({ type: Boolean })\r\n\tshowTooltips = true\r\n\r\n\t/**\r\n\t * Enable keyboard navigation\r\n\t * @default true\r\n\t */\r\n\t@property({ type: Boolean })\r\n\tkeyboardNavigation = true\r\n\r\n\t/**\r\n\t * Whether the navigation rail is expanded\r\n\t * @default false\r\n\t */\r\n\t@property({ type: Boolean, reflect: true })\r\n\texpanded = false\r\n\r\n\r\n\t// State\r\n\t@state()\r\n\tprivate focusedIndex = -1\r\n\r\n\t@state()\r\n\tprivate isFullscreen = false\r\n\r\n\t// Queries\r\n\r\n\t@queryAssignedElements({ flatten: true })\r\n\tprivate allElements!: Element[]\r\n\r\n\tprivate get navigationItems(): SchmancyNavigationRailItem[] {\r\n\t\treturn this.allElements.filter(el => el.tagName === 'SCHMANCY-NAVIGATION-RAIL-ITEM') as SchmancyNavigationRailItem[]\r\n\t}\r\n\r\n\tconnectedCallback() {\r\n\t\tsuper.connectedCallback()\r\n\r\n\t\t// Set up keyboard navigation if enabled\r\n\t\tif (this.keyboardNavigation) {\r\n\t\t\tthis.addEventListener('keydown', this.handleKeyDown)\r\n\t\t}\r\n\r\n\t\t// Subscribe to active index changes with distinct values only\r\n\t\tthis.activeIndex$\r\n\t\t\t.pipe(\r\n\t\t\t\tdistinctUntilChanged(),\r\n\t\t\t\ttap(index => this.updateActiveStates(index)),\r\n\t\t\t\ttakeUntil(this.disconnecting),\r\n\t\t\t)\r\n\t\t\t.subscribe()\r\n\r\n\t\t// Listen to fullscreen events\r\n\t\tfromEvent(window, 'fullscreen').pipe(\r\n\t\t\ttap((event: Event) => {\r\n\t\t\t\tconst customEvent = event as CustomEvent\r\n\t\t\t\tthis.isFullscreen = customEvent.detail\r\n\t\t\t}),\r\n\t\t\ttakeUntil(this.disconnecting)\r\n\t\t).subscribe()\r\n\r\n\t\t// Listen for navigate events from child items\r\n\t\tthis.setupNavigateListener()\r\n\r\n\t\t// Set up label visibility\r\n\t\tthis.updateLabelVisibility()\r\n\r\n\t\t// Update ARIA attributes\r\n\t\tthis.setAttribute('role', 'navigation')\r\n\t\tthis.setAttribute('aria-label', 'Main navigation')\r\n\t}\r\n\r\n\tupdated(changedProperties: PropertyValues) {\r\n\t\tsuper.updated(changedProperties)\r\n\r\n\t\tif (changedProperties.has('labelVisibility')) {\r\n\t\t\tthis.updateLabelVisibility()\r\n\t\t}\r\n\r\n\t\tif (changedProperties.has('activeValue')) {\r\n\t\t\tthis.updateActiveByValue(this.activeValue)\r\n\t\t}\r\n\r\n\t\tif (changedProperties.has('expanded')) {\r\n\t\t\tthis.updateLabelVisibility()\r\n\t\t}\r\n\t}\r\n\r\n\tprivate updateActiveStates(index: number) {\r\n\t\tthis.navigationItems.forEach((item, i) => {\r\n\t\t\tconst isActive = i === index\r\n\t\t\titem.active = isActive\r\n\t\t\titem.setAttribute('aria-selected', String(isActive))\r\n\t\t\titem.setAttribute('tabindex', isActive ? '0' : '-1')\r\n\r\n\t\t\t// Update activeValue when index changes\r\n\t\t\tif (isActive) {\r\n\t\t\t\tthis._activeValue = item.value || item.label || ''\r\n\t\t\t}\r\n\t\t})\r\n\t}\r\n\r\n\tprivate updateActiveByValue(value: string) {\r\n\t\tconst index = this.navigationItems.findIndex(item => item.getAttribute('value') === value || item.label === value)\r\n\t\tif (index >= 0) {\r\n\t\t\tthis.activeIndex = index\r\n\t\t}\r\n\t}\r\n\r\n\tprivate updateLabelVisibility() {\r\n\t\tthis.navigationItems.forEach((item, i) => {\r\n\t\t\tlet shouldShowLabel = false\r\n\r\n\t\t\t// M3 Spec: In expanded state, always show all labels\r\n\t\t\tif (this.expanded) {\r\n\t\t\t\tshouldShowLabel = true\r\n\t\t\t} else {\r\n\t\t\t\t// In collapsed state, respect labelVisibility setting\r\n\t\t\t\tshouldShowLabel =\r\n\t\t\t\t\tthis.labelVisibility === 'all' || (this.labelVisibility === 'selected' && i === this.activeIndex)\r\n\t\t\t}\r\n\r\n\t\t\titem.showLabel = shouldShowLabel\r\n\r\n\t\t\t// Add tooltips when labels are hidden (only in collapsed state)\r\n\t\t\tif (this.showTooltips && !shouldShowLabel && !this.expanded && item.label) {\r\n\t\t\t\titem.setAttribute('title', item.label)\r\n\t\t\t} else {\r\n\t\t\t\titem.removeAttribute('title')\r\n\t\t\t}\r\n\t\t})\r\n\t}\r\n\r\n\t// Note: Hover-based label showing removed for M3 compliance\r\n\t// Labels are now controlled via labelVisibility property and expanded state\r\n\r\n\t/**\r\n\t * Programmatically expand the navigation rail\r\n\t */\r\n\texpand() {\r\n\t\tthis.expanded = true\r\n\t}\r\n\r\n\t/**\r\n\t * Programmatically collapse the navigation rail\r\n\t */\r\n\tcollapse() {\r\n\t\tthis.expanded = false\r\n\t}\r\n\r\n\t/**\r\n\t * Add a boat item to the navigation rail\r\n\t * @param config Configuration for the boat item\r\n\t * @returns The created navigation rail item element\r\n\t */\r\n\tpublic addBoatItem(config: { id: string; title: string; icon?: string }) {\r\n\t\tconst item = document.createElement('schmancy-navigation-rail-item')\r\n\t\titem.setAttribute('value', config.id)\r\n\t\titem.innerHTML = `\r\n\t\t\t<schmancy-icon slot=\"icon\">${config.icon || 'widgets'}</schmancy-icon>\r\n\t\t\t${config.title}\r\n\t\t`\r\n\t\t// Add to the rail before any footer content\r\n\t\tconst footer = this.querySelector('[slot=\"footer\"]')\r\n\t\tif (footer) {\r\n\t\t\tthis.insertBefore(item, footer)\r\n\t\t} else {\r\n\t\t\tthis.appendChild(item)\r\n\t\t}\r\n\t\treturn item\r\n\t}\r\n\r\n\t/**\r\n\t * Toggle the navigation rail between expanded and collapsed states\r\n\t */\r\n\ttoggle() {\r\n\t\tthis.expanded = !this.expanded\r\n\t}\r\n\r\n\r\n\tprivate handleKeyDown(event: KeyboardEvent) {\r\n\t\tconst items = this.navigationItems\r\n\t\tif (items.length === 0) return\r\n\r\n\t\tlet newIndex = this.focusedIndex >= 0 ? this.focusedIndex : this.activeIndex\r\n\r\n\t\tswitch (event.key) {\r\n\t\t\tcase 'ArrowDown':\r\n\t\t\t\tevent.preventDefault()\r\n\t\t\t\tnewIndex = (newIndex + 1) % items.length\r\n\t\t\t\tbreak\r\n\t\t\tcase 'ArrowUp':\r\n\t\t\t\tevent.preventDefault()\r\n\t\t\t\tnewIndex = newIndex <= 0 ? items.length - 1 : newIndex - 1\r\n\t\t\t\tbreak\r\n\t\t\tcase 'Home':\r\n\t\t\t\tevent.preventDefault()\r\n\t\t\t\tnewIndex = 0\r\n\t\t\t\tbreak\r\n\t\t\tcase 'End':\r\n\t\t\t\tevent.preventDefault()\r\n\t\t\t\tnewIndex = items.length - 1\r\n\t\t\t\tbreak\r\n\t\t\tcase 'Enter':\r\n\t\t\tcase ' ':\r\n\t\t\t\tevent.preventDefault()\r\n\t\t\t\tif (newIndex >= 0) {\r\n\t\t\t\t\titems[newIndex].click()\r\n\t\t\t\t}\r\n\t\t\t\treturn\r\n\t\t\tdefault:\r\n\t\t\t\treturn\r\n\t\t}\r\n\r\n\t\tthis.focusedIndex = newIndex\r\n\t\titems[newIndex].focus()\r\n\t}\r\n\r\n\tprivate handleFabClick(event: Event) {\r\n\t\tevent.stopPropagation()\r\n\t\tthis.dispatchEvent(\r\n\t\t\tnew CustomEvent('fab-click', {\r\n\t\t\t\tbubbles: true,\r\n\t\t\t\tcomposed: true,\r\n\t\t\t}),\r\n\t\t)\r\n\t}\r\n\r\n\tprivate handleMenuClick(event: Event) {\r\n\t\tevent.stopPropagation()\r\n\t\tthis.dispatchEvent(\r\n\t\t\tnew CustomEvent('menu-click', {\r\n\t\t\t\tbubbles: true,\r\n\t\t\t\tcomposed: true,\r\n\t\t\t}),\r\n\t\t)\r\n\t}\r\n\r\n\tprotected render() {\r\n\t\t// Host-level classes for the navigation rail\r\n\t\tconst hostClasses = this.classMap({\r\n\t\t\t// Layout & Structure - Fixed width to prevent layout shift\r\n\t\t\t'flex flex-col': true,\r\n\t\t\t'w-20 h-full': true, // w-20 = 80px fixed width\r\n\t\t\t'box-border relative overflow-visible': true,\r\n\t\t\t'z-10 hover:z-[100]': true, // Base z-index, elevated on hover for overlay\r\n\r\n\t\t\t// Mobile responsive - smaller fixed width\r\n\t\t\t'md:w-20 w-14': true, // w-14 = 56px on mobile\r\n\r\n\t\t\t// Visibility and transition\r\n\t\t\t'transition-all duration-300 ease-emphasized': true,\r\n\t\t\t'opacity-100 translate-x-0': !this.isFullscreen,\r\n\t\t\t'opacity-0 -translate-x-full pointer-events-none': this.isFullscreen,\r\n\t\t})\r\n\r\n\t\t// Rail container - programmatically controlled width\r\n\t\tconst railClasses = this.classMap({\r\n\t\t\t// Layout & Structure\r\n\t\t\t'flex flex-col h-full': true,\r\n\t\t\t'box-border relative': true,\r\n\r\n\t\t\t// M3 Colors & Theme\r\n\t\t\t'bg-surface-default text-surface-on': true,\r\n\r\n\t\t\t// M3 Motion - smooth transitions for width and shadow\r\n\t\t\t'transition-all duration-300 ease-emphasized': true,\r\n\r\n\t\t\t// Collapsed state (default) - M3 standard 80px width\r\n\t\t\t'w-20 px-3 py-2 gap-1': !this.expanded, // w-20 = 80px base width\r\n\t\t\t'md:w-20 w-14': !this.expanded, // w-14 = 56px on mobile\r\n\t\t\t'md:px-3 px-2': !this.expanded, // Smaller padding on mobile\r\n\r\n\t\t\t// Expanded state - M3 expanded width with shadow\r\n\t\t\t'w-60 px-4 py-2 gap-1': this.expanded, // w-60 = 240px expanded width\r\n\t\t\t'md:w-60 w-50': this.expanded, // w-50 = 200px expansion on mobile\r\n\t\t\t'md:px-4 px-3': this.expanded, // Larger padding when expanded\r\n\t\t\t'shadow-lg': this.expanded, // M3 elevation 3 shadow when expanded\r\n\t\t})\r\n\r\n\t\t// Header section classes\r\n\t\tconst headerClasses = this.classMap({\r\n\t\t\t'flex flex-col items-center gap-1 mb-2': true,\r\n\t\t\t// FAB and menu button spacing\r\n\t\t\t'[&_[slot=\"fab\"]]:mb-2': true,\r\n\t\t\t'[&_[slot=\"menu\"]]:mb-3': true,\r\n\t\t})\r\n\r\n\t\t// Navigation container classes with alignment\r\n\t\tconst navClasses = this.classMap({\r\n\t\t\t'flex-1 flex flex-col gap-1': true,\r\n\t\t\t'min-h-0': true, // Allow flex shrinking and proper scroll container height calculation\r\n\t\t\t// Alignment variants\r\n\t\t\t'justify-start': this.alignment === 'top',\r\n\t\t\t'justify-center': this.alignment === 'center',\r\n\t\t\t'justify-end': this.alignment === 'bottom',\r\n\t\t})\r\n\r\n\t\t// Footer section classes\r\n\t\tconst footerClasses = this.classMap({\r\n\t\t\t'flex flex-col items-center gap-1 mt-auto pt-2': true,\r\n\t\t})\r\n\r\n\t\treturn html`\r\n\t\t\t<div\r\n\t\t\t\tclass=${hostClasses}\r\n\t\t\t>\r\n\t\t\t\t<div class=${railClasses} part=\"rail\">\r\n\t\t\t\t\t<div class=${headerClasses} part=\"header\">\r\n\t\t\t\t\t\t<slot name=\"fab\" @click=${this.handleFabClick}></slot>\r\n\t\t\t\t\t\t<slot name=\"menu\" @click=${this.handleMenuClick}></slot>\r\n\t\t\t\t\t\t<slot name=\"header\"></slot>\r\n\t\t\t\t\t</div>\r\n\r\n\t\t\t\t\t<nav class=${navClasses} part=\"nav\" role=\"list\">\r\n\t\t\t\t\t\t<schmancy-scroll hide direction=\"vertical\">\r\n\t\t\t\t\t\t\t<slot @slotchange=${this.handleSlotChange}></slot>\r\n\t\t\t\t\t\t</schmancy-scroll>\r\n\t\t\t\t\t</nav>\r\n\r\n\t\t\t\t\t<div class=${footerClasses} part=\"footer\">\r\n\t\t\t\t\t\t<slot name=\"footer\"></slot>\r\n\t\t\t\t\t</div>\r\n\t\t\t\t</div>\r\n\t\t\t</div>\r\n\t\t`\r\n\t}\r\n\r\n\tprivate setupNavigateListener() {\r\n\t\t// Listen for navigate events from child items\r\n\t\tthis.addEventListener('navigate', (e: Event) => {\r\n\t\t\tif (e instanceof CustomEvent) {\r\n\t\t\t\tconst value = e.detail\r\n\t\t\t\t// Find the item that dispatched the event and update active state\r\n\t\t\t\tconst itemIndex = this.navigationItems.findIndex(item => item.value === value || item.label === value)\r\n\t\t\t\tif (itemIndex >= 0) {\r\n\t\t\t\t\tthis.activeIndex = itemIndex\r\n\t\t\t\t\tthis._activeValue = value\r\n\t\t\t\t}\r\n\t\t\t}\r\n\t\t})\r\n\t}\r\n\r\n\tprivate handleSlotChange() {\r\n\t\t// Update items when slot content changes\r\n\t\tthis.updateLabelVisibility()\r\n\t\tthis.updateActiveStates(this.activeIndex)\r\n\r\n\t\t// Set ARIA attributes on items\r\n\t\tthis.navigationItems.forEach((item, index) => {\r\n\t\t\titem.setAttribute('role', 'listitem')\r\n\t\t\tif (!item.hasAttribute('tabindex')) {\r\n\t\t\t\titem.setAttribute('tabindex', index === this.activeIndex ? '0' : '-1')\r\n\t\t\t}\r\n\t\t})\r\n\t}\r\n}\r\n\r\ndeclare global {\r\n\tinterface HTMLElementTagNameMap {\r\n\t\t'schmancy-navigation-rail': SchmancyNavigationRail\r\n\t}\r\n}\r\n"],"names":["SchmancyNavigationRailItem","$LitElement","constructor","super","arguments","this","hovering$","BehaviorSubject","pressing$","active$","icon","label","value","badge","badgeVariant","showLabel","disabled","nested","group","showRipple","active","next","selected","connectedCallback","merge","fromEvent","pipe","tap","takeUntil","disconnecting","subscribe","pressing","delay","distinctUntilChanged","isActive","requestUpdate","setAttribute","String","hasAttribute","changedProperties","updated","has","event","preventDefault","stopPropagation","dispatchEvent","CustomEvent","detail","bubbles","composed","key","click","render","hasCustomIcon","querySelector","hasCustomContent","hasCustomBadge","containerClasses","classMap","relative","iconContainerClasses","indicatorClasses","iconClasses","labelClasses","hidden","badgeClasses","rippleClasses","html","handleClick","handleKeyDown","matches","when","getAttribute","__decorateClass","property","type","prototype","Boolean","reflect","attribute","state","customElement","SchmancyNavigationRail","activeIndex$","_activeValue","labelVisibility","alignment","showTooltips","keyboardNavigation","expanded","focusedIndex","isFullscreen","activeIndex","activeValue","updateActiveByValue","navigationItems","allElements","filter","el","tagName","addEventListener","index","updateActiveStates","window","customEvent","setupNavigateListener","updateLabelVisibility","forEach","item","i","findIndex","shouldShowLabel","removeAttribute","expand","collapse","config","document","createElement","id","innerHTML","title","footer","insertBefore","appendChild","toggle","items","length","newIndex","focus","hostClasses","railClasses","headerClasses","navClasses","footerClasses","handleFabClick","handleMenuClick","handleSlotChange","e","itemIndex","Number","queryAssignedElements","flatten"],"mappings":"qgBA6DaA,QAAAA,2BAAN,cAAyCC,EAAAA,YAAAA,CAAAA,CAAzC,aAAAC,CAAAC,MAAAA,GAAAC,SAAAA,EAENC,KAAQC,UAAY,IAAIC,EAAAA,gBAAAA,EAAyB,EACjDF,KAAQG,UAAY,IAAID,EAAAA,kBAAyB,EACjDF,KAAQI,QAAU,IAAIF,EAAAA,gBAAAA,EAAyB,EAO/CF,KAAAK,KAAO,GAMPL,KAAAM,MAAQ,GAMRN,KAAAO,MAAQ,GAwBRP,KAAAQ,MAAQ,GAMRR,KAAAS,aAAkD,QAOlDT,KAAAU,UAAAA,GAOAV,KAAAW,SAAAA,GAOAX,KAAAY,OAAAA,GAOAZ,KAAAa,MAAAA,GAIAb,KAAQc,WAAAA,EAAa,CAvDrB,IAAA,QAAIC,CAAW,OAAOf,KAAKI,QAAQG,KAAM,CACzC,IAAA,OAAWA,EAAAA,CACVP,KAAKI,QAAQY,KAAKT,EACnB,CAOA,IAAA,UAAIU,CAAa,OAAOjB,KAAKe,MAAO,CACpC,IAAA,SAAaR,EAAAA,CAAkBP,KAAKe,OAASR,CAAM,CA+CnD,mBAAAW,CACCpB,MAAMoB,kBAAAA,EAGNC,EAAAA,MACCC,EAAAA,UAAUpB,KAAM,YAAA,EAAcqB,KAAKC,EAAAA,IAAI,IAAMtB,KAAKC,UAAUe,KAAAA,EAAK,CAAA,CAAA,EACjEI,EAAAA,UAAUpB,KAAM,YAAA,EAAcqB,KAAKC,EAAAA,IAAI,IAAMtB,KAAKC,UAAUe,OAAK,CAAA,CAAA,CAAA,EAChEK,KAAKE,EAAAA,UAAUvB,KAAKwB,aAAAA,CAAAA,EAAgBC,UAAAA,EAGtCN,EAAAA,MACCC,EAAAA,UAAUpB,KAAM,WAAA,EAAaqB,KAAKC,EAAAA,IAAI,IAAMtB,KAAKG,UAAUa,KAAAA,EAAK,CAAA,CAAA,EAChEI,EAAAA,UAAUpB,KAAM,SAAA,EAAWqB,KAAKC,EAAAA,IAAI,IAAMtB,KAAKG,UAAUa,KAAAA,EAAK,CAAA,CAAA,EAC9DI,EAAAA,UAAUpB,KAAM,YAAA,EAAcqB,KAAKC,EAAAA,IAAI,IAAMtB,KAAKG,UAAUa,OAAK,CAAA,CAAA,CAAA,EAChEK,KAAKE,EAAAA,UAAUvB,KAAKwB,aAAAA,CAAAA,EAAgBC,UAAAA,EAItCzB,KAAKG,UAAUkB,KACdC,EAAAA,IAAII,GAAAA,CACCA,GAAAA,CAAa1B,KAAKW,WACrBX,KAAKc,WAAAA,GAAa,CAAA,EAIpBa,EAAAA,MAAM,GAAA,EACNL,EAAAA,IAAI,IAAMtB,KAAKc,WAAAA,EAAa,EAC5BS,EAAAA,UAAUvB,KAAKwB,aAAAA,CAAAA,EACdC,UAAAA,EAGFzB,KAAKI,QAAQiB,KACZO,yBACAN,EAAAA,IAAKO,GAAAA,CACJ7B,KAAK8B,cAAAA,EAEL9B,KAAK+B,aAAa,gBAAiBC,OAAOH,CAAAA,CAAAA,EAC1C7B,KAAK+B,aAAa,WAAYF,EAAW,IAAM,IAAA,CAAA,CAAA,EAEhDN,EAAAA,UAAUvB,KAAKwB,aAAAA,CAAAA,EACdC,UAAAA,EAGFzB,KAAK+B,aAAa,OAAQ,UAAA,EACrB/B,KAAKiC,aAAa,UAAA,GACtBjC,KAAK+B,aAAa,WAAY/B,KAAKe,OAAS,IAAM,IAAA,CAEpD,CAEA,QAAQmB,EAAAA,CACPpC,MAAMqC,QAAQD,CAAAA,EAKVA,EAAkBE,IAAI,UAAA,GACzBpC,KAAK+B,aAAa,gBAAiBC,OAAOhC,KAAKW,QAAAA,CAAAA,EAG5CuB,EAAkBE,IAAI,OAAA,GACzBpC,KAAK+B,aAAa,aAAc/B,KAAKM,KAAAA,CAEvC,CAKQ,YAAY+B,EAAAA,CACnB,GAAIrC,KAAKW,SAGR,OAFA0B,EAAMC,eAAAA,EAAAA,KACND,EAAME,gBAAAA,EAKPvC,KAAKwC,cAAc,IAAIC,YAAY,WAAY,CAC9CC,OAAQ1C,KAAKO,OAASP,KAAKM,MAC3BqC,WACAC,SAAAA,EAAU,CAAA,CAAA,CAKZ,CAKQ,cAAcP,EAAAA,CACjBrC,KAAKW,UAEL0B,EAAMQ,MAAQ,SAAWR,EAAMQ,MAAQ,MAC1CR,EAAMC,iBACNtC,KAAK8C,MAAAA,EAEP,CAEU,QAAAC,CACT,MAAMC,EAAgBhD,KAAKiD,cAAc,eAAA,EACnCC,EAAmBlD,KAAKiD,cAAc,cAAA,EACtCE,EAAiBnD,KAAKiD,cAAc,gBAAA,EAGpCG,EAAmBpD,KAAKqD,SAAS,CAEtC,4CAAA,GACA,kBAAA,GACA,OAAA,GACA,QAAA,GAGA,aAAA,GACA,iBAAA,GACAC,YACA,cAAA,GACA,aAAA,GAGA,yBAAA,CAA2BtD,KAAKe,OAChC,6BAA8Bf,KAAKe,OACnC,oCAAA,GAGA,uCAAA,GAGA,iCAAkCf,KAAKW,SAGvC,wBAAyBX,KAAKc,WAG9B,gBAAiBd,KAAKY,OAGtB,0HAA2HZ,KAAKa,KAAAA,CAAAA,EAI3H0C,EAAuBvD,KAAKqD,SAAS,CAC1C,mCAAA,GACA,yBACA,8BAAA,EAA+B,CAAA,EAI1BG,EAAmBxD,KAAKqD,SAAS,CACtC,uCAAA,GACA,WAAA,GACA,aAAA,GACA,yBAAA,GACA,6CAAA,GACA,MAAA,GAEA,4CAAA,CAA8CrD,KAAKe,OACnD,8CAA+Cf,KAAKe,MAAAA,CAAAA,EAI/C0C,EAAczD,KAAKqD,SAAS,CACjC,wBAAA,CAA0BrD,KAAKY,OAC/B,uBAAwBZ,KAAKY,OAC7B,gBAAA,EAAiB,CAAA,EAKZ8C,EAAe1D,KAAKqD,SAAS,CAClC,gCAAA,GACA,cAAA,GACA,kDAAA,GACA,qBAAA,GACAM,OAAAA,CAAW3D,KAAKU,YAAcV,KAAKM,KAAAA,CAAAA,EAI9BsD,EAAe5D,KAAKqD,SAAS,CAClC,yBAAA,GACA,iBACA,aAAA,GACA,wBAAA,GACA,mCAAA,GACA,uBAAA,GACA,gBAAA,GAEA,iCAAkCrD,KAAKS,eAAiB,QACxD,qCAAsCT,KAAKS,eAAiB,UAC5D,yCAA0CT,KAAKS,eAAiB,WAAjBA,CAAAA,EAI1CoD,EAAgB7D,KAAKqD,SAAS,CACnC,kDAAA,GACA,qEAAA,GACA,4CAAA,GACA,qCAAA,GACA,kDAAA,GACA,4CAAA,GAEA,oDAAqDrD,KAAKc,UAAAA,CAAAA,EAG3D,OAAOgD,EAAAA;AAAAA;AAAAA,YAEGV,CAAAA;AAAAA;AAAAA,aAECpD,KAAK+D,WAAAA;AAAAA,eACH/D,KAAKgE,aAAAA;AAAAA,sBACEhE,KAAKiE,QAAQ,kBAAoB,sDAAwD,MAAA;AAAA;AAAA,kBAE7FJ,CAAAA;AAAAA;AAAAA,MAEZK,EAAAA,KAAKhB,EACN,IAAMY,EAAAA,oBACN,IAAMA,EAAAA;AAAAA,mBACQP,CAAAA;AAAAA,qBACEC,CAAAA;AAAAA,SACZU,EAAAA,KAAKlB,EACN,IAAMc,EAAAA,gCACN,IAAMI,EAAAA,KAAKlE,KAAKK,KACf,IAAMyD,EAAAA;AAAAA;AAAAA,mBAEIL,CAAAA;AAAAA;AAAAA,8FAE2EzD,KAAKe,OAAS,IAAM,GAAA,kCAAqCf,KAAKY,OAAS,KAAO,IAAA;AAAA;AAAA,aAE/JZ,KAAKK,IAAAA;AAAAA;AAAAA;;;QAOV6D,EAAAA,KAAKlE,KAAKM,MACX,IAAMwD,EAAAA,mBAAmBJ,kBAA6B1D,KAAKM,KAAAA,SAAAA,CAAAA;AAAAA;;MAK5D4D,EAAAA,KAAKlE,KAAKQ,MACX,IAAMsD,EAAAA;AAAAA,QACHI,EAAAA,KAAKf,EACN,IAAMW,EAAAA,iCACN,IAAMA,EAAAA;AAAAA;AAAAA,iBAEIF,CAAAA;AAAAA;AAAAA,uBAEM5D,KAAKQ,KAAAA;AAAAA;AAAAA,WAEjBR,KAAKQ,KAAAA;AAAAA;AAAAA;;;;MAQV0D,EAAAA,KAAKlE,KAAKiC,aAAa,OAAA,EACxB,IAAM6B,EAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA,SAUF9D,KAAKmE,aAAa,OAAA,CAAA;AAAA;AAAA;;GAM1B,CAAA,EA/VAC,EAAA,CADCC,WAAS,CAAEC,KAAMtC,UAVNrC,mCAWZ4E,UAAA,OAAA,CAAA,EAMAH,EAAA,CADCC,WAAS,CAAEC,KAAMtC,UAhBNrC,mCAiBZ4E,UAAA,QAAA,CAAA,EAMAH,EAAA,CADCC,WAAS,CAAEC,KAAMtC,UAtBNrC,mCAuBZ4E,UAAA,QAAA,CAAA,EAOIH,EAAA,CADHC,EAAAA,SAAS,CAAEC,KAAME,QAASC,QAAAA,EAAS,CAAA,CAAA,EA7BxB9E,mCA8BR4E,UAAA,SAAA,CAAA,EAUAH,EAAA,CADHC,EAAAA,SAAS,CAAEC,KAAME,QAASC,QAAAA,EAAS,CAAA,CAAA,EAvCxB9E,mCAwCR4E,UAAA,WAAA,CAAA,EAOJH,EAAA,CADCC,WAAS,CAAEC,KAAMtC,MAAAA,CAAAA,CAAAA,EA9CNrC,mCA+CZ4E,UAAA,QAAA,CAAA,EAMAH,EAAA,CADCC,WAAS,CAAEC,KAAMtC,MAAAA,CAAAA,CAAAA,EApDNrC,mCAqDZ4E,UAAA,eAAA,CAAA,EAOAH,EAAA,CADCC,EAAAA,SAAS,CAAEC,KAAME,QAASE,UAAW,YAAA,CAAA,CAAA,EA3D1B/E,mCA4DZ4E,UAAA,YAAA,CAAA,EAOAH,EAAA,CADCC,EAAAA,SAAS,CAAEC,KAAME,QAASC,UAAS,CAAA,CAAA,EAlExB9E,mCAmEZ4E,UAAA,WAAA,GAOAH,EAAA,CADCC,EAAAA,SAAS,CAAEC,KAAME,QAASC,QAAAA,MAzEf9E,mCA0EZ4E,UAAA,SAAA,CAAA,EAOAH,EAAA,CADCC,EAAAA,SAAS,CAAEC,KAAME,QAASC,QAAAA,EAAS,CAAA,CAAA,EAhFxB9E,mCAiFZ4E,UAAA,QAAA,CAAA,EAIQH,EAAA,CADPO,EAAAA,SApFWhF,mCAqFJ4E,UAAA,aAAA,CAAA,EArFI5E,QAAAA,2BAANyE,EAAA,CADNQ,EAAAA,cAAc,kCACFjF,oOCJAkF,QAAAA,uBAAN,cAAqCjF,EAAAA,cAArC,aAAAC,CAAAC,SAAAC,SAAAA,EAENC,KAAQ8E,aAAe,IAAI5E,EAAAA,oBA0B3BF,KAAQ+E,aAAe,GAUvB/E,KAAAgF,gBAAmC,MAOnChF,KAAAiF,UAAyC,MAOzCjF,KAAAkF,aAAAA,GAOAlF,KAAAmF,mBAAAA,GAOAnF,KAAAoF,SAAAA,GAKApF,KAAQqF,aAAAA,GAGRrF,KAAQsF,aAAAA,EAAe,CAhEvB,IAAA,aAAIC,CACH,OAAOvF,KAAK8E,aAAavE,KAC1B,CACA,IAAA,YAAgBA,EAAAA,CACfP,KAAK8E,aAAa9D,KAAKT,CAAAA,CACxB,CAMA,IAAA,aAAIiF,CACH,OAAOxF,KAAK+E,YACb,CACA,IAAA,YAAgBxE,GACfP,KAAK+E,aAAexE,EACpBP,KAAKyF,oBAAoBlF,CAAAA,CAC1B,CAsDA,qBAAYmF,CACX,OAAO1F,KAAK2F,YAAYC,OAAOC,GAAMA,EAAGC,UAAY,gCACrD,CAEA,oBACChG,MAAMoB,kBAAAA,EAGFlB,KAAKmF,oBACRnF,KAAK+F,iBAAiB,UAAW/F,KAAKgE,eAIvChE,KAAK8E,aACHzD,KACAO,yBACAN,EAAAA,IAAI0E,GAAShG,KAAKiG,mBAAmBD,CAAAA,CAAAA,EACrCzE,EAAAA,UAAUvB,KAAKwB,gBAEfC,UAAAA,EAGFL,YAAU8E,OAAQ,YAAA,EAAc7E,KAC/BC,EAAAA,IAAKe,GAAAA,CACJ,MAAM8D,EAAc9D,EACpBrC,KAAKsF,aAAea,EAAYzD,MAAAA,CAAAA,EAEjCnB,EAAAA,UAAUvB,KAAKwB,gBACdC,UAAAA,EAGFzB,KAAKoG,wBAGLpG,KAAKqG,sBAAAA,EAGLrG,KAAK+B,aAAa,OAAQ,cAC1B/B,KAAK+B,aAAa,aAAc,iBAAA,CACjC,CAEA,QAAQG,EAAAA,CACPpC,MAAMqC,QAAQD,CAAAA,EAEVA,EAAkBE,IAAI,iBAAA,GACzBpC,KAAKqG,sBAAAA,EAGFnE,EAAkBE,IAAI,aAAA,GACzBpC,KAAKyF,oBAAoBzF,KAAKwF,WAAAA,EAG3BtD,EAAkBE,IAAI,aACzBpC,KAAKqG,sBAAAA,CAEP,CAEQ,mBAAmBL,GAC1BhG,KAAK0F,gBAAgBY,QAAQ,CAACC,EAAMC,KACnC,MAAM3E,EAAW2E,IAAMR,EACvBO,EAAKxF,OAASc,EACd0E,EAAKxE,aAAa,gBAAiBC,OAAOH,IAC1C0E,EAAKxE,aAAa,WAAYF,EAAW,IAAM,MAG3CA,IACH7B,KAAK+E,aAAewB,EAAKhG,OAASgG,EAAKjG,OAAS,GAAA,CAAA,CAGnD,CAEQ,oBAAoBC,GAC3B,MAAMyF,EAAQhG,KAAK0F,gBAAgBe,UAAUF,GAAQA,EAAKpC,aAAa,OAAA,IAAa5D,GAASgG,EAAKjG,QAAUC,CAAAA,EACxGyF,GAAS,IACZhG,KAAKuF,YAAcS,EAErB,CAEQ,uBAAAK,CACPrG,KAAK0F,gBAAgBY,QAAQ,CAACC,EAAMC,IAAAA,CACnC,IAAIE,KAIHA,EAAAA,CAAAA,CADG1G,KAAKoF,UAKPpF,KAAKgF,kBAAoB,OAAUhF,KAAKgF,kBAAoB,YAAcwB,IAAMxG,KAAKuF,YAGvFgB,EAAK7F,UAAYgG,EAGb1G,KAAKkF,eAAiBwB,GAAAA,CAAoB1G,KAAKoF,UAAYmB,EAAKjG,MACnEiG,EAAKxE,aAAa,QAASwE,EAAKjG,KAAAA,EAEhCiG,EAAKI,gBAAgB,OAAA,CAAA,CAAA,CAGxB,CAQA,QAAAC,CACC5G,KAAKoF,SAAAA,EACN,CAKA,UAAAyB,CACC7G,KAAKoF,SAAAA,EACN,CAOO,YAAY0B,GAClB,MAAMP,EAAOQ,SAASC,cAAc,+BAAA,EACpCT,EAAKxE,aAAa,QAAS+E,EAAOG,EAAAA,EAClCV,EAAKW,UAAY;AAAA,gCACaJ,EAAOzG,MAAQ,SAAA;AAAA,KAC1CyG,EAAOK;IAGV,MAAMC,EAASpH,KAAKiD,cAAc,mBAMlC,OALImE,EACHpH,KAAKqH,aAAad,EAAMa,GAExBpH,KAAKsH,YAAYf,GAEXA,CACR,CAKA,QAAAgB,CACCvH,KAAKoF,UAAYpF,KAAKoF,QACvB,CAGQ,cAAc/C,GACrB,MAAMmF,EAAQxH,KAAK0F,gBACnB,GAAI8B,EAAMC,SAAW,EAAG,OAExB,IAAIC,EAAW1H,KAAKqF,cAAgB,EAAIrF,KAAKqF,aAAerF,KAAKuF,YAEjE,OAAQlD,EAAMQ,KACb,IAAK,YACJR,EAAMC,eAAAA,EACNoF,GAAYA,EAAW,GAAKF,EAAMC,OAClC,MACD,IAAK,UACJpF,EAAMC,iBACNoF,EAAWA,GAAY,EAAIF,EAAMC,OAAS,EAAIC,EAAW,EACzD,MACD,IAAK,OACJrF,EAAMC,eAAAA,EACNoF,EAAW,EACX,MACD,IAAK,MACJrF,EAAMC,eAAAA,EACNoF,EAAWF,EAAMC,OAAS,EAC1B,MACD,IAAK,QACL,IAAK,IAKJ,OAJApF,EAAMC,eAAAA,EAAAA,KACFoF,GAAY,GACfF,EAAME,CAAAA,EAAU5E,MAAAA,GAGlB,QACC,MAAA,CAGF9C,KAAKqF,aAAeqC,EACpBF,EAAME,GAAUC,MAAAA,CACjB,CAEQ,eAAetF,EAAAA,CACtBA,EAAME,gBAAAA,EACNvC,KAAKwC,cACJ,IAAIC,YAAY,YAAa,CAC5BE,QAAAA,GACAC,SAAAA,EAAU,CAAA,CAAA,CAGb,CAEQ,gBAAgBP,GACvBA,EAAME,gBAAAA,EACNvC,KAAKwC,cACJ,IAAIC,YAAY,aAAc,CAC7BE,WACAC,SAAAA,KAGH,CAEU,SAET,MAAMgF,EAAc5H,KAAKqD,SAAS,CAEjC,gBAAA,GACA,iBACA,uCAAA,GACA,qBAAA,GAGA,kBAGA,8CAAA,GACA,4BAAA,CAA8BrD,KAAKsF,aACnC,kDAAmDtF,KAAKsF,eAInDuC,EAAc7H,KAAKqD,SAAS,CAEjC,uBAAA,GACA,sBAAA,GAGA,wCAGA,8CAAA,GAGA,uBAAA,CAAyBrD,KAAKoF,SAC9B,eAAA,CAAiBpF,KAAKoF,SACtB,eAAA,CAAiBpF,KAAKoF,SAGtB,uBAAwBpF,KAAKoF,SAC7B,eAAgBpF,KAAKoF,SACrB,eAAgBpF,KAAKoF,SACrB,YAAapF,KAAKoF,QAAAA,CAAAA,EAIb0C,EAAgB9H,KAAKqD,SAAS,CACnC,2CAEA,wBAAA,GACA,yBAAA,EAA0B,CAAA,EAIrB0E,EAAa/H,KAAKqD,SAAS,CAChC,6BAAA,GACA,aAEA,gBAAiBrD,KAAKiF,YAAc,MACpC,iBAAkBjF,KAAKiF,YAAc,SACrC,cAAejF,KAAKiF,YAAc,QAAdA,CAAAA,EAIf+C,EAAgBhI,KAAKqD,SAAS,CACnC,kDAAiD,CAAA,EAGlD,OAAOS,EAAAA;AAAAA;AAAAA,YAEG8D,CAAAA;AAAAA;AAAAA,iBAEKC,CAAAA;AAAAA,kBACCC,CAAAA;AAAAA,gCACc9H,KAAKiI,cAAAA;AAAAA,iCACJjI,KAAKkI,eAAAA;AAAAA;AAAAA;AAAAA;AAAAA,kBAIpBH,CAAAA;AAAAA;AAAAA,2BAES/H,KAAKmI,gBAAAA;AAAAA;AAAAA;AAAAA;AAAAA,kBAIdH,CAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA,GAMjB,CAEQ,wBAEPhI,KAAK+F,iBAAiB,WAAaqC,GAAAA,CAClC,GAAIA,aAAa3F,YAAa,CAC7B,MAAMlC,EAAQ6H,EAAE1F,OAEV2F,EAAYrI,KAAK0F,gBAAgBe,UAAUF,GAAQA,EAAKhG,QAAUA,GAASgG,EAAKjG,QAAUC,CAAAA,EAC5F8H,GAAa,IAChBrI,KAAKuF,YAAc8C,EACnBrI,KAAK+E,aAAexE,EAEtB,CAAA,CAAA,CAEF,CAEQ,kBAAA4H,CAEPnI,KAAKqG,sBAAAA,EACLrG,KAAKiG,mBAAmBjG,KAAKuF,WAAAA,EAG7BvF,KAAK0F,gBAAgBY,QAAQ,CAACC,EAAMP,IAAAA,CACnCO,EAAKxE,aAAa,OAAQ,UAAA,EACrBwE,EAAKtE,aAAa,UAAA,GACtBsE,EAAKxE,aAAa,WAAYiE,IAAUhG,KAAKuF,YAAc,IAAM,IAAA,CAAA,CAAA,CAGpE,CAAA,EA3YInB,EAAA,CADHC,WAAS,CAAEC,KAAMgE,MAAAA,CAAAA,CAAAA,EATNzD,+BAURN,UAAA,cAAA,CAAA,EAWAH,EAAA,CADHC,WAAS,CAAEC,KAAMtC,MAAAA,CAAAA,CAAAA,EApBN6C,+BAqBRN,UAAA,cAAA,CAAA,EAiBJH,EAAA,CADCC,EAAAA,SAAS,CAAEC,KAAMtC,OAAQ0C,UAAW,mBAAoBD,QAAAA,EAAS,CAAA,CAAA,EArCtDI,+BAsCZN,UAAA,kBAAA,CAAA,EAOAH,EAAA,CADCC,EAAAA,SAAS,CAAEC,KAAMtC,OAAQyC,UAAS,CAAA,CAAA,EA5CvBI,+BA6CZN,UAAA,YAAA,GAOAH,EAAA,CADCC,WAAS,CAAEC,KAAME,OAAAA,CAAAA,CAAAA,EAnDNK,+BAoDZN,UAAA,eAAA,GAOAH,EAAA,CADCC,WAAS,CAAEC,KAAME,OAAAA,CAAAA,CAAAA,EA1DNK,+BA2DZN,UAAA,qBAAA,CAAA,EAOAH,EAAA,CADCC,EAAAA,SAAS,CAAEC,KAAME,QAASC,QAAAA,EAAS,CAAA,CAAA,EAjExBI,+BAkEZN,UAAA,WAAA,CAAA,EAKQH,EAAA,CADPO,EAAAA,MAAAA,CAAAA,EAtEWE,+BAuEJN,UAAA,eAAA,CAAA,EAGAH,EAAA,CADPO,EAAAA,MAAAA,CAAAA,EAzEWE,+BA0EJN,UAAA,eAAA,GAKAH,EAAA,CADPmE,wBAAsB,CAAEC,UAAS,CAAA,CAAA,EA9EtB3D,+BA+EJN,UAAA,cAAA,GA/EIM,QAAAA,uBAANT,EAAA,CADNQ,EAAAA,cAAc,0BAAA,CAAA,EACFC"}
@@ -1,17 +1,17 @@
1
- import { BehaviorSubject as g, merge as y, fromEvent as v, takeUntil as f } from "rxjs";
1
+ import { BehaviorSubject as g, merge as m, fromEvent as v, takeUntil as f } from "rxjs";
2
+ import { tap as d, delay as V, distinctUntilChanged as x } from "rxjs/operators";
2
3
  import "lit/directives/class-map.js";
3
4
  import "lit/directives/style-map.js";
4
- import { property as s, state as x, customElement as m, queryAssignedElements as V } from "lit/decorators.js";
5
- import "./tailwind.mixin-BjDGMGbj.js";
6
- import { $ as w } from "./litElement.mixin-CzF0mNQd.js";
5
+ import { property as a, state as y, customElement as w, queryAssignedElements as S } from "lit/decorators.js";
6
+ import "./tailwind.mixin-DGLcZhRp.js";
7
+ import { $ } from "./litElement.mixin-Bkdw4DeE.js";
7
8
  import { html as h } from "lit";
8
9
  import { when as b } from "lit/directives/when.js";
9
- import { tap as u, delay as S, distinctUntilChanged as $ } from "rxjs/operators";
10
- var E = Object.defineProperty, C = Object.getOwnPropertyDescriptor, o = (e, t, i, a) => {
11
- for (var r, n = a > 1 ? void 0 : a ? C(t, i) : t, c = e.length - 1; c >= 0; c--) (r = e[c]) && (n = (a ? r(t, i, n) : r(n)) || n);
12
- return a && n && E(t, i, n), n;
10
+ var E = Object.defineProperty, C = Object.getOwnPropertyDescriptor, o = (e, t, i, s) => {
11
+ for (var p, n = s > 1 ? void 0 : s ? C(t, i) : t, u = e.length - 1; u >= 0; u--) (p = e[u]) && (n = (s ? p(t, i, n) : p(n)) || n);
12
+ return s && n && E(t, i, n), n;
13
13
  };
14
- let l = class extends w() {
14
+ let l = class extends $() {
15
15
  constructor() {
16
16
  super(...arguments), this.hovering$ = new g(!1), this.pressing$ = new g(!1), this.active$ = new g(!1), this.icon = "", this.label = "", this.value = "", this.badge = "", this.badgeVariant = "error", this.showLabel = !1, this.disabled = !1, this.nested = !1, this.group = !1, this.showRipple = !1;
17
17
  }
@@ -28,9 +28,9 @@ let l = class extends w() {
28
28
  this.active = e;
29
29
  }
30
30
  connectedCallback() {
31
- super.connectedCallback(), y(v(this, "mouseenter").pipe(u(() => this.hovering$.next(!0))), v(this, "mouseleave").pipe(u(() => this.hovering$.next(!1)))).pipe(f(this.disconnecting)).subscribe(), y(v(this, "mousedown").pipe(u(() => this.pressing$.next(!0))), v(this, "mouseup").pipe(u(() => this.pressing$.next(!1))), v(this, "mouseleave").pipe(u(() => this.pressing$.next(!1)))).pipe(f(this.disconnecting)).subscribe(), this.pressing$.pipe(u((e) => {
31
+ super.connectedCallback(), m(v(this, "mouseenter").pipe(d(() => this.hovering$.next(!0))), v(this, "mouseleave").pipe(d(() => this.hovering$.next(!1)))).pipe(f(this.disconnecting)).subscribe(), m(v(this, "mousedown").pipe(d(() => this.pressing$.next(!0))), v(this, "mouseup").pipe(d(() => this.pressing$.next(!1))), v(this, "mouseleave").pipe(d(() => this.pressing$.next(!1)))).pipe(f(this.disconnecting)).subscribe(), this.pressing$.pipe(d((e) => {
32
32
  e && !this.disabled && (this.showRipple = !0);
33
- }), S(600), u(() => this.showRipple = !1), f(this.disconnecting)).subscribe(), this.active$.pipe($(), u((e) => {
33
+ }), V(600), d(() => this.showRipple = !1), f(this.disconnecting)).subscribe(), this.active$.pipe(x(), d((e) => {
34
34
  this.requestUpdate(), this.setAttribute("aria-selected", String(e)), this.setAttribute("tabindex", e ? "0" : "-1");
35
35
  }), f(this.disconnecting)).subscribe(), this.setAttribute("role", "listitem"), this.hasAttribute("tabindex") || this.setAttribute("tabindex", this.active ? "0" : "-1");
36
36
  }
@@ -45,10 +45,10 @@ let l = class extends w() {
45
45
  this.disabled || e.key !== "Enter" && e.key !== " " || (e.preventDefault(), this.click());
46
46
  }
47
47
  render() {
48
- const e = this.querySelector('[slot="icon"]'), t = this.querySelector(":not([slot])"), i = this.querySelector('[slot="badge"]'), a = this.classMap({ "flex flex-col items-center justify-center": !0, "min-h-14 w-full": !0, "py-3": !0, "gap-1": !0, "rounded-lg": !0, "cursor-pointer": !0, relative: !0, "select-none": !0, "box-border": !0, "text-surface-onVariant": !this.active, "text-secondary-onContainer": this.active, "hover:bg-surface-containerHighest": !0, "transition-all duration-150 ease-out": !0, "pointer-events-none opacity-38": this.disabled, "[&>.ripple]:scale-100": this.showRipple, "min-h-12 pl-8": this.nested, "mb-2 after:absolute after:bottom-[-4px] after:left-3 after:right-3 after:h-px after:bg-outline-variant after:opacity-12": this.group }), r = this.classMap({ "flex items-center justify-center": !0, "w-auto min-w-14 h-8": !0, "flex-shrink-0 relative z-10": !0 }), n = this.classMap({ "absolute top-1/2 left-1/2 opacity-50": !0, "w-14 h-8": !0, "rounded-lg": !0, "bg-secondary-container": !0, "transition-transform duration-150 ease-out": !0, "z-0": !0, "scale-0 -translate-x-1/2 -translate-y-1/2": !this.active, "scale-100 -translate-x-1/2 -translate-y-1/2": this.active }), c = this.classMap({ "text-2xl leading-none": !this.nested, "text-xl leading-none": this.nested, "relative z-10": !0 }), A = this.classMap({ "text-xs font-medium leading-4": !0, "text-center": !0, "overflow-hidden text-ellipsis whitespace-nowrap": !0, "z-10 max-w-14 px-1": !0, hidden: !this.showLabel && !this.label }), I = this.classMap({ "absolute top-2 right-3": !0, "min-w-4 h-4": !0, "rounded-sm": !0, "text-xs font-semibold": !0, "flex items-center justify-center": !0, "px-1 box-border z-20": !0, "animate-pulse": !0, "bg-error-default text-error-on": this.badgeVariant === "error", "bg-primary-default text-primary-on": this.badgeVariant === "primary", "bg-secondary-default text-secondary-on": this.badgeVariant === "secondary" }), k = this.classMap({ "absolute inset-0 rounded-lg overflow-hidden z-0": !0, 'before:content-[""] before:absolute before:top-1/2 before:left-1/2': !0, "before:w-0 before:h-0 before:rounded-full": !0, "before:bg-current before:opacity-0": !0, "before:-translate-x-1/2 before:-translate-y-1/2": !0, "before:transition-all before:duration-300": !0, "before:w-[200%] before:h-[200%] before:opacity-12": this.showRipple });
48
+ const e = this.querySelector('[slot="icon"]'), t = this.querySelector(":not([slot])"), i = this.querySelector('[slot="badge"]'), s = this.classMap({ "flex flex-col items-center justify-center": !0, "min-h-14 w-full": !0, "py-3": !0, "gap-1": !0, "rounded-lg": !0, "cursor-pointer": !0, relative: !0, "select-none": !0, "box-border": !0, "text-surface-onVariant": !this.active, "text-secondary-onContainer": this.active, "hover:bg-surface-containerHighest": !0, "transition-all duration-150 ease-out": !0, "pointer-events-none opacity-38": this.disabled, "[&>.ripple]:scale-100": this.showRipple, "min-h-12 pl-8": this.nested, "mb-2 after:absolute after:bottom-[-4px] after:left-3 after:right-3 after:h-px after:bg-outline-variant after:opacity-12": this.group }), p = this.classMap({ "flex items-center justify-center": !0, "w-auto min-w-14 h-8": !0, "flex-shrink-0 relative z-10": !0 }), n = this.classMap({ "absolute top-1/2 left-1/2 opacity-50": !0, "w-14 h-8": !0, "rounded-lg": !0, "bg-secondary-container": !0, "transition-transform duration-150 ease-out": !0, "z-0": !0, "scale-0 -translate-x-1/2 -translate-y-1/2": !this.active, "scale-100 -translate-x-1/2 -translate-y-1/2": this.active }), u = this.classMap({ "text-2xl leading-none": !this.nested, "text-xl leading-none": this.nested, "relative z-10": !0 }), A = this.classMap({ "text-xs font-medium leading-4": !0, "text-center": !0, "overflow-hidden text-ellipsis whitespace-nowrap": !0, "z-10 max-w-14 px-1": !0, hidden: !this.showLabel && !this.label }), I = this.classMap({ "absolute top-2 right-3": !0, "min-w-4 h-4": !0, "rounded-sm": !0, "text-xs font-semibold": !0, "flex items-center justify-center": !0, "px-1 box-border z-20": !0, "animate-pulse": !0, "bg-error-default text-error-on": this.badgeVariant === "error", "bg-primary-default text-primary-on": this.badgeVariant === "primary", "bg-secondary-default text-secondary-on": this.badgeVariant === "secondary" }), k = this.classMap({ "absolute inset-0 rounded-lg overflow-hidden z-0": !0, 'before:content-[""] before:absolute before:top-1/2 before:left-1/2': !0, "before:w-0 before:h-0 before:rounded-full": !0, "before:bg-current before:opacity-0": !0, "before:-translate-x-1/2 before:-translate-y-1/2": !0, "before:transition-all before:duration-300": !0, "before:w-[200%] before:h-[200%] before:opacity-12": this.showRipple });
49
49
  return h`
50
50
  <div
51
- class=${a}
51
+ class=${s}
52
52
  part="container"
53
53
  @click=${this.handleClick}
54
54
  @keydown=${this.handleKeyDown}
@@ -57,11 +57,11 @@ let l = class extends w() {
57
57
  <span class=${k} aria-hidden="true"></span>
58
58
 
59
59
  ${b(t, () => h`<slot></slot>`, () => h`
60
- <div class=${r} part="icon">
60
+ <div class=${p} part="icon">
61
61
  <span class=${n} part="indicator" aria-hidden="true"></span>
62
62
  ${b(e, () => h`<slot name="icon"></slot>`, () => b(this.icon, () => h`
63
63
  <span
64
- class=${c}
64
+ class=${u}
65
65
  part="icon-text"
66
66
  style="font-family: 'Material Symbols Outlined'; font-variation-settings: 'FILL' ${this.active ? "1" : "0"}, 'wght' 400, 'GRAD' 0, 'opsz' ${this.nested ? "20" : "24"};"
67
67
  >
@@ -103,14 +103,14 @@ let l = class extends w() {
103
103
  `;
104
104
  }
105
105
  };
106
- o([s({ type: String })], l.prototype, "icon", 2), o([s({ type: String })], l.prototype, "label", 2), o([s({ type: String })], l.prototype, "value", 2), o([s({ type: Boolean, reflect: !0 })], l.prototype, "active", 1), o([s({ type: Boolean, reflect: !0 })], l.prototype, "selected", 1), o([s({ type: String })], l.prototype, "badge", 2), o([s({ type: String })], l.prototype, "badgeVariant", 2), o([s({ type: Boolean, attribute: "show-label" })], l.prototype, "showLabel", 2), o([s({ type: Boolean, reflect: !0 })], l.prototype, "disabled", 2), o([s({ type: Boolean, reflect: !0 })], l.prototype, "nested", 2), o([s({ type: Boolean, reflect: !0 })], l.prototype, "group", 2), o([x()], l.prototype, "showRipple", 2), l = o([m("schmancy-navigation-rail-item")], l);
107
- var M = Object.defineProperty, L = Object.getOwnPropertyDescriptor, d = (e, t, i, a) => {
108
- for (var r, n = a > 1 ? void 0 : a ? L(t, i) : t, c = e.length - 1; c >= 0; c--) (r = e[c]) && (n = (a ? r(t, i, n) : r(n)) || n);
109
- return a && n && M(t, i, n), n;
106
+ o([a({ type: String })], l.prototype, "icon", 2), o([a({ type: String })], l.prototype, "label", 2), o([a({ type: String })], l.prototype, "value", 2), o([a({ type: Boolean, reflect: !0 })], l.prototype, "active", 1), o([a({ type: Boolean, reflect: !0 })], l.prototype, "selected", 1), o([a({ type: String })], l.prototype, "badge", 2), o([a({ type: String })], l.prototype, "badgeVariant", 2), o([a({ type: Boolean, attribute: "show-label" })], l.prototype, "showLabel", 2), o([a({ type: Boolean, reflect: !0 })], l.prototype, "disabled", 2), o([a({ type: Boolean, reflect: !0 })], l.prototype, "nested", 2), o([a({ type: Boolean, reflect: !0 })], l.prototype, "group", 2), o([y()], l.prototype, "showRipple", 2), l = o([w("schmancy-navigation-rail-item")], l);
107
+ var M = Object.defineProperty, L = Object.getOwnPropertyDescriptor, c = (e, t, i, s) => {
108
+ for (var p, n = s > 1 ? void 0 : s ? L(t, i) : t, u = e.length - 1; u >= 0; u--) (p = e[u]) && (n = (s ? p(t, i, n) : p(n)) || n);
109
+ return s && n && M(t, i, n), n;
110
110
  };
111
- let p = class extends w() {
111
+ let r = class extends $() {
112
112
  constructor() {
113
- super(...arguments), this.activeIndex$ = new g(-1), this._activeValue = "", this.labelVisibility = "all", this.alignment = "top", this.showTooltips = !0, this.keyboardNavigation = !0, this.expanded = !1, this.focusedIndex = -1;
113
+ super(...arguments), this.activeIndex$ = new g(-1), this._activeValue = "", this.labelVisibility = "all", this.alignment = "top", this.showTooltips = !0, this.keyboardNavigation = !0, this.expanded = !1, this.focusedIndex = -1, this.isFullscreen = !1;
114
114
  }
115
115
  get activeIndex() {
116
116
  return this.activeIndex$.value;
@@ -128,15 +128,18 @@ let p = class extends w() {
128
128
  return this.allElements.filter((e) => e.tagName === "SCHMANCY-NAVIGATION-RAIL-ITEM");
129
129
  }
130
130
  connectedCallback() {
131
- super.connectedCallback(), this.keyboardNavigation && this.addEventListener("keydown", this.handleKeyDown), this.activeIndex$.pipe($(), u((e) => this.updateActiveStates(e)), f(this.disconnecting)).subscribe(), this.setupNavigateListener(), this.updateLabelVisibility(), this.setAttribute("role", "navigation"), this.setAttribute("aria-label", "Main navigation");
131
+ super.connectedCallback(), this.keyboardNavigation && this.addEventListener("keydown", this.handleKeyDown), this.activeIndex$.pipe(x(), d((e) => this.updateActiveStates(e)), f(this.disconnecting)).subscribe(), v(window, "fullscreen").pipe(d((e) => {
132
+ const t = e;
133
+ this.isFullscreen = t.detail;
134
+ }), f(this.disconnecting)).subscribe(), this.setupNavigateListener(), this.updateLabelVisibility(), this.setAttribute("role", "navigation"), this.setAttribute("aria-label", "Main navigation");
132
135
  }
133
136
  updated(e) {
134
137
  super.updated(e), e.has("labelVisibility") && this.updateLabelVisibility(), e.has("activeValue") && this.updateActiveByValue(this.activeValue), e.has("expanded") && this.updateLabelVisibility();
135
138
  }
136
139
  updateActiveStates(e) {
137
140
  this.navigationItems.forEach((t, i) => {
138
- const a = i === e;
139
- t.active = a, t.setAttribute("aria-selected", String(a)), t.setAttribute("tabindex", a ? "0" : "-1"), a && (this._activeValue = t.value || t.label || "");
141
+ const s = i === e;
142
+ t.active = s, t.setAttribute("aria-selected", String(s)), t.setAttribute("tabindex", s ? "0" : "-1"), s && (this._activeValue = t.value || t.label || "");
140
143
  });
141
144
  }
142
145
  updateActiveByValue(e) {
@@ -155,6 +158,15 @@ let p = class extends w() {
155
158
  collapse() {
156
159
  this.expanded = !1;
157
160
  }
161
+ addBoatItem(e) {
162
+ const t = document.createElement("schmancy-navigation-rail-item");
163
+ t.setAttribute("value", e.id), t.innerHTML = `
164
+ <schmancy-icon slot="icon">${e.icon || "widgets"}</schmancy-icon>
165
+ ${e.title}
166
+ `;
167
+ const i = this.querySelector('[slot="footer"]');
168
+ return i ? this.insertBefore(t, i) : this.appendChild(t), t;
169
+ }
158
170
  toggle() {
159
171
  this.expanded = !this.expanded;
160
172
  }
@@ -190,7 +202,7 @@ let p = class extends w() {
190
202
  e.stopPropagation(), this.dispatchEvent(new CustomEvent("menu-click", { bubbles: !0, composed: !0 }));
191
203
  }
192
204
  render() {
193
- const e = this.classMap({ "flex flex-col": !0, "w-20 h-full": !0, "box-border relative overflow-visible": !0, "z-10 hover:z-[100]": !0, "md:w-20 w-14": !0 }), t = this.classMap({ "flex flex-col h-full": !0, "box-border relative": !0, "bg-surface-default text-surface-on": !0, "transition-all duration-300 ease-emphasized": !0, "w-20 px-3 py-2 gap-1": !this.expanded, "md:w-20 w-14": !this.expanded, "md:px-3 px-2": !this.expanded, "w-60 px-4 py-2 gap-1": this.expanded, "md:w-60 w-50": this.expanded, "md:px-4 px-3": this.expanded, "shadow-lg": this.expanded }), i = this.classMap({ "flex flex-col items-center gap-1 mb-2": !0, '[&_[slot="fab"]]:mb-2': !0, '[&_[slot="menu"]]:mb-3': !0 }), a = this.classMap({ "flex-1 flex flex-col gap-1": !0, "min-h-0": !0, "justify-start": this.alignment === "top", "justify-center": this.alignment === "center", "justify-end": this.alignment === "bottom" }), r = this.classMap({ "flex flex-col items-center gap-1 mt-auto pt-2": !0 });
205
+ const e = this.classMap({ "flex flex-col": !0, "w-20 h-full": !0, "box-border relative overflow-visible": !0, "z-10 hover:z-[100]": !0, "md:w-20 w-14": !0, "transition-all duration-300 ease-emphasized": !0, "opacity-100 translate-x-0": !this.isFullscreen, "opacity-0 -translate-x-full pointer-events-none": this.isFullscreen }), t = this.classMap({ "flex flex-col h-full": !0, "box-border relative": !0, "bg-surface-default text-surface-on": !0, "transition-all duration-300 ease-emphasized": !0, "w-20 px-3 py-2 gap-1": !this.expanded, "md:w-20 w-14": !this.expanded, "md:px-3 px-2": !this.expanded, "w-60 px-4 py-2 gap-1": this.expanded, "md:w-60 w-50": this.expanded, "md:px-4 px-3": this.expanded, "shadow-lg": this.expanded }), i = this.classMap({ "flex flex-col items-center gap-1 mb-2": !0, '[&_[slot="fab"]]:mb-2': !0, '[&_[slot="menu"]]:mb-3': !0 }), s = this.classMap({ "flex-1 flex flex-col gap-1": !0, "min-h-0": !0, "justify-start": this.alignment === "top", "justify-center": this.alignment === "center", "justify-end": this.alignment === "bottom" }), p = this.classMap({ "flex flex-col items-center gap-1 mt-auto pt-2": !0 });
194
206
  return h`
195
207
  <div
196
208
  class=${e}
@@ -202,13 +214,13 @@ let p = class extends w() {
202
214
  <slot name="header"></slot>
203
215
  </div>
204
216
 
205
- <nav class=${a} part="nav" role="list">
217
+ <nav class=${s} part="nav" role="list">
206
218
  <schmancy-scroll hide direction="vertical">
207
219
  <slot @slotchange=${this.handleSlotChange}></slot>
208
220
  </schmancy-scroll>
209
221
  </nav>
210
222
 
211
- <div class=${r} part="footer">
223
+ <div class=${p} part="footer">
212
224
  <slot name="footer"></slot>
213
225
  </div>
214
226
  </div>
@@ -218,7 +230,7 @@ let p = class extends w() {
218
230
  setupNavigateListener() {
219
231
  this.addEventListener("navigate", (e) => {
220
232
  if (e instanceof CustomEvent) {
221
- const t = e.detail, i = this.navigationItems.findIndex((a) => a.value === t || a.label === t);
233
+ const t = e.detail, i = this.navigationItems.findIndex((s) => s.value === t || s.label === t);
222
234
  i >= 0 && (this.activeIndex = i, this._activeValue = t);
223
235
  }
224
236
  });
@@ -229,9 +241,9 @@ let p = class extends w() {
229
241
  });
230
242
  }
231
243
  };
232
- d([s({ type: Number })], p.prototype, "activeIndex", 1), d([s({ type: String })], p.prototype, "activeValue", 1), d([s({ type: String, attribute: "label-visibility", reflect: !0 })], p.prototype, "labelVisibility", 2), d([s({ type: String, reflect: !0 })], p.prototype, "alignment", 2), d([s({ type: Boolean })], p.prototype, "showTooltips", 2), d([s({ type: Boolean })], p.prototype, "keyboardNavigation", 2), d([s({ type: Boolean, reflect: !0 })], p.prototype, "expanded", 2), d([x()], p.prototype, "focusedIndex", 2), d([V({ flatten: !0 })], p.prototype, "allElements", 2), p = d([m("schmancy-navigation-rail")], p);
244
+ c([a({ type: Number })], r.prototype, "activeIndex", 1), c([a({ type: String })], r.prototype, "activeValue", 1), c([a({ type: String, attribute: "label-visibility", reflect: !0 })], r.prototype, "labelVisibility", 2), c([a({ type: String, reflect: !0 })], r.prototype, "alignment", 2), c([a({ type: Boolean })], r.prototype, "showTooltips", 2), c([a({ type: Boolean })], r.prototype, "keyboardNavigation", 2), c([a({ type: Boolean, reflect: !0 })], r.prototype, "expanded", 2), c([y()], r.prototype, "focusedIndex", 2), c([y()], r.prototype, "isFullscreen", 2), c([S({ flatten: !0 })], r.prototype, "allElements", 2), r = c([w("schmancy-navigation-rail")], r);
233
245
  export {
234
246
  l as S,
235
- p as a
247
+ r as a
236
248
  };
237
- //# sourceMappingURL=navigation-rail-D-lK9oVd.js.map
249
+ //# sourceMappingURL=navigation-rail-Dh3B6B0L.js.map