@mhmo91/schmancy 0.5.25 → 0.5.27

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 (362) hide show
  1. package/ai/checkbox.md +93 -52
  2. package/dist/ai/checkbox.md +93 -52
  3. package/dist/{animated-text-Q61RCdXT.js → animated-text-Bn8-ILmB.js} +3 -3
  4. package/dist/{animated-text-Q61RCdXT.js.map → animated-text-Bn8-ILmB.js.map} +1 -1
  5. package/dist/{animated-text-CiHeHOww.cjs → animated-text-vdNivzdc.cjs} +2 -2
  6. package/dist/{animated-text-CiHeHOww.cjs.map → animated-text-vdNivzdc.cjs.map} +1 -1
  7. package/dist/animated-text.cjs +1 -1
  8. package/dist/animated-text.js +1 -1
  9. package/dist/area.cjs +1 -1
  10. package/dist/{area.component-C_cHSKz0.cjs → area.component-DwPL6bdo.cjs} +2 -2
  11. package/dist/{area.component-C_cHSKz0.cjs.map → area.component-DwPL6bdo.cjs.map} +1 -1
  12. package/dist/{area.component-DYMGLvuA.js → area.component-pd24G8zW.js} +3 -3
  13. package/dist/{area.component-DYMGLvuA.js.map → area.component-pd24G8zW.js.map} +1 -1
  14. package/dist/area.js +1 -1
  15. package/dist/{autocomplete-DuQWyQeT.js → autocomplete-BlhAOtex.js} +4 -4
  16. package/dist/{autocomplete-DuQWyQeT.js.map → autocomplete-BlhAOtex.js.map} +1 -1
  17. package/dist/{autocomplete-ZT3BOEA5.cjs → autocomplete-GW91jVqw.cjs} +2 -2
  18. package/dist/{autocomplete-ZT3BOEA5.cjs.map → autocomplete-GW91jVqw.cjs.map} +1 -1
  19. package/dist/autocomplete.cjs +1 -1
  20. package/dist/autocomplete.js +1 -1
  21. package/dist/{avatar-BcnWoLvo.js → avatar-4sGidVGe.js} +51 -51
  22. package/dist/{avatar-BcnWoLvo.js.map → avatar-4sGidVGe.js.map} +1 -1
  23. package/dist/{avatar-8CSFLRvq.cjs → avatar-q32dkyky.cjs} +2 -2
  24. package/dist/{avatar-8CSFLRvq.cjs.map → avatar-q32dkyky.cjs.map} +1 -1
  25. package/dist/badge.cjs +1 -1
  26. package/dist/badge.js +1 -1
  27. package/dist/boat-DNmaFlxD.cjs +83 -0
  28. package/dist/boat-DNmaFlxD.cjs.map +1 -0
  29. package/dist/boat-dSTPix8t.js +240 -0
  30. package/dist/boat-dSTPix8t.js.map +1 -0
  31. package/dist/boat.cjs +1 -1
  32. package/dist/boat.js +1 -1
  33. package/dist/busy.cjs +1 -1
  34. package/dist/busy.js +1 -1
  35. package/dist/button.cjs +1 -1
  36. package/dist/button.js +1 -1
  37. package/dist/card.cjs +1 -1
  38. package/dist/card.js +1 -1
  39. package/dist/{checkbox-D0LwTB_L.cjs → checkbox-BJ5aqrKY.cjs} +2 -2
  40. package/dist/{checkbox-D0LwTB_L.cjs.map → checkbox-BJ5aqrKY.cjs.map} +1 -1
  41. package/dist/{checkbox-WxVuYamU.js → checkbox-CU2tyEL0.js} +2 -2
  42. package/dist/{checkbox-WxVuYamU.js.map → checkbox-CU2tyEL0.js.map} +1 -1
  43. package/dist/checkbox.cjs +1 -1
  44. package/dist/checkbox.js +1 -1
  45. package/dist/chips.cjs +1 -1
  46. package/dist/chips.js +2 -2
  47. package/dist/code-highlight.cjs +1 -1
  48. package/dist/code-highlight.js +1 -1
  49. package/dist/{code-preview-7uzeIcQP.js → code-preview-KDpn0Q3T.js} +2 -2
  50. package/dist/{code-preview-7uzeIcQP.js.map → code-preview-KDpn0Q3T.js.map} +1 -1
  51. package/dist/{code-preview-BcwituOr.cjs → code-preview-fda91FDi.cjs} +2 -2
  52. package/dist/{code-preview-BcwituOr.cjs.map → code-preview-fda91FDi.cjs.map} +1 -1
  53. package/dist/components.cjs +1 -1
  54. package/dist/components.js +1 -1
  55. package/dist/content-drawer.cjs +1 -1
  56. package/dist/content-drawer.js +1 -1
  57. package/dist/{date-range-eygGuBZz.cjs → date-range-0nOdLk-l.cjs} +2 -2
  58. package/dist/{date-range-eygGuBZz.cjs.map → date-range-0nOdLk-l.cjs.map} +1 -1
  59. package/dist/{date-range-inline-97fWguq7.cjs → date-range-inline-UoP6EDug.cjs} +2 -2
  60. package/dist/{date-range-inline-97fWguq7.cjs.map → date-range-inline-UoP6EDug.cjs.map} +1 -1
  61. package/dist/{date-range-inline-B2QQNDMg.js → date-range-inline-b0yYxPn_.js} +3 -3
  62. package/dist/{date-range-inline-B2QQNDMg.js.map → date-range-inline-b0yYxPn_.js.map} +1 -1
  63. package/dist/date-range-inline.cjs +1 -1
  64. package/dist/date-range-inline.js +1 -1
  65. package/dist/{date-range-s3Us154k.js → date-range-yd-FnXRe.js} +3 -3
  66. package/dist/{date-range-s3Us154k.js.map → date-range-yd-FnXRe.js.map} +1 -1
  67. package/dist/date-range.cjs +1 -1
  68. package/dist/date-range.js +1 -1
  69. package/dist/{delay-CQEb521T.js → delay-CE9VOJBG.js} +2 -2
  70. package/dist/{delay-CQEb521T.js.map → delay-CE9VOJBG.js.map} +1 -1
  71. package/dist/{delay-B0GqQ3C1.cjs → delay-CaOsI0yP.cjs} +2 -2
  72. package/dist/{delay-B0GqQ3C1.cjs.map → delay-CaOsI0yP.cjs.map} +1 -1
  73. package/dist/delay.cjs +1 -1
  74. package/dist/delay.js +1 -1
  75. package/dist/details-B_kKG0Du.cjs +143 -0
  76. package/dist/details-B_kKG0Du.cjs.map +1 -0
  77. package/dist/details-m-njXkGl.js +210 -0
  78. package/dist/details-m-njXkGl.js.map +1 -0
  79. package/dist/details.cjs +1 -1
  80. package/dist/details.js +1 -1
  81. package/dist/{dialog-content-DMImBN73.cjs → dialog-content-B5MUa6uq.cjs} +2 -2
  82. package/dist/{dialog-content-DMImBN73.cjs.map → dialog-content-B5MUa6uq.cjs.map} +1 -1
  83. package/dist/{dialog-content-CcNZ5YU6.js → dialog-content-BireCTdH.js} +3 -3
  84. package/dist/{dialog-content-CcNZ5YU6.js.map → dialog-content-BireCTdH.js.map} +1 -1
  85. package/dist/dialog.cjs +1 -1
  86. package/dist/dialog.js +1 -1
  87. package/dist/{divider-DvznHh3I.js → divider-CMaqpnia.js} +3 -3
  88. package/dist/{divider-DvznHh3I.js.map → divider-CMaqpnia.js.map} +1 -1
  89. package/dist/{divider-DNxHAfMo.cjs → divider-DekMH80a.cjs} +2 -2
  90. package/dist/{divider-DNxHAfMo.cjs.map → divider-DekMH80a.cjs.map} +1 -1
  91. package/dist/divider.cjs +1 -1
  92. package/dist/divider.js +1 -1
  93. package/dist/{dropdown-content-CtMauszk.js → dropdown-content-CViuccZ6.js} +3 -3
  94. package/dist/{dropdown-content-CtMauszk.js.map → dropdown-content-CViuccZ6.js.map} +1 -1
  95. package/dist/{dropdown-content-CH5MB5mz.cjs → dropdown-content-eXth59vX.cjs} +2 -2
  96. package/dist/{dropdown-content-CH5MB5mz.cjs.map → dropdown-content-eXth59vX.cjs.map} +1 -1
  97. package/dist/dropdown.cjs +1 -1
  98. package/dist/dropdown.js +1 -1
  99. package/dist/{email-recipients-BxiV610x.js → email-recipients-BSopuO1J.js} +5 -5
  100. package/dist/{email-recipients-BxiV610x.js.map → email-recipients-BSopuO1J.js.map} +1 -1
  101. package/dist/{email-recipients-pW93YxrA.cjs → email-recipients-DNcWf4_1.cjs} +2 -2
  102. package/dist/{email-recipients-pW93YxrA.cjs.map → email-recipients-DNcWf4_1.cjs.map} +1 -1
  103. package/dist/extra.cjs +1 -1
  104. package/dist/extra.js +1 -1
  105. package/dist/{flex-H2ZPqfIW.cjs → flex-CE0IKjR4.cjs} +2 -2
  106. package/dist/{flex-H2ZPqfIW.cjs.map → flex-CE0IKjR4.cjs.map} +1 -1
  107. package/dist/{flex-ykbucnko.js → flex-Czj-zqJQ.js} +2 -2
  108. package/dist/{flex-ykbucnko.js.map → flex-Czj-zqJQ.js.map} +1 -1
  109. package/dist/{form-CGGeAQbK.js → form-CAvvBQiv.js} +2 -2
  110. package/dist/{form-CGGeAQbK.js.map → form-CAvvBQiv.js.map} +1 -1
  111. package/dist/{form-C7FRhHOX.cjs → form-OUNdJnUW.cjs} +2 -2
  112. package/dist/{form-C7FRhHOX.cjs.map → form-OUNdJnUW.cjs.map} +1 -1
  113. package/dist/form.cjs +1 -1
  114. package/dist/form.js +1 -1
  115. package/dist/{formField.mixin-MbkisYHL.cjs → formField.mixin-Bu0ygAbE.cjs} +2 -2
  116. package/dist/{formField.mixin-MbkisYHL.cjs.map → formField.mixin-Bu0ygAbE.cjs.map} +1 -1
  117. package/dist/{formField.mixin-D-3pktvx.js → formField.mixin-DlYLC82X.js} +2 -2
  118. package/dist/{formField.mixin-D-3pktvx.js.map → formField.mixin-DlYLC82X.js.map} +1 -1
  119. package/dist/{icon-CnVNGmjD.cjs → icon-BwhQbcAk.cjs} +2 -2
  120. package/dist/{icon-CnVNGmjD.cjs.map → icon-BwhQbcAk.cjs.map} +1 -1
  121. package/dist/{icon-BiHCgOyT.js → icon-D0EaNtwd.js} +2 -2
  122. package/dist/{icon-BiHCgOyT.js.map → icon-D0EaNtwd.js.map} +1 -1
  123. package/dist/{icon-button-CB52pDFa.cjs → icon-button-BrRSVzzx.cjs} +2 -2
  124. package/dist/{icon-button-CB52pDFa.cjs.map → icon-button-BrRSVzzx.cjs.map} +1 -1
  125. package/dist/{icon-button--hjJtAL_.js → icon-button-CGMdsmXS.js} +3 -3
  126. package/dist/{icon-button--hjJtAL_.js.map → icon-button-CGMdsmXS.js.map} +1 -1
  127. package/dist/icons.cjs +1 -1
  128. package/dist/icons.js +1 -1
  129. package/dist/index.cjs +1 -1
  130. package/dist/index.js +166 -163
  131. package/dist/{input-Mrc7DrIK.js → input-DZYN1TnY.js} +3 -3
  132. package/dist/{input-Mrc7DrIK.js.map → input-DZYN1TnY.js.map} +1 -1
  133. package/dist/{input-chip-BRdk5zlg.js → input-chip-CNLkwei6.js} +2 -2
  134. package/dist/{input-chip-BRdk5zlg.js.map → input-chip-CNLkwei6.js.map} +1 -1
  135. package/dist/{input-chip-DnM_iJbj.cjs → input-chip-Cf25jEob.cjs} +2 -2
  136. package/dist/{input-chip-DnM_iJbj.cjs.map → input-chip-Cf25jEob.cjs.map} +1 -1
  137. package/dist/{input-BXcrOvCH.cjs → input-lzxE1e5L.cjs} +2 -2
  138. package/dist/{input-BXcrOvCH.cjs.map → input-lzxE1e5L.cjs.map} +1 -1
  139. package/dist/input.cjs +1 -1
  140. package/dist/input.js +1 -1
  141. package/dist/layout.cjs +1 -1
  142. package/dist/layout.js +1 -1
  143. package/dist/{list-CXBxuSyn.js → list-Cqo45m_h.js} +2 -2
  144. package/dist/{list-CXBxuSyn.js.map → list-Cqo45m_h.js.map} +1 -1
  145. package/dist/{list-CYvT9cR6.cjs → list-rGx4YHgo.cjs} +2 -2
  146. package/dist/{list-CYvT9cR6.cjs.map → list-rGx4YHgo.cjs.map} +1 -1
  147. package/dist/list.cjs +1 -1
  148. package/dist/list.js +1 -1
  149. package/dist/{litElement.mixin-DvxIa-6i.js → litElement.mixin-B0Rsd4Km.js} +2 -2
  150. package/dist/{litElement.mixin-DvxIa-6i.js.map → litElement.mixin-B0Rsd4Km.js.map} +1 -1
  151. package/dist/{litElement.mixin-BlkckXzw.cjs → litElement.mixin-DUiUa087.cjs} +2 -2
  152. package/dist/{litElement.mixin-BlkckXzw.cjs.map → litElement.mixin-DUiUa087.cjs.map} +1 -1
  153. package/dist/mailbox.cjs +1 -1
  154. package/dist/mailbox.js +1 -1
  155. package/dist/{map-CnBZmqCI.cjs → map-8DhybTup.cjs} +2 -2
  156. package/dist/{map-CnBZmqCI.cjs.map → map-8DhybTup.cjs.map} +1 -1
  157. package/dist/{map-DwJzufvh.js → map-DWf43TA1.js} +2 -2
  158. package/dist/{map-DwJzufvh.js.map → map-DWf43TA1.js.map} +1 -1
  159. package/dist/map.cjs +1 -1
  160. package/dist/map.js +1 -1
  161. package/dist/media-BVKgZzK_.js +243 -0
  162. package/dist/media-BVKgZzK_.js.map +1 -0
  163. package/dist/media-BZwiyJto.cjs +152 -0
  164. package/dist/media-BZwiyJto.cjs.map +1 -0
  165. package/dist/{menu-dj8ocrls.js → menu-CGaCEOer.js} +3 -3
  166. package/dist/{menu-dj8ocrls.js.map → menu-CGaCEOer.js.map} +1 -1
  167. package/dist/{menu-1D8Grlkb.cjs → menu-D8qP_e7D.cjs} +2 -2
  168. package/dist/{menu-1D8Grlkb.cjs.map → menu-D8qP_e7D.cjs.map} +1 -1
  169. package/dist/menu.cjs +1 -1
  170. package/dist/menu.js +1 -1
  171. package/dist/mixins/tailwind.css +0 -247
  172. package/dist/nav-drawer.cjs +1 -1
  173. package/dist/nav-drawer.js +1 -1
  174. package/dist/navigation-bar.cjs +1 -1
  175. package/dist/navigation-bar.js +1 -1
  176. package/dist/{navigation-rail-CO20kIzL.cjs → navigation-rail-BzMOzaFm.cjs} +77 -39
  177. package/dist/navigation-rail-BzMOzaFm.cjs.map +1 -0
  178. package/dist/{navigation-rail-DDSUxYea.js → navigation-rail-CjBw96pi.js} +88 -50
  179. package/dist/navigation-rail-CjBw96pi.js.map +1 -0
  180. package/dist/navigation-rail.cjs +1 -1
  181. package/dist/navigation-rail.js +1 -1
  182. package/dist/{notification-service-DcZEP2es.cjs → notification-service-DCmDSvc-.cjs} +2 -2
  183. package/dist/{notification-service-DcZEP2es.cjs.map → notification-service-DCmDSvc-.cjs.map} +1 -1
  184. package/dist/{notification-service-pckh5tN0.js → notification-service-Dv4oQi_Z.js} +5 -5
  185. package/dist/{notification-service-pckh5tN0.js.map → notification-service-Dv4oQi_Z.js.map} +1 -1
  186. package/dist/notification.cjs +1 -1
  187. package/dist/notification.js +2 -2
  188. package/dist/{notify-CkVQ8Yk1.js → notify-COuaNTJP.js} +2 -2
  189. package/dist/{notify-CkVQ8Yk1.js.map → notify-COuaNTJP.js.map} +1 -1
  190. package/dist/{notify-G37oQhaA.cjs → notify-XY2e8y_a.cjs} +2 -2
  191. package/dist/{notify-G37oQhaA.cjs.map → notify-XY2e8y_a.cjs.map} +1 -1
  192. package/dist/{option-aPValeTc.js → option-CSSmqUBi.js} +2 -2
  193. package/dist/{option-aPValeTc.js.map → option-CSSmqUBi.js.map} +1 -1
  194. package/dist/{option-Cjwmga85.cjs → option-q-dig7LF.cjs} +2 -2
  195. package/dist/{option-Cjwmga85.cjs.map → option-q-dig7LF.cjs.map} +1 -1
  196. package/dist/option.cjs +1 -1
  197. package/dist/option.js +1 -1
  198. package/dist/{payment-card-form-CbGx00Fm.cjs → payment-card-form-C8bWa_hh.cjs} +2 -2
  199. package/dist/{payment-card-form-CbGx00Fm.cjs.map → payment-card-form-C8bWa_hh.cjs.map} +1 -1
  200. package/dist/{payment-card-form-B0kQ8Wr5.js → payment-card-form-CWboYwqO.js} +3 -3
  201. package/dist/{payment-card-form-B0kQ8Wr5.js.map → payment-card-form-CWboYwqO.js.map} +1 -1
  202. package/dist/{progress-CmI5A7Z_.cjs → progress-CP2lpJsl.cjs} +2 -2
  203. package/dist/{progress-CmI5A7Z_.cjs.map → progress-CP2lpJsl.cjs.map} +1 -1
  204. package/dist/{progress-DuqVkW8o.js → progress-Cci0dXzp.js} +2 -2
  205. package/dist/{progress-DuqVkW8o.js.map → progress-Cci0dXzp.js.map} +1 -1
  206. package/dist/progress.cjs +1 -1
  207. package/dist/progress.js +1 -1
  208. package/dist/{radio-button-Chlsm46k.cjs → radio-button-CU-lMs92.cjs} +2 -2
  209. package/dist/{radio-button-Chlsm46k.cjs.map → radio-button-CU-lMs92.cjs.map} +1 -1
  210. package/dist/{radio-button-sQa0jt-L.js → radio-button-DFbfVgox.js} +3 -3
  211. package/dist/{radio-button-sQa0jt-L.js.map → radio-button-DFbfVgox.js.map} +1 -1
  212. package/dist/radio-group.cjs +1 -1
  213. package/dist/radio-group.js +1 -1
  214. package/dist/{schmancy-steps-container-r34O78hN.cjs → schmancy-steps-container-CQY1zmws.cjs} +2 -2
  215. package/dist/{schmancy-steps-container-r34O78hN.cjs.map → schmancy-steps-container-CQY1zmws.cjs.map} +1 -1
  216. package/dist/{schmancy-steps-container-BsVtwIIR.js → schmancy-steps-container-vW7r1ZTL.js} +2 -2
  217. package/dist/{schmancy-steps-container-BsVtwIIR.js.map → schmancy-steps-container-vW7r1ZTL.js.map} +1 -1
  218. package/dist/{select-lhS0e1Jw.cjs → select-Be8HIqWu.cjs} +2 -2
  219. package/dist/{select-lhS0e1Jw.cjs.map → select-Be8HIqWu.cjs.map} +1 -1
  220. package/dist/{select-DQNDWSWh.js → select-BkGodZaS.js} +4 -4
  221. package/dist/{select-DQNDWSWh.js.map → select-BkGodZaS.js.map} +1 -1
  222. package/dist/select.cjs +1 -1
  223. package/dist/select.js +1 -1
  224. package/dist/{sheet-DImUVTqD.js → sheet-DECb9whB.js} +3 -3
  225. package/dist/{sheet-DImUVTqD.js.map → sheet-DECb9whB.js.map} +1 -1
  226. package/dist/{sheet-CVQ6px7m.cjs → sheet-dK5UPVjp.cjs} +2 -2
  227. package/dist/{sheet-CVQ6px7m.cjs.map → sheet-dK5UPVjp.cjs.map} +1 -1
  228. package/dist/sheet.cjs +1 -1
  229. package/dist/sheet.js +1 -1
  230. package/dist/{slider-CZMt67fl.js → slider-BhFc1oRj.js} +3 -3
  231. package/dist/{slider-CZMt67fl.js.map → slider-BhFc1oRj.js.map} +1 -1
  232. package/dist/{slider-MzOpDc_J.cjs → slider-CP3JRaWR.cjs} +2 -2
  233. package/dist/{slider-MzOpDc_J.cjs.map → slider-CP3JRaWR.cjs.map} +1 -1
  234. package/dist/slider.cjs +1 -1
  235. package/dist/slider.js +1 -1
  236. package/dist/{spinner-BuujVERe.cjs → spinner-BD8cXVK_.cjs} +2 -2
  237. package/dist/{spinner-BuujVERe.cjs.map → spinner-BD8cXVK_.cjs.map} +1 -1
  238. package/dist/{spinner-CUHM2lNo.js → spinner-DGyRYqUZ.js} +2 -2
  239. package/dist/{spinner-CUHM2lNo.js.map → spinner-DGyRYqUZ.js.map} +1 -1
  240. package/dist/steps.cjs +1 -1
  241. package/dist/steps.js +1 -1
  242. package/dist/{suggestion-chip-CzMoacAF.cjs → suggestion-chip-C1n2VYBG.cjs} +31 -20
  243. package/dist/suggestion-chip-C1n2VYBG.cjs.map +1 -0
  244. package/dist/{suggestion-chip-8mpcT2Lk.js → suggestion-chip-Cl0cPTKV.js} +89 -70
  245. package/dist/suggestion-chip-Cl0cPTKV.js.map +1 -0
  246. package/dist/surface-C3V23wh9.js +140 -0
  247. package/dist/surface-C3V23wh9.js.map +1 -0
  248. package/dist/surface-ClIDhSRv.cjs +119 -0
  249. package/dist/surface-ClIDhSRv.cjs.map +1 -0
  250. package/dist/surface.cjs +1 -1
  251. package/dist/surface.js +1 -1
  252. package/dist/{table-Dt0gOEZZ.cjs → table-1New2HBS.cjs} +2 -2
  253. package/dist/{table-Dt0gOEZZ.cjs.map → table-1New2HBS.cjs.map} +1 -1
  254. package/dist/{table-DkaAXbrh.js → table-CLA3cxIk.js} +2 -2
  255. package/dist/{table-DkaAXbrh.js.map → table-CLA3cxIk.js.map} +1 -1
  256. package/dist/table.cjs +1 -1
  257. package/dist/table.js +1 -1
  258. package/dist/{tabs-compatibility-5WVuGrk5.cjs → tabs-compatibility-DDtYFCUj.cjs} +2 -2
  259. package/dist/{tabs-compatibility-5WVuGrk5.cjs.map → tabs-compatibility-DDtYFCUj.cjs.map} +1 -1
  260. package/dist/{tabs-compatibility-DGvPxrEr.js → tabs-compatibility-RMzYuSJ1.js} +2 -2
  261. package/dist/{tabs-compatibility-DGvPxrEr.js.map → tabs-compatibility-RMzYuSJ1.js.map} +1 -1
  262. package/dist/tabs.cjs +1 -1
  263. package/dist/tabs.js +1 -1
  264. package/dist/tailwind.mixin-CFrLBtkD.cjs +2 -0
  265. package/dist/{tailwind.mixin-BiRVB4Hl.cjs.map → tailwind.mixin-CFrLBtkD.cjs.map} +1 -1
  266. package/dist/tailwind.mixin-CZKT1dUr.js +43 -0
  267. package/dist/{tailwind.mixin-BbF53_0W.js.map → tailwind.mixin-CZKT1dUr.js.map} +1 -1
  268. package/dist/teleport.cjs +1 -1
  269. package/dist/teleport.js +1 -1
  270. package/dist/{textarea-mc3Gk2Ch.js → textarea-B4DXG5Sg.js} +3 -3
  271. package/dist/{textarea-mc3Gk2Ch.js.map → textarea-B4DXG5Sg.js.map} +1 -1
  272. package/dist/{textarea-CJECXt0r.cjs → textarea-ChDsPBZz.cjs} +2 -2
  273. package/dist/{textarea-CJECXt0r.cjs.map → textarea-ChDsPBZz.cjs.map} +1 -1
  274. package/dist/textarea.cjs +1 -1
  275. package/dist/textarea.js +1 -1
  276. package/dist/{theme-button-cDGf9KiE.js → theme-button-DGjG_shg.js} +2 -2
  277. package/dist/{theme-button-cDGf9KiE.js.map → theme-button-DGjG_shg.js.map} +1 -1
  278. package/dist/{theme-button-1nU7sd5N.cjs → theme-button-qzDX0i9Q.cjs} +2 -2
  279. package/dist/{theme-button-1nU7sd5N.cjs.map → theme-button-qzDX0i9Q.cjs.map} +1 -1
  280. package/dist/theme-button.cjs +1 -1
  281. package/dist/theme-button.js +1 -1
  282. package/dist/theme.cjs +1 -1
  283. package/dist/theme.component-Blc_4wu9.cjs +3 -0
  284. package/dist/{theme.component-BpyyRbkh.cjs.map → theme.component-Blc_4wu9.cjs.map} +1 -1
  285. package/dist/theme.component-C3r_-QqQ.js +818 -0
  286. package/dist/{theme.component-HF6Qt0YA.js.map → theme.component-C3r_-QqQ.js.map} +1 -1
  287. package/dist/theme.interface-BLfE5J_1.js +5 -0
  288. package/dist/theme.interface-BLfE5J_1.js.map +1 -0
  289. package/dist/theme.interface-BMeNadVb.cjs +2 -0
  290. package/dist/theme.interface-BMeNadVb.cjs.map +1 -0
  291. package/dist/theme.js +13 -10
  292. package/dist/{timezone-8UCGVbbl.js → timezone-BkE20wzQ.js} +3 -3
  293. package/dist/{timezone-8UCGVbbl.js.map → timezone-BkE20wzQ.js.map} +1 -1
  294. package/dist/{timezone-DC3VVwlT.cjs → timezone-wWfEuXrb.cjs} +2 -2
  295. package/dist/{timezone-DC3VVwlT.cjs.map → timezone-wWfEuXrb.cjs.map} +1 -1
  296. package/dist/{tooltip-DNl5aBNp.cjs → tooltip-DLadXXnP.cjs} +2 -2
  297. package/dist/{tooltip-DNl5aBNp.cjs.map → tooltip-DLadXXnP.cjs.map} +1 -1
  298. package/dist/{tooltip-C5r_jUM1.js → tooltip-UtpbXzQX.js} +2 -2
  299. package/dist/{tooltip-C5r_jUM1.js.map → tooltip-UtpbXzQX.js.map} +1 -1
  300. package/dist/tooltip.cjs +1 -1
  301. package/dist/tooltip.js +1 -1
  302. package/dist/{tree-yiGCSyyN.cjs → tree-Brtho3Eu.cjs} +2 -2
  303. package/dist/{tree-yiGCSyyN.cjs.map → tree-Brtho3Eu.cjs.map} +1 -1
  304. package/dist/{tree-CeNor9l6.js → tree-VkXtw2P8.js} +2 -2
  305. package/dist/{tree-CeNor9l6.js.map → tree-VkXtw2P8.js.map} +1 -1
  306. package/dist/tree.cjs +1 -1
  307. package/dist/tree.js +1 -1
  308. package/dist/{typewriter-CWFH8-z-.cjs → typewriter-CEgaw_pR.cjs} +2 -2
  309. package/dist/{typewriter-CWFH8-z-.cjs.map → typewriter-CEgaw_pR.cjs.map} +1 -1
  310. package/dist/{typewriter-BbQsON2M.js → typewriter-CsReDsYS.js} +4 -4
  311. package/dist/{typewriter-BbQsON2M.js.map → typewriter-CsReDsYS.js.map} +1 -1
  312. package/dist/typewriter.cjs +1 -1
  313. package/dist/typewriter.js +1 -1
  314. package/dist/{typography-PFj-xY2T.js → typography-D_bM5DW7.js} +2 -2
  315. package/dist/{typography-PFj-xY2T.js.map → typography-D_bM5DW7.js.map} +1 -1
  316. package/dist/{typography-ByLTIj6U.cjs → typography-NurK7F-8.cjs} +2 -2
  317. package/dist/{typography-ByLTIj6U.cjs.map → typography-NurK7F-8.cjs.map} +1 -1
  318. package/dist/typography.cjs +1 -1
  319. package/dist/typography.js +1 -1
  320. package/package.json +1 -1
  321. package/types/src/boat/boat.d.ts +9 -0
  322. package/types/src/card/card.d.ts +5 -1
  323. package/types/src/chips/chips.d.ts +1 -6
  324. package/types/src/details/details.d.ts +4 -4
  325. package/types/src/theme/context.d.ts +222 -2
  326. package/types/src/theme/index.d.ts +10 -3
  327. package/types/src/theme/theme.elevation.d.ts +131 -0
  328. package/types/src/theme/theme.format.d.ts +32 -5
  329. package/types/src/theme/theme.interface.d.ts +231 -5
  330. package/types/src/theme/theme.motion.d.ts +198 -0
  331. package/types/src/theme/theme.service.d.ts +222 -2
  332. package/types/src/theme/theme.shape.d.ts +144 -0
  333. package/types/src/theme/theme.state.d.ts +546 -0
  334. package/types/src/theme/theme.typography.d.ts +74 -0
  335. package/dist/boat-BTSQNgJQ.js +0 -174
  336. package/dist/boat-BTSQNgJQ.js.map +0 -1
  337. package/dist/boat-BtViHW8M.cjs +0 -66
  338. package/dist/boat-BtViHW8M.cjs.map +0 -1
  339. package/dist/details-BSmS_ILq.cjs +0 -161
  340. package/dist/details-BSmS_ILq.cjs.map +0 -1
  341. package/dist/details-kr1zYIlK.js +0 -228
  342. package/dist/details-kr1zYIlK.js.map +0 -1
  343. package/dist/media-CdM6XhRo.cjs +0 -177
  344. package/dist/media-CdM6XhRo.cjs.map +0 -1
  345. package/dist/media-DOKkl0Ic.js +0 -261
  346. package/dist/media-DOKkl0Ic.js.map +0 -1
  347. package/dist/navigation-rail-CO20kIzL.cjs.map +0 -1
  348. package/dist/navigation-rail-DDSUxYea.js.map +0 -1
  349. package/dist/suggestion-chip-8mpcT2Lk.js.map +0 -1
  350. package/dist/suggestion-chip-CzMoacAF.cjs.map +0 -1
  351. package/dist/surface-C3B9Sbtw.cjs +0 -90
  352. package/dist/surface-C3B9Sbtw.cjs.map +0 -1
  353. package/dist/surface-DdR9DjO8.js +0 -111
  354. package/dist/surface-DdR9DjO8.js.map +0 -1
  355. package/dist/tailwind.mixin-BbF53_0W.js +0 -43
  356. package/dist/tailwind.mixin-BiRVB4Hl.cjs +0 -2
  357. package/dist/theme.component-BpyyRbkh.cjs +0 -3
  358. package/dist/theme.component-HF6Qt0YA.js +0 -814
  359. package/dist/theme.interface-C5Kj6WjD.js +0 -5
  360. package/dist/theme.interface-C5Kj6WjD.js.map +0 -1
  361. package/dist/theme.interface-Xg5Zi46a.cjs +0 -2
  362. package/dist/theme.interface-Xg5Zi46a.cjs.map +0 -1
@@ -1,4 +1,4 @@
1
- "use strict";const o=require("rxjs");require("lit/directives/class-map.js"),require("lit/directives/style-map.js");const a=require("lit/decorators.js");require("./tailwind.mixin-BiRVB4Hl.cjs");const v=require("./litElement.mixin-BlkckXzw.cjs"),l=require("lit"),u=require("lit/directives/when.js"),c=require("rxjs/operators");var b=Object.defineProperty,y=Object.getOwnPropertyDescriptor,r=(t,e,i,n)=>{for(var p,s=n>1?void 0:n?y(e,i):e,d=t.length-1;d>=0;d--)(p=t[d])&&(s=(n?p(e,i,s):p(s))||s);return n&&s&&b(e,i,s),s};exports.SchmancyNavigationRailItem=class extends v.$LitElement(l.css`
1
+ "use strict";const s=require("rxjs");require("lit/directives/class-map.js"),require("lit/directives/style-map.js");const a=require("lit/decorators.js");require("./tailwind.mixin-CFrLBtkD.cjs");const m=require("./litElement.mixin-DUiUa087.cjs"),l=require("lit"),v=require("lit/directives/when.js"),c=require("rxjs/operators");var y=Object.defineProperty,u=Object.getOwnPropertyDescriptor,r=(t,e,i,o)=>{for(var h,n=o>1?void 0:o?u(e,i):e,d=t.length-1;d>=0;d--)(h=t[d])&&(n=(o?h(e,i,n):h(n))||n);return o&&n&&y(e,i,n),n};exports.SchmancyNavigationRailItem=class extends m.$LitElement(l.css`
2
2
  :host {
3
3
  display: block;
4
4
  position: relative;
@@ -15,13 +15,14 @@
15
15
  justify-content: center;
16
16
  min-height: var(--rail-item-height);
17
17
  width: 100%;
18
- border-radius: 16px;
18
+ /* M3 shape: large for navigation rail items */
19
+ border-radius: var(--schmancy-sys-shape-corner-large);
19
20
  cursor: pointer;
20
21
  position: relative;
21
22
  box-sizing: border-box;
22
23
  color: var(--schmancy-sys-color-surface-onVariant);
23
24
  user-select: none;
24
- transition: all 0.2s cubic-bezier(0.4, 0, 0.2, 1);
25
+ transition: all var(--schmancy-sys-motion-duration-short3) var(--schmancy-sys-motion-easing-emphasized);
25
26
  padding: 12px 0;
26
27
  gap: 4px;
27
28
  }
@@ -49,9 +50,10 @@
49
50
  transform: translate(-50%, -50%) scale(0);
50
51
  width: 56px;
51
52
  height: 32px;
52
- border-radius: 16px;
53
+ /* M3 shape: large for active indicators */
54
+ border-radius: var(--schmancy-sys-shape-corner-large);
53
55
  background-color: var(--schmancy-sys-color-secondary-container);
54
- transition: transform 0.2s cubic-bezier(0.4, 0, 0.2, 1);
56
+ transition: transform var(--schmancy-sys-motion-duration-short3) var(--schmancy-sys-motion-easing-emphasized);
55
57
  z-index: 0;
56
58
  }
57
59
 
@@ -124,7 +126,8 @@
124
126
  right: 12px;
125
127
  min-width: 16px;
126
128
  height: 16px;
127
- border-radius: 8px;
129
+ /* M3 shape: small for badges */
130
+ border-radius: var(--schmancy-sys-shape-corner-small);
128
131
  background-color: var(--schmancy-sys-color-error-default);
129
132
  color: var(--schmancy-sys-color-error-on);
130
133
  font-size: 11px;
@@ -159,7 +162,7 @@
159
162
  opacity: 0.38;
160
163
  }
161
164
 
162
- /* Ripple effect */
165
+ /* Ripple effect with M3 motion */
163
166
  .ripple {
164
167
  position: absolute;
165
168
  top: 0;
@@ -182,13 +185,15 @@
182
185
  background: currentColor;
183
186
  opacity: 0;
184
187
  transform: translate(-50%, -50%);
185
- transition: width 0.6s, height 0.6s, opacity 0.6s;
188
+ /* M3 motion: medium duration for ripple effect */
189
+ transition: width var(--schmancy-sys-motion-duration-medium2), height var(--schmancy-sys-motion-duration-medium2), opacity var(--schmancy-sys-motion-duration-medium2);
186
190
  }
187
191
 
188
192
  :host(:active) .ripple::before {
189
193
  width: 200%;
190
194
  height: 200%;
191
- opacity: 0.12;
195
+ /* M3 pressed state opacity */
196
+ opacity: var(--schmancy-sys-state-pressed-opacity);
192
197
  }
193
198
 
194
199
  /* Tooltip styles (shown via title attribute) */
@@ -201,12 +206,13 @@
201
206
  background: var(--schmancy-sys-color-inverseSurface);
202
207
  color: var(--schmancy-sys-color-inverseOnSurface);
203
208
  padding: 4px 8px;
204
- border-radius: 4px;
209
+ /* M3 shape: extra small for tooltips */
210
+ border-radius: var(--schmancy-sys-shape-corner-extraSmall);
205
211
  font-size: 12px;
206
212
  white-space: nowrap;
207
213
  z-index: 1000;
208
214
  pointer-events: none;
209
- animation: tooltip-fade-in 0.2s ease;
215
+ animation: tooltip-fade-in var(--schmancy-sys-motion-duration-short3) var(--schmancy-sys-motion-easing-standard);
210
216
  }
211
217
 
212
218
  @keyframes tooltip-fade-in {
@@ -235,30 +241,30 @@
235
241
  background: var(--schmancy-sys-color-outlineVariant);
236
242
  opacity: 0.12;
237
243
  }
238
- `){constructor(){super(...arguments),this.hovering$=new o.BehaviorSubject(!1),this.pressing$=new o.BehaviorSubject(!1),this.active$=new o.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(t){this.active$.next(t)}get selected(){return this.active}set selected(t){this.active=t}connectedCallback(){super.connectedCallback(),o.merge(o.fromEvent(this,"mouseenter").pipe(c.tap(()=>this.hovering$.next(!0))),o.fromEvent(this,"mouseleave").pipe(c.tap(()=>this.hovering$.next(!1)))).pipe(o.takeUntil(this.disconnecting)).subscribe(),o.merge(o.fromEvent(this,"mousedown").pipe(c.tap(()=>this.pressing$.next(!0))),o.fromEvent(this,"mouseup").pipe(c.tap(()=>this.pressing$.next(!1))),o.fromEvent(this,"mouseleave").pipe(c.tap(()=>this.pressing$.next(!1)))).pipe(o.takeUntil(this.disconnecting)).subscribe(),this.pressing$.pipe(c.tap(t=>{t&&!this.disabled&&(this.showRipple=!0)}),c.delay(600),c.tap(()=>this.showRipple=!1),o.takeUntil(this.disconnecting)).subscribe(),this.active$.pipe(c.distinctUntilChanged(),c.tap(t=>{this.requestUpdate(),this.setAttribute("aria-selected",String(t)),this.setAttribute("tabindex",t?"0":"-1")}),o.takeUntil(this.disconnecting)).subscribe(),this.setAttribute("role","listitem"),this.hasAttribute("tabindex")||this.setAttribute("tabindex",this.active?"0":"-1")}updated(t){super.updated(t),t.has("disabled")&&this.setAttribute("aria-disabled",String(this.disabled)),t.has("label")&&this.setAttribute("aria-label",this.label)}handleClick(t){if(this.disabled)return t.preventDefault(),void t.stopPropagation();this.dispatchEvent(new CustomEvent("navigate",{detail:this.value||this.label,bubbles:!0,composed:!0}))}handleKeyDown(t){this.disabled||t.key!=="Enter"&&t.key!==" "||(t.preventDefault(),this.click())}render(){const t=this.querySelector('[slot="icon"]'),e=this.querySelector(":not([slot])"),i=this.querySelector('[slot="badge"]'),n={container:!0,rippling:this.showRipple},p={"background-color":`var(--schmancy-sys-color-${this.badgeVariant}-default)`,color:`var(--schmancy-sys-color-${this.badgeVariant}-on)`};return l.html`
244
+ `){constructor(){super(...arguments),this.hovering$=new s.BehaviorSubject(!1),this.pressing$=new s.BehaviorSubject(!1),this.active$=new s.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(t){this.active$.next(t)}get selected(){return this.active}set selected(t){this.active=t}connectedCallback(){super.connectedCallback(),s.merge(s.fromEvent(this,"mouseenter").pipe(c.tap(()=>this.hovering$.next(!0))),s.fromEvent(this,"mouseleave").pipe(c.tap(()=>this.hovering$.next(!1)))).pipe(s.takeUntil(this.disconnecting)).subscribe(),s.merge(s.fromEvent(this,"mousedown").pipe(c.tap(()=>this.pressing$.next(!0))),s.fromEvent(this,"mouseup").pipe(c.tap(()=>this.pressing$.next(!1))),s.fromEvent(this,"mouseleave").pipe(c.tap(()=>this.pressing$.next(!1)))).pipe(s.takeUntil(this.disconnecting)).subscribe(),this.pressing$.pipe(c.tap(t=>{t&&!this.disabled&&(this.showRipple=!0)}),c.delay(600),c.tap(()=>this.showRipple=!1),s.takeUntil(this.disconnecting)).subscribe(),this.active$.pipe(c.distinctUntilChanged(),c.tap(t=>{this.requestUpdate(),this.setAttribute("aria-selected",String(t)),this.setAttribute("tabindex",t?"0":"-1")}),s.takeUntil(this.disconnecting)).subscribe(),this.setAttribute("role","listitem"),this.hasAttribute("tabindex")||this.setAttribute("tabindex",this.active?"0":"-1")}updated(t){super.updated(t),t.has("disabled")&&this.setAttribute("aria-disabled",String(this.disabled)),t.has("label")&&this.setAttribute("aria-label",this.label)}handleClick(t){if(this.disabled)return t.preventDefault(),void t.stopPropagation();this.dispatchEvent(new CustomEvent("navigate",{detail:this.value||this.label,bubbles:!0,composed:!0}))}handleKeyDown(t){this.disabled||t.key!=="Enter"&&t.key!==" "||(t.preventDefault(),this.click())}render(){const t=this.querySelector('[slot="icon"]'),e=this.querySelector(":not([slot])"),i=this.querySelector('[slot="badge"]'),o={container:!0,rippling:this.showRipple},h={"background-color":`var(--schmancy-sys-color-${this.badgeVariant}-default)`,color:`var(--schmancy-sys-color-${this.badgeVariant}-on)`};return l.html`
239
245
  <div
240
- class=${this.classMap(n)}
246
+ class=${this.classMap(o)}
241
247
  part="container"
242
248
  @click=${this.handleClick}
243
249
  @keydown=${this.handleKeyDown}
244
250
  >
245
251
  <span class="ripple" aria-hidden="true"></span>
246
252
 
247
- ${u.when(e,()=>l.html`<slot></slot>`,()=>l.html`
253
+ ${v.when(e,()=>l.html`<slot></slot>`,()=>l.html`
248
254
  <div class="icon-container" part="icon">
249
255
  <span class="indicator" part="indicator" aria-hidden="true"></span>
250
- ${u.when(t,()=>l.html`<slot name="icon"></slot>`,()=>u.when(this.icon,()=>l.html`<span class="icon">${this.icon}</span>`))}
256
+ ${v.when(t,()=>l.html`<slot name="icon"></slot>`,()=>v.when(this.icon,()=>l.html`<span class="icon">${this.icon}</span>`))}
251
257
  </div>
252
258
 
253
- ${u.when(this.label,()=>l.html`<span class="label" part="label">${this.label}</span>`)}
259
+ ${v.when(this.label,()=>l.html`<span class="label" part="label">${this.label}</span>`)}
254
260
  `)}
255
261
 
256
- ${u.when(this.badge,()=>l.html`
257
- ${u.when(i,()=>l.html`<slot name="badge"></slot>`,()=>l.html`
262
+ ${v.when(this.badge,()=>l.html`
263
+ ${v.when(i,()=>l.html`<slot name="badge"></slot>`,()=>l.html`
258
264
  <span
259
265
  class="badge"
260
266
  part="badge"
261
- style=${this.styleMap(p)}
267
+ style=${this.styleMap(h)}
262
268
  aria-label="${this.badge} notifications"
263
269
  >
264
270
  ${this.badge}
@@ -266,27 +272,54 @@
266
272
  `)}
267
273
  `)}
268
274
  </div>
269
- `}},r([a.property({type:String})],exports.SchmancyNavigationRailItem.prototype,"icon",2),r([a.property({type:String})],exports.SchmancyNavigationRailItem.prototype,"label",2),r([a.property({type:String})],exports.SchmancyNavigationRailItem.prototype,"value",2),r([a.property({type:Boolean,reflect:!0})],exports.SchmancyNavigationRailItem.prototype,"active",1),r([a.property({type:Boolean,reflect:!0})],exports.SchmancyNavigationRailItem.prototype,"selected",1),r([a.property({type:String})],exports.SchmancyNavigationRailItem.prototype,"badge",2),r([a.property({type:String})],exports.SchmancyNavigationRailItem.prototype,"badgeVariant",2),r([a.property({type:Boolean,attribute:"show-label"})],exports.SchmancyNavigationRailItem.prototype,"showLabel",2),r([a.property({type:Boolean,reflect:!0})],exports.SchmancyNavigationRailItem.prototype,"disabled",2),r([a.property({type:Boolean,reflect:!0})],exports.SchmancyNavigationRailItem.prototype,"nested",2),r([a.property({type:Boolean,reflect:!0})],exports.SchmancyNavigationRailItem.prototype,"group",2),r([a.state()],exports.SchmancyNavigationRailItem.prototype,"showRipple",2),exports.SchmancyNavigationRailItem=r([a.customElement("schmancy-navigation-rail-item")],exports.SchmancyNavigationRailItem);var g=Object.defineProperty,m=Object.getOwnPropertyDescriptor,h=(t,e,i,n)=>{for(var p,s=n>1?void 0:n?m(e,i):e,d=t.length-1;d>=0;d--)(p=t[d])&&(s=(n?p(e,i,s):p(s))||s);return n&&s&&g(e,i,s),s};exports.SchmancyNavigationRail=class extends v.$LitElement(l.css`
275
+ `}},r([a.property({type:String})],exports.SchmancyNavigationRailItem.prototype,"icon",2),r([a.property({type:String})],exports.SchmancyNavigationRailItem.prototype,"label",2),r([a.property({type:String})],exports.SchmancyNavigationRailItem.prototype,"value",2),r([a.property({type:Boolean,reflect:!0})],exports.SchmancyNavigationRailItem.prototype,"active",1),r([a.property({type:Boolean,reflect:!0})],exports.SchmancyNavigationRailItem.prototype,"selected",1),r([a.property({type:String})],exports.SchmancyNavigationRailItem.prototype,"badge",2),r([a.property({type:String})],exports.SchmancyNavigationRailItem.prototype,"badgeVariant",2),r([a.property({type:Boolean,attribute:"show-label"})],exports.SchmancyNavigationRailItem.prototype,"showLabel",2),r([a.property({type:Boolean,reflect:!0})],exports.SchmancyNavigationRailItem.prototype,"disabled",2),r([a.property({type:Boolean,reflect:!0})],exports.SchmancyNavigationRailItem.prototype,"nested",2),r([a.property({type:Boolean,reflect:!0})],exports.SchmancyNavigationRailItem.prototype,"group",2),r([a.state()],exports.SchmancyNavigationRailItem.prototype,"showRipple",2),exports.SchmancyNavigationRailItem=r([a.customElement("schmancy-navigation-rail-item")],exports.SchmancyNavigationRailItem);var b=Object.defineProperty,g=Object.getOwnPropertyDescriptor,p=(t,e,i,o)=>{for(var h,n=o>1?void 0:o?g(e,i):e,d=t.length-1;d>=0;d--)(h=t[d])&&(n=(o?h(e,i,n):h(n))||n);return o&&n&&b(e,i,n),n};exports.SchmancyNavigationRail=class extends m.$LitElement(l.css`
270
276
  :host {
271
277
  display: flex;
272
278
  flex-direction: column;
273
- width: 80px;
279
+ width: 80px; /* Fixed width - never changes to prevent layout shift */
274
280
  height: 100%;
275
- background-color: var(--schmancy-sys-color-surface-container);
276
- color: var(--schmancy-sys-color-surface-on);
277
281
  box-sizing: border-box;
278
282
  position: relative;
279
283
  overflow: visible;
284
+ z-index: 1; /* Base z-index */
285
+ }
286
+
287
+ /* Hover state: elevate and show expanded content */
288
+ :host(:hover) {
289
+ z-index: 100; /* Higher z-index to overlay content */
280
290
  }
281
291
 
282
- /* Rail container */
292
+ /* Rail container - this is what expands */
283
293
  .rail {
284
294
  display: flex;
285
295
  flex-direction: column;
286
296
  height: 100%;
297
+ width: 80px; /* Base width */
287
298
  padding: 8px 12px;
288
299
  gap: 4px;
289
300
  box-sizing: border-box;
301
+ background-color: var(--schmancy-sys-color-surface-default);
302
+ color: var(--schmancy-sys-color-surface-on);
303
+ position: relative;
304
+ /* M3 motion: smooth transition for width and shadow */
305
+ transition:
306
+ width 300ms cubic-bezier(0.2, 0, 0, 1),
307
+ box-shadow 300ms cubic-bezier(0.2, 0, 0, 1);
308
+ }
309
+
310
+ /* Hover state: expand rail with shadow to show overlay */
311
+ :host(:hover) .rail {
312
+ width: 240px;
313
+ /* M3 elevation 3 shadow for overlay effect */
314
+ box-shadow:
315
+ 0px 6px 10px 0px rgba(0, 0, 0, 0.14),
316
+ 0px 1px 18px 0px rgba(0, 0, 0, 0.12),
317
+ 0px 3px 5px -1px rgba(0, 0, 0, 0.2);
318
+ }
319
+
320
+ /* Force label visibility when hovered */
321
+ :host(:hover) ::slotted(schmancy-navigation-rail-item) {
322
+ --rail-item-show-label: flex !important;
290
323
  }
291
324
 
292
325
  /* Header section */
@@ -307,7 +340,7 @@
307
340
  overflow-y: auto;
308
341
  overflow-x: hidden;
309
342
  scrollbar-width: thin;
310
- scrollbar-color: var(--schmancy-sys-color-surface-onVariant) transparent;
343
+ scrollbar-color: var(--schmancy-sys-color-outlineVariant) transparent;
311
344
  }
312
345
 
313
346
  .nav::-webkit-scrollbar {
@@ -319,7 +352,7 @@
319
352
  }
320
353
 
321
354
  .nav::-webkit-scrollbar-thumb {
322
- background-color: var(--schmancy-sys-color-surface-onVariant);
355
+ background-color: var(--schmancy-sys-color-outlineVariant);
323
356
  border-radius: 2px;
324
357
  opacity: 0.5;
325
358
  }
@@ -335,44 +368,43 @@
335
368
  }
336
369
 
337
370
  /* FAB styles */
338
- ::slotted([slot="fab"]) {
371
+ ::slotted([slot='fab']) {
339
372
  margin-bottom: 8px;
340
373
  }
341
374
 
342
375
  /* Menu button styles */
343
- ::slotted([slot="menu"]) {
376
+ ::slotted([slot='menu']) {
344
377
  margin-bottom: 12px;
345
378
  }
346
379
 
347
380
  /* Alignment variants */
348
- :host([alignment="top"]) .nav {
381
+ :host([alignment='top']) .nav {
349
382
  justify-content: flex-start;
350
383
  }
351
384
 
352
- :host([alignment="center"]) .nav {
385
+ :host([alignment='center']) .nav {
353
386
  justify-content: center;
354
387
  }
355
388
 
356
- :host([alignment="bottom"]) .nav {
389
+ :host([alignment='bottom']) .nav {
357
390
  justify-content: flex-end;
358
391
  }
359
392
 
360
393
  /* Label visibility states */
361
- :host([label-visibility="none"]) ::slotted(schmancy-navigation-rail-item) {
394
+ :host([label-visibility='none']) ::slotted(schmancy-navigation-rail-item) {
362
395
  --rail-item-show-label: none;
363
396
  }
364
397
 
365
- :host([label-visibility="selected"]) ::slotted(schmancy-navigation-rail-item:not([active])) {
398
+ :host([label-visibility='selected']) ::slotted(schmancy-navigation-rail-item:not([active])) {
366
399
  --rail-item-show-label: none;
367
400
  }
368
401
 
369
-
370
402
  /* Group header styles */
371
403
  ::slotted(.group-header) {
372
404
  padding: 8px 12px;
373
405
  font-size: 12px;
374
406
  font-weight: 500;
375
- color: var(--schmancy-sys-color-surface-onVariant);
407
+ color: var(--schmancy-sys-color-outline);
376
408
  text-transform: uppercase;
377
409
  letter-spacing: 0.1em;
378
410
  white-space: nowrap;
@@ -388,14 +420,20 @@
388
420
  /* Responsive behavior */
389
421
  @media (max-width: 768px) {
390
422
  :host {
391
- width: 56px;
423
+ width: 56px; /* Smaller fixed width on mobile */
392
424
  }
393
425
 
394
426
  .rail {
427
+ width: 56px; /* Match host width */
395
428
  padding: 8px;
396
429
  }
430
+
431
+ /* On mobile, expand to a smaller width */
432
+ :host(:hover) .rail {
433
+ width: 200px;
434
+ }
397
435
  }
398
- `){constructor(){super(...arguments),this.activeIndex$=new o.BehaviorSubject(-1),this._activeValue="",this.labelVisibility="all",this.alignment="top",this.showTooltips=!0,this.keyboardNavigation=!0,this.focusedIndex=-1}get activeIndex(){return this.activeIndex$.value}set activeIndex(t){this.activeIndex$.next(t)}get activeValue(){return this._activeValue}set activeValue(t){this._activeValue=t,this.updateActiveByValue(t)}get navigationItems(){return this.allElements.filter(t=>t.tagName==="SCHMANCY-NAVIGATION-RAIL-ITEM")}connectedCallback(){super.connectedCallback(),this.keyboardNavigation&&this.addEventListener("keydown",this.handleKeyDown),this.activeIndex$.pipe(c.distinctUntilChanged(),c.tap(t=>this.updateActiveStates(t)),o.takeUntil(this.disconnecting)).subscribe(),this.setupNavigateListener(),this.updateLabelVisibility(),this.setAttribute("role","navigation"),this.setAttribute("aria-label","Main navigation")}updated(t){super.updated(t),t.has("labelVisibility")&&this.updateLabelVisibility(),t.has("activeValue")&&this.updateActiveByValue(this.activeValue)}updateActiveStates(t){this.navigationItems.forEach((e,i)=>{const n=i===t;e.active=n,e.setAttribute("aria-selected",String(n)),e.setAttribute("tabindex",n?"0":"-1"),n&&(this._activeValue=e.value||e.label||"")})}updateActiveByValue(t){const e=this.navigationItems.findIndex(i=>i.getAttribute("value")===t||i.label===t);e>=0&&(this.activeIndex=e)}updateLabelVisibility(){this.navigationItems.forEach((t,e)=>{const i=this.labelVisibility==="all"||this.labelVisibility==="selected"&&e===this.activeIndex;t.showLabel=i,this.showTooltips&&!i&&t.label?t.setAttribute("title",t.label):t.removeAttribute("title")})}handleKeyDown(t){const e=this.navigationItems;if(e.length===0)return;let i=this.focusedIndex>=0?this.focusedIndex:this.activeIndex;switch(t.key){case"ArrowDown":t.preventDefault(),i=(i+1)%e.length;break;case"ArrowUp":t.preventDefault(),i=i<=0?e.length-1:i-1;break;case"Home":t.preventDefault(),i=0;break;case"End":t.preventDefault(),i=e.length-1;break;case"Enter":case" ":return t.preventDefault(),void(i>=0&&e[i].click());default:return}this.focusedIndex=i,e[i].focus()}handleFabClick(t){t.stopPropagation(),this.dispatchEvent(new CustomEvent("fab-click",{bubbles:!0,composed:!0}))}handleMenuClick(t){t.stopPropagation(),this.dispatchEvent(new CustomEvent("menu-click",{bubbles:!0,composed:!0}))}render(){return l.html`
436
+ `){constructor(){super(...arguments),this.activeIndex$=new s.BehaviorSubject(-1),this._activeValue="",this.labelVisibility="all",this.alignment="top",this.showTooltips=!0,this.keyboardNavigation=!0,this.focusedIndex=-1}get activeIndex(){return this.activeIndex$.value}set activeIndex(t){this.activeIndex$.next(t)}get activeValue(){return this._activeValue}set activeValue(t){this._activeValue=t,this.updateActiveByValue(t)}get navigationItems(){return this.allElements.filter(t=>t.tagName==="SCHMANCY-NAVIGATION-RAIL-ITEM")}connectedCallback(){super.connectedCallback(),this.keyboardNavigation&&this.addEventListener("keydown",this.handleKeyDown),this.activeIndex$.pipe(c.distinctUntilChanged(),c.tap(t=>this.updateActiveStates(t)),s.takeUntil(this.disconnecting)).subscribe(),this.setupNavigateListener(),this.updateLabelVisibility(),this.setAttribute("role","navigation"),this.setAttribute("aria-label","Main navigation")}updated(t){super.updated(t),t.has("labelVisibility")&&this.updateLabelVisibility(),t.has("activeValue")&&this.updateActiveByValue(this.activeValue)}updateActiveStates(t){this.navigationItems.forEach((e,i)=>{const o=i===t;e.active=o,e.setAttribute("aria-selected",String(o)),e.setAttribute("tabindex",o?"0":"-1"),o&&(this._activeValue=e.value||e.label||"")})}updateActiveByValue(t){const e=this.navigationItems.findIndex(i=>i.getAttribute("value")===t||i.label===t);e>=0&&(this.activeIndex=e)}updateLabelVisibility(){this.navigationItems.forEach((t,e)=>{const i=this.labelVisibility==="all"||this.labelVisibility==="selected"&&e===this.activeIndex;t.showLabel=i,this.showTooltips&&!i&&t.label?t.setAttribute("title",t.label):t.removeAttribute("title")})}handleKeyDown(t){const e=this.navigationItems;if(e.length===0)return;let i=this.focusedIndex>=0?this.focusedIndex:this.activeIndex;switch(t.key){case"ArrowDown":t.preventDefault(),i=(i+1)%e.length;break;case"ArrowUp":t.preventDefault(),i=i<=0?e.length-1:i-1;break;case"Home":t.preventDefault(),i=0;break;case"End":t.preventDefault(),i=e.length-1;break;case"Enter":case" ":return t.preventDefault(),void(i>=0&&e[i].click());default:return}this.focusedIndex=i,e[i].focus()}handleFabClick(t){t.stopPropagation(),this.dispatchEvent(new CustomEvent("fab-click",{bubbles:!0,composed:!0}))}handleMenuClick(t){t.stopPropagation(),this.dispatchEvent(new CustomEvent("menu-click",{bubbles:!0,composed:!0}))}render(){return l.html`
399
437
  <div class="rail" part="rail">
400
438
  <div class="header" part="header">
401
439
  <slot name="fab" @click=${this.handleFabClick}></slot>
@@ -411,5 +449,5 @@
411
449
  <slot name="footer"></slot>
412
450
  </div>
413
451
  </div>
414
- `}setupNavigateListener(){this.addEventListener("navigate",t=>{if(t instanceof CustomEvent){const e=t.detail,i=this.navigationItems.findIndex(n=>n.value===e||n.label===e);i>=0&&(this.activeIndex=i,this._activeValue=e)}})}handleSlotChange(){this.updateLabelVisibility(),this.updateActiveStates(this.activeIndex),this.navigationItems.forEach((t,e)=>{t.setAttribute("role","listitem"),t.hasAttribute("tabindex")||t.setAttribute("tabindex",e===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.state()],exports.SchmancyNavigationRail.prototype,"focusedIndex",2),h([a.queryAssignedElements({flatten:!0})],exports.SchmancyNavigationRail.prototype,"allElements",2),exports.SchmancyNavigationRail=h([a.customElement("schmancy-navigation-rail")],exports.SchmancyNavigationRail);
415
- //# sourceMappingURL=navigation-rail-CO20kIzL.cjs.map
452
+ `}setupNavigateListener(){this.addEventListener("navigate",t=>{if(t instanceof CustomEvent){const e=t.detail,i=this.navigationItems.findIndex(o=>o.value===e||o.label===e);i>=0&&(this.activeIndex=i,this._activeValue=e)}})}handleSlotChange(){this.updateLabelVisibility(),this.updateActiveStates(this.activeIndex),this.navigationItems.forEach((t,e)=>{t.setAttribute("role","listitem"),t.hasAttribute("tabindex")||t.setAttribute("tabindex",e===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.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);
453
+ //# sourceMappingURL=navigation-rail-BzMOzaFm.cjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"navigation-rail-BzMOzaFm.cjs","sources":["../src/navigation-rail/navigation-rail-item.ts","../src/navigation-rail/navigation-rail.ts"],"sourcesContent":["import { $LitElement } from '@mixins/index'\r\nimport { css, 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 { tap, delay, distinctUntilChanged } 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(css`\r\n\t:host {\r\n\t\tdisplay: block;\r\n\t\tposition: relative;\r\n\t\toutline: none;\r\n\t\t--rail-item-height: 56px;\r\n\t\t--rail-item-icon-size: 24px;\r\n\t\t--rail-item-show-label: block;\r\n\t}\r\n\r\n\t.container {\r\n\t\tdisplay: flex;\r\n\t\tflex-direction: column;\r\n\t\talign-items: center;\r\n\t\tjustify-content: center;\r\n\t\tmin-height: var(--rail-item-height);\r\n\t\twidth: 100%;\r\n\t\t/* M3 shape: large for navigation rail items */\r\n\t\tborder-radius: var(--schmancy-sys-shape-corner-large);\r\n\t\tcursor: pointer;\r\n\t\tposition: relative;\r\n\t\tbox-sizing: border-box;\r\n\t\tcolor: var(--schmancy-sys-color-surface-onVariant);\r\n\t\tuser-select: none;\r\n\t\ttransition: all var(--schmancy-sys-motion-duration-short3) var(--schmancy-sys-motion-easing-emphasized);\r\n\t\tpadding: 12px 0;\r\n\t\tgap: 4px;\r\n\t}\r\n\r\n\t/* Hover state */\r\n\t.container:hover {\r\n\t\tbackground-color: var(--schmancy-sys-color-surface-highest);\r\n\t}\r\n\r\n\t/* Focus state */\r\n\t:host(:focus-visible) .container {\r\n\t\toutline: 2px solid var(--schmancy-sys-color-primary-default);\r\n\t\toutline-offset: 2px;\r\n\t}\r\n\r\n\t/* Active indicator - positioned behind icon only */\r\n\t.icon-container {\r\n\t\tposition: relative;\r\n\t}\r\n\r\n\t.indicator {\r\n\t\tposition: absolute;\r\n\t\ttop: 50%;\r\n\t\tleft: 50%;\r\n\t\ttransform: translate(-50%, -50%) scale(0);\r\n\t\twidth: 56px;\r\n\t\theight: 32px;\r\n\t\t/* M3 shape: large for active indicators */\r\n\t\tborder-radius: var(--schmancy-sys-shape-corner-large);\r\n\t\tbackground-color: var(--schmancy-sys-color-secondary-container);\r\n\t\ttransition: transform var(--schmancy-sys-motion-duration-short3) var(--schmancy-sys-motion-easing-emphasized);\r\n\t\tz-index: 0;\r\n\t}\r\n\r\n\t:host([active]) .indicator,\r\n\t:host([selected]) .indicator {\r\n\t\ttransform: translate(-50%, -50%) scale(1);\r\n\t}\r\n\r\n\t:host([active]) .container,\r\n\t:host([selected]) .container {\r\n\t\tcolor: var(--schmancy-sys-color-secondary-onContainer);\r\n\t}\r\n\r\n\r\n\t/* Icon styles */\r\n\t.icon-container {\r\n\t\tdisplay: flex;\r\n\t\talign-items: center;\r\n\t\tjustify-content: center;\r\n\t\twidth: auto;\r\n\t\tmin-width: 56px;\r\n\t\theight: 32px;\r\n\t\tflex-shrink: 0;\r\n\t\tposition: relative;\r\n\t\tz-index: 1;\r\n\t}\r\n\r\n\t.icon {\r\n\t\tfont-family: 'Material Symbols Outlined';\r\n\t\tfont-size: var(--rail-item-icon-size);\r\n\t\tline-height: 1;\r\n\t\tposition: relative;\r\n\t\tz-index: 1;\r\n\t\tfont-variation-settings:\r\n\t\t\t'FILL' 0,\r\n\t\t\t'wght' 400,\r\n\t\t\t'GRAD' 0,\r\n\t\t\t'opsz' 24;\r\n\t}\r\n\r\n\t:host([active]) .icon,\r\n\t:host([selected]) .icon {\r\n\t\tfont-variation-settings:\r\n\t\t\t'FILL' 1,\r\n\t\t\t'wght' 400,\r\n\t\t\t'GRAD' 0,\r\n\t\t\t'opsz' 24;\r\n\t}\r\n\r\n\t/* Label styles */\r\n\t.label {\r\n\t\tfont-size: 12px;\r\n\t\tfont-weight: 500;\r\n\t\tline-height: 16px;\r\n\t\ttext-align: center;\r\n\t\toverflow: hidden;\r\n\t\ttext-overflow: ellipsis;\r\n\t\twhite-space: nowrap;\r\n\t\tz-index: 1;\r\n\t\tdisplay: var(--rail-item-show-label, block);\r\n\t\tmax-width: 56px;\r\n\t\tpadding: 0 4px;\r\n\t}\r\n\r\n\r\n\t/* Badge styles */\r\n\t.badge {\r\n\t\tposition: absolute;\r\n\t\ttop: 8px;\r\n\t\tright: 12px;\r\n\t\tmin-width: 16px;\r\n\t\theight: 16px;\r\n\t\t/* M3 shape: small for badges */\r\n\t\tborder-radius: var(--schmancy-sys-shape-corner-small);\r\n\t\tbackground-color: var(--schmancy-sys-color-error-default);\r\n\t\tcolor: var(--schmancy-sys-color-error-on);\r\n\t\tfont-size: 11px;\r\n\t\tfont-weight: 600;\r\n\t\tdisplay: flex;\r\n\t\talign-items: center;\r\n\t\tjustify-content: center;\r\n\t\tpadding: 0 4px;\r\n\t\tbox-sizing: border-box;\r\n\t\tz-index: 2;\r\n\t\tanimation: badge-pulse 2s infinite;\r\n\t}\r\n\r\n\t@keyframes badge-pulse {\r\n\t\t0%, 100% { transform: scale(1); }\r\n\t\t50% { transform: scale(1.1); }\r\n\t}\r\n\r\n\t/* Nested items (for sub-navigation) */\r\n\t:host([nested]) {\r\n\t\t--rail-item-height: 48px;\r\n\t\t--rail-item-icon-size: 20px;\r\n\t}\r\n\r\n\t:host([nested]) .container {\r\n\t\tpadding-left: 32px;\r\n\t}\r\n\r\n\t/* Disabled state */\r\n\t:host([disabled]) {\r\n\t\tpointer-events: none;\r\n\t\topacity: 0.38;\r\n\t}\r\n\r\n\t/* Ripple effect with M3 motion */\r\n\t.ripple {\r\n\t\tposition: absolute;\r\n\t\ttop: 0;\r\n\t\tleft: 0;\r\n\t\tright: 0;\r\n\t\tbottom: 0;\r\n\t\tborder-radius: inherit;\r\n\t\toverflow: hidden;\r\n\t\tz-index: 0;\r\n\t}\r\n\r\n\t.ripple::before {\r\n\t\tcontent: '';\r\n\t\tposition: absolute;\r\n\t\ttop: 50%;\r\n\t\tleft: 50%;\r\n\t\twidth: 0;\r\n\t\theight: 0;\r\n\t\tborder-radius: 50%;\r\n\t\tbackground: currentColor;\r\n\t\topacity: 0;\r\n\t\ttransform: translate(-50%, -50%);\r\n\t\t/* M3 motion: medium duration for ripple effect */\r\n\t\ttransition: width var(--schmancy-sys-motion-duration-medium2), height var(--schmancy-sys-motion-duration-medium2), opacity var(--schmancy-sys-motion-duration-medium2);\r\n\t}\r\n\r\n\t:host(:active) .ripple::before {\r\n\t\twidth: 200%;\r\n\t\theight: 200%;\r\n\t\t/* M3 pressed state opacity */\r\n\t\topacity: var(--schmancy-sys-state-pressed-opacity);\r\n\t}\r\n\r\n\t/* Tooltip styles (shown via title attribute) */\r\n\t:host([title]:hover)::after {\r\n\t\tcontent: attr(title);\r\n\t\tposition: absolute;\r\n\t\tleft: calc(100% + 8px);\r\n\t\ttop: 50%;\r\n\t\ttransform: translateY(-50%);\r\n\t\tbackground: var(--schmancy-sys-color-inverseSurface);\r\n\t\tcolor: var(--schmancy-sys-color-inverseOnSurface);\r\n\t\tpadding: 4px 8px;\r\n\t\t/* M3 shape: extra small for tooltips */\r\n\t\tborder-radius: var(--schmancy-sys-shape-corner-extraSmall);\r\n\t\tfont-size: 12px;\r\n\t\twhite-space: nowrap;\r\n\t\tz-index: 1000;\r\n\t\tpointer-events: none;\r\n\t\tanimation: tooltip-fade-in var(--schmancy-sys-motion-duration-short3) var(--schmancy-sys-motion-easing-standard);\r\n\t}\r\n\r\n\t@keyframes tooltip-fade-in {\r\n\t\tfrom {\r\n\t\t\topacity: 0;\r\n\t\t\ttransform: translateY(-50%) translateX(-4px);\r\n\t\t}\r\n\t\tto {\r\n\t\t\topacity: 1;\r\n\t\t\ttransform: translateY(-50%) translateX(0);\r\n\t\t}\r\n\t}\r\n\r\n\t/* Group item styles */\r\n\t:host([group]) {\r\n\t\tmargin-bottom: 8px;\r\n\t}\r\n\r\n\t:host([group])::after {\r\n\t\tcontent: '';\r\n\t\tposition: absolute;\r\n\t\tbottom: -4px;\r\n\t\tleft: 12px;\r\n\t\tright: 12px;\r\n\t\theight: 1px;\r\n\t\tbackground: var(--schmancy-sys-color-outlineVariant);\r\n\t\topacity: 0.12;\r\n\t}\r\n`) {\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\tconst containerClasses = {\r\n\t\t\tcontainer: true,\r\n\t\t\trippling: this.showRipple\r\n\t\t}\r\n\r\n\t\tconst badgeStyles = {\r\n\t\t\t'background-color': `var(--schmancy-sys-color-${this.badgeVariant}-default)`,\r\n\t\t\t'color': `var(--schmancy-sys-color-${this.badgeVariant}-on)`\r\n\t\t}\r\n\r\n\t\treturn html`\r\n\t\t\t<div\r\n\t\t\t\tclass=${this.classMap(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>\r\n\t\t\t\t<span class=\"ripple\" 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=\"icon-container\" part=\"icon\">\r\n\t\t\t\t\t\t\t<span class=\"indicator\" 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`<span class=\"icon\">${this.icon}</span>`\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=\"label\" 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=\"badge\"\r\n\t\t\t\t\t\t\t\t\tpart=\"badge\"\r\n\t\t\t\t\t\t\t\t\tstyle=${this.styleMap(badgeStyles)}\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\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 { css, html, PropertyValues } from 'lit'\r\nimport { customElement, property, queryAssignedElements, state } from 'lit/decorators.js'\r\nimport { BehaviorSubject, 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\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 *\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(css`\r\n\t:host {\r\n\t\tdisplay: flex;\r\n\t\tflex-direction: column;\r\n\t\twidth: 80px; /* Fixed width - never changes to prevent layout shift */\r\n\t\theight: 100%;\r\n\t\tbox-sizing: border-box;\r\n\t\tposition: relative;\r\n\t\toverflow: visible;\r\n\t\tz-index: 1; /* Base z-index */\r\n\t}\r\n\r\n\t/* Hover state: elevate and show expanded content */\r\n\t:host(:hover) {\r\n\t\tz-index: 100; /* Higher z-index to overlay content */\r\n\t}\r\n\r\n\t/* Rail container - this is what expands */\r\n\t.rail {\r\n\t\tdisplay: flex;\r\n\t\tflex-direction: column;\r\n\t\theight: 100%;\r\n\t\twidth: 80px; /* Base width */\r\n\t\tpadding: 8px 12px;\r\n\t\tgap: 4px;\r\n\t\tbox-sizing: border-box;\r\n\t\tbackground-color: var(--schmancy-sys-color-surface-default);\r\n\t\tcolor: var(--schmancy-sys-color-surface-on);\r\n\t\tposition: relative;\r\n\t\t/* M3 motion: smooth transition for width and shadow */\r\n\t\ttransition:\r\n\t\t\twidth 300ms cubic-bezier(0.2, 0, 0, 1),\r\n\t\t\tbox-shadow 300ms cubic-bezier(0.2, 0, 0, 1);\r\n\t}\r\n\r\n\t/* Hover state: expand rail with shadow to show overlay */\r\n\t:host(:hover) .rail {\r\n\t\twidth: 240px;\r\n\t\t/* M3 elevation 3 shadow for overlay effect */\r\n\t\tbox-shadow:\r\n\t\t\t0px 6px 10px 0px rgba(0, 0, 0, 0.14),\r\n\t\t\t0px 1px 18px 0px rgba(0, 0, 0, 0.12),\r\n\t\t\t0px 3px 5px -1px rgba(0, 0, 0, 0.2);\r\n\t}\r\n\r\n\t/* Force label visibility when hovered */\r\n\t:host(:hover) ::slotted(schmancy-navigation-rail-item) {\r\n\t\t--rail-item-show-label: flex !important;\r\n\t}\r\n\r\n\t/* Header section */\r\n\t.header {\r\n\t\tdisplay: flex;\r\n\t\tflex-direction: column;\r\n\t\talign-items: center;\r\n\t\tgap: 4px;\r\n\t\tmargin-bottom: 8px;\r\n\t}\r\n\r\n\t/* Navigation container */\r\n\t.nav {\r\n\t\tflex: 1;\r\n\t\tdisplay: flex;\r\n\t\tflex-direction: column;\r\n\t\tgap: 4px;\r\n\t\toverflow-y: auto;\r\n\t\toverflow-x: hidden;\r\n\t\tscrollbar-width: thin;\r\n\t\tscrollbar-color: var(--schmancy-sys-color-outlineVariant) transparent;\r\n\t}\r\n\r\n\t.nav::-webkit-scrollbar {\r\n\t\twidth: 4px;\r\n\t}\r\n\r\n\t.nav::-webkit-scrollbar-track {\r\n\t\tbackground: transparent;\r\n\t}\r\n\r\n\t.nav::-webkit-scrollbar-thumb {\r\n\t\tbackground-color: var(--schmancy-sys-color-outlineVariant);\r\n\t\tborder-radius: 2px;\r\n\t\topacity: 0.5;\r\n\t}\r\n\r\n\t/* Footer section */\r\n\t.footer {\r\n\t\tdisplay: flex;\r\n\t\tflex-direction: column;\r\n\t\talign-items: center;\r\n\t\tgap: 4px;\r\n\t\tmargin-top: auto;\r\n\t\tpadding-top: 8px;\r\n\t}\r\n\r\n\t/* FAB styles */\r\n\t::slotted([slot='fab']) {\r\n\t\tmargin-bottom: 8px;\r\n\t}\r\n\r\n\t/* Menu button styles */\r\n\t::slotted([slot='menu']) {\r\n\t\tmargin-bottom: 12px;\r\n\t}\r\n\r\n\t/* Alignment variants */\r\n\t:host([alignment='top']) .nav {\r\n\t\tjustify-content: flex-start;\r\n\t}\r\n\r\n\t:host([alignment='center']) .nav {\r\n\t\tjustify-content: center;\r\n\t}\r\n\r\n\t:host([alignment='bottom']) .nav {\r\n\t\tjustify-content: flex-end;\r\n\t}\r\n\r\n\t/* Label visibility states */\r\n\t:host([label-visibility='none']) ::slotted(schmancy-navigation-rail-item) {\r\n\t\t--rail-item-show-label: none;\r\n\t}\r\n\r\n\t:host([label-visibility='selected']) ::slotted(schmancy-navigation-rail-item:not([active])) {\r\n\t\t--rail-item-show-label: none;\r\n\t}\r\n\r\n\t/* Group header styles */\r\n\t::slotted(.group-header) {\r\n\t\tpadding: 8px 12px;\r\n\t\tfont-size: 12px;\r\n\t\tfont-weight: 500;\r\n\t\tcolor: var(--schmancy-sys-color-outline);\r\n\t\ttext-transform: uppercase;\r\n\t\tletter-spacing: 0.1em;\r\n\t\twhite-space: nowrap;\r\n\t\toverflow: hidden;\r\n\t\ttext-overflow: ellipsis;\r\n\t}\r\n\r\n\t/* Divider styles */\r\n\t::slotted(schmancy-divider) {\r\n\t\tmargin: 8px 0;\r\n\t}\r\n\r\n\t/* Responsive behavior */\r\n\t@media (max-width: 768px) {\r\n\t\t:host {\r\n\t\t\twidth: 56px; /* Smaller fixed width on mobile */\r\n\t\t}\r\n\r\n\t\t.rail {\r\n\t\t\twidth: 56px; /* Match host width */\r\n\t\t\tpadding: 8px;\r\n\t\t}\r\n\r\n\t\t/* On mobile, expand to a smaller width */\r\n\t\t:host(:hover) .rail {\r\n\t\t\twidth: 200px;\r\n\t\t}\r\n\t}\r\n`) {\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// State\r\n\t@state()\r\n\tprivate focusedIndex = -1\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 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\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\tconst shouldShowLabel =\r\n\t\t\t\tthis.labelVisibility === 'all' || (this.labelVisibility === 'selected' && i === this.activeIndex)\r\n\r\n\t\t\titem.showLabel = shouldShowLabel\r\n\r\n\t\t\t// Add tooltips when labels are hidden\r\n\t\t\tif (this.showTooltips && !shouldShowLabel && 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\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\treturn html`\r\n\t\t\t<div class=\"rail\" part=\"rail\">\r\n\t\t\t\t<div class=\"header\" part=\"header\">\r\n\t\t\t\t\t<slot name=\"fab\" @click=${this.handleFabClick}></slot>\r\n\t\t\t\t\t<slot name=\"menu\" @click=${this.handleMenuClick}></slot>\r\n\t\t\t\t\t<slot name=\"header\"></slot>\r\n\t\t\t\t</div>\r\n\r\n\t\t\t\t<nav class=\"nav\" part=\"nav\" role=\"list\">\r\n\t\t\t\t\t<slot @slotchange=${this.handleSlotChange}></slot>\r\n\t\t\t\t</nav>\r\n\r\n\t\t\t\t<div class=\"footer\" part=\"footer\">\r\n\t\t\t\t\t<slot name=\"footer\"></slot>\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","css","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","hasCustomIcon","querySelector","hasCustomContent","hasCustomBadge","containerClasses","container","rippling","badgeStyles","color","html","classMap","handleClick","handleKeyDown","when","styleMap","__decorateClass","property","type","prototype","Boolean","reflect","attribute","state","customElement","SchmancyNavigationRail","activeIndex$","_activeValue","labelVisibility","alignment","showTooltips","keyboardNavigation","focusedIndex","activeIndex","activeValue","updateActiveByValue","navigationItems","allElements","filter","el","tagName","addEventListener","index","updateActiveStates","setupNavigateListener","updateLabelVisibility","forEach","item","i","findIndex","getAttribute","shouldShowLabel","removeAttribute","items","length","newIndex","focus","render","handleFabClick","handleMenuClick","handleSlotChange","e","itemIndex","Number","queryAssignedElements","flatten"],"mappings":"qgBA6DaA,QAAAA,2BAAN,cAAyCC,EAAAA,YAAYC,EAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AA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"}