@mhmo91/schmancy 0.7.7 → 0.8.3
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.
- package/ai/audio.md +241 -0
- package/ai/content-drawer.md +163 -70
- package/ai/lightbox.md +381 -0
- package/ai/typography.md +75 -49
- package/dist/ai/audio.md +241 -0
- package/dist/ai/content-drawer.md +163 -70
- package/dist/ai/lightbox.md +381 -0
- package/dist/ai/typography.md +75 -49
- package/dist/{animated-text-Be290e6l.cjs → animated-text-Bc3qyXjp.cjs} +2 -2
- package/dist/{animated-text-Be290e6l.cjs.map → animated-text-Bc3qyXjp.cjs.map} +1 -1
- package/dist/{animated-text-DuLrWJ6O.js → animated-text-CNx6Pmlo.js} +3 -3
- package/dist/{animated-text-DuLrWJ6O.js.map → animated-text-CNx6Pmlo.js.map} +1 -1
- package/dist/animated-text.cjs +1 -1
- package/dist/animated-text.js +1 -1
- package/dist/area.cjs +1 -1
- package/dist/{area.component-BzjJiNTJ.js → area.component-7mWxekxE.js} +104 -98
- package/dist/area.component-7mWxekxE.js.map +1 -0
- package/dist/area.component-CS_gSutH.cjs +12 -0
- package/dist/area.component-CS_gSutH.cjs.map +1 -0
- package/dist/area.js +1 -1
- package/dist/audio.cjs +2 -0
- package/dist/audio.cjs.map +1 -0
- package/dist/audio.js +9 -0
- package/dist/audio.js.map +1 -0
- package/dist/{autocomplete-FLkd9ju8.js → autocomplete-Ci4jo3Ur.js} +4 -4
- package/dist/{autocomplete-FLkd9ju8.js.map → autocomplete-Ci4jo3Ur.js.map} +1 -1
- package/dist/{autocomplete-CHmGhBNt.cjs → autocomplete-y-IyzH4r.cjs} +2 -2
- package/dist/{autocomplete-CHmGhBNt.cjs.map → autocomplete-y-IyzH4r.cjs.map} +1 -1
- package/dist/autocomplete.cjs +1 -1
- package/dist/autocomplete.js +1 -1
- package/dist/{avatar-C8P4lVfa.js → avatar-BdyuuIk7.js} +243 -258
- package/dist/avatar-BdyuuIk7.js.map +1 -0
- package/dist/avatar-DBfJucB9.cjs +273 -0
- package/dist/avatar-DBfJucB9.cjs.map +1 -0
- package/dist/badge.cjs +1 -1
- package/dist/badge.js +1 -1
- package/dist/{boat-Ma6LW-ny.js → boat-CowHieO2.js} +6 -6
- package/dist/{boat-Ma6LW-ny.js.map → boat-CowHieO2.js.map} +1 -1
- package/dist/{boat-kYOUec8f.cjs → boat-DkNUc1UO.cjs} +5 -5
- package/dist/{boat-kYOUec8f.cjs.map → boat-DkNUc1UO.cjs.map} +1 -1
- package/dist/boat.cjs +1 -1
- package/dist/boat.js +1 -1
- package/dist/busy.cjs +1 -1
- package/dist/busy.js +1 -1
- package/dist/button.cjs +1 -1
- package/dist/button.js +1 -1
- package/dist/card.cjs +1 -1
- package/dist/card.js +1 -1
- package/dist/charts.cjs +2 -0
- package/dist/charts.cjs.map +1 -0
- package/dist/charts.js +9 -0
- package/dist/charts.js.map +1 -0
- package/dist/{checkbox-x46L-XTG.js → checkbox-BY4Sn8F2.js} +6 -6
- package/dist/{checkbox-x46L-XTG.js.map → checkbox-BY4Sn8F2.js.map} +1 -1
- package/dist/{checkbox-DLZkKaon.cjs → checkbox-BvWcABPr.cjs} +2 -2
- package/dist/{checkbox-DLZkKaon.cjs.map → checkbox-BvWcABPr.cjs.map} +1 -1
- package/dist/checkbox.cjs +1 -1
- package/dist/checkbox.js +1 -1
- package/dist/chips.cjs +1 -1
- package/dist/chips.js +2 -2
- package/dist/code-highlight.cjs +1 -1
- package/dist/code-highlight.js +1 -1
- package/dist/{code-preview-BsQq77nu.cjs → code-preview-BIFIJigy.cjs} +2 -2
- package/dist/{code-preview-BsQq77nu.cjs.map → code-preview-BIFIJigy.cjs.map} +1 -1
- package/dist/{code-preview-C3DLglSl.js → code-preview-CYjmAxfs.js} +3 -3
- package/dist/{code-preview-C3DLglSl.js.map → code-preview-CYjmAxfs.js.map} +1 -1
- package/dist/components.cjs +1 -1
- package/dist/components.js +1 -1
- package/dist/content-drawer.cjs +1 -1
- package/dist/content-drawer.js +1 -1
- package/dist/{context-create-BvxbWTgj.js → context-create-B_S-sD5B.js} +69 -57
- package/dist/context-create-B_S-sD5B.js.map +1 -0
- package/dist/context-create-DTybDbZp.cjs +2 -0
- package/dist/context-create-DTybDbZp.cjs.map +1 -0
- package/dist/date-range-B80Ummtv.cjs +119 -0
- package/dist/date-range-B80Ummtv.cjs.map +1 -0
- package/dist/date-range-BdIqI7LC.js +639 -0
- package/dist/date-range-BdIqI7LC.js.map +1 -0
- package/dist/{date-range-inline-CfDu-lIo.js → date-range-inline-Cnhs9atd.js} +3 -3
- package/dist/{date-range-inline-CfDu-lIo.js.map → date-range-inline-Cnhs9atd.js.map} +1 -1
- package/dist/{date-range-inline-cGptw0hr.cjs → date-range-inline-Df8u6Ecy.cjs} +2 -2
- package/dist/{date-range-inline-cGptw0hr.cjs.map → date-range-inline-Df8u6Ecy.cjs.map} +1 -1
- package/dist/date-range-inline.cjs +1 -1
- package/dist/date-range-inline.js +1 -1
- package/dist/date-range.cjs +1 -1
- package/dist/date-range.js +1 -1
- package/dist/{delay-CXFIM6qK.cjs → delay-BWsVHQib.cjs} +2 -2
- package/dist/delay-BWsVHQib.cjs.map +1 -0
- package/dist/{delay-BINGOQ7f.js → delay-CCa9nN4A.js} +45 -45
- package/dist/delay-CCa9nN4A.js.map +1 -0
- package/dist/delay.cjs +1 -1
- package/dist/delay.js +1 -1
- package/dist/details-Bee5ya0L.js +100 -0
- package/dist/details-Bee5ya0L.js.map +1 -0
- package/dist/details-oaVHXU7U.cjs +55 -0
- package/dist/details-oaVHXU7U.cjs.map +1 -0
- package/dist/details.cjs +1 -1
- package/dist/details.js +1 -1
- package/dist/dialog-service-C86xTS8q.cjs +2 -0
- package/dist/dialog-service-C86xTS8q.cjs.map +1 -0
- package/dist/dialog-service-D9E3jLAR.js +118 -0
- package/dist/dialog-service-D9E3jLAR.js.map +1 -0
- package/dist/dialog.cjs +1 -1
- package/dist/dialog.component-BriB-kFi.cjs +48 -0
- package/dist/dialog.component-BriB-kFi.cjs.map +1 -0
- package/dist/dialog.component-CMUoCC7O.js +145 -0
- package/dist/dialog.component-CMUoCC7O.js.map +1 -0
- package/dist/dialog.js +7 -7
- package/dist/directives.cjs +1 -1
- package/dist/directives.js +11 -10
- package/dist/directives.js.map +1 -1
- package/dist/{divider-Bu6tzwGl.js → divider-B7DBbYFI.js} +3 -3
- package/dist/{divider-Bu6tzwGl.js.map → divider-B7DBbYFI.js.map} +1 -1
- package/dist/{divider-8tk2mDbL.cjs → divider-Dl4TToQZ.cjs} +2 -2
- package/dist/{divider-8tk2mDbL.cjs.map → divider-Dl4TToQZ.cjs.map} +1 -1
- package/dist/divider.cjs +1 -1
- package/dist/divider.js +1 -1
- package/dist/{dropdown-content-DFb07S8x.cjs → dropdown-content-C2W7OttQ.cjs} +2 -2
- package/dist/{dropdown-content-DFb07S8x.cjs.map → dropdown-content-C2W7OttQ.cjs.map} +1 -1
- package/dist/{dropdown-content-fVhnEKdY.js → dropdown-content-DzhOtilY.js} +3 -3
- package/dist/{dropdown-content-fVhnEKdY.js.map → dropdown-content-DzhOtilY.js.map} +1 -1
- package/dist/dropdown.cjs +1 -1
- package/dist/dropdown.js +1 -1
- package/dist/{email-recipients-OG52RGiH.js → email-recipients-BWqZKo3m.js} +8 -7
- package/dist/{email-recipients-OG52RGiH.js.map → email-recipients-BWqZKo3m.js.map} +1 -1
- package/dist/{email-recipients-BG3GxJvc.cjs → email-recipients-Bh5VC0rc.cjs} +2 -2
- package/dist/{email-recipients-BG3GxJvc.cjs.map → email-recipients-Bh5VC0rc.cjs.map} +1 -1
- package/dist/emotional-sounds-BRnFhww6.js +234 -0
- package/dist/emotional-sounds-BRnFhww6.js.map +1 -0
- package/dist/emotional-sounds-DVGhmoZf.cjs +2 -0
- package/dist/emotional-sounds-DVGhmoZf.cjs.map +1 -0
- package/dist/extra.cjs +1 -1
- package/dist/extra.js +1 -1
- package/dist/flex-53G-PJx7.js +183 -0
- package/dist/flex-53G-PJx7.js.map +1 -0
- package/dist/flex-DFSIy0t4.cjs +18 -0
- package/dist/flex-DFSIy0t4.cjs.map +1 -0
- package/dist/{form-tpyd1nsT.js → form-BtRK9bnp.js} +2 -2
- package/dist/{form-tpyd1nsT.js.map → form-BtRK9bnp.js.map} +1 -1
- package/dist/{form-cWJBcwc6.cjs → form-Zq7g2JS8.cjs} +2 -2
- package/dist/{form-cWJBcwc6.cjs.map → form-Zq7g2JS8.cjs.map} +1 -1
- package/dist/form.cjs +1 -1
- package/dist/form.js +1 -1
- package/dist/{formField.mixin-Mx5CwYUh.js → formField.mixin-2jSL7WF_.js} +2 -2
- package/dist/{formField.mixin-Mx5CwYUh.js.map → formField.mixin-2jSL7WF_.js.map} +1 -1
- package/dist/{formField.mixin-XlN2pAL0.cjs → formField.mixin-DkN2ufR_.cjs} +2 -2
- package/dist/{formField.mixin-XlN2pAL0.cjs.map → formField.mixin-DkN2ufR_.cjs.map} +1 -1
- package/dist/height-CfECBO2j.js +44 -0
- package/dist/height-CfECBO2j.js.map +1 -0
- package/dist/height-Z70qJYJK.cjs +2 -0
- package/dist/height-Z70qJYJK.cjs.map +1 -0
- package/dist/{icon-Y2qLOFqe.js → icon-B5qeYrDu.js} +17 -17
- package/dist/icon-B5qeYrDu.js.map +1 -0
- package/dist/icon-button-BpmGFjaR.cjs +70 -0
- package/dist/icon-button-BpmGFjaR.cjs.map +1 -0
- package/dist/icon-button-HSYaQBNF.js +164 -0
- package/dist/icon-button-HSYaQBNF.js.map +1 -0
- package/dist/icon-pU_cfmpD.cjs +49 -0
- package/dist/icon-pU_cfmpD.cjs.map +1 -0
- package/dist/icons.cjs +1 -1
- package/dist/icons.js +1 -1
- package/dist/index.cjs +1 -1
- package/dist/index.js +275 -250
- package/dist/index.js.map +1 -1
- package/dist/input-8G9YY9qv.cjs +51 -0
- package/dist/input-8G9YY9qv.cjs.map +1 -0
- package/dist/{input-DDCFZ3cr.js → input-BJMF5Fyk.js} +35 -31
- package/dist/input-BJMF5Fyk.js.map +1 -0
- package/dist/{input-chip-Bht9MU9G.cjs → input-chip-CocdqTzr.cjs} +2 -2
- package/dist/{input-chip-Bht9MU9G.cjs.map → input-chip-CocdqTzr.cjs.map} +1 -1
- package/dist/{input-chip-DVE4_1wn.js → input-chip-tbrw56ix.js} +2 -2
- package/dist/{input-chip-DVE4_1wn.js.map → input-chip-tbrw56ix.js.map} +1 -1
- package/dist/input.cjs +1 -1
- package/dist/input.js +1 -1
- package/dist/json-CvcloKQv.js +51 -0
- package/dist/json-CvcloKQv.js.map +1 -0
- package/dist/json-DPnyOA3K.cjs +12 -0
- package/dist/json-DPnyOA3K.cjs.map +1 -0
- package/dist/json.cjs +2 -0
- package/dist/json.cjs.map +1 -0
- package/dist/json.js +5 -0
- package/dist/json.js.map +1 -0
- package/dist/layout.cjs +1 -1
- package/dist/layout.js +4 -3
- package/dist/layout.js.map +1 -1
- package/dist/lightbox-service-3mHqBKEh.cjs +202 -0
- package/dist/lightbox-service-3mHqBKEh.cjs.map +1 -0
- package/dist/lightbox-service-DxbYZAuv.js +458 -0
- package/dist/lightbox-service-DxbYZAuv.js.map +1 -0
- package/dist/lightbox.cjs +2 -0
- package/dist/lightbox.cjs.map +1 -0
- package/dist/lightbox.js +8 -0
- package/dist/lightbox.js.map +1 -0
- package/dist/{list-BO1gnjmc.js → list-FWXmY-eQ.js} +2 -2
- package/dist/{list-BO1gnjmc.js.map → list-FWXmY-eQ.js.map} +1 -1
- package/dist/{list-Bac329kq.cjs → list-JjR7WOrd.cjs} +2 -2
- package/dist/{list-Bac329kq.cjs.map → list-JjR7WOrd.cjs.map} +1 -1
- package/dist/list.cjs +1 -1
- package/dist/list.js +1 -1
- package/dist/{litElement.mixin-B1WTI3WY.cjs → litElement.mixin-BVBdv0GP.cjs} +2 -2
- package/dist/{litElement.mixin-B1WTI3WY.cjs.map → litElement.mixin-BVBdv0GP.cjs.map} +1 -1
- package/dist/{litElement.mixin-CVje6z-M.js → litElement.mixin-Wcu4yIIs.js} +2 -2
- package/dist/{litElement.mixin-CVje6z-M.js.map → litElement.mixin-Wcu4yIIs.js.map} +1 -1
- package/dist/mailbox.cjs +1 -1
- package/dist/mailbox.js +1 -1
- package/dist/{map-C1jVMhlF.js → map-Br6xJFxG.js} +2 -2
- package/dist/{map-C1jVMhlF.js.map → map-Br6xJFxG.js.map} +1 -1
- package/dist/{map-BlmS6Zfx.cjs → map-D9R3OCne.cjs} +2 -2
- package/dist/{map-BlmS6Zfx.cjs.map → map-D9R3OCne.cjs.map} +1 -1
- package/dist/map.cjs +1 -1
- package/dist/map.js +1 -1
- package/dist/{media-CNMZbEJe.js → media-BV_1DfcW.js} +2 -2
- package/dist/{media-CNMZbEJe.js.map → media-BV_1DfcW.js.map} +1 -1
- package/dist/{media-CxfrOjie.cjs → media-DibPwAjJ.cjs} +2 -2
- package/dist/{media-CxfrOjie.cjs.map → media-DibPwAjJ.cjs.map} +1 -1
- package/dist/menu-HKqlq99V.js +60 -0
- package/dist/{menu-CUKV4pVJ.js.map → menu-HKqlq99V.js.map} +1 -1
- package/dist/{menu-DEa2K7Pk.cjs → menu-vNrV-Nuq.cjs} +4 -6
- package/dist/{menu-DEa2K7Pk.cjs.map → menu-vNrV-Nuq.cjs.map} +1 -1
- package/dist/menu.cjs +1 -1
- package/dist/menu.js +1 -1
- package/dist/mixins.cjs +1 -1
- package/dist/mixins.js +3 -3
- package/dist/nav-drawer.cjs +1 -1
- package/dist/nav-drawer.js +1 -1
- package/dist/navigation-bar.cjs +1 -1
- package/dist/navigation-bar.js +1 -1
- package/dist/{navigation-rail-DXr4NJnN.cjs → navigation-rail-D1o3qDe_.cjs} +15 -17
- package/dist/navigation-rail-D1o3qDe_.cjs.map +1 -0
- package/dist/{navigation-rail-CYKfvZs9.js → navigation-rail-DKXumnmt.js} +30 -32
- package/dist/navigation-rail-DKXumnmt.js.map +1 -0
- package/dist/navigation-rail.cjs +1 -1
- package/dist/navigation-rail.js +1 -1
- package/dist/notification-service-B5ljba4P.js +155 -0
- package/dist/notification-service-B5ljba4P.js.map +1 -0
- package/dist/notification-service-ICRT05L0.cjs +19 -0
- package/dist/notification-service-ICRT05L0.cjs.map +1 -0
- package/dist/notification.cjs +1 -1
- package/dist/notification.js +6 -8
- package/dist/{notify-KvHZ-8z9.js → notify-B9CpO1Ru.js} +2 -2
- package/dist/notify-B9CpO1Ru.js.map +1 -0
- package/dist/{notify-VkDx6hMZ.cjs → notify-NX-dl60E.cjs} +2 -2
- package/dist/notify-NX-dl60E.cjs.map +1 -0
- package/dist/{option-DnRdbsTb.js → option-B4JKMrLg.js} +2 -2
- package/dist/{option-DnRdbsTb.js.map → option-B4JKMrLg.js.map} +1 -1
- package/dist/{option-Eh2AXe-Z.cjs → option-epyXLWoY.cjs} +2 -2
- package/dist/{option-Eh2AXe-Z.cjs.map → option-epyXLWoY.cjs.map} +1 -1
- package/dist/option.cjs +1 -1
- package/dist/option.js +1 -1
- package/dist/page-Bmi1QHtq.cjs +20 -0
- package/dist/page-Bmi1QHtq.cjs.map +1 -0
- package/dist/page-BpygEntU.js +48 -0
- package/dist/page-BpygEntU.js.map +1 -0
- package/dist/page.cjs +2 -0
- package/dist/page.cjs.map +1 -0
- package/dist/page.js +5 -0
- package/dist/page.js.map +1 -0
- package/dist/{payment-card-form-8a4Nqqhy.cjs → payment-card-form-3kAXDbXf.cjs} +2 -2
- package/dist/{payment-card-form-8a4Nqqhy.cjs.map → payment-card-form-3kAXDbXf.cjs.map} +1 -1
- package/dist/{payment-card-form-EVQEb5OX.js → payment-card-form-BxkHuSls.js} +3 -3
- package/dist/{payment-card-form-EVQEb5OX.js.map → payment-card-form-BxkHuSls.js.map} +1 -1
- package/dist/pills-C3fIvfn8.js +346 -0
- package/dist/pills-C3fIvfn8.js.map +1 -0
- package/dist/pills-MmHyBGQu.cjs +113 -0
- package/dist/pills-MmHyBGQu.cjs.map +1 -0
- package/dist/progress-0POmJs5o.js +59 -0
- package/dist/progress-0POmJs5o.js.map +1 -0
- package/dist/progress-qx8jtrOA.cjs +35 -0
- package/dist/progress-qx8jtrOA.cjs.map +1 -0
- package/dist/progress.cjs +1 -1
- package/dist/progress.js +1 -1
- package/dist/qr-scanner-DQq-WLyo.cjs +29 -0
- package/dist/qr-scanner-DQq-WLyo.cjs.map +1 -0
- package/dist/qr-scanner-jwOSrD0N.js +743 -0
- package/dist/qr-scanner-jwOSrD0N.js.map +1 -0
- package/dist/qr-scanner.cjs +2 -0
- package/dist/qr-scanner.cjs.map +1 -0
- package/dist/qr-scanner.js +5 -0
- package/dist/qr-scanner.js.map +1 -0
- package/dist/{radio-button-QCukBJLy.js → radio-button-B0EUK_wg.js} +3 -3
- package/dist/{radio-button-QCukBJLy.js.map → radio-button-B0EUK_wg.js.map} +1 -1
- package/dist/{radio-button-BTdqEOSJ.cjs → radio-button-DraEYR2R.cjs} +2 -2
- package/dist/{radio-button-BTdqEOSJ.cjs.map → radio-button-DraEYR2R.cjs.map} +1 -1
- package/dist/radio-group.cjs +1 -1
- package/dist/radio-group.js +1 -1
- package/dist/ripple-BgJXbNSP.js +124 -0
- package/dist/ripple-BgJXbNSP.js.map +1 -0
- package/dist/ripple-x6sTX02K.cjs +16 -0
- package/dist/ripple-x6sTX02K.cjs.map +1 -0
- package/dist/{schmancy-steps-container-CtwqkRBU.cjs → schmancy-steps-container-B5aiqgMA.cjs} +2 -2
- package/dist/{schmancy-steps-container-CtwqkRBU.cjs.map → schmancy-steps-container-B5aiqgMA.cjs.map} +1 -1
- package/dist/{schmancy-steps-container-NZOamraF.js → schmancy-steps-container-C2StAA5K.js} +3 -3
- package/dist/{schmancy-steps-container-NZOamraF.js.map → schmancy-steps-container-C2StAA5K.js.map} +1 -1
- package/dist/scroll-BqT7bvhu.cjs +27 -0
- package/dist/scroll-BqT7bvhu.cjs.map +1 -0
- package/dist/scroll-Bu-vAg3d.js +87 -0
- package/dist/scroll-Bu-vAg3d.js.map +1 -0
- package/dist/{select-C-Kv7ey_.cjs → select-HiEGJvOX.cjs} +2 -2
- package/dist/select-HiEGJvOX.cjs.map +1 -0
- package/dist/{select-DSTQ-Zau.js → select-i-uKur-W.js} +5 -4
- package/dist/select-i-uKur-W.js.map +1 -0
- package/dist/select.cjs +1 -1
- package/dist/select.js +1 -1
- package/dist/{selector-hook-Cok22ifx.cjs → selector-hook-9w2auh2O.cjs} +2 -2
- package/dist/{selector-hook-Cok22ifx.cjs.map → selector-hook-9w2auh2O.cjs.map} +1 -1
- package/dist/{selector-hook-l2fe2UO5.js → selector-hook-CHV4kDMd.js} +3 -3
- package/dist/{selector-hook-l2fe2UO5.js.map → selector-hook-CHV4kDMd.js.map} +1 -1
- package/dist/{sheet-DY-z5_tm.js → sheet-B1g7E4dQ.js} +5 -5
- package/dist/{sheet-DY-z5_tm.js.map → sheet-B1g7E4dQ.js.map} +1 -1
- package/dist/{sheet-IzYy3H8n.cjs → sheet-BbrRW0S5.cjs} +2 -2
- package/dist/{sheet-IzYy3H8n.cjs.map → sheet-BbrRW0S5.cjs.map} +1 -1
- package/dist/sheet.cjs +1 -1
- package/dist/sheet.js +2 -2
- package/dist/{sheet.service-DuVcXyOB.js → sheet.service-4etIM-p6.js} +20 -18
- package/dist/sheet.service-4etIM-p6.js.map +1 -0
- package/dist/sheet.service-BiRZjCdN.cjs +2 -0
- package/dist/sheet.service-BiRZjCdN.cjs.map +1 -0
- package/dist/{slider-CFtbSQ9Y.js → slider-8E3Wad0t.js} +3 -3
- package/dist/{slider-CFtbSQ9Y.js.map → slider-8E3Wad0t.js.map} +1 -1
- package/dist/{slider-CGE_Qeok.cjs → slider-VYnbIRH2.cjs} +2 -2
- package/dist/{slider-CGE_Qeok.cjs.map → slider-VYnbIRH2.cjs.map} +1 -1
- package/dist/slider.cjs +1 -1
- package/dist/slider.js +1 -1
- package/dist/sound.service-Nza4c6wv.js +102 -0
- package/dist/sound.service-Nza4c6wv.js.map +1 -0
- package/dist/sound.service-eRirZw59.cjs +2 -0
- package/dist/sound.service-eRirZw59.cjs.map +1 -0
- package/dist/{spinner-DAF-hCvQ.js → spinner-CKm13CKN.js} +15 -12
- package/dist/spinner-CKm13CKN.js.map +1 -0
- package/dist/{spinner-CSPJs8CL.cjs → spinner-DJgcI5wr.cjs} +9 -9
- package/dist/spinner-DJgcI5wr.cjs.map +1 -0
- package/dist/steps.cjs +1 -1
- package/dist/steps.js +1 -1
- package/dist/store.cjs +1 -1
- package/dist/store.js +2 -2
- package/dist/{suggestion-chip-CYu-4xrL.js → suggestion-chip-6njXvvHm.js} +50 -46
- package/dist/suggestion-chip-6njXvvHm.js.map +1 -0
- package/dist/{suggestion-chip-Cj8gwZqq.cjs → suggestion-chip-DdLfqk7o.cjs} +18 -23
- package/dist/suggestion-chip-DdLfqk7o.cjs.map +1 -0
- package/dist/{surface-DTOK-0E4.js → surface-BYU3l_Q2.js} +12 -11
- package/dist/surface-BYU3l_Q2.js.map +1 -0
- package/dist/{surface-VX_THUHv.cjs → surface-DcqbWGub.cjs} +5 -4
- package/dist/surface-DcqbWGub.cjs.map +1 -0
- package/dist/surface.cjs +1 -1
- package/dist/surface.js +1 -1
- package/dist/{table-BV0-o9Wi.cjs → table-C9fzDjjk.cjs} +2 -2
- package/dist/{table-BV0-o9Wi.cjs.map → table-C9fzDjjk.cjs.map} +1 -1
- package/dist/{table-CkXbXqi9.js → table-Dq12ollZ.js} +3 -3
- package/dist/{table-CkXbXqi9.js.map → table-Dq12ollZ.js.map} +1 -1
- package/dist/table.cjs +1 -1
- package/dist/table.js +1 -1
- package/dist/{tabs-compatibility-DsfD60U_.cjs → tabs-compatibility-Dwtjfkcf.cjs} +2 -2
- package/dist/{tabs-compatibility-DsfD60U_.cjs.map → tabs-compatibility-Dwtjfkcf.cjs.map} +1 -1
- package/dist/{tabs-compatibility-D_BBW655.js → tabs-compatibility-wnzlHtln.js} +2 -2
- package/dist/{tabs-compatibility-D_BBW655.js.map → tabs-compatibility-wnzlHtln.js.map} +1 -1
- package/dist/tabs.cjs +1 -1
- package/dist/tabs.js +1 -1
- package/dist/tailwind.mixin-Ddt05Frc.js +67 -0
- package/dist/{tailwind.mixin-wLaKUxf1.js.map → tailwind.mixin-Ddt05Frc.js.map} +1 -1
- package/dist/tailwind.mixin-UijsBrYW.cjs +2 -0
- package/dist/{tailwind.mixin-JFXu3GSo.cjs.map → tailwind.mixin-UijsBrYW.cjs.map} +1 -1
- package/dist/teleport.cjs +1 -1
- package/dist/teleport.js +1 -1
- package/dist/textarea-DGmsw1B_.cjs +44 -0
- package/dist/{textarea-B6LDhRed.cjs.map → textarea-DGmsw1B_.cjs.map} +1 -1
- package/dist/{textarea-TeVnUeIJ.js → textarea-Vd3zayJZ.js} +4 -3
- package/dist/{textarea-TeVnUeIJ.js.map → textarea-Vd3zayJZ.js.map} +1 -1
- package/dist/textarea.cjs +1 -1
- package/dist/textarea.js +1 -1
- package/dist/{theme-button-DxMbO3yP.cjs → theme-button-DG_Xwg9H.cjs} +2 -2
- package/dist/{theme-button-DxMbO3yP.cjs.map → theme-button-DG_Xwg9H.cjs.map} +1 -1
- package/dist/{theme-button-BXXqAu2Y.js → theme-button-rGpEW_xS.js} +2 -2
- package/dist/{theme-button-BXXqAu2Y.js.map → theme-button-rGpEW_xS.js.map} +1 -1
- package/dist/theme-button.cjs +1 -1
- package/dist/theme-button.js +1 -1
- package/dist/{theme-controller-boat-CVS77gnH.js → theme-controller-boat-B1fjcqJI.js} +420 -228
- package/dist/theme-controller-boat-B1fjcqJI.js.map +1 -0
- package/dist/theme-controller-boat-pLzK5zxL.cjs +178 -0
- package/dist/theme-controller-boat-pLzK5zxL.cjs.map +1 -0
- package/dist/theme.cjs +1 -1
- package/dist/theme.js +13 -11
- package/dist/{timezone-D7YOMM8G.cjs → timezone-BhUaIAV7.cjs} +2 -2
- package/dist/{timezone-D7YOMM8G.cjs.map → timezone-BhUaIAV7.cjs.map} +1 -1
- package/dist/{timezone-RBV74f85.js → timezone-IQkwr6Oh.js} +3 -3
- package/dist/{timezone-RBV74f85.js.map → timezone-IQkwr6Oh.js.map} +1 -1
- package/dist/{tooltip-DssL6Qfx.js → tooltip-CwaiZC8f.js} +2 -2
- package/dist/{tooltip-DssL6Qfx.js.map → tooltip-CwaiZC8f.js.map} +1 -1
- package/dist/{tooltip-BH_RLoZI.cjs → tooltip-iEvxKg8g.cjs} +2 -2
- package/dist/{tooltip-BH_RLoZI.cjs.map → tooltip-iEvxKg8g.cjs.map} +1 -1
- package/dist/tooltip.cjs +1 -1
- package/dist/tooltip.js +1 -1
- package/dist/{tree-7Zz1sJKl.cjs → tree-Bclu6uvv.cjs} +2 -2
- package/dist/{tree-7Zz1sJKl.cjs.map → tree-Bclu6uvv.cjs.map} +1 -1
- package/dist/{tree-C33t9-0j.js → tree-D9EbEsxn.js} +2 -2
- package/dist/{tree-C33t9-0j.js.map → tree-D9EbEsxn.js.map} +1 -1
- package/dist/tree.cjs +1 -1
- package/dist/tree.js +1 -1
- package/dist/{typewriter-Dt1Js2lP.js → typewriter-BjDPgRlj.js} +5 -5
- package/dist/{typewriter-Dt1Js2lP.js.map → typewriter-BjDPgRlj.js.map} +1 -1
- package/dist/{typewriter-WbYqfXO7.cjs → typewriter-Bscwd-36.cjs} +4 -4
- package/dist/{typewriter-WbYqfXO7.cjs.map → typewriter-Bscwd-36.cjs.map} +1 -1
- package/dist/typewriter.cjs +1 -1
- package/dist/typewriter.js +1 -1
- package/dist/{typography-DdG9aEAg.js → typography-CConBBFH.js} +13 -53
- package/dist/typography-CConBBFH.js.map +1 -0
- package/dist/{typography-Ck-OdI83.cjs → typography-DLGT3DGz.cjs} +3 -46
- package/dist/typography-DLGT3DGz.cjs.map +1 -0
- package/dist/typography.cjs +1 -1
- package/dist/typography.js +1 -1
- package/mixins/tailwind.css +37 -6
- package/package.json +21 -20
- package/types/src/area/area.service.d.ts +1 -1
- package/types/src/area/router.types.d.ts +1 -0
- package/types/src/audio/emotional-sounds.d.ts +122 -0
- package/types/src/audio/index.d.ts +30 -0
- package/types/src/audio/sound.service.d.ts +111 -0
- package/types/src/avatar.d.ts +10 -1
- package/types/src/busy/spinner.d.ts +6 -1
- package/types/src/button/button.d.ts +15 -2
- package/types/src/button/icon-button.d.ts +1 -1
- package/types/src/charts/area-chart.d.ts +58 -0
- package/types/src/charts/index.d.ts +4 -0
- package/types/src/charts/pills.d.ts +51 -0
- package/types/src/charts/types.d.ts +62 -0
- package/types/src/charts/utils.d.ts +28 -0
- package/types/src/checkbox/checkbox.d.ts +3 -2
- package/types/src/chips/chips.d.ts +2 -0
- package/types/src/content-drawer/drawer.service.d.ts +1 -7
- package/types/src/date-range/date-range-dialog.d.ts +16 -0
- package/types/src/date-range/date-range.d.ts +1 -1
- package/types/src/details/details.d.ts +3 -7
- package/types/src/dialog/dailog.d.ts +1 -5
- package/types/src/dialog/dialog-base.mixin.d.ts +26 -0
- package/types/src/dialog/dialog-service.d.ts +3 -66
- package/types/src/dialog/dialog.component.d.ts +63 -30
- package/types/src/dialog/index.d.ts +1 -3
- package/types/src/directives/height.d.ts +11 -6
- package/types/src/icons/icon.d.ts +17 -0
- package/types/src/index.d.ts +6 -0
- package/types/src/input/input.d.ts +13 -9
- package/types/src/json/index.d.ts +1 -0
- package/types/src/json/json.d.ts +15 -0
- package/types/src/lightbox/flip-directive.d.ts +29 -0
- package/types/src/lightbox/flip.directive.d.ts +22 -0
- package/types/src/lightbox/index.d.ts +4 -0
- package/types/src/lightbox/lightbox-service.d.ts +24 -0
- package/types/src/lightbox/lightbox.d.ts +34 -0
- package/types/src/lightbox/lightbox.directive.d.ts +30 -0
- package/types/src/nav-drawer/appbar.d.ts +0 -5
- package/types/src/nav-drawer/drawer.d.ts +1 -32
- package/types/src/notification/index.d.ts +1 -3
- package/types/src/notification/notification-service.d.ts +13 -1
- package/types/src/notification/notification.d.ts +13 -12
- package/types/src/notification/notify.d.ts +1 -1
- package/types/src/page/index.d.ts +1 -0
- package/types/src/page/page.d.ts +31 -0
- package/types/src/progress/progress.d.ts +2 -2
- package/types/src/qr-scanner/index.d.ts +1 -0
- package/types/src/qr-scanner/qr-scanner.d.ts +26 -0
- package/types/src/select/select.d.ts +1 -1
- package/types/src/theme/index.d.ts +1 -0
- package/types/src/theme/theme-audio-player.d.ts +100 -0
- package/types/src/theme/theme-controller-boat.d.ts +1 -0
- package/types/src/theme/theme.component.d.ts +1 -1
- package/types/src/types/index.d.ts +1 -0
- package/types/src/types/mood-audio.types.d.ts +173 -0
- package/types/src/typography/typography.d.ts +1 -0
- package/dist/area.component-BzjJiNTJ.js.map +0 -1
- package/dist/area.component-FL_IUylM.cjs +0 -12
- package/dist/area.component-FL_IUylM.cjs.map +0 -1
- package/dist/avatar-B_uJN9WV.cjs +0 -288
- package/dist/avatar-B_uJN9WV.cjs.map +0 -1
- package/dist/avatar-C8P4lVfa.js.map +0 -1
- package/dist/context-create-BJkkLr1D.cjs +0 -2
- package/dist/context-create-BJkkLr1D.cjs.map +0 -1
- package/dist/context-create-BvxbWTgj.js.map +0 -1
- package/dist/date-range-Cm0TCfwu.js +0 -664
- package/dist/date-range-Cm0TCfwu.js.map +0 -1
- package/dist/date-range-Cy97kOP_.cjs +0 -134
- package/dist/date-range-Cy97kOP_.cjs.map +0 -1
- package/dist/delay-BINGOQ7f.js.map +0 -1
- package/dist/delay-CXFIM6qK.cjs.map +0 -1
- package/dist/details-CLRikV4s.cjs +0 -64
- package/dist/details-CLRikV4s.cjs.map +0 -1
- package/dist/details-bgq2X_hO.js +0 -115
- package/dist/details-bgq2X_hO.js.map +0 -1
- package/dist/dialog-content-B59ekS_y.cjs +0 -85
- package/dist/dialog-content-B59ekS_y.cjs.map +0 -1
- package/dist/dialog-content-Cu7fqN8Y.js +0 -256
- package/dist/dialog-content-Cu7fqN8Y.js.map +0 -1
- package/dist/dialog-service-B4nR8Em5.cjs +0 -2
- package/dist/dialog-service-B4nR8Em5.cjs.map +0 -1
- package/dist/dialog-service-Bege4HF4.js +0 -140
- package/dist/dialog-service-Bege4HF4.js.map +0 -1
- package/dist/flex-CYQU6Pf8.js +0 -260
- package/dist/flex-CYQU6Pf8.js.map +0 -1
- package/dist/flex-DytMcHmq.cjs +0 -43
- package/dist/flex-DytMcHmq.cjs.map +0 -1
- package/dist/icon-C8Q_XMtJ.cjs +0 -49
- package/dist/icon-C8Q_XMtJ.cjs.map +0 -1
- package/dist/icon-Y2qLOFqe.js.map +0 -1
- package/dist/icon-button-CJ6AVTv9.js +0 -156
- package/dist/icon-button-CJ6AVTv9.js.map +0 -1
- package/dist/icon-button-IdG1NVgA.cjs +0 -65
- package/dist/icon-button-IdG1NVgA.cjs.map +0 -1
- package/dist/input-DDCFZ3cr.js.map +0 -1
- package/dist/input-UyknNHNr.cjs +0 -51
- package/dist/input-UyknNHNr.cjs.map +0 -1
- package/dist/menu-CUKV4pVJ.js +0 -61
- package/dist/navigation-rail-CYKfvZs9.js.map +0 -1
- package/dist/navigation-rail-DXr4NJnN.cjs.map +0 -1
- package/dist/notification-service-CZ56fXew.js +0 -532
- package/dist/notification-service-CZ56fXew.js.map +0 -1
- package/dist/notification-service-DQGs9O0f.cjs +0 -143
- package/dist/notification-service-DQGs9O0f.cjs.map +0 -1
- package/dist/notify-KvHZ-8z9.js.map +0 -1
- package/dist/notify-VkDx6hMZ.cjs.map +0 -1
- package/dist/progress-D5kgn2Fg.js +0 -58
- package/dist/progress-D5kgn2Fg.js.map +0 -1
- package/dist/progress-yFxoJDYf.cjs +0 -35
- package/dist/progress-yFxoJDYf.cjs.map +0 -1
- package/dist/ripple-QoNZUUw_.js +0 -148
- package/dist/ripple-QoNZUUw_.js.map +0 -1
- package/dist/ripple-Ujq_REH4.cjs +0 -16
- package/dist/ripple-Ujq_REH4.cjs.map +0 -1
- package/dist/select-C-Kv7ey_.cjs.map +0 -1
- package/dist/select-DSTQ-Zau.js.map +0 -1
- package/dist/sheet.service-BNz-ird-.cjs +0 -2
- package/dist/sheet.service-BNz-ird-.cjs.map +0 -1
- package/dist/sheet.service-DuVcXyOB.js.map +0 -1
- package/dist/spinner-CSPJs8CL.cjs.map +0 -1
- package/dist/spinner-DAF-hCvQ.js.map +0 -1
- package/dist/suggestion-chip-CYu-4xrL.js.map +0 -1
- package/dist/suggestion-chip-Cj8gwZqq.cjs.map +0 -1
- package/dist/surface-DTOK-0E4.js.map +0 -1
- package/dist/surface-VX_THUHv.cjs.map +0 -1
- package/dist/tailwind.mixin-JFXu3GSo.cjs +0 -2
- package/dist/tailwind.mixin-wLaKUxf1.js +0 -67
- package/dist/textarea-B6LDhRed.cjs +0 -44
- package/dist/theme-controller-boat-CCBNOGxF.cjs +0 -64
- package/dist/theme-controller-boat-CCBNOGxF.cjs.map +0 -1
- package/dist/theme-controller-boat-CVS77gnH.js.map +0 -1
- package/dist/typography-Ck-OdI83.cjs.map +0 -1
- package/dist/typography-DdG9aEAg.js.map +0 -1
- package/types/src/notification/notification-audio-generator.d.ts +0 -45
- package/types/src/notification/notification-audio.d.ts +0 -79
- package/types/src/notification/notification-container.d.ts +0 -48
package/ai/lightbox.md
ADDED
|
@@ -0,0 +1,381 @@
|
|
|
1
|
+
# Lightbox Directive
|
|
2
|
+
|
|
3
|
+
A Lit directive that adds lightbox functionality to images, allowing them to be viewed in a full-screen overlay with optional gallery navigation.
|
|
4
|
+
|
|
5
|
+
## Import
|
|
6
|
+
|
|
7
|
+
```typescript
|
|
8
|
+
import { lightbox } from '@mhmo91/schmancy/directives'
|
|
9
|
+
```
|
|
10
|
+
|
|
11
|
+
## Basic Usage
|
|
12
|
+
|
|
13
|
+
### Single Image Lightbox
|
|
14
|
+
|
|
15
|
+
The simplest use case - click an image to view it full-screen:
|
|
16
|
+
|
|
17
|
+
```typescript
|
|
18
|
+
import { html, LitElement } from 'lit'
|
|
19
|
+
import { customElement } from 'lit/decorators.js'
|
|
20
|
+
import { lightbox } from '@mhmo91/schmancy/directives'
|
|
21
|
+
|
|
22
|
+
@customElement('my-component')
|
|
23
|
+
export class MyComponent extends LitElement {
|
|
24
|
+
render() {
|
|
25
|
+
return html`
|
|
26
|
+
<img
|
|
27
|
+
src="https://example.com/image.jpg"
|
|
28
|
+
alt="Product photo"
|
|
29
|
+
${lightbox()}
|
|
30
|
+
/>
|
|
31
|
+
`
|
|
32
|
+
}
|
|
33
|
+
}
|
|
34
|
+
```
|
|
35
|
+
|
|
36
|
+
### Image Gallery
|
|
37
|
+
|
|
38
|
+
Show multiple images with navigation controls:
|
|
39
|
+
|
|
40
|
+
```typescript
|
|
41
|
+
import { html, LitElement } from 'lit'
|
|
42
|
+
import { customElement, property } from 'lit/decorators.js'
|
|
43
|
+
import { lightbox } from '@mhmo91/schmancy/directives'
|
|
44
|
+
|
|
45
|
+
@customElement('gallery-component')
|
|
46
|
+
export class GalleryComponent extends LitElement {
|
|
47
|
+
@property({ type: Array })
|
|
48
|
+
images = [
|
|
49
|
+
'https://example.com/photo1.jpg',
|
|
50
|
+
'https://example.com/photo2.jpg',
|
|
51
|
+
'https://example.com/photo3.jpg',
|
|
52
|
+
'https://example.com/photo4.jpg'
|
|
53
|
+
]
|
|
54
|
+
|
|
55
|
+
render() {
|
|
56
|
+
return html`
|
|
57
|
+
<div class="gallery">
|
|
58
|
+
${this.images.map((image, index) => html`
|
|
59
|
+
<img
|
|
60
|
+
src=${image}
|
|
61
|
+
alt="Gallery image ${index + 1}"
|
|
62
|
+
${lightbox({ images: this.images, index })}
|
|
63
|
+
class="thumbnail"
|
|
64
|
+
/>
|
|
65
|
+
`)}
|
|
66
|
+
</div>
|
|
67
|
+
`
|
|
68
|
+
}
|
|
69
|
+
}
|
|
70
|
+
```
|
|
71
|
+
|
|
72
|
+
## Options
|
|
73
|
+
|
|
74
|
+
The directive accepts an optional `LightboxOptions` object:
|
|
75
|
+
|
|
76
|
+
```typescript
|
|
77
|
+
interface LightboxOptions {
|
|
78
|
+
images?: string[] // Array of image URLs for gallery mode
|
|
79
|
+
index?: number // Starting index when opening the gallery
|
|
80
|
+
overlay?: TemplateResult // Optional Lit template to render over the image
|
|
81
|
+
}
|
|
82
|
+
```
|
|
83
|
+
|
|
84
|
+
### Options Examples
|
|
85
|
+
|
|
86
|
+
**Single image (no options needed):**
|
|
87
|
+
```typescript
|
|
88
|
+
${lightbox()}
|
|
89
|
+
```
|
|
90
|
+
|
|
91
|
+
**Gallery with specific starting image:**
|
|
92
|
+
```typescript
|
|
93
|
+
${lightbox({
|
|
94
|
+
images: this.allImages,
|
|
95
|
+
index: 2 // Opens at the 3rd image
|
|
96
|
+
})}
|
|
97
|
+
```
|
|
98
|
+
|
|
99
|
+
**Image with overlay (name/price):**
|
|
100
|
+
```typescript
|
|
101
|
+
${lightbox({
|
|
102
|
+
overlay: html`
|
|
103
|
+
<div class="absolute inset-x-0 bottom-0 pt-10 pb-3 px-4 bg-linear-to-t from-black/80 via-black/40 to-transparent rounded-b-lg">
|
|
104
|
+
<div class="flex items-end justify-between gap-2">
|
|
105
|
+
<schmancy-typography type="title" token="lg" class="text-white">
|
|
106
|
+
${this.item.name}
|
|
107
|
+
</schmancy-typography>
|
|
108
|
+
<schmancy-typography type="title" token="lg" class="text-white font-semibold">
|
|
109
|
+
${formatCurrency(this.item.price, this.cart.currency)}
|
|
110
|
+
</schmancy-typography>
|
|
111
|
+
</div>
|
|
112
|
+
</div>
|
|
113
|
+
`,
|
|
114
|
+
})}
|
|
115
|
+
```
|
|
116
|
+
|
|
117
|
+
## Features
|
|
118
|
+
|
|
119
|
+
### Keyboard Navigation
|
|
120
|
+
|
|
121
|
+
When the lightbox is open:
|
|
122
|
+
- **Escape** - Close the lightbox
|
|
123
|
+
- **Arrow Left** - Previous image (gallery mode only)
|
|
124
|
+
- **Arrow Right** - Next image (gallery mode only)
|
|
125
|
+
|
|
126
|
+
### Click Behavior
|
|
127
|
+
|
|
128
|
+
- **Overlay background** - Click to close
|
|
129
|
+
- **Single image** - Click the image itself to close
|
|
130
|
+
- **Gallery** - Click navigation buttons to move between images
|
|
131
|
+
- **Close button** - Always available in top-right corner
|
|
132
|
+
|
|
133
|
+
### Automatic Enhancements
|
|
134
|
+
|
|
135
|
+
The directive automatically:
|
|
136
|
+
- Adds `cursor: pointer` style to images
|
|
137
|
+
- Adds hover effects (`hover:opacity-80` and `transition-opacity` classes)
|
|
138
|
+
- Creates full-screen overlay with backdrop blur
|
|
139
|
+
- Handles focus management and cleanup
|
|
140
|
+
- Supports smooth animations
|
|
141
|
+
|
|
142
|
+
## Real-World Examples
|
|
143
|
+
|
|
144
|
+
### Product Images
|
|
145
|
+
|
|
146
|
+
```typescript
|
|
147
|
+
@customElement('product-card')
|
|
148
|
+
export class ProductCard extends LitElement {
|
|
149
|
+
@property({ type: Object })
|
|
150
|
+
product!: {
|
|
151
|
+
thumbnail: string
|
|
152
|
+
images: string[]
|
|
153
|
+
}
|
|
154
|
+
|
|
155
|
+
render() {
|
|
156
|
+
return html`
|
|
157
|
+
<div class="product-card">
|
|
158
|
+
<img
|
|
159
|
+
src=${this.product.thumbnail}
|
|
160
|
+
alt=${this.product.name}
|
|
161
|
+
${lightbox({
|
|
162
|
+
images: this.product.images,
|
|
163
|
+
index: 0
|
|
164
|
+
})}
|
|
165
|
+
class="product-thumbnail"
|
|
166
|
+
/>
|
|
167
|
+
</div>
|
|
168
|
+
`
|
|
169
|
+
}
|
|
170
|
+
}
|
|
171
|
+
```
|
|
172
|
+
|
|
173
|
+
### Document Viewer
|
|
174
|
+
|
|
175
|
+
```typescript
|
|
176
|
+
@customElement('invoice-viewer')
|
|
177
|
+
export class InvoiceViewer extends LitElement {
|
|
178
|
+
@property({ type: Array })
|
|
179
|
+
pageImages: string[] = []
|
|
180
|
+
|
|
181
|
+
render() {
|
|
182
|
+
return html`
|
|
183
|
+
<div class="invoice-pages">
|
|
184
|
+
${this.pageImages.map((page, i) => html`
|
|
185
|
+
<div class="page-preview">
|
|
186
|
+
<img
|
|
187
|
+
src=${page}
|
|
188
|
+
alt="Invoice page ${i + 1}"
|
|
189
|
+
${lightbox({ images: this.pageImages, index: i })}
|
|
190
|
+
/>
|
|
191
|
+
<p>Page ${i + 1}</p>
|
|
192
|
+
</div>
|
|
193
|
+
`)}
|
|
194
|
+
</div>
|
|
195
|
+
`
|
|
196
|
+
}
|
|
197
|
+
}
|
|
198
|
+
```
|
|
199
|
+
|
|
200
|
+
### Avatar with Enlargement
|
|
201
|
+
|
|
202
|
+
```typescript
|
|
203
|
+
@customElement('user-profile')
|
|
204
|
+
export class UserProfile extends LitElement {
|
|
205
|
+
@property({ type: String })
|
|
206
|
+
avatarUrl!: string
|
|
207
|
+
|
|
208
|
+
render() {
|
|
209
|
+
return html`
|
|
210
|
+
<div class="profile-header">
|
|
211
|
+
<img
|
|
212
|
+
src=${this.avatarUrl}
|
|
213
|
+
alt="User avatar"
|
|
214
|
+
${lightbox()}
|
|
215
|
+
class="avatar"
|
|
216
|
+
/>
|
|
217
|
+
<div class="user-info">
|
|
218
|
+
<h2>John Doe</h2>
|
|
219
|
+
<p>Click avatar to enlarge</p>
|
|
220
|
+
</div>
|
|
221
|
+
</div>
|
|
222
|
+
`
|
|
223
|
+
}
|
|
224
|
+
}
|
|
225
|
+
```
|
|
226
|
+
|
|
227
|
+
## Styling Tips
|
|
228
|
+
|
|
229
|
+
The directive works with any image styling. Common patterns:
|
|
230
|
+
|
|
231
|
+
```css
|
|
232
|
+
/* Thumbnail grid */
|
|
233
|
+
.thumbnail {
|
|
234
|
+
width: 200px;
|
|
235
|
+
height: 200px;
|
|
236
|
+
object-fit: cover;
|
|
237
|
+
border-radius: 8px;
|
|
238
|
+
}
|
|
239
|
+
|
|
240
|
+
/* Product image */
|
|
241
|
+
.product-thumbnail {
|
|
242
|
+
width: 100%;
|
|
243
|
+
max-width: 400px;
|
|
244
|
+
height: auto;
|
|
245
|
+
border-radius: 12px;
|
|
246
|
+
}
|
|
247
|
+
|
|
248
|
+
/* Avatar */
|
|
249
|
+
.avatar {
|
|
250
|
+
width: 80px;
|
|
251
|
+
height: 80px;
|
|
252
|
+
border-radius: 50%;
|
|
253
|
+
object-fit: cover;
|
|
254
|
+
}
|
|
255
|
+
```
|
|
256
|
+
|
|
257
|
+
## Blackbird Animation
|
|
258
|
+
|
|
259
|
+
The lightbox uses a **Blackbird two-stage arc animation** inspired by bird flight patterns. When opening, the image follows a curved trajectory like a bird taking flight.
|
|
260
|
+
|
|
261
|
+
### How It Works
|
|
262
|
+
|
|
263
|
+
```
|
|
264
|
+
┌─────────────────────────────────────────────────────────────┐
|
|
265
|
+
│ │
|
|
266
|
+
│ (2) Takeoff Arc Peak │
|
|
267
|
+
│ ↗ ↘ │
|
|
268
|
+
│ ↗ ↘ │
|
|
269
|
+
│ (1) Source (3) Click Position │
|
|
270
|
+
│ [Thumbnail] ↘ │
|
|
271
|
+
│ ↘ (4) Landing Arc │
|
|
272
|
+
│ ↘ │
|
|
273
|
+
│ ↘ │
|
|
274
|
+
│ (5) Final [Large Image] │
|
|
275
|
+
│ │
|
|
276
|
+
└─────────────────────────────────────────────────────────────┘
|
|
277
|
+
```
|
|
278
|
+
|
|
279
|
+
### 5 Keyframes (like bird flight)
|
|
280
|
+
|
|
281
|
+
| Offset | Stage | Movement |
|
|
282
|
+
|--------|-------|----------|
|
|
283
|
+
| 0% | Start | At thumbnail (source element) |
|
|
284
|
+
| 25% | Takeoff Arc | Arcs **UP** (bird lifts off) |
|
|
285
|
+
| 50% | Waypoint | At click position (transition) |
|
|
286
|
+
| 75% | Landing Arc | Arcs **DOWN** (bird descends) |
|
|
287
|
+
| 100% | Final | At destination position |
|
|
288
|
+
|
|
289
|
+
### Key Features
|
|
290
|
+
|
|
291
|
+
- **Arc UP** during takeoff (like a bird gaining altitude)
|
|
292
|
+
- **Arc DOWN** during landing (like a bird descending)
|
|
293
|
+
- **Scale progression**: small → medium → large
|
|
294
|
+
- **Organic easing**: `cubic-bezier(0.34, 1.2, 0.64, 1)` with slight overshoot
|
|
295
|
+
- **Duration**: 600ms total for the full flight path
|
|
296
|
+
- **Respects `prefers-reduced-motion`** for accessibility
|
|
297
|
+
|
|
298
|
+
### Animation Sources
|
|
299
|
+
|
|
300
|
+
The animation is based on research from:
|
|
301
|
+
- [Animator Notebook - Bird Flight](https://www.animatornotebook.com/learn/bird-flight) - Three stages of flight (lift-off, flying, landing)
|
|
302
|
+
- [Moving along curved paths in CSS](https://tobiasahlin.com/blog/curved-path-animations-in-css/) - Layered animation technique
|
|
303
|
+
- [Spring Physics Animation](https://www.joshwcomeau.com/animation/a-friendly-introduction-to-spring-physics/) - Organic easing functions
|
|
304
|
+
|
|
305
|
+
---
|
|
306
|
+
|
|
307
|
+
## Flip Directive
|
|
308
|
+
|
|
309
|
+
The lightbox includes a reusable `flip` directive for FLIP (First, Last, Invert, Play) animations.
|
|
310
|
+
|
|
311
|
+
### Import
|
|
312
|
+
|
|
313
|
+
```typescript
|
|
314
|
+
import { flip } from '@mhmo91/schmancy/lightbox'
|
|
315
|
+
```
|
|
316
|
+
|
|
317
|
+
### Options
|
|
318
|
+
|
|
319
|
+
```typescript
|
|
320
|
+
interface FlipOptions {
|
|
321
|
+
sourceElement?: HTMLElement // Source element to animate from
|
|
322
|
+
position?: { x: number; y: number } | MouseEvent | TouchEvent // Click position
|
|
323
|
+
duration?: number // Animation duration in ms (default: 600)
|
|
324
|
+
easing?: string // CSS easing function
|
|
325
|
+
scale?: boolean // Whether to animate scale (default: true)
|
|
326
|
+
blackbird?: boolean // Enable two-stage arc animation (default: true)
|
|
327
|
+
}
|
|
328
|
+
```
|
|
329
|
+
|
|
330
|
+
### Usage
|
|
331
|
+
|
|
332
|
+
```typescript
|
|
333
|
+
// Basic usage - animate from source element
|
|
334
|
+
<div ${flip({ sourceElement: thumbnailElement })}>
|
|
335
|
+
Expanding content
|
|
336
|
+
</div>
|
|
337
|
+
|
|
338
|
+
// With click position for blackbird animation
|
|
339
|
+
<img
|
|
340
|
+
src=${imageSrc}
|
|
341
|
+
${flip({
|
|
342
|
+
sourceElement: this.thumbnailElement,
|
|
343
|
+
position: this.clickPosition,
|
|
344
|
+
duration: 600,
|
|
345
|
+
scale: true,
|
|
346
|
+
blackbird: true,
|
|
347
|
+
})}
|
|
348
|
+
/>
|
|
349
|
+
|
|
350
|
+
// Simple animation without blackbird arcs
|
|
351
|
+
<div ${flip({ position: { x: 100, y: 200 }, blackbird: false })}>
|
|
352
|
+
Content
|
|
353
|
+
</div>
|
|
354
|
+
```
|
|
355
|
+
|
|
356
|
+
---
|
|
357
|
+
|
|
358
|
+
## Positioning
|
|
359
|
+
|
|
360
|
+
The lightbox uses [Floating UI](https://floating-ui.com/) for smart positioning:
|
|
361
|
+
|
|
362
|
+
### Desktop Behavior
|
|
363
|
+
- Positions near the click point (quadrant-based)
|
|
364
|
+
- Expands away from the click to maximize visibility
|
|
365
|
+
- Automatically flips/shifts to stay in viewport
|
|
366
|
+
|
|
367
|
+
### Mobile Behavior (< 768px)
|
|
368
|
+
- **Centered horizontally** for better mobile UX
|
|
369
|
+
- Vertical placement based on click position (top/bottom half)
|
|
370
|
+
- Full-width image display
|
|
371
|
+
|
|
372
|
+
---
|
|
373
|
+
|
|
374
|
+
## Notes
|
|
375
|
+
|
|
376
|
+
- The lightbox automatically handles cleanup when the component disconnects
|
|
377
|
+
- Images are displayed at their natural resolution in the lightbox
|
|
378
|
+
- The overlay uses Tailwind classes for styling (dark background, backdrop blur)
|
|
379
|
+
- Gallery counter shows current position (e.g., "2 / 5")
|
|
380
|
+
- Works seamlessly with lazy-loaded images
|
|
381
|
+
- Mobile-friendly with touch-friendly controls
|
package/ai/typography.md
CHANGED
|
@@ -62,10 +62,12 @@ import '@schmancy/index' // For all Schmancy components
|
|
|
62
62
|
Section Header
|
|
63
63
|
</schmancy-typography>
|
|
64
64
|
|
|
65
|
-
// 8. Clickable text
|
|
66
|
-
<schmancy-
|
|
67
|
-
|
|
68
|
-
|
|
65
|
+
// 8. Clickable text (wrap in surface or use native link)
|
|
66
|
+
<schmancy-surface type="primaryContainer" class="inline-block px-2 py-1 rounded cursor-pointer" @click="${handleClick}">
|
|
67
|
+
<schmancy-typography type="body" token="md">
|
|
68
|
+
Click me for more information
|
|
69
|
+
</schmancy-typography>
|
|
70
|
+
</schmancy-surface>
|
|
69
71
|
|
|
70
72
|
// 9. Truncated text with ellipsis
|
|
71
73
|
<schmancy-typography type="body" token="md" maxLines="2">
|
|
@@ -80,9 +82,11 @@ import '@schmancy/index' // For all Schmancy components
|
|
|
80
82
|
<schmancy-typography type="body" token="md" class="block mb-4">
|
|
81
83
|
This is a description that provides more context about the card content.
|
|
82
84
|
</schmancy-typography>
|
|
83
|
-
<schmancy-
|
|
84
|
-
|
|
85
|
-
|
|
85
|
+
<schmancy-surface type="primaryContainer" class="inline-block px-2 py-1 rounded">
|
|
86
|
+
<schmancy-typography type="label" token="lg">
|
|
87
|
+
View Details →
|
|
88
|
+
</schmancy-typography>
|
|
89
|
+
</schmancy-surface>
|
|
86
90
|
</schmancy-card>
|
|
87
91
|
```
|
|
88
92
|
|
|
@@ -172,61 +176,81 @@ Typography automatically inherits colors from the theme:
|
|
|
172
176
|
|
|
173
177
|
### Color Inheritance
|
|
174
178
|
|
|
175
|
-
|
|
179
|
+
## 🚨 ABSOLUTE RULE: NEVER PUT COLOR CLASSES ON SCHMANCY-TYPOGRAPHY
|
|
180
|
+
|
|
181
|
+
**Typography MUST inherit its color from the parent surface. NO EXCEPTIONS.**
|
|
182
|
+
|
|
183
|
+
### Why This Rule Exists
|
|
184
|
+
- `schmancy-typography` automatically gets the correct contrast color from its parent surface
|
|
185
|
+
- Adding `text-*` classes breaks the design system's color inheritance
|
|
186
|
+
- It causes visual inconsistency when themes change
|
|
187
|
+
- It violates Material Design 3's surface/on-color relationship
|
|
176
188
|
|
|
177
|
-
|
|
189
|
+
### ❌ FORBIDDEN - Color Classes on Typography
|
|
178
190
|
```html
|
|
179
|
-
<!--
|
|
180
|
-
<schmancy-
|
|
181
|
-
|
|
182
|
-
|
|
191
|
+
<!-- ALL OF THESE ARE WRONG - NEVER DO THIS -->
|
|
192
|
+
<schmancy-typography type="headline" token="md" class="text-error">Wrong</schmancy-typography>
|
|
193
|
+
<schmancy-typography type="body" token="sm" class="text-success">Wrong</schmancy-typography>
|
|
194
|
+
<schmancy-typography type="title" token="lg" class="text-primary">Wrong</schmancy-typography>
|
|
195
|
+
<schmancy-typography type="label" token="md" class="text-warning">Wrong</schmancy-typography>
|
|
196
|
+
<schmancy-typography class="text-surface-onVariant">Wrong</schmancy-typography>
|
|
197
|
+
```
|
|
198
|
+
|
|
199
|
+
### ✅ CORRECT - Use Surfaces to Control Color
|
|
200
|
+
```html
|
|
201
|
+
<!-- Need error text? Use error surface -->
|
|
202
|
+
<schmancy-surface type="error" class="px-2 py-1 rounded">
|
|
203
|
+
<schmancy-typography type="body" token="sm">
|
|
204
|
+
Error message here (automatically gets on-error color)
|
|
183
205
|
</schmancy-typography>
|
|
184
206
|
</schmancy-surface>
|
|
185
207
|
|
|
186
|
-
<!--
|
|
187
|
-
<schmancy-surface type="primary" class="
|
|
188
|
-
<schmancy-typography type="
|
|
189
|
-
|
|
208
|
+
<!-- Need primary-colored text? Use primary surface -->
|
|
209
|
+
<schmancy-surface type="primary" class="px-2 py-1 rounded">
|
|
210
|
+
<schmancy-typography type="label" token="md">
|
|
211
|
+
Primary text (automatically gets on-primary color)
|
|
190
212
|
</schmancy-typography>
|
|
191
213
|
</schmancy-surface>
|
|
192
|
-
```
|
|
193
214
|
|
|
194
|
-
|
|
195
|
-
|
|
196
|
-
|
|
197
|
-
|
|
198
|
-
<schmancy-typography type="headline" token="md" class="text-surface-onVariant">
|
|
199
|
-
Don't add color classes - the surface already provides the right color!
|
|
215
|
+
<!-- Normal text inside container -->
|
|
216
|
+
<schmancy-surface type="container" class="p-4">
|
|
217
|
+
<schmancy-typography type="headline" token="md">
|
|
218
|
+
This text automatically uses the correct contrast color
|
|
200
219
|
</schmancy-typography>
|
|
201
220
|
</schmancy-surface>
|
|
202
221
|
```
|
|
203
222
|
|
|
204
|
-
|
|
205
|
-
|
|
206
|
-
**ONLY add explicit color classes when:**
|
|
207
|
-
1. Typography is used standalone (not inside a surface)
|
|
208
|
-
2. You need a specific semantic color (e.g., `text-error` for errors)
|
|
209
|
-
3. Creating interactive elements that change color on hover
|
|
210
|
-
|
|
223
|
+
### ❌ ALSO FORBIDDEN - Spans with Colors Inside Typography
|
|
211
224
|
```html
|
|
212
|
-
<!--
|
|
213
|
-
<
|
|
214
|
-
<
|
|
215
|
-
Error: Invalid input
|
|
216
|
-
</schmancy-typography>
|
|
217
|
-
</div>
|
|
218
|
-
|
|
219
|
-
<!-- Interactive element with hover state -->
|
|
220
|
-
<schmancy-typography type="body" token="md" class="cursor-pointer hover:text-primary">
|
|
221
|
-
Click for more info
|
|
225
|
+
<!-- WRONG - No color classes inside typography either! -->
|
|
226
|
+
<schmancy-typography type="body" token="md">
|
|
227
|
+
Total: <span class="text-error">-€338.89</span> <!-- WRONG -->
|
|
222
228
|
</schmancy-typography>
|
|
223
229
|
```
|
|
224
230
|
|
|
225
|
-
|
|
226
|
-
|
|
227
|
-
|
|
228
|
-
-
|
|
229
|
-
-
|
|
231
|
+
### ✅ CORRECT - Always Wrap with Surface
|
|
232
|
+
```html
|
|
233
|
+
<!-- For colored values, wrap the typography in a surface -->
|
|
234
|
+
<schmancy-surface type="errorContainer" class="px-2 py-0.5 rounded inline-block">
|
|
235
|
+
<schmancy-typography type="body" token="md">-€338.89</schmancy-typography>
|
|
236
|
+
</schmancy-surface>
|
|
237
|
+
```
|
|
238
|
+
|
|
239
|
+
### Available Surface Types for Colored Text
|
|
240
|
+
| Need This Color | Use This Surface |
|
|
241
|
+
|-----------------|------------------|
|
|
242
|
+
| Error/Red text | `type="error"` or `type="errorContainer"` |
|
|
243
|
+
| Success/Green text | `type="success"` or `type="successContainer"` |
|
|
244
|
+
| Warning/Amber text | `type="warning"` or `type="warningContainer"` |
|
|
245
|
+
| Primary accent | `type="primary"` or `type="primaryContainer"` |
|
|
246
|
+
| Secondary accent | `type="secondary"` or `type="secondaryContainer"` |
|
|
247
|
+
| Tertiary accent | `type="tertiary"` or `type="tertiaryContainer"` |
|
|
248
|
+
|
|
249
|
+
### The Principle
|
|
250
|
+
**Surfaces define the background AND automatically provide the correct text color.**
|
|
251
|
+
- `schmancy-surface type="error"` → red background, white text (automatic)
|
|
252
|
+
- `schmancy-surface type="errorContainer"` → light red background, dark red text (automatic)
|
|
253
|
+
- Trust the design system - don't override it with color classes
|
|
230
254
|
|
|
231
255
|
### Implementation Details
|
|
232
256
|
- Uses Shadow DOM with encapsulated styles
|
|
@@ -257,9 +281,11 @@ Typography automatically inherits colors from the theme:
|
|
|
257
281
|
|
|
258
282
|
3. **Data Display**
|
|
259
283
|
```html
|
|
260
|
-
<schmancy-
|
|
261
|
-
|
|
262
|
-
|
|
284
|
+
<schmancy-surface type="primaryContainer" class="inline-block px-3 py-2 rounded">
|
|
285
|
+
<schmancy-typography type="headline" token="md" class="block">
|
|
286
|
+
$1,234.56
|
|
287
|
+
</schmancy-typography>
|
|
288
|
+
</schmancy-surface>
|
|
263
289
|
<schmancy-typography type="label" token="sm">
|
|
264
290
|
Total Revenue
|
|
265
291
|
</schmancy-typography>
|