@mhmo91/schmancy 0.5.20 → 0.5.21

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 (324) hide show
  1. package/ai/navigation-rail.md +475 -0
  2. package/dist/ai/navigation-rail.md +475 -0
  3. package/dist/{animated-text-D1D0dI8T.cjs → animated-text-Bic7z7SI.cjs} +2 -2
  4. package/dist/{animated-text-D1D0dI8T.cjs.map → animated-text-Bic7z7SI.cjs.map} +1 -1
  5. package/dist/{animated-text-DS9AsLAy.js → animated-text-CLEr78FV.js} +3 -3
  6. package/dist/{animated-text-DS9AsLAy.js.map → animated-text-CLEr78FV.js.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-DZFtLBMV.cjs → area.component-BrvNYy7Z.cjs} +2 -2
  11. package/dist/{area.component-DZFtLBMV.cjs.map → area.component-BrvNYy7Z.cjs.map} +1 -1
  12. package/dist/{area.component-5hv6c-dZ.js → area.component-tIK_P5JR.js} +3 -3
  13. package/dist/{area.component-5hv6c-dZ.js.map → area.component-tIK_P5JR.js.map} +1 -1
  14. package/dist/area.js +1 -1
  15. package/dist/{autocomplete-Bm_tnRns.js → autocomplete-BG5HqWvt.js} +4 -4
  16. package/dist/{autocomplete-Bm_tnRns.js.map → autocomplete-BG5HqWvt.js.map} +1 -1
  17. package/dist/{autocomplete-DpGmI06M.cjs → autocomplete-BJ_0fG9s.cjs} +2 -2
  18. package/dist/{autocomplete-DpGmI06M.cjs.map → autocomplete-BJ_0fG9s.cjs.map} +1 -1
  19. package/dist/autocomplete.cjs +1 -1
  20. package/dist/autocomplete.js +1 -1
  21. package/dist/{avatar-DVkOL5_x.js → avatar--NfBgxWj.js} +50 -50
  22. package/dist/{avatar-DVkOL5_x.js.map → avatar--NfBgxWj.js.map} +1 -1
  23. package/dist/{avatar-B0Q9R0jH.cjs → avatar-BT1w6myH.cjs} +2 -2
  24. package/dist/{avatar-B0Q9R0jH.cjs.map → avatar-BT1w6myH.cjs.map} +1 -1
  25. package/dist/badge.cjs +1 -1
  26. package/dist/badge.js +1 -1
  27. package/dist/{boat-DDBc--4N.js → boat-BdJ1jyK_.js} +2 -2
  28. package/dist/{boat-DDBc--4N.js.map → boat-BdJ1jyK_.js.map} +1 -1
  29. package/dist/{boat-DpuxxF9v.cjs → boat-DP98_5qG.cjs} +2 -2
  30. package/dist/{boat-DpuxxF9v.cjs.map → boat-DP98_5qG.cjs.map} +1 -1
  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-ByAbf0mX.js → checkbox-4mBWkzKG.js} +2 -2
  40. package/dist/{checkbox-ByAbf0mX.js.map → checkbox-4mBWkzKG.js.map} +1 -1
  41. package/dist/{checkbox-DA355aVd.cjs → checkbox-CIMDI5hW.cjs} +2 -2
  42. package/dist/{checkbox-DA355aVd.cjs.map → checkbox-CIMDI5hW.cjs.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-DXvds6Ik.cjs → code-preview-CHuRZ9cY.cjs} +2 -2
  50. package/dist/{code-preview-DXvds6Ik.cjs.map → code-preview-CHuRZ9cY.cjs.map} +1 -1
  51. package/dist/{code-preview-BEDuv4oc.js → code-preview-DrB-Y8dn.js} +2 -2
  52. package/dist/{code-preview-BEDuv4oc.js.map → code-preview-DrB-Y8dn.js.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-CO96uRfu.cjs → date-range-B0yz-_Zv.cjs} +2 -2
  58. package/dist/{date-range-CO96uRfu.cjs.map → date-range-B0yz-_Zv.cjs.map} +1 -1
  59. package/dist/{date-range-CWwzapvu.js → date-range-CM-5J_JO.js} +3 -3
  60. package/dist/{date-range-CWwzapvu.js.map → date-range-CM-5J_JO.js.map} +1 -1
  61. package/dist/{date-range-inline-DcRJrT7z.js → date-range-inline-CPI4EyL0.js} +3 -3
  62. package/dist/{date-range-inline-DcRJrT7z.js.map → date-range-inline-CPI4EyL0.js.map} +1 -1
  63. package/dist/{date-range-inline-Br8Pkm6Z.cjs → date-range-inline-P8P2ixg1.cjs} +2 -2
  64. package/dist/{date-range-inline-Br8Pkm6Z.cjs.map → date-range-inline-P8P2ixg1.cjs.map} +1 -1
  65. package/dist/date-range-inline.cjs +1 -1
  66. package/dist/date-range-inline.js +1 -1
  67. package/dist/date-range.cjs +1 -1
  68. package/dist/date-range.js +1 -1
  69. package/dist/{delay-BU66nJyr.cjs → delay-1aTGz1ZH.cjs} +2 -2
  70. package/dist/{delay-BU66nJyr.cjs.map → delay-1aTGz1ZH.cjs.map} +1 -1
  71. package/dist/{delay-4p58-oPM.js → delay-Lg_7K_Vi.js} +2 -2
  72. package/dist/{delay-4p58-oPM.js.map → delay-Lg_7K_Vi.js.map} +1 -1
  73. package/dist/delay.cjs +1 -1
  74. package/dist/delay.js +1 -1
  75. package/dist/{details-COgnQWz1.js → details-gUvX6sxc.js} +2 -2
  76. package/dist/{details-COgnQWz1.js.map → details-gUvX6sxc.js.map} +1 -1
  77. package/dist/{details-CoqpAwjh.cjs → details-uxsPpjMp.cjs} +2 -2
  78. package/dist/{details-CoqpAwjh.cjs.map → details-uxsPpjMp.cjs.map} +1 -1
  79. package/dist/details.cjs +1 -1
  80. package/dist/details.js +1 -1
  81. package/dist/{dialog-content-CJUcyFT1.cjs → dialog-content-CvVd9EwS.cjs} +2 -2
  82. package/dist/{dialog-content-CJUcyFT1.cjs.map → dialog-content-CvVd9EwS.cjs.map} +1 -1
  83. package/dist/{dialog-content-naA5eL6T.js → dialog-content-DKLDmgfz.js} +3 -3
  84. package/dist/{dialog-content-naA5eL6T.js.map → dialog-content-DKLDmgfz.js.map} +1 -1
  85. package/dist/dialog.cjs +1 -1
  86. package/dist/dialog.js +1 -1
  87. package/dist/{divider-a2f7N3mc.cjs → divider-CHGffGro.cjs} +2 -2
  88. package/dist/{divider-a2f7N3mc.cjs.map → divider-CHGffGro.cjs.map} +1 -1
  89. package/dist/{divider-DsNchzPn.js → divider-EvBnlb2a.js} +3 -3
  90. package/dist/{divider-DsNchzPn.js.map → divider-EvBnlb2a.js.map} +1 -1
  91. package/dist/divider.cjs +1 -1
  92. package/dist/divider.js +1 -1
  93. package/dist/{dropdown-content-YiOmwoxH.cjs → dropdown-content-FVKimBQR.cjs} +2 -2
  94. package/dist/{dropdown-content-YiOmwoxH.cjs.map → dropdown-content-FVKimBQR.cjs.map} +1 -1
  95. package/dist/{dropdown-content-CARJm72a.js → dropdown-content-NGBIkvdR.js} +3 -3
  96. package/dist/{dropdown-content-CARJm72a.js.map → dropdown-content-NGBIkvdR.js.map} +1 -1
  97. package/dist/dropdown.cjs +1 -1
  98. package/dist/dropdown.js +1 -1
  99. package/dist/{email-recipients-CM41HA4G.js → email-recipients-CXFSIsL-.js} +5 -5
  100. package/dist/{email-recipients-CM41HA4G.js.map → email-recipients-CXFSIsL-.js.map} +1 -1
  101. package/dist/{email-recipients-Dha5jYMG.cjs → email-recipients-DxqCC99q.cjs} +2 -2
  102. package/dist/{email-recipients-Dha5jYMG.cjs.map → email-recipients-DxqCC99q.cjs.map} +1 -1
  103. package/dist/extra.cjs +1 -1
  104. package/dist/extra.js +1 -1
  105. package/dist/{flex-D-oS3wlY.js → flex-Cm4nZM9q.js} +2 -2
  106. package/dist/{flex-D-oS3wlY.js.map → flex-Cm4nZM9q.js.map} +1 -1
  107. package/dist/{flex-zqTHF06u.cjs → flex-DisTVvBI.cjs} +2 -2
  108. package/dist/{flex-zqTHF06u.cjs.map → flex-DisTVvBI.cjs.map} +1 -1
  109. package/dist/{form-DPAzy8Dn.js → form-BU9TBjfk.js} +2 -2
  110. package/dist/{form-DPAzy8Dn.js.map → form-BU9TBjfk.js.map} +1 -1
  111. package/dist/{form-BSlt0E8v.cjs → form-SMbhjYsC.cjs} +2 -2
  112. package/dist/{form-BSlt0E8v.cjs.map → form-SMbhjYsC.cjs.map} +1 -1
  113. package/dist/form.cjs +1 -1
  114. package/dist/form.js +1 -1
  115. package/dist/{formField.mixin-R7Ddvq3q.cjs → formField.mixin-DYkeOpES.cjs} +2 -2
  116. package/dist/{formField.mixin-R7Ddvq3q.cjs.map → formField.mixin-DYkeOpES.cjs.map} +1 -1
  117. package/dist/{formField.mixin-CVkUNhSX.js → formField.mixin-DxhnL3Kb.js} +2 -2
  118. package/dist/{formField.mixin-CVkUNhSX.js.map → formField.mixin-DxhnL3Kb.js.map} +1 -1
  119. package/dist/{icon-Cm5BKSV4.cjs → icon-BT_1B5_G.cjs} +2 -2
  120. package/dist/{icon-Cm5BKSV4.cjs.map → icon-BT_1B5_G.cjs.map} +1 -1
  121. package/dist/{icon-ave1X5b9.js → icon-Cgd3NUcv.js} +2 -2
  122. package/dist/{icon-ave1X5b9.js.map → icon-Cgd3NUcv.js.map} +1 -1
  123. package/dist/{icon-button-BdB5el84.cjs → icon-button-C5hq1cKD.cjs} +2 -2
  124. package/dist/{icon-button-BdB5el84.cjs.map → icon-button-C5hq1cKD.cjs.map} +1 -1
  125. package/dist/{icon-button-DiNXfJ8u.js → icon-button-DsjqusZz.js} +3 -3
  126. package/dist/{icon-button-DiNXfJ8u.js.map → icon-button-DsjqusZz.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 +49 -49
  131. package/dist/{input-DPiDmsjt.js → input-Bj4MTOC9.js} +3 -3
  132. package/dist/{input-DPiDmsjt.js.map → input-Bj4MTOC9.js.map} +1 -1
  133. package/dist/{input-B6zwyDBC.cjs → input-D3qmQZ-Y.cjs} +2 -2
  134. package/dist/{input-B6zwyDBC.cjs.map → input-D3qmQZ-Y.cjs.map} +1 -1
  135. package/dist/{input-chip-CkWSf6nV.cjs → input-chip-CbD-eDs-.cjs} +2 -2
  136. package/dist/{input-chip-CkWSf6nV.cjs.map → input-chip-CbD-eDs-.cjs.map} +1 -1
  137. package/dist/{input-chip-C06GAnnC.js → input-chip-DiThsRoi.js} +2 -2
  138. package/dist/{input-chip-C06GAnnC.js.map → input-chip-DiThsRoi.js.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-BCDPk6mM.cjs → list-5Y_CGGJF.cjs} +2 -2
  144. package/dist/{list-BCDPk6mM.cjs.map → list-5Y_CGGJF.cjs.map} +1 -1
  145. package/dist/{list-vICZQxqV.js → list-CAFpmXsb.js} +2 -2
  146. package/dist/{list-vICZQxqV.js.map → list-CAFpmXsb.js.map} +1 -1
  147. package/dist/list.cjs +1 -1
  148. package/dist/list.js +1 -1
  149. package/dist/{litElement.mixin-jTGHsEfH.js → litElement.mixin-Bv6DGuhe.js} +2 -2
  150. package/dist/{litElement.mixin-jTGHsEfH.js.map → litElement.mixin-Bv6DGuhe.js.map} +1 -1
  151. package/dist/{litElement.mixin-DLJYzvsb.cjs → litElement.mixin-rWG9s46P.cjs} +2 -2
  152. package/dist/{litElement.mixin-DLJYzvsb.cjs.map → litElement.mixin-rWG9s46P.cjs.map} +1 -1
  153. package/dist/mailbox.cjs +1 -1
  154. package/dist/mailbox.js +1 -1
  155. package/dist/{map-D6QG9Yzr.cjs → map-bTOQf8Jm.cjs} +2 -2
  156. package/dist/{map-D6QG9Yzr.cjs.map → map-bTOQf8Jm.cjs.map} +1 -1
  157. package/dist/{map-DZt51SfS.js → map-yv8FB9mG.js} +2 -2
  158. package/dist/{map-DZt51SfS.js.map → map-yv8FB9mG.js.map} +1 -1
  159. package/dist/map.cjs +1 -1
  160. package/dist/map.js +1 -1
  161. package/dist/{media-BUx20F5U.js → media-CA52MXd3.js} +2 -2
  162. package/dist/{media-BUx20F5U.js.map → media-CA52MXd3.js.map} +1 -1
  163. package/dist/{media-CdPEYBLJ.cjs → media-CPIoKlRw.cjs} +2 -2
  164. package/dist/{media-CdPEYBLJ.cjs.map → media-CPIoKlRw.cjs.map} +1 -1
  165. package/dist/{menu-CvWQC1In.js → menu-BKO9PgJq.js} +3 -3
  166. package/dist/{menu-CvWQC1In.js.map → menu-BKO9PgJq.js.map} +1 -1
  167. package/dist/{menu-2UwBHzr9.cjs → menu-Cak8SbFx.cjs} +2 -2
  168. package/dist/{menu-2UwBHzr9.cjs.map → menu-Cak8SbFx.cjs.map} +1 -1
  169. package/dist/menu.cjs +1 -1
  170. package/dist/menu.js +1 -1
  171. package/dist/nav-drawer.cjs +1 -1
  172. package/dist/nav-drawer.js +1 -1
  173. package/dist/navigation-bar.cjs +1 -1
  174. package/dist/navigation-bar.js +1 -1
  175. package/dist/navigation-rail-C8OOb0V3.js +564 -0
  176. package/dist/navigation-rail-C8OOb0V3.js.map +1 -0
  177. package/dist/navigation-rail-D1iYDMy2.cjs +415 -0
  178. package/dist/navigation-rail-D1iYDMy2.cjs.map +1 -0
  179. package/dist/navigation-rail.cjs +1 -1
  180. package/dist/navigation-rail.js +1 -1
  181. package/dist/{notification-service-BqvWCDoP.cjs → notification-service-DaXxcXyj.cjs} +2 -2
  182. package/dist/{notification-service-BqvWCDoP.cjs.map → notification-service-DaXxcXyj.cjs.map} +1 -1
  183. package/dist/{notification-service-eOCFErH1.js → notification-service-jfBwJ2TN.js} +4 -4
  184. package/dist/{notification-service-eOCFErH1.js.map → notification-service-jfBwJ2TN.js.map} +1 -1
  185. package/dist/notification.cjs +1 -1
  186. package/dist/notification.js +2 -2
  187. package/dist/{notify-COSA8XRV.js → notify-C5gy3egX.js} +2 -2
  188. package/dist/{notify-COSA8XRV.js.map → notify-C5gy3egX.js.map} +1 -1
  189. package/dist/{notify-BaedZ1y9.cjs → notify-Dd5h2l-v.cjs} +2 -2
  190. package/dist/{notify-BaedZ1y9.cjs.map → notify-Dd5h2l-v.cjs.map} +1 -1
  191. package/dist/{option-CeXe-DCz.cjs → option-C6PwIhut.cjs} +2 -2
  192. package/dist/{option-CeXe-DCz.cjs.map → option-C6PwIhut.cjs.map} +1 -1
  193. package/dist/{option-CplQ_59U.js → option-D7b-uGff.js} +2 -2
  194. package/dist/{option-CplQ_59U.js.map → option-D7b-uGff.js.map} +1 -1
  195. package/dist/option.cjs +1 -1
  196. package/dist/option.js +1 -1
  197. package/dist/{payment-card-form-wns1GAaC.cjs → payment-card-form-DTfoZiiN.cjs} +2 -2
  198. package/dist/{payment-card-form-wns1GAaC.cjs.map → payment-card-form-DTfoZiiN.cjs.map} +1 -1
  199. package/dist/{payment-card-form-hVPgM3HO.js → payment-card-form-xwk5dfeQ.js} +3 -3
  200. package/dist/{payment-card-form-hVPgM3HO.js.map → payment-card-form-xwk5dfeQ.js.map} +1 -1
  201. package/dist/{progress-X8hxleUC.js → progress-D-5gThOU.js} +2 -2
  202. package/dist/{progress-X8hxleUC.js.map → progress-D-5gThOU.js.map} +1 -1
  203. package/dist/{progress-CM5lHuCR.cjs → progress-sFt6EeRy.cjs} +2 -2
  204. package/dist/{progress-CM5lHuCR.cjs.map → progress-sFt6EeRy.cjs.map} +1 -1
  205. package/dist/progress.cjs +1 -1
  206. package/dist/progress.js +1 -1
  207. package/dist/{radio-button--uXczpjB.js → radio-button-CZq8Z-V-.js} +3 -3
  208. package/dist/{radio-button--uXczpjB.js.map → radio-button-CZq8Z-V-.js.map} +1 -1
  209. package/dist/{radio-button-D76Qubig.cjs → radio-button-Cc5fCDdU.cjs} +2 -2
  210. package/dist/{radio-button-D76Qubig.cjs.map → radio-button-Cc5fCDdU.cjs.map} +1 -1
  211. package/dist/radio-group.cjs +1 -1
  212. package/dist/radio-group.js +1 -1
  213. package/dist/{schmancy-steps-container-Dc_hXgrm.cjs → schmancy-steps-container-Cb-cUZWP.cjs} +2 -2
  214. package/dist/{schmancy-steps-container-Dc_hXgrm.cjs.map → schmancy-steps-container-Cb-cUZWP.cjs.map} +1 -1
  215. package/dist/{schmancy-steps-container-Csh_Ocoa.js → schmancy-steps-container-DkPckhRw.js} +2 -2
  216. package/dist/{schmancy-steps-container-Csh_Ocoa.js.map → schmancy-steps-container-DkPckhRw.js.map} +1 -1
  217. package/dist/{select-BrdNXtJK.js → select-BxlDe36e.js} +3 -3
  218. package/dist/{select-BrdNXtJK.js.map → select-BxlDe36e.js.map} +1 -1
  219. package/dist/{select-DvjgcI2e.cjs → select-Cod_lOwT.cjs} +2 -2
  220. package/dist/{select-DvjgcI2e.cjs.map → select-Cod_lOwT.cjs.map} +1 -1
  221. package/dist/select.cjs +1 -1
  222. package/dist/select.js +1 -1
  223. package/dist/{sheet-D6hxqRpX.js → sheet-BscruHZw.js} +3 -3
  224. package/dist/{sheet-D6hxqRpX.js.map → sheet-BscruHZw.js.map} +1 -1
  225. package/dist/{sheet-DrGvhM5D.cjs → sheet-ZHVITumf.cjs} +2 -2
  226. package/dist/{sheet-DrGvhM5D.cjs.map → sheet-ZHVITumf.cjs.map} +1 -1
  227. package/dist/sheet.cjs +1 -1
  228. package/dist/sheet.js +1 -1
  229. package/dist/{slider-DNqgaGvI.cjs → slider-BKUCiMOV.cjs} +2 -2
  230. package/dist/{slider-DNqgaGvI.cjs.map → slider-BKUCiMOV.cjs.map} +1 -1
  231. package/dist/{slider-ev-R3lWD.js → slider-gBHyj2TC.js} +3 -3
  232. package/dist/{slider-ev-R3lWD.js.map → slider-gBHyj2TC.js.map} +1 -1
  233. package/dist/slider.cjs +1 -1
  234. package/dist/slider.js +1 -1
  235. package/dist/{spinner-BBhBlm_F.cjs → spinner-CiRbCC74.cjs} +2 -2
  236. package/dist/{spinner-BBhBlm_F.cjs.map → spinner-CiRbCC74.cjs.map} +1 -1
  237. package/dist/{spinner-0Be5YjKa.js → spinner-DZ3oE5cQ.js} +2 -2
  238. package/dist/{spinner-0Be5YjKa.js.map → spinner-DZ3oE5cQ.js.map} +1 -1
  239. package/dist/steps.cjs +1 -1
  240. package/dist/steps.js +1 -1
  241. package/dist/{suggestion-chip-GLpIJvu3.cjs → suggestion-chip-AVshmS4V.cjs} +2 -2
  242. package/dist/{suggestion-chip-GLpIJvu3.cjs.map → suggestion-chip-AVshmS4V.cjs.map} +1 -1
  243. package/dist/{suggestion-chip-WW3dScRF.js → suggestion-chip-CxQK5dcP.js} +3 -3
  244. package/dist/{suggestion-chip-WW3dScRF.js.map → suggestion-chip-CxQK5dcP.js.map} +1 -1
  245. package/dist/{surface-DmtBge0h.js → surface-C4Lkv6Xu.js} +2 -2
  246. package/dist/{surface-DmtBge0h.js.map → surface-C4Lkv6Xu.js.map} +1 -1
  247. package/dist/{surface-BaMQfpnN.cjs → surface-DTqeD1NX.cjs} +2 -2
  248. package/dist/{surface-BaMQfpnN.cjs.map → surface-DTqeD1NX.cjs.map} +1 -1
  249. package/dist/surface.cjs +1 -1
  250. package/dist/surface.js +1 -1
  251. package/dist/{table-Bc86ZVfE.cjs → table-CGB_dR8H.cjs} +2 -2
  252. package/dist/{table-Bc86ZVfE.cjs.map → table-CGB_dR8H.cjs.map} +1 -1
  253. package/dist/{table-D00xx57f.js → table-D320TllW.js} +2 -2
  254. package/dist/{table-D00xx57f.js.map → table-D320TllW.js.map} +1 -1
  255. package/dist/table.cjs +1 -1
  256. package/dist/table.js +1 -1
  257. package/dist/{tabs-compatibility-Bo4Z38SO.cjs → tabs-compatibility-C1ifLAs_.cjs} +2 -2
  258. package/dist/{tabs-compatibility-Bo4Z38SO.cjs.map → tabs-compatibility-C1ifLAs_.cjs.map} +1 -1
  259. package/dist/{tabs-compatibility-BQqS_oQN.js → tabs-compatibility-DNkcL6dE.js} +2 -2
  260. package/dist/{tabs-compatibility-BQqS_oQN.js.map → tabs-compatibility-DNkcL6dE.js.map} +1 -1
  261. package/dist/tabs.cjs +1 -1
  262. package/dist/tabs.js +1 -1
  263. package/dist/tailwind.mixin-9XFzAXGw.js +43 -0
  264. package/dist/{tailwind.mixin-Dq8FD_xN.js.map → tailwind.mixin-9XFzAXGw.js.map} +1 -1
  265. package/dist/tailwind.mixin-ChrVaJHF.cjs +2 -0
  266. package/dist/{tailwind.mixin-B_-9TcsC.cjs.map → tailwind.mixin-ChrVaJHF.cjs.map} +1 -1
  267. package/dist/teleport.cjs +1 -1
  268. package/dist/teleport.js +1 -1
  269. package/dist/{textarea-DvfusaL0.cjs → textarea-1QvQzHKm.cjs} +2 -2
  270. package/dist/{textarea-DvfusaL0.cjs.map → textarea-1QvQzHKm.cjs.map} +1 -1
  271. package/dist/{textarea-DpSgcB0q.js → textarea-B2U316Um.js} +2 -2
  272. package/dist/{textarea-DpSgcB0q.js.map → textarea-B2U316Um.js.map} +1 -1
  273. package/dist/textarea.cjs +1 -1
  274. package/dist/textarea.js +1 -1
  275. package/dist/{theme-button-Dj3aS2jG.cjs → theme-button-B0n3kSd_.cjs} +2 -2
  276. package/dist/{theme-button-Dj3aS2jG.cjs.map → theme-button-B0n3kSd_.cjs.map} +1 -1
  277. package/dist/{theme-button-1dnUcGe5.js → theme-button-zUYywyWx.js} +2 -2
  278. package/dist/{theme-button-1dnUcGe5.js.map → theme-button-zUYywyWx.js.map} +1 -1
  279. package/dist/theme-button.cjs +1 -1
  280. package/dist/theme-button.js +1 -1
  281. package/dist/theme.cjs +1 -1
  282. package/dist/{theme.component-B2834R93.cjs → theme.component-BLKJxyFX.cjs} +2 -2
  283. package/dist/{theme.component-B2834R93.cjs.map → theme.component-BLKJxyFX.cjs.map} +1 -1
  284. package/dist/{theme.component-DwzieORm.js → theme.component-DpPMKf8l.js} +2 -2
  285. package/dist/{theme.component-DwzieORm.js.map → theme.component-DpPMKf8l.js.map} +1 -1
  286. package/dist/theme.js +1 -1
  287. package/dist/{timezone-CWEqsRA_.cjs → timezone-DRSCR7bi.cjs} +2 -2
  288. package/dist/{timezone-CWEqsRA_.cjs.map → timezone-DRSCR7bi.cjs.map} +1 -1
  289. package/dist/{timezone-YbhVzZRq.js → timezone-DhLUcYcX.js} +3 -3
  290. package/dist/{timezone-YbhVzZRq.js.map → timezone-DhLUcYcX.js.map} +1 -1
  291. package/dist/{tooltip-BZ2fruXd.cjs → tooltip-B4nvmANO.cjs} +2 -2
  292. package/dist/{tooltip-BZ2fruXd.cjs.map → tooltip-B4nvmANO.cjs.map} +1 -1
  293. package/dist/{tooltip-DgLua_UV.js → tooltip-tFxYzDct.js} +2 -2
  294. package/dist/{tooltip-DgLua_UV.js.map → tooltip-tFxYzDct.js.map} +1 -1
  295. package/dist/tooltip.cjs +1 -1
  296. package/dist/tooltip.js +1 -1
  297. package/dist/{tree-Dg-mKO7n.js → tree-C9gLZE_E.js} +2 -2
  298. package/dist/{tree-Dg-mKO7n.js.map → tree-C9gLZE_E.js.map} +1 -1
  299. package/dist/{tree-c9Fcsgxi.cjs → tree-CRjGBeHH.cjs} +2 -2
  300. package/dist/{tree-c9Fcsgxi.cjs.map → tree-CRjGBeHH.cjs.map} +1 -1
  301. package/dist/tree.cjs +1 -1
  302. package/dist/tree.js +1 -1
  303. package/dist/{typewriter-Bgp3f7FN.js → typewriter-DN9HiCBW.js} +4 -4
  304. package/dist/{typewriter-Bgp3f7FN.js.map → typewriter-DN9HiCBW.js.map} +1 -1
  305. package/dist/{typewriter-FHkXxEdA.cjs → typewriter-VGsKEZOj.cjs} +2 -2
  306. package/dist/{typewriter-FHkXxEdA.cjs.map → typewriter-VGsKEZOj.cjs.map} +1 -1
  307. package/dist/typewriter.cjs +1 -1
  308. package/dist/typewriter.js +1 -1
  309. package/dist/{typography-B2kH45Vn.js → typography-MN7P8my2.js} +2 -2
  310. package/dist/{typography-B2kH45Vn.js.map → typography-MN7P8my2.js.map} +1 -1
  311. package/dist/{typography-CE_QuH1P.cjs → typography-XN-pEi3Q.cjs} +2 -2
  312. package/dist/{typography-CE_QuH1P.cjs.map → typography-XN-pEi3Q.cjs.map} +1 -1
  313. package/dist/typography.cjs +1 -1
  314. package/dist/typography.js +1 -1
  315. package/package.json +1 -1
  316. package/types/src/navigation-rail/index.d.ts +1 -1
  317. package/types/src/navigation-rail/navigation-rail-item.d.ts +89 -9
  318. package/types/src/navigation-rail/navigation-rail.d.ts +77 -9
  319. package/dist/navigation-rail-item-CIg6-B2G.js +0 -151
  320. package/dist/navigation-rail-item-CIg6-B2G.js.map +0 -1
  321. package/dist/navigation-rail-item-DA7eqAg3.cjs +0 -116
  322. package/dist/navigation-rail-item-DA7eqAg3.cjs.map +0 -1
  323. package/dist/tailwind.mixin-B_-9TcsC.cjs +0 -2
  324. package/dist/tailwind.mixin-Dq8FD_xN.js +0 -43
@@ -0,0 +1,564 @@
1
+ import { BehaviorSubject as y, merge as m, fromEvent as v, takeUntil as g } from "rxjs";
2
+ import "lit/directives/class-map.js";
3
+ import "lit/directives/style-map.js";
4
+ import { property as s, state as f, customElement as x, queryAssignedElements as $ } from "lit/decorators.js";
5
+ import "./tailwind.mixin-9XFzAXGw.js";
6
+ import { $ as w } from "./litElement.mixin-Bv6DGuhe.js";
7
+ import { css as k, html as c } from "lit";
8
+ import { when as u } from "lit/directives/when.js";
9
+ import { tap as d, delay as I, distinctUntilChanged as A } from "rxjs/operators";
10
+ var V = Object.defineProperty, S = Object.getOwnPropertyDescriptor, r = (t, e, i, a) => {
11
+ for (var p, o = a > 1 ? void 0 : a ? S(e, i) : e, b = t.length - 1; b >= 0; b--) (p = t[b]) && (o = (a ? p(e, i, o) : p(o)) || o);
12
+ return a && o && V(e, i, o), o;
13
+ };
14
+ let n = class extends w(k`
15
+ :host {
16
+ display: block;
17
+ position: relative;
18
+ outline: none;
19
+ --rail-item-height: 56px;
20
+ --rail-item-icon-size: 24px;
21
+ --rail-item-show-label: block;
22
+ }
23
+
24
+ .container {
25
+ display: flex;
26
+ flex-direction: column;
27
+ align-items: center;
28
+ justify-content: center;
29
+ min-height: var(--rail-item-height);
30
+ width: 100%;
31
+ border-radius: 16px;
32
+ cursor: pointer;
33
+ position: relative;
34
+ box-sizing: border-box;
35
+ color: var(--schmancy-sys-color-surface-onVariant);
36
+ user-select: none;
37
+ transition: all 0.2s cubic-bezier(0.4, 0, 0.2, 1);
38
+ padding: 12px 0;
39
+ gap: 4px;
40
+ }
41
+
42
+ /* Hover state */
43
+ .container:hover {
44
+ background-color: var(--schmancy-sys-color-surface-highest);
45
+ }
46
+
47
+ /* Focus state */
48
+ :host(:focus-visible) .container {
49
+ outline: 2px solid var(--schmancy-sys-color-primary-default);
50
+ outline-offset: 2px;
51
+ }
52
+
53
+ /* Active indicator - positioned behind icon only */
54
+ .icon-container {
55
+ position: relative;
56
+ }
57
+
58
+ .indicator {
59
+ position: absolute;
60
+ top: 50%;
61
+ left: 50%;
62
+ transform: translate(-50%, -50%) scale(0);
63
+ width: 56px;
64
+ height: 32px;
65
+ border-radius: 16px;
66
+ background-color: var(--schmancy-sys-color-secondary-container);
67
+ transition: transform 0.2s cubic-bezier(0.4, 0, 0.2, 1);
68
+ z-index: 0;
69
+ }
70
+
71
+ :host([active]) .indicator,
72
+ :host([selected]) .indicator {
73
+ transform: translate(-50%, -50%) scale(1);
74
+ }
75
+
76
+ :host([active]) .container,
77
+ :host([selected]) .container {
78
+ color: var(--schmancy-sys-color-secondary-onContainer);
79
+ }
80
+
81
+
82
+ /* Icon styles */
83
+ .icon-container {
84
+ display: flex;
85
+ align-items: center;
86
+ justify-content: center;
87
+ width: auto;
88
+ min-width: 56px;
89
+ height: 32px;
90
+ flex-shrink: 0;
91
+ position: relative;
92
+ z-index: 1;
93
+ }
94
+
95
+ .icon {
96
+ font-family: 'Material Symbols Outlined';
97
+ font-size: var(--rail-item-icon-size);
98
+ line-height: 1;
99
+ position: relative;
100
+ z-index: 1;
101
+ font-variation-settings:
102
+ 'FILL' 0,
103
+ 'wght' 400,
104
+ 'GRAD' 0,
105
+ 'opsz' 24;
106
+ }
107
+
108
+ :host([active]) .icon,
109
+ :host([selected]) .icon {
110
+ font-variation-settings:
111
+ 'FILL' 1,
112
+ 'wght' 400,
113
+ 'GRAD' 0,
114
+ 'opsz' 24;
115
+ }
116
+
117
+ /* Label styles */
118
+ .label {
119
+ font-size: 12px;
120
+ font-weight: 500;
121
+ line-height: 16px;
122
+ text-align: center;
123
+ overflow: hidden;
124
+ text-overflow: ellipsis;
125
+ white-space: nowrap;
126
+ z-index: 1;
127
+ display: var(--rail-item-show-label, block);
128
+ max-width: 56px;
129
+ padding: 0 4px;
130
+ }
131
+
132
+
133
+ /* Badge styles */
134
+ .badge {
135
+ position: absolute;
136
+ top: 8px;
137
+ right: 12px;
138
+ min-width: 16px;
139
+ height: 16px;
140
+ border-radius: 8px;
141
+ background-color: var(--schmancy-sys-color-error-default);
142
+ color: var(--schmancy-sys-color-error-on);
143
+ font-size: 11px;
144
+ font-weight: 600;
145
+ display: flex;
146
+ align-items: center;
147
+ justify-content: center;
148
+ padding: 0 4px;
149
+ box-sizing: border-box;
150
+ z-index: 2;
151
+ animation: badge-pulse 2s infinite;
152
+ }
153
+
154
+ @keyframes badge-pulse {
155
+ 0%, 100% { transform: scale(1); }
156
+ 50% { transform: scale(1.1); }
157
+ }
158
+
159
+ /* Nested items (for sub-navigation) */
160
+ :host([nested]) {
161
+ --rail-item-height: 48px;
162
+ --rail-item-icon-size: 20px;
163
+ }
164
+
165
+ :host([nested]) .container {
166
+ padding-left: 32px;
167
+ }
168
+
169
+ /* Disabled state */
170
+ :host([disabled]) {
171
+ pointer-events: none;
172
+ opacity: 0.38;
173
+ }
174
+
175
+ /* Ripple effect */
176
+ .ripple {
177
+ position: absolute;
178
+ top: 0;
179
+ left: 0;
180
+ right: 0;
181
+ bottom: 0;
182
+ border-radius: inherit;
183
+ overflow: hidden;
184
+ z-index: 0;
185
+ }
186
+
187
+ .ripple::before {
188
+ content: '';
189
+ position: absolute;
190
+ top: 50%;
191
+ left: 50%;
192
+ width: 0;
193
+ height: 0;
194
+ border-radius: 50%;
195
+ background: currentColor;
196
+ opacity: 0;
197
+ transform: translate(-50%, -50%);
198
+ transition: width 0.6s, height 0.6s, opacity 0.6s;
199
+ }
200
+
201
+ :host(:active) .ripple::before {
202
+ width: 200%;
203
+ height: 200%;
204
+ opacity: 0.12;
205
+ }
206
+
207
+ /* Tooltip styles (shown via title attribute) */
208
+ :host([title]:hover)::after {
209
+ content: attr(title);
210
+ position: absolute;
211
+ left: calc(100% + 8px);
212
+ top: 50%;
213
+ transform: translateY(-50%);
214
+ background: var(--schmancy-sys-color-inverseSurface);
215
+ color: var(--schmancy-sys-color-inverseOnSurface);
216
+ padding: 4px 8px;
217
+ border-radius: 4px;
218
+ font-size: 12px;
219
+ white-space: nowrap;
220
+ z-index: 1000;
221
+ pointer-events: none;
222
+ animation: tooltip-fade-in 0.2s ease;
223
+ }
224
+
225
+ @keyframes tooltip-fade-in {
226
+ from {
227
+ opacity: 0;
228
+ transform: translateY(-50%) translateX(-4px);
229
+ }
230
+ to {
231
+ opacity: 1;
232
+ transform: translateY(-50%) translateX(0);
233
+ }
234
+ }
235
+
236
+ /* Group item styles */
237
+ :host([group]) {
238
+ margin-bottom: 8px;
239
+ }
240
+
241
+ :host([group])::after {
242
+ content: '';
243
+ position: absolute;
244
+ bottom: -4px;
245
+ left: 12px;
246
+ right: 12px;
247
+ height: 1px;
248
+ background: var(--schmancy-sys-color-outlineVariant);
249
+ opacity: 0.12;
250
+ }
251
+ `) {
252
+ constructor() {
253
+ super(...arguments), this.hovering$ = new y(!1), this.pressing$ = new y(!1), this.active$ = new y(!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;
254
+ }
255
+ get active() {
256
+ return this.active$.value;
257
+ }
258
+ set active(t) {
259
+ this.active$.next(t);
260
+ }
261
+ get selected() {
262
+ return this.active;
263
+ }
264
+ set selected(t) {
265
+ this.active = t;
266
+ }
267
+ connectedCallback() {
268
+ super.connectedCallback(), m(v(this, "mouseenter").pipe(d(() => this.hovering$.next(!0))), v(this, "mouseleave").pipe(d(() => this.hovering$.next(!1)))).pipe(g(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(g(this.disconnecting)).subscribe(), this.pressing$.pipe(d((t) => {
269
+ t && !this.disabled && (this.showRipple = !0);
270
+ }), I(600), d(() => this.showRipple = !1), g(this.disconnecting)).subscribe(), this.active$.pipe(A(), d((t) => {
271
+ this.requestUpdate(), this.setAttribute("aria-selected", String(t)), this.setAttribute("tabindex", t ? "0" : "-1");
272
+ }), g(this.disconnecting)).subscribe(), this.setAttribute("role", "listitem"), this.hasAttribute("tabindex") || this.setAttribute("tabindex", this.active ? "0" : "-1");
273
+ }
274
+ updated(t) {
275
+ super.updated(t), t.has("disabled") && this.setAttribute("aria-disabled", String(this.disabled)), t.has("label") && this.setAttribute("aria-label", this.label);
276
+ }
277
+ handleClick(t) {
278
+ if (this.disabled) return t.preventDefault(), void t.stopPropagation();
279
+ this.dispatchEvent(new CustomEvent("navigate", { detail: this.value || this.label, bubbles: !0, composed: !0 }));
280
+ }
281
+ handleKeyDown(t) {
282
+ this.disabled || t.key !== "Enter" && t.key !== " " || (t.preventDefault(), this.click());
283
+ }
284
+ render() {
285
+ const t = this.querySelector('[slot="icon"]'), e = this.querySelector(":not([slot])"), i = this.querySelector('[slot="badge"]'), a = { container: !0, rippling: this.showRipple }, p = { "background-color": `var(--schmancy-sys-color-${this.badgeVariant}-default)`, color: `var(--schmancy-sys-color-${this.badgeVariant}-on)` };
286
+ return c`
287
+ <div
288
+ class=${this.classMap(a)}
289
+ part="container"
290
+ @click=${this.handleClick}
291
+ @keydown=${this.handleKeyDown}
292
+ >
293
+ <span class="ripple" aria-hidden="true"></span>
294
+
295
+ ${u(e, () => c`<slot></slot>`, () => c`
296
+ <div class="icon-container" part="icon">
297
+ <span class="indicator" part="indicator" aria-hidden="true"></span>
298
+ ${u(t, () => c`<slot name="icon"></slot>`, () => u(this.icon, () => c`<span class="icon">${this.icon}</span>`))}
299
+ </div>
300
+
301
+ ${u(this.label, () => c`<span class="label" part="label">${this.label}</span>`)}
302
+ `)}
303
+
304
+ ${u(this.badge, () => c`
305
+ ${u(i, () => c`<slot name="badge"></slot>`, () => c`
306
+ <span
307
+ class="badge"
308
+ part="badge"
309
+ style=${this.styleMap(p)}
310
+ aria-label="${this.badge} notifications"
311
+ >
312
+ ${this.badge}
313
+ </span>
314
+ `)}
315
+ `)}
316
+ </div>
317
+ `;
318
+ }
319
+ };
320
+ r([s({ type: String })], n.prototype, "icon", 2), r([s({ type: String })], n.prototype, "label", 2), r([s({ type: String })], n.prototype, "value", 2), r([s({ type: Boolean, reflect: !0 })], n.prototype, "active", 1), r([s({ type: Boolean, reflect: !0 })], n.prototype, "selected", 1), r([s({ type: String })], n.prototype, "badge", 2), r([s({ type: String })], n.prototype, "badgeVariant", 2), r([s({ type: Boolean, attribute: "show-label" })], n.prototype, "showLabel", 2), r([s({ type: Boolean, reflect: !0 })], n.prototype, "disabled", 2), r([s({ type: Boolean, reflect: !0 })], n.prototype, "nested", 2), r([s({ type: Boolean, reflect: !0 })], n.prototype, "group", 2), r([f()], n.prototype, "showRipple", 2), n = r([x("schmancy-navigation-rail-item")], n);
321
+ var z = Object.defineProperty, C = Object.getOwnPropertyDescriptor, h = (t, e, i, a) => {
322
+ for (var p, o = a > 1 ? void 0 : a ? C(e, i) : e, b = t.length - 1; b >= 0; b--) (p = t[b]) && (o = (a ? p(e, i, o) : p(o)) || o);
323
+ return a && o && z(e, i, o), o;
324
+ };
325
+ let l = class extends w(k`
326
+ :host {
327
+ display: flex;
328
+ flex-direction: column;
329
+ width: 80px;
330
+ height: 100%;
331
+ background-color: var(--schmancy-sys-color-surface-container);
332
+ color: var(--schmancy-sys-color-surface-on);
333
+ box-sizing: border-box;
334
+ position: relative;
335
+ overflow: visible;
336
+ }
337
+
338
+ /* Rail container */
339
+ .rail {
340
+ display: flex;
341
+ flex-direction: column;
342
+ height: 100%;
343
+ padding: 8px 12px;
344
+ gap: 4px;
345
+ box-sizing: border-box;
346
+ }
347
+
348
+ /* Header section */
349
+ .header {
350
+ display: flex;
351
+ flex-direction: column;
352
+ align-items: center;
353
+ gap: 4px;
354
+ margin-bottom: 8px;
355
+ }
356
+
357
+ /* Navigation container */
358
+ .nav {
359
+ flex: 1;
360
+ display: flex;
361
+ flex-direction: column;
362
+ gap: 4px;
363
+ overflow-y: auto;
364
+ overflow-x: hidden;
365
+ scrollbar-width: thin;
366
+ scrollbar-color: var(--schmancy-sys-color-surface-onVariant) transparent;
367
+ }
368
+
369
+ .nav::-webkit-scrollbar {
370
+ width: 4px;
371
+ }
372
+
373
+ .nav::-webkit-scrollbar-track {
374
+ background: transparent;
375
+ }
376
+
377
+ .nav::-webkit-scrollbar-thumb {
378
+ background-color: var(--schmancy-sys-color-surface-onVariant);
379
+ border-radius: 2px;
380
+ opacity: 0.5;
381
+ }
382
+
383
+ /* Footer section */
384
+ .footer {
385
+ display: flex;
386
+ flex-direction: column;
387
+ align-items: center;
388
+ gap: 4px;
389
+ margin-top: auto;
390
+ padding-top: 8px;
391
+ }
392
+
393
+ /* FAB styles */
394
+ ::slotted([slot="fab"]) {
395
+ margin-bottom: 8px;
396
+ }
397
+
398
+ /* Menu button styles */
399
+ ::slotted([slot="menu"]) {
400
+ margin-bottom: 12px;
401
+ }
402
+
403
+ /* Alignment variants */
404
+ :host([alignment="top"]) .nav {
405
+ justify-content: flex-start;
406
+ }
407
+
408
+ :host([alignment="center"]) .nav {
409
+ justify-content: center;
410
+ }
411
+
412
+ :host([alignment="bottom"]) .nav {
413
+ justify-content: flex-end;
414
+ }
415
+
416
+ /* Label visibility states */
417
+ :host([label-visibility="none"]) ::slotted(schmancy-navigation-rail-item) {
418
+ --rail-item-show-label: none;
419
+ }
420
+
421
+ :host([label-visibility="selected"]) ::slotted(schmancy-navigation-rail-item:not([active])) {
422
+ --rail-item-show-label: none;
423
+ }
424
+
425
+
426
+ /* Group header styles */
427
+ ::slotted(.group-header) {
428
+ padding: 8px 12px;
429
+ font-size: 12px;
430
+ font-weight: 500;
431
+ color: var(--schmancy-sys-color-surface-onVariant);
432
+ text-transform: uppercase;
433
+ letter-spacing: 0.1em;
434
+ white-space: nowrap;
435
+ overflow: hidden;
436
+ text-overflow: ellipsis;
437
+ }
438
+
439
+ /* Divider styles */
440
+ ::slotted(schmancy-divider) {
441
+ margin: 8px 0;
442
+ }
443
+
444
+ /* Responsive behavior */
445
+ @media (max-width: 768px) {
446
+ :host {
447
+ width: 56px;
448
+ }
449
+
450
+ .rail {
451
+ padding: 8px;
452
+ }
453
+ }
454
+ `) {
455
+ constructor() {
456
+ super(...arguments), this.activeIndex$ = new y(-1), this._activeValue = "", this.labelVisibility = "all", this.alignment = "top", this.showTooltips = !0, this.keyboardNavigation = !0, this.focusedIndex = -1;
457
+ }
458
+ get activeIndex() {
459
+ return this.activeIndex$.value;
460
+ }
461
+ set activeIndex(t) {
462
+ this.activeIndex$.next(t);
463
+ }
464
+ get activeValue() {
465
+ return this._activeValue;
466
+ }
467
+ set activeValue(t) {
468
+ this._activeValue = t, this.updateActiveByValue(t);
469
+ }
470
+ get navigationItems() {
471
+ return this.allElements.filter((t) => t.tagName === "SCHMANCY-NAVIGATION-RAIL-ITEM");
472
+ }
473
+ connectedCallback() {
474
+ super.connectedCallback(), this.keyboardNavigation && this.addEventListener("keydown", this.handleKeyDown), this.activeIndex$.pipe(A(), d((t) => this.updateActiveStates(t)), g(this.disconnecting)).subscribe(), this.setupNavigateListener(), this.updateLabelVisibility(), this.setAttribute("role", "navigation"), this.setAttribute("aria-label", "Main navigation");
475
+ }
476
+ updated(t) {
477
+ super.updated(t), t.has("labelVisibility") && this.updateLabelVisibility(), t.has("activeValue") && this.updateActiveByValue(this.activeValue);
478
+ }
479
+ updateActiveStates(t) {
480
+ this.navigationItems.forEach((e, i) => {
481
+ const a = i === t;
482
+ e.active = a, e.setAttribute("aria-selected", String(a)), e.setAttribute("tabindex", a ? "0" : "-1"), a && (this._activeValue = e.value || e.label || "");
483
+ });
484
+ }
485
+ updateActiveByValue(t) {
486
+ const e = this.navigationItems.findIndex((i) => i.getAttribute("value") === t || i.label === t);
487
+ e >= 0 && (this.activeIndex = e);
488
+ }
489
+ updateLabelVisibility() {
490
+ this.navigationItems.forEach((t, e) => {
491
+ const i = this.labelVisibility === "all" || this.labelVisibility === "selected" && e === this.activeIndex;
492
+ t.showLabel = i, this.showTooltips && !i && t.label ? t.setAttribute("title", t.label) : t.removeAttribute("title");
493
+ });
494
+ }
495
+ handleKeyDown(t) {
496
+ const e = this.navigationItems;
497
+ if (e.length === 0) return;
498
+ let i = this.focusedIndex >= 0 ? this.focusedIndex : this.activeIndex;
499
+ switch (t.key) {
500
+ case "ArrowDown":
501
+ t.preventDefault(), i = (i + 1) % e.length;
502
+ break;
503
+ case "ArrowUp":
504
+ t.preventDefault(), i = i <= 0 ? e.length - 1 : i - 1;
505
+ break;
506
+ case "Home":
507
+ t.preventDefault(), i = 0;
508
+ break;
509
+ case "End":
510
+ t.preventDefault(), i = e.length - 1;
511
+ break;
512
+ case "Enter":
513
+ case " ":
514
+ return t.preventDefault(), void (i >= 0 && e[i].click());
515
+ default:
516
+ return;
517
+ }
518
+ this.focusedIndex = i, e[i].focus();
519
+ }
520
+ handleFabClick(t) {
521
+ t.stopPropagation(), this.dispatchEvent(new CustomEvent("fab-click", { bubbles: !0, composed: !0 }));
522
+ }
523
+ handleMenuClick(t) {
524
+ t.stopPropagation(), this.dispatchEvent(new CustomEvent("menu-click", { bubbles: !0, composed: !0 }));
525
+ }
526
+ render() {
527
+ return c`
528
+ <div class="rail" part="rail">
529
+ <div class="header" part="header">
530
+ <slot name="fab" @click=${this.handleFabClick}></slot>
531
+ <slot name="menu" @click=${this.handleMenuClick}></slot>
532
+ <slot name="header"></slot>
533
+ </div>
534
+
535
+ <nav class="nav" part="nav" role="list">
536
+ <slot @slotchange=${this.handleSlotChange}></slot>
537
+ </nav>
538
+
539
+ <div class="footer" part="footer">
540
+ <slot name="footer"></slot>
541
+ </div>
542
+ </div>
543
+ `;
544
+ }
545
+ setupNavigateListener() {
546
+ this.addEventListener("navigate", (t) => {
547
+ if (t instanceof CustomEvent) {
548
+ const e = t.detail, i = this.navigationItems.findIndex((a) => a.value === e || a.label === e);
549
+ i >= 0 && (this.activeIndex = i, this._activeValue = e);
550
+ }
551
+ });
552
+ }
553
+ handleSlotChange() {
554
+ this.updateLabelVisibility(), this.updateActiveStates(this.activeIndex), this.navigationItems.forEach((t, e) => {
555
+ t.setAttribute("role", "listitem"), t.hasAttribute("tabindex") || t.setAttribute("tabindex", e === this.activeIndex ? "0" : "-1");
556
+ });
557
+ }
558
+ };
559
+ h([s({ type: Number })], l.prototype, "activeIndex", 1), h([s({ type: String })], l.prototype, "activeValue", 1), h([s({ type: String, attribute: "label-visibility", reflect: !0 })], l.prototype, "labelVisibility", 2), h([s({ type: String, reflect: !0 })], l.prototype, "alignment", 2), h([s({ type: Boolean })], l.prototype, "showTooltips", 2), h([s({ type: Boolean })], l.prototype, "keyboardNavigation", 2), h([f()], l.prototype, "focusedIndex", 2), h([$({ flatten: !0 })], l.prototype, "allElements", 2), l = h([x("schmancy-navigation-rail")], l);
560
+ export {
561
+ n as S,
562
+ l as a
563
+ };
564
+ //# sourceMappingURL=navigation-rail-C8OOb0V3.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"navigation-rail-C8OOb0V3.js","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\tborder-radius: 16px;\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 0.2s cubic-bezier(0.4, 0, 0.2, 1);\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\tborder-radius: 16px;\r\n\t\tbackground-color: var(--schmancy-sys-color-secondary-container);\r\n\t\ttransition: transform 0.2s cubic-bezier(0.4, 0, 0.2, 1);\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\tborder-radius: 8px;\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 */\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\ttransition: width 0.6s, height 0.6s, opacity 0.6s;\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\topacity: 0.12;\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\tborder-radius: 4px;\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 0.2s ease;\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\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\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;\r\n\t\theight: 100%;\r\n\t\tbackground-color: var(--schmancy-sys-color-surface-container);\r\n\t\tcolor: var(--schmancy-sys-color-surface-on);\r\n\t\tbox-sizing: border-box;\r\n\t\tposition: relative;\r\n\t\toverflow: visible;\r\n\t}\r\n\r\n\t/* Rail container */\r\n\t.rail {\r\n\t\tdisplay: flex;\r\n\t\tflex-direction: column;\r\n\t\theight: 100%;\r\n\t\tpadding: 8px 12px;\r\n\t\tgap: 4px;\r\n\t\tbox-sizing: border-box;\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-surface-onVariant) 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-surface-onVariant);\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\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-surface-onVariant);\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;\r\n\t\t}\r\n\r\n\t\t.rail {\r\n\t\t\tpadding: 8px;\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() { return this.activeIndex$.value }\r\n\tset activeIndex(value: number) { this.activeIndex$.next(value) }\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() { return this._activeValue }\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(\r\n\t\t\tel => el.tagName === 'SCHMANCY-NAVIGATION-RAIL-ITEM'\r\n\t\t) 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$.pipe(\r\n\t\t\tdistinctUntilChanged(),\r\n\t\t\ttap(index => this.updateActiveStates(index)),\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\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(\r\n\t\t\titem => item.getAttribute('value') === value || item.label === value\r\n\t\t)\r\n\t\tif (index >= 0) {\r\n\t\t\tthis.activeIndex = index\r\n\t\t}\r\n\t}\r\n\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' ||\r\n\t\t\t\t(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\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(new CustomEvent('fab-click', {\r\n\t\t\tbubbles: true,\r\n\t\t\tcomposed: true\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(new CustomEvent('menu-click', {\r\n\t\t\tbubbles: true,\r\n\t\t\tcomposed: true\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\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(\r\n\t\t\t\t\titem => item.value === value || item.label === value\r\n\t\t\t\t)\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}"],"names":["SchmancyNavigationRailItem","$LitElement","css","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","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","handleFabClick","handleMenuClick","handleSlotChange","e","itemIndex","Number","queryAssignedElements","flatten"],"mappings":";;;;;;;;;;;;;AA6DO,IAAMA,IAAN,cAAyCC,EAAYC;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;AAAAA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"}