@mhmo91/schmancy 0.5.19 → 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 (330) hide show
  1. package/ai/navigation-bar-item.md +25 -13
  2. package/ai/navigation-rail.md +475 -0
  3. package/dist/ai/navigation-bar-item.md +25 -13
  4. package/dist/ai/navigation-rail.md +475 -0
  5. package/dist/{animated-text-L4rVnRqB.cjs → animated-text-Bic7z7SI.cjs} +2 -2
  6. package/dist/{animated-text-L4rVnRqB.cjs.map → animated-text-Bic7z7SI.cjs.map} +1 -1
  7. package/dist/{animated-text-DbBKOAWI.js → animated-text-CLEr78FV.js} +3 -3
  8. package/dist/{animated-text-DbBKOAWI.js.map → animated-text-CLEr78FV.js.map} +1 -1
  9. package/dist/animated-text.cjs +1 -1
  10. package/dist/animated-text.js +1 -1
  11. package/dist/area.cjs +1 -1
  12. package/dist/{area.component-DsBt1CIM.cjs → area.component-BrvNYy7Z.cjs} +2 -2
  13. package/dist/{area.component-DsBt1CIM.cjs.map → area.component-BrvNYy7Z.cjs.map} +1 -1
  14. package/dist/{area.component-eV-v6J5C.js → area.component-tIK_P5JR.js} +3 -3
  15. package/dist/{area.component-eV-v6J5C.js.map → area.component-tIK_P5JR.js.map} +1 -1
  16. package/dist/area.js +1 -1
  17. package/dist/{autocomplete-CTQ6eqYl.js → autocomplete-BG5HqWvt.js} +4 -4
  18. package/dist/{autocomplete-CTQ6eqYl.js.map → autocomplete-BG5HqWvt.js.map} +1 -1
  19. package/dist/{autocomplete-DnX6sEMg.cjs → autocomplete-BJ_0fG9s.cjs} +2 -2
  20. package/dist/{autocomplete-DnX6sEMg.cjs.map → autocomplete-BJ_0fG9s.cjs.map} +1 -1
  21. package/dist/autocomplete.cjs +1 -1
  22. package/dist/autocomplete.js +1 -1
  23. package/dist/{avatar-BAaUCxc-.js → avatar--NfBgxWj.js} +50 -50
  24. package/dist/{avatar-BAaUCxc-.js.map → avatar--NfBgxWj.js.map} +1 -1
  25. package/dist/{avatar-DwqCiKOy.cjs → avatar-BT1w6myH.cjs} +2 -2
  26. package/dist/{avatar-DwqCiKOy.cjs.map → avatar-BT1w6myH.cjs.map} +1 -1
  27. package/dist/badge.cjs +1 -1
  28. package/dist/badge.js +1 -1
  29. package/dist/{boat-CQyUVpLW.js → boat-BdJ1jyK_.js} +2 -2
  30. package/dist/{boat-CQyUVpLW.js.map → boat-BdJ1jyK_.js.map} +1 -1
  31. package/dist/{boat-BbF0BpAl.cjs → boat-DP98_5qG.cjs} +2 -2
  32. package/dist/{boat-BbF0BpAl.cjs.map → boat-DP98_5qG.cjs.map} +1 -1
  33. package/dist/boat.cjs +1 -1
  34. package/dist/boat.js +1 -1
  35. package/dist/busy.cjs +1 -1
  36. package/dist/busy.js +1 -1
  37. package/dist/button.cjs +1 -1
  38. package/dist/button.js +1 -1
  39. package/dist/card.cjs +1 -1
  40. package/dist/card.js +1 -1
  41. package/dist/{checkbox-7annHqhF.js → checkbox-4mBWkzKG.js} +2 -2
  42. package/dist/{checkbox-7annHqhF.js.map → checkbox-4mBWkzKG.js.map} +1 -1
  43. package/dist/{checkbox-CI4CDpoS.cjs → checkbox-CIMDI5hW.cjs} +2 -2
  44. package/dist/{checkbox-CI4CDpoS.cjs.map → checkbox-CIMDI5hW.cjs.map} +1 -1
  45. package/dist/checkbox.cjs +1 -1
  46. package/dist/checkbox.js +1 -1
  47. package/dist/chips.cjs +1 -1
  48. package/dist/chips.js +2 -2
  49. package/dist/code-highlight.cjs +1 -1
  50. package/dist/code-highlight.js +1 -1
  51. package/dist/{code-preview-zE_SbNNO.cjs → code-preview-CHuRZ9cY.cjs} +2 -2
  52. package/dist/{code-preview-zE_SbNNO.cjs.map → code-preview-CHuRZ9cY.cjs.map} +1 -1
  53. package/dist/{code-preview-Y783aZ7J.js → code-preview-DrB-Y8dn.js} +2 -2
  54. package/dist/{code-preview-Y783aZ7J.js.map → code-preview-DrB-Y8dn.js.map} +1 -1
  55. package/dist/components.cjs +1 -1
  56. package/dist/components.js +1 -1
  57. package/dist/content-drawer.cjs +1 -1
  58. package/dist/content-drawer.js +1 -1
  59. package/dist/{date-range-Bh2x7nlc.cjs → date-range-B0yz-_Zv.cjs} +2 -2
  60. package/dist/{date-range-Bh2x7nlc.cjs.map → date-range-B0yz-_Zv.cjs.map} +1 -1
  61. package/dist/{date-range-BtFn7iGs.js → date-range-CM-5J_JO.js} +3 -3
  62. package/dist/{date-range-BtFn7iGs.js.map → date-range-CM-5J_JO.js.map} +1 -1
  63. package/dist/{date-range-inline-BnGPY5ZY.js → date-range-inline-CPI4EyL0.js} +3 -3
  64. package/dist/{date-range-inline-BnGPY5ZY.js.map → date-range-inline-CPI4EyL0.js.map} +1 -1
  65. package/dist/{date-range-inline-C_6N7yca.cjs → date-range-inline-P8P2ixg1.cjs} +2 -2
  66. package/dist/{date-range-inline-C_6N7yca.cjs.map → date-range-inline-P8P2ixg1.cjs.map} +1 -1
  67. package/dist/date-range-inline.cjs +1 -1
  68. package/dist/date-range-inline.js +1 -1
  69. package/dist/date-range.cjs +1 -1
  70. package/dist/date-range.js +1 -1
  71. package/dist/{delay-DgBkfK3a.cjs → delay-1aTGz1ZH.cjs} +2 -2
  72. package/dist/{delay-DgBkfK3a.cjs.map → delay-1aTGz1ZH.cjs.map} +1 -1
  73. package/dist/{delay-DafLdRaR.js → delay-Lg_7K_Vi.js} +2 -2
  74. package/dist/{delay-DafLdRaR.js.map → delay-Lg_7K_Vi.js.map} +1 -1
  75. package/dist/delay.cjs +1 -1
  76. package/dist/delay.js +1 -1
  77. package/dist/{details-89R5QI1S.js → details-gUvX6sxc.js} +2 -2
  78. package/dist/{details-89R5QI1S.js.map → details-gUvX6sxc.js.map} +1 -1
  79. package/dist/{details-DpodqE31.cjs → details-uxsPpjMp.cjs} +2 -2
  80. package/dist/{details-DpodqE31.cjs.map → details-uxsPpjMp.cjs.map} +1 -1
  81. package/dist/details.cjs +1 -1
  82. package/dist/details.js +1 -1
  83. package/dist/{dialog-content-S6k16Le_.cjs → dialog-content-CvVd9EwS.cjs} +2 -2
  84. package/dist/{dialog-content-S6k16Le_.cjs.map → dialog-content-CvVd9EwS.cjs.map} +1 -1
  85. package/dist/{dialog-content-CGt4hZZn.js → dialog-content-DKLDmgfz.js} +3 -3
  86. package/dist/{dialog-content-CGt4hZZn.js.map → dialog-content-DKLDmgfz.js.map} +1 -1
  87. package/dist/dialog.cjs +1 -1
  88. package/dist/dialog.js +1 -1
  89. package/dist/{divider-CUFy4oEY.cjs → divider-CHGffGro.cjs} +2 -2
  90. package/dist/{divider-CUFy4oEY.cjs.map → divider-CHGffGro.cjs.map} +1 -1
  91. package/dist/{divider-dTggJNS0.js → divider-EvBnlb2a.js} +3 -3
  92. package/dist/{divider-dTggJNS0.js.map → divider-EvBnlb2a.js.map} +1 -1
  93. package/dist/divider.cjs +1 -1
  94. package/dist/divider.js +1 -1
  95. package/dist/{dropdown-content-D7dvNRRR.cjs → dropdown-content-FVKimBQR.cjs} +2 -2
  96. package/dist/{dropdown-content-D7dvNRRR.cjs.map → dropdown-content-FVKimBQR.cjs.map} +1 -1
  97. package/dist/{dropdown-content-Bty4mF1A.js → dropdown-content-NGBIkvdR.js} +3 -3
  98. package/dist/{dropdown-content-Bty4mF1A.js.map → dropdown-content-NGBIkvdR.js.map} +1 -1
  99. package/dist/dropdown.cjs +1 -1
  100. package/dist/dropdown.js +1 -1
  101. package/dist/{email-recipients-Tb0UBtjf.js → email-recipients-CXFSIsL-.js} +5 -5
  102. package/dist/{email-recipients-Tb0UBtjf.js.map → email-recipients-CXFSIsL-.js.map} +1 -1
  103. package/dist/{email-recipients-DKDl1Qlt.cjs → email-recipients-DxqCC99q.cjs} +2 -2
  104. package/dist/{email-recipients-DKDl1Qlt.cjs.map → email-recipients-DxqCC99q.cjs.map} +1 -1
  105. package/dist/extra.cjs +1 -1
  106. package/dist/extra.js +1 -1
  107. package/dist/{flex-CYF9ejQL.js → flex-Cm4nZM9q.js} +2 -2
  108. package/dist/{flex-CYF9ejQL.js.map → flex-Cm4nZM9q.js.map} +1 -1
  109. package/dist/{flex-zkXsvBw6.cjs → flex-DisTVvBI.cjs} +2 -2
  110. package/dist/{flex-zkXsvBw6.cjs.map → flex-DisTVvBI.cjs.map} +1 -1
  111. package/dist/{form-DdQgacXw.js → form-BU9TBjfk.js} +2 -2
  112. package/dist/{form-DdQgacXw.js.map → form-BU9TBjfk.js.map} +1 -1
  113. package/dist/{form-D-CgyzE3.cjs → form-SMbhjYsC.cjs} +2 -2
  114. package/dist/{form-D-CgyzE3.cjs.map → form-SMbhjYsC.cjs.map} +1 -1
  115. package/dist/form.cjs +1 -1
  116. package/dist/form.js +1 -1
  117. package/dist/{formField.mixin-C7xna5S7.cjs → formField.mixin-DYkeOpES.cjs} +2 -2
  118. package/dist/{formField.mixin-C7xna5S7.cjs.map → formField.mixin-DYkeOpES.cjs.map} +1 -1
  119. package/dist/{formField.mixin-Cc6iv6e6.js → formField.mixin-DxhnL3Kb.js} +2 -2
  120. package/dist/{formField.mixin-Cc6iv6e6.js.map → formField.mixin-DxhnL3Kb.js.map} +1 -1
  121. package/dist/{icon-CFM5r0Fm.cjs → icon-BT_1B5_G.cjs} +2 -2
  122. package/dist/{icon-CFM5r0Fm.cjs.map → icon-BT_1B5_G.cjs.map} +1 -1
  123. package/dist/{icon-CYqOQBoE.js → icon-Cgd3NUcv.js} +2 -2
  124. package/dist/{icon-CYqOQBoE.js.map → icon-Cgd3NUcv.js.map} +1 -1
  125. package/dist/{icon-button-Bf_dCRHx.cjs → icon-button-C5hq1cKD.cjs} +2 -2
  126. package/dist/{icon-button-Bf_dCRHx.cjs.map → icon-button-C5hq1cKD.cjs.map} +1 -1
  127. package/dist/{icon-button-BSCcuC7U.js → icon-button-DsjqusZz.js} +3 -3
  128. package/dist/{icon-button-BSCcuC7U.js.map → icon-button-DsjqusZz.js.map} +1 -1
  129. package/dist/icons.cjs +1 -1
  130. package/dist/icons.js +1 -1
  131. package/dist/index.cjs +1 -1
  132. package/dist/index.js +49 -49
  133. package/dist/{input-CNs7L8A9.js → input-Bj4MTOC9.js} +3 -3
  134. package/dist/{input-CNs7L8A9.js.map → input-Bj4MTOC9.js.map} +1 -1
  135. package/dist/{input-D9B5aydv.cjs → input-D3qmQZ-Y.cjs} +2 -2
  136. package/dist/{input-D9B5aydv.cjs.map → input-D3qmQZ-Y.cjs.map} +1 -1
  137. package/dist/{input-chip-Bu8DLVMh.cjs → input-chip-CbD-eDs-.cjs} +2 -2
  138. package/dist/{input-chip-Bu8DLVMh.cjs.map → input-chip-CbD-eDs-.cjs.map} +1 -1
  139. package/dist/{input-chip-CPNF4szF.js → input-chip-DiThsRoi.js} +2 -2
  140. package/dist/{input-chip-CPNF4szF.js.map → input-chip-DiThsRoi.js.map} +1 -1
  141. package/dist/input.cjs +1 -1
  142. package/dist/input.js +1 -1
  143. package/dist/layout.cjs +1 -1
  144. package/dist/layout.js +1 -1
  145. package/dist/{list-Ds8oKtEs.cjs → list-5Y_CGGJF.cjs} +2 -2
  146. package/dist/{list-Ds8oKtEs.cjs.map → list-5Y_CGGJF.cjs.map} +1 -1
  147. package/dist/{list-Cp-TE18p.js → list-CAFpmXsb.js} +2 -2
  148. package/dist/{list-Cp-TE18p.js.map → list-CAFpmXsb.js.map} +1 -1
  149. package/dist/list.cjs +1 -1
  150. package/dist/list.js +1 -1
  151. package/dist/{litElement.mixin-7HEBIRUp.js → litElement.mixin-Bv6DGuhe.js} +2 -2
  152. package/dist/{litElement.mixin-7HEBIRUp.js.map → litElement.mixin-Bv6DGuhe.js.map} +1 -1
  153. package/dist/{litElement.mixin-DIoywlzp.cjs → litElement.mixin-rWG9s46P.cjs} +2 -2
  154. package/dist/{litElement.mixin-DIoywlzp.cjs.map → litElement.mixin-rWG9s46P.cjs.map} +1 -1
  155. package/dist/mailbox.cjs +1 -1
  156. package/dist/mailbox.js +1 -1
  157. package/dist/{map-DRCyozDz.cjs → map-bTOQf8Jm.cjs} +2 -2
  158. package/dist/{map-DRCyozDz.cjs.map → map-bTOQf8Jm.cjs.map} +1 -1
  159. package/dist/{map-CaTzsyI7.js → map-yv8FB9mG.js} +2 -2
  160. package/dist/{map-CaTzsyI7.js.map → map-yv8FB9mG.js.map} +1 -1
  161. package/dist/map.cjs +1 -1
  162. package/dist/map.js +1 -1
  163. package/dist/{media-Xr5pO0WU.js → media-CA52MXd3.js} +2 -2
  164. package/dist/{media-Xr5pO0WU.js.map → media-CA52MXd3.js.map} +1 -1
  165. package/dist/{media-DdzYh2k5.cjs → media-CPIoKlRw.cjs} +2 -2
  166. package/dist/{media-DdzYh2k5.cjs.map → media-CPIoKlRw.cjs.map} +1 -1
  167. package/dist/{menu-C-Lvh3cn.js → menu-BKO9PgJq.js} +3 -3
  168. package/dist/{menu-C-Lvh3cn.js.map → menu-BKO9PgJq.js.map} +1 -1
  169. package/dist/{menu-S_OxKAxt.cjs → menu-Cak8SbFx.cjs} +2 -2
  170. package/dist/{menu-S_OxKAxt.cjs.map → menu-Cak8SbFx.cjs.map} +1 -1
  171. package/dist/menu.cjs +1 -1
  172. package/dist/menu.js +1 -1
  173. package/dist/nav-drawer.cjs +1 -1
  174. package/dist/nav-drawer.js +1 -1
  175. package/dist/navigation-bar.cjs +1 -1
  176. package/dist/navigation-bar.js +1 -1
  177. package/dist/navigation-rail-C8OOb0V3.js +564 -0
  178. package/dist/navigation-rail-C8OOb0V3.js.map +1 -0
  179. package/dist/navigation-rail-D1iYDMy2.cjs +415 -0
  180. package/dist/navigation-rail-D1iYDMy2.cjs.map +1 -0
  181. package/dist/navigation-rail.cjs +1 -1
  182. package/dist/navigation-rail.js +1 -1
  183. package/dist/{notification-service-Bi9hRE33.cjs → notification-service-DaXxcXyj.cjs} +2 -2
  184. package/dist/{notification-service-Bi9hRE33.cjs.map → notification-service-DaXxcXyj.cjs.map} +1 -1
  185. package/dist/{notification-service-36m9Setj.js → notification-service-jfBwJ2TN.js} +4 -4
  186. package/dist/{notification-service-36m9Setj.js.map → notification-service-jfBwJ2TN.js.map} +1 -1
  187. package/dist/notification.cjs +1 -1
  188. package/dist/notification.js +2 -2
  189. package/dist/{notify-BcimHn85.js → notify-C5gy3egX.js} +2 -2
  190. package/dist/{notify-BcimHn85.js.map → notify-C5gy3egX.js.map} +1 -1
  191. package/dist/{notify-BLdA7aAa.cjs → notify-Dd5h2l-v.cjs} +2 -2
  192. package/dist/{notify-BLdA7aAa.cjs.map → notify-Dd5h2l-v.cjs.map} +1 -1
  193. package/dist/{option-C9QLuFcY.cjs → option-C6PwIhut.cjs} +2 -2
  194. package/dist/{option-C9QLuFcY.cjs.map → option-C6PwIhut.cjs.map} +1 -1
  195. package/dist/{option-DwEBerwR.js → option-D7b-uGff.js} +2 -2
  196. package/dist/{option-DwEBerwR.js.map → option-D7b-uGff.js.map} +1 -1
  197. package/dist/option.cjs +1 -1
  198. package/dist/option.js +1 -1
  199. package/dist/{payment-card-form-DGdRK0yK.cjs → payment-card-form-DTfoZiiN.cjs} +2 -2
  200. package/dist/{payment-card-form-DGdRK0yK.cjs.map → payment-card-form-DTfoZiiN.cjs.map} +1 -1
  201. package/dist/{payment-card-form-B1uZ9JUa.js → payment-card-form-xwk5dfeQ.js} +3 -3
  202. package/dist/{payment-card-form-B1uZ9JUa.js.map → payment-card-form-xwk5dfeQ.js.map} +1 -1
  203. package/dist/{progress-B3hQmGMa.js → progress-D-5gThOU.js} +2 -2
  204. package/dist/{progress-B3hQmGMa.js.map → progress-D-5gThOU.js.map} +1 -1
  205. package/dist/{progress-DQwzTPYM.cjs → progress-sFt6EeRy.cjs} +2 -2
  206. package/dist/{progress-DQwzTPYM.cjs.map → progress-sFt6EeRy.cjs.map} +1 -1
  207. package/dist/progress.cjs +1 -1
  208. package/dist/progress.js +1 -1
  209. package/dist/{radio-button-DDE3kwPV.js → radio-button-CZq8Z-V-.js} +3 -3
  210. package/dist/{radio-button-DDE3kwPV.js.map → radio-button-CZq8Z-V-.js.map} +1 -1
  211. package/dist/{radio-button-CJhEZw8n.cjs → radio-button-Cc5fCDdU.cjs} +2 -2
  212. package/dist/{radio-button-CJhEZw8n.cjs.map → radio-button-Cc5fCDdU.cjs.map} +1 -1
  213. package/dist/radio-group.cjs +1 -1
  214. package/dist/radio-group.js +1 -1
  215. package/dist/{schmancy-steps-container-COzUZD-d.cjs → schmancy-steps-container-Cb-cUZWP.cjs} +2 -2
  216. package/dist/{schmancy-steps-container-COzUZD-d.cjs.map → schmancy-steps-container-Cb-cUZWP.cjs.map} +1 -1
  217. package/dist/{schmancy-steps-container-Bk6YDDXz.js → schmancy-steps-container-DkPckhRw.js} +2 -2
  218. package/dist/{schmancy-steps-container-Bk6YDDXz.js.map → schmancy-steps-container-DkPckhRw.js.map} +1 -1
  219. package/dist/{select-BKkGETee.js → select-BxlDe36e.js} +27 -21
  220. package/dist/select-BxlDe36e.js.map +1 -0
  221. package/dist/select-Cod_lOwT.cjs +57 -0
  222. package/dist/select-Cod_lOwT.cjs.map +1 -0
  223. package/dist/select.cjs +1 -1
  224. package/dist/select.js +1 -1
  225. package/dist/{sheet-_Nwjk8tC.js → sheet-BscruHZw.js} +3 -3
  226. package/dist/{sheet-_Nwjk8tC.js.map → sheet-BscruHZw.js.map} +1 -1
  227. package/dist/{sheet-_3iJjzla.cjs → sheet-ZHVITumf.cjs} +2 -2
  228. package/dist/{sheet-_3iJjzla.cjs.map → sheet-ZHVITumf.cjs.map} +1 -1
  229. package/dist/sheet.cjs +1 -1
  230. package/dist/sheet.js +1 -1
  231. package/dist/{slider-CvoNTGfb.cjs → slider-BKUCiMOV.cjs} +2 -2
  232. package/dist/{slider-CvoNTGfb.cjs.map → slider-BKUCiMOV.cjs.map} +1 -1
  233. package/dist/{slider-BawxkW-m.js → slider-gBHyj2TC.js} +3 -3
  234. package/dist/{slider-BawxkW-m.js.map → slider-gBHyj2TC.js.map} +1 -1
  235. package/dist/slider.cjs +1 -1
  236. package/dist/slider.js +1 -1
  237. package/dist/{spinner-CreHceHO.cjs → spinner-CiRbCC74.cjs} +2 -2
  238. package/dist/{spinner-CreHceHO.cjs.map → spinner-CiRbCC74.cjs.map} +1 -1
  239. package/dist/{spinner-BSaeqgVi.js → spinner-DZ3oE5cQ.js} +2 -2
  240. package/dist/{spinner-BSaeqgVi.js.map → spinner-DZ3oE5cQ.js.map} +1 -1
  241. package/dist/steps.cjs +1 -1
  242. package/dist/steps.js +1 -1
  243. package/dist/{suggestion-chip-DgR-hY9P.cjs → suggestion-chip-AVshmS4V.cjs} +2 -2
  244. package/dist/{suggestion-chip-DgR-hY9P.cjs.map → suggestion-chip-AVshmS4V.cjs.map} +1 -1
  245. package/dist/{suggestion-chip-Ca9HEISE.js → suggestion-chip-CxQK5dcP.js} +3 -3
  246. package/dist/{suggestion-chip-Ca9HEISE.js.map → suggestion-chip-CxQK5dcP.js.map} +1 -1
  247. package/dist/{surface-DssJvvqY.js → surface-C4Lkv6Xu.js} +2 -2
  248. package/dist/{surface-DssJvvqY.js.map → surface-C4Lkv6Xu.js.map} +1 -1
  249. package/dist/{surface-FlpARbmi.cjs → surface-DTqeD1NX.cjs} +2 -2
  250. package/dist/{surface-FlpARbmi.cjs.map → surface-DTqeD1NX.cjs.map} +1 -1
  251. package/dist/surface.cjs +1 -1
  252. package/dist/surface.js +1 -1
  253. package/dist/{table-DbGq1vlq.cjs → table-CGB_dR8H.cjs} +2 -2
  254. package/dist/{table-DbGq1vlq.cjs.map → table-CGB_dR8H.cjs.map} +1 -1
  255. package/dist/{table-DcgdSj1D.js → table-D320TllW.js} +2 -2
  256. package/dist/{table-DcgdSj1D.js.map → table-D320TllW.js.map} +1 -1
  257. package/dist/table.cjs +1 -1
  258. package/dist/table.js +1 -1
  259. package/dist/{tabs-compatibility-Lffxgw0G.cjs → tabs-compatibility-C1ifLAs_.cjs} +2 -2
  260. package/dist/{tabs-compatibility-Lffxgw0G.cjs.map → tabs-compatibility-C1ifLAs_.cjs.map} +1 -1
  261. package/dist/{tabs-compatibility-yIZW7NeR.js → tabs-compatibility-DNkcL6dE.js} +2 -2
  262. package/dist/{tabs-compatibility-yIZW7NeR.js.map → tabs-compatibility-DNkcL6dE.js.map} +1 -1
  263. package/dist/tabs.cjs +1 -1
  264. package/dist/tabs.js +1 -1
  265. package/dist/tailwind.mixin-9XFzAXGw.js +43 -0
  266. package/dist/{tailwind.mixin-Dj-xh5c5.js.map → tailwind.mixin-9XFzAXGw.js.map} +1 -1
  267. package/dist/tailwind.mixin-ChrVaJHF.cjs +2 -0
  268. package/dist/{tailwind.mixin-Dwm4EWu8.cjs.map → tailwind.mixin-ChrVaJHF.cjs.map} +1 -1
  269. package/dist/teleport.cjs +1 -1
  270. package/dist/teleport.js +1 -1
  271. package/dist/{textarea-CwYuTsPD.cjs → textarea-1QvQzHKm.cjs} +2 -2
  272. package/dist/{textarea-CwYuTsPD.cjs.map → textarea-1QvQzHKm.cjs.map} +1 -1
  273. package/dist/{textarea-BQ94zdoX.js → textarea-B2U316Um.js} +2 -2
  274. package/dist/{textarea-BQ94zdoX.js.map → textarea-B2U316Um.js.map} +1 -1
  275. package/dist/textarea.cjs +1 -1
  276. package/dist/textarea.js +1 -1
  277. package/dist/{theme-button-CvJH2BwY.cjs → theme-button-B0n3kSd_.cjs} +2 -2
  278. package/dist/{theme-button-CvJH2BwY.cjs.map → theme-button-B0n3kSd_.cjs.map} +1 -1
  279. package/dist/{theme-button-CKt6f6kw.js → theme-button-zUYywyWx.js} +2 -2
  280. package/dist/{theme-button-CKt6f6kw.js.map → theme-button-zUYywyWx.js.map} +1 -1
  281. package/dist/theme-button.cjs +1 -1
  282. package/dist/theme-button.js +1 -1
  283. package/dist/theme.cjs +1 -1
  284. package/dist/{theme.component-DhaisaKD.cjs → theme.component-BLKJxyFX.cjs} +2 -2
  285. package/dist/{theme.component-DhaisaKD.cjs.map → theme.component-BLKJxyFX.cjs.map} +1 -1
  286. package/dist/{theme.component-DcPhAbxK.js → theme.component-DpPMKf8l.js} +2 -2
  287. package/dist/{theme.component-DcPhAbxK.js.map → theme.component-DpPMKf8l.js.map} +1 -1
  288. package/dist/theme.js +1 -1
  289. package/dist/{timezone-D7Ufhjog.cjs → timezone-DRSCR7bi.cjs} +2 -2
  290. package/dist/{timezone-D7Ufhjog.cjs.map → timezone-DRSCR7bi.cjs.map} +1 -1
  291. package/dist/{timezone-ikqEpkrq.js → timezone-DhLUcYcX.js} +3 -3
  292. package/dist/{timezone-ikqEpkrq.js.map → timezone-DhLUcYcX.js.map} +1 -1
  293. package/dist/{tooltip-Cod-ciP6.cjs → tooltip-B4nvmANO.cjs} +2 -2
  294. package/dist/{tooltip-Cod-ciP6.cjs.map → tooltip-B4nvmANO.cjs.map} +1 -1
  295. package/dist/{tooltip-DQeBYmkT.js → tooltip-tFxYzDct.js} +2 -2
  296. package/dist/{tooltip-DQeBYmkT.js.map → tooltip-tFxYzDct.js.map} +1 -1
  297. package/dist/tooltip.cjs +1 -1
  298. package/dist/tooltip.js +1 -1
  299. package/dist/{tree-BL71j34m.js → tree-C9gLZE_E.js} +2 -2
  300. package/dist/{tree-BL71j34m.js.map → tree-C9gLZE_E.js.map} +1 -1
  301. package/dist/{tree-DNJ-QNmK.cjs → tree-CRjGBeHH.cjs} +2 -2
  302. package/dist/{tree-DNJ-QNmK.cjs.map → tree-CRjGBeHH.cjs.map} +1 -1
  303. package/dist/tree.cjs +1 -1
  304. package/dist/tree.js +1 -1
  305. package/dist/{typewriter-KPl30p8k.js → typewriter-DN9HiCBW.js} +4 -4
  306. package/dist/{typewriter-KPl30p8k.js.map → typewriter-DN9HiCBW.js.map} +1 -1
  307. package/dist/{typewriter-HY8FFj0-.cjs → typewriter-VGsKEZOj.cjs} +2 -2
  308. package/dist/{typewriter-HY8FFj0-.cjs.map → typewriter-VGsKEZOj.cjs.map} +1 -1
  309. package/dist/typewriter.cjs +1 -1
  310. package/dist/typewriter.js +1 -1
  311. package/dist/{typography-D5Mf_MlW.js → typography-MN7P8my2.js} +2 -2
  312. package/dist/{typography-D5Mf_MlW.js.map → typography-MN7P8my2.js.map} +1 -1
  313. package/dist/{typography-eyw2Cqu6.cjs → typography-XN-pEi3Q.cjs} +2 -2
  314. package/dist/{typography-eyw2Cqu6.cjs.map → typography-XN-pEi3Q.cjs.map} +1 -1
  315. package/dist/typography.cjs +1 -1
  316. package/dist/typography.js +1 -1
  317. package/package.json +1 -1
  318. package/types/src/navigation-rail/index.d.ts +1 -1
  319. package/types/src/navigation-rail/navigation-rail-item.d.ts +89 -9
  320. package/types/src/navigation-rail/navigation-rail.d.ts +77 -9
  321. package/types/src/select/select.d.ts +2 -0
  322. package/dist/navigation-rail-item-CCuC37Dx.cjs +0 -116
  323. package/dist/navigation-rail-item-CCuC37Dx.cjs.map +0 -1
  324. package/dist/navigation-rail-item-CZKWN1Ki.js +0 -151
  325. package/dist/navigation-rail-item-CZKWN1Ki.js.map +0 -1
  326. package/dist/select-BKkGETee.js.map +0 -1
  327. package/dist/select-Cc96IjOA.cjs +0 -57
  328. package/dist/select-Cc96IjOA.cjs.map +0 -1
  329. package/dist/tailwind.mixin-Dj-xh5c5.js +0 -43
  330. package/dist/tailwind.mixin-Dwm4EWu8.cjs +0 -2
@@ -52,7 +52,7 @@ The `<schmancy-navigation-bar-item>` component represents an individual navigati
52
52
  ## Events
53
53
 
54
54
  ### bar-item-click
55
- Fired when the item is clicked (with 300ms debounce to prevent accidental double-clicks).
55
+ Fired when the item is clicked.
56
56
 
57
57
  ```javascript
58
58
  item.addEventListener('bar-item-click', (event) => {
@@ -68,9 +68,9 @@ Standard focus and blur events for accessibility.
68
68
  ## Features
69
69
 
70
70
  ### RxJS-Powered Interactions
71
- - **Click handling**: Uses RxJS observables with 300ms debounce for navigation events
72
- - **Ripple effects**: Immediate visual feedback without debounce
73
- - **Keyboard support**: Enter and Space keys properly handled with same debounce
71
+ - **Click handling**: Uses RxJS observables for instant navigation events
72
+ - **Ripple effects**: Immediate visual feedback on interaction
73
+ - **Keyboard support**: Enter and Space keys properly handled
74
74
  - **State management**: BehaviorSubject for reactive active state updates
75
75
 
76
76
  ### Full Clickable Area
@@ -140,8 +140,15 @@ schmancy-navigation-bar-item::part(button) {
140
140
  Programmatically set the active state of the item.
141
141
 
142
142
  ```javascript
143
- const item = document.querySelector('schmancy-navigation-bar-item');
144
- item.setActive(true); // Activate the item
143
+ // In Lit component - use property binding
144
+ @state() isActive = true;
145
+
146
+ render() {
147
+ return html`
148
+ <schmancy-navigation-bar-item ?active=${this.isActive}>
149
+ </schmancy-navigation-bar-item>
150
+ `;
151
+ }
145
152
  ```
146
153
 
147
154
  ## Integration Example
@@ -189,7 +196,7 @@ class AppNavigation extends LitElement {
189
196
  ## Accessibility
190
197
 
191
198
  ### Keyboard Support
192
- - `Enter` / `Space` - Activate the item (with 300ms debounce)
199
+ - `Enter` / `Space` - Activate the item instantly
193
200
  - Full focus management with visual indicators
194
201
  - `aria-pressed` attribute reflects active state
195
202
  - `aria-label` for badge notifications
@@ -203,7 +210,7 @@ class AppNavigation extends LitElement {
203
210
 
204
211
  ### RxJS Observables
205
212
  - Efficient event handling with proper cleanup
206
- - Debounced navigation events (300ms) prevent double-clicks
213
+ - Instant navigation events for responsive interaction
207
214
  - Immediate ripple feedback for better UX
208
215
  - Memory-safe with `takeUntil(this.disconnecting)`
209
216
 
@@ -225,11 +232,16 @@ class AppNavigation extends LitElement {
225
232
 
226
233
  ### Dynamic Badges
227
234
  ```javascript
228
- // Update badge based on notification count
229
- const updateBadge = (count) => {
230
- const item = document.querySelector('#notifications-item');
231
- item.badge = count > 0 ? String(count) : '';
232
- };
235
+ // In Lit component - use declarative binding
236
+ @state() notificationCount = 0;
237
+
238
+ render() {
239
+ return html`
240
+ <schmancy-navigation-bar-item
241
+ badge=${this.notificationCount > 0 ? String(this.notificationCount) : ''}
242
+ ></schmancy-navigation-bar-item>
243
+ `;
244
+ }
233
245
  ```
234
246
 
235
247
  ### Conditional Rendering
@@ -0,0 +1,475 @@
1
+ # Navigation Rail Component
2
+
3
+ **Material Design 3 Reference:** https://m3.material.io/components/navigation-rail/overview
4
+
5
+ A Material Design 3 compliant vertical navigation component that provides access to primary destinations in an application. The navigation rail is positioned on the left side of the screen with a fixed 80px width and offers a compact, ergonomic way to navigate between 3-7 primary sections.
6
+
7
+ ## Installation
8
+
9
+ ```typescript
10
+ import '@schmancy/navigation-rail'
11
+ import '@schmancy/navigation-rail/navigation-rail-item'
12
+
13
+ // Or import from main package
14
+ import { SchmancyNavigationRail, SchmancyNavigationRailItem } from '@schmancy'
15
+ ```
16
+
17
+ ## Basic Usage
18
+
19
+ ```html
20
+ <schmancy-navigation-rail activeIndex="0">
21
+ <schmancy-navigation-rail-item
22
+ icon="home"
23
+ label="Home"
24
+ value="/home">
25
+ </schmancy-navigation-rail-item>
26
+
27
+ <schmancy-navigation-rail-item
28
+ icon="search"
29
+ label="Search"
30
+ value="/search">
31
+ </schmancy-navigation-rail-item>
32
+
33
+ <schmancy-navigation-rail-item
34
+ icon="favorites"
35
+ label="Favorites"
36
+ value="/favorites">
37
+ </schmancy-navigation-rail-item>
38
+ </schmancy-navigation-rail>
39
+ ```
40
+
41
+ ## Navigation Rail Component
42
+
43
+ ### Properties
44
+
45
+ | Property | Type | Default | Description |
46
+ |----------|------|---------|-------------|
47
+ | `activeIndex` | `number` | `-1` | The currently active item index |
48
+ | `activeValue` | `string` | `''` | The currently active item value (for programmatic selection) |
49
+ | `labelVisibility` | `'all' \| 'selected' \| 'none'` | `'all'` | When to show labels for navigation items |
50
+ | `alignment` | `'top' \| 'center' \| 'bottom'` | `'top'` | Vertical alignment of navigation items |
51
+ | `showTooltips` | `boolean` | `true` | Show tooltips when labels are hidden |
52
+ | `keyboardNavigation` | `boolean` | `true` | Enable keyboard navigation with arrow keys |
53
+
54
+ ### Slots
55
+
56
+ | Slot | Description |
57
+ |------|-------------|
58
+ | `fab` | Floating Action Button at the top of the rail |
59
+ | `menu` | Menu button below the FAB |
60
+ | `header` | Custom header content |
61
+ | `footer` | Custom footer content |
62
+ | (default) | Navigation rail items |
63
+
64
+ ### Events
65
+
66
+ | Event | Detail | Description |
67
+ |-------|--------|-------------|
68
+ | `navigate` | `string` | Fired when a navigation item is selected, detail contains the value |
69
+ | `fab-click` | `void` | Fired when the FAB is clicked |
70
+ | `menu-click` | `void` | Fired when the menu button is clicked |
71
+
72
+ ### CSS Custom Properties
73
+
74
+ | Property | Default | Description |
75
+ |----------|---------|-------------|
76
+ | `--rail-width` | `80px` | Fixed width of the rail |
77
+ | `--rail-width-mobile` | `56px` | Width on mobile devices |
78
+
79
+ ### Methods
80
+
81
+ | Method | Description |
82
+ |--------|-------------|
83
+ | None | Component is controlled via properties and events |
84
+
85
+ ## Navigation Rail Item Component
86
+
87
+ ### Properties
88
+
89
+ | Property | Type | Default | Description |
90
+ |----------|------|---------|-------------|
91
+ | `icon` | `string` | `''` | Material Symbols icon name |
92
+ | `label` | `string` | `''` | Label text for the navigation item |
93
+ | `value` | `string` | `''` | Value associated with this item (useful for routing) |
94
+ | `active` | `boolean` | `false` | Whether this item is currently active/selected |
95
+ | `selected` | `boolean` | `false` | Alias for `active` property |
96
+ | `badge` | `string` | `''` | Badge text or number to display |
97
+ | `badgeVariant` | `'error' \| 'primary' \| 'secondary'` | `'error'` | Badge color variant |
98
+ | `showLabel` | `boolean` | `false` | Whether to show the label (controlled by parent rail) |
99
+ | `disabled` | `boolean` | `false` | Whether this item is disabled |
100
+ | `nested` | `boolean` | `false` | Whether this is a nested sub-navigation item |
101
+ | `group` | `boolean` | `false` | Whether this item represents a group separator |
102
+
103
+ ### Slots
104
+
105
+ | Slot | Description |
106
+ |------|-------------|
107
+ | `icon` | Custom icon content (e.g., `<schmancy-icon>`) |
108
+ | `badge` | Custom badge content |
109
+ | (default) | Custom content that replaces the entire item |
110
+
111
+ ### Events
112
+
113
+ | Event | Detail | Description |
114
+ |-------|--------|-------------|
115
+ | `navigate` | `string` | Fired when the item is clicked, detail contains the value |
116
+
117
+ ### CSS Custom Properties
118
+
119
+ | Property | Default | Description |
120
+ |----------|---------|-------------|
121
+ | `--rail-item-height` | `56px` | Item height |
122
+ | `--rail-item-icon-size` | `24px` | Icon size |
123
+ | `--rail-item-padding` | `12px` | Item padding |
124
+ | `--rail-item-gap` | `4px` | Gap between icon and label |
125
+
126
+ ## Examples
127
+
128
+ ### With FAB and Menu Button
129
+
130
+ ```html
131
+ <schmancy-navigation-rail
132
+ activeIndex="0"
133
+ labelVisibility="selected"
134
+ @navigation-change=${this.handleNavigation}
135
+ @fab-click=${this.handleFabClick}
136
+ @menu-click=${this.handleMenuClick}
137
+ >
138
+ <!-- Floating Action Button -->
139
+ <schmancy-button
140
+ slot="fab"
141
+ variant="filled"
142
+ aria-label="Compose"
143
+ >
144
+ <schmancy-icon>edit</schmancy-icon>
145
+ </schmancy-button>
146
+
147
+ <!-- Menu Button -->
148
+ <schmancy-button
149
+ slot="menu"
150
+ variant="text"
151
+ aria-label="Menu"
152
+ >
153
+ <schmancy-icon>menu</schmancy-icon>
154
+ </schmancy-button>
155
+
156
+ <!-- Navigation Items -->
157
+ <schmancy-navigation-rail-item
158
+ icon="inbox"
159
+ label="Inbox"
160
+ value="/inbox"
161
+ badge="12"
162
+ ></schmancy-navigation-rail-item>
163
+
164
+ <schmancy-navigation-rail-item
165
+ icon="send"
166
+ label="Sent"
167
+ value="/sent"
168
+ ></schmancy-navigation-rail-item>
169
+
170
+ <schmancy-navigation-rail-item
171
+ icon="drafts"
172
+ label="Drafts"
173
+ value="/drafts"
174
+ badge="3"
175
+ badgeVariant="secondary"
176
+ ></schmancy-navigation-rail-item>
177
+ </schmancy-navigation-rail>
178
+ ```
179
+
180
+ ### With Groups and Dividers
181
+
182
+ ```html
183
+ <schmancy-navigation-rail activeValue="dashboard">
184
+ <!-- Primary Navigation -->
185
+ <schmancy-navigation-rail-item
186
+ icon="dashboard"
187
+ label="Dashboard"
188
+ value="dashboard"
189
+ ></schmancy-navigation-rail-item>
190
+
191
+ <schmancy-navigation-rail-item
192
+ icon="analytics"
193
+ label="Analytics"
194
+ value="analytics"
195
+ ></schmancy-navigation-rail-item>
196
+
197
+ <!-- Divider -->
198
+ <schmancy-divider></schmancy-divider>
199
+
200
+ <!-- Secondary Navigation -->
201
+ <schmancy-navigation-rail-item
202
+ icon="folder"
203
+ label="Files"
204
+ value="files"
205
+ ></schmancy-navigation-rail-item>
206
+
207
+ <schmancy-navigation-rail-item
208
+ icon="people"
209
+ label="Team"
210
+ value="team"
211
+ ></schmancy-navigation-rail-item>
212
+
213
+ <!-- Footer Items -->
214
+ <div slot="footer">
215
+ <schmancy-navigation-rail-item
216
+ icon="settings"
217
+ label="Settings"
218
+ value="settings"
219
+ ></schmancy-navigation-rail-item>
220
+
221
+ <schmancy-navigation-rail-item
222
+ icon="account_circle"
223
+ label="Profile"
224
+ value="profile"
225
+ ></schmancy-navigation-rail-item>
226
+ </div>
227
+ </schmancy-navigation-rail>
228
+ ```
229
+
230
+ ### Rail with Custom Icons
231
+
232
+ ```html
233
+ <schmancy-navigation-rail
234
+ labelVisibility="selected"
235
+ showTooltips
236
+ >
237
+ <schmancy-navigation-rail-item label="Home">
238
+ <schmancy-icon slot="icon" fill="1">home</schmancy-icon>
239
+ </schmancy-navigation-rail-item>
240
+
241
+ <schmancy-navigation-rail-item label="Explore">
242
+ <schmancy-icon slot="icon" variant="rounded">explore</schmancy-icon>
243
+ </schmancy-navigation-rail-item>
244
+
245
+ <schmancy-navigation-rail-item label="Notifications" badge="New">
246
+ <schmancy-icon slot="icon" weight="600">notifications</schmancy-icon>
247
+ </schmancy-navigation-rail-item>
248
+ </schmancy-navigation-rail>
249
+ ```
250
+
251
+ ### Programmatic Control
252
+
253
+ ```typescript
254
+ import { SchmancyNavigationRail } from '@schmancy/navigation-rail'
255
+
256
+ class MyApp extends LitElement {
257
+ @query('schmancy-navigation-rail')
258
+ navigationRail!: SchmancyNavigationRail
259
+
260
+ // Select by index
261
+ selectHome() {
262
+ this.navigationRail.activeIndex = 0
263
+ }
264
+
265
+ // Select by value
266
+ selectByRoute(route: string) {
267
+ this.navigationRail.activeValue = route
268
+ }
269
+
270
+ // Handle navigation
271
+ handleNavigationChange(event: CustomEvent<string>) {
272
+ const value = event.detail
273
+ console.log(`Navigated to: ${value}`)
274
+
275
+ // Update route
276
+ this.router.navigate(value)
277
+ }
278
+
279
+ // Change label visibility programmatically
280
+ toggleLabels() {
281
+ this.navigationRail.labelVisibility =
282
+ this.navigationRail.labelVisibility === 'all' ? 'none' : 'all'
283
+ }
284
+
285
+ render() {
286
+ return html`
287
+ <schmancy-navigation-rail
288
+ @navigate=${this.handleNavigationChange}
289
+ >
290
+ <!-- items -->
291
+ </schmancy-navigation-rail>
292
+ `
293
+ }
294
+ }
295
+ ```
296
+
297
+ ### With Router Integration
298
+
299
+ ```typescript
300
+ import { Router } from '@vaadin/router'
301
+
302
+ class AppShell extends LitElement {
303
+ @state() currentRoute = '/'
304
+
305
+ firstUpdated() {
306
+ // Listen to router changes
307
+ window.addEventListener('vaadin-router-location-changed', (e) => {
308
+ this.currentRoute = e.detail.location.pathname
309
+ })
310
+ }
311
+
312
+ handleNavigation(event: CustomEvent<string>) {
313
+ Router.go(event.detail)
314
+ }
315
+
316
+ render() {
317
+ return html`
318
+ <schmancy-navigation-rail
319
+ .activeValue=${this.currentRoute}
320
+ @navigate=${this.handleNavigation}
321
+ labelVisibility="selected"
322
+ >
323
+ <schmancy-navigation-rail-item
324
+ icon="home"
325
+ label="Home"
326
+ value="/"
327
+ ></schmancy-navigation-rail-item>
328
+
329
+ <schmancy-navigation-rail-item
330
+ icon="dashboard"
331
+ label="Dashboard"
332
+ value="/dashboard"
333
+ ></schmancy-navigation-rail-item>
334
+
335
+ <schmancy-navigation-rail-item
336
+ icon="settings"
337
+ label="Settings"
338
+ value="/settings"
339
+ ></schmancy-navigation-rail-item>
340
+ </schmancy-navigation-rail>
341
+
342
+ <main>
343
+ <slot></slot> <!-- Router outlet -->
344
+ </main>
345
+ `
346
+ }
347
+ }
348
+ ```
349
+
350
+ ## Accessibility
351
+
352
+ The navigation rail components are fully accessible:
353
+
354
+ - **ARIA Roles**: Navigation container has `role="navigation"`, items have `role="listitem"`
355
+ - **Keyboard Navigation**:
356
+ - `ArrowUp/ArrowDown` - Navigate between items
357
+ - `Home/End` - Jump to first/last item
358
+ - `Enter/Space` - Select focused item
359
+ - `Tab` - Move focus in/out of rail
360
+ - **Screen Readers**: Proper ARIA labels and live regions
361
+ - **Focus Management**: Clear focus indicators and proper tab order
362
+ - **High Contrast**: Supports Windows High Contrast Mode
363
+
364
+ ## Responsive Behavior
365
+
366
+ The navigation rail adapts to different screen sizes:
367
+
368
+ - **Desktop** (>1024px): Full 80px width, shows all features
369
+ - **Tablet** (768-1024px): Reduced padding, optional label visibility
370
+ - **Mobile** (<768px): Collapses to 56px, icons only
371
+ - **Landscape Phone**: Reduced vertical spacing
372
+
373
+ ## Theming
374
+
375
+ The navigation rail uses Schmancy theme tokens:
376
+
377
+ ```css
378
+ /* Custom theming */
379
+ schmancy-navigation-rail {
380
+ /* Colors */
381
+ --schmancy-sys-color-surface-container: #f5f5f5;
382
+ --schmancy-sys-color-secondary-container: #e3f2fd;
383
+
384
+ /* Dimensions */
385
+ --rail-width: 80px;
386
+ --rail-width-mobile: 56px;
387
+ }
388
+
389
+ /* Dark theme */
390
+ @media (prefers-color-scheme: dark) {
391
+ schmancy-navigation-rail {
392
+ --schmancy-sys-color-surface-container: #1e1e1e;
393
+ }
394
+ }
395
+ ```
396
+
397
+ ## Best Practices
398
+
399
+ 1. **Item Count**: Use 3-7 primary destinations for optimal usability
400
+ 2. **Icons**: Use clear, recognizable Material Symbols icons
401
+ 3. **Labels**: Keep labels short and descriptive (1-2 words)
402
+ 4. **Hierarchy**: Place most important items at the top
403
+ 5. **Badges**: Use sparingly for important notifications
404
+ 6. **FAB**: Only include if there's a clear primary action
405
+ 7. **Label Visibility**: Use 'selected' for most cases, 'all' for better discoverability
406
+ 8. **Mobile**: Consider using bottom navigation bar on mobile instead
407
+
408
+ ## Migration Guide
409
+
410
+ ### From Navigation Drawer
411
+
412
+ ```html
413
+ <!-- Before: Navigation Drawer -->
414
+ <schmancy-nav-drawer>
415
+ <div slot="header">App Name</div>
416
+ <schmancy-list>
417
+ <schmancy-list-item>Home</schmancy-list-item>
418
+ </schmancy-list>
419
+ </schmancy-nav-drawer>
420
+
421
+ <!-- After: Navigation Rail -->
422
+ <schmancy-navigation-rail>
423
+ <div slot="header">
424
+ <schmancy-icon>logo</schmancy-icon>
425
+ </div>
426
+ <schmancy-navigation-rail-item
427
+ icon="home"
428
+ label="Home"
429
+ ></schmancy-navigation-rail-item>
430
+ </schmancy-navigation-rail>
431
+ ```
432
+
433
+ ### From Tab Bar
434
+
435
+ ```html
436
+ <!-- Before: Tab Bar -->
437
+ <schmancy-tabs>
438
+ <schmancy-tab>Home</schmancy-tab>
439
+ <schmancy-tab>Search</schmancy-tab>
440
+ </schmancy-tabs>
441
+
442
+ <!-- After: Navigation Rail -->
443
+ <schmancy-navigation-rail labelVisibility="always">
444
+ <schmancy-navigation-rail-item
445
+ icon="home"
446
+ label="Home"
447
+ ></schmancy-navigation-rail-item>
448
+ <schmancy-navigation-rail-item
449
+ icon="search"
450
+ label="Search"
451
+ ></schmancy-navigation-rail-item>
452
+ </schmancy-navigation-rail>
453
+ ```
454
+
455
+ ## Performance Considerations
456
+
457
+ - **Lazy Loading**: Navigation rail supports lazy loading of route components
458
+ - **Virtual Scrolling**: Automatically enabled for rails with many items
459
+ - **CSS Containment**: Uses CSS containment for optimal rendering
460
+ - **Event Delegation**: Efficient event handling for all items
461
+
462
+ ## Browser Support
463
+
464
+ - Chrome 90+
465
+ - Firefox 88+
466
+ - Safari 14+
467
+ - Edge 90+
468
+
469
+ ## Related Components
470
+
471
+ - `schmancy-navigation-bar` - Bottom navigation for mobile
472
+ - `schmancy-nav-drawer` - Full navigation drawer
473
+ - `schmancy-tabs` - Horizontal tab navigation
474
+ - `schmancy-button` - For FAB and menu buttons
475
+ - `schmancy-icon` - For navigation icons
@@ -52,7 +52,7 @@ The `<schmancy-navigation-bar-item>` component represents an individual navigati
52
52
  ## Events
53
53
 
54
54
  ### bar-item-click
55
- Fired when the item is clicked (with 300ms debounce to prevent accidental double-clicks).
55
+ Fired when the item is clicked.
56
56
 
57
57
  ```javascript
58
58
  item.addEventListener('bar-item-click', (event) => {
@@ -68,9 +68,9 @@ Standard focus and blur events for accessibility.
68
68
  ## Features
69
69
 
70
70
  ### RxJS-Powered Interactions
71
- - **Click handling**: Uses RxJS observables with 300ms debounce for navigation events
72
- - **Ripple effects**: Immediate visual feedback without debounce
73
- - **Keyboard support**: Enter and Space keys properly handled with same debounce
71
+ - **Click handling**: Uses RxJS observables for instant navigation events
72
+ - **Ripple effects**: Immediate visual feedback on interaction
73
+ - **Keyboard support**: Enter and Space keys properly handled
74
74
  - **State management**: BehaviorSubject for reactive active state updates
75
75
 
76
76
  ### Full Clickable Area
@@ -140,8 +140,15 @@ schmancy-navigation-bar-item::part(button) {
140
140
  Programmatically set the active state of the item.
141
141
 
142
142
  ```javascript
143
- const item = document.querySelector('schmancy-navigation-bar-item');
144
- item.setActive(true); // Activate the item
143
+ // In Lit component - use property binding
144
+ @state() isActive = true;
145
+
146
+ render() {
147
+ return html`
148
+ <schmancy-navigation-bar-item ?active=${this.isActive}>
149
+ </schmancy-navigation-bar-item>
150
+ `;
151
+ }
145
152
  ```
146
153
 
147
154
  ## Integration Example
@@ -189,7 +196,7 @@ class AppNavigation extends LitElement {
189
196
  ## Accessibility
190
197
 
191
198
  ### Keyboard Support
192
- - `Enter` / `Space` - Activate the item (with 300ms debounce)
199
+ - `Enter` / `Space` - Activate the item instantly
193
200
  - Full focus management with visual indicators
194
201
  - `aria-pressed` attribute reflects active state
195
202
  - `aria-label` for badge notifications
@@ -203,7 +210,7 @@ class AppNavigation extends LitElement {
203
210
 
204
211
  ### RxJS Observables
205
212
  - Efficient event handling with proper cleanup
206
- - Debounced navigation events (300ms) prevent double-clicks
213
+ - Instant navigation events for responsive interaction
207
214
  - Immediate ripple feedback for better UX
208
215
  - Memory-safe with `takeUntil(this.disconnecting)`
209
216
 
@@ -225,11 +232,16 @@ class AppNavigation extends LitElement {
225
232
 
226
233
  ### Dynamic Badges
227
234
  ```javascript
228
- // Update badge based on notification count
229
- const updateBadge = (count) => {
230
- const item = document.querySelector('#notifications-item');
231
- item.badge = count > 0 ? String(count) : '';
232
- };
235
+ // In Lit component - use declarative binding
236
+ @state() notificationCount = 0;
237
+
238
+ render() {
239
+ return html`
240
+ <schmancy-navigation-bar-item
241
+ badge=${this.notificationCount > 0 ? String(this.notificationCount) : ''}
242
+ ></schmancy-navigation-bar-item>
243
+ `;
244
+ }
233
245
  ```
234
246
 
235
247
  ### Conditional Rendering