@mhmo91/schmancy 0.9.3 → 0.9.4

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 (369) hide show
  1. package/ai/INDEX.md +53 -302
  2. package/ai/area.md +91 -165
  3. package/ai/mailbox.md +1 -1
  4. package/ai/mixins.md +37 -139
  5. package/ai/store.md +70 -136
  6. package/dist/ai/INDEX.md +53 -302
  7. package/dist/ai/area.md +91 -165
  8. package/dist/ai/mailbox.md +1 -1
  9. package/dist/ai/mixins.md +37 -139
  10. package/dist/ai/store.md +70 -136
  11. package/dist/{area-CC8fUnra.js → area-CRoGqD_u.js} +2 -2
  12. package/dist/area-CRoGqD_u.js.map +1 -0
  13. package/dist/{area-wnWUAHEn.cjs → area-JPykB7A9.cjs} +1 -1
  14. package/dist/area-JPykB7A9.cjs.map +1 -0
  15. package/dist/area.cjs +1 -1
  16. package/dist/area.js +1 -1
  17. package/dist/{autocomplete-B2Z3WK_7.cjs → autocomplete-5rVhbieU.cjs} +1 -1
  18. package/dist/{autocomplete-B2Z3WK_7.cjs.map → autocomplete-5rVhbieU.cjs.map} +1 -1
  19. package/dist/{autocomplete-CJ7YgtKN.js → autocomplete-BllPQwr8.js} +3 -3
  20. package/dist/{autocomplete-CJ7YgtKN.js.map → autocomplete-BllPQwr8.js.map} +1 -1
  21. package/dist/autocomplete.cjs +1 -1
  22. package/dist/autocomplete.js +1 -1
  23. package/dist/badge.cjs +1 -1
  24. package/dist/badge.js +1 -1
  25. package/dist/{boat-C9eU6NO-.js → boat-BDTQ-du9.js} +2 -2
  26. package/dist/{boat-C9eU6NO-.js.map → boat-BDTQ-du9.js.map} +1 -1
  27. package/dist/{boat-B57_4TzJ.cjs → boat-DYEAZ8Qj.cjs} +1 -1
  28. package/dist/{boat-B57_4TzJ.cjs.map → boat-DYEAZ8Qj.cjs.map} +1 -1
  29. package/dist/boat.cjs +1 -1
  30. package/dist/boat.js +1 -1
  31. package/dist/{busy-CGZXy0h-.js → busy-ChDAeaKF.js} +1 -1
  32. package/dist/{busy-CGZXy0h-.js.map → busy-ChDAeaKF.js.map} +1 -1
  33. package/dist/{busy--6oimtop.cjs → busy-Dj7Xn0Z0.cjs} +1 -1
  34. package/dist/{busy--6oimtop.cjs.map → busy-Dj7Xn0Z0.cjs.map} +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 +2 -2
  39. package/dist/{card-BGJ0Hb1O.cjs → card-BvPWVEJX.cjs} +1 -1
  40. package/dist/{card-BGJ0Hb1O.cjs.map → card-BvPWVEJX.cjs.map} +1 -1
  41. package/dist/{card-C-ee-l5O.js → card-DZFPRPqs.js} +1 -1
  42. package/dist/{card-C-ee-l5O.js.map → card-DZFPRPqs.js.map} +1 -1
  43. package/dist/card.cjs +1 -1
  44. package/dist/card.js +1 -1
  45. package/dist/charts.cjs +1 -1
  46. package/dist/charts.js +2 -2
  47. package/dist/{checkbox-DuYaKoDZ.cjs → checkbox-BC_37rsG.cjs} +1 -1
  48. package/dist/{checkbox-DuYaKoDZ.cjs.map → checkbox-BC_37rsG.cjs.map} +1 -1
  49. package/dist/{checkbox-FRcorDrD.js → checkbox-GSSjqo6w.js} +1 -1
  50. package/dist/{checkbox-FRcorDrD.js.map → checkbox-GSSjqo6w.js.map} +1 -1
  51. package/dist/checkbox.cjs +1 -1
  52. package/dist/checkbox.js +1 -1
  53. package/dist/{chips-BpA0A-qr.cjs → chips-B19XS8Xc.cjs} +1 -1
  54. package/dist/{chips-BpA0A-qr.cjs.map → chips-B19XS8Xc.cjs.map} +1 -1
  55. package/dist/{chips-CyzNbKJD.js → chips-B9oAEfE_.js} +3 -3
  56. package/dist/{chips-CyzNbKJD.js.map → chips-B9oAEfE_.js.map} +1 -1
  57. package/dist/chips.cjs +1 -1
  58. package/dist/chips.js +2 -2
  59. package/dist/{code-highlight-C7O9ltXm.js → code-highlight-DCk5lJY-.js} +1 -1
  60. package/dist/{code-highlight-C7O9ltXm.js.map → code-highlight-DCk5lJY-.js.map} +1 -1
  61. package/dist/{code-highlight-DsBdSQBG.cjs → code-highlight-fSLrlgOb.cjs} +1 -1
  62. package/dist/{code-highlight-DsBdSQBG.cjs.map → code-highlight-fSLrlgOb.cjs.map} +1 -1
  63. package/dist/code-highlight.cjs +1 -1
  64. package/dist/code-highlight.js +1 -1
  65. package/dist/{components-CkMvOiTR.js → components-COsM6sJZ.js} +2 -2
  66. package/dist/{components-CkMvOiTR.js.map → components-COsM6sJZ.js.map} +1 -1
  67. package/dist/{components-dDI3xeIf.cjs → components-CyD6a7gQ.cjs} +1 -1
  68. package/dist/{components-dDI3xeIf.cjs.map → components-CyD6a7gQ.cjs.map} +1 -1
  69. package/dist/components.cjs +1 -1
  70. package/dist/components.js +1 -1
  71. package/dist/connectivity.cjs +1 -1
  72. package/dist/connectivity.js +1 -1
  73. package/dist/content-drawer.cjs +1 -1
  74. package/dist/content-drawer.js +1 -1
  75. package/dist/{date-range-BrN_Bs6_.js → date-range-Sfyco9-n.js} +3 -3
  76. package/dist/{date-range-BrN_Bs6_.js.map → date-range-Sfyco9-n.js.map} +1 -1
  77. package/dist/{date-range-70zhLUKE.cjs → date-range-ZAaQB22I.cjs} +1 -1
  78. package/dist/{date-range-70zhLUKE.cjs.map → date-range-ZAaQB22I.cjs.map} +1 -1
  79. package/dist/{date-range-inline-Cp294DxR.js → date-range-inline-Bl8qbiQF.js} +1 -1
  80. package/dist/{date-range-inline-Cp294DxR.js.map → date-range-inline-Bl8qbiQF.js.map} +1 -1
  81. package/dist/{date-range-inline-CPzD-tIv.cjs → date-range-inline-m7nLjOMI.cjs} +1 -1
  82. package/dist/{date-range-inline-CPzD-tIv.cjs.map → date-range-inline-m7nLjOMI.cjs.map} +1 -1
  83. package/dist/date-range-inline.cjs +1 -1
  84. package/dist/date-range-inline.js +1 -1
  85. package/dist/date-range.cjs +1 -1
  86. package/dist/date-range.js +1 -1
  87. package/dist/{delay-COcAkBqB.cjs → delay-7boauN6N.cjs} +1 -1
  88. package/dist/{delay-COcAkBqB.cjs.map → delay-7boauN6N.cjs.map} +1 -1
  89. package/dist/{delay-IV0Swce2.js → delay-CgX6m0HN.js} +3 -3
  90. package/dist/{delay-IV0Swce2.js.map → delay-CgX6m0HN.js.map} +1 -1
  91. package/dist/delay.cjs +1 -1
  92. package/dist/delay.js +1 -1
  93. package/dist/{details-DgWkPqmt.cjs → details-BHnk8l4q.cjs} +1 -1
  94. package/dist/{details-DgWkPqmt.cjs.map → details-BHnk8l4q.cjs.map} +1 -1
  95. package/dist/{details-CuKmr3Qw.js → details-BPkUg8Cq.js} +2 -2
  96. package/dist/{details-CuKmr3Qw.js.map → details-BPkUg8Cq.js.map} +1 -1
  97. package/dist/details.cjs +1 -1
  98. package/dist/details.js +1 -1
  99. package/dist/dialog.cjs +1 -1
  100. package/dist/dialog.js +2 -2
  101. package/dist/directives.cjs.map +1 -1
  102. package/dist/directives.js.map +1 -1
  103. package/dist/discovery.cjs.map +1 -1
  104. package/dist/discovery.js.map +1 -1
  105. package/dist/{divider-BWoUbfgZ.js → divider-CW9a7MMj.js} +2 -2
  106. package/dist/{divider-BWoUbfgZ.js.map → divider-CW9a7MMj.js.map} +1 -1
  107. package/dist/{divider-BghtrMbn.cjs → divider-_khrhrZo.cjs} +1 -1
  108. package/dist/{divider-BghtrMbn.cjs.map → divider-_khrhrZo.cjs.map} +1 -1
  109. package/dist/divider.cjs +1 -1
  110. package/dist/divider.js +1 -1
  111. package/dist/dropdown.cjs +1 -1
  112. package/dist/dropdown.js +2 -2
  113. package/dist/{expand-XyDE5SsO.cjs → expand-Cp7-PH8b.cjs} +1 -1
  114. package/dist/{expand-XyDE5SsO.cjs.map → expand-Cp7-PH8b.cjs.map} +1 -1
  115. package/dist/{expand-CJU9m4ga.js → expand-iQ7EOMP7.js} +3 -3
  116. package/dist/{expand-CJU9m4ga.js.map → expand-iQ7EOMP7.js.map} +1 -1
  117. package/dist/expand.cjs +1 -1
  118. package/dist/expand.js +1 -1
  119. package/dist/{extra-CsrRKKqE.cjs → extra-IKAiJJhv.cjs} +1 -1
  120. package/dist/{extra-CsrRKKqE.cjs.map → extra-IKAiJJhv.cjs.map} +1 -1
  121. package/dist/{extra-BxXFmW1w.js → extra-wEpvEFbK.js} +2 -2
  122. package/dist/{extra-BxXFmW1w.js.map → extra-wEpvEFbK.js.map} +1 -1
  123. package/dist/extra.cjs +1 -1
  124. package/dist/extra.js +1 -1
  125. package/dist/{float-BD86t_NU.js → float-BQ_urmMs.js} +2 -2
  126. package/dist/{float-BD86t_NU.js.map → float-BQ_urmMs.js.map} +1 -1
  127. package/dist/{float-DBv1FINW.cjs → float-D5rNC82i.cjs} +1 -1
  128. package/dist/{float-DBv1FINW.cjs.map → float-D5rNC82i.cjs.map} +1 -1
  129. package/dist/float.cjs +1 -1
  130. package/dist/float.js +1 -1
  131. package/dist/{form-D0bIeDWT.cjs → form-BqN1AGFj.cjs} +1 -1
  132. package/dist/{form-D0bIeDWT.cjs.map → form-BqN1AGFj.cjs.map} +1 -1
  133. package/dist/{form-Cp5-I_ZV.js → form-CajC5HnO.js} +1 -1
  134. package/dist/{form-Cp5-I_ZV.js.map → form-CajC5HnO.js.map} +1 -1
  135. package/dist/form.cjs +1 -1
  136. package/dist/form.js +1 -1
  137. package/dist/{icons-D8w_20mO.cjs → icons-B57_93VV.cjs} +1 -1
  138. package/dist/{icons-D8w_20mO.cjs.map → icons-B57_93VV.cjs.map} +1 -1
  139. package/dist/{icons-BpU0_l92.js → icons-BDqiGXrO.js} +1 -1
  140. package/dist/{icons-BpU0_l92.js.map → icons-BDqiGXrO.js.map} +1 -1
  141. package/dist/icons.cjs +1 -1
  142. package/dist/icons.js +1 -1
  143. package/dist/{iframe-BjwxA2Pg.cjs → iframe-DNHL3GIk.cjs} +1 -1
  144. package/dist/{iframe-BjwxA2Pg.cjs.map → iframe-DNHL3GIk.cjs.map} +1 -1
  145. package/dist/{iframe-tY1GY5g1.js → iframe-WnWPIrBG.js} +1 -1
  146. package/dist/{iframe-tY1GY5g1.js.map → iframe-WnWPIrBG.js.map} +1 -1
  147. package/dist/iframe.cjs +1 -1
  148. package/dist/iframe.js +1 -1
  149. package/dist/index.cjs +1 -1
  150. package/dist/index.js +33 -33
  151. package/dist/{input-BwxwognS.cjs → input-BiSrTcrR.cjs} +1 -1
  152. package/dist/{input-BwxwognS.cjs.map → input-BiSrTcrR.cjs.map} +1 -1
  153. package/dist/{input-BnfTpRN9.js → input-VaXHFrRn.js} +1 -1
  154. package/dist/{input-BnfTpRN9.js.map → input-VaXHFrRn.js.map} +1 -1
  155. package/dist/{input-chip-MjOwX5EY.cjs → input-chip-Dy-AiP55.cjs} +1 -1
  156. package/dist/{input-chip-MjOwX5EY.cjs.map → input-chip-Dy-AiP55.cjs.map} +1 -1
  157. package/dist/{input-chip-CkM2aYmO.js → input-chip-QejNcRnS.js} +1 -1
  158. package/dist/{input-chip-CkM2aYmO.js.map → input-chip-QejNcRnS.js.map} +1 -1
  159. package/dist/input.cjs +1 -1
  160. package/dist/input.js +1 -1
  161. package/dist/json.cjs +1 -1
  162. package/dist/json.js +2 -2
  163. package/dist/{layout-CJSlZlFL.js → layout-CnsXeCAy.js} +2 -2
  164. package/dist/{layout-CJSlZlFL.js.map → layout-CnsXeCAy.js.map} +1 -1
  165. package/dist/{layout-BV0EeyUS.cjs → layout-DNYG3phx.cjs} +1 -1
  166. package/dist/{layout-BV0EeyUS.cjs.map → layout-DNYG3phx.cjs.map} +1 -1
  167. package/dist/layout.cjs +1 -1
  168. package/dist/layout.js +2 -2
  169. package/dist/{lightbox-groqGmJH.js → lightbox-BrI1Z31s.js} +2 -2
  170. package/dist/{lightbox-groqGmJH.js.map → lightbox-BrI1Z31s.js.map} +1 -1
  171. package/dist/{lightbox-CpNMZHZW.cjs → lightbox-CmACf0t5.cjs} +1 -1
  172. package/dist/{lightbox-CpNMZHZW.cjs.map → lightbox-CmACf0t5.cjs.map} +1 -1
  173. package/dist/lightbox.cjs +1 -1
  174. package/dist/lightbox.js +1 -1
  175. package/dist/{list-DzkqT_r-.js → list-Cm-jjXxM.js} +2 -2
  176. package/dist/{list-DzkqT_r-.js.map → list-Cm-jjXxM.js.map} +1 -1
  177. package/dist/{list-CyHd0Zc2.cjs → list-swIL9VDv.cjs} +1 -1
  178. package/dist/{list-CyHd0Zc2.cjs.map → list-swIL9VDv.cjs.map} +1 -1
  179. package/dist/list.cjs +1 -1
  180. package/dist/list.js +1 -1
  181. package/dist/{litElement.mixin-BG6_-nYX.cjs → litElement.mixin-3llHwB-8.cjs} +1 -1
  182. package/dist/{litElement.mixin-BG6_-nYX.cjs.map → litElement.mixin-3llHwB-8.cjs.map} +1 -1
  183. package/dist/{litElement.mixin-Dm-4L8zL.js → litElement.mixin-6jJYHCrZ.js} +1 -1
  184. package/dist/{litElement.mixin-Dm-4L8zL.js.map → litElement.mixin-6jJYHCrZ.js.map} +1 -1
  185. package/dist/{mailbox-BcqnXYVP.js → mailbox-BuvsVaAQ.js} +4 -4
  186. package/dist/{mailbox-BcqnXYVP.js.map → mailbox-BuvsVaAQ.js.map} +1 -1
  187. package/dist/{mailbox-C5eYTd7p.cjs → mailbox-D6LkQcN5.cjs} +1 -1
  188. package/dist/{mailbox-C5eYTd7p.cjs.map → mailbox-D6LkQcN5.cjs.map} +1 -1
  189. package/dist/mailbox.cjs +1 -1
  190. package/dist/mailbox.js +1 -1
  191. package/dist/{map-C0o1PgLE.js → map-CQiKAxC3.js} +1 -1
  192. package/dist/{map-C0o1PgLE.js.map → map-CQiKAxC3.js.map} +1 -1
  193. package/dist/{map-BncheFt5.cjs → map-D5NN4VET.cjs} +1 -1
  194. package/dist/{map-BncheFt5.cjs.map → map-D5NN4VET.cjs.map} +1 -1
  195. package/dist/map.cjs +1 -1
  196. package/dist/map.js +1 -1
  197. package/dist/{menu-uwqlQbLd.js → menu-C1x04YZw.js} +2 -2
  198. package/dist/{menu-uwqlQbLd.js.map → menu-C1x04YZw.js.map} +1 -1
  199. package/dist/{menu-yXzwJZFf.cjs → menu-CkgMO9K5.cjs} +1 -1
  200. package/dist/{menu-yXzwJZFf.cjs.map → menu-CkgMO9K5.cjs.map} +1 -1
  201. package/dist/menu.cjs +1 -1
  202. package/dist/menu.js +1 -1
  203. package/dist/mixins.cjs +1 -1
  204. package/dist/mixins.js +3 -3
  205. package/dist/nav-drawer.cjs +1 -1
  206. package/dist/nav-drawer.js +1 -1
  207. package/dist/navigation-bar.cjs +1 -1
  208. package/dist/navigation-bar.js +1 -1
  209. package/dist/navigation-rail.cjs +1 -1
  210. package/dist/navigation-rail.js +2 -2
  211. package/dist/{notification-DzYT4deA.js → notification-BnBgxjF-.js} +3 -3
  212. package/dist/{notification-DzYT4deA.js.map → notification-BnBgxjF-.js.map} +1 -1
  213. package/dist/{notification-BjwTfLAl.cjs → notification-CZFEhWxc.cjs} +1 -1
  214. package/dist/{notification-BjwTfLAl.cjs.map → notification-CZFEhWxc.cjs.map} +1 -1
  215. package/dist/notification.cjs +1 -1
  216. package/dist/notification.js +1 -1
  217. package/dist/{option-BJsD3u2D.cjs → option-BrxCVwSx.cjs} +1 -1
  218. package/dist/{option-BJsD3u2D.cjs.map → option-BrxCVwSx.cjs.map} +1 -1
  219. package/dist/{option-JFHxgiYl.js → option-DBO8xZwd.js} +1 -1
  220. package/dist/{option-JFHxgiYl.js.map → option-DBO8xZwd.js.map} +1 -1
  221. package/dist/option.cjs +1 -1
  222. package/dist/option.js +1 -1
  223. package/dist/page.cjs +1 -1
  224. package/dist/page.js +3 -3
  225. package/dist/{progress-BoRmyGAa.cjs → progress-Db2e4_Zd.cjs} +1 -1
  226. package/dist/{progress-BoRmyGAa.cjs.map → progress-Db2e4_Zd.cjs.map} +1 -1
  227. package/dist/{progress-BUh5WBqx.js → progress-DeiHxXo7.js} +2 -2
  228. package/dist/{progress-BUh5WBqx.js.map → progress-DeiHxXo7.js.map} +1 -1
  229. package/dist/progress.cjs +1 -1
  230. package/dist/progress.js +1 -1
  231. package/dist/{provide-8MrDz_qX.js → provide-C1aQhxYo.js} +1 -1
  232. package/dist/{provide-8MrDz_qX.js.map → provide-C1aQhxYo.js.map} +1 -1
  233. package/dist/{provide-CDkxgjHb.cjs → provide-DHnhQtCH.cjs} +1 -1
  234. package/dist/{provide-CDkxgjHb.cjs.map → provide-DHnhQtCH.cjs.map} +1 -1
  235. package/dist/qr-scanner.cjs +1 -1
  236. package/dist/qr-scanner.js +2 -2
  237. package/dist/{radio-group-rhrvhB5X.cjs → radio-group-Cspwd-Vw.cjs} +1 -1
  238. package/dist/{radio-group-rhrvhB5X.cjs.map → radio-group-Cspwd-Vw.cjs.map} +1 -1
  239. package/dist/{radio-group-DbOWUPhi.js → radio-group-zSO0AkJf.js} +1 -1
  240. package/dist/{radio-group-DbOWUPhi.js.map → radio-group-zSO0AkJf.js.map} +1 -1
  241. package/dist/radio-group.cjs +1 -1
  242. package/dist/radio-group.js +1 -1
  243. package/dist/range.cjs +1 -1
  244. package/dist/range.js +1 -1
  245. package/dist/{scroll-BE9W9PF2.cjs → scroll-QMCmbbDv.cjs} +1 -1
  246. package/dist/{scroll-BE9W9PF2.cjs.map → scroll-QMCmbbDv.cjs.map} +1 -1
  247. package/dist/{scroll-qGks1R0k.js → scroll-cBDzye64.js} +1 -1
  248. package/dist/{scroll-qGks1R0k.js.map → scroll-cBDzye64.js.map} +1 -1
  249. package/dist/{select-DXU2kzg4.cjs → select-Ct37l3lg.cjs} +1 -1
  250. package/dist/{select-DXU2kzg4.cjs.map → select-Ct37l3lg.cjs.map} +1 -1
  251. package/dist/{select-D9sgBRjU.js → select-c6HbWvKP.js} +2 -2
  252. package/dist/{select-D9sgBRjU.js.map → select-c6HbWvKP.js.map} +1 -1
  253. package/dist/select.cjs +1 -1
  254. package/dist/select.js +1 -1
  255. package/dist/{sheet-CIxCCJ3H.js → sheet-BMXcUiIm.js} +4 -4
  256. package/dist/{sheet-CIxCCJ3H.js.map → sheet-BMXcUiIm.js.map} +1 -1
  257. package/dist/{sheet-CeX6BbNp.cjs → sheet-CQec-bCV.cjs} +1 -1
  258. package/dist/{sheet-CeX6BbNp.cjs.map → sheet-CQec-bCV.cjs.map} +1 -1
  259. package/dist/sheet.cjs +1 -1
  260. package/dist/sheet.js +2 -2
  261. package/dist/{sheet.service-CAB7weBc.js → sheet.service-BcPV3Du4.js} +1 -1
  262. package/dist/{sheet.service-CAB7weBc.js.map → sheet.service-BcPV3Du4.js.map} +1 -1
  263. package/dist/{sheet.service-DPAp7E3x.cjs → sheet.service-Dumvr1HT.cjs} +1 -1
  264. package/dist/{sheet.service-DPAp7E3x.cjs.map → sheet.service-Dumvr1HT.cjs.map} +1 -1
  265. package/dist/slider.cjs +1 -1
  266. package/dist/slider.js +2 -2
  267. package/dist/{src-CbO5kJ2O.js → src-BLngW2bl.js} +42 -42
  268. package/dist/{src-CbO5kJ2O.js.map → src-BLngW2bl.js.map} +1 -1
  269. package/dist/{src-SraDxEeg.cjs → src-BtQVyqMy.cjs} +1 -1
  270. package/dist/{src-SraDxEeg.cjs.map → src-BtQVyqMy.cjs.map} +1 -1
  271. package/dist/steps.cjs +1 -1
  272. package/dist/steps.js +3 -3
  273. package/dist/{surface-DuH0pm2v.cjs → surface-BjKZoJxK.cjs} +1 -1
  274. package/dist/{surface-DuH0pm2v.cjs.map → surface-BjKZoJxK.cjs.map} +1 -1
  275. package/dist/{surface-eN_Jy2MJ.js → surface-pK8hME5c.js} +3 -3
  276. package/dist/{surface-eN_Jy2MJ.js.map → surface-pK8hME5c.js.map} +1 -1
  277. package/dist/surface.cjs +1 -1
  278. package/dist/surface.js +1 -1
  279. package/dist/{surface.mixin-CIXgN6iw.cjs → surface.mixin-C5sDI1-_.cjs} +1 -1
  280. package/dist/{surface.mixin-CIXgN6iw.cjs.map → surface.mixin-C5sDI1-_.cjs.map} +1 -1
  281. package/dist/{surface.mixin-D9jv1sKG.js → surface.mixin-CBNRpJum.js} +1 -1
  282. package/dist/{surface.mixin-D9jv1sKG.js.map → surface.mixin-CBNRpJum.js.map} +1 -1
  283. package/dist/{table-Dg_tUGB_.js → table-BXIHX9h4.js} +2 -2
  284. package/dist/{table-Dg_tUGB_.js.map → table-BXIHX9h4.js.map} +1 -1
  285. package/dist/{table-C9rRQJEB.cjs → table-CiqgZzSd.cjs} +1 -1
  286. package/dist/{table-C9rRQJEB.cjs.map → table-CiqgZzSd.cjs.map} +1 -1
  287. package/dist/table.cjs +1 -1
  288. package/dist/table.js +1 -1
  289. package/dist/{tabs-soTL-x4G.cjs → tabs-CKa-W4qA.cjs} +1 -1
  290. package/dist/{tabs-soTL-x4G.cjs.map → tabs-CKa-W4qA.cjs.map} +1 -1
  291. package/dist/{tabs-BbFC9omR.js → tabs-nbV5eblZ.js} +2 -2
  292. package/dist/{tabs-BbFC9omR.js.map → tabs-nbV5eblZ.js.map} +1 -1
  293. package/dist/tabs.cjs +1 -1
  294. package/dist/tabs.js +1 -1
  295. package/dist/tailwind.mixin-BCJOOX1_.js +225 -0
  296. package/dist/tailwind.mixin-BCJOOX1_.js.map +1 -0
  297. package/dist/tailwind.mixin-BF1Huas7.cjs +2 -0
  298. package/dist/tailwind.mixin-BF1Huas7.cjs.map +1 -0
  299. package/dist/teleport.cjs +1 -1
  300. package/dist/teleport.js +1 -1
  301. package/dist/{textarea-DaRUJ0ri.cjs → textarea-Cp1ZE60O.cjs} +1 -1
  302. package/dist/{textarea-DaRUJ0ri.cjs.map → textarea-Cp1ZE60O.cjs.map} +1 -1
  303. package/dist/{textarea-hChvHbNM.js → textarea-D7q8exMg.js} +1 -1
  304. package/dist/{textarea-hChvHbNM.js.map → textarea-D7q8exMg.js.map} +1 -1
  305. package/dist/textarea.cjs +1 -1
  306. package/dist/textarea.js +1 -1
  307. package/dist/{theme-ZYH2MqX9.cjs → theme-Da4SPq9X.cjs} +1 -1
  308. package/dist/{theme-ZYH2MqX9.cjs.map → theme-Da4SPq9X.cjs.map} +1 -1
  309. package/dist/{theme-B0M8Hlyo.js → theme-_VPV6Bxh.js} +3 -3
  310. package/dist/{theme-B0M8Hlyo.js.map → theme-_VPV6Bxh.js.map} +1 -1
  311. package/dist/{theme-button-BtlX_Zgd.js → theme-button--sX8A-m1.js} +1 -1
  312. package/dist/{theme-button-BtlX_Zgd.js.map → theme-button--sX8A-m1.js.map} +1 -1
  313. package/dist/{theme-button-Dvqg-rE_.cjs → theme-button-Ci8VQ7KW.cjs} +1 -1
  314. package/dist/{theme-button-Dvqg-rE_.cjs.map → theme-button-Ci8VQ7KW.cjs.map} +1 -1
  315. package/dist/theme-button.cjs +1 -1
  316. package/dist/theme-button.js +1 -1
  317. package/dist/theme.cjs +1 -1
  318. package/dist/theme.js +2 -2
  319. package/dist/tooltip.cjs +1 -1
  320. package/dist/tooltip.js +1 -1
  321. package/dist/tree.cjs +1 -1
  322. package/dist/tree.js +1 -1
  323. package/dist/{typewriter-Cf9f2bdx.cjs → typewriter-B2TnHPjw.cjs} +1 -1
  324. package/dist/{typewriter-Cf9f2bdx.cjs.map → typewriter-B2TnHPjw.cjs.map} +1 -1
  325. package/dist/{typewriter-CCel8Nta.js → typewriter-BrZNa8T-.js} +3 -3
  326. package/dist/{typewriter-CCel8Nta.js.map → typewriter-BrZNa8T-.js.map} +1 -1
  327. package/dist/typewriter.cjs +1 -1
  328. package/dist/typewriter.js +1 -1
  329. package/dist/typography.cjs +1 -1
  330. package/dist/typography.js +1 -1
  331. package/dist/{window-CbgdwOZD.js → window-CM1ycigo.js} +2 -2
  332. package/dist/{window-CbgdwOZD.js.map → window-CM1ycigo.js.map} +1 -1
  333. package/dist/{window-B9_14c12.cjs → window-Uii13x_r.cjs} +1 -1
  334. package/dist/{window-B9_14c12.cjs.map → window-Uii13x_r.cjs.map} +1 -1
  335. package/dist/window.cjs +1 -1
  336. package/dist/window.js +1 -1
  337. package/mixins/baseElement.ts +1 -1
  338. package/mixins/discovery.service.ts +1 -1
  339. package/package.json +1 -2
  340. package/src/area/area.service.ts +1 -1
  341. package/src/area/router.types.ts +1 -1
  342. package/src/directives/animate-text.ts +1 -1
  343. package/src/discovery/discovery.service.ts +1 -1
  344. package/src/input/input.ts +1 -1
  345. package/src/mailbox/README.md +7 -10
  346. package/src/mailbox/types.ts +0 -1
  347. package/types/mixins/discovery.service.d.ts +1 -1
  348. package/types/src/discovery/discovery.service.d.ts +1 -1
  349. package/types/src/mailbox/types.d.ts +0 -1
  350. package/dist/area-CC8fUnra.js.map +0 -1
  351. package/dist/area-wnWUAHEn.cjs.map +0 -1
  352. package/dist/tailwind.mixin-BIVhjNvD.js +0 -225
  353. package/dist/tailwind.mixin-BIVhjNvD.js.map +0 -1
  354. package/dist/tailwind.mixin-DSuEu-y3.cjs +0 -2
  355. package/dist/tailwind.mixin-DSuEu-y3.cjs.map +0 -1
  356. package/src/area/readme.md +0 -338
  357. package/src/area/router-guide.md +0 -360
  358. package/src/autocomplete/README.md +0 -485
  359. package/src/content-drawer/readme.md +0 -709
  360. package/src/icons/readme.md +0 -37
  361. package/src/list/readme.md +0 -62
  362. package/src/radio-group/readme.md +0 -315
  363. package/src/select/README.md +0 -405
  364. package/src/tabs/Readme.md +0 -397
  365. package/src/teleport/readme.md +0 -91
  366. package/src/tree/README.md +0 -59
  367. package/src/typewriter/IMPROVEMENTS.md +0 -174
  368. package/src/typewriter/QUICK_REFERENCE.md +0 -166
  369. package/src/typewriter/test-typewriter.html +0 -97
@@ -1,709 +0,0 @@
1
- # Schmancy Content Drawer
2
-
3
- A sophisticated drawer/sheet component system that provides sliding panels for content organization, navigation, and modal interactions. Perfect for creating responsive layouts with collapsible sidebars, bottom sheets, and overlay panels.
4
-
5
- ## 🎯 Overview
6
-
7
- The Content Drawer system consists of multiple components that work together to create flexible, animated drawer experiences:
8
-
9
- - **Content Drawer** - The main container that orchestrates drawer behavior
10
- - **Main Content** - The primary content area that adjusts when drawers open
11
- - **Sheet/Drawer** - The sliding panel that contains secondary content
12
- - **Context System** - Shared state management for drawer coordination
13
-
14
- ## 🚀 Key Features
15
-
16
- - **Responsive Design** - Automatically adapts between mobile and desktop layouts
17
- - **Smooth Animations** - Hardware-accelerated transitions for fluid interactions
18
- - **Flexible Positioning** - Support for left, right, top, and bottom drawers
19
- - **State Management** - Built-in context system for complex drawer hierarchies
20
- - **Touch Gestures** - Swipe to open/close on mobile devices
21
- - **Accessibility** - Full keyboard navigation and screen reader support
22
- - **Theme Integration** - Follows Material Design 3 principles
23
-
24
- ## 📦 Basic Usage
25
-
26
- ```html
27
- <schmancy-content-drawer>
28
- <schmancy-content-drawer-main>
29
- <!-- Main content goes here -->
30
- <h1>Main Application Content</h1>
31
- <p>This content will shift when the drawer opens.</p>
32
- </schmancy-content-drawer-main>
33
-
34
- <schmancy-content-drawer-sheet>
35
- <!-- Drawer content goes here -->
36
- <nav>
37
- <h2>Navigation</h2>
38
- <ul>
39
- <li>Home</li>
40
- <li>About</li>
41
- <li>Contact</li>
42
- </ul>
43
- </nav>
44
- </schmancy-content-drawer-sheet>
45
- </schmancy-content-drawer>
46
- ```
47
-
48
- ## 🎨 Examples
49
-
50
- ### Navigation Drawer
51
-
52
- ```typescript
53
- import { LitElement, html } from 'lit'
54
- import { customElement, state } from 'lit/decorators.js'
55
- import '@schmancy/content-drawer'
56
-
57
- @customElement('app-layout')
58
- export class AppLayout extends LitElement {
59
- @state() drawerOpen = false
60
-
61
- render() {
62
- return html`
63
- <schmancy-content-drawer ?open=${this.drawerOpen}>
64
- <schmancy-content-drawer-main>
65
- <header>
66
- <schmancy-icon-button
67
- icon="menu"
68
- @click=${() => this.drawerOpen = !this.drawerOpen}
69
- ></schmancy-icon-button>
70
- <h1>My Application</h1>
71
- </header>
72
-
73
- <main>
74
- <!-- Main app content -->
75
- </main>
76
- </schmancy-content-drawer-main>
77
-
78
- <schmancy-content-drawer-sheet width="280px">
79
- <div class="drawer-header">
80
- <img src="logo.png" alt="Logo" />
81
- <h2>App Name</h2>
82
- </div>
83
-
84
- <schmancy-list>
85
- <schmancy-list-item @click=${() => this.navigate('home')}>
86
- <schmancy-icon slot="start">home</schmancy-icon>
87
- Home
88
- </schmancy-list-item>
89
- <schmancy-list-item @click=${() => this.navigate('profile')}>
90
- <schmancy-icon slot="start">person</schmancy-icon>
91
- Profile
92
- </schmancy-list-item>
93
- <schmancy-list-item @click=${() => this.navigate('settings')}>
94
- <schmancy-icon slot="start">settings</schmancy-icon>
95
- Settings
96
- </schmancy-list-item>
97
- </schmancy-list>
98
- </schmancy-content-drawer-sheet>
99
- </schmancy-content-drawer>
100
- `
101
- }
102
-
103
- navigate(page: string) {
104
- // Handle navigation
105
- this.drawerOpen = false
106
- }
107
- }
108
- ```
109
-
110
- ### Responsive Bottom Sheet
111
-
112
- ```typescript
113
- @customElement('mobile-actions')
114
- export class MobileActions extends LitElement {
115
- @state() sheetOpen = false
116
- @state() selectedImage: File | null = null
117
-
118
- render() {
119
- return html`
120
- <schmancy-content-drawer
121
- ?open=${this.sheetOpen}
122
- position="bottom"
123
- @drawer-closed=${() => this.sheetOpen = false}
124
- >
125
- <schmancy-content-drawer-main>
126
- <div class="image-picker">
127
- <schmancy-button @click=${() => this.sheetOpen = true}>
128
- ${this.selectedImage ? 'Change Image' : 'Select Image'}
129
- </schmancy-button>
130
-
131
- ${this.selectedImage ? html`
132
- <img src=${URL.createObjectURL(this.selectedImage)} />
133
- ` : ''}
134
- </div>
135
- </schmancy-content-drawer-main>
136
-
137
- <schmancy-content-drawer-sheet height="auto" max-height="50vh">
138
- <div class="sheet-handle"></div>
139
- <h3>Select Image Source</h3>
140
-
141
- <schmancy-list>
142
- <schmancy-list-item @click=${() => this.selectSource('camera')}>
143
- <schmancy-icon slot="start">photo_camera</schmancy-icon>
144
- Take Photo
145
- </schmancy-list-item>
146
- <schmancy-list-item @click=${() => this.selectSource('gallery')}>
147
- <schmancy-icon slot="start">photo_library</schmancy-icon>
148
- Choose from Gallery
149
- </schmancy-list-item>
150
- <schmancy-list-item @click=${() => this.selectSource('files')}>
151
- <schmancy-icon slot="start">folder</schmancy-icon>
152
- Browse Files
153
- </schmancy-list-item>
154
- </schmancy-list>
155
- </schmancy-content-drawer-sheet>
156
- </schmancy-content-drawer>
157
- `
158
- }
159
-
160
- selectSource(source: string) {
161
- // Handle source selection
162
- this.sheetOpen = false
163
- }
164
- }
165
- ```
166
-
167
- ### Persistent Sidebar with Context
168
-
169
- ```typescript
170
- import { contentDrawerContext } from '@schmancy/content-drawer'
171
-
172
- @customElement('dashboard-layout')
173
- export class DashboardLayout extends LitElement {
174
- private drawerContext = contentDrawerContext.create('main-drawer')
175
-
176
- connectedCallback() {
177
- super.connectedCallback()
178
-
179
- // Subscribe to drawer state changes
180
- this.drawerContext.state$.subscribe(state => {
181
- console.log('Drawer state:', state)
182
- })
183
-
184
- // Check screen size for responsive behavior
185
- const mediaQuery = window.matchMedia('(min-width: 1024px)')
186
- this.drawerContext.setPersistent(mediaQuery.matches)
187
-
188
- mediaQuery.addEventListener('change', (e) => {
189
- this.drawerContext.setPersistent(e.matches)
190
- })
191
- }
192
-
193
- render() {
194
- return html`
195
- <schmancy-content-drawer
196
- .context=${this.drawerContext}
197
- variant="persistent"
198
- breakpoint="1024px"
199
- >
200
- <schmancy-content-drawer-main>
201
- <schmancy-app-bar>
202
- <schmancy-icon-button
203
- icon="menu"
204
- @click=${() => this.drawerContext.toggle()}
205
- ></schmancy-icon-button>
206
- <span>Dashboard</span>
207
- </schmancy-app-bar>
208
-
209
- <div class="dashboard-content">
210
- <!-- Dashboard widgets -->
211
- </div>
212
- </schmancy-content-drawer-main>
213
-
214
- <schmancy-content-drawer-sheet width="240px">
215
- <div class="sidebar">
216
- <div class="user-info">
217
- <schmancy-avatar>JD</schmancy-avatar>
218
- <div>
219
- <div class="name">John Doe</div>
220
- <div class="email">john@example.com</div>
221
- </div>
222
- </div>
223
-
224
- <schmancy-divider></schmancy-divider>
225
-
226
- <nav>
227
- <a href="/dashboard" class="nav-item active">
228
- <schmancy-icon>dashboard</schmancy-icon>
229
- Dashboard
230
- </a>
231
- <a href="/analytics" class="nav-item">
232
- <schmancy-icon>analytics</schmancy-icon>
233
- Analytics
234
- </a>
235
- <a href="/reports" class="nav-item">
236
- <schmancy-icon>description</schmancy-icon>
237
- Reports
238
- </a>
239
- </nav>
240
- </div>
241
- </schmancy-content-drawer-sheet>
242
- </schmancy-content-drawer>
243
- `
244
- }
245
- }
246
- ```
247
-
248
- ### Multi-level Drawer System
249
-
250
- ```typescript
251
- @customElement('nested-navigation')
252
- export class NestedNavigation extends LitElement {
253
- private mainDrawer = contentDrawerContext.create('main')
254
- private subDrawer = contentDrawerContext.create('sub')
255
-
256
- @state() selectedCategory: string = ''
257
-
258
- render() {
259
- return html`
260
- <schmancy-content-drawer .context=${this.mainDrawer}>
261
- <schmancy-content-drawer-main>
262
- <!-- Main drawer for categories -->
263
- <schmancy-content-drawer .context=${this.subDrawer}>
264
- <schmancy-content-drawer-main>
265
- <!-- Application content -->
266
- <button @click=${() => this.mainDrawer.open()}>
267
- Open Menu
268
- </button>
269
- </schmancy-content-drawer-main>
270
-
271
- <!-- Sub drawer for items -->
272
- <schmancy-content-drawer-sheet
273
- width="280px"
274
- offset="240px"
275
- >
276
- <div class="sub-drawer-header">
277
- <schmancy-icon-button
278
- icon="arrow_back"
279
- @click=${() => this.subDrawer.close()}
280
- ></schmancy-icon-button>
281
- <h3>${this.selectedCategory}</h3>
282
- </div>
283
-
284
- <schmancy-list>
285
- ${this.getItemsForCategory(this.selectedCategory).map(item => html`
286
- <schmancy-list-item>${item}</schmancy-list-item>
287
- `)}
288
- </schmancy-list>
289
- </schmancy-content-drawer-sheet>
290
- </schmancy-content-drawer>
291
- </schmancy-content-drawer-main>
292
-
293
- <!-- Main drawer for categories -->
294
- <schmancy-content-drawer-sheet width="240px">
295
- <h2>Categories</h2>
296
- <schmancy-list>
297
- ${this.categories.map(category => html`
298
- <schmancy-list-item @click=${() => this.openSubDrawer(category)}>
299
- <schmancy-icon slot="start">${category.icon}</schmancy-icon>
300
- ${category.name}
301
- <schmancy-icon slot="end">chevron_right</schmancy-icon>
302
- </schmancy-list-item>
303
- `)}
304
- </schmancy-list>
305
- </schmancy-content-drawer-sheet>
306
- </schmancy-content-drawer>
307
- `
308
- }
309
-
310
- openSubDrawer(category: any) {
311
- this.selectedCategory = category.name
312
- this.subDrawer.open()
313
- }
314
- }
315
- ```
316
-
317
- ## 🎯 AI Integration Examples
318
-
319
- ### Smart Command Palette
320
-
321
- ```typescript
322
- @customElement('ai-command-drawer')
323
- export class AICommandDrawer extends LitElement {
324
- @state() query = ''
325
- @state() results: any[] = []
326
- @state() isProcessing = false
327
-
328
- private drawer = contentDrawerContext.create('command')
329
-
330
- render() {
331
- return html`
332
- <schmancy-content-drawer
333
- .context=${this.drawer}
334
- position="top"
335
- variant="modal"
336
- >
337
- <schmancy-content-drawer-main>
338
- <!-- Main app content -->
339
- </schmancy-content-drawer-main>
340
-
341
- <schmancy-content-drawer-sheet height="400px">
342
- <div class="command-palette">
343
- <schmancy-input
344
- placeholder="Ask me anything..."
345
- .value=${this.query}
346
- @input=${this.handleInput}
347
- autofocus
348
- >
349
- <schmancy-icon slot="prefix">
350
- ${this.isProcessing ? 'hourglass_empty' : 'search'}
351
- </schmancy-icon>
352
- </schmancy-input>
353
-
354
- <div class="results">
355
- ${this.results.map(result => html`
356
- <div class="result-item" @click=${() => this.executeAction(result)}>
357
- <schmancy-icon>${result.icon}</schmancy-icon>
358
- <div class="result-content">
359
- <div class="title">${result.title}</div>
360
- <div class="description">${result.description}</div>
361
- </div>
362
- ${result.shortcut ? html`
363
- <kbd>${result.shortcut}</kbd>
364
- ` : ''}
365
- </div>
366
- `)}
367
- </div>
368
-
369
- ${this.isProcessing ? html`
370
- <div class="processing">
371
- <schmancy-circular-progress></schmancy-circular-progress>
372
- <span>Thinking...</span>
373
- </div>
374
- ` : ''}
375
- </div>
376
- </schmancy-content-drawer-sheet>
377
- </schmancy-content-drawer>
378
- `
379
- }
380
-
381
- async handleInput(e: Event) {
382
- this.query = (e.target as HTMLInputElement).value
383
- this.isProcessing = true
384
-
385
- // AI-powered search and suggestions
386
- try {
387
- const response = await fetch('/api/ai-search', {
388
- method: 'POST',
389
- headers: { 'Content-Type': 'application/json' },
390
- body: JSON.stringify({ query: this.query })
391
- })
392
-
393
- this.results = await response.json()
394
- } finally {
395
- this.isProcessing = false
396
- }
397
- }
398
- }
399
-
400
- // Open with keyboard shortcut
401
- document.addEventListener('keydown', (e) => {
402
- if ((e.metaKey || e.ctrlKey) && e.key === 'k') {
403
- e.preventDefault()
404
- document.querySelector('ai-command-drawer')?.drawer.open()
405
- }
406
- })
407
- ```
408
-
409
- ### Contextual Help Panel
410
-
411
- ```typescript
412
- @customElement('contextual-help')
413
- export class ContextualHelp extends LitElement {
414
- @state() helpContent: any = null
415
- @state() isLoading = false
416
- @state() currentContext = ''
417
-
418
- private drawer = contentDrawerContext.create('help')
419
-
420
- render() {
421
- return html`
422
- <schmancy-content-drawer
423
- .context=${this.drawer}
424
- position="right"
425
- variant="overlay"
426
- >
427
- <schmancy-content-drawer-main>
428
- <!-- Main content with help triggers -->
429
- <form>
430
- <schmancy-input
431
- label="Email"
432
- type="email"
433
- helper-text="Enter your email address"
434
- @focus=${() => this.showHelp('email-input')}
435
- ></schmancy-input>
436
-
437
- <schmancy-input
438
- label="Password"
439
- type="password"
440
- helper-text="Must be at least 8 characters"
441
- @focus=${() => this.showHelp('password-input')}
442
- ></schmancy-input>
443
- </form>
444
- </schmancy-content-drawer-main>
445
-
446
- <schmancy-content-drawer-sheet width="350px">
447
- <div class="help-panel">
448
- <div class="help-header">
449
- <schmancy-icon>help_outline</schmancy-icon>
450
- <h3>Help & Tips</h3>
451
- <schmancy-icon-button
452
- icon="close"
453
- @click=${() => this.drawer.close()}
454
- ></schmancy-icon-button>
455
- </div>
456
-
457
- ${this.isLoading ? html`
458
- <div class="loading">
459
- <schmancy-skeleton-text lines="3"></schmancy-skeleton-text>
460
- </div>
461
- ` : this.helpContent ? html`
462
- <div class="help-content">
463
- <h4>${this.helpContent.title}</h4>
464
- <div class="content">${this.helpContent.content}</div>
465
-
466
- ${this.helpContent.tips ? html`
467
- <div class="tips">
468
- <h5>Tips:</h5>
469
- <ul>
470
- ${this.helpContent.tips.map(tip => html`
471
- <li>${tip}</li>
472
- `)}
473
- </ul>
474
- </div>
475
- ` : ''}
476
-
477
- ${this.helpContent.related ? html`
478
- <div class="related">
479
- <h5>Related Topics:</h5>
480
- <div class="chips">
481
- ${this.helpContent.related.map(topic => html`
482
- <schmancy-chip
483
- @click=${() => this.showHelp(topic.id)}
484
- >${topic.label}</schmancy-chip>
485
- `)}
486
- </div>
487
- </div>
488
- ` : ''}
489
- </div>
490
- ` : html`
491
- <div class="empty-state">
492
- <schmancy-icon>info</schmancy-icon>
493
- <p>Click on any field to see contextual help</p>
494
- </div>
495
- `}
496
- </div>
497
- </schmancy-content-drawer-sheet>
498
- </schmancy-content-drawer>
499
- `
500
- }
501
-
502
- async showHelp(context: string) {
503
- if (this.currentContext === context && this.drawer.isOpen) return
504
-
505
- this.currentContext = context
506
- this.isLoading = true
507
- this.drawer.open()
508
-
509
- // Fetch AI-generated help content
510
- try {
511
- const response = await fetch(`/api/help/${context}`)
512
- this.helpContent = await response.json()
513
- } finally {
514
- this.isLoading = false
515
- }
516
- }
517
- }
518
- ```
519
-
520
- ## 📊 API Reference
521
-
522
- ### SchmancyContentDrawer
523
-
524
- | Property | Type | Default | Description |
525
- |----------|------|---------|-------------|
526
- | `open` | `boolean` | `false` | Controls drawer open state |
527
- | `position` | `'left' \| 'right' \| 'top' \| 'bottom'` | `'left'` | Drawer position |
528
- | `variant` | `'standard' \| 'modal' \| 'persistent'` | `'standard'` | Drawer behavior variant |
529
- | `breakpoint` | `string` | `'1024px'` | Breakpoint for responsive behavior |
530
- | `backdrop` | `boolean` | `true` | Show backdrop in modal variant |
531
- | `closeOnEscape` | `boolean` | `true` | Close drawer on Escape key |
532
- | `closeOnBackdrop` | `boolean` | `true` | Close drawer on backdrop click |
533
- | `swipeToOpen` | `boolean` | `true` | Enable swipe gesture to open |
534
- | `swipeToClose` | `boolean` | `true` | Enable swipe gesture to close |
535
-
536
- ### SchmancyContentDrawerSheet
537
-
538
- | Property | Type | Default | Description |
539
- |----------|------|---------|-------------|
540
- | `width` | `string` | `'256px'` | Width for left/right drawers |
541
- | `height` | `string` | `'auto'` | Height for top/bottom drawers |
542
- | `maxWidth` | `string` | `'100vw'` | Maximum width constraint |
543
- | `maxHeight` | `string` | `'100vh'` | Maximum height constraint |
544
- | `offset` | `string` | `'0'` | Offset from edge (for nested drawers) |
545
-
546
- ### Events
547
-
548
- | Event | Detail | Description |
549
- |-------|--------|-------------|
550
- | `drawer-opened` | `void` | Fired when drawer opens |
551
- | `drawer-closed` | `void` | Fired when drawer closes |
552
- | `drawer-toggled` | `{ open: boolean }` | Fired when drawer toggles |
553
- | `before-open` | `void` | Fired before opening animation |
554
- | `before-close` | `void` | Fired before closing animation |
555
-
556
- ### Context API
557
-
558
- ```typescript
559
- import { contentDrawerContext } from '@schmancy/content-drawer'
560
-
561
- // Create drawer context
562
- const drawer = contentDrawerContext.create('my-drawer')
563
-
564
- // Control drawer
565
- drawer.open()
566
- drawer.close()
567
- drawer.toggle()
568
-
569
- // Check state
570
- if (drawer.isOpen) {
571
- // Drawer is open
572
- }
573
-
574
- // Subscribe to changes
575
- drawer.state$.subscribe(state => {
576
- console.log('Drawer state:', state)
577
- })
578
-
579
- // Set persistent mode
580
- drawer.setPersistent(true)
581
-
582
- // Lock drawer (prevent closing)
583
- drawer.lock()
584
- drawer.unlock()
585
- ```
586
-
587
- ## 🎨 Styling
588
-
589
- ### CSS Custom Properties
590
-
591
- ```css
592
- schmancy-content-drawer {
593
- /* Drawer styling */
594
- --drawer-background: var(--md-sys-color-surface);
595
- --drawer-text-color: var(--md-sys-color-on-surface);
596
- --drawer-width: 256px;
597
- --drawer-shadow: 0 8px 10px -5px rgba(0,0,0,0.2);
598
-
599
- /* Animation */
600
- --drawer-transition-duration: 250ms;
601
- --drawer-transition-timing: cubic-bezier(0.4, 0, 0.2, 1);
602
-
603
- /* Backdrop */
604
- --backdrop-color: rgba(0, 0, 0, 0.5);
605
- --backdrop-blur: 0px;
606
-
607
- /* Z-index layers */
608
- --drawer-z-index: 200;
609
- --backdrop-z-index: 199;
610
- }
611
-
612
- /* Responsive breakpoints */
613
- @media (min-width: 1024px) {
614
- schmancy-content-drawer[variant="persistent"] {
615
- --drawer-shadow: none;
616
- }
617
- }
618
- ```
619
-
620
- ### Custom Animations
621
-
622
- ```typescript
623
- // Custom open animation
624
- <schmancy-content-drawer
625
- .openAnimation=${[
626
- { transform: 'translateX(-100%)' },
627
- { transform: 'translateX(0)' }
628
- ]}
629
- .openAnimationOptions=${{
630
- duration: 300,
631
- easing: 'ease-out'
632
- }}
633
- >
634
-
635
- // Custom close animation
636
- <schmancy-content-drawer
637
- .closeAnimation=${[
638
- { opacity: 1 },
639
- { opacity: 0 }
640
- ]}
641
- >
642
- ```
643
-
644
- ## 🚀 Performance Optimization
645
-
646
- ### Lazy Loading Content
647
-
648
- ```typescript
649
- @customElement('lazy-drawer')
650
- export class LazyDrawer extends LitElement {
651
- @state() drawerContent: TemplateResult | null = null
652
-
653
- render() {
654
- return html`
655
- <schmancy-content-drawer
656
- @before-open=${this.loadContent}
657
- >
658
- <schmancy-content-drawer-main>
659
- <!-- Main content -->
660
- </schmancy-content-drawer-main>
661
-
662
- <schmancy-content-drawer-sheet>
663
- ${this.drawerContent || html`
664
- <schmancy-circular-progress></schmancy-circular-progress>
665
- `}
666
- </schmancy-content-drawer-sheet>
667
- </schmancy-content-drawer>
668
- `
669
- }
670
-
671
- async loadContent() {
672
- if (!this.drawerContent) {
673
- // Lazy load content
674
- const module = await import('./drawer-content.js')
675
- this.drawerContent = module.renderContent()
676
- }
677
- }
678
- }
679
- ```
680
-
681
- ### Virtual Scrolling
682
-
683
- ```typescript
684
- // For long lists in drawers
685
- <schmancy-content-drawer-sheet>
686
- <schmancy-virtual-list
687
- .items=${this.longList}
688
- .renderItem=${(item) => html`
689
- <schmancy-list-item>${item.name}</schmancy-list-item>
690
- `}
691
- ></schmancy-virtual-list>
692
- </schmancy-content-drawer-sheet>
693
- ```
694
-
695
- ## 🎯 Best Practices
696
-
697
- 1. **Mobile First**: Design drawer content for mobile screens first
698
- 2. **Accessibility**: Include proper ARIA labels and keyboard navigation
699
- 3. **Performance**: Lazy load heavy content and use virtual scrolling for lists
700
- 4. **Responsive**: Use persistent variant for desktop, modal for mobile
701
- 5. **Context**: Use drawer context for complex multi-drawer scenarios
702
- 6. **Testing**: Test swipe gestures on actual devices
703
-
704
- ## 🔗 Related Components
705
-
706
- - [Sheet](../sheet) - Standalone bottom sheet component
707
- - [Navigation Drawer](../nav-drawer) - Specialized navigation drawer
708
- - [Dialog](../dialog) - Modal dialogs
709
- - [Layout](../layout) - Layout utilities